Relational-Theory

為什麼元數據必鬚根據 Codd 的 12 條規則儲存在表格單元格中

  • March 26, 2021

Codd為關係數據庫管理系統制定的 12 條規則之一是規則 1,其中規定了以下內容:

規則 1:資訊規則

所有資訊(包括元數據)都將表示為表格單元格中的儲存數據。行和列必須嚴格無序。

為什麼將元數據儲存在表中很重要?

Codd 的所有規則都不是孤立存在的。他們一起工作,為您提供今天使用現代 RDBMS 的美妙體驗,我們今天都認為這是理所當然的。因為在科德的規則之前,這個世界是一個可怕的可怕的地方,我們“年輕人”不知道,“長輩”拼命想忘記。

想像一下那個可怕的世界,對於每一項小任務,你都必須閱讀不同的使用者手冊,使用不同的程式語言,應用不同的思維方式、範式等等。

每次我很驚訝我無法從我最喜歡的 SQL 編輯器中執行一些簡單的管理任務時,我都會想到它(在我的例子中,Dbeaver,你可以使用任何其他你想要的工具,Codd 規則的另一個副作用!)。像

  • 創建使用者。
  • 給予該使用者一些補助金。
  • 創建數據庫。
  • 刪除數據庫。
  • 導入數據
  • 重命名事物。
  • 遷移東西。
  • 更新東西。
  • 讀東西。包括元數據的東西。

我可以使用一個工具來完成所有這些事情(當然,如果我有特權的話)。我不必去一些奇怪的命令行學習一些時髦的命令。我不必用地球上只有 3 個人能理解的語言編寫腳本。不,都是 SQL(規則 5“綜合數據子語言規則”)。

就規則 1 而言,與所有規則一樣,它並不是孤立存在的。想像一下,為了檢查您要添加的列是否已經存在。想像一下,您必須跳出美妙的 SQL 領域進行檢查,然後再回來添加列。不,你沒有。你快速執行:

SELECT * 
FROM information_schema.columns
WHERE table_schema = :table_schema
AND table_name = :table_name
AND column_name = :column_name

您可以再次使用 SQL 或作為 SQL 擴展的過程語言編寫腳本。永遠不要離開那個單一的生態系統,您可以在其中完成幾乎所有需要在 RDBMS 中完成的任務。

順便說一句,Codd 的規則不必嚴格地針對 RDBMS,即使它們是為此而設計的。如果允許從規則中刪除政治,它們可以適用於所有 DBMS。

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