- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
资料库正规化分析
資料庫正規化分析
資管科 涂保民
一、好的資料庫結構,必須有以下三種特性:
簡單:資料是反應出實體或事件之屬性,一群高度相關且必要的資料被組合在一起,使用者可輕易地了解資料所代表的涵義,資料項目也必須適中而不可分項太細。另外一個原則是一對一的關係,每一個均有其代表性,如同名同姓的人很多,因此必須加上其他資料(如出生年月日)才能有效區分。
不重複:重複的紀錄不但浪費空間(硬碟),也浪費時間與人力資源成本,更有可能造成資料錯誤。如學校之教務處有學生檔案,而學務處也有自已的學生檔案,若兩者相同,就造成檔案重複。
擴張性:由於經營的不確定性,資料項目、紀錄、檔案都有變動的可能,為使系統能被更新,資料庫要有足夠的彈性。
二、關連式資料庫的設計步驟
第一正規化(1NF):除去關連表中任何的重複群。
第二正規化(2NF):滿足1NF的條件,且所有非鍵值的資料項目均相依於主鍵值。
第三正規化(3NF):滿足2NF的條件,且所有非鍵值的資料項目,均不互相相依。
【範例】
說明:以下表格為學生之成績記錄表,表上若一位同學修習五種科目,則學年、學期、姓名、學號、系級、院、住址等將會重複五次,修習之科目若有五十人修,則將會出現五十次相同科目代碼、科目名稱與學分,資料重複浪費的情形將相當嚴重。
學年 學期 姓名 學號 科系 班級 住址 科目代碼 科目名稱 學分 成績 90 1 王二 8901003 資管 資二忠 台北市… 38142 系統分析 3 85 38145 資訊管理 2 93 李四 8901005 台北縣… 38142 系統分析 3 74 38145 資訊管理 2 78 :
:
實體關係圖ERD
【正規化作業】
第一正規化(First Normal Form, 1NF):刪除所有重複項,因此表格中任一行與任一列的交叉點均只有一個值
( 學生成績檔 (1NF)
學年 學期 姓名 學號 科系 班級 住址 科目代碼 科目名稱 學分 成績 90 1 王二 8901003 資管 資二忠 台北市… 38142 系統分析 3 85 90 1 王二 8901003 資管 資二忠 台北市… 38145 資訊管理 2 93 90 1 李四 8901005 資管 資二忠 台北縣… 38142 系統分析 3 74 90 1 李四 8901005 資管 資二忠 台北縣… 38145 資訊管理 2 78 :
:
第二正規化(Second Normal Form, 2NF):符合第一正規化的條件,且記錄中的每一個非鍵值都完全相關於主鍵
檢視每一個檔案中之非鍵值項目是否均相依於主鍵,若不相依者可獨立出來。
就學生檔而言,學號為主鍵,姓名、住址、系級均相依於學號上。所謂相依即是若知道學號為8901003,就能查出其他資料項目。
就成績檔而言,科目代碼為主鍵,科目名稱與學分均相依於科目代碼上;至於透過外來鍵學號,以及學年及學分可得知成績。
( 學生檔 (2NF)
姓名 學號(PK) 科系 班級 住址 王二 8901003 資管 資二忠 台北市… 李四 8901005 資管 資二忠 台北縣… :
:
( 成績檔 (2NF)
學號(FK) 科目代碼(PK) 科目名稱 學年 學期 學分 成績 8901003 38142 系統分析 90 1 3 85 8901003 38145 資訊管理 90 1 2 93 8901005 38142 系統分析 90 1 3 74 8901005 38145 資訊管理 90 1 2 78 :
:
第三正規化(First Normal Form, 3NF):符合第二正規化的條件,且記錄中的每一個非鍵值欄位之屬性都不具有遞移相關於主鍵之特性,亦即刪除所有的遞移依賴性。
學生檔則有二項相依(科目名稱與學分)於科目代碼上,將相依者獨立後可得到成績檔與科目檔。
成績檔則有二項相依(科目名稱與學分)於科目代碼上,將相依者獨立後可得到成績檔與科目檔。
( 學生檔分為「學生檔」及「科系檔」
學生檔 (3NF) 科系檔 (3NF)
學號(PK) 姓名 班級(FK) 住址 班級(PK) 科系 8901003 王二 資二忠 台北市… 資二忠 資管 8901005 李四 資二忠 台北縣… 資一忠 資管 :
: :
:
( 成績檔分為「成績檔」及「科目檔」
成績檔 (3NF) 科目檔 (3NF)
學號(FK) 科目代碼(FK) 學年 學期 成績 科目代碼(PK) 科目名稱 學分 89010
文档评论(0)