資料庫設計 Database Design.

Slides:



Advertisements
Similar presentations
作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
An Introduction to Database System
系統分析與設計 第九章 資料設計.
第8章 資料設計.
An Introduction to Database System
数据库系统概论 An Introduction to Database Systems
第3章 数据库建模实践指南 北师大珠海分校软件工程系 赵池龙.
Visual Studio .NET企业设计师版中的基于Visio的数据库建模
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
管理資訊系統 David Kroenke 資料庫處理 第4章.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
第六章 結構化分析與設計 ─資料塑模.
Principles and Applications of the Database
第3章 表的创建与管理 本章要点 表的结构及字段属性。 创建表的方法。 输入表的内容和创建表之间的关系。 表的编辑与操作。
第4章 数据控制功能和表间关系 4.1 数据控制功能 为了确保数据库中数据的正确有效以及数据库系统的有效运行,RDBMS提供了数据控制功能:
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
Google App Engine Google 應用服務引擎.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
Introduction to database
關聯式資料庫.
Lotus Domino R7 Designer
資料庫結構與組織.
資料庫系統 Database Systems
資料庫系統 Database Systems
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
Chap 10 SQL定義、操作與控制指令.
(Exec1) GIS 空间分析-使用ArcGIS (Exec1)
Microsoft SQL Server 2000 李金双.
第 2 章 規劃關聯式資料庫.
彰化縣政府補助辦理網頁設計資料庫應用班 資料庫簡介 建國技術學院資管系 饒瑞佶.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
資料庫系統專題期末報告 線上水果購買系統 ──水果天堂 指導老師:黃三益 博士 第三組 組 長:柯志銘(n )
SQL Server 2000 数据库入门.
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
表格正規化簡介 講授大綱: 第一正規化 資料表的切割 第二正規化 第三正規化 Boyce/Codd正規化 第四正規化 第五正規化
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第4章 關聯式資料庫模型 4-1 關聯式資料庫模型的基礎 4-2 關聯式資料庫模型的資料結構 4-3 關聯式資料庫模型的完整性限制條件
單元3:軟體設計 3-1實體關係圖 Ch 08 System models.
計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
AnQing Teachers College Department of Computer & Information
資料庫系統導論.
Ch4.SQL Server 2005資料庫組成員元件介紹
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
实验二讲评 … 张榆….
第二章 實體關係模式:基本概念 目的 何謂實體關係模式和實體關係圖(ERD) 實體型態 關係型態 二元關係型態 弱實體型態 遞迴關係型態
第二章 實體關係模式:基本概念 目的 何謂實體關係模式和實體關係圖(ERD) 實體型態 關係型態 二元關係型態 弱實體型態 遞迴關係型態
CH03 行銷資訊系統資料庫模組--資料庫概論
Dept. of Information Management OCIT February, 2002
第6章 資料庫設計與實體關聯模型 6-1 資料庫設計的基礎 6-2 實體關聯模型 6-3 建立實體關聯圖 6-4 實體關聯圖的常見錯誤
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
江西财经大学《数据库应用》精品课程组 2011年 Comments are welcome!
第 2 章 規劃關聯式資料庫.
在Microsoft Access 下 建立資料庫
计算机文化 第7讲:数据库技术 王哲 河南中医药大学信息技术学院.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
ER Model.
資料庫管理系統 緒 論.
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
從 ER 到 Logical Schema ──兼談Schema Integration
交際障礙分組系統 交際障礙分組系統 班級:2439 組員: 組別:A01 林子婷 資訊三丁 D
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
參考資料: 黃慕萱,Chap. 2-3 Harter, Chap. 3
第十八章 資料庫與Access 課前指引 在日常生活中,無論各位到銀行開戶、醫院掛號或是到學校註冊,一定都會填寫所謂的個人資料,裡面通常包括姓名、性別、生日、電話、住址等項目,所以人們建立了各種不同的列表來儲存及組織這些資料。 人們當初試圖建造電腦的主要原因之一就是可用來儲存及管理一些數位化資料清單與資料,這也是資料庫觀念的由來。尤其在資訊科技發達的今日,日常的生活已經和資料庫產生密切的結合。例如目前最熱門的網路拍賣,如何讓千萬筆交易順利完成,或者透過手機記錄著他人電話號碼,並能分類與查詢電話。
資料庫應用與實作 一到六章重點、習題.
Presentation transcript:

資料庫設計 Database Design

大綱 資料庫管理系統簡介 資料庫設計的方法 ERD轉關聯資料表 資料正規化 資料型態 資料庫完整性

設計資料庫

資料庫管理系統(DBMS)產品

關聯資料庫之一例

關聯資料庫之重要名詞

資料庫設計的方法 檢視概念資料模型,將ERD轉成關聯資料表 資料正規化 資料庫建置: 建立每一個實體的資料表。 針對每一屬性建立欄位。 針對每一個主鍵、次要鍵及分組條件建立索引。 為關係指定外鍵。 資料正規化 第一、二、三階及其他正規化。 資料庫建置: 對每一屬性,定義資料型態,大小,設定是否可以是空的,值域,以及預設值。 對於超/次型態結構,以結合資料表或另建立新的資料表來完成建置。 評估與定義參考完整性限制。 Teaching Notes Referential integrity is discussed on the next slide.

資料庫設計的原則 Simple簡單 Least redundant儘量減少重複 The data attributes that describe an entity should describe only that entity(RELATION)描述一實體(或關聯表)之屬性應僅有描述該實體(或關聯表) Least redundant儘量減少重複 Each data attribute exists in at most one entity (except for foreign keys)除了外鍵,每個屬性最多只能存在一實體(或關聯表) Flexible and adaptable to future needs彈性且可 調整 No additional notes

實體關係圖轉關聯表 實體關係圖(E-R模式)除了可瞭解資料庫的概念性架構外,最主要的可根據規則,轉換成關聯資料表 (Relational Data Table)。

實體關係圖轉關聯表(Rule 1.1) 對每個一般實體建立一個關聯表 其屬性是所有簡單屬性與合成屬性之集合,從準鍵中選擇一主鍵。 以EMPLOYEE 實體類型為例,可轉成一關聯表,實體之屬性為該關聯表之屬性,並選擇SSN(身分證字號)為其主鍵。如下: SSN BDATE FNAME MNAME LNAME SEX ADDRESS SALARY

實體關係圖轉關聯表(Rule 1.2) 對弱實體建立一個關聯表 其屬性集合所有的簡單屬性、合成屬性與擁有者實體之主鍵, 該關聯表之主鍵由擁有者實體之主鍵與弱實體的不完全鍵所構成。

實體關係圖轉關聯表(Rule 1.3) 對多值屬性建立關聯表 將實體關係圖上的每一個多值屬性建立一個關聯表,其屬性是該多值屬性與擁有者實體類型之主鍵的集合,且其主鍵是由該關聯表之所有屬性所構成。

實體關係圖轉關聯表(Rule 2.1) 對兩實體間之1:1關係 選擇任一實體類型,例如 S,將另一實體類型,例如 R 的主鍵包含進S中當成外鍵。 S 端最好選擇具有完全參與關係的一端。 將關係上之所有屬性包含入 S 端。

實體關係圖轉關聯表 (Rule 2.2) 對兩實體間之1:N關係 選擇N端當作S端,將R端的主鍵包含進S端中當成外鍵。

Rule 2.2 Example

實體關係圖轉關聯表(Rule 2.3) 對M:N (多對多)關係建立一個關聯表

實體關係圖轉關聯表(Rule 2.4) 對N元關係建立一個關聯表 其屬性是該關係上之所有屬性與所有參與的實體類型之主鍵的集合,且其主鍵為所有外鍵的集合。

Rule 2.4 Example

一元關係 (Rule 2.5) EMPLOYEE (Emp_ID, Name, Birthdate, Manager_ID) ITEM (Item_Number, Name, Cost) ITEM-BILL (Item_Number, component _ Number, quantity)

ER圖轉關聯資料表簡述

ER圖轉關聯資料表簡述(cont’d)

正規化(Normalization) 將資料屬性組合成為一個具有良好結構的關聯表的過程 ERD轉成關聯表的設計步驟,必須包含正規化的處理,否則關聯表中仍可能存在一些重複的資料。 雖然正規化常與ERD相結合,但它也是一種邏輯設計的技術,可以獨立於關聯式資料庫管理系統之外而獨被使用。

未正規化可能造成資料之異常 如下之課程收費表並不是一個良好結構化的關聯表,因為該表中含有重複的資料,可能會造成錯誤或不一致的情況,此現象稱「異常」 (Anomalies) 。

三種可能異常狀況(Anomalies) 新增異常:假設考慮加入一項新課程(例如MIS600),除非至少有一個學員登記了這門課程,否則這個課程將無法加入該表中,因為表中每一列至少要有一學員的學號。 刪除異常:假設學員99425不再選擇MIS400的課程,由於該課程只有該學員登記,刪除後,便失去了MIS400課程收費是6,000元的資訊。 更改異常:假設MIS200課程的學費由3,000元增加至5,000元,那麼在每一包含MIS200課程的列中都必須進行這項改變,否則資料便會不一致。

正規化 採用正規化定理將課程收費關聯表分解為學員課程與課程收費兩項關聯表,以避免上述的異常情形。

正規化原理 介紹正規化前須先瞭解 功能相依(Functional Dependency) 假設有一關聯表 R,且 A 與 B 是 R 的屬性。B 功能相依於 A,或稱 A 在功能上決定 B,寫成 R.A→R.B,若且唯若 A 屬性之值只會對應到一個 B 屬性之值。 其中,A 與 B 都可以是複合屬性。若屬性 B 功能相依於複合屬性 A,但不功能相依於 A 的部分屬性,則稱 B完全功能相依於 A。 部分功能相依 若 B 功能相依於 A 的某些部分,也就是說,若把 A 中之部分屬性刪除,而 B 仍然功能相依於 A,則R.A→R.B 是部分功能相依。 遞移相依 指關聯表中存在非鍵屬性功能相依於一個或多個非鍵屬性

那些是功能相依?部分相依?遞移相依? 功能相依 A, B->C 部分相依 B->D, E 遞移相依 D->E

正規化的步驟

未正規化的關聯表:成績單 主要除去關聯表中任何的重複群,使關聯表中任一行與任一列的交叉格上均只有一個值。

第一正規化型式: 成績單關聯表

第二正規化型式 必須分析成績關聯表之屬性之功能相依,並選出該關聯表之鍵(加底線表示)如下: 必須去除中之部分功能相依,分割成三個關聯表: 學生學號→學生姓名、通訊處、主修 課程代號→課程名稱、授課老師、老師研究室 學生學號、課程代號→成績 授課老師→老師研究室 必須去除中之部分功能相依,分割成三個關聯表: 學生:包括學生學號(鍵)、學生姓名、通訊處和主修。 課程-老師:包括課程代號(鍵)、課程名稱、授課老師和老師研究室。 選課:包括組合鍵(學生學號、課程代號)和成績。

2nd NF另一例

第三正規型式 學生和選課兩關聯表已符合第三正規化型式,但課程-老師關聯表仍為第二正規化型式,因為老師研究室(非鍵屬性)也功能相依於授課老師(非鍵屬性) 課程-老師關聯表須去除遞移相依的情形,分成課程和老師兩個關聯表才符合第三正規化型式。

老師

3rd NF另一例

資料欄位設計 欄位:系統中可辨識的已命名最小應用資料單元。 資料型態:一種由系統軟體識別,用來表示組織性資料的編碼結構。 可以將正規化關聯中的每一個屬性以一個或多個欄位來呈現。 資料型態:一種由系統軟體識別,用來表示組織性資料的編碼結構。 選擇資料型態需要在下列四個目標中取得平衡 最節省存取空間。 可呈現欄位所有可能數值。 提升欄位的資料完整性。 支援欄位所需要的資料操作。

Data Types for Different Database Technologies Logical Data Type to be stored in field) Physical Data Type MS Access Physical Data Type Microsoft SQL Server Physical Data Type Oracle Fixed length character data (use for fields with relatively fixed length character data) TEXT CHAR (size) or character (size) CHAR (size) Variable length character data (use for fields that require character data but for which size varies greatly--such as ADDRESS) VARCHAR (max size) or character varying (max size) VARCHAR (max size) Very long character data (use for long descriptions and notes--usually no more than one such field per record) MEMO LONG VARCHAR or LONG VARCHAR2 Integer number NUMBER INT (size) or integer or smallinteger or tinuinteger INTEGER (size) or NUMBER (size) Decimal number DECIMAL (size, decimal places) or NUMERIC (size, decimal places) NUMERIC (size, decimal places) or Teaching Notes Comparing the data types of different databases underscores database-specific data types vs. conceptual data types and broadens students’ understanding of databases If your school uses another database, add a fourth column

Data Types for Different Database Technologies (cont.) Logical Data Type to be stored in field) Physical Data Type MS Access Physical Data Type Microsoft SQL Server Physical Data Type Oracle Financial Number CURRENCY MONEY see decimal number Date (with time) DATE/TIME DATETIME or SMALLDATETIME Depending on precision needed DATE Current time (use to store the data and time from the computer’s system clock) not supported TIMESTAMP Yes or No; or True or False YES/NO BIT use CHAR(1) and set a yes or no domain Image OLE OBJECT IMAGE LONGRAW Hyperlink HYPERLINK VARBINARY RAW Can designer define new data types? NO YES Teaching Notes Comparing the data types of different databases underscores database-specific data types vs. conceptual data types and broadens students’ understanding of databases If your school uses another database, add a fourth column

資料庫完整性Database Integrity 主鍵完整性Key integrity                         每一資料表應該有一個主鍵。 值域完整性Domain integrity                      必須設計適當的控制來確保沒有欄位接受不正確的值。 參考完整性Referential integrity   確定一個資料表中的外鍵值在其關聯的資料表中有一個相同的主鍵 值。 沒有限制的 刪除:串連 刪除:限制 刪除:設成空白 No additional notes

資料值域完整性的控制 預設值:除非有其他數值輸入該欄位,否則欄位數值會先被預設一個數值。 範圍控制:針對數量或字母類型的資料都有可允許輸入數值的限制。 空值(null value)是一個很特別的欄位數值,可以為0、空白或是其他數值,代表欄位數值遺失或是未知。

參考完整性一例

參考完整性一例