關係數據庫,是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。關係模型由關係數據結構、關係操作集合、關係完整性約束三部分組成。
1.數據的組織結構:層次模型、網狀模型、關係模型。
2.常見的關係模型有4種:關係模型、實體-關係模型、對象關係模型、半結構化數據模型(XML)。
3.約束分類:
域約束:數據類型約束;
外鍵約束:引用完整性約束;
主鍵約束:某字段能唯一標識此字段所屬的實體,並且不允許爲空,一張表中只能有一個主鍵;
惟一鍵約束:每一行某字段不允許出現相同值,可以爲空一張表可以有多個惟一鍵;
檢查性約束:約束某字段不能出現違反常理的數值,MySQL對此支持有限;
4.數據庫邏輯關係:
表示層:表
邏輯層:存儲引擎
物理層:數據文件
5.數據的存儲和查詢:
存儲管理器:權限及完整性管理器、事務管理器、文件管理器、緩衝區管理器;
查詢管理器:DML解釋器、DDL解釋器、查詢執行引擎;
6.關係運算
投影:只輸出指定字段
選擇:只輸出符合條件的行
自然連接:兩張表中具有相同名字的屬性上所有取值相同的行連接輸出
笛卡爾乘積:(a+b)*(c+d)=ab+ad+bc+bd
並:兩樣關係彼此之間都有的部分
7.使用程序設計語言如何跟RDBMS交互:
嵌入式SQL:與動態SQL類似,但其語言必須程序編譯時完全確定下來;
動態SQL:程序設計語言使用函數(mysql_connect())或者方法與RDBMS服務器建立連接,並進行交互;通過建立連接向SQL服務器發送查詢語句,並將結果保存至變量中而後進行處理;
8.MySQL微觀結構
連接管理器:監聽並接受用戶請求;
線程管理器:創建新線程或以線程重用方式給用戶一個響應線程;
用戶模塊:檢查用戶連接權限;
解析器:解析查詢並生成解析樹;
訪問控制模塊:驗證用戶是否有權限操作其想操作的對象;
優化器:負責創建響應請求時的最佳查詢策略;
表定義模塊:表創建、刪除、重命名、移除、更新或插入之類的操作;
表維護模塊:檢查、修改、備份、恢復、優化(碎片整理)及解析;
表管理器:負責創建、讀取或修改表定義文件,維護表描述符高速緩存,管理表鎖;
9.文件中記錄組織:表中的每一行在文件中的存儲方式
堆文件組織:一條記錄可以放在文件中的任何地方;
順序文件組織:根據“搜索碼”值順序存放;
散列文件組織:對錶的某個字段或某些字段做hash運算,根據結果存放在某個散列容器(桶)中;