【正文】
數(shù)據(jù)庫的數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此可以被多個用戶、多個應(yīng)用、用多種不同的語言共享使用。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活。 ?。担囀鰯?shù)據(jù)庫系統(tǒng)的特點。 ?。矗e出適合用文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子。因為DBMS的實現(xiàn)與操作系統(tǒng)中的文件系統(tǒng)是緊密相關(guān)的。但是DBMS是在操作系統(tǒng)的基礎(chǔ)上實現(xiàn)的。 數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實世界,共享性高、冗余度小,具有高度的物理獨立性和一定的邏輯獨立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力。 總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。因為在數(shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來完成。 2.使用數(shù)據(jù)庫系統(tǒng)有什么好處? 使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點或優(yōu)點決定的。 *解析: DBMS是一個大型復(fù)雜的軟件系統(tǒng)。 不要引起混淆。 *解析: 數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個概念。 數(shù)據(jù)模型是數(shù)據(jù)庫的核心概念。還可以表示一袋奶粉重500克。早期的計算機系統(tǒng)主要用于科學計算,處理的數(shù)據(jù)是整數(shù)、實數(shù)、浮點數(shù)等傳統(tǒng)數(shù)學中的數(shù)據(jù)等。 數(shù)據(jù): 描述事物的符號記錄稱為數(shù)據(jù)。 A. 模式與外模式 B. 模式與內(nèi)模式 C. 三層之間的兩種映射 D. 三層模式 8. 要保證數(shù)據(jù)庫的邏輯數(shù)據(jù)獨立性,需要修改的是( ) 。 I.人工管理階段 II.文件系統(tǒng)階段 III.數(shù)據(jù)庫階段 A. I 和 II B. 只有 II C. II 和 III D. 只有 I 4. 下列四項中,不屬于數(shù)據(jù)庫系統(tǒng)特點的是( ) 。數(shù)據(jù)庫系統(tǒng)概論習題集第一章 緒論 一、選擇題 1. DBS是采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng),DBS是一個集合體,包含數(shù)據(jù)庫、計算機硬件、軟件和( ) 。 A. 數(shù)據(jù)共享 B. 數(shù)據(jù)完整性 C. 數(shù)據(jù)冗余度高 D. 數(shù)據(jù)獨立性高 5. 數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨立性體現(xiàn)在( ) 。 A. 模式與外模式的映射 B. 模式與內(nèi)模式之間的映射 C. 模式 D. 三層模式 9. 用戶或應(yīng)用程序看到的那部分局部邏輯結(jié)構(gòu)和特征的描述是( ),它是模式的邏輯子集。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等?,F(xiàn)在計算機能存儲和處理的對象十分廣泛,表示這些對象的 數(shù)據(jù)也越來越復(fù)雜。 數(shù)據(jù)庫: 數(shù)據(jù)庫是長期儲存在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。每個數(shù)據(jù)庫中數(shù)據(jù)的都是按照某一種數(shù)據(jù)模型來組織的。數(shù)據(jù)庫系統(tǒng)是一個人機系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個組成部分。 數(shù)據(jù)庫管理系統(tǒng): 數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。是計算機中的基礎(chǔ)軟件。 使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護的負擔等。用一個通俗的比喻,使用了DBMS就如有了一個好參謀好助手,許多具體的技術(shù)工作都由這個助手來完成。從而既簡化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護和修改。讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認真加以體會和總結(jié)。 讀者可以參考《概論》 中的有關(guān)內(nèi)容。數(shù)據(jù)庫中數(shù)據(jù)的組織和存儲是通過操作系統(tǒng)中文件系統(tǒng)來實現(xiàn)的。例如,數(shù)據(jù)庫實現(xiàn)的基礎(chǔ)是文件,對數(shù)據(jù)庫的任何操作最終要轉(zhuǎn)化為對文件的操作。 適用于數(shù)據(jù)庫系統(tǒng)而非文件系統(tǒng)的應(yīng)用例子 目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫。 數(shù)據(jù)庫系統(tǒng)的主要特點有: 一、數(shù)據(jù)結(jié)構(gòu)化 數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。可以小到某一個數(shù)據(jù)項(如一個學生的姓名),大到一組記錄(成千上萬個學生記錄)。由于數(shù)據(jù)面向整個系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴充。 所謂“彈性大”是指系統(tǒng)容易擴充也容易收縮,即應(yīng)用增加或減少時不必修改整個數(shù)據(jù)庫的結(jié)構(gòu),或者只要做很少的修改。 *解析: 所謂“獨立性”即相互不依賴。 四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制 數(shù)據(jù)庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨立性。 ?。罚囀鰯?shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個要素。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。 *解析: 數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中最重要的概念之一。 數(shù)據(jù)庫系統(tǒng)中模型有不同的層次。 概念模型實際上是現(xiàn)實世界到機器世界的一個中間層次。 實體集:同型實體的集合稱為實體集。 實體型:用矩形表示,矩形框內(nèi)寫明實體名。聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1 : 1,1 : n或m : n)。 B. 外碼 C. 超碼 D. 主碼 3. 關(guān)系模型中,一個碼是( )。 B. 屬性實現(xiàn) C. 關(guān)系或一個屬性實現(xiàn) D. 關(guān)系和一個屬性實現(xiàn) 7. 關(guān)系代數(shù)運算是以( )為基礎(chǔ)的運算 。 11. 關(guān)系數(shù)據(jù)庫中的投影操作是指從關(guān)系中( ) 。一般情況下,當對關(guān)系R和S是用自然聯(lián)接時,要求R和S含有一個或者多個共有的( ) 。 ?、? σf1 ( σf2 (E)) = σf1∧f2 (E) ?、? E1∞E2 = E2∞E1 ⅲ. (E1∞E2)∞E3 = E1∞ (E2∞E3) ?、? σf1 ( σf2 (E)) =σf2 ( σf1(E)) B. ⅱ和ⅲ C. 沒有 D. ⅰ和ⅳ 18. 下面四個關(guān)系表達式是等價的,是判別它們的執(zhí)行效率( ) 。 ,包括S,P,J,SPJ四個關(guān)系模式: S( SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,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。 7. 關(guān)系代數(shù)的基本運算有哪些? 8. 試用關(guān)系代數(shù)的基本運算來表示其他運算。 A. SELECT B. INSERT C. UPDATE D. DELETE 3. 在視圖上不能完成的操作是( ) 。 A. 外模式 B. 模式 C. 內(nèi)模式 D. 存儲模式 7. 下列的SQL語句中,( )不是數(shù)據(jù)定義語句。要在表S中刪除一個屬性“年齡”,可選用的SQL語句是( )。這里的WHERE子句的內(nèi)容是( )。若要更正王二的化學成績?yōu)?5分,則可用( ) 。其中S#是學生號,SNAME是學生姓名,SEX是性別, C#是課程號,CNAME是課程名稱。 A.(’201009’,’111’,60,必修) B.(’200823’,’101’,NULL,NULL) C.(NULL,’103’,80,’選修’) D.(’201132’,NULL,86,’ ’) 18. 假設(shè)學生關(guān)系S(S#,SNAME,SEX),課程關(guān)系C(C#,CNAME),學生選課關(guān)系SC(S#,C#,GRADE)。 SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體。SQL語言采用集合操作方式,不僅操作對象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。 ?。?)語言簡捷,易學易用。 3. 用SQL語句建立第3章習題3中的四個表。 解析: 用SQL語言表示如下: SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS (SELECT * FROM SPJ SPJX WHERE SNO=39。 )); 5. 針對習題3中的四個表試用SQL語言完成以下各項操作: (1)找出所有供應(yīng)商的姓名和所在城市。 (5)找出上海廠商供應(yīng)的所有零件號碼。 (9)由S5供給J4的零件P6改為由S3供應(yīng),請作必要的修改。 SELECT SNAME, CITY FROM S。 SELECT JNO FROM SPJ WHERE SNO=‘S1’。 (5) 找出上海廠商供應(yīng)的所有零件號碼。 (6) 找出使用上海產(chǎn)的零件的工程名稱。上海39。 UPDATE P SET COLOR=39。 。 WHERE SNO=39。 AND PNO=39。S239。 (11) 請將 (S2,J6,P4,200) 插入供應(yīng)情況關(guān)系。 視圖是從一個或幾個基本表導(dǎo)出的表。 7. 試述視圖的優(yōu)點。 (4)視圖能夠?qū)C密數(shù)據(jù)提供安全保護。如《概論》(學生的學號及他的平均成績) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; 要修改平均成績,必須修改各科成績,而我們無法知道哪些課程成績的變化導(dǎo)致了平均成績的變化。 若視圖的屬性來自集函數(shù)、表達式,則該視圖肯定是不可以更新的。 11. 請為三建工程項目建立一個供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件 代碼(PNO)、供應(yīng)數(shù)量(QTY)。三建39。 (2) 找出供應(yīng)商S1的供應(yīng)情況。 A. 存取控制技術(shù) B. 視圖技術(shù) C. 審計技術(shù) D. 出入機房登記和加鎖 2. SQL中的視圖提高了數(shù)據(jù)庫系統(tǒng)的( )。 2. 數(shù)據(jù)庫安全性和計算機系統(tǒng)的安全性有什么關(guān)系? 答: 安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨有的,所有計算機系統(tǒng)都有這個問題。 答: 實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有: 1)用戶標識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份。 4)審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中, DBA可以利用審計跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。防止不合法用戶對數(shù)據(jù)庫的存取。即用戶具有一定的“自主”權(quán)。 REVOKE INSERT ON Student FROM 王平 CASCADE; 就將Student表 的INSERT權(quán)限從用戶王平處收回,選項 CASCADE 表示,如果用戶王平將 Student 的 INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。讀者應(yīng)該了解你使用的DBMS產(chǎn)品的擴展語句。 CREATE VIEW 部門工資 AS SELECT ,MAX(工資),MIN(工資),AVG(工資) FROM 職工,部門 WHERE = 部門. 部門號 GROUP BY ; GRANT SELECT ON 部門工資 TO 楊蘭; (a)~(g) 的每一種情況,撤銷各用戶所授予的權(quán)力。 答: 主體是系統(tǒng)中的活動實體,既包括DBMS所管理的實際用戶,也包括代表用戶的各進程。主體的敏感度標記稱為許可證級別(Clearance Level),客體的敏感度標記稱為密級(Classification Level)。 ??? 答: 統(tǒng)計數(shù)據(jù)庫允許用戶查詢聚集類型的信息,如合計、平均值、最大值、最小值等,不允許查詢單個記錄信息。 第五章 數(shù)據(jù)庫完整性 一、選擇題 1.完整性檢查和控制的防范對象( ),防止它們進入數(shù)據(jù)庫。 A. INSERT B. DELETE C. REFERENCES D. SELECT 選擇題答案: (1) A C B D (2) A (3) C 二、簡答題 ?。? 答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。 也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數(shù)據(jù)。 4. 對空值的約束 5. 其他約束 靜態(tài)元組約束就是規(guī)定組成一個元組的各個列之間的約束關(guān)系,靜態(tài)元組約束只局限在單個元組上。 3. 函數(shù)依賴約束。 2. 檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。 如果允許修改主碼,首先要保證主碼的唯一性和非空,否則拒絕修改。 答 CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCH