第1章數據庫基礎知識_第1頁
第1章數據庫基礎知識_第2頁
第1章數據庫基礎知識_第3頁
第1章數據庫基礎知識_第4頁
第1章數據庫基礎知識_第5頁
已閱讀5頁,還剩104頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、教材:教材:SQL Server 2012SQL Server 2012數據庫應用與開發教程數據庫應用與開發教程清華大學出版社清華大學出版社20152015李春葆等李春葆等 1.1.1 1.1.1 信息與數據信息與數據l “數據數據”是將現實世界中的各種信息記錄下來的、可是將現實世界中的各種信息記錄下來的、可以識別的符號。以識別的符號。l 數據是信息的載體,是信息的具體表示形式,而信息數據是信息的載體,是信息的具體表示形式,而信息是數據的內涵。是數據的內涵。l 信息與數據是密切相關聯的,信息是各種數據所包括信息與數據是密切相關聯的,信息是各種數據所包括的意義,數據則是載荷信息的物理符號。的意義

2、,數據則是載荷信息的物理符號。1.1.2 1.1.2 數據處理數據處理數據處理數據處理 20 20世紀世紀5050年代中期以前,計算機主要用于科學計算。年代中期以前,計算機主要用于科學計算。在這一階段,計算機除硬件外,沒有管理數據的軟件。在這一階段,計算機除硬件外,沒有管理數據的軟件。1.2.1 1.2.1 人工管理階段人工管理階段l 數據不保存。數據不保存。l 數據面向程序。數據面向程序。l 編寫程序時要安排數據的物理存儲。編寫程序時要安排數據的物理存儲。此階段的特點:此階段的特點:1.2.2 1.2.2 文件系統管理階段文件系統管理階段 在在2020世紀世紀5050年代后期至年代后期至20

3、20世紀世紀6060年代中期,計算機年代中期,計算機外存已有了磁鼓、磁盤等存儲設備,軟件有了操作系統。外存已有了磁鼓、磁盤等存儲設備,軟件有了操作系統。 人們在操作系統的支持下,設計開發了一種專門管人們在操作系統的支持下,設計開發了一種專門管理數據的計算機軟件,稱之為文件系統。理數據的計算機軟件,稱之為文件系統。此階段的特點:此階段的特點:l 數據以文件的形式長期保存。數據以文件的形式長期保存。l 數據的物理結構與邏輯結構有了區別,但比較簡單。數據的物理結構與邏輯結構有了區別,但比較簡單。l 程序與數據之間有一定的獨立性。程序與數據之間有一定的獨立性。1.2.3 1.2.3 數據庫系統管理階段

4、數據庫系統管理階段 從從2020世紀世紀6060年代末期開始,隨著計算機技術的發展,年代末期開始,隨著計算機技術的發展,數據管理的規模越來越大,數據量急劇增加,數據共享數據管理的規模越來越大,數據量急劇增加,數據共享的要求越來越高。這時磁盤技術取得了重要進展,為數的要求越來越高。這時磁盤技術取得了重要進展,為數據庫技術的發展提供了物質條件。據庫技術的發展提供了物質條件。 人們開發出了一種新的、先進的數據管理方法,將人們開發出了一種新的、先進的數據管理方法,將數據存儲在數據庫中,由數據庫管理軟件對其進行管理。數據存儲在數據庫中,由數據庫管理軟件對其進行管理。此階段的特點:此階段的特點:l 數據共

5、享。數據共享。l 面向全組織的數據結構化。面向全組織的數據結構化。l 數據獨立性。數據獨立性。l 可控數據冗余度。可控數據冗余度。l 統一數據控制功能。統一數據控制功能。數據庫系統和文件系統的區別:數據庫系統和文件系統的區別: 1.3.1 1.3.1 數據庫數據庫數據庫是至少符合以下特征的數據集合:數據庫是至少符合以下特征的數據集合:l 數據庫中的數據是按一定的數據模型來組織的,而不數據庫中的數據是按一定的數據模型來組織的,而不是雜亂無章的。是雜亂無章的。l 數據庫的存儲介質通常是硬盤、磁帶和光盤等,故可數據庫的存儲介質通常是硬盤、磁帶和光盤等,故可大量地、能夠地存儲及高效地使用。大量地、能夠

6、地存儲及高效地使用。l 數據庫中的數據能為眾多用戶所共享,能方便地為不數據庫中的數據能為眾多用戶所共享,能方便地為不同的應用服務。同的應用服務。l 數據庫是一個有機的數據集成體,它由多種應用的數數據庫是一個有機的數據集成體,它由多種應用的數據集成而來,故具有較少的冗余、較高的獨立性。據集成而來,故具有較少的冗余、較高的獨立性。數據庫的結構可以分為數據庫的結構可以分為3 3個層次:個層次:1.3.2 1.3.2 數據庫管理系統數據庫管理系統 數據庫管理系統(數據庫管理系統(Data Base Management SystemData Base Management System,DBMSDBM

7、S)是由一組程序構成,其主要功能是完成對數據庫中數)是由一組程序構成,其主要功能是完成對數據庫中數據定義和數據操作,提供給用戶一個簡明的接口,實現事務據定義和數據操作,提供給用戶一個簡明的接口,實現事務處理等。處理等。 這樣,可以把對這樣,可以把對“存儲數據存儲數據”的管理、維護和使用的復的管理、維護和使用的復雜性都轉嫁給雜性都轉嫁給DBMSDBMS,以方便數據庫系統的開發。,以方便數據庫系統的開發。1. DBMS1. DBMS的主要功能的主要功能l 數據庫定義功能。數據庫定義功能。l 數據操作功能。數據操作功能。l 數據庫運行管理功能。數據庫運行管理功能。l 數據的組織、管理和存儲。數據的組

8、織、管理和存儲。l 數據庫的建立和維護功能。數據庫的建立和維護功能。l 數據通信功能。數據通信功能。2. DBMS2. DBMS的組成的組成l 語言編譯處理程序。語言編譯處理程序。l 系統運行控制程序。系統運行控制程序。l 系統建立、維護程序。系統建立、維護程序。l 數據字典。數據字典。3. 3. 主流的主流的DBMSDBMS排名排名DBMSDBMS數據庫模型數據庫模型1 1ORACLEORACLE關系型關系型DBMSDBMS2 2MySQLMySQL關系型關系型DBMSDBMS3 3SQL ServerSQL Server關系型關系型DBMSDBMS4 4PostgreSQLPostgreS

9、QL關系型關系型DBMSDBMS5 5MongoDBMongoDB文檔存儲文檔存儲6 6DB2DB2關系型關系型DBMSDBMS7 7AccessAccess關系型關系型DBMSDBMS8 8SQLiteSQLite關系型關系型DBMSDBMS9 9CassandraCassandra列存儲列存儲1010SybabaeSybabae關系型關系型DBMSDBMS 據權威的據權威的DB-ENGINESDB-ENGINES統計,至統計,至20142014年年9 9月,排名前月,排名前1010位的位的DBMSDBMS如表如表1.11.1所示。所示。1.3.3 1.3.3 數據庫系統數據庫系統 數據庫系

10、統(數據庫系統(Database SystemDatabase System,DBSDBS)是數據庫應用)是數據庫應用系統的簡稱。數據庫系統的組成及其各組件之間的關系如圖系統的簡稱。數據庫系統的組成及其各組件之間的關系如圖1.61.6所示。所示。數據庫數據庫操作系統操作系統DBMSDBMS應用程序應用程序用戶用戶1 1 用戶用戶2 2用戶用戶n nDBSDBSDBADBA應用程序員應用程序員n 計算機系統計算機系統:由硬件和必需的軟件組成。:由硬件和必需的軟件組成。n 數據庫:數據庫:是指數據庫系統中集中存儲的一批數據的集是指數據庫系統中集中存儲的一批數據的集合。合。n DBMSDBMS:用于

11、負責數據庫存取、維護和管理。用于負責數據庫存取、維護和管理。 n 應用程序:應用程序:界于用戶和數據庫管理系統之間,是指完界于用戶和數據庫管理系統之間,是指完成用戶操作的程序。成用戶操作的程序。n 用戶:用戶:是指存儲、維護和檢索數據庫中數據的使用人是指存儲、維護和檢索數據庫中數據的使用人員。數據庫系統中主要有員。數據庫系統中主要有3 3類用戶:終端用戶、應用類用戶:終端用戶、應用程序員和數據庫管理員。程序員和數據庫管理員。 數據模型是描述數據及其聯系的模型,是對現實世數據模型是描述數據及其聯系的模型,是對現實世界數據特征與聯系的抽象反映。界數據特征與聯系的抽象反映。1.4.1 1.4.1 三

12、個世界及其關系三個世界及其關系客觀客觀世界世界概念概念世界世界DBMSDBMS支持的支持的數據模型數據模型認識、分認識、分析和抽象析和抽象描述、規描述、規范和轉換范和轉換現實世界現實世界信息世界信息世界機器世界機器世界1. 1. 現實世界現實世界 現實世界就是客觀存在的現實世界,它由事物及其相現實世界就是客觀存在的現實世界,它由事物及其相互之間的聯系組成的。互之間的聯系組成的。 如學生成績管理中,學生的特征可用學號、姓名和性如學生成績管理中,學生的特征可用學號、姓名和性別等來表示。別等來表示。2. 2. 信息世界信息世界 信息世界是現實世界在人們頭腦中反映并用文字或符信息世界是現實世界在人們頭

13、腦中反映并用文字或符號記載下來,是人對現實世界的認識抽象過程,經過選擇、號記載下來,是人對現實世界的認識抽象過程,經過選擇、命名、分類等抽象工作后進入信息世界。命名、分類等抽象工作后進入信息世界。 信息世界是一種相對抽象和概念化的世界,它介于現信息世界是一種相對抽象和概念化的世界,它介于現實世界和機器世界之間。實世界和機器世界之間。信息世界的基本概念如下:信息世界的基本概念如下:l 實體:實體:現實世界中存在的且可區分的事物稱為實體,它現實世界中存在的且可區分的事物稱為實體,它是信息世界的基本單位。實體可以是人,也可以是物;是信息世界的基本單位。實體可以是人,也可以是物;可以指實際的對象,也可

14、以指某些概念;可以指事物與可以指實際的對象,也可以指某些概念;可以指事物與事物間的聯系。如學生和一個學生選課都是實體。事物間的聯系。如學生和一個學生選課都是實體。l 屬性:屬性:實體所具有的某方面的特性。一個實體可以由若實體所具有的某方面的特性。一個實體可以由若干個屬性來刻畫。如公司員工實體有干個屬性來刻畫。如公司員工實體有“員工編號員工編號”、“姓名姓名”、“年齡年齡”、“性別性別”等屬性。再如學生實體等屬性。再如學生實體有有“學號學號”、“姓名姓名”和和“性別性別”等屬性。等屬性。l 屬性域:屬性域:屬性域是指屬性的取值范圍,含值的類型。屬性域是指屬性的取值范圍,含值的類型。如姓名的域為字

15、符串集合,性別的域為如姓名的域為字符串集合,性別的域為“男男”、“女女”等。等。l 實體型:實體型:具有相同屬性的實體必須具有共同的特性。具有相同屬性的實體必須具有共同的特性。用實體名及其屬性名集合來抽象和刻畫同類實體,稱用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學生(學號,姓名,性別,班號)為實體型。例如,學生(學號,姓名,性別,班號)就是一個實體型。就是一個實體型。l 實體集:實體集:同型實體的集合稱為實體集。如全體學生就同型實體的集合稱為實體集。如全體學生就是一個實體集。是一個實體集。l 碼(或關鍵字)碼(或關鍵字):碼是能唯一標識每個實體的屬性集。:碼是能唯一標識每

16、個實體的屬性集。例如,例如,“學號學號”是學生實體的碼,每個學生的學號都是學生實體的碼,每個學生的學號都唯一代表了一個學生。唯一代表了一個學生。3. 3. 機器世界機器世界 用計算機管理信息,必須對信息進行數據化,數據用計算機管理信息,必須對信息進行數據化,數據化后的信息成為機器世界的是數據,數據是能夠被計算化后的信息成為機器世界的是數據,數據是能夠被計算機識別、存儲并處理的。機識別、存儲并處理的。 數據化了的信息世界稱之為機器世界。數據化了的信息世界稱之為機器世界。機器世界的基本概念如下:機器世界的基本概念如下:l 數據項(或字段)數據項(或字段):標記實體屬性的命名單位,是數據:標記實體屬

17、性的命名單位,是數據庫中的最小信息單位。庫中的最小信息單位。l 記錄記錄:字段值的有序集合。:字段值的有序集合。l 記錄型記錄型:字段名的有序集合。:字段名的有序集合。l 文件文件:同類記錄的集合。對應于實體集。:同類記錄的集合。對應于實體集。l 碼(或關鍵字)碼(或關鍵字):能唯一標識文件中每個記錄的字段或:能唯一標識文件中每個記錄的字段或字段集。字段集。 三個世界的術語雖各不相同,但存在對應關系。三個世三個世界的術語雖各不相同,但存在對應關系。三個世界術語之間的關系如圖界術語之間的關系如圖1.81.8所示。所示。10031003事物(學生)、特征(學號、姓名、性別、班號等)事物(學生)、特

18、征(學號、姓名、性別、班號等)記錄型記錄型記記錄錄集集實實體體集集實體型實體型現實世界現實世界學生學生學號學號姓名姓名性別性別出生日期出生日期班號班號學生學生1 1101101李軍李軍男男1993-2-201993-2-20學生學生2 2103103陸君陸君男男1991-6-31991-6-310011001學生學生3 3105105匡明匡明男男1992-10-201992-10-2010011001學生學生4 4107107王麗王麗女女1993-1-231993-1-2310031003學生學生5 5108108曾華曾華男男1993-9-11993-9-110031003學生學生6 6109

19、109王芳王芳女女1992-2-101992-2-1010011001屬性屬性信息世界信息世界數據項數據項機器世界機器世界實體實體記錄記錄 從現實世界到概念模型的轉換是由數據庫設計人員從現實世界到概念模型的轉換是由數據庫設計人員完成的,從概念模型對數據模型的轉換可以由數據庫設完成的,從概念模型對數據模型的轉換可以由數據庫設計人員完成,也可以由數據庫設計工具協助設計人員完計人員完成,也可以由數據庫設計工具協助設計人員完成,從數據模型對物理模型的轉換一般是由成,從數據模型對物理模型的轉換一般是由DBMSDBMS完成的。完成的。1.4.3 1.4.3 概念模型建模概念模型建模1. 1. 概念模型的特

20、點概念模型的特點l 具有較強的語義表達能力,能夠方便、直接地表達應具有較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識用中的各種語義知識. . l 簡單、清晰、易于用戶理解,是用戶與數據庫設計人簡單、清晰、易于用戶理解,是用戶與數據庫設計人員之間進行交流的語言。員之間進行交流的語言。2. 2. 兩個實體型之間的聯系兩個實體型之間的聯系(1 1)一對一聯系()一對一聯系(1 1:1 1) 對于實體集對于實體集A A中每一個實體,實體集中每一個實體,實體集B B中至多有一個中至多有一個(也可以沒有)實體與之聯系,反之亦然,則稱實體(也可以沒有)實體與之聯系,反之亦然,則稱實體A A與實

21、與實體體B B具有一對一聯系,記為具有一對一聯系,記為1 11 1,如圖,如圖1.91.9(a a)所示。)所示。 例如,一個部門有一個經理,而每個經理只在一個部門例如,一個部門有一個經理,而每個經理只在一個部門任職。這樣部門和經理之間就具有一對一聯系。任職。這樣部門和經理之間就具有一對一聯系。(2 2)一對多聯系()一對多聯系(1 1:n n) 對于實體集對于實體集A A中的每一個實體,實體集中的每一個實體,實體集B B中有中有n n個實體個實體(n n0 0)與之聯系,反之,對于實體集)與之聯系,反之,對于實體集B B中的每一個實體,中的每一個實體,實體集實體集A A中至多只有一個實體與之

22、聯系,則稱實體中至多只有一個實體與之聯系,則稱實體A A與實與實體體B B具有一對多聯系,記為具有一對多聯系,記為1 1n n,如圖,如圖1.91.9(b b)所示。)所示。 例如,一個部門有多個職工,這樣部門和職工之間例如,一個部門有多個職工,這樣部門和職工之間存在著一對多的聯系。存在著一對多的聯系。(3 3)多對多聯系()多對多聯系(mm:n n) 對于實體集對于實體集A A中的每一個實體,實體集中的每一個實體,實體集B B中有中有n n個實體個實體(n n0 0)與之聯系,反之,對于實體集)與之聯系,反之,對于實體集B B中的每一個實體,實中的每一個實體,實體集體集A A中有中有m m個

23、實體(個實體(m m0 0)與之聯系,則稱實體)與之聯系,則稱實體A A與實體與實體B B具有具有多對多聯系,記為多對多聯系,記為m mn n,如圖,如圖1.91.9(c c)所示。)所示。 例如,學校中的課程與學生之間就存在著多對多的聯系。例如,學校中的課程與學生之間就存在著多對多的聯系。每個課程可以供多個學生選修,而每個學生又都會選修多種課每個課程可以供多個學生選修,而每個學生又都會選修多種課程。這種關系可以有很多種處理的辦法。程。這種關系可以有很多種處理的辦法。3. 3. 概念模型的表示方法概念模型的表示方法 建立概念模型有多種工具,如建立概念模型有多種工具,如PowerDesigner

24、PowerDesigner就可以用就可以用于概念模型建模。如何表示概念模型是核心,表示概念模型于概念模型建模。如何表示概念模型是核心,表示概念模型的常用方法是實體聯系(的常用方法是實體聯系(E-RE-R)方法。)方法。 E-R E-R方法是抽象和描述現實世界的有力工具。用方法是抽象和描述現實世界的有力工具。用E-RE-R圖圖表示的概念模型與具體的表示的概念模型與具體的DBMSDBMS所支持的數據模型相獨立,是所支持的數據模型相獨立,是各種數據模型的共同基礎,因而比數據模型更一般、更抽象,各種數據模型的共同基礎,因而比數據模型更一般、更抽象,更接近現實世界。更接近現實世界。E-RE-R圖提供了表

25、示實體型、屬性和聯系的方式:圖提供了表示實體型、屬性和聯系的方式:l 實體型:實體型:用長方形或矩形表示,框內寫明實體名。用長方形或矩形表示,框內寫明實體名。l 屬性:屬性:用橢圓形表示,并用無向邊把實體型與屬性連用橢圓形表示,并用無向邊把實體型與屬性連接起來。接起來。l 聯系:聯系:用菱形表示,菱形框內寫明聯系名。用無向邊用菱形表示,菱形框內寫明聯系名。用無向邊把菱形與有關實體型連接起來,并在無向邊旁標上聯把菱形與有關實體型連接起來,并在無向邊旁標上聯系的類型。如果實體型之間的聯系也具有屬性,則把系的類型。如果實體型之間的聯系也具有屬性,則把屬性和菱形也用無向邊連接起來。屬性和菱形也用無向邊

26、連接起來。設計設計E-RE-R圖的過程如下:圖的過程如下: 首先確定實體:幾個實體及相應的實體名。首先確定實體:幾個實體及相應的實體名。 確定實體之間聯系類型:各實體之間是否有聯系,是確定實體之間聯系類型:各實體之間是否有聯系,是何種聯系類型及相應的聯系名。何種聯系類型及相應的聯系名。 連接實體和聯系,組合成連接實體和聯系,組合成E-RE-R圖。圖。 確定各實體型:給出各實體的實體型(含實體的屬確定各實體型:給出各實體的實體型(含實體的屬性)。性)。 【例例1.11.1】畫出一個百貨公司的畫出一個百貨公司的E-RE-R圖。某百貨公司圖。某百貨公司管轄若干連鎖商店,每家商店經營若干種商品,每家商

27、管轄若干連鎖商店,每家商店經營若干種商品,每家商店有若干名職工,但每個職工只能服務于一家商店。店有若干名職工,但每個職工只能服務于一家商店。 解:解:容易看出本例中有商店、商品和職工三個實體,容易看出本例中有商店、商品和職工三個實體,實體型的屬性如下:實體型的屬性如下:商店實體型:店號、店名、店址、店經理。商店實體型:店號、店名、店址、店經理。商品實體型:商品號、品名、單價、產地。商品實體型:商品號、品名、單價、產地。職工實體型:工號、姓名、性別、工資。職工實體型:工號、姓名、性別、工資。各實體型之間的聯系如下:各實體型之間的聯系如下:l 隸屬聯系:隸屬聯系:一家商店有多名職工,每名職工只能在

28、一家一家商店有多名職工,每名職工只能在一家商店工作,所以商店實體型和職工實體型是一對多的聯商店工作,所以商店實體型和職工實體型是一對多的聯系,該聯系反映出職工參加某商店工作的開始時間。其系,該聯系反映出職工參加某商店工作的開始時間。其屬性為:工號、店號、開始時間。屬性為:工號、店號、開始時間。l 經營聯系:經營聯系:每家商店經營若干商品,每個商品也可以在每家商店經營若干商品,每個商品也可以在多家商店中銷售,所以商品實體型和商店實體型是多對多家商店中銷售,所以商品實體型和商店實體型是多對多的聯系,該聯系反映出某家商店銷售某種商品的月銷多的聯系,該聯系反映出某家商店銷售某種商品的月銷售量。其屬性為

29、:商品號、店號、月銷售量。售量。其屬性為:商品號、店號、月銷售量。職職 工工商商 品品商商 店店經營經營隸屬隸屬n n1 1mm店經理店經理開始時間開始時間工號工號姓名姓名性別性別工資工資店名店名月銷售量月銷售量店址店址商品號商品號店號店號品名品名單價單價產地產地mm1.4.4 1.4.4 數據模型的組成要素數據模型的組成要素 數據模型是建立于概念模型的基礎上,是一個適合數據模型是建立于概念模型的基礎上,是一個適合于計算機表示的數據庫層的模型。數據模型組成的要素:于計算機表示的數據庫層的模型。數據模型組成的要素:數據結構、數據操作和數據的完整性約束條件。數據結構、數據操作和數據的完整性約束條件

30、。1.1.數據結構數據結構 數據結構是刻畫一個數據模型性質最重要的方面,數據結構是刻畫一個數據模型性質最重要的方面,通常按數據組織結構的類型來命名數據模型,如層次結通常按數據組織結構的類型來命名數據模型,如層次結構、網狀圖結構和關系結構的數據模型分別命名為層次構、網狀圖結構和關系結構的數據模型分別命名為層次模型、網狀模型和關系模型。模型、網狀模型和關系模型。 數據結構是對系統靜態特性的描述,其描述的內容數據結構是對系統靜態特性的描述,其描述的內容有兩類:有兩類:l 與所研究的對象的類型、內容和性質有關的。如關與所研究的對象的類型、內容和性質有關的。如關系模型中的域、屬性、關系等。系模型中的域、

31、屬性、關系等。 l 數據之間聯系的表示方式。通常有隱式和顯式兩種,數據之間聯系的表示方式。通常有隱式和顯式兩種,隱式通過數據自身的關聯或位置順序表示,顯式通隱式通過數據自身的關聯或位置順序表示,顯式通過附加指針表示。過附加指針表示。2.2.數據操作數據操作 數據操作是對系統動態特性的描述,是數據庫中的數據操作是對系統動態特性的描述,是數據庫中的各種對象的實例(值)允許執行的操作的集合。主要有各種對象的實例(值)允許執行的操作的集合。主要有檢索和更新(插入、刪除、修改)兩類操作。檢索和更新(插入、刪除、修改)兩類操作。 數據模型必須定義這些操作的確切含義、操作符號、數據模型必須定義這些操作的確切

32、含義、操作符號、操作規則、實現操作的語言。操作規則、實現操作的語言。3.3.數據的完整性約束條件數據的完整性約束條件 數據的完整性約束條件是一組完整性規則的集合,數據的完整性約束條件是一組完整性規則的集合,給出數據及其聯系所具有的制約、依賴和存儲規則,用給出數據及其聯系所具有的制約、依賴和存儲規則,用于限定數據庫的狀態和狀態變化,保證數據庫中的數據于限定數據庫的狀態和狀態變化,保證數據庫中的數據的正確、有效、完全和相容。的正確、有效、完全和相容。1.4.5 1.4.5 常用的數據模型常用的數據模型1 1層次模型層次模型l 有且僅有一個結點沒有雙親,它就是根結點。有且僅有一個結點沒有雙親,它就是

33、根結點。l 其他結點有且僅有一個雙親。其他結點有且僅有一個雙親。企業企業人事處人事處財務處財務處生產處生產處張明張明李影李影企業實體企業實體部門實體部門實體人員實體人員實體2 2網狀模型網狀模型l 可有一個以上的結點沒有雙親。可有一個以上的結點沒有雙親。l 至少有一個結點可以有多于一個雙親。至少有一個結點可以有多于一個雙親。臺式計算機臺式計算機筆記本筆記本平板電腦平板電腦手機手機打印機打印機李明李明許飛許飛陸冰陸冰商商品品實實體體銷銷售售人人員員實實體體3 3關系模型關系模型 關系模型是用二維表格結構來表示實體以及實體之關系模型是用二維表格結構來表示實體以及實體之間聯系的數據模型。間聯系的數據

34、模型。 關系模型的數據結構是關系模型的數據結構是“二維表二維表”組成的集合,一個組成的集合,一個二維表代表一個實體,又可稱為關系。二維表代表一個實體,又可稱為關系。 表由行和列組成,一行代表一個對象,一列代表實體表由行和列組成,一行代表一個對象,一列代表實體的一個屬性。因此可以說,關系模型是的一個屬性。因此可以說,關系模型是“關系模式關系模式”組組成的集合。成的集合。1.5.1 1.5.1 數據庫系統模式的概念數據庫系統模式的概念 數據模式是數據庫中全體數據的邏輯結構和特征的描數據模式是數據庫中全體數據的邏輯結構和特征的描述,它僅僅涉及到型的描述,不涉及到具體的值。模式的述,它僅僅涉及到型的描

35、述,不涉及到具體的值。模式的一個具體值稱為模式的一個實例。同一個模式可以有很多一個具體值稱為模式的一個實例。同一個模式可以有很多實例。模式是相對穩定的,而實例是相對變動的。模式反實例。模式是相對穩定的,而實例是相對變動的。模式反映的是數據的結構及其關系,而實例反映的是數據庫某一映的是數據的結構及其關系,而實例反映的是數據庫某一時刻的狀態。時刻的狀態。 模型與模式的區別是:模型是以圖形來表示的,給人模型與模式的區別是:模型是以圖形來表示的,給人以直觀清晰、一目了然之感。但計算機是無法識別的,必以直觀清晰、一目了然之感。但計算機是無法識別的,必須用一種語言(如由須用一種語言(如由DBMSDBMS提

36、供的提供的DDLDDL)來描述它。模式是對)來描述它。模式是對模型的描述。模型的描述。1.5.2 1.5.2 數據庫系統的三級組織結構數據庫系統的三級組織結構 美國國家標準學會美國國家標準學會(ANSIANSI)所屬標準計劃和要求委員)所屬標準計劃和要求委員會在會在19751975年公布了一個關于數據庫標準的報告,提出了數年公布了一個關于數據庫標準的報告,提出了數據庫的三級模式結構,這就是有名的據庫的三級模式結構,這就是有名的SPARCSPARC分級結構。分級結構。u 概念模式。概念模式。簡稱模式、概念視圖或簡稱模式、概念視圖或DBADBA視圖,是對數據視圖,是對數據庫的整體邏輯結構和特征的描

37、述,并不涉及數據的物理庫的整體邏輯結構和特征的描述,并不涉及數據的物理存儲細節和硬件環境,是由多個概念記錄型組成,還包存儲細節和硬件環境,是由多個概念記錄型組成,還包括記錄間的聯系、數據的完整性和其他數據控制方面的括記錄間的聯系、數據的完整性和其他數據控制方面的要求。要求。u 內模式。內模式。又稱存儲模式,具體描述了數據如何組織存儲又稱存儲模式,具體描述了數據如何組織存儲在存儲介質上。內模式是系統程序員用一定的文件形式在存儲介質上。內模式是系統程序員用一定的文件形式組織起來的一個個存儲文件和聯系手段。一個數據庫只組織起來的一個個存儲文件和聯系手段。一個數據庫只有一個內模式。有一個內模式。u 外

38、模式。外模式。外模式通常是模式的一個子集,故又稱外模式外模式通常是模式的一個子集,故又稱外模式為子模式。外模式面向用戶,它是數據庫用戶能夠看到為子模式。外模式面向用戶,它是數據庫用戶能夠看到和使用的局部數據的邏輯結構和特征的描述,是與某一和使用的局部數據的邏輯結構和特征的描述,是與某一應用有關的數據的邏輯表示。應用有關的數據的邏輯表示。關系數據庫的三級模式示例關系數據庫的三級模式示例概念模式描述的是數據的全局邏輯結構,外模式描述概念模式描述的是數據的全局邏輯結構,外模式描述的是數據的局部邏輯結構。對應于同一個概念模式可以有的是數據的局部邏輯結構。對應于同一個概念模式可以有任意多個外模式。對于每

39、一個外模式,數據庫系統都有一任意多個外模式。對于每一個外模式,數據庫系統都有一個外模式個外模式/ /概念模式映象,它定義了該外模式與概念模式概念模式映象,它定義了該外模式與概念模式之間的對應關系。這些映象定義通常包含在各自外模式的之間的對應關系。這些映象定義通常包含在各自外模式的描述中。描述中。當概念模式改變時(例如增加新的關系、新的屬性、當概念模式改變時(例如增加新的關系、新的屬性、改變屬性的數據類型等),由數據庫管理員對各個外模式改變屬性的數據類型等),由數據庫管理員對各個外模式/ /概念模式的映象作相應改變,可以使外模式保持不變。概念模式的映象作相應改變,可以使外模式保持不變。應用程序是

40、依據數據的外模式編寫的,從而應用程序不必應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。獨立性。1.5.3 1.5.3 三個模式之間的兩層映象三個模式之間的兩層映象1.1. 外模式外模式/ /概念模式映象概念模式映象數據庫中只有一個概念模式,也只有一個內模式,所以數據庫中只有一個概念模式,也只有一個內模式,所以概念模式概念模式/ /內模式映象是唯一的,它定義了數據庫全局邏輯內模式映象是唯一的,它定義了數據庫全局邏輯結構與存儲結構之間的對應關系。結構與存儲結構之間的對應關系。例如,說明邏

41、輯記錄和字段在內部是如何表示的。該映例如,說明邏輯記錄和字段在內部是如何表示的。該映象定義通常包含在概念模式描述中。當數據庫的存儲結構改象定義通常包含在概念模式描述中。當數據庫的存儲結構改變了(例如選用了另一種存儲結構),由數據庫管理員對概變了(例如選用了另一種存儲結構),由數據庫管理員對概念模式念模式/ /內模式映象作相應改變,可以使概念模式保持不變,內模式映象作相應改變,可以使概念模式保持不變,從而應用程序也不必改變。保證了數據與程序的物理獨立性,從而應用程序也不必改變。保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。簡稱數據的物理獨立性。2.2.概念模式概念模式/ /內模式映象內模式

42、映象1.5.4 1.5.4 數據庫系統的結構數據庫系統的結構1.1.單用戶數據庫系統單用戶數據庫系統 整個數據庫系統(應用程序、整個數據庫系統(應用程序、DBMSDBMS、數據)裝在一臺、數據)裝在一臺計算機上,為一個用戶獨占,不同機器之間不能共享數據。計算機上,為一個用戶獨占,不同機器之間不能共享數據。早期的最簡單的數據庫系統便是如此。早期的最簡單的數據庫系統便是如此。2.2.主從式結構的數據庫系統主從式結構的數據庫系統 該結構是一臺主機帶多個終端的多用戶結構,數據庫系該結構是一臺主機帶多個終端的多用戶結構,數據庫系統(包括應用程序、統(包括應用程序、DBMSDBMS、數據)都集中存放在主機

43、上,所、數據)都集中存放在主機上,所有處理任務都由主機來完成,各個用戶通過主機的終端并發有處理任務都由主機來完成,各個用戶通過主機的終端并發地存取數據庫,共享數據資源。地存取數據庫,共享數據資源。3.3.分布式結構的數據庫系統分布式結構的數據庫系統 該結構中,數據庫的數據在邏輯上是一個整體,但物該結構中,數據庫的數據在邏輯上是一個整體,但物理地分布在計算機網絡的不同結點上,網絡中的每個結理地分布在計算機網絡的不同結點上,網絡中的每個結點都可以獨立處理本地數據庫中的數據,執行局部應用點都可以獨立處理本地數據庫中的數據,執行局部應用同時也可以同時存取和處理多個異地數據庫中的數據,同時也可以同時存取

44、和處理多個異地數據庫中的數據,執行全局應用。執行全局應用。4.C/S4.C/S(客戶機(客戶機/ /服務器)結構的數據庫系統服務器)結構的數據庫系統 該結構中,把該結構中,把DBMSDBMS功能和應用分開,網絡中某個(些)功能和應用分開,網絡中某個(些)結點上的計算機專門用于執行結點上的計算機專門用于執行DBMSDBMS功能,稱為數據庫服務功能,稱為數據庫服務器,簡稱器,簡稱服務器服務器。其他結點上的計算機安裝。其他結點上的計算機安裝DBMSDBMS的外圍應的外圍應用開發工具,用戶的應用系統,稱為用開發工具,用戶的應用系統,稱為客戶機客戶機。(1 1)兩層)兩層C/SC/S結構結構數據庫應用系

45、統數據庫應用系統客戶機客戶機Internet/Internet/IntranetIntranet數據庫管理系統數據庫管理系統+ +數據庫數據庫數據庫服務器數據庫服務器(2 2)三層)三層C/SC/S結構結構數據庫應用系統數據庫應用系統客戶機客戶機Internet/Internet/IntranetIntranetWebWeb服務軟件服務軟件WebWeb服務器服務器數據庫管理系統數據庫管理系統+ +數據庫數據庫數據庫服務器數據庫服務器1.6.1 1.6.1 關系模式與關系數據庫關系模式與關系數據庫 在關系模型中,實體以及實體間的聯系都是用二維關在關系模型中,實體以及實體間的聯系都是用二維關系表來

46、表示。關系實質上就是一個二維表,關系模式是這系表來表示。關系實質上就是一個二維表,關系模式是這個表的結構,即它由哪些屬性構成。在一個給定的現實世個表的結構,即它由哪些屬性構成。在一個給定的現實世界領域中,相應于所有實體及實體之間的聯系的關系集合界領域中,相應于所有實體及實體之間的聯系的關系集合構成一個關系數據庫。構成一個關系數據庫。 關系數據庫也有型和值之分。關系數據庫的型也稱為關系數據庫也有型和值之分。關系數據庫的型也稱為關系數據庫模式,是對關系數據庫的描述,是關系模式的關系數據庫模式,是對關系數據庫的描述,是關系模式的集合。關系數據庫的值也稱為關系數據庫,是關系的集合。集合。關系數據庫的值

47、也稱為關系數據庫,是關系的集合。關系數據庫模式與關系數據庫通常統稱為關系數據庫。關系數據庫模式與關系數據庫通常統稱為關系數據庫。1.6.2 1.6.2 關系及其性質關系及其性質1.1.關系的基本術語關系的基本術語l 關系:關系:一個關系就是一張二維表,每個關系有一個關一個關系就是一張二維表,每個關系有一個關系名。在關系數據庫中,一個關系存儲為一個數據表。系名。在關系數據庫中,一個關系存儲為一個數據表。l 元組(或記錄)元組(或記錄):表中的一行即為一個元組。:表中的一行即為一個元組。l 屬性:屬性:表中的列稱為屬性,每一列有一個屬性名。列表中的列稱為屬性,每一列有一個屬性名。列中的元素為該屬性

48、的值,稱為分量。中的元素為該屬性的值,稱為分量。l 域:屬性的取值范圍,即不同元組對同一個屬性的值域:屬性的取值范圍,即不同元組對同一個屬性的值所限定的范圍。例如,邏輯型屬性只能從邏輯真(如所限定的范圍。例如,邏輯型屬性只能從邏輯真(如truetrue)或邏輯假(如)或邏輯假(如falsefalse)兩個值中取值。)兩個值中取值。l 關系模式:關系模式:對關系的描述,一般表示為:對關系的描述,一般表示為: 關系名(屬性名關系名(屬性名1 1,屬性名,屬性名2 2,屬性名,屬性名n n) 例如,一個學生關系模式可描述如下:例如,一個學生關系模式可描述如下: StudentStudent(學號,姓

49、名,性別,出生日期,班號)(學號,姓名,性別,出生日期,班號)l 候選碼(或候選關鍵字或鍵)候選碼(或候選關鍵字或鍵):若一個屬性或屬性集合:若一個屬性或屬性集合的值能夠唯一地標識每一個元組,即其值對不同的元組的值能夠唯一地標識每一個元組,即其值對不同的元組是不同的,這樣的一個屬性或屬性集合稱為候選碼。例是不同的,這樣的一個屬性或屬性集合稱為候選碼。例如,在學生關系模式中,如,在學生關系模式中,“學號學號”屬性就是一個候選碼;屬性就是一個候選碼;通常一個班沒有同姓名的學生,如果這樣,可將(通常一個班沒有同姓名的學生,如果這樣,可將(“班班號號”, ,“姓名姓名”)屬性集合作為一個候選碼。)屬性

50、集合作為一個候選碼。l 主碼(或主關鍵字)主碼(或主關鍵字):在一個關系中可能有多個候選碼,:在一個關系中可能有多個候選碼,從中選擇一個作為主碼。例如,在學生關系模式中,可從中選擇一個作為主碼。例如,在學生關系模式中,可以將以將“學號學號”候選碼作為主碼。候選碼作為主碼。l 主屬性:主屬性:包含在任何候選碼中諸屬性稱為主屬性,不包含包含在任何候選碼中諸屬性稱為主屬性,不包含在任何候選碼中諸屬性稱為非主屬性。例如,在學生關系在任何候選碼中諸屬性稱為非主屬性。例如,在學生關系模式中,模式中,“學號學號”一定是主屬性,而一定是主屬性,而“性別性別”是非主屬性。是非主屬性。l 外碼:外碼:如果一個關系

51、中的屬性或屬性集合并非該關系的候如果一個關系中的屬性或屬性集合并非該關系的候選碼,但它是另外一個關系的候選碼,則稱其為該關系的選碼,但它是另外一個關系的候選碼,則稱其為該關系的外碼。外碼提供了一種表示兩個關系聯系的方法。外碼。外碼提供了一種表示兩個關系聯系的方法。l 全碼:全碼:關系模型的整個屬性集合是這個關系模式的候選碼,關系模型的整個屬性集合是這個關系模式的候選碼,稱為全碼。稱為全碼。如圖如圖1.171.17所示給出了一個簡單的關系模型。所示給出了一個簡單的關系模型。2.2.關系的性質關系的性質l 列的同質性:每一列中的分量是同一類型的數據,來自列的同質性:每一列中的分量是同一類型的數據,

52、來自同一個域。同一個域。l 列名唯一性:每一列具有不同的屬性名,但不同列的值列名唯一性:每一列具有不同的屬性名,但不同列的值可以來自同一個域。可以來自同一個域。l 元組相異性:關系中任意兩個元組不能完全相同,至少元組相異性:關系中任意兩個元組不能完全相同,至少主碼值不同。主碼值不同。l 行序的無關性:行的次序可以互換。行序的無關性:行的次序可以互換。l 列序的無關性:列的次序可以互換。列序的無關性:列的次序可以互換。l 分量原子性:分量值是原子的,即每一個分量都必須是分量原子性:分量值是原子的,即每一個分量都必須是不可分的數據項。不可分的數據項。1.6.3 1.6.3 關系代數關系代數1.1.

53、傳統的集合運算傳統的集合運算 設關系設關系R R和和S S具有相同的具有相同的n n目(即兩個關系都有目(即兩個關系都有n n個屬個屬性),且相應的屬性取自同一個域。性),且相應的屬性取自同一個域。(1 1)并運算)并運算 并運算表示為:并運算表示為:R RS S= = t t | | t t R R t t S S 。其結果仍為。其結果仍為n n目關系,其數據由屬于目關系,其數據由屬于R R或屬于或屬于S S的元組組成。其中,的元組組成。其中,t t表示表示R R或或S S中的元組。中的元組。(2 2)差運算)差運算 差運算表示為:差運算表示為:R R S S = = t t | | t t

54、 R R t t S S 。其結果關系仍。其結果關系仍為為n n目關系,其數據由屬于目關系,其數據由屬于R R而不屬于而不屬于S S的所有元組組成。的所有元組組成。(3 3)交運算)交運算 交運算表示為:交運算表示為:R R S S = = t t | | t t R R t t S S 。其結果關系仍。其結果關系仍為為n n目關系,其數據由既屬于目關系,其數據由既屬于R R同時又屬于同時又屬于S S的元組組成。的元組組成。(4 4)笛卡爾積)笛卡爾積 R R、S S可以為不同的關系,可以為不同的關系,R R、S S的笛卡爾積表示為:的笛卡爾積表示為:R RS S= tr ts | tr= t

55、r ts | trR Rts tsS S 。 設設n n目和目和mm目的關系目的關系R R和和S S,它們的笛卡兒積是一個(,它們的笛卡兒積是一個(n n+ +mm)目的元組集合。元組的前目的元組集合。元組的前n n列是關系列是關系R R的一個元組,后的一個元組,后mm列是關列是關系系S S的一個元組。若的一個元組。若R R有有k k1 1個元組,個元組,S S有有k k2 2個元組,則關系個元組,則關系R R和和關系關系S S的笛卡兒積應當有的笛卡兒積應當有k k1 1k k2 2個元組。個元組。2. 2. 專門的關系運算專門的關系運算(1 1)選擇運算)選擇運算 從一個關系中選出滿足給定條

56、件的記錄的操作稱為選擇或從一個關系中選出滿足給定條件的記錄的操作稱為選擇或篩選。選擇是從行的角度進行的運算,選出滿足條件的那些記篩選。選擇是從行的角度進行的運算,選出滿足條件的那些記錄構成原關系的一個子集。其表示如下:錄構成原關系的一個子集。其表示如下: F F( (R R)=)=t t | | t tR RF F( (t t)=true)=true即由關系即由關系R R中滿足中滿足F F條件的元組組成,其中條件的元組組成,其中F F由屬性名(值)、由屬性名(值)、比較符、邏輯運算符組成,比較符、邏輯運算符組成,t t表示表示R R中的元組,中的元組,F F( (t t) )表示表示R R中滿

57、足中滿足F F條件的元組。條件的元組。(2 2)投影運算)投影運算 從一個關系中選出若干指定列的值的操作稱為投影。投從一個關系中選出若干指定列的值的操作稱為投影。投影是從列的角度進行的運算,所得到的列個數通常比原關系影是從列的角度進行的運算,所得到的列個數通常比原關系少,或者列的排列順序不同。其表示如下:少,或者列的排列順序不同。其表示如下: L L( (R R)= )= t t A A | | t tR R 即在即在R R中取屬性名列表中取屬性名列表L L中指定的列,并消除重復元組。中指定的列,并消除重復元組。(3 3)連接運算)連接運算 連接是把兩個關系中的記錄按一定的條件橫向結合,連接是

58、把兩個關系中的記錄按一定的條件橫向結合,生成一個新的關系。最常用的連接運算是自然連接,它是生成一個新的關系。最常用的連接運算是自然連接,它是利用兩個關系中共有的列,把該列值相等的記錄連接起來。利用兩個關系中共有的列,把該列值相等的記錄連接起來。其表示如下:其表示如下: 即從即從R RS S中選取中選取R R關系在關系在A A屬性組上的值與屬性組上的值與S S關系在關系在B B屬性組上值滿足屬性組上值滿足 條件的元組。根據條件的元組。根據 條件不同,連接運算條件不同,連接運算又分為多種類型,這里不再討論。又分為多種類型,這里不再討論。(4 4)除運算)除運算 給定關系給定關系R R(X X,Y

59、Y)和)和S S(Y Y,Z Z),其中),其中X X、Y Y、Z Z為屬性為屬性組。組。R R中的中的Y Y與與S S中的中的Y Y可以有不同的屬性名,但必須出自相同可以有不同的屬性名,但必須出自相同的域集。的域集。R R與與S S的除運算得到一個新的關系的除運算得到一個新的關系P P(X X),),P P是是R R中滿中滿足下列條件的元組在足下列條件的元組在X X屬性列上的投影,元組在屬性列上的投影,元組在X X上的分量值上的分量值x x的象集的象集YxYx包含包含S S在在Y Y上的投影,即:上的投影,即: R RS S=tr =tr X X | tr | tr R R Y Y( (S

60、S) ) YxYx 其中的其中的YxYx為為x x在在R R中的象集,中的象集,x x=tr=trX X 。1.6.4 SQL1.6.4 SQL語言簡介語言簡介 SQL SQL語言是一種關系數據庫的結構化查詢語言,集數據定語言是一種關系數據庫的結構化查詢語言,集數據定義、操縱和控制功能于一體,語言風格統一。義、操縱和控制功能于一體,語言風格統一。 數據庫設計人員可以直接使用數據庫設計人員可以直接使用SQLSQL語言定義關系模式、錄語言定義關系模式、錄入數據以建立數據庫、查詢、更新、維護、數據庫重構、數入數據以建立數據庫、查詢、更新、維護、數據庫重構、數據庫安全性控制等一系列操作。據庫安全性控制

溫馨提示

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

評論

0/150

提交評論