第一章 緒論 1.1 資料庫系統概述 1.1.1 資料庫的4個基本概念 數據:描述事物的符號記錄,數據的含義稱為數據的語義,二者是不可分的。 資料庫:資料庫是長期存儲在電腦內、有組織的、可共用的大量數據的集合。 資料庫數據基本特點:永久存儲、有組織、可共用。 資料庫管理系統(DBMS):是電腦的 ...
1.1 資料庫系統概述
1.1.1 資料庫的4個基本概念
-
數據:描述事物的符號記錄,數據的含義稱為數據的語義,二者是不可分的。
-
資料庫:資料庫是長期存儲在電腦內、有組織的、可共用的大量數據的集合。 資料庫數據基本特點:永久存儲、有組織、可共用。
-
資料庫管理系統(DBMS):是電腦的基礎軟體。 主要功能:(1)數據定義功能(2)數據組織、存儲和管理功能(3)數據操縱功能(4)資料庫的事務管理和運行管理(5)資料庫的建立和維護功能(6)其他功能
-
資料庫系統(DBS):由資料庫、資料庫管理系統(及其應用開發工具)、應用程式和資料庫管理員組成的存儲、管理、處理和維護數據的系統
1.1.2 數據管理技術的產生和發展
數據管理三個階段的特點及其比較:
人工管理階段 | 文件系統階段 | 資料庫系統階段 | |
---|---|---|---|
應用背景 | 科學計算 | 科學計算、數據管理 | 大規模數據管理 |
硬體背景 | 無直接存取存儲設備 | 磁碟、磁鼓 | 大容量磁碟、磁碟陣列 |
處理方式 | 批處理 | 聯機實時處理、批處理 | 聯機實時處理、分佈處理、批處理 |
數據的管理者 | 程式員 | 文件系統 | 資料庫管理系統 |
數據面向對象 | 某一應用程式 | 某一應用 | 部門企業 |
數據的共用程度 | 無共用,冗餘度極大 | 共用性差,冗餘度大 | 共用性高,冗餘度低 |
數據獨立性 | 不獨立 | 獨立性差 | 具有高度的物理獨立性和一定的邏輯獨立性 |
數據結構化 | 無結構 | 記錄內有結構、整體無結構 | 整體結構化,用數據模型描述 |
數據控制能力 | 應用程式自己控制 | 應用程式自己控制 | DBMS提供數據安全性、完整性、併發控制和恢復能力 |
1.1.3 資料庫系統的特點:
-
數據結構化(與文件系統的本質區別)
-
共用性高,冗餘度低且易擴展
-
數據獨立性高:
(1)物理獨立性:用戶的應用程式與資料庫中的數據的物理存儲是相互獨立的; (2)邏輯獨立性:用戶的應用程式與資料庫的邏輯結構是相互獨立的。
數據獨立性是由資料庫管理系統提供的二級映像功能來保證的。
-
數據統一管理和控制
【聯想】資料庫系統的三級模式結構:外模式、模式和內模式。模式也稱邏輯模式,是所有用戶的公共數據視圖;外模式也稱用戶模式,是資料庫用戶的數據視圖;內模式也稱存儲模式,是數據在資料庫內部的組織方式。
1.2 數據模型
1.2.1 兩類數據模型
概念模型(實體-聯繫 E-R模型)、邏輯模型和物理模型
1.2.2 概念模型
基本概念:實體、屬性、碼、實體型、實體集、聯繫
1.2.3 數據模型的組成要素
數據結構、數據操作、數據的完整性約束條件
1.2.4 常用的數據模型
-
層次模型
優點:
-
數據結構比較簡單清晰
-
資料庫的查詢效率高
-
數據模型提供了良好的完整性支持
缺點:
-
現實世界中很多聯繫是非層次化的
-
程式編寫複雜,插入刪除限制多
-
查詢子女節點必須通過雙親節點
-
由於結構嚴密,層次命令趨向於結構化
-
-
網狀模型
優點:
-
能夠更為直接的描述現實世界
-
具有良好的性能,存取效率較高
缺點:
-
結構比較複雜
-
DDL/DML複雜,不好掌握使用
-
因為聯繫是通過存取路徑實現的,用戶需要瞭解系統結構的細節
-
-
關係模型
優點:
-
建立在嚴格的數據概念基礎上
-
概念單一,都用關係表示
-
存取路徑對用戶透明,簡化工作
缺點:
-
存取路徑隱蔽,導致查詢效率不高,為了提升性能,DMBS必須對用戶查詢請求進行優化
-
1.3 資料庫系統的結構
1.3.3 資料庫的二級映像功能與數據獨立性
-
外模式/模式映像 模式改變,對映象做修改,可以保證外模式不變,保證了邏輯獨立性。
-
模式/內模式映象 內模式改變(資料庫的存儲結構改變),對映象做修改,可以保持模式不變,保證了物理獨立性。
第二章 關係資料庫
2.1 關係模型數據結構及形式化定義
按照數據模型三要素,關係模型由數據結構、關係操作集合和關係完整性約束三部分組成
2.1.1 關係
-
關係:在域D上笛卡爾積的子集
-
關係可以有三種類型:基本關係(基本表)、查詢表、視圖表。
2.2 關係操作
2.2.1 基本的關係操作
-
查詢操作: 選擇、投影、連接、除、並、差、交、笛卡爾積 選擇、投影、並、差、笛卡爾積是五種基本操作
-
數據更新:插入、刪除、修改
2.3 關係的完整性
關係模型中有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。
2.3.1 實體完整性
若屬性A是基本關係R的主屬性,則A不能取空值。
2.3.2 參照完整性
若屬性F是基本關係R的外碼,它與基本關係S的主碼K相對應,則對R中的每個元組在F上的值,必須為空值或者S中某個元組的主碼值
2.4 關係代數
運算符 | 含義 |
---|---|
∪ | 並 |
- | 差 |
∩ | 交 |
× | 笛卡爾積 |
σ | 選擇 |
Π | 投影 |
⋈ | 連接 |
÷ | 除 |
前四種為傳統的集合運算,後四種為專門的關係運算
第三章 關係資料庫標準語言SQL
3.1 SQL概述
SQL功能 | 動詞 |
---|---|
數據查詢 | SELECT |
數據定義 | CREATE,DROP,ALTER |
數據操縱 | INSERT,UPDATE,DELETE |
數據控制 | GRANT,REVOKE |
3.3 數據定義
-
數據定義語句
操作對象 創建 刪除 修改 模式 CREATE SCHEMA DROP SCHEMA 表 CREATE TABLE DROP TABLE ALTER TABLE 視圖 CREATE VIEW DROP VIEW 索引 CREATE INDEX DROP INDEX ALTER INDEX -
主要(常用)數據類型
數據類型 含義 int,smallint 整數 char(n) 長度為n的字元串 float(n) 可選精度的浮點數 date 日期,格式為YYYY-MM-DD time 時間,格式為HH:MM:SS
3.4 數據查詢
-
數據查詢語句
select [all/distinct] <目標列表表達式> from <表名/視圖名> [as] <別名> [where <條件表達式>] [group by <列名>[having <條件表達式>]] [order by <列名>] --升序或降序
-
where查詢常用條件
查詢條件 謂詞 比較 (not) =,>,<,>=,<=,!=,<>,!>,!< 確定範圍 between and; not betweeen and 確定集合 in, not in 字元匹配 like, not like 空值 is null, is not null 多重條件 and, or, not -
字元匹配:(1)%(百分號):代表任意長度字元串;(2)_(下橫線):代表任意單個字元
-
聚集函數:
函數 含義 count(*) 統計元組個數 count([all/distinct] <列名>) 統計一列中值的個數 sum([all/distinct] <列名>) 統計一列中值的總和 avg([all/distinct] <列名>) 統計一列中值的平均值 max([all/distinct] <列名>) 統計一列中值的最大值 min([all/distinct] <列名>) 統計一列中值的最小值 -
帶有EXISTS謂詞的子查詢不返回任何數據,只產生邏輯真值“true”或邏輯假值“false”。使用存在量詞後,若內層查詢結果非空,則外層的where字句返回真值,否則返回假值。
3.6 空值的處理
-
空值的判斷:is null或者is not null
3.7 視圖
3.7.4 視圖的作用
-
視圖能夠簡化用戶的操作
-
視圖使用戶能以多種角度看待同一數據
-
視圖對重構資料庫提供了一定程度的邏輯獨立性
-
視圖能對機密數據提供安全保護
-
適當利用視圖可以更清晰地表達查詢
第四章 資料庫安全性
資料庫的安全性:保護資料庫以防止不合法使用所造成的的數據泄露、更改或破壞
4.2 資料庫安全性控制
4.2.4 授權:授予與收回
-
grant授權語句一般格式:
grant <許可權> on <對象類型><對象名> to <用戶> with grant option --該用戶可以將許可權授予他人
-
revoke回收許可權語句:
revoke <許可權> on <對象類型><對象名> from <用戶> [cascade|restrict]
第五章 資料庫完整性
5.1 實體完整性
-
檢查主碼是否唯一,拒絕插入或修改
-
檢查主碼的各個屬性是否為空,拒絕插入或修改
5.2 用戶定義的完整性
屬性上約束條件的定義:(1)列值非空(not null);(2)列值唯一(unique);(3)檢查列值是都滿足一個條件表達式(check短語)
5.4 完整性約束命名字句
constraint<完整性約束條件名><完整性約束條件>
5.7 觸發器
-
定義格式:
CREATE TRIGGER <觸發器名> BEFORE|AFTER <觸發事件> ON <表名> REFERENCING NEW|OLD ROW AS <變數> FOR EACH{ROW|STATEMENT} [WHEN<觸發條件>]<觸發動作體>
-
觸發事件:可以是insert、delete或update;after/before表示觸發的時機
第六章 關係數據理論
6.1 問題的提出
常見的關係模式問題:
-
數據冗餘
-
更新異常
-
插入異常
-
刪除異常
6.2 規範化
6.2.1 函數依賴
X函數確定Y或Y函數依賴X,記做X->Y; F(X)=Y
-
X->Y,但Y不屬於X,則稱X->Y是非平凡的函數依賴
-
X->Y,但Y屬於X,則稱X->Y是平凡的函數依賴
-
區別:完全函數依賴(x-^F>y)、部分函數依賴(x-^P>y)、傳遞函數依賴
6.2.2 碼
-
R<U,F>,若U對K存在完全函數依賴,則K為R的候選碼
-
如果U函數依賴於K,即K->U,則K稱為超碼
-
若候選碼多餘一個,則選定其中一個為主碼
-
包含在任何一個候選碼中的屬性稱為主屬性,其餘為非主屬性
6.2.3 範式
-
NF:碼X,非主屬性Z,不存在X->Y,Y->Z成立,且Y不函數依賴於Z。
-
2NF:在NF的基礎上刪除非主屬性對碼的部分函數依賴
-
3NF:在2NF的基礎上消除非主屬性對碼的傳遞函數依賴
-
BCNF:在3NF的基礎上消除主屬性對碼的部分和傳遞函數依賴
第七章 資料庫設計
7.1.3 資料庫設計步驟
-
需求分析
-
概念結構設計
-
邏輯結構設計
-
物理結構設計
-
資料庫實施
-
資料庫運行和維護
由於期末考核需要,整理了一份發一下叭
製作:BDT20040