第六章关系数据理论
本章讨论关系数据理论
6.1问题的提出
前面已经介绍了关系数据库的基本概念,关系模型的三个部分以及关系数据库的标准语言SQL。但还有一个基本问题:如何构造一个适合它的数据库模式,这是数据库设计问题。
一个关系模式应当是一个五元组。
R(U,D,DOM,F)
R:关系名,表名
U:表示一组属性
D:为属性组属性中的取值范围
DOM:为属性到域的映射
F:为属性组的数据依赖
由于D,DOM与模式设计关系不大,因此在本章中把关系模式看做一个三元组: R< U,F> 当U属性组上的一个属性r满足F时,r称为关系模式R<U,F>的一个关系。
做为一个二维表,关系要符合一个最基本的条件:每一个分量必须是不可分的数据项。满足这个条件的模式就属于第一范式(1NF)。通俗的来讲1NF就是不可以有表中表(例如:总金额属性,不能再分为数量属性和单价属性),必须属性列是唯一的。
数据依赖:是一个关系内部属性与属性之间的一种约束关系。 举例: 当知道学生的Sno就可以推出来学生的姓名Sname来 Sno——>Snome
1.函数依赖(FD):比如描述一个学生的关系,可以有学号(Sno),姓名(Sname),系名(Sdept)等等属性,由于一个学号只对应一个学生,一个学生只在一个系学习。因而当学号值确定之后,学生的姓名以及所在系的值也就被唯一地确定了。属性间的这种依赖关系类似于数学中的函数y=f(x),自变量X确定之后,相应的函数值y也就唯一确定了。
例如:Sname =f(Sno) 即Sno函数决定Sname,或者说Sname函数依赖于Sno 记作: Sno——>Sname
总结:
1.R< U,F> 当U属性组上的一个属性r满足F时,r称为关系模式R<U,F>的一个关系。
2. 1NF不可以有表中表,必须属性列是唯一的。
3.数据依赖是y=f(x),已知一个属性值推出另外一个值。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· DeepSeek本地性能调优
· 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略