第1章 數(shù)據(jù)庫基礎(chǔ)知識_第1頁
第1章 數(shù)據(jù)庫基礎(chǔ)知識_第2頁
第1章 數(shù)據(jù)庫基礎(chǔ)知識_第3頁
第1章 數(shù)據(jù)庫基礎(chǔ)知識_第4頁
第1章 數(shù)據(jù)庫基礎(chǔ)知識_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

教材:SQLServer2012數(shù)據(jù)庫應(yīng)用與開發(fā)教程清華大學(xué)出版社2015李春葆等第1章數(shù)據(jù)庫基礎(chǔ)知識1.1信息、數(shù)據(jù)與數(shù)據(jù)處理

1.1.1信息與數(shù)據(jù)“數(shù)據(jù)”是將現(xiàn)實世界中的各種信息記錄下來的、可以識別的符號。數(shù)據(jù)是信息的載體,是信息的具體表示形式,而信息是數(shù)據(jù)的內(nèi)涵。信息與數(shù)據(jù)是密切相關(guān)聯(lián)的,信息是各種數(shù)據(jù)所包括的意義,數(shù)據(jù)則是載荷信息的物理符號。1.1.2數(shù)據(jù)處理數(shù)據(jù)處理1.2計算機數(shù)據(jù)管理的3個階段

20世紀50年代中期以前,計算機主要用于科學(xué)計算。在這一階段,計算機除硬件外,沒有管理數(shù)據(jù)的軟件。1.2.1人工管理階段數(shù)據(jù)不保存。數(shù)據(jù)面向程序。編寫程序時要安排數(shù)據(jù)的物理存儲。此階段的特點:1.2.2文件系統(tǒng)管理階段在20世紀50年代后期至20世紀60年代中期,計算機外存已有了磁鼓、磁盤等存儲設(shè)備,軟件有了操作系統(tǒng)。

人們在操作系統(tǒng)的支持下,設(shè)計開發(fā)了一種專門管理數(shù)據(jù)的計算機軟件,稱之為文件系統(tǒng)。此階段的特點:數(shù)據(jù)以文件的形式長期保存。數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)有了區(qū)別,但比較簡單。程序與數(shù)據(jù)之間有一定的獨立性。1.2.3數(shù)據(jù)庫系統(tǒng)管理階段從20世紀60年代末期開始,隨著計算機技術(shù)的發(fā)展,數(shù)據(jù)管理的規(guī)模越來越大,數(shù)據(jù)量急劇增加,數(shù)據(jù)共享的要求越來越高。這時磁盤技術(shù)取得了重要進展,為數(shù)據(jù)庫技術(shù)的發(fā)展提供了物質(zhì)條件。

人們開發(fā)出了一種新的、先進的數(shù)據(jù)管理方法,將數(shù)據(jù)存儲在數(shù)據(jù)庫中,由數(shù)據(jù)庫管理軟件對其進行管理。此階段的特點:數(shù)據(jù)共享。面向全組織的數(shù)據(jù)結(jié)構(gòu)化。數(shù)據(jù)獨立性。可控數(shù)據(jù)冗余度。統(tǒng)一數(shù)據(jù)控制功能。數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)的區(qū)別:1.3數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)1.3.1數(shù)據(jù)庫數(shù)據(jù)庫是至少符合以下特征的數(shù)據(jù)集合:數(shù)據(jù)庫中的數(shù)據(jù)是按一定的數(shù)據(jù)模型來組織的,而不是雜亂無章的。數(shù)據(jù)庫的存儲介質(zhì)通常是硬盤、磁帶和光盤等,故可大量地、能夠地存儲及高效地使用。數(shù)據(jù)庫中的數(shù)據(jù)能為眾多用戶所共享,能方便地為不同的應(yīng)用服務(wù)。數(shù)據(jù)庫是一個有機的數(shù)據(jù)集成體,它由多種應(yīng)用的數(shù)據(jù)集成而來,故具有較少的冗余、較高的獨立性。數(shù)據(jù)庫的結(jié)構(gòu)可以分為3個層次:1.3.2數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是由一組程序構(gòu)成,其主要功能是完成對數(shù)據(jù)庫中數(shù)據(jù)定義和數(shù)據(jù)操作,提供給用戶一個簡明的接口,實現(xiàn)事務(wù)處理等。

這樣,可以把對“存儲數(shù)據(jù)”的管理、維護和使用的復(fù)雜性都轉(zhuǎn)嫁給DBMS,以方便數(shù)據(jù)庫系統(tǒng)的開發(fā)。1.DBMS的主要功能數(shù)據(jù)庫定義功能。數(shù)據(jù)操作功能。數(shù)據(jù)庫運行管理功能。數(shù)據(jù)的組織、管理和存儲。數(shù)據(jù)庫的建立和維護功能。數(shù)據(jù)通信功能。2.DBMS的組成語言編譯處理程序。系統(tǒng)運行控制程序。系統(tǒng)建立、維護程序。數(shù)據(jù)字典。3.主流的DBMS排名DBMS數(shù)據(jù)庫模型1ORACLE關(guān)系型DBMS2MySQL關(guān)系型DBMS3SQLServer關(guān)系型DBMS4PostgreSQL關(guān)系型DBMS5MongoDB文檔存儲6DB2關(guān)系型DBMS7Access關(guān)系型DBMS8SQLite關(guān)系型DBMS9Cassandra列存儲10Sybabae關(guān)系型DBMS據(jù)權(quán)威的DB-ENGINES統(tǒng)計,至2014年9月,排名前10位的DBMS如表1.1所示。1.3.3數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是數(shù)據(jù)庫應(yīng)用系統(tǒng)的簡稱。數(shù)據(jù)庫系統(tǒng)的組成及其各組件之間的關(guān)系如圖1.6所示。數(shù)據(jù)庫操作系統(tǒng)DBMS應(yīng)用程序…用戶1用戶2用戶nDBSDBA應(yīng)用程序員計算機系統(tǒng):由硬件和必需的軟件組成。數(shù)據(jù)庫:是指數(shù)據(jù)庫系統(tǒng)中集中存儲的一批數(shù)據(jù)的集合。DBMS:用于負責(zé)數(shù)據(jù)庫存取、維護和管理。應(yīng)用程序:界于用戶和數(shù)據(jù)庫管理系統(tǒng)之間,是指完成用戶操作的程序。用戶:是指存儲、維護和檢索數(shù)據(jù)庫中數(shù)據(jù)的使用人員。數(shù)據(jù)庫系統(tǒng)中主要有3類用戶:終端用戶、應(yīng)用程序員和數(shù)據(jù)庫管理員。1.4數(shù)據(jù)模型數(shù)據(jù)模型是描述數(shù)據(jù)及其聯(lián)系的模型,是對現(xiàn)實世界數(shù)據(jù)特征與聯(lián)系的抽象反映。1.4.1三個世界及其關(guān)系客觀世界概念世界DBMS支持的數(shù)據(jù)模型認識、分析和抽象描述、規(guī)范和轉(zhuǎn)換現(xiàn)實世界信息世界機器世界1.現(xiàn)實世界現(xiàn)實世界就是客觀存在的現(xiàn)實世界,它由事物及其相互之間的聯(lián)系組成的。如學(xué)生成績管理中,學(xué)生的特征可用學(xué)號、姓名和性別等來表示。2.信息世界信息世界是現(xiàn)實世界在人們頭腦中反映并用文字或符號記載下來,是人對現(xiàn)實世界的認識抽象過程,經(jīng)過選擇、命名、分類等抽象工作后進入信息世界。

信息世界是一種相對抽象和概念化的世界,它介于現(xiàn)實世界和機器世界之間。信息世界的基本概念如下:實體:現(xiàn)實世界中存在的且可區(qū)分的事物稱為實體,它是信息世界的基本單位。實體可以是人,也可以是物;可以指實際的對象,也可以指某些概念;可以指事物與事物間的聯(lián)系。如學(xué)生和一個學(xué)生選課都是實體。屬性:實體所具有的某方面的特性。一個實體可以由若干個屬性來刻畫。如公司員工實體有“員工編號”、“姓名”、“年齡”、“性別”等屬性。再如學(xué)生實體有“學(xué)號”、“姓名”和“性別”等屬性。屬性域:屬性域是指屬性的取值范圍,含值的類型。如姓名的域為字符串集合,性別的域為“男”、“女”等。實體型:具有相同屬性的實體必須具有共同的特性。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學(xué)生(學(xué)號,姓名,性別,班號)就是一個實體型。實體集:同型實體的集合稱為實體集。如全體學(xué)生就是一個實體集。碼(或關(guān)鍵字):碼是能唯一標識每個實體的屬性集。例如,“學(xué)號”是學(xué)生實體的碼,每個學(xué)生的學(xué)號都唯一代表了一個學(xué)生。3.機器世界用計算機管理信息,必須對信息進行數(shù)據(jù)化,數(shù)據(jù)化后的信息成為機器世界的是數(shù)據(jù),數(shù)據(jù)是能夠被計算機識別、存儲并處理的。

數(shù)據(jù)化了的信息世界稱之為機器世界。機器世界的基本概念如下:數(shù)據(jù)項(或字段):標記實體屬性的命名單位,是數(shù)據(jù)庫中的最小信息單位。記錄:字段值的有序集合。記錄型:字段名的有序集合。文件:同類記錄的集合。對應(yīng)于實體集。碼(或關(guān)鍵字):能唯一標識文件中每個記錄的字段或字段集。三個世界的術(shù)語雖各不相同,但存在對應(yīng)關(guān)系。三個世界術(shù)語之間的關(guān)系如圖1.8所示。1003事物(學(xué)生)、特征(學(xué)號、姓名、性別、班號等)記錄型記錄集實體集實體型現(xiàn)實世界學(xué)生學(xué)號姓名性別出生日期班號學(xué)生1101李軍男1993-2-20學(xué)生2103陸君男1991-6-31001學(xué)生3105匡明男1992-10-201001學(xué)生4107王麗女1993-1-231003學(xué)生5108曾華男1993-9-11003學(xué)生6109王芳女1992-2-101001屬性信息世界數(shù)據(jù)項機器世界實體記錄從現(xiàn)實世界到概念模型的轉(zhuǎn)換是由數(shù)據(jù)庫設(shè)計人員完成的,從概念模型對數(shù)據(jù)模型的轉(zhuǎn)換可以由數(shù)據(jù)庫設(shè)計人員完成,也可以由數(shù)據(jù)庫設(shè)計工具協(xié)助設(shè)計人員完成,從數(shù)據(jù)模型對物理模型的轉(zhuǎn)換一般是由DBMS完成的。1.4.3概念模型建模1.概念模型的特點具有較強的語義表達能力,能夠方便、直接地表達應(yīng)用中的各種語義知識.簡單、清晰、易于用戶理解,是用戶與數(shù)據(jù)庫設(shè)計人員之間進行交流的語言。2.兩個實體型之間的聯(lián)系(1)一對一聯(lián)系(1:1)對于實體集A中每一個實體,實體集B中至多有一個(也可以沒有)實體與之聯(lián)系,反之亦然,則稱實體A與實體B具有一對一聯(lián)系,記為1﹕1,如圖1.9(a)所示。例如,一個部門有一個經(jīng)理,而每個經(jīng)理只在一個部門任職。這樣部門和經(jīng)理之間就具有一對一聯(lián)系。(2)一對多聯(lián)系(1:n)對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體A與實體B具有一對多聯(lián)系,記為1﹕n,如圖1.9(b)所示。例如,一個部門有多個職工,這樣部門和職工之間存在著一對多的聯(lián)系。(3)多對多聯(lián)系(m:n)對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中有m個實體(m≥0)與之聯(lián)系,則稱實體A與實體B具有多對多聯(lián)系,記為m﹕n,如圖1.9(c)所示。例如,學(xué)校中的課程與學(xué)生之間就存在著多對多的聯(lián)系。每個課程可以供多個學(xué)生選修,而每個學(xué)生又都會選修多種課程。這種關(guān)系可以有很多種處理的辦法。3.概念模型的表示方法建立概念模型有多種工具,如PowerDesigner就可以用于概念模型建模。如何表示概念模型是核心,表示概念模型的常用方法是實體-聯(lián)系(E-R)方法。E-R方法是抽象和描述現(xiàn)實世界的有力工具。用E-R圖表示的概念模型與具體的DBMS所支持的數(shù)據(jù)模型相獨立,是各種數(shù)據(jù)模型的共同基礎(chǔ),因而比數(shù)據(jù)模型更一般、更抽象,更接近現(xiàn)實世界。E-R圖提供了表示實體型、屬性和聯(lián)系的方式:實體型:用長方形或矩形表示,框內(nèi)寫明實體名。屬性:用橢圓形表示,并用無向邊把實體型與屬性連接起來。聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名。用無向邊把菱形與有關(guān)實體型連接起來,并在無向邊旁標上聯(lián)系的類型。如果實體型之間的聯(lián)系也具有屬性,則把屬性和菱形也用無向邊連接起來。設(shè)計E-R圖的過程如下:首先確定實體:幾個實體及相應(yīng)的實體名。確定實體之間聯(lián)系類型:各實體之間是否有聯(lián)系,是何種聯(lián)系類型及相應(yīng)的聯(lián)系名。連接實體和聯(lián)系,組合成E-R圖。確定各實體型:給出各實體的實體型(含實體的屬性)。

【例1.1】畫出一個百貨公司的E-R圖。某百貨公司管轄若干連鎖商店,每家商店經(jīng)營若干種商品,每家商店有若干名職工,但每個職工只能服務(wù)于一家商店。

解:容易看出本例中有商店、商品和職工三個實體,實體型的屬性如下:商店實體型:店號、店名、店址、店經(jīng)理。商品實體型:商品號、品名、單價、產(chǎn)地。職工實體型:工號、姓名、性別、工資。各實體型之間的聯(lián)系如下:隸屬聯(lián)系:一家商店有多名職工,每名職工只能在一家商店工作,所以商店實體型和職工實體型是一對多的聯(lián)系,該聯(lián)系反映出職工參加某商店工作的開始時間。其屬性為:工號、店號、開始時間。經(jīng)營聯(lián)系:每家商店經(jīng)營若干商品,每個商品也可以在多家商店中銷售,所以商品實體型和商店實體型是多對多的聯(lián)系,該聯(lián)系反映出某家商店銷售某種商品的月銷售量。其屬性為:商品號、店號、月銷售量。職工商品商店經(jīng)營隸屬n1m店經(jīng)理開始時間工號姓名性別工資店名月銷售量店址商品號店號品名單價產(chǎn)地m1.4.4數(shù)據(jù)模型的組成要素數(shù)據(jù)模型是建立于概念模型的基礎(chǔ)上,是一個適合于計算機表示的數(shù)據(jù)庫層的模型。數(shù)據(jù)模型組成的要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的完整性約束條件。1.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面,通常按數(shù)據(jù)組織結(jié)構(gòu)的類型來命名數(shù)據(jù)模型,如層次結(jié)構(gòu)、網(wǎng)狀圖結(jié)構(gòu)和關(guān)系結(jié)構(gòu)的數(shù)據(jù)模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述,其描述的內(nèi)容有兩類:與所研究的對象的類型、內(nèi)容和性質(zhì)有關(guān)的。如關(guān)系模型中的域、屬性、關(guān)系等。數(shù)據(jù)之間聯(lián)系的表示方式。通常有隱式和顯式兩種,隱式通過數(shù)據(jù)自身的關(guān)聯(lián)或位置順序表示,顯式通過附加指針表示。2.數(shù)據(jù)操作數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述,是數(shù)據(jù)庫中的各種對象的實例(值)允許執(zhí)行的操作的集合。主要有檢索和更新(插入、刪除、修改)兩類操作。

數(shù)據(jù)模型必須定義這些操作的確切含義、操作符號、操作規(guī)則、實現(xiàn)操作的語言。3.數(shù)據(jù)的完整性約束條件數(shù)據(jù)的完整性約束條件是一組完整性規(guī)則的集合,給出數(shù)據(jù)及其聯(lián)系所具有的制約、依賴和存儲規(guī)則,用于限定數(shù)據(jù)庫的狀態(tài)和狀態(tài)變化,保證數(shù)據(jù)庫中的數(shù)據(jù)的正確、有效、完全和相容。1.4.5常用的數(shù)據(jù)模型1.層次模型有且僅有一個結(jié)點沒有雙親,它就是根結(jié)點。其他結(jié)點有且僅有一個雙親。企業(yè)人事處財務(wù)處生產(chǎn)處……張明李影………企業(yè)實體部門實體人員實體2.網(wǎng)狀模型可有一個以上的結(jié)點沒有雙親。至少有一個結(jié)點可以有多于一個雙親。臺式計算機筆記本平板電腦手機打印機李明許飛陸冰商品實體銷售人員實體3.關(guān)系模型關(guān)系模型是用二維表格結(jié)構(gòu)來表示實體以及實體之間聯(lián)系的數(shù)據(jù)模型。

關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是“二維表”組成的集合,一個二維表代表一個實體,又可稱為關(guān)系。

表由行和列組成,一行代表一個對象,一列代表實體的一個屬性。因此可以說,關(guān)系模型是“關(guān)系模式”組成的集合。1.5數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)1.5.1數(shù)據(jù)庫系統(tǒng)模式的概念數(shù)據(jù)模式是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅僅涉及到型的描述,不涉及到具體的值。模式的一個具體值稱為模式的一個實例。同一個模式可以有很多實例。模式是相對穩(wěn)定的,而實例是相對變動的。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其關(guān)系,而實例反映的是數(shù)據(jù)庫某一時刻的狀態(tài)。模型與模式的區(qū)別是:模型是以圖形來表示的,給人以直觀清晰、一目了然之感。但計算機是無法識別的,必須用一種語言(如由DBMS提供的DDL)來描述它。模式是對模型的描述。1.5.2數(shù)據(jù)庫系統(tǒng)的三級組織結(jié)構(gòu)美國國家標準學(xué)會(ANSI)所屬標準計劃和要求委員會在1975年公布了一個關(guān)于數(shù)據(jù)庫標準的報告,提出了數(shù)據(jù)庫的三級模式結(jié)構(gòu),這就是有名的SPARC分級結(jié)構(gòu)。概念模式。簡稱模式、概念視圖或DBA視圖,是對數(shù)據(jù)庫的整體邏輯結(jié)構(gòu)和特征的描述,并不涉及數(shù)據(jù)的物理存儲細節(jié)和硬件環(huán)境,是由多個概念記錄型組成,還包括記錄間的聯(lián)系、數(shù)據(jù)的完整性和其他數(shù)據(jù)控制方面的要求。內(nèi)模式。又稱存儲模式,具體描述了數(shù)據(jù)如何組織存儲在存儲介質(zhì)上。內(nèi)模式是系統(tǒng)程序員用一定的文件形式組織起來的一個個存儲文件和聯(lián)系手段。一個數(shù)據(jù)庫只有一個內(nèi)模式。外模式。外模式通常是模式的一個子集,故又稱外模式為子模式。外模式面向用戶,它是數(shù)據(jù)庫用戶能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。關(guān)系數(shù)據(jù)庫的三級模式示例概念模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。對應(yīng)于同一個概念模式可以有任意多個外模式。對于每一個外模式,數(shù)據(jù)庫系統(tǒng)都有一個外模式/概念模式映象,它定義了該外模式與概念模式之間的對應(yīng)關(guān)系。這些映象定義通常包含在各自外模式的描述中。當概念模式改變時(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員對各個外模式/概念模式的映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。1.5.3三個模式之間的兩層映象1.外模式/概念模式映象數(shù)據(jù)庫中只有一個概念模式,也只有一個內(nèi)模式,所以概念模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,說明邏輯記錄和字段在內(nèi)部是如何表示的。該映象定義通常包含在概念模式描述中。當數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(例如選用了另一種存儲結(jié)構(gòu)),由數(shù)據(jù)庫管理員對概念模式/內(nèi)模式映象作相應(yīng)改變,可以使概念模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。2.概念模式/內(nèi)模式映象1.5.4數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)1.單用戶數(shù)據(jù)庫系統(tǒng)整個數(shù)據(jù)庫系統(tǒng)(應(yīng)用程序、DBMS、數(shù)據(jù))裝在一臺計算機上,為一個用戶獨占,不同機器之間不能共享數(shù)據(jù)。早期的最簡單的數(shù)據(jù)庫系統(tǒng)便是如此。2.主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)該結(jié)構(gòu)是一臺主機帶多個終端的多用戶結(jié)構(gòu),數(shù)據(jù)庫系統(tǒng)(包括應(yīng)用程序、DBMS、數(shù)據(jù))都集中存放在主機上,所有處理任務(wù)都由主機來完成,各個用戶通過主機的終端并發(fā)地存取數(shù)據(jù)庫,共享數(shù)據(jù)資源。3.分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)該結(jié)構(gòu)中,數(shù)據(jù)庫的數(shù)據(jù)在邏輯上是一個整體,但物理地分布在計算機網(wǎng)絡(luò)的不同結(jié)點上,網(wǎng)絡(luò)中的每個結(jié)點都可以獨立處理本地數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行局部應(yīng)用同時也可以同時存取和處理多個異地數(shù)據(jù)庫中的數(shù)據(jù),執(zhí)行全局應(yīng)用。4.C/S(客戶機/服務(wù)器)結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)該結(jié)構(gòu)中,把DBMS功能和應(yīng)用分開,網(wǎng)絡(luò)中某個(些)結(jié)點上的計算機專門用于執(zhí)行DBMS功能,稱為數(shù)據(jù)庫服務(wù)器,簡稱服務(wù)器。其他結(jié)點上的計算機安裝DBMS的外圍應(yīng)用開發(fā)工具,用戶的應(yīng)用系統(tǒng),稱為客戶機。(1)兩層C/S結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)客戶機Internet/Intranet數(shù)據(jù)庫管理系統(tǒng)+數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器(2)三層C/S結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)客戶機Internet/IntranetWeb服務(wù)軟件Web服務(wù)器數(shù)據(jù)庫管理系統(tǒng)+數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器1.6關(guān)系數(shù)據(jù)庫1.6.1關(guān)系模式與關(guān)系數(shù)據(jù)庫在關(guān)系模型中,實體以及實體間的聯(lián)系都是用二維關(guān)系表來表示。關(guān)系實質(zhì)上就是一個二維表,關(guān)系模式是這個表的結(jié)構(gòu),即它由哪些屬性構(gòu)成。在一個給定的現(xiàn)實世界領(lǐng)域中,相應(yīng)于所有實體及實體之間的聯(lián)系的關(guān)系集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫也有型和值之分。關(guān)系數(shù)據(jù)庫的型也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,是關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫的值也稱為關(guān)系數(shù)據(jù)庫,是關(guān)系的集合。關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫。1.6.2關(guān)系及其性質(zhì)1.關(guān)系的基本術(shù)語關(guān)系:一個關(guān)系就是一張二維表,每個關(guān)系有一個關(guān)系名。在關(guān)系數(shù)據(jù)庫中,一個關(guān)系存儲為一個數(shù)據(jù)表。元組(或記錄):表中的一行即為一個元組。屬性:表中的列稱為屬性,每一列有一個屬性名。列中的元素為該屬性的值,稱為分量。域:屬性的取值范圍,即不同元組對同一個屬性的值所限定的范圍。例如,邏輯型屬性只能從邏輯真(如true)或邏輯假(如false)兩個值中取值。關(guān)系模式:對關(guān)系的描述,一般表示為:

關(guān)系名(屬性名1,屬性名2,…,屬性名n)例如,一個學(xué)生關(guān)系模式可描述如下:

Student(學(xué)號,姓名,性別,出生日期,班號)候選碼(或候選關(guān)鍵字或鍵):若一個屬性或?qū)傩约系闹的軌蛭ㄒ坏貥俗R每一個元組,即其值對不同的元組是不同的,這樣的一個屬性或?qū)傩约戏Q為候選碼。例如,在學(xué)生關(guān)系模式中,“學(xué)號”屬性就是一個候選碼;通常一個班沒有同姓名的學(xué)生,如果這樣,可將(“班號”,“姓名”)屬性集合作為一個候選碼。主碼(或主關(guān)鍵字):在一個關(guān)系中可能有多個候選碼,從中選擇一個作為主碼。例如,在學(xué)生關(guān)系模式中,可以將“學(xué)號”候選碼作為主碼。主屬性:包含在任何候選碼中諸屬性稱為主屬性,不包含在任何候選碼中諸屬性稱為非主屬性。例如,在學(xué)生關(guān)系模式中,“學(xué)號”一定是主屬性,而“性別”是非主屬性。外碼:如果一個關(guān)系中的屬性或?qū)傩约喜⒎窃撽P(guān)系的候選碼,但它是另外一個關(guān)系的候選碼,則稱其為該關(guān)系的外碼。外碼提供了一種表示兩個關(guān)系聯(lián)系的方法。全碼:關(guān)系模型的整個屬性集合是這個關(guān)系模式的候選碼,稱為全碼。如圖1.17所示給出了一個簡單的關(guān)系模型。2.關(guān)系的性質(zhì)列的同質(zhì)性:每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。列名唯一性:每一列具有不同的屬性名,但不同列的值可以來自同一個域。元組相異性:關(guān)系中任意兩個元組不能完全相同,至少主碼值不同。行序的無關(guān)性:行的次序可以互換。列序的無關(guān)性:列的次序可以互換。分量原子性:分量值是原子的,即每一個分量都必須是不可分的數(shù)據(jù)項。1.6.3關(guān)系代數(shù)1.傳統(tǒng)的集合運算

設(shè)關(guān)系R和S具有相同的n目(即兩個關(guān)系都有n個屬性),且相應(yīng)的屬性取自同一個域。(1)并運算并運算表示為:R∪S={t|t

R

∨t

S}。其結(jié)果仍為n目關(guān)系,其數(shù)據(jù)由屬于R或?qū)儆赟的元組組成。其中,t表示R或S中的元組。(2)差運算差運算表示為:R–S={t|t

R

∧t

S}。其結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由屬于R而不屬于S的所有元組組成。(3)交運算交運算表示為:R∩S={t|t

R

∧t

S}。其結(jié)果關(guān)系仍為n目關(guān)系,其數(shù)據(jù)由既屬于R同時又屬于S的元組組成。(4)笛卡爾積R、S可以為不同的關(guān)系,R、S的笛卡爾積表示為:R×S={trts|tr∈R∧ts∈S}。設(shè)n目和m目的關(guān)系R和S,它們的笛卡兒積是一個(n+m)目的元組集合。元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組。若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的笛卡兒積應(yīng)當有k1×k2個元組。2.專門的關(guān)系運算(1)選擇運算從一個關(guān)系中選出滿足給定條件的記錄的操作稱為選擇或篩選。選擇是從行的角度進行的運算,選出滿足條件的那些記錄構(gòu)成原關(guān)系的一個子集。其表示如下:σF(R)={t|t∈R∧F(t)=true}}即由關(guān)系R中滿足F條件的元組組成,其中F由屬性名(值)、比較符、邏輯運算符組成,t表示R中的元組,F(xiàn)(t)表示R中滿足F條件的元組。(2)投影運算從一個關(guān)系中選出若干指定列的值的操作稱為投影。投影是從列的角度進行的運算,所得到的列個數(shù)通常比原關(guān)系少,或者列的排列順序不同。其表示如下:ΠL(R)={t[A]|t∈R}即在R中取屬性名列表L中指定的列,并消除重復(fù)元組。(3)連接運算連接是把兩個關(guān)系中的記錄按一定的條件橫向結(jié)合,生成一個新的關(guān)系。最常用的連接運算是自然連接,它是利用兩個關(guān)系中共有的列,把該列值相等的記錄連接起來。其表示如下:即從R×S中選取R關(guān)系在A屬性組上的值與S關(guān)系在B屬性組上值滿足θ條件的元組。根據(jù)θ條件不同,連接運算又分為多種類型,這里不再討論。(4)除運算給定關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影,元組在X上的分量值x的象集Yx包含S在Y上的投影,即:R÷S={tr[X]|tr

R

∧ΠY(S)

Yx}其中的Yx為x在R中的象集,x=tr[X]。1.6.4SQL語言簡介SQL語言是一種關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)化查詢語言,集數(shù)據(jù)定義、操縱和控制功能于一體,語言風(fēng)格統(tǒng)一。

數(shù)據(jù)庫設(shè)計人員可以直接使用SQL語言定義關(guān)系模式、錄入數(shù)據(jù)以建立數(shù)據(jù)庫、查詢、更新、維護、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列操作。SQL語言的實現(xiàn)是將用戶的查詢轉(zhuǎn)換為關(guān)系代數(shù)的關(guān)系運算來完成的。例如,有以下學(xué)生關(guān)系:

stud(學(xué)號,姓名,性別,班號)查詢‘101’班的所有學(xué)生的學(xué)號和姓名的SQL語句為:SELECT學(xué)號,姓名FROMstudWHERE班號='101'它轉(zhuǎn)換成的關(guān)系運算操作是:П學(xué)號,姓名(σ班號=‘101’(stud))。1.6.5規(guī)范化設(shè)計理論和方法滿足一定條件的關(guān)系模式稱為范式(NormalForm,NF)。

在1971年至1972年,關(guān)系數(shù)據(jù)模型的創(chuàng)始人E.F.Codd系統(tǒng)地提出了第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的概念。1974年Codd和Boyce共同提出了BCNF范式,為第三范式的改進。

一個低級范式的關(guān)系模式,通過分解(投影)方法可轉(zhuǎn)換成多個高一級范式的關(guān)系模式的集合,這個過程稱為規(guī)范化。1.第一范式(1NF)如果一個關(guān)系模式,它的每一個分量是不可分的數(shù)據(jù)項,即其域為簡單域,則此關(guān)系模式為第一范式。第一范式是最低的規(guī)范化要求,第一范式要求數(shù)據(jù)表不能存在重復(fù)的記錄,即存在一個關(guān)鍵字。1NF的第二個要求是每個字段都不可再分,即已經(jīng)分到最小,關(guān)系數(shù)據(jù)庫的定義就決定了數(shù)據(jù)庫滿足這一條。主關(guān)鍵字達到下面幾個條件:主關(guān)鍵字段在表中是唯一的。主關(guān)鍵字段不能存在空值。每條記錄都必須有一個主關(guān)鍵字。主關(guān)鍵字是關(guān)鍵字的最小子集。2.第二范式(2NF)如果一個關(guān)系屬于1NF,且每一個非主屬性都完全地依賴于任一候選碼,則稱之為第二范式。不滿足2NF時在數(shù)據(jù)操作中存在諸多問題。下面通過一個例子來說明:有一個存儲零件的倉庫關(guān)系如下:倉庫(零件號、倉庫號、零件數(shù)量、倉庫地址)這個倉庫關(guān)系符合1NF,其中,(零件號,倉庫號)構(gòu)成主碼。但是因為“倉庫地址”只完全依賴于“倉庫號”,即只依賴于主碼的一部分,所以它不符合2NF。其操作異常如下:(1)存在數(shù)據(jù)冗余,因為同一倉庫號的倉庫地址可能多次出現(xiàn),如圖1.20(a)所示。(2)在更改倉庫地址時,如果漏改了某一記錄的該倉庫地址,存在數(shù)據(jù)不一致性,如圖1.20(b)所示。(3)如果某個倉庫的零件出庫完了,那么這個倉庫地址就丟失了,即這種關(guān)系不允許存在某個倉庫中不放零件的情況,如圖1.20(c)所示??梢杂猛队胺纸獾姆椒ㄏ糠忠蕾嚨那闆r,從而使關(guān)系達到2NF的標準。解決的方法就是從關(guān)系中分解出新的二維表,使得每個二維表中所有的非關(guān)鍵字都完全依賴于各自的主關(guān)鍵字。可以做如下分解,分解成兩個關(guān)系:零件(零件號、倉庫號、零件數(shù)量)倉庫(倉庫號、倉庫地址)這樣就完全符合2NF了。3.第三范式(3NF)僅滿足2NF的關(guān)系模式仍然存在數(shù)據(jù)操作的問題,因此引出了3NF。如果一個關(guān)系屬于2NF,且每個非主屬性都不傳遞依賴于任一候選碼,這種關(guān)系就是3NF。簡而言之,從2NF中消除傳遞依賴,就是3NF。比如有一個職工關(guān)系:職工(姓名、工資等級、工資額)其中姓名是主碼,此關(guān)系符合2NF。假如工資等級決定工資額,因為工資額依賴于工資等級,而工資等級依賴于姓名,這就叫傳遞依賴,即導(dǎo)致工資額依賴于姓名,它不符合3NF,同樣會出現(xiàn)操作異常。也可以使用投影分解的辦法將上表分解成兩個表:職工(姓名,工資等級)工資(工資等級,工資額)關(guān)系模式的規(guī)范化過程是通過投影分解來實現(xiàn)的。這種把低一級關(guān)系模式分解成若干個高一級關(guān)系模式的投影分解方法不是唯一的,應(yīng)該在分解中注意滿足3個條件:無損連接分解,分解后不丟失信息。分解后得到的每個關(guān)系都是高一級范式,不要同級甚至低級分解。分解的個數(shù)最少,這是完美要求,應(yīng)做到盡量少。一般情況下,規(guī)范化到3NF就滿足需要了,規(guī)范化程度更高的還有BCNF、4NF、5NF。

因為不經(jīng)常用到,這里就不作解釋和討論了。1.7數(shù)據(jù)庫設(shè)計

溫馨提示

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

評論

0/150

提交評論