科普資料庫系列文章:(2/4) 科普關聯式資料庫

面臨AI的時代、BI的時代,經常接觸到的資料來源形形色色,不管是結構化資料抑或是非結構化資料,總是讓非資訊科技背景的學生與職場人士望而卻步,而進入社會的競爭,增長資料庫相關的觀念與科普一些資料庫相關的術語,在學習其他資訊影與的軟硬體,應該會有一定程度的幫助才是,因此,在此特別摘筆者在資料庫系統領域裡曾有的著作,重新以較直白易懂的說明與範例,為大家補充一下資料庫的相關背景知識、基本觀念與專有名詞。

前言

關聯式資料庫(Relational Database)強調的是應用程式不與資料的內部結構有任何的依存關係,應用程式所面對的只是資料表格般的結構,並不需了解其內部組織,使得資料具有「資料獨立」(Data Independence) 的概念。此外,資料也是以記錄(Record)為處理單位,並且將記錄以表格方式組織起來,依照一定的結構,借助集合、代數等數學概念和方法來處理資料庫中的資料,進而建構資料表與資料表之間的關係模型,如此加以實現真實世界中各種實體與實體之間的聯繫。

在Excel 的操作環境裡,若未運用資料模型(Data Model),也就是Power Pivot for Excel 工具,那麼資料與資料之間的關聯,大都是使用諸如VLOOKUP、INDEX、MATCH 等查找函數來建立參照關係。但純粹的工作表環境,畢竟不是真正的關聯式資料庫系統,在Excel 環境裡還是使用資料模型來建置關聯式資料較為專業、靈活。

基本上關聯式資料庫有以下幾項特質:

  • 由相互關係正規化的關聯資料表格所構成
  • 關聯資料表之間是藉由相同的欄位值而連繫
  • 關聯資料表裡的所有屬性內含值都是基元值(Atomic Value)

認識關聯式資料庫

若是僅以一張資料表來存在所有的資料,勢必浪費不少儲存空間,因為,有太多的資料是重複的。例如:一筆訂單的儲存,會有太多的「訂單編號」、「訂單日期」、「客戶編號、「客戶名稱」、「客戶電話」與「付款方式」是重複儲存的。在進行資料登錄的時候,也將發生更多輸入錯誤的可能性,在修改與維護上也不方便,因此,適時的將資料分類,根據不同的目的與需求而儲存在各資料表中,再透過資料表彼此之間的關鍵欄位,建立連結關係,這也正是關聯式資料庫的原意。

所有的資料都儲存放在同一張資料表裡,將發生重複性的資料太多。

而在關聯式資料庫中,對使用者而言,資料庫是一些資料表(Data Table)的集合,再藉由表格的處理或表格之間的數學運算(集合運算),取得所要的結果(運算結果也是一種表格的形式)。因此,了解關聯式資料庫的專有名詞,以及資料表與資料表之間的關係建立與維護,當然是學習關聯式資料庫的第一課題。

簡單的說,資料庫裡的資料表(Table)是由欄(Column)、列(Row)所組成的二維架構,縱向欄是一個個的資料欄位(Data Field),又稱為資料行(Data Column);橫向列是一筆筆的資料記錄(Data Record),又稱為資料列(Data Row),行列交錯的儲存方格常被稱為儲存格(Cell)。

表格(Table)或稱「關聯」(Relation)

我們所俗稱的資料表格(Data Table) 在資料庫的研究領域裡,則是稱為關聯(Relation)。

欄(Column)、欄位(Field)或稱「屬性」(Attribute)

資料表格裡的縱向欄(Column)為資料欄位(Data Field),在資料庫的研究領域裡,稱為屬性(Attribute)。

列(Row)、記錄(Data Record)或稱「值組」(Tuple)

資料表格裡的橫向列(Row)為資料記錄(Data Record),在資料庫的研究領域裡,稱為值組(Tuple)。

補充說明 – 是欄?還是列?簡體、繁體不一樣。

由於中文系統常見的語系是「簡體」中文與「繁體」中文(即正體中文),而兩岸在英文翻譯的用詞字上,要請大家特別注意一個地方,那就是:

  • 垂直縱向英文的用字是Column,在繁體中文時,是翻譯成「欄」;而簡體中文是將Column這個單字翻譯成「列」。
  • 水平橫向英文的用字是Row,在繁體中文時,是翻譯成「列」;而簡體中文是將Row這個單字翻譯成「欄」。
  • 因此,大家在閱讀簡體字的文章與繁體字的文章時,對於資料庫資料表的欄、列敘述情境,大家要特別注意喔!

 

<(1)首篇:通識資料庫>   <(2) 科普關聯式資料庫>   <(3) 關聯式資料庫的專有名詞>   <(4) 關聯式資料庫特性>