2013年軟考數(shù)據(jù)庫系統(tǒng)工程師下午試題與答案_第1頁
2013年軟考數(shù)據(jù)庫系統(tǒng)工程師下午試題與答案_第2頁
2013年軟考數(shù)據(jù)庫系統(tǒng)工程師下午試題與答案_第3頁
2013年軟考數(shù)據(jù)庫系統(tǒng)工程師下午試題與答案_第4頁
2013年軟考數(shù)據(jù)庫系統(tǒng)工程師下午試題與答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

..試題一閱讀以下說明和圖,根據(jù)要求回答下列問題。[說明]某慈善機(jī)構(gòu)欲開發(fā)一個(gè)募捐系統(tǒng),以跟蹤記錄為事業(yè)或項(xiàng)目向目標(biāo)群體進(jìn)行募捐而組織的集體性活動。該系統(tǒng)的主要功能如下所示。1管理志愿者。根據(jù)募捐任務(wù)給志愿者發(fā)送加入邀請、邀請跟進(jìn)、工作任務(wù);管理志愿者提供的邀請響應(yīng)、志愿者信息、工作時(shí)長、工作結(jié)果等。2確定募捐需求和收集所募捐贈<資金及物品>。根據(jù)需求提出募捐任務(wù)、活動請求和捐贈請求,獲取所募集的資金和物品。3組織募捐活動。根據(jù)活動請求,確定活動時(shí)間范圍。根據(jù)活動時(shí)間,搜索場館,即:向場館發(fā)送場館可用性請求,獲得場館可用性。然后根據(jù)活動時(shí)間和地點(diǎn)推廣募捐活動,根據(jù)相應(yīng)的活動信息舉辦活動,從募捐機(jī)構(gòu)獲取資金并向其發(fā)放贈品。獲取和處理捐贈,根據(jù)捐贈請求,提供所募集的捐贈;處理與捐贈人之間的交互,即:錄入捐贈人信息,處理后存入捐贈人信息表;從捐贈人信息表中查詢捐贈人信息,向捐贈人發(fā)送募捐請求,并將已聯(lián)系的捐贈人存入已聯(lián)系的捐贈人表。根據(jù)捐贈請求進(jìn)行募集,募得捐贈后,將捐贈記錄存入捐贈表;對捐贈記錄進(jìn)行處理后,存入已處理捐贈表,向捐贈人發(fā)送致謝函。根據(jù)已聯(lián)系的捐贈人和捐贈記錄進(jìn)行跟進(jìn),將捐贈跟進(jìn)情況發(fā)送給捐贈人?,F(xiàn)采用結(jié)構(gòu)化方法對募捐系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖所示的分層數(shù)據(jù)流圖。1、使用說明中的詞語,給出圖1中的實(shí)體E1~E4的名稱。2、在建模DFD時(shí),需要對有些復(fù)雜加工<處理>進(jìn)行進(jìn)一步精化,圖2為圖1中處理3的進(jìn)一步細(xì)化的1層數(shù)據(jù)流圖,圖3為圖2中3.1進(jìn)一步細(xì)化的2層數(shù)據(jù)流圖。補(bǔ)全圖2中加工P1、P2和P3的名稱和圖2與圖3中缺少的數(shù)據(jù)流。3、使用說明中的詞語,給出圖3中的數(shù)據(jù)存儲D1~D4的名稱。試題一1、E1:志愿者E2:捐贈人E3:募捐機(jī)構(gòu)E4:場館由題干中的關(guān)鍵信息"根據(jù)募捐任務(wù)給志愿者發(fā)送加入邀請、邀請跟進(jìn)、工作任務(wù);管理志愿者提供的邀請響應(yīng)、志愿者信息、工作時(shí)長、工作結(jié)果等",結(jié)合如圖1所示的0層數(shù)據(jù)流圖中與實(shí)體E1相關(guān)的"加入邀請/邀請跟進(jìn)/工作任務(wù)"這一條輸入數(shù)據(jù)流,以及"志愿者信息/工作時(shí)長/邀請響應(yīng)/工作結(jié)果"這一條輸出數(shù)據(jù)流可知,實(shí)體E1的名稱是"志愿者"。根據(jù)題干中給出的"根據(jù)活動時(shí)間,搜索場館,即:向場館發(fā)送場館可用性請求,獲得場館可用性"等關(guān)鍵信息,結(jié)合圖1中輸入至實(shí)體E4的數(shù)據(jù)流"場館可用性請求",以及輸出數(shù)據(jù)流"場館可用性"等可知,實(shí)體E4的名稱是"場館"?;陬}干中給出的"根據(jù)相應(yīng)的活動信息舉辦活動,從募捐機(jī)構(gòu)獲取資金并向其發(fā)放贈品"等關(guān)鍵信息,結(jié)合圖1中輸入至實(shí)體E3的數(shù)據(jù)流"贈品",以及輸出數(shù)據(jù)流"資金"等可知,實(shí)體E3的名稱是"募捐機(jī)構(gòu)"。依據(jù)題干中給出的"從捐贈人信息表中查詢捐贈人信息,向捐贈人發(fā)送募捐請求"等關(guān)鍵信息,結(jié)合圖1中輸入至實(shí)體E2的數(shù)據(jù)流"募捐請求",以及輸出數(shù)據(jù)流"捐贈人信息"等可知,實(shí)體E2的名稱是"捐贈人"。2、P1:確定活動時(shí)間范圍P2:搜索場館P3:推廣募捐活動數(shù)據(jù)流名稱起點(diǎn)終點(diǎn)所募集資金3.5或舉辦活動并募集資金2活動請求23.2或確定活動時(shí)間范圍捐贈請求2<可不填>所募集捐贈<或所募集資金或所募集物品或募集2<可不填>或募集2<可不填>或募集2<可不填>注:數(shù)據(jù)流沒有次序要求;其中"2"處可以為"確定募捐需求收集所募捐贈"基于問題1的解析結(jié)果,結(jié)合如圖2所示的1層數(shù)據(jù)流圖中與加工P1相關(guān)的"活動時(shí)間"這一條輸出數(shù)據(jù)流,查找到題干中與之相關(guān)的關(guān)鍵信息"<3>組織募捐活動。根據(jù)活動請求,確定活動時(shí)間范圍。根據(jù)活動時(shí)間……"可知,P1的名稱是"確定活動時(shí)間范圍"。根據(jù)題干中給出的"根據(jù)活動時(shí)間,搜索場館,即:向場館發(fā)送場館可用性請求,獲得場館可用性"等關(guān)鍵信息,結(jié)合圖2中加工P2的輸入數(shù)據(jù)流"活動時(shí)間"和"場館可用性",以及輸出數(shù)據(jù)流"場館可用性請求"等可知,P2的名稱是"搜索場館"。由題干中給出的關(guān)鍵信息"然后根據(jù)活動時(shí)間和地點(diǎn)推廣募捐活動,根據(jù)相應(yīng)的活動信息舉辦活動……"等,結(jié)合圖2中加工P3的輸入數(shù)據(jù)流"活動時(shí)間和地點(diǎn)",以及輸出數(shù)據(jù)流"活動信息"等可知,P3的名稱是"推廣募捐活動"。結(jié)合題干中給出的關(guān)鍵信息"<3>組織募捐活動。根據(jù)活動請求,確定活動時(shí)間范圍",以及圖1中處理2至處理3的數(shù)據(jù)流"活動請求"可知,圖2中缺少了一條從處理2至處理3.2的數(shù)據(jù)流"活動請求"。依據(jù)題干中給出的"<2>確定募捐需求和收集所募捐贈<資金及物品>……獲取所募集的資金和物品"、"<3>組織募捐活動……獲取和處理捐贈,根據(jù)捐贈請求,提供所募集的捐贈"等關(guān)鍵信息可知,圖2中缺少了一條從處理3.5至處理2的數(shù)據(jù)流"所募集資金"?;陬}干中給出的關(guān)鍵信息"<3>組織募捐活動……根據(jù)捐贈請求進(jìn)行募集",以及圖2中處理2至處理3.1的數(shù)據(jù)流"捐贈請求"可知,圖3中缺少了一條從處理2至處理的數(shù)據(jù)流"捐贈請求"。根據(jù)圖2中處理3.1至處理2的數(shù)據(jù)流"所募集物品"、"所募集資金",以及"<2>確定募捐需求和收集所募捐贈<資金及物品>……獲取所募集的資金和物品"可知,圖3中缺少了一條從處理至處理2的數(shù)據(jù)流"所募集捐贈"。3、D1:捐贈人信息表D2:已聯(lián)系的捐贈人表D3:捐贈表D4:已處理捐贈表結(jié)合題干中給出的關(guān)鍵信息"錄入捐贈人信息,處理后存入捐贈人信息表",以及圖3中處理的名稱"錄入捐贈人信息"可知,圖3中數(shù)據(jù)存儲D1的名稱是"捐贈人信息表"。同理,根據(jù)題干中給出的關(guān)鍵信息"……向捐贈人發(fā)送募捐請求,并將已聯(lián)系的捐贈人存入已聯(lián)系的捐贈人表",以及圖3中處理的名稱"請求募捐"及其輸出數(shù)據(jù)流"已聯(lián)系的捐贈人"等可知,數(shù)據(jù)存儲D2的名稱是"已聯(lián)系的捐贈人表"?;陬}干中給出的關(guān)鍵信息"……根據(jù)捐贈請求進(jìn)行募集,募得捐贈后,將捐贈記錄存入捐贈表",以及圖3中處理的名稱"募集"及其輸出數(shù)據(jù)流"捐贈記錄"等可知,數(shù)據(jù)存儲D3的名稱是"捐贈表"。依據(jù)題干中給出的關(guān)鍵信息"……對捐贈記錄進(jìn)行處理后,存入已處理捐贈表……",以及圖3中處理的名稱"募集"及其輸出數(shù)據(jù)流"已處理的捐贈記錄"等可知,數(shù)據(jù)存儲D4的名稱是"已處理捐贈表"。試題二閱讀以下說明,根據(jù)要求回答下列問題。[說明]某航空公司要開發(fā)一個(gè)訂票信息處理系統(tǒng),該系統(tǒng)的部分關(guān)系模式如下:航班<航班編號,航空公司,起飛地,起飛時(shí)間,目的地,到達(dá)時(shí)間,票價(jià)>折扣<航班編號,開始日期,結(jié)束日期,折扣>旅客<身份證號,姓名,性別,出生日期,,VIP折扣>購票<購票單號,身份證號,航班編號,搭乘日期,購票金額>有關(guān)關(guān)系模式的屬性及相關(guān)說明如下:4航班表中的起飛時(shí)間和到達(dá)時(shí)間不包含日期,同一航班不會在一天出現(xiàn)兩次及兩次以上;5各航空公司會根據(jù)旅客出行淡旺季適時(shí)調(diào)整機(jī)票的折扣,旅客購買機(jī)票的購票金額計(jì)算公式為:票價(jià)×折扣×VIP折扣,其中旅客的VIP折扣與該旅客已購買過的機(jī)票的購票金額總和相關(guān),在旅客每次購票后被修改。VIP折扣值的計(jì)算由函數(shù)floatvip_value<char[18]身份證號>完成。根據(jù)以上描述,回答下列問題。4、請將如下創(chuàng)建購票關(guān)系的SQL語句的空缺部分補(bǔ)充完整,要求指定關(guān)系的主鍵、外鍵,以及購票金額大于零的約束。CREATETABLE購票<購票單號CHAR<15>______,身份證號CHAR<18>,航班編號CHAR<6>,搭乘日期DATE,購票金額FLOAT______,______,______,>;5、<1>身份證號為的客戶購買了20XX2月18日CA5302航班的機(jī)票,購票單號由系統(tǒng)自動生成。下面的SQL語句將上述購票信息加入系統(tǒng)中,請將空缺部分補(bǔ)充完整。INSERTINTO購票<購票單號,身份證號,航班編號,搭乘日期,購票金額>______FROM航班,折扣,旅客WHERE______AND航班.航班編號='CA5302'ANDAND'2013/2/18'BETWEEN折扣.開始日期AND折扣.結(jié)束日期AND旅客.身份證號<2>需要用觸發(fā)器來實(shí)現(xiàn)VIP折扣的修改,調(diào)用函數(shù)vip_value<>來實(shí)現(xiàn)。請將如下SQL語句的空缺部分補(bǔ)充完整。CREATETRIGGERVIP_TRGAFTER______ON______REFERENCINGnewrowASnrowFOREACHrowBEGINUPDATE旅客SET______WHERE______;END6、請將如下SQL語句的空缺部分補(bǔ)充完整。<1>查詢搭乘日期在20XX1月1日至20XX12月31日之間,且合計(jì)購票金額大于等于10000元的所有旅客的身份證號、姓名和購票金額總和,并按購票金額總和降序輸出。SELECT旅客.身份證號,姓名,SUM<購票金額>FROM旅客,購票WHERE______GROUPBY______;ORDERBY______;<2>經(jīng)過中轉(zhuǎn)的航班與相同始發(fā)地和目的地的直達(dá)航班相比,會享受更低的折扣。查詢從XX到北京,經(jīng)過一次中轉(zhuǎn)的所有航班對,輸出XX到中轉(zhuǎn)地的航班編號、中轉(zhuǎn)地、中轉(zhuǎn)地到北京的航班編號。SELECT______FROM航班航班1,航班航班2WHERE______;試題二4、PRIMARYKEY<或NOTNULLUNIQUE>CHECK<購票金額>0>FOREIGNKEY<身份證號>REFERENCES旅客<身份證號>FOREIGNKEY<航班編號>REFERENCES航班<航班編號>在創(chuàng)建"購票"關(guān)系模式的SQL語句時(shí),由于屬性"購票單號"為"購票"關(guān)系模式的主鍵,即不能為空且唯一標(biāo)識一條數(shù)據(jù)記錄,因此空缺處需要填入"PRIMARYKEY<或NOTNULLUNIQUE,或NOTNULLPRIMARYKEY>"對該屬性進(jìn)行主鍵約束。結(jié)合題干給出的關(guān)鍵信息"購票金額大于零"可知,空缺處應(yīng)填入"CHECK<購票金額>0>"對屬性"購票金額"進(jìn)行約束。由于屬性"身份證號"、"航班編號"是"購票"關(guān)系模式的外鍵,因此空缺處需要使用FOREIGNKEY對這兩個(gè)屬性進(jìn)行外鍵約束,即應(yīng)填入"FOREIGNKEY<身份證號>REFERENCES旅客<身份證號>"、"FOREIGNKEY<航班編號>REFERENCES航班<航班編號>"。5、票價(jià)*折扣*VIP折扣航班.航班編號=折扣.航班編號INSERT購票VIP折扣=vip_value<nrow.身份證號>旅客.身份證號=nrow.身份證號<1>基于題干給出的關(guān)鍵信息"旅客購買機(jī)票的購票金額計(jì)算公式為:票價(jià)×折扣×VIP折扣"可知,<空缺處對應(yīng)填入INSERTINTO語句中"購票金額"的計(jì)算公式,即"票價(jià)*折扣*VIP折扣"。結(jié)合題干給出的"其中旅客的VIP折扣與該旅客已購買過的機(jī)票的購票金額總和相關(guān),在旅客每次購票后被修改"等關(guān)鍵信息可知,該SELECT查詢語句中將涉及到"航班"、"折扣"兩個(gè)關(guān)系模式,因此空缺處應(yīng)對這二者進(jìn)行關(guān)聯(lián),即應(yīng)填入"航班.航班編號=折扣.航班編號"。<2>使用T-SQL語句來創(chuàng)建觸發(fā)器的基本語句如下。createtriggertrigger_nameon{table_name|view_name}{for|After|Insteadof}[insert,update,delete]assql_statement在"購票"關(guān)系模式中插入一條數(shù)據(jù)記錄時(shí),觸發(fā)器應(yīng)能夠自動執(zhí)行,因此需要創(chuàng)建基于INSERT類型的觸發(fā)器,即空缺處應(yīng)依次填入"INSERT"、"購票"。根據(jù)題干給出的"VIP折扣值的計(jì)算由函數(shù)floatvip_value<char[18]身份證號>完成"等關(guān)鍵信息可知,空缺處應(yīng)填入的觸發(fā)器執(zhí)行動作是"VIP折扣=vip_value<nrow.身份證號>"。空缺處應(yīng)添加表的連接條件——"旅客.身份證號=nrow.身份證號"。6、旅客.身份證號=購票.身份證號AND搭乘日期BETWEEN'2012/1/1'AND'2012/12/31'旅客.身份證號,姓名HAVINGSUM<購票金額>>=10000SUM<購票金額>DESC航班1.航班編號,航班1.目的地,航班2.航班編號航班1.起飛地='XX'AND航班2.目的地='北京'AND航班1.目的地=航班2.起飛地;<1><1>查詢搭乘日期在20XX1月1日至20XX12月31日之間,且合計(jì)購票金額大于等于10000元的所有旅客的身份證號、姓名和購票金額總和,并按購票金額總和降序輸出。SELECT旅客.身份證號,姓名,SUM<購票金額>FROM旅客,購票WHERE旅客.身份證號=購票.身份證號AND搭乘日期BETWEEN'2012/1/1'AND'2012/12/31'GROUPBY旅客.身份證號,姓名HAVINGSUM<購票金額>>=10000;ORDERBYSUM<購票金額>DESC;<2>經(jīng)過中轉(zhuǎn)的航班與相同始發(fā)地和目的地的直達(dá)航班相比,會享受更低的折扣。查詢從XX到北京,經(jīng)過一次中轉(zhuǎn)的所有航班對,輸出XX到中轉(zhuǎn)地的航班編號、中轉(zhuǎn)地、中轉(zhuǎn)地到北京的航班編號。SELECT航班1.航班編號,航班1.目的地,航班2.航班編號FROM航班航班1,航班航班2WHERE航班1.起飛地='XX'AND航班2.目的地='北京'AND航班1.目的地=航班2.起飛地;試題三閱讀以下說明,根據(jù)要求回答下列問題。[說明]某電視臺擬開發(fā)一套信息管理系統(tǒng),以方便對全臺的員工、欄目、廣告和演播廳等進(jìn)行管理。[需求分析]7系統(tǒng)需要維護(hù)全臺員工的詳細(xì)信息、欄目信息、廣告信息和演播廳信息等。員工的信息主要包括:工號、姓名、性別、出生日期、和住址等,欄目信息主要包括:欄目名稱、播出時(shí)間和時(shí)長等。廣告信息主要包括:廣告編號、價(jià)格等。演播廳信息包括:房間號、房間面積等。8電視臺根據(jù)調(diào)度單來協(xié)調(diào)各檔欄目、演播廳和場務(wù)。一個(gè)銷售檔欄目只會占用一個(gè)演播廳,但會使用多名場務(wù)來進(jìn)行演出協(xié)調(diào)。演播廳和場務(wù)可以被多個(gè)欄目循環(huán)使用。9電視臺根據(jù)欄目來插播廣告。每檔欄目可以插播多條廣告,每條廣告也可以在多檔欄目中插播。10一檔欄目可以有多名主持人,但一名主持人只能主持一檔欄目。11一名編輯人員可以編輯多條廣告,一條廣告只能由一名編輯人員編輯。[概念模型設(shè)計(jì)]根據(jù)需求階段收集的信息而設(shè)計(jì)的實(shí)體聯(lián)系圖<不完整>如圖所示。[邏輯結(jié)構(gòu)設(shè)計(jì)]根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式<不完整>:演播廳<房間號,房間面積>欄目<欄目名稱,播出時(shí)間,時(shí)長>廣告<廣告編號,銷售價(jià)格,______>員工<工號,姓名,性別,出生日期,,住址>主持人<主持人工號,______>插播單<______,播出時(shí)間>調(diào)度單<______>7、補(bǔ)充圖中的聯(lián)系和聯(lián)系的類型。8、根據(jù)圖,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中補(bǔ)充完整,并用下劃線指出所在關(guān)系模式的主鍵。9、現(xiàn)需要記錄廣告商信息,增加廣告商實(shí)體。一個(gè)廣告商可以提供多條廣告,一條廣告只能由一個(gè)廣告商提供。請根據(jù)該要求,對圖進(jìn)行修改,畫出修改后的實(shí)體間聯(lián)系和聯(lián)系的類型。試題三7、這是一道要求讀者掌握數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)的綜合分析題,本題的解答思路如下。仔細(xì)閱讀題干給出的說明信息,由其中關(guān)鍵信息"<3>電視臺根據(jù)欄目來插播廣告。每檔欄目可以插播多條廣告,每條廣告也可以在多檔欄目插播"等可知,圖中實(shí)體"廣告"與實(shí)體"欄目"之間存在聯(lián)系"插播",其聯(lián)系的類型為多對多<m:n>?;陬}干給出的"<4>一檔欄目可以有多個(gè)主持人,但一名主持人只能主持一檔欄目"等關(guān)鍵信息可知,圖中實(shí)體"欄目"與實(shí)體"主持人"之間存在聯(lián)系"主持",其聯(lián)系的類型為一對多<1:n>。根據(jù)題干給出的關(guān)鍵信息"<2>電視臺根據(jù)調(diào)度單來協(xié)調(diào)各檔欄目、演播廳和場務(wù)。一個(gè)銷售檔欄目只會占用一個(gè)演播廳,但會使用多名場務(wù)來進(jìn)行演出協(xié)調(diào)。演播廳和場務(wù)可以被多個(gè)欄目循環(huán)使用"等關(guān)鍵信息可知,圖中實(shí)體"場務(wù)"與聯(lián)系"調(diào)度"之間存在關(guān)聯(lián),其關(guān)聯(lián)的類型為多<n>。整理以上分析結(jié)果,結(jié)合圖可得出完整的信息管理系統(tǒng)實(shí)體聯(lián)系圖,如圖所示。8、<1>編輯人員工號<2>欄目名稱<3>欄目名稱,廣告編號<4>欄目名稱,房間號,場務(wù)工號廣告<廣告編號,銷售價(jià)格,編輯人員工號>主持人<主持人工號,欄目名稱>插播單<欄目名稱,廣告編號,播出時(shí)間>調(diào)度單<欄目名稱,房間號,場務(wù)工號>這是一道要求讀者掌握數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)的綜合理解題,本題的解答思路如下?;趩栴}1的分析結(jié)果,在圖中實(shí)體"編輯人員"與實(shí)體"廣告"之間存在聯(lián)系"編輯",其聯(lián)系的類型為一對多<1:n>。結(jié)合題干說明信息中已給出的關(guān)系模式:員工<工號,姓名,性別,出生日期,,住址>,可知"廣告"關(guān)系模式中需要加入一端實(shí)體的主鍵"編輯人員工號"<即空缺處所填寫的內(nèi)容>。結(jié)合常識可知,屬性"廣告編號"唯一標(biāo)識每一條"廣告"的數(shù)據(jù)記錄,因此它是"廣告"關(guān)系模式的主鍵。同理,在圖中實(shí)體"欄目"與實(shí)體"主持人"之間存在聯(lián)系"主持",其聯(lián)系的類型為一對多<1:n>。題干中已給出的關(guān)系模式:欄目<欄目名稱,播出時(shí)間,時(shí)長>,可知"主持人"關(guān)系模式中需要加入一端實(shí)體的主鍵"欄目名稱"<即空缺處所填寫的內(nèi)容>。結(jié)合常識可知,屬性"主持人工號"唯一標(biāo)識每一條"主持人"的數(shù)據(jù)記錄,因此它是"主持人"關(guān)系模式的主鍵。對于圖中聯(lián)系類型為多對多<m:n>的"插播"聯(lián)系,應(yīng)將其轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,其屬性為兩端實(shí)體類型的主鍵加上聯(lián)系類型自身的屬性,而該關(guān)系模式的主鍵為兩端實(shí)體主鍵的組合。因此空缺處應(yīng)填入"欄目名稱,廣告編號"。屬性"欄目名稱"、"廣告編號"的組合是"插播單"關(guān)系模式的主鍵。對于圖中聯(lián)系類型為1:m:n的"調(diào)度"聯(lián)系,應(yīng)將其轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,其屬性為三端實(shí)體類型的主鍵加上聯(lián)系類型自身的屬性,而該關(guān)系模式的主鍵為三端實(shí)體主鍵的組合。因此空缺處應(yīng)填入"欄目名稱,房間號,場務(wù)工號"。屬性"欄目名稱"、"房間號"、"場務(wù)工號"的組合是"調(diào)度"關(guān)系模式的主鍵。9、這是一道要求讀者掌握數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)的綜合應(yīng)用題,本題的解答思路如下:如果需要廣告商信息,則新增一個(gè)"廣告商"實(shí)體,而一個(gè)廣告商可以提供多條廣告,一條廣告只能由一個(gè)廣告商提供,因此"廣告商"和"廣告"兩個(gè)實(shí)體之間都存在聯(lián)系"提供",其聯(lián)系的類型都為一對多<1:n>。修改后的某電視臺信息管理系統(tǒng)的實(shí)體聯(lián)系圖如圖所示。試題四閱讀以下說明,根據(jù)要求回答下列問題。[說明]某水果零售超市擬開發(fā)一套信息系統(tǒng),對超市的顧客、水果、員工、采購和銷售信息進(jìn)行管理。[需求分析]10水果零售超市實(shí)行會員制,顧客需具有會員資格才能進(jìn)行購物,顧客需持所在單位出具的證明信才能辦理會員資格,每位顧客具有唯一編號。11超市將采購員和導(dǎo)購員分成若干個(gè)小組,每組人員負(fù)責(zé)指定的若干種水果的采購和導(dǎo)購。每名采購員可采購指定給該組購買的水果;每名導(dǎo)購員都可對顧客選購的本組內(nèi)的各種水果進(jìn)行計(jì)價(jià)和包裝,并分別貼上打印條碼。12顧客選購水果并計(jì)價(jià)完畢后進(jìn)行結(jié)算,生成結(jié)算單。結(jié)算單包括流水號、購買的各種水果信息和顧客信息等,每張結(jié)算單具有唯一的流水號。13超市在月底根據(jù)結(jié)算單對導(dǎo)購員進(jìn)行績效考核,根據(jù)采購情況對采購員進(jìn)行考核,同時(shí)也根據(jù)結(jié)算單對顧客消費(fèi)情況進(jìn)行會員積分。初步設(shè)計(jì)的數(shù)據(jù)庫關(guān)系模式如下。顧客<顧客編號,身份證號,姓名,性別,積分,單位名稱,單位地址,單位>采購<批次,水果名稱,采購價(jià)格,采購數(shù)量,采購員編號>職責(zé)<水果名稱,采購員編號,導(dǎo)購員編號>結(jié)算單<流水號,條碼,水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號,顧客編號>數(shù)據(jù)庫關(guān)系模式關(guān)系模式的主要屬性、含義及約束如表所示。表1主要屬性、含義及約束屬性含義及約束條件顧客編號唯一地標(biāo)識某位顧客單位地址和單位顧客的單位地址和由單位名稱決定批次不同批次的水果,采購價(jià)格和數(shù)量也可能不同流水號每個(gè)結(jié)算單都有一個(gè)流水號條碼購買的每種水果的信息"結(jié)算單"示例如表2所示。表2"結(jié)算單"示例流水號顧客G2000102條碼水果名稱銷售單價(jià)數(shù)量金額<元>導(dǎo)購員A10001蘋果5420D001A10013桔子4312D002B10005香蕉3515D003C10034葡萄3.51035D001E10323火龍果15230D001G10551梨4520D002總計(jì)13210、對于"顧客"關(guān)系模式,請回答以下問題:<1>給出所有候選鍵。<2>該關(guān)系模式可達(dá)到第幾范式,用60字以內(nèi)的文字簡要敘述理由。11、對于"結(jié)算單"關(guān)系模式,請回答以下問題:<1>用100字以內(nèi)的文字簡要說明它會產(chǎn)生什么問題。<2>將其分解為第3范式,分解后的關(guān)系名依次為:結(jié)算單1,結(jié)算單2,結(jié)算單3,并用下劃線標(biāo)注分解后的各關(guān)系模式的主鍵。12、對于"職責(zé)"關(guān)系模式,請回答以下問題:<1>它是否為第4范式,用100字以內(nèi)的文字?jǐn)⑹隼碛伞?lt;2>將其分解為第4范式,分解后的關(guān)系名依次為:職責(zé)1,職責(zé)2。試題四10、<1>顧客編號和身份證號<2>可以達(dá)到第2范式理由:在"顧客"關(guān)系模式中,存在以下函數(shù)依賴:"單位名稱→單位地址,單位",存在非主屬性對鍵的傳遞依賴,所以"顧客"關(guān)系模式可以達(dá)到第2范式,但不滿足第3范式這是一道要求讀者掌握數(shù)據(jù)庫關(guān)系模式規(guī)范化理論中,非主屬性和3NF范式的綜合分析題,本題的解答思路如下。<1>依題意,由"顧客"關(guān)系模式和題干給出的關(guān)鍵信息"每位顧客具有唯一編號"等可知,屬性"顧客編號"是"顧客"關(guān)系模式的主鍵;而屬性"身份證號"也是該關(guān)系模式的決定因素之一,因此它們都是候選鍵的屬性。<2>結(jié)合表1中的屬性"單位地址和單位"的約束條件——"顧客的單位地址和由單位名稱決定"等關(guān)鍵信息可知,在"顧客"關(guān)系模式中,存在"單位名稱→<單位地址,單位>"的函數(shù)依賴關(guān)系。根據(jù)3NF的要求:每一個(gè)非主屬性既不部分依賴于碼,也不傳遞依賴于碼。而"顧客"關(guān)系模式存在非主屬性對碼的傳遞依賴,因此它不能滿足3NF,但可以達(dá)到2NF。11、<1>根據(jù)"結(jié)算單"關(guān)系模式,可知其鍵為<流水號,條碼>,而又存在部分函數(shù)依賴:"條碼→水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號"根據(jù)第2范式的要求:不存在非主屬性對鍵的部分依賴,所以"結(jié)算單"關(guān)系模式不滿足第2范式,會造成插入異常、刪除異常和修改異常<2>對"結(jié)算單"關(guān)系模式進(jìn)行分解后的關(guān)系模式及主鍵如下:結(jié)算單1<流水號,條碼>結(jié)算單2<流水號,顧客編號>結(jié)算單3<條碼,水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號>這是一道要求讀者掌握數(shù)據(jù)庫關(guān)系模式規(guī)范化理論中2NF和3NF的綜合應(yīng)用題,本題的解答思路如下。<1>由"結(jié)算單"關(guān)系模式、題干<或表1>中給出的關(guān)鍵信息"<3>……每張結(jié)算單具有唯一的流水號"、表1中"條碼"屬性的約束條件——"購買的每種水果的信息"和表2的示例等關(guān)鍵信息可知,屬性"流水號,條碼"是該關(guān)系模式的候選鍵。"結(jié)算單"關(guān)系模式存在部分函數(shù)依賴:流水號→顧客編號條碼→水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號根據(jù)第2范式<2NF>的要求:不存在非主屬性對碼的部分依賴。而"結(jié)算單"關(guān)系模式存在非主屬性對碼的部分依賴,因此它不屬于2NF,會造成插入異常、刪除異常和修改復(fù)雜<或修改異常>等問題。<2>根據(jù)3NF的要求和"結(jié)算單"關(guān)系模式的函數(shù)依賴關(guān)系,對"結(jié)算單"關(guān)系模式進(jìn)行如下分解,以滿足3NF的要求。結(jié)算單1<流水號,條碼>結(jié)算單2<流水號,顧客編號>結(jié)算單3<條碼,水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號>其中,帶下劃實(shí)線的屬性為分解后的各關(guān)系模式對應(yīng)的主鍵,帶波浪線的屬性為外鍵。這3個(gè)關(guān)系模式中的每一個(gè)非主屬性既不部分依賴于碼,也不傳遞依賴于碼,因此滿足3NF的要求。12、<1>不屬于第4范式。根據(jù)"職責(zé)"關(guān)系模式的定義可知:其主鍵為"水果名稱,采購員編號,導(dǎo)購員編號",存在多值依賴:水果名稱→→采購員編號水果名稱→→導(dǎo)購員編號根據(jù)第4范式的要求,不允許存在非平凡的多值依賴,因此,"職責(zé)"關(guān)系模式不滿足第4范式。<2>對"職責(zé)"關(guān)系模式進(jìn)行分解后的關(guān)系模式如下:職責(zé)1<水果名稱,采購員編號>職責(zé)2<水果名稱,導(dǎo)購員編號>這是一道要求讀者掌握關(guān)系模式規(guī)范化理論中4NF的綜合分析題,本題解答思路如下。<1>由"職責(zé)"關(guān)系模式和題干中"<2>超市將采購員和導(dǎo)購員分成若干個(gè)小組,每組人員負(fù)責(zé)指定的若干種水果的采購和導(dǎo)購……"等關(guān)鍵信息可知,屬性"水果名稱,采購員編號,導(dǎo)購員編號"是該關(guān)系模式的主鍵。"職責(zé)"關(guān)系模式存在多值依賴:水果名稱→→采購員編號水果名稱→→導(dǎo)購員編號根據(jù)第4范式的要求:不允許有非平凡且非函數(shù)依賴的多值依賴,因此"職責(zé)"關(guān)系模式不滿足4NF。<2>根據(jù)4NF的要求和"職責(zé)"關(guān)系模式的函數(shù)依賴,對該關(guān)系模式進(jìn)行如下分解,以滿足4NF的要求。職責(zé)1<水果名稱,采購員編號>職責(zé)2<水果名稱,采購員編號>其中,帶下劃線的屬性為相應(yīng)關(guān)系模式的主鍵。試題五閱讀以下說明,根據(jù)要求回答下列問題。[說明]某連鎖酒店提供網(wǎng)上預(yù)訂房間業(yè)務(wù),流程如下:13客戶查詢指定日期內(nèi)所有類別的空余房間數(shù),系統(tǒng)顯示空房表<日期,房間類別,數(shù)量>中的信息。14客戶輸入預(yù)訂的起始日期、結(jié)束日期、房間類別和數(shù)量,并提交。15系統(tǒng)將用戶提交的信息寫入預(yù)訂表<身份證號,起始日期,結(jié)束日期,房間類別,數(shù)量>,并修改空房表的相關(guān)數(shù)據(jù)。針對上述業(yè)務(wù)流程,回答下列問題。13、如果兩個(gè)用戶同時(shí)查詢相同日期和房間類別的空房數(shù)量,得到的空房數(shù)量為1,并且這兩個(gè)用戶又同時(shí)要求預(yù)訂,可能會產(chǎn)生什么結(jié)果,請用100字以內(nèi)的文字簡要敘述。14、引入如下偽指令:將預(yù)訂過程作為一個(gè)事務(wù),將查詢和修改空房表的操作分別記為RA.和W<A,x>,插入預(yù)訂表的操作記為W<B,a>,其中x代表空余房間數(shù),a代表預(yù)訂房間數(shù),則事務(wù)的偽指令序列為:x=RA.,W<A,x-a>,W<B,a>。在并發(fā)操作的情況下,若客戶1、客戶2同時(shí)預(yù)訂相同類別的房間時(shí),可能出現(xiàn)的執(zhí)行序列為:x1=RA.,x2=RA.,W<A,x1-a1>,W<B1,a1>,W<A,x2-a2>,W<B2,a2>。<1>此時(shí)會出現(xiàn)什么問題,請用100字以內(nèi)的文字簡要敘述。<2>為了解決上述問題,引入共享鎖指令SLock<X>和獨(dú)占鎖指令XLock<X>對數(shù)據(jù)X進(jìn)行加鎖,解鎖指令Unlock<X>對數(shù)據(jù)X進(jìn)行解鎖,請補(bǔ)充上述執(zhí)行序列,使其滿足2PL協(xié)議,不產(chǎn)生死鎖且持有鎖的時(shí)間最短。15、下面是實(shí)現(xiàn)預(yù)訂業(yè)務(wù)的程序,請補(bǔ)全空缺處的代碼。其中主變量":Cid"、":Bdate"、":Edate"、":Rtype"、":Num"分別代表身份證號、起始日期、結(jié)束日期、房間類別和訂房數(shù)量。SETTRANSACTIONISOLATIONLEVELREPEATABLEREAD;UPDATE空房表SET數(shù)量=數(shù)量-:NumWHERE______;iferrorthen{ROLLBACK;return-1;}INSERTINTO預(yù)訂表VALUES<:cid,:Bdate,:Edate,:Rtype,:Num>;iferrorthen{ROLLBACK;return-2;}______;試題五13、同時(shí)預(yù)訂時(shí),可能會產(chǎn)生一個(gè)客戶訂不到或者把同一房訂給兩個(gè)客戶依題意,如果兩個(gè)用戶同時(shí)要求預(yù)訂相同日期和相同類別的同一個(gè)房間,則可能會產(chǎn)生一個(gè)客戶訂不到房間或者把同一房間預(yù)訂給兩個(gè)客戶的沖突現(xiàn)象。14、<1>出現(xiàn)問題:丟失修改,客戶1預(yù)訂a1數(shù)量房間后,對空房數(shù)量的修改被T2的修改覆蓋,造成數(shù)據(jù)不一致。<2>XLOCK<A>,x1=R<A>,W<A,x1-a1>,XLOCK<B>,UNLOCK<A>,W<B1,a1>,UNLOCK<B>,XLOCK<A>,x2=R<A>,W<A,x2-a2>,XLOCK<B>,UNLOCK<A>,W<B2,a2>,UNLOCK<B>若對并發(fā)事務(wù)的指令交叉執(zhí)行不加以控制,則會使每個(gè)事務(wù)的執(zhí)行結(jié)果相互干擾,破壞事務(wù)的隔離性,從而造成數(shù)據(jù)庫的不一致。本試題中,客戶1預(yù)訂a1數(shù)量房間后,對空房數(shù)量的修改可能被客戶2的修改所覆蓋,造成不能體現(xiàn)出客戶1已預(yù)訂的房間數(shù)量。該現(xiàn)象屬于丟失修改造成的數(shù)據(jù)庫不一致性。在并發(fā)狀態(tài)下,可能會相互干擾破壞事務(wù)的ACID屬性,加鎖機(jī)制是保障事務(wù)正確執(zhí)行的一種機(jī)制。2PL協(xié)議能夠保證事務(wù)在并發(fā)狀態(tài)下調(diào)度的正確性,即可串行化的調(diào)度。針對題干所給出的客戶f的房間預(yù)訂偽指令序列:x=R<A>,W<A,x-a>,W<B,a>,需要在修改房間數(shù)量之前加XLock<>指令,并保證讀/寫鎖不交叉,即確??蛻?釋放A上的鎖之后客戶2才能執(zhí)行加鎖操作。重寫后的房間預(yù)訂偽指令序列如下。XLOCK<A>,x1=R<A>,W<A,x1-a1>,XLOCK<B>,UNLOCK<A>,W<B1,a1>,UNLOCK<B>,XLOCK<A>,x2=R<A>,W<A,x2-a2>,XLOCK<B>,UNLOCK<A>,W<B2,a2>,UNLOCK<B>15、房間類別=:RtypeAND日期BETWEEN:BdateAND:EdateCOMMIT:retum0;SQL語句"SETTRANSACTIONISOLATIONLEVELREPEATABLEREAD;"是SQL提供的事務(wù)隔離級別之一。它表示只允許事務(wù)讀已提交的數(shù)據(jù),并且在兩次讀同一數(shù)據(jù)時(shí)不允許其他事務(wù)修改此數(shù)據(jù)。依題意,結(jié)合題干給出的關(guān)鍵信息"<1>客戶查詢指定日期內(nèi)所有類別的空余房間數(shù),系統(tǒng)顯示空房表<日期,房間類別,數(shù)量>中的信息"可得,空缺處應(yīng)填入"房間類別=:RtypeAND日期BETWEEN:BdateAND:Edate"。在程序中,事務(wù)是以COMMIT語句或ROLLBACK語句結(jié)束。結(jié)合該程序中已給出的代碼"iferrorthen{ROLLBACK;return-1;>"和"iferrorthen{ROLLBACK;return-2;}"可得,空缺處應(yīng)填入"COMMIT;return0;"。..答案:試題一1、E1:志愿者E2:捐贈人E3:募捐機(jī)構(gòu)E4:場館由題干中的關(guān)鍵信息"根據(jù)募捐任務(wù)給志愿者發(fā)送加入邀請、邀請跟進(jìn)、工作任務(wù);管理志愿者提供的邀請響應(yīng)、志愿者信息、工作時(shí)長、工作結(jié)果等",結(jié)合如圖1所示的0層數(shù)據(jù)流圖中與實(shí)體E1相關(guān)的"加入邀請/邀請跟進(jìn)/工作任務(wù)"這一條輸入數(shù)據(jù)流,以及"志愿者信息/工作時(shí)長/邀請響應(yīng)/工作結(jié)果"這一條輸出數(shù)據(jù)流可知,實(shí)體E1的名稱是"志愿者"。根據(jù)題干中給出的"根據(jù)活動時(shí)間,搜索場館,即:向場館發(fā)送場館可用性請求,獲得場館可用性"等關(guān)鍵信息,結(jié)合圖1中輸入至實(shí)體E4的數(shù)據(jù)流"場館可用性請求",以及輸出數(shù)據(jù)流"場館可用性"等可知,實(shí)體E4的名稱是"場館"?;陬}干中給出的"根據(jù)相應(yīng)的活動信息舉辦活動,從募捐機(jī)構(gòu)獲取資金并向其發(fā)放贈品"等關(guān)鍵信息,結(jié)合圖1中輸入至實(shí)體E3的數(shù)據(jù)流"贈品",以及輸出數(shù)據(jù)流"資金"等可知,實(shí)體E3的名稱是"募捐機(jī)構(gòu)"。依據(jù)題干中給出的"從捐贈人信息表中查詢捐贈人信息,向捐贈人發(fā)送募捐請求"等關(guān)鍵信息,結(jié)合圖1中輸入至實(shí)體E2的數(shù)據(jù)流"募捐請求",以及輸出數(shù)據(jù)流"捐贈人信息"等可知,實(shí)體E2的名稱是"捐贈人"。2、P1:確定活動時(shí)間范圍P2:搜索場館P3:推廣募捐活動數(shù)據(jù)流名稱起點(diǎn)終點(diǎn)所募集資金3.5或舉辦活動并募集資金2活動請求23.2或確定活動時(shí)間范圍捐贈請求2<可不填>所募集捐贈<或所募集資金或所募集物品或募集2<可不填>或募集2<可不填>或募集2<可不填>注:數(shù)據(jù)流沒有次序要求;其中"2"處可以為"確定募捐需求收集所募捐贈"基于問題1的解析結(jié)果,結(jié)合如圖2所示的1層數(shù)據(jù)流圖中與加工P1相關(guān)的"活動時(shí)間"這一條輸出數(shù)據(jù)流,查找到題干中與之相關(guān)的關(guān)鍵信息"<3>組織募捐活動。根據(jù)活動請求,確定活動時(shí)間范圍。根據(jù)活動時(shí)間……"可知,P1的名稱是"確定活動時(shí)間范圍"。根據(jù)題干中給出的"根據(jù)活動時(shí)間,搜索場館,即:向場館發(fā)送場館可用性請求,獲得場館可用性"等關(guān)鍵信息,結(jié)合圖2中加工P2的輸入數(shù)據(jù)流"活動時(shí)間"和"場館可用性",以及輸出數(shù)據(jù)流"場館可用性請求"等可知,P2的名稱是"搜索場館"。由題干中給出的關(guān)鍵信息"然后根據(jù)活動時(shí)間和地點(diǎn)推廣募捐活動,根據(jù)相應(yīng)的活動信息舉辦活動……"等,結(jié)合圖2中加工P3的輸入數(shù)據(jù)流"活動時(shí)間和地點(diǎn)",以及輸出數(shù)據(jù)流"活動信息"等可知,P3的名稱是"推廣募捐活動"。結(jié)合題干中給出的關(guān)鍵信息"<3>組織募捐活動。根據(jù)活動請求,確定活動時(shí)間范圍",以及圖1中處理2至處理3的數(shù)據(jù)流"活動請求"可知,圖2中缺少了一條從處理2至處理3.2的數(shù)據(jù)流"活動請求"。依據(jù)題干中給出的"<2>確定募捐需求和收集所募捐贈<資金及物品>……獲取所募集的資金和物品"、"<3>組織募捐活動……獲取和處理捐贈,根據(jù)捐贈請求,提供所募集的捐贈"等關(guān)鍵信息可知,圖2中缺少了一條從處理3.5至處理2的數(shù)據(jù)流"所募集資金"。基于題干中給出的關(guān)鍵信息"<3>組織募捐活動……根據(jù)捐贈請求進(jìn)行募集",以及圖2中處理2至處理3.1的數(shù)據(jù)流"捐贈請求"可知,圖3中缺少了一條從處理2至處理的數(shù)據(jù)流"捐贈請求"。根據(jù)圖2中處理3.1至處理2的數(shù)據(jù)流"所募集物品"、"所募集資金",以及"<2>確定募捐需求和收集所募捐贈<資金及物品>……獲取所募集的資金和物品"可知,圖3中缺少了一條從處理至處理2的數(shù)據(jù)流"所募集捐贈"。3、D1:捐贈人信息表D2:已聯(lián)系的捐贈人表D3:捐贈表D4:已處理捐贈表結(jié)合題干中給出的關(guān)鍵信息"錄入捐贈人信息,處理后存入捐贈人信息表",以及圖3中處理的名稱"錄入捐贈人信息"可知,圖3中數(shù)據(jù)存儲D1的名稱是"捐贈人信息表"。同理,根據(jù)題干中給出的關(guān)鍵信息"……向捐贈人發(fā)送募捐請求,并將已聯(lián)系的捐贈人存入已聯(lián)系的捐贈人表",以及圖3中處理的名稱"請求募捐"及其輸出數(shù)據(jù)流"已聯(lián)系的捐贈人"等可知,數(shù)據(jù)存儲D2的名稱是"已聯(lián)系的捐贈人表"。基于題干中給出的關(guān)鍵信息"……根據(jù)捐贈請求進(jìn)行募集,募得捐贈后,將捐贈記錄存入捐贈表",以及圖3中處理的名稱"募集"及其輸出數(shù)據(jù)流"捐贈記錄"等可知,數(shù)據(jù)存儲D3的名稱是"捐贈表"。依據(jù)題干中給出的關(guān)鍵信息"……對捐贈記錄進(jìn)行處理后,存入已處理捐贈表……",以及圖3中處理的名稱"募集"及其輸出數(shù)據(jù)流"已處理的捐贈記錄"等可知,數(shù)據(jù)存儲D4的名稱是"已處理捐贈表"。試題二4、PRIMARYKEY<或NOTNULLUNIQUE>CHECK<購票金額>0>FOREIGNKEY<身份證號>REFERENCES旅客<身份證號>FOREIGNKEY<航班編號>REFERENCES航班<航班編號>在創(chuàng)建"購票"關(guān)系模式的SQL語句時(shí),由于屬性"購票單號"為"購票"關(guān)系模式的主鍵,即不能為空且唯一標(biāo)識一條數(shù)據(jù)記錄,因此空缺處需要填入"PRIMARYKEY<或NOTNULLUNIQUE,或NOTNULLPRIMARYKEY>"對該屬性進(jìn)行主鍵約束。結(jié)合題干給出的關(guān)鍵信息"購票金額大于零"可知,空缺處應(yīng)填入"CHECK<購票金額>0>"對屬性"購票金額"進(jìn)行約束。由于屬性"身份證號"、"航班編號"是"購票"關(guān)系模式的外鍵,因此空缺處需要使用FOREIGNKEY對這兩個(gè)屬性進(jìn)行外鍵約束,即應(yīng)填入"FOREIGNKEY<身份證號>REFERENCES旅客<身份證號>"、"FOREIGNKEY<航班編號>REFERENCES航班<航班編號>"。5、票價(jià)*折扣*VIP折扣航班.航班編號=折扣.航班編號INSERT購票VIP折扣=vip_value<nrow.身份證號>旅客.身份證號=nrow.身份證號<1>基于題干給出的關(guān)鍵信息"旅客購買機(jī)票的購票金額計(jì)算公式為:票價(jià)×折扣×VIP折扣"可知,<空缺處對應(yīng)填入INSERTINTO語句中"購票金額"的計(jì)算公式,即"票價(jià)*折扣*VIP折扣"。結(jié)合題干給出的"其中旅客的VIP折扣與該旅客已購買過的機(jī)票的購票金額總和相關(guān),在旅客每次購票后被修改"等關(guān)鍵信息可知,該SELECT查詢語句中將涉及到"航班"、"折扣"兩個(gè)關(guān)系模式,因此空缺處應(yīng)對這二者進(jìn)行關(guān)聯(lián),即應(yīng)填入"航班.航班編號=折扣.航班編號"。<2>使用T-SQL語句來創(chuàng)建觸發(fā)器的基本語句如下。createtriggertrigger_nameon{table_name|view_name}{for|After|Insteadof}[insert,update,delete]assql_statement在"購票"關(guān)系模式中插入一條數(shù)據(jù)記錄時(shí),觸發(fā)器應(yīng)能夠自動執(zhí)行,因此需要創(chuàng)建基于INSERT類型的觸發(fā)器,即空缺處應(yīng)依次填入"INSERT"、"購票"。根據(jù)題干給出的"VIP折扣值的計(jì)算由函數(shù)floatvip_value<char[18]身份證號>完成"等關(guān)鍵信息可知,空缺處應(yīng)填入的觸發(fā)器執(zhí)行動作是"VIP折扣=vip_value<nrow.身份證號>"??杖碧帒?yīng)添加表的連接條件——"旅客.身份證號=nrow.身份證號"。6、旅客.身份證號=購票.身份證號AND搭乘日期BETWEEN'2012/1/1'AND'2012/12/31'旅客.身份證號,姓名HAVINGSUM<購票金額>>=10000SUM<購票金額>DESC航班1.航班編號,航班1.目的地,航班2.航班編號航班1.起飛地='XX'AND航班2.目的地='北京'AND航班1.目的地=航班2.起飛地;<1><1>查詢搭乘日期在20XX1月1日至20XX12月31日之間,且合計(jì)購票金額大于等于10000元的所有旅客的身份證號、姓名和購票金額總和,并按購票金額總和降序輸出。SELECT旅客.身份證號,姓名,SUM<購票金額>FROM旅客,購票WHERE旅客.身份證號=購票.身份證號AND搭乘日期BETWEEN'2012/1/1'AND'2012/12/31'GROUPBY旅客.身份證號,姓名HAVINGSUM<購票金額>>=10000;ORDERBYSUM<購票金額>DESC;<2>經(jīng)過中轉(zhuǎn)的航班與相同始發(fā)地和目的地的直達(dá)航班相比,會享受更低的折扣。查詢從XX到北京,經(jīng)過一次中轉(zhuǎn)的所有航班對,輸出XX到中轉(zhuǎn)地的航班編號、中轉(zhuǎn)地、中轉(zhuǎn)地到北京的航班編號。SELECT航班1.航班編號,航班1.目的地,航班2.航班編號FROM航班航班1,航班航班2WHERE航班1.起飛地='XX'AND航班2.目的地='北京'AND航班1.目的地=航班2.起飛地;試題三7、這是一道要求讀者掌握數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)的綜合分析題,本題的解答思路如下。仔細(xì)閱讀題干給出的說明信息,由其中關(guān)鍵信息"<3>電視臺根據(jù)欄目來插播廣告。每檔欄目可以插播多條廣告,每條廣告也可以在多檔欄目插播"等可知,圖中實(shí)體"廣告"與實(shí)體"欄目"之間存在聯(lián)系"插播",其聯(lián)系的類型為多對多<m:n>。基于題干給出的"<4>一檔欄目可以有多個(gè)主持人,但一名主持人只能主持一檔欄目"等關(guān)鍵信息可知,圖中實(shí)體"欄目"與實(shí)體"主持人"之間存在聯(lián)系"主持",其聯(lián)系的類型為一對多<1:n>。根據(jù)題干給出的關(guān)鍵信息"<2>電視臺根據(jù)調(diào)度單來協(xié)調(diào)各檔欄目、演播廳和場務(wù)。一個(gè)銷售檔欄目只會占用一個(gè)演播廳,但會使用多名場務(wù)來進(jìn)行演出協(xié)調(diào)。演播廳和場務(wù)可以被多個(gè)欄目循環(huán)使用"等關(guān)鍵信息可知,圖中實(shí)體"場務(wù)"與聯(lián)系"調(diào)度"之間存在關(guān)聯(lián),其關(guān)聯(lián)的類型為多<n>。整理以上分析結(jié)果,結(jié)合圖可得出完整的信息管理系統(tǒng)實(shí)體聯(lián)系圖,如圖所示。8、<1>編輯人員工號<2>欄目名稱<3>欄目名稱,廣告編號<4>欄目名稱,房間號,場務(wù)工號廣告<廣告編號,銷售價(jià)格,編輯人員工號>主持人<主持人工號,欄目名稱>插播單<欄目名稱,廣告編號,播出時(shí)間>調(diào)度單<欄目名稱,房間號,場務(wù)工號>這是一道要求讀者掌握數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)的綜合理解題,本題的解答思路如下?;趩栴}1的分析結(jié)果,在圖中實(shí)體"編輯人員"與實(shí)體"廣告"之間存在聯(lián)系"編輯",其聯(lián)系的類型為一對多<1:n>。結(jié)合題干說明信息中已給出的關(guān)系模式:員工<工號,姓名,性別,出生日期,,住址>,可知"廣告"關(guān)系模式中需要加入一端實(shí)體的主鍵"編輯人員工號"<即空缺處所填寫的內(nèi)容>。結(jié)合常識可知,屬性"廣告編號"唯一標(biāo)識每一條"廣告"的數(shù)據(jù)記錄,因此它是"廣告"關(guān)系模式的主鍵。同理,在圖中實(shí)體"欄目"與實(shí)體"主持人"之間存在聯(lián)系"主持",其聯(lián)系的類型為一對多<1:n>。題干中已給出的關(guān)系模式:欄目<欄目名稱,播出時(shí)間,時(shí)長>,可知"主持人"關(guān)系模式中需要加入一端實(shí)體的主鍵"欄目名稱"<即空缺處所填寫的內(nèi)容>。結(jié)合常識可知,屬性"主持人工號"唯一標(biāo)識每一條"主持人"的數(shù)據(jù)記錄,因此它是"主持人"關(guān)系模式的主鍵。對于圖中聯(lián)系類型為多對多<m:n>的"插播"聯(lián)系,應(yīng)將其轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,其屬性為兩端實(shí)體類型的主鍵加上聯(lián)系類型自身的屬性,而該關(guān)系模式的主鍵為兩端實(shí)體主鍵的組合。因此空缺處應(yīng)填入"欄目名稱,廣告編號"。屬性"欄目名稱"、"廣告編號"的組合是"插播單"關(guān)系模式的主鍵。對于圖中聯(lián)系類型為1:m:n的"調(diào)度"聯(lián)系,應(yīng)將其轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,其屬性為三端實(shí)體類型的主鍵加上聯(lián)系類型自身的屬性,而該關(guān)系模式的主鍵為三端實(shí)體主鍵的組合。因此空缺處應(yīng)填入"欄目名稱,房間號,場務(wù)工號"。屬性"欄目名稱"、"房間號"、"場務(wù)工號"的組合是"調(diào)度"關(guān)系模式的主鍵。9、這是一道要求讀者掌握數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)的綜合應(yīng)用題,本題的解答思路如下:如果需要廣告商信息,則新增一個(gè)"廣告商"實(shí)體,而一個(gè)廣告商可以提供多條廣告,一條廣告只能由一個(gè)廣告商提供,因此"廣告商"和"廣告"兩個(gè)實(shí)體之間都存在聯(lián)系"提供",其聯(lián)系的類型都為一對多<1:n>。修改后的某電視臺信息管理系統(tǒng)的實(shí)體聯(lián)系圖如圖所示。試題四10、<1>顧客編號和身份證號<2>可以達(dá)到第2范式理由:在"顧客"關(guān)系模式中,存在以下函數(shù)依賴:"單位名稱→單位地址,單位",存在非主屬性對鍵的傳遞依賴,所以"顧客"關(guān)系模式可以達(dá)到第2范式,但不滿足第3范式這是一道要求讀者掌握數(shù)據(jù)庫關(guān)系模式規(guī)范化理論中,非主屬性和3NF范式的綜合分析題,本題的解答思路如下。<1>依題意,由"顧客"關(guān)系模式和題干給出的關(guān)鍵信息"每位顧客具有唯一編號"等可知,屬性"顧客編號"是"顧客"關(guān)系模式的主鍵;而屬性"身份證號"也是該關(guān)系模式的決定因素之一,因此它們都是候選鍵的屬性。<2>結(jié)合表1中的屬性"單位地址和單位"的約束條件——"顧客的單位地址和由單位名稱決定"等關(guān)鍵信息可知,在"顧客"關(guān)系模式中,存在"單位名稱→<單位地址,單位>"的函數(shù)依賴關(guān)系。根據(jù)3NF的要求:每一個(gè)非主屬性既不部分依賴于碼,也不傳遞依賴于碼。而"顧客"關(guān)系模式存在非主屬性對碼的傳遞依賴,因此它不能滿足3NF,但可以達(dá)到2NF。11、<1>根據(jù)"結(jié)算單"關(guān)系模式,可知其鍵為<流水號,條碼>,而又存在部分函數(shù)依賴:"條碼→水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號"根據(jù)第2范式的要求:不存在非主屬性對鍵的部分依賴,所以"結(jié)算單"關(guān)系模式不滿足第2范式,會造成插入異常、刪除異常和修改異常<2>對"結(jié)算單"關(guān)系模式進(jìn)行分解后的關(guān)系模式及主鍵如下:結(jié)算單1<流水號,條碼>結(jié)算單2<流水號,顧客編號>結(jié)算單3<條碼,水果名稱,銷售單價(jià),數(shù)量,金額,導(dǎo)購員編號>這是一道要求讀者掌握數(shù)據(jù)庫關(guān)系模式規(guī)范化理論中2NF和3NF的綜合應(yīng)用題,本題的解答思路如下。<1>由"結(jié)算單"關(guān)系模式、題干<或表1>中給出的關(guān)鍵信息"<3>……每張結(jié)算單具有唯一的流水號"、表1中"條碼"屬性的約束條件——"購買的每種水果的信息"和表2的示例等關(guān)鍵信息可知,屬性"流水號,條碼"是該關(guān)系模式的候選鍵。"結(jié)算單"關(guān)系模式存在部分函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論