0

我剛剛完成了一個數據庫課程,深入到數據庫的內部。我試圖將我們在課程中學到的所有術語連接起來,但我感覺我缺少一些片段。這裏是我所知道的:數據庫術語之間的區別

  • 數據庫:數據結構的「邏輯」表示 - 可互換地用來指物理數據,關係案例中的「表格」數據和DBMS。
  • 數據庫管理系統(DBMS):爲管理員/用戶提供開發加速訪問等機制的工具。系統理解數據的統計信息,並可執行查詢優化以開發良好的執行路徑。例如:PostgreSql,MySQL,MongoDB。我想很多人會混淆DBMS和數據庫是一回事嗎?
  • 數據存儲在磁盤上。這些數據不是由文件系統管理的,但是DBMS執行與I/O有關的系統調用嗎?
  • 像map/reduce這樣的框架被用於分佈式數據庫,因爲它們提供了任務的「並行化」,因爲我可以有很多映射器,框架抽象了系統細節,比如可伸縮性,負載平衡等。我很困惑,減少僅適用於HDFS,HBase等。
  • 最終所有的數據都存儲在一個磁盤上,而DBMS是這個數據寫入的位置和結構的主腦。

我需要澄清和指導我的理解,我想連接點。

回答

1
  1. 概念,邏輯和物理模型被廣泛誤解。在我看來:

    • 概念建模是根據業務領域進行的,客戶,員工,發票等。我們使用此級別分析業務需求並與利益相關方進行溝通。我使用陳式ER圖進行概念數據建模。概念模型對於實現模型是中性的。

    • 邏輯建模是關於形式邏輯,關係理論和一致性。我們的重點是域,關係,依賴關係,規範化,冗餘等。關係圖是可用的,但我主要是使用純文本。

    • 物理建模是關於如何在DBMS或物理系統中實現邏輯模型。如果我的目標是SQL DBMS,那麼我的物理模型將包含表格,數據類型,外鍵約束等。物理模型可以使用任何特定於DBMS的功能,例如某些特殊類型的索引或放置規則。

  2. 數據庫管理系統提供並管理對數據的所有訪問,它們不只是優化查詢。他們管理結構,存儲,檢索,完整性,優化,身份驗證,授權等。正如你所說,DBMS和數據庫經常被混淆。如果你對OOP感到滿意,可以這樣想:DBMS是我們傳遞消息的對象。數據庫是其封裝狀態。

  3. 某些DBMS建立在文件系統之上,有些DBMS完全繞過文件系統。有些甚至建立在其他DBMS之上。

  4. 數據不僅存儲在磁盤上。實際上,這個概念與存儲無關。 「數據」是「datum」的複數,拉丁詞是「給定的東西」。數據首先在統計表的上下文中輸入英文。在數學上,數據是關聯 - 一個域中的一組值,一個包含一個值的變量,一個集合之間的關係等。在計算機系統中,數據通常是指編碼值,可以在函數和過程之間存儲或傳送。

  5. Map/reduce並不侷限於分佈式數據庫,而是將其視爲可分發數據處理。它可以與集中或分佈式數據庫一起工作。儘管一些系統基於或實施了地圖/縮小技術,但並不侷限於這些系統。圖書館有許多種語言可供使用,並且這項技術可以由任何具有所需知識的人來實施。

我希望這有助於。讓我知道你是否需要進一步澄清。

+0

這是一個很好的總結需要連接的點。我會補充說,關於實現模型含義關係或其他方面,概念是中性的,邏輯與關係或SQL實現相關聯,並且物理可以包括DBMS特定功能,例如某些特殊類型的索引或放置規則。 –

+0

感謝您的讚揚和反饋,@WalterMitty。你在概念和物理層面上提出了很好的觀點,雖然我同意邏輯層次與關係理論相關聯(科德定理證明了等價於一階邏輯的關係模型),但我並不認爲這兩者與一個SQL實現。雖然SQL DBMS支持與邏輯模型相當接近的物理實現,但對非集合和依賴關係的理解在非SQL數據庫中同樣重要。 – reaanb

+0

我會接受的是,將關係模型綁定到SQL實現有點過分。在我的實踐中,我創建的每個關係數據庫都是針對一些DBMS(如Oracle),它既是SQL又是關係數據庫(關閉近似)。我忽略了不是基於SQL的關係系統。 –

相關問題