數據庫三級填空+應用題(1)

填空


35【答案】TOP?3?WITH?TIES
【解析】希望選出商品數量最多的前3類商品,并獲得相應的商品類別和數量。with?ties一般是和Top?、?order?by相結合使用,表示包括與最后一行order?by后面的參數取值并列的結果。

36在SQL?Server?2008中,每個數據頁可存儲8060字節的數據。設表T有10000行數據,每行占用4031字節,則存儲該表數據大約需要?【36】?MB存儲空間,其空間利用率大約是?【37】?%。(存儲空間和空間利用率均保留到整數,小數點后按四舍五入處理)

【答案】80??50
【解析】在SQL?Server?中,數據存儲的基本單位是頁。為數據庫中的數據文件(.mdf?或?.ndf)分配的磁盤空間可以從邏輯上劃分成頁(從?0?到?n?連續編號),磁盤?I/O?操作在頁級執行。也就是說,SQL?Server?讀取或寫入所有數據頁。在?SQL?Server?中,頁的大小為?8?KB,這意味著?SQL?Server?數據庫中每?MB?有?128?頁,每頁的開頭是?96?字節的標頭,用于存儲有關頁的系統信息,此信息包括頁碼、頁類型、頁的可用空間以及擁有該頁的對象的分配單元?ID。行不能跨頁,但是行的部分可以移出行所在的頁,因此行實際可能非常大。頁的單個行中的最大數據量和開銷是?8,060?字節,由于題目中2行數據加起來的存儲空間大于數據頁,所以每頁只能存儲一行,因為1M有128頁,也就可以存儲128行,10000/128得80MB空間。至于空間利用率(實際存儲數據量/所占的存儲空間),考慮到每行4031字節為8060的一半,所以近似得到50%。

39數據庫管理系統一般通過周期性檢查?【40】?圖來實現死鎖檢測。

【答案】事務等待
【解析】事務等待圖是一個有向圖G=(T,?U),T為結點的集合,每個結點表示正在運行的事務;U為邊的集合,每條邊表示事務等待的情況。若事務T1等待事務T2,則T1、T2之間有一條有向邊,從?T1?指向?T2。如果發現圖中存在回路,則表示系統中出現了死鎖。

42【答案】REDO
【解析】系統故障造成數據庫不一致狀態的原因有兩個,一是未完成的事務對數據庫的更新可能已寫入數據庫,二是已提交事務對數據庫的更新可能還留在緩沖區沒來得及寫入數據庫。對于故障發生前已提交的事務(既有BEGIN?Transaction,又有commit)做redo操作,對于故障發生時尚未完成的事務(只有BEGIN?Transaction,而沒有commit或rollback)做undo操作。

31.數據字典是對系統中各類數據描述的集合,是進行詳細的數據收集和數據分析所獲得的主要成果。數據字典在數據庫設計中占有很重要的地位,通常包括數據項、數據結構、數據流、數據存儲和處理過程5個部分

32.【答案】完整性約束
【解析】數據模型通常由數據結構、數據操作和完整性約束三部分構成。數據的完整性約束是一組完整性規則,它是給定的數據模型中數據及其聯系所有的制約和依存的規則,用以限定符合數據模型的數據庫狀態及狀態的變化,以保證數據的正確、有效、相容。實體的完整性規定,主碼的任何屬性都不能為空,因為概念模型中實體和聯系都是可區分的,而且它們以碼為唯一性標識。如果主碼的屬性值可以為空,則意味著在概念模型中存在著不以碼為唯一性標識的實體。顯然前后矛盾。

33【解析】順序圖主要用于描述系統內對象之間的消息發送和接收序列。它有兩個坐標軸:縱向表示時間的持續過程,橫向表示對象,每一個對象用矩形框表示,縱向的虛線表示對象在序列中的執行情況。順序圖的第一個消息一般在左邊第一個對象的生命線頂端,其他消息按時間順序相繼插入順序圖中,后面發生的消息的線應比前面發生的消息的線畫得低一些,以表示它們之間的時間關系。

34兩個關系R與S在做自然連接時,選擇兩個關系在公共屬性上值相等的元組構成新的關系。關系R中某些元組有可能在S中不存在公共屬性上值相等的元組,從而造成R中這些元組在操作時被舍棄,同樣,S中某些元組也可能被舍棄。如果把舍棄的元組也保存在結果關系中,而在其它屬性上填空值(Null),那么這種連接就叫外連接。題中兩個表做外連接,那些沒有對應教師的系也會被留下來,方便查看。

41【答案】隔離
【解析】當多個用戶并發地存取數據時就會產生多個事務同時存取一個數據的情況,若對并發操作不加控制就可能會存取不正確的數據,破壞事務的一致性和數據庫的一致性。并發操作帶來的數據不一致性主要包括丟失修改、不可重復讀和讀"臟"數據,產生上述三類數據的不一致性主要原因就是并發操作破壞了事務的隔離性,所以數據庫管理系統必須提供并發控制機制。

43【答案】主題
【解析】數據倉庫是為了構建新的分析處理環境而出現的一種數據存儲和組織技術,基本特征包括:數據是面向主題的、集成的、非易失的、隨時間不斷變化的。主題是一個在較高層次上對數據的抽象,這使得面向主題的數據組織可以獨立于數據的處理邏輯,因而可以在這種數據環境上方便地開發新的分析型應用。

應用

46

設某教學管理系統,其查詢模塊需要提供如下功能:
Ⅰ.查詢系信息,列出各系編號、系名和系辦公電話;
Ⅱ.查詢某系教師的信息,列出教師號、教師名、工資和聘用日期;
Ⅲ.查詢某教師講授的課程信息,列出課程號、課程名和學分;
Ⅳ.查詢講授某門課程的教師信息,列出教師名和職稱;
Ⅴ.查詢某門課程的先修課程信息,列出先修課程號和先修課程名。
系統有如下業務規則:
Ⅰ.一個系可聘用多名教師,一名教師只能受聘于一個系;
Ⅱ.一名教師可講授多門課程,一門課程可由多名教師講授;
Ⅲ.一門課程可以有多門先修課程,也可以沒有先修課程。
(1)請根據以上查詢功能與業務規則,用ER圖描述該系統的概念模型。(5分)
(2)將ER圖轉換為滿足3NF的關系模式,并說明每個關系模式的主碼和外碼。(5分)

【解題思路】
E-R圖也稱實體-聯系圖,提供了表示實體類型、屬性和聯系的方法,用來描述現實世界的概念模型。為了簡化E-R圖的處置,現實世界的事物能作為屬性對待的則盡量作為屬性對待。實體與屬性的劃分給出如下兩條規則:①作為"屬性",不能再具有需要描述的性質,"屬性"必須是不可分的數據項,不能包含其它屬性。②"屬性"不能與其它實體有聯系,即E-R圖中所表示的聯系是實體之間的聯系。本題中一個系可以聘用多名教師,一名教師只能受聘于一個系,所以系實體與教師實體有聯系;一名教師可以講授多門課程,一門課程可由多名教師講授,所以教師實體與課程實體有聯系,一門課程可以有多門先修課程,所以課程間也有聯系。
(2)【參考答案】
由于題目要求滿足3NF范式,ER圖向關系模式轉換采用方法一,關系名采用實體名或聯系名。本題中有兩個一對多、一個多對多聯系,因此在轉換時一對多聯系轉換為獨立的關系模式;模式的屬性由聯系本身的屬性及兩個實體的鍵構成;主鍵由多端實體的鍵組成。m:n(多對多)聯系轉換成新的獨立的模式,模式的屬性由聯系本身的屬性及兩個實體的鍵構成,主鍵由兩端實體的鍵組合而成。
系(系編號,系名,系辦公室電話),無外碼
教師(教師號,教師名,職稱,工資,聘用日期,系編號),外碼:系編號
先修課程(先修課程號,先修課程名)
課程(課程號,課程名,學分,先修課程號),外碼:先修課程號
講授(教師號,課程號)
因為轉換過來的關系模式中,不存在屬性依賴于其他非主屬性,因此對轉換的結果不需要優化。
【解題思路】
在將ER圖向關系模式轉換時規則如下:
①1:1(一對一)聯系。
方法一:聯系轉換為獨立的關系模式;模式的屬性由聯系本身的屬性及兩個實體的鍵構成;主鍵由兩個實體中的任意一個鍵構成。
方法二:聯系與一端的實體的關系模式合并,即將聯系的屬性加入到實體的關系模式內,主鍵不變。
②1:m(一對多)聯系。
方法一:聯系轉換為獨立的關系模式;模式的屬性由聯系本身的屬性及兩個實體的鍵構成;主鍵由m端實體的鍵組成。
方法二:與m端的實體的關系模式合并,即將聯系的屬性加入到實體的關系模式內,主鍵不變。
③m:n(多對多)聯系轉換成新的獨立的模式,模式的屬性由聯系本身的屬性及兩個實體的鍵構成,主鍵由兩端實體的鍵組合而成。
關系模式滿足3NF,則必須滿足關系模式中每一個非主屬性既不部分依賴于碼也不傳遞依賴于碼,簡而言之,第三范式就是屬性不依賴于其他非主屬性。

47

設有商品表(商品號,商品名,單價)和銷售表(銷售單據號,商品號,銷售時間,銷售數量,銷售單價)。其中,商品號代表一類商品,商品號、單價、銷售數量和銷售單價均為整型。
請編寫查詢某年某商品的銷售總毛利的存儲過程,毛利=銷售數量×(銷售單價-單價)。要求商品號和年份為輸入參數,總毛利用輸出參數返回。

【參考答案】
CREATE?PROCEDURE?PRODUCT?@商品號?int,@年份?int,@毛利?int?output
AS?
DECLARE
@某商品銷售量?int,@某商品進價?int,@某商品銷售單價?int???/*中間變量定義*/
BEGIN
Select?@某商品進價=單價?from?商品表?where?@商品號=商品號
Select?@某商品銷售單價=銷售單價,@某商品銷售量=count(*)?from?銷售表?where?
@商品號=商品號?and?銷售時間=@年份?
IF?@某商品進價?is?NULL?THEN??????/*判斷該商品是否存在*/
??ROLLBACK;
??RETURN;
END?IF
IF?@某商品銷售單價?is?NULL?THEN???/*判斷該商品是否可賣*/
ROLLBACK;
??RETURN;
END?IF
SET?@毛利=(@某商品銷售單價-@某商品進價)*@某商品銷售量
GO
【解題思路】
存儲過程是由PL/SQL語句書寫的過程,這個過程經編譯和優化后存儲在數據庫服務器中,使用時只要調用即可。使用存儲過程具有以下優點:其已經編譯和優化過了,所以運行效率高,提供了在服務器端快速執行SQL語句的有效途徑;存儲過程降低了客戶端和服務器之間的通信量;方便實施企業規則,當企業規則發生變化時只要修改存儲過程,而無需修改其他應用程序。
創建存儲過程:

create?procedure?過程名
@[參數名]?[類型],@[參數名]?[類型]?/*過程首部*/
As
Declare/*as下面對應的<PL/SQL>塊為過程體*/
………
begin
………
end

如上所示,存儲過程包括過程首部和過程體。過程名是數據庫服務器合法的對象標識;參數列表:用名字來標識調用時給出的參數值,必須指定值的數據類型。參數可以是輸入參數或輸出參數,默認為輸入參數。

48

設某全國性的運輸企業建立了大型OLTP系統,并在該系統之上建立了數據倉庫。OLTP系統和數據倉庫中有如下數據表:
運輸明細表(運輸單ID,發送站ID,終到站ID,貨物ID,貨物重量,運輸價格,發貨日期)
匯總表1(發送站ID,終到站ID,貨物ID,發貨日期,總重,總運價)
匯總表2(發送站ID,終到地區ID,貨物ID,發貨日期,總重,總運價)
匯總表3(發送站ID,終到站ID,貨物ID,發貨月份,總重,總運價)
匯總表4(發送地區ID,終到地區ID,貨物類別ID,發貨日期,總重,總運價)
該企業管理的貨運站約有100個,貨物約有500種共10類,各匯總表都建有主碼,且各表有合理的維護策略,在每次維護后數據能保持一致。設有視圖V,該視圖的訪問頻率很高,其查詢結果模式為(發送地區ID,終到站ID,發貨月份,總重,總運價),該視圖現以匯總表1為計算數據源。經監控發現,匯總表1的被訪問頻率過高,導致系統整體性能下降,而其它匯總表被訪問頻率較低。在不增加匯總表和索引的情況下,請給出一個改善系統服務性能的優化方案,并簡要說明理由。

【參考答案】
由于匯總表1和視圖的模式訪問頻率都很高,而且視圖的數據源來自匯總表1,又因為其他匯總表的訪問率較低,所以只需要將視圖的數據源綁定為匯總表3,因為匯總表3也可以滿足視圖的輸出模式。這樣不僅提升了匯總表3的數據訪問率,而且降低了匯總表1的數據訪問率,系統性能和服務性能得到了很大的優化。又因為貨物約有500種,共10類,可以再建立一個視圖綁定數據源為匯總表4,這樣就可以充分利用匯總表4的數據信息,從而可以進一步完善系統性能的優化。
【解題思路】
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,并且在引用視圖時動態生成。對其中所引用的基礎表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其他數據庫的一個或多個表,或者其他視圖。分布式查詢也可用于定義使用多個異類源數據的視圖。
從用戶角度來看,一個視圖是從一個特定的角度來查看數據庫中的數據。從數據庫系統內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。從數據庫系統內部來看,視圖是由一張或多張表中的數據組成的,從數據庫系統外部來看,視圖就如同一張表一樣,對表能夠進行的一般操作都可以應用于視圖,如查詢,插入,修改,刪除操作等。
視圖一經定義便存儲在數據庫中,與其相對應的數據并沒有像表那樣又在數據庫中再存儲一份,通過視圖看到的數據只是存放在基本表中的數據。對視圖的操作與對表的操作一樣,可以對其進行查詢、修改(有一定的限制)、刪除。
當對通過視圖看到的數據進行修改時,相應的基本表的數據也要發生變化,同時,若基本表的數據發生變化,則這種變化也可以自動地反映到視圖中

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74369.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端(vue)學習筆記(CLASS 5):自定義指令插槽路由

1、自定義指令 內置指令&#xff1a;內部提供的&#xff0c;每個指令都有自己各自獨立的功能 自定義指令&#xff1a;自己定義的指令&#xff0c;可以封裝一些dom操作&#xff0c;擴展額外功能 全局注冊-語法 例如&#xff0c;當頁面加載時&#xff0c;讓元素獲得焦點 Vue.…

【redis】事務詳解,相關命令multi、exec、discard 與 watch 的原理

文章目錄 什么是事務原子性一致性持久性隔離性 優勢與 MySQL 對比用處 事務相關命令開啟事務——MULTI執行事務——EXEC放棄當前事務——DISCARD監控某個 key——WATCH作用場景使用方法實現原理 事務總結 什么是事務 MySQL 事務&#xff1a; 原子性&#xff1a;把多個操作&am…

【Java SE】單例設計模式

參考筆記&#xff1a;深入理解Java設計模式&#xff1a;單例模式及其餓漢式與懶漢式的對比,-CSDN博客 目錄 1.什么是設計模式 2.經典設計模式 3.單例設計模式&#xff08;static屬性/方法經典使用場景 &#xff09; 3.1 餓漢式單例模式 3.2 懶漢式單例模式 4.補充 1.什么…

【day2】數據結構刷題 棧

一 有效的括號 給定一個只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&#xff1a; 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右括號都有一個對應的…

藍橋杯 勁舞團

問題描述 小藍最近迷上了一款名為 “勁舞團” 的游戲。 在游戲中&#xff0c;只要按照給出的鍵位提示依次按出對應的鍵位&#xff0c;游戲人物便可以跟隨節奏跳舞。 對于連續的 K 次正確敲擊&#xff0c;如果任意連續兩次敲擊之間的時間間隔都小于等于 1 秒&#xff08;即 1…

數據庫數值函數詳解

各類資料學習下載合集 ??https://pan.quark.cn/s/8c91ccb5a474?? 數值函數是數據庫中用于處理數值數據的函數,可以用于執行各種數學運算、統計計算等。數值函數在數據分析及處理時非常重要,能夠幫助我們進行數據的聚合、計算和轉換。在本篇博客中,我們將詳細介紹常用的…

關于金融開發領域的一些專業知識總結

目錄 1. 交易生命周期 1.1 證券交易所 1.1.1 交易前 1) 訂單生成&#xff08;Order Generation&#xff09; 2) 訂單管理&#xff08;Order Management&#xff09; 1.1.2 交易執行 3) 交易匹配&#xff08;Trade Matching&#xff09; 1.1.3 交易后 4) 交易確認&…

Leetcode 3495. Minimum Operations to Make Array Elements Zero

Leetcode 3495. Minimum Operations to Make Array Elements Zero 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3495. Minimum Operations to Make Array Elements Zero 1. 解題思路 這一題的話核心就是統計對任意自然數 n n n&#xff0c;從 1 1 1到 n n n當中所有的數字對…

Vue 3 + TypeScript 實現視頻播放與字幕功能:集成西瓜播放器 XGPlayer

文章目錄 1. 前言&#xff1a;視頻播放器的重要性2. 準備工作2.1 安裝 Vue 3 項目2.2 安裝 XGPlayer 和相關依賴 3. 實現視頻播放3.1 初始化 XGPlayer 4. 添加字幕功能4.1 配置字幕 4.2 字幕文件格式5. 增加交互性完整的代碼&#xff0c;僅供參考6. 總結 在現代 Web 開發中&…

MacOS安裝 nextcloud 的 Virtual File System

需求 在Mac上安裝next cloud實現類似 OneDrive 那樣&#xff0c;文件直接保存在服務器&#xff0c;需要再下載到本地。 方法 在 官網下載Download for desktop&#xff0c;注意要下對版本&#xff0c;千萬別下 Mac OS默認的那個。 安裝了登錄在配置過程中千萬不要設置任何同…

.NET 9 徹底改變了 API 文檔:從 Swashbuckle(Swagger) 到 Scalar

示例代碼下載&#xff1a;https://download.csdn.net/download/hefeng_aspnet/90404652 摘要 API 文檔是現代軟件開發的支柱。隨著 .NET 9 從 Swashbuckle 轉向 Microsoft.AspNetCore.OpenApi&#xff0c;開發人員需要新的策略來保持高效。本文探討了這些變化&#xff0c;并介…

深入剖析Java虛擬機(JVM):從零開始掌握Java核心引擎

&#x1f4cc; 引言&#xff1a;為什么每個Java開發者都要懂JVM&#xff1f; 想象你是一名賽車手&#xff0c;Java是你的賽車&#xff0c;而JVM就是賽車的引擎。 雖然你可以不關心引擎內部構造就能開車&#xff0c;但要想在比賽中獲勝&#xff0c;必須了解引擎如何工作&#…

怎么連接linux服務器的桌面

一、使用 VNC&#xff08;Virtual Network Computing&#xff09; 1. 服務器端配置&#xff08;Ubuntu 22.04 示例&#xff09; # 安裝 VNC 服務器&#xff08;以 TigerVNC 為例&#xff09; sudo apt update sudo apt install tigervnc-standalone-server tigervnc-xorg-ext…

elasticsearch 通用筆記

文章目錄 一、前言二、內容說明1、目錄簡介2、本文例子前提內容 三、操作內容1、設置ES為服務2、查看健康度參數解析 3、索引相關查詢3.1、查詢指定索引內容3.1.1、匹配查詢3.1.2、精確匹配&#xff08;不嘗試分詞&#xff09;3.1.3、范圍查詢3.1.4、id查詢3.1.5、通配符及前綴…

windows安裝配置FFmpeg教程

1.先訪問官網&#xff1a;https://www.gyan.dev/ffmpeg/builds/ 2.選擇安裝包Windows builds from gyan.dev 3. 下滑找到release bulids部分&#xff0c;選擇ffmpeg-7.0.2-essentials_build.zip 4. 然后解壓將bin目錄添加path系統變量&#xff1a;\ffmpeg-7.0.2-essentials_bui…

強大的AI網站推薦(第二集)—— V0.dev

網站&#xff1a;V0.dev 號稱&#xff1a;前端開發神器&#xff0c;專為開發人員和設計師設計&#xff0c;能夠使用 AI 生成 React 代碼 博主評價&#xff1a;生成的UI效果太強大了&#xff0c;適合需要快速創建UI原型的設計師和開發者 推薦指數&#xff1a;&#x1f31f;&…

c#知識點補充4

1.發布者訂閱模式 發布者 訂閱者 倆者直接的關聯使用

01、聊天與語言模型

一、簡單說明模型 LLM目前有兩種API提供 LanguageModel&#xff1a;接收一個a作為輸入并返回一個b作為輸出&#xff0c;這種是已經過時的ChatLanguageModel&#xff1a;接收多個輸入&#xff0c;然后返回相應的輸出 ChatLanguaggeModel是LangChain4j中LLM交互低級API&#x…

SQL的DCL,DDL,DML和DQL分別是什么

SQL&#xff08;Structured Query Language&#xff09;包括以下四種主要語言類別&#xff0c;分別用于不同的數據庫操作&#xff1a; 1. DCL&#xff08;Data Control Language&#xff0c;數據控制語言&#xff09; 用于控制數據庫訪問權限和安全。 常見命令&#xff1a; …

spring boot maven一欄引入本地包

1、在項目跟目錄下建立文件夾&#xff0c;比如libs 2、maven依賴 <dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.10</version><scope>system</scope>&l…