DBMS(DataBase Management System) 數據庫管理系統
RDBMS(Relational DataBase Management System) 關係型數據庫管理系統
數據的組織結構:
層次型
網狀型
關係型(二維關係表) 注:一張表可能在系統中以多個文件存在。
關係:關係代數運算
投影:只輸出指定屬性
選擇:只輸出符合條件的行
自然連接
笛卡爾集
交集
並集
差集
全集
補集
在mysql定義中,定義了一些維護數據庫完整的規則,即表的約束:
主鍵約束(PRIMARY KEY):某字段能唯一標識此字段所屬的實體,不爲空
單字段主鍵 字段名 數據類型 PRIMARY KEY
多字段主鍵 PRIMARY KEY(字段1,字段2...)
外鍵約束 (FOREIGN KEY):引用完整性約束
非空約束 (NOT NULL):字段的值不能爲NULL
字段名 數據類型 NOT NULL
唯一性約束 (UNIQUE):字段的值不能重複出現
字段名 數據類型 UNIQUE
檢查性約束:mysql對其支持有限
mysql爲單進程,
多線程(防止權限交叉):
守護進程
應用線程
數據庫一般爲系統性能的瓶頸,之所以這麼說,是因爲一個線程的創建(基於大數據的查詢),有可能會消耗大量內存,因此生產環境一般使用64bit系統,並且儘量避免單點併發,同時做數據庫的緩存和線程複用。
MYSQL插件式存儲引擎(是基於表的)
5.5.8: MyISAM(適用於查詢比較多,修改比較少的,即數據倉庫,無事務,表鎖)
.frm:表結構定義文件
.MYD:表數據
.MYI:索引
5.5.8以後: InnoDB(適用於在線事務處理系統,支持行鎖)
.frm:表結構定義文件
.ibd:表空間(數據和索引)
用戶發起連接請求,連接管理器接受並轉發給線程管理器,線程管理器生成一個線程,接着由用戶模塊來驗證相應的訪問權限,權限正確,建立連接。命令分發模塊,執行命令,若緩存中有相應結果則返回,並記錄日誌,否則,通過解析器解析命令,交給底層相關模塊。
mysql(client)mysqld(server)位於同一臺主機
unix/linux:使用socket通信
windows:通過共享內存(memory)或者管道(pipe)通信
不在同一臺主機
基於TCP/IP協議通信
mysql客戶端工具:
mysql
mysqldump 備份
mysqladmin
mysqlcheck
options
-u
-h
-p
--protocol
--port