數(shù)據(jù)庫設(shè)計(jì)實(shí)例_第1頁
數(shù)據(jù)庫設(shè)計(jì)實(shí)例_第2頁
數(shù)據(jù)庫設(shè)計(jì)實(shí)例_第3頁
數(shù)據(jù)庫設(shè)計(jì)實(shí)例_第4頁
數(shù)據(jù)庫設(shè)計(jì)實(shí)例_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫設(shè)計(jì)與開發(fā)()2003.060.前言0.1 數(shù)據(jù)庫發(fā)展與應(yīng)用0.2 本課程內(nèi)容0.3本課程學(xué)習(xí)方法0.4本課程參考資料0.1 數(shù)據(jù)庫發(fā)展與應(yīng)用數(shù)據(jù)庫定義:數(shù)據(jù)庫是數(shù)據(jù)管理的技術(shù),數(shù)據(jù)管理是指對(duì)各種數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、加工和傳播的一系列活動(dòng)的總和。包括對(duì)數(shù)據(jù)的分類、組織、編碼、存儲(chǔ)、檢索和維護(hù)。數(shù)據(jù)處理的發(fā)展:數(shù)據(jù)處理的發(fā)展過程經(jīng)歷了手工管理、文件管理、數(shù)據(jù)庫三個(gè)階段。數(shù)據(jù)模型:數(shù)據(jù)庫是建立在數(shù)據(jù)模型基礎(chǔ)上的數(shù)據(jù)集合。數(shù)據(jù)模型有:層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?。比較成熟完善、市場(chǎng)占用率較大的是基于關(guān)系模型基礎(chǔ)上的關(guān)系數(shù)據(jù)庫。30.1 數(shù)據(jù)庫發(fā)展與應(yīng)用數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系

2、統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,屬系統(tǒng)軟件。數(shù)據(jù)庫管理系統(tǒng)的功能:數(shù)據(jù)定義(create、drop等);數(shù)據(jù)操縱(select、insert等);數(shù)據(jù)庫運(yùn)行(安全性、完整性、并發(fā)控制、故障恢復(fù));數(shù)據(jù)庫建立與維護(hù)(數(shù)據(jù)轉(zhuǎn)儲(chǔ)、數(shù)據(jù)恢復(fù)、性能監(jiān)視、重組織)。目前的一些數(shù)據(jù)庫管理系統(tǒng)(DBMS),小型桌面數(shù)據(jù)庫系統(tǒng)FoxPro,ACCESS,PRADOX等,大型數(shù)據(jù)庫系統(tǒng) ORACLE,INFORMIX,SYBASE,DB2,Microsoft SQLserver等 。40.1 數(shù)據(jù)庫發(fā)展與應(yīng)用數(shù)據(jù)庫的應(yīng)用已越來越廣泛。從小型的單項(xiàng)事務(wù)處理系統(tǒng)到大型復(fù)雜的信息系統(tǒng)大都用先進(jìn)的數(shù)據(jù)庫技術(shù)

3、來保持系統(tǒng)數(shù)據(jù)的整體性、完整性和共享性。1)電腦抽獎(jiǎng): 采用數(shù)據(jù)庫技術(shù),不必修改程序,只變更獎(jiǎng)項(xiàng)設(shè)置,即可應(yīng)用于不同的抽獎(jiǎng)活動(dòng)。2)招生考試: 通過對(duì)數(shù)據(jù)庫排序和索引,完成考生按志愿從高分到低分排列,根據(jù)學(xué)校招生計(jì)劃錄取,錄滿為止。3)銀行儲(chǔ)蓄: 為每個(gè)用戶建立能夠唯一識(shí)別的帳戶,同時(shí)記錄用戶的往來明細(xì),做到存儲(chǔ)量大,運(yùn)算速度快,準(zhǔn)確程度高。50.1 數(shù)據(jù)庫發(fā)展與應(yīng)用企業(yè)(生產(chǎn)管理、質(zhì)量管理、客戶管理、財(cái)務(wù)管理、電子商務(wù)等);機(jī)關(guān)(辦公自動(dòng)化);金融(銀行電子結(jié)算);證券(股票交易、行情分析);通訊(話費(fèi)查詢、費(fèi)用結(jié)算);教育衛(wèi)生(網(wǎng)上錄取、學(xué)籍管理);社會(huì)保障(住房公積金、醫(yī)療保險(xiǎn)、養(yǎng)老保險(xiǎn)

4、);政府(電子政務(wù));交通(道路信息系統(tǒng))等。國(guó)民經(jīng)濟(jì)各個(gè)領(lǐng)域都離不開數(shù)據(jù)庫技術(shù),目前,一個(gè)國(guó)家的數(shù)據(jù)庫建設(shè)規(guī)模(指數(shù)據(jù)庫的個(gè)數(shù)、種類)、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量這個(gè)國(guó)家信息化程度的重要標(biāo)志之一。60.1 數(shù)據(jù)庫發(fā)展與應(yīng)用數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)、DBA和用戶構(gòu)成。數(shù)據(jù)庫設(shè)計(jì)是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù),具體說,數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。這個(gè)問題

5、是數(shù)據(jù)庫在應(yīng)用領(lǐng)域的主要研究課題。數(shù)據(jù)庫技術(shù)研究領(lǐng)域:DBMS的研制、數(shù)據(jù)庫設(shè)計(jì)、數(shù)據(jù)庫理論。70.2 本課程內(nèi)容 1)關(guān)系數(shù)據(jù)庫與對(duì)象關(guān)系數(shù)據(jù)庫:建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)操縱,融合了面向?qū)ο笏枷氲膶?duì)象關(guān)系數(shù)據(jù)庫和對(duì)象關(guān)系SQL。2)數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)庫管理:數(shù)據(jù)庫常用的文件存儲(chǔ)、索引技術(shù)、散列技術(shù)和多鍵訪問技術(shù)等數(shù)據(jù)存儲(chǔ)技術(shù),保證數(shù)據(jù)庫正常運(yùn)行的安全性、完整性控制和數(shù)據(jù)庫恢復(fù)。3)數(shù)據(jù)庫應(yīng)用程序體系結(jié)構(gòu):訪問數(shù)據(jù)庫的程序,事務(wù)處理技術(shù),Client/Server體系結(jié)構(gòu),多層體系結(jié)構(gòu),分布式數(shù)據(jù)處理和中間件。80.2 本課程內(nèi)容 4)ORACLE數(shù)據(jù)庫:ORACLE數(shù)據(jù)庫的體系結(jié)構(gòu),存儲(chǔ)管理,

6、實(shí)例管理;ORACLE數(shù)據(jù)庫的規(guī)劃與實(shí)施。5)數(shù)據(jù)庫設(shè)計(jì):需求分析、概念模型設(shè)計(jì)、數(shù)據(jù)庫邏輯設(shè)計(jì)和物理設(shè)計(jì)、功能設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、CASE技術(shù);ER模型、規(guī)范化設(shè)計(jì)方法。另外,通過實(shí)驗(yàn)環(huán)節(jié)進(jìn)一步理解所講內(nèi)容,實(shí)驗(yàn)即選擇一DBMS平臺(tái)、設(shè)計(jì)一實(shí)際的數(shù)據(jù)庫應(yīng)用系統(tǒng)。完成實(shí)驗(yàn)需具備DBMS知識(shí)、程序設(shè)計(jì)開發(fā)能力、適當(dāng)?shù)膶I(yè)領(lǐng)域知識(shí)。(實(shí)驗(yàn)要求另發(fā))。90.3本課程學(xué)習(xí)方法 數(shù)據(jù)庫設(shè)計(jì)與開發(fā)這一門課集理論性、技術(shù)性、藝術(shù)性為一體,學(xué)習(xí)過程中應(yīng)根據(jù)這一些特點(diǎn),針對(duì)性的采取一些措施。1)從學(xué)習(xí)一個(gè)具體的數(shù)據(jù)庫管理系統(tǒng)(DBMS)開始。理解數(shù)據(jù)管理的含義、理解數(shù)據(jù)庫原理中的理論和方法。離開具體的DBMS進(jìn)行

7、數(shù)據(jù)庫設(shè)計(jì)是不完整的設(shè)計(jì)。2)從熟悉一個(gè)具體的數(shù)據(jù)庫應(yīng)用系統(tǒng)開始。了解具體應(yīng)用的領(lǐng)域知識(shí)和背景,結(jié)合DBMS的功能,探索利用DBMS為實(shí)際解決問題的過程。離開深厚的領(lǐng)域知識(shí),不可能設(shè)計(jì)出用戶滿意的數(shù)據(jù)庫。100.3本課程學(xué)習(xí)方法 3)從使用一個(gè)具體的編成語言開始。明確理解在數(shù)據(jù)庫設(shè)計(jì)和開發(fā)過程中,哪些功能由DBMS完成,哪些由程序完成。沒有編程經(jīng)驗(yàn),不可能設(shè)計(jì)出編程人員滿意的數(shù)據(jù)庫。4)從DBA的角度學(xué)。數(shù)據(jù)庫應(yīng)用系統(tǒng)的運(yùn)行離不開DBA的大力支持,數(shù)據(jù)庫設(shè)計(jì)開發(fā)除滿足一般用戶要求之外,還應(yīng)方便DBA的數(shù)據(jù)管理。數(shù)據(jù)庫系統(tǒng)的運(yùn)行沒有DBA的參與,數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)開發(fā)可能會(huì)感覺特別費(fèi)勁。5)多學(xué)習(xí)

8、、多實(shí)踐、多思考才能集理論性、技術(shù)性、藝術(shù)性為一體。110.4本課程參考資料 1.數(shù)據(jù)庫原理、編程與性能, Patrick ONeil著,周傲英等譯,機(jī)械工業(yè)出版社,2002.01 (DATABASE Principles,Programming, and Performance. Patrick ONeil Elizabeth Oneil,高等教育出版社,2001.05)2.數(shù)據(jù)庫設(shè)計(jì)教程, Thomas M.Connolly著,何玉潔等譯,機(jī)械工業(yè)出版社,2003.063.Unix 和Linux 下的Oracle數(shù)據(jù)庫管理, Michael Wesster 著,王華駒等譯,人民郵電出版社,

9、 2002.84.Oracle9i DBA Fundamentals I,ORACLE University5.數(shù)據(jù)庫實(shí)用教程, 丁寶康 董健全, 清華大學(xué)出版社,2001.09121.關(guān)系數(shù)據(jù)庫與對(duì)象關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)使用靈活,即使用戶不是程序員,也可輕松快捷地寫出一般的查詢語句。關(guān)系數(shù)據(jù)庫管理系統(tǒng)建立在關(guān)系模型基礎(chǔ)之上。最近幾年,一種更新的數(shù)據(jù)模型對(duì)象-關(guān)系模型在許多產(chǎn)品中正逐漸取代關(guān)系模型。建立在對(duì)象關(guān)系模型基礎(chǔ)之上的數(shù)據(jù)庫管理系統(tǒng)稱為對(duì)象-關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。對(duì)象-關(guān)系數(shù)據(jù)庫管理系統(tǒng)也支持關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)。131.關(guān)系數(shù)據(jù)庫與對(duì)象關(guān)系

10、數(shù)據(jù)庫 本章將介紹多年來支配數(shù)據(jù)表達(dá)方式的關(guān)系模型的概念和規(guī)則,從關(guān)系代數(shù)固有的查詢能力方面介紹關(guān)系模型的特性,還要深入介紹工業(yè)標(biāo)準(zhǔn)SQL(SQL-99)語言。本章還將介紹對(duì)象-關(guān)系模型的特性和對(duì)象-關(guān)系SQL語法。 1.1關(guān)系模型 1.2關(guān)系代數(shù) 1.3 SQL 1.4對(duì)象關(guān)系數(shù)據(jù)庫141.1關(guān)系模型1.1.1 關(guān)系數(shù)據(jù)庫舉例1.1.2關(guān)系數(shù)據(jù)模型 1.1.2.1域和數(shù)據(jù)類型1.1.2.2表和關(guān)系1.1.2.3關(guān)系規(guī)則1.1.3數(shù)據(jù)模型 1.1.4最常用的數(shù)據(jù)模型151.1.1 關(guān)系數(shù)據(jù)庫舉例數(shù)據(jù)庫是為了特殊目的存儲(chǔ)在一起的相關(guān)數(shù)據(jù)記錄的集合。關(guān)系數(shù)據(jù)庫是按照關(guān)系模型組織存放數(shù)據(jù)的數(shù)據(jù)庫。我

11、們給出幾個(gè)關(guān)系數(shù)據(jù)庫的例子。1)產(chǎn)品代理銷售數(shù)據(jù)庫(CAP) 顧客從代理商那里批發(fā)大量商品然后自己轉(zhuǎn)銷,顧客其實(shí)是零售商。顧客向代理商要求購買商品,每次訂貨要求有完整的記錄。 2)網(wǎng)上錄取數(shù)據(jù)庫(SCT)3)房屋銷售數(shù)據(jù)庫(HEC) 161) 產(chǎn)品-代理-銷售數(shù)據(jù)庫(CAP)CUSTOMERS 顧客信息表 cid 顧客ID cname 顧客姓名 city 顧客所在城市 discnt 顧客可能會(huì)有的折扣AGENTS 代理商信息表 aid 代理商ID aname 代理商名稱 city 代理商所在城市 percent 代理商每筆交易所能 獲得的傭金百分比PRODUCTS 商品信息表 pid 商品ID

12、 pname 商品名稱 city 商品庫存所在城市 quantity 商品庫存數(shù)量 price 商品批發(fā)價(jià) ORDERS 訂單信息表 ordno 訂單ID Month 訂單月份 cid 顧客ID aid 代理商ID pid 商品ID qty 數(shù)量 dollars 商品總價(jià) 172) 網(wǎng)上錄取數(shù)據(jù)庫(SCT)STUDENTS 學(xué)生信息表 Skh 考號(hào) Sxm 姓名Sxb 性別 Scsny 出生年月Sdw 生源地 Syw 語文Ssx 數(shù)學(xué) Swy 外語Sx X Szof 文化總分 Szg 照顧加分 Szgf 投檔分Szy1 一批志愿 Scy1 一批參志愿Szy2 二批志愿 Scy2 二批參志愿Sb

13、z 標(biāo)志(已投|在閱|錄取|退檔|死檔等)Syx 院校碼Ssj 時(shí)間COLLEGE 院校信息表 Cno 院校碼 Cname 院校名稱 Clb 院校類別 Cjh 院校計(jì)劃數(shù) Clq 院校錄取數(shù) Czy 院校在閱數(shù) Ctd 院校投檔數(shù)TRACK 投檔軌跡表 Skh 考號(hào) Cno 院校碼 Tbz 標(biāo)志 Tsj 時(shí)間182) 網(wǎng)上錄取數(shù)據(jù)庫(SCT)運(yùn)行機(jī)制投檔程序?qū)⒖忌粗驹笍母叻值降头峙帕?,根?jù)院校計(jì)劃數(shù)和統(tǒng)一劃定的重點(diǎn)院校、普通院校分?jǐn)?shù)線進(jìn)行投檔:滿足條件的考生其標(biāo)志字段(Sbz)改為已投、其院校碼字段(Syx)改為投檔院校的編碼;院校根據(jù)投擋結(jié)果下載已投檔到本學(xué)校的考生信息,此時(shí)考生其標(biāo)志字段

14、(Sbz)改為在閱;院校通過閱讀學(xué)生信息決定每一考生命運(yùn)(錄取、退檔);考生標(biāo)志字段(Sbz)的每一次修改,都會(huì)相應(yīng)修改COLLEGE中的相關(guān)字段值,并且在TRACK中留下痕跡。 193)房屋銷售數(shù)據(jù)庫(HEC)問題假設(shè)某房地產(chǎn)公司聘用多名業(yè)務(wù)員負(fù)責(zé)房地產(chǎn)的銷售業(yè)務(wù),每名客戶可以多次或一次購買多套住房,每套住房有唯一的標(biāo)識(shí)(房間號(hào)),每套房產(chǎn)交易都要簽定合同,合同事例如下圖所示:試為該房地產(chǎn)公司設(shè)計(jì)一個(gè)關(guān)系數(shù)據(jù)庫。合同號(hào):01409090 日期:02/02/03 付款方式:一次性 總金額:495000.00元客戶身份證號(hào):1171 客戶姓名:王剛 聯(lián)系電話:88626868地址:北京市白石橋路

15、188號(hào) 郵政編碼:100081房間號(hào) 居室數(shù) 建筑面積(m2) 使用面積(m2) 單價(jià)(元/m2) 金額(元) 102 3 110 90 3300.00 297000.00 103 2 78 60 3300.00 198000.00 務(wù)員代碼:23 業(yè)務(wù)員姓名:李平 電話號(hào)碼:84128996203)房屋銷售數(shù)據(jù)庫(HEC)問題HOUSES 房屋表 房間號(hào) 居室數(shù) 使用面積 單價(jià) 銷售合同號(hào)EMPLOYEES 雇員表 業(yè)務(wù)員代號(hào) 業(yè)務(wù)員姓名 電話號(hào)碼CUSTOMERS 客戶信息表 客戶身份證號(hào) 客戶姓名 客戶住址 客戶電話號(hào)碼ORDERS 合同表 合同號(hào) 日期 客戶身份證號(hào) 業(yè)務(wù)員代碼211

16、.1.2關(guān)系數(shù)據(jù)模型單一的數(shù)據(jù)結(jié)構(gòu)關(guān)系 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常單一。在關(guān)系模型中,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。在用戶看來,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。關(guān)系操作 關(guān)系模型給出了關(guān)系操作的能力,但不對(duì)RDBMS語言給出具體的語法要求。關(guān)系模型中常用的關(guān)系操作包括:選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查詢(Query)操作和增加(Insert)、刪除(Delete)、修改(Update)操作兩大部分。查詢的表達(dá)能力是其中最主要的部分。 關(guān)系操作

17、的特點(diǎn)是集合操作方式,即操作的對(duì)象和結(jié)果都是集合。221.1.2關(guān)系數(shù)據(jù)模型關(guān)系的三類完整性約束 關(guān)系模型允許定義三類完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,應(yīng)該由關(guān)系型數(shù)據(jù)庫管理系統(tǒng)自動(dòng)支持。用戶定義的完整性是應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束。關(guān)系模型與以往的模型(層次模型、網(wǎng)狀模型)不同,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的。在用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。關(guān)系模型中稱為關(guān)系、屬性、元組。數(shù)據(jù)庫中有兩套術(shù)語:表、列、行;關(guān)系、屬性、元組。231.1.2.1域和

18、數(shù)據(jù)類型在目前的DBMS產(chǎn)品中(ACCESS、FOX、ORACLE、DB2 UDB、INFORMIX),創(chuàng)建數(shù)據(jù)庫首先確定該數(shù)據(jù)庫有多少表,每一表的名稱是什么,表中包含哪些列,表的列必須確定類型。比如說,表CUSTOMERS中的discnt列的類型是real(實(shí)型),city列的類型為char(20)(字符串)。為什么在定義表的時(shí)候,必須給表的列加一個(gè)特定的類型呢?我們知道,在C或者Java等編程語言中,對(duì)于程序中使用的變量或常量等數(shù)據(jù),事先應(yīng)當(dāng)申明其類型,具有相同類型的數(shù)據(jù)才可以進(jìn)行一系列的比較和運(yùn)算。數(shù)據(jù)庫中給表的列加一個(gè)特定類型的原因也在于此。241.1.2.1域和數(shù)據(jù)類型在數(shù)據(jù)庫原理或

19、理論性文獻(xiàn)中,一般地說,一個(gè)表的列的取值范圍是在一集合D上,我們稱D為域(Domain)。定義1.1.1域(Domain) 域是一組具有相同數(shù)據(jù)類型的值的集合。 例如:自然數(shù)、整數(shù)、實(shí)數(shù)、字符串、日期、時(shí)間、0,1、男,女、民族名|中國(guó)56個(gè)民族的名字等等,都可以是域。251.1.2.2表和關(guān)系定義1.1.2 笛卡爾積(Cartesian Product) 給定一組域D1,D2,Dn,這些域中可以有相同的。D1,D2, ,Dn 的笛卡爾積為: D1D2Dn= (dl,d2,dn)| diDi,i=1,2,n 其中每一個(gè)元素(dl,d2,dn)叫作一個(gè)n元組(n-tuple)或簡(jiǎn)稱元組(Tupl

20、e)。元素中的每一個(gè)值di叫作一個(gè)分量(Component)。 若Di(i=1,2,n)為有限集,其基數(shù)為mi(i=1,2,n),則D1D2Dn的基數(shù)M為: m1m2mn笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。261.1.2.2表和關(guān)系定義1.1.3關(guān)系(Relation) D1D2Dn的子集叫作在域D1,D2, ,Dn 的關(guān)系,表示為 R(D1,D2, ,Dn) R這里只表示關(guān)系的名字,n是關(guān)系的目或度(Degree)。關(guān)系是笛卡爾積的有限子集,所以關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)名

21、字,稱為屬性(Attribute)。n目關(guān)系必有n個(gè)屬性。271.1.2.2表和關(guān)系若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼(Candidate key)。若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primary key)。主碼的諸屬性稱為主屬性(Prime attribute)。不包含在任何侯選碼中的屬性稱為非碼屬性(Non-key attribute)。笛卡爾積中的許多元組是無實(shí)際意義的,從中取出有實(shí)際意義的元組來構(gòu)造關(guān)系。在域的笛卡兒積中,我們稱那些符合條件的元素為相關(guān)的,由此得到數(shù)學(xué)上的術(shù)語關(guān)系。 281.1.2.2表和關(guān)系表的列相對(duì)是穩(wěn)定的,它描述表的結(jié)

22、構(gòu)。增加或刪除列都不是常見的,我們也不希望在日常業(yè)務(wù)中這樣。設(shè)計(jì)表的列布局就是數(shù)據(jù)庫的邏輯設(shè)計(jì)。另一方面,表的內(nèi)容是經(jīng)常變化的,新的行被添加或被刪除在日常業(yè)務(wù)中隨時(shí)可能發(fā)生。數(shù)據(jù)庫是關(guān)系的集合。組成關(guān)系的屬性(列)的集合稱為關(guān)系模式。數(shù)據(jù)庫所有關(guān)系模式的集合構(gòu)成數(shù)據(jù)庫模式。關(guān)系可以有三種類型:基本關(guān)系(基本表或基表)、查詢表和視圖表。基本表是實(shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示。查詢表是查詢結(jié)果對(duì)應(yīng)的表。視圖表是由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。291.1.2.3關(guān)系規(guī)則基于笛卡爾積的子集的關(guān)系定義,在各種不同的商業(yè)數(shù)據(jù)庫產(chǎn)品中又有一些規(guī)則,這些規(guī)則告訴我們?cè)诒斫Y(jié)

23、構(gòu)中哪些變化是允許的,哪些檢索操作是受限的,這些規(guī)則也是我們?cè)谶M(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí)需要充分考慮的。 關(guān)系規(guī)則是在關(guān)系模型的發(fā)明者E.F.Codd的一系列論文中提出,這些規(guī)則反映了特定的數(shù)學(xué)假設(shè),目的是為了建立一個(gè)良好的關(guān)系結(jié)構(gòu)。出現(xiàn)新的對(duì)象-關(guān)系模型是因?yàn)槿藗冋J(rèn)為從數(shù)學(xué)出發(fā)的關(guān)系規(guī)則有點(diǎn)太嚴(yán)格,無法容納一些有價(jià)值的思想,特別是面向?qū)ο蟮南到y(tǒng)分析思想出現(xiàn)之后。30規(guī)則1 列是同質(zhì)的每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。每一列為一個(gè)屬性,要給予不同的屬性名。該規(guī)則對(duì)應(yīng):設(shè)計(jì)表時(shí),確定了表名之后,給每一個(gè)字段命名,并確定字段類型、長(zhǎng)度。注:不同的DBMS所支持的數(shù)據(jù)類型,能夠處理的數(shù)據(jù)長(zhǎng)度不一定

24、相同。不同的DBMS當(dāng)字段類型發(fā)生變化時(shí),對(duì)已有數(shù)據(jù)的處理規(guī)則也不相同。例如:字段學(xué)號(hào)原來是字符型,現(xiàn)在該為數(shù)值型,那末已存在的字符型學(xué)號(hào)是否直接變成數(shù)值型。不同DBMS下的數(shù)據(jù)進(jìn)行移動(dòng)交換時(shí),處理規(guī)則也不相同,數(shù)據(jù)導(dǎo)入導(dǎo)出時(shí)要特別注意此問題。對(duì)于來自于枚舉型數(shù)值域的列,可通過參照表和被參照表的方式實(shí)現(xiàn)。31規(guī)則2 第一泛式規(guī)則關(guān)系模型要求關(guān)系必須是規(guī)范化的,即要求關(guān)系中不允許含有多值屬性和含有內(nèi)部結(jié)構(gòu),遵守這樣規(guī)則的表稱為第一范式。關(guān)系的每一個(gè)分量必須是一個(gè)不可分的的數(shù)據(jù)項(xiàng),不允許表中還有表。第一范式規(guī)則是關(guān)系模型的基本規(guī)則,但在對(duì)象-關(guān)系數(shù)據(jù)庫系統(tǒng)中,這一規(guī)則將不在是數(shù)據(jù)庫設(shè)計(jì)的一個(gè)約束。

25、以后我們會(huì)討論對(duì)象-關(guān)系模型時(shí)知道,打破第一范式規(guī)則的途徑是該模型中允許表中對(duì)象列的值是包含復(fù)雜類型的集合。用戶可以自定義數(shù)據(jù)類型,某一字段可以是用戶定義的復(fù)雜類型。32規(guī)則2 第一泛式規(guī)則該規(guī)則表明重復(fù)字段在關(guān)系中是不允許的,這是關(guān)系數(shù)據(jù)庫設(shè)計(jì)過程中的一個(gè)最基本的約束。例如,人事管理中常見的職工登記表有簡(jiǎn)歷這一列,如果我們將簡(jiǎn)歷這一列設(shè)計(jì)為備注型字段,則對(duì)曾經(jīng)學(xué)習(xí)工作過的單位的查詢基本不能完成,但如果將該列放入職工表的行中,則我們需要給表建立一定數(shù)目的列,這個(gè)數(shù)目要達(dá)到某一職工可能有的最多的學(xué)習(xí)工作單位數(shù),但是這是不切實(shí)際的。一個(gè)有效的方法是將職工表分解成兩部分,建立單獨(dú)的職工表和簡(jiǎn)歷表,職

26、工表包括職工號(hào)等基本信息,簡(jiǎn)歷表包括職工號(hào)、起始年月、終止年月、單位4個(gè)字段。33規(guī)則3 只能基于內(nèi)容存取行規(guī)則行的順序可以任意交換,或者說,行是沒有次序的,我們只可以通過行的內(nèi)容即每一行中所存在的屬性值來檢索。因?yàn)殛P(guān)系是元組的集合,元組沒有第一行、第二行之分。實(shí)際中,查詢職工號(hào)為10001號(hào)職工的信息,沒有查詢第一行職工的信息。值得注意的是,關(guān)系模型要求關(guān)系中列也是沒有次序的,列的順序可以任意交換。這一點(diǎn)在“只能基于內(nèi)容存取行”規(guī)則中已體現(xiàn)。有些商業(yè)數(shù)據(jù)庫系統(tǒng)打破了第三項(xiàng)規(guī)則,通過行標(biāo)識(shí)(row identification,ROWID)提供一種用戶檢索表中行的方法。但其主要目的是幫助DBA

27、檢查在什么地方表中的行記錄沒有按正確方式存放。34規(guī)則4 行唯一性規(guī)則任意兩個(gè)元組不能完全相同,關(guān)系模型中關(guān)系是元組的集合,集合中完全相同的兩元素只能被看作一個(gè)元素,集合不可以包含相同的元素。而且,規(guī)則3只能按列值存取要求元組必須唯一。商業(yè)數(shù)據(jù)庫系統(tǒng)中,很多并不是自動(dòng)維護(hù)規(guī)則4的。 35規(guī)則5 實(shí)體完整性規(guī)則任意行在主鍵列上的取值都不允許為空值(NULL Value)??罩到忉尀槲粗幕蛘呱形炊x的,當(dāng)以后知道的情況下會(huì)重新填寫該值??罩挡煌跀?shù)字0和空串。表的主鍵是用來唯一區(qū)分表的行的,不難想象,未知的或者尚未定義的實(shí)體我們是無法區(qū)分他們的。361.1.3數(shù)據(jù)模型數(shù)據(jù)模型是數(shù)據(jù)庫的框架,這個(gè)框架表示了信息及其聯(lián)系的組織方式和表達(dá)方式,同時(shí)反映了存取路徑。數(shù)據(jù)模型是數(shù)據(jù)庫管理系統(tǒng)分類的原因。一般的講,任何一種數(shù)據(jù)模型都是嚴(yán)格定義的概念的集合。這些概念必須能夠精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。1)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)用于描述

溫馨提示

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

評(píng)論

0/150

提交評(píng)論