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

下載本文檔

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

文檔簡介

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

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

北京郵電大學軟件學院

郭文明

(guolyz@)

2003.06

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

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

0.前言

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

0.2本課程內(nèi)容

0.3本課程學習方法

0.4本課程參考資料

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

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

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

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

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

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

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

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

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

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

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

關(guān)系模型、面向?qū)ο竽P汀1容^成熟完善、市

場占用率較大的是基于關(guān)系模型基礎(chǔ)上的關(guān)系

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

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設(shè)計與開發(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ù)轉(zhuǎn)儲、數(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ù)庫設(shè)計與開發(fā)》講義

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

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

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

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

性和共享性。

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

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

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

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

錄滿為止。

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

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

快,準確程度高。

迷翕墨國我箏魅緇翱吃

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

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

?企業(yè)(生產(chǎn)管理、質(zhì)量管理、客戶管理、財務管

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

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

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

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

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

統(tǒng))等。

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

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

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

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

迷翕墨國我箏魅緇翱吃

《數(shù)據(jù)庫設(shè)計與開發(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和用戶構(gòu)成。

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

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

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

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

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

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

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

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

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

迷翕墨國我箏魅緇翱吃

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

0.2本課程內(nèi)容

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

系模型基礎(chǔ)上的數(shù)據(jù)操縱,融合了面向?qū)ο笏?/p>

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

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

件存儲、索引技術(shù)、散列技術(shù)和多鍵訪問技術(shù)

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

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

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

程序,事務處理技術(shù),Client/Server體系結(jié)構(gòu),

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

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

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

0.2本課程內(nèi)容

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

結(jié)構(gòu),存儲管理,實例管理;ORACLE數(shù)據(jù)庫

的規(guī)劃與實施。

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

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

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

法。

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

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

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

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

另發(fā))。

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

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

0.3本課程學習方法

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

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

針對性的采取一些措施。

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

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

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

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

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

了解具體應用的領(lǐng)域知識和背景,結(jié)合DBMS

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

程?!x開深厚的領(lǐng)域知識,不可能設(shè)計出

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

迷翕墨國我箏魅緇翱吃

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

0.3本課程學習方法

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

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

DBMS完成,哪些由程序完成?!獩]有編程

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

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

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

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

理?!獢?shù)據(jù)庫系統(tǒng)的運行沒有DBA的參與,

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

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

技術(shù)性、藝術(shù)性為一體。

迷翕墨國我箏魅緇翱吃

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

0.4本課程參考資料

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

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

(DATABASEPrinciples,Programming,andPerformance.

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

?2.數(shù)據(jù)庫設(shè)計教程,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ù)庫設(shè)計與開發(fā)》講義

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

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

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

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

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

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

關(guān)系模型在許多產(chǎn)品中正逐漸取代關(guān)系

模型。建立在對象一關(guān)系模型基礎(chǔ)之上

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

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

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

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

迷翕墨國我箏魅緇翱吃

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

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

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

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

有的查詢能力方面介紹關(guān)系模型的特性,

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

語言。本章還將介紹對象-關(guān)系模型的特

性和對象-關(guān)系SQL語法。

1」關(guān)系模型

1.2關(guān)系代數(shù)

1.3SQL

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

砌窕。硯)

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

L1關(guān)系模型

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

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

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

-1.122表和關(guān)系

-1.123關(guān)系規(guī)則

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1)產(chǎn)品-代理-銷售數(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ù)庫設(shè)計與開發(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ù)庫設(shè)計與開發(fā)》講義

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

?投檔程序?qū)⒖忌粗驹笍母叻值降头峙帕?,?/p>

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

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

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

投檔院校的編碼;

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

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

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

取、退檔);

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

應修改COLLEGE中的相關(guān)字段值,并且在TRACK

中留下痕跡。

迷翕墨國我箏魅緇翱吃

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

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

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

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

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

每套房產(chǎn)交易都要簽定合同,合同事例如下圖

所示:

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

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

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

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

1023110903300.00297000.00

103278603300.00198000.00

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

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

迷翕墨國我箏魅緇翱吃

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

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

HOUSES房屋表EMPLOYEES雇員表

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

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

使用面積電話號碼

單價

銷售合同號

CUSTOMERS客戶信息表ORDERS合同表

客戶身份證號合同號

客戶姓名日期

客戶住址客戶身份證號

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

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

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

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

?單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系

關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常單一。在關(guān)系模型中,現(xiàn)實

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

用戶看來,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。

?關(guān)系操作

關(guān)系模型給出了關(guān)系操作的能力,但不對RDBMS語言給

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

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

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

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

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

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

關(guān)系操作的特點是集合操作方式,即操作的對象和結(jié)

果都是集合。

迷翕墨國我箏魅緇翱吃

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

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

?關(guān)系的三類完整性約束

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

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

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

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

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

義約束。

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

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

關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列

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

兩套術(shù)語:表、歹U、行;關(guān)系、屬性、元組。

迷翕墨國我箏魅緇翱吃

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

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

?在目前的DBMS產(chǎn)品中(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ù)庫設(shè)計與開發(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ù)庫設(shè)計與開發(fā)》講義

1.1.2.2表和關(guān)系

?定義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ù)庫設(shè)計與開發(fā)》講義

1.1.2.2表和關(guān)系

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

集叫作在域域,D2,…,Dn的關(guān)系,表示為

R(D1,D2,Dn)

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

(Degree)。

?關(guān)系是笛卡爾積的有限子集,所以關(guān)系也是一

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

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

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

目關(guān)系必有n個屬性。

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

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

1.1.2.2表和關(guān)系

?若關(guān)系中的某一屬性組的值能唯一地標識一個

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

若一個關(guān)系有多個候選碼,則選定其中一個為

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

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

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

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

取出有實質(zhì)意乂的元組來構(gòu)造關(guān)系。在域的笛

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

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

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

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

1.1.2.2表和關(guān)系

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

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

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

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

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

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

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

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

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

查詢表和視圖表?;颈硎菍嶋H存在的表,它

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

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

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

迷翕墨國我箏魅緇翱吃

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

1.1.2.3關(guān)系規(guī)則

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

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

告訴我們在表結(jié)構(gòu)中哪些變化是允許的,哪些

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

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

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

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

假設(shè),目的是為了建立一個良好的關(guān)系結(jié)構(gòu)。

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

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

價值的思想,特別是面向?qū)ο蟮南到y(tǒng)分析思想

出現(xiàn)之后。

迷翕墨國我箏魅緇翱吃

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

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

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

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

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

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

?注:不同的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ù)庫設(shè)計與開發(fā)》講義

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

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

中不允許含有多值屬性和含有內(nèi)部結(jié)構(gòu),遵守這

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

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

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

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

設(shè)計的一個約束。以后我們會討論對象-關(guān)系模

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

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

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

義的復雜類型。

迷翕墨國我箏魅緇翱吃

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

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

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

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

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

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

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

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

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

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

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

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

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

止年月、單位4個字段。

迷翕墨國我箏魅緇翱吃

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

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

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

的,我們只可以通過行的內(nèi)容即每一行中所存在

的屬性值來檢索。因為關(guān)系是元組的集合,元組

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

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

信息。值得注意的是,關(guān)系模型要求關(guān)系中列也

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

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

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

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

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

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

式存放。

迷翕墨國我箏魅緇翱吃

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

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

?任意兩個元組不能完全相同,關(guān)系模型中

關(guān)系是元組的集合,集合中完全相同的兩

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

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

取要求元組必須唯一。

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

規(guī)則4的。

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

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

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

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

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

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

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

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

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

分他們的。

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

《數(shù)據(jù)庫設(shè)計與開發(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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論