《數據庫技術與應用》第5章 習題答案_第1頁
《數據庫技術與應用》第5章 習題答案_第2頁
《數據庫技術與應用》第5章 習題答案_第3頁
《數據庫技術與應用》第5章 習題答案_第4頁
《數據庫技術與應用》第5章 習題答案_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

《數據庫技術與應用》第5章習題答案《數據庫技術與應用》第5章習題答案《數據庫技術與應用》第5章習題答案xxx公司《數據庫技術與應用》第5章習題答案文件編號:文件日期:修訂次數:第1.0次更改批準審核制定方案設計,管理制度第5章數據庫完整性與安全性1.什么是數據庫的完整性什么是數據庫的安全性兩者之間有什么區別和聯系解:數據庫的完整性是指數據庫中數據的正確性、有效性和相容性,其目的是防止不符合語義、不正確的數據進入數據庫,從而來保證數據庫系統能夠真實的反映客觀現實世界。數據庫安全性是指保護數據庫,防止因用戶非法使用數據庫造成數據泄露、更改或破壞。數據的完整性和安全性是兩個不同的概念,但是有一定的聯系:前者是為了防止數據庫中存在不符合語義的數據,防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出所造成的無效操作和錯誤結果。后者是保護數據庫防止惡意的破壞和非法的存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數據。2.什么是數據庫的完整性約束條件完整性約束條件可以分為哪幾類解:完整性約束條件是指數據庫中的數據應該滿足的語義約束條件。一般可以分為六類:靜態列級約束、靜態元的說明,包括以下幾個方面:=1\*GB3①數據類型的約束,包括數據的類型、長度、單位、精度等;=2\*GB3②對數據格式的約束;=3\*GB3③對取值范圍或取值集合的約束;=4\*GB3④=5\*GB3⑤=2\*GB3②參照完整性約束;=3\*GB3③函數依賴約束。動態列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面:=1\*GB3①修改列定義時的約束;=2\*GB3②修改列值時的約束。動態元組約束是指修改某個元組的值時需要參照其舊值,并且新舊值之間需要滿足某種約束條件。動態關系約束是加在關系變化前后狀態上的限制條件,例如事務一致性、原子性等約束條件。3.試述DBMS如何實現完整性控制。解:為了維護數據庫的完整性,DBMS提供了以下三種機制:完整性約束條件定義完整性約束條件也稱為完整性規則,是數據庫中的數據必須滿足的語義約束條件。SQL標準使用了一系列概念來描述完整性,包括關系模型的實體完整性、參照完整性和用戶定義完整性。這些完整性一般由SQL的DDL語義來實現。它們作為數據庫模式的一部分存入數據字典中。=2\*GB3②完整性檢查方法檢查數據是否滿足已定義的完整性約束條件稱為完整性檢查。一般在INSERT、UPDATE、DELETE語句執行后開始檢查,也可以在事務提交時檢查。檢查這些操作執行后數據庫中的數據是否違背了完整性約束條件。=3\*GB3③違約處理若發現用戶操作違背了完整性約束條件,應采取一定的措施,如拒絕(NOACTION)執行該操作,或級連(CASCADE)執行其它操作,進行違約處理以保證數據的完整性。4.現有以下四個關系模式:供應商(供應商編號,姓名,電話,地點),其中供應商編號為主碼;零件(零件編號,零件名稱,顏色,重量),其中零件編號為主碼;工程(工程編號,工程名稱,所在地點),其中工程編號為主碼;供應情況(供應商編號,零件編號,工程編號,數量),其中供應商編號,零件編號,工程編號為主碼用SQL語句定義這四個關系模式,要求在模式中完成以下完整性約束條件的定義:=1\*GB3①定義每個模式的主碼;=2\*GB3②定義參照完整性;=3\*GB3③定義零件重量不得超過100千克。解:CREATESCHEMASupplier_schemaCREATETABLESupplier(SnoCHAR(5)PRIMARYKEY,SnameCHAR(20)NOTNULL,PhoneCHAR(13),AddressCHAR(30));CREATESCHEMAPart_schemaCREATETABLEPart(PnoCHAR(7)PRIMARYKEY,PnameCHAR(20)NOTNULL,ColorCHAR(10),WeightSMALLINTCHECK(Weight<=100));CREATESCHEMAProject_schemaCREATETABLEProject(JnoCHAR(7)PRIMARYKEY,JnameCHAR(20)NOTNULL,JaddressCHAR(30));CREATESHEMASPJ_shemaCREATETABLESPJ(SnoCHAR(5),PnoCHAR(7),JnoCHAR(7),QuantitySMALLINT,PRIMARYKEY(Sno,Pno,Jno),FOREIGNKEY(Sno)REFERENCESSupplier(Sno),FOREIGNKEY(Pno)REFERENCESPart(Pno),FOREIGNKEY(Jno)REFERENCESProject(Jno));5.在關系數據庫系統中,當操作違反實體完整性、參照完整性和用戶自定義的完整性約束條件時,一般是如何分別進行處理的。解:(1)按實體完整性規則自動進行檢查。包括:檢查主碼值是否唯一,如果不唯一則拒絕插入或修改。=2\*GB3②檢查主碼的各個屬性是否為空,只要有一個為空就拒絕插入或修改。(2)按參照完整性檢查,違約處理的策略如下:拒絕(NOACTION)執行。不允許該操作執行,該策略一般設置為默認策略。在被參照關系中刪除元組:僅當參照關系中沒有任何元組的外碼值與被參照關系中要刪除元組的主碼值相同時,系統才執行刪除操作,否則拒絕此操作。=2\*GB3②級聯(CASCADE)操作。當刪除或修改被參照表的一個元組造成了與參照表的不一致,則刪除或修改參照表中的所有造成不一致的元組。級聯操作必須在定義外碼時給出顯式定義。=3\*GB3③設置為空值(SETNULL)。當刪除或修改被參照表的一個元組時造成了不一致,則將參照表中的所有造成不一致的元組的對應屬性設置為空值。=4\*GB3④置空值刪除(NULLIFIES)。刪除被參照關系的元組,并將參照關系中相應元組的外碼值置空值。(3)按用戶自定義完整性檢查,違約處理:當往表中插入元組或修改屬性的值時,RDBMS就檢查屬性上的約束條件是否被滿足,如果不滿足則操作被拒絕執行。6.觸發器的作用是什么同一表上的多個觸發器被激活時遵循的執行順序是什么解:觸發器是用戶定義在關系表上的一類由事件驅動的特殊過程,它不需要由用戶調用執行,而是在用戶對表中的數據進行UPDATE、INSERT或DELETE操作時自動觸發執行。它可以實現數據庫中相關表的級聯修改,能實現比CHECK語句更為復雜的約束,能提供數據庫修改前后數據變化的前后狀態,能維護非規范化數據。同一表上的多個觸發器激活時遵循以下執行順序:執行該表上的BERORE觸發器;=2\*GB3②激活觸發器的SQL語句;=3\*GB3③執行該表上的AFTER觸發器。此外,對于同一個表上的多個BEFORE(AFTER)觸發器,遵循“誰先創建誰先執行”的原則,即按照觸發器創建的時間先后順序執行。有些RDBMS是按照觸發器名稱的字母排序順序來執行觸發器的。7.什么是“權限”用戶訪問數據庫有哪些權限對數據模式進行修改有哪些權限解:用戶(或應用程序)使用DB的方式稱為權限。用戶訪問數據庫有四種權限:Read(讀權限)、Insert(插入)、Update(修改)和Delete(修改)。用戶對數據模式進行修改有四種權限:Index(索引權限:允許用戶創建和刪除索引),Resource(資源權限:允許用戶創建新的關系)、Alteration(修改權限:允許用戶在關系結構中加入或刪除屬性)和Drop(撤銷權限:允許用戶撤銷關系)。8.安全性措施中的強制存取控制是如何實現的?

解:對每個數據對象賦予一定的密級,級別從高到低有:絕密級、機密級、秘密級、公用級,每個用戶也具有相應的級別,稱為許可證級別,密級和許可證級別都是有序的,如絕密>機密>秘密>公用,采用規則是:一是用戶只能查看比它級別低或是同級的數據,二是用戶只能修改和它同級的數據。9.SQL提供了哪些數據控制語句?舉例說明。

解:數據控制語言是用來設置或者更改數據庫用戶或角色權限的語句。SQL中,這些語句包括GRANT、REVOKE等語句。GRANT語句向用戶授予權限,REVOKE語句收回授予的權限。例如:描述把查詢Course表的權限授予所有用戶的控制語句為GRANTSELECTONCourseTOPUBLIC;描述收回用戶U3修改學生學號的查詢權限的控制語句為:REVOKEUPDATE(Sno)ONTABLEStudentFROMU3;10.使用角色有什么好處涉及角色的SQL語句有哪些

解:使用角色的好處:數據庫角色是指被命名的一組與數據庫操作相關的權限。角色是權限的集合,可以為一組具有相同權限的用戶創建一個角色,角色簡化了授權操作。使用角色進行授權必須先創建角色,將數據庫對象上的存取權限授予角色,才能將角色授予用戶,使得用戶擁有角色所具有的所有存取權限。對一個角色授予、拒絕或廢除的權限也適用于該角色的任何成員。涉及角色的SQL語句有:角色的創建CREATEROLE<角色名>給角色授權GRANT<權限>[,<權限>]…ON<對象類型>對象名TO<角色>[,<角色>]…將一個角色授予其它的角色或用戶GRANT<角色1>[,<角色2>]…TO<角色3>[,<用戶1>]…[WITHADMINOPTION]角色權限的收回REVOKE<權限>[,<權限>]…ON<對象類型><對象名>FROM<角色>[,<角色>]…11.現有以下兩個關系模式:雇員(員工號,姓名,年齡,工資,部門號,職務)部門(部門號,名稱,經理名,電話)使用SQL提供的功能完成如下操作:=1\*GB3①允許WangHong對兩個關系進行任何操作,并可以將他的權限轉授他人。=2\*GB3②允許所有用戶查詢部門關系。=3\*GB3③允許所有用戶查詢雇員關系中除員工號、年齡和工資之外的所有屬性。=4\*GB3④允許LiLan對雇員關系中的工資屬性進行修改。=5\*GB3⑤定義一個角色Manager,可以對部門關系進行任何操作,對雇員關系除了不能修改工資外,可以進行任何操作。=6\*GB3⑥SongHua是秘書,擁有角色Manager的權限。=7\*GB3⑦收回=1\*GB3①~=4\*GB3④的授權。=8\*GB3⑧不允許角色Manager修改雇員的職務屬性值。解:=1\*GB3①允許WangHong對兩個關系進行任何操作,并可以將他的權限轉授他人:GRANTALLPRIVILEGESONTABLE雇員,部門TOWangHong;WITHGRANTOPTION;=2\*GB3②允許所有用戶查詢部門關系:GRANTSELECTONTABLE部門TOPUBLIC;=3\*GB3③允許所有用戶查詢雇員關系中除員工號、年齡和工資之外的所有屬性:GRANTSELECT(姓名,部門號,職務)ONTABLE雇員TOPUBLIC;=4\*GB3④允許LiLan對雇員關系中的工資屬性進行修改:GRANTUPDATE(工資)ONTABLE部門TOLiLan;=5\*GB3⑤定義一個角色Manager,可以對部門關系進行任何操作,對雇員關系除了不能修改工資外,可以進行任何操作:CREATEROLEManager;GRANTALLPRIVILEGESONTABLE雇員,部門TOWangHong;REVOKEUPDATE(工資)ONTABLE部門FROMManager;=6\*GB3⑥SongHua是秘書,擁有角色Manager的權限:GRANTManagerT

溫馨提示

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

評論

0/150

提交評論