本专栏收录了数据库的知识点,而从本文起,将讲述有关于关系数据理论中的第一范式、第二范式、第三范式以及BC范式有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看
🎈 数据库知识点总结(持续更新中):【数据库知识点】
🔑 数据库相关练习题(持续更新中):【数据库练习题】
🔥 一个提供给Java学习者的专栏:【拼图小游戏(Java)】
在解决一个具体问题时,要构造一个属于该问题的数据模式,设计一个较好的关系模式,因而我们需要学习关系数据库
数据冗余更新异常插入异常删除异常光讲述这四个问题可能大家没有什么概念,那么通过一个例子带大家浏览一下关系模式存在的问题
U = {Sno,Sdept,Mname,Cno,Grade}
| Sno | Sdept | Mname | Cno | Grade |
|---|---|---|---|---|
| S1 | 计算机系 | 张教授 | C1 | 95 |
| S1 | 计算机系 | 张教授 | C1 | 89 |
| S2 | 计算机系 | 张教授 | C1 | 92 |
| S3 | 计算机系 | 张教授 | C1 | 78 |
| S3 | 计算机系 | 张教授 | C1 | 83 |
语义如下:
关系模式存在的问题
数据冗余:系主任的名字重复出现更新异常:由于数据冗余,所以一旦更换系主任后,就要修改与这个系有关的学生的每个元组插入异常:如果有一个刚成立的系,但是没有学生,就没办法将系相关信息存入数据库删除异常:如果某个系的学生都毕业了,那么在删除该系学生信息同时,该系及系主任发信息也就不存在了属性组U上的一组函数依赖F如下
F ={Sno→Sdept, Sdept→Mname, (Sno, Cno)→Grade}

X和Y是U的子集Y函数依赖于X,记作x➡yX称为决定因素,Y称为依赖因素语义范畴的概念根据数据的语义来确定函数依赖X→Y,Y⊈X,则称X→Y是非平凡的函数依赖X→Y,Y⊆X ,则称X→Y是平凡的函数依赖例如:
在关系SC(Sno, Cno, Grade)中
非平凡函数依赖: (Sno, Cno) → Grade
平凡函数依赖: (Sno, Cno) → Sno,(Sno, Cno) → Cno
因为Sno包含于(Sno, Cno) 中,Cno包含于(Sno, Cno) 中



