官术网_书友最值得收藏!

1.1 關(guān)系數(shù)據(jù)庫基礎(chǔ)

如果需要快速、安全地處理大量數(shù)據(jù),就必須使用數(shù)據(jù)庫管理系統(tǒng)。任何基于數(shù)據(jù)庫編程的程序,其業(yè)務(wù)邏輯實質(zhì)上都是對數(shù)據(jù)的處理操作。數(shù)據(jù)庫管理系統(tǒng)也是一種軟件,主要負(fù)責(zé)存儲和管理網(wǎng)站所需的內(nèi)容數(shù)據(jù),例如文字、圖片等。

1.1.1 數(shù)據(jù)庫的基本概念

1)數(shù)據(jù)庫(DB):存放數(shù)據(jù)的倉庫。相互關(guān)聯(lián)的數(shù)據(jù)集合。

2)數(shù)據(jù)庫管理系統(tǒng)(DBMS):管理數(shù)據(jù)庫的計算機軟件。具體完成以下功能。

● 定義數(shù)據(jù)的存儲結(jié)構(gòu)。

● 存儲和維護(hù)數(shù)據(jù)(增加/刪除/修改/查詢)。

● 維護(hù)數(shù)據(jù)庫的安全性、完整性、可靠性。

3)數(shù)據(jù)庫系統(tǒng)(DBS):數(shù)據(jù)庫管理系統(tǒng)+數(shù)據(jù)庫+應(yīng)用程序+用戶(DBA、應(yīng)用程序員、終端用戶),如圖1-1所示。

圖1-1 數(shù)據(jù)庫系統(tǒng)DBS

1.1.2 數(shù)據(jù)管理的發(fā)展歷史

1.人工管理階段

20世紀(jì)50年代中期以前,計算機主要用于科學(xué)計算,無磁盤、無數(shù)據(jù)管理。

此階段的特點是:數(shù)據(jù)不長期保存;系統(tǒng)中沒有對數(shù)據(jù)進(jìn)行管理的軟件,由應(yīng)用程序管理數(shù)據(jù),數(shù)據(jù)是面向程序的,數(shù)據(jù)不具有獨立性;數(shù)據(jù)不能共享。

2.文件管理階段

20世紀(jì)50年代后期到60年代中期,計算機主要用于數(shù)據(jù)處理初期,產(chǎn)生外存——磁盤,操作系統(tǒng)對數(shù)據(jù)以文件形式管理。

此階段的特點是:程序與數(shù)據(jù)有了一定的獨立性,程序和數(shù)據(jù)分開存儲,有了程序文件和數(shù)據(jù)文件的區(qū)別;數(shù)據(jù)文件可以長期保存;但數(shù)據(jù)冗余度大,缺乏數(shù)據(jù)獨立性。

3.?dāng)?shù)據(jù)庫系統(tǒng)階段

20世紀(jì)60年代后期以來,計算機主要用于大量數(shù)據(jù)處理。

此階段的特點是:數(shù)據(jù)庫技術(shù)能有效地管理和存取大量的數(shù)據(jù),避免了以上兩階段的缺點,實現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余;采用特定的數(shù)據(jù)模型;具有較高的數(shù)據(jù)獨立性;有統(tǒng)一的數(shù)據(jù)管理和控制功能。

數(shù)據(jù)庫系統(tǒng)又經(jīng)歷了三個階段:層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫基于數(shù)學(xué)上嚴(yán)格的關(guān)系理論,使用簡單,是目前最成熟的數(shù)據(jù)庫。

常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)有下面幾種。

● 桌面型關(guān)系數(shù)據(jù)庫:FoxBase、Visual FoxPro、Access等。

● 大型關(guān)系數(shù)據(jù)庫:Oracle、SQL Server、MySQL、DB2、Sybase ASE等。

1.1.3 關(guān)系數(shù)據(jù)庫的介紹

關(guān)系數(shù)據(jù)庫是一些相關(guān)的表和其他數(shù)據(jù)庫對象的集合。其包含以下三層含義。

1)關(guān)系數(shù)據(jù)庫中,保存數(shù)據(jù)的二維表格稱為表(TABLE)。一個關(guān)系型數(shù)據(jù)庫包含多個數(shù)據(jù)表,每個表又包含行(記錄、元組)、列(字段、屬性),如圖1-2所示。

圖1-2 表的結(jié)構(gòu)

2)表與表之間相互關(guān)聯(lián)。表與表通過公共字段建立關(guān)聯(lián),公共字段稱為“鍵”。“鍵”分為主鍵和外鍵。

● 主鍵:唯一確定表中記錄的列或者列組合。主鍵值必須唯一且不為空。例如,教師表的“教師編號”、部門表的“部門編號”。

● 外鍵:表中的列是另外一個表的主鍵,此列就是外鍵。例如,部門表的“部門編號”是主鍵,教師表的“部門編號”是外鍵,如圖1-3所示。

圖1-3 表與表的關(guān)系

表與表之間的關(guān)系分為以下三種類型。

● 一對一關(guān)系(1:1):A表中的一條記錄在B表中僅有一條記錄與之對應(yīng);反之,B表中的一條記錄在A表中也僅有一條記錄與之對應(yīng)。例如,教師表與某月教師工資表之間具有一對一關(guān)系。

● 一對多關(guān)系(1:n):A表中的一條記錄在B表中有多條記錄與之對應(yīng);反之,B表中的一條記錄在A表中僅有一條記錄與之對應(yīng)。例如,部門表A與教師表B之間具有一對多關(guān)系。

● 多對多關(guān)系(m:n):A表中的一條記錄在B表中有多條記錄與之對應(yīng);反之,B表中的一條記錄在A表中也有多條記錄與之對應(yīng)。例如,學(xué)生表與課程表之間具有多對多關(guān)系。

數(shù)據(jù)庫設(shè)計中通過增加一個表將一個多對多的關(guān)系轉(zhuǎn)化為兩個一對多的關(guān)系,例如學(xué)生表、課程表、成績表,如圖1-4所示。

圖1-4 學(xué)生成績關(guān)系圖

3)關(guān)系數(shù)據(jù)庫除了包含表,還包含其他數(shù)據(jù)庫對象(索引、視圖、存儲過程、觸發(fā)器、用戶等)。

1.1.4 關(guān)系數(shù)據(jù)庫的設(shè)計

1.設(shè)計步驟

1)需求分析:調(diào)研需求分析(信息需求、處理需求、安全性需求、完整性需求),確定需要處理的數(shù)據(jù)對象。

2)概念結(jié)構(gòu)設(shè)計:在需求分析基礎(chǔ)上,獲得實體關(guān)系模型,繪制E-R圖。

3)數(shù)據(jù)庫邏輯設(shè)計:依據(jù)E-R圖,設(shè)計表格(確定表的列)。

4)數(shù)據(jù)庫物理設(shè)計:使用數(shù)據(jù)庫命令具體實現(xiàn)邏輯設(shè)計確定好的表格和其他數(shù)據(jù)庫對象。

5)數(shù)據(jù)庫性能優(yōu)化:改進(jìn)讀寫性能。

2.實體-關(guān)系模型(E-R圖)

1)實體:用矩形表示。矩形內(nèi)部填寫實體名。

2)屬性:用橢圓形表示。內(nèi)部填寫屬性名,并用無向邊與實體連接。

3)關(guān)系:用菱形表示。內(nèi)部填寫關(guān)系名,并用無向邊與實體連接,無向邊上標(biāo)注關(guān)系的類型(1:1、1:nm:n)。

學(xué)生選課數(shù)據(jù)庫E-R圖如圖1-5所示。

圖1-5 學(xué)生選課數(shù)據(jù)庫E-R圖

說明:實體具有屬性,關(guān)系也可以具有屬性。為了簡潔,可以省略部分屬性的標(biāo)注。

3.設(shè)計原則

1)一個表描述一種實體或者實體間的關(guān)系。

2)避免表之間出現(xiàn)重復(fù)字段。

3)字段應(yīng)該是原始數(shù)據(jù)或者基本數(shù)據(jù)元素。

4)表中應(yīng)該有主鍵來唯一標(biāo)識表中的記錄。

5)用外鍵保證表之間的關(guān)系。

主站蜘蛛池模板: 苍山县| 江西省| 文化| 上虞市| 栾城县| 乐平市| 信宜市| 沭阳县| 合川市| 台北县| 通榆县| 德清县| 南靖县| 临沧市| 出国| 隆回县| 岐山县| 年辖:市辖区| 平远县| 福清市| 郯城县| 淳安县| 平泉县| 清水县| 翁源县| 西峡县| 塔河县| 紫阳县| 合肥市| 潜江市| 宁晋县| 卢龙县| 兴安县| 二连浩特市| 南宫市| 汝阳县| 霍林郭勒市| 平乐县| 图们市| 清远市| 孟津县|