A-level 計算機 2009/CIE/理論基礎/資料庫和資料建模
外觀
- 資料儲存在離散的檔案中,儲存在計算機上,並且可以被使用者訪問、更改或刪除。
- 對檔案組織/結構沒有強制控制
- 資料在不同的檔案中重複;手動更改每個檔案
- 排序必須手動完成或必須編寫程式
- 資料可能採用不同的格式;難以查詢和使用
- 無法實現多使用者;混亂
- 安全措施不完善;使用者可以訪問所有內容
- 資料庫:非冗餘的相互關聯資料的集合
- DBMS:允許定義、構建和操作資料庫的軟體程式
- 資料管理:資料儲存在關係資料庫中 - 表儲存在輔助儲存器中
- 資料字典包含
- 資料庫中所有檔案的列表
- 每個檔案中的記錄數
- 每個欄位的名稱和型別
- 資料建模:分析資料庫中使用的資料物件,識別它們之間的關係
- 邏輯模式:整個資料庫的總體檢視,包括:實體、屬性和關係
- 資料完整性:更改時將整個塊複製到使用者的區域,完成後儲存回資料庫
- 資料安全:處理密碼分配和驗證,自動備份資料庫,透過個人或使用者組的訪問許可權控制特定使用者的檢視
- 以獨佔模式開啟整個資料庫 - 對多個使用者來說不切實際
- 鎖定正在修改的表中的所有記錄 - 一個使用者更改一個表,其他使用者只能讀取表
- 鎖定當前正在編輯的記錄 - 當某人更改某些內容時,其他人只能讀取該記錄
- 使用者指定不鎖定 - 軟體會警告使用者有同時更改,手動解決
- 死鎖:2 個鎖同時出現,DBMS 必須識別,1 個使用者必須中止任務
- 開發者介面:允許在 SQL 中而不是以圖形方式建立和操作資料庫
- 查詢處理器:處理高階查詢。它解析、驗證、最佳化並編譯或解釋查詢,從而生成查詢計劃。
- 實體:可以明確識別的物件/事件
- 表:包含一組相關實體,以行和列的形式,稱為實體集
- 元組:關係中的一行或一條記錄
- 屬性:關係中的一個欄位或列
- 主鍵:屬性或屬性組合,用於唯一地定義關係中的每個元組
- 候選鍵:可以作為主鍵的屬性
- 外部索引鍵:屬性或屬性組合,用於關聯 2 個不同的表
- 參照完整性:防止使用者或應用程式輸入不一致的資料
- 次要鍵:未選為主鍵的候選鍵
- 索引:在屬性上建立次要鍵,以便在該屬性上搜索時提供快速訪問;當表資料更改時,必須更新索引資料
- 從同一表中消除重複的列。
- 為每組相關資料建立單獨的表,並使用唯一的列或列集(主鍵)標識每一行
- 沒有複合主鍵。這意味著主鍵不能細分為獨立的邏輯實體。
- 當且僅當一行滿足第一正規化且每個非鍵屬性完全依賴於鍵時,該行才處於第二正規化。
- 2NF 透過將依賴於整個鍵的欄位放到與依賴於部分鍵的欄位不同的表中,來消除對部分鍵的功能依賴。
- 透過將它們放入單獨的表中,消除了對非鍵欄位的功能依賴。在此級別,所有非鍵欄位都依賴於主鍵。
- 當且僅當一行滿足第二正規化,並且不有助於描述主鍵的屬性被移到一個單獨的表中時,該行才處於第三正規化。例如,建立查詢表。
使用這種語言建立/修改資料庫結構 - 用 SQL 編寫
- 建立資料庫
CREATE DATBASE <database-name>
- 建立表格
CREATE TABLE <table-name> (…)
- 更改表格
ALTER TABLE <table-name> ADD <field-name><data-type>
- 新增主鍵
PRIMARY KEY (field)
- 新增外部索引鍵
FOREIGN KEY (field) REFERENCES <table>(field)
使用此語言(以 SQL 編寫)查詢和維護資料
- 建立查詢
SELECT <field-name> FROM <table-name> WHERE <search-condition>
| = | 等於 |
| > | 大於 |
| < | 小於 |
| >= | 大於或等於 |
| <= | 小於或等於 |
| <> | 不等於 |
| IS NULL | 檢查空值 |
- 按升序排序
ORDER BY <field-name>
- 將相同資料分組
GROUP BY <field-name>
- 將不同表的欄位連線起來
INNER JOIN
- 向表中新增資料
INSERT INTO <table-name>(field1, field2, field3) VALUES (value1, value2, value3)
- 刪除記錄
DELETE FROM <table-name> WHERE <condition>
- 更新表中的欄位
UPDATE <table-name> SET <field-name> = <value> WHERE <condition>