关联式资料库基本观念RelationalDatabaseEssential.ppt_第1页
关联式资料库基本观念RelationalDatabaseEssential.ppt_第2页
关联式资料库基本观念RelationalDatabaseEssential.ppt_第3页
关联式资料库基本观念RelationalDatabaseEssential.ppt_第4页
关联式资料库基本观念RelationalDatabaseEssential.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

關聯式資料庫基本觀念RelationalDatabaseEssentials,陳彥錚(Yen-ChengChen).tw.tw/ycchen/,內容大綱,1.認識關聯式資料表2.資料表設計3.有效率的關聯4.關聯式資料表設計四大原則5.設計資料庫的基本步驟,1.認識關聯式資料表,關聯式資料表(Table)關聯式資料庫以表格(稱資料表)方式儲存資料。,關聯式資料表特性,外觀:m列n欄橫稱列(Row),每一列為一筆獨立的資料記錄(Record)。縱稱欄(Field),存放相同性質(資料類型、格式、範圍.)的資料,每一欄位有一欄位名稱。一個Record由一些資料欄位(Field)所組成。,關聯式資料表與集合論,關聯式資料庫之理論基礎與集合論有關。A=1,2,3,5,6B=6,5,3,1,2C=1,1,2,3,3,5,6,6,6A=B資料表中之記錄之順序沒有意義。A=C資料表中沒有任何兩筆記錄是完全相同的。,PrimaryKey的觀念,資料表中沒有任何兩筆記錄是完全相同的。任何兩筆記錄至少有一欄位之值不同。觀察:在意義上最能代表一記錄之欄位,往往是任選兩筆記錄比較時,最有可能值不同的欄位。資料表中由一欄位或多個欄位組合而成,用來唯一辨別每一筆記錄,稱PrimaryKey。PrimaryKey:中文譯名主索引或主鍵。,2.資料表設計,常見的錯誤設計,假設以7-Eleven為例:產品資料表,觀察:供應商名稱、電話、地址於此資料表中重覆出現多次。如果7-Eleven販售200種桶一的產品,桶一的名稱、電話、地址將出現200次。產品資料表不只儲存產品資料,也儲存了廠商資料。,缺點:浪費儲存空間輸入資料時,易造成錯誤且費時。當資料需變更修改時不方便,也易造成錯誤,資料維護工作困難。,改善之道,迷思:一個資料庫只有一個資料表嗎?資料表設計之原則:一個資料表只存放一個主題(Subject)的資料。將上述7-Eleven例子,改以兩個資料表存放:產品資料表、廠商資料表,疑問:哪個供應商提供哪些產品?,再改善,外部索引(ReferentialKey),3.有效率的關聯(Relationship),外部索引(ForeignKey)觀念關聯式資料庫中只有一對一(One-to-One)關聯一對多(One-to-Many)關聯多對多(Many-to-Many)關聯之設計建立資料表間之連結,外部索引(ForeignKey),由一個欄位或多個欄位組成,為另一資料表之主索引。用來代連結資料表,代表資料表間之關係。需注意維持資料表間參考的完整性(ReferentialIntegrity)。,StoreID,Stores,Customers,CustomerName,CustomerCountry,CustomerPhone,CustomerAddress,CustomerCity,CustomerState/Province,CustomerPostalCode,CustomerID,OrderDate,StoreID,OrderID,CustomerID,ShiptoName,ShiptoCountry,ShiptoAddress,ShiptoCity,ShiptoStateorProvince,ShiptoPostalCode,Orders,ReferentialIntegrity(參考完整性),-外部索引值不可以參考至一不存在的值,Books,AuthorFirstName,AuthorMiddleName,AuthorLastName,AuthorBio,AuthorE-mail,Authors,BookTitle,Sugg.Price,CopyrightYear,LinerNotes,Edition,Pages,Disk,ISBN,AuthorID,Many-to-ManyRelationship,AuthorFirstName,AuthorMiddleName,AuthorLastName,AuthorBio,AuthorE-mail,Authors,AuthorID,Books,BookTitle,Sugg.Price,CopyrightYear,LinerNotes,Edition,Pages,Disk,ISBN,AuthorID,AuthorFirstName,AuthorMiddleName,AuthorLastName,AuthorBio,AuthorE-mail,Authors,AuthorID,Books,BookTitle,Sugg.Price,CopyrightYear,LinerNotes,Edition,Pages,Disk,ISBN,AuthorID,1122Access$3919972nd98412,1122Access$3919972nd98415,12JohnLayVies.Jlv15MaryKingLucas.Mkl.,Books,BookTitle,Sugg.Price,CopyrightYear,LinerNotes,Edition,Pages,Disk,ISBN,AuthorFirstName,AuthorMiddleName,AuthorLastName,AuthorBio,AuthorE-mail,Authors,AuthorID,AuthorID,ISBN,Book-Authors,IntersectionTable(中介資料表),Rule1:欄位單一化(FieldUniqueness)資料表中之每一欄位應只單純代表一個唯一型態之資訊Rule2:主索引(PrimaryKey)每一資料表應有主索引,以便用來辨別每一記錄及與其他資料表建立關聯Rule3:功能相依(FunctionDependence)對於每一主索引值,其他欄位值必須與之相關並能完整描述此資料表之主題。Rule4:欄位獨立(FieldIndependence)當改變某一欄位值時,其他欄位值不會受影響(即無需跟著改變),4.關聯式資料表設計四大原則,Rule1:欄位單一化,Rule1:欄位單一化(FieldUniqueness)資料表中之每一欄位應只單純代表一個唯一型態之資訊將合併的欄位拆開來消除重覆群的資訊,消除重覆群的資訊,將合併的欄位拆開來,CustomerAddress,CityState,Postal,Rule2:主索引(PrimaryKey),每一資料表應有主索引,以便用來辨別每一記錄及與其他資料表建立關聯注意事項:主索引可以一個或多個欄位所組成。作為主索引之欄位不可以有空值情形。作法:找出可做為主索引之欄位倘若無適當欄位或必須多個欄位才能形成主索引,可以另建立人為的欄位(需保證唯一值)來作為主索引,OrderDetails,Books,AuthorFirstName,AuthorMiddleName,AuthorLastName,AuthorBio,AuthorE-mail,Book-Authors,BookTitle,Sugg.Price,CopyrightYear,LinerNotes,Edition,Pages,Disk,ISBN,ExtendedPrice,OrderID,ISBN,Quantity,Price,Discount,ISBN,資料表中不該有與資料表主題無關之資料(欄位)資料表中之資料(欄位)應完整描述主題,Rule3:功能相依(FunctionDependence),對於每一主索引值,其他欄位值必須與之相關並能完整描述此資料表之主題。,檢查是否在資料表變更資料時,可能發生的問題某一欄位變更時,是否有其他欄位也必須變動?記錄中是否有相同資料重覆?,Rule4:欄位獨立(FieldIndependence),當改變某一欄位值時,其他欄位值不會受影響(即無需跟著改變),某一欄位變更時,是否有其他欄位也必須變動?,OrderDetail,記錄中是否有相同資料重覆?,5.設計資料庫的基本步驟:,1決定資料庫的目的。2決定資料庫中所需要的資料表。3決定資料表中所需要的欄位。4使用唯一值來定義欄位。5決定資料表之間的關聯。6改善您的設計。7新增資料和建立其它的資料庫物件。,1決定資料庫的目的,決定資料庫的目的和如何使用。您要從資料庫得到什麼資訊。決定您需要什麼主題來儲存有關資料表的事實您需要什麼事實來儲存每一個資料表中欄位的主題。與將會使用資料庫的使用者對談。腦力激盪您想要資料庫回答的問題。描寫您想要資料庫產生的報表。收集您目前使用來記錄資料的表單。參考一個已設計完成且相似於您正在設計的資料庫。,2決定您需要的資料表,資料表不應該包含重覆的資訊,且在資料表之間不應有重覆的資訊。當一份資訊只有儲存在一個資料表之中時,您只須在一個地方更新它。這是比較有效率的,並且也消除了包含不同資訊的重覆項目的可能性。每一個資料表應該只包含一個主題的資訊。當每一個資料表只包含一個主題的相關事實,您可以從其它主題,獨立地維護每一主題的相關資訊。,3決定您需要的欄位,每一個資料表包含相同主題的資訊,並且在資料表中的每一個欄位包含了個別的資料表主題事實。將每一個欄位直接地關聯至資料表的主題。不要包含推演或計算的資料(為運算式結果的資料)。包含您需要的所有資訊。以資訊的最小的邏輯部份來儲存它(例如,名和姓,而不是姓名)。,4使用唯一值來定義欄位,為了要讓資料庫能連接儲存於不同資料表中的資訊,每一個資料表,必須包含一個欄位或欄位集,可以唯一地辨識資料表中的每一個別記錄。這樣的欄位或欄位集稱為主索引(PrimaryKey)。,5決定資料表之間的關聯,設計資料庫過程,我們會先將所欲儲存於資料庫之資料依據其代表的主題(Subject),每一主題之資料使用一個獨立的資料表來儲存,並為每一資料表定義主索引欄位,然而此時我們尚未將各主題間之關係,於資料庫中明白標示。定義資料表之間的關聯判斷資料表間之關係:一對一、一對多、多對多一對一、一對多:建立供作外部索引(ReferentialKey)之欄位建立資料表之間的關聯多對多:先建立中介資料表(Intersection

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论