首页 > 数据库 >数据库原理与应用(SQL Server)笔记——第三章 关系数据库规范化

数据库原理与应用(SQL Server)笔记——第三章 关系数据库规范化

时间:2024-03-30 23:59:17浏览次数:23  
标签:关系 依赖 范式 模式 Server 关系数据库 SQL 主键 属性

目录

一、关系数据库设计理论

函数依赖、范式和模式设计是关系数据库设计理论中的主要内容,其中函数依赖起到核心作用,范式用来描述数据库结构的标准化程度,不同的范式对应着不同级别的数据冗余和完整性约束。另外,关系数据库设计的关键是关系模式的设计。

二、关系模式的形式化表示

一个关系模式可以表示为一个五元组:R(U,D,DOM,F),其中R代表关系名称,即对应关系(表),U是属性的集合(列),D是属性的域(取值范围),DOM是属性向域的映射集合,即每个属性与其对应域之间的映射关系,F是属性之间的依赖关系集合(完整性约束条件)。
在这里插入图片描述
例如,下面是一个商品订单表的关系模式,对于一件商品相关信息有商品ID、商品名称、商品类别ID、订单价格、库存量和订单日期:

关系模式含义备注
R关系名称ProductOrder
U属性ProductID、ProductName、CategoryID、Price、Stocks、OrderDate
D属性域整数类型、字符串类型、日期类型
DOM属性向域的映射集合整数域、字符串域、日期域
F属性之间的依赖关系集合

ProductID、CategoryID、Price、Stocks映射到整数域,ProductName映射到字符串域,OrderDate映射到日期域,属性之间的依赖关系集合中有ProductID为主键,另外还有其他完整性约束条件,例如,可以设置Price订单价格不得低于0元、OrderDate订单日期为有效日期格式等约束条件。

一般来说,五元组也可根据需要简化为R(U),例如,课程关系模式R(CID,CNAME,TID,TG,TO),其中属性分别为课程号、课程名称、教师工号、教师年级、教师办公室。

三、函数依赖

若X和Y都是属性集,X中每个值唯一确定Y中一个值,则称Y函数依赖于X,记为X→Y。若Y不函数依赖X,记为X⇸Y。函数依赖与属性之间的联系如下:

X和Y之间联系是否存在函数依赖表示
一对一存在X↔Y
一对多存在X→Y
多对多不存在

例如,下面两个表中,CategoryID是两个关系表的主键,同时也是表之间的外键。可知,每一个CategoryID(商品类别)都对应多个ProductID(商品ID),即一对多的关系,两个表存在函数依赖。
在这里插入图片描述

四、关系模式规范化

(一)规范化目的

低一级范式的关系模式通过模式分解转换为若干个高一级范式的关系模型的集合,即为规范化。关系模式规范化的目的有:
1、优化数据结构
2、减少数据冗余
3、提高查询性能(消除插入、删除和更新异常)

插入异常是指应该插入的数据未被插入,删除异常是指不该删除的数据被删除,更新异常是指需要更新多行数据才能完成对一个实体实例的完整更新。

(二)范式

范式是符合某一种级别的关系模式,即为不同程度的规范化要求设立不同的标准。各个范式的集合关系可以表示为:5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF,其中最低的是第一范式(1NF),最高的是第五范式(5NF),依次级别增高。关系模型中的关系模式至少应该满足1NF,其是关系模式设计的基本前提。

1、第一范式和第二范式
1NF规定每个属性具有原子性,若每个属性不可再分,则该关系模型即为1NF;2NF要求每个非主属性完全依赖于主键,而不是主键的某一部分。若满足2NF,则一定满足1NF,但不一定满足3NF。

对于一个学校课程表的关系模式,有CourseID(课程ID)、CourseName(课程名称)、TeacherID(教师ID)以及TeacherName(教师姓名),设CourseID是主键,唯一地标识每门课程。首先,表中每个属性CourseID、CourseName、TeacherID以及TeacherName都是原子,无法再分,所以满足第一范式。另外,CourseName、TeacherID和TeacherName三者都是非主属性,且都完全依赖于CourseID,即每门课程都关联到唯一的课程名称、教师和教师姓名。所以,该关系模式满足第二范式,但不一定满足第三范式。若想满足第三范式,可以将关系模式进行模式分解,将教师信息(TeacherID和TeacherName)放在一个单独的关系中,然后通过外键关联到课程关系。

2、第三范式和BC范式
第三范式要求每个非主属性不依赖于其他非主属性。若满足3NF,则一定满足2NF;BCNF要求每个非主属性完全依赖于主键,而不是主键的某一部分。

对于一个员工工作信息的关系模式,有EmployeeID(员工ID)、DepartmentID(部门ID)以及Posts(职位),设EmployeeID和DepartmentID为主键,即联合主键,两者共同唯一标识每个员工的工作信息。首先,三个属性满足第一范式。非主属性Posts完全依赖于联合主键,而不是其部分,所以满足第二范式。另外,非主属性不能传递依赖于主键,其中Posts只直接依赖于联合主键,并没有传递依赖,所以满足第三范式。最后,Posts也是完全依赖于联合主键,所以满足BC范式。

(三)范式化过程

规范化备注
1NF→2NF消除非主属性对码的部分函数依赖
2NF→3NF消除非主属性对码的传递函数依赖
3NF→BCNF消除主属性对码的部分函数依赖和传递函数依赖
BCNF→4NF消除非平凡且非函数依赖的多值依赖

若只考虑函数依赖,BCNF的关系模式即可;若只考虑多值依赖,4NF的关系模式即可。

函数依赖 BCNF 多值依赖 4NF

标签:关系,依赖,范式,模式,Server,关系数据库,SQL,主键,属性
From: https://blog.csdn.net/qq_43085848/article/details/137174213

相关文章

  • “百度杯”CTF比赛 九月场-SQL
    “百度杯”CTF比赛九月场SQL:题目类型:web题目描述:出题人就告诉你这是个注入,有种别走!打开题目靶机在url栏上看到id=1,又根据提示说明这是一道SQL注入的题型:解题方法:这里我们知道是SQL注入之后,就可以开始进行注入了第一步:先判断它的注入类型我们看一下id=2是显示什么结果:我......
  • MySQL安装环境配置,工具(超详细讲解)
    一、什么是MySQLMySQL与SQLserver一样都是关系型数据库管理系统,起初它是由瑞典的MySQLAB公司开发的,该公司于2008年被Sun公司收购。之后,Sun公司在2009年被Oracle公司收购。现在MySQL是Oracle公司的重要产品之一。1、MySQL版本针对不同的用户,MySQL分为两个不同的版本。MyS......
  • Postgresql同步数据到Elasticsearch
    Postgresql同步数据到es需要借助中间工具连接器,连接器部署主要有两种方式,一种是基于Elastic云托管的连接器(Nativeconnectors),另外一种自己安装管理的连接器(self-managedconnector). 托管方式连接器的使用方法文档:https://www.elastic.co/guide/en/enterprise-search/8.13/......
  • java毕业设计企业人事管理系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着信息技术的快速发展,企业管理逐渐向数字化、智能化方向迈进。人事管理作为企业内部管理的重要组成部分,其信息化水平直接关系到企业的运行效率和管理水......
  • java毕业设计汽车零件厂绩效管理(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代企业管理中,绩效管理是连接企业战略目标与员工个人目标的桥梁,它对于提升员工工作积极性、优化团队协作效率以及推动企业持续发展具有重要作用。对于......
  • Node+Vue毕设湛江市美食推荐网站(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:湛江市作为广东省的一个沿海城市,以其独特的地理位置和丰富的海洋资源而闻名。这样的条件孕育了湛江独有的美食文化,吸引了无数食客前来探寻。然而,目前市场上......
  • Node+Vue毕设在线云笔记平台(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在知识经济和信息时代,个人知识的管理和积累变得日益重要。云笔记平台作为一种新型的信息记录和整理工具,以其便捷性、实时性和跨平台性,受到了广大用户的青睐......
  • Node+Vue毕设在线问诊系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网医疗的兴起,在线问诊系统作为一种新型的医疗服务模式,受到了广泛关注。它通过提供远程医疗咨询、病情评估和健康指导等服务,极大地方便了患者就医,缓......
  • Node+Vue毕设在线图书销售系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在数字化阅读和电子商务的双重浪潮推动下,传统的图书销售模式正在向在线图书销售转变。在线图书销售系统以其能够突破时间和空间限制、提供丰富图书资源等优......
  • 毕业设计:基于深度学习的SQL注入检测系统 信息安全 python
    目录前言课题背景和意义实现技术思路一、算法理论基础1.1 TextCNN模型1.2无监督数据增强二、 数据集2.1数据集2.2数据扩充三、实验及结果分析3.1 实验环境搭建3.2 模型训练最后前言  ......