文章目錄
基本概念
Database:有組織、冗餘小、可共享、數據獨立 、易擴展 的數據集合
DBMS:用戶和操作系統之間的數據管理軟件,用於組織、存取和維護數據。
DBS:加載數據庫計算機系統
DBA:數據庫管理員,全面輔助管理和控制數據庫系統。
數據庫技術應用現狀
- 技術融合
- 數據模型
- 數據類型
- 數據分佈
- 領域應用
DB的三級模式結構
優勢
- 物理獨立性:內模式變化後,模式、外模式和應用不改變
- 邏輯獨立性:模式變化後,外模式和應用只有很少改變
數據庫系統體系結構
- 集中式
- application + DBMS + DB 在一臺計算機上 - 網絡
- CS模式(Client/Server)
- BS模式 (Browser/Server)
- 多用戶並行訪問,數據共享,效率和安全受到網絡傳輸的影響 - 分佈式
- 邏輯上的整體,物理上的分佈
- 協同能力強,可靠可用,效率高,夠靈活,易擴充 - 並行
- DB技術+並行處理技術
- 在多處理器計算機或並行計算機系統上,採用多CPU 和多硬盤的並行工作方式,處理能力極強
關係模型
數據建模:準確的抽象 & 表達客觀需求
數據模型三大要素
- 數據結構 (Data & relationship)
- 數據操作 (操作類型、操作方式)
- 約束條件(數據語義、數據間的約束)
三層數據庫模型
- 概念(概念世界)
- ER、UML - 邏輯(信息世界)
- 關係模型
- 層次模型
- 網狀模型
- 對象模型
- 半結構化數據模型 - 物理(計算機如何保存數據)
- 信息的物理表示
- 操作系統、文件、磁盤
關係模型和RDB
- 數據結構
- 表(關係) 表(關係)
- 數據操縱 數據操縱
- 查詢、增加、刪除、修改 查詢、增加、刪除、修改
- 集合操作(操作對象和操作結果都是關係) 集合操作(操作對象和操作結果都是關係)
- 完整性約束 完整性約束
- 實體完整性,參照完整性,用戶定義完整性 實體完整性,參照完整性,用戶定義完整性
基本概念
- 關係、元組、屬性、分量
- 主碼、候選碼、超碼、外碼、全碼
- 關係模式
- 關係的性質
- 實體完整性約束規則
- 參照完整性約束規則
優勢&劣勢
優勢
- 數學基礎
- 結構簡單、明瞭,用戶易懂易用
- 存取路徑用戶透明,數據獨立性和安全性
劣勢
- 查詢效率低
- 查詢的優化增加了開發數據庫管理系統的難度
關係代數和SQL
關係代數
使用傳統的集合運算 & 關係運算表達查詢的 抽象語言
相關例子鏈接
SQL
- DDL:
- create、drop、alter
- index、view、role、procedure、trigger、constraint、domain
- 物化視圖、關係模式
- DML:select、insert、update、delete
- DCL:grant、revoke
使用方式: 獨立式,嵌入式
select:
- 單表查詢
- 連接查詢
- 嵌套查詢
- IN ,ANY ,ALL ,EXIST
- DISTINCT
- 聚集函數
- AVG ,MIN ,MAX ,SUM ,COUNT
- ORDER BY
- GROUP BY
相關例子鏈接
高級SQL:
SQL是集合處理方式,宿主語言是淡季了處理方式,當SQL處理結果是多條記錄時候,How to solve?
遊標
- 是個數據緩衝區,存放SQL語句的執行結果
- 每一個遊標區域都有名字
- 用戶通過遊標逐一獲取記錄,賦給主變量,然後宿主語言進一步處理
關係數據庫設計
數據庫與應用開發的生命週期
概念模型設計
數據抽象
- 抽象出客觀世界中的概念、對象的本質特性 抽象出客觀世界中的概念、對象的本質特性
- 需求分析階段對數據分類和組織,從而形成實體 、實體的屬性 ,實體的碼 ,實體間聯繫等
E-R模型
基本元素:
- 實體 :客觀存在的一個對象
- 屬性 :實體所具有的性質,包括屬性名和屬性域
- 實體集 :相似實體的集合
- 聯繫 :至少1 個實體集之間的聯繫
- 聯繫的類型有1:1, 1:m 和m:n
- 聯繫可有屬性
- 實體集間可有多種聯繫
ER圖設計原則:
- 忠實性 忠實性
- 避免冗餘(每件事情只說一次) 避免冗餘(每件事情只說一次)
- 簡單性考慮(不要添加更多的成分) 簡單性考慮(不要添加更多的成分)
- 選擇正確的聯繫(而不是所有的聯繫) 選擇正確的聯繫(而不是所有的聯繫)
- 選擇正確的元素種類(屬性或實體)
關係模式
ER轉關係模式:
- 一個
1:1
聯繫可以轉換爲一個獨立的關係模式,也可以與任意對應的關係模式合併 - 一個
1:n
聯繫可以轉換爲一個獨立的關係模式,也可以與n
端對應的關係模式合併 - 一個
m:n
聯繫轉換爲一個關係模式 - 三個或三個以上實體間的一個多元聯繫可以轉換爲一個關係模式
- 具有相同碼的關係模式可以合併
特殊情況: 多值屬性,弱實體,特殊化,一般化等
customer (customer_id, customer_name, customer_street, customer_city)
//customer_id是主碼,有下劃線