① 什麼是內存資料庫數據如何存儲如果數據記錄存儲在內存中,當電腦或伺服器重啟後,數據還有嗎
當然有產品了,但是目前沒有一家的內存資料庫能否佔領市場的高度,因為內存資料庫的專業化需求太不一樣了。
各大公司用的內存資料庫基本上都是自己搞得,借鑒一些資料庫的理論或開源內存資料庫的源碼,結合自己的項目,定製化開發的。
內存資料庫可以將數據同步到文件中,即redo機制。所以當伺服器重啟後,數據也不會丟失。
最近我們也在搞這方面的產品
② 資料庫有哪些
資料庫有:
1、MySQL
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB公司開發,屬於Oracle旗下產品。MySQL是最流行的關系型資料庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS(Relational Database Management System,關系資料庫管理系統)應用軟體之一。
2、Oracle
Oracle開發的關系資料庫產品因性能卓越而聞名,Oracle資料庫產品為財富排行榜上的前1000家公司所採用,許多大型網站也選用了Oracle系統,是世界最好的資料庫產品。
3、SqlServer
SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,並於1988年推出了第一個OS/2版本。
4、SQLite
SQLite,是一款輕型的資料庫,是遵守ACID的關系型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。
5、INFORMIX
Informix是IBM公司出品的關系資料庫管理系統(RDBMS)家族。作為一個集成解決方案,它被定位為作為IBM在線事務處理(OLTP)旗艦級數據服務系統。
6、Redis
Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSIC語言編寫、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
7、MongoDB
MongoDB是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。是非關系資料庫當中功能最豐富,最像關系資料庫的。
8、HBase
HBase是一個分布式的、面向列的開源資料庫,該技術來源於Fay Chang所撰寫的Google論文「Bigtable:一個結構化數據的分布式存儲系統」。就像Bigtable利用了Google文件系統(File System)所提供的分布式數據存儲一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。
9、Neo4J
Neo4j是一個高性能的,NOSQL圖形資料庫,它將結構化數據存儲在網路上而不是表中。它是一個嵌入式的、基於磁碟的、具備完全的事務特性的Java持久化引擎,但是它將結構化數據存儲在網路(從數學角度叫做圖)上而不是表中。10、CouchDB
10、CouchDB
CouchDB是一個開源的面向文檔的資料庫管理系統,可以通過 RESTful JavaScript Object Notation (JSON) API 訪問。它反映了 CouchDB 的目標具有高度可伸縮性,提供了高可用性和高可靠性,即使運行在容易出現故障的硬體上也是如此。
③ 什麼情況下用內存資料庫
相對於磁碟,內存的數據讀寫速度要高出幾個數量級,將數據保存在內存中相比從磁碟上訪問能夠極大地提高應用的性能。同時,內存資料庫拋棄了磁碟數據管理的傳統方式,基於全部數據都在內存中重新設計了體系結構,並且在數據緩存、快速演算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統資料庫的數據處理速度要快很多,一般都在10倍以上。內存資料庫的最大特點是其"主拷貝"或"工作版本" 常駐內存,即活動事務只與實時內存資料庫的內存拷貝打交道。顯然,它要求較大的內存量,但並非任何時刻整個資料庫都存放在內存,即內存資料庫系統還是要處理I/O。
內存資料庫是以犧牲內存資源為代價換取數據處理實時性的,內存資料庫和磁碟資料庫都是當今信息社會里每個企業所必須的關系型資料庫產品,磁碟資料庫解決的是大容量存儲和數據分析問題,而內存資料庫解決的是實時處理和高並發問題。兩者的存在是相輔相成的,內存資料庫的事務實時處理性能要遠強於磁碟資料庫。但是相對的,他的數據安全方面還沒有達到磁碟資料庫比肩的地步。
內存資料庫將物理內存作為數據的第一存儲介質,而將磁碟作為備份。隨著電信業務的發展,系統對實時性的要求和對業務靈活修改的要求非常高,在此種情況下對於內存資料庫的需求也越來越高。磁碟資料庫的做法是將數據存入內存中進行處理,這種方式的可管理性及數據安全可靠性都沒有保障。而內存資料庫正是針對這一弱點進行了改進。
實際上,內存資料庫並不是一項時髦技術,其出現於上世紀60年代末,但由於市場的需求原因在90年代後期才開始發展。作為新一代資料庫,Altibase產品已經走向混合型資料庫,其版本Altibase 4.0已經有一套自帶的磁碟資料庫,用戶一旦購買了Altibase的內存資料庫,就無須再購買磁碟資料庫。它把熱數據(經常被使用的、訪問比較高的、經常要運算的數據)放在內存資料庫里,而把歷史性數據放在磁碟資料庫里,可為用戶進一步減少投資。
對於內存資料庫而言,可以將同樣資料庫的部分內容存放於磁碟上,而另一部分存放於內存中。用戶可以選擇將數據存儲在內存表中以提供即時的數據訪問。若訪問時間不緊急或數據存於內存中所佔空間過大時,用戶可將這些數據存入磁碟表中。
比如,在手機用戶開始拔打電話時,如果應用基於內存資料庫技術的混合數據管理引擎,就通過內存表檢索其服務選項並立即驗證用戶身份,而將通話清單和計費清單歸檔到磁碟表中。從而,達到了速度與資源使用的平衡。
內存資料庫的技術,一個很重要的特點,是可以對內存中的數據實現全事務處理,這是僅僅把數據以數組等形式放在內存中完全不同的。並且,內存資料庫是與應用無關的,顯然這種體系結構具有其合理性。內存引擎可以實現查詢與存檔功能使用的是完全相同的資料庫,同時內存表與磁碟表也使用的是完全相同的存取方法。存儲的選擇,對於應用開發者而言是完全透明的。
對於內存資料庫而言,實現了數據在內存中的管理,而不僅僅是作為資料庫的緩存。不像其它將磁碟數據塊緩存到主存中的資料庫,內存資料庫的內存引擎使用了為隨機訪問內存而特別設計的數據結構和演算法,這種設計使其避免了因使用排序命令而經常破壞緩存資料庫性能的問題。通過內存資料庫,減少了磁碟I/O,能夠達到了以磁碟I/O 為主的傳統資料庫無法與其相比擬的處理速度。
因此,內存資料庫技術的應用,可以大大提高資料庫的速度,這對於需要高速反應的資料庫應用,如電信、金融等提供了有力支撐。
由於把大多數數據都放在內存中進行操作,使得內存資料庫有著比磁碟資料庫高得多的性能表現,這一特點非常契合電信企業運營支撐系統對實時性的要求。
電信業的競爭正在全方位地展開,這種競爭必然帶來新的價值鏈模式以及新的計費方式,這些變化對目前的電信運營支撐系統是一個挑戰。比如,多種業務的計費環節將不再是單一的按照時長或通信距離收取費用,而可能是根據時長、內容、使用量等多種參數的組合計費。為了應對這些挑戰,電信企業先後引入了內存資料庫,以提高後台數據管理的實時性、精確性和靈活性。
盡管內存資料庫已不是傳統磁碟資料庫的概念,但是內存資料庫本質上還是資料庫,它也具有一般資料庫的基本功能:
■ 永久數據的管理,包括資料庫的定義、存儲、維護等;
■ 完成各種數據操作,如查詢處理、存取、完整性檢查;
■ 事務管理,包括調度與並發控制等;
■ 對存取的控制和安全性檢驗;
■ 具有資料庫的可靠性恢復機制。
相對於利用程序開發手段調用內存處理來說,內存資料庫自有其優勢。首先,內存資料庫是產品化的資料庫管理軟體,極大縮短了開發周期; 其次,內存資料庫有著開放的平台和介面,程序開發和移植更加靈活便捷,也便於維護和二次開發; 第三,可以通過使用統一的SQL語言方便地查詢內存中的數據; 最後,能在資料庫中保障數據的安全性和完整性。這些優勢,對於快速部署和簡化維護都是有利的。
但內存資料庫也有其不可避免的缺點,比如: 不容易恢復,內存資料庫中的數據不總是永久的,為了保證實時,也不一定是一致和絕對正確的,有的是短暫的,有的是暫時不一致或非絕對正確的。
電信企業一直是內存資料庫的主要用戶,近幾年來,隨著計算機硬體技術的飛速發展、內存容量的提高、價格下跌以及計算機進入64位時代操作系統後可以支持更大的地址,為內存資料庫的實現提供了可能。目前內存資料庫在電信行業的應用也日趨成熟,已有超過90G的電信系統案例,能自動擴展內存空間,不需要重啟資料庫,提供ESOL自定義存儲過程,支持多線程,開發效率高,程序移植容易等等。
下面以兩個例子來介紹內存資料庫的應用。
?電信計費數據的載入
電信的二次批價和實時累賬是計費系統中的兩個必備功能。
所謂二次批價是相對於一次批價來說的。
一次批價是按照國家標准資費來進行價格計算,比如: 全球通每分鍾本地通話為0.4元,在一次批價完成後,會根據這個用戶的套餐進行再一次的計算。以北京全球通用戶接聽4分鍾的電話為例,一次批價完成後,這條話單的價格是1.6元,如果這個用戶參加了10元包月接聽套餐,那麼在二次批價後,這次通話的費用就為0元。
一次批價是用於各大運營商之間結算的,而二次批價是針對用戶個人的。
實時累賬是將用戶從每月1號到目前為止的所有費用累加起來,也就是用戶目前可以通過10086查到截止到前一天的實時話費。累賬值可以幫助用戶控制高額話費或是供用戶即時查詢消費信息。
二次批價和實時累賬過程涉及用戶資料、用戶套餐等與用戶相關的信息,電信支撐系統在開始批價時必須載入這些數據。稍大一點的省級運營商的這些數據就會超過1000萬條,計費處理模型也由於套餐的組合、產品的組合以及不同的優惠規則變得相當復雜,載入這部分數據對系統而言是一筆不小的開銷,這就使得現在的計費處理速度比較慢,而且很難做到對數據的實時更新。內存資料庫的引入在一定程度上解決了這個問題。
在計費二次批價過程中數據量最大的是詳單數據,這部分數據不用放在內存資料庫中,每處理完一個話單文件或達到設定的提交記錄數時直接操作磁碟資料庫,不會影響系統性能。最急切的是將用戶資料、套餐、營業套餐和計費套餐對應關系數據、計費套餐模型數據及用戶累計數據放到內存資料庫中,這部分數據查詢操作遠比數據新增和更新操作要頻繁。除了這些數據外,當然還有應用需要的其他數據也都可以載入到內存資料庫。
在採用內存資料庫後,用戶通過營業部或客戶查詢實時話費的時候完全可以做到實時,比目前只能提供查詢到前一天的實時話費在業務上有了質的飛躍。因為系統在處理這部分數據時查詢流程和以前的完全一樣,但系統省去了以往內存中的數據和磁碟資料庫數據同步的環節,所以就能做到了實時查詢。對於信控來說也同樣,以往系統在累完賬後要按照一定周期刷新信控數據,這就存在一個時間差,不能夠完全做到實時。
而採用內存資料庫後,信控可以直接取得內存資料庫中的實時話費累計表中的數據,完全實現實時預警、停機。二次批價和累賬中採用內存資料庫後,對防欺詐、收入保障系統也有相當大的好處,這樣能夠充分保證運營商的切身利益。
另外,在採用內存資料庫後,整體提高了系統批價、累賬的處理速度,大大緩解訪問磁碟資料庫的壓力,提高數據查詢、修改、刪除的效率,也為後付費和預付費的融合提供了可能。
電信計費數據的同步
電信營業數據和計費系統中的數據總是在不斷的變化中,這就涉及內存資料庫中的數據和磁碟資料庫數據的同步問題(為了描述清楚,這里的磁碟資料庫以Oracle DB為例來說明)。數據同步包括兩部分: 從內存資料庫到Oracle DB數據同步和從Oracle DB到內存資料庫的同步。
1. Oracle DB到內存資料庫同步
這部分數據同步採用增量表的方式,營業系統或CRM新增或更新的數據將生成到Oracle的增量表中,計費後台程序先到這些增量表中查詢數據。如果能在這些增量表中查到數據就把這些數據更新到內存資料庫對應表中,如果查不到,就直接從內存資料庫中直接查詢,從而保證了數據的完整性和實時性。由於增量表的數據量一般會很小,所以這部分操作不會影響系統的性能。
2. 內存資料庫到Oracle DB同步
由於Oracle的計費後台批價、累賬數據幾乎都載入到了內存資料庫中,所以Oracle資料庫對應的數據表將主要用於對內存資料庫的數據備份。
用戶最新的實時話費等信息都保存在內存資料庫中,實時話費查詢將直接連接到內存資料庫中查詢,保證用戶得到最新的費用信息。信控也直接從內存資料庫查詢數據,因此對Oracle中的這部分數據已經沒有實時性的要求。這時內存資料庫到Oracle的同步可以由應用程序生成文件,定時地往Oracle資料庫中同步備份,或者採用Oracle 存儲過程在系統相對空閑時間段進行數據導入就可以了。
總體而言,由於市場與技術的快速發展,電信業務在不斷擴充,其運營和管理不斷優化,傳統的一些支撐系統的架構已經逐漸不能滿足日益增長的業務要求和客戶需求,引入一些新的技術來解決我們生產中遇到的問題是必然的。比如採用內存資料庫來代替以前的共享內存技術,使得原來在內存中不標準的東西,包括介面、格式和管理都標准化了。
內存資料庫只是多種新技術中有代表性的一種而已,只要解放思想、選用得當,完全可以在投入不大的情況下克服系統中的瓶頸,以最小的代價獲得最大回報。
通用資料庫大家見的多了,Oracle、Db2、Sqlserver、Sybase、Informix 還有最近比較火的Mysql、和Pqllite,當然還不能忘記開源的PostgreSQL。通常情況下這些資料庫可以承擔重要業務,但是在要求高性能方面還是略有不足。在計費系統中如果用戶信息常常改變的話延遲方面就會產生比較大的影響,甚至能影響到計費系統的正常運行。
我接觸到唯一的內存資料庫就是亞信在中移動計費中心稽核系統中使用的。由於稽核系統需要實施同步用戶狀態信息和訂購信息,然後對產生的話單進行稽核,如果響應速度較慢的話就會產生錯誤的結果。最初沒有稽核系統的時候,計費的標准基本是sp發過來的,然而用戶方面卻經常發現自己沒有實際使用或者已經取消這項業務的時候,自己的帳單中仍然收取了費用,因此中移動決心要對sp的話單進行稽核,以自己的數據為標准,徹底剪斷sp亂收費的手段。
如果要取到用戶狀態信息和訂購信息的話就要從多個系統中同步過來,同時對話單進行稽核,中間的處理時間要求比較嚴格(用戶可能會在短時間內檢查自己的話費信息),對系統響應時間就要盡量短。
通用資料庫在這方面處於劣勢。亞信就以三台rx8420作為資料庫主機,將31個省用戶的信息按照數量的多少分擔到三台主機,每個省至少有一個入庫進程,對於用戶比較多的就採用多個進程進行入庫。數據的採集來源主要是通過BOSS和計費的一級系統。
由於數據是存儲在內存中,所以存儲的數據結構和通用資料庫有所差異,同時為了保證數據的安全,在磁碟上有一個內存數據的鏡像,每隔一定時間將內存中的數據同步到磁碟上,當主機故障時可以通過磁碟恢復數據。當主機故障時,會有備用主機通過HA接管。但是對於數據操作的日誌和回滾就沒有Oracle做的好了,只提供了簡單的恢復機制。
在計費系統中首先要對sp發來的話單進行稽核,主要標準是用戶狀態和訂購信息。例如用戶最近7天一直處於關機狀態,如果sp的話單中出現新的訂購信息就將此條話單作為錯單處理。移動通過這種方式在和sp的博弈中取得主動。稽核系統上線後用戶對於sp的投訴問題明顯減少。
鏈接一:內存資料庫與傳統資料庫的異同
傳統的資料庫系統是關系型資料庫,開發這種資料庫的目的,是處理永久、穩定的數據。關系資料庫強調維護數據的完整性、一致性,但很難顧及有關數據及其處理的定時限制,不能滿足工業生產管理實時應用的需要,因為實時事務要求系統能較准確地預報事務的運行時間。
對磁碟資料庫而言,由於磁碟存取、內外存的數據傳遞、緩沖區管理、排隊等待及鎖的延遲等使得事務實際平均執行時間與估算的最壞情況執行時間相差很大,如果將整個資料庫或其主要的"工作"部分放入內存,使每個事務在執行過程中沒有I/O,則為系統較准確估算和安排事務的運行時間,使之具有較好的動態可預報性提供了有力的支持,同時也為實現事務的定時限制打下了基礎。這就是內存資料庫出現的主要原因。
內存資料庫所處理的數據通常是"短暫"的,即有一定的有效時間,過時則有新的數據產生,而當前的決策推導變成無效。所以,實際應用中採用內存資料庫來處理實時性強的業務邏輯處理數據。而傳統資料庫旨在處理永久、穩定的數據,其性能目標是高的系統吞吐量和低的代價,處理數據的實時性就要考慮的相對少一些。實際應用中利用傳統資料庫這一特性存放相對實時性要求不高的數據。
在實際應用中這兩種資料庫常常結合使用,而不是以內存資料庫替代傳統資料庫。
鏈接二:幾款內存資料庫產品
■ Oracle TimesTen
Oracle TimesTen是Oracle從TimesTen公司收購的一個內存優化的關系資料庫,它為應用程序提供了實時企業和行業(例如電信、資本市場和國防)所需的即時響應性和非常高的吞吐量。Oracle TimesTen可作為高速緩存或嵌入式資料庫被部署在應用程序層中,它利用標準的 SQL 介面對完全位於物理內存中的數據存儲區進行操作。
■ Altibase
Altibase是一個在事務優先的環境中提供高性能和高可用性的軟體解決方案。它提供高性能、容錯能力和事務管理能力,特別適合通信、網上銀行、證券交易、實時應用和嵌入式系統領域。Altibase能夠最大限度地發揮資料庫服務系統的潛力,增強數據伺服器的處理能力。Altibase支持客戶端/伺服器架構或嵌入式架構。其中客戶端/伺服器架構非常適合一般的應用。而嵌入式架構將應用程序嵌入到資料庫伺服器,適合於有高時效要求的實時系統。
■ eXtremeDB
eXtremeDB實時資料庫是McObject公司的一款特別為實時與嵌入式系統數據管理而設計的資料庫,只有 50K到130K的開銷,速度達到微秒級。eXtremeDB完全駐留在主內存中,不使用文件系統(包括內存檔)。eXtremeDB採用了新的磁碟融合技術,將內存拓展到磁碟,將磁碟當做虛擬內存來用,實時性能保持微秒級的同時,數據管理量在32BIT下能達到20G。
④ 資料庫都有哪些
資料庫是一組信息的集合,以便可以方便地訪問、管理和更新,常用資料庫有:1、關系型資料庫;2、分布式資料庫;3、雲資料庫;4、NoSQL資料庫;5、面向對象的資料庫;6、圖形資料庫。
計算機資料庫通常包含數據記錄或文件的聚合,例如銷售事務、產品目錄和庫存以及客戶配置文件。
通常,資料庫管理器為用戶提供了控制讀寫訪問、指定報表生成和分析使用情況的能力。有些資料庫提供ACID(原子性、一致性、隔離性和持久性)遵從性,以確保數據的一致性和事務的完整性。
資料庫普遍存在於大型主機系統中,但也存在於較小的分布式工作站和中端系統中,如IBM的as /400和個人計算機。
資料庫的演變
資料庫從1960年代開始發展,從層次資料庫和網路資料庫開始,到1980年代的面向對象資料庫,再到今天的SQL和NoSQL資料庫和雲資料庫。
一種觀點認為,資料庫可以按照內容類型分類:書目、全文、數字和圖像。在計算中,資料庫有時根據其組織方法進行分類。有許多不同類型的資料庫,從最流行的方法關系資料庫到分布式資料庫、雲資料庫或NoSQL資料庫。
常用資料庫:
1、關系型資料庫
關系型資料庫是由IBM的E.F. Codd於1970年發明的,它是一個表格資料庫,其中定義了數據,因此可以以多種不同的方式對其進行重組和訪問。
關系資料庫由一組表組成,其中的數據屬於預定義的類別。每個表在一個列中至少有一個數據類別,並且每一行對於列中定義的類別都有一個特定的數據實例。
結構化查詢語言(SQL)是關系資料庫的標准用戶和應用程序介面。關系資料庫易於擴展,並且可以在原始資料庫創建之後添加新的數據類別,而不需要修改所有現有應用程序。
2、分布式資料庫
分布式資料庫是一種資料庫,其中部分資料庫存儲在多個物理位置,處理在網路中的不同點之間分散或復制。
分布式資料庫可以是同構的,也可以是異構的。同構分布式資料庫系統中的所有物理位置都具有相同的底層硬體,並運行相同的操作系統和資料庫應用程序。異構分布式資料庫中的硬體、操作系統或資料庫應用程序在每個位置上可能是不同的。
3、雲資料庫
雲資料庫是針對虛擬化環境(混合雲、公共雲或私有雲)優化或構建的資料庫。雲資料庫提供了一些好處,比如可以按每次使用支付存儲容量和帶寬的費用,還可以根據需要提供可伸縮性和高可用性。
雲資料庫還為企業提供了在軟體即服務部署中支持業務應用程序的機會。
4、NoSQL資料庫
NoSQL資料庫對於大型分布式數據集非常有用。
NoSQL資料庫對於關系資料庫無法解決的大數據性能問題非常有效。當組織必須分析大量非結構化數據或存儲在雲中多個虛擬伺服器上的數據時,它們是最有效的。
5、面向對象的資料庫
使用面向對象編程語言創建的項通常存儲在關系資料庫中,但是面向對象資料庫非常適合於這些項。
面向對象的資料庫是圍繞對象(而不是操作)和數據(而不是邏輯)組織的。例如,關系資料庫中的多媒體記錄可以是可定義的數據對象,而不是字母數字值。
6、圖形資料庫
面向圖形的資料庫是一種NoSQL資料庫,它使用圖形理論存儲、映射和查詢關系。圖資料庫基本上是節點和邊的集合,其中每個節點表示一個實體,每個邊表示節點之間的連接。
圖形資料庫在分析互連方面越來越受歡迎。例如,公司可以使用圖形資料庫從社交媒體中挖掘關於客戶的數據。
訪問資料庫:DBMS和RDBMS
資料庫管理系統(DBMS)是一種允許您定義、操作、檢索和管理存儲在資料庫中的數據的軟體。
關系資料庫管理系統(RDBMS)是上世紀70年代開發的一種基於關系模型的資料庫管理軟體,目前仍然是最流行的資料庫管理方法。
Microsoft SQL Server、Oracle資料庫、IBM DB2和MySQL是企業用戶最常用的RDBMS產品。DBMS技術始於20世紀60年代,支持分層資料庫,包括IBM的信息管理系統和CA的集成資料庫管理系統。一個關系資料庫管理系統(RDBMS)是一種資料庫管理軟體是在20世紀70年代開發的,基於關系模式,仍然是管理資料庫的最普遍的方式。
希望能幫助你還請及時採納謝謝
⑤ 請問資料庫有哪些種類呢
資料庫共有3種類型,為關系資料庫、非關系型資料庫和鍵值資料庫。
1、關系資料庫
MySQL、MariaDB(MySQL的代替品,英文維基網路從MySQL轉向MariaDB)、Percona Server(MySQL的代替品·)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables、FileMaker、Oracle資料庫、Sybase、dBASE、Clipper、FoxPro、foshub。
幾乎所有的資料庫管理系統都配備了一個開放式資料庫連接(ODBC)驅動程序,令各個資料庫之間得以互相集成。
2、非關系型資料庫(NoSQL)
BigTable(Google)、Cassandra、MongoDB、CouchDB。
3、鍵值(key-value)資料庫
Apache Cassandra(為Facebook所使用):高度可擴展、Dynamo、LevelDB(Google)。
(5)內存資料庫有哪些來源擴展閱讀:
資料庫模型:對象模型、層次模型(輕量級數據訪問協議)、網狀模型(大型數據儲存)、關系模型、面向對象模型、半結構化模型、平面模型(表格模型,一般在形式上是一個二維數組。如表格模型數據Excel)。
資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。
⑥ 在windows下用哪些內存資料庫,類似redis的
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。在實際應用中內存資料庫主要是配合oracle或mysql等大型關系資料庫使用,關注性能。
作用類似於緩存,並不注重數據完整性和數據一致性。
基於鍵值型的內存資料庫比關系型更加易於使用,性能和可擴展性更好,因此在應用上比關系型的內存資料庫使用更多。
比較FastDB、Memcached和Redis主流內存資料庫的功能特性。
FastDB的特點包括如下方面:
1、FastDB不支持client-server架構因而所有使用FastDB的應用程序必須運行在同一主機上;
2、fastdb假定整個資料庫存在於RAM中,並且依據這個假定優化了查詢演算法和介面。
3、fastdb沒有資料庫緩沖管理開銷,不需要在資料庫文件和緩沖池之間傳輸數據。
4、整個fastdb的搜索演算法和結構是建立在假定所有的數據都存在於內存中的,因此數據換出的效率不會很高。
5、Fastdb支持事務、在線備份以及系統崩潰後的自動恢復。
6、fastdb是一個面向應用的資料庫,資料庫表通過應用程序的類信息來構造。
FastDB不能支持Java API介面,這使得在本應用下不適合使用FastDB。
Memcached
Memcached是一種基於Key-Value開源緩存伺服器系統,主要用做資料庫的數據高速緩沖,並不能完全稱為資料庫。
memcached的API使用三十二位元的循環冗餘校驗(CRC-32)計算鍵值後,將資料分散在不同的機器上。當表格滿了以後,接下來新增的資料會以LRU機制替換掉。由於 memcached通常只是當作緩存系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的資料庫)需要額外的程序更新memcached內的資料。
memcached具有多種語言的客戶端開發包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。
Redis
Redis是一個高性能的key-value資料庫。redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關系資料庫起到很好的補充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客戶端。
⑦ python常用的資料庫有哪些
主流的關系型資料庫:
1. MySQL:目前使用最廣泛的開源、多平台的關系型資料庫,支持事務、符合ACID、支持多數SQL規范。
2. SQL Server:支持事務、符合ACID、支持多數SQL規范,屬於商業軟體,需要注意版權和licence授權費用。
3. Oracle:支持事務,符合關系型資料庫原理,符合ACID,支持多數SQL規范,功能最強大、最復雜、市場佔比最高的商業資料庫。
4. Postgresql:開源、多平台、關系型資料庫,功能最強大的開源資料庫,需要Python環境,基於postgresql的time
scaleDB,是目前比較火的時序資料庫之一。
非關系型資料庫
Redis:開源、Linux平台、key-value鍵值型nosql資料庫,簡單穩定,非常主流的、全數據in-momory,定位於快的鍵值型nosql資料庫。
Memcaced:一個開源的、高性能的、具有分布式內存對象的緩存系統,通過它可以減輕資料庫負載,加速動態的web應用。
面向文檔資料庫以文檔的形式存儲,每個文檔是一系列數據項的集合,每個數據項有名稱與對應的值,主要產品有:
MongoDB:開源、多平台、文檔型nosql資料庫,最像關系型資料庫,定位於靈活的nosql資料庫。適用於網站後台資料庫、小文件系統、日誌分析系統。
⑧ 什麼是內存資料庫
內存資料庫系統對於嵌入式開發來說是特別有用的, IMDS 中每個保存過程縮小了覆蓋區 智能連接設備的增長速度正越來越快。這種裝置不管是在家庭、口 袋(pocket)或者是內置於工業通信和傳送系統,都已經發展為包含了 強大的CPU和完善的嵌入式系統軟體。在這種設備中日益流行的一種軟 件是資料庫管理系統(DBMS)。雖然對桌面電腦或者伺服器來說,這種 軟體已經是相當成熟了,但資料庫是最新才應用到達嵌入式系統的。像 所有進入新環境的生物體一樣,資料庫也必須經歷一個發展過程。一種 新型的DBMS,內存資料庫系統(IMDS),代表了DBMS應用到嵌入式 系統的最新步伐。 為什麼嵌入式系統開發人員會轉向資料庫呢?市場競爭使得像機頂 盒、網路開關和消費者電子產品這樣的設備需要變得越來越智能。要支 持擴展功能集,應用程序通常必須管理大容量的更復雜的數據。因此, 許多設備開發人員發現他們正致力於自己開發數據管理方案。在應用需 求增長時,普通的數據管理方案維護和擴展起來是特別困難的。 另外,標准化的趨勢,商用現貨(ommercial off-the-shelf,COTS) 嵌入式操作系統,遠離許多私有系統的不完整環境,從而增強資料庫的 能力。廣泛使用的操作系統的出現,比如嵌入式Linux,形成了一個用 戶群體,他們輪留進行資料庫和其他工具開發(包括商業的和非商業 的),以不斷增強開發平台。 因此,設備開發人員開始轉向商業資料庫,但已有的嵌入式DBMS 軟體還不理想。嵌入式資料庫最初出現在10年前,當時用於支持商業系 統,帶有包括復雜緩存邏輯和異常終止恢復等功能。但在一個設備上, 例如,在一個機頂盒或者下一代傳真機中,這些能力通常毫無必要,並 且應用程序容易出現超出可用內存和CPU資源的現象。 另外,建立傳統資料庫時是將數據存儲在磁碟上。作為一種機械過 程,磁碟的I/O是非常昂貴的,尤其是要取得高性能的話。對於嵌入式 系統來,因為需要實時執行,因此相對而言,傳統資料庫就太慢了。 內存資料庫出現的目的特別針對於滿足嵌入式系統的性能需求和資 源能力。正如其名字所暗示的,IMDS完全駐留在內存中,它們不會存儲 到磁碟上。
⑨ 什麼是內存資料庫
傳統資料庫的大量數據是存入計算機硬碟的,而硬碟的讀寫速度較慢(遠低於內存的讀寫數據)。因此有內存資料庫將數據整體保存在內存中,並定期同步在硬碟中。此方式的數據操作速度很快