歡迎來到資料庫的世界!
你好!今天,我們要深入探討 AS Level IT 學習旅程中最重要的一個章節:資料庫與檔案概念 (Database and File Concepts)。如果你曾經使用 Netflix 尋找電影,或者學校在電腦上記錄你的成績,那你已經與資料庫互動過了!
在這些筆記中,我們將拆解資料庫是如何建立的、它們如何保持條理,以及它們如何幫助企業做出重大決策。別擔心,如果起初看起來內容很多——我們會一步一步慢慢來!
10.1 建立資料庫:基本構建模組
在我們儲存資料之前,需要先決定它屬於哪種「類型」。這就像為食物選擇合適的容器——你總不會把湯裝在紙盒裡吧!
指定資料類型 (Data Types)
每個「欄位」(Field,例如「名字」這類單一類別的資訊) 都需要一個資料類型。你需要知道以下常見的類型:
• 文字 (Text): 用於文字和句子。
• 字母數字 (Alphanumeric): 字母和數字的組合 (例如車牌號碼)。
• 數值 (Numeric): 僅限數字。可以是整數 (Integer) 或小數 (Decimal)。
• 日期與時間 (Date and Time): 用於特定的日曆日期或時鐘時間。
• 布林值 (Boolean): 用於只有兩個選項的情況,例如是/否或真/假。
資料庫的「鍵」(Keys)
為了保持資料條理分明,我們使用稱為鍵的特殊欄位。這些就像是資料的識別證。
1. 主鍵 (Primary Key): 這是一個唯一欄位,用來識別每一筆記錄。沒有兩個人可以擁有相同的主鍵 (就像你的身份證號碼或學號)。
2. 外鍵 (Foreign Key): 這是從一個資料表中提取出來,並出現在另一個資料表中,用來連結兩者的主鍵。
3. 複合鍵 (Compound Key): 有時候,單一欄位不足以區分唯一性,我們就會合併兩個欄位來組成一個唯一 ID。
4. 組合鍵 (Composite Key): 與複合鍵類似,這是一個由多個屬性組成的主鍵,用來唯一識別一個實體 (Entity) 的出現。
平面檔案 (Flat Files) 與關聯式資料庫 (Relational Databases)
平面檔案就像一張巨大的試算表。它很簡單,但容易導致許多錯誤和資料重複。
關聯式資料庫則是將多個資料表連結在一起的集合。
為什麼要用關聯式? 它能減少資料冗餘 (Data Redundancy) (即兩次儲存相同的東西),並且讓你在一個地方更新資訊就能同步,非常方便。
關聯 (Relationships):資料表之間如何溝通
資料表之間的連結主要有三種方式:
• 一對一 (1:1): 一個人有一本護照。一本護照屬於一個人。
• 一對多 (1:M): 一位母親可以有多個孩子,但每個孩子只有一位親生母親。(這是最常見的類型!)
• 多對多 (M:M): 許多學生可以修讀許多科目,而每個科目也有許多學生。
參照完整性 (Referential Integrity)
這聽起來很深奧,但它其實只是指「保持連結的健康」。參照完整性確保你不能讓一個外鍵指向一個不存在的主鍵。就像確保如果「家長」記錄被刪除,資料庫中就不會殘留「孩子」的記錄一樣!
驗證 (Validation) 與核實 (Verification)
我們需要確保輸入的資料是正確的。
• 驗證 (Validation): 電腦檢查資料是否「合理」(例如:「範圍檢查」確保你的年齡不是 500 歲)。
• 核實 (Verification): 人類檢查資料是否「準確」(例如:「雙重資料輸入」,即要求你輸入兩次密碼)。
重點總結:關聯式資料庫使用鍵和關聯來保持資料的條理、唯一性與連結性,且不會浪費空間。
10.2 正規化 (Normalisation):清理混亂
正規化是組織資料庫以減少資料重複並提高資料完整性的過程。這就像透過將所有東西放入正確的抽屜來整理凌亂的房間一樣。
正規化的三個階段
1. 第一正規化 (1NF): 沒有「重複群組」。每個儲存格應僅包含一個資訊片段,且每筆記錄必須有一個主鍵。
2. 第二正規化 (2NF): 必須先滿足 1NF。所有非鍵欄位必須依賴於「整個」主鍵。如果一個欄位只依賴於複合鍵的「一部分」,它就必須被移到新的資料表中!
3. 第三正規化 (3NF): 必須先滿足 2NF。不應有「傳遞相依性」(Transitive dependencies)。這是一個大術語,意思就是:非鍵欄位不應依賴於另一個非鍵欄位。所有項目都應直接指向主鍵。
重點總結:正規化讓資料庫更小、更快,並且在更新時減少出錯的機率。
10.3 資料字典 (Data Dictionary)
資料字典基本上是你資料庫的「使用手冊」或「食譜」。它不包含實際的姓名或地址,但包含後設資料 (Metadata) (即關於資料的資料)。
資料字典裡面有什麼?
• 欄位名稱
• 資料類型 (文字、數值等)
• 欄位大小 (允許多少字元)
• 驗證規則 (例如:必須 > 0)
• 資料表之間的關聯
10.4 檔案與資料管理
電腦實際上是如何在硬碟中找到資料的呢?存取檔案主要有兩種方式:
存取方法
1. 索引循序存取 (Indexed Sequential Access): 電腦保留一個「索引」(就像教科書後面的索引表)。它先查看索引找到大概範圍,然後循序搜尋以找到特定的記錄。
2. 直接檔案存取 (Direct File Access): 電腦使用數學公式 (雜湊,Hashing) 直接前往儲存資料的確切位置。這對於 ATM 提款或線上預訂等操作速度快得多。
資料庫管理系統 (DBMS)
DBMS 是一種讓你建立及管理資料庫的軟體 (例如 Microsoft Access 或 MySQL)。它有不同的類型:
• 關聯式 (Relational): 使用資料表 (最常見)。
• 階層式 (Hierarchical): 看起來像家譜。
• 網路式 (Network): 像是一個網狀結構,所有東西都可以連接到其他東西。
• 物件導向 (Object-Oriented): 將資料儲存為「物件」而非僅僅是文字或數字。
管理資訊系統 (MIS)
MIS 將資料庫中的原始資料轉換為對經理有用的報告。
範例:超市資料庫有一份每賣出一個蘋果的清單。MIS 將其總結為一份報告,說明「本月蘋果銷量下降 20%」,這樣經理就知道該降價或投放廣告了。
重點總結:雖然資料庫用來「儲存」資料,但 DBMS 用來「管理」它,而 MIS 則利用它來協助人們做出聰明的商業決策。
最後的鼓勵
你已經完成了資料庫的核心概念!別擔心,如果 2NF 或 3NF 現在聽起來還有些困惑——試著練習畫出表格,很快就會豁然開朗了。資料庫的重點全在於邏輯與組織。你一定做得到的!