天天看點

mysql初講

一、資料庫的概念

1、資料庫的組成

資料(data)

描述事物的符号記錄

包括數字,文字、圖形、圖像、聲音、檔案記錄等

以“記錄”形式按統一格式進行存儲

将不同的記錄組織在一起

用來存儲具體資料

資料庫

表的集合,是存儲資料的倉庫

以一定的組織方式存儲的互相有關的資料集合

①、表

記錄:行

字段(屬性):列

以行+列的形式就組成了表(資料存儲在表中)

②、資料庫

多張表存儲在資料庫中

“關系型資料庫”表與表字段/屬性的關聯

2、資料庫類型

①、關系型資料庫

存儲的往往是字元、字元串、數值、布爾值等

代表有:Mysql (Oracle公司) 、SQL server (微軟) 、access (微軟公司office産品)"oracle、DB2 (IBM公司) 、 sybase (sybase)等等

②、非關系型資料庫(NoSQL (Not Only SQL))

存儲的往往是圖檔、視訊、語音等

代表有:MongoDB 、 Redis (記憶體資料庫/緩存資料庫) K-V鍵值對、與之類似的Mcmcache K-V鍵值對

redis 與 Mcmcache

相同點 存儲高熱資料(在記憶體中高速運作)

不同點 redis可以做持久化儲存,可以存儲對象

3、資料庫的管理系統(DBMS)

是實作對資料庫資源有效組織、管理和存取的系統軟體

功能:資料庫的建立和維護功能、資料定義功能、資料操控功能、資料庫的運作管理功能、通信功能

4、資料庫系統(DBS)

是一個人機系統,由硬體、OS、資料庫、DBMS、應用軟體和資料庫使用者組成

使用者可以通過DBMS或應用程式操作資料庫

二、資料庫系統發展史

1、第一代資料庫

自20世紀60年代起,第一代資料庫系統問世

是層次模型與網狀模型的資料庫系統

為統一管理和共享資料提供了有力的支撐

2、第二代資料庫

20世紀70年代初,第二代資料庫——關系資料庫開始出現

20世紀80年代初,IBM公司的關系資料庫系統DB2問世,開始逐漸取代層次與網狀模型的資料庫,成為行業主流

到目前為止,關系資料庫系統仍占領資料庫應用的主要地位

3、第三代資料庫

自20世紀80年代開始,适應不同領域的新型資料庫系統不斷湧現

面向對象的資料庫系統,實用性強、适應面廣

20世紀90年代後期,形成了多種資料庫系統共同支撐應用的局面

一些新的元素被添加進主流資料庫系統中,例如:Oracle支援的“關系-對象"資料庫模型

4、目前主流使用

目前主流資料庫的使用方法為:SQL+NoSQL,能在高并發時,NoSQL能為SQL進行相應的減壓

三、當今主流資料庫

1、SQL Server (微軟公司産品)

面向Windows作業系統

簡單、易用

2、Oracle (甲骨文公司産品)

面向所有主流平台

安全、完善、操作複雜

3、DB2 (IBM公司産品)

面向所有主流平台

大型、安全、完善

4、MySQL (甲骨文公司收購)

免費、開源、體積小

四、關系型資料庫

1、介紹

1、關系資料庫系統是基于關系模型的資料庫系統

2、關系模型的資料結構使用簡單易懂的二維資料表

3、關系模型可用簡單的"實體-關系"(E-R)圖來表示

4、E-R圖中包含了實體(資料對象)、關系和屬性三個要素

2、實體

也稱為執行個體,對應現實世界中可差別與其他對象的“事件”或“事物”

如銀行客戶、銀行賬戶等

3、屬性

實體所具有的某一特性,一個實體可以有多個屬性

如“銀行客戶”實體集中的每個實體均具有姓名、住址、電話等屬性

4、聯系

實體集之間的對應關系稱為聯系,也稱為關系

如銀行客戶和銀行賬戶之間存在“儲蓄”的關系

5、組成

所有實體機實體之間聯系的集合構成了一個關系型資料庫

五、非關系型資料庫

非關系資料庫也稱為NoSQL (Not Only SQL)

存儲資料不以關系模型為依據,不需要固定的表格式

非關系型資料庫的優點

資料庫可高并發讀寫

對海量資料高效率存儲與通路

資料庫具有高擴充性與高可用性

常用的非關系資料庫:Redis、mongoDB等

關系型資料庫 适用于對關系很明确的資料建立模型、定義、存儲資料

非關系型資料庫 存儲海量資料,給與"大資料“進行分析,篩選出有價值的部分

六、Mysql 資料庫

1、簡介

一款深受歡迎的開源關系型資料庫

Oracle旗下的産品

遵守GPL協定,可以免費使用與修改

特點

性能卓越、服務穩定

開源、無版權限制、成本低

多線程、多使用者

基于C/S(用戶端/伺服器)架構

安全可靠

2、商業版與社群版

MySQL商業版是由MySQLAB公司負責開發與維護,需要付費才能使用

MySQL社群版是由分散在世界各地的MySQL開發者愛好者一起開發與維護,可以免費使用

兩者差別

  • 商業版組織管理與測試環節更加嚴格,會比社群版更穩定
  • 商業版不遵守GPL,社群版遵從GPL可以免費使用
  • 商業版可獲得7*24小時的服務,社群版則沒有

七、mysql 存儲引擎