SQL 資料庫原理 W1 Note
--------------課程筆記-----------
- 定義介紹
- 如果車庫用鋼筋水泥蓋,那資料庫就是用資料建
- 資料庫是資料存取的規則
- 目前主流關聯式資料庫供應商(由小到大排列)
- SQLite
- FREE!
- Access
- 圖像化
- 非資訊相關皆可操作
- 易上手
- 10~20 users
- MS-SQL
- 適合中小企
- 個人使用免費
- Oracle
- 價格百萬、市面上最貴
- 銀行業/航空業
- 可同時萬人上線
- 災難防護性佳
- MySQL
- 開源
- 全球第二大
- 效率高
- No-SQL 文本資料庫
- 違反Relational Database規則
- 檔案單位從T計算
- 分散式資料庫
- GOOGLE/FACEBOOK
- 大數據!?
- 各家資料庫副檔名
- SQL Server .mdf
- Oracle .dbf
- Access .mdb
- SQLite .sqlite
- 資料庫備援方式
- 冷備援 (Cold site)
- 完整備份(可能的頻率: 每周)
- 差異備份(可能的頻率: 每天)
- 備份與先前一次備份的差異部分
- 交易紀錄備份(每30mins/60mins)
- 只備份指令
- 熱備援 (Hot site)
- 分主要系統與備份系統
- 同時運行與寫入,緊急情況時可由主系統切換至備份系統
- E.g. 某電信有6套系統,並採異地備援
- 因等於同時設立多套一樣的系統,建置成本高。
- 資料庫模型
- 階層式
- 網路式
- 物件導向式
- 關聯式 <目前主流!>
- 資料庫架構
- 管理系統/介面 DBMS (管理系統與使用者介面)
- 引擎 (資料庫與部分的管理系統)
- SQL Command (各家廠商有80%都相同)
- 資料定義語言(DFL, data definition language)
- Create: 建立資料庫物件
- Alter: 變更資料庫物件
- Drop: 刪除資料庫物件
- 資料操作語言(DML, data manipulation language) 只有這三個可以修改資料
- Insert Into: 插入資料
- Update: 修改資料
- Delete: 刪除資料
- 資料查詢語言(DQL, data query language)
- Select: 查詢資料
- 資料控制語言(DCL, data control language)
- Grant: 設定權限
- Revoke: 取消權限
- Commit: 確認交易完成
- Rollback: 交易失敗回復原始狀態
- 關聯式資料庫組成
- 實體(Entity) = 籃子/資料表 = Table
- 屬性(Attribute) = Field
- 關聯性(Relationship) = 在建立者的心中
- 資料庫本身不會記錄資料表的關聯性
- 建立資料庫必須件關聯性文件 E.g. ERD
- 索引 Index
- 是一種分類
- 用空間換時間
- 預設為可重複/也可改為不可重複
- 可調整排列順序 (E.g. 查詢最新的前三筆資料?)
- 例子:書後面的索引?
- 設索引的技巧
- 查詢"條件"的起始點欄位
- 確認是否為有效的索引
- 關聯線兩端的欄位=>讓資料庫內部可查詢
- 主索引(主鍵) PK Primary Key
- 不可重複或空白
- 通常預設就是索引/可一個或兩個欄位以上組成
- 在SQL Server每個資料表都要有個PK
- 若不知用哪一個欄位可另設流水號
- 資料庫並無強制規定要設PK
- 參考索引(外來鍵)介紹 FK Foreign Key
- 跟索引無關,只是名字像。
- 維持資料的正確性
- 參考與被參考欄位資料形態要一致
- 被參考欄位不可重複 (預設為PK或不可重複的INDEX)
- 若被參考欄位要修改,需先修改FK
- 資料庫的正規化
- 資料路設計的準則
- 通常只用1~3,最少用第一正規化
- 愈符合正規化,資料愈分散至多資料表-->不好用
- NoSQL->違反所有正規化 [從Web端/輸入端解決資料問題]
- 資料表關係 = 資料表間的關聯性
- 一對一
- 一對多/多對一 (兩張表)
- 多對多 (最少須三張表、兩條關聯線)
- 何謂關聯圖(ERD)與其重要性
- 資料庫設計的架構圖
- 若無ER文件,後人無法維護!
- ER中的資料字典: 描述ER圖內的圖意
- 星號代表PK
- 須和ERD同步更新
- SQL Server Express & DBMS 環境安裝介紹
留言
張貼留言