建構資料模型:
-在資料庫中,我們將現實世界中的事物(如客戶、產品、訂單)抽象化成資料物件。
-透過繪製圖像,可以更直觀地了解這些物件之間的聯繫。
-舉例:
-圖片說明:
◆ 一旦我們定義了物件,就需要定義這些物件之間的關係。
◆ 物件 (Object): 在這個例子中,物件可以是「專輯 (Album)」、「藝人 (Artist)」和「歌曲 (Track)」等。
◆ 屬性 (Attribute): 物件的屬性是描述物件的特徵,例如「專輯」的屬性有「名稱」、「類型」,「歌曲」的屬性有「長度」、「名稱」等。
◆ 關係 (Relationship): 物件之間的關係表示它們之間的聯繫。例如,「歌曲」屬於某一張「專輯」,「專輯」是由某位「藝人」演唱的。
-基本規則:不要重複儲存相同的字串資料,而是使用關係來連結。
◆ 為了保持資料的一致性,應避免在不同的記錄中重複儲存相同的值。
◆ 透過建立表之間的關聯,我們可以將重複的資料抽取出來,存放在一個地方,其他表則通過外鍵來引用。例如,如果有多個訂單屬於同一個客戶,我們只需在客戶表中儲存一次客戶名稱,而在訂單表中使用客戶 ID 來引用客戶。
-在現實世界中,一個事物在資料庫中也應該只有一份對應的資料。
◆ 避免在不同的表中重複儲存相同的資料,可以減少資料庫的維護成本,並提高查詢效率。
關係型資料庫的力量:
-優勢:資料的一致性與查詢效率。
-移除重複資料: 關係型資料庫會將重複的資料儲存一次,然後在其他需要用到的地方使用「參考」(也就是外鍵)來連結。這樣做的好處是:
◆ 節省儲存空間: 不用重複儲存相同的資料。
◆ 確保資料一致性: 如果資料只存儲一次,那麼修改資料時只需要修改一個地方,避免出現不一致的情況。
「JOIN」操作:
-JOIN操作 是在SELECT操作中,用來連結多個表格的運算。
-必須透過ON子句告訴JOIN如何使用鍵值來建立表格之間的連結。
-舉例:
-圖片說明:
◆ 兩個表格:Album和Artist
◎ Album表格包含專輯的ID、藝人ID和專輯名稱。
◎ Artist表格包含藝人的ID和藝人名稱。
◎ 它們之間的關聯是透過artist_id這個欄位,也就是說,一張專輯屬於一位藝人。
◆ JOIN操作:
◎ 透過JOIN操作,可以將Album和Artist這兩個表格結合起來,找出每個專輯對應的藝人。
◎ 圖中的紫色箭頭顯示了兩個表格是如何透過artist_id欄位連結在一起的。
以上圖片皆出自於Coursera上的課程「Python for Everybody」來自University of Michigan。