在實際操作的資料表格中,有一串的重要專用名詞是需要先知道的。若你有用過 Microsoft Excel 之類的試算表辦公室軟體的話,你已經無形中內建部分觀念了。
姓名 | 電子郵件信箱 | 地址 | 部門代碼 |
---|---|---|---|
user1 | user1@a.com | 台北市中正區重慶南路一段122號 | A01 |
user2 | user2@a.com | 台北市信義區市府路1號 | A01 |
user3 | user3@a.com | 台北市信義區仁愛路四段505號 | A02 |
在講到欄列之前,要先內建的冷知識點為:台灣和中國關於欄列的概念是顛倒的。以下是以「直欄橫列」的概念為基礎撰寫的。
資料欄 (Column)
用於表現特定欄位屬性的資料,以「垂直」的方式呈現。用上圖表格來看,會有「姓名、電子郵件信箱、地址、部門代碼」這四個資料欄 Columns
資料列 (Row)
用於表現單筆記錄,以「橫向」的方式呈現。用上圖表格來看,user1 使用者會有其個人的姓名、電子郵件信箱、地址和部門代碼。這一筆資料佔據了一個資料列 Row。
主鍵 (Primary, PK)
用來表示每一筆資料的唯一性,它不可以重複或者是空值(NULL)。例如說以下的部門代碼表:
部門代碼 | 名稱 |
---|---|
A01 | 業務部 |
A02 | 製造部 |
以部門代碼當作主鍵就很適合,因為代碼會具有唯一性,而且每一筆資料都需要有這個值。另外,一個資料表中的主鍵,對其他資料表而言,就是用於建立關聯的值,把此值填入其他資料表的欄位中即可。
姓名 | 電子郵件信箱 | 地址 | 部門代碼 |
---|---|---|---|
user1 | user1@a.com | 台北市中正區重慶南路一段122號 | A01 |
user2 | user2@a.com | 台北市信義區市府路1號 | A01 |
user3 | user3@a.com | 台北市信義區仁愛路四段505號 | A02 |
部門代碼 | 名稱 |
---|---|
A01 | 業務部 |
A02 | 製造部 |
資料庫中可以接受的關聯類型有三種。
甲乙兩個資料表內,若取出甲的一筆記錄,只能對應到乙資料庫的一筆記錄,反之亦然。舉過現實生活中的例子:個人護照和個人姓名,這兩者彼此之間就是一對一關係。
你或許會好奇其實這兩個資料表合併在一起也無不可,但如果拆開的話,反而易對機密資料設定權限,不容易被有心人士全部取得。
甲乙兩個資料表內,若取出甲的一筆記錄,可以對應到乙資料庫的多筆記錄。但反向從乙資料庫抽取一筆記錄,卻只能對應到甲資料庫的一筆記錄。例如:商品種類與商品的關係。
一個種類旗下,可以有很多個商品;每一個商品,卻只屬於一個類別。
甲乙兩個資料表內,若取出甲的一筆記錄,可以對應到乙資料庫的多筆記錄,反之亦然。例如有「使用者」和「餐廳」兩個資料表,若你要建立個「最愛餐廳」的資料表,那麼一個使用者可以選擇多個餐廳,而一間餐廳,同樣也可以被多個使用者選擇。若仔細觀察會發現:
結合這兩者,就組合成多對多關係。在「最愛餐廳」的欄位內,就會儲存「使用者代號」和「餐廳代號」
下一篇會談論到 Schema 和 SQL 的指令敘述