數據庫第三章作業(yè)_第1頁
數據庫第三章作業(yè)_第2頁
數據庫第三章作業(yè)_第3頁
數據庫第三章作業(yè)_第4頁
數據庫第三章作業(yè)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章關系數據庫系統RDBS作業(yè)一.簡答題表間數據完整性的實現方式?答:外鍵約束。對于表中幾個特殊的列,如主鍵、候選鍵和外鍵,分別用什么限制來保證它們的完整性?對表中其它一般性的列,用什么限制來保證它們的完整性?答:主鍵:主鍵約束。

候選鍵:唯一約束。

外鍵:外鍵約束。

一般性列:檢查約束和斷言。SQL-92標準支持的完整性限制是否一定會在SQLSERVER中實現,舉例說明?答:不一定。

SQL-92標準推薦斷言,SQL

Server不支持斷言。

SQL

Server支持觸發(fā)器,SQL-92標準沒有定義觸發(fā)器。SQLSERVER中缺省和規(guī)則的目的?答:指定列的取值范圍。外鍵限制定義的條件?答:定義外鍵約束的列必須是另一個表中的主鍵或候選鍵。請說明在維護表間數據完整時外鍵限制與觸發(fā)器的3點不同之處。答:eq\o\ac(○,1).錯誤信息的管理上:約束與觸發(fā)器在遇到問題時都可以返回給用戶一定的錯誤信息。但

是,觸發(fā)器可以返回數據庫管理員自定義的錯誤信息,而且還可以實現較為復雜的邏輯控制,

而約束只能夠通過標準化的系統錯誤信息來傳遞錯誤消息;

eq\o\ac(○,2).性能上的差異分析:從性能上來說,約束的執(zhí)行性能都要高一點。雖然約束的執(zhí)行性能

比較高,但是其向用戶提供的錯誤信息確實非常有限的。

eq\o\ac(○,3).管理維護的工作量:由于約束基本上都是數據庫現成的解決方案。無論是索引約束還是

外鍵約束,又或者是check約束。往往在數據庫系統中已經有了現成的解決方案。數據庫管理員通過直接引用這些解決方案即可以實現特定的功能,而不用再費力的編寫觸發(fā)器來實現。而觸發(fā)器中系統沒有現成的可以引用,而都需要數據庫管理員通過實際清理來進行編寫關系代數的基本操作符?笛卡爾乘積最大的好處是什么?最大的缺點又是什么?答:EQ\o\ac(○,1)基本操作符:SELECTION

(選擇)、PROJECTION(投影)、UNION(并,或稱聯合)、INTERSECTION(交)、DIFFERENCE(差)、CROSS

PRODUCT(積,或稱笛卡爾乘積)。EQ\o\ac(○,2)最大的作用:可將兩張或多張有關聯(即有相同的列)或無關聯的表的數據組合起來。EQ\o\ac(○,3)最大缺點:組合后可能有許多無意義的數據組合。為什么說在實際查詢中自然連接是用得比較多的?答:當兩個關系通過外鍵聯系時,自然聯結將用得非常頻繁。關系代數中對結果有重復元組時,如何處理?SQL中呢?答:EQ\o\ac(○,1)關系代數中:去掉重復元組。

EQ\o\ac(○,2)SQL中:保留重復元組。連接的分類?為何有3種外連接?答:EQ\o\ac(○,1)條件聯結、等聯結、自然聯結、外聯結。EQ\o\ac(○,2)因為R|╳|S有三種情況即可能S中沒有匹配R的行則為左聯結,或R中沒有匹配S的行則為右聯結,若R、S中均無匹配的行,則為全外聯結。二.單項選擇題1.(③)不是關系代數的基本操作。①Selection②Projection③Join④Intersection2.(③)用唯一限制來約束。①主鍵②外鍵③候選鍵④簡單鍵3.(②)與“列”不同義。①字段②元組③成員④屬性三.改錯題(將劃線部分改正填入各題后的括號中)關系代數中笛卡爾乘積操作的好處是可進行選擇和投影。(可將兩張或多張有關聯(即有相同的列)或無關聯的表的數據組合起來)外連接是條件連接的特例。(外連接是自然連接的特列)關系代數是與ER模型有關的查詢語言。(關系模型)六.設有如下圖所示三個關系實例X、Y和Z,請分別求出下列各表達式的值。(1)σA=a1(Y×Z) (2)YZ(3)XYZ答:EQ\o\ac(○,1)B

(C)

A

(C)

b1

c2

a1

c1

b2

c1

a1

c1

b1

c1

a1

c1

b1

c3

a1

c1

b1

c2

a1

c2

b2

c1

a1

c2

b1

c1

a1

c2

b1

c3

a1

c2EQ\o\ac(○,2)A

B

C

a1

b2

c1a1

b1

c1

a1b1c2a2

b1

c3a3

null

c4

EQ\o\ac(○,3)

A

B

C

a1

b1

c1

a1

b1

c2

a1

b2

c1

a2

b1

c3一個電影資料庫有四個實體“電影”,“演員”,“導演”,“電影公司”?!半娪啊钡膶傩杂须娪熬幪?,電影名,電影類型,對白語言;“演員”的屬性有演員工作證號,姓名,出生年,性別;“導演”的屬性有導演工作證號,姓名,出生年,性別;“電影公司”的屬性有公司名稱,所在國家。這些實體間的聯系及它們的屬性有:演員出演電影,為多對多聯系,該聯系含角色屬性;導演執(zhí)導電影,每部電影只由一個導演執(zhí)導;演員屬于電影公司;導演屬于電影公司;電影公司出品電影,有出品年份屬性。請畫出ER圖,要求標出實體的主鍵、聯系的約束類型和鍵約束。將此ER圖轉換為關系模型,要求標出各關系的主鍵,如果存在的話還應指明其候選鍵和外鍵。假定“電影公司”為主表,“導演”為從表,請利用觸發(fā)器方式,定義從表到主表方向的完整性。請用關系代數表達式和SQL分別表達下列查詢①查詢1957年之前出生的男演員的姓名。②查詢2000年環(huán)球公司出品的電影的名字和導演姓名。③查詢張一導演所導演的影片中的主角演員姓名。答:eq\o\ac(○,1)EQ\o\ac(○,2)電影(電影編號,電影名,電影類型,對白語言,導演工作證號,公司名稱),電影編號為主鍵,導演工作證號和公司名稱分別為外鍵。

演員(演員工作證號,姓名,出生年,性別,公司名稱),演員工作證號為主鍵,公司名稱為外鍵。

導演(導演工作證號,姓名,出生年,性別,公司名稱),導演工作證號為主鍵,公司名稱為外鍵。

電影公司(公司名稱,所在國家),公司名稱為主鍵。

出演(演員工作證號,電影編號,角色),(演員工作證號,電影編號)為主鍵,演員工作證號和電影編號分別為外鍵。

執(zhí)導(導演工作證號,電影編號),電影編號為主鍵,導演工作證號和電影編號分別為外鍵。

屬于1(演員工作證號,公司名稱),演員工作證號為主鍵,演員工作證號和公司名稱分別為外鍵。

屬于2(導演工作證號,公司名稱),導演工作證號為主鍵,導演工作證號和公司名稱分別為外鍵。

出品(電影編號,公司名稱,出品年份),電影編號為主鍵,電影編號和公司名稱分別為外鍵。

EQ\o\ac(○,3)CREATE

TRIGGER

導演_iu

ON

導演

FOR

INSERT,

UPDATE

AS

DECLARE

@num_rows

INT

SELECT

@num_rows

=

@@rowcount

IF

@num_rows

=

0

RETURN

IF

(

SELECT

count(*)

FROM

電影公司

d,

inserted

i

WHERE

d.公司名稱

=

i.公司名稱

)

!=

@num_rows

BEGIN

RAISERROR

53334

ROLLBACK

TRANSACTION

RETURN

END

RETURNEQ\o\ac(○,4)EQ\o\ac(○,一)π姓名(σ出生年

<

1957(演員)∩σ性別

=

男(演員))

SELECT

姓名

FROM演員

WHERE出生年

<

1957

AND

性別

=

‘男’EQ\o\ac(○,二)π電影名,

導演.姓名(σ出品年份

=

2000(出品

電影

導演)∩σ公司名稱

=

環(huán)球公司(出品

電影

導演))

SELECT

電影名,

導演.姓名

FROM出品

NATURAL

JOIN

電影NATURAL

JOIN導演

WHERE出品年份

=

2000

AND

公司名稱

=

‘環(huán)球公司’EQ\o\ac(○,三)π演員.姓名(σ導演.姓名

=

張一(導演

執(zhí)導

出演

演員))SELECT

演員.姓名

FROM

導演

NATURAL

JOIN

執(zhí)導

NATURAL

JOIN

出演

NATURAL

JOIN

演員

WHERE

導演.姓名

=

‘張一’

某出版社管理系統有四個實體,即出版社(Publisher)、編輯(Editor)、作者(Author)和書籍(Book)?!俺霭嫔纭钡膶傩杂谐霭嫔缇幋a(Pid)、出版社名稱(Pname)、地址(Paddr)和電話(Ptel);“編輯”的屬性有編輯工號(Eid)、姓名(Ename)、性別(Egender)、出生日期;“作者”的屬性有作者編碼(Aid)、姓名(Aname)、性別(Agender)、電話(Atel);“書籍”的屬性有國際圖書分類號(Isbn)、書名(Bname)、單價(Bprice)。這些實體間的聯系及它們的屬性有:作者“主編”(ZX)書籍,為1:n聯系;編輯“校對”(JD)書籍,為1:n聯系;出版社“出版”(CB)書籍,為1:n聯系;“出版”的屬性有出版日期(Pdate)。請畫出概念數據模型的E-R圖,要求標注聯系的約束類型和鍵約束。將此E-R圖表示的數據模型轉換為關系模型,要求標出各關系的主鍵。給出創(chuàng)建“出版”關系(表)的SQL語句(需要創(chuàng)建相應的主鍵約束和外鍵約束)。創(chuàng)建一個由地址中含有“成都市”的出版社出版的書籍的視圖。請分別用關系代數表達式和SQL查詢語句表達下列查詢:①由出版社“XNJDP”出版的、由編輯名為“MTQ”校對的書籍的ISBN號和書名。②由“男”性作者主編的、且由出版社“XNJDP”在2008.1.1至2008.12.31之間出版的書籍的ISBN號和書名。③由“女”性編輯校對的、且單價在20至40元之間的書籍的ISBN號和書名。答:eq\o\ac(○,1)EQ\o\ac(○,2)出版社Publisher(出版社編碼Pid,出版社名稱Pname,地址Paddr,電話Ptel)

,出版社編碼Pid為主鍵。作者Author(作者編碼Aid,姓名Aname,性別Agender,電話Atel),作者編碼Aid為主鍵。

編輯Editor(編輯編碼Eid,姓名Ename,性別Egender,電話Etel)

,編輯編碼Eid為主鍵。

書籍Book(國際圖書分類號Isbn,書名Bname,單價Bprice,出版社編碼Pid,作者編碼Aid,編輯編碼Eid),國際圖書分類號Isbn為主鍵,出版社編碼Pid和作者編碼Aid和編輯編碼Eid分別為外鍵。

出版CB(出版社編碼Pid,國際圖書分類號Isbn,出版日期Pdate),國際圖書分類號Isbn為主鍵,出版社編碼Pid和國際圖書分類號Isbn分別為外鍵。

主編ZB(作者編碼Aid,國際圖書分類號Isbn),國際圖書分類號Isbn為主鍵,作者編碼Aid和國際圖書分類號Isbn分別為外鍵。

校對JD(編輯編碼Eid,國際圖書分類號Isbn),國際圖書分類號Isbn為主鍵,編輯編碼Eid和國際圖書分類號Isbn分別為外鍵。EQ\o\ac(○,3)CREATE

TABLE

CB

(

Pid

char(20)

NOT

NULL

CONSTRAINT

Pid_const

REFERENCES

Publisher(

Pid)

ON

DELETE

CASCADE

ON

UPDATE

CASCADE,

Isbn

char

(20)

PRIMARY

KEY

CONSTRAINT

Isbn_const

REFERENCES

Book(

Isbn)ON

DELETE

CASCADE

ON

UPDATE

CASCADE,

Pdate

datetime

NOT

NULL)EQ\o\ac(○,4)CREATE

VIEW

Bookview

AS

SELECT

Isbn,Bname,Bprice,Pid,Aid,Eid

FROM

Publisher

NATURAL

JOIN

Book

WHERE

Publisher.Paddr

like

‘%成都市%’EQ\o\ac(○,5)EQ\o\ac(○,一)

πIsbn,Bname(σPname

=

XNJDP(Publisher

Editor

Book)∩σEname

=

MTQ(Publisher

Editor

Book))SELECT

Isbn,Bname

FROM

Publisher

NATURAL

JOIN

Editor

NATURAL

JOIN

Book

WHERE

Pname

=

‘XNJDP’

AND

Ename

=

‘MTQ’

EQ\o\ac(○,二)πIsbn,Bname(σAgender

=

男(Publisher

Author

Book

CB)∩σ

溫馨提示

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

評論

0/150

提交評論