1. 什麼是資料庫 資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。 每個資料庫都有一個或多個不同的 API 用於創建,訪問,管理,搜索和複製所保存的數據。 我們也可以將數據存儲在文件中,但是在文件中讀寫數據速度相對較慢。 所以,現在我們使用關係型資料庫管理系統(RDBMS)來 ...
1. 什麼是資料庫
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。
每個資料庫都有一個或多個不同的 API 用於創建,訪問,管理,搜索和複製所保存的數據。
我們也可以將數據存儲在文件中,但是在文件中讀寫數據速度相對較慢。
所以,現在我們使用關係型資料庫管理系統(RDBMS)來存儲和管理大數據量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的數據。
RDBMS 即關係資料庫管理系統(Relational Database Management System)的特點:
-
- 1.數據以表格的形式出現
- 2.每行為各種記錄名稱(欄位)
- 3.每列為記錄名稱所對應的數據域
- 4.許多的行和列組成一張表單
- 5.若幹的表單組成database
2、關係型資料庫與非關係型資料庫的區別
1、關係型資料庫最典型的數據結構是表,由二維表及其之間的聯繫所組成的一個數據組織
優點:
1、易於維護:都是使用表結構,格式一致;
2、使用方便:SQL語言通用,可用於複雜查詢;
3、複雜操作:支持SQL,可用於一個表以及多個表之間非常複雜的查詢。
缺點:
1、讀寫性能比較差,尤其是海量數據的高效率讀寫;
2、固定的表結構,靈活度稍欠;
3、高併發讀寫需求,傳統關係型資料庫來說,硬碟I/O是一個很大的瓶頸。
優點:
1、格式靈活:存儲數據的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應用場景廣泛,而關係型資料庫則只支持基礎類型。
2、速度快:nosql可以使用硬碟或者隨機存儲器作為載體,而關係型資料庫只能使用硬碟;
3、高擴展性;
4、成本低:nosql資料庫部署簡單,基本都是開源軟體。 缺點:
1、不提供sql支持,學習和使用成本較高;
2、無事務處理;
3、數據結構相對複雜,複雜查詢方面稍欠。 3、關係型資料庫術語
- 資料庫: 資料庫是一些關聯表的集合。
- 數據表: 表是數據的矩陣。在一個資料庫中的表看起來像一個簡單的電子錶格。
- 列: 一列(數據元素) 包含了相同類型的數據, 例如郵政編碼的數據。
- 行:一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
- 冗餘:存儲兩倍數據,冗餘降低了性能,但提高了數據的安全性。
- 主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
- 外鍵:外鍵用於關聯兩個表。
- 複合鍵:複合鍵(組合鍵)將多個列作為一個索引鍵,一般用於複合索引。
- 索引:使用索引可快速訪問資料庫表中的特定信息。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
- 參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證數據的一致性。
- 表頭(header): 每一列的名稱;
- 列(col): 具有相同數據類型的數據的集合;
- 行(row): 每一行用來描述某條記錄的具體信息;
- 值(value): 行的具體信息, 每個值必須與該列的數據類型相同;
- 鍵(key): 鍵的值在當前列中具有唯一性。
4、MySql資料庫
MySQL 是一個關係型資料庫管理系統,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 公司。MySQL 是一種關聯資料庫管理系統,關聯資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
- MySQL 是開源的,所以你不需要支付額外的費用。
- MySQL 支持大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。
- MySQL 使用標準的 SQL 數據語言形式。
- MySQL 可以運行於多個系統上,並且支持多種語言。這些編程語言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 對PHP有很好的支持,PHP 是目前最流行的 Web 開發語言。
- MySQL 支持大型資料庫,支持 5000 萬條記錄的數據倉庫,32 位系統表文件最大可支持 4GB,64 位系統支持最大的表文件為8TB。
- MySQL 是可以定製的,採用了 GPL 協議,你可以修改源碼來開發自己的 MySQL 系統。