《《數(shù)據(jù)庫原理》15-16學(xué)年第1學(xué)期考試大綱.doc》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫原理》15-16學(xué)年第1學(xué)期考試大綱.doc(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
考試基本題型及分?jǐn)?shù)分布
選擇題(30分) 填空題(15分) 簡答題(20分)
設(shè)計題(15分) 綜合題(20分)
1. 數(shù)據(jù)庫概述
(1)理解DB(數(shù)據(jù)庫)、DBMS(數(shù)據(jù)庫管理系統(tǒng))和DBS(數(shù)據(jù)庫系統(tǒng))的概念和它們之間的關(guān)系;
數(shù)據(jù)庫的定義
數(shù)據(jù)庫(Database,簡稱DB)是長期儲存在計算機內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合。
什么是DBMS
位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。
是基礎(chǔ)軟件,是一個大型復(fù)雜的軟件系統(tǒng).
數(shù)據(jù)庫系統(tǒng)(Database System,簡稱DBS)
在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成
(2) 理解數(shù)據(jù)庫系統(tǒng)的特點;
數(shù)據(jù)結(jié)構(gòu)化
數(shù)據(jù)的共享性高,冗余度低,易擴充
數(shù)據(jù)獨立性高
數(shù)據(jù)由DBMS統(tǒng)一管理和控制
(3) 掌握數(shù)據(jù)模型的概念和三個基本要素;
概念:
數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象,通俗地講數(shù)據(jù)模型就是現(xiàn)實世界的模擬。
數(shù)據(jù)模型應(yīng)滿足三方面要求(①比較真實地模擬現(xiàn)實世界②容易為人所理解③便于在計算機上實現(xiàn))
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)
三個基本要素:
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)操作
數(shù)據(jù)的完整性約束條件
(4) 理解數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)和二級映像功能;
模式(Schema)
模式的定義:數(shù)據(jù)的邏輯結(jié)構(gòu)(數(shù)據(jù)項的名字、類型、取值范圍等)
數(shù)據(jù)之間的聯(lián)系
數(shù)據(jù)有關(guān)的安全性、完整性要求
模式(也稱邏輯模式):數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,所有用戶的公共數(shù)據(jù)視圖,綜合了所有用戶的需求,一個數(shù)據(jù)庫只有一個模式
模式的地位:是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,與數(shù)據(jù)的物理存儲細節(jié)和硬件環(huán)境無關(guān),與具體的應(yīng)用程序、開發(fā)工具及高級程序設(shè)計語言無關(guān)
外模式(External Schema)
外模式(也稱子模式或用戶模式):
數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述
數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示
外模式的地位:介于模式與應(yīng)用之間
模式與外模式的關(guān)系:一對多
外模式通常是模式的子集
對模式中同一數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以不同
外模式與應(yīng)用的關(guān)系:一對多
同一外模式也可以為某一用戶的多個應(yīng)用系統(tǒng)所使用
但一個應(yīng)用程序只能使用一個外模式
外模式的用途
保證數(shù)據(jù)庫安全性的一個有力措施
每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù)內(nèi)模式(Internal Schema)
內(nèi)模式(也稱存儲模式):是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式,記錄的存儲方式(順序存儲,按照B樹結(jié)構(gòu)存儲,按hash方法存儲)
索引的組織方式:
數(shù)據(jù)是否壓縮存儲、數(shù)據(jù)是否加密、數(shù)據(jù)存儲記錄結(jié)構(gòu)的規(guī)定、一個數(shù)據(jù)庫只有一個內(nèi)模式
三級模式是對數(shù)據(jù)的三個抽象級別
二級映象在DBMS內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換
外模式/模式映像:保證數(shù)據(jù)的邏輯獨立性
模式/內(nèi)模式映像:保證數(shù)據(jù)的物理獨立性
(5) 掌握數(shù)據(jù)庫物理獨立性的含義和邏輯獨立性的含義。
保證數(shù)據(jù)的邏輯獨立性:
當(dāng)模式改變時,數(shù)據(jù)庫管理員修改有關(guān)的外模式/模式映象,使外模式保持不變。
保證數(shù)據(jù)的物理獨立性:
當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(例如選用了另一種存儲結(jié)構(gòu)),數(shù)據(jù)庫管理員修改模式/內(nèi)模式映象,使模式保持不變。
本章占試卷總分6%
2. 關(guān)系數(shù)據(jù)庫
(1)熟練掌握關(guān)系模型的完整性規(guī)則;
1 實體完整性
規(guī)則2.1 實體完整性規(guī)則(Entity Integrity)
若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值
空值就是“不知道”或“不存在”或“無意義”的值
2 參照完整性
規(guī)則2.2 參照完整性規(guī)則
若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:
或者取空值(F的每個屬性值均為空值)
或者等于S中某個元組的主碼值
3 用戶定義的完整性
針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求
關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不需由應(yīng)用程序承擔(dān)這一功能。
(2) 掌握傳統(tǒng)的并、交、差和笛卡兒積運算;
(3) 深入理解專門關(guān)系運算含義,特別是不同種類連接操作的區(qū)別與聯(lián)系;
(4)能夠應(yīng)用除運算解決實際問題;
(5)能夠同時運用傳統(tǒng)運算和專門關(guān)系運算解決實際問題;
(6)熟練應(yīng)用關(guān)系代數(shù)表達式完成實際的查詢操作。
設(shè)有一個SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個關(guān)系模式:
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNANE,CITY);
SPJ(SNO,PNO,JNO,QTY)。
其中:供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成;
零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成;工程項目表J 由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成;
供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應(yīng)數(shù)量組成(QTY)組成,表示某供應(yīng)商供應(yīng)某種零件給某工程項目的數(shù)量為QTY。
試分別用關(guān)系代數(shù)和sql語句寫出如下查詢:
1)求供應(yīng)工程J1 零件的供應(yīng)商號碼SNO。
2)求供應(yīng)工程J1 零件P1的供應(yīng)商號碼SNO。
3)求供應(yīng)工程J1 零件為紅色的供應(yīng)商號碼SNO。
4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號。
5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號。
關(guān)系代數(shù):
1)求供應(yīng)工程J1零件的供應(yīng)商號碼SNO:
πSno(σSno=‘J1’(SPJ))
2)求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO:
πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO:
πSno(σPno=‘P1‘(σCOLOR=’紅‘ (P)∞SPJ))
4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘紅‘ (S∞SPJ∞P)
5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO:
πJno,Pno(SPJ) πPno(σSno=‘S1‘ (SPJ))
sql語句:
( l )求供應(yīng)工程 Jl 零件的供應(yīng)商號碼 SNO ;
SELECT SNO FROM SPJ WHERE JNO=’J1’
( 2 )求供應(yīng)工程 Jl 零件 Pl 的供應(yīng)商號碼 SNO ;
SELECT SNO FROM SPJ WHERE JNO=J1 AND PNO=P1
( 3 )求供應(yīng)工程 Jl 零件為紅色的供應(yīng)商號碼 SNO ;
SELECT SNO FROM SPJ,P WHEREJNO=J1 AND SPJ.PNO=P.PNO AND COLOR=紅
( 4 )求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號 JNO ;
SELECT JNO FROM SPJ WHERE JNO NOT IN(SELE JNO FROM SPJ,P,S WHERE S.CITY=天津 AND COLOR=紅 ANDS.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
( 5 )求至少用了供應(yīng)商 Sl 所供應(yīng)的全部零件的工程號 JNO ;
由于VFP不允許子查詢嵌套太深,將查詢分為兩步
A、查詢S1供應(yīng)商供應(yīng)的零件號
SELECT PNO FROM SPJ WHERE SNO=S1結(jié)果是(P1,P2)
B、查詢哪一個工程既使用P1零件又使用P2零件。
SELECT FROM SPJ WHEREPNO=P1
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=P2)
本章占試卷總分12%
3. 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL
(1)掌握SQL語言的主要功能;
sQL 的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 SQL 語言使用 cREATE TABLE 語句建立基本表, ALTER TABLE 語句修改基本表定義, DROP TABLE 語句刪除基本表;使用 CREATE INDEX 語句建立索引, DROP INDEX 語句刪除索引;使用 CREATE VIEW 語句建立視圖, DROP VIEW 語句刪除視圖。
(2) 掌握數(shù)據(jù)定義語句中的create和drop基本語法;
[例3]
CREATE SCHEMA TEST AUTHORIZATION ZHANG
CREATE TABLE TAB1(COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20),
COL4 NUMERIC(10,3),
COL5 DECIMAL(5,2)
);
為用戶ZHANG創(chuàng)建了一個模式TEST,并在其中定義了一個表TAB1。
DROP SCHEMA <模式名>
CASCADE(級聯(lián))
刪除模式的同時把該模式中所有的數(shù)據(jù)庫對象全部刪除
RESTRICT(限制)
如果該模式中定義了下屬的數(shù)據(jù)庫對象(如表、視圖等),則拒絕該刪除語句的執(zhí)行。
當(dāng)該模式中沒有任何下屬的對象時 才能執(zhí)行。
[例4] DROP SCHEMA ZHANG CASCADE;
刪除模式ZHANG
同時該模式中定義的表TAB1也被刪除
[例5] 建立“學(xué)生”表Student,學(xué)號是主碼,姓名取值唯一
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY, /* 列級完整性約束條件*/
Sname CHAR(20) UNIQUE, /* Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
[例6] 建立一個“課程”表Course
CREATE TABLE Course
( Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4) ,
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);
[例7] 建立一個“學(xué)生選課”表SC
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
/* 主碼由兩個屬性構(gòu)成,必須作為表級完整性進行定義*/
FOREIGN KEY (Sno) REFERENCES Student(Sno),
/* 表級完整性約束條件,Sno是外碼,被參照表是Student */
FOREIGN KEY (Cno) REFERENCES Course(Cno)
/* 表級完整性約束條件, Cno是外碼,被參照表是Course*/
);
[例11] 刪除Student表
DROP TABLE Student CASCADE ;
(基本表定義被刪除,數(shù)據(jù)被刪除;表上建立的索引、視圖、觸發(fā)器等一般也將被刪除 )
[例12]若表上建有視圖,選擇RESTRICT時表不能刪除
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept=IS;
DROP TABLE Student RESTRICT;
--ERROR: cannot drop table Student because other objects depend on it
[例12]如果選擇CASCADE時可以刪除表,視圖也自動被刪除
DROP TABLE Student CASCADE;
--NOTICE: drop cascades to view IS_Student
SELECT * FROM IS_Student;
--ERROR: relation " IS_Student " does not exist
(3) 熟練應(yīng)用SQL語句實現(xiàn)數(shù)據(jù)檢索功能,包括多表查詢和嵌套查詢;
P99-P115
(4) 熟練應(yīng)用SQL語句實現(xiàn)數(shù)據(jù)插入、修改和刪除操作;P115-P119
(5) 熟練應(yīng)用group分組和order排序語句;
(6) 掌握計數(shù)和求平均值等聚集函數(shù)的應(yīng)用;P97
(7) 熟練掌握視圖的定義和應(yīng)用視圖的優(yōu)點;
P123 [例3.89]
試述視圖的優(yōu)點。
答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據(jù); ( 3 )視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性; ( 4 )視圖能夠?qū)C密數(shù)據(jù)提供安全保護。
(8)試述等值連接與自然連接的區(qū)別和聯(lián)系。
答:連接運算符是“=”的連接運算稱為等值連接。它是從關(guān)系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組
自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。
要點遺漏:
信息世界的基本概念:
(1) 實體:客觀存在并相互區(qū)別的事物稱為實體
(2) 屬性:實體所具有的某一特性,一個實體可由若干個屬性來刻畫。
(3) 碼:唯一標(biāo)識實體的屬性集稱為碼
(4) 實體型:具有相同屬性的實體具有相同的特征和性質(zhì),用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。
(5) 實體集:同型實體的集合稱為實體集。
(6) 聯(lián)系:實體之間的聯(lián)系有一對多、一對一和多對多等多種類型
課后習(xí)題3、5、9:P130
3、3 .用 sQL 語句建立第二章習(xí)題 5 中的 4 個表。
答:
對于 S 表: S ( SNO , SNAME , STATUS , CITY ) ;
建 S 表:
CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4));
對于 P 表: P ( PNO , PNAME , COLOR , WEIGHT );
建 P 表 :
CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT);
對于 J 表: J ( JNO , JNAME , CITY);
建 J 表:
CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4));
對于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ;
建 SPJ 表:SPJ(SNO,PNO,JNO,QTY)
CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT))
5.針對習(xí)題3中的四個表試用SQL語言完成以下各項操作:
(1)找出所有供應(yīng)商的姓名和所在城市。
SELECT SNAME,CITY FROM S
(2)找出所有零件的名稱、顏色、重量。
SELECT PNAME,COLOR,WEIGHT FROM P
(3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號碼。
SELECT DIST JNO FROM SPJ WHERE SNO=S1
(4)找出工程項目J2使用的各種零件的名稱及其數(shù)量。
SELECT PNAME,QTY FROM SPJ,P
WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2
(5)找出上海廠商供應(yīng)的所有零件號碼。
SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海
(6)出使用上海產(chǎn)的零件的工程名稱。
SELECT JNAME FROM SPJ,S,J
WHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.JNO
(7)找出沒有使用天津產(chǎn)的零件的工程號碼。
注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津) 適用于JNO是唯一或不唯一的情況.
注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>天津適用于JNO是唯一的情況
(8)把全部紅色零件的顏色改成藍色。
UPDATE P SET COLOR=藍 WHERE COLOR=紅
(9)由S5供給J4的零件P6改為由S3供應(yīng)。
UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6
(10)從供應(yīng)商關(guān)系中刪除供應(yīng)商號是S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。
A、DELETE FROM S WHERE SNO=’S2’
B、DELETE FROM SPJ WHERE SNO=‘S2’
(11)請將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。
INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)
9、請為三建工程項目建立一個供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。
CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND J.JNAME=三建
針對該視圖VSP完成下列查詢:
(1)找出三建工程項目使用的各種零件代碼及其數(shù)量。
SELECT DIST PNO,QTY FROM VSP
(2)找出供應(yīng)商S1的供應(yīng)情況。
SELECT DIST * FROM VSP WHERE SNO=S1本章占試卷總分18%
4. 數(shù)據(jù)庫安全性
(1)理解數(shù)據(jù)庫安全性的含義;
答:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
(2) 熟練使用grant進行授權(quán),使用revoke收回權(quán)限;
答:
SQL 中的自主存取控制是通過GRANT語句和REVOKE語句來實現(xiàn)的。如:
SELECT , INSERT ON Student
TO 王平
WITH GRANT OPTION ;
就將Student 表的SELECT 和INSERT 權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION ”子句表示用戶王平同時也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。
REVOKE INSERT ON Student FROM 王平CASCADE ;
就將Student 表的INSERT 權(quán)限從用戶王平處收回,選項CASCADE 表示,如果用戶王平將Student 的INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。
(3) 理解數(shù)據(jù)庫管理系統(tǒng)的存取控制方法;
存取控制機制組成:定義用戶權(quán)限+合法權(quán)限檢查
用戶權(quán)限定義和合法權(quán)檢查機制一起組成了DBMS的安全子系統(tǒng)
常用存取控制方法:
自主存取控制
C2級
靈活
強制存取控制
B1級
嚴(yán)格
自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權(quán)限。當(dāng)用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權(quán)限。防止不合法用戶對數(shù)據(jù)庫的存取。
強制存取控制方法:每一個數(shù)據(jù)對象被(強制地)標(biāo)以一定的密級,每一個用戶也被(強制地)授予某一個級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個密級的數(shù)據(jù)對象。
(4) 理解視圖機制實現(xiàn)數(shù)據(jù)庫安全性控制。
視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。
主要功能是提供數(shù)據(jù)獨立性,無法完全滿足要求
間接實現(xiàn)了支持存取謂詞的用戶權(quán)限定義
[例14]建立計算機系學(xué)生的視圖,把對該視圖的SELECT權(quán)限授于王平,把該視圖上的所有操作權(quán)限授于張明
先建立計算機系學(xué)生的視圖CS_Student
CREATE VIEW CS_Student
AS
SELECT *FROM Student
WHERE Sdept=CS;
在視圖上進一步定義存取權(quán)限
GRANT SELECT
ON CS_Student
TO 王平 ;
GRANT ALL PRIVILIGES
ON CS_Student
TO 張明;
P155(7\9)
7請用SQL的GRANT 和REVOKE語句(加上視圖機制)完成以下授權(quán)定義或存取控制功能:
( a )用戶王明對兩個表有SELECT 權(quán)力。
GRANT SELECT ON 職工,部門
TO 王明
( b )用戶李勇對兩個表有INSERT 和DELETE 權(quán)力。
GRANT INSERT,DELETE ON 職工,部門
TO 李勇
( c ) 每個職工只對自己的記錄有SELECT 權(quán)力。
GRANT SELECT ON 職工
WHEN USER()=NAME
TO ALL;
( d )用戶劉星對職工表有SELECT 權(quán)力,對工資字段具有更新權(quán)力。
GRANT SELECT,UPDATE(工資) ON 職工
TO 劉星
( e )用戶張新具有修改這兩個表的結(jié)構(gòu)的權(quán)力。
GRANT ALTER TABLE ON 職工,部門
TO 張新;
( f )用戶周平具有對兩個表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力。
GRANT ALL PRIVILIGES ON 職工,部門
TO 周平
WITH GRANT OPTION;
( g )用戶楊蘭具有從每個部門職工中SELECT 最高工資、最低工資、平均工資的權(quán)力,他不能查看每個人的工資。
CREATE VIEW 部門工資 AS
SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE 職工.部門號=部門.部門號
GROUP BY 職工.部門號
GRANT SELECT ON 部門工資
TO 楊蘭;
8.把習(xí)題8 中(1)---(7)的每一種情況,撤銷各用戶所授予的權(quán)力
(1) REVOKE SELECT ON 職工,部門 FROM 王明;
(2) REVOKE INSERT , DELETE ON 職工,部門 FROM 李勇;
(3) REOVKE SELECT ON 職工
WHEN USER ( ) =NAME
FROM ALI ;
(4) REVOKE SELECT , UPDATE ON 職工
FROM 劉星;
(5) REVOKE ALTER TABLE ON 職工,部門
FROM 張新;
(6) REVOKE ALL PRIVILIGES ON 職工,部門
FROM 周平;
(7) REVOKE SELECT ON 部門工資
FROM 楊蘭;
DROP VIEW 部門工資;
本章占試卷總分4%
5. 數(shù)據(jù)庫完整性
數(shù)據(jù)庫的完整性:數(shù)據(jù)的正確性和相容性
數(shù)據(jù)的完整性和安全性是兩個不同概念
≠數(shù)據(jù)的完整性:防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),也就是防止數(shù)據(jù)庫中存在不正確的數(shù)據(jù)
防范對象:不合語義的、不正確的數(shù)據(jù)
≠數(shù)據(jù)的安全性:保護數(shù)據(jù)庫防止惡意的破壞和非法的存取
防范對象:非法用戶和非法操作
(1)理解關(guān)系主碼的含義,能夠指定具體關(guān)系模式的主碼;
(2) 理解關(guān)系外碼的含義,能夠找出具體關(guān)系模式的外碼;
(3) 掌握使用SQL數(shù)據(jù)定義語句實現(xiàn)實體完整性和參照完整性;
(4) 關(guān)系系統(tǒng)中,當(dāng)操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進行處理的?
答:對于違反實體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進行處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性。
實體完整性定義
CREATE TABLE中用PRIMARY KEY定義
≠單屬性構(gòu)成的碼有兩種說明方法:
定義為列級約束條件
定義為表級約束條件
≠對多個屬性構(gòu)成的碼只有一種說明方法
定義為表級約束條件
[例1] 將Student表中的Sno屬性定義為碼
(1) 在列級定義主碼
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) NOT NULL,
Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20));
(2)在表級定義主碼
CREATE TABLE Student
(Sno CHAR(9),
Sname CHAR(20) NOT NULL,
Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno)
);
[例2]將SC表中的Sno,Cno屬性組定義為碼
CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno,Cno) /*只能在表級定義主碼*/
);
關(guān)系模型的參照完整性定義
在CREATE TABLE中用FOREIGN KEY短語定義哪些列為外碼
用REFERENCES短語指明這些外碼參照哪些表的主碼
例如,關(guān)系SC中一個元組表示一個學(xué)生選修的某門課程的成績,(Sno,Cno)是主碼。Sno,Cno分別參照引用Student表的主碼和Course表的主碼
[例3] 定義SC中的參照完整性
CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY (Sno, Cno), /*在表級定義實體完整性*/
FOREIGN KEY (Sno) REFERENCES Student(Sno),
/*在表級定義參照完整性*/
FOREIGN KEY (Cno) REFERENCES Course(Cno)
/*在表級定義參照完整性*/
);
(5) 使用SQL完成自定義完整性約束。
1.不允許取空值
[例5] 在定義SC表時,說明Sno、Cno、Grade屬性不允許取空值。
CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT NOT NULL,
PRIMARY KEY (Sno, Cno),
/* 如果在表級定義實體完整性,隱含了Sno,Cno不允許取空值,則在列級不允許取空值的定義就不必寫了 * /
);
2.列值唯一
[例6] 建立部門表DEPT,要求部門名稱Dname列取值唯一,部門編號Deptno列為主碼
CREATE TABLE DEPT
(Deptno NUMERIC(2),
Dname CHAR(9) UNIQUE,/*要求Dname列值唯一*/
Location CHAR(10),
PRIMARY KEY (Deptno)
);
3. 用CHECK短語指定列值應(yīng)該滿足的條件
[例7] Student表的Ssex只允許取“男”或“女”。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(8) NOT NULL,
Ssex CHAR(2) CHECK (Ssex IN (‘男’,‘女’) ) ,
/*性別屬性Ssex只允許取男或女 */
Sage SMALLINT,
Sdept CHAR(20)
);
[例9] 當(dāng)學(xué)生的性別是男時,其名字不能以Ms.打頭。
CREATE TABLE Student
(Sno CHAR(9),
Sname CHAR(8) NOT NULL,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20),
PRIMARY KEY (Sno),
CHECK (Ssex=女 OR Sname NOT LIKE Ms.%)
/*定義了元組中Sname和 Ssex兩個屬性值之間的約束條件*/
);
性別是女性的元組都能通過該項檢查,因為Ssex=‘女’成立;
當(dāng)性別是男性時,要通過檢查則名字一定不能以Ms.打頭
課后習(xí)題6:P173
6 .假設(shè)有下面兩個關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號),其中職工號為主碼;部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼。用 sQL 語言定義這兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過 60 歲。
答
CREATE TABLE DEPT
(Deptno NUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12)
CONSTRAINT PK_SC RIMARY KEY(Deptno));
CREATE TABLE EMP
(Empno NUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60),
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
本章占試卷總分8%
6. 關(guān)系數(shù)據(jù)理論
(1)根據(jù)實際語義確定關(guān)系模式的函數(shù)依賴集;P180
(2) 掌握1NF、2NF、3NF和BCNF的定義;P180
(3) 理解1NF、2NF可能存在的插入和刪除異?,F(xiàn)象,并能結(jié)合具體關(guān)系模式舉例說明;P183
(4) 理解滿足BCNF關(guān)系模式的特點;
(5)能夠判定指定關(guān)系模式的范式級別,并陳述判定依據(jù);
(6)能夠根據(jù)語義將低級別范式分解為高級別范式;
(7)能夠依據(jù)函數(shù)依賴找出關(guān)系的候選碼。
課后習(xí)題:
2.建立一個關(guān)于系、學(xué)生、班級、學(xué)會等諸信息的關(guān)系數(shù)據(jù)庫。
學(xué)生:學(xué)號、姓名、出生年月、系名、班號、宿舍區(qū)。
班級:班號、專業(yè)名、系名、人數(shù)、入校年份。
系:系名、系號、系辦公地點、人數(shù)。
學(xué)會:學(xué)會名、成立年份、辦公地點、人數(shù)。
語義如下:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學(xué)生。一個系的學(xué)生住在同一宿舍區(qū)。每個學(xué)生可參加若干學(xué)會,每個學(xué)會有若干學(xué)生。學(xué)生參加某學(xué)會有一個入會年份。
請給出關(guān)系模式,寫出每個關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。指出各關(guān)系模式的候選碼、外部碼,有沒有全碼存在?
解:(1)關(guān)系模式如下:
學(xué)生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班級:C(Class,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
學(xué)會:M(Mname,Myear,Maddr,Mnum)
(2)每個關(guān)系模式的最小函數(shù)依賴集如下:
A、學(xué)生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函數(shù)依賴集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno
傳遞依賴如下:
由于SnoDept,而DeptSno ,DeptRno(宿舍區(qū))
所以Sno與Rno之間存在著傳遞函數(shù)依賴。
由于ClassDept,Dept Class,DeptRno
所以Class與Rno之間存在著傳遞函數(shù)依賴。
由于SnoClass,ClassSno,ClassDept
所以Sno與Dept之間存在著傳遞函數(shù)依賴。
B、班級C(Class,Pname,Dept,Cnum,Cyear)的最小函數(shù)依賴集如下:
ClassPname,ClassCnum,ClassCyear,PnameDept.
由于ClassPname,PnameClass,PnameDept
所以C1ass與Dept之間存在著傳遞函數(shù)依賴。
C、系D(Dept,Dno,Office,Dnum)的最小函數(shù)依賴集如下:
DeptDno,DnoDept,DnoOffice,DnoDnum
根據(jù)上述函數(shù)依賴可知,Dept與Office,Dept與Dnum之間不存在傳遞依賴。
D、學(xué)會M(Mname,Myear,Maddr,Mnum)的最小函數(shù)依賴集如下:
MnameMyear,MnameMaddr,MnameMnum
該模式不存在傳遞依賴。
(3)各關(guān)系模式的候選碼、外部碼,全碼如下:
A、學(xué)生S候選碼:Sno;外部碼:Dept、Class;無全碼
B、班級C候選碼:Class;外部碼:Dept;無全碼
C、系D候選碼:Dept或Dno;無外部碼;無全碼
D、學(xué)會M候選碼:Mname;無外部碼;無全碼
5 .試舉出3 個多值依賴的實例。
答:(1)關(guān)系模式MSC ( M , S , C )中,M 表示專業(yè),S 表示學(xué)生,C 表示該專業(yè)的必修課。假設(shè)每個專業(yè)有多個學(xué)生,有一組必修課。設(shè)同專業(yè)內(nèi)所有學(xué)生選修的必修課相同,實例關(guān)系如下。按照語義對于M 的每一個值M i , s 有一個完整的集合與之對應(yīng)而不問C 取何值,所以M 一一S 。由于C 與S 的完全對稱性,必然有M 一一C 成立。
(2)關(guān)系模式ISA ( I , S , A )中,I 表示學(xué)生興趣小組,S 表示學(xué)生,A 表示某興趣小組的活動項目。假設(shè)每個興趣小組有多個學(xué)生,有若干活動項目。每個學(xué)生必須參加所在興趣小組的所有活動項目,每個活動項目要求該興趣小組的所有學(xué)生參加。
按照語義有I 一一S , I 一一A 成立。
(3) 關(guān)系模式RDP ( R , D , P )中,R 表示醫(yī)院的病房,D 表示責(zé)任醫(yī)務(wù)人員,P 表示病人。假設(shè)每個病房住有多個病人,有多個責(zé)任醫(yī)務(wù)人員負(fù)責(zé)醫(yī)治和護理該病房的所有病人。
下面的結(jié)論哪些是正確的? 哪些是錯誤的? 對于錯誤的請給一個反例說明之。
(1)任何一個二目關(guān)系是屬于3NF。
答:正確。因為關(guān)系模式中只有兩個屬性,所以無傳遞。
(2)任何一個二目關(guān)系是屬于BCNF.
答:正確。按BCNF的定義,若XY,且Y不是X的子集時,每個決定因素都包含碼,對于二目關(guān)系決定因素必然包含碼。
本章占試卷總分20%
7. 數(shù)據(jù)庫設(shè)計
(1)熟練掌握關(guān)系數(shù)據(jù)庫設(shè)計的基本步驟,能簡單描述各個步驟主要完成的任務(wù);
數(shù)據(jù)庫設(shè)計分6個階段
需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)
概念結(jié)構(gòu)設(shè)計:通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體 DBMS 的概念模型。
邏輯結(jié)構(gòu)設(shè)計:將概念結(jié)構(gòu)轉(zhuǎn)換為某個 DBMS 所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。
物理結(jié)構(gòu)設(shè)計:為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。
數(shù)據(jù)庫實施:設(shè)計人員運用 DBMS 提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。
數(shù)據(jù)庫運行和維護:在數(shù)據(jù)庫系統(tǒng)運行過程中對其進行評價、調(diào)整與修改。
(2) 了解需求分析階段完成的主要工作和結(jié)果;
需求分析的任務(wù)
詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等)
充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))
明確用戶的各種需求
確定新系統(tǒng)的功能
充分考慮今后可能的擴充和改變
調(diào)查的重點是“數(shù)據(jù)”和“處理”,獲得用戶對數(shù)據(jù)庫要求
信息要求
處理要求
安全性與完整性要求
(3) 理解物理結(jié)構(gòu)設(shè)計的主要工作;
答:數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于給定的 DBMS 。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用要求的物理結(jié)構(gòu),就是數(shù)據(jù)庫的物理設(shè)計的主要內(nèi)容。數(shù)據(jù)庫的物理設(shè)計步驟通常分為兩步: ( l)確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構(gòu); ( 2)對物理結(jié)構(gòu)進行評價,評價的重點是時間效率和空間效率。
(4) 能夠陳述數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計的含義,并闡述其具體設(shè)計步驟;
數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計就是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本 E 一 R 圖轉(zhuǎn)換為與選用的 DBMS 產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。設(shè)計步驟為 : ( l)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型; ( 2)將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定 DBMS 支持下的數(shù)據(jù)模型轉(zhuǎn)換; ( 3)對數(shù)據(jù)模型進行優(yōu)化。
(5)能夠根據(jù)實際應(yīng)用場景設(shè)計ER圖,并正確判定聯(lián)系類型的種類和各個實體的屬性;
(6)能夠結(jié)合實際,并依據(jù)聯(lián)系類型的轉(zhuǎn)換規(guī)則將ER圖轉(zhuǎn)換為關(guān)系模式,同時正確標(biāo)注關(guān)系模式的主碼;
(7)理解局部視圖集成過程中產(chǎn)生的沖突種類。
課后習(xí)題7、8、10
7、
10.
本章占試卷總分18%
8. 數(shù)據(jù)庫編程
存儲過程:由過程化SQL語句書寫的過程,經(jīng)編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務(wù)器中,使用時只要調(diào)用即可。
存儲過程的優(yōu)點
(1)運行效率高
(2)降低了客戶機和服務(wù)器之間的通信量
(3)方便實施企業(yè)規(guī)則
本章占試卷總分4%
9. 關(guān)系查詢處理和查詢優(yōu)化
在集中式數(shù)據(jù)庫中,查詢執(zhí)行開銷主要包括磁盤存取塊數(shù)(I/O代價)、處理機時間(CPU代價)以及查詢的內(nèi)存開銷。
典型的啟發(fā)式規(guī)則有:
(1)選擇運算盡可能先做
(2)把投影運算和選擇運算同時進行
(3)把投影同其前或后的雙目運算結(jié)合
(4)把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為連接運算
(1) 能夠?qū)崿F(xiàn)關(guān)系代數(shù)表達式與SQL語句的轉(zhuǎn)換;
(2)
(2) 理解關(guān)系數(shù)據(jù)庫系統(tǒng)查詢處理的基本過程;
(3) 理解查詢優(yōu)化的目標(biāo)以及查詢操作的主要代價。
本章占試卷總分2%
10. 數(shù)據(jù)庫恢復(fù)技術(shù)
(1)理解事務(wù)的概念和事務(wù)的四大特性;
事務(wù)(Transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
事務(wù)和程序是兩個概念
在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一條SQL語句,一組SQL語句或整個程序
一個程序通常包含多個事務(wù)
事務(wù)是恢復(fù)和并發(fā)控制的基本單位
事務(wù)的四大特性:(ACID特性)
原子性(Atomicity)事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做
一致性(Consistency):
事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)
一致性狀態(tài)
數(shù)據(jù)庫中只包含成功事務(wù)提交的結(jié)果
不一致狀態(tài)
數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷;
這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài)
隔離性(Isolation)
一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾
一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的
并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾
持續(xù)性(Durability )
持續(xù)性也稱永久性(Permanence)
一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。
接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。
(2)掌握建立冗余的常用技術(shù);
數(shù)據(jù)轉(zhuǎn)儲和登記日志文件
(4) 理解事務(wù)日志的作用;
進行事務(wù)故障恢復(fù)
進行系統(tǒng)故障恢復(fù)
協(xié)助后備副本進行介質(zhì)故障恢復(fù)
(5) 掌握事務(wù)的提交和撤銷方法;
COMMIT
事務(wù)正常結(jié)束
提交事務(wù)的所有操作(讀+更新)
事務(wù)中所有對數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中
ROLLBACK
事務(wù)異常終止
事務(wù)運行的過程中發(fā)生了故障,不能繼續(xù)執(zhí)行
系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有已完成的操作全部撤銷
事務(wù)滾回到開始時的狀態(tài)
(6) 掌握數(shù)據(jù)庫運行中可能產(chǎn)生的故障種類,理解各種故障對數(shù)據(jù)庫帶來的影響;
1.事務(wù)內(nèi)部的故障
有的是可以通過事務(wù)程序本身發(fā)現(xiàn)的(見下面轉(zhuǎn)賬事務(wù)的例子)
有的是非預(yù)期的,不能由事務(wù)程序處理的。
2.系統(tǒng)故障:稱為軟故障,是指造成系統(tǒng)停止運轉(zhuǎn)的任何事件,使得
系統(tǒng)要重新啟動。
整個系統(tǒng)的正常運行突然被破壞
所有正在運行的事務(wù)都非正常終止
不破壞數(shù)據(jù)庫
內(nèi)存中數(shù)據(jù)庫緩沖區(qū)的信息全部丟失
3.介質(zhì)故障:
稱為硬故障,指外存故障
磁盤損壞
磁頭碰撞
瞬時強磁場干擾
介質(zhì)故障破壞數(shù)據(jù)庫或部分?jǐn)?shù)據(jù)庫,并影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)
介質(zhì)故障比前兩類故障的可能性小得多,但破壞性大得多
4.計算機病毒
一種人為的故障或破壞,是一些惡作劇者研制的一種計算機程序
可以繁殖和傳播,造成對計算機系統(tǒng)包括數(shù)據(jù)庫的危害
計算機病毒種類
小的病毒只有20條指令,不到50B
大的病毒像一個操作系統(tǒng),由上萬條指令組成
本章占試卷總分4%
11. 并發(fā)控制
(1)理解并發(fā)控制的含義;
并發(fā)控制機制是衡量一個數(shù)據(jù)庫管理系統(tǒng)性能的重要標(biāo)志之一。
(2) 理解并發(fā)操作可能產(chǎn)生的問題;
會產(chǎn)生多個事務(wù)同時存取同一數(shù)據(jù)的情況
可能會存取和存儲不正確的數(shù)據(jù),破壞事務(wù)隔離性和數(shù)據(jù)庫的一致性
(3) 掌握常見的并發(fā)控制技術(shù);
鏈接地址:http://m.zhongcaozhi.com.cn/p-13151369.html