E-R圖的注意點與畫法
E-R圖的注意點與畫法 1 文件系統階段的數據管理有些什麼缺陷?試舉例說明。
答:文件系統有三個缺陷:
(1)數據冗餘性(redundancy)。由於文件之間缺乏聯繫,造成每個應用程序都有對應的文件,有可能同樣的數據在多個文件中重複存儲。
(2)數據不一致性(inconsistency)。這往往是由數據冗餘造成的,在進行更新操作時,稍不謹慎,就可能使同樣的數據在不同的文件中不一樣。
(3)數據聯繫弱(poor data relationship)。這是由文件之間相互獨立,缺乏聯繫造成的。
--------------------------------------------------------------------------------
2 數據庫階段的數據管理有些什麼特點?
答:有五方面的特徵:
(1)採用複雜的數據模型表示數據結構。
(2)有較高的數據獨立性。
(3)數據庫系統爲用戶提供方便的用戶接口。
(4)系統提供四個方面的數據控制功能:數據庫的恢復、併發控制、數據完整性、數據安全性,以保證數據庫中數據是安全的、正確的、可靠的。
(5)對數據的操作不一定以記錄爲單位,也可以以數據項爲單位,增加了系統的靈活性。
--------------------------------------------------------------------------------
3 你怎樣理解實體、屬性、記錄、字段這些概念的類型和值的差別?試舉例說明。
答:實體(entity):是指客觀存在可以相互區別的事物。實體可以是具體的對象,如:一個男學生,一輛汽車等;也可以是抽象的事件,如:一次借書、一聲場球賽等。
屬性(attribute):實體有很多特性,每一個特性稱爲屬性。每個屬性有一個值域,其類型可以是整數型、實數型、字符串型。如:學生(實體)有學號、姓名、年齡、性別等屬性,相應值域爲字符、字符串、整數和字符串型。
字段(field):標記實體屬性的命名單位稱爲字段或數據項。它是可以命名的最小信息單位,所以又稱爲數據元素或初等項。字段的命名往往和屬性相同,如:學生有學號、姓名、年齡、性別等字段。
記錄(record):字段的有序集合稱爲記錄。一般用一個記錄描述一個實體,所以記錄又可以定義爲能完整地描述一個實體的字段集。如:一個學生記錄,由有序的字段集(學號、姓名、年齡、性別等)組成。
--------------------------------------------------------------------------------
4 邏輯記錄與物理記錄,邏輯文件與物理文件有些什麼聯繫和區別?
答:數據描述有兩形式:物理描述和邏輯描述。
物理數據描述是指數據在存儲設備上的存儲方式,物理數據是實際存放在存儲設備上的數據。
物理記錄、物理文件(還有物理聯繫、物理結構等術語),都是用來描述存儲數據的細節。
邏輯數據描述是指程序員或用戶用以操作的數據形式,是抽象的概念化數據。
邏輯記錄、邏輯文件(還有邏輯聯繫、邏輯結構等術語),都是用戶觀點的數據描述。
--------------------------------------------------------------------------------
5 爲某百貨公司設計一個ER模型。
百貨管轄若干個連鎖商店,每家商店經營若干商品,每家商店有若干職工,但每個職工只能服務於一家商店。
實體類型“商店”的屬性有:商店編號,店號,店址,店經理。實體類型“商品”的屬性有:商品編號,商品名,單價,產地。實體類型“職工”的屬性有:職工編號,職工名,性別,工資。在聯繫中應反映出職工參加某商店工作的開始時間,商店銷售商品的有銷售量。
試畫出反映商店、商品、職工實體類型及聯繫類型的ER圖,並將其轉換成關係模式集。
答:實體:商店(商店編號,店號,店址,店經理)
商品(商品編號,商品名,單價,產地)
職工(職工編號,職工名,性別,工資)
聯繫:P1-商店銷售商品的有銷售量間
P2-職工參加某商店工作的開始時
ER圖:
關係模式集:商店模式(商店編號,店號,店址,店經理)
商品模式(商品編號,商品名,單價,產地)
職工模式(職工編號,職工名,性別,工資)
P1模式(商店編號,商品編號,月銷售量)
P2模式(商店編號,職工編號,開始時間)
--------------------------------------------------------------------------------
6 試述ER模型、層次模型、網狀模型、關係模型和麪向對象模型的主要特點。
答:ER模型的主要特點:(1)接近於人的思維,容易理解;(2)與計算機無關,用戶容易接受。
層次模型的特點:記錄之間的聯繫通過指針實現,查詢效率較高。
網狀模型的特點:記錄之間聯繫通過指針實現,M:N聯繫也容易實現(每個M:N聯繫可拆成兩個1:N聯繫),查詢效率較高。
關係模型的特點:用關鍵碼而不是用指針導航數據,表格簡單,用戶易懂,編程時並不涉及存儲結構、訪問技術等細節。
--------------------------------------------------------------------------------
7 試述概念模式在數據庫結構中的重要地位。
答:概念模式(定義)是數據庫中全部數據的整體邏輯結構的描述。它由若干個概念記錄類型組成。概念模式不僅要描述概念記錄類型,還要描述記錄間的聯繫、操作、數據的完整性、安全性等要求。
數據按外模式的描述提供給用戶,按內模式的描述存儲在磁盤中,而概念模式提供了連接這兩級的相對穩定的中間觀點,並使得兩級的任何一級的改變都不受另一級的牽制。
--------------------------------------------------------------------------------
8 數據獨立性與數據聯繫這兩個概念有什麼區別?
答:數據獨立性是指應用程序與數據之間相互獨立,不受影響。
數據聯繫是指同一記錄內部各字段間的聯繫,以及記錄之間的聯繫。
--------------------------------------------------------------------------------
9 試述DBMS在用戶訪問數據庫過程中所起的作用。
答:DBMS把用戶對數據庫進行的操作從應用程序帶到外部級、概念級、再導向內部級,進而操作存儲器中的數據。
--------------------------------------------------------------------------------
10 試述DBMS的主要功能。
答:DBMS的主要功能有:
(1)數據庫的定義功能
(2)數據庫的操縱功能
(3)數據庫的保護功能
(4)數據庫的存儲管理
(5)數據庫的維護功能
(6)數據字典
--------------------------------------------------------------------------------
11 試敘DBMS對數據庫的保護功能。
答:DBMS對數據庫的保護主要通過四個方面實現:
(1)數據庫的恢復。
(2)數據庫的併發控制。
(3)數據庫的完整性控制。
(4)數據庫的安全性控制。
--------------------------------------------------------------------------------
12 試敘DBMS對數據庫的維護功能。
答:DBMS中主要有四個實用程序提供給數據庫管理員運行數據庫系統時使用,起着數據庫維護的功能:
(1)數據裝載程序(loading)
(2)備份程序(backup)
(3)文件重組織程序
(4)性能監控程序
--------------------------------------------------------------------------------
13 從模塊結構看,DBMS由哪些部分組成?
答:從模塊結構看,DBMS由兩大部分組成:查詢處理器和存儲管理器
(1)查詢處理器有四個主要成分:DDL編譯器,DML編譯器,嵌入型DML的預編譯器,查詢運行核心程序
(2)存儲管理器有四個主要成分:授權和完整性管理器,事務管理器,文件管理器,緩衝區管理器
--------------------------------------------------------------------------------
14 DBS由哪幾個部分組成?
答:DBS由四部分組成:數據庫、硬件、軟件、數據庫管理員。
--------------------------------------------------------------------------------
15 什麼樣的人是DBA?DBA應具有什麼素質?DBA的職責是什麼?
答:DBA是控制數據整體結構的人,負責DBS的正常運行。DBA可以是一個人,在大型系統中也可以是由幾個人組成的小組。
DBA應具有下列素質:
(1)熟悉企業全部數據的性質和用途;
(2)對用戶的需求有充分的瞭解;
(3)對系統的性能非常熟悉。
DBA的主要職責有五點:
(1)概念模式定義
(2)內模式定義
(3)根據要求修改數據庫的概念模式和內模式
(4)對數據庫訪問的授權
(5)完整性約束的說明
--------------------------------------------------------------------------------
16 試對DBS的全局結構作詳細解釋。
答:略
--------------------------------------------------------------------------------
17 使用DBS的用戶有哪幾類?
答:使用DBS的用戶有四類:
1)DBA
2)專業用戶
3)應用程序員
4)最終用戶
--------------------------------------------------------------------------------
18 DBMS的查詢處理器有哪些功能?
答:DBMS的查詢處理器可分成四個成分:
1)DML編譯器
2)嵌入型DML的預編譯器
3)DDL編譯器
4)查詢運行核心程序
--------------------------------------------------------------------------------
19 DBMS的存儲處理器有哪些功能?
答:DBMS的存儲處理器提供了應用程序訪問數據庫中數據的界面,可分成四個成分:
1)授權和完整性管理器
2)事務管理器
3)文件管理器
4)緩衝區管理器
--------------------------------------------------------------------------------
20 磁盤存儲器中有哪四類主要的數據結構?
答:數據文件、數據字典、索引文件、統計數據組織
--------------------------------------------------------------------------------
21 爲什麼關係中的元組沒有先後順序?
答:因爲關係是一個集合,因此不考慮元組間的順序,即沒有行序。
--------------------------------------------------------------------------------
22 爲什麼關係中不允許有重複元組?
答:如果關係中有重複元組,那麼就無法用鍵來標識唯一的元組。因此在關係模型中對關係作了限制。
--------------------------------------------------------------------------------
23 關係與普通的表格、文件有什麼區別?
答:總而言之,關係是一種規範化了的二維表格,在關係模型中,對關係作了下列規範性限制:
1)關係中每一個屬性值都是不可分解的。
2)關係中不允許出現相同的元組(沒有重複元組)。
3)由於關係是一個集合,因此不考慮元組間的順序,即沒有行序。
4)元組中,屬性在理論上也是無序的,但在使用時按習慣考慮列的順序。
--------------------------------------------------------------------------------
24 笛卡爾積、等值聯接、自然聯接三者之間有什麼區別?
答:笛卡爾積對兩個關係R和S進行操作,產生的關係中元組個數爲兩個關係中元組個數之積。等值聯接則是在笛卡爾積的結果上再進行選擇操作,挑選關係第i個分量與第(r+j)個分量值相等的元組;自然連接則是在等值聯接(以公共屬性值相等爲條件)的基礎上再行投影操作,去掉S中的公共屬性列,當兩個關係沒有公共屬性時,自然連接就轉化我笛卡爾積。
--------------------------------------------------------------------------------
25 如果R是二元關係,那麼下列元組表達式的結果是什麼?
{t|( u)(R(t)∧R(u)∧t[1]≠u[1]∨t[2]≠u[2]))}
解:這個表達式的結果是原關係R。
--------------------------------------------------------------------------------
26 假設R和S分別是三元和二元關係,試把表達式π1,5(σ2=4∨3=4(R×S))轉換成等價的:(1)漢語查詢句子;(2)元組表達式;(3)域表達式。
解:
(1)漢語表達式:選擇R×S關係中元組第2分量或第3分量與第4分量值相等的元組並取第1列與第5列組成的新關係。
(2)元組表達式:{t|( u)( v)(R(u)∧S(v)∧(u[2]=v[1]∨u[3]=v[1])∧t[1]=u[1]∧t[2]=v[2])}
(3)域表達式:{xv|( y)( z)( u)(R(xyz)∧S(uv)∧(y=u∨z=u))}
--------------------------------------------------------------------------------
27 假設R和S都是二元關係,試把元組表達式{t|R(t)∧( u)(S(u)∧u[1]≠t[2])}轉換成等價的:(1)漢語查詢句子;(2)域表達式:(3)關係代數表達式。
解:
(1)漢語表達式:選擇R關係中元組第2分量值不等於S關係中某元組第1分量值的元組。
(2)域表達式:{xy|( u)( v)(S(uv)∧(u≠y))}
(3)關係代數表達式:π1,2(σ2≠3(R×S))
--------------------------------------------------------------------------------
28 試把域表達式{ab|R(ab)∧R(ba)}轉換成等價的:(1)漢語查詢句子;(2)關係代數表達式;(3)元組表達式。
解:(1)漢語查詢句子:選擇R中元組第1分量值與第2分量值互換後仍存在於R中的元組。
(2)關係代數表達式:π1,2(σ1=4∧2=3(R×R));
(3)元組表達式:{t|( u)(R(t)∧R(u)∧t[1]=u[2]∧t[2]=u[1])}
--------------------------------------------------------------------------------
29 設有兩個關係R(A,B,C)和S(D,E,F),試把下列關係代數表達式轉換成等價的元組表達式:(1)πA(R);(2)σB='17'(R);(3)R×S;(4)πA,F(σC=D(R×S))
解:(1){t|( u)(R(t)∧R(u)∧t[1]=u[1])}
(2){t|R(t)∧t[2]='17')}
(3){t|( u)( v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])}
(4){t|( u)( v)((R(u)∧S(v)∧u[3]=v[4]∧t[1]∧u[1]∧t[2]=v[3])}
--------------------------------------------------------------------------------
30 在教學數據庫S、SC、C中,用戶有一查詢語句:檢索女同學選修課程的課程名和任課教師名。(1)試寫出該查詢的關係代數表達式;(2)試寫出查詢優化的關係代數表達式。
解:(1)πCNAME,TEACHER(σSEX='女'(S|X|SC|X|C))
(2)優化爲:πCNAME,TEACHER(πCNAME,TEACHER(C)|X|(πS#,C#(SC)|X|πS#(σSEX='女'(S))))
--------------------------------------------------------------------------------
31 爲什麼要對關係代數表達式進行優化?
答:對關係代數表達式進行優化的主要是爲了提高系統的操作效率,達到執行過程即省時間又省空間的目的。
--------------------------------------------------------------------------------
32 對於教學數據庫的三個基本表
學生 S(S#,SNAME,AGE,SEX)
學習 SC(S#,C#,GRADE)
課程 C(C#,CNAME,TEACHER)
試用SQL的查詢語句表達下列查詢:
(1)檢索LIU老師所授課程的課程號和課程名。
SELECT C#,CNAME
FROM C
WHERE TEACHER=‘LIU’
(2)檢索年齡大於23歲的男學生的學號和姓名。
SELECT S#,SNAME
FROM S
WHERE (AGE>23) AND (SEX=‘M’)
(3)檢索至少選修LIU老師所授課程中一門課程的女學生姓名。
SELECT
SNAME
FROM S
WHERE SEX=‘F’ AND S# IN
(SELECT S#
FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER=‘LIU’)
(4)檢索WANG同學不學的課程的課程號。
SELECT C#
FROM C
WHERE C# NOT IN
(SELECT C#
FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG'))
(5)檢索至少選修兩門課程的學生學號。
SELECT S#
FROM SC
HAVING COUNT(C#)>=2
(6)檢索全部學生都選修的課程的課程號與課程名。
SELECT C#,CNAME
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE SC.S#=S.S# AND SC.C#=C.C#))
(7)檢索選修課程包含LIU老師所授課的學生學號。
SELECT S#
FROM S
WHERE S# IN
(SELECT S#
FROM SC
WHERE
S.S#=SC.S# AND C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU'))
(請討論一下,本題是否可如此:SELECT DISTINGCT
S# FROM SC WHERE EXISTS (SELECT C# FROM C WHERE TEACHER='LIU'))
--------------------------------------------------------------------------------
32 設有兩個基本表R(A,B,C)和S(D,E,F),試用SQL查詢語句表達下列關係代數表達式:
(1)πA(R) (2)σB='17'(R) (3)R×S (4))πA,F(σC=D(R×S)
(1)SELECT A FROM R
(2)SELECT * FROM R WHERE B='17'
(3)SELECT A,B,C,D,E,F FROM R,S
(4)SELECT A,F FROM R,S WHERE R.C=S.D
--------------------------------------------------------------------------------
33 設有兩個基本表R(A,B,C)和S(A,B,C)試用SQL查詢語句表達下列關係代數表達式:
(1)R∪S (2)R∩S (3)R-S (4)πA,B(R)|X|πB,C(S)
(1)SELECT A,B,C
FROM R,S
WHERE NOT EXISTS
(SELECT A,B,C
FROM R,S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)
--------------------------------------------------------------------------------
(2)SELECT A,B,C
FROM R,S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C
(3)SELECT A,B,C
FROM R
WHERE NOT EXISTS
(SELECT A,B,C
FROM S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)
(4)SELECT R.A,R.B,S.C
FROM R,S
WHERE R.B=S.B
--------------------------------------------------------------------------------
34 試敘述SQL語言的關係代數特點和元組演算特點。
答:SQL語言是介乎關係代數和元組演算之間的一種語言:...
--------------------------------------------------------------------------------
35 試用SQL查詢語句表達下列對教學數據庫中三個基本表S、SC、C的查詢:
(1)統計有學生選修的課程門數。
SELECT COUNT(DISTINCT C#) FROM SC
(2)求選修C4課程的學生的平均年齡。
SELECT AVG(AGE)
FROM S
WHERE S# IN
(SELECT S#
FROM SC WHERE C#='C4')
(3)求LIU老師所授課程的每門課程的學生平均成績。
SELECT CNAME,AVG(GRADE)
FROM SC ,C
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU')
GROUP BY C#
(4)統計每門課程的學生選修人數(超過10人的課程才統計)。要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列。
SELECT DISTINCT C#,COUNT(S#)
FROM SC
GROUP BY C#
HAVING COUNT(S#)>10
ORDER BY 2,C# DESC
(5)檢索學號比WANG同學大,而年齡比他小的學生姓名。
SELCET SNAME
FROM S AS X
WHERE X.S#>SOME
(SELECT S#
FROM S AS Y
WHERE Y.SNAME='WANG' AND X.AGE<Y.AGE)< p>
(6)檢索姓名以WANG打頭的所有學生的姓名和年齡。
SELECT SNAME,AGE
FROM S
WHERE SNAME LIKE 'WANG%'
(7)在SC中檢索成績爲空值的學生學號和課程號。
SELECT S#,C#
FROM SC
WHERE GRADE IS NULL
(8)求年齡大於女同學平均年齡的男學生姓名和年齡。
SELECT SNAME,AGE
FROM S AS X
WHERE X.SEX='M' AND X.AGE>
(SELECT AVG(AGE) FROM S AS Y WHERE Y.SEX='F')
(9)求年齡大於所有女同學年齡的男學生姓名和年齡。
SELECT SNAME,AGE
FROM S AS X
WHERE X.SEX='M' AND X.AGE>ALL
(SELECT AGE FROM S AS Y WHERE Y.SEX='F')
--------------------------------------------------------------------------------
36 試用SQL更新語句表達對教學數據庫中三個基本表S、SC、C的各個更新操作:
(1)往基本表S中插入一個學生元組(‘S9’,‘WU’,18)。
INSERT INTO S(S#,SNAME,AGE) VALUES('59','WU',18)
(2)在基本表S中檢索每一門課程成績都大於等於80分的學生學號、姓名和性別,並把檢索到的值送往另一個已存在的基本表STUDENT(S#,SANME,SEX)。
INSERT INTO STUDENT(S#,SNAME,SEX)
SELECT S#,SNAME,SEX
FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE
GRADE<80 AND S.S#=SC.S#)
(3)在基本表SC中刪除尚無成績的選課元組。
DELETE FROM SC
WHERE GRADE IS NULL
(4)把WANG同學的學習選課和成績全部刪去。
DELETE FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG')
(5)把選修MATHS課不及格的成績全改爲空值。
UPDATE SC
SET GRADE=NULL
WHERE S# IN
(SELECT S#
FROM C WHERE CNAME='MATHS') AND SC.GRADE<60
(6)把低於總平均成績的女同學成績提高5%。
UPDATE SC SET GRADE=GRADE*1.05
WHERE GRADE<(SELECT AVG(GRADE) FROM SC)
AND S# IN (SELECT S# FROM S WHERE SEX='F')
(7)在基本表SC中修改C4課程的成績,若成績小於等於75分時提高5%,若成績大於75分時提高4%(用兩個UPDATE語句實現)。
UPDATE SC
SET GRADE=GRADE*1.05
WHERE C#='C4' AND GRADE<=75
UPDATE SC
SET GRADE=GRADE*1.04
WHERE C#='C4' AND GRADE>75
--------------------------------------------------------------------------------
37 預處理方式對於嵌入式SQL的實現有什麼重要意義?
答:預處理方式是先用預處理程序對源程序進行掃描,識別出SQL語句,並處理成宿主語言的函數調用形式;然後再用宿主語言的編譯程序把源程序編譯成目標程序。
--------------------------------------------------------------------------------
38 在宿主語言的程序中使用SQL語句有哪些規定?
答:在宿主語言的程序中使用SLQ語句有以下規定:
1)在程序中要區分SQL語句與宿主語言語句
2)允許嵌入的SQL語句引用宿主語言的程序變量(稱爲共享變量)
3)SQL的集合處理方式與宿主語言單記錄處理方式之間要協調
--------------------------------------------------------------------------------
39 SQL的集合處理方式與宿主語言單記錄處理方式之間如何協調?
答:由於SQL語句處理的是記錄集合,而宿主語言語句一次只能處理一個記錄,因此需要用遊標(cousor)機制,把集合操作轉換成單記錄處理方式。
--------------------------------------------------------------------------------
40 嵌入式SQL語句何時不必涉及到遊標?何時必須涉及到遊標?
答:1)INSERT、DELETE、UPDATE語句,查詢結果肯定是單元組時的SELECT語句,都可直接嵌入在主程序中使用,不必涉及到遊標。
2)當SELECT語句查詢結果是多個元組時,此時宿主語言程序無法使用,一定要用遊標機制把多個元組一次一個地傳送給宿主語言處理。
--------------------------------------------------------------------------------
41 關係模式R有n個屬性,在模式R上可能成立的函數依賴有多少個?其中平凡的函數依賴集有多少個?非平凡的函數依賴有多少個?
答:在模式R上可能成立的函數依賴最多的個數即爲R上函數依賴集的閉包中函數依賴的個數。
--------------------------------------------------------------------------------
42 對函數依賴X→Y的定義加以擴充,X和Y可以爲空屬性集,用φ表示,那麼X→φ,φ→Y,φ→φ的含義是什麼?
答:根據函數依賴的定義,以上三個表達式的含義爲:
(1)一個關係模式R(U)中,X,Y是U的子集,r是R的任一具體關係,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]必有t1[φ]=t2[φ],即X函數決定空屬性。即X→φ表示空屬性函數依賴於X。這也是任何關係中都存在的。
(2)φ→Y表示Y函數依賴於空屬性。由此可知該關係中所有元組中Y屬性的值均相同。
(3)φ→φ表示空屬性函數依賴於空屬性。這是顯然的。
--------------------------------------------------------------------------------
43. 數據系統的生存期分成哪幾個階段?數據庫結構的設計在生存期中的地位如何?
答:分成七個階段:規劃、需求分析、概念設計、邏輯設計、物理設計、實現、運行和維護(規需概邏物現維)。數據庫結構的設計在生存期中的地位很重要,只有通過邏輯設計、物理設計,才能把概念模式轉化爲與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構和物理結構。這個設計在整個數據庫設計中處於承上啓下的地位。
--------------------------------------------------------------------------------
44. 什麼是數據庫設計?數據庫設計過程的輸入和輸出有哪些內容?
答:數據庫設計是指對於給定的應用環境,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求。
數據庫設計過程的輸入包括四部分內容:1)總體信息需求;2)處理需求;(3)DBMS的特徵;(4)硬件和OS(操作系統)特徵。
數據庫設計過程的輸出包括兩部分內容:(1)完整的數據庫結構,其中包括邏輯結構和物理結構;(2)基於數據庫結構和處理需求的應用程序的設計原則。輸出一般以說明書的形式出現。
--------------------------------------------------------------------------------
45. 基於數據庫系統生存期的數據庫設計分成哪幾個階段?
答:分爲5個階段:簡記爲(規需概邏物):規劃、需求分析、概念設計、邏輯設計和物理設計五個階段。)。
--------------------------------------------------------------------------------
46. 什麼是比較好的數據庫設計方法學?數據庫設計方法學應包括哪些內容?
答:一個好的數據庫設計方法應該能在合理的期限內,以合理的工作量產生一個有實用價值的數據庫結構。數據庫設計方法學應包括以下內容:設計過程、設計技術、評價準則、信息需求、描述機制。
--------------------------------------------------------------------------------
47. 數據庫設計的規劃階段應做哪些事情?
答:數據庫設計中的規劃階段的主要任務是進行建立數據庫的必要性及可行性分析,確定數據庫系統在組織中和信息系統中的地位,以及各個數據庫之間的聯繫。
--------------------------------------------------------------------------------
48. 數據庫設計的需求分析階段是如何實現的?目標是什麼?
答:數據庫設計的需求分析通過三步來完成:即需求信息的收集、分析整理和評審,其目的在於對系統的應用情況作全面詳細的調查,確定企業組織的目標,收集支持系統總的設計目標的基礎數據和對這些數據的要求,確定用戶的需求,並把這些要求寫成用戶和數據設計者都能夠接受的文檔。
--------------------------------------------------------------------------------
49. 評審在數據庫設計中有什麼重要作用?爲什麼允許設計過程中有多次的回溯與反覆?
答:評審的作用在於確認某一階段的任務是否全部完成,通過評審可以避免重大的疏漏或錯誤。允許設計過程中的多次回溯與反覆就是爲了確保在設計完成數據庫系統中不出現重大疏漏或錯誤。
--------------------------------------------------------------------------------
50. 數據字典的內容和作用是什麼?
答:數據字典的內容一般包括:數據項、數據結構、數據流、數據存儲和加工過程。其作用是對系統中數據做出詳盡的描述,提供對數據庫數據的集中管理。
--------------------------------------------------------------------------------
51. 對概念模型有些什麼要求?
答:對概念模型一般有以下要求:
概念模型是對現實世界的抽象和概括,它應真實、充分地反映現實世界中事物和事物之間的聯繫,有豐富的語義表達能力,能表達用戶的各種需求,包括描述現實世界中各種對象及其複雜聯繫、用戶對數據對象的處理要求和手段。
概念模型應簡潔、明晰,獨立於機器、容易理解、方便數據庫設計人員與應用人員交換意見,使用戶能積極參與數據庫的設計工作。
概念模型應易於變動。當應用環境和應用要求改變時,容易對概念模型修改和補充。
概念模型應很容易向關係、層次或網狀等各種數據模型轉換,易於從概念模式導出也DBMS有關的邏輯模式。
--------------------------------------------------------------------------------
52. 概念設計的具體步驟是什麼?
答:概念設計的主要步驟爲:
進行數據抽象、設計局部概念模式;
將局部概念模式綜合成全局概念模式;
評審。
--------------------------------------------------------------------------------
53. 什麼是數據抽象?主要有哪兩種形式的抽象?數據抽象在數據庫設計過程中起什麼作用?
答:數據抽象是對人、物、事或概念的人爲處理,它抽取人們關心的共同特性,忽略非本質的細節,並把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。
數據抽象的形式有:系統狀態的抽象,即抽象對象;系統轉換的抽象,即抽象運算。
--------------------------------------------------------------------------------
54. 什麼是ER圖?構成ER圖的基本要素是什麼?
答:ER圖是用來描述某一組織(單位)的概念模型,提供了表示實體、屬性和聯繫的方法。構成ER圖的基本要素是實體、屬性和關係。實體是指客觀存在並可相互區分的事特;屬性指指實體所具有的每一個特性。
--------------------------------------------------------------------------------
55. 試述採用ER方法的數據庫概念設計的過程.
答:利用ER方法進行數據庫的概念設計,可分成三步進行:首先設計局部ER模式,然後把各局部ER模式綜合成一個全局ER模式,最後對全局ER模式進行優化,得到最終的ER模式,即概念模式。
--------------------------------------------------------------------------------
56. 邏輯設計的目的是什麼?試述邏輯設計過程的輸入和輸出環境。
答:邏輯設計的目的是把概念設計階段設計好的基本ER圖轉換爲與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構,包括數據庫模式和外模式。
邏輯設計過程中的輸入信息有:(1)獨立於DBMS的概念模式,即概念設計階段產生的所有局部和全局概念模式;(2)處理需求,即需求分析階段產生的業務活動分析結果;(3)約束條件,即完整性、一致性、安全性要求及響應時間要求等;(4)DBMS特性,即特定的DBMS特性,即特定的DBMS所支持的模式、子模式和程序語法的形式規則。
邏輯設計過程輸出的信息有:(1)DBMS可處理的模式;(2)子模式;(3)應用程序設計指南;(4)物理設計指南。
--------------------------------------------------------------------------------
57. 試述邏輯設計階段的主要內容。
答:邏輯設計主要是把概念模式轉換成DBMS能處理的模式。轉換過程中要對模式進行評價和性能測試,以便獲得較好的模式設計。邏輯設計的主要內容包括:
(1)初始模式的形成
(2)子模式設計
(3)應用程序設計梗概
(4)模式評價
(5)修正模式。
--------------------------------------------------------------------------------
58. 規範化理論對數據庫設計有什麼指導意義?
答:在概念設計階段,已經把關係規範化的某些思想用作構造實體類型和聯繫類型的標準,在邏輯設計階段,仍然要使用關係規範化的理論來設計模式和評價模式。規範化的目的是減少乃至消除關係模式中存在的各種異常,改善完整性,一致性和存儲效率。
--------------------------------------------------------------------------------
59.什麼是數據庫結構的物理設計?試述其具體步驟。
答:數據庫結構的物理設計是指對一個給定的邏輯數據模型選取一個最適合應用環境的物理結構的過程,所謂數據庫的物理結構主要指數據庫在物理設備上的存儲結構和存取方法。
物理設計的步驟爲:(1)設計存儲記錄結構,包括記錄的組成、數據項的類型和長度,以及邏輯記錄到存儲記錄的映射;(2)確定數據存儲安排;(3)設計訪問方法,爲存儲在物理設備上的數據提供存儲和檢索的能力;(4)進行完整性和安全性的分析、設計;(5)程序設計。
--------------------------------------------------------------------------------
60. 試敘事務的四個性質,並解釋每一個性質對DBS有什麼益處?
答:事務的四個性質是:原子性、一致性、隔離性和持久性。
原子性:是保證數據庫系統(DBS)完整性的基礎。一個事務中所有對數據庫的操作是一個不可分割的操作序列。
一致性:一個事務獨立執行的結果將保證數據庫的一致性,即數據不會因事務的執行而遭受破壞。
隔離性:隔離性要求在併發事務被執行時,系統應保證與這些事務先後單獨執行時結果一樣,使事務如同在單用戶環境下執行一樣。
持久性:要求對數據庫的全部操作完成後,事務對數據庫的所有更新應永久地反映在數據庫中。
--------------------------------------------------------------------------------
62 事務的COMMIT操作和ROLLBACK操作各做些什麼事情?
答:COMMIT操作表示事務成功地結束(提交),此時告訴系統,數據庫要進入一個新的正確狀態,該事務對數據庫的所有更新都已交付實施。
ROLLBACK操作表示事務不成功地結束,此時告訴系統,已發生錯誤,數據庫可能處在不正確的狀態,該事務對數據庫的更新必須被撤銷,數據庫應恢復該事務到初始狀態。
--------------------------------------------------------------------------------
63 UNDO操作和REDO操作各做些什麼事情?
答:UNDO操作是反向掃描"日誌"文件,撤銷對數據庫的更新操作,使數據庫恢復到更新前的狀態;REDO操作正向掃描日誌文件,重新做一次更新,使數據庫恢復到更新後的狀態。
--------------------------------------------------------------------------------
64 DBS中有哪些類型的故障?哪些故障破壞了數據庫? 哪些故障未破壞數據庫,但其中某些數據變得不正確?
答:數據庫系統故障有事務故障、系統故障、介質故障。其中介質故障破壞數據庫,系統故障未破壞數據庫但使其中某些數據變得不正確。
--------------------------------------------------------------------------------
65 什麼是“運行記錄優先原則”?其作用是什麼?
答:在數據庫系統中,寫一個修改到數據庫中和寫一個表示這個修改的登記記錄到日誌文件中是兩個不同的操作,爲了避免在完成這兩個操作時,由於發生故障而破壞數據庫的一致性,應先將運行記錄寫下來,這就是“運行記錄優先原則”。
--------------------------------------------------------------------------------
66 什麼是數據庫的恢復?恢復的基本原則是什麼,恢復如何實現?
答:數據庫的恢復是指當數據庫系統遭到破壞時,通過一些技術,使數據庫恢復到遭到破壞前的正確狀態。恢復的基本原則就是冗餘,即數據的重複存儲。恢復的常用方法有:定期對整個數據庫進行復制或轉儲;建立日誌文件;恢復。
--------------------------------------------------------------------------------
67 數據庫的併發操作會帶來哪些問題?如何解決?
答:數據庫的併發操作會帶來三類問題:丟失更新問題;不一致分析問題和“髒數據”的讀出。解決的辦法就是採用“封鎖”技術。
--------------------------------------------------------------------------------
68 有哪些“丟失更新”問題?如何處理?
答:如兩個事務要對某數據進行操作,但是由於併發調度的的原因,使得在一個事務對某數據的更新不能被另一事務所接受,導致更新操作的丟失。處理的辦法就是對併發操作採用封鎖技術,在一個事務操作時,另一事務進入等待狀態直到前一事務解鎖。
還有一種丟失更新問題是由事務的ROLLBACK引起的,如事務T2依賴於事務T1,在T1更新後未提交(COMMIT)而是ROLLBACK(回退),使得T2讀取髒數據。處理的辦法是使用PXC協議,不允許事務T1執行解鎖操作直到事務執行到終點(COMMIT或提交)。
--------------------------------------------------------------------------------
69 爲什麼DML只提供解除S封鎖的操作,而不提供解除X封鎖的操作?
答:在DML中,PX協議並不完善,修正後的PXC協議規定:X封鎖必須保留到事務終點(COMMIT或ROLLBACK),這個協議能防止由恢復引起的更新丟失現象。而多個事務可以對同一數據加上S封鎖(讀取但不能修改)因此可以由事務用UNLOCK解除各自對數據的封鎖。
--------------------------------------------------------------------------------
70 爲什麼有些封鎖需保留到事務終點,而有些封鎖可隨時解除?
答:因爲有的封鎖需要更新數據,保留到終點才能確認是否提交或回退以避免髒數據的讀出,所以這些封鎖需要保留到事務終點。而有些事務全部或部分操作只是讀取數據,那麼這一部分操作的封鎖可以隨時解除,因爲它不涉及更新數據操作。
--------------------------------------------------------------------------------
71 死鎖的發生是壞事還是好事?試說明理由。如何解除死鎖狀態?
答:死鎖的發生即是壞是又是好事,說是壞是是因爲它使併發事務不能繼續執行下去,造成時間開銷卻不產生結果。說是好事是因爲在某些時候我們要利用它來解決更新操作導致的數據庫不一致狀態。通過系統的死鎖解決機制挑選一個事務作爲犧牲品,撤消並恢復到初始狀態。
--------------------------------------------------------------------------------
72 試敘述"串行調度"與"可串行化調度"的區別。
答:串行調度是多個事務按照一定的次序依次執行;而可串行化調度是指一個併發調度的結果與某一串行調度執行的結果等價時的併發調度。串行調度在某一時刻只有一個事務在執行,而可串行調度在某一時刻有多個事務同時被處理。
--------------------------------------------------------------------------------
73 什麼是數據庫的完整性? DBMS的完整性子系統的功能是什麼?
答:數據庫的完整性是指數據的正確性和相容性。DBMS完整性子系統的功能是:(1)監督事務的執行,並測試是否違反完整性規則;(2)如有違反,則採取恰當的操作,如拒絕、報告違反情況,改正錯誤等方法進行處理。
--------------------------------------------------------------------------------
74 完整性規則由哪幾個部分組成?關係數據庫的完整性規則有哪幾類?
答:完整性規則由三部分組成:
觸發條件:即什麼時候使用規則進行檢查;
約束條件:即要檢查什麼樣的錯誤;
ELSE子句:即查出錯誤後如何處理。
完整性規則有以下三類:
域完整性規則,用於定義屬性的取值範圍;
域聯繫的規則,定義一個或多個關係中,屬性值間的聯繫、影響和約束。
關係完整性規則,定義更新操作對數據庫中值的影響和限制。
--------------------------------------------------------------------------------
75 試詳述SQL中的完整性約束機制。
答:SQL中的完整性約束規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。
主鍵約束。它是數據中最重要的一種約束。在關係中主鍵值不允許空也不允許出現重複,主鍵可用主鍵子句或主鍵短語進行定義。
外鍵約束。根據參照完整性規則,依賴關係中外鍵或者爲空值,或者是基本關係(參照關係)中的該鍵的某個值。外鍵用外鍵關係子句定義。
屬性值約束。當要求某個屬性的值不允許空值時,那麼可以在屬性定義後加上關鍵字:NOT NULL ,這是非空值約束。還可以用CHECK子句對一個屬性值加以限制以及使用域約束子句CREAT DOMAIN 定義新域並加以屬性值檢查。
全局約束。在關係定義時,可以說明一些比較複雜的完整性約束,這些約束涉及到多個屬性間的聯繫或不同關係間的聯繫,稱爲全局約束。主要有基於元組的檢查子句和斷言。前者是對單個關係的元組值加以約束,後者則可對多個關係或聚合操作有關的完整性約束進行定義。
--------------------------------------------------------------------------------
76 參照完整性規則在SQL可以用哪幾種方式實現?刪除基本關係的元組時,依賴關係可以採取的做法有哪三種?修改基本關係的主鍵值時,依賴關係可以採取的做法有哪三種?
答:參照完整性規則要求"不引用不存在的實體",在SQL中可以採用外鍵子句定義外鍵以及在屬性值上進行約束如基於屬性的檢查、以及全局約束中的基於元組的檢查子句等方式實現。
刪除基本關係元組或修改基本關係的主鍵值時,依賴關係可以採用的做法有:
RESTRICT方式:只有當依賴關係中沒有一個外鍵值與被刪除/修改的基本關係中的主鍵值相對應時,系統才能執行刪除操作,否則拒絕刪除或修改。
SET NULL方式:刪除/修改基本元組或基本關係的主鍵值時,將依賴關係中所有與基本關係中被刪除/修改主鍵值相對應的外鍵值置爲空值。
CASCADE方式:若刪除則將依賴關係中所有外鍵值與基本關係中要刪除的主鍵值相對應的元組一併刪除,若修改則將依賴關係中所有與基本關係中要修改的主鍵值相對應的外鍵值一併修改爲新值。
--------------------------------------------------------------------------------
77 試對SQL2中的基於屬性的檢查約束、基於元組的檢查約束和斷言三種完整性約束進行比較:各說明什麼對象?何時激活?能保證數據庫的一致性嗎?
答:如下表:
約束形式
說明對象
激活條件
是否保證一致性
基於屬性的檢查
只對一個屬性值加以約束
插入或修改屬性值時
不一定
基於元組的檢查
對單個關係的元組值加以約束
在插入或修改元組時
不一定
斷言
多個關係或聚合操作
任何變動
保證
--------------------------------------------------------------------------------
78 設教學數據庫的模式如下:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
試用多種方式定義下列完整性約束:
(1)在關係S中插入學生年齡值應在16~25歲之間
(2)在關係SC中插入元組時,其S#值和C#值必須分別在S和C中出現。
(3)在關係SC中修改GRADE值時,必須仍在0~100之間。
(4)在刪除關係C中一個元組時,首先要把關係SC中具有同樣C#的元組全部刪去。
(5)在關係S中把某個S#值修改爲新值時,必須同時把關係SC中那些同樣的S#值也修改爲新值。
答:(1)定義S時採用檢查子句:
CREAT TABLE S(
S# CHAR(4),
SNAME char (10) NOT NULL ,
AGE SMALLINT ,
primary key(S#)
CHECK (AGE>=16 and AGE<=25))
(2)採用外鍵子句約束
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#)
FOREIGN key(C#) REFERENCE C(C#)
(3)採用元組檢查
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#)
FOREIGN key(C#) REFERENCE C(C#)
CHECK (GRADE>=0 and AGE<=100))
(4)採用外鍵約束
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#),
FOREIGN key(C#) REFERENCE C(C#)
)
注,在ON DELETE短語缺省的時候表示RESTRICT方式。
(5)採用外鍵約束
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#) ON UPDATE CASCADE ,
FOREIGN key(C#) REFERENCE C(C#)
)
--------------------------------------------------------------------------------
79 在教學數據庫的關係S、SC、C中,試用SQL2的斷言機制定義下列兩個完整性約束:
(1)學生必須在選修Maths課後,才能選修其他課程。
(2)每個男學生最多選修20門課程
解:(1)
CREAT ASSERTION ASS1 CHECK
( NOT EXISTS
( SELECT S FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE
CNAME<>'MATHS')
AND S# NOT IN
(SELECT S# FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE
CNAME='MATHS')));
(2)
CREAT ASSERTION ASS2 CHECK
( 20>=ALL(SELECT COUNT (SC.C#)
FROM S,SC
WHERE S.S#=SC.S AND SEX='M'
GROUP BY S#));
--------------------------------------------------------------------------------
80 什麼是數據庫的安全性?有哪些安全措施?
答:數據庫的安全性是指保護數據庫防止不合法的使用,以免數據的泄漏、非法更改和破壞。
可以從以下方面設置數據庫的安全措施:環境級、職員級、OS級、網絡級和數據庫系統級。
--------------------------------------------------------------------------------
81 什麼是"權限"?用戶訪問數據庫可以有哪些權限?對數據庫模式有哪些修改權限?
答:用戶使用數據庫的方式稱爲權限。用戶訪問數庫的權限有:讀權限、插入權限、修改權限、刪除權限。用戶修改數據庫模式的權限有索引權限、資源權限、修改權限、撤銷權限。
--------------------------------------------------------------------------------
82 試解釋權限的轉授與回收。
答:在數據庫系統中,爲了保證數據的安全性,用戶對數據的操作必須首先從DBA處獲得權限,才能進行對數據的操作。同時數據庫系統也允許用戶將獲得的權限轉授給其他用戶,也允許把已授給其他用戶的權限再回收上來。
--------------------------------------------------------------------------------
83 SQL 語言中的視圖機制有哪些優點?
答:視圖機制使系統具有三個優點:數據安全性、數據獨立性和操作簡便性。
--------------------------------------------------------------------------------
84 SQL2中用戶權限有哪幾類?並作必要的解釋。
答:SQL2中定義了六類用戶權限,分別是:
(1)SELECT :允許用戶對關係或視圖執行SELECT操作。
(2)INSERT :允許用戶對關係或視圖執行INSERT操作,如果還說明了一個屬性表,那麼表示只能插入這些屬性的值,關係中其他屬性值將置爲缺省值或爲空值。
(3)DELETE:允許用戶對關係或視圖執行DELETE操作。
(4)UPDATE:允許用戶對關係或視圖執行UPDATE操作,如果還說明了一個屬性表,那麼表示只能修改這些屬性的值,否則表示可以修改關係中任一屬性值。
(5)REFERENCES:允許用戶定義新關係時,引用其他關係的主鍵作爲外鍵。
(6)USAGE:允許用戶使用定義的域。
--------------------------------------------------------------------------------
85 數據加密法有些什麼優點?如何實現?
答:數據加密可以更好地保證數據的完全性,加密採用加密算法給把源文變爲密文來實現。常用的加密算法有"替換方法"和明鍵加密法。
--------------------------------------------------------------------------------
86. 什麼是數據的再組織設計?試述其重要性。
答:數據再組織是指對數據的概念模式、邏輯結構或物理結構的改變。數據再組織,通常是由於環境,需求的變化或性能原因而進行的,如信息定義的改變,增加新的數據類型,對原有的數據提出了新的使用要求,改用具有不同物理特徵的新存儲設備以及數據庫性能下降等都要求進行數據庫的重新組織。
--------------------------------------------------------------------------------
87. 數據系統投入運行後,有哪些維護工作?
答:數據系統投入運行後,主要維護工作有:(1)維護數據庫的安全性與完整性控制及系統的轉儲和恢復;(2)性能的監督、分析與改進;(3)增加新功能;(4)發現錯誤,修改錯誤。
--------------------------------------------------------------------------------
88 試敘數據從集中存儲、分散存儲到分佈存儲的演變過程。
答:早期的數據庫規模不大,採用集中式數據庫系統,對集中存儲的數據進行管理和使用優點突出,但是後來,隨着數據庫應用的不斷髮展,數據庫規模不斷擴大,使得集中存儲的數據庫及數據庫系統的設計和操作都比較複雜,安全性也較差,因此採用了數據分散存儲的辦法,將數據庫分成多個建立在多臺計算機上,此時的各個數據庫的管理和應用程序均是分開並獨立的。隨着計算機網絡通信的發展,有可能把分散在各處的數據庫系統通過網絡通信連接起來,因此出現了分佈式的數據庫系統,這時的數據庫雖然分別存在各地的計算機上,但它們之間通過分佈式數據管理系統可以進行聯繫,分佈式存儲是集中存儲和分散存儲的結合。
--------------------------------------------------------------------------------
89與集中式DBS、分散式DBS相比,分佈式DBS有哪些特點?
答:與集中式DBS相比,分佈式DBS中數據庫的存儲是分佈性的,即數據不是存儲在同一場地,而是分佈存儲在多個場地。與分散式DBS相比,分佈式DBS中數據庫具有"邏輯整體性",即表面上看,分佈式數據的數據庫分散在各個場地,但這些數據在邏輯上卻是一個整體,如同一個集中式數據庫。
--------------------------------------------------------------------------------
90 試解釋下列術語:同構同質型DDBS,同構異質型DDBS,異構DDBS。
答:同構同質型DDBS:是指各個場地都採用同一類型的數據模型,並且是同一型號數據庫管理系統。
同構異質型DDBS:是指各個場地都採用同一類型的數據模型,但是數據庫管理系統是不同型號的。
異構型DDBS是指各個場地的數據模型是不是的類型。
--------------------------------------------------------------------------------
91 分佈式數據庫系統有哪些優點和缺點?
答:分佈式數據庫系統的優點是:
(1)具有靈活的體系結構
(2)適應分佈式的管理和控制機構
(3)經濟性能優越
(4)系統的可靠性高、可用性好
(5)局部應用的響應速度快
(6)可擴展性好,易於集成現有系統。
分佈式數據庫系統的缺點:
(1)系統開銷大,主要花在通信部分
(2)複雜的存取結構,原來在集中式系統中有效存取數據的技術,在分成式系統中都不再適用
(3)數據的安全生和保密性較難處理。
--------------------------------------------------------------------------------
92 分佈式數據庫中,"數據分配"有哪些策略?"數據分片"有哪些策略? 數據分片的準則是什麼?
答:數據分配策略主要有:
集中式:所有數據均安排在同一個場地上。
分割式:所有數據只有一份,分別被安置在若干個場地。
全複製式:數據在每個場地重複存儲。
混合式:數據庫分成若干可相交的子集,每一子集安置在一個或多個場地上,但是每一場地未必保存全部數據。
數據分片的方式有以下三種:
水平分片:按一定的條件把全局關係的所有元組劃分成若干不相交的子集,每個子集爲關係的一個片段。
垂直分片:把一個全局關係的屬性集分成若干子集,並在這些子集上做投影運算,每個投景爲垂直分片。
混合型分片:將水平分片與垂直分片方式綜合使用則爲混合型分片。
數據分片應遵循的準則爲:
(1)完備性條件:必須把全局關係的所有數據映射到各個片段中,絕不允許發生屬於全局關係的某個數據不屬於任何一個片段。
(2)重構條件:劃分所採用的方法必須確保能夠由各個片段重建全局關係。
(3)不相交條件:要求一個全局關係被劃分後得到的各個數據片段互相不重疊。
--------------------------------------------------------------------------------
93 試敘述分佈式DBS的體系結構,它有什麼特徵?
答:分佈式DBS的體系結構分爲四級:全局外模式、全局概念模式、分片模式和分配模式。
(1)全局外模式:它們是全局應用的用戶視圖,是全局概念模式的子集。
(2)全局概念模式:全局概念模式定義了分佈式數據庫中所有數據的邏輯結構。
(3)分片模式:分片模式定義片段以及定義全局關係與片段之間的映象。這種映象是一對多的,即每個片段來自一個全局關係,而一個全局關係可分成多個片段。
(4)分配模式:片段是全局關係的邏輯部分,一個片段在物理上可以分配到網絡的不同場地上。分配模式根據數據分配策略的選擇定義片段的存放場地。
分佈式DBS的分層體系結構有三個特徵:
(1)數據分片和數據分配概念的分離,形成了"數據分佈獨立性"概念。
(2)數據冗餘的顯式控制。
(3)局部DBMS的獨立性。
--------------------------------------------------------------------------------
94 試敘述分佈式DBMS的功能及組成。
答:其主要功能有:
(1)接受用戶請求,並判定把它送到哪裏,或必須訪問哪些計算機才能滿足該請求。
(2)訪問網絡數據字典,或者至少了解如何請求和使用其中的信息。
(3)如果目標數據存儲於系統的多個計算機上,就必須進行分佈式處理。
(4)通信接口功能,在用戶、局部DBMS和其他計算機的DBMS之間進行協調。
(5)在一個異構型分佈式處理環境中,還需提供數據和進程移植的支持。這裏的異構型是指各個場地的硬件、軟件之間存在一定差別。
DDBMS組成:應包括以下四個子系統:
查詢子系統
完整性子系統
調度子系統
可靠性子系統
--------------------------------------------------------------------------------
95 分佈式系統中影響查詢的主要因素是什麼?
答:分佈式系統中,影響查詢的主要因素數據經網絡的傳輸時間,數據傳輸量是衡量查詢時間的一個主要指標,不同場地間的聯接操作和並操作是導致數據輿的主要原因
96 基於半聯接的查詢優化策略的基本思想是什麼?
答:數據在網絡中傳輸時,如果以整個關係傳輸,然後將關係與另一場地關係進行聯接,則傳輸數據量大,而在聯接時並非每個數據都參與操作或有用,因此,考慮到不參與操作的值或無用的值不必經網絡來回傳輸,則可以減少傳輸的數據量。這就是基於半聯接的查詢優化策略的基本思想。
--------------------------------------------------------------------------------
97 表7.2中有兩個關係R和S,試計算下列表達式的值:
(1)R|X|S (2)R|X S (3)S|X R
(4)R|X|S (5)R|X S (6)S|X R
B=B B=B B=B
(7)R|X|S (8)R|X S (9)S|X R
A=D A=D A=D
_____
A B C
2 3 4
5 6 7
8 3 4
7 5 8
關係R
_____
B C D
3 4 7
5 6 8
5 8 2
關係S
解:如下:
--------------------------------------------------------------------------------
98 試述基於半聯接查詢的優化策略。
答:假設場地1的關係R和場地2的關係S在屬性R.A和S.B上做聯接操作,採用半聯接方法表示這個聯接操作,可以減少數據傳輸量
R |×| S =(R |× S ) |×| S
A=B A=B A=B
等式右邊的式子稱爲"半聯接程序":第一步,在場地2計算關係S在屬性B上的投影πB(S),然後把πB(S)從場地2傳輸到場地1.
第二步;在場地1執行半聯接,把結果R'傳到場地2,第三步在場地2執行R'與S的聯接操作得到結果。
--------------------------------------------------------------------------------
99 試述客戶/服務器式DBS的一般結構。此時數據庫應用的功能如何劃分?
答:客戶/服務器式DBS是在客戶/服務器計算機網絡上運行的DBS,這個計算機網絡中,有一些計算機扮演客戶,另一些計算機扮演服務者(即客戶機/服務器)。客戶/服務體系結構的關鍵在於功能的分佈。一些功能放在客戶機(前端機)上運行,另一些功能則放在服務器(後端機)上執行。此時數據庫應用的功能分成兩部分:
前端部分:由一些應用程序構成,例如,格式處理、報表輸出、數據輸入、圖形,實現前端處理和用戶界面。
後端部分:包括存取結構、查詢優化、併發控制、恢復等系統程序,完成事務處理和數據訪問控制。
--------------------------------------------------------------------------------
100 試述分佈式DBS的物理級客戶/服務器體系結構。
答:客戶/服務器式的分佈式DBS中,把DBMS軟件分成兩級:客戶級和服務器級。如某些場地可能只運行客戶機軟件,某些場地可能只運行專用的服務器軟件,而在有一些場地可能客戶機軟件和服務器軟件都運行。
--------------------------------------------------------------------------------
101 在分佈式DBS中,DBMS的功能如何劃分? 有哪兩種方法?
答:第一種方法是把集中式DBMS的功能放在服務器一級,提供給若干客戶一個SQL服務器,每個客戶機接收用戶的查詢命令,並解釋SQL查詢,提供用戶接口和宿主語言接口的功能。
第二種方法是基於面向對象方法,把DBMS的軟件功能以更加集成的方式劃分到客戶機和服務器中。
--------------------------------------------------------------------------------
102 在典型的分佈式DBMS中,軟件模塊分成哪三級?
答:以下三級:
(1)服務器級軟件:負責場地的局部數據管理
(2)客戶機軟件:負責進行分佈式管理,從數據字典中獲取數據分佈的信息,並處理涉及多場地的全局查詢。
(3)通信軟件:負責提供各場地間的數據傳輸。
答:文件系統有三個缺陷:
(1)數據冗餘性(redundancy)。由於文件之間缺乏聯繫,造成每個應用程序都有對應的文件,有可能同樣的數據在多個文件中重複存儲。
(2)數據不一致性(inconsistency)。這往往是由數據冗餘造成的,在進行更新操作時,稍不謹慎,就可能使同樣的數據在不同的文件中不一樣。
(3)數據聯繫弱(poor data relationship)。這是由文件之間相互獨立,缺乏聯繫造成的。
--------------------------------------------------------------------------------
2 數據庫階段的數據管理有些什麼特點?
答:有五方面的特徵:
(1)採用複雜的數據模型表示數據結構。
(2)有較高的數據獨立性。
(3)數據庫系統爲用戶提供方便的用戶接口。
(4)系統提供四個方面的數據控制功能:數據庫的恢復、併發控制、數據完整性、數據安全性,以保證數據庫中數據是安全的、正確的、可靠的。
(5)對數據的操作不一定以記錄爲單位,也可以以數據項爲單位,增加了系統的靈活性。
--------------------------------------------------------------------------------
3 你怎樣理解實體、屬性、記錄、字段這些概念的類型和值的差別?試舉例說明。
答:實體(entity):是指客觀存在可以相互區別的事物。實體可以是具體的對象,如:一個男學生,一輛汽車等;也可以是抽象的事件,如:一次借書、一聲場球賽等。
屬性(attribute):實體有很多特性,每一個特性稱爲屬性。每個屬性有一個值域,其類型可以是整數型、實數型、字符串型。如:學生(實體)有學號、姓名、年齡、性別等屬性,相應值域爲字符、字符串、整數和字符串型。
字段(field):標記實體屬性的命名單位稱爲字段或數據項。它是可以命名的最小信息單位,所以又稱爲數據元素或初等項。字段的命名往往和屬性相同,如:學生有學號、姓名、年齡、性別等字段。
記錄(record):字段的有序集合稱爲記錄。一般用一個記錄描述一個實體,所以記錄又可以定義爲能完整地描述一個實體的字段集。如:一個學生記錄,由有序的字段集(學號、姓名、年齡、性別等)組成。
--------------------------------------------------------------------------------
4 邏輯記錄與物理記錄,邏輯文件與物理文件有些什麼聯繫和區別?
答:數據描述有兩形式:物理描述和邏輯描述。
物理數據描述是指數據在存儲設備上的存儲方式,物理數據是實際存放在存儲設備上的數據。
物理記錄、物理文件(還有物理聯繫、物理結構等術語),都是用來描述存儲數據的細節。
邏輯數據描述是指程序員或用戶用以操作的數據形式,是抽象的概念化數據。
邏輯記錄、邏輯文件(還有邏輯聯繫、邏輯結構等術語),都是用戶觀點的數據描述。
--------------------------------------------------------------------------------
5 爲某百貨公司設計一個ER模型。
百貨管轄若干個連鎖商店,每家商店經營若干商品,每家商店有若干職工,但每個職工只能服務於一家商店。
實體類型“商店”的屬性有:商店編號,店號,店址,店經理。實體類型“商品”的屬性有:商品編號,商品名,單價,產地。實體類型“職工”的屬性有:職工編號,職工名,性別,工資。在聯繫中應反映出職工參加某商店工作的開始時間,商店銷售商品的有銷售量。
試畫出反映商店、商品、職工實體類型及聯繫類型的ER圖,並將其轉換成關係模式集。
答:實體:商店(商店編號,店號,店址,店經理)
商品(商品編號,商品名,單價,產地)
職工(職工編號,職工名,性別,工資)
聯繫:P1-商店銷售商品的有銷售量間
P2-職工參加某商店工作的開始時
ER圖:
關係模式集:商店模式(商店編號,店號,店址,店經理)
商品模式(商品編號,商品名,單價,產地)
職工模式(職工編號,職工名,性別,工資)
P1模式(商店編號,商品編號,月銷售量)
P2模式(商店編號,職工編號,開始時間)
--------------------------------------------------------------------------------
6 試述ER模型、層次模型、網狀模型、關係模型和麪向對象模型的主要特點。
答:ER模型的主要特點:(1)接近於人的思維,容易理解;(2)與計算機無關,用戶容易接受。
層次模型的特點:記錄之間的聯繫通過指針實現,查詢效率較高。
網狀模型的特點:記錄之間聯繫通過指針實現,M:N聯繫也容易實現(每個M:N聯繫可拆成兩個1:N聯繫),查詢效率較高。
關係模型的特點:用關鍵碼而不是用指針導航數據,表格簡單,用戶易懂,編程時並不涉及存儲結構、訪問技術等細節。
--------------------------------------------------------------------------------
7 試述概念模式在數據庫結構中的重要地位。
答:概念模式(定義)是數據庫中全部數據的整體邏輯結構的描述。它由若干個概念記錄類型組成。概念模式不僅要描述概念記錄類型,還要描述記錄間的聯繫、操作、數據的完整性、安全性等要求。
數據按外模式的描述提供給用戶,按內模式的描述存儲在磁盤中,而概念模式提供了連接這兩級的相對穩定的中間觀點,並使得兩級的任何一級的改變都不受另一級的牽制。
--------------------------------------------------------------------------------
8 數據獨立性與數據聯繫這兩個概念有什麼區別?
答:數據獨立性是指應用程序與數據之間相互獨立,不受影響。
數據聯繫是指同一記錄內部各字段間的聯繫,以及記錄之間的聯繫。
--------------------------------------------------------------------------------
9 試述DBMS在用戶訪問數據庫過程中所起的作用。
答:DBMS把用戶對數據庫進行的操作從應用程序帶到外部級、概念級、再導向內部級,進而操作存儲器中的數據。
--------------------------------------------------------------------------------
10 試述DBMS的主要功能。
答:DBMS的主要功能有:
(1)數據庫的定義功能
(2)數據庫的操縱功能
(3)數據庫的保護功能
(4)數據庫的存儲管理
(5)數據庫的維護功能
(6)數據字典
--------------------------------------------------------------------------------
11 試敘DBMS對數據庫的保護功能。
答:DBMS對數據庫的保護主要通過四個方面實現:
(1)數據庫的恢復。
(2)數據庫的併發控制。
(3)數據庫的完整性控制。
(4)數據庫的安全性控制。
--------------------------------------------------------------------------------
12 試敘DBMS對數據庫的維護功能。
答:DBMS中主要有四個實用程序提供給數據庫管理員運行數據庫系統時使用,起着數據庫維護的功能:
(1)數據裝載程序(loading)
(2)備份程序(backup)
(3)文件重組織程序
(4)性能監控程序
--------------------------------------------------------------------------------
13 從模塊結構看,DBMS由哪些部分組成?
答:從模塊結構看,DBMS由兩大部分組成:查詢處理器和存儲管理器
(1)查詢處理器有四個主要成分:DDL編譯器,DML編譯器,嵌入型DML的預編譯器,查詢運行核心程序
(2)存儲管理器有四個主要成分:授權和完整性管理器,事務管理器,文件管理器,緩衝區管理器
--------------------------------------------------------------------------------
14 DBS由哪幾個部分組成?
答:DBS由四部分組成:數據庫、硬件、軟件、數據庫管理員。
--------------------------------------------------------------------------------
15 什麼樣的人是DBA?DBA應具有什麼素質?DBA的職責是什麼?
答:DBA是控制數據整體結構的人,負責DBS的正常運行。DBA可以是一個人,在大型系統中也可以是由幾個人組成的小組。
DBA應具有下列素質:
(1)熟悉企業全部數據的性質和用途;
(2)對用戶的需求有充分的瞭解;
(3)對系統的性能非常熟悉。
DBA的主要職責有五點:
(1)概念模式定義
(2)內模式定義
(3)根據要求修改數據庫的概念模式和內模式
(4)對數據庫訪問的授權
(5)完整性約束的說明
--------------------------------------------------------------------------------
16 試對DBS的全局結構作詳細解釋。
答:略
--------------------------------------------------------------------------------
17 使用DBS的用戶有哪幾類?
答:使用DBS的用戶有四類:
1)DBA
2)專業用戶
3)應用程序員
4)最終用戶
--------------------------------------------------------------------------------
18 DBMS的查詢處理器有哪些功能?
答:DBMS的查詢處理器可分成四個成分:
1)DML編譯器
2)嵌入型DML的預編譯器
3)DDL編譯器
4)查詢運行核心程序
--------------------------------------------------------------------------------
19 DBMS的存儲處理器有哪些功能?
答:DBMS的存儲處理器提供了應用程序訪問數據庫中數據的界面,可分成四個成分:
1)授權和完整性管理器
2)事務管理器
3)文件管理器
4)緩衝區管理器
--------------------------------------------------------------------------------
20 磁盤存儲器中有哪四類主要的數據結構?
答:數據文件、數據字典、索引文件、統計數據組織
--------------------------------------------------------------------------------
21 爲什麼關係中的元組沒有先後順序?
答:因爲關係是一個集合,因此不考慮元組間的順序,即沒有行序。
--------------------------------------------------------------------------------
22 爲什麼關係中不允許有重複元組?
答:如果關係中有重複元組,那麼就無法用鍵來標識唯一的元組。因此在關係模型中對關係作了限制。
--------------------------------------------------------------------------------
23 關係與普通的表格、文件有什麼區別?
答:總而言之,關係是一種規範化了的二維表格,在關係模型中,對關係作了下列規範性限制:
1)關係中每一個屬性值都是不可分解的。
2)關係中不允許出現相同的元組(沒有重複元組)。
3)由於關係是一個集合,因此不考慮元組間的順序,即沒有行序。
4)元組中,屬性在理論上也是無序的,但在使用時按習慣考慮列的順序。
--------------------------------------------------------------------------------
24 笛卡爾積、等值聯接、自然聯接三者之間有什麼區別?
答:笛卡爾積對兩個關係R和S進行操作,產生的關係中元組個數爲兩個關係中元組個數之積。等值聯接則是在笛卡爾積的結果上再進行選擇操作,挑選關係第i個分量與第(r+j)個分量值相等的元組;自然連接則是在等值聯接(以公共屬性值相等爲條件)的基礎上再行投影操作,去掉S中的公共屬性列,當兩個關係沒有公共屬性時,自然連接就轉化我笛卡爾積。
--------------------------------------------------------------------------------
25 如果R是二元關係,那麼下列元組表達式的結果是什麼?
{t|( u)(R(t)∧R(u)∧t[1]≠u[1]∨t[2]≠u[2]))}
解:這個表達式的結果是原關係R。
--------------------------------------------------------------------------------
26 假設R和S分別是三元和二元關係,試把表達式π1,5(σ2=4∨3=4(R×S))轉換成等價的:(1)漢語查詢句子;(2)元組表達式;(3)域表達式。
解:
(1)漢語表達式:選擇R×S關係中元組第2分量或第3分量與第4分量值相等的元組並取第1列與第5列組成的新關係。
(2)元組表達式:{t|( u)( v)(R(u)∧S(v)∧(u[2]=v[1]∨u[3]=v[1])∧t[1]=u[1]∧t[2]=v[2])}
(3)域表達式:{xv|( y)( z)( u)(R(xyz)∧S(uv)∧(y=u∨z=u))}
--------------------------------------------------------------------------------
27 假設R和S都是二元關係,試把元組表達式{t|R(t)∧( u)(S(u)∧u[1]≠t[2])}轉換成等價的:(1)漢語查詢句子;(2)域表達式:(3)關係代數表達式。
解:
(1)漢語表達式:選擇R關係中元組第2分量值不等於S關係中某元組第1分量值的元組。
(2)域表達式:{xy|( u)( v)(S(uv)∧(u≠y))}
(3)關係代數表達式:π1,2(σ2≠3(R×S))
--------------------------------------------------------------------------------
28 試把域表達式{ab|R(ab)∧R(ba)}轉換成等價的:(1)漢語查詢句子;(2)關係代數表達式;(3)元組表達式。
解:(1)漢語查詢句子:選擇R中元組第1分量值與第2分量值互換後仍存在於R中的元組。
(2)關係代數表達式:π1,2(σ1=4∧2=3(R×R));
(3)元組表達式:{t|( u)(R(t)∧R(u)∧t[1]=u[2]∧t[2]=u[1])}
--------------------------------------------------------------------------------
29 設有兩個關係R(A,B,C)和S(D,E,F),試把下列關係代數表達式轉換成等價的元組表達式:(1)πA(R);(2)σB='17'(R);(3)R×S;(4)πA,F(σC=D(R×S))
解:(1){t|( u)(R(t)∧R(u)∧t[1]=u[1])}
(2){t|R(t)∧t[2]='17')}
(3){t|( u)( v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])}
(4){t|( u)( v)((R(u)∧S(v)∧u[3]=v[4]∧t[1]∧u[1]∧t[2]=v[3])}
--------------------------------------------------------------------------------
30 在教學數據庫S、SC、C中,用戶有一查詢語句:檢索女同學選修課程的課程名和任課教師名。(1)試寫出該查詢的關係代數表達式;(2)試寫出查詢優化的關係代數表達式。
解:(1)πCNAME,TEACHER(σSEX='女'(S|X|SC|X|C))
(2)優化爲:πCNAME,TEACHER(πCNAME,TEACHER(C)|X|(πS#,C#(SC)|X|πS#(σSEX='女'(S))))
--------------------------------------------------------------------------------
31 爲什麼要對關係代數表達式進行優化?
答:對關係代數表達式進行優化的主要是爲了提高系統的操作效率,達到執行過程即省時間又省空間的目的。
--------------------------------------------------------------------------------
32 對於教學數據庫的三個基本表
學生 S(S#,SNAME,AGE,SEX)
學習 SC(S#,C#,GRADE)
課程 C(C#,CNAME,TEACHER)
試用SQL的查詢語句表達下列查詢:
(1)檢索LIU老師所授課程的課程號和課程名。
SELECT C#,CNAME
FROM C
WHERE TEACHER=‘LIU’
(2)檢索年齡大於23歲的男學生的學號和姓名。
SELECT S#,SNAME
FROM S
WHERE (AGE>23) AND (SEX=‘M’)
(3)檢索至少選修LIU老師所授課程中一門課程的女學生姓名。
SELECT
SNAME
FROM S
WHERE SEX=‘F’ AND S# IN
(SELECT S#
FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER=‘LIU’)
(4)檢索WANG同學不學的課程的課程號。
SELECT C#
FROM C
WHERE C# NOT IN
(SELECT C#
FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG'))
(5)檢索至少選修兩門課程的學生學號。
SELECT S#
FROM SC
HAVING COUNT(C#)>=2
(6)檢索全部學生都選修的課程的課程號與課程名。
SELECT C#,CNAME
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE SC.S#=S.S# AND SC.C#=C.C#))
(7)檢索選修課程包含LIU老師所授課的學生學號。
SELECT S#
FROM S
WHERE S# IN
(SELECT S#
FROM SC
WHERE
S.S#=SC.S# AND C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU'))
(請討論一下,本題是否可如此:SELECT DISTINGCT
S# FROM SC WHERE EXISTS (SELECT C# FROM C WHERE TEACHER='LIU'))
--------------------------------------------------------------------------------
32 設有兩個基本表R(A,B,C)和S(D,E,F),試用SQL查詢語句表達下列關係代數表達式:
(1)πA(R) (2)σB='17'(R) (3)R×S (4))πA,F(σC=D(R×S)
(1)SELECT A FROM R
(2)SELECT * FROM R WHERE B='17'
(3)SELECT A,B,C,D,E,F FROM R,S
(4)SELECT A,F FROM R,S WHERE R.C=S.D
--------------------------------------------------------------------------------
33 設有兩個基本表R(A,B,C)和S(A,B,C)試用SQL查詢語句表達下列關係代數表達式:
(1)R∪S (2)R∩S (3)R-S (4)πA,B(R)|X|πB,C(S)
(1)SELECT A,B,C
FROM R,S
WHERE NOT EXISTS
(SELECT A,B,C
FROM R,S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)
--------------------------------------------------------------------------------
(2)SELECT A,B,C
FROM R,S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C
(3)SELECT A,B,C
FROM R
WHERE NOT EXISTS
(SELECT A,B,C
FROM S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)
(4)SELECT R.A,R.B,S.C
FROM R,S
WHERE R.B=S.B
--------------------------------------------------------------------------------
34 試敘述SQL語言的關係代數特點和元組演算特點。
答:SQL語言是介乎關係代數和元組演算之間的一種語言:...
--------------------------------------------------------------------------------
35 試用SQL查詢語句表達下列對教學數據庫中三個基本表S、SC、C的查詢:
(1)統計有學生選修的課程門數。
SELECT COUNT(DISTINCT C#) FROM SC
(2)求選修C4課程的學生的平均年齡。
SELECT AVG(AGE)
FROM S
WHERE S# IN
(SELECT S#
FROM SC WHERE C#='C4')
(3)求LIU老師所授課程的每門課程的學生平均成績。
SELECT CNAME,AVG(GRADE)
FROM SC ,C
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU')
GROUP BY C#
(4)統計每門課程的學生選修人數(超過10人的課程才統計)。要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列。
SELECT DISTINCT C#,COUNT(S#)
FROM SC
GROUP BY C#
HAVING COUNT(S#)>10
ORDER BY 2,C# DESC
(5)檢索學號比WANG同學大,而年齡比他小的學生姓名。
SELCET SNAME
FROM S AS X
WHERE X.S#>SOME
(SELECT S#
FROM S AS Y
WHERE Y.SNAME='WANG' AND X.AGE<Y.AGE)< p>
(6)檢索姓名以WANG打頭的所有學生的姓名和年齡。
SELECT SNAME,AGE
FROM S
WHERE SNAME LIKE 'WANG%'
(7)在SC中檢索成績爲空值的學生學號和課程號。
SELECT S#,C#
FROM SC
WHERE GRADE IS NULL
(8)求年齡大於女同學平均年齡的男學生姓名和年齡。
SELECT SNAME,AGE
FROM S AS X
WHERE X.SEX='M' AND X.AGE>
(SELECT AVG(AGE) FROM S AS Y WHERE Y.SEX='F')
(9)求年齡大於所有女同學年齡的男學生姓名和年齡。
SELECT SNAME,AGE
FROM S AS X
WHERE X.SEX='M' AND X.AGE>ALL
(SELECT AGE FROM S AS Y WHERE Y.SEX='F')
--------------------------------------------------------------------------------
36 試用SQL更新語句表達對教學數據庫中三個基本表S、SC、C的各個更新操作:
(1)往基本表S中插入一個學生元組(‘S9’,‘WU’,18)。
INSERT INTO S(S#,SNAME,AGE) VALUES('59','WU',18)
(2)在基本表S中檢索每一門課程成績都大於等於80分的學生學號、姓名和性別,並把檢索到的值送往另一個已存在的基本表STUDENT(S#,SANME,SEX)。
INSERT INTO STUDENT(S#,SNAME,SEX)
SELECT S#,SNAME,SEX
FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE
GRADE<80 AND S.S#=SC.S#)
(3)在基本表SC中刪除尚無成績的選課元組。
DELETE FROM SC
WHERE GRADE IS NULL
(4)把WANG同學的學習選課和成績全部刪去。
DELETE FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG')
(5)把選修MATHS課不及格的成績全改爲空值。
UPDATE SC
SET GRADE=NULL
WHERE S# IN
(SELECT S#
FROM C WHERE CNAME='MATHS') AND SC.GRADE<60
(6)把低於總平均成績的女同學成績提高5%。
UPDATE SC SET GRADE=GRADE*1.05
WHERE GRADE<(SELECT AVG(GRADE) FROM SC)
AND S# IN (SELECT S# FROM S WHERE SEX='F')
(7)在基本表SC中修改C4課程的成績,若成績小於等於75分時提高5%,若成績大於75分時提高4%(用兩個UPDATE語句實現)。
UPDATE SC
SET GRADE=GRADE*1.05
WHERE C#='C4' AND GRADE<=75
UPDATE SC
SET GRADE=GRADE*1.04
WHERE C#='C4' AND GRADE>75
--------------------------------------------------------------------------------
37 預處理方式對於嵌入式SQL的實現有什麼重要意義?
答:預處理方式是先用預處理程序對源程序進行掃描,識別出SQL語句,並處理成宿主語言的函數調用形式;然後再用宿主語言的編譯程序把源程序編譯成目標程序。
--------------------------------------------------------------------------------
38 在宿主語言的程序中使用SQL語句有哪些規定?
答:在宿主語言的程序中使用SLQ語句有以下規定:
1)在程序中要區分SQL語句與宿主語言語句
2)允許嵌入的SQL語句引用宿主語言的程序變量(稱爲共享變量)
3)SQL的集合處理方式與宿主語言單記錄處理方式之間要協調
--------------------------------------------------------------------------------
39 SQL的集合處理方式與宿主語言單記錄處理方式之間如何協調?
答:由於SQL語句處理的是記錄集合,而宿主語言語句一次只能處理一個記錄,因此需要用遊標(cousor)機制,把集合操作轉換成單記錄處理方式。
--------------------------------------------------------------------------------
40 嵌入式SQL語句何時不必涉及到遊標?何時必須涉及到遊標?
答:1)INSERT、DELETE、UPDATE語句,查詢結果肯定是單元組時的SELECT語句,都可直接嵌入在主程序中使用,不必涉及到遊標。
2)當SELECT語句查詢結果是多個元組時,此時宿主語言程序無法使用,一定要用遊標機制把多個元組一次一個地傳送給宿主語言處理。
--------------------------------------------------------------------------------
41 關係模式R有n個屬性,在模式R上可能成立的函數依賴有多少個?其中平凡的函數依賴集有多少個?非平凡的函數依賴有多少個?
答:在模式R上可能成立的函數依賴最多的個數即爲R上函數依賴集的閉包中函數依賴的個數。
--------------------------------------------------------------------------------
42 對函數依賴X→Y的定義加以擴充,X和Y可以爲空屬性集,用φ表示,那麼X→φ,φ→Y,φ→φ的含義是什麼?
答:根據函數依賴的定義,以上三個表達式的含義爲:
(1)一個關係模式R(U)中,X,Y是U的子集,r是R的任一具體關係,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]必有t1[φ]=t2[φ],即X函數決定空屬性。即X→φ表示空屬性函數依賴於X。這也是任何關係中都存在的。
(2)φ→Y表示Y函數依賴於空屬性。由此可知該關係中所有元組中Y屬性的值均相同。
(3)φ→φ表示空屬性函數依賴於空屬性。這是顯然的。
--------------------------------------------------------------------------------
43. 數據系統的生存期分成哪幾個階段?數據庫結構的設計在生存期中的地位如何?
答:分成七個階段:規劃、需求分析、概念設計、邏輯設計、物理設計、實現、運行和維護(規需概邏物現維)。數據庫結構的設計在生存期中的地位很重要,只有通過邏輯設計、物理設計,才能把概念模式轉化爲與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構和物理結構。這個設計在整個數據庫設計中處於承上啓下的地位。
--------------------------------------------------------------------------------
44. 什麼是數據庫設計?數據庫設計過程的輸入和輸出有哪些內容?
答:數據庫設計是指對於給定的應用環境,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求。
數據庫設計過程的輸入包括四部分內容:1)總體信息需求;2)處理需求;(3)DBMS的特徵;(4)硬件和OS(操作系統)特徵。
數據庫設計過程的輸出包括兩部分內容:(1)完整的數據庫結構,其中包括邏輯結構和物理結構;(2)基於數據庫結構和處理需求的應用程序的設計原則。輸出一般以說明書的形式出現。
--------------------------------------------------------------------------------
45. 基於數據庫系統生存期的數據庫設計分成哪幾個階段?
答:分爲5個階段:簡記爲(規需概邏物):規劃、需求分析、概念設計、邏輯設計和物理設計五個階段。)。
--------------------------------------------------------------------------------
46. 什麼是比較好的數據庫設計方法學?數據庫設計方法學應包括哪些內容?
答:一個好的數據庫設計方法應該能在合理的期限內,以合理的工作量產生一個有實用價值的數據庫結構。數據庫設計方法學應包括以下內容:設計過程、設計技術、評價準則、信息需求、描述機制。
--------------------------------------------------------------------------------
47. 數據庫設計的規劃階段應做哪些事情?
答:數據庫設計中的規劃階段的主要任務是進行建立數據庫的必要性及可行性分析,確定數據庫系統在組織中和信息系統中的地位,以及各個數據庫之間的聯繫。
--------------------------------------------------------------------------------
48. 數據庫設計的需求分析階段是如何實現的?目標是什麼?
答:數據庫設計的需求分析通過三步來完成:即需求信息的收集、分析整理和評審,其目的在於對系統的應用情況作全面詳細的調查,確定企業組織的目標,收集支持系統總的設計目標的基礎數據和對這些數據的要求,確定用戶的需求,並把這些要求寫成用戶和數據設計者都能夠接受的文檔。
--------------------------------------------------------------------------------
49. 評審在數據庫設計中有什麼重要作用?爲什麼允許設計過程中有多次的回溯與反覆?
答:評審的作用在於確認某一階段的任務是否全部完成,通過評審可以避免重大的疏漏或錯誤。允許設計過程中的多次回溯與反覆就是爲了確保在設計完成數據庫系統中不出現重大疏漏或錯誤。
--------------------------------------------------------------------------------
50. 數據字典的內容和作用是什麼?
答:數據字典的內容一般包括:數據項、數據結構、數據流、數據存儲和加工過程。其作用是對系統中數據做出詳盡的描述,提供對數據庫數據的集中管理。
--------------------------------------------------------------------------------
51. 對概念模型有些什麼要求?
答:對概念模型一般有以下要求:
概念模型是對現實世界的抽象和概括,它應真實、充分地反映現實世界中事物和事物之間的聯繫,有豐富的語義表達能力,能表達用戶的各種需求,包括描述現實世界中各種對象及其複雜聯繫、用戶對數據對象的處理要求和手段。
概念模型應簡潔、明晰,獨立於機器、容易理解、方便數據庫設計人員與應用人員交換意見,使用戶能積極參與數據庫的設計工作。
概念模型應易於變動。當應用環境和應用要求改變時,容易對概念模型修改和補充。
概念模型應很容易向關係、層次或網狀等各種數據模型轉換,易於從概念模式導出也DBMS有關的邏輯模式。
--------------------------------------------------------------------------------
52. 概念設計的具體步驟是什麼?
答:概念設計的主要步驟爲:
進行數據抽象、設計局部概念模式;
將局部概念模式綜合成全局概念模式;
評審。
--------------------------------------------------------------------------------
53. 什麼是數據抽象?主要有哪兩種形式的抽象?數據抽象在數據庫設計過程中起什麼作用?
答:數據抽象是對人、物、事或概念的人爲處理,它抽取人們關心的共同特性,忽略非本質的細節,並把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。
數據抽象的形式有:系統狀態的抽象,即抽象對象;系統轉換的抽象,即抽象運算。
--------------------------------------------------------------------------------
54. 什麼是ER圖?構成ER圖的基本要素是什麼?
答:ER圖是用來描述某一組織(單位)的概念模型,提供了表示實體、屬性和聯繫的方法。構成ER圖的基本要素是實體、屬性和關係。實體是指客觀存在並可相互區分的事特;屬性指指實體所具有的每一個特性。
--------------------------------------------------------------------------------
55. 試述採用ER方法的數據庫概念設計的過程.
答:利用ER方法進行數據庫的概念設計,可分成三步進行:首先設計局部ER模式,然後把各局部ER模式綜合成一個全局ER模式,最後對全局ER模式進行優化,得到最終的ER模式,即概念模式。
--------------------------------------------------------------------------------
56. 邏輯設計的目的是什麼?試述邏輯設計過程的輸入和輸出環境。
答:邏輯設計的目的是把概念設計階段設計好的基本ER圖轉換爲與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構,包括數據庫模式和外模式。
邏輯設計過程中的輸入信息有:(1)獨立於DBMS的概念模式,即概念設計階段產生的所有局部和全局概念模式;(2)處理需求,即需求分析階段產生的業務活動分析結果;(3)約束條件,即完整性、一致性、安全性要求及響應時間要求等;(4)DBMS特性,即特定的DBMS特性,即特定的DBMS所支持的模式、子模式和程序語法的形式規則。
邏輯設計過程輸出的信息有:(1)DBMS可處理的模式;(2)子模式;(3)應用程序設計指南;(4)物理設計指南。
--------------------------------------------------------------------------------
57. 試述邏輯設計階段的主要內容。
答:邏輯設計主要是把概念模式轉換成DBMS能處理的模式。轉換過程中要對模式進行評價和性能測試,以便獲得較好的模式設計。邏輯設計的主要內容包括:
(1)初始模式的形成
(2)子模式設計
(3)應用程序設計梗概
(4)模式評價
(5)修正模式。
--------------------------------------------------------------------------------
58. 規範化理論對數據庫設計有什麼指導意義?
答:在概念設計階段,已經把關係規範化的某些思想用作構造實體類型和聯繫類型的標準,在邏輯設計階段,仍然要使用關係規範化的理論來設計模式和評價模式。規範化的目的是減少乃至消除關係模式中存在的各種異常,改善完整性,一致性和存儲效率。
--------------------------------------------------------------------------------
59.什麼是數據庫結構的物理設計?試述其具體步驟。
答:數據庫結構的物理設計是指對一個給定的邏輯數據模型選取一個最適合應用環境的物理結構的過程,所謂數據庫的物理結構主要指數據庫在物理設備上的存儲結構和存取方法。
物理設計的步驟爲:(1)設計存儲記錄結構,包括記錄的組成、數據項的類型和長度,以及邏輯記錄到存儲記錄的映射;(2)確定數據存儲安排;(3)設計訪問方法,爲存儲在物理設備上的數據提供存儲和檢索的能力;(4)進行完整性和安全性的分析、設計;(5)程序設計。
--------------------------------------------------------------------------------
60. 試敘事務的四個性質,並解釋每一個性質對DBS有什麼益處?
答:事務的四個性質是:原子性、一致性、隔離性和持久性。
原子性:是保證數據庫系統(DBS)完整性的基礎。一個事務中所有對數據庫的操作是一個不可分割的操作序列。
一致性:一個事務獨立執行的結果將保證數據庫的一致性,即數據不會因事務的執行而遭受破壞。
隔離性:隔離性要求在併發事務被執行時,系統應保證與這些事務先後單獨執行時結果一樣,使事務如同在單用戶環境下執行一樣。
持久性:要求對數據庫的全部操作完成後,事務對數據庫的所有更新應永久地反映在數據庫中。
--------------------------------------------------------------------------------
62 事務的COMMIT操作和ROLLBACK操作各做些什麼事情?
答:COMMIT操作表示事務成功地結束(提交),此時告訴系統,數據庫要進入一個新的正確狀態,該事務對數據庫的所有更新都已交付實施。
ROLLBACK操作表示事務不成功地結束,此時告訴系統,已發生錯誤,數據庫可能處在不正確的狀態,該事務對數據庫的更新必須被撤銷,數據庫應恢復該事務到初始狀態。
--------------------------------------------------------------------------------
63 UNDO操作和REDO操作各做些什麼事情?
答:UNDO操作是反向掃描"日誌"文件,撤銷對數據庫的更新操作,使數據庫恢復到更新前的狀態;REDO操作正向掃描日誌文件,重新做一次更新,使數據庫恢復到更新後的狀態。
--------------------------------------------------------------------------------
64 DBS中有哪些類型的故障?哪些故障破壞了數據庫? 哪些故障未破壞數據庫,但其中某些數據變得不正確?
答:數據庫系統故障有事務故障、系統故障、介質故障。其中介質故障破壞數據庫,系統故障未破壞數據庫但使其中某些數據變得不正確。
--------------------------------------------------------------------------------
65 什麼是“運行記錄優先原則”?其作用是什麼?
答:在數據庫系統中,寫一個修改到數據庫中和寫一個表示這個修改的登記記錄到日誌文件中是兩個不同的操作,爲了避免在完成這兩個操作時,由於發生故障而破壞數據庫的一致性,應先將運行記錄寫下來,這就是“運行記錄優先原則”。
--------------------------------------------------------------------------------
66 什麼是數據庫的恢復?恢復的基本原則是什麼,恢復如何實現?
答:數據庫的恢復是指當數據庫系統遭到破壞時,通過一些技術,使數據庫恢復到遭到破壞前的正確狀態。恢復的基本原則就是冗餘,即數據的重複存儲。恢復的常用方法有:定期對整個數據庫進行復制或轉儲;建立日誌文件;恢復。
--------------------------------------------------------------------------------
67 數據庫的併發操作會帶來哪些問題?如何解決?
答:數據庫的併發操作會帶來三類問題:丟失更新問題;不一致分析問題和“髒數據”的讀出。解決的辦法就是採用“封鎖”技術。
--------------------------------------------------------------------------------
68 有哪些“丟失更新”問題?如何處理?
答:如兩個事務要對某數據進行操作,但是由於併發調度的的原因,使得在一個事務對某數據的更新不能被另一事務所接受,導致更新操作的丟失。處理的辦法就是對併發操作採用封鎖技術,在一個事務操作時,另一事務進入等待狀態直到前一事務解鎖。
還有一種丟失更新問題是由事務的ROLLBACK引起的,如事務T2依賴於事務T1,在T1更新後未提交(COMMIT)而是ROLLBACK(回退),使得T2讀取髒數據。處理的辦法是使用PXC協議,不允許事務T1執行解鎖操作直到事務執行到終點(COMMIT或提交)。
--------------------------------------------------------------------------------
69 爲什麼DML只提供解除S封鎖的操作,而不提供解除X封鎖的操作?
答:在DML中,PX協議並不完善,修正後的PXC協議規定:X封鎖必須保留到事務終點(COMMIT或ROLLBACK),這個協議能防止由恢復引起的更新丟失現象。而多個事務可以對同一數據加上S封鎖(讀取但不能修改)因此可以由事務用UNLOCK解除各自對數據的封鎖。
--------------------------------------------------------------------------------
70 爲什麼有些封鎖需保留到事務終點,而有些封鎖可隨時解除?
答:因爲有的封鎖需要更新數據,保留到終點才能確認是否提交或回退以避免髒數據的讀出,所以這些封鎖需要保留到事務終點。而有些事務全部或部分操作只是讀取數據,那麼這一部分操作的封鎖可以隨時解除,因爲它不涉及更新數據操作。
--------------------------------------------------------------------------------
71 死鎖的發生是壞事還是好事?試說明理由。如何解除死鎖狀態?
答:死鎖的發生即是壞是又是好事,說是壞是是因爲它使併發事務不能繼續執行下去,造成時間開銷卻不產生結果。說是好事是因爲在某些時候我們要利用它來解決更新操作導致的數據庫不一致狀態。通過系統的死鎖解決機制挑選一個事務作爲犧牲品,撤消並恢復到初始狀態。
--------------------------------------------------------------------------------
72 試敘述"串行調度"與"可串行化調度"的區別。
答:串行調度是多個事務按照一定的次序依次執行;而可串行化調度是指一個併發調度的結果與某一串行調度執行的結果等價時的併發調度。串行調度在某一時刻只有一個事務在執行,而可串行調度在某一時刻有多個事務同時被處理。
--------------------------------------------------------------------------------
73 什麼是數據庫的完整性? DBMS的完整性子系統的功能是什麼?
答:數據庫的完整性是指數據的正確性和相容性。DBMS完整性子系統的功能是:(1)監督事務的執行,並測試是否違反完整性規則;(2)如有違反,則採取恰當的操作,如拒絕、報告違反情況,改正錯誤等方法進行處理。
--------------------------------------------------------------------------------
74 完整性規則由哪幾個部分組成?關係數據庫的完整性規則有哪幾類?
答:完整性規則由三部分組成:
觸發條件:即什麼時候使用規則進行檢查;
約束條件:即要檢查什麼樣的錯誤;
ELSE子句:即查出錯誤後如何處理。
完整性規則有以下三類:
域完整性規則,用於定義屬性的取值範圍;
域聯繫的規則,定義一個或多個關係中,屬性值間的聯繫、影響和約束。
關係完整性規則,定義更新操作對數據庫中值的影響和限制。
--------------------------------------------------------------------------------
75 試詳述SQL中的完整性約束機制。
答:SQL中的完整性約束規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。
主鍵約束。它是數據中最重要的一種約束。在關係中主鍵值不允許空也不允許出現重複,主鍵可用主鍵子句或主鍵短語進行定義。
外鍵約束。根據參照完整性規則,依賴關係中外鍵或者爲空值,或者是基本關係(參照關係)中的該鍵的某個值。外鍵用外鍵關係子句定義。
屬性值約束。當要求某個屬性的值不允許空值時,那麼可以在屬性定義後加上關鍵字:NOT NULL ,這是非空值約束。還可以用CHECK子句對一個屬性值加以限制以及使用域約束子句CREAT DOMAIN 定義新域並加以屬性值檢查。
全局約束。在關係定義時,可以說明一些比較複雜的完整性約束,這些約束涉及到多個屬性間的聯繫或不同關係間的聯繫,稱爲全局約束。主要有基於元組的檢查子句和斷言。前者是對單個關係的元組值加以約束,後者則可對多個關係或聚合操作有關的完整性約束進行定義。
--------------------------------------------------------------------------------
76 參照完整性規則在SQL可以用哪幾種方式實現?刪除基本關係的元組時,依賴關係可以採取的做法有哪三種?修改基本關係的主鍵值時,依賴關係可以採取的做法有哪三種?
答:參照完整性規則要求"不引用不存在的實體",在SQL中可以採用外鍵子句定義外鍵以及在屬性值上進行約束如基於屬性的檢查、以及全局約束中的基於元組的檢查子句等方式實現。
刪除基本關係元組或修改基本關係的主鍵值時,依賴關係可以採用的做法有:
RESTRICT方式:只有當依賴關係中沒有一個外鍵值與被刪除/修改的基本關係中的主鍵值相對應時,系統才能執行刪除操作,否則拒絕刪除或修改。
SET NULL方式:刪除/修改基本元組或基本關係的主鍵值時,將依賴關係中所有與基本關係中被刪除/修改主鍵值相對應的外鍵值置爲空值。
CASCADE方式:若刪除則將依賴關係中所有外鍵值與基本關係中要刪除的主鍵值相對應的元組一併刪除,若修改則將依賴關係中所有與基本關係中要修改的主鍵值相對應的外鍵值一併修改爲新值。
--------------------------------------------------------------------------------
77 試對SQL2中的基於屬性的檢查約束、基於元組的檢查約束和斷言三種完整性約束進行比較:各說明什麼對象?何時激活?能保證數據庫的一致性嗎?
答:如下表:
約束形式
說明對象
激活條件
是否保證一致性
基於屬性的檢查
只對一個屬性值加以約束
插入或修改屬性值時
不一定
基於元組的檢查
對單個關係的元組值加以約束
在插入或修改元組時
不一定
斷言
多個關係或聚合操作
任何變動
保證
--------------------------------------------------------------------------------
78 設教學數據庫的模式如下:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
試用多種方式定義下列完整性約束:
(1)在關係S中插入學生年齡值應在16~25歲之間
(2)在關係SC中插入元組時,其S#值和C#值必須分別在S和C中出現。
(3)在關係SC中修改GRADE值時,必須仍在0~100之間。
(4)在刪除關係C中一個元組時,首先要把關係SC中具有同樣C#的元組全部刪去。
(5)在關係S中把某個S#值修改爲新值時,必須同時把關係SC中那些同樣的S#值也修改爲新值。
答:(1)定義S時採用檢查子句:
CREAT TABLE S(
S# CHAR(4),
SNAME char (10) NOT NULL ,
AGE SMALLINT ,
primary key(S#)
CHECK (AGE>=16 and AGE<=25))
(2)採用外鍵子句約束
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#)
FOREIGN key(C#) REFERENCE C(C#)
(3)採用元組檢查
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#)
FOREIGN key(C#) REFERENCE C(C#)
CHECK (GRADE>=0 and AGE<=100))
(4)採用外鍵約束
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#),
FOREIGN key(C#) REFERENCE C(C#)
)
注,在ON DELETE短語缺省的時候表示RESTRICT方式。
(5)採用外鍵約束
CREAT TABLE SC(
S# CHAR(4),
C# CHAR(4),
GRADE SMALLINT,
FOREIGN key(S#) REFERENCE S(S#) ON UPDATE CASCADE ,
FOREIGN key(C#) REFERENCE C(C#)
)
--------------------------------------------------------------------------------
79 在教學數據庫的關係S、SC、C中,試用SQL2的斷言機制定義下列兩個完整性約束:
(1)學生必須在選修Maths課後,才能選修其他課程。
(2)每個男學生最多選修20門課程
解:(1)
CREAT ASSERTION ASS1 CHECK
( NOT EXISTS
( SELECT S FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE
CNAME<>'MATHS')
AND S# NOT IN
(SELECT S# FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE
CNAME='MATHS')));
(2)
CREAT ASSERTION ASS2 CHECK
( 20>=ALL(SELECT COUNT (SC.C#)
FROM S,SC
WHERE S.S#=SC.S AND SEX='M'
GROUP BY S#));
--------------------------------------------------------------------------------
80 什麼是數據庫的安全性?有哪些安全措施?
答:數據庫的安全性是指保護數據庫防止不合法的使用,以免數據的泄漏、非法更改和破壞。
可以從以下方面設置數據庫的安全措施:環境級、職員級、OS級、網絡級和數據庫系統級。
--------------------------------------------------------------------------------
81 什麼是"權限"?用戶訪問數據庫可以有哪些權限?對數據庫模式有哪些修改權限?
答:用戶使用數據庫的方式稱爲權限。用戶訪問數庫的權限有:讀權限、插入權限、修改權限、刪除權限。用戶修改數據庫模式的權限有索引權限、資源權限、修改權限、撤銷權限。
--------------------------------------------------------------------------------
82 試解釋權限的轉授與回收。
答:在數據庫系統中,爲了保證數據的安全性,用戶對數據的操作必須首先從DBA處獲得權限,才能進行對數據的操作。同時數據庫系統也允許用戶將獲得的權限轉授給其他用戶,也允許把已授給其他用戶的權限再回收上來。
--------------------------------------------------------------------------------
83 SQL 語言中的視圖機制有哪些優點?
答:視圖機制使系統具有三個優點:數據安全性、數據獨立性和操作簡便性。
--------------------------------------------------------------------------------
84 SQL2中用戶權限有哪幾類?並作必要的解釋。
答:SQL2中定義了六類用戶權限,分別是:
(1)SELECT :允許用戶對關係或視圖執行SELECT操作。
(2)INSERT :允許用戶對關係或視圖執行INSERT操作,如果還說明了一個屬性表,那麼表示只能插入這些屬性的值,關係中其他屬性值將置爲缺省值或爲空值。
(3)DELETE:允許用戶對關係或視圖執行DELETE操作。
(4)UPDATE:允許用戶對關係或視圖執行UPDATE操作,如果還說明了一個屬性表,那麼表示只能修改這些屬性的值,否則表示可以修改關係中任一屬性值。
(5)REFERENCES:允許用戶定義新關係時,引用其他關係的主鍵作爲外鍵。
(6)USAGE:允許用戶使用定義的域。
--------------------------------------------------------------------------------
85 數據加密法有些什麼優點?如何實現?
答:數據加密可以更好地保證數據的完全性,加密採用加密算法給把源文變爲密文來實現。常用的加密算法有"替換方法"和明鍵加密法。
--------------------------------------------------------------------------------
86. 什麼是數據的再組織設計?試述其重要性。
答:數據再組織是指對數據的概念模式、邏輯結構或物理結構的改變。數據再組織,通常是由於環境,需求的變化或性能原因而進行的,如信息定義的改變,增加新的數據類型,對原有的數據提出了新的使用要求,改用具有不同物理特徵的新存儲設備以及數據庫性能下降等都要求進行數據庫的重新組織。
--------------------------------------------------------------------------------
87. 數據系統投入運行後,有哪些維護工作?
答:數據系統投入運行後,主要維護工作有:(1)維護數據庫的安全性與完整性控制及系統的轉儲和恢復;(2)性能的監督、分析與改進;(3)增加新功能;(4)發現錯誤,修改錯誤。
--------------------------------------------------------------------------------
88 試敘數據從集中存儲、分散存儲到分佈存儲的演變過程。
答:早期的數據庫規模不大,採用集中式數據庫系統,對集中存儲的數據進行管理和使用優點突出,但是後來,隨着數據庫應用的不斷髮展,數據庫規模不斷擴大,使得集中存儲的數據庫及數據庫系統的設計和操作都比較複雜,安全性也較差,因此採用了數據分散存儲的辦法,將數據庫分成多個建立在多臺計算機上,此時的各個數據庫的管理和應用程序均是分開並獨立的。隨着計算機網絡通信的發展,有可能把分散在各處的數據庫系統通過網絡通信連接起來,因此出現了分佈式的數據庫系統,這時的數據庫雖然分別存在各地的計算機上,但它們之間通過分佈式數據管理系統可以進行聯繫,分佈式存儲是集中存儲和分散存儲的結合。
--------------------------------------------------------------------------------
89與集中式DBS、分散式DBS相比,分佈式DBS有哪些特點?
答:與集中式DBS相比,分佈式DBS中數據庫的存儲是分佈性的,即數據不是存儲在同一場地,而是分佈存儲在多個場地。與分散式DBS相比,分佈式DBS中數據庫具有"邏輯整體性",即表面上看,分佈式數據的數據庫分散在各個場地,但這些數據在邏輯上卻是一個整體,如同一個集中式數據庫。
--------------------------------------------------------------------------------
90 試解釋下列術語:同構同質型DDBS,同構異質型DDBS,異構DDBS。
答:同構同質型DDBS:是指各個場地都採用同一類型的數據模型,並且是同一型號數據庫管理系統。
同構異質型DDBS:是指各個場地都採用同一類型的數據模型,但是數據庫管理系統是不同型號的。
異構型DDBS是指各個場地的數據模型是不是的類型。
--------------------------------------------------------------------------------
91 分佈式數據庫系統有哪些優點和缺點?
答:分佈式數據庫系統的優點是:
(1)具有靈活的體系結構
(2)適應分佈式的管理和控制機構
(3)經濟性能優越
(4)系統的可靠性高、可用性好
(5)局部應用的響應速度快
(6)可擴展性好,易於集成現有系統。
分佈式數據庫系統的缺點:
(1)系統開銷大,主要花在通信部分
(2)複雜的存取結構,原來在集中式系統中有效存取數據的技術,在分成式系統中都不再適用
(3)數據的安全生和保密性較難處理。
--------------------------------------------------------------------------------
92 分佈式數據庫中,"數據分配"有哪些策略?"數據分片"有哪些策略? 數據分片的準則是什麼?
答:數據分配策略主要有:
集中式:所有數據均安排在同一個場地上。
分割式:所有數據只有一份,分別被安置在若干個場地。
全複製式:數據在每個場地重複存儲。
混合式:數據庫分成若干可相交的子集,每一子集安置在一個或多個場地上,但是每一場地未必保存全部數據。
數據分片的方式有以下三種:
水平分片:按一定的條件把全局關係的所有元組劃分成若干不相交的子集,每個子集爲關係的一個片段。
垂直分片:把一個全局關係的屬性集分成若干子集,並在這些子集上做投影運算,每個投景爲垂直分片。
混合型分片:將水平分片與垂直分片方式綜合使用則爲混合型分片。
數據分片應遵循的準則爲:
(1)完備性條件:必須把全局關係的所有數據映射到各個片段中,絕不允許發生屬於全局關係的某個數據不屬於任何一個片段。
(2)重構條件:劃分所採用的方法必須確保能夠由各個片段重建全局關係。
(3)不相交條件:要求一個全局關係被劃分後得到的各個數據片段互相不重疊。
--------------------------------------------------------------------------------
93 試敘述分佈式DBS的體系結構,它有什麼特徵?
答:分佈式DBS的體系結構分爲四級:全局外模式、全局概念模式、分片模式和分配模式。
(1)全局外模式:它們是全局應用的用戶視圖,是全局概念模式的子集。
(2)全局概念模式:全局概念模式定義了分佈式數據庫中所有數據的邏輯結構。
(3)分片模式:分片模式定義片段以及定義全局關係與片段之間的映象。這種映象是一對多的,即每個片段來自一個全局關係,而一個全局關係可分成多個片段。
(4)分配模式:片段是全局關係的邏輯部分,一個片段在物理上可以分配到網絡的不同場地上。分配模式根據數據分配策略的選擇定義片段的存放場地。
分佈式DBS的分層體系結構有三個特徵:
(1)數據分片和數據分配概念的分離,形成了"數據分佈獨立性"概念。
(2)數據冗餘的顯式控制。
(3)局部DBMS的獨立性。
--------------------------------------------------------------------------------
94 試敘述分佈式DBMS的功能及組成。
答:其主要功能有:
(1)接受用戶請求,並判定把它送到哪裏,或必須訪問哪些計算機才能滿足該請求。
(2)訪問網絡數據字典,或者至少了解如何請求和使用其中的信息。
(3)如果目標數據存儲於系統的多個計算機上,就必須進行分佈式處理。
(4)通信接口功能,在用戶、局部DBMS和其他計算機的DBMS之間進行協調。
(5)在一個異構型分佈式處理環境中,還需提供數據和進程移植的支持。這裏的異構型是指各個場地的硬件、軟件之間存在一定差別。
DDBMS組成:應包括以下四個子系統:
查詢子系統
完整性子系統
調度子系統
可靠性子系統
--------------------------------------------------------------------------------
95 分佈式系統中影響查詢的主要因素是什麼?
答:分佈式系統中,影響查詢的主要因素數據經網絡的傳輸時間,數據傳輸量是衡量查詢時間的一個主要指標,不同場地間的聯接操作和並操作是導致數據輿的主要原因
96 基於半聯接的查詢優化策略的基本思想是什麼?
答:數據在網絡中傳輸時,如果以整個關係傳輸,然後將關係與另一場地關係進行聯接,則傳輸數據量大,而在聯接時並非每個數據都參與操作或有用,因此,考慮到不參與操作的值或無用的值不必經網絡來回傳輸,則可以減少傳輸的數據量。這就是基於半聯接的查詢優化策略的基本思想。
--------------------------------------------------------------------------------
97 表7.2中有兩個關係R和S,試計算下列表達式的值:
(1)R|X|S (2)R|X S (3)S|X R
(4)R|X|S (5)R|X S (6)S|X R
B=B B=B B=B
(7)R|X|S (8)R|X S (9)S|X R
A=D A=D A=D
_____
A B C
2 3 4
5 6 7
8 3 4
7 5 8
關係R
_____
B C D
3 4 7
5 6 8
5 8 2
關係S
解:如下:
--------------------------------------------------------------------------------
98 試述基於半聯接查詢的優化策略。
答:假設場地1的關係R和場地2的關係S在屬性R.A和S.B上做聯接操作,採用半聯接方法表示這個聯接操作,可以減少數據傳輸量
R |×| S =(R |× S ) |×| S
A=B A=B A=B
等式右邊的式子稱爲"半聯接程序":第一步,在場地2計算關係S在屬性B上的投影πB(S),然後把πB(S)從場地2傳輸到場地1.
第二步;在場地1執行半聯接,把結果R'傳到場地2,第三步在場地2執行R'與S的聯接操作得到結果。
--------------------------------------------------------------------------------
99 試述客戶/服務器式DBS的一般結構。此時數據庫應用的功能如何劃分?
答:客戶/服務器式DBS是在客戶/服務器計算機網絡上運行的DBS,這個計算機網絡中,有一些計算機扮演客戶,另一些計算機扮演服務者(即客戶機/服務器)。客戶/服務體系結構的關鍵在於功能的分佈。一些功能放在客戶機(前端機)上運行,另一些功能則放在服務器(後端機)上執行。此時數據庫應用的功能分成兩部分:
前端部分:由一些應用程序構成,例如,格式處理、報表輸出、數據輸入、圖形,實現前端處理和用戶界面。
後端部分:包括存取結構、查詢優化、併發控制、恢復等系統程序,完成事務處理和數據訪問控制。
--------------------------------------------------------------------------------
100 試述分佈式DBS的物理級客戶/服務器體系結構。
答:客戶/服務器式的分佈式DBS中,把DBMS軟件分成兩級:客戶級和服務器級。如某些場地可能只運行客戶機軟件,某些場地可能只運行專用的服務器軟件,而在有一些場地可能客戶機軟件和服務器軟件都運行。
--------------------------------------------------------------------------------
101 在分佈式DBS中,DBMS的功能如何劃分? 有哪兩種方法?
答:第一種方法是把集中式DBMS的功能放在服務器一級,提供給若干客戶一個SQL服務器,每個客戶機接收用戶的查詢命令,並解釋SQL查詢,提供用戶接口和宿主語言接口的功能。
第二種方法是基於面向對象方法,把DBMS的軟件功能以更加集成的方式劃分到客戶機和服務器中。
--------------------------------------------------------------------------------
102 在典型的分佈式DBMS中,軟件模塊分成哪三級?
答:以下三級:
(1)服務器級軟件:負責場地的局部數據管理
(2)客戶機軟件:負責進行分佈式管理,從數據字典中獲取數據分佈的信息,並處理涉及多場地的全局查詢。
(3)通信軟件:負責提供各場地間的數據傳輸。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.