簡單的說,資料庫(英文dtabase)就是乙個存放資料的倉庫,這個倉庫是按照一定的資料結果(資料結構是指資料的組織形式或資料之間的聯絡)來組織、儲存的、我們可以通過資料庫提供的多種方法來管理資料庫裡的資料更簡單的形象理解,資料庫和我們生活中存放雜物的倉庫性質一樣,區別只是存放的東西不同。
早期比較流行的資料庫模型有三種,分別為層次式資料庫、網路式資料庫和關係型資料庫。而在當今的網際網路中,最常用的資料庫模型主要是兩種,即關係型資料庫和非關係型資料庫。
關係型資料庫最典型的資料結構是表,由二維表及其之間的聯絡所組成的乙個資料組織
優點:1、易於維護:都是使用表結構,格式一致;
2、使用方便:sql語言通用,可用於複雜查詢;
3、複雜操作:支援sql,可用於乙個表以及多個表之間非常複雜的查詢。
缺點:1、讀寫效能比較差,尤其是海量資料的高效率讀寫;
2、固定的表結構,靈活度稍欠;
3、高併發讀寫需求,傳統關係型資料庫來說,硬碟i/o是乙個很大的瓶頸。
非關係型資料庫也被成為nosql資料庫,nosql的本意是「not olnly sql」
指的是非關係型資料庫,而不是「no sql」的意思,因此,nosql的產生並不是要徹底地否定非關係型資料庫,而是作為傳統關係型資料庫的乙個有效補充。nosql資料庫在特定的場景下可以發揮出難以想象的高效率和高效能。
優點:1、格式靈活:儲存資料的格式可以是key,value形式、文件形式、形式等等,文件形式、形式等等,使用靈活,應用場景廣泛,而關係型資料庫則只支援基礎型別。
2、速度快:nosql可以使用硬碟或者隨機儲存器作為載體,而關係型資料庫只能使用硬碟;
3、高擴充套件性;
4、成本低:nosql資料庫部署簡單,基本都是開源軟體。
缺點:1、不提供sql支援,學習和使用成本較高;
2、無事務處理;
3、資料結構相對複雜,複雜查詢方面稍欠。
非關係型資料庫的分類和比較:
1、文件型
2、key-value型
3、列式資料庫
4、圖形資料庫
1. 關係型資料庫通過外來鍵關聯來建立表與表之間的關係;
2. 非關係型資料庫通常指資料以物件的形式儲存在資料庫中,而物件之間的關係通過每個物件自身的屬性來決定;
比如 有乙個學生的資料:
姓名:張三,性別:男,學號:12345,班級:二年級一班
還有乙個班級的資料:
班級:二年級一班,班主任:李四
關係型資料庫中,我們建立學生表和班級表來存這兩條資料,並且學生表中的班級儲存的是班級表中的主鍵。
非關係型資料庫中,我們建立兩個物件,乙個是學生物件,乙個是班級物件,用**表示如下:
1view codeclass
student
8class
grade
非關係型資料庫中,我們查詢一條資料,結果出來乙個陣列,關係型資料庫中,查詢一條資料結果是乙個物件。
資料庫型別
特性優點
缺點關係型資料庫
sqlite、oracle、mysql
1、關係型資料庫,是指採用了關係模型來組織
資料的資料庫;
2、關係型資料庫的最大特點就是事務的一致性;
3、簡單來說,關係模型指的就是二維**模型,
而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個資料組織。
1、容易理解:二維表結構是非常貼近邏輯世界乙個概念,關係模型相對網狀、層次等其他模型來說更容易理解;
2、使用方便:通用的sql語言使得操作關係型資料庫非常方便;
3、易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大大減低了資料冗餘和資料不一致的概率;
4、支援sql,可用於複雜的查詢。
1、為了維護一致性所付出的巨大代價就是其讀寫效能比較差;
2、固定的表結構;
3、高併發讀寫需求;
4、海量資料的高效率讀寫;
非關係型資料庫
mongodb、redis、hbase
1、使用鍵值對儲存資料;
2、分布式;
3、一般不支援acid特性;
4、非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。
1、無需經過sql層的解析,讀寫效能很高;
2、基於鍵值對,資料沒有耦合性,容易擴充套件;
3、儲存資料的格式:nosql的儲存格式是key,value形式、文件形式、形式等等,文件形式、形式等等,而關係型資料庫則只支援基礎型別。
1、不提供sql支援,學習和使用成本較高;
2、無事務處理,附加功能bi和報表等支援也不好;
注1:資料庫事務必須具備acid特性,acid是atomic原子性,consistency一致性,isolation隔離性,durability永續性。
注2:資料的持久儲存,尤其是海量資料的持久儲存,還是需要一種關聯式資料庫。
注3:mysql是一款開源的關係型資料庫。
參考文獻
01資料庫的簡介
學習資料庫的意義 學習資料庫主要學習的就是如何對資料進行增刪改查操作。什麼是資料庫 資料庫實際上就是一款軟體,電腦上安裝了這款軟體之後就可以成為資料庫伺服器。為什麼使用資料庫軟體 通過資料庫來解決資料在專案中的增刪改查,由於對資料進行增刪改查是任何 中都需要用到,如果這時在每乙個 都寫一遍增刪改查的...
mysql學習01 資料庫基礎
資料庫軟體 資料庫管理系統 dbms 資料庫 通過dbms建立和操縱的容器,乙個以某種有組織的方式儲存的資料集合。表 1 庫中一種結構化的檔案,用來儲存某種特定型別的資料。2 乙個表中的資料應是同一種型別的資料。3 同一庫中的表必須不重名。4 模式 schema 描述表 庫的資訊,如 此表 庫如何儲...
MySQL資料庫簡介
mysql 是乙個真正的多使用者 多執行緒sql資料可伺服器。sql是世界上最流行的和標準化的資料庫語言。mysql 是以乙個客戶機 伺服器結構實現的,是有乙個伺服器守護程式mysqld和很多不同的客戶程式和庫組成的。sql是一種標準化語言,它使得儲存 更新和訪問資訊更容易。如果您想用sql語言為乙...