数据库各范式的一个例子

本文最后更新于:2025年2月17日星期一晚上10点07分

1NF

s表示学生student的缩写,c表示课程course的缩写

斜体表示主属性(在某个候选键中)

s_id s_name s_dept c_id c_name c_grade c_grade_level
001 小苏 数学系 101 数学分析 100 A+
2NF

由于非主属性s_dept依赖于s_name或者s_id,属于部分依赖码,不满足2NF,故应拆分出s_dept

s_id s_name c_id c_name c_grade c_grade_level
001 小苏 101 数学分析 100 A+
3NF

由于c_grade_level依赖于c_grade,而c_grade又依赖于主键,所以存在非主属性传递依赖于码,不满足3NF,应拆分出c_grade或c_grade_level

s_id s_name c_id c_name c_grade
001 小苏 101 数学分析 100
BCNF

由于存在依赖:c_idc_names_ids_name等,而c_ids_id都无法包含某个码(因为需要student和course才能确定一行,单独学生或者单独课程都没法确定),所以不满足BCNF,需要进行拆分

s_id c_id c_grade
001 101 100

数据库各范式的一个例子
https://asyu.in/2025/02/17/database-Normal-Form/
作者
Yu
发布于
2025年2月17日
更新于
2025年2月17日 22时
许可协议