Database-Theory

什麼是儲存定義語言 (SDL)?

  • April 17, 2018

在我的Databases講座中,老師提到SQL不僅僅是一種數據定義語言(DDL)、數據操作語言(DML)和視圖定義語言(VDL),它還是一種儲存定義語言(SDL)。最後一個用法沒有附帶任何進一步的解釋或範例。

在 Internet 上搜尋有關使用 SQL 作為 SDL 的額外資訊不會產生相關結果。誰能舉一個使用 SQL 作為儲存定義語言的例子?

編輯:

諸如 MySQL 之類的規範是否可以SET storage_engine=MYISAM;算作儲存定義?它實際上與儲存的數據無關,而是與它的儲存方式有關。

您可能想請您的老師定義“SDL”。我不認為該術語出現在 SQL 標準中。我找到了這個參考(見第 3 頁),但我不同意:SQL沒有定義物理結構、每個欄位的物理字節、物理欄位順序、物理排序或“混合記錄”,無論這可能意味著什麼。SQL 根本不定義欄位或記錄,或者說任何關於數據如何儲存在磁碟上的資訊(如果它們儲存在磁碟上)。

也就是說,每個供應商都為管理員提供了一些方法來定義數據的保存位置,並且許多供應商提供了對物理儲存方面的不同級別的控制(例如 ISAM、聚集索引)。AFAIK 所有這些東西都在 SQL 標準之外。我使用了能夠理解 SQL DML 的 DBMS,但是用於定義表和儲存的機製完全不同。

我知道作為模式定義語言的首字母縮寫詞 - 模式(元數據)操作語言 http://docs.sqlalchemy.org/en/rel_0_9/core/schema.html

引用自:https://dba.stackexchange.com/questions/34563