為什麼我們要在關係型資料庫中存儲數據?

弘毅供應鏈 發佈 2024-01-12T17:12:31.434118+00:00

資料庫是用於存儲記錄和信息的地方,在供應鏈管理中最常用的資料庫是關係型資料庫,這是今天我想要介紹的內容。1.什麼是關係型資料庫?我相信讀者對於資料庫有一定的了解,所以重點介紹「關係型」的概念。

資料庫是用於存儲記錄和信息的地方,在供應鏈管理中最常用的資料庫是關係型資料庫,這是今天我想要介紹的內容。

1.什麼是關係型資料庫?

我相信讀者對於資料庫有一定的了解,所以重點介紹「關係型」的概念。關係型資料庫使用共同的屬性(Attribute)將數據分組,把每種類型的數據存儲在一個位置,並建立起了許多的連結。

這句話很抽象,首先來解釋一下屬性的概念。每個人都有屬性,例如性別、年齡和出生地等,這些是個人信息的屬性。

採購訂單有哪些屬性呢?採購訂單編號、件號(Part number)、訂單數量、每件商品的單價、到貨日期等等,這些是採購訂單的屬性。假設我們有這樣一份採購訂單。

在最頂部的一排信息就是採購訂單的屬性,如果是在Excel表格里,每個屬性就是一列,例如C列是件號。

每行的信息就是記錄,比如第2條記錄中的採購訂單編號是123456,行號是2,件號是26516,訂單數量是300。。。供應商編號是1475。

在這裡總共有4條記錄,與屬性一起構成了一張表,在關係型資料庫中也叫做實體(Entity),而資料庫就是所有表的集合。

看到這裡您可能會想「原來資料庫就是Excel表格啊!」這樣理解是片面的,我們看到的電子表格是資料庫部分的功能,Excel表格可以存儲數據,但表格之間還沒有建立關係。多個Excel表格內可能存在重複的屬性,例如在採購訂單表格里有件號的屬性,在其他表格里也有。

如果在多個表格內維護相同屬性的記錄,這是一項繁瑣的、容易出錯的工作,而關係型資料庫可以做到單一數據源(Single source of truth),數據只需要輸入或修改一次,可以在有關聯的表格內顯示更改。

2.為什麼要使用關係型資料庫?

首先我要介紹一個概念——數據建模,它的意思是把現實世界中獲取到的數據,裝入結構化資料庫的方法,然後就可以用快速和便捷的方式進行查詢和索引。

為了做到這一點,我們必須考慮到所有不同類型的數據,這些數據可能是涉及到一個項目、流程或業務,我們得要思考這些數據是如何相互關聯的。

舉個例子,在「採購訂單」表中,有多個的件號和對應的單價。每個件號可能有多個供應商在供貨,每一家的單價都是不同的,所以我們要建立「件號」的表格來管理價格。

我們需要通過關係型資料庫在表格之間建立起關聯,才能保持數據的正確性和一致性,允許多個用戶訪問數據,並讓使用者可以靈活地查詢信息。

公司的業務是經常在變化的,比如採購的策略從單一供應源改為多個渠道購買,採購業務規則就需要更新,與業務保持一致。一個設計合理的資料庫可以確保業務數據存儲在一個地點,易於使用,且有很強的適應性。

3. 關係型資料庫的規則簡介

關係型資料庫可以對存儲的數據關係設定規則或約束,讓我們先從基礎規則開始。

1)在某個表中有唯一的屬性

在Excel表格中可以有重複名稱的列(Column),而在關係型資料庫中,每個屬性或每一列都必須在某個表中有唯一的名稱。這是為了避免重複的屬性造成數據混亂,讓我們能知道所指的是哪一列。

採購訂單是資料庫中的實體,也就是表,採購訂單編號是其中的屬性,只能存在一個訂單編號,如果有2個號碼,我們就不知道哪個是正確的信息。採購訂單編號可以出現在其他表中,例如供應商發票表里也有採購訂單編號這個屬性,它們之間是具有關聯的。

2)屬性中的值來自於屬性列表

每個屬性的值應該是來自於這個屬性的所有值的清單,這句話是什麼意思?當我們準備做一份採購訂單時,只能從現有的供應商列表中進行選擇。

比如「蘇州X公司」是已經創建的記錄,我們可以選擇,如果是另一家不在列表中的供應商,在採購訂單表中就無法被選中。

這樣做可以避免輸入錯誤,有時候我們會在數據中找到許多名稱相似的值,它們的區別可能是大小寫或是空格號,但也不確定它們是不是同樣的信息。設定這個規則可以防止出現這種情況。

在上圖中,我們可以選擇3個供應商,它們來源於J列的供應商名稱下的3家公司,只能選擇在清單中的值。這個功能在Excel中是通過數據驗證來實現的。

3)每一行記錄都是唯一的

在一個好的資料庫中,每一行都應該是唯一的,不應該有重複的行。在Excel表格中,我們可以有多個重複的行。但在資料庫中,這可能是有問題的,因為我們不知道實際上指的是哪一行,這會造成重複的數據。關係型數據模型的記錄或行的排序並不重要,所以不用糾結數據的順序排列問題。

4)優秀的數據模型的特點

首先,數據模型應該是完整的。我們應該確保所有必要的業務數據都體現在系統中,不應該遺漏任何重要的信息。

其次是確保沒有多餘的數據。我們必須確保一個特定實體和該實體的同一條記錄不會被多次記錄。為什麼這一點如此重要?在同一個資料庫中不能出現兩個不同步的數據。

再次,一個資料庫和數據模型是可重複使用的,一個企業中的許多用戶都可以使用同一個資料庫。例如外部的應用程式,分析員,或是其他人想要訪問數據,他們可以使用同一個資料庫,而且數據只在同一個地方保持更新即可。

最後,數據模型需要有靈活性,能夠應對業務規則的變化,或是存儲額外數據的要求。一個設計合理的數據模型可以進行靈活地調整。

關鍵字: