『壹』 資料庫經典筆試題和面試題答案
如下這些有關資料庫知識考查的經典筆試題,非常全面,對計算機專業畢業生參加筆試會很有幫助,建議大家收藏。
一、選擇題
1. 下面敘述正確的是___c___。
A、演算法的執行效率與數據的存儲結構無關
B、演算法的空間復雜度是指演算法程序中指令(或語句)的條數
C、演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
D、以上三種描述都不對
2. 以下數據結構中不屬於線性數據結構的是___c___。
A、隊列B、線性表C、二叉樹D、棧
3. 在一棵二叉樹上第5層的結點數最多是__b____。2的(5-1)次方
A、8 B、16 C、32 D、15
4. 下面描述中,符合結構化程序設計風格的是___a___。
A、使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯
B、模塊只有一個入口,可以有多個出口
C、注重提高程序的執行效率 D、不使用goto語句
5. 下面概念中,不屬於面向對象方法的是___d___。
A、對象 B、繼承 C、類 D、過程調用
6. 在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是___b___。
A、可行性分析 B、需求分析 C、詳細設計 D、程序編碼
7. 在軟體開發中,下面任務不屬於設計階段的是__d____。
A、數據結構設計 B、給出系統模塊結構 C、定義模塊演算法 D、定義需求並建立系統模型
8. 資料庫系統的核心是___b___。
A、數據模型 B、資料庫管理系統 C、軟體工具 D、資料庫
9. 下列敘述中正確的是__c____。
A、資料庫是一個獨立的系統,不需要操作系統的支持
B、資料庫設計是指設計資料庫管理系統
C、資料庫技術的根本目標是要解決數據共享的問題
D、資料庫系統中,數據的物理結構必須與邏輯結構一致
10. 下列模式中,能夠給出資料庫物理存儲結構與物理存取方法的是___a___。
A、內模式 B、外模式 C、概念模式 D、邏輯模式
11. Visual FoxPro資料庫文件是___d___。
A、存放用戶數據的文件 B、管理資料庫對象的系統文件
C、存放用戶數據和系統的文件 D、前三種說法都對
12. SQL語句中修改表結構的命令是___c___。
A、MODIFY TABLE B、MODIFY STRUCTURE
C、ALTER TABLE D、ALTER STRUCTURE
13. 如果要創建一個數據組分組報表,第一個分組表達式是"部門",第二個分組表達式是"性別",第三個分組表達式是"基本工資",當前索引的索引表達式應當是__b____。
A、部門+性別+基本工資 B、部門+性別+STR(基本工資)
C、STR(基本工資)+性別+部門 D、性別+部門+STR(基本工資)
14. 把一個項目編譯成一個應用程序時,下面的敘述正確的是___a___。
A、所有的項目文件將組合為一個單一的應用程序文件
B、所有項目的包含文件將組合為一個單一的應用程序文件
C、所有項目排除的文件將組合為一個單一的應用程序文件
D、由用戶選定的項目文件將組合為一個單一的應用程序文件
15. 資料庫DB、資料庫系統DBS、資料庫管理系統DBMS三者之間的關系是_a___。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
16. 在"選項"對話框的"文件位置"選項卡中可以設置___b___。
A、表單的默認大小 B、默認目錄
C、日期和時間的顯示格式 D、程序代碼的顏色
17. 要控制兩個表中數據的完整性和一致性可以設置"參照完整性",要求這兩個表_a_。
A、是同一個資料庫中的兩個表 B、不同資料庫中的兩個表
C、兩個自由表 D、一個是資料庫表另一個是自由表
18. 定位第一條記錄上的命令是___a___。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
19. 在關系模型中,實現"關系中不允許出現相同的元組"的約束是通過__b____。
A、候選鍵 B、主鍵 C、外鍵 D、超鍵
20. 設當前資料庫有10條記錄(記錄未進行任何索引),在下列三種情況下,當前記錄號為1時;EOF()為真時;BOF()為真時,命令?RECN()的結果分別是___a___。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
21. 下列表達式中結果不是日期型的是___c___。
A、CTOD("2000/10/01") B、{^99/10/01}+365
C、VAL("2000/10/01") D、DATE()
22. 只有滿足聯接條件的記錄才包含在查詢結果中,這種聯接為___c___。
A、左聯接 B、右聯接 C、內部聯接 D、完全聯接
23. 索引欄位值不唯一,應該選擇的索引類型為___b___。
A、主索引 B、普通索引 C、候選索引 D、唯一索引
24. 執行SELECT 0選擇工作區的結果是___b___。
A、選擇了0號工作區 B、選擇了空閑的最小號工作區
C、關閉選擇的工作區 D、選擇已打開的工作區
25. 從資料庫中刪除表的命令是___a___。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
26. DELETE FROM S WHERE 年齡>60語句的功能是__b____。
A、從S表中徹底刪除年齡大於60歲的記錄
B、S表中年齡大於60歲的記錄被加上刪除標記
C、刪除S表 D、刪除S表的年齡列 1 2
『貳』 求計算機考試試題。!
2010年9月計算機四級資料庫工程師筆試試題
一、選擇題
(1)視圖是資料庫中的重要對象,下列有關視圖的說法錯誤的是
A)一般情況下,資料庫只存儲視圖的定義,其數據仍存放在相關的基本表中
B)可以將復雜的查詢語句封裝在視圖中以簡化相關查詢語句的編寫
C)通過視圖可以屏蔽不希望用戶看到的敏感數據,提高資料庫數據的安全性
D)可以在視圖的基礎上建立新的視圖,但這樣定義的視圖會導致資料庫性能下降,一般不推薦使用
(2)在概念數據模型中,聯系用於描述現實世界中事物之間的關聯關系。一阿d關於聯系的說法錯誤的是
A)聯系可用於描述一個實體集內記錄之間的關聯關系
B)聯系可用於描述兩個實體集屬性之間的關聯關系
C)ER模型通過1:1、1:n和m:n三種聯系描述現實世界中各類事物之間的關聯關系
D)最終的IDEFIX模型中只能出現I:1和1:n兩種類型的聯系
(3)在關系資料庫中,NULL是一個特殊值,在很多數據操作中都需要對NULL進行特殊處理。關於NULL,下列說法正確的是
A)判斷元組的某一列是否為NULL一般使用「=NULL」
B)NULL在資料庫中表示尚不確定的值
C)在SQL Server 2000中執行「SELECT NULL+5」將會出現異常
D)NULL只適用於字元和數值類型
(4)某教務管理系統包含選課模塊、成績錄入模塊和學籍管理模塊。選課模塊面向學校幾萬名學生,成績錄入模塊面向學校上千名任課教師,學籍管理模塊面向少量有一定許可權的管理人員。該系統是上世紀用C/S結構和相關技術開發的,為了方便用戶使用,需要對系統進行升級和改造。設有下列技術改造方案:
I.選課模塊和成績錄入模塊採用B/S結構進行改造,學籍管理模塊仍採用C/S結構
II.選課模塊採用B/S結構進行改造,成績錄入模塊和學籍管理模塊仍採用C/S結構
III.選課模塊、成績錄入模塊和學籍管理模塊均採用B/S結構進行改造
Ⅳ.成績錄入模塊採用B/S結構進行改造,選課模塊和學籍管理模塊仍採用C/S結構
上述方案中,較為合理的是
A)僅I和II
B)僅I、II和III
C)僅I和III
D)僅II、III和IV
(5)資料庫在外存中是以文件形式組織的,組織文件記錄方法的不同就形成了不同的文件結構。下列關於順序文件結構及其存取效率的說法錯誤的是
A)順序文件因其記錄按照查找碼值升序或降序排列,當按照查找碼的值順序讀取記錄時其效率很高
B)當按照一定的條件對順序文件進行查詢時,如果查詢條件定義在查找碼上,可以使用二分查找技術快速找到滿足條件的記錄
C)由於需要保持文件中記錄的順序,因此順序文件的插入和刪除操作比較復雜,耗費時間也較多
D)對順序文件進行條件查詢時,如果查詢條件沒有定義在查找碼上,其查找效率一般也會比無序文件高
(6)死鎖是資料庫系統中可能出現的一種狀態。下列有關死鎖的說法錯誤的是
A)當事務由於無法獲得對需要訪問的數據項的控制權而處於等待狀態時,稱資料庫中產生了死鎖
B)死鎖是由於系統中各事務間存在沖突操作且沖突操作的並發執行順序不當而產生的
C)死鎖預防可以使用一次加鎖和順序加鎖兩種方法,其中一次加鎖法可能會降低系統的並發程度
D)解除死鎖通常採用的方法是選擇一個或兒個造成死鎖的事務,撤銷這些事務並釋放其持有的鎖
(7)某系統中事務T1從賬戶A轉出資金到賬戶B中,在此事務執行過程中,另一事務T2要進行所有賬戶余額統計操作。在T1和T2事務成功提交後,資料庫伺服器突然掉電重啟。為了保證T2事務統計結果及重啟後A, B兩賬戶余額正確,需利用到的事務性質分別是
A)一致性和隔離性
B)隔離性和持久性
C)原子性和一致性
D)原子性和持久性
(8)設有關系模式SC(Sno, Sname, Sex, Birthday, Cno, Cname, Grade, Tno, Tname)滿足函數 依賴集:{Sno→Sname, Sno→Sex, Sno→Birthday, Cno→Cname, (Sno, Cno)→Grade, Tno→Tname}.SC的主碼和屬性集(Sno, Tno)的閉包分別是
A)(Sno,Tno)和{Cno,Cname,Grade,Tno,Tname}
B)(Sno, Cno, Tno)和{Sno, Sname, Sex, Birthday, Cno}
C)(Sno, Cno)和{Sno, Sname, Sex, Birthday, Cno, Cname, Grade}
D)(Sno, Cno, Tno)和{Sno, Sname, Sex, Birthday, Tno, Tname}
(9)資料庫應用系統是面向數據管理和數據處理的軟體系統。下列有關資料庫應用系統開發及其生命周期說法中,錯誤的是
A)資料庫應用系統安全性需求分析中,需考慮系統應達到的安全控制級別。按照可信計算機系統評測標准,安全性不高的系統其安全控制級別一般應定為C級
B)資料庫應用系統性能分析一般使用每TPS代價值來衡量系統性價比
C)在資料庫應用系統生命周期模型中,規劃與分析階段應生成項目計劃書、可行性分析報告和需求說明文檔
D)資料庫應用系統可行性分析需要從技術、經濟、操作等方面評估和判斷該項目是否可行,是否能夠達到預期目標
(10)在資料庫應用系統實施、運行和維護過程中,設有下列活動:
I.在系統運行過程中,對資料庫的空間增長情況進行監控
II.在系統運行過程中,對資料庫系統各時段CPU和內存使用情況進行監控
III.在資料庫系統實施時,運行DDL代碼建立關系表
IV.建立關系表以後編寫系統應用程序
V.定期進行數據備份
以上活動中,二般情況下屬於DBA任務的是
A)僅I、II和V
B)僅I和II
C)僅I、II和III
D)僅III, IV和V
(11)在SQL Server 2000中,Userl是銷售資料庫中的用戶,並只被授予了銷售明細表數據的刪除許可權,則Userl用戶在該資料庫中能夠執行的操作是
A)刪除銷售明細表中的全部數據
B)刪除銷售明細表中的指定數據
C)查詢銷售明細表中的全部數據
D)以上操作都可以
(12)在SQL Server 2000中,要對資料庫GoodsDB進行一次差異備份,將其備份到設備Backup 1上(該設備已建立好),並要求該次備份操作清除Backupl中己有的備份內容。下列能實現該備份要求的語句是
A)BACKUP DATABASE GoodsDB TO Backupl DIFFERENTIAL,WITH NOINIT
B)BACKUP DATABASE GoodsDB TO Backupl WITH DIFFERENTIAL,NOINIT
C)BACKUP DATABASE GoodsDB TO Backupl DIFFERENTIAL,WITHINIT
D)BACKUP DATABA息E GoodsDB TO Backupl WITH DIFFERENTIAL,INIT
(13) ADO對象模型用於簡化通過ODBC, OLE DB等介面訪問資料庫的編程工作。下列關於ADO的說法錯誤的是
A)用ADO對象訪問資料庫時,仍需依賴OLE DB, ODBC等資料庫訪問介面
B)開發者只需通過使用ADO對象模型中的幾個簡單對象的方法和屬性即可實現對資料庫的訪問,因此,使用ADO對象模型可以提高數據訪問效率
C)ADO是在OLE DB, ODBC等介面基礎上設置的高一層介面
D)ADO對象模型提供的編程介面與數據提供者無關,提高了數據訪問的透明性
(14)在SQL Server 2000中,關於dbcreator角色,下列說法正確的是
A)該角色是SQL Server系統提供的伺服器級角色
B)該角色是SQL Server系統提供的資料庫級角色
C)該角色是系統管理員定義的伺服器級角色
D)該角色是系統管理員定義的資料庫級角色
(15)在分布式資料庫中,查詢處理和優化比集中式資料庫要復雜得多,其中的查詢優化需要考慮的主要因素包括I/O代價、CPU代價和通信代價。一般而言,分布式資料庫查詢優化的首要目標是
A)使查詢執行時I/O代價最省
B)使查詢執行時CPU代價最省
C)使查詢執行時通信代價最省
D)使查詢執行時I/O代價和CPU代價之和最省
(16)在SQL Server 2000中,每個資料庫都至少包含一個數據文件和一個日誌文件,創資料庫的主要工作是定義構成資料庫的數據文件和日誌文件的屬性。給定下列屬性:
I.初始大小
II.物理文件名
III.最大大小
IV.收縮方式
V.增長方式
以上屬於資料庫文件屬性的是
A)僅I、11和III
B)僅II、N和V
C)僅I、11、III和V
D)全部都是
(17)在VB 6.0中使用Adodc數據控制項可以很方便地實現對資料庫數據的插入、刪除和修改操作。現假設用Adodc 1數據控制項刪除其結果集當前行對應的資料庫數據,下列實現方案中正確的是
A)執行Adodc 1.Delete方法
B)執行Adodc l .ReCOrdset.Delete方法
C)先執行Adodcl.Delete方法,然後再執行Adodcl.Update方法
D)先執行Adodc l .Recordset.Delete方法,然後再執行Adodc 1.Recordset.Update方法
(18)設有某轉儲策略,用該策略對資料庫中的某一數據文件f進行轉儲時,會將其跟上一次的轉儲文件採用一定機制進行比較,若發現f被修改或f為新文件時才轉儲該文件,則這種轉儲策略是
A)完全轉儲
B)增量轉儲
C)差量轉儲
D)增量加差量轉儲
(19)設某系統中有商品銷售表(商品號,商品類別,數量,單價,銷售日期,銷售時間),該表數據量大,在I作時間會被頻繁插入銷售數據。用戶需要經常查詢每天各類別商品的銷售總量。為了提高查詢效率,下列措施中最為有效且合理的是
A)在商品銷售表上針對商品類別和銷售日期屬性建立索引
B)建立商品分類別日銷售匯總表(商品類別,銷售總量,日期),每產生一條新銷售記錄時實時更新該表,用戶直接使用該表進行查詢即可
C)在商品銷售表的商品號和銷售日期屬性上建立索引
D)建立商品日銷售匯總表(商品號,商品類別,銷售總量,日期),每產生一條新銷售記錄時實時更新該表,用戶直接使用該表進行查詢即可
(20)統一建模語言(UML)是一種常用於資料庫應用系統設計和開發的可視化建模語言。關於UML,下列說法錯誤的是
A)UML中的視圖是由一個或多個圖組成的,一個圖是系統模型中的某個側面的展示
B)用例圖、順序圖和狀態圖都是UML的行為視圖,用於描述系統的功能和活動
C)類圖和對象圖都是UML的結構視圖,用於描述系統在某個時間的靜態結構
D)在用例圖中,與系統交互的人和其它實體都可以成為系統的角色
(21)在SQL Server 2000中,如果己分配給某個資料庫的空間大小遠遠大於存放該資料庫數據需要的實際大小,則應該對該資料庫進行收縮,以釋放多餘的空間。關於收縮資料庫,下列說法錯誤的是
A)收縮資料庫中的某個文件時,收縮後的文件大小可以小於定義文件時的初始大小
B)只能收縮資料庫所包含的數據文件,不能收縮其日誌文件
C)收縮某個具體文件時,只要收縮後的文件空間大於該文件存放數據所需的實際空間,收縮操作即可進行
D)按比例收縮資料庫時,收縮後的資料庫大小不能小於定義資料庫時的初始大小
(22)資料庫概念設計的任務之一是標識和定義實體集。關於如何標識和定義實體集有下列說法:
I.被標識的實體集應能被一個屬性集描述
II.只有一個同類實例的對象集一般情況下也有必要標識成一個實體集
III.實體集中的每個實例應能夠被唯一標識和區分
N.定義實體集時通常用一個有意義的名詞命名
V.實體集中的每個屬性應該用一個有意義的動詞命名
以上說法正確的是
A)僅I、III和N
B)僅II、IV和V
C)僅I、IV和V
D)僅II、III和IV
(23)有關系模式:系(系號,系名,系辦公電話),教師(教師號,教師名,職稱,聘任日期,工資,所在系號)。現要定義下列約束:
I.系號是系關系的主碼,教師號是教師關系的主碼
II.職稱列的取值只能為「教授、」副教授「、」講師「、」助教「和」其它「
III.教授的默認工資為10000元,副教授的默認五資為8000元,講師的默認工資為5000元
IV.每個教師的所在系號不能為空,且其值必須在系關系中存在
若在資料庫中實現以上約束,需要使用觸發器才能實現的是
A)僅I和II
B)僅III和N
C)僅III
D)僅I和N
(24)設某大型商場的數據倉庫需要採取一定的數據抽取策略從商場業務資料庫系統中採集數據。設數據倉庫環境中有客戶名單、商品銷售細節和商品每日銷售匯總數據,並有應用系統需要分析每周客戶增長趨勢和每日商品銷售趨勢。下列數據抽取或更新策略一般情況下最為合理的是
A)每天晚上針對業務系統中的客戶名單和商品銷售細節做一次快照,然後根據商品銷售細節計算銷售匯總數據
B)每天做一次客戶名單快照,根據客戶名單的變化修改數據倉庫中的最終客戶名單。銷售細節每天晚上採用增量方式進行抽取,然後根據新增的銷售數據更新商品每日銷售匯總數據
C)每周做一次客戶名單快照,每天做一次銷售細節快照,然後根據商品銷售細節計算銷售匯總數據
D)每周在發現客戶名單中的信息有變化時,對客戶名單做一次快照。對銷售細節數據採用增量方式,每天抽取一次新的銷售數據,然後根據新增的銷售數據更新商品每日銷售匯總數據
(25)資料庫技術為大量數據的組織和存儲,以及數據的操縱、管理與維護提供了有力的方法和工具。有下列說法:
I.與用戶自定義文件存儲數據的方式相比,資料庫不僅能存儲數據,還能方便地表達數據之間的關系
II.資料庫管理系統一般情況下只提供通用的數據處理功能,不提供面向具體應用領域的業務處理功能
III.數據頁(塊)是資料庫中存儲數據的基本單位,為了提高空間利用率,SQL Server2000等資料庫管理系統允許一行數據跨頁存儲
IV.利用資料庫技術,可以提高數據的獨立性,使數據不再與應用程序緊密地捆綁在一起,實現數據在企業、組織或更大范圍內的共享
V.數據字典是資料庫管理系統的重要組成部分,大部分資料庫管理系統的數據字典是由一組系統表和系統視圖組成的,這些對象一般由資料庫管理系統和資料庫管理員共同維護
以上說法錯誤的是
A)僅I和III
B)僅II和IV
C)僅III和V
D)僅IV和V
(26)設有關系模式Student(Sno, Sname, Sex, Birthday),Course(Cno, Cname, Credit),SC(Sno,Cno, Grade)。若在SQL Server 2000中建有與以上模式對應的關系表,並有如下操作:
I.定義Sno是Student關系表的主碼,定義Cno是Course關系表的主碼,定義Sno,Cno是SC關系表的主碼
II.定義Student關系表Sex列的取值只能為」男,或「女」,定義Course關系表Credit列的取值范圍是[1, 4]
III.在Student關系表的Sname列上建立一個非聚集索引,在Course關系表的Cname列上建立一個非聚集索引-
IV.定義SC關系表的Sno列的取值不能為空,並且其鑲一個值必須在Student關系表的Sno列的值集中
以上操作對內模式結構有影響的是
A)僅I和III
B)僅II和III
C)僅I和IV
D )僅I和II
(27)某大型超市的資料庫應用系統中,設有下列數據:
I.商品清單
II. DBMS中的數據字典
III.商品銷售細節數據
IV.資料庫結構說明文檔
V.前端應用程序報表中數據項的定義及說明文檔
VI.商品分類銷售匯總數據
以上數據中,一般屬於元數據的是
A)僅I、III和VI
B)僅II、V和VI
C)僅I、II和N
D)僅II、N和V
(28)設有某通信公句面向手機用戶的網上通信記錄查詢資料庫系統,該系統為手機用戶提供最近一年內用戶的簡訊和通話記錄查詢功能。在系統上線運行前的實施過程中,設有下列測試活動:
I.在指定時間段內,模擬生成N筆特定模式的查詢事務,測試伺服器能否在這個時間段內完成這些查詢
II.用一個手機用戶登錄,測試系統能否在該用戶5分鍾內沒有任何操作時自動斷開該用戶的連接
III.測試系統在用戶通過網頁登錄時能否生成驗證碼圖片
IV.用一個手機用戶登錄,測試在用戶成功登錄後系統能否正確地給用戶發送一條提示簡訊
V.測試單個用戶查詢不同時間跨度的數據所需的平均響應時間
以上測試活動中,可以歸為性能測試的是
A)僅I和V
B)僅I、II和IV
C)僅II、III和IV
D)僅I、II和V
(29)在SQL Server 2000中,有學生表(學號,姓名,年齡,所在系),學號是主碼。在這個表上建有視圖V1,V1視圖的定義語句為:
CREATE VIEW V1 AS
SELECT姓名,年齡,所在系FROM學生表
WHERE年齡>=(SELECT AVG(年齡)FROM學生表)
有下列操作語句:
I.UPDATE V1 SET年齡=年齡+1
II.SELECT*FROM V1 WHERE年齡>20
III.DELETE FROM V1 WHERE年齡>20
IV.INSERT INTO V1 VALUES(,張三,20,『計算機系』)
以上語句能正確執行的是
A)僅I和II
B)僅II
C)僅II和IV
D)僅I、II和III
(30)為了防止某個資料庫系統發生故障,設有下列措施:
I.配備UPS保證伺服器供電穩定
II.採用雙硬碟鏡像,以防止單個硬碟出現介質損壞而造成數據丟失
III.定期給操作系統打補丁,以免操作系統被攻擊後重啟
IV.改善密碼管理機制,提高各類密碼的安全性,以免發生數據失竊
V.加強事務流程測試和驗證,以免發生並發事務死鎖
以上措施中,用於防止資料庫系統出現系統故障(軟故障)的是
A)僅I、II和III
B)僅III、IV和V
C)僅I和III
D)僅IV和V
二、應用題(每空2分,共30分)
(1)【1】文件支持多種記錄類型的存儲,這種文件將來自多個關系表不同類型的記錄存儲在一起,可減少多表查詢時磁碟的訪問量,提高多表查詢的效率。
聚集文件
設有表T(c1,c2),c1的數據類型為char(2),要求其第I位的取值范圍為[1,9],第2位的取值范圍為[0, 9].實現此要求的約束表達式為CHECK(c1 LIKE「【2】」)。
【1~9】【0~9】
(3)設有某種文件,當向其中插入一條新記錄時,首先讀文件頭,找到最末磁碟塊的地址後將最末磁碟塊讀入內存緩沖區,在緩沖區內將新插入記錄寫入該數據塊的末尾,然
後將緩沖區中修改過的數據塊作為最末磁碟塊寫回磁碟文件。以這種方式組織的文件被稱為【3】。
堆文件
(4)在保證數據一致性的加鎖協議中,【4】級加鎖協議要求事務在讀數據項之前必須先對該數據項加共享鎖,直到事務結束才釋放該鎖。
二
(5)利用日誌技術進行資料庫恢復時,為了使恢復子系統避免對整個日誌文件進行檢查,需要在日誌文件中增加【5】記錄。
檢查點
(6)資料庫邏輯設計的目標是把概念設計階段得到的【6】模型轉換成所選定的資料庫管理系統支持的數據模型。
關系E-R
在各種數據環境中,粒度用於描述數據的綜合程度。設某系統中有商品銷售表(商品號,銷售量,單價,日期,時間)和商品周銷售表(商品號,周銷售量,周),則商品銷售表的粒度級要【7】於商品周銷售表的粒度級。若兩個表的時間跨度相同,則商品銷售表中存放的數據量要【8】於商品周銷售表的數據量。
高 高
(8)設有商品表(商品號,商品名,單價)和銷售表(商品號,銷售時間,銷售數量)。
現要查詢單價高於100元的全部商品的銷售總次數和總數量,包括沒有被賣出過的商品(沒有被賣出過的商品的銷售總次數和總數量置為0)。請補全如下語句:
SELECT商品表。商品號,銷售總次數=【9】,
銷售總數量=SUM(銷售數量)
FROM商品表【10】銷售表
0N商品表。商品號=銷售表。商品號
WHERE單價>100
GROUP BY商品表。商品號
count(*)
Right outer join
(9)在SQL Server 2000中,設u1是某資料庫中的用戶,若要使u1在該資料庫中只具有查詢全部用戶表的許可權。請補全如下語句:
EXEC sp_addrolemember「【11】」,「【12】」
U1 db_datareader
(10)SQL Server 2000內置的系統管理員賬戶是【13】
sa
(11)設在SQL Server 2000平台一民對資料庫SalesDB進行了如下圖所示的各份操作。
己知這三次備份操作均備份在設備BK上,且該設備只包含這三個備份操作的結果。在資料庫出現故障後,需要為盡可能減少數據丟失,恢復所有的備份。請補全如下用於恢復日誌備份1的SQL語句:
RESTORE LOG SalesDB FROM BK
WITH【14】file 1
【15】recovery
三、設計與應用題(共30分)
(1)已知某教務管理系統有下列關系模式(帶下劃線的屬性是主碼):
系(系號,系名)
學生(系號,姓名,性別,入學日期,正常畢業日期,所在系號)
課程(課程號,課程名,學分,開課系號,教師號)
選課(學號,課程號,成績)
教師(教師號,姓名,職稱,所在系號)
①請根據給出的關系模式畫出該系統的ER圖,圖中忽略實體集的屬性,但如果實體集之間的聯系有屬性則需要給出聯系的屬性。(6分)
②隨著教學改革的需要,該系統需要滿足下列需求:
I.需為課程增加先修課信息(一門課程可有多門先修課程);
II.一門課程可由多名教師講授,一名教師可以講授多門課程。
請根據以上需求修改關系模式,僅列出有改動的關系模式,並使每個關系模式滿足3NF。(4分)
(2)在SQLServer2000的某資料庫中有如下兩張關系表:
學生表(學號,姓名,性別,系號),學號為主碼
系表(系號,系名,系簡稱),系號為主碼
①在資料庫中執行如下T-SQL代碼:
DECLARE @DePtID varchar(10)
DECLARE @cnt int
set @cnt=O
DECLARE cursor1 cursor FOR SELEET系號FROM系表
WHERE系名LIKE'%電%'
OPEN cursorl
FETCH NEXT FROM cursor1 INTO @DePtID
WHILE @@FETCH_STATUS=O
BEGIN
DECLARE @temp_cnt int
sELECT @temp_cnt=COUNT(*)FROM學生表WHERE系號=@DeptID
set @Cnt=@cnt+@temp_cnt
FETCH NEXT FROM cursor1 INTO ODePtID
END
CLOSE cursor1
DEALLOCATE cursor1
SELECT @cnt
執行過程中發現速度比較慢,為了解決性能問題,需在功能不變的情況下,將此T-SQL代碼改為一條SQL語句,請寫出此SQL語句(語句中不能含有子查詢)並說明為什麼此種修改可以提高性能。(5分)
②設在學生表的(姓名,系號)列上建有一個復合索引,該索引是否有助於提高下列兩個語句的查詢效率?並說明原因。(5分)
SELECT*FROM學生表 WHERE系號='1';
SELEET*FRoM學生表WHERE姓名=『張三';
(3)在SQL server 2000中,設有圖書表(書號,書名,類別,單價)和圖書印刷表(書號,印刷日期,印刷數量,印次),每個書號代表一種圖書。書號、書名和類別的數據類型均為varehar(20),單價、印刷數量和印次的數據類型均為int,印刷日期的數據類型大smalldatetime.現需查詢指定類別的圖書在指定年份後(含指定年份)累計印刷總數量。請寫出實現該功能的標量函數。(10分)
參考答案
1-5 DABAD 6-10XDCA 11-15DDBAC 16-20CBBBB 21-25BACDC 26-30ADAXC (X為未知)
【01】聚集【02】[1-9][0-9]【03】堆文件【04】三【05】概念【06】檢查點【07】低【08】大【09】COUNT(銷售表.商品號)【10】left outer join 【11】db_datareader【12】u1【13】sa【14】file=2【15】norecovery
2.
(1)select count(*) from 學生表 where 系名 like 『%電%』
(2) 第一句能,第二局不能,系名的重復率太高,姓名的重復率低。
3.
Create function fun
(@class varchar(20),@orderyearChar(4)
Return int
As
Begin
Declare @tem smalldatatime
Declare @cnt int
set@tem=convert(smallaatetime,@orderyear)
select @cnt=sum(印刷數目) from 圖書表 join 圖書印刷表 on圖書表.書號=圖書印刷表.書號 where 類別=@class and 日期>@tem
return @cnt
end
『叄』 有關資料庫的筆試題
確實,這個問題得用點時間。我先給你開個頭,有空給你補上:
問題一:(需要說明下表和欄位主鍵就OK了)
需要建三個表:具體欄位可以自己再加
程序員信息表、部門表、上級部門表
**************************************
CREATE TABLE [Programmer] (
[ProgrammerCode] [int] NOT NULL ,
[ProgrammerName] [char] (10) COLLATE Japanese_CI_AS NULL ,
[ProgrammerSex] [int] NOT NULL ,
[BelongBranch] [int] NOT NULL ,
[other] [char] (10) COLLATE Japanese_CI_AS NULL ,
CONSTRAINT [PK_Programmer] PRIMARY KEY CLUSTERED
(
[ProgrammerCode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
*****************************************
CREATE TABLE [Branch] (
[BranchCode] [int] NOT NULL ,
[BranchName] [char] (10) COLLATE Japanese_CI_AS NOT NULL ,
[BelongTo] [int] NOT NULL ,
[OtherInformation] [char] (10) COLLATE Japanese_CI_AS NULL ,
CONSTRAINT [PK_Branch] PRIMARY KEY CLUSTERED
(
[BranchCode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
***************************************
CREATE TABLE [LeaderBranch] (
[LeaderBranch] [int] NOT NULL ,
[LeaderBranchName] [char] (10) COLLATE Japanese_CI_AS NOT NULL ,
[OtherInformation] [char] (10) COLLATE Japanese_CI_AS NULL ,
CONSTRAINT [PK_LeaderBranch] PRIMARY KEY CLUSTERED
(
[LeaderBranch]
) ON [PRIMARY]
) ON [PRIMARY]
GO
******************************************************
問題2:
各部門人數查詢:
SELECT BranchName,count (*) AS 程序員人數
FROM Programmers p INNER JOIN Branch b ON p.BelongBranch = b.BranchCode
GROUP BY BranchName
上級部門人數查詢:
SELECT LeaderBranchName,count (*) AS 程序員人數
FROM Programmers p INNER JOIN Branch b ON p.BelongBranch = b.BranchCode
INNER JOIN LeaderBranch l ON b.BelongTo = l.LeaderBranch
GROUP BY l.LeaderBranchName
——————————————————————————————
問題三有空再給你答,呵呵~~
『肆』 資料庫常見筆試面試題
資料庫常見筆試面試題
資料庫常見筆試面試題有哪些?資料庫常見筆試面試會考什麼?下面是資料庫常見面試題總結,為大家提供參考。
1、SQL的表連接方式有哪些?
SQL中連接按結果集分為:內連接,外連接,交叉連接
內連接:inner join on,兩表都滿足的組合。內連接分為等值連接,不等連接,自然連接。
等值連接:兩表中相同的列都會出現在結果集中。
自然連接:兩表中具體相同列表的列會合並為同一列出現在結果集中。
外連接:分為左(外)連接,右(外)連接,全連接
左(外)連接:A left (outer) join B,以A表為基礎,A表的全部數據,B表有的組合,沒有的為null。
右(外)連接:A right(outer) join B,以B表為基礎,B表的全部數據,A表有的組合,沒有的位null。
全連接:A full (outer) join 兩表相同的組合在一起,A表有,B表沒有的數據(顯示為null),同樣B表有,A表沒有的顯示為null。
交叉連接:cross join,就是笛卡爾乘積。
2、三範式
1NF:表中的欄位都是單一屬性,不再可分。
2NF:在1NF的基礎上,表中所有的非主屬性都必須完全依賴於任意一組候選鍵,不能僅依賴於候選鍵中的某個屬性。
3NF:在2NF的基礎上,表中所有的屬性都不依賴其他非主屬性。
簡單的說就是:1NF表示每個屬性不可分割,2NF表示非主屬性不存在對主鍵的部分依賴,3NF表示不存在非主屬性對主鍵的依賴傳遞。
3、表的操作
表的創建:create table 表名 (列名1 類型 約束,列2 類型 約束…)
表的刪除: 表名
表的更改(結構的更改,不是記錄的更新):alter table 表名 add|drop 列名|約束名
插入記錄: into 表名…values…
更新記錄:表名 set 列名=值 where 條件
刪除記錄: from 表名 where 條件
4、數據的完整性
數據完整性指的是存儲在資料庫中的數據的一致性和准確性。
完整性分類:
(1)實體完整性:主鍵值必須唯一且非空。(主鍵約束)
(2) 引用完整性(也叫參照完整性):外鍵要麼為空,要麼引用主表中存在的記錄。(外鍵約束)。
(3)用戶自定義完整性:針對某一具體關系資料庫中的約束條件。
5、SQL的查詢優化
(1)從表連接的角度優化:盡量使用內連接,因為內連接是兩表都滿足的行的組合,而外連接是以其中一個表的全部為基準。
(2)盡量使用存儲過程代替臨時寫SQL語句:因為存儲過程是預先編譯好的SQL語句的集合,這樣可以減少編譯時間。
(3)從索引的角度優化:對那些常用的查詢欄位簡歷索引,這樣查詢時值進行索引掃描,不讀取數據塊。
(4)還有一些常用的select優化技巧:
(5)A.只查詢那些需要訪問的欄位,來代替select*
B、將過濾記錄越多的where語句向前移:在一個SQL語句中,如果一個where條件過濾的資料庫記錄越多,定位越准確,則該where條件越應該前移。
6、索引的作用,聚集索引與非聚集索引的區別
索引是一個資料庫對象,使用索引,可以是資料庫程序無須對整個數據進行掃描,就可以在其中找到目標數據,從而提高查找效率。索引的底層採用的是B樹。
聚集索引:根據記錄的key再表中排序數據行。
非聚集索引:獨立於記錄的結構,非聚集所以包含的`key,且每個鍵值項都有指向該簡直的數據行的指針。
聚集索引與非聚集索引的區別:
(1)聚集索引的物理存儲按索引排序,非聚集所以的物理存儲不按索引排序。
(2) 聚集索引插入,更新數據的速度比非聚集索引慢,單查詢速度更快。
(3) 聚集索引的葉級結點保存的是時間的數據項,而非聚集結點的葉級結點保存的是指向數據項的指針。
(4)一個表只能有一個聚集索引(因為只有一種排序方式),但可以有多個非聚集索引。
7、存儲過程與函數的區別
(1)函數有返回值,存儲過程沒有返回值。
(2) 因為存儲過程沒有返回值,所以不能將存儲過程的執行結果賦值給變數;函數有返回值類型,調用函數時,可以將函數的執行結果賦值給變數。也就是說,函數可以在select語句中使用,而存儲過程則不能。
『伍』 關於資料庫的一道筆試題:select * from table1……
--建表
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go
--建函數
CREATE FUNCTION dbo.f_str(@id int)
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r = ''
SELECT @r = @r + ',' + value FROM tb WHERE id=@id
RETURN STUFF(@r, 1, 1, '')
END
GO
-- 調用函數
SELECt id, value = dbo.f_str(id) FROM tb GROUP BY id
drop table tb
drop function dbo.f_str