第5章 資料庫的正規化.

Slides:



Advertisements
Similar presentations
大綱 1. 三角函數的導函數. 2. 反三角函數的導函數. 3. 對數函數的導函數. 4. 指數函數的導函數.
Advertisements

正規化範例 第 1 、 2 階正規化. 正規化範例 ( 水果供應商 ) 編號姓名電話地址 郵遞區 號 品名價格 001 林國鐘 高雄市 100 頻果 100 香蕉 60 鳳梨 葉連芳 台北市 400 葡萄 60 頻果 郭明正
第九章 : 資料庫設計 資料庫之邏輯設計 : 僅考量檔案間之關連、 正規化及包含之相關屬性、主鍵、外鍵 … 資料庫之實體設計 : 考量採用何種檔案結構 、資料欄位內涵屬性、處理速度考量、何種 廠牌之資料庫系統、 …
新約研讀 彼得前書複習 讀經組
系統分析與設計 第九章 資料設計.
樞紐分析與資料庫 蕭世斌 Nov 20, 2010.
企业涉税业务基本知识宣传 郑州航空港区国家税务局机场税务分局 王 磊.
大 播 海 直.
資料表關聯與正規化.
Access資料庫管理系統 授課教師:陳恩航 老師 學歷:國立台灣科技大學資管系博士 經歷:國立台北商業技術學院資管系.
第六章 結構化分析與設計 ─資料塑模.
題庫解析:MTA資料庫檢定 授課老師:李春雄 博士
認識關聯資料庫 關聯式資料庫的意義除了在資料庫中可存放著許多資料表之外,還可以在資料表中建立資料表與資料表之間之關聯。
Views ,Stored Procedures, User-defined Function, Triggers
实践 课题 周围环境对当代大学生成长的影响 指导老师:王永章 小组成员:陈荣、刘若楠、张红艳、吕雪丹、樊金芳、李惠芬、黄婧
題目:十六對一多工器 姓名:李國豪 學號:B
資料庫概論.
Ch04 關聯式資料庫 資料庫管理.
LINQ 建國科技大學 資管系 饒瑞佶.
資料庫系統 Database Systems
資料庫管理 HOMEWORK #2 ERD練習 楊立偉教授 台灣大學工管系 2013 Fall.
9/28號專題報告 Web網頁遊戲 曾建瑋.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
Chap 7 關聯式資料庫的正規化.
第7章 關聯式資料庫的正規化 7-1 正規化的基礎 7-2 功能相依 7-3 第一階到第三階正規化型式 7-4 多重值相依與第四階正規化型式
第八章 利用SELECT查詢資料.
第五章 關聯式資料庫的理論基礎.
資料表正規化.
資料正規化.
第 2 章 規劃關聯式資料庫.
正規化 Normalization.
Chapter 3 正規化與各種合併.
資料庫簡介 郭士煒 助教.
表格正規化簡介 講授大綱: 第一正規化 資料表的切割 第二正規化 第三正規化 Boyce/Codd正規化 第四正規化 第五正規化
《第二組》 組長/謝佳馨 組員/陳大為、葉容政、張智陪
SQL語法.
資管所資料庫系統 -期末專案 立欣建材行進貨銷貨退貨系統
App Inventor2呼叫PHP存取MySQL
Database Systems Design Part III : Normalization
管理資訊系統導論 資訊系統的定義與概念.
F、結構化分析與設計: 資料塑模(下) 資料塑模工具︰實體關係圖 實體關係圖之建構 實體關係圖轉關聯表 正規化 關聯表資料字典 七個轉換規則
國立東華大學試題 系所:資訊管理學系 科目:資料庫管理 第1頁/共4頁
Topic Introduction—RMI
TB-054A  周天穎 編著 儒林圖書公司 發行.
Ch05 實體關圖與正規化分析 資料庫管理.
建国以来,大陆对台政策 金亚丽 周莎 黄运娜.
Dept. of Information Management OCIT February, 2002
授課老師:楊維邦教授 組長:劉秋良 成員:李政均、郭瀚文、鄒震耀
資料庫管理系統 緒 論.
Chapter 3 補充 合併理論.
建立關聯式資料庫.
第 11 章 建立關聯式資料庫 著作權所有 © 旗標出版股份有限公司.
藝術大師-達利.
第8章 結構化企業資料塑模個案.
資料庫管理 HOMEWORK #2 ERD練習 楊立偉教授 台灣大學工管系 2014 Fall.
GridView.
資料庫正規化與E-R Model 簡介 義守大學資管系 張心怡、陶幼慧
線上MySQL測試資料庫 db4free.net (
第二章 關聯式資料庫.
第 4 章 認識 SQL 語言與資料型別.
第九章 布林代數與邏輯設計.
商品交易資料庫 顧客上網買商品 如何紀錄客戶資料? 如何紀錄商品資料? 如何紀錄交易資料? 如何處理交易後的所有『後處理』程序?
資料表示方法 資料儲存單位.
連結資料庫 MYSQL.
第三章 系統與資料庫檔案設計.
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
Joining Multiple Tables
Presentation transcript:

第5章 資料庫的正規化

大綱 6.1 前言 6.2 資料庫正規化的型式與義涵 6.3 資料庫正規化 6.4 另一個正規化例子 6.5 一個簡易方法–類聚檢查法

6.1 前言 資料庫正規化(Normailzation)技術 邏輯資料庫架構設計 合併(Join)運算 專門用來設計邏輯資料庫架構 邏輯資料庫架構設計 將資料項(Data Item)分門別類後 將資料項分別安排在不同的資料表中 建立起彼此的關聯(Relation) 合併(Join)運算 反正規化(De-Normalization)

6.2 資料庫正規化的型式與義涵 正規化型式 第一正規化型式(First Normal Form, 簡稱1NF) 第二正規化型式(Second Normal Form, 簡稱2NF) 第三正規化型式(Third Normal Form, 簡稱3NF) Boyce/Codd正規化型式(Boyce/Codd Form, 簡稱BCNF) 第四正規化型式 第五正規化型式

6.2 資料庫正規化的型式與義涵

6.3 資料庫正規化 【定義】第一正規形式(First Normal Form, 簡稱1NF) 表格沒有重複出現的欄位,且表格中每一筆記錄的每一個欄位只能存放單一的資料值

6.3 資料庫正規化 第一正規化乃在消除資料表上的重複資料 一個表格中若有重複的欄位,應該將之分割,放置在不同的資料表中 一個欄位若有多個資料值,也應該將之分割,放置在不同的紀錄裡 除了供應商代號及供應商姓名兩個欄位外,其餘欄位均有兩個資料值,因此不符合第一正規形式,必須將之分割到不同的紀錄上

6.3 資料庫正規化 考慮供貨紀錄表(表6.2) 刪除異常 新增異常 修改異常 倘若S04結束營業,其供貨紀錄將被刪除,則連 同SM05的相關資訊也會被一併刪除,因而造成資 料的流失 新增異常 若有一家新超市開業,它尚未找到合適的供應商 ,這時若硬要將超市的資訊加入到供貨紀錄資料 表,則會因有些鍵值是空白而產生異常 修改異常 例如SM01的助理由MARY換成LINDA,若只更新 了R2而忘了更新R3及R8,也會造成資料的不一 致

6.3 資料庫正規化 功能相關(Functional Dependency),或稱「相依」 供貨紀錄表(表6.2)上十個欄位屬性間之相依關係 QTY完全功能相關(Fully Functional Dependency)於 「SNO、PNO、SMNO」

6.3 資料庫正規化

6.3 資料庫正規化

6.3 資料庫正規化

6.3 資料庫正規化 【定義】第二正規化(Second Normal Form, 簡稱2NF) 若且唯若關聯R為1NF且紀錄中的每一非鍵欄位 都完全相關於主鍵(PK) 每一個欄位只能與主鍵相依 每一個欄位只能由主鍵來唯一識別,但不可其中某些欄位可由主鍵的一部份來識別 將1NF轉化為2NF之過程即在消除非鍵欄位與主鍵間之部份功能相依。

6.3 資料庫正規化 2NF很明顯地改善了1NF的缺點 例如S04突然宣告倒閉,它的資料從「供應商資料表」剔除之後,SM05的資訊依然完整的保存在「超市經理資料表」裡 然而如果SM05關門大吉,自「超市經理資料表」將整筆記錄刪除之後,我們就無法查出北區的區長是誰了?

6.3 資料庫正規化 【定義】第三正規化(Third Normal Form, 簡稱3NF) 若且唯若關聯R為2NF且紀錄中的每一非鍵欄位之屬性 都不具有遞移相關於主鍵(PK)之特性 將2NF轉化為3NF之過程即在消除遞移相依

6.3 資料庫正規化

6.3 資料庫正規化 多重值相關Multi-Valued Dependency) 超市助理資料表 一家超市均有可能對應到多位助理以及多支電話(例如SM04超市擁有JOHN和JANE兩位超市助理,而SM01超市擁有22514172和22514173兩支電話)

6.3 資料庫正規化 多重值相關Multi-Valued Dependency) 「超市助理」多重值相關於「超市代號」 「電話」也多重值相關於「超市代號」 表示這張資料表中有太多重複資料 這對於資料的更新異動會產生許多異常現象 需將超市助理資料表分割成兩張資料表

6.3 資料庫正規化

資料庫正規化 【定義】第四正規化(Forth Normal Form, 簡稱4NF) 若且唯若關聯R為3NF且每當R中存在著一對多值相關 (Multi Valued Dependency)的屬性,如AB, 則關連R之其他屬性最多只能功能相關於A

6.3 資料庫正規化 簡易實體關係圖(Entity Relationship Diagram, 簡稱ERD) 主鍵與外來鍵之關係 資料表間是以哪些欄位做合併(Join)

6.4 另一個正規化例子 設計一個「銷售資料庫-SaleDB」 資料項 訂單序號 訂貨日期 單價 庫存量等 …

6.4 另一個正規化例子 原始資料

6.4 另一個正規化例子 正規化的過程 【步驟1】 去除重複資料,將表6.5分割成表6.6及表6.7

6.4 另一個正規化例子

6.4 另一個正規化例子 【步驟2】 先由表6.7下手 由「訂單序號」+「產品代號」可以決定出「訂購數量」 由「產品代號」可以決定出「產品名稱」、「單價」及「庫存量」 須滿足:「每一非鍵欄位都完全相關於主鍵(PK) 」 將表6.7分割成分別以「訂單序號」+「產品代號」以及「產品代號」為主鍵的兩張資料表,即表6.8及表6.9

6.4 另一個正規化例子

6.4 另一個正規化例子 【步驟3】 從表6.6得知 由「訂單序號」可以決定出「訂貨日期」、「送貨日期」及「客戶代號」 由「客戶代號」可以決定出「客戶名稱」及「客戶地址」 去除遞移相依 將表6.6分割成表成分別以「訂單序號」及「客戶代號」為主鍵的兩張資料表,即6.10及表6.11

6.4 另一個正規化例子

6.5 一個簡易方法–類聚檢查法 物以類聚 物:資料項 類:實體(Entity)、資料表 檢查是否符合第一、第二及第三正規化型式

6.5 一個簡易方法–類聚檢查法 【步驟1】 分析問題,收集所有資料項 訂單序號 訂貨日期 送貨日期 產品代號 客戶代號 訂購數量 客戶名稱 客戶地址 產品代號 訂購數量 產品名稱 單價 庫存量等

6.5 一個簡易方法–類聚檢查法 【步驟2】 分析問題,找出實體(Entity) Product(產品)實體 Customer (客戶)實體 存放所有與產品有關的資料 Customer (客戶)實體 存放所有與客戶有關的資料 Orders (訂單)實體 存放客戶的訂購資訊

6.5 一個簡易方法–類聚檢查法 【步驟3】 將資料項分類,逐一擺放到適當的實體裡,並且須滿足: 因此,我們得到以下結果: 每一個實體都有一個主鍵 實體與實體間必須至少有一關連互相聯繫,使實體不致於成為孤島 因此,我們得到以下結果:

6.5 一個簡易方法–類聚檢查法

6.5 一個簡易方法–類聚檢查法 【步驟4】 檢查每一個實體是否符合1NF、2NF、3NF 我們發現「Orders」實體中,一個訂單序號可能訂購好幾項產品,因而造成訂貨日期、送貨日期及客戶代號等資料會大量地重複 下表中陰影部分的資料皆重複了

6.5 一個簡易方法–類聚檢查法 很自然地我們將「Orders」實體分割成「Orders」實體和「Orderslist」實體,兩者以訂單序號相互聯繫,即

6.5 一個簡易方法–類聚檢查法 【步驟5】 畫出實體關係圖