1. 程式人生 > >MySql學習01----數據庫簡介

MySql學習01----數據庫簡介

發揮 速度 eache 學習 什麽 相對 事務 最大 表格

一. 什麽是數據庫

簡單的說,數據庫(英文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,班級:二年級一班

還有一個班級的數據:

班級:二年級一班,班主任:李四

關系型數據庫中,我們創建學生表和班級表來存這兩條數據,並且學生表中的班級存儲的是班級表中的主鍵。

非關系型數據庫中,我們創建兩個對象,一個是學生對象,一個是班級對象,用代碼表示如下:

技術分享圖片
 1 class Student {
 2     String id;
 3     String name;
 4     String sex;
 5     String number;
 6     String classid;
 7 }
 8 class Grade {
 9     String id;
10     String name;
11     String teacher;
12 }
View Code

非關系型數據庫中,我們查詢一條數據,結果出來一個數組,關系型數據庫中,查詢一條數據結果是一個對象。

數據庫
類型
特性 優點 缺點
關系型數據庫
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是一款開源的關系型數據庫。

參考文獻

https://www.cnblogs.com/wuyepeng/p/9744393.html

https://www.cnblogs.com/zylq-blog/p/7595979.html

https://blog.csdn.net/xin_ge_cheng_xu/article/details/79663549

MySql學習01----數據庫簡介