第一章 緒論
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 資料庫設計概述
7.1.3 資料庫設計步驟
-
需求分析
-
概念結構設計
-
邏輯結構設計
-
物理結構設計
-
資料庫實施
-
資料庫運行和維護
由于期末考核需要,整理了一份發一下叭
制作:BDT20040
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/499180.html
標籤:SQL Server
