《電大開放教育本科《數(shù)據(jù)庫應用技術》作業(yè)及答案考試資料.doc》由會員分享,可在線閱讀,更多相關《電大開放教育本科《數(shù)據(jù)庫應用技術》作業(yè)及答案考試資料.doc(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
《數(shù)據(jù)庫應用技術》作業(yè)及答案
第一章 思考與練習題
一、選擇題
1. 三級模式間存在兩種映射,它們是( C?。?。
A.模式與子模式間,模式與內(nèi)模式間
B.子模式與內(nèi)模式間,外模式與內(nèi)模式間
C.外模式與模式間,模式與內(nèi)模式間
D.模式與內(nèi)模式間,模式與模式間
2. SQL Server系統(tǒng)中的所有系統(tǒng)級信息存儲于哪個數(shù)據(jù)庫( A )。
A.master B.model C.tempdb D.msdb
3. 下面關于tempdb數(shù)據(jù)庫描述不正確的是( D )。
A.是一個臨時數(shù)據(jù)庫 B.屬于全局資源
C.沒有權限限制 D.是用戶建立新數(shù)據(jù)庫的模板
4. 在數(shù)據(jù)庫技術中,面向?qū)ο髷?shù)據(jù)模型是一種( B )。
A.概念模型 B.結構模型
C.物理模型 D.形象模型
5. 數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有( B?。?。
A.網(wǎng)狀、關系和語義
B.層次、關系和網(wǎng)狀
C.環(huán)狀、層次和關系
D.網(wǎng)狀、鏈狀和層次
6. 用戶看到的數(shù)據(jù)表,屬于數(shù)據(jù)庫系統(tǒng)三級模式中的( D )。
A.外模式
B.內(nèi)模式
C.子模式
D.模式
7. 對數(shù)據(jù)的插入屬于數(shù)據(jù)庫管理系統(tǒng)( B )的功能。
A.數(shù)據(jù)定義
B.數(shù)據(jù)操縱
C.數(shù)據(jù)庫的運行管理
D.數(shù)據(jù)庫的建立和維護
8. 保持數(shù)據(jù)的完整性屬于數(shù)據(jù)庫管理系統(tǒng)( C )的功能。
A.數(shù)據(jù)定義
B.數(shù)據(jù)操縱
C.數(shù)據(jù)庫的運行管理
D.數(shù)據(jù)庫的建立和維護
9. 在SQL Server數(shù)據(jù)庫中,默認情況下Sys通常是( C )。
A.數(shù)據(jù)文件的后綴
B.事務日志文件的后綴
C.系統(tǒng)表表名的前綴
D.輔助文件的后綴
二、填空題
1. 計算機數(shù)據(jù)處理技術大致經(jīng)歷了( 人工管理 )、( 文件管理 )、( 數(shù)據(jù)庫管理 )等不同的發(fā)展階段。
2. 數(shù)據(jù)庫系統(tǒng)由( 外模式 )、( 模式 )和( 內(nèi)模式 )三級抽象模式構成。
3. 數(shù)據(jù)庫管理系統(tǒng)的主要功能包括( 數(shù)據(jù)定義 )、( 數(shù)據(jù)操縱 )、( 數(shù)據(jù)庫的運行管理 )、( 數(shù)據(jù)庫的建立和維護 )。
4. 關系模型由三部分組成( 數(shù)據(jù)結構 )、( 關系操作集合 )和( 關系的完整性 )。
5. SQL Server提供了大量易用的管理工具,比較常用的主要有( 服務管理器 )、( 企業(yè)管理器 )和( 查詢分析器 )。
6. 數(shù)據(jù)文件的后綴是( mdf )。
7. 事務日志文件的后綴是( ldf )。
8. SQL Server數(shù)據(jù)庫分為 ( 系統(tǒng)數(shù)據(jù)庫 )和( 用戶數(shù)據(jù)庫 )兩種類型。
三、簡答題
1.什么是數(shù)據(jù)和數(shù)據(jù)處理?數(shù)據(jù)與信息的區(qū)別聯(lián)系是什么?
參考答案:
數(shù)據(jù)(Data)是一組表示數(shù)量、行動和目標的非隨機的可鑒別的符號。
數(shù)據(jù)處理通常包括查找、統(tǒng)計、分類、修改、計算、匯總等各種方法。
數(shù)據(jù)(Data)是一組表示數(shù)量、行動和目標的非隨機的可鑒別的符號。
信息(Information)是經(jīng)過加工的,能對接收者的行為和決策產(chǎn)生影響的、有價值的數(shù)據(jù)。
如果將數(shù)據(jù)比喻為原料,那么信息就是數(shù)據(jù)經(jīng)過加工而生產(chǎn)的產(chǎn)品,是有價值的數(shù)據(jù)。與原料和產(chǎn)品的概念相似,一個系統(tǒng)的產(chǎn)品可能是另一個系統(tǒng)的原料,那么一個系統(tǒng)的信息可能成為另一個系統(tǒng)的數(shù)據(jù)。
2.數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)之間到底是什么關系?
參考答案:
數(shù)據(jù)庫就是各種相關數(shù)據(jù)的集合和容器。數(shù)據(jù)庫所保存的數(shù)據(jù)是指長期儲存在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)必須按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可以被一定范圍內(nèi)的各種用戶共享。
數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)庫進行管理的系統(tǒng)軟件,位于用戶和操作系統(tǒng)之間,為用戶或應用程序提供訪問數(shù)據(jù)庫的方法和工具。
廣義上,數(shù)據(jù)庫系統(tǒng)就是采用了數(shù)據(jù)庫技術的計算機系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構成。狹義上講,數(shù)據(jù)庫系統(tǒng)主要指數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng),由于這二者在應用中的相互依賴性,所以在一般不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。
3.請描述一下SQL Server數(shù)據(jù)庫的存儲結構。
參考答案:
SQL Server數(shù)據(jù)庫的存儲結構包括物理存儲結構和邏輯存儲結構兩個層面。
在物理層面上,SQL Server數(shù)據(jù)庫是由兩個操作系統(tǒng)文件組成的,即數(shù)據(jù)文件和事務日志文件,它們的后綴分別是MDF和LDF。數(shù)據(jù)文件主要用于存儲數(shù)據(jù),事務日志文件主要用于存儲數(shù)據(jù)庫的更新情況等事務日志信息。
在邏輯層次上,數(shù)據(jù)庫是由表、視圖、存儲過程等一系列數(shù)據(jù)對象組成的。當采用SQL Server企業(yè)管理器將上述數(shù)據(jù)庫文件“打開”后,就能看到數(shù)據(jù)庫的邏輯結構了,如圖XXX所示。數(shù)據(jù)庫中的數(shù)據(jù)分別存儲在幾個不同的對象中,而這些對象是用戶在操作數(shù)據(jù)庫時,實際能夠看到和接觸到的,屬于邏輯存儲結構。常用的數(shù)據(jù)庫對象主要包括:表(Table)、索引(Index)、視圖(Views)、觸發(fā)器(Triggers)、存儲過程(Store Procedures)、缺?。―efault)、約束(Constraints)、用戶(Users)以及圖表(Diagram)和用戶自定義的數(shù)據(jù)類型等。在以后的章節(jié)中,我們將逐步學習這些對象的使用方法。
4.簡述關系模型的組成。
參考答案:
系模型是目前最重要的一種數(shù)據(jù)模型。關系數(shù)據(jù)庫系統(tǒng)采用關系模型作為數(shù)據(jù)的組織方式。關系模型由三部分組成:數(shù)據(jù)結構、關系操作集合和關系的完整性。
數(shù)據(jù)結構是指在關系模型中,無論是數(shù)據(jù)還是數(shù)據(jù)之間的聯(lián)系都是以二維表(關系)這一種簡單的結構表示的,這即符合人們使用數(shù)據(jù)的習慣,同時也便于計算機實現(xiàn)。
關系操作是指關系代數(shù)(或等價的關系演算)中并、交、差、選擇、投影、連接等。關系模型給出了關系操作的能力和特點,但不對DBMS的語言給出具體的語法要求。關系語言的特點是高度的非過程化。其操作方式的特點是集合操作,即操作的對象和結果是集合,稱為一次一集合的方式,而不是一次一個記錄的方式。
關系完整性包括實體完整性、參照完整性和用戶自己定義的完整性。實體完整性是保證數(shù)據(jù)庫中記錄的惟一性,即每個記錄的主鍵不能為空值,也不能與其他記錄的主鍵相同。參照完整性是保證表與表之間語意上的完整性,即當一個表引用在另一個表中定義的實體時,要保證這個實體的有效性。這兩種完整性是關系模型必須滿足的約束條件,應該由關系系統(tǒng)自動支持。而用戶自定義完整性反映了用戶的要求,是用戶自行定義的。
第二章 思考與練習題
一、選擇題
1. 下述關于索引的描述,正確的是( B )。
A.撤銷索引會同時撤銷數(shù)據(jù)庫中與之相關的內(nèi)容
B.建立索引后,會影響基本表的插入速度
C.基本表的記錄數(shù)量越多,越不應該建立索引
D.基本表的記錄越長,越不應該建立索引
2. 下述關于視圖的描述,正確的是( C )。
A.視圖僅由一個基本表導出
B.執(zhí)行視圖比在客戶端直接執(zhí)行SELECT語句的速度要慢
C.在SQL Server中,可以像基本表一樣對視圖進行查詢操作
D.視圖存儲在客戶端的數(shù)據(jù)庫中
3. 如果希望從學生表中查詢出所有姓“張”的同學,那么條件語句應該是( B )。
A.Where 姓名 % ‘張’
B.Where 姓名 LIKE ‘張%’
C.Where 姓名 % ‘LIKE張’
D.Where 姓名 LIKE ‘張’
4. 下列SQL語句中,能夠完成求某列最大值的是( B )。
A.SELECT AVG(Age) FROM Student
B.SELECT MAX(Age) FROM Student
C.SELECT MIN(Age) FROM Student
D.SELECT COUNT(*) FROM Student
二、填空題
1.SQL數(shù)據(jù)定義語言的主要作用是創(chuàng)建存儲數(shù)據(jù)的結構,而數(shù)據(jù)操縱語言的主要作用則是向數(shù)據(jù)庫中填寫數(shù)據(jù),具體包括 增加、刪除、修改 等操作。
2.當需要對查詢結果進行排序時,可以指定其排序方式,字段后使用 ASC 表示升序, DESC 表示降序。
三、簡答題
1、什么是SQL,請簡要說明它的組成和特點。
參考答案:
結構化查詢語言,Structured Query Language,簡稱 SQL,是關系數(shù)據(jù)庫的標準語言。SQL語言共分為四大類:數(shù)據(jù)定義語言,數(shù)據(jù)查詢語言,數(shù)據(jù)操縱語言,數(shù)據(jù)控制語言。它的特點包括:非過程化語言,統(tǒng)一的語言,是所有關系數(shù)據(jù)庫的公共語言。
2、索引的作用是什么?SQL Server有哪幾類索引,各自的特點是什么?
參考答案:
索引(Index)提供了一種快速訪問數(shù)據(jù)的途徑,索引是在基本表的列上建立的一種數(shù)據(jù)加對象,索引是為了加速查詢速度而創(chuàng)建的。
實際的索引通常是這兩大類5種方式的組合。
(1)單列索引:對基本表的某一單獨的列進行索引,是最簡單和最常用的索引類型,通常情況下,應對每個基本表的主關鍵字建立單列索引。
(2)惟一索引:一旦在一個或多個列上建立了惟一索引,則不允許在表中相應的列上插入任何相同的取值。使用惟一索引不但能提高查詢性能,還可以維護數(shù)據(jù)的完整性。
?。?)復合索引:是針對基本表中兩個或兩個以上列建立的索引。
?。?)聚集索引:會改變基本表中記錄的物理存儲順序。即表中記錄的物理排序順序不再按插入的先后排列,而是根據(jù)索引列重新排序。
?。?)非聚集索引:表中記錄的物理順序與索引順序不同,表中的記錄仍按實際插入的先后順序排列,不按索引列排序。
3、什么是基本表?什么是視圖?視圖有什么特點?在什么情況下需要創(chuàng)建視圖?
參考答案:
表是一個由行、列組成的二維結構,通常把行稱做記錄,把列稱為字段。
視圖是由查詢數(shù)據(jù)庫表產(chǎn)生的,它其實是一個虛擬的表,它限制了用戶能看到和修改的數(shù)據(jù)。
視圖的特點是在基本表或其他視圖上建立的表,它的結構和內(nèi)容都來自某個基本表,是依據(jù)基本表存在而存在的。刪除一個視圖時,不會對基本表產(chǎn)生任何影響,但當刪除一張基本表時,與之相關聯(lián)的視圖就會自動被刪除。
如果要限制用戶能夠看到的數(shù)據(jù)庫中的信息,可以使用視圖。
4、謂詞LIKE的作用是什么?
參考答案:
確定給定的字符串是否與指定的模式匹配。模式可以包含常規(guī)字符和通配符字符。模式匹配過程中,常規(guī)字符必須與字符串中指定的字符完全匹配。
5、如果創(chuàng)建一個數(shù)據(jù)庫其SQL語句是什么?
參考答案:
CREATE DATABASE 數(shù)據(jù)庫名稱
6、存儲過程的含義是什么?創(chuàng)建存儲過程的SQL語句是什么?
參考答案:
存儲過程(Stored Procedure)是一組預先編譯好的,以一種可執(zhí)行的形式永久地存儲在數(shù)據(jù)中的SQL代碼,在master數(shù)據(jù)庫中存儲了一些SQL Server事先定義好的系統(tǒng)存儲過程,通常以sp_xxxx做為存儲過程的名字。當用戶創(chuàng)建數(shù)據(jù)庫時,也會自動生成一些事先定義好的存儲過程,通常以dt_xxxx做為名字。
創(chuàng)建存儲過程的SQL語句是:
(1)語句格式:
CREATE PROC[EDURE] <存儲過程名> AS
?。?)語句功能:
創(chuàng)建一個存儲過程,多數(shù)是指利用SQL Server的Transact-SQL編寫的程序。
7、什么是事務?舉例說明事務處理的作用是什么?
參考答案:
事務(Transaction)是并發(fā)控制的基本單位,它反映了現(xiàn)實世界中需要以一個完整的單位提交的一項工作。SQL Server通過事務機制,將邏輯相關的一組操作捆綁在一起,以便服務器保持數(shù)據(jù)的完整性。它是SQL復雜程序設計必不可少的內(nèi)容。
事務需要用戶根據(jù)實際業(yè)務規(guī)則定義,有一定的難度,但其原理比較簡單。舉例說,如果我們正在使用UPDATE語句同時對學生表、成績表中的學號”20030001”改為”20040001”。這個任務需要兩條UPDATE語句組成,即:
UPDATE 學生表 SET 學號=’20040001’ WHERE 學號=’20030001’
UPDATE 成績表 SET 學號=’20040001’ WHERE 學號=’20030001’
如果在執(zhí)行完第一個語句后,計算機突然斷電,而第二條語句還沒來得急執(zhí)行,數(shù)據(jù)出現(xiàn)了不一致怎么辦?這時候就需要用到SQL的事務控制功能了。
如果使用了SQL Server的事務控制機制,以上兩個問題均可獲得很了的解決。在使用事務的情況下,SQL Server可以保證,要么所有的記錄要么全部處理,要么一行也不處理。如果修改了全部記錄的一半時服務器出錯了,SQL Server會返回到以前未執(zhí)行UPDATE操作前的位置,清除它已經(jīng)修改過的數(shù)據(jù),這就是事務處理的作用。
8、SQL Server有哪些數(shù)據(jù)類型,它們的主要用途是什么?
參考答案:
SQL Server提供了數(shù)值型、字符型、日期型、二進制型、位型、雙字節(jié)型等6大類數(shù)據(jù)類型。
數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,表示數(shù)據(jù)所表示信息的類型。任何一種計算機語言都定義了自己的數(shù)據(jù)類型。
9、假設某教學管理數(shù)據(jù)庫有以下三張表,請寫出下列問題的SQL語句:
學生(學號,姓名,年齡,性別)
課程(課程號,課程名,任課教師)
成績(學號,課程號,成績)
(1)如何在SQL Server上創(chuàng)建這三張表;
參考答案:
學生表:
create table 學生表 (
學號 char (8) primary Key,
姓名 char(8),
年齡 int,
性別 bit)
課程表:
create table 課程表 (
課程號 char (7) primary Key,
課程名 char(20),
任課教師 char (8))
成績表:
create table 成績表 (
學號 char (8),
課程號 char (7),
成績 Numeric (4,2))
?。?)查詢劉峰教師所授課程號,課程名;
參考答案:
Select課程號, 課程名 from課程表 where任課教師=’ 劉峰’
?。?)查詢年齡大于20歲的所有男同學的學號、姓名;
參考答案:
Select 學號, 姓名 from 學生表 where 性別=1 and 年齡>20
?。?)查詢至少選修了兩門課程(含兩門)的學生學號;
參考答案:
select 學號 from 成績
group by 學號
having count(學號)>=2
?。?)查詢王文芳同學選修的所有課程的課程號;
參考答案:
Select 課程號 from 成績表, 學生表
Where學生表.姓名=’ 王文芳’ and 學生表.學號=成績表.學號
?。?)查詢王文芳同學不學的課程的課程號;
參考答案:
select 課程號 from 成績表
where 課程號 not in (select 課程號 from 學生表,成績表
where 學生表.姓名=王文芳 and 學生表.學號=成績表.學號)
(7)查詢所有上劉峰老師課程的學生學號;
參考答案:
Select 學號 from 成績表,課程表,學生表
Where 課程表.任課教師=劉世峰 and 課程表.課程號=成績表.課程號 and 課程表.學號=成績表.學號
?。?)查詢所有選修“數(shù)據(jù)庫原理”的學生的學號;
參考答案:
Select 學號 from 成績表,課程表
where 課程表.課程名=數(shù)據(jù)庫技術 and 課程表.課程號=成績表.課程號
?。?)向?qū)W生表中插入一條記錄(’2003001’,’吳紅’,21,’女’);(1表示女,0表示男)
參考答案:
insert into 學生表 values (2003001,吳紅,21,1)
?。?0)刪除三張表中所有學號為20020001的學生信息;
參考答案:
Delete from學生表 where 學號=’ >20020001’
Delete from學生表 where 學號=’ 20020001’
?。?1)把學號為20030002的學生的年齡改為22歲;
參考答案:
Update 學生表 set 年齡=’22’ where學號=’20030002’
第三章 思考與練習題
一、選擇題
1.設一個關系為R,如果它的每個屬性都是不可再分的,則稱這個關系是符合( A )。
A、第一范式
B、第二范式
C、第三范式
D、BNC范式
2.在第一個關系中出現(xiàn),在第二個關系中不出現(xiàn)的記錄組成的關系稱為兩個關系的( C )。
A、交
B、并
C、差
D、笛卡兒積
二、簡答題
1.設關系模式R有N個屬性,在模式R上可能成立的函數(shù)依賴有多少個?
參考答案:
函數(shù)依賴有N(N-1)個
2.設有關系模式R(職工號,職工名,項目號,項目名,工資),假設一個職工可參加多個項目,在每個項目中各領一份工資。那么請回答以下問題:
?。?)請寫出這個關系模式的函數(shù)依賴和主關鍵字;
函數(shù)依賴包括:職工號→職工名,項目號→項目名,(職工號,項目號)→工資
主鍵為(職工號,項目號)
?。?)這個關系符合第幾范式,為什么?
這個關系符合第一范式,因為它的每個屬性都不可再分。
?。?)請舉例說明,這個關系存在哪些問題;
這個關系沒有達到第二范式,可能出現(xiàn)數(shù)據(jù)冗余和操作異常。
例如,某個職工參與了多個項目的工作,他的職工號、職工名會重復多次存儲。同樣,如果一個項目有多名職工參加,項目號和項目名也會重復我次存儲。另外,如果現(xiàn)在增加了一個新的項目,但暫時還沒有安排職工參加,那么由于主鍵是(職工號,項目號),這個項目的信息可能無法插入。
?。?)請把這個關系模式分解成3NF,并說明理由。
修改后的各個關系如下:
職工關系=(職工號,職工名)
項目關系=(項目號,項目名)
職工選擇項目關系=(職工號,項目號,工資)
?。ㄗⅲ捍颂幍墓べY是指職工參加某個項目得到的勞動報酬)
3.關系完整性的主要內(nèi)容是什么?為什么要保證關系的完整性?
參考答案:
關系完整性就是關系模型中數(shù)據(jù)的正確性、一致性和有效性。關系完整性又包括實體完整性、參照完整性和用戶定義的完整性三個方面。
只有保證了關系的完整性,才能使數(shù)據(jù)庫中的數(shù)據(jù)正確、一致和有效。
4.SQL Server中進行關系完整性的主要方法是什么,請寫出相應的SQL語句。
參考答案:
1)SQL Server通過約束機制來實現(xiàn)數(shù)據(jù)庫完整性保護。主要包括:Primary Key約束、Foreign Key約束、Default約束、Unique約束、Check約束等。
Primary Key約束:
學號 char (8) NOT NULL
PRIMARY KEY(學號)
Foreign Key約束:
學號 char (8) NOT NULL
REFERENCES 學生表(學號)
Default約束:
成績 numeric(9,2) DEFAULT 0.00
Unique約束:
學號 char (8) NOT NULL
UNIOQUE(學號)
Check約束:
年齡 int CHECK (年齡)17 and 年齡<25)
2)使用規(guī)則實施數(shù)據(jù)的完整性。
創(chuàng)建規(guī)則的語法結構如下:
CREATE RULE 規(guī)則名 AS 條件表達式
3)使用默認實施數(shù)據(jù)完整性管理。
創(chuàng)建默認的語法如下:
CREATE DEFAULT 默認名 AS 默認值
5.為什么要進行規(guī)范化?規(guī)范化的相關理論是什么?請簡要說明。
參考答案:
為確保數(shù)據(jù)庫設計的正確性,在數(shù)據(jù)庫邏輯設計階段,常使用關系規(guī)范化理論來指導關系型數(shù)據(jù)庫的設計。其基本思想是,每個關系都應滿足一定的規(guī)范,才能使關系模式設計合理,達到減少冗余,提高查詢效率的目的。
一個好的數(shù)據(jù)庫關系,應該沒有數(shù)據(jù)冗余、更新異常、插入異常、刪除異常問題的存在,這就必須進行規(guī)范化處理。
規(guī)范化使用的理論是函數(shù)依賴。
6.什么是一個“好”的關系模式,一個“不好”的關系模式有什么缺點?
參考答案:
“好”的關系模式通常是指符合第三范式要求的關系,“不好”的關系模式會存在數(shù)據(jù)冗余、更新異常、插入異常、刪除異常等問題。
7.請寫出一個符合第三范式的關系模式,并說明理由。
參考答案:
學生=(學生號,姓名,性別,專業(yè))
課程=(學生號,課程號,成績)
選課=(課程號,課程名,課程學分)
第四章思考與練習題
一、填空題
1.數(shù)據(jù)庫設計一般包括需求分析、概念設計、邏輯設計、物理設計、數(shù)據(jù)庫實施和運行維護等階段。
2.數(shù)據(jù)庫應用系統(tǒng)的建設包括結構設計和行為設計兩個方面。
3.數(shù)據(jù)庫設計的主要原則包括表設計原則、字段設計原則和其他原則。
4.E-R圖的設計關鍵在于對實體、聯(lián)系的選擇和表示。
5.物理設計的主要內(nèi)容包括存儲記錄的格式設計、存儲方法設計、訪問方法設計以及完整性和安全性考慮。
二、簡答題
1.請簡要說明數(shù)據(jù)庫應用系統(tǒng)設計的步驟。
參考答案:
數(shù)據(jù)庫應用系統(tǒng)設計的步驟包括需求分析、概念設計、邏輯設計和物理設計。
2.數(shù)據(jù)庫設計的目的是什么,請談談你的理解。
參考答案:
數(shù)據(jù)庫設計指的是設計數(shù)據(jù)庫及其應用系統(tǒng)的技術,是指對于一個給定的應用環(huán)境,包括硬件環(huán)境和操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)等軟件環(huán)境,如何使用這個環(huán)境來表達用戶的要求,構造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及圍繞數(shù)據(jù)庫展開的應用系統(tǒng),使之能夠有效地收集、存儲、操作和管理數(shù)據(jù),滿足企業(yè)組織中各類用戶的應用需求(信息需求和處理需求)。
3.基本表設計的主要原則是什么,堅持這些原則有什么好處?
參考答案:
基本表設計最主要的原則是關系規(guī)范化,盡可能達到第三范式。規(guī)范化有助于消除數(shù)據(jù)庫中的數(shù)據(jù)冗余,減少更新異常。規(guī)范化有好幾種形式,但第三范式通常被認為在性能、擴展性和數(shù)據(jù)完整性方面達到了最好平衡。簡單來說,遵守第三范式標準的數(shù)據(jù)庫的表設計原則是:“One Fact in One Place”(一個事實對應一個地方),即某個表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。表之間的關系通過外鍵相連接。
4.進行SQL Server數(shù)據(jù)庫設計時,一般有哪些命名規(guī)則?
參考答案:
首先,命名的長度應盡量充足。假設某企業(yè)現(xiàn)有職工在一千人以內(nèi),如果用數(shù)字表示職工號的話,職工號的長度為3位即可,它最大可以表示999個職工。但是,如果考慮到企業(yè)未來的發(fā)展,那么職工號最好設為4位,當企業(yè)職工數(shù)目突破千人時,根本無需重構整個數(shù)據(jù)庫。
其次,小心保留詞。要保證字段名沒有與SQL等保留詞或者常用訪問方法名發(fā)生沖突。
最后,慎用使用觸發(fā)器。觸發(fā)器在保證數(shù)據(jù)完整性方面發(fā)揮著積極作用,但它同時也會帶來效率方面的問題,因此要慎用。觸發(fā)器的功能通常可以用其他方式實現(xiàn)。
5.什么是數(shù)據(jù)流程圖,數(shù)據(jù)字典的主要作用是什么,談談你的理解。
參考答案:
數(shù)據(jù)流圖(Data Flow Diagram,簡記DFD),是在業(yè)務流程分析基礎上,描述實際數(shù)據(jù)流動和加工過程的圖形表示法,它一般有4種符號,即外部實體、數(shù)據(jù)流、加工和存儲。外部實體數(shù)據(jù)的來源和去向;數(shù)據(jù)流用帶箭頭的連線表示,反映數(shù)據(jù)的流動方向;加工用橢圓、圓或方框代表(本教材利用圓形表示加工),表示對數(shù)據(jù)的加工處理動作;存儲表示數(shù)據(jù)的存檔情況。
數(shù)據(jù)字典(Data Dictionary,簡記DD),是對數(shù)據(jù)流程圖中數(shù)據(jù)流和存儲結構的描述。在數(shù)據(jù)庫應用系統(tǒng)設計中,數(shù)據(jù)字典是表、視圖設計的主要依據(jù)。
6.什么是E-R圖,它的作用是什么?
參考答案:
E-R圖是E-R(實體-關系)方法的重要組成部分。E-R方法是描述概念模型的有力工具。E-R圖方法是一種有效的信息抽象方法。在E-R圖中,用長方形表示實體,用橢圓形表示屬性,用菱形表示聯(lián)系。在圖形內(nèi)標識它們的名字,它們之間用無向線段相連,表示聯(lián)系的線段上標明是哪種聯(lián)系。
它的作用是采用E-R圖模型將現(xiàn)實世界的信息結構統(tǒng)一用實體、屬性以及實體之間的聯(lián)系來描述。
7.簡要說明需求分析階段的主要任務和目的。
參考答案:
需求分析階段的主要目的是回答“干什么”的問題。需要從多方面對擬開發(fā)數(shù)據(jù)庫應用系統(tǒng)的企事業(yè)單位進行調(diào)查,收集和分析各項應用對信息和處理兩方面的需求。了解和掌握數(shù)據(jù)庫應用系統(tǒng)開發(fā)對象(或稱用戶)的工作業(yè)務流程和每個崗位、每個環(huán)節(jié)的職責,了解和掌握信息從開始產(chǎn)生或建立,到最后輸出、存檔或消亡所經(jīng)過的傳遞和轉(zhuǎn)換過程,了解和掌握各種人員在整個系統(tǒng)活動過程中的作用;通過同用戶充分地交流和溝通,決定那些工作應由計算機來做,哪些工作仍由手工來做,決定各種人員對信息和處理各有什么要求,對視屏操作界面和報表輸出格式各有什么要求,對數(shù)據(jù)(信息)的安全性(保密性)和完整性各有什么要求等等。需求分析階段的主要工作就是,通過調(diào)查從用戶處獲得對數(shù)據(jù)庫的下列需求。
信息需求:用戶將從數(shù)據(jù)庫中獲得的信息的內(nèi)容和性質(zhì),有信息要求導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中存儲哪些數(shù)據(jù)。
處理需求:用戶要完成什么處理功能,對某種處理的執(zhí)行頻度、用戶要求的響應時間,以及處理的方式是聯(lián)機處理還是批處理等。
安全性和完整性的約束
第五章思考與練習題
一、簡答題
1.請簡要說明數(shù)據(jù)庫安全機制?
參考答案:
一個用戶訪問SQL Server必須要經(jīng)過4個層次的安全控制,操作系統(tǒng)的安全性;服務器的安全性;數(shù)據(jù)庫的安全性;表和列的安全性。從上述流程可以看出,用戶使用SQL Server時,需要經(jīng)過兩個安全性階段:身份驗證和權限認證。
身份驗證階段系統(tǒng)只檢驗用戶是否有連接SQL Server實例的權力,如果身份驗證通過了,只表示用戶可以連接SQL Server實例,否則系統(tǒng)將拒絕用戶的連接。然后需要檢驗用戶是否有訪問服務器上數(shù)據(jù)庫的權限,為此需要授予每個數(shù)據(jù)庫中映射到用戶登錄的賬號訪問權限,權限認證就可以控制用戶在數(shù)據(jù)庫中進行的操作。
2.登錄賬號和用戶賬號的含義是什么?它們有什么區(qū)別聯(lián)系?
參考答案:
登錄賬號用于身份驗證,使得用戶到達登錄到SQL Server服務器,屬于服務器層面,相當于大門的鑰匙;用戶賬號用于權限驗證,屬于數(shù)據(jù)庫層面,相當于自己房間的鑰匙。用戶賬號在定義時便與一個登錄賬號相關聯(lián),即任何一個用戶賬號背后都有一個登錄賬號。
3.請簡要說明使用企業(yè)管理創(chuàng)建登錄賬號和用戶賬號的過程。
參考答案:
?。?)在SQL Server的企業(yè)管理器下,展開“SQL Server組”文件夾,找到需要建立登錄賬號的服務器并展開其文件夾,再展開“安全性”文件夾,在“登錄”選項上右擊鼠標,在出現(xiàn)的快捷菜單中單擊“新建登錄”菜單命令,打開“SQL Server登錄屬性->新建登錄”對話框。
?。?)SQL Server支持“Windows身份驗證”和單擊“SQL Server身份驗證”兩種認證模式。選擇“SQL Server身份驗證”單選鈕,在“名稱”文本框中輸入要創(chuàng)建的登錄賬號名稱,例如“mysa”,在“身份驗證”選項組中,并輸入密碼。
?。?)設置完畢后,單擊“確定”按鈕,即可完成登錄賬號的創(chuàng)建。
接下來,開始創(chuàng)建用戶賬號,基本方法是:
?。?)在企業(yè)管理器中,展開SQL Server組及其服務器,在“數(shù)據(jù)庫”文件夾中,展開某一數(shù)據(jù)庫,例如“進銷存”的文件夾,然后在“用戶”選項上右擊,在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫用戶”命令,打開新建用戶對話框。
?。?)單擊“登錄名”下拉列表框右端的下拉箭頭,會看到剛剛創(chuàng)建的“mysa”登錄帳號。選擇“mysa”登錄賬號,此時“用戶名”文本框中自動顯示為“mysa”??梢愿摹坝脩裘蔽谋究蛑械挠脩裘?,也可以在“數(shù)據(jù)庫角色成員”列表框中選擇新建用戶應該屬于的數(shù)據(jù)庫角色。
?。?)設置完畢后,單擊“確定”按鈕,即可在“進銷存”數(shù)據(jù)庫中創(chuàng)建一個新的用戶賬號。如果不想創(chuàng)建用戶賬號,單擊“取消”按鈕即可。
4.如何對用戶賬號進行授權管理,一般有哪些權限,請簡要說明。
參考答案:
(1)展開服務器組,然后展開服務器;展開“數(shù)據(jù)庫”項,然后找到相關的數(shù)據(jù)庫,比如“進銷存”;
?。?)展開“進銷存”數(shù)據(jù)庫,根據(jù)對象類型,單擊表、視圖、存儲過程等對象,找到需要進行授權管理的數(shù)據(jù)庫對象,比如“物資臺賬”表。
?。?)右擊授予權限所在的對象,從彈出菜單中選擇“所有任務->管理權限”選項;單擊“列出全部用戶/用戶定義的數(shù)據(jù)庫角色/public”選項,然后選擇授予每位用戶的權限。其中,選中標記表示授予權限。進一步,通過本界面可完成列級的授權管理。
另外,也可以采用GRANT(授予權限)、DENY(拒絕權限)和REVOKE(撤消權限)等SQL語句完成授權管理。
5.為什么要進行數(shù)據(jù)備份?數(shù)據(jù)庫備份包括哪些主要內(nèi)容?
參考答案:
任何系統(tǒng)都不可避免會出現(xiàn)各種形式的故障,而某些故障可能會導致數(shù)據(jù)庫災難性的損壞,所以做好數(shù)據(jù)庫的備份工作極為重要。備份可以創(chuàng)建在磁盤、磁帶等備份設備上,與備份對應的是還原。
數(shù)據(jù)庫備份就是在某種介質(zhì)上(磁帶、磁盤等)存儲數(shù)據(jù)庫(或者其中一部分)的拷貝的過程。更嚴格意義上講,備份應該是一種把數(shù)據(jù)從硬盤上復制到其他可移動介質(zhì)上的操作過程。
一個完整的備份通常要包括三部分內(nèi)容,即系統(tǒng)數(shù)據(jù)庫、用戶數(shù)據(jù)庫和事務日志。
6.什么是備份設備,請談一談SQL Server中創(chuàng)建備份設備的主要步驟和方法。
參考答案:
備份設備是用來存儲數(shù)據(jù)庫、事務日志或文件和文件組備份的存儲介質(zhì)。SQL Server支持3種備份設備,即磁盤設備、磁帶設備和命名管道設備。
在SQL Server中,可以采用兩種方法創(chuàng)建備份設備,一是利用企業(yè)管理器;二是使用系統(tǒng)存儲過程sp_addumpdevice。其步驟如下:
在企業(yè)管理器中展開服務器組,展開指定的服務器,展開“管理”文件夾,右擊“備份”,在彈出的快捷菜單中選擇“新建備份設備”選項,打開“備份設備屬性- 新設備”對話框。在“名稱”文本框中輸入邏輯設備的名稱,在下面選擇磁帶或者磁盤備份設備,并設置物理位置。當使用磁盤時,SQL Server允許將本地主機硬盤和遠程主機上的硬盤作為備份設備,備份設備在硬盤中是以文件的方式存儲的。完成后,單擊“確定”按鈕即可。缺省情況下,備份設備的全路徑為“C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\進銷存數(shù)據(jù)庫備份.BAK”,備份設備文件名為“進銷存數(shù)據(jù)庫備份.BAK”,缺省路徑為SQL Server安裝目錄的BACKUP文件夾。
7.事務日志文件有什么用途?是否也需要備份?為什么?
參考答案:
SQL Server數(shù)據(jù)庫是由兩個操作系統(tǒng)文件組成的,即數(shù)據(jù)文件和事務日志文件。事務日志文件主要用于存儲數(shù)據(jù)庫的更新情況等事務日志信息。事務日志文件非常重要,所有對數(shù)據(jù)庫的更改操作都會記錄于此,當數(shù)據(jù)庫損壞時,數(shù)據(jù)庫管理員可使用事務日志恢復數(shù)據(jù)庫。
從事務日志文件的作用上可以看出,它是非常有用和重要的,因此也需要備份。
8.請按以下操作練習一下數(shù)據(jù)庫備份操作,并體會一下數(shù)據(jù)庫備份的的效果。
?。?)創(chuàng)建一個數(shù)據(jù)庫;
?。?)使用CREATE TABLE語句在數(shù)據(jù)庫中創(chuàng)建一張表;
?。?)使用INSERT語句向表中插入若干條數(shù)據(jù);
?。?)進入企業(yè)管理器,對數(shù)據(jù)庫進行備份操作;
?。?)使用DROP TABLE語句刪除已創(chuàng)建的表;
?。?)使用企業(yè)管理器,對數(shù)據(jù)庫進行還原操作。
參考答案:
CREATE DATABASE 學生庫
學生表:
create table 學生 (
學號 char (8) primary Key,
姓名 char(8),
年齡 int,
性別 bit)
insert into 學生values (2007001,王麗,19, 1)
insert into 學生values (2007002,張華,20, 0)
insert into 學生values (2007003,李敏,19, 1)
DROP TABLE 學生
第六章思考與練習題
一、簡答題
1.什么是嵌入式SQL,它有哪些特點和用途?
參考答案:
嵌入式SQL語言是將SQL語句直接嵌入到程序的源代碼中,與其他程序設計語言語句混合。
嵌入式SQL的用途:它是數(shù)據(jù)庫應用程序的一種開發(fā)方法。是一種應用程序進行數(shù)據(jù)庫訪問時所采取的編程式數(shù)據(jù)庫語言。
嵌入式SQL的特點是,數(shù)據(jù)庫管理系統(tǒng)DBMS一般會采用預編譯的處理辦法,即由DBMS的預處理程序?qū)υ闯绦蜻M行掃描,識別出SQL語句,把它們轉(zhuǎn)換成宿主語言調(diào)用語句,以使宿主語言編譯程序能夠識別它,最后再由宿主語言的編譯程序?qū)⒄麄€源程序編譯成目標碼。嵌入SQL語句完成的功能也可以通過應用程序接口(API)實現(xiàn)。
2.請簡述C/S和B/S的主要原理,并說明它們各自的優(yōu)缺點。
參考答案:
C/S模式就是基于企業(yè)內(nèi)部網(wǎng)絡的應用系統(tǒng)。傳統(tǒng)的C/S 模式是一種兩層結構的系統(tǒng),第一層是在客戶機系統(tǒng)上結合了表示與業(yè)務邏輯;第二層是通過網(wǎng)絡結合了數(shù)據(jù)庫服務器。
優(yōu)點是:C/S模式的應用系統(tǒng)最大的好處是不依賴企業(yè)外網(wǎng)環(huán)境,即無論企業(yè)是否能夠上網(wǎng),都不影響應用。
缺點是應用程序的維護、移植和互操作變得復雜。
B/S模式,即瀏覽器/服務器模式,是一種從傳統(tǒng)的二層C/S模式發(fā)展起來的新的網(wǎng)絡結構模式,其本質(zhì)是三層結構C/S模式。B/S網(wǎng)絡結構模式是基于Intranet的需求而出現(xiàn)并發(fā)展的。在B/S模式中,客戶端運行瀏覽器軟件。
優(yōu)點是:B/S占有優(yōu)勢的是其異地瀏覽和信息采集的靈活性。任何時間、任何地點、任何系統(tǒng),只要可以使用瀏覽器上網(wǎng),就可以使用B/S系統(tǒng)的終端。
缺點是:采用B/S結構,客戶端只能完成瀏覽、查詢、數(shù)據(jù)輸入等簡單功能,絕大部分工作由服務器承擔,這使得服務器的負擔很重。
3.請簡要說明利用VB開發(fā)數(shù)據(jù)庫應用系統(tǒng)的一般步驟。
參考答案:
利用VB開發(fā)數(shù)據(jù)類應用程序的基本框架如下:
1)通常要聲明一個全局數(shù)據(jù)庫連接對象
2)一般要創(chuàng)建Main子過程,并將它設置為啟動對象。在其中順序完成以下操作:
?。?)以非模態(tài)方式顯示飛濺窗。
(2)創(chuàng)建全局數(shù)據(jù)庫連接對象,并連接SQL Server或Access等數(shù)據(jù)庫。
?。?)以模態(tài)方式顯示登錄窗,等待用戶登錄。
(4)登錄成功后,以非模態(tài)方式顯示主窗體,否則退出程序。
3)主窗體一般均提供增加、刪除、修改、查詢等對數(shù)據(jù)庫的管理功能,所有操作均使用全局數(shù)據(jù)庫連接對象作為與數(shù)據(jù)庫交互的通道,通過SQL語句對數(shù)據(jù)進行處理,其中包括增加功能、刪除功能、修改功能和查詢功能。
4)其他功能。比如數(shù)據(jù)庫備份和恢復功能、用戶權限管理功能等。
4.什么是數(shù)據(jù)庫引擎?VB數(shù)據(jù)庫應用系統(tǒng)訪問數(shù)據(jù)庫的主要機理是什么?
參考答案:
VB提供了三種數(shù)據(jù)庫訪問引擎,即Jet引擎、ODBC和OLE DB,目前主要使用OLE DB。
在VB應用程序中主要用這個對象建立與數(shù)據(jù)庫的連接,一般的方法是:
①聲明并創(chuàng)建對象
Dim ADOcn As New Connection
?、诮?shù)據(jù)庫連接
ADOcn.Open 連接字符串
如果要連接SQL Server數(shù)據(jù)庫,那么連接字符串一般應具有以下組成:
Provider=SQLOLEDB;Server=<服務器名>;User ID=<登錄賬號>;Password=<登錄口令>;Database=<數(shù)據(jù)庫名>
?、蹖?shù)據(jù)表進行更新操作
5.ADO對象模型的主要對象是什么?如果連接后臺數(shù)據(jù)庫?
參考答案:
ADO對象模型的主要對象是:Connection、Command、Recordset、Parameter、Property、Field和Error。
?、俾暶鞑?chuàng)建對象
Dim ADOcn As New Connection
?、诮?shù)據(jù)庫連接
ADOcn.Open 連接字符串
如果要連接SQL Server數(shù)據(jù)庫,那么連接字符串一般應具有以下組成:
Provider=SQLOLEDB;Server=<服務器名>;User ID=<登錄賬號>;Password=<登錄口令>;Database=<數(shù)據(jù)庫名>
6.請寫出VB中編寫增、刪、改、查功能的主要步驟和語句。
參考答案:
ADOcn.ExecuteSQL語句字符串
要增加學生成績表中學號為20070008的記錄,可以采用以下語句實現(xiàn):
ADOcn.Execute “insert into 學生成績表 (學號,課程號,成績) Value(‘20070008’,’101’,’85’)”
要刪除學生成績表中學號為001的記錄,可以采用以下語句實現(xiàn):
ADOcn.Execute “DELETE FROM 學生成績表 WHERE 學號 = ‘001’”
要修改學號為20070008學生課程號為101的成績?yōu)?9。
ADOcn.Execute “UPDATE 學生成績表 SET 成績=’89’
WHERE學號 = ‘20070008’ AND 課程號=’101’”
要查找所有的學生的成績
ADOcn.Execute “SELECT * FROM 學生成績表”
一、單項選擇題(每個題只有一個答案是正確的。)
1.如果希望從學生表中查詢出所有姓“李”的同學,那么條件語句應該是(B)。
A、Where 姓名 % ‘李’
B、Where 姓名 LIKE ‘李%’
C、Where 姓名 % ‘LIKE李’
D、Where 姓名 LIKE ‘李’
2.在一個教師關系中,能夠成為主關鍵字(或稱主碼)的屬性是(B)。
A、教師姓名
B、教師編號
C、教師年齡
D、教師性別
3.從最終用戶應用程序的視角看,數(shù)據(jù)庫系統(tǒng)的三級模式結構是(C)。
A、模式、外模式和內(nèi)模式
B、內(nèi)模式、外模式和模式
C、外模式、模式和內(nèi)模式
D、外模式、內(nèi)模式和模式
4.在一個學生關系中,能夠成為主關鍵字(或稱主碼)的屬性是(C)。
A、性別
B、年齡
C、學號
D、班級
5.有嚴格的數(shù)學基礎的數(shù)據(jù)模型是(A)。
A、關系模型
B、網(wǎng)狀模型
C、層次模型
D、面向?qū)ο竽P?
6.下列關于索引的說明不正確的是(A)。
A、索引必須創(chuàng)建在主關鍵字之上
B、索引與基本表分開存儲
C、索引是為了提高查詢速度而創(chuàng)建的
D、索引會在一定程度上影響增刪改操作的效率
7.設關系R是滿足第一范式的,若R中不存在非主屬性對主鍵的部分函數(shù)依賴,則R符合(A)。
A、第二范式
B、第三范式
C、BNC范式
D、第四范式
8.下列符合第三范式的關系是(D)。
A、學生(學號,姓名,課程號,課程名)
B、學生(學號,姓名,課程名,成績)
C、學生(學號,姓名,課程號,成績)
D、學生(學號,姓名,性別)
9.在第一個關系中出現(xiàn),而在第二個關系中不出現(xiàn)的記錄組成的新關系稱為(D)。
A、兩個關系的積
B、兩個關系的并
C、兩個關系的交
D、兩個關系的差
10.數(shù)據(jù)庫應用程序開發(fā)中,需求分析階段的主要目的是(A)。
A、回答“干什么”的問題
B、回答“怎么干”的問題
C、建立邏輯數(shù)據(jù)模型
D、建立最佳物理存儲結構
11.用戶使用SQL Server時,通常需要依次經(jīng)過兩個安全性階段(C)。
A、登錄驗證、操作驗證
B、操作驗證、登錄驗證
C、身份驗證、權限認證
D、權限認證、身份驗證
12.SQL Server數(shù)據(jù)庫中的一個完整的備份通常要包括(A)。
A、系統(tǒng)數(shù)據(jù)庫、用戶數(shù)據(jù)庫和事務日志
B、系統(tǒng)數(shù)據(jù)庫、系統(tǒng)表和數(shù)據(jù)字典
C、系統(tǒng)數(shù)據(jù)庫、用戶數(shù)據(jù)庫和數(shù)據(jù)字典
D、用戶數(shù)據(jù)庫和事務日志
13.下列哪些不屬于索引的類型(D)。
A、單列索引
B、惟一索引
C、聚集索引
D、事務日志索引
14.下列SQL語句中,能夠完成并運算的是(A)。
A、SELECT * FROM 籃球愛好者UNIONSELECT * FROM 足球愛好者
B、SELECT * FROM 籃球愛好者INTERSECTSELECT * FROM 足球愛好者
C、SELECT * FROM 籃球愛好者EXCEPTSELECT * FROM 足球愛好者
D、SELECT * FROM 籃球愛好者,足球愛好者
15.設學生表和課程表的結構分別為(學號,姓名)和(學號,課程號,成績),如果希望查詢出“成績大于90分的學生姓名”,則對應的SQL語句是(D)。
A、SELECT 姓名 FROM 學生表 WHERE 學生表.學號=課程表.學號 AND 課程表.成績>90
B、SELECT 姓名 FROM 課程表 WHERE學生表.學號=課程表.學號 AND 課程表.成績>90
C、SELECT 姓名 FROM 學生表,課程表 WHERE 學生表.學號=課程表.學號 OR 課程表.成績>90
D、SELECT 姓名 FROM 學生表,課程表 WHERE 學生表.學號=課程表.學號 AND 課程表.成績>90
二、填空題
1.數(shù)據(jù)庫系統(tǒng)的三級模式結構是指數(shù)據(jù)庫系統(tǒng)由外模式、模式和內(nèi)模式三級抽象模式構成。
2.備份是指將數(shù)據(jù)從硬盤復制到可移動媒體上的過程。
3.“實體一聯(lián)系”方法是描述數(shù)據(jù)庫概念模型的主要方法,一般稱這種方法為E-R方法(或E-R圖方法)。
4.用戶使用SQL Server數(shù)據(jù)庫時,一般需要經(jīng)過兩個安全性階段:身份驗證和權限認證。
5.E-R圖設計一般在數(shù)據(jù)庫設計的概念設計階段使用。
三、判斷題(正確的在括號內(nèi)打上“√”,錯誤的打上“╳”。)
1.能夠惟一表示數(shù)據(jù)表中的每條記錄的字段或者字段的組合稱為主碼或主鍵(√)。
2.SQL Server數(shù)據(jù)庫中的NULL值(空值)表示的是 “空格”或“0”值(╳)
3.一個不規(guī)范的關系模式通常會引發(fā)插入異常、刪除異常和更新異常,導致大量的數(shù)據(jù)冗余。(√)
4.根據(jù)索引的特點,應該對那些數(shù)據(jù)量大、查詢頻度較高、實時性要求強的基本表創(chuàng)建索引,(√)
5.數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系統(tǒng),有效存儲數(shù)據(jù),滿足用戶信息要求和處理要求。(√)
6.參照完整性規(guī)則通常是指在兩個參照和被參照關系中,參照關系中每條記錄的外鍵或者為空,或者等于被參照關系中某條記錄的主鍵。(√)
四、簡述題
1.請簡要說明視圖的概念和作用
參考答案:視圖是在基本表或其他視圖上建立的表,它的結構和內(nèi)容都來自某個基本表,是依據(jù)基本表存在而存在的。刪除一個視圖時,不會對基本表產(chǎn)生任何影響,但當刪除一張基本表時,與之相關聯(lián)的視圖就會自動被刪除。其作用主要是:(1)視圖是經(jīng)過預編譯的SELECT語句,存儲在數(shù)據(jù)庫服務器端,因此執(zhí)行視圖比從客戶端直接執(zhí)行SELECT語句速度更快、效率更高一些。(2)視圖屬于用戶模式范疇,在實際中,一般的用戶不一定具有SELECT語句方面的專門知識,從用戶友好性角度來說,視圖更便于用戶使用。(3)利用視圖可以簡化的形式表達復雜的SELECT語句組,如嵌套查詢等。
2.什么是函數(shù)依賴與函數(shù)決定,請舉例說明
參考答案:
設一個關系為R,X和Y是它的兩個屬性集。若對于X上的每個值都有Y上的一個惟一值與之對應,則稱X和Y具有函數(shù)依賴關系,并稱X函數(shù)決定Y,或稱Y函數(shù)依賴于X,稱X為決定因素。
假設一個職工關系為(職工號,姓名,性別,年齡,職務),職工號用來標識每個職工,選作該關系的主鍵。我們可以從以下兩方面理解函數(shù)依賴的概念:首先,對于該關系中每個職工的職工號,都對應著姓名屬性中的惟一值,即該職工的姓名,或者說一個職工的姓名由其職工號惟一確定,所以稱職工號函數(shù)決定姓名,或稱姓名函數(shù)依賴于職工號。其次,除職工號外,其他屬性都不能成為決定因素形成函數(shù)依賴,因為對于它們的每個屬性值,都可能對應另一屬性的多個不同的取值,比如對于性別屬性的一個取值“男”就會對應多個而不是一個職工號。
3.請簡要說明存儲過程的概念和優(yōu)點。
參考答案:
存儲過程(Stored Procedure)是一組預先編譯好的,以一種可執(zhí)行的形式永久地存儲在數(shù)據(jù)中的SQL代碼。
使用存儲過程的好處可歸納為以下幾點:(a)執(zhí)行速度快。在經(jīng)過第一次調(diào)用以后,就駐留在內(nèi)存中,不必再經(jīng)過編譯和優(yōu)化;(b)模塊化的程序設計。經(jīng)過了一次創(chuàng)建以后,可以被調(diào)用無數(shù)次;(c)減少網(wǎng)絡流量;(d)保證系統(tǒng)的安全性。
五、綜合應用題
1.設有有以下基本表:(1)供應商表(供應商編號,供應商名稱,供應商所在城市);(2)零件表(零件編號,零件名稱,零件顏色,零件重量);(3)工程項目表(工程編號,工程名稱,工程所在城市);(4)工程供貨表(工程編號,供應商編號,零件編號,零件數(shù)量)。
用SQL語言寫出下列查詢語句,
?。?)查詢所有工程的全部細節(jié):
SELECT * FROM 工程項目表
(2)查詢所在城市為上海的所有工程的全部細節(jié)
SELECT * FROM 工程項目表 WHERE 工程所在城市=’上?!?
(3)查詢重量最輕的零件代號
SELECT 零件編號FROM 零件表 WHER
鏈接地址:http://kudomayuko.com/p-8855030.html