目錄sql
是有數據庫、數據庫管理系統、應用程序、數據庫管理員組成的儲存,管理,處理,維護數據的系統。數據庫
數據庫系統的特色:安全
- 數據結構化
- 數據的共享性高
- 冗餘度低且易擴充
- 獨立性、數據有數據庫管理系通通一管理控制
物理獨立性:數據結構
指用戶的應用程序和數據庫中的數據的物理存儲是相互獨立的閉包
邏輯獨立性:併發
指用戶的應用程序對數據庫的邏輯結構是獨立的。數據庫設計
提供 數據的安全性保護、完整性檢查、併發控制、數據庫恢復函數
實體集
同一類型實體的集合成爲實體集學習
數據庫系統採用關係模型做爲數據的組織方式。優化
關係:一個關係對應一般說就是一張表
關係模式:關係名(table_name)(屬性1,屬性2,屬性3。。。。)
屬性:表中的一列即爲一個屬性
域:屬性的取值範圍;
元組:表中的一行即爲一個元組;
主碼:表中的某個屬性組,它能夠唯一肯定一個元組;
份量:元組中的一個屬性值;
實體完整性
屬性A是基本關係R的主屬性,則A不能取空值。
參照完整性
若F是R的外碼,它與關係S的主碼相對應,則對於R中的每一個元組在F上的值必須爲:空值,或者S中某個元組的主碼值。
用戶定義的完整性
- 域:
是一組具備相同數據類型的集合- 笛卡爾積:
是域上的一種集合運算- 元組:
笛卡爾積的每個元素
***- 全碼:
全部屬性都是候選碼,稱爲全碼- 候選碼:
能惟一標識一個元組的某一個屬性組,學生(姓名, 學號, 成績) 則姓名和學號都是候選碼- 主屬性:
候選碼的各屬性- 主碼:
候選碼中選定一個做爲主碼
等值鏈接
從兩個關係的廣義笛卡爾積中選取A,B屬性值相等的那些元組出來。
天然鏈接
兩個關係中比較的份量必須是相同的屬性值,
就是把 R 和 S中相同的部分保留下來,並要在結果總把重複的一列去掉。
外鏈接
把在天然鏈接中捨棄了的元組也保存到結果關係中,而其餘的屬性值填NULL
左/右外鏈接:
把天然鏈接中 左/右關係 R / S 捨棄的元組保留下來
除
R / S = T, T包含在R,但不在S中的元組,且 T 元組與 S 元組的組合都在 R 中。
把限制詞放在語句的後面 cascade (級聯) 表示在刪除模式的同時,把模式下定義的對象也一併刪除 restrict (限制) 表示只有當沒有下屬對象時才能夠執行刪除語句,不然拒絕
模式的基本對象有:表、視圖、索引
也稱邏輯模式,是數據庫中去啊你數據的邏輯飢餓哦股和特徵的描述,是全部用戶的公共數據視圖。
外模式:模式與外模式映射保證邏輯獨立性
它是數據用戶能看到和使用的局部數據和邏輯結構和特徵的描述,是數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯關係。
內模式:模式與內模式映射保證物理獨立性
一個數據庫只有一個內模式,是數據物理結構和存儲方式的描述,是數據在數據庫的組織方式。
create schema <模式名> authorization <用戶名>;
unique () 每個索引值只對應惟一的數據記錄 cluster ()
create unique index Stusname on Student(Sname);
LOWER(Sdept)
select sname,2004-sage from Student; select sname,'Year of Birh:',2004 - sage,LOWER(Sdept) from Student;
select sname NAME,'Year of Birh:'BIRTH,2004 - sage BIRTHDAY,LOWER(Sdept) DEPARTMENT from Student;
select distinct sno from SC;
between and
select sname,sdept,sage from student where sage (not) between 20 and 23;
in
select sname,ssex from student where sdept in('cs','ma','is');
like
% 表明任意長度
_ 表明單個字符 一個漢字兩個字符
/ 是轉義字符
select * from student where sname like '劉%';
IS NULL
select sno,cno from sc where grade is (not) null;
對查詢結果進行升序、降序排列
升序: asc
降序:desc
select sno,grade from sc where cno = '3' order by grade desc;
將查詢結果分組
````
select cno,count(sno) as 數量 from sc group by cno;
select 圖書分類,count(圖書編號) as 圖書數量 from 圖書採購表 group by 圖書分類') ;
###having 對分組結果進行篩選
/查詢修了2門以上課程的學生/
select sno from sc group by sno having count(*)>2;
##鏈接查詢
① 查詢編號爲300的客戶經過的代理商的姓名和地址。
select 代理商.姓名,代理商.地址 from 代理商,客戶
where 客戶.客戶編號=300 and 客戶.代理商編號=代理商.代理商編號;
##嵌套查詢
2.嵌套查詢
/
① 查詢與「劉晨」在同一個系學習的學生。
select from 學生信息
where 專業 in(
select 專業 from 學生信息 where 姓名 = '劉晨')
② 查詢選修了課程名爲「操做系統」的學生。
select 學生信息.* from 學生信息,課程信息
where 學生信息.學號
in(select 成績信息.學號 from 成績信息 where 成績信息.課程序號
in(select 課程信息.課程序號 from 課程信息 where 課程信息.課程名稱 = '操做系統'));
```
三類安全性問題:
技術安全,管理安全,政策法律安全
定義用戶權限,並將用戶權限登記到數據字典中
合法權限檢查
定義各個用戶對不一樣數據的存取權限,當用戶訪問數據時,首先檢查用戶的存取權限,防止不合法的用戶對數據庫的存取
每一個數據對象被強制地標以必定的密級,每一個用戶也被強制地授予某一個級別的許可證,系統規定只有某一許可證級別的用戶才能存取某一級別的數據對象。
審計功能把用戶對數據庫的全部操做自動記錄下載放入審計日誌中。DBA能夠利用審計跟蹤的信息,重現致使數據庫先有情況的一系列事件,找出非法存取數據的人、事件和內容等。
替換法:把明文字符換位密文字符
置換髮:把明文字符從新排序
DES (數據加密標準) 祕鑰加密技術 = 替換法 + 置換法
- 是
一對一的關係
X 中有屬性值相同的元組,則對應的 Y 中的屬性值也要相等,則稱:X 函數決定 Y ,Y 函數依賴於X。
X稱爲決定屬性組,或決定因素。- 若是 Y 是X 的子集,則 X -> Y 爲平凡函數依賴。
- 若是 X -> Y,但對於X的任何一個真子集 都不能函數肯定Y,則對X徹底函數依賴
- X->Y,可是Y不函數決定於X,則爲部分函數依賴。
傳遞函數依賴
- X ->Y, Y->Z . X->Z
多值依賴
- X -> -> Y
三範式是爲了不數據冗餘。
就是每個列(屬性)只有一個,沒有重複。
每一個非主屬性徹底依賴於主鍵
反例: A -> C, B -> C ,存在部分函數依賴
知足第一範式的前提下,消除部分函數依賴
(拆分爲兩個表)。
每一個非主屬性不依賴於其它非主屬性
消除部分和傳遞函數依賴
- BC範式:關係模式R屬於第一範式,且每一個屬性都不傳遞依賴於鍵碼。
- BC範式是第三範式的加強版,不過也有人說是直接從1NF發展過來的,
即每一個屬性,包括主屬性或非主屬性,都徹底依賴於候選鍵,而且不存在傳遞依賴狀況。
傳遞性
求屬性集 X (X是U的真子集) 關於U 上的函數依賴 F 的壁報X(F)+;
*** 例子:
U = {A,B,C,D,E},F = {AB-->C,B-->D,C-->E,EC-->B,AC-->B}求(AB)f+;
解**:
設:X(0) = AB;
X(1):找到左邊A,B或AB的函數依賴,獲得AB-->C,B-->D。因而X(1) = AB U CD = ABCD;
......比較上下兩次迭代(如:X(0),X(1))是否相等,若是不等則並進來
繼續,直到 上下兩次迭代相等爲止。
A --> B ,B --> C ,A --> C
則最小函數依賴集爲:A --> B,B --> C;
三分技術,七分管理,十二分基礎數據
I/O 代價
+ CPU代價 + 內存代價 + 通訊代價事務的特性
能夠聯想一下印象筆記的筆記同步
ACID特性(原子性、一致性、隔離性、持續性)
- 原子性:事務是最小的邏輯工做單位,要麼作完一個事務,要麼不進行事務
- 一致性:事務執行後數據庫必須是從一個一致性的狀態變爲另外一個一致性的狀態的
- 隔離性:一個事務的執行不能被其餘事務干擾,事務之間隔離。
- 持續性(永久性) :事務提交後對數據庫中數據的影響是永久性的。
能夠聯想一下印象筆記的多人協做
就是多人協做,對同一份筆記進項修改。
能夠聯想一下印象筆記的