日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

數(shù)據(jù)庫知識(shí)點(diǎn)總結(jié)

 HiLois 2017-08-04

實(shí)體-聯(lián)系模型

基本概念

  • 實(shí)體和屬性

實(shí)體是客觀存在并且可以相互區(qū)分的任何事物
屬性是實(shí)體所代表事物具有的某種特性
每個(gè)屬性都有一定的取值范圍,成為該屬性的值域

  • 實(shí)體集和碼

實(shí)體集是具有相同屬性的實(shí)體的集合
實(shí)體的值是該實(shí)體諸屬性值的列表
實(shí)體集的值是該實(shí)體集中所有實(shí)體值的集合
其值可以唯一確定實(shí)體集中每個(gè)實(shí)體的屬性集稱為該實(shí)體集的超碼
那些其真子集都不是超碼的極小超碼稱為候選碼
主碼是數(shù)據(jù)庫設(shè)計(jì)者選中的,是用來區(qū)分同一實(shí)體集中不同實(shí)體的候選碼

  • 屬性分類

屬性大部分都是簡單的不能劃分成更小的結(jié)構(gòu)、單值的只能取單個(gè)值、基本的不能由其他屬性推導(dǎo)出
復(fù)合屬性與簡單屬性對(duì)應(yīng)是可以劃分成更小部分的屬性
多值屬性對(duì)應(yīng)單值屬性是特定的實(shí)體在該屬性上可以取多個(gè)值的屬性
派生屬性對(duì)應(yīng)基本屬性的值可以從其他相關(guān)屬性或?qū)嶓w計(jì)算得到,因此又稱為計(jì)算屬性

  • 聯(lián)系與聯(lián)系集

聯(lián)系是多個(gè)實(shí)體之間的相互關(guān)系
聯(lián)系集是相同的類型聯(lián)系的集合
實(shí)體在聯(lián)系中的作用稱為實(shí)體的角色

  • 聯(lián)系的類型

聯(lián)系的類型又稱為聯(lián)系的函數(shù)性映射函數(shù)
一對(duì)一聯(lián)系E2與E1中的每個(gè)實(shí)體最多與另一個(gè)實(shí)體集中的一個(gè)相互關(guān)聯(lián)
一對(duì)多聯(lián)系(1:n聯(lián)系)
多對(duì)一聯(lián)系(n:1聯(lián)系)
多對(duì)多聯(lián)系(m:n聯(lián)系)

  • 實(shí)體集與參與類型

如果實(shí)體集中的每個(gè)實(shí)體都必須參與聯(lián)系R,則稱實(shí)體集對(duì)聯(lián)系R的參與是強(qiáng)制的,或全部參與,否則是隨意的,或部分參與

  • 聯(lián)系的屬性

聯(lián)系也可以包含屬性,這種情況多出現(xiàn)在多對(duì)多聯(lián)系中

實(shí)體聯(lián)系圖

實(shí)體-聯(lián)系模型用實(shí)體-聯(lián)系圖(E-R圖)對(duì)現(xiàn)實(shí)世界建立概念模型

  • E-R圖包含如下成分

  • 橢圓表示屬性,屬性寫在框內(nèi)

  • 矩形表示實(shí)體集,實(shí)體集名寫在框內(nèi)
  • 菱形框表示聯(lián)系,聯(lián)系名寫在框內(nèi)

弱實(shí)體集

一般地,如果一個(gè)實(shí)體集的任何屬性集都不足以形成該實(shí)體集的碼,則稱該實(shí)體集為弱實(shí)體集,相反的,存在碼的實(shí)體集稱為強(qiáng)實(shí)體集
每個(gè)弱實(shí)體必須存在依賴于一個(gè)強(qiáng)實(shí)體
弱實(shí)體集必須與另一個(gè)稱為標(biāo)識(shí)實(shí)體集屬主實(shí)體集強(qiáng)實(shí)體集相關(guān)聯(lián)才有意義
將弱實(shí)體集與其標(biāo)識(shí)實(shí)體集相關(guān)聯(lián)的聯(lián)系稱為標(biāo)識(shí)性聯(lián)系
分辨符、部分碼

關(guān)系數(shù)據(jù)模型

關(guān)系數(shù)據(jù)庫結(jié)構(gòu)

  • 關(guān)系

是具有相同類型的值的集合,域中的元素個(gè)數(shù)為該域的基數(shù),記作|D|
n個(gè)域的笛卡爾集的每個(gè)元素稱為一個(gè)n-元組(簡稱元組),第i個(gè)元素為第i個(gè)分量
基數(shù)為|D1| |D2| ... |Dn|
域上的關(guān)系是笛卡爾積的任意字集
在關(guān)系數(shù)據(jù)庫中,關(guān)系通常用關(guān)系名命名,并被看作一個(gè)*
二維表
表的每一列對(duì)應(yīng)于一個(gè)分量。列通常是命名的,稱為
屬性
表的第一行是
表頭,給出各列的屬性名
關(guān)系的每一個(gè)屬性都必須是
原子的**

  • 關(guān)系模式

粗略的說,關(guān)系模式概念對(duì)應(yīng)于程序設(shè)計(jì)語言中的類型概念,它是型,定義關(guān)系的結(jié)構(gòu)
我們把關(guān)系模式簡記為R(A1,A2,...,An)R是關(guān)系名,A是屬性名
關(guān)系的型用關(guān)系模式刻畫,關(guān)系的值即關(guān)系在某一時(shí)刻的快照,又稱為關(guān)系實(shí)例
關(guān)系數(shù)據(jù)庫模式由若干域的定義和一組定義在這些域上的關(guān)系模式組成
關(guān)系數(shù)據(jù)庫的值就是這些關(guān)系模式對(duì)應(yīng)的關(guān)系在某一時(shí)刻的值

  • 關(guān)系的碼

主碼用于表示由多個(gè)碼中選出的作為唯一識(shí)別關(guān)系元組的碼,而所有的碼又稱候選碼。碼中的屬性稱為主屬性,不在任何碼中的屬性稱為非主屬性

從E-R數(shù)據(jù)庫到關(guān)系模型

基本E-R圖的轉(zhuǎn)換

  • 屬性處理

  • 派生屬性:忽略

  • 復(fù)合屬性:忽略復(fù)合屬性本省,直接考慮它的成分屬性
  • 多值屬性:

如果多值屬性m是實(shí)體集E的屬性,k是E的主碼,則關(guān)系Rm的屬性由m和K組成
多主碼時(shí)由m和K1、K2...Kn組成

  • 將基本E-R圖轉(zhuǎn)換成關(guān)系模式

  • 每個(gè)強(qiáng)實(shí)體集用一個(gè)關(guān)系表示

  • 每個(gè)弱實(shí)體集用一個(gè)關(guān)系表示
  • 每個(gè)集合用一個(gè)關(guān)系表示,但是若實(shí)體集于其標(biāo)識(shí)實(shí)體集之間的存在依賴聯(lián)系將被忽略
  • 如果兩個(gè)關(guān)系具有相同的碼,則可以合并它們

關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL

  • SQL語言的特點(diǎn)

  • 集多數(shù)數(shù)據(jù)庫語言于一身

  • 高度非過程化
  • 面向集合的操作方式
  • 一種語法兩種使用方式
  • 功能強(qiáng)大,語言簡潔

數(shù)據(jù)定義

  • SQl的數(shù)據(jù)類型

CHAR(n) VAECHAR(n) BIT(n) BIT VARYING(n) INT SMALLINT NUMERIC(p,d) DEC(p,d) FLOAT(n) REAL DATA TIME

  • 定義、修改和刪除基本表

1.創(chuàng)建基本表

CEARTE TABLE Teachers
(Tno CHAR(7) PRIMARY KEY,
Tname CHAR(10) NOT NULL,
Sex CHAR(2) CHECK (Sex='男' or Sex='女'),
Birthday DATE,
Title CHAR(6),
Dno CHAR(4),
FOREIGN KEY(Dno) REFERENCES Departments(Dno));

2.修改基本表

使用 ALTER TABLE語句修改基本表
向基本表中添加列:
ALTER TABLE <> ADD []<>
對(duì)于已存在的列修改缺省值:
ALTER TABLE Student ALTER Sex DEFAULT '女';
ALTER TABLE Student ALTER Sex DROP DEFAULT;
刪除已存在的列
ALTER TABLE Courses DROP Pno

3.刪除基本表

DROP TABLE <表名> {CASCADE|RESTRICT}

  • 建立和刪除索引

CREATE [UNIQUE][CLUSTER] INDEX <索引名>
DROP INDEX <索引名>

  • 模式定義和刪除

CREATE SCHEMA Supply_schema AUTHORRIZATION wangqiang;
DROP SCHEMA <模式名> CASCADE|RESTRICT

數(shù)據(jù)查詢

  • select語句的一般形式

SELECT Cno,Cname,Period,Credit FROM Courses;

SELECT * FROM Courses;

SELECT 2016-year(Birthday) AS Age FROM Students;

SELECT DISTINCT 2016-year(Birthday) Age FROM Students;

SELECT Tname,Sex FROM Teachers WHERE Grade<60;

SELECT DISTINCT Sno FROM SC WHERE Grade<60;

SELECT Sname, Speciality FROM Students WHERE year(Birthday) BETWEEN 187 AND 1990;

SELECT Sname, Speciality FROM Students WHERE year(Birthday) NOT BETWEEN 187 AND 1990;

SELECT Sno,Sname FROM WHERE Speciality IN ('軟件工程','計(jì)算機(jī)科學(xué)與技術(shù)');

SELECT Sno,Sname FROM WHERE Speciality NOT IN ('軟件工程','計(jì)算機(jī)科學(xué)與技術(shù)');

SELECT Cname FROM Courses WHERE Cname LIKE '數(shù)據(jù)%'

SELECT Sno,Sname FROM Students WHERE LIKE '李__'

SELECT * FROM Courses WHERE Cname LIKE 'C_%' ESCAPE '\';ESCAPE定義\為轉(zhuǎn)義字符

SELECT * FROM SC WHERE Grade IS NULL;

  • 排序和分組

將查詢結(jié)果排序:
ORDER BY <排序列> [ASC|DESC]{,<排序列>[ASC|DESC]}

  • 聚集函數(shù)

SELECT COUNT(*) FROM SC WHERE Cno='CS302';

SELECT MIN(Grade),AVG(Grade),MAX(Grade) FROM SC WHERE Cno='CS302';

  • 分組

SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;

SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)>85;

  • 連接查詢

SELECT Cname,Grade FROM SC,Course WHERE SC.Cno=Courses.Cno AND Sno = '200605098';

SELECT Cname,Grade FROM SC,Course WHERE SC.Cno=Courses.Cno AND Cno='CS202' AND Grade>90;

SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course WHERE Students.Sno=SC.Sno AND SC.Cno=Course.Cno;

  • 嵌套查詢
  1. IN引出的子查詢
    SELECT Sno,Sname FROM Students WHERE Sex = '女' AND Speciality IN (

     SELECT Speciality FROM Students WHERE Sname ='王麗麗'

    );

  2. 集合的比較引出的子查詢
    SELECT Sno,Sname,Speciality,Birthday FROM Students WHERE Speciality <> '軟件工程' AND Birthday > ALL(

     SELECT Birthday FROM Students WHERE Speciality = '軟件工程'

    );

  3. 存在量詞引出的子查詢
    SELECT Sno,Sname FROM Students S WHERE EXISTS (
    SELECT * FROM SC WHERE Sno=S.Sno AND Cno = 'CS403');

數(shù)據(jù)更新

  • 插入單個(gè)元組

INSERT INTO Students VALUES(......);

INSERT INTO Students(......) VALUES(......);

  • 插入查詢結(jié)果

INSERT INTO Cardinf(Card-no,Name,Balance) SELECT Tno,Tname,100.00 FROM Teachers WHERE Dno ='IE';

  • 刪除

DELETE FROM Students WHERE Sno ='98757';

DELETE FROM Students;刪除所有記錄

DELETE FROM SC WHERE Sno IN (
SELECT Sno FROM Students WHERE Speciality = '計(jì)算機(jī)軟件于理論');

  • 修改

UPDATE Teachers SET Title = '副教授' WHERE Tno='B050041';

UPDATE SC SET Grade = Grade + 5 WHERE Grade < 60 AND Cno IN (
SELECT Cno FROM Courses WHERE Cname='軟件工程');

視圖

定義視圖和刪除視圖

  • 定義視圖

CREATE VIEW SE_Students AS SELECT Sno,Sname,Sex,Birthday,Dno FROM Students WHERE Speciality = '軟件工程' WITH CHECK OPTION;表示該視圖是可更新的

CREATE VIEW Student_Grade(Sno,Sname,Cname,Grade) AS SELECT S.Sno,Sname,Cname,Grade FROM Students S,SC,Courses C WHERE S.Sno=C.Sno AND C.Cno= SC.cno;

  • 刪除視圖

DROP VIEW <視圖名> [CASCADE|RESTRICT]

基于視圖的查詢

視圖是命名的導(dǎo)出表,從用戶角度講,查詢時(shí)使用視圖與使用基本表并無區(qū)別

基于視圖的更新

所有視圖都是直接或間接由基本表定義的。基于視圖的更新最終要轉(zhuǎn)換成對(duì)定義視圖的基本表的更新。并不是所有視圖都可以更新。(●'?'●)

視圖的作用

  1. 使用視圖可以使一些查詢表達(dá)更加簡潔
  2. 視圖提供了一定程度的邏輯獨(dú)立性
  3. 視圖的安全保護(hù)作用
  4. 視圖使得用戶能夠以不同角度看待相同的數(shù)據(jù)

完整性與安全性

完整性概述

數(shù)據(jù)庫的完整性是指數(shù)據(jù)庫中的數(shù)據(jù)的正確性、一致性和相容性。數(shù)據(jù)庫中的數(shù)據(jù)要成為有意義的信息,必須滿足一定的語義約束條件。

  • 約束分類
  1. 類型(域)約束:說明給定類型的合法取值
  2. 屬性約束:說明屬性的合法值
  3. 關(guān)系約束:說明關(guān)系的合法取值
  4. 數(shù)據(jù)庫約束:說明數(shù)據(jù)庫的合法取值,通常涉及多個(gè)關(guān)系

實(shí)體完整性是一種關(guān)系約束,參照完整性是一種數(shù)據(jù)庫約束,而用戶定義的完整性可以是上述四種約束的任何一種

靜態(tài)約束是關(guān)于數(shù)據(jù)庫正確狀態(tài)的約束
動(dòng)態(tài)約束是數(shù)據(jù)庫從一種正確狀態(tài)轉(zhuǎn)移到另一種狀態(tài)的約束

  • DBMS對(duì)完整性的支持

  • 說明和定義完整性約束條件的方法

  • 完整性檢查機(jī)制
  • 違約處理

實(shí)體完整性和參照完整性

實(shí)體完整性

  1. 每個(gè)關(guān)系應(yīng)該有一個(gè)主碼,每個(gè)元組的主碼值唯一確定該元組
  2. 主碼的任何屬性都不能取空值

參照完整性

1.參照完整性與E-R模型

如果是由E-R圖得到的,則由聯(lián)系集轉(zhuǎn)換得到的每一個(gè)關(guān)系都存在參照完整性
如果來源是弱實(shí)體集,包含外碼,外碼不能取空值

2.違反參照完整性的更新
3.保證參照完整性的措施

拒絕
級(jí)連

SQL中的參照完整性

SQL支持參照完整性。

用戶定義完整性

屬性約束

屬性上的約束是指屬性的取值必須來自其定義的值域

關(guān)系約束

關(guān)系約束說明關(guān)系的合法取值,常常涉及多個(gè)同一關(guān)系的多個(gè)屬性和/或多個(gè)屬性元組(否則可以看作屬性約束)

斷言與數(shù)據(jù)庫約束

斷言是一種命名約束,它表達(dá)了數(shù)據(jù)庫狀態(tài)必須滿足的邏輯條件。

觸發(fā)器

觸發(fā)器是特殊類型的儲(chǔ)存過程,當(dāng)某個(gè)事件發(fā)生時(shí)它被自動(dòng)執(zhí)行

  1. 指明什么事件發(fā)生和滿足什么條件執(zhí)行觸發(fā)器
  2. 指明觸發(fā)器執(zhí)行什么樣的動(dòng)作

  3. SQL中的觸發(fā)器

CREATE TRIGGER OverdraftTrigger
AFTER UPDATE OF Balance ON Account
REFERENCING NEW ROW AS nrow
FOR EACH ROW
WHEN(nrow.balance<0)
BEGIN ATOMIC
INSERT INTO Loan VALUEA(......);
END

安全性概述

  • 數(shù)據(jù)庫安全保護(hù)的多層面

  • 物理層

  • 人際層
  • 網(wǎng)絡(luò)層
  • 數(shù)據(jù)庫系統(tǒng)層
  • 操作系統(tǒng)層

  • 數(shù)據(jù)庫安全保護(hù)的任務(wù)

  • 未經(jīng)授權(quán)讀區(qū)數(shù)據(jù)(竊取信息)

  • 未經(jīng)授權(quán)修改數(shù)據(jù)
  • 未經(jīng)授權(quán)刪除數(shù)據(jù)

保護(hù)數(shù)據(jù)設(shè)計(jì)以下幾個(gè)任務(wù)

  1. 防止對(duì)數(shù)據(jù)的未經(jīng)過授權(quán)的存取,確保敏感信息沒有被不“需要知道”這些信息的人訪問的到
  2. 防止未經(jīng)過授權(quán)的人員刪除和修改數(shù)據(jù)
  3. 監(jiān)視對(duì)數(shù)據(jù)的訪問和更改等使用情況

SQL的授權(quán)

授權(quán)與收回

  • 授權(quán)語句

GRANT SELECT ON Students TO PUBLIC;

GRANT ALL PRIVILEGES ON Students TO U1;

GRANT ALL PRIVILEGES ON Students,Courses TO U1,U2 WITH GRANT OPTION;

GRANT INSERT,UPDATE(Grade) ON TABLE SC TO U3;

  • 收回權(quán)限

REVOKE <權(quán)限列表> ON <對(duì)象名> FROM <用戶/角色列表> {CASCADE|RESTRICT}

SQL對(duì)角色的支持

  • 創(chuàng)建角色和角色授權(quán)

CREATE ROLE <角色名>

GRANT ALL PRIVILEGES ON Account,Loan,Depositor,Borrower TO Teller;

  • 使用角色授權(quán)

GRANT <角色列表> TO <用戶/角色列表>

GRANT Manager TO niuxianghui WITH ADMIN OPTION;

  • 收回授予角色的權(quán)限

可以像從用戶回收權(quán)限一樣,使用REVOKE語句回收授予角色的授權(quán)

  • 收回角色

REVOKE <角色列表> FROM <用戶/角色列表> {CASCADE|RESTRICT}

其他安全措施

  1. 審計(jì)技術(shù)
  2. 數(shù)據(jù)加密

關(guān)系數(shù)據(jù)庫的設(shè)計(jì)理論

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多