關于數據庫技術分析.ppt
《關于數據庫技術分析.ppt》由會員分享,可在線閱讀,更多相關《關于數據庫技術分析.ppt(125頁珍藏版)》請在裝配圖網上搜索。
第六章 數據庫技術基礎,本章主要介紹如下知識: 數據庫系統的基本知識 對數據模型進行闡述,特別是其中的E-R模型和關系模型 著重介紹關系型數據庫及其設計理論 數據庫的設計過程 簡單介紹面向對象數據庫系統,6.1 數據庫系統的基礎知識,6.1.1數據庫系統的產生與發(fā)展 6.1.2 數據庫的基本術語 6.1.3 數據庫系統結構體系,6.1.1數據庫系統的產生與發(fā)展,數據管理技術經歷以下三個階段:人工管理階段(50年代中期以前);文件系統階段(50年代后期到60年代中期);數據庫系統階段(60年代后期以來)。,1.人工管理階段 當時外存沒有磁盤等直接存取的存儲設備;軟件沒有操作系統,數據的處理是批處理。 人工管理數據具有如下特點: 1)數據不保存。 2)數據需要由應用程序自己管理,沒有相應的軟件來處理數據。 3)數據不共享。 4)數據不具有獨立性。,2. 文件系統階段 50年代后期到60年代中期,在操作系統中有專門的數據管理軟件,一般稱為文件系統。文件系統是數據庫系統發(fā)展的初級階段。 用文件系統管理數據具有如下特點: 1)數據可長期保存。2)簡單的數據管理功能 3)數據共享性差。 4)數據的獨立性差。,3. 數據庫系統階段 60年代末期,人們對文件系統進行了擴充,研制了一種結構化的數據組織和處理方式,才出現了真正的數據庫系統。 數據庫系統的基本特點如下: 1)數據的集成性。 2)數據的高度共享性與低冗余性。 3)數據獨立性高。數據的獨立性包括:,物理獨立性:是指數據的物理結構的改變,如存儲設備的更換、物理存儲的更換、存取方式改變等都不影響數據庫的邏輯結構,從而不致引起應用程序的改變。 邏輯獨立性:是指數據的總體邏輯結構改變時,如修改數據模式、改變數據間的聯系等,不需要修改相應的應用程序。 (4)數據的管理和控制能力。 數據管理發(fā)展的三個階段的軟硬件背景及其特點的比較見下表 。,6.1.2 數據庫的基本術語,1. 數據(Data) 定義:數據是描述事物的符號記錄。 數據的表現形式不僅是數字,還包括字符(文字和符號)、圖表(圖形、圖像和表格)及聲音、語言等 。 信息是從原始數據中經過篩選、提煉等加工后,產生的對決策有影響的數據。,2. 數據庫(Database) 定義:數據庫(DB)是長期儲存在計算機內的、有組織的、可共享的數據的集合。 數據庫有以下特點:1)數據結構化。 2)實現數據共享。 3)減少數據的冗余。 4)數據獨立。,3.數據庫管理系統(Databbase Management System簡稱DBMS) 定義:數據庫管理系統它是位于用戶和操作系統(OS)之間的一層數據管理軟件,負責數據庫中數據組織、數據操縱、數據維護、數據控制及保護和數據接口等。,4.數據庫管理員(Database Adminstrator簡稱DBA) 定義:由專職人員對數據庫進行規(guī)劃、設計、維護、監(jiān)視等,稱這些專職人員為數據庫管理員。 數據庫管理員的具體職責包括: 1)數據庫定義與設計。 2)數據庫運行與維護。 3)數據庫的改進和重組重構。,5.數據庫系統(Database System簡稱DBS) 定義:數據庫系統一般由數據庫、數據庫管理系統(及其開發(fā)軟件)、系統平臺、應用系統和人員構成。 數據庫系統在整個計算機系統中的地位如下圖所示。,6.1.3 數據庫系統結構體系,數據庫系統的結構可以有多種不同的層次。 從數據庫管理系統角度看,數據庫系統通常采用三級模式結構,這是數據庫系統的內部系統結構。 從數據庫最終用戶角度看,數據庫系統分為單用戶數據庫系統、主從式數據庫系統、分布式數據庫系統和客戶/服務器數據庫系統。,1. 數據庫系統的模式結構 模式是數據庫中全體數據的邏輯結構和特征的描述。 數據庫系統在其內部具有三級模式和二級映像。三級模式分別為外模式、模式與內模式;二級映像則是外模式/模式映像和模式/內模式映像。 三級模式與二級映像構成數據庫系統的內部的抽象結構體系,如下圖所示。,,(1)數據庫系統的三級模式。 外模式也稱子模式或用戶模式,還稱為用戶級模式。它是數據庫用戶能夠看見和使用的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖。 模式也稱邏輯模式,還稱概念模式。是數據庫中全體數據的邏輯結構和特征的描述。 內模式也稱存儲模式,還稱物理模式。它是數據物理結構和存儲方式的描述。,(2)數據庫系統的二級映像。 外模式/模式映像:它使數據具有較高的邏輯獨立性。它定義了該外模式與模式之間的對應關系。這些映象定義通常包含在各自外模式的描述中。當模式改變時,DBA要對相關的外模式/模式映像作相應的改變,以使外模式保持不變。應用程序是依據數據的外模式編寫的,外模式不變,應用程序就沒必要修改。所以外模式/模式映像功能保證了數據與程序的邏輯獨立性。,模式/內模式映像:它使數據具有較高的物理獨立性。它定義了數據庫全局邏輯結構與存儲結構之間的對應關系。該映像定義通常包含在模式描述中。當數據庫的存儲結構了,DBA要對模式/內模式映像作相應的改變,以使模式保持不變。模式不變,與模式沒有直接聯系的應用程序也不會改變,所以模式/內模式映像功能保證了數據與程序的物理獨立性。,2. 數據庫系統的體系結構 (1)單用戶數據庫系統。,(2)主從式數據庫系統。,(3)分布式數據庫系統。,(4)客戶/服務器數據庫系統。,,6.2 數據模型,6.2.1 數據模型的基本概念 6.2.2 概念模型 6.2.3 數據模型,6.2.1 數據模型的基本概念,數據模型根據不同的應用層次劃分為三種類型: 1、概念模型:也稱信息模型。它是按用戶觀點來對數據和信息建模,主要用于數據庫設計。它與具體數據庫管理系統無關,與具體的計算機平臺無關。目前,較為流行的概念模型有E-R模型、擴充的E-R模型、面向對象模型等。,2、邏輯模型:又稱數據模型。它是按計算機系統觀點對數據建模,主要用于DBMS的實現。目前數據模式有很多種,包括層次模型、網狀模型和關系模型、面向對象模型等。 3、物理模型:它是一中面向計算機物理表示的模型,此模型給出了數據模型在計算機上的物理結構的表示。,數據模型的三要素: 1、數據結構。數據結構用來描述系統的靜態(tài)特征。它主要描述數據的類型、內容性質以及數據間的聯系等。 2、數據操作。數據操作用于描述系統的動態(tài)特征。它主要描述在相應數據結構上的操作類型與操作方式。數據庫主要有檢索和更新(包括插入、刪除和修改)兩類操作。,3、數據約束條件。 數據約束條件是一組完整型規(guī)則的集合,它描述了數據及其聯系應具有的制約和依賴規(guī)則。,6.2.2 概念模型,概念模型是現實世界到機器世界的一個中間層次。 概念模型的表示方法很多,其中最常用的是實體—聯系模型,簡稱為E-R模型。該模型將現實世界中需要的信息,以及它們之間的基本聯接關系轉化成圖,比較直觀的反映了現實世界。,1. 概念模型涉及的基本概念 (1)實體:客觀存在的并可相互區(qū)別的事物稱為實體。可以是具體的人、事、物,比如小趙、信息學院、教材等;也可以是抽象的概念或聯系,比如領導與職工的領導關系。實體是概念世界中的基本單位。,(2)屬性:實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。如學生實體可以由學號、姓名、性別等屬性組成。 (3)聯系:現實世界中的事物間的關聯稱為聯系。如教師與學生的授課關系等。這些聯系反映為實體內部的聯系和實體之間的聯系。,兩個實體集間的聯系可以分為以下幾種: 一對一聯系(1 :1):對于實體集A中的每一個實體,實體集B中有且只能有一個實體與之聯系,反之亦然。如學校與校長之間的聯系 。 一對多聯系(1 :n)或多對一聯系(n :1):對于實體集A中的每一個實體,實體集B中有n (n≥1)個實體與之聯系,反之,對于實體集B中的每一個實體,實體集A中有且只能有一個實體與之聯系。如一個學院由多個班級。,多對多聯系(m :n): 這是一種復雜的聯系,對于實體集A中的每一個實體,實體集B中有n (n≥1)個實體與之聯系,反之,對于實體集B中的每一個實體,實體集A中有n (n≥1)實體與之聯系。如一門課同時有若干個學生選修,而一個學生可以同時選修多門課。,2. 概念模型基本概念之間的關系 (1)實體集(聯系)與屬性間的關系。 一個實體可以有若干個屬性,實體以及它的所有屬性構成了實體的一個完整描述,因此實體與屬性間有一定的聯系。如在學生基本情況信息表中每一個人(實體)可以有:編號、姓名、性別、系別、年齡、籍貫、政治面貌等屬性,它們組成了一個有關學生實體的完整描述。,聯系也可以附有屬性,聯系和它的所有的屬性構成了聯系的一個完整描述,因此,聯系與屬性間也有聯接關系。 (2)實體集與聯系。 實體集間可通過聯系建立聯接關系。 概念模型中的基本關系的結構如下圖所示。,3. 概念模型的表示方法 (1)實體集的表示方法:在E-R圖中用矩形表示實體集,在矩形內寫上該實體集的名字。 (2)屬性的表示方法:在E-R圖中用橢圓表示屬性,在橢圓內寫上該屬性的名稱。并用無向邊將其與相應的實體連接起來。,(3)聯系的表示方法:在E-R圖中用菱形表示聯系,菱形框內寫明聯系名,并用無向邊分別與有關的實體連接起來,同時在無向邊旁標上聯系的類型,如1 :1,1 :n,n :m等。如下圖所示。,(a)兩個實體集間的1:1聯系,(b)兩個實體集間的1:n聯系,聯系本身也是一種實體型,也有屬性,如果一個聯系具有屬性,則將這些屬性用無向邊與該聯系連接起來。,(c)兩個實體集間的n: m聯系,例6.1 有三個實體集及它們的屬性,它們分別是: 學生(Student):學號(Xh)、姓名(Xm)、性別(Xb)、年齡(Nl) 班級(Class):班號(Bh)、專業(yè)(Zy) 課程(Course):課程號(Kh)、課程名(Km)、學分(Xf) 由這三個實體集構成的概念模型,可用E-R圖來表示,如圖所示。,,6.2.3 數據模型,在數據庫領域中最常用的數據模型有層次模型、網狀模型、關系模型三種模型。 1. 層次模型 層次模型是最早發(fā)展起來的數據庫模型。它的基本結構是樹形結構,這種結構方式在現實世界中很普遍,如家族結構、行政組織結構等。,在圖論中,我們學過樹的定義,任一樹結構均有以下特性:1)棵樹有且僅有一個無雙親結點,稱為根結點。2)除根結點以外其他的結點有且僅有一個雙親,無子女的結點稱為葉結點。 層次模型的示例如下圖所示。,,2.網狀模型 網狀模型是一種更具有普遍性的結構,從圖論的角度講,網狀模型是一個不加任何條件限制的無向圖。網狀模型是以記錄為結點的網狀結構,它滿足以下條件: (1)可以有任意個結點無雙親。 (2)允許結點有一個以上的雙親。 (3)允許兩個結點之間有一種或兩種以上的聯系。,網狀模型的示例如下圖所示。,3. 關系模型 目前,關系模型是數據庫領域中目前最重要的一種數據模型。關系模型的本質是一張二維表,關系模型中,一張二維表就稱為一個關系。 (1)關系模型的數據結構。關系模型采用二維表來表示,簡稱表。如下表是一張學生登記表,它由行(元組)和列(屬性)組成。,關系二維表一般具有下面幾個性質: 1) 元組個數有限性。2) 元組的唯一性。 3)元組次序的無關性。4)元組分量的原子性5)屬性名的唯一性。6)屬性的次序無關性。7) 分量值域的同一性。,需要注意的是:關系必須滿足一定的規(guī)范條件,其中最基本的一條是:關系的每一個分量必須是一個不可分的數據項,即不允許表中還有表。 外鍵:二維表中某個屬性或屬性組合雖不是該表的關鍵字或只是關鍵字的一部分,但卻是另外一個表的關鍵字時,稱該屬性或屬性組合為這個表的外部關鍵字或外鍵。,(2)關系模型的操作。一般有以下四種操作: 1) 數據查詢。數據查詢是數據庫的核心操作。它包括單表查詢和多表查詢。 單表查詢:是指僅在一個數據庫表進行的查詢。 多表查詢:是指同時涉及兩個以上的表的查詢。首先將相關的關系合并成一個關系,再對合并后的關系作橫向或縱向的定位。確定要查詢的數據,之后進行操作。,2) 數據插入。數據插入僅對一個關系而言,在指定的關系中插入一個或多個元組。 3) 數據刪除。數據刪除的基本單位是一個表中元組,它將滿足條件元組從表中刪除。 4) 數據修改。數據修改又稱更新操作。它可以分解為刪除和插入兩個基本操作。 以上四種操作的對象都是關系(表),而操作的結果也是關系(表)。,(3)關系模型的約束條件。關系模型定義三種數據約束條件: 1) 實體完整性約束條件。實體完整性約束要求關系中主碼的任何屬性都不能為空。這是數據庫完整性的最基本的要求,因為主碼唯一標識元組,如為空則不能為主碼。,2) 參照完整性約束條件。參照完整性約束是對關系間引用數據的一種限制。即在關系中的外鍵要么是所關聯關系中的實際存在的元組,要么就為空值。比如在下面關系中: 職工關系(職工編號,姓名,性別,部門編號) 部門關系(部門編號,部門名稱,部門經理) 職工編號是職工關系的主碼,而外碼為部門 編號,職工關系與部門關系通過部門編號關聯, 參照完整性要求職工關系中的部門編號的值在部門關系中必有相應元組。,3) 用戶定義的完整性約束條件。用戶定義的完整性約束條件是某一具體數據庫的約束條件,是用戶自己定義的某一具體數據必須滿足的語義要求。 其中前兩者約束條件由關系數據庫系統自動支持。對后者,則由關系數據庫系統提供完整性約束語言,用戶利用該語言定義出約束條件。,6.3 關系數據庫,6.3.1 關系模型的特點 6.3.2 關系代數 6.3.3 結構化查詢語言SQL,6.3.1 關系模型的特點,1. 單一的數據結構——關系 關系模型的數據結構是單一的?,F實世界的實體以及實體之間的各種聯系均用關系來表示,從用戶角度來看,關系模型中數據的邏輯結構是一張二維表。 2. 關系操作 關系操作采用集合操作方式。即操作對象和結果都是集合。其中查詢是最基本的操作。,3. 關系的三類完整性規(guī)則 關系模型的完整性規(guī)則是對數據的約束。關系模型提供了三類完整性規(guī)則:實體完整性規(guī)則、參照完整性規(guī)則和用戶自定義完整性規(guī)則。,6.3.2 關系代數,關系模型中的關系操作通常用關系代數和關系演算來表示的。關系代數是一種抽象的查詢語言,它是用對關系的運算來表達查詢的。關系演算是用謂詞來表達查詢要求的方式。二者是等價的。在這里我們著重介紹關系代數。,1. 關系代數的相關概念 (1)笛卡爾積:令A和B是任意兩個集合,若有序對的第一個成員是A的元素,第二個成員是B的元素,所有這樣的有序對的集合,稱為集合A和B的笛卡爾積或直積。記作AB。 AB={|(x∈A)∧(y∈B)} 笛卡爾積可表示為一個二維表,表中的每一行對應一個元組,表中的每一列對應一個域(同一屬性的集合)。,我們看一個例子: 例如:A={a,b}, B={0,1,2}則: AB={﹤a,0﹥,﹤a,1﹥, ﹤a,2﹥, ﹤b,0﹥, ﹤b,1﹥, ﹤b,2﹥} BA={﹤0,a﹥,﹤0,b﹥, ﹤1,a﹥, ﹤1,b﹥, ﹤2,a﹥, ﹤2,b﹥},(2)關系:令A和B是任意兩個集合,笛卡爾積AB的子集R稱作A到B的關系。簡單的說:關系是笛卡爾積的子集。 (3)關系模型:關系的描述稱為關系模型。它可以形象化地表示為一個五元組: R(U,D,DOM,F)。其中R為關系名,U為組成該關系的屬性名的集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F為屬性間數據依賴關系。,2. 傳統的集合運算 (1)并:設關系R和S具有相同的關系模式,R和S的并是由屬于R或屬于S的元組構成的集合,記為R∪S。形式定義如下: R∪S = { t | t∈R ∨ t∈S }, t是元組變量,R和S都有n個屬性。 并運算可以實現插入若干元組的操作。如對關系R插入R′,則可用并運算表示為:R∪R′。,(2)差:設關系R和S具有相同的關系模式,R和S的差是由屬于R但不屬于S的元組構成的集合,記為R-S。形式定義如下: R-S = { t | t∈R ∧ t∈S }, R和S都有n個屬性。 差運算可實現刪除操作。如對關系R刪除R′,則可用差運算表示為:R-R′。 對關系的修改可分兩步進行,先做刪除操作,再做插入操作,即先做差運算再做并運算。,,(3)交:設關系R和S具有相同的關系模式,關系R和S的交是由既屬于R又屬于S的元組構成的集合,記為R∩S,這里要求R和S定義在相同的關系模式上。形式定義如下: R∩S = {t︱t∈R ∧ t∈S}, R和S都有n個屬性。,(4)廣義笛卡爾積:設關系R和S的元數分別為r和s,則R和S的笛卡爾積是一個(r+s)元的元組集合,每個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組,記為:RS。形式定義如下: RS = { t | t= ∧ tr ∈R ∧ ts ∈S } 下面舉例說明上述的四種傳統集合運算。,例,R 關系,S關系,R∪S (R和S 的并),R∩S (R和S 的交),R-S (R和S 的差),RS(R和S的廣義笛卡爾積),3. 專門的關系運算 專門的關系運算包括選擇、投影、連接、除。 (1)選擇:選擇運算是根據某些條件對關系做水平分割,即選取符合條件的元組。形式定義如下: σF(R)={ t | t∈R ∧ F(t)= true }其中σ為選擇運算符,σF(R)表示從R中挑選滿足公式F為真的元組所構成的關系。這是從行的角度進行的運算。 例如,σ 2>′3′ (R)表示從R中挑選第2個分量值大于3的元組所構成的關系。,(2)投影:投影運算是從關系內選擇出若干屬性列組成新的關系。形式定義如下: πA(R)={ t [A]| t∈R }其中A為R的屬性列。投影操作是從列的角度進行的運算。 投影之后不僅取消了原關系中的某些列,而且取消完全相同的元組。 例如,π 3,1 (R)表示關系R中取第1、3列,組成新的關系,新關系中第1列為R的第3列,新關系的第2列為R的第1列。,(3)連接:連接也稱為θ聯接。它是從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組組成新的關系。關系R和S的連接運算形式定義如下: R ? S= { t︱t = ∧ tr∈R ∧ ts∈S ∧ AθB tr[A] θ ts[B] },連接運算中有兩種最為常用的連接: 1) 等值連接:將連接中的θ換成“=”,功能是從關系R和S的笛卡爾積中選取A,B屬性值相等的那些元組。它的形式定義為: R ? S={ t︱t = ∧tr∈R ∧ ts∈S A=B ∧ tr[A]= ts[B] },2) 自然連接:是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且要在結果中將重復的屬性去掉。它的形式定義為: R ? S={ t︱t = ∧tr∈R ∧ ts∈S ∧ tr[B]=ts[B] } 連接運算一般是從行的角度進行的操作,但自然連接是同時從行和列的角度進行的操作。,我們舉例說明連接運算:,R關系,S關系,選擇連接,R ? S DE,自然連接R? S,等值連接,R ? S R.B=S.B,(4)除:設R(x)和S(y)是兩個關系,并且y是x的子集——即x中的每一個屬性都在y中,關系RS是模式x-y上的關系,也就是說,RS包含所有在x中而不在y中的屬性。它形式定義為: RS = {tr[X]| tr∈R ∧ yx ? πy(S)} 其中yx為x在R中的像集。,我們舉例說明除運算:,R關系,S關系,RS,根據上述的關系運算完成下面例題 學生選課數據庫的關系模式為: Student(Sno,Sname,Sdept,Sage); Course(Cno,Cname,Pno); SC(Sno,Cno,Grade)。 其中Sno,Sname,Sdept,Sage表示學號、學生姓名、學生系別、學生年齡;Cno,Cname,Pno表示課程號、課程名、預修課程號;Grade表示成績。,寫出對關系模型Student、Course、SC中的下述查詢表達式: (1)檢索學生年齡小于19的學生的姓名。 πSname(σSage19(Student)) (2)檢索沒有選修課程號為001課程的學生學號。 πSno(Student)-πSno(σ Cno=’001’ (SC)) (3)檢索既選修001課程,又選修003課程的學生學號 πSno (σ Cno=’001’ (SC))∩πSno (σ Cno=’002’ (SC)),(4)檢索課程號為012且成績大于85的所有學生的學號和姓名。 πSno,Sname(σ Cno=’012’∧Grade85 (Student ?SC)) (5)求選修了全部課程的學生學號。 πSno,Cno(SC) πCno(Course),6.3.3 結構化查詢語言SQL,SQL:是Structured Query Language的縮寫,是一種結構化查詢語言。是1974年由Boyce和Chamberlin提出來的。 由于SQL使用方便、功能豐富、語言簡單易學,現已成為關系數據庫領域中的一個主流語言。,1. SQL數據庫結構 SQL數據庫的結構如圖所示。,它基本上是三級結構,它支持關系數據庫三級模式結構,但在SQL數據庫中,模式被稱為基本表,內模式稱為存儲文件,外模式稱為視圖或部分基本表,元組稱為行,屬性稱為列。,2. 結構化查詢語言SQL的組成 SQL語言包括數據定義、數據查詢、數據操縱、數據控制4個方面。 數據定義包括定義基本表、定義視圖、定義索引3部分。 數據查詢是建立數據庫的主要目的,SQL語言提供了SELECT語句進行查詢。 數據操縱包括數據檢索和更新兩部分功能。 數據控制是指控制用戶對數據的存儲權力。,3. SQL數據庫的查詢 數據庫的查詢的基本格式為: SELECT[ALL/DISTINCT][]… FROM []… [WHERE] [GROUP BY] [ORDER BY [ASC/DESC]]; 在語句中,凡是在中的項是不可缺的,[ ] 中的項可根據需要省略。,整個查詢語句的含義是: 根據WHERE子句中的條件,從FROM子句指定的表中找出滿足條件的元組,再按SELECT子句中的目標列或目標列表達式選出元組中的屬性值形成結果表。如果有GROUP子句,則按列名1的值進行分組。如果有ORDER子句,則在結果表中按照列名2的值進行升序(ASC)和降序(DESC)排序。,我們舉例說明如何用SQL語言進行查詢。 例:學生選課數據庫的關系模式為: Student(Sno,Sname,Sdept,Sage); Course(Cno,Cname,Pno); SC(Sno,Cno,Grade)。 (1)查詢全體學生的姓名、學號。 SELECT Sno, Sname FROM Student;,(2)查詢所有選修過課的學生的學號。 SELECT DISTINCT Sno FROM SC; (3)查詢年齡在19到22之間的學生姓名、系別和年齡。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 19 AND 23; 謂詞BETWEEN…AND… 和NOT BETWEEN … AND…可以查找屬性值在(或不在)指定范圍內的元組。,(4)查詢出成績?yōu)?0、85、87的記錄。 SELECT * FROM SC WHERE Grade IN(80,85,87); 謂詞IN用來查找屬性值屬于指定集合的元組。 (5)查詢第二個字為“艷”的學生的姓名和系別。 SELECT Sname, Sdept FROM Student WHERE Sname LIKE ‘- -_艷%’; 謂詞LIKE可以用來進行字符串的匹配。其中%代表任意長的的字符串,- 代表任意單個字符。一個漢字占兩個字符。,(6)查詢選修“數據庫系統原理”課程的學生姓名。 SELECT Sname FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname=‘數據庫系統原理’)); 此查詢?yōu)榍短撞樵儭?6.4 數據庫的設計,6.4.1 數據庫設計的步驟 6.4.2 數據庫設計的需求分析 6.4.3 數據庫的概念結構設計 6.4.4 邏輯結構設計 6.4.5 物理結構設計,數據庫設計是數據庫應用的核心。數據庫設計是指利用現有的數據庫管理系統,針對具體的應用對象,構造合適的數據庫模式,建立基于數據庫的應用系統或信息系統。,6.4.1 數據庫設計的步驟,在數據庫設計中有兩種方法: 一種是以信息需求為主,兼顧處理需求,稱為面向數據的方法。 另一種方法是以處理需求為主,兼顧信息需求,稱為面向過程的方法。 這兩種方法現在都有使用,但面向數據方法已成為主流方法。,數據庫設計一般分為以下六個階段: 1. 需求分析階段 進行數據庫設計首先必須準確分析用戶的需求,按需求合理的設計系統。 2. 概念設計階段 概念結構設計是整個數據庫設計的關鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。,3. 邏輯設計階段 該階段是將概念結構轉化為某個DBMS所支持的數據模型,并對其進行優(yōu)化,得到數據庫的邏輯模型。 4. 物理設計階段 數據庫物理設計是為邏輯數據模型選取一個最合適應用環(huán)境的物理結構(包括存儲結構和存取方法)。,5. 實現階段 在數據庫實施階段,設計人員運用DBMS提供的數據語言及其宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編制與調試應用程序,組織數據入庫,并進行試運行。 6. 運行和維護階段 數據庫應用系統經過試運行后即可投入正式運行。在其運行過程中必須不斷對其進行評價、調整與修改。,數據庫設計的步驟如圖所示,6.4.2 數據庫設計的需求分析,分析和表達用戶的需求,通常采用結構化分析方法,這種方法用自頂向下,逐層分解的方式分析系統。并用數據流圖和數據字典描述系統。,6.4.3 數據庫的概念結構設計,1. 概念結構設計的目的 概念結構設計階段的目標是通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。 概念結構的設計方法有兩種:,(1)集中式模式設計法:根據需求由一個統一機構或人員設計一個綜合的全局模式。該方法簡單方便,適用于小型或不復雜的系統設計。 (2)視圖集成設計法:這種方法是將一個系統分解成若干個子系統,首先對每一個子系統進行模式設計,建立各個局部視圖,然后將這些局部視圖進行集成,最終形成整個系統的全局模式。,2. 概念結構設計的過程 數據庫概念結構設計是使用E-R模型和視圖集成設計法進行設計的。它的設計過程是:首先設計局部應用,再進行局部視圖(局部E-R圖)設計,然后進行視圖集成得到概念模型(全局E-R圖)。,視圖設計一般有三種方法: (1)自頂向下。這種方法是從總體概念結構開始逐層細化。如教師這個視圖可以從一般教師開始,分解成高級教師、普通教師等。進一步再由高級教師細化為青年高級教師與中年高級教師等。 (2)自底向上。這種方法是從具體的對象逐層抽象,最后形成總體概念結構。 (3)由內向外。這種方法是從核心的對象著手,然后向四周逐步擴充,直到最終形成總體概念結構。,在視圖集成過程中最重要的任務是解決各個E-R圖設計中的沖突。常見的沖突有以下幾類: (1)命名沖突。命名沖突有同名異義和同義異名兩種。如教師屬性何時參加工作與參加工作時間屬于同義異名。 (2)概念沖突。同一概念在一處為實體而在另一處為屬性或聯系。 (3)域沖突。相同屬性在不同視圖中有不同的域。 (4)約束沖突。不同的視圖可能有不同的約束。,我們舉例說明數據庫的概念設計過程: 設計學生管理系統。包括學生的學籍管理子系統和課程管理子系統兩個系統。 (1)學籍管理子系統包括學生、宿舍、班級、教室、輔導員。這些實體之間的聯系有: 一個班級有若干學生,一個學生只能屬于一個班;一個宿舍可以住多個學生,一個學生只能住在一個宿舍中;一個輔導員帶若干個學生,一個學生只屬于一個輔導員。一個輔導員帶多個班級;一個班級在多個教室上課,一個教室有多個班級來上課。,(2)課程管理子系統包括學生、課程、教師、教室、教科書。這些實體之間的聯系有: 一個學生選修多門課程,一門課程有若干學生選修;一個學生有多個教師授課,一個教師教授若干學生;一門課程由若干個教師講授,一個教室只講一門課程;一個教室開設多門課,一門課只能在一個教室上。,針對兩個子系統分別設計出它們的E-R圖。在E-R圖中省去屬性。學籍管理子系統的E-R圖如圖所示。,,對應各個實體的屬性分別為: 學生{學號,姓名,性別,出生日期,系別,何時入校,平均成績} 班級{班級號,學生人數} 輔導員{職工號,姓名,性別,工作時間} 宿舍{宿舍編號,地址,人數} 教室{教室編號,地址,容量} 其中有下劃線的屬性為實體的碼。,課程管理子系統的E-R圖如圖所示。,,對應各個實體的屬性分別為: 學生{學號,姓名,性別,年齡,入學時間 } 課程{課程號,課程名,學分} 教科書{書號,書名,作者,出版日期,關鍵字} 教室{教室編號,地址,容量} 教師{職工號,姓名,性別,職稱} 其中有下劃線的屬性為實體的碼。,下面將學籍管理子系統E-R圖和課程管理子系統E-R圖集成學生管理系統E-R圖。集成過程如下: (1)消除沖突。這兩個子E-R圖存在著多方面的沖突: 輔導員屬于教師,學籍管理中的輔導員與課程管理中的教師可以統一為教師。 將輔導員改為教師后,教師與學生之間有兩種不同的聯系:指導聯系和教學聯系,將兩種聯系綜合為教學聯系。 調整學生屬性組成,調解結果為: 學生{學號,姓名,出生日期,年齡,系別,平均成績},(2)消除冗余。 學生實體的屬性中的年齡可由初涉概念日期計算出來,屬于數據冗余。調整為:學生{學號,姓名,出生日期,系別,平均成績} 教室實體與班級實體之間的上課聯系可以由教室與課程之間的開設聯系、課程與學生之間的選修聯系、學生與班級之間的組成聯系三者推導出來,因此屬于數據冗余,可以消去。 學生的平均成績可以從選修聯系中的成績屬性推算出來。但如果學生的平均成績經常查詢,可以保留該數據冗余來提高效率。,集成后學生管理系統的 E-R 圖,6.4.4 邏輯結構設計,邏輯結構設計階段的任務是將概念結構設計階段所得到的概念模型轉換為具體DBMS所能支持的數據模型(即邏輯結構),并對其進行優(yōu)化。邏輯結構設計一般分為三步進行:,1. 從E-R圖向關系模式轉化 數據庫的邏輯設計主要是將E-R圖中的實體、實體的屬性和實體之間的聯系轉化為關系模式。在轉化過程中會遇到如下問題: (1)命名問題。命名問題可以采用原名,也可以另行命名,避免重名。 (2)非原子屬性問題。非原子屬性問題可將其進行縱向和橫行展開。 (3)聯系轉換問題。聯系可用關系表示。,2. 數據模型的優(yōu)化 數據庫邏輯設計的結果不是唯一的。為了進一步提高數據庫應用系統的性能,還應該適當修改數據模型的結構,提高查詢的速度。 3. 關系視圖設計 關系視圖的設計又稱用戶模式設計,是用戶可直接訪問的數據模式。關系視圖來自邏輯模式,但在結構和形式上可能不同于邏輯模式,所以它不是邏輯模式的簡單子集。,6.4.5 物理結構設計,數據庫物理結構設計是為邏輯數據模型選取一個最適合應用環(huán)境的物理結構。數據庫物理結構設計主要包括存儲記錄結構設計、存儲記錄布局、存取方法設計三個方面。,6.5 面向對象數據庫系統簡介,6.5.1 面向對象數據庫系統概述 6.5.2 面向對象數據模型 6.5.3 面向對象程序設計方法 6.5.4 面向對象數據庫語言,6.5.1 面向對象數據庫系統概述,面向對象數據庫系統(Object Oriented Database System,簡稱OODBS)是數據庫技術與面向對象程序設計方法相結合的產物。 目前,面向對象數據庫系統還沒有一個統一可行的標準。缺乏堅實的理論基礎,與其它產品的兼容比較差;雖然有一些OODBS已經商品化,但因其不能很好地與關系數據庫兼容而制約了它的引用領域。,6.5.2 面向對象數據模型,面向對象的數據模型的核心概念有: 1. 對象標識 現實世界中的任何實體都被統一地用對象表示,每一個對象都有唯一的標識,稱為對象標識(Object Identifier 簡稱OID)。,2. 封裝 每一對象是其狀態(tài)和行為的封裝。面向對象技術是把數據和行為封裝在一起,使得數據應用更靈活。 3. 類 所有具有相同屬性和方法集的對象抽象出類。類中的每一個對象稱為類的實例。,4. 繼承 一個類可以繼承類層次中其直接或間接祖先的所有屬性和方法。繼承性可以用超類和子類的層次聯系實現。 5. 消息 由于對象是封裝的,對象與外部的通信一般只能通過顯示的消息傳遞,即消息從外部傳送給對象,存取和調用對象中的屬性和方法,在內部執(zhí)行所要求的操作,操作的結果仍以消息的形式返回。,6.5.3 面向對象程序設計方法,面向對象程序設計方法來源于面向對象的程序設計語言,是一種支持模塊化設計和軟件重用的實際可行的編程方法。它把程序設計的主要活動集中在建立對象和對象之間的聯系上,從而完成所需要的計算。,6.5.4 面向對象數據庫語言,面向對象數據庫語言(OODB語言)用語描述面向對象數據庫模式,說明并操縱類定義與對象實例。 面向對象數據庫語言的功能: 1. 類的定義與操縱 2. 操作/方法的定義 3. 對象的操縱,- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 關于 數據庫技術 分析
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://appdesigncorp.com/p-2815203.html