欢迎来到天天文库
浏览记录
ID:57179453
大小:1.08 MB
页数:69页
时间:2020-08-02
《资料库系统_课程-健行科技大学课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章資料庫正規化課程名稱:資料庫系統授課老師:李春雄博士本章學習目標1.讓讀者瞭解資料庫正規化的概念及目的。2.讓讀者瞭解資料庫正規化(Normalization)程序及規則。本章內容4-1正規化的概念4-2正規化的目的4-3功能相依(FunctionalDependence;FD)4-4資料庫正規化(Normalization)4-5反正規化(De-normalization)4-6結語前言一般的初學者在進行資料庫設計時,以為用一個資料表就可以儲存全部的資料,或憑著自己的直覺而沒有經過完整的規劃,就隨意的將資料表分割成許多小的資料表,這種
2、設計方法,不但浪費儲存空間,更嚴重影響到資料庫不一致的現象,以致於DBA(資料庫管理師)維護困難。為了避免以上的問題產生,唯一的方法,就是在設計關聯式資料庫之前,一定先要完成資料的正規化(Normalization)。4-1正規化的概念資料庫是用來存放資料的地方,因此,如何妥善的規劃資料庫綱要(DatabaseSchema)是一件很重要的工作,但是,資料庫綱要的設計必須要配合實務上的需要,因此,當資料庫綱要設計完成後,如何檢視設計是否良好,就必需要使用正規化(Normalization)的方法論了。何謂正規化(Normalization)?就
3、是結構化分析與設計中,建構「資料模式」所運用的一個技術,其目的是為了降低資料的「重覆性」與避免「更新異常」的情況發生。因此,就必須將整個資料表中重複性的資料剔除,否則在關聯表中會造成新增異常、刪除異常、修改異常的狀況發生。4-2正規化的目的一般而言,正規化的精神就是讓資料庫中重複的欄位資料減到最少,並且能快速的找到資料,以提高關聯性資料庫的效能。【目的】1.降低資料重複性(DataRedundancy)。2.避免資料更新異常(Anomalies)。一、降低資料重複性(DataRedundancy)正規化的目的是什麼呢?簡單來說,就是降低資料重
4、複的狀況發生。試想,當校務系統的「學籍資料」分別存放在「教務處」與「學務處」時,不僅資料重覆儲存,浪費空間,更嚴重的是,當學生姓名變更時,就必須要同時更改「教務處」與「學務處」的「學籍資料」,否則將導致資料不一致的現象,因此,資料庫如果沒有事先進行正規化,將會增加應用系統撰寫的困難,同時也會增加資料庫的處理負擔,所以降低資料重複性是「正規化」的重要工作。【方法】將「教務處」與「學務處」中,把相同的資料項,抽出來組成一個新的資料表(學籍資料表),如下圖所示:正規化:將兩個表格切成三個資料表說明:在正規化之後,「學籍資料表」的主鍵(P.K.)分別
5、與「學務處資料表」的外鍵(F.K.)及「教務處資料表」的外鍵(F.K.)進行關聯,以產生關聯式資料庫。二、避免資料更新異常(Anomalies)(一)新增異常(InsertAnomalies)新增某些資料時必須同時新增其他的資料,否則會產生新增異常現象。亦即在另一個實體的資料尚未插入之前,無法插入目前這個實體的資料。(二)修改異常(UpdateAnomalies)修改某些資料時必須一併修改其他的資料,否則會產生修改異常現象。(三)刪除異常(DeleteAnomalies)刪除某些資料時必須同時刪除其他的資料,否則會產生刪除異常現象。亦即刪除單
6、一資料列造成多個實體的資訊遺失。【實例】假設某國立大學開設「網路碩士學分班」,其學員課程收費表如下所示。學員課程收費表【說明】在上面的學員課程收費表中雖然僅僅只有三個欄位,但是已不算是一個良好的儲存結構,因為此表格中有資料重覆現象。【例如】有些課程的費用在許多學員身上重覆出現(S0001與S0003;S0002與S0005),因此可能會造成錯誤或不一致的異常(Anomalies)現象。【分析】從下一頁開始學號課號學分費S0001C0013000S0002C0024000S0003C0013000S0004C0035000S0005C00240
7、00學員的選課需知如下:1.每一位學員只能選修一門課程。2.每一門課程均有收費標準。(C001為3000元,C002為4000元,C003為5000元)【分析】三種可能的異常(Anomalies)現象(一)新增異常假設學校又要新增C004課程,但此課程無法立即新增到資料表中,除非至少有一位學員選修了C004這門課程。(二)修改異常假如C002課程的學分費由4000元調整為4500元時,若「C002課程」有多位學員選修時,因此,修改「S0002」學員的學分費時,可能有些記錄未修改到(S0005),造成資料的不一致現象。(三)刪除異常假設學員S0
8、004退選時,同時也刪除C003這門課程,由於該課程只有S0004這位學員選修,因此若把這一筆記錄刪除,從此我們將失去C003這門課程及其學分費的資訊。【解決方法】
此文档下载收益归作者所有