CH1 INTRO

資料庫是多user 使用。以下是名詞定義

DBMS

資料庫管理套件(程式),負責處理資料儲存、同步、資料庫安全。

  • Improve data sharing, security, access
  • Better data integration
  • Minimized data inconsistency (資料不一致性)
  • For decision making
  • Improve programmers production

Metadata

定義資料庫中所有表格結構、格式,表格間的關係。

SQL language

呼叫 DBMS 使用的語言,只藉由他使用資料庫。

Logical vs Physical

  • Logical: how humans view the data
  • Physical: how the computer work with the data

Primary key vs Foreign key

  • Primary Key (PK) :是用來「唯一識別」資料表中每一筆紀錄(資料列)的一個屬性(或一組屬性的組合)。它是由候選鍵(Candidate key)中被挑選出來作為主要識別依據的鍵。

    • 唯一性
    • 值不可為空
    • 不可更改
    • 範例:
      在一個「學生(STUDENT)」資料表中,「學號(STU_NUM)」就是一個適合的主鍵,因為每個學生的學號都不一樣,且每個學生都一定會有學號。
  • Foreign key(FK) :存在於某個資料表中的屬性(或屬性組合),它的值必須「對應到另一個資料表的主鍵值」,或者是空值(Null)。

    • 範例:
      假設有「產品(PRODUCT)」與「供應商(VENDOR)」兩個資料表。供應商資料表的主鍵是「供應商代碼(VEND_CODE)」。若我們將 VEND_CODE 加入產品資料表中,它在產品資料表裡就是一個「外來鍵」,用來標示該產品是由哪一家現有的供應商所提供的。

CH2 Data Models

2.1 Data Models

在資料庫設計中,資料模型(Data model) 是一個用來呈現複雜現實世界資料結構的相對簡單(通常是圖形化)的表示法或抽象概念。 它的主要功能與重要性包括以下幾點:

  • 作為溝通工具:資料模型能促進資料庫設計師、應用程式設計師與終端使用者之間的互動與溝通。一個完善的資料模型甚至能幫助組織內部更清楚地了解其業務的實際運作方式。
  • 資料庫的藍圖:就像蓋房子需要藍圖一樣,要建立一個良好且符合需求的資料庫,就必須先建立一個合適的資料模型。它幫助我們理解現實世界環境的複雜性,並將其轉化為系統能支援的特定問題領域結構。

所有資料模型都由以下四個基本建構區塊(Basic Building Blocks) 組成:

  • 實體(Entity) :指在現實世界中,我們需要收集與儲存資料的人、事、時、地、物或概念。
  • 屬性(Attribute):用來描述實體的各種特徵(例如:一個「顧客」實體可能會包含姓名、電話、地址等屬性)。
  • 關聯(Relationship):描述不同實體之間的關聯性。主要分為一對多(1:M)、多對多(M:N)及一對一(1:1)三種類型。
  • 限制條件(Constraint):對資料施加的限制或規則(例如:學生的 GPA 必須介於 0.0 到 4.3 之間),這對於確保資料完整性(Data Integrity)非常重要。

此外,一個準備好可以進行實作的資料模型,至少需要包含三個核心部分:儲存終端使用者資料的資料結構描述、保證資料完整性的可強制執行規則,以及支援現實世界資料轉換的資料操作方法。