《數(shù)據(jù)庫設計與開發(fā)》_第1頁
《數(shù)據(jù)庫設計與開發(fā)》_第2頁
《數(shù)據(jù)庫設計與開發(fā)》_第3頁
《數(shù)據(jù)庫設計與開發(fā)》_第4頁
《數(shù)據(jù)庫設計與開發(fā)》_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《數(shù)據(jù)庫設計與開發(fā)》講義

《數(shù)據(jù)庫設計與開發(fā)》

北京郵電大學軟件學院

郭文明

(guolyz@)

2003.06

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

0.前言

0.1數(shù)據(jù)庫發(fā)展與應用

0.2本課程內容

0.3本課程學習方法

0.4本課程參考資料

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

0.1數(shù)據(jù)庫發(fā)展與應用

?數(shù)據(jù)庫定義:數(shù)據(jù)庫是數(shù)據(jù)管理的技術,數(shù)據(jù)

管理是指對各種數(shù)據(jù)進行收集、存儲、加工和

傳播的一系列活動的總和。包括對數(shù)據(jù)的分類、

組織、編碼、存儲、檢索和維護。

?數(shù)據(jù)處理的發(fā)展:數(shù)據(jù)處理的發(fā)展過程經(jīng)歷了

手工管理、文件管理、數(shù)據(jù)庫三個階段。

?數(shù)據(jù)模型:數(shù)據(jù)庫是建立在數(shù)據(jù)模型基礎上的

數(shù)據(jù)集合。數(shù)據(jù)模型有:層次模型、網(wǎng)狀模型、

關系模型、面向對象模型。比較成熟完善、市

場占用率較大的是基于關系模型基礎上的關系

數(shù)據(jù)庫。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

0.1數(shù)據(jù)庫發(fā)展與應用

?數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)是位于用戶

與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,屬系統(tǒng)

軟件。

?數(shù)據(jù)庫管理系統(tǒng)的功能:數(shù)據(jù)定義(create、

drop等);數(shù)據(jù)操縱(select、insert等);數(shù)

據(jù)庫運行(安全性、完整性、并發(fā)控制、故障

恢復);數(shù)據(jù)庫建立與維護(數(shù)據(jù)轉儲、數(shù)據(jù)恢

復、性能監(jiān)視、重組織)。

?目前的一些數(shù)據(jù)庫管理系統(tǒng)(DBMS),小型

桌面數(shù)據(jù)庫系統(tǒng)FoxPro,ACCESS,PRADOX

等,大型數(shù)據(jù)庫系統(tǒng)ORACLE,INFORMIX,

SYBASE,DB2,MicrosoftSQLServer等。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

0.1數(shù)據(jù)庫發(fā)展與應用

-數(shù)據(jù)庫的應用已越來越廣泛。從小型的單項事

務處理系統(tǒng)到大型復雜的信息系統(tǒng)大都用先進

的數(shù)據(jù)庫技術來保持系統(tǒng)數(shù)據(jù)的整體性、完整

性和共享性。

-1)電腦抽獎:采用數(shù)據(jù)庫技術,不必修改程序,只變

更獎項設置,即可應用于不同的抽獎活動。

-2)招生考試:通過對數(shù)據(jù)庫排序和索弓I,完成考生

按志愿從高分到低分排列,根據(jù)學校招生計劃錄取,

錄滿為止。

-3)銀行儲蓄:為每個用戶建立能夠唯一識別的帳戶,

同時記錄用戶的往來明細,做到存儲量大,運算速度

快,準確程度高。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

0.1數(shù)據(jù)庫發(fā)展與應用

?企業(yè)(生產管理、質量管理、客戶管理、財務管

理、電子商務等);機關(辦公自動化);金融(銀

行電子結算);證券(股票交易、行情分析);通

訊(話費查詢、費用結算);教育衛(wèi)生(網(wǎng)上錄取、

學籍管理);社會保障(住房公積金、醫(yī)療保險、

養(yǎng)老保險);政府(電子政務);交通(道路信息系

統(tǒng))等。

?國民經(jīng)濟各個領域都離不開數(shù)據(jù)庫技術,目前,

一個國家的數(shù)據(jù)庫建設規(guī)模(指數(shù)據(jù)庫的個數(shù)、

種類)、數(shù)據(jù)庫信息量的大小和使用頻度已成為

衡量這個國家信息化程度的重要標志之一。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

0.1數(shù)據(jù)庫發(fā)展與應用

?數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中

引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫

管理系統(tǒng)、應用系統(tǒng)、DBA和用戶構成。

?數(shù)據(jù)庫設計是建立數(shù)據(jù)庫及其應用系統(tǒng)的技術,

是信息系統(tǒng)開發(fā)和建設中的核心技術,具體說,

數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,構

造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系

統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶

的應用需求(信息要求和處理要求)。這個問題

是數(shù)據(jù)庫在應用領域的主要研究課題。

?數(shù)據(jù)庫技術研究領域:DBMS的研制、數(shù)據(jù)庫設

計、數(shù)據(jù)庫理論。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

0.2本課程內容

?1)關系數(shù)據(jù)庫與對象關系數(shù)據(jù)庫:建立在關

系模型基礎上的數(shù)據(jù)操縱,融合了面向對象思

想的對象關系數(shù)據(jù)庫和對象關系SQL。

?2)數(shù)據(jù)存儲和數(shù)據(jù)庫管理:數(shù)據(jù)庫常用的文

件存儲、索引技術、散列技術和多鍵訪問技術

等數(shù)據(jù)存儲技術,保證數(shù)據(jù)庫正常運行的安全

性、完整性控制和數(shù)據(jù)庫恢復。

?3)數(shù)據(jù)庫應用程序體系結構:訪問數(shù)據(jù)庫的

程序,事務處理技術,Client/Server體系結構,

多層體系結構,分布式數(shù)據(jù)處理和中間件。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

0.2本課程內容

?4)ORACLE數(shù)據(jù)庫:ORACLE數(shù)據(jù)庫的體系

結構,存儲管理,實例管理;ORACLE數(shù)據(jù)庫

的規(guī)劃與實施。

?5)數(shù)據(jù)庫設計:需求分析、概念模型設計、

數(shù)據(jù)庫邏輯設計和物理設計、功能設計、數(shù)據(jù)

庫實施、CASE技術;ER模型、規(guī)范化設計方

法。

?另外,通過實驗環(huán)節(jié)進一步理解所講內容,實

驗即選擇一DBMS平臺、設計一實際的數(shù)據(jù)庫應

用系統(tǒng)。完成實驗需具備DBMS知識、程序設計

開發(fā)能力、適當?shù)膶I(yè)領域知識。(實驗要求

另發(fā))。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

0.3本課程學習方法

?數(shù)據(jù)庫設計與開發(fā)這一門課集理論性、技術性、

藝術性為一體,學習過程中應根據(jù)這一些特點,

針對性的采取一些措施。

?1)從學習一個具體的數(shù)據(jù)庫管理系統(tǒng)(DBMS)

開始。理解數(shù)據(jù)管理的含義、理解數(shù)據(jù)庫原理

幣的理論和方法。——離開具體的DBMS進行

數(shù)據(jù)庫設計是不完整的設計。

?2)從熟悉一個具體的數(shù)據(jù)庫應用系統(tǒng)開始。

了解具體應用的領域知識和背景,結合DBMS

的功能,探索利用DBMS為實際解決問題的過

程。——離開深厚的領域知識,不可能設計出

用戶滿意的數(shù)據(jù)庫。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

0.3本課程學習方法

?3)從使用一個具體的編成語言開始。明確理

解在數(shù)據(jù)庫設計和開發(fā)過程中,哪些功能由

DBMS完成,哪些由程序完成。——沒有編程

經(jīng)驗,不可能設計出編程人員滿意的數(shù)據(jù)庫。

?4)從DBA的角度學。數(shù)據(jù)庫應用系統(tǒng)的運行

離不開DBA的大力支持,數(shù)據(jù)庫設計開發(fā)除滿

足一般用戶要求之外,還應方便DBA的數(shù)據(jù)管

理。——數(shù)據(jù)庫系統(tǒng)的運行沒有DBA的參與,

數(shù)據(jù)庫系統(tǒng)的設計開發(fā)可能會感覺特別費勁。

?5)多學習、多實踐、多思考才能集理論性、

技術性、藝術性為一體。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

0.4本課程參考資料

?1.數(shù)據(jù)庫一原理、編程與性能,PatrickO'Neil著,

周傲英等譯,機械工業(yè)出版社,2002.01

(DATABASEPrinciples,Programming,andPerformance.

PatrickO'NeilElizabethO'neil,高等教育出版社,2001.05)

?2.數(shù)據(jù)庫設計教程,ThomasM.Connolly著,何玉

潔等譯,機械工業(yè)出版社,2003.06

?3.Unix和Linux下的Oracle數(shù)據(jù)庫管理,Michael

Wesster著,王華駒等譯,人民郵電出版社,2002.8

?4.0racle9iDBAFundamentalsLORACLEUniversity

?5.數(shù)據(jù)庫實用教程,丁寶康董健全,清華大學出

版社,2001.09

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

L關系數(shù)據(jù)庫與對象關系數(shù)據(jù)庫

?關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)使用靈

活,即使用戶不是程序員,也可輕松快

捷地寫出一般的查詢語句。關系數(shù)據(jù)庫

管理系統(tǒng)建立在關系模型基礎之上。最

近幾年,一種更新的數(shù)據(jù)模型——對象-

關系模型在許多產品中正逐漸取代關系

模型。建立在對象一關系模型基礎之上

的數(shù)據(jù)庫管理系統(tǒng)稱為對象-關系數(shù)據(jù)庫

管理系統(tǒng)(ORDBMS)。對象-關系數(shù)據(jù)

庫管理系統(tǒng)也支持關系數(shù)據(jù)庫管理系統(tǒng)

中的數(shù)據(jù)。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設討與開發(fā)》講義________

1.關系數(shù)據(jù)庫與對象關系數(shù)據(jù)庫

?本章將介紹多年來支配數(shù)據(jù)表達方式的

關系模型的概念和規(guī)則,從關系代數(shù)固

有的查詢能力方面介紹關系模型的特性,

還要深入介紹工業(yè)標準SQL(SQL-99)

語言。本章還將介紹對象-關系模型的特

性和對象-關系SQL語法。

1」關系模型

1.2關系代數(shù)

1.3SQL

1.4對象關系數(shù)據(jù)庫

砌窕。硯)

《數(shù)據(jù)庫設計與開發(fā)》講義

L1關系模型

?1.1.1關系數(shù)據(jù)庫舉例

?1.1.2關系數(shù)據(jù)模型

-LL2.1域和數(shù)據(jù)類型

-1.122表和關系

-1.123關系規(guī)則

?1.1.3數(shù)據(jù)模型

?LL4最常用的數(shù)據(jù)模型

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.1關系數(shù)據(jù)庫舉例

■數(shù)據(jù)庫是為了特殊目的存儲在一起的相

關數(shù)據(jù)記錄的集合。關系數(shù)據(jù)庫是按照

關系模型組織存放數(shù)據(jù)的數(shù)據(jù)庫。我們

給出幾個關系數(shù)據(jù)庫的例子。

-1)產品一代理一銷售數(shù)據(jù)庫(CAP)

顧客從代理商那里批發(fā)大量商品然后自己轉

銷,顧客其實是零售商。顧客向代理商要求

購買商品,每次訂貨要求有完整的記錄。

-2)網(wǎng)上錄取數(shù)據(jù)庫(SCT)

-3)房屋銷售數(shù)據(jù)庫(HEC)

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1)產品-代理-銷售數(shù)據(jù)庫(CAP)

CUSTOMERS顧客信息表AGENTS代理商信息表

cid顧客IDaid代理商ID

cname顧客姓名aname代理商名稱

city顧客所在城巾city代理商所在城市

discnt顧客可能會有的折扣percent代理商每筆交易所能

獲得的傭金百分比

PRODUCTS商品信息表ORDERS訂單信息表

pid商品IDordno訂單ID

pname商品名稱Month訂單月份

city商品庫存所在城巾cid顧客ID

quantity商品庫存數(shù)量aid代理商ID

price商品批發(fā)價pid商品ID

qty數(shù)量

dollars商品總價

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

2)網(wǎng)上錄取數(shù)據(jù)庫(SCT)

STUDENTS學生信息表COLLEGE院校信息表

Skh考號Sxm姓名Cno院校碼

Sxb性別Scsny出生年月Cname院校名稱

Sdw生源地Syw語文Clb院校類別

Ssx數(shù)學Swy外語Cjh院校計劃數(shù)

SxXSzof文化總分Clq院校錄取數(shù)

Szg照顧加分Szgf投檔分Czy院校在閱數(shù)

Szyl一批志愿Scyl一批參志愿Ctd院校投檔數(shù)

Szy2二批志愿Scy2二批參志愿

TRACK投檔軌跡表

Sbz標志(已投|在閱|錄取|退檔|

Skh考號

死檔等)

Cno院校碼

Syx院校碼

Tbz標志

Ssj時間

Tsj時間

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

2)網(wǎng)上錄取數(shù)據(jù)庫(SCT)運行機制

?投檔程序將考生按志愿從高分到低分排列,根

據(jù)院校計劃數(shù)和統(tǒng)一劃定的重點院校、普通院

校分數(shù)線進行投檔:滿足條件的考生其標志字

段(Sbz)改為已投、其院校碼字段(Syx)改為

投檔院校的編碼;

?院校根據(jù)投擋結果下載已投檔到本學校的考生

信息,此時考生其標志字段(Sbz)改為在閱;

?院校通過閱讀學生信息決定每一考生命運(錄

取、退檔);

?考生標志字段(Sbz)的每一次修改,都會相

應修改COLLEGE中的相關字段值,并且在TRACK

中留下痕跡。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

3)房屋銷售數(shù)據(jù)庫(HEC)問題

?假設某房地產公司聘用多名業(yè)務員負責房地產

的銷售業(yè)務,每名客戶可以多次或一次購買多

套住房,每套住房有唯一的標識(房間號),

每套房產交易都要簽定合同,合同事例如下圖

所示:

合同號:01409090日期:02/02/03付款方式:一次性總金額:495000.00元

客戶身份證號:110102701104271客戶姓名:王剛聯(lián)系電話:88626868

地址:北京巾-白石橋路188號郵政編碼:100081

房間號居室數(shù)建筑面積(療)使用面積(m2)單價(元/招)金額(元)

1023110903300.00297000.00

103278603300.00198000.00

務員代碼:23業(yè)務員姓名:李平電話號碼:84128996

?試為該房地產公司設計一個關系數(shù)據(jù)庫。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

3)房屋銷售數(shù)據(jù)庫(HEC)問題

HOUSES房屋表EMPLOYEES雇員表

房間號業(yè)務員代號

居室數(shù)業(yè)務員姓名

使用面積電話號碼

單價

銷售合同號

CUSTOMERS客戶信息表ORDERS合同表

客戶身份證號合同號

客戶姓名日期

客戶住址客戶身份證號

客戶電話號碼業(yè)務員代碼

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2關系數(shù)據(jù)模型

?單一的數(shù)據(jù)結構——關系

關系模型的數(shù)據(jù)結構非常單一。在關系模型中,現(xiàn)實

世界的實體以及實體間的各種聯(lián)系均用關系來表示。在

用戶看來,關系模型中數(shù)據(jù)的邏輯結構是一張二維表。

?關系操作

關系模型給出了關系操作的能力,但不對RDBMS語言給

出具體的語法要求。關系模型中常用的關系操作包括:

選擇(Select)>投影(Project)>連接(Join)、除

(Divide)、并(Union)、交(Intersection)、差

(Difference)等查詢(Query)操作和增加(Insert)>刪

除(Delete)、修改(Update)操作兩大部分。查詢的表法

能力是其中最主要的部分。

關系操作的特點是集合操作方式,即操作的對象和結

果都是集合。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2關系數(shù)據(jù)模型

?關系的三類完整性約束

關系模型允許定義三類完整性約束:實體完整性、參

照完整性和用戶定義的完整性。其中實體完整性和參照

完整性是關系模型必須滿足的完整性約束條件,應該由

關系型數(shù)據(jù)庫管理系統(tǒng)自動支持。用戶定義的完整性是

應用領域需要遵循的約束條件,體現(xiàn)了具體領域中的語

義約束。

?關系模型與以往的模型(層次模型、網(wǎng)狀模型)不同,它

是建立在嚴格的數(shù)學概念的基礎上的。在用戶觀點下,

關系模型中數(shù)據(jù)的邏輯結構是一張二維表,它由行和列

組成。關系模型中稱為關系、屬性、元組。數(shù)據(jù)庫中有

兩套術語:表、歹U、行;關系、屬性、元組。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2.1域和數(shù)據(jù)類型

?在目前的DBMS產品中(ACCESS>FOX、ORACLE>

DB2UDB、INFORMIX),創(chuàng)建數(shù)據(jù)庫首先確定該

數(shù)據(jù)庫有多少表,每一表的名稱是什么,表中

包含哪些列,表的列必須確定類型。比如說,

表CUSTOMERS中的discnt列的類型是real(實型),

city列的類型為char(20)(字符串)。

?為什么在定義表的時候,必須給表的列加一個

特定的類型呢?我們知道,在C或者Java等編程

語言中,對于程序中使用的變量或常量等數(shù)據(jù),

事先應當申明其類型,具有相同類型的數(shù)據(jù)才

可以進行一系列的比較和運算。數(shù)據(jù)庫中給表

的列加一個特定類型的原因也在于此。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

L1.2.1域和數(shù)據(jù)類型

■在數(shù)據(jù)庫原理或理論性文獻中,一般地說,

一個表的列的取值范圍是在一集合D上,

我們稱D為域(Domain)。

?定義1.1.1域(Domain)域是一組具有相同

數(shù)據(jù)類型的值的集合。

例如:自然數(shù)、整數(shù)、實數(shù)、字符串、

日期、時間、{0,1}、{'男','女'}、

{民族名I中國56個民族的名字}等等,都

可以是域。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2.2表和關系

?定義1.1.2笛卡爾積(CartesianProduct)

給定一組域DI,D2,…,Dn,這些域中可以有

相同的。DLD2,…,Dn的笛卡爾積為:

DIXD2X...XDn={(dl,d2,dn)|di£Di,i=l,2,n)

其中每一個元素(dl,d2,dn)叫作一個n元組

(n-tuple)或簡稱元組(Tuple)。元素中的每一

個值di叫作一*個分量(Component)o

若Di(i=L,2…n)為有限集,其基數(shù)為

mi(i=l,2…n),則DIXD2義…XDn的基數(shù)M為:

mlXm2X...Xmn

?笛卡爾積可表示為一個二維表。表中的每行對

應一個元組,表中的每列對應一個域。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2.2表和關系

?定義1.1.3關系(Relation)DIXD2X...XDn的子

集叫作在域域,D2,…,Dn的關系,表示為

R(D1,D2,Dn)

R這里只表示關系的名字,n是關系的目或度

(Degree)。

?關系是笛卡爾積的有限子集,所以關系也是一

個二維表,表的每行對應一個元組,表的每列

對應一個域。由于域可以相同,為了加以區(qū)分,

必須對每列起一個名字,稱為屬性(Attribute)。n

目關系必有n個屬性。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2.2表和關系

?若關系中的某一屬性組的值能唯一地標識一個

元組,則稱該屬性組為候選碼(Candidatekey)o

若一個關系有多個候選碼,則選定其中一個為

主碼(Primarykey)。主碼的諸屬性稱為主屬性

(Primeattribute)。不包含在任何侯選碼中的屬性

森為非碼屬性(Non-keyattribute)。

?笛卡爾積中的許多元組是王給阮意乂的,從中

取出有實質意乂的元組來構造關系。在域的笛

卡兒積中,我們稱那些符合條件的元素為相關

的,由此得到數(shù)學上的術語——關系。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2.2表和關系

-表的列相對是穩(wěn)定的,它描述表的結構。增加

或刪除列都不是常見的,我們也不希望在日常

業(yè)務中這樣。設計表的列布局就是數(shù)據(jù)庫的邏

輯設計。另一方面,表的內容是經(jīng)常變化的,

新的行被添加或被刪除在日常業(yè)務中隨時可能

發(fā)生。數(shù)據(jù)庫是關系的集合。組成關系的屬性

(列)的集合稱為關系模式。數(shù)據(jù)庫所有關系模

式的集合構成數(shù)據(jù)庫模式。

?關系可以有三種類型:基本關系(基本表或基表)、

查詢表和視圖表。基本表是實際存在的表,它

是實際存儲數(shù)據(jù)的邏輯表示。查詢表是查詢結

果對應的表。視圖表是由基本表或其他視圖表

導出的表,是虛表,不對應實際存儲的數(shù)據(jù)。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.2.3關系規(guī)則

?基于笛卡爾積的子集的關系定義,在各種不同

的商業(yè)數(shù)據(jù)庫產品中又有一些規(guī)則,這些規(guī)則

告訴我們在表結構中哪些變化是允許的,哪些

檢索操作是受限的,這些規(guī)則也是我們在進行

數(shù)據(jù)庫設計時需要充分考慮的。

?關系規(guī)則是在關系模型的發(fā)明者E.F.Codd的一

系列論文中提出,這些規(guī)則反映了特定的數(shù)學

假設,目的是為了建立一個良好的關系結構。

?出現(xiàn)新的對象-關系模型是因為人們認為從數(shù)學

出發(fā)的關系規(guī)則有點太嚴格,無法容納一些有

價值的思想,特別是面向對象的系統(tǒng)分析思想

出現(xiàn)之后。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

規(guī)則1列是同質的

?每一列中的分量是同一類型的數(shù)據(jù),來自同一個

域。每一列為一個屬性,要給予不同的屬性名。

該規(guī)則對應:設計表時,確定了表名之后,給每

一個字段命名,并確定字段類型、長度。

?注:不同的DBMS所支持的數(shù)據(jù)類型,能夠處理的

數(shù)據(jù)長度不一定相同。不同的DBMS當字段類型發(fā)

生變化時,對已有數(shù)據(jù)的處理規(guī)則也不相同。例

如:字段學號原來是字符型,現(xiàn)在該為數(shù)值型,

那末已存在的字符型學號是否直接變成數(shù)值型。

不同DBMS下的數(shù)據(jù)進行移動交換時,處理規(guī)則也

不相同,數(shù)據(jù)導入導出時要特別注意此問題。對

于來自于枚舉型數(shù)值域的列,可通過參照表和被

參照表的方式實現(xiàn)。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

規(guī)則2第一泛式規(guī)則

?關系模型要求關系必須是規(guī)范化的,即要求關系

中不允許含有多值屬性和含有內部結構,遵守這

樣規(guī)則的表稱為第一范式。關系的每一個分量必

須是一個不可分的的數(shù)據(jù)項,不允許表中還有表。

?第一范式規(guī)則是關系模型的基本規(guī)則,但在對象

-關系數(shù)據(jù)庫系統(tǒng)中,這一規(guī)則將不在是數(shù)據(jù)庫

設計的一個約束。以后我們會討論對象-關系模

型時知道,打破第一范式規(guī)則的途徑是該模型中

允許表中對象列的值是包含復雜類型的集合。用

戶可以自定義數(shù)據(jù)類型,某一字段可以是用戶定

義的復雜類型。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

規(guī)則2第一泛式規(guī)則

?該規(guī)則表明重復字段在關系中是不允許的,這是

關系數(shù)據(jù)庫設計過程中的一個最基本的約束。例

如,人事管理中常見的職工登記表有簡歷這一列,

如果我們將簡歷這一列設計為備注型字段,則對

曾經(jīng)學習工作過的單位的查詢基本不能完成,但

如果將該列放入職工表的行中,則我們需要給表

建立一定數(shù)目的列,這個數(shù)目要達到某一職工可

能有的最多的學習工作單位數(shù),但是這是不切實

際的。一個有效的方法是將職工表分解成兩部分,

建立單獨的職工表和簡歷表,職工表包括職工號

等基本信息,簡歷表包括職工號、起始年月、終

止年月、單位4個字段。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

規(guī)則3只能基于內容存取行規(guī)則

?行的順序可以任意交換,或者說,行是沒有次序

的,我們只可以通過行的內容即每一行中所存在

的屬性值來檢索。因為關系是元組的集合,元組

沒有第一行、第二行之分。實際中,查詢職工號

為10001號職工的信息,沒有查詢第一行職工的

信息。值得注意的是,關系模型要求關系中列也

是沒有次序的,列的順序可以任意交換。這一點

在“只能基于內容存取行”規(guī)則中已體現(xiàn)。

?有些商業(yè)數(shù)據(jù)庫系統(tǒng)打破了第三項規(guī)則,通過行

標識(rowidentification,ROWID)提供-,種

用戶檢索表中行的方法。但其主要目的是幫助

DBA檢查在什么地方表中的行記錄沒有按正確方

式存放。

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設計與開發(fā)》講義

規(guī)則4行唯一性規(guī)則

?任意兩個元組不能完全相同,關系模型中

關系是元組的集合,集合中完全相同的兩

元素只能被看作一個元素,集合不可以包

含相同的元素。而且,規(guī)則3只能按列值存

取要求元組必須唯一。

?商業(yè)數(shù)據(jù)庫系統(tǒng)中,很多并不是自動維護

規(guī)則4的。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

_______________________________________《數(shù)據(jù)庫設計與開發(fā)》講義

規(guī)則5實體完整性規(guī)則

■任意行在主鍵列上的取值都不允許為空值

(NULLValue)o空值解釋為未知的或者

尚未定義的,當以后知道的情況下會重新

填寫該值。空值不同于數(shù)字0和空串。表的

主鍵是用來唯一區(qū)分表的行的,不難想象,

未知的或者尚未定義的實體我們是無法區(qū)

分他們的。

迷翕墨國我箏魅緇翱吃題時羽須XD%(DG

《數(shù)據(jù)庫設計與開發(fā)》講義

1.1.3數(shù)據(jù)模型

?數(shù)據(jù)模型是數(shù)據(jù)庫的框架,這個框架表示了信息

及其聯(lián)系的組織方式和表達方式,同時反映了存

取路徑。數(shù)據(jù)模型是數(shù)據(jù)庫管理系統(tǒng)分類的原因。

一般的講,任何一種數(shù)據(jù)模型都是嚴格定義的概

念的集合。這些概念必須能夠精確地描述系統(tǒng)的

靜態(tài)特性、動態(tài)特性和完整性約

溫馨提示

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

最新文檔

評論

0/150

提交評論