1. 程式人生 > >SQL -結構化查詢語言的發展史

SQL -結構化查詢語言的發展史

Mysql linux

DDL:數據操作語言
INSERT
DELETE
SELECT
UPDATE
DML:數據定義語言
CREATE
DROP
ALTER
DCL:數據控制語言
GRANT
REVOKE

RDB對象:
庫、表、索引、視圖、用戶、存儲過程、存儲函數、觸發器、事件調度器。

    約束:
    域約束:數據類型約束
    外鍵約束:引用完整性約束
    主鍵約束:某字段能唯一標識此字段所屬的實體,並且不允許為空一張表中可以有多個
    檢查性約束:age:int

關系型數據庫:
表示層:表
邏輯層:存儲引擎
物理層:數據文件

數據存儲和查詢
存儲管理器:
        權限機完整性管理
        事務管理器
        文件管理器
        緩沖區管理器
查詢管理器:
                DML解釋器
                DDL解釋器
                DCL解釋器
查詢執行引擎

mysql是單進程多線程的系統;不會給多個進程啟動多個進程!

線程復用

mysql不支持對稱多處理器(smp),意思是不能在一個sql處理分攤到多個cpu上處理,因此在處理速度上面就慢。

關系運算:
投影:只輸出指定的字段
選擇:只輸出符合條件的行
自然鏈接:具有相同名字的所有屬性值上取值相同的行
笛卡爾積:

SQL查詢語句:
sequel ---> SQL
SQL-86
SQL-89
SLQ-92
SQL-99
SQL-08

SQL語言的組成部分:
DDL:
DML:
完整性定義語言:DDL的一部分功能
視圖定義:
事務控制:
嵌入式SQL和動態SQL:
授權:DCL

使用程序設計語言如何RDBMS交互:
         嵌入式SQL:與動態SQL類似,但其語言必須程序編譯時完全確定下來;
         ODBC;針對的程序為 C
         動態SQL:程序設計語言使用函數(mysql_conect())或者方法與RDBMS服務器建立連接,並進行交互;通過建立連接向SQL服務器發送查詢語句,並將結果保存至變量中而後進行處理。
        JDBC;針對的程序為 JAVA

MYSQL支持插件式存儲引擎
mysql 5.5.8的之前的存儲引擎是MyISAM,不支持事務。特別適合查詢比較多但是修改比較少的場景。
mysql 5.5.8版本之後的存儲引擎是InnoDB,   

表管理器:負責創建、讀取或修改表定義文件;維護表描述高速緩存;管理表鎖。
表結構定義文件。
表修改模塊:表創建、刪除、重命名、移除、更新或插入之類的操作
表維護模塊:;檢查、修改、備份、恢復、優化(碎片整理)及解析;

文件中記錄組織:
堆文件組織:一條記錄可以放在文件中的任何地方。
順序文件組織:根據”搜索碼“值順序存放;
散列文件組織:

表結構定義文件;表數據文件
表空間:table space

SQL -結構化查詢語言的發展史