范式介紹
- 目前關(guān)系型數(shù)據(jù)庫有6種范式:第一范式(1NF)、第二范式(2NF)吮炕、第三范式(3NF)访得、巴德斯科范式(BCNF)、第四范式(4NF)悍抑、第五范式(5NF,又稱完美范式)拂盯。一般來說记靡,數(shù)據(jù)庫只需要滿足第三范式就行。
第一范式(1NF)
- 數(shù)據(jù)庫表中的字段都是單一屬性的摸吠,不可再分。只要是關(guān)系數(shù)據(jù)庫都滿足第一范式劫恒。這個(gè)單一屬性由基本類型構(gòu)成轿腺,包括整型、字符串族壳、日期型等。
- 如病人信息表贰您,有
病人編號(hào)
拢操、姓名
、性別
令境、就診記錄
、聯(lián)系方式
(住宅電話
抛蚁、手機(jī)號(hào)
),此時(shí)聯(lián)系方式不能是一個(gè)包含住宅電話和手機(jī)號(hào)的字段瞧甩,而是2種聯(lián)系方式各為一個(gè)字段。
第二范式(2NF)
- 是在1NF的基礎(chǔ)上建立起來的爷辙。第二范式要求實(shí)體的屬性完全依賴于主關(guān)鍵字朦促,即非關(guān)鍵字段都依賴于主鍵。不能有多個(gè)主關(guān)鍵字思灰。
- 在病人信息表中增加
醫(yī)生編號(hào)
洒疚,醫(yī)生姓名
,醫(yī)生性別
油湖、職稱
领跛、科室編號(hào)
、科室名稱
吠昭、負(fù)責(zé)人
、診室號(hào)
字段郑什,那么此時(shí)表中存在著2種依賴關(guān)系:
1蒲肋、{病人編號(hào)}<-{姓名,性別申窘,就診記錄孔轴,聯(lián)系方式}
2、{醫(yī)生編號(hào)}<-{醫(yī)生姓名路鹰,醫(yī)生性別牵寺,職稱恩脂,科室編號(hào),科室名稱黎休,負(fù)責(zé)人玉凯,診室號(hào)}
可見,此時(shí)出現(xiàn)了2個(gè)關(guān)鍵字漫仆,2種依賴關(guān)系,不符合第二范式署照。同時(shí)從表里的數(shù)據(jù)來看吗浩,出現(xiàn)了冗余數(shù)據(jù):3名患者找同一個(gè)醫(yī)生看病時(shí),與醫(yī)生有關(guān)的信息就重復(fù)了3次懂扼。 - 將新增的所有字段拿出來單獨(dú)構(gòu)成醫(yī)生信息表,再創(chuàng)建一張病人掛號(hào)信息表(
掛號(hào)單流水號(hào)
赶熟,病人編號(hào)
陷嘴,醫(yī)生編號(hào)
);此時(shí)共有3張表啊央,非關(guān)鍵字段都依賴于主鍵涨醋,符合第二范式,但是這樣拆分不符合第三范式浴骂。
第三范式(3NF)
- 第三范式是第二范式的一個(gè)子集,即滿足第三范式必須滿足第二范式趣苏。即不存在非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的傳遞函數(shù)依賴。
- 在以上的醫(yī)生信息表中食磕,存在著不符合第三范式的關(guān)系:
1彬伦、{醫(yī)生編號(hào)}<-{姓名,性別单绑,職稱}
2、{科室編號(hào)}<-{科室名稱歉提,負(fù)責(zé)人区转,診室號(hào)}
科室名稱依賴著科室編號(hào)、科室編號(hào)依賴著醫(yī)生編號(hào)蜗帜,存在數(shù)據(jù)冗余资厉,不符合第三范式,可將表再進(jìn)行拆分湘捎。
醫(yī)生信息表(醫(yī)生編號(hào)
窄刘,姓名
,性別
娩践,科室編號(hào)
)
科室信息表(科室編號(hào)
翻伺,科室名稱
,負(fù)責(zé)人
吨岭,診室號(hào)
)