第一篇:數據庫期末復習教案[定稿]
15計科本《數據庫系統原理與應用》期末復習綱要
一、題型與分值分布1、2、3、4、單項選擇20題,計20分 填空題,每空1分,計10分 簡答題4小題,計20分 綜合應用題2題,計50分
(1)概念模型(ER圖),轉化成相關的關系模型并寫出主碼與外碼,并建立相關的關系表(20分)(2)T—SQL語名的作用,6小題,計30分
二、具體知識要點及課后習題
具體知識點: 第一章
1、數據庫中的數據具有哪些基本特點。(永久存儲、有組織、可共享)
2、數據庫系統具有哪些基本特點。(數據共享、數據完整性、數據獨立性及較小的冗余度)
3、4、數據庫系統與數據庫、數據庫管理系統之間的關系? 數據庫中的數據獨立性分為物理獨立性和邏輯獨立性,分別指的是什么?P11-125、6、模式
7、數據庫管理系統的功能結構為P16 數據庫系統的三級數據模式結構:邏輯模式、外模式、內數據庫系統的二級映象技術是指外模式與模式之間的映象,它不僅在三級數據模式之間建立了聯系,同時也保證了數據的獨立性。
8、數據的正確、有效和相容稱之為數據的完整性 第二章
1、信息的三種世界是指現實世界、信息世界和計算機世界(數據世界)。
2、數據庫系統的核心是數據模型,、概念模型是現實世界的第一層抽象,這一類模型中最著名的模型是實體-關系模型。
3、數據模型的三要素是:數據結構、數據操作和完整性約束條件。如“實體完整性”約束規則,要求關系中的“主碼”不允許取空值
4、數據庫系統中常見的數據模型有:層次模型、網狀模型和關系模型
5、概念模型的特點是:對現實世界的第一層抽象;與軟、硬件無關;從用戶觀點對數據建模。邏輯模型的特點是:對現實世界的第二層抽象;與硬件無關,與軟件有關;從計算機實現觀點對數據建模。第三章
1、數據庫的概念結構設計(E-R圖)P55-58: E-R模型是對現實世界的一種抽象,E-R圖的主要成分是實體、聯系和屬性;各分E-R圖之間的沖突主要有屬性沖突、命名沖突和結構沖突三類。
2、概念模型向關系模型的轉換(邏輯結構設計)P62
3、概念數據模型不依賴于任何數據庫管理系統。實體-關系模型是概念模型中最著名的一種。第四章
1、數據庫中關系的類型有基本表、視圖表和查詢表三種,它們各有何不同P91
2、關系中的基本名詞:元組、屬性、候選碼和主碼、全碼、主屬性和非主屬性P91 一個關系只有一個主碼
3、數據庫中基本關系的性質P92
4、關系的完整性 P95
5、關系操作語言的種類:關系代數語言、關系演算語言、基于映象的語言(如SQL是一種映象,是非過程化的)。SQL包含數據定義、數據操作和數據控制三種功能
5、關系模型的完整性約束有三類:實體完整性、參照完整性和用戶定義的完整性 P96 主要掌握主碼、外碼等
6、專門的關系運算:選擇、投影、連接
7、關系代數運算中,傳統的集合運算有笛卡爾積、并、交和差
8、數據庫數據具有永久存儲、有組織、可共享三個基本特點。重點掌握4.2.3用關系代數表示檢索的實例 第五章
1、SQL語句分類,按功能分為數據定義語句、數據操縱語句、數據控制語句
2、SQL的數據定義包括基本表、索引、視圖和數據庫(重點掌握視圖的建立和用SQL語句寫出查詢程序),如在關系數據庫系統中,為了簡化用戶的查詢操作,而又不增加數據的存儲空間,常用的方法是創建視圖
學會同時用SQL語言和關系代數實現下列相關操作
P119 例5-
1、5-
2、5-3
3、SQL的數據更新語句有插入(INSERT)、修改(UPDATE)與刪除(DELTE)三種
4、數據控制是系統通過對數據用戶的使用權限加以限制而保證數據安全的重要措施。SQL的數據控制語句包括授權(Grant)、收權(Revoke)和拒絕訪問(Deny)三種。用戶權限包含數據對象和操作類型兩個要素;而數據庫角色是被命名的一組與數據庫操作相關的權限,角色是權限的集合
5、利用游標進行查詢需要4種語句,分別是說明游標、打開游標、推進游標、關閉游標
第六章
1、數據庫對象包含哪些?P156 SQL Server2008的數據庫對象有很多,例如:表、視圖、角色、索引(或存儲過程、默認值、數據類型、觸發器、約束)
2、數據庫類別P157
3、數據庫對象是數據庫的邏輯文件。SQL Server2008的數據庫對象包括表、視圖、角色、索引、數據類型、默認值、存儲過程、觸發器和約束等。了解各自的含義。
4、SQL Server2008的數據庫中有3種物理文件:基本數據文件、輔助數據和日志文件
5、掌握視圖的創建和維護方法。視圖是根據子模式建立的虛擬表。視圖的有哪些優點呢?
如:視圖能夠簡化用戶的操作;視圖使用戶能以多種角度看待同一數據;視圖對重構數據庫提供了一定程度的邏輯獨立性;視圖能夠對機密數據提供安全保護 P247
6、掌握存儲過程和觸發器的創建和維護.P179
7、Trantsact-SQL語言:重點放在數據操縱語言P192 第七章
1、關系模式應滿足的基本要求P214
2、已知關系模式R及其上的相關函數依賴集合,會求出該關系模式對應的候選碼。
例1:已知關系模式R(A,B,C,D,E)及其上的函數依賴集合F={A→D,B→C,E→A },該關系模式 的候選碼是(BE)
例2:學生表(id,name,sex,age,depart_id,depart_name),存在的函數依賴是id→{name,sex,age,depart_id}; dept_id→dept_name,其滿足2NF
3、重點掌握課本習題P239 3 P240 15(1)第八章
1、數據庫安全性是指什么?P244
2、數據庫安全性控制的一般方法有哪些?P244
3、數據庫完整性是指數據的正確性和相容性。P259(1)數據完整性約束分為表級約束、元組約束和屬性約束
(2)SQL server使用約束、默認、規則和觸發器4種方法定義和實施數據庫完整性功能
4、數據庫并發控制。數據庫的并發控制就是控制數據庫,防止多用戶并發使用數據庫時造成數據錯誤和程序運行錯誤,保證數據的完整性。解決事務并發操作帶來的數據不一致性,常用封鎖機制。
5、事務的概念和特征P265 并發操作帶來的數據不一致性包括3類:丟失修改、不可重復讀和讀“臟”數據。
6、封鎖:封鎖機制作為并發控制的重要手段,利用封鎖的特性和封鎖協議,它在并發操作保證事務的隔離性,用正確的方式調度并發操作,使一個用戶事務的執行不受其他事務的干擾,從而避免造成數據的不一致。
(1)鎖的類型:排他鎖(X鎖)和共享鎖(S鎖),它們各自的特點是什么。P268(2)封鎖協議:一級封鎖協議、二級封鎖協議(如1:事務T對要修改數據必須先加X鎖,直到事務結束才釋放X鎖;對要讀取數據必須先加S鎖;如2:若事務T對數據對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖)、三級封鎖協議;
封鎖出現的問題及解決的方法。舉例說明何謂活鎖,如何解決活鎖?P270
7、數據庫恢復技術
恢復機制涉及的兩個關鍵問題是:第一,如何建立備份數據;第二,如何利用這些備份數據實施數據恢復。建立備份數據最常用的技術是數據轉儲和登錄日志文件。
數據庫的備份方法通常有完整備份、差異備份、事務日志備份
8、何謂兩段鎖協議 P271
9、何謂“并發調度可串行化” P270;何謂“可串行化調度” P271
10、用戶權限是由兩個要素組成的,分別是數據對象和操作類型
11、數據庫角色是被命名的一組與數據庫操作相關的權限,角色是權限的集合。
課后習題1、2、3、第1章P19:
一、4;5;10
二、全部 第2章P42:
二、全部
第3章P85:
一、19、22、23
二、全部
4、第4章P111:
一、14、15、16
二、8、911、21、22、24、25、32、33
5、第5章 P127 46、7、8、第6章P176:
一、2、3
二、1、4、6、7、8、9、10、11、12 第7章P205:
二、1、6、7、8、9 第8章P252:
一、1、3、12、13、15、26
二、8、12、13、15、16、18
第二篇:數據庫期末復習總結
數據庫原理綜合習題答案
1.1 名詞解釋
(1)DB:即數據庫(Database),是統一管理的相關數據的集合。DB能為各種用戶共享,具有最小冗余度,數據間聯系密切,而又有較高的數據獨立性。
(2)DBMS:即數據庫管理系統(Database Management System),是位于用戶與操作系統之間的一層數據管理軟件,為用戶或應用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數據控制。DBMS總是基于某種數據模型,可以分為層次型、網狀型、關系型、面向對象型DBMS。
(3)DBS:即數據庫系統(Database System),是實現有組織地、動態地存儲大量關聯數據,方便多用戶訪問的計算機軟件、硬件和數據資源組成的系統,即采用了數據庫技術的計算機系統。
(4)1:1聯系:如果實體集E1中的每個實體最多只能和實體集E2中的一個實體有聯系,反之亦然,那么實體集E1對E2的聯系稱為“一對一聯系”,記為“1:1”。
(5)1:N聯系:如果實體集E1中每個實體與實體集E2中任意個(零個或多個)實體有聯系,而E2中每個實體至多和E1中的一個實體有聯系,那么E1對E2的聯系是“一對多聯系”,記為“1:N”。
(6)M:N聯系:如果實體集E1中每個實體與實體集E2中任意個(零個或多個)實體有聯系,反之亦然,那么E1對E2的聯系是“多對多聯系”,記為“M:N”。
(7)數據模型:模型是對現實世界的抽象。在數據庫技術中,表示實體類型及實體類型間聯系的模型稱為“數據模型”。它可分為兩種類型:概念數據模型和結構數據模型。
(6)概念數據模型:是獨門于計算機系統的模型,完全不涉及信息在系統中的表示,只是用來描述某個特定組織所關心的信息結構。
(9)結構數據模型:是直接面向數據庫的邏輯結構,是現實世界的第二層抽象。這類模型涉及到計算機系統和數據庫管理系統,所以稱為“結構數據模型”。結構數據模型應包含:數據結構、數據操作、數據完整性約束三部分。它主要有:層次、網狀、關系三種模型。
(10)層次模型:用樹型結構表示實體類型及實體間聯系的數據模型。
(11)網狀模型:用有向圖結構表示實體類型及實體間聯系的數據模型。
(12)關系模型:是目前最流行的數據庫模型。其主要特征是用二維表格結構表達實體集,用外鍵表示實體間聯系。關系模型是由若干個關系模式組成的集合。
(13)概念模式:是數據庫中全部數據的整體邏輯結構的描述。它由若干個概念記錄類型組成。概念模式不僅要描述概念記錄類型,還要描述記錄間的聯系、操作、數據的完整性、安全性等要求。
(14)外模式:是用戶與數據庫系統的接口,是用戶用到的那部
分數據的描述。
(15)內模式:是數據庫在物理存儲方面的描述,定義所有的內部記錄類型、索引和文件的組成方式,以及數據控制方面的細節。
(16)模式/內模式映象:這個映象存在于概念級和內部級之間,用于定義概念模式和內模式間的對應性,即概念記錄和內部記錄間的對應性。此映象一般在內模式中描述。
(17)外模式/模式映象:這人映象存在于外部級和概念級之間,用于定義外模式和概念模式間的對應性,即外部記錄和內部記錄間的對應性。此映象都是在外模式中描述。
(18)數據獨立性:在數據庫技術中,數據獨立性是指應用程序和數據之間相互獨立,不受影響。數據獨立性分成物理數據獨立性和邏輯數據獨立性兩級。
(19)物理數據獨立性:如果數據庫的內模式要進行修改,即數據庫的存儲設備和存儲方法有所變化,那么模式/內模式映象也要進行相應的修改,使概念模式盡可能保持不變。也就是對模式的修改盡量不影響概念模式。
(20)邏輯數據獨立性:如果數據庫的概念模式要進行修改(如增加記錄類型或增加數據項),那么外模式/模式映象也要進行相應的修改,使外模式盡可能保持不變。也就是對概念模式的修改盡量不影響外模式和應用程序。
(21)宿主語言:在數據庫技術中,編寫應用程序的語言仍然是一些高級程序設計語言,這些語言稱為宿主語言(host language),簡稱主語言。
(22)DDL:數據定義語言(Data Definition Language),用于定義數據庫的三級結構,包括外模式、概念模式、內模式及其相互之間的映象,定義數據的完整性、安全控制等約束。
(23)DML:數據操縱語言(Data Manipulation Language),由DBMS提供,用于讓用戶或程序員使用,實現對數據庫中數據的操作。DML分成交互型DML和嵌入型DML兩類。依據語言的級別,DML又可分成過程性DML和非過程性DML兩種。
(24)交互型DML:如果DML自成系統,可在終端上直接對數據庫進行操作,這種DML稱為交互型DML。
(25)嵌入型DML:如果DML嵌入在主語言中使用,此時主語言是經過擴充能處理DML語句的語言,這種DML稱為嵌入型DML。
(26)過程性DML:用戶編程時,不僅需要指出“做什么”(需要什么樣的數據),還需要指出“怎么做”(怎么獲得數據)。層狀、網狀的DML屬于過程性語言。
(27)非過程性DML:用戶編程時,只需要指出“做什么”,不需要指出“怎么做”。
Notice:以上關于DML的各個概念單獨出現時,首先要解釋DML的含義。
(28)DD:數據字典(Data Dictionary),數據庫系統中存放三級結構定義的數據庫稱為數據字典。對數據庫的操作都要通過訪問DD才能實現。
(29)DD系統:管理DD的實用程序稱為“DD系統”。
1.2 文件系統階段的數據管理有些什么缺陷?試舉例說明。
文件系統有三個缺陷:
(1)數據冗余性(redundancy)。由于文件之間缺乏聯系,造成每個應用程序都有對應的文件,有可能同樣的數據在多個文件中重復存儲。
(2)數據不一致性(inconsistency)。這往往是由數據冗余造成的,在進行更新操作時,稍不謹慎,就可能使同樣的數據在不同的文件中不一樣。
(3)數據聯系弱(poor data relationship)。這是由文件之間相互獨立,缺乏聯系造成的。
1.3 數據庫階段的數據管理有些什么特點?
(1)采用復雜的數據模型表示數據結構
(2)有較高的數據獨立性(數據結構分成用戶的邏輯結構、整體邏輯結構和物理結構三級)
(3)數據庫系統為用戶提供方便的用戶接口,可以使用查詢語言、終端命令或程序方式操作數據,也可以用程序方式操作數據庫。
(4)系統提供了四個方面的數據控制功能:數據庫的恢復、并發控制、數據完整性和數據安全性,以保證數據庫中數據是安全的、正確的和可靠的。
(5)對數據的操作不一定以記錄為單位,還可以數據項為單位,增加了系統的靈活性。
1.4 你怎樣理解實體、屬性、記錄、字段這些概念的類型和值的差別?試舉例說明。
實體(entity):是指客觀存在可以相互區別的事物。實體可以是具體的對象,如:一個學生,一輛汽車等;也可以是抽象的事件,如:一次借書、一場足球賽等。
屬性(attribute):實體有很多特性,每一個特性稱為屬性。每個屬性有一個值域,其類型可以是整數型、實數型、字符串型。比如,學生(實體)有學號、姓名、年齡、性別等屬性,相應值域為字符、字符串、整數和字符串型。
字段(field):標記實體屬性的命名單位稱為字段或數據項。它是可以命名的最小信息單位,所以又稱為數據元素或初等項。字段的命名往往和屬性名相同,比如,學生有學號、姓名、年齡、性別等字段。
記錄(record):字段的有序集合稱為記錄。一般用一個記錄描述一個實體,所以記錄又可以定義為能完整地描述一個實體的字段集。如:一個學生記錄,由有序的字段集(學號、姓名、年齡、性別等)組成。
1.5 邏輯記錄與物理記錄,邏輯文件與物理文件有些什么聯系和區別?
聯系:
(1)邏輯記錄與物理記錄都是記錄,是字段的有序集合;
(2)邏輯文件與物理文件都是文件,是同一類記錄的匯集。
區別:
(1)邏輯記錄與邏輯文件是邏輯數據描述,物理記錄與物理文件是物理數據描述。
(2)物理數據描述是指數據在存儲設備上的存儲方式,物理記錄、物理文件(還有物理聯系、物理結構等術語),都是用來描述實際存儲設備上的數據。
(3)邏輯數據描述是指程序員或用戶用以操作的數據形式,是抽象的概念化數據。邏輯記錄、邏輯文件(還有邏輯聯系、邏輯結構等術語),都是用戶觀點的數據描述。
1.6 為某百貨公司設計一個ER模型。
百 貨管轄若干個連鎖商店,每家商店經營若干商品,每家商店有若干職工,但每個職工只能服務于一家商店。實體類型“商店”的屬性有:商店編號,店名,店址,店經理。實體類型“商品”的屬性有:商品編號,商品名,單價,產地。實體類型“職工”的屬性有:職工編號,職工名,性別,工資。在聯系中應反映出職工參加某商店工作的開始時間,商店銷售商品的月銷售量。
試畫出反映商店、商品、職工實體類型及聯系類型的ER圖,并將其轉換成關系模式集。
實體:商店(商店編號,店名,店址,店經理)
商品(商品編號,商品名,單價,產地)
職工(職工編號,職工名,性別,工資)
聯系:SC(商店—商品之間1:N的聯系,聯系屬性為“職工參加商店工作的開始時間”。
SE(商店—職工之間1:N的聯系),聯系屬性為“月銷售量”。
關系模式集:商店模式(商店編號,店名,店址,店經理)
商品模式(商品編號,商品名,單價,產地,商店編號,月銷售量)
職工模式(職工編號,職工名,性別,工資,商店編號,開始時間)
1.7 試述ER模型、層次模型、網狀模型、關系模型和面向對象模型的主要特點。
ER模型的主要特點:
(1)優點:接近于人的思維,容易理解;與計算機無關,用戶容易接受。
(2)缺點:只能說明實體間語義的聯系,不能進一步說明詳細的數據結構。
層次模型的特點:
(1)優點:記錄之間的聯系通過指針實現,查詢效率較高。
(2)缺點:只能表示1:N聯系,實現M:N結構較復雜;由于層次順序的嚴格和復雜,引起數據的查詢和更新操作也很復雜。
網狀模型的特點:
(1)優點:記錄之間聯系通過指針實現,M:N聯系也容易實現(每個M:N聯系可拆成兩個1:N聯系),查詢效率較高。
(2)缺點:編寫應用程序比較復雜,程序員必須熟悉數據庫的邏輯結構。
關系模型的特點:
用關鍵碼而不是用指針導航數據,表格簡單,用戶易懂,編程時并不涉及存儲結構、訪問技術等細節。
1.8 試述概念模式在數據庫結構中的重要地位。
概念模式是數據庫中
全部數據的整體邏輯結構的描述。它由若干個概念記錄類型組成。概念模式不僅要描述概念記錄類型,還要描述記錄間的聯系、操作、數據的完整性、安全性等要求。數據按外模式的描述提供給用戶,按內模式的描述存儲在磁盤中,而概念模式提供了連接這兩級的相對穩定的中間觀點,并使得兩級的任何一級的改變都不受另一級的牽制。
1.9 數據獨立性與數據聯系這兩個概念有什么區別?
數據獨立性是指應用程序與數據之間相互獨立,不受影響。
數據聯系是指同一記錄內部各字段間的聯系,以及記錄之間的聯系。
1.10 試述DBMS在用戶訪問數據庫過程中所起的作用.用戶對數據庫進行操作,DBMS把操作從應用程序帶到外部級、概念級、再導向內部級,進而操作存儲器中的數據。
(結合P22“用戶訪問數據的過程”來理解)
1.11 試述DBMS的主要功能。
DBMS的主要功能有:
(1)數據庫的定義功能
(2)數據庫的操縱功能
(3)數據庫的保護功能
(4)數據庫的存儲管理
(5)數據庫的維護功能
(6)數據字典
1.12 試敘DBMS對數據庫的保護功能。
DBMS對數據庫的保護主要通過四個方面實現:
(1)數據庫的恢復。
(2)數據庫的并發控制。
(3)數據庫的完整性控制。
(4)數據庫的安全性控制。
1.13 試敘DBMS對數據庫的維護功能。
DBMS中有一些程序提供給數據庫管理員運行數據庫系統時使用,這些程序起著數據庫維護的功能。
主要有四個實用程序:
(1)數據裝載程序(loading)
(2)備份程序(backup)
(3)文件重組織程序
(4)性能監控程序
1.14 從模塊結構看,DBMS由哪些部分組成?
從模塊結構看,DBMS由兩大部分組成:查詢處理器和存儲管理器
(1)查詢處理器有四個主要成分:DDL編譯器,DML編譯器,嵌入型DML的預編譯器,查詢運行核心程序
(2)存儲管理器有四個主要成分:授權和完整性管理器,事務管理器,文件管理器,緩沖區管理器
(以上幾題具體可參照書上p20-21)
1.15 DBS由哪幾個部分組成?
DBS由四部分組成:數據庫、硬件、軟件、數據庫管理員。
1.16 什么樣的人是DBA?DBA應具有什么素質?DBA的職責是什么?
DBA是控制數據整體結構的人,負責DBS的正常運行。DBA可以是一個人,在大型系統中也可以是由幾個人組成的小組。DBA承擔創建、監控和維護整個數據庫結構的責任。
DBA應具有下列素質:
(1)熟悉企
業全部數據的性質和用途;
(2)對用戶的需求有充分的了解;
(3)對系統的性能非常熟悉。
DBA的主要職責有五點:
(1)概念模式定義
(2)內模式定義
(3)根據要求修改數據庫的概念模式和內模式
(4)對數據庫訪問的授權
(5)完整性約束的說明
1.17 試對DBS的全局結構作詳細解釋。
參照教材p24-25。
1.18 使用DBS的用戶有哪幾類? 使用DBS的用戶有四類:
1)DBA
2)專業用戶
3)應用程序員
4)最終用戶
1.19 DBMS的查詢處理器有哪些功能?
DBMS的查詢處理器可分成四個成分:
1)DML編譯器
2)嵌入型DML的預編譯器
3)DDL編譯器
4)查詢運行核心程序
(各成分功能參照P24)
1.20 DBMS的存儲處理器有哪些功能?
DBMS的存儲處理器提供了應用程序訪問數據庫中數據的界面,可分成四個成分:
1)授權和完整性管理器
2)事務管理器
3)文件管理器
4)緩沖區管理器
(各成分功能參照P25)
1.21 磁盤存儲器中有哪四類主要的數據結構?
數據文件:存儲了數據庫中的數據;
數據字典(DD):存儲三級結構的描述;
索引文件:為提高查詢速度而設置的邏輯排序手段;
統計數據組織:存儲DBS運行時統計分析數據。
(1)關系模型:用二維表格結構表示實體集,外鍵表示實體間聯系的數據模型稱為關系模型。
(2)關系模式:關系模式實際上就是記錄類型。它的定義包括:模式名,屬性名,值域名以及模式的主鍵。關系模式不涉及到物理存儲方面的描述,僅僅是對數據特性的描述。
(3)關系實例:元組的集合稱為關系和實例,一個關系即一張二維表格。
(4)屬性:實體的一個特征。在關系模型中,字段稱為屬性。
(5)域:在關系中,每一個屬性都有一個取值范圍,稱為屬性的值域,簡稱域。
(6)元組:在關系中,記錄稱為元組。元組對應表中的一行;表示一個實體。
(7)超鍵:在關系中能唯一標識元組的屬性集稱為關系模式的超鍵。
(8)候選鍵:不含有多余屬性的超鍵稱為候選鍵。
(9)主鍵:用戶選作元組標識的一個候選鍵為主鍵。(單獨出現,要先解釋“候選鍵”)
(10)外鍵:某個關系的主鍵相應的屬性在另一關系中出現,此時該主鍵在就是另一關系的外鍵,如有兩個關系S和SC,其中S#是關系S的主鍵,相應的屬性S#在關系SC中也出現,此時S#就是關系SC的外鍵。
(11)實體完整性規則:這條
規則要求關系中元組在組成主鍵的屬性上不能有空值。如果出現空值,那么主鍵值就起不了唯一標識元組的作用。
(12)參照完整性規則: 這條規則要求“不引用不存在的實體”。其形式定義如下:如果屬性集K是關系模式R1的主鍵,K也是關系模式R2的外鍵,那么R2的關系中,K的取值只允許有兩種可能,或者為空值,或者等于R1關系中某個主鍵值。這條規則在使用時有三點應注意: 1)外鍵和相應的主鍵可以不同名,只要定義在相同值域上即可。2)R1和R2也可以是同一個關系模式,表示了屬性之間的聯系。3)外鍵值是否允許空應視具體問題而定。
(13)過程性語言:在編程時必須給出獲得結果的操作步驟,即“干什么”和“怎么干”。如Pascal和C語言等。
(14)非過程性語言:編程時只須指出需要什么信息,不必給出具體的操作步驟。各種關系查詢語言均屬于非過程性語言。
(15)無限關系:當一個關系中存在無窮多個元組時,此關系為無限關系。如元組表達式{t|┐R(t)}表示所有不在關系R中的元組的集合,這是一個無限關系。
(16)無窮驗證:在驗證公式時需對無窮多個元組進行驗證就是無窮驗證。如驗證公式(u)(P(u))的真假時需對所有的元組u進行驗證,這是一個無窮驗證的問題。
2.2 為什么關系中的元組沒有先后順序?
因為關系是一個元組的集合,而元組在集合中的順序無關緊要。因此不考慮元組間的順序,即沒有行序。
2.3 為什么關系中不允許有重復元組?
因為關系是一個元組的集合,而集合中的元素不允許重復出現,因此在關系模型中對關系作了限制,關系中的元組不能重復,可以用鍵來標識唯一的元組。
2.4 關系與普通的表格、文件有什么區別?
關系是一種規范化了的二維表格,在關系模型中,對關系作了下列規范性限制:
1)關系中每一個屬性值都是不可分解的。
2)關系中不允許出現相同的元組(沒有重復元組)。
3)由于關系是一個集合,因此不考慮元組間的順序,即沒有行序。
4)元組中,屬性在理論上也是無序的,但在使用時按習慣考慮列的順序。
2.5 笛卡爾積、等值聯接、自然聯接三者之間有什么區別?
笛卡爾積對兩個關系R和S進行乘操作,產生的關系中元組個數為兩個關系中元組個數之積。
等值聯接則是在笛卡爾積的結果上再進行選擇操作,從關系R和S的笛卡兒積中選擇對應屬性值相等的元組;
自然連接則是在等值聯接(以所有公共屬性值相等為條件)的基礎上再行投影操作,并去掉重復的公共屬性列。當兩個關系沒有公共屬性時,自然連接就轉化我笛卡爾積。
2.8 如果R是二元關
系,那么下列元組表達式的結果是什么? {t|(u)(R(t)∧R(u)∧(t[1]≠u[1]∨t[2]≠u[2]))}
這個表達式的意思是:從關系R中選擇元組,該元組滿足:第1分量值或第2分量值至少有一個不等于其他某元組。由于R是二元關系,只有兩個分量,由于沒有重復元組,上述條件顯然滿足。所以,這個表達式結果就是關系R。
2.9 假設R和S分別是三元和二元關系,試把表達式π1,5(σ2=4∨3=4(R×S))轉換成等價的:(1)漢語查詢句子;(2)元組表達式;(3)域表達式。
(1)漢語表達式:
從R×S關系中選擇滿足下列條件的元組:
第2分量(R中第2分量)與第4分量(S中第1分量)值相等,或第3分量(R中第3分量)與第4分量(S中第1分量)值相等;并取第1列與第5列組成的新關系。
(2)元組表達式:{t|(u)(v)(R(u)∧S(v)∧(u[2]=v[1]∨u[3]=v[1])∧t[1]=u[1]∧t[2]=v[2])}(3)域表達式:{xv|(y)(z)(u)(R(xyz)∧S(uv)∧(y=u∨z=u))}
2.10 假設R和S都是二元關系,試把元組表達式{t|R(t)∧(u)(S(u)∧u[1]≠t[2])}轉換成等價的:(1)漢語查詢句子;(2)域表達式:(3)關系代數表達式。
(1)漢語表達式:選擇R關系中元組第2分量值不等于S關系中某元組第1分量值的元組。
(2)域表達式:{xy|(u)(v)(R(xy)∧S(uv)∧(u≠y))}(3)關系代數表達式:π1,2(σ2≠3(R×S))
2.11 試把域表達式{ab|R(ab)∧R(ba)}轉換成等價的:
(1)漢語查詢句子;(2)關系代數表達式;(3)元組表達式。
(1)漢語查詢句子:選擇R中元組第1分量值與第2分量值互換后仍存在于R中的元組。
(2)關系代數表達式:π1,2(σ1=4∧2=3(R×R));
(3)元組表達式:{t|(u)(R(t)∧R(u)∧t[1]=u[2]∧t[2]=u[1])}
試用關系代數表達式表示下列查詢語句。(見下一題)
2.14 試用元組表達式表示上題中各個查詢語句。
(1)檢索LIU老師所授課程的課程號、課程名。
πC#,CNAME(σTEACHER='LIU'(C))
{t|(u)(C(u)∧C[3]='LIU'∧t[1]=u[1]∧t[2]=u[2])}
(2)檢索年齡大于23歲的男學生的學號與姓名。
πS#,SNAME(σAGE>'23'∧SEX='男'(S))
{t|(u)(S(u)∧u[3]>'23'∧u[4]='男'∧t[1]=u[1]∧t[2]=u[2])}
(3)檢索學號為S3學生所學課程的課程名與任課教師名。πCNAME,TEACHER(σS#='S3'(SCC))
{t|(u)(v)(SC(u)∧C(v)∧u[1]='S3'∧v[1]=u[2]∧t[1]=v[2]∧t[2]=v[3])}
(4)檢索至少選修LIU老
師所授課程中一門課程的女學生的姓名。
πSNAME(σSEX='女'∧TEACHER='LIU'(SSCC))
{t|(u)(v)(w)(S(u)∧SC(v)∧C(w)∧u[4]='女'∧v[1]=u[1]∧v[2]=w[1]∧w[3]='LIU'∧t[1]=u[2])}
(5)檢索WANG同學不學的課程號。
πC#(C)-πC#(σSNAME='WANG'(SSC))
或者,πC#(SC)-πC#(σSNAME='WANG'(SSC))(全部課程號減去WANG同學所學的課程號){t|(u)(v)(C(u)∧SC(v)∧(u[1]=v[2]=>(w)(s(w)∧w[1]=v[1]∧W[2]≠'wang'))∧t[1]=u[1])}
(從C中選擇滿足條件的元組:SC中的所有元組,如果學號與C中所選元組相同的話,其在S中對應的姓名肯定不是'wang'。)
Notice:“p1=>p2”的含義是:如果p1為真,則p2為真。
(6)檢索至少選修兩門課程的學生學號。
πS#(σ1=4∧2≠5(SC×SC))
SC自乘之后,再選擇(同一個學號中兩個課程號不同的元組),投影。
{t|(u)(v)(SC(u)∧SC(v)∧u[1]=v[1]∧u[2]≠v[2])∧t[1]=u[1]}
(7)檢索全部學生都選修的課程的課程號與課程名。
πC#,CNAME(C(πS#,C#(SC)÷πS#(S)))(涉及到全部值時,應用除法,“除數”是“全部”){t|(u)(v)(w)(S(u)∧SC(v)∧C(w)∧u[1]=v[1]∧v[2]=w[1]∧t[1]=v[1]∧t[2]=V[2])}
(8)檢索選修課程包含LIU老師所授課程的學生學號。
πS#(σTEACHER='LIU'(SCC))
{t|(u)(v)(SC(u)∧C(v)∧u[2]=v[1]∧v[3]='LIU'∧t[1]=u[1])}
如果LIU老師有多門課程,則選修課程包含LIU老師所授全部課程的學生學號為:
πS#,C#(SC)÷πC#(σTEACHER='LIU'(C))
2.15 在教學數據庫S、SC、C中,用戶有一查詢語句:檢索女同學選修課程的課程名和任課教師名。(1)試寫出該查詢的關系代數表達式;(2)試寫出查詢優化的關系代數表達式。
(1)πCNAME,TEACHER(σSEX='女'(SSCC))
(2)優化為:πCNAME,TEACHER(CπC#(πS#,C#(SC)πS#(σSEX='女'(S))))
(基本思路:盡量提前做選擇操作;在每個操作后,應做個投影操作,去掉不用的屬性值。
2.16 在2.15題中,(1)畫出該查詢初始的關系代數表達式的語法樹。
(2)使用2.4.4節的優化算法,對語法樹進行優化,并畫出優化后的語法樹。
該查詢初始的關系代數表達式的語法樹
優化后的語法樹
2.17 為什么要對關系代數表達式進行優化?
在關系代數運算中,各個運算所費時間和空間是不一樣的。如何安排若干關系的運算操作步驟,直接影響到整個操作所需要的時間和空間。對關系代數表達式進行優化,可以提高系統的操作效率,達到執行過程即省時間又省空間的目的。
3.1 名詞解釋
(1)SQL模式:SQL模式是表和授權的靜態定義。一個SQL模式定義為基本表的集合。一個由模式名和模式擁有者的用戶名或賬號來確定,并包含模式中每一個元素(基本表、視圖、索引等)的定義。
(2)SQL數據庫:SQL(Structured Query Language),即‘結構
式查詢語言’,采用英語單詞表示和結構式的語法規則。一個SQL數據庫是表的匯集,它用一個或多個SQL模式定義。
(3)基本表:在SQL中,把傳統的關系模型中的關系模式稱為基本表(Base Table)?;颈硎菍嶋H存儲在數據庫中的表,對應一個關系。
(4)存儲文件:在SQL中,把傳統的關系模型中的存儲模式稱為存儲文件(Stored File)。每個存儲文件與外部存儲器上一個物理文件對應。
(5)視圖:在SQL中,把傳統的關系模型中的子模式稱為視圖(View),視圖是從若干基本表和(或)其他視圖構造出來的表。
(6)行:在SQL中,把傳統的關系模型中的元組稱為行(row)。
(7)列:在SQL中,把傳統的關系模型中的屬性稱為列(coloumn)。
(8)實表:基本表被稱為“實表”,它是實際存放在數據庫中的表。
(9)虛表:視圖被稱為“虛表”,創建一個視圖時,只把視圖的定義存儲在數據詞典中,而不存儲視圖所對應的數據。
(10)相關子查詢:在嵌套查詢中出現的符合以下特征的子查詢:子查詢中查詢條件依賴于外層查詢中的某個值,所以子查詢的處理不只一次,要反復求值,以供外層查詢使用。
(11)聯接查詢:查詢時先對表進行笛卡爾積操作,然后再做等值聯接、選擇、投影等操作。聯接查詢的效率比嵌套查詢低。
(12)交互式SQL:在終端交互方式下使用的SQL語言稱為交互式SQL。
(13)嵌入式SQL:嵌入在高級語言的程序中使用的SQL語言稱為嵌入式SQL。
(14)共享變量:SQL和宿主語言的接口。共享變量有宿主語言程序定義,再用SQL的DECLARE語句說明,SQL語句就可引用這些變量傳遞數據庫信息。
(15)游標:游標是與某一查詢結果相聯系的符號名,用于把集合操作轉換成單記錄處理方式。
(16)卷游標:為了克服游標在推進時不能返回的不便,SQL2提供了卷游標技術。卷游標在推進時不但能沿查詢結果中元組順序從頭到尾一行行推進,也能一行行返回。
3.2 對于教學數據庫的三個基本表
學生 S(S#,SNAME,AGE,SEX)
學習SC(S#,C#,GRADE)
課程 C(C#,CNAME,TEACHER)
試用SQL的查詢語句表達下列查詢:
(1)檢索LIU老師所授課程的課程號和課程名。
SELECT C#,CNAME
FROM C
WHERE TEACHER=‘LIU’
(2)檢索年齡大于23歲的男學生的學號和姓名。
SELECT S#,SNAME
FROM S
WHERE(AGE>23)AND(SEX=‘M’)
(3)檢索至少選修LIU老師所授課程中一門課程的女學生姓名。
SELECT SNAME
FROM S
WHERE SEX=‘F’ AND S# IN
(SELECT S#
FROM SC
WHERE C# IN
(SELECT C#
OM C
WHERE TEACHER=‘LIU’)
NOTICE:有多種寫法,比如聯接查詢寫法:
SELECT SNAME
FROM S,SC,C
WHERE SEX=‘F’ AND SC.S#=S.S#
AND SC.C#=C.C#
AND TEACHER='LIU' 但上一種寫法更好一些。
(4)檢索WANG同學不學的課程的課程號。
SELECT C#
FROM C
WHERE C# NOT IN
(SELECT C#
FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG'))
FR
(5)檢索至少選修兩門課程的學生學號。
SELECT DISTINCT X.SNO
FROM SC X,SC Y
WHERE X.SNO=Y.SNO AND X.CNO<>Y.CNO Notice:對表SC進行自連接,X,Y是SC的兩個別名。
(6)檢索全部學生都選修的課程的課程號與課程名。
SELECT C#,CNAME
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S
WHERE S# NOT IN
(SELECT *
FROM SC
WHERE SC.C#=C.C#))
要從語義上分解:(1)選擇課程的課程號與課程名,不存在不選這門課的同學。
其中,“不選這門課的同學”可以表示為:
SELECT *
FROM S
WHERE S# NOT IN
(SELECT *
FROM SC
WHERE SC.C#=C.C#)
或者
SELECT *
FROM S
WHERE
NOT EXISTS
(SELECT *
FROM SC
WHERE S.S#=C.S# AND
SC.C#=C.C#)
(7)檢索選修課程包含LIU老師所授課的學生學號。
SELECT DISTINCT S#
FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU'))
3.3 設有兩個基本表R(A,B,C)和S(D,E,F),試用SQL查詢語句表達下列關系代數表達式:
(1)πA(R)
(2)σB='17'(R)
(3)R×S
(4))πA,F(σC=D(R×S))(1)SELECT A FROM R
(2)SELECT * FROM R WHERE B='17'(3)SELECT A,B,C,D,E,F FROM R,S
(4)SELECT A,F FROM R,S WHERE R.C=S.D
3.4 3.4 設有兩個基本表R(A,B,C)和S(A,B,C)試用SQL查詢語句表達下列關系代數表達式:
(1)R∪S
(2)R∩S
(3)R-S
(4)πA,B(R)πB,C(S)
(1)SELECT A,B,C
FROM R
UNION
SELECT A,B,C
FROM S
(2)SELECT A,B,C
FROM R
INTERSECT
SELECT A,B,C
FROM S
(3)SELECT A,B,C
FROM R
WHERE NOT EXISTS
(SELECT A,B,C
FROM S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)
(4)SELECT R.A,R.B,S.C
FROM R,S
WHE
RE R.B=S.B
3.5 試敘述SQL語言的關系代數特點和元組演算特點。
(P61-62)
3.6 試用SQL查詢語句表達下列對教學數據庫中三個基本表S、SC、C的查詢:
(1)統計有學生選修的課程門數。
SELECT COUNT(DISTINCT C#)FROM SC
(2)求選修C4課程的學生的平均年齡。
SELECT AVG(AGE)
FROM S
WHERE S# IN
(SELECT S#
FROM SC
WHERE C#='C4')或者,SELECT AVG(AGE)
FROM S,SC
WHERE S.S#=SC.S# AND C#='004'
(3)求LIU老師所授課程的每門課程的學生平均成績。
SELECT CNAME,AVG(GRADE)
FROM SC ,C
WHERE SC.C#=C.C# AND TEACHER='LIU'
GROUP BY C#
(4)統計每門課程的學生選修人數(超過10人的課程才統計)。要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列。
SELECT DISTINCT C#,COUNT(S#)
FROM SC
GROUP BY C#
HAVING COUNT(S#)>10
ORDER BY 2 DESC, C# ASC
(5)檢索學號比WANG同學大,而年齡比他小的學生姓名。
SELECT X.SNAME
FROM S AS X, S AS Y
WHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.AGE (6)檢索姓名以WANG打頭的所有學生的姓名和年齡。 SELECT SNAME,AGE FROM S WHERE SNAME LIKE 'WANG%' (7)在SC中檢索成績為空值的學生學號和課程號。 SELECT S#,C# FROM SC WHERE GRADE IS NULL (8)求年齡大于女同學平均年齡的男學生姓名和年齡。 SELECT SNAME,AGE FROM S AS X WHERE X.SEX='男' AND X.AGE>(SELECT AVG(AGE)FROM S AS Y WHERE Y.SEX='女') (9)求年齡大于所有女同學年齡的男學生姓名和年齡。 SELECT SNAME,AGE FROM S AS X WHERE X.SEX='男' AND X.AGE>ALL(SELECT AGE FROM S AS Y WHERE Y.SEX='女') 3.7 試用SQL更新語句表達對教學數據庫中三個基本表S、SC、C的各個更新操作: (1)往基本表S中插入一個學生元組(‘S9’,‘WU’,18)。 INSERT INTO S(S#,SNAME,AGE)VALUES('59','WU',18) (2)在基本表S中檢索每一門課程成績都大于等于80分的學生學號、姓名和性別,并把檢索到的值送往另一個已存在的基本表STUDENT(S#,SANME,SEX)。 INSERT INTO STUDENT(S#,SNAME,SEX) SELECT S#,SNAME,SEX FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE GRADE<80 AND S.S#=SC.S#) (3)在基本表SC中刪除尚無成績的選課元組。 DELETE FROM SC WHERE GRADE IS NULL(4)把WANG同學的學習選課和成績全部刪去。 DELE TE FROM SC WHERE S# IN (SELECT S# FROM S WHERE SNAME='WANG') (5)把選修MATHS課不及格的成績全改為空值。 UPDATE SC SET GRADE=NULL WHERE GRADE<60 AND C# IN (SELECT C# FROM C WHERE CNAME='MATHS') (6)把低于總平均成績的女同學成績提高5%。 UPDATE SC SET GRADE=GRADE*1.05 WHERE GRADE<(SELECT AVG(GRADE)FROM SC)AND S# IN(SELECT S# FROM S WHERE SEX='F') (7)在基本表SC中修改C4課程的成績,若成績小于等于75分時提高5%,若成績大于75分時提高4%(用兩個UPDATE語句實現)。 UPDATE SC SET GRADE=GRADE*1.05 WHERE C#='C4' AND GRADE<=75 UPDATE SC SET GRADE=GRADE*1.04 WHERE C#='C4' AND GRADE>75 3.8 在第1章例1.4中提到“倉庫管理”關系模型有五個關系模式: 零件 PART(P#,PNAME,COLOR,WEIGHT) 項目 PROJECT(J#,JNAME,DATE) 供應商 SUPPLIER(S#,SNAME,SADDR) 供應 P_P(J#,P#,TOTOAL) 采購 P_S(P#,S#,QUANTITY) (1)試用SQL DDL語句定義上述五個基本表,并說明主鍵和外鍵。 CREATE TABLE PART (P# CHAR(4)NOT NULL,PNAME CHAR(12)NOT NULL,COLOR CHAR(10),WEIGHT REAL,PRIMARY KEY(P#)) CREATE TABLE PROJECT (J# CHAR(4)NOT NULL,JNAME CHAR(12)NOT NULL,DATE DATE,PRIMARY KEY(J#)) CREATE TABLE SUPLIER (S# CHAR(4)NOT NULL,SNAME CHAR(12),SADDR VARCHAR(20),PRIMARY KEY(S#)) CREATE TABLE P_P (J# CHAR(4),P# CHAR(4),TOTAL INTEGER,PRIMARY KEY(J#,P#),FOREIGN KEY(J#)REFERENCE PROJECT(J#),FOREIGN KEY(P#)REFERENCE PART(P#)) CREATE TABLE P_S (P# CHAR(4),S# CHAR(4),QUANTITY INTEGER,PRIMARY KEY(P#,S#),FOREIGN KEY(P#)REFERENCE PART(P#),FOREIGN KEY(S#)REFERENCE SUPLIER(S#)) (2)試將PROGECT、P_P、PART三個基本表的自然聯接定義為一個視圖VIEW1,PART、P_S、SUPPLIER 三個基本表的自然聯接定義為一個視圖VIEW2。 CREATE VIEW VIEW1(J#,JNAME,DATE,P#,PNAME,COLOR,WEIGHT,TOTAL) AS SELECT PROJECT.J#,JNAME,DATE,PART.P#,PNAME,COLOR,WEIGHT,TOTAL FROM PROJECT,PART,P_P WHERE PART.P#=P_P.P# AND P_P.J#=PROJECT.J #CREATE VIEW VIEW2(P#,PNAME,COLOR,WEIGHT,S#,SNAME,SADDR,QUANTITY) AS SELECT PART.P#,PNAME,COLOR,WEIGHT,SUPPLIER.S#,SNAME,SADDR,QUA NTITY FROM PART,P_S,SUPPLIER WHERE PART.P#=P_S.P# AND P_S.S#=SUPPLIER.S# (3)試在上述兩個視圖的基礎上進行數據查詢: 1)檢索上海的供應商所供應的零件的編號和名字。 SELECT P#,PNAME FROM VIEW2 WHERE SADDR='SHANGHAI' 2)檢索項目J4所用零件的供應商編號和名字。 SELECT S#,SNAME FROM VIEW2 WHERE P# IN(SELECT P# FROM VIEW1 WHERE J#='J4') 3.9 對于教學數據庫中基本表SC,已建立下列視圖: CREATE VIEW S_GRADE(S#,C_NUM,AVG_GRADE) AS SELECT S#,COUNT(C#),AVG(GRADE) FROM SC GROUP BY S# 試判斷下列查詢和更新是否允許執行。若允許,寫出轉換到基本表SC上的相應操作。 (1)SELECT * FROM S_GRADE 允許 SELECT S#,COUNT(C#),AVG(GRADE)FROM SC GROUP BY S# (2)SELECT S#,C_NUM FROM S_GRADE WHERE AVG_GRADE>80 允許 SELECT S#,COUNT(C#)FROM SC WHERE AVG(GRADE)>80 (3)SELECT S#,AVG_GRADE FROM S_GRADE WHERE C_NUM>(SELECT C_NUM FROM S_GRADE WHERE S#=‘S4’) 允許 SELECT S#,AVG(GRADE) FROM SC AS X WHERE COUNT(X.C#)>(SELECT COUNT(Y.C#)FROM SC AS Y WHERE Y.S#='S4') GROUP BY S# (4)UPDATE S_GRADE SET C_NUM=C_NUM+1 WHERE S#=‘S4’ 不允許 (5)DELETE FROM S_GRADE WHERE C_NUM>4 不允許 3.10 預處理方式對于嵌入式SQL的實現有什么重要意義? 預處理方式是先用預處理程序對源程序進行掃描,識別出SQL語句,并處理成宿主語言的函數調用形式;然后再用宿主語言的編譯程序把源程序編譯成目標程序。這樣,不用擴充宿主語言的編譯程序,就能處理SQL語句。 3.11 在宿主語言的程序中使用SQL語句有哪些規定? 在宿主語言的程序中使用SLQ語句有以下規定: (1)在程序中要區分SQL語句與宿主語言語句 (2)允許嵌入的SQL語句引用宿主語言的程序變量(稱為共享變量),但有兩條規定: 1)引用時,這些變量前必須加“:”作為前綴標識,以示與數據庫中變量有區別。 2)這些變量由宿主語言的程序定義,并用SQL的DECLARE語句說明。 (3)SQL的集合處理方式與宿主語言單記錄處理方式之間要協調。需要采用 游標機制,把集合操作轉換成單記錄處理方式。 3.12 SQL的集合處理方式與宿主語言單記錄處理方式之間如何協調? 由于SQL語句處理的是記錄集合,而宿主語言語句一次只能處理一個記錄,因此需要用游標(cousor)機制,把集合操作轉換成單記錄處理方式。 2.13 嵌入式SQL語句何時不必涉及到游標?何時必須涉及到游標? (1)INSERT、DELETE、UPDATE語句,查詢結果肯定是單元組時的SELECT語句,都可直接嵌入在主程序中使用,不必涉及到游標。 (2)當SELECT語句查詢結果是多個元組時,此時宿主語言程序無法使用,一定要用游標機制把多個元組一次一個地傳送給宿主語言處理。 4.1 名詞解釋 (1)函數依賴:FD(function dependency),設有關系模式R(U),X,Y是U的子集,r是R的任一具體關系,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]導致t1[Y]=t2[Y], 則稱X函數決定Y,或Y函數依賴于X,記為X→Y。X→Y為模式R的一個函數依賴。 (2)函數依賴的邏輯蘊涵:設F是關系模式R的一個函數依賴集,X,Y是R的屬性子集,如果從F中的函數依賴能夠推出X→Y,則稱F邏輯蘊涵X→Y,記為F|=X→Y。 (3)部分函數依賴:即局部依賴,對于一個函數依賴W→A,如果存在XW(X包含于W)有X→A成立,那么稱W→A是局部依賴,否則稱W→A為完全依賴。 (4)完全函數依賴:見上。 (5)傳遞依賴:在關系模式中,如果Y→X,X→A,且XY(X不決定Y),AX(A不屬于X),那么稱Y→A是傳遞依賴。 (6)函數依賴集F的閉包F+: 被邏輯蘊涵的函數依賴的全體構成的集合,稱為F的閉包(closure),記為F+。 (7)1NF: 第一范式。如果關系模式R的所有屬性的值域中每一個值都是不可再分解的值, 則稱R是屬于第一范式模式。如果某個數據庫模式都是第一范式的,則稱該數據庫存模式屬于第一范式的數據庫模式。第一范式的模式要求屬性值不可再分裂成更小部分,即屬性項不能是屬性組合和組屬性組成。 (8)2NF: 第二范式。如果關系模式R為第一范式,并且R中每一個非主屬性完全函數依賴于R的某個候選鍵,則稱是第二范式模式;如果某個數據庫模式中每個關系模式都是第二范式的,則稱該數據庫模式屬于第二范式的數據庫模式。(注:如果A是關系模式R的候選鍵的一個屬性,則稱A是R的主屬性,否則稱A是R的非主屬性。) (9)3NF:第三范式。如果關系模式R是第二范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R是第三范式的模式。如果某個數據庫模式中的每個關系模式都是第三范式,則稱為3NF的數據庫模式。 (10)BCNF:BC范式。如果關系模式R是第一范式,且每個屬性都不傳遞依賴于R的候選鍵,那么稱R 是BCNF的模式。 (11)4NF:第四范式。設R是一個關系模式,D是R上的多值依賴集合。如果D中成立非平凡多值依賴X→→Y時,X必是R的超鍵,那么稱R是第四范式的模式。 (12)推理規則的正確性和完備性:正確性是指,如果X→Y是從推理規則推出的,那么X→Y在F+中。完備性是指,不能從F使用推理規則導出的函數依賴不在F+中。 (13)依賴集的覆蓋和等價:關系模式R(U)上的兩個函數依賴集F和G,如果滿足F+=G+,則稱F和G是等價的。如果F和G等價,則可稱F覆蓋G或G覆蓋F。 (14)最小依賴集:如果函數集合F滿足以下三個條件:(1)F中每個函數依賴的右部都是單屬性;(2)F中的任一函數依賴X→A,其F-{X→A}與F是不等價的;(3)F中的任一函數依賴X→A,Z為X的子集,(F-{X→A})∪{Z→A}與F 不等價。則稱F為最小函數依賴集合,記為Fmin。 (15)無損聯接:設R是一關系模式,分解成關系模式ρ={R1,R2...,Rk},F是R上的一個函數依賴集。如果對R中滿足F的每一個關系r都有r=πR1(r)πR2(r)...πRk(r)則稱這個分解相對于F是“無損聯接分解”。 (16)保持依賴集:所謂保持依賴就是指關系模式的函數依賴集在分解后仍在數據庫中保持不變,即關系模式R到ρ={R1,R2,...,Rk}的分解,使函數依賴集F被F這些Ri上的投影蘊涵。 (17)多值依賴:設R(U)是屬性集U上的一個關系模式,X,Y,Z是U的子集,并且Z=U-X-Y, 用x,y,z分別代表屬性集X,Y,Z的值,只要r是R的關系,r中存在元組(x,y1,z1)和(x,y2,z2)時,就也存在元組(x,y1,z2)和(x,y2,z1),那么稱多值依賴(MultiValued Dependency MVD)X→→Y在關系模式R中成立。 4.2 關系模式R有n個屬性,在模式R上可能成立的函數依賴有多少個? 其中平凡的函數依賴有多少個?非平凡的函數依賴有多少個? (要考慮所有可能的情況,數學排列組合問題。對于數據庫本身而言,本題沒多大意義) 所有屬性相互依賴時,函數依賴最多。 · 平凡的函數依賴:對于函數依賴X→Y,如果YX,那么稱X→Y是一個“平凡的函數依賴”。 4.3 建立關于系、學生、班級、社團等信息的一個關系數據庫,一個系有若干個專業,每個專業每年只招一個班,每個班有若干個學生,一個系的學生住在同一宿舍區,每個學生可以參加若干個社團,每個社團有若干學生。 描述學生的屬性有:學號、姓名、出生年月、系名、班級號、宿舍區。 描述班級的屬性有:班級號、專業名、系名、人數、入校年份。 描述系的屬性有:系名、系號、系辦公地點、人數。 描述社團的屬性有:社團名、成立年份、地點、人數、學生參加某社團的年份。 請給出關系模式,寫出每個關系模式的最小函數依賴集,指出是否存在傳遞函數依賴,對于函數依賴左部是多屬性的情況,討論函數依賴是完全函數依賴還是部分函數依賴。指出各關系的候選鍵、外部鍵,有沒有全鍵存在? 各關系模式如下: 學生(學號,姓名,出生年月,系名,班級號,宿舍區) 班級(班級號,專業名,系名,人數,入校年份) 系(系名,系號,系辦公地點,人數) 社團(社團名,成立年份,地點,人數) 加入社團(社團名,學號,學生參加社團的年份) 學生(學號,姓名,出生年月,系名,班級號,宿舍區) ●“學生”關系的最小函數依賴集為: Fmin={學號→姓名,學號→班級號,學號→出生年月,學號→系名,系名→宿舍區} ●以上關系模式中存在傳遞函數依賴,如:學號→系名,系名→宿舍區 ●候選鍵是學號,外部鍵是班級號,系名。 notice: 在關系模式中,如果Y→X,X→A,且XY(X不決定Y),A不屬于X,那么稱Y→A是傳遞依賴。 班級(班級號,專業名,系名,人數,入校年份) ●“班級”關系的最小函數依賴集為: Fmin={(系名,專業名)→班級號,班級號→人數,班級號→入校年份,班級號→系名,班級號→專業名} (假設沒有相同的系,不同系中專業名可以相同)●以上關系模式中不存在傳遞函數依賴。 ●“(系名,專業名)→班級號”是完全函數依賴。 ●候選鍵是(系名,專業名),班級號,外部鍵是系名。 系(系名,系號,系辦公地點,人數) ●“系”關系的最小函數依賴集為: Fmin={系號→系名,系名→系辦公地點,系名→人數,系名→系號} ●以上關系模式中不存在傳遞函數依賴 ●候選鍵是系名,系號 社團(社團名,成立年份,地點,人數) ●“社團”關系的最小函數依賴集為: Fmin={社團名→成立年份,社團名→地點,社團名→人數) ●以上關系模式中不存在傳遞函數依賴。 ●候選鍵是社團名 加入社團(社團名,學號,學生參加社團的年份) ●“加入社團”關系的最小函數依賴集為: Fmin={(社團名,學號)→學生參加社團的年份)●“(社團名,學號)→學生參加社團的年份”是完全函數依賴。 ●以上關系模式中不存在傳遞函數依賴。 ●候選鍵是(社團名,學號)。 4.4 對函數依賴X→Y的定義加以擴充,X和Y可以為空屬性集,用φ表示,那么X→φ,φ→Y,φ→φ的含義是什么? 根據函數依賴的定義,以上三個表達式的含義為: (1)一個關系模式R(U)中,X,Y是U的子集,r是R的任一具體關系,如果對r的任意兩個元組t1,t2, 由t1[X]=t2[X]必有t1[φ]=t2[φ]。即X→φ表示空屬性函數依賴于X。這是任何關系中都存在的。 (2)φ→Y表示Y函數依賴于空屬性。由此可 知該關系中所有元組中Y屬性的值均相同。 (3)φ→φ表示空屬性函數依賴于空屬性。這也是任何關系中都存在的。 4.5 已知關系模式R(ABC),F={A→C,B→C},求F+。 可以直接通過自反律、增廣律、傳遞律加以推廣: F+={φ→φ,A→φ,B→φ,C→φ,A→C,B→C,AB→φ,AB→A,AB→B,AB→C,AB→BC,AB→AB,AB→ABC,BC→φ,BC→C,BC→B,BC→BC,AC→φ,AC→C,AC→A,AC→AC,ABC→φ,ABC→A,ABC→B,ABC→C,ABC→BC,ABC→AB,ABC→ABC} 4.6 試分析下列分解是否具有無損聯接和保持函數依賴的特點: (1)設R(ABC),F1={A→B} 在R上成立,ρ1={AB,AC}。 首先,檢查是否具有無損聯接特點: 第1種解法--算法4.2: (1)構造表 (2)根據A→B進行處理 結果第二行全是a行,因此分解是無損聯接分解。 第2種解法:(定理4.8)設 R1=AB,R2=AC R1∩R2=A R2-R1=B ∵A→B,∴該分解是無損聯接分解。 然后,檢查分解是否保持函數依賴 πR1(F1)={A→B,以及按自反率推出的一些函數依賴} πR2(F1)={按自反率推出的一些函數依賴} F1被πR1(F1)所蘊涵,∴所以該分解保持函數依賴。 (2)設R(ABC),F2={A→C,B→C}在R上成立,ρ2={AB,AC} 首先,檢查是否具有無損聯接特點: 第1種解法(略) 第2種解法:(定理4.8)設 R1=AB,R2=AC R1∩R2=A R2-R1=C ∵A→C,∴該分解是無損聯接分解。 然后,檢查分解是否保持函數依賴 πR1(F2)={按自反率推出的一些函數依賴} πR2(F2)={A→C,以及按自反率推出的一些函數依賴} ∵F1中的B→C沒有被蘊涵,所以該分解沒有保持函數依賴。 (3)設R(ABC),F3={A→B},在R上成立,ρ3={AB,BC}.首先,檢查是否具有無損聯接特點: 第1種解法: (1)構造表 (2)根據A→B進行處理 沒有一行全是a行。因此這個分解不具有無損聯接特性。 第2種解法:(定理4.8) 設 R1=AB,R2=BC R1∩R2=B R2-R1=C,R1-R2=A ∵B→C,B→A不在F3中 ∴該分解不具有無損聯接特性。 然后,檢查分解是否保持函數依賴 πR1(F3)={A→B,以及按自反率推出的一些函數依賴} πR2(F3)={按自反率推出的一些函數依賴} F1被πR1(F3)所蘊涵,所以該分解保持函數依賴。 (4)設R(ABC),F4={A→B,B→C}在R上成立,ρ4={AC,BC} 首先,檢查是否具有無損聯接特點: 第1種解法(略) 第2種解法:(定理4.8) 設 R1=AC,R2=BC R1(AC)∩R2(BC)=C R2-R1=B,R1-R2=A ∵C→B,C→A不在F4中 ∴該分解不具有無損聯接特性。 然后,檢查分解是否保持函數依賴 πR1(F2)={按自反率推出的一些函數依賴} πR2(F2)={B→C,以及按自反率推出的一些函數依賴} ∵F1中的A→B沒有被蘊涵,所以該分解沒有保持函數依賴。 4.7 設R=ABCD,R上的函數依賴集F={A→B,B→C,A→D,D→C},R的一個分解ρ={AB,AC,AD},求:(1)F在ρ的每個模式上的投影。(2)ρ相對于F是無損聯接分解嗎?(3)ρ保持依賴嗎?(1) πAB(F)={A→B,及按自反律所推導出的一些平凡函數依賴} πAC(F)={A→C,及按自反律所推導出的一些平凡函數依賴} πAD(F)={A→D,及按自反律所推導出的一些平凡函數依賴}(2) (1)構造表 (2)根據A→B,B→C,A→D,D→C進行處理 每一行都是a,ρ相對于F是無損聯接分解。 (3)πAB(F)∪πAC(F)∪πAD(F)={A→B,A→C,A→D}, 沒有滿足B→C,D→C函數依賴,因此ρ相對于F的這個分解不保持函數依賴。 4.8 設R=ABCD,R上的F={A→C,D→C,BD→A}, 試證明ρ={AB,ACD,BCD}相對于F不是無損聯接分解。 根據算法4.2 (1)構造表 (2)根據A→C,D→C,BD→A進行處理 沒有一行都是a,所以,ρ相對于F不是無損聯接分解。 4.9 設R=ABCD,R上的F={A→B,B→C,D→B},把R分解成BCNF模式集。 (1)若首先把R分解成{ACD,BD},試求F在這兩個模式上的投影。 (2)ACD和BD是BCNF嗎?如果不是,請進一步分解。 (1)πACD(F)={A→C} πBD(F)={D→B} (2)因為根據BCNF的定義,要求關系模式是第一范式,且每個屬性都不傳遞依賴于R的侯選鍵。BCD中(A,D)為候選鍵,可是(A,D)→A, A→C,所以它不是BCNF模式。 它可進一步分解為:{AC,DC},此時AC,DC均為BCNF模式。 BD是BCNF,因為R2(BD)是第一范式,且每個屬性都不傳遞依賴于D(候選鍵),所以它是BCNF模式。 4.10 設R=ABCD,ρ={AB,BC,CD}。F1={A→B,B→C};F2={B→C,C→D}; (1)如果F1是R上的函數依賴集,此時ρ是無損聯接分解嗎?若不是,試舉出反例。 (2)如果F2是R上的函數依賴集呢? (1)不是無損聯接??捎伤惴?.2判斷或由定理4.8判斷。 根據算法4.2 (1)構造表 (2)根據A→B,B→C進行處理 結果沒有出現一行全a的情況,所以它不是無損聯接。舉例如下: 設模式R的一關系r為{(a1b1c1d1),(a2b2c1d2)} 則有:r1=πAB(r)={(a1b1),(a2b2)} r2=πBC(r)={(b1c1),(b2c1)} r3=πCD(r)={(c1d1),(c1d2)} 令a=r1r2r3={(a1b1c1d1),(a1b1c1d2),(a2b2c1d1),(a2b2c1d2)} r≠a,所以ρ不是無損聯接。 (2)如果F2是R上的函數依賴,則可以判斷,ρ是無損聯接。判斷過程同上。 4.11 設關系模式R(S#,C#,GRADE,TNAME,TADDR),其屬性分別表示學生學號、選修課程的編號,成績、任課教師地址等意義。如果規定,每個學生每學一門課只有一個成績; 每門課只有一個教師任教;每個教師只有一個地址(此處不允許教師同名同姓)。 (1)試寫出關系模式R基本的函數依賴和候選鍵。 (2)試把R分解成2NF模式集并說明理由。 (3)試把R分解成3NF模式集,并說明理由。 (1)F={(S#,C#)→GRADE,C#→TNAME,TNAME→TADDR} 侯選鍵是(S#,C#)。 (2)在模式R中,TNAME不完全依賴于鍵(S#,C#),因此需進行分解,可分解為下列兩個關系。 SC={S#,C#,GRADE} C={C#,TNAME,TADDR} 分解后,SC中,GRADE完全依賴于侯選鍵(S#,C#),在C中,主屬性是C#,TNAME、TADDR均完全依賴于C#。因此,該分解符合2NF模式。 (3)3NF:若每個關系模式是2NF,則每個非主屬性都不傳遞于R的候選鍵。 按上述已分好的兩個模式,SC中已滿足“每個非主屬性都不傳遞于R的候選鍵”,已是3NF,而在C中,C#→TNAME,TNAME→TADDR,TADDR傳遞依賴于C#,因此還需分成兩個模式:CT(C#,TNAME), T(TNAME,TADD)。 分解后,總共有SC={S#,C#,GRADE},CT(C#,TNAME), T(TNAME,TADD)三個模式。 該分解符合3NF模式。 4.12 圖4.6表示一個公司各部門的層次結構,對每個部門,數據庫中包含部門號(唯一的)D#,預算費(BUDGET)以及此部門領導人員的職工號(唯一的)E#等信息。對每一個部門,還存有部門的全部職工,生產科研項目以及辦公室的信息。 職工信息包括:職工號,他所參加的生產科研項目號(J#),他所在辦公室的電話號(PHONE#)。 生產科研項目包含:項目號(唯一的),預算費。 辦公室信息包含:辦公室號(唯一的),面積。 對每個職工,數據庫中有他曾擔任過的職務以及擔任某一職務時的工資歷史。對每個辦公室包含此辦公室中全部電話號嗎的信息。 請給出你認為合理的數據依賴,把這個層次結構轉換成一組規范化的關系。 提示:此題可分步完成,先轉換成一組1NF的關系,然后逐步轉換成2NF,3NF,...。 先得到一個泛關系的模式如下: D={D#,Manager_E#,Budget,E#,J#,Phone#,Business,Sa_History,Office#,Area} D#:部門號, Manager_E#:部門領導人員的職工號, E#:職工號, J#:生產科研項目號, Phone#:辦公室的電話號,Business:職工職務,Sa_History:工資歷史,Office#:辦公室號,Area:辦公室面積 根據所給信息,給出下列數據依賴: F={D#→Manager_E#,E#→Office#,(E#,Business)→Sa_History,J#→Budget,E#→J#,Office#→Area,Office→D#,#Phone#→Office#}(假設一個部門可能有多個辦公室,有多個項目,一個辦公室只屬于一個部門,有多部電話,一個員工只參加一個項目,一個項目可能屬于多個部門) 只要保證每個屬性值不可分割,以上范式即為1NF。候選鍵為(E#,Business,Phone#) 轉換成2NF關系(消除局部依賴): Em_Dep(E#,D#,Manager_E#,Office#,Area,J#,Budget) 對應 F={D#→Manager_E#,E#→Office#,J#→Budget,E#→J#,Office#→Area,Office→D#} History(E#,Business,History) 對應 F={(E#,Business)→Sa_History} Phone(Phone#,Office#) 對應 F={Phone#→Office#} 轉換成3NF關系(消除非主屬性對侯選鍵的傳遞依賴): Department(D#,Manager_E#)Office(Office#,Area,D#)Emproee(E#,J#,Office#) History(E#,Business,History)Phone(Phone#,Office#)Project(J#,Budget) 注意:由于對題意理解的不同,可能答案不唯一。 4.13 設關系模式R(ABC)上有一個多值依賴A→→B。如果已知R的當前關系中存在三組(ab1c1)、(ab2c2)和(ab3c3),那么這個關系中至少還應存在哪些元組? 從多值依賴的定義可以得出,至少應存在下列元組: (ab1c2)、(ab1c3)、(ab2c1)、(ab2c3)、(ab3c1)、(ab3c2) 5.1 名詞解釋 (1)數據庫設計:數據庫設計是指對于一個給定的應用環境,提供一個確定最優數據模型與處理模式的邏輯設計,以及一個確定數據庫存儲結構與存取方法的物理設計,建立起既能反映現實世界信息和信息聯系,滿足用戶數據要求和加工要求,又能被某個數據庫管理系統所接受,同時能實現系統目標,并有效存取數據的數據庫。 (2)數據庫工程:指數據庫應用系統的開發,它是一項軟件工程,但有數據庫應用自身的特點。(3)評審:在數據庫設計過程中,評審的目的是為了確認某一階段的任務是否全部完成,避免重大的疏漏或錯誤,并在生存期的早期階段給予糾正,以減少系統研制的成本。 (4)數據字典:是對系統中數據的詳盡描述,它提供對數據庫數據描述的集中管理。它的處理功能是存儲和檢索元數據,并且為數據庫管理員提供有關的報告。對數據庫設計來說,數據字典是進行詳細的數據收集和數據分析所獲得的主要成果。數據字典主要包括四個部分:數據項、數據結構、數據流、數據存儲。 5.2 數據系統的生存期分成哪幾個階段?數據庫結構的設計在生存期中的地位如何? 分成七個階段 :規劃、需求分析、概念設計、邏輯設計、物理設計、實現、運行和維護。 數據庫結構的設計在生存期中的地位很重要,數據庫結構的設計包括邏輯設計、物理設計,邏輯設計把概念模式轉化為與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構,而物理設計主要是設計DB在物理設備上的存儲結構與存取方法等。 5.3 什么是數據庫設計?數據庫設計過程的輸入和輸出有哪些內容? 數據庫設計是指對于一個給定的應用環境,提供一個確定最優數據模型與處理模式的邏輯設計,以及一個確定數據庫存儲結構與存取方法的物理設計,建立起既能反映現實世界信息和信息聯系,滿足用戶數據要求和加工要求,又能被某個數據庫管理系統所接受,同時能實現系統目標,并有效存取數據的數據庫。 數據庫設計過程的輸入包括四部分內容:1)總體信息需求;2)處理需求;(3)DBMS的特征;(4)硬件和OS(操作系統)特征。 數據庫設計過程的輸出包括兩部分: (1)完整的數據庫結構,其中包括邏輯結構和物理結構; (2)基于數據庫結構和處理需求的應用程序的設計原則。這些輸出一般以說明書的形式出現。 5.4 基于數據庫系統生存期的數據庫設計分成哪幾個階段? 分為5個階段:簡記為(規需概邏物):規劃、需求分析、概念設計、邏輯設計和物理設計五個階段。 5.5 什么是比較好的數據庫設計方法?數據庫設計方法應包括哪些內容? 一個好的數據庫設計方法應該能在合理的期限內,以合理的工作量產生一個有實用價值的數據庫結構。 一種實用的數據庫設計方法應包括以下內容:設計過程、設計技術、評價準則、信息需求、描述機制。 5.6 數據庫設計的規劃階段應做哪些事情? 數據庫設計中的規劃階段的主要任務是進行建立數據庫的必要性及可行性分析,確定數據庫系統在組織中和信息系統中的地位,以及各個數據庫之間的聯系。 5.7 數據庫設計的需求分析階段是如何實現的?目標是什么? 數據庫設計的需求分析通過三步來完成:即需求信息的收集、分析整理和評審。 其目的在于對系統的應用情況作全面詳細的調查,確定企業組織的目標,收集支持系統總的設計目標的基礎數據和對這些數據的要求,確定用戶的需求,并把這些要求寫成用戶和數據設計者都能夠接受的文檔。 5.8 評審在數據庫設計中有什么重要作用?為什么允許設計過程中有多次的回溯與反復? 評審的作用在于確認某一階段的任務是否全部完成,通過評審可以及早發現系統設計中的錯誤,并在生存期的早期階段給予糾正,以減少系統研制的成本。 如果在數據庫已經實現時再發現設計中的錯誤,那么代價比較大。因此應該允許設計過程的回溯與反復。設計過程需要根據評審意見修改所提交的階段設計成果,有時修改甚至要回溯到前面的某一階段,進行部分乃至全部重新設計。 5.9 數據字典的內容和作用是什么? 數據字典的內容一般包括:數據項、數據結構、數據流、數據存儲和加工過程。 其作用是對系統中數據做出詳盡的描述,提供對數據庫數據的集中管理。 5.10 對概念模型有些什么要求? 對概念模型一般有以下要求: (1)概念模型是對現實世界的抽象和概括,它應真實、充分地反映現實世界中事物和事物之間的聯系,具有豐富的語義表達能力,能表達用戶的各種需求,包括描述現實世界中各種對象及其復雜聯系、用戶對數據對象的處理要求和手段。 (2)概念模型應簡潔、明晰,獨立于機器、容易理解、方便數據庫設計人員與應用人員交換意見,使用戶能積極參與數據庫的設計工作。 (3)概念模型應易于變動。當應用環境和應用要求改變時,容易對概念模型修改和補充。 (4)概念模型應很容易向關系、層次或網狀等各種數據模型轉換,易于從概念模式導出也DBMS有關的邏輯模式。 5.11 概念設計的具體步驟是什么? 概念設計的主要步驟為: (1)進行數據抽象、設計局部概念模式; (2)將局部概念模式綜合成全局概念模式; (3)評審。 (具體解釋參見教材p131) 5.12 什么是數據抽象?主要有哪兩種形式的抽象?數據抽象在數據庫設計過程中起什么作用? 數據抽象是對人、物、事或概念的人為處理,它抽取人們關心的共同特性,忽略非本質的細節,并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。 數據抽象有兩種形式: (1)系統狀態的抽象,即抽象對象; (2)系統轉換的抽象,即抽象運算。 數據抽象是概念設計中非常重要的一步。通過數據抽象,可以將現實世界中的客觀對象首先抽象為不依賴任何具體機器的信息結構。 5.13 什么是ER圖?構成ER圖的基本要素是什么? ER圖是用來表示數據庫概念設計ER模型的工具,它提供了表示實體、屬性和聯系的方法。 構成ER圖的基本要素是實體、屬性和聯系。 5.14 試述采用ER方法的數據庫概念設計的過程.利用ER方法進行數據庫的概念設計,可分成三步進行: 首先設計局部ER模式,然后把各局部ER模式綜合成一個全局ER模式,最后對全局ER模式進行優化,得到最終的ER模式,即概念模式。 5.15 邏輯設計的目的是什么?試述邏輯設計過程的輸入和輸出 環境。 邏輯設計的目的是把概念設計階段設計好的基本ER圖轉換為與選用的具體機器上的DBMS所支持的數據模型相符合的邏輯結構(包括數據庫模式和外模式)。 邏輯設計過程中的輸入信息有: (1)獨立于DBMS的概念模式,即概念設計階段產生的所有局部和全局概念模式; (2)處理需求,即需求分析階段產生的業務活動分析結果; (3)約束條件,即完整性、一致性、安全性要求及響應時間要求等; (4)DBMS特性,即特定的DBMS特性,即特定的DBMS所支持的模式、子模式和程序語法的形式規則。 邏輯設計過程輸出的信息有: (1)DBMS可處理的模式; (2)子模式; (3)應用程序設計指南; (4)物理設計指南。 5.16 試述邏輯設計階段的主要內容。 邏輯設計主要是把概念模式轉換成DBMS能處理的模式。轉換過程中要對模式進行評價和性能測試,以便獲得較好的模式設計。 邏輯設計的主要步驟包括: (1)初始模式的形成(2)子模式設計 (3)應用程序設計梗概 (4)模式評價 (5)修正模式。 5.17 規范化理論對數據庫設計有什么指導意義? 在概念設計階段,已經把關系規范化的某些思想用作構造實體類型和聯系類型的標準,在邏輯設計階段,仍然要使用關系規范化的理論來設計模式和評價模式。規范化的目的是減少乃至消除關系模式中存在的各種異常,改善完整性,一致性和存儲效率。 5.18 什么是數據庫結構的物理設計?試述其具體步驟。 數據庫結構的物理設計是指對一個給定的邏輯數據模型選取一個最適合應用環境的物理結構的過程,所謂數據庫的物理結構主要指數據庫在物理設備上的存儲結構和存取方法。 物理設計的步驟為: (1)設計存儲記錄結構,包括記錄的組成、數據項的類型和長度,以及邏輯記錄到存儲記錄的映射; (2)確定數據存儲安排; (3)設計訪問方法,為存儲在物理設備上的數據提供存儲和檢索的能力; (4)進行完整性和安全性的分析、設計; (5)程序設計。 5.19 數據實現階段主要做哪幾件事情? 數據庫實現階段的主要工作有以下幾點: (1)建立實際數據庫結構 (2)試運行 (3)裝入數據 (具體解釋參見教材p150) 5.20 什么是數據的再組織設計?試述其重要性。 對數據的概念模式、邏輯結構或物理結構的改變稱作數據再組織。 數據再組織,通常是由于環境,需求的變化或性能原因而進行的,如信息定義的改變,增加新的數據類型,對原有的數據提出了新的使用要求,改用具有不同物理特征的新存儲設備以及數據庫性能下降等都要求進行數據庫的重新組織。 5.21 數據系 統投入運行后,有哪些維護工作? 數據系統投入運行后,主要維護工作有: (1)維護數據庫的安全性與完整性控制及系統的轉儲和恢復; (2)性能的監督、分析與改進; (3)增加新功能; (4)發現錯誤,修改錯誤 6.1 名詞解釋 (1)事務:事務是指一個操作序列,這些操作要么什么都做,要么都不做,是一個不可分割的工作單位,是數據庫環境中的邏輯工作單位,相當于操作系統環境下的“進程”概念。 (2)封鎖:封鎖就是事務可以向系統發出請求,對某個數據對象加鎖,此事務對這個數據對象有一定控制,而其他事務則不能更新數據直到事務釋放它的鎖為止。 (3)X封鎖:如果事務T對數據R實現X封鎖,那么其他的事務要等T解除X封鎖以后,才能對這個數據進行封鎖。只有獲準X封鎖的事務,才能對被封鎖的數據進行修改。 (4)PX協議:X封鎖的規則稱為PX協議,其內容為:任何企圖更新記錄R的事務必須先執行LOCK X(R)操作,以獲得對該記錄進行尋址的能力,并對它取得X封鎖。如果未獲得X封鎖,那么這個事務進入等待狀態,一直到獲準X封鎖,事務繼續進行。 (5)PXC協議:它由PX協議及一條規則“X封鎖必須保留到事務終點(COMMIT或ROLLBACK)”組成。(6)死鎖:有兩個或以上的事務處于等待狀態,每個事務都在等待另一個事務解除封鎖,它才能繼續執行下去,結果任何一個事務都無法執行,這種現象就是死鎖。 (7)串行調度:多個事務依次執行,稱為串行調度。 (8)并發調度:利用分時的方法,同時處理多個事務,稱為事務的并發調度。 (9)可串行化調度:如果某事務集的一個并發調度的結果與某個串行調度等價,則稱此并發調度是是可串行化調度。 (10)不可串行化調度:某事務集的一個并發調度結果,如果與任一串行調度均不等價,則該并發調度是不可串行化調度。 (11)S封鎖:共享型封鎖。果事務T對某數據R加上S封鎖,那么其它事務對數據R的X封鎖便不能成功,而對數據R的S封鎖請求可以成功。這就保證了其他事務可以讀取R但不能修改R,直到事務T釋放S封鎖。 (12)PS協議: 任何要更新記錄R的事務必須先執行LOCK S(R)操作,以獲得對該記錄尋址的能力并對它取得S封鎖。如果未獲準S封鎖,那么這個事務進入等待狀態,一直到獲準S封鎖,事務才繼續進行下去。當事務獲準對記錄R的S封鎖后,在記錄R修改前必須把S封鎖升級為X封鎖。 (13)PSC協議:由PS協議和“將S封鎖保持到事務終點”組成。任何更新記錄R的事務必須先執行LOCK S(R)操作,以獲得對該記錄尋址的能力并對它取得S封鎖。如果未獲準S封鎖,那么這個事務進入等待狀態,一直到 獲準S封鎖,事務才繼續進行下去。并將S封鎖保持到事務終點。 (14)兩段封鎖協議:(1)在對任何數據進行讀寫操作之前,事務首先要獲得對該數據的封鎖;(2)在釋放一個封鎖之后,事務不再獲得任何其他封鎖。 6.2 試敘事務的四個性質,并解釋每一個性質對DBS有什么益處? 事務的四個性質是:原子性、一致性、隔離性和持久性。 (1)原子性(具體含義見教材):事務中所有操作應視為整體,不可分割。 (2)一致性(具體含義見教材):一個事務獨立執行的結果將保證數據庫的一致性,即數據不會因事務的執行而遭受破壞。 (3)隔離性(具體含義見教材):隔離性要求在并發事務被執行時,系統應保證與這些事務先后單獨執行時結果一樣,使事務如同在單用戶環境下執行一樣。 (4)持久性(具體含義見教材):要求事務對數據庫的所有更新應永久地反映在數據庫中。 6.3 事務的COMMIT操作和ROLLBACK操作各做些什么事情? COMMIT操作表示事務成功地結束(提交),此時告訴系統,數據庫要進入一個新的正確狀態,該事務對數據庫的所有更新都已交付實施。 ROLLBACK操作表示事務不成功地結束,此時告訴系統,已發生錯誤,數據庫可能處在不正確的狀態,該事務對數據庫的更新必須被撤銷,數據庫應恢復該事務到初始狀態。 6.4 UNDO操作和REDO操作各做些什么事情? UNDO操作是反向掃描“日志”文件,撤銷對數據庫的更新操作,使數據庫恢復到更新前的狀態; REDO操作正向掃描日志文件,重新做一次更新,使數據庫恢復到更新后的狀態。 6.5 DBS中有哪些類型的故障?哪些故障破壞了數據庫? 哪些故障未破壞數據庫,但其中某些數據變得不正確? 數據庫系統故障有事務故障、系統故障、介質故障。 其中介質故障破壞數據庫,事務故障、系統故障未破壞數據庫但使其中某些數據變得不正確。 6.6 什么是“運行記錄優先原則”?其作用是什么? 在數據庫系統中,寫一個修改到數據庫中和寫一個表示這個修改的登記記錄到日志文件中是兩個不同的操作,在這兩個操作之間有可能發生故障。這時,如果先寫了數據庫修改,而在運行記錄中沒有登記這個修改,則以后就無法恢復這個修改,那么以后也就無法撤消這個修改。為了安全起見,采用“運行記錄優先原則”。它包括兩點: (1)至少要等相應運行記錄已經寫入“日志”文件后,才能允許事務往數據庫中寫記錄。 (2)直至事務的所有運行記錄都已寫入運行“日志”文件后,才能允許事務完成“END TRANSACTION”處理。 采用“運行記錄優先原則”,可以保證所做的操作都記錄在日志中,便于故障處理,維護數據庫的一致性。 6.7 什么是數據庫的恢復?恢復的基本原則是什么,恢復如何實現? 數據庫的恢復是指當數據庫系統發生故障時,通過一些技術,使數據庫從被破壞、不正確的狀態恢復到最近一個正確的狀態。 恢復的基本原則就是冗余,即數據的重復存儲。恢復的常用方法有:(1)定期對整個數據庫進行復制或轉儲;(2)建立日志文件;(3)恢復。用REDO或UNDO處理。 6.8 數據庫的并發操作會帶來哪些問題?如何解決? 數據庫的并發操作會帶來三類問題: (1)丟失更新問題;(具體內容見教材P158) (2)不一致分析問題 (3)“臟數據”的讀出。 解決的辦法通常是采用“封鎖”技術。 6.9 有哪些“丟失更新”問題?如何處理? (1)并發調度引起的“丟失更新”問題。在并發調度中,如兩個事務同時對某數據庫進行更新操作,在操作中丟失了其中某個事務對某數據的更新操作。處理的辦法就是對并發操作采用X封鎖技術。 (2)由恢復引起的更新丟失現象。采用X封鎖以后,先執行事務T1,再執行事務T2,此時,如果T2做ROLLBACK操作,就把事務T2的更新丟失了。處理方式是采用PXC協議,不允許事務T1執行解鎖操作直到事務執行到終點(COMMIT或ROLLBACK)。 6.10 為什么DML只提供解除S封鎖的操作,而不提供解除X封鎖的操作? 為了防止由恢復引起的更新丟失現象,PXC協議規定:X封鎖必須保留到事務終點(COMMIT或ROLLBACK)。因此在DML中,COMMIT或ROLLBACK的語義中包含了X封鎖的解除,不用提供解除X封鎖的操作。 而對于S封鎖而言,它是一種共享型的封鎖(讀取但不能修改),其數據不可能是未提交的修改,封鎖不必等提交后才能解除,因此可以由事務用UNLOCK解除各自對數據的封鎖。 6.11 為什么有些封鎖需保留到事務終點,而有些封鎖可隨時解除? 因為有的封鎖需要更新數據,保留到終點才能確認是否提交或回退以避免臟數據的讀出,所以這些封鎖需要保留到事務終點。 而有些事務全部或部分操作只是讀取數據,不涉及更新數據操作,因此這一部分操作的封鎖可以隨時解除。 6.12 死鎖的發生是壞事還是好事?試說明理由。如何解除死鎖狀態? 死鎖的發生即是壞事又是好事。 (1)使并發事務不能繼續執行下去,造成時間開銷卻不產生結果。 (2)在某些時候我們要利用它來解決更新操作導致的數據庫不一致狀態。 解除死鎖狀態:抽出某個事務作為犧牲品,把它撤消,做回退操作,解除它的所有封鎖,并恢復到初始狀態。 6.13 試敘述“串行調度”與“可串行化調度”的區別。 串行調 度是多個事務按照一定的次序依次執行;在某一時刻只有一個事務在執行。 而可串行化調度是并發調度中的一個概念。在并發調度中,某一時刻有多個事務同時被處理。如果某事務集的一個并發調度的結果與某個串行調度等價,則稱此并發調度是是可串行化調度。 (以上幾題具體可參照書上p20-21) 6.14 什么是數據庫的完整性? DBMS的完整性子系統的功能是什么? 數據庫的完整性是指數據的正確性和相容性。DBMS完整性子系統的功能是: (1)監督事務的執行,并測試是否違反完整性規則; (2)如有違反,則采取恰當的操作,如拒絕、報告違反情況,改正錯誤等方法進行處理。 6.15 完整性規則由哪幾個部分組成?關系數據庫的完整性規則有哪幾類? 完整性規則由三部分組成: 觸發條件:即什么時候使用規則進行檢查; 約束條件:即要檢查什么樣的錯誤; ELSE子句:即查出錯誤后該如何處理。 完整性規則有以下三類: 域完整性規則,用于定義屬性的取值范圍; 域聯系的規則,定義一個或多個關系中,屬性值間的聯系、影響和約束。 關系完整性規則,定義更新操作對數據庫中值的影響和限制。 6.16 試詳述SQL中的完整性約束機制? SQL中的完整性約束規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。 △主鍵約束。它是數據中最重要的一種約束。在關系中主鍵值不允許空,也不允許出現重復,體現了關系要滿足實體完整性規則。主鍵可用主鍵子句或主鍵短語進行定義。 △ 外鍵約束。根據參照完整性規則,依賴關系中外鍵或者為空值,或者是基本關系(參照關系)中的該鍵的某個值。外鍵用外鍵關系子句定義,并考慮刪除基本關系元組或修改基本關系的主鍵值的影響,依賴關系可按需要采用RESTRICT、SET NULL、CASCADE方式。 △屬性值約束。當要求某個屬性的值不允許空值時,那么可以在屬性定義后加上關鍵字:NOT NULL,這是非空值約束。還可以用CHECK子句對一個屬性值加以限制以及使用域約束子句CREAT DOMAIN 定義新域并加以屬性值檢查。 △全局約束。在關系定義時,可以說明一些比較復雜的完整性約束,這些約束涉及到多個屬性間的聯系 或不同關系間的聯系,稱為全局約束。主要有基于元組的檢查子句和斷言。前者是對單個關系的元組值加以約束,后者則可對多個關系或聚合操作有關的完整性約束進行定義。 6.17 參照完整性規則在SQL可以用哪幾種方式實現?刪除基本關系的元組時,依賴關系可以采取的做法有哪三種?修改基本關系的主鍵值時,依賴關系可以采取的做法有哪三種? 參照完整性規 則要求“不引用不存在的實體”,參照完整性規則在SQL可用以下幾種方式實現: (1)在SQL中采用外鍵子句定義外鍵,并考慮刪除基本關系元組或修改基本關系的主鍵值,對依賴關系產生的影響; (2)在屬性值上進行約束如基于屬性的檢查; (3)全局約束中的基于元組的檢查子句等。 刪除基本關系元組或修改基本關系的主鍵值時,依賴關系可以采用的做法有: △RESTRICT方式:只有當依賴關系中沒有一個外鍵值與基本關系中要刪除/修改的主鍵值相對應時,系統才能執行刪除/修改操作,否則拒絕刪除或修改。 △SET NULL方式:刪除基本元組時,將依賴關系中所有與基本關系中被刪除主鍵值相對應的外鍵值置為空值。修改基本關系的主鍵值時,將依賴關系中所有與基本關系中被修改主鍵值相對應的外鍵值置為空值。 △CASCADE方式:若刪除則將依賴關系中所有外鍵值與基本關系中要刪除的主鍵值相對應的元組一并刪除,若修改則將依賴關系中所有與基本關系中要修改的主鍵值相對應的外鍵值一并修改為新值。 6.18 試對SQL2中的基于屬性的檢查約束、基于元組的檢查約束和斷言 三種完整性約束進行比較:各說明什么對象?何時激活?能保證數據庫的一致性嗎? 約束形式 說明對象 激活條件 是否保證一致性 基于屬性的檢查 只對一個屬性值加以約束 插入或修改屬性值時 不一定 基于元組的檢查 對單個關系的元組值加以約束 在插入或修改元組時 不一定 斷言 多個關系或聚合操作 任何變動 保證 6.19 設教學數據庫的模式如下: S(S#,SNAME,AGE,SEX)SC(S#,C#,GRADE) C(C#,CNAME,TEACHER) 試用多種方式定義下列完整性約束: (1)在關系S中插入學生年齡值應在16~25歲之間 (2)在關系SC中插入元組時,其S#值和C#值必須分別在S和C中出現。 (3)在關系SC中修改GRADE值時,必須仍在0~100之間。 (4)在刪除關系C中一個元組時,首先要把關系SC中具有同樣C#的元組全部刪去。 (5)在關系S中把某個S#值修改為新值時,必須同時把關系SC中那些同樣的S#值也修改為新值。 (1)定義S時采用檢查子句: CREAT TABLE S(S# CHAR(4),SNAME char(10)NOT NULL ,AGE SMALLINT ,PRIMARY key(S#),CHECK(AGE>=16 and AGE<=25)) (2)采用外鍵子句約束 CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#)REFERENCE S(S#),FOREIGN key(C#)REFERENCE C(C#)) (3)采用元組檢查 CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#)REFERENCE S(S#),FOREIGN key(C#)RE FERENCE C(C#),CHECK(GRADE>=0 and AGE<=100)) (4)采用外鍵約束 CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#)REFERENCE S(S#),FOREIGN key(C#)REFERENCE C(C#)) 若改為:在刪除關系C中一個元組時,同時把關系SC中具有同樣C#的元組全部刪去,則為: ......FOREIGN key(C#)REFERENCE C(C#)ON DELETE CASCADE ......(5)采用外鍵約束 CREAT TABLE SC(S# CHAR(4),C# CHAR(4),GRADE SMALLINT,FOREIGN key(S#)REFERENCE S(S#)ON UPDATE CASCADE ,FOREIGN key(C#)REFERENCE C(C#)) 6.20 在教學數據庫的關系S、SC、C中,試用SQL2的斷言機制定義下列兩個完整性約束:(1)學生必須在選修Maths課后,才能選修其他課程。(2)每個男學生最多選修20門課程 (1) CREAT ASSERTION ASSE1 CHECK (NOT EXISTS (SELECT S FROM SC WHERE C# IN (SELECT C# FROM C WHERE CNAME<>'MATHS') AND S# NOT IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE CNAME='MATHS')));(2) CREAT ASSERTION ASSE2 CHECK (ALL(SELECT COUNT(SC.C#) FROM S,SC WHERE S.S#=SC.S AND SEX='M' GROUP BY S#)<=20); 6.21 什么是數據庫的安全性?有哪些安全措施? 數據庫的安全性是指保護數據庫防止不合法的使用,以免數據的泄漏、非法更改和破壞。 可以從以下方面設置數據庫的安全措施:環境級、職員級、OS級、網絡級和數據庫系統級。 (具體可參見教材P173) 6.22 對銀行的數據庫系統應采取哪些安全措施?分別屬于哪一級? 答案基本同上一題。 6.23 什么是“權限”?用戶訪問數據庫可以有哪些權限?對數據庫模式有哪些修改權限? 用戶使用數據庫的方式稱為權限。 用戶訪問數庫的權限有:讀權限、插入權限、修改權限、刪除權限。 用戶修改數據庫模式的權限有索引權限、資源權限、修改權限、撤銷權限。 6.24 試解釋權限的轉授與回收。 在數據庫系統中,為了保證數據的安全性,用戶對數據的操作必須首先從DBA處獲得權限,才能進行對數據的操作。同時數據庫系統也允許用戶將獲得的權限轉授給其他用戶,也允許把已授給其他用戶的權限再回收上來。但應保證轉授出去的權限能收得回來。 6.25 SQL 語言中的視圖機制有哪些優點? 視圖機制使系統具有三個優點:數據安全性、數據獨立性和操作簡便性。 6.26 SQL2中用戶權限有哪幾類?并作必要的解釋。 SQL2中定義了六類用戶權限,分別是: (1)SELECT :允許用戶對關系或視圖執行SELECT操作。 (2)INSERT :允許用戶對關系或視圖執行INSERT操作,如果還說明了一個屬性表,那么表示只能插入這些屬性的值,關系中其他屬性值將置為缺省值或為空值。 (3)DELETE:允許用戶對關系或視圖執行DELETE操作。 (4)UPDATE:允許用戶對關系或視圖執行UPDATE操作,如果還說明了一個屬性表,那么表示只能修改這些屬性的值,否則表示可以修改關系中任一屬性值。 (5)REFERENCES:允許用戶定義新關系時,引用其他關系的主鍵作為外鍵。 (6)USAGE:允許用戶使用定義的域。 6.27 數據加密法有些什么優點?如何實現? 數據加密可以更好地保證數據的完全性。加密采用一定的加密算法給把源文變為密文來實現。 常用的加密算法有“替換方法”和明鍵加密法。 7.1 名詞解釋 (1)集中式DBS:是指數據庫中的數據集中存儲在一臺計算機上,數據的處理集中在一臺計算機上完成。 (2)分布式DBS:是指數據存放在計算機網絡的不同場地的計算機中,每一場地都有自治處理能力并完成局部應用;而每一場地也參與(至少一種)全局應用程序的執行,全局應用程序可通過網絡通信訪問系統中的多個場地的數據。 (3)分布式DB:分布式數據庫,是指計算機網絡環境中各場地上數據庫的邏輯集合。 (4)分布式DBMS:分布式數據庫管理系統。是指分布式數據庫系統中的一組軟件,它負責管理分布環境下邏輯集成數據的存取、一致性、有效性和完備性。同時,由于數據的分布性,在管理機制還必須具有計算機網絡通信協議上的分布管理特性。 (5)局部自治性:是指有獨立處理能力并能完成的局部應用。 (6)數據分配(數據分布):是指數據計算機網絡各場地上的分配策略。 (7)數據復制:是指數據在每個場地重復存儲。 (8)數據分片:是指分布式數據庫中的數據可以被分割和復制在網絡場地的各個物理數據庫中。一般數據存放的單位不是關系而是片段,一個片段是關系的一部分。數據分片是通過關系代數的基本運算實現的。 (9)水平分片:是指按一定條件把全局關系的所有元組劃分成若干不相交的子集,每個 子集為關系的一個片段。 (10)垂直分片:把一個全局關系的屬性集分成若干子集,并在這些子集上做投影運算,每個投影為垂直分片。 (11)分布透明性:指用戶不必關系數據的邏輯分片,不必關系數據物理位置的細節,也不必關心各個場地上的數據庫的數據模型。 (12)分片透明性:分片透明性是最高層次的分布透明性,是指用戶或應用程序只對全局關系進行操作而不必考慮數據的分片。 (13)位置透明性:位置透明性位于分片視圖與分配視圖之間。是指用戶或應用程序應當了解分片情況,但不必了解片段的存儲場地。 (14)局部數據模型透明性:這個透明性位于分配視圖與局部概念視圖之間,指用戶或應用程序要了解分片及各片段存儲的場地,但不必了解局部場地上使用的是何種數據模型。 (15)復制透明性:即用戶不必關心數據庫在網絡中各個結點的數據庫復制情況,更新操作引起的波及由系統去處理。 7.2 試敘數據從集中存儲、分散存儲到分布存儲的演變過程。 早期的數據庫系統都是屬于集中式數據庫系統,數據集中存儲在一臺計算機上。該方式有一定優點,比如,價格合理,易于管理,數據冗余少等等。但是,隨著數據庫應用的不斷發展,數據庫規模不斷擴大,如采用集中存儲的數據庫,其系統的設計和操作都比較復雜,系統顯得不靈活而且安全性 也較差。因此采用了數據分散存儲的辦法,將數據庫分成多個,建立在多臺計算機上,此時的各個數據庫的管理和應用程序均是分開并獨立的。它們之間不存在數據通信聯系。隨著計算機網絡通信的發展,有可能把分散在各處的數據庫系統通過網絡通信連接起來,這樣形成的系統稱為分布式的數據庫系統,這時的數據庫雖然分別存在各地的計算機上,但它們之間通過分布式數據管理系統可以進行聯系。 7.3 與集中式DBS、分散式DBS相比,分布式DBS有哪些特點? 與集中式DBS相比,分布式DBS中數據庫的存儲是分布性的,即數據不是存儲在同一場地,而是分布存儲在多個場地。與分散式DBS相比,分布式DBS中數據庫具有“邏輯整體性”,即表面上看,分布式數據的數據庫分散在各個場地,但這些數據在邏輯上卻是一個整 體,如同一個集中式數據庫。 7.4 試解釋下列術語:同構同質型DDBS,同構異質型DDBS,異構DDBS。 (1)同構同質型DDBS:是指各個場地都采用同一類型的數據模型,并且是同一型號數據庫管理系統。 (2)同構異質型DDBS:是指各個場地都采用同一類型的數據模型,但是數據庫管理系統是不同型號的。 (3)異構型DDBS:是指各個場地的數據模型是不同的類型。 7.5 分布式數據庫系統有哪些優點和缺點? 分布式數據庫系統的優點: (1)具有靈活的體系結構 (2)適應分布式的管理和控制機構 (3)經濟性能優越 (4)系統的可靠性高、可用性好 (5)局部應用的響應速度快 (6)可擴展性好,易于集成現有系統 分布式數據庫系統的缺點: (1)系統開銷大,主要花在通信部分; (2)復雜的存取結構,原來在集中式系統中有效存取數據的技術,在分布式系統中都不再適用; (3)數據的安全生和保密性較難處理。 7.6 分布式數據庫中,“數據分配”有哪些策略?“數據分片”有哪些策略? 數據分片的準則是什么? 數據分配是指數據在計算機網絡各場地上的分配策略。包括: (1)集中式:所有數據均安排在同一個場地上。 (2)分割式:所有數據只有一份,分別被安置在若干個場地。 (3)全復制式:數據在每個場地重復存儲。 (4)混合式:數據庫分成若干可相交的子集,每一子集安置在一個或多個場地上,但是每一場地未必保存全部數據。 數據分片的方式有以下三種: (1)水平分片:按一定的條件把全局關系的所有元組劃分成若干不相交的子集,每個子集為關系的一個片段。 (2)垂直分片:把一個全局關系的屬性集分成若干子集,并在這些子集上做投影運算,每個投影為垂直分片。 (3)混合型分片:將水平分片與垂直分片方式綜合使用則為混合型分片。 數據分片應遵循的準則為: (1)完備性條件:必須把全局關系的所有數據映射到各個片段中,絕不允許發生屬于全局關系的某個數據不屬于任何一個片段。 (2)重構條件:劃分所采用的方法必須確保能夠由各個片段重建全局關系。 (3)不相交條件:要求一個全局關系被劃分后得到的各個數據片段互相不重 疊。 7.7 試敘述分布式DBS的體系結構,它有什么特征? 分布式DBS的體系結構分為四級:全局外模式、全局概念模式、分片模式和分配模式。 (1)全局外模式:它們是全局應用的用戶視圖,是全局概念模式的子集。 (2)全局概念模式:全局概念模式定義了分布式數據庫中所有數據的邏輯結構。 (3)分片模式:分片模式定義片段以及定義全局關系與片段之間的映象。這種映象是一對多的,即每個片段來自一個全局關系,而一個全局關系可分成多個片段。 (4)分配模式:片段是全局關系的邏輯部分,一個片段在物理上可以分配到網絡的不同場地上。分配模式根據數據分配策略的選擇定義片段的存放場地。 分布式DBS的分層體系結構有三個特征: (1)數據分片和數據分配概念的分離,形成了“數據分布獨立性”概念。 (2)數據冗余的顯式控制。 (3)局部DBMS的獨立性。 7.8 試敘述分布式DBMS的功能及組成。 主要功能有: (1)接受用戶請求,并判定把它送到哪里,或必須訪問哪些計算機才能滿足該請求。 (2)訪問網絡數據字典,或者至少了解如何請求和使用其中的信息。 (3)如果目標數據存儲于系統的多個計算機上,就必須進行分布式處理。 (4)通信接口功能,在用戶、局部DBMS和其他計算機的DBMS之間進行協調。 (5)在一個異構型分布式處理環境中,還需提供數據和進程移植的支持。這里的異構型是指各個場地的硬件、軟件之間存在一定差別。 DDBMS組成——應包括以下四個子系統: (1)查詢子系統 (2)完整性子系統 (3)調度子系統 (4)可靠性子系統 7.9 分布式系統中影響查詢的主要因素是什么? 分布式系統中,影響查詢的主要因素數據經網絡的傳輸時間,數據傳輸量是衡量查詢時間的一個主要指標,不同場地間的聯接操作和并操作是影響數據傳輸量的主要原因。 7.10 基于半聯接的查詢優化策略的基本思想是什么? 數據在網絡中傳輸時,如果以整個關系傳輸,則傳輸數據量大,是一種冗余的做法,而實際上,在聯接時并非每個數據都參與操作或有用。因此,考慮到不參與操作的值或無用的值不必經網絡來回傳輸,則可以減少傳輸的數據量。 三、填空題(每空1分,共20分)1.數據庫系統具有數據的___外模式____、__模式_____和內模式三級模式結構。2.SQL Server 2000局部變量名字必須以____@、_____開頭,而全局變量名字必須以______@@___開頭。 3.語句 select ascii('D'), char(67)的執行結果是:___68______和__C_______。68、C“,2 4.語句 select lower('Beautiful'), rtrim('我心中的太陽 ')的執行結果是: _beautiful____和___我心中的太陽_____。 5.選擇運算是根據某些條件對關系做_ 水平__分割;投影是根據某些條件對關系做____垂直”__分割?!?6.關系運算主要有___選擇___、__投影__和連接。 7.完整性約束包括__實體__完整性、_域____性、參照完整性和用戶定義完整性。8.在SQL Server 2000中,數據庫對象包括__表__、___視圖__、觸發器、過程、列、索引、約束、規則、默認和用戶自定義的數據類型等。 9.語句 select day('2004-4-6'), len('我們快放假了.')的執行結果是:___6______和____7____。 10.語句 select round(13.4321,2), round(13.4567,3)的執行結果是:__13.4300_______和____13.4570_____。 11.完整性約束包括____域___完整性、__實體____完整性、參照完整性和用戶定義完整性。 12.T-SQL 語言中,有__算術__運算、字符串連接運算、比較運算和__邏輯__運算。 13.語句 select upper('beautiful'), ltrim(' 我心中的太陽')的執行結果是: ______ BEAUTIFUL __和__我心中的太陽___。 14.索引的類型主要有______聚集索引_______和____非聚集索引______。15.在SQL Server 2000中,數據庫對象包括數據表、_視圖___、__存儲過程_、觸發器、規則、默認和用戶自定義的數據類型等。 16.數據庫的數據模型包含__數據結構__、_數據操作_和__完整性約束_三個要素。 17.___ 域完整性___是指保證指定列的數據具有正確的數據類型、格式和有效的數據范圍。 18.___ 觸發器____是特殊類型的存儲過程,它能在任何試圖改變表中由觸發器保護的數據時執行。 19.事務(Transaction)可以看成是由對數據庫的若干操作組成的一個單元,這些操作要么__都完成__,要么__都取消___(如果在操作執行過程中不能完成其中任一操作)。 20.SQL Server 2000 采用的身份驗證模式有_ Windows身份驗證__模式和_混合_模式。 21.用戶訪問SQL Server數據庫時,經過了兩個_身份__驗證和__權限__驗證安全驗證階段。 22.SQL Server 2000提供的數據庫備份方法有____完整___數據庫備份和_差異__數據庫備份、___事務日志____備份和_____文件和文件組_______備份。23.SQL Server代理主要由__作業____、___操作員___和警報來組成。24.SQL Server復制把服務器分為__發布____服務器、____分發__服務器和訂閱服務器三種。 25.SQL語言主要由____數據定義語言(DDL)______、___數據操作語言(DML)____和數據控制語言(DCL)組成。 26.語句 SELECT(7+3)*4-17/(4-(8-6))+99%4 的執行結果是____35______ 27.____ 視圖____是由一個或多個數據表(基本表)或視圖導出的虛擬表。28._實體完整性_用于保證數據庫中數據表的每一個特定實體的記錄都是惟一的。 29.索引的類型有_____聚集索引_______和非聚集索引。 30.___ 存儲過程______是已經存儲在SQL Server服務器中的一組預編譯過的Transact-SQL語句。 31.觸發器定義在一個表中,當在表中執行___ insert _____、____ update ____或delete操作時被觸發自動執行。 32.事務的ACID屬性是指___原子__性、__一致__性、__獨立__性和___持久__性。 33.數據庫管理系統的安全性通常包括兩個方面,一是指數據__訪問_____的安全性,二是指數據___運行____的安全性。 34.SQL Server代理主要由___作業_____、操作員和____警報____來組成。35.SQL Server復制有快照復制、____事務__復制和___合并_____復制3種類型。36.從最終用戶角度來看,數據庫應用系統分為單用戶結構、主從式結構、分布式結構、____客戶服務器___結構和_____瀏覽器服務器____結構。 37.用SELECT進行模糊查詢時,可以使用like或not like匹配符,但要在條件值中使用_ %_或__等通配符來配合查詢。并且,模糊查詢只能針__字符_類型字段查詢。%、_、字符”,3 38.SQL Server中數據操作語句包括___ insert _____、__ update ______、___ delete _____和select語句。 39.游標的操作步驟包括聲明、__打開___、處理(提取、刪除或修改)、__關閉____和___釋放___游標。 40.SQL Server 2000以____#___開頭的標識符,表示臨時表或過程; 41.left join 運算是____左連接______。 42.SELECT DATEADD(day, 10, '2005-12-22')結果是____2006-01-01____。43.ROUND()函數的是______四舍五入___函數。 44.SQL Server復制把服務器分為___發布___服務器、___分發___服務器和___訂閱___服務器三種。 45.MS SQL Server提供多個圖形化工具,其中用來啟動、停止和暫停SQL Serve的圖形化工具稱為_____服務管理器_____。 46.____ 存儲過程_____是已經存儲在SQL Server服務器中的一組預編譯過的Transact-SQL語句。 47.HAVING子句與WHERE子句很相似,其區別在于: WHERE子句作用的對象是__表和視圖__,HAVING子句作用的對象是__分組____。48.實體—聯系模型的三要素是_____實體_____、___屬性____和實體之間的聯系。 49.SQL Server的數據類型可分為_系統___數據類型和__用戶自定義__數據類型。 50.SQL Server聚合函數有最大、最小、求和、平均和計數等,它們分別是max、_______、_______、avg和count。min、sum",2 51.IBM公司的研究人員E.F.Codd連續發表了論文,提出了關系模型,奠定了__關系數據庫_____管理系統的基礎。 52.SQL Server的數據庫文件的擴展名為_ mdf_、事務日志文件的擴展名為_ ldf_。 53.建立和使用____約束____的目的是為了保證數據的完整性。 54.BACKUP命令是對數據庫進行_ ___備份______, RESTORE命令是對數據庫進行______恢復____。 55.SQL Server 2000的安全性分為兩類_數據訪問_安全性和__數據運行_安全性。 56.關系模型用___二維表_____結構表示實體集,用鍵來表示實體間聯系。3.數據庫是被長期存放在計算機內的、有組織的、統一管理的相關___數據___的集合。57.SQL Server數據庫的體系結構也是三級模式結構,在SQL Server中,___外模式___對應于視圖、__模式____對應于基本表、__內模式____對應于存儲文件。58.___ 關系完整性_____是為保證數據庫中數據的正確性和相容性,對關系模型提出的某種約束條件或規則。 59.視圖是由一個或多個___數據表___或視圖導出的___虛擬表___或查詢表。60.__ 角色___是指服務器管理、數據庫管理和數據庫訪問特定的權限的集合。61.當___表___被刪除時與它關聯的觸發器也一同被刪除。 一.ER圖作成及向關系模式轉化 1.學校中有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授每人各帶若干研究生;每個班有若干學生,每個學生選修若干課程,每門課可由若干學生選修。請用 E 一 R 圖畫出此學校的概念模型。 2.某學生宿舍管理系統,涉及的部分信息如下:(1)學生:學號,姓名,性別,專業,班級。(2)寢室:寢室號,房間電話。 (3)管理員:員工號,姓名,聯系電話。 其中:每個寢室可同時住宿多名學生,每名學生只分配一個寢室;每個寢室指定其中一名學生擔當寢室長;每個管理員同時管理多個寢室,但每個寢室只有一名管理員。(1)建立一個反映上述局部應用的ER模型,要求標注聯系類型。 (2)根據轉換規則,將ER模型轉換為關系模型。要求標注每個關系模型的主鍵和外鍵(如果存在)。(1) (2) ? 學生(學號,姓名,性別,專業,班級)主鍵:學號 ? 住宿(寢室號,學號)主鍵:學號 寢室號是外鍵;學號也是外鍵 ? 學生管理寢室(寢室號,寢室長學號)主鍵:寢室號或者寢室長學號 寢室號是外鍵;寢室長學號也是外鍵 ? 寢室(寢室號,房間電話)主鍵:寢室號 ? 管理(寢室號,員工號)主鍵:寢室號 寢室號是外鍵;員工號是外鍵 ? 管理員(員工號,姓名,聯系電話)主鍵:員工號 合并后的答案: ? 學生(學號,姓名,性別,專業,班級,寢室號)主鍵:學號 寢室號是外鍵 ? 寢室(寢室號,房間電話,寢室長學號,員工號)主鍵:寢室號或者寢室長學號 員工號是外鍵;寢室長學號是外鍵 ? 管理員(員工號,姓名,聯系電話)主鍵:員工號 3設某工廠數據庫中有四個實體集。 一是“倉庫”實體集,屬性有倉庫號、倉庫面積等; 二是“零件”實體集,屬性有零件號、零件名、規格、單價等; 三是“供應商”實體集,屬性有供應商號、供應商名、地址等; 四是“保管員”實體集,屬性有職工號、姓名等。 設倉庫與零件之間有“存放”聯系,每個倉庫可存放多種零件,每種零件可存放于若干倉庫中,每個倉庫存放每種零件要記錄庫存量;供應商與零件之間有“供應”聯系,一個供應商可供應多種零件,每種零件也可由多個供應商提供,每個供應商每提供一種零件要記錄供應量;倉庫與保管員之間有“工作”聯系,一個倉庫可以有多名保管員,但一名保管員只能在一個倉庫工作。 (1)試為該工廠的數據庫設計一個ER模型,要求標注聯系類型。 (2)根據轉換規則,將ER模型轉換成關系模型,要求標明每個關系模式的主鍵和外鍵。 (2) ? 倉庫(倉庫號,倉庫面積)主鍵:倉庫號 ? 存放(倉庫號,零件號,庫存量)主鍵:倉庫號,零件號 倉庫號是外鍵,零件好也是外鍵。 ? 零件(零件號,零件名,規格,單價)主鍵:零件號 ? 供應(零件號,供應商號,供應量)主鍵:零件號,供應商號 零件號是外鍵,供應商號是外鍵 ? 供應商(供應商號,供應商名,地址)主鍵:供應商號 ? 工作(職工號,倉庫號)主鍵:職工號 職工號是外鍵,倉庫號是外鍵 ? 保管員(職工號、姓名)主鍵:職工號 合并后的答案: ? 倉庫(倉庫號,倉庫面積)主鍵:倉庫號 ? 存放(倉庫號,零件號,庫存量)主鍵:倉庫號,零件號 倉庫號是外鍵,零件好也是外鍵。 ? 零件(零件號,零件名,規格,單價)主鍵:零件號 ? 供應(零件號,供應商號,供應量)主鍵:零件號,供應商號 零件號是外鍵,供應商號是外鍵 ? 供應商(供應商號,供應商名,地址)主鍵:供應商號 ? 保管員(職工號,姓名,倉庫號)主鍵:職工號 倉庫號是外鍵 二. 函數依賴識別以及規范到3NF 1.設某人才市場數據庫中有一個記錄應聘人員信息的關系模式: R(人員編號,姓名,性別,職位編號,職位名稱,考試成績) 如果規定:每人可應聘多個職位,每個職位可由多人應聘且必須參加相關考試,考試成績由人員編號和職位編號確定。 姓名可以重復。職位名稱不可重復。 (1)根據上述規定,寫出模式R的基本FD和關鍵碼。(2)R最高屬于第幾范式。(3)將R規范到3NF。答案: (1)根據上述規定,寫出模式R的基本FD和關鍵碼。人員編號→姓名 人員編號→性別 職位編號→職位名稱 職位名稱→職位編號 (人員編號,職位編號)→考試成績 候選碼:(人員編號,職位編號)(2)R最高屬于第幾范式。 R最高屬于第一范式。因為非主屬性姓名,性別部分依賴于碼,不屬于第二范式。(3)將R規范到3NF。 人員(人員編號,姓名,性別)職位(職位編號,職位名稱) 應聘(人員編號,職位編號,考試成績)2.設有一個反映教師參加科研項目的關系模式: R(教師號,教師名稱,項目名稱,科研工作量,項目類別,項目金額,負責人) 如果規定:每個項目可有多人參加,每名教師每參加一個項目有一個科研工作量;每個項目只屬于一種類別,只有一名負責人。教師名稱可以重復。(1)根據上述規定,寫出模式R的基本FD和關鍵碼。(2)說明R不是2NF的理由。(3)將R規范到3NF。答案:(1)根據上述規定,寫出模式R的基本FD和關鍵碼。教師號→教師名稱 項目名稱→項目類別 項目名稱→項目金額 項目名稱→負責人 (教師號,項目名稱)→科研工作量 主鍵:(教師號,項目名稱)(2)說明R不是2NF的理由。 非主屬性教師名稱,項目類別,項目金額,負責人部分依賴碼。(3)將R規范到3NF。教師(教師號,教師名稱) 項目(項目名稱,項目類別,項目金額,負責人)項目開發(教師號,項目名稱,科研工作量)3.設有一個記錄學生畢業設計情況的關系模式: R(學號,學生名,班級,教師號,教師名,職稱,畢業設計題目,成績) 如果規定:每名學生只有一位畢業設計指導教師,每位教師可指導多名學生;學生的畢業設計題目可能重復。 (1)根據上述規定,寫出模式R的基本FD和關鍵碼。(2)R最高屬于幾范式。(3)將R規范到3NF。 三. SQL語句 1.零件、供應商、采購 ? 設有以下關系模式 PART(PNO, PNAME, PMODEL)零件號、零件名稱、零件型號 BUY(PNO, SNO, BDATE, BPRICE, BNUM)零件號、供應商號、采購日期、采購價格、采購數量 SUPPLIER(SNO, SNAME, SADDRESS)供應商號,供應商名稱,供應商地址 ? 要求寫出符合下列題目要求的SQL語句 (1)查詢供應商名稱為?創新零件?的所有零件購買記錄(零件號、零件名稱、零件型號、供應商號、供應商名稱、采購日期、采購價格、采購數量)。 查詢供應商名稱為?創新零件?的所有零件購買記錄(零件號、零件名稱、零件型號、供應商號、供應商名稱、采購日期、采購價格、采購數量)。 SELECT PART.PNO, PART.PNAME, PART.PMODEL, SUPPLIER.SNO, SUPPLIER.SNAME, BUY.BDATE, BUY.BPRICE, BUY.BNUM FROM PART, SUPPLIER, BUY WHERE PART.PNO = BUY.PNO AND BUY.SNO = SUPPLIER.SNO AND SUPPLIER.SNAME = '創新零件';(2)查詢零件?O性密封圈?并且型號為?5*5?的零件購買記錄。 SELECT PART.PNO, PART.PNAME, PART.PMODEL, SUPPLIER.SNO, SUPPLIER.SNAME, BUY.BDATE, BUY.BPRICE, BUY.BNUM FROM PART, SUPPLIER, BUY WHERE PART.PNO = BUY.PNO AND BUY.SNO = SUPPLIER.SNO AND PART.PNAME = 'O型密封圈' AND PART.PMODEL = '5*5';(3)查詢2011年5月份的零件購買記錄 SELECT PART.PNO, PART.PNAME, PART.PMODEL, SUPPLIER.SNO, SUPPLIER.SNAME, BUY.BDATE, BUY.BPRICE, BUY.BNUM FROM PART, SUPPLIER, BUY WHERE PART.PNO = BUY.PNO AND BUY.SNO = SUPPLIER.SNO AND BUY.BDATE BETWEEN TO_DATE(‘2011-05-01', 'YYYY-MM-DD')AND TO_DATE('2011-05-31', 'YYYY-MM-DD');(4)查詢2011采購價格1000元以上的零件購買記錄 SELECT PART.PNO, PART.PNAME, PART.PMODEL, SUPPLIER.SNO, SUPPLIER.SNAME, BUY.BDATE, BUY.BPRICE, BUY.BNUM FROM PART, SUPPLIER, BUY WHERE PART.PNO = BUY.PNO AND BUY.SNO = SUPPLIER.SNO AND BUY.BPRICE >= 1000 AND BUY.BDATE BETWEEN TO_DATE('2011-1-1', 'YYYY-MM-DD')AND TO_DATE('2011-12-31', 'YYYY-MM-DD');(5)查詢2011各零件的購買總數量和總金額,按零件號排列 SELECT PART.PNO, PART.PNAME, PART.PMODEL, SUM(BUY.BNUM)AS CNT, SUM(BUY.BPRICE * BUY.BNUM)AS AMOUNT FROM PART, BUY WHERE PART.PNO = BUY.PNO AND BUY.BDATE BETWEEN TO_DATE('2011-1-1', 'YYYY-MM-DD')AND TO_DATE('2011-12-31', 'YYYY-MM-DD')GROUP BY PART.PNO, PART.PNAME, PART.PMODEL ORDER BY PART.PNO;(6)查詢各供應商2011的零件供應總數量和總金額,按總金額逆序排列 SELECT SUPPLIER.SNO, SUPPLIER.SNAME, SUM(BUY.BNUM)AS CNT, SUM(BUY.BPRICE * BUY.BNUM)AS AMOUNT FROM SUPPLIER, BUY WHERE BUY.SNO = SUPPLIER.SNO AND BUY.BDATE BETWEEN TO_DATE('2011-1-1', 'YYYY-MM-DD')AND TO_DATE('2011-12-31', 'YYYY-MM-DD') GROUP BY SUPPLIER.SNO, SUPPLIER.SNAME ORDER BY AMOUNT DESC;(7)查詢供應商?創新零件?2011的零件供應總數量和總金額 SELECT SUPPLIER.SNO, SUPPLIER.SNAME, SUM(BUY.BNUM)AS CNT, SUM(BUY.BPRICE * BUY.BNUM)AS AMOUNT FROM SUPPLIER, BUY WHERE BUY.SNO = SUPPLIER.SNO AND SUPPLIER.SNAME = '創新零件' AND BUY.BDATE BETWEEN TO_DATE('2011-1-1', 'YYYY-MM-DD')AND TO_DATE('2011-12-31', 'YYYY-MM-DD') GROUP BY SUPPLIER.SNO, SUPPLIER.SNAME;(8)查詢符合下列條件的零件購買記錄 零件號?PART01? 非?創新零件?供應商 零件采購價格低于?創新零件?且零件號為?PART01?的最低價格 SELECT PART.PNO, PART.PNAME, PART.PMODEL, SUPPLIER.SNO, SUPPLIER.SNAME, BUY.BDATE, BUY.BPRICE, BUY.BNUM FROM PART, SUPPLIER, BUY WHERE PART.PNO = BUY.PNO AND BUY.SNO = SUPPLIER.SNO AND PART.PNO = 'PART01' AND SUPPLIER.SNAME <> '創新零件' AND BUY.BPRICE <(SELECT MIN(BUY.BPRICE)FROM BUY, SUPPLIER WHERE BUY.SNO = SUPPLIER.SNO AND BUY.PNO = 'PART01' AND SUPPLIER.SNAME = '創新零件');(9)在零件表中插入記錄(?PART06?, ?輪胎?, ?225/55 R17?)INSERT INTO PART VALUES('PART06', '輪胎', '225/55 R17');(10)在零件表中刪除零件規格為?225/55 R17?的記錄 DELETE FROM PART WHERE PART.PMODEL = '225/55 R17'; (11)更新供應商?創新零件?的地址為?杭州市? UPDATE SUPPLIER SET SUPPLIER.SADDRESS ='杭州市' WHERE SUPPLIER.SNAME = '創新零件';(12)生成一個視圖ANNUALBUY顯示2011所有零件購買記錄,按照供應商號排序,一個供應商內按照零件號排序 CREATE VIEW ANNUALBUY AS SELECT SUPPLIER.SNO, SUPPLIER.SNAME, PART.PNO, PART.PNAME, PART.PMODEL, BUY.BDATE, BUY.BPRICE, BUY.BNUM FROM PART, SUPPLIER, BUY WHERE PART.PNO = BUY.PNO AND BUY.SNO = SUPPLIER.SNO AND BUY.BDATE BETWEEN TO_DATE('2011-1-1', 'YYYY-MM-DD')AND TO_DATE('2011-12-31', 'YYYY-MM-DD') ORDER BY SUPPLIER.SNO, PART.PNO; (13)賦予用戶張小明對零件表有SELECT權利,對購買表的采購數量字段有更新權限。GRANT SELECT ON PART, UPDATE(BNUM)ON BUY TO 張小明;(14)收回用戶張小明對零件表有SELECT權利。REVOKE SELECT ON PART FROM 張小明;2.試用SQL語言查詢項目金額在20000元~30000元(包括20000元和30000元)之間并且項目名稱以?銀行?開頭的項目名稱,項目類別,項目金額。SELECT PNAME,PCATOGERY,AMOUNT FROM PROJECT WHERE AMOUNT BETWEEN 20000 AND 30000 AND PNAME LIKE ‘銀行%’; 3.試用SQL語言查詢參加項目名稱為“網上書城”的教師姓名。 SELECT TNAME FROM TEACHER, DELIVERY,PROJECT WHERE TEACHER.TNO=DELIVERY.TNO AND DELIVERY.PNO=PROJECT.PNO AND PROJECT.PNAME=‘網上書城’; 《蘇教版》 四年級上冊數學 期末復習教案 五府營中心小學 王俊芳 2017年12月22日 數的世界(除數是兩位數的除法) 教學目標: 1.使學生了解本單元所學的內容,進一步掌握除數是整十數的除法口算,及除數是兩位數的除法筆算方法,能正確地口算和筆算,能應用商不變的規律用簡便方法計算。 2.使學生通過練習、比較,加深對除法筆算法則的理解,培養比較、歸納等思維能力,提升除法計算技能,發展除法口算和筆算能力。3.使學生進一步體會計算方法間的聯系,進一步發展認真計算、追求正確結果、有錯就改的良好習慣。教學重點、難點: 除法筆算。 教學準備: 除數是整十數的口算卡片。教學過程: 一、回顧引入 引導:本學期的學習內容已經完成,從這節課起,我們要把全學期學習的內容進行整理與復習。首先走進“數的世界”,大家回顧一下,本學期在“數的世界”里主要學習了哪些計算? 在除法計算里又學習了哪個重要的規律? 引入:這學期主要學習的是除數是兩位數的除法計算,包括商不變的規律。這節課我們整理與復習這部分內容。(板書課題)通過整理、復習,大家要進一步掌握除數是整十數的口算和除數是兩位數的筆算方法,能更加正確地進行計算;同時能掌握用商不變的規律進行簡便計算的方法,使計算能力得到提高。對于前面還不太理解的知識,要在復習中弄清楚、想明白。好嗎? 二、算法的整理復習 (一)復習口算。1.做整理與復習第1題。 讓學生獨立口算,直接寫出得數。交流得數,結合選擇2—3題要求說說算法。 提問:這學期學習的除數是整十數的除法,口算時是怎樣想的? 指出:除數是整十數的除法口算,可以利用表內除法推算得數,比如80÷20可以用8÷2推算;150÷50可以用15÷5推算。請大家再想一想,這樣算實際上應用了什么規律?(板書:商不變的規律)提問:什么是商不變的規律? 小結:用商不變的規律,可以使除數是整十數的口算變得簡便,只要把被除數和除數末尾同時去掉一個0,按表內除法口算得數。(接“商不變的規律”板書: ——按表內除法口算)2.口算。 用口算卡片,指名學生口答得數,再集體口算得數。 (二)筆算復習。1.做整理與復習第2題。 (1)學生獨立練習:192÷30 192÷34 192÷38。指名板演,教師巡視、指導。 交流:計算的結果對不對?(有錯的檢查時在豎式上訂正)這三題計算時有什么不同的地方?第三小題從哪里看出要調商的? 說明:除數是兩位數,可以用四舍五人法把除數看作整十數試商;當初商偏大或偏小時,就要分別調小或調大。(板書:四舍五人試商——可能偏大、偏小——調商) (2)學生獨立練習:990÷60 990÷62 990÷66。指名學生板演,教師巡視檢查。 檢查:這一組算式和得數哪里相同,哪里不同? 第一小題怎樣算的?(說明計算過程)個位上各是怎樣求商的?第三小題為什么也要調商?(余數不比除數小)(3)比較整理。 比較:為什么前一組題的商是一位數,后一組題商是兩位數? 歸納:大家想一想上面計算、比較的過程,能歸納一下除法筆算的方法嗎? 小結:除數是兩位數的除法計算,可以用四舍五人法把除數看作整十數試商;先用被除數前兩位除,前兩位不夠看前三位,除到哪一位商就寫在那一位上;每次余數要比除數小。(呈現法則)2.做整理與復習第3題。 (1)學生獨立計算前兩道并驗算,指名兩人板演。 檢查計算過程和結果,注意試商處理;說說驗算方法。有錯的學生訂正。 (2)學生計算后兩題并驗算。檢查計算是否正確。 提問:最后一題商的個位是0,是怎樣想的? 說明:除到哪一位不夠商1,就商0。3.做整理與復習第4題。 提問:這里簡便計算的根據是什么?(在“商不變的規律”后面補充板書:簡便計算)學生獨立計算,指名板演。 檢查:第一小題被除數和除數同時除以幾以后再算的?為什么余數是20? 第二小題看作多少除以幾算的?第三小題被除數為什么不看作98計算,余數應該是多少? 說明:如果被除數和除數末尾都有0,可以應用商不變的規律,在被除數和除數末尾去掉相同個數的0,這樣計算比較簡便。 三、全課總結 1.引導總結。 引導:這節課主要復習了哪些內容?你在復習過程中進一步了解了哪些知識?對于今天的復習,你還有哪些體會?(可以用比較的方法整理法則,口算實際上用了商不變的規律,應用規律能使一些計算簡便,計算時要注意的問題等)2.布置作業。 完成整理與復習第5題(讓學生先說說可以怎樣想,再獨立完成)。 數的世界(整數四則混合運算和解決實際問題)教學目標: 1.使學生能進一步認識整數四則混合運算的運算順序,能按順序正確地計算;能由實際條件提出相應的問題,能靈活應用解決問題的策略,正確解答兩、三步計算的實際問題。 2.使學生進一步理解實際問題里數量間的聯系,加深理解解決問題的策略及其運用過程,積累運用數學方法解決實際問題的經驗,提高分析數量關系、解決實際問題的能力。 3.使學生主動運用數學規則和解決問題的策略,培養獨立思考、認真解決問題的習慣;體驗數學知識、方法在解決實際問題中的應用,發展應用意識,提高應用能力。 教學重點: 用不同策略分析數量關系。教學難點: 理解數量間的聯系。教學過程: 一、引入課題 引導:我們已經復習了除法計算。想一想,在“數的世界”里,除了除法 計算,這學期還學習過哪些知識? 引人:我們這節課就整理與復習整數四則混合運算和解決實際問題。(板書課題)通過整理、復習,要進一步掌握四則混合運算的順序,正確計算結果;要進一步學會用不同策略靈活分析數量關系、確定解題思路,正確地、比較熟練地列式解答,提高分析和解決實際問題的能力。 二、混合運算順序 1.回顧內容。引導:這學期學習了三步計算整數混合運算,大家回顧一下學過哪些內容的三步計算,運算順序各是怎樣的。同桌同學可以互相說說。交流:說說你掌握的三步計算混合運算內容和它們的運算順序。指出:在三步計算中有不含括號的、只含小括號的和含有中括號的。沒有括號的先乘除,再加減;有小括號的先算括號里的;有中括號的先算小括號里的,再算中括號里的。2.做整理與復習第6題。 讓學生先看每題按怎樣的順序算,再交流運算順序。學生獨立計算,指名四人板演。 評講:師生一起先檢查計算順序,再檢查每一步的結果;結合提問或說明第一小題怎樣脫式簡便一些,第二小題先算哪一步,第三小題括號里怎樣算。 說明:算對混合運算的前提是按運算順序算,其次是每一步都要認真算對;還要注意計算時,暫時不算的要在遞等式里抄下來。 三、解決實際問題 1.回顧解題步驟和策略。 提問:我們在解決問題的策略里,學習過解決問題的一般步驟和策略。大家回顧一下,解決問題的一般步驟是怎樣的?(呈現板書:弄清題意分析數量關系列式解答檢驗反思)分析數量關系時可以怎樣想呢?(呈現板書:從條件想起從問題想起) 指出:解決實際問題要按照一般步驟解決,要弄清條件和問題,必要時可以列表整理;要能正確分析數量關系,能根據具體問題靈活運用從條件想起,或者從問題想起的策略,確定怎樣計算,正確列式解答,并且注意檢查、反思,認定結果正確后寫出答句。2.做整理與復習第7題。 讓學生自己讀題,說說有哪些條件,求什么問題。 分析:根據條件、問題,你感覺分析數量關系用什么策略比較方便? 你能從條件想起,找出先求什么、再求什么嗎?同桌說一說自己的想法。(教師巡視、交流) 交流:從條件想起可以怎樣想,先求什么、再求什么?(交流一種思路后,就再指名學生說一說,使學生領會、理解)還可以怎樣找有聯系的條件,得出先求什么、再求什么?(交流后指名學生說一說)提問:都是從條件想起,為什么想到的解答過程不一樣呢?(每一步找的有聯系的條件不一樣,這樣先求什么、再求什么也就不一樣)說明:有聯系的條件不同,提出的問題就可能不一樣。只要是從有聯系的條件里求出的新條件是解決問題需要的,都是正確的,關鍵就是根據有聯系的條件確定先求什么。 解答:我們已經了解了數量間的聯系,找出了不同的思路,請大家自己選擇一種思路列式解答。(巡視學生解答,指名不同解法的兩人分別板演) 檢查:第一種解答方法先求的什么,再怎樣算的?第二種解答方法呢? 提問:要檢驗間題的結果對不對,你準備用什么方法?(學生說出自己的檢驗方法)哪位說一說,怎樣把結果代入原題檢驗?(板書算式)說明:可以把結果代人原題檢驗,也可以用另一種解答方法檢驗解題對不對?;仡櫍夯仡櫧鉀Q問題過程,你用了什么策略,怎樣想的? 指出:這是連除實際問題,一般用從條件想起的策略分析數量關系,就能比較容易找到可以求出的新條件,確定先求什么、再求什么。3.做整理與復習第8題。 讓學生獨立讀題,弄清條件和問題。 引導:了解了題目的條件和問題,你想用什么策略分析數量關系,能找到幾種不同的思路?自己先思考,如果需要可以把你的不同的想法記錄下來,等會交流。 交流:你想到了幾種不同的思路,各是怎樣想的?(讓學生說出三種不同的解法)讓學生選擇一種思路獨立解答。 交流:你是怎樣解答的?(板書算式)這是先求的什么,再求的什么? 還可以怎樣解答?(板書算式)這又是先求的什么,再求的什么? 還有不同的解答方法嗎?(板書算式)能說說這是怎樣想的嗎? 指出:這也是連除實際問題,可以有不同的解答方法;每次找出的有聯系的兩個條件不同,解題的過程就不一樣。4.做整理與復習第9題。 (1)提問:第(l)題要怎樣解答?(板書算式)交流:為什么用一步計算,你是怎樣想的? 指出:解決問題時,要注意根據數量之間的聯系,選擇需要的條件。(2)提問:第(2)題你能先列表整理,再列式解答嗎? 讓學生先整理條件、問題,再獨立解答。(指名板演)檢查:這里是怎樣整理條件和問題的?(列表或對應排列整理)先求的什么,再怎樣算的? 交流:這道題可以用什么策略分析數量關系?從條件想起怎樣想?(讓學生聯系 圖形王國(升和毫升,觀察物體,認識垂線和平行線) 教學目標: 1.使學生進一步認識升和毫升,能從不同方位觀察物體的形狀;進一步掌握射線、直線的特點,加深對角的知識的認識,能比較熟練地量角和畫角;能說明直線兩種位置關系的特點并能正確判斷,更好地掌握垂線和平行線的畫法。 2.使學生進一步了解升和毫升的大小,進一步體會觀察位置和看到的物體形狀之間的關系;能比較和加深認識圖形的特點,進行簡單的判斷和推理,發展比較、推理等簡單能力,進一步提高量角、畫角的技能,進一步發展空間觀念。 3.使學生初步了解知識之間的聯系,產生對圖形與幾何知識的興趣,提高學習數學的主動性和積極性。 教學重難點 : 角的認識和垂線、平行線。 教學準備 : 學生準備小正方體、方格紙,三角尺、直尺和量角器。為學生準備練習紙:(l)方格紙;(2)量角(開口方向不同的4--5個角);(3)畫角(分別以一條射線為邊畫450,1300的角);(4)已知直線和已知點(一幅點在直線上;一幅點在直線外,距離2厘米)。教學過程: 一、回顧引入 1.回顧內容。 引導:請大家回顧一下這學期學習過的圖形與幾何的知識,互相說說都有哪些內容。如果不太清楚,可以先在課本上找一找,再說一說。交流:這學期你學習過圖形與幾何的哪些知識?(板書:升和毫升 觀察物體 角、垂線和平行線)2.引人課題。 談話:這節課,我們要整理和復習這學期學習的升與毫升、觀察物體、角和垂線、平行線這些圖形與幾何的知識。(板書課題)通過復習,要進一步了解容量,加深對升和毫升的認識,能從不同位置正確觀察物體并能判斷不同位置看到的形狀;進一步掌握射線、直線和角的特點,加深認識垂線、平行線,能比較熟練地畫垂線和平行線。 二、容量和觀察物體 (一)容量知識。1.回顧和整理內容。 提問:你對容量有哪些認識?(板書:升 毫升 1升=1000毫升)怎樣的正方體容器容量是1升?1毫升大約有多少? 你能舉例說說容量大約1升的容器嗎?常見的容量比1升小的容器有哪些?比1升大的呢? 能舉出一些用毫升作單位的容器嗎? 2.做整理與復習第12題。讓學生獨立填空。 交流結果,說說是怎樣想的。(學生自己的想法,只要合理便給予肯定,如酸奶不可能250升等) 說明:估計容量,一般根據1升和1毫升容量有多少確定。3.做整理一與復習第13題。學生完成后交流,說明理由。 (板書:5升——5個1000毫升一—5000毫升 8000毫升——8個1000毫升——8升) 說明:升和毫升換算要按1升=1000毫升推算,幾升是幾個1000毫升,就是幾千毫升;幾千毫升就有幾個1000毫升,就是幾升。 (二)觀察物體。 1.先擺一擺,再看一看、畫一畫。 出示下圖,讓學生照樣子擺出下面的物體,在方格紙(見練習紙)上畫出從前面、右面和上面看到的圖形。 交流三個面觀察到的圖形,說說每個面的圖形怎樣觀察到的,哪兩個面的圖形是相同的。 交流:能說說你觀察物體不同面形狀的體會嗎? 說明:觀察不同的面,位置要選正確。從不同面觀察同一個物體,看到的圖形不一定相同。2.做整理與復習第14題。讓學生連一連,交流怎樣連的。提問:觀察這個物體,前面和右面的形狀不同在哪里?右面和上面呢? 指出:在一個面觀察物體,要注意這個面形狀的特點。3.看圖形,擺物體。 出示:下面是觀察一個物體從不同面看到的圖形,同桌合作擺出這個物體。交流擺出的物體,說說擺物體時的想法。 三、角和垂線、平行線 (一)射線、直線和角。1.做整理與復習第15題。 要求學生看線段說說線段有什么特點。(板書線段特點) 讓學生把兩條線段分別延長成射線和直線。(指名板演畫線段并按要求延長)提問:射線和直線各有什么特點?(板書射線、直線特點)射線、直線和線段比,相同的是什么,不同在哪里? 線段和直線有什么聯系?(板書:線段是直線的一部分)2.回顧角的知識。 引導:想一想,由射線你學習了什么?角是怎樣的圖形?(教師由一點出發畫兩條射線,成角) 關于角,你認識了哪些知識?(板書:量角分類畫角)3.做整理與復習第16題。(1)角的分類。 提問:下面哪幾個角的度數你能直接說出來,各是什么角?(板書:直角=90度平角=180度 周角=360度)剩下的各是什么角?為什么?(板書:銳角<90度 90度<鈍角<180度) 能看著板書說一說角是怎樣分類的,分成哪幾類嗎? 直角、平角和周角的大小有怎樣的關系?(1周角=2平角=4直角)(2)量角。 讓學生量一量其余兩個角各是多少度。交流:各是多少度?用量角器怎樣量角? 讓學生量出練習紙上每個角的度數,交流結果。4.畫角。 (1)讓學生在練習紙上按指定度數畫角。交流、檢查畫出的角的度數。 提問:用量角器是怎樣畫角的?和量角的方法有什么相似的地方?(都要做到兩重合)(2)畫75度的角。 讓學生獨立畫角,再同桌互相量一量,檢查畫的度數,然后了解正確畫角的人數。5.小結歸納。 提問:對角這部分內容你能比較完整地說說有哪些認識嗎? 指出:角是從一點引出兩條射線組成的圖形;角分為五類,從小到大依次是銳角、直角、鈍角、平角和周角;量角器可以用來量角的大小、畫指定度數的角。 (二)垂線和平行線。1.直線位置關系。引導:我們由射線引人了角,認識了直線之后,學習了它的哪些知識呢? 你認識的直線位置關系有哪些?你是怎樣理解兩條直線互相垂直和互相平行的? 說明:兩條直線有相交和平行兩種位置關系,當兩條直線相交成直角時,就是互相垂直,這是相交關系中的特殊位置;互相平行是指兩條直線不相交。板書:相交——垂直平行(不相交) 2.做整理與復習第17題第(2)題。讓學生在課本上按要求畫圖,獨立完成。交流畫法,根據交流教師示范畫出圖形。 追問:垂線一般可以用什么來畫?(接“垂直”板書:——三角尺的直角 畫垂線)畫平行線呢?(接“平行”板書:——沿直尺的兩邊畫平行線) 提問:仔細觀察,畫出的這兩條直線有什么關系?怎樣驗證?(教師演示驗證)指出:(指圖形說明)兩條直線互相平行,第三條直線和其中一條互相垂直,也一定和另一條互相垂直。3.讓學生在練習紙上經過一點畫已知直線的垂線。 交流:你是怎樣畫的?(教師演示說明畫法,明確可以用三角尺通過平移,過已知點畫已知直線的垂線) 原來直線外的這點到已知直線間的垂直線段長叫什么? 讓學生獨立量一量點到直線的距離,并交流結果。4.小結歸納。 提問:你能說說已經認識了關于垂線和平行線的哪些知識嗎? 指出:互相垂直的直線相交成直角。用三角尺的直角可以畫垂線,還可以驗證兩條直線是不是互相垂直;從直線外一點到已知直線的垂直線段的長,是點到直線的距離,它是點到直線的連線中最短的?;ハ嗥叫械闹本€不相交,平行線之間所有垂直線段的長是相等的;沿直尺的兩邊可以畫平行線。今天還明白了,兩條直線互相平行,如果第三條直線和其中一條垂直,也一定和另一條垂直。 四、總結收獲 提問:你能根據今天的復習,說說對整理、復習的各部分內容的收獲嗎? 對圖形與幾何的學習有哪些體會? 統計天地(可能性,整理數據) 教學目標: 1.使學生進一步了解簡單事件可能發生的結果,能判斷可能性的大??;能根據需要設計調查計劃調查、收集數據,能按要求整理數據,在統計表和條形統計圖中表達數據,并進行簡單分析;能求一組數據的平均數。 2.使學生進一步體會事件可能發生的結果,體會隨機思想;經歷收集數據、整理數據和表達數據等活動,感受統計過程,積累統計活動的基本經驗,發展數據分析觀念;加深對平均數含義和計算方法的認識。3.使學生主動參加收集數據、整理數據等統計活動,體會統計是了解日常生活情況、解決現實問題的重要方法;在可能性的判斷中體驗可能性是生活里的常見現象;進一步感受數學方法的應用價值,增強數學應用意識。 教學重點、難點: 可能性的判斷和統計活動。 教學準備: 教師準備撲克牌若干張;為每個學生準備體重調查表、分段人數整理表。學生分組。教學過程: 一、回顧揭題 1.回顧內容。 提問:這學期我們學習過統計和可能性的哪些內容?如果記不太清楚,可以翻翻課本找一找,再告訴大家。[根據交流板書: 統計表 統計 條形統計圖平均數 可能性一可能性的大?。?2.揭示課題。 引入:現在我們就走進“統計天地”,整理、復習統計和可能性的知識,(板書課題)進一步了解可能性和可能性的大?。患由顚y計表和條形統計圖的認識,能進一步掌握收集、整理數據,用統計表和條形統計圖表示結果的方法,通過調查、統計現實生活里的數據,提高統計能力;能進一步掌握平均數的含義和計算方法。 二、復習可能性,統計表 1.可能性的認識。 (1)回顧:回憶一下可能性的知識,你舉個例子說說了解了可能性的哪些知識,比如摸球、摸牌這樣的例子。(學生舉例說明自己的認識) (2)出示4張紅桃牌(A、2、3、4)。 提問:如果從這些牌中任意摸一張,結果是怎樣的?可能是哪一張? 指出:任意摸一張,一定是紅桃;可能是其中的任何一張牌。2.做整理與復習第22題。 教師提出統計本班同學的體重情況的問題(出示教材的統計圖),明確分哪幾段統計,讓學生同桌討論要怎樣做。 交流:你覺得要怎樣做?怎樣的方法比較方便?(要設計調查表,分小組調查、整理,全班匯總學生分組調查、整理: (1)每個小組組長負責,調查每人體重,每人記錄自己的調查表;(2)各人分段整理,得出小組里各段人數;(3)小組內校對,統一準確的數據。 全班交流數據,教師協助匯總得出各段人數。學生制作條形統計圖,然后交流完成的統計圖。 分析:請同學們觀察統計圖,想想你知道了什么,能想到什么,說給大家聽一聽。(聯系具體數據,引導學生分析體重情況) 三、復習小結 1.回顧總結。 提問:想想今天復習了哪些內容,你對這些內容都掌握了些什么? 還有哪些收獲或體會? 2.布置作業。 完成整理與復習第21題。 應用廣角與自我評價 教學目標: 1.使學生能聯系實際發現數學內容,提出一些數學問題,并用數學知識和方法解決;能解決一些現實生活的實際問題。 2.使學生在應用數學知識、方法解決現實問題的過程中,培養聯想、觀察和分析、推理等思維能力,發展空間觀念和數據分析觀念,進一步提高發 現和提出問題、分析和解決問題的能力。 3.使學生增強用數學眼光觀察事物的意識,發展應用意識;體會數學知識和方法的應用價值,樹立學好數學的目標和信心。教學重點 : 數學知識、方法的應用。 教學難點 : 通過聯想發現和提出生活中的數學問題。 教學準備 : 以6人一組分組。為學生每人準備練習紙:(1)用于設計照明燈變化規律的方格紙(參見整理與復習第25題);(2)調查表和統計表(參見整理與復習第26題要求)。教學過程: 一、引入課題,說明內容 談話:我們已經整理、復習了數的世界、圖形王國、統計天地的內容,進一步掌握了這學期學習的數學知識和方法。那大家能不能聯系數學內容,發現生活里的數學問題,能不能解決生活里常見的實際問題呢?這節課,大家就一起來應用數學知識和方法,提出和解決一些現實世界的數學問題,并且評價一下自己這學期的數學學習的情況。(板書課題) 二、聯系生活,提出問題 1.提出問題,解決問題。 引導:前幾節課,我們整理、復習了這學期學習的數與計算、圖形與幾何、統計與可能性的內容,聯系這些內容想一想,你在生活里發現了哪些數學問題呢?比如用兩步、三步計算解決的實際問題,關于角和直線的圖形或實際問題,關于統計和可能性的實際問題等等。把你想到的問題在小組里交流,每個小組確定這樣的一到兩個數學問題,記錄下來,說說這一兩個問題的解決方法。明白了嗎? 學生小組活動,教師巡視、指導,了解學生提出的問題(包括畫圖、統計等)。 交流:你們小組發現的是生活里的哪幾個數學問題,準備怎樣解決?請派代表來交流。(選擇和組織學生交流提出的問題,教師協助說明、修正問題,引導簡單說明解決問題的方式)2.回顧反思。 引導:通過本學期數學學習,大家發現了生活里的許多數學問題。通過從生活里發現和提出數學問題的活動,你有些什么體會呢? 指出:(具體說明要根據交流的問題)經過一學期的數學學習,以及剛才提出問題的活動,大家都體會到數學本來就是從生活里現象中提取出來的,從許多生活現象中學會了數學知識和方法;反過來,用數學的眼光去觀察生活,就能發現數學現象、提出數學問題,還可以用數學知識方法能解決這些問題。因此學好數學,可以培養發現數學問題、解決數學問題的能力,讓我們的生命充滿活力。設計說明:學習是為了應用。數學綜合應用的重要方面,是使學生能用數學眼光觀察世界、發現數學問題,應用知識解決問題。這里的設計,沒有內容范圍的限制,主要引導學生聯系生活和所學的數學內容,自己發現、提出數學問題,這一方面有利于培養學生發現問題、提出問題的能力;另一方面可以開拓學生從數學角度觀察、聯想的視野,促進學生體會數學應用的廣泛性,培養學生的應用意識;再一方面還可以讓學生體驗數學觀察方法和數學思維方式,發展數學素養,提升數學思考水平。讓學生以小組合作的方式提出問題,一方面是課時時間安排上的需要(一課中不可能交流更多的問題),另一方面也能培養學生互動交流、合作學習的意識和習慣。] 三、實際應用,提升能力 1.策略應用。 讓學生了解整理與復習第23題題意。 交流:這個問題知道了些什么,解決什么問題?解決這個問題,你準備怎樣想? 說說你的思路。追問:用什么策略分析這個問題比較方便? 說明:解決實際問題的重點是分析數量關系,找到解題思路,這道題從條件想起比較方便。根據前兩個條件可以求出特快列車的速度這個新條件,再聯系后一個條件求出問題的結果。2.做整理與復習第24題。學生獨立讀題,列式解答。 交流:第二天收獲多少千克是怎樣解答的?(板書算式)這里先求的是什么數量,再怎樣求第二天千克數的?解答的關鍵是哪一步,要注意的問題是什么? 指出:解答第一個問題的關鍵是求出1筐有多重,需要注意的是第二天實際收獲多少筐。 交流:接著怎樣求出第二個問題的?(板書算式)關鍵是先求什么? 指出:第一天的加第二天的等于兩天一共收獲的,關鍵是先求出前一個問題:第二天收獲多少千克?(板書:第一天的十第二天的=一共收獲的) 3.做整理與復習第25題。 (1)閱讀問題,出示直觀圖,了解圖上表示的方式,明確前3秒依次是亮、亮、暗(實際可以從其中一行上看出明、暗變化情況)。提問:第4、5秒照明燈各是亮的還是暗的? 繼續觀察后面的變化,想想照明燈發光有什么規律?每個變化周期是幾秒? 第39,40秒照明燈是亮的還是暗的?想辦法解決。交流:第39秒、第40秒發光情況各是怎樣的?你是怎樣知道的?(板書算式并說明判斷理由) 指出:我們通過觀察發現,這其實就是一個周期問題,應用周期問題的方法就可以解決。 (2)你能設計一個按5秒一個周期的變化規律嗎?在練習紙上像這樣畫一畫,表示出你設計的周期。 交流:你是怎樣設計的?(呈現學生的設計) 四、自我評價,完成作業 1.回顧交流。 引導:一學期學習結束了,我們也要對自己的學習情況做個總結,看看取得的成績,想想還有哪些方面存在不足。你能根據課本上數學學習的幾個方面,具體說說你有哪些表現嗎?請組長負責,組織大家互相說一說。學生圍繞教材提出的幾個方面,在小組里交流自己對這些方面表現的自我感受。2.涂色評價。 引導:如果把表現好看作5個星,那你覺得自己這幾個方面各能得幾個星呢?根據自己的回顧,你能得幾個星,就把幾個星涂上顏色。(學生涂色評價) 交流:覺得自己各方面表現好的,來介紹一下自己的評價結果。小結:這些同學在各個方面的表現都很好,值得大家學習。我們每個人都要爭取在以后的學習中,把這幾方面都做得更好。有信心嗎? 3.布置作業。(1)解決自己小組上課開始時提出的問題。(2)完成整理與復習第23題。 (3)完成整理與復習第26題(也可以安排在自我評價前),要求: ①組長負責,在小組里調查,每人做好記錄; ②根據調查完成反映每家圖書本數的統計表; ③寫出小組同學家圖書本數平均數在幾本到幾本之間; ④算出同學家圖書本數的平均數; ⑤在小組里交流結果,說說從統計表里知道了些什么,有什么想法。 單位:五府營小學 授課:王俊芳 時間:2017年12月-2018年1月第三篇:SQL數據庫期末復習試題 - 填空
第四篇:數據庫期末
第五篇:期末復習教案