關係型數據庫理論及MySQL微觀結構

    關係數據庫,是建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。關係模型由關係數據結構、關係操作集合、關係完整性約束三部分組成。

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微觀結構

wKiom1XT4d2jDynjAAFInVqIXRY799.jpg

連接管理器:監聽並接受用戶請求;

線程管理器:創建新線程或以線程重用方式給用戶一個響應線程;

用戶模塊:檢查用戶連接權限;

解析器:解析查詢並生成解析樹;

訪問控制模塊:驗證用戶是否有權限操作其想操作的對象;

優化器:負責創建響應請求時的最佳查詢策略;

表定義模塊:表創建、刪除、重命名、移除、更新或插入之類的操作;
表維護模塊:檢查、修改、備份、恢復、優化(碎片整理)及解析;

表管理器:負責創建、讀取或修改表定義文件,維護表描述符高速緩存,管理表鎖;

9.文件中記錄組織:表中的每一行在文件中的存儲方式
    堆文件組織:一條記錄可以放在文件中的任何地方;
    順序文件組織:根據“搜索碼”值順序存放;
    散列文件組織:對錶的某個字段或某些字段做hash運算,根據結果存放在某個散列容器(桶)中;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章