1-1-关系数据库
关系数据库
-
关系数据库应用数学方法处理数据库中的数据。
-
关系数据库系统是支持关系模型的数据库。
-
关系数据结构以及形式化定义
-
关系:关系模型的数据结构非常的简单。关系模型中数据的逻辑结构就是一张扁平的二维表。
-
这里从集合论的角度给出关系数据结构的形式化定义。
-
域(domain):域是一组具有相同数据类型的值得集合。例如:{0,1},{男,女},大于等于0且小于等于100的正整数等等。
-
笛卡尔积:首先举个例子:给出三个域:D1=老师集合=
D2=专业集合={计算机科学与技术,电子信息工程}
D3=学生集合={A,B}
则D1,D2,D3的笛卡尔积为D1XD2XD3= {
(张三,计算机科学与技术,A),(张三,电子信息工程,A),
(张三,计算机科学与技术,B),(张三,电子信息工程,B),
(李四,计算机科学与技术,A),(李四,计算机科学与技术,B),
(李四,电子信息工程,A), (李四,电子信息工程,B)
}
其中,(张三,计算机科学与技术,A),(张三,电子信息工程,A)等每一个笛卡尔积中的元素称之为元组,每一个元组中的元素称之为分量,例如元组(张三,计算机科学与技术,A)中分量有
张三,计算机科学与技术,A。
-
笛卡尔积的基数就是集合里数目的乘积,也就是说共有多少个元组,例如上面笛卡尔积的基数就是2X2X2=8。这8个元组其实就构成了一张二维数据表。
-
-
关系:D1XD2XD3......XDn的子集叫做在域D1,D2,D3...,Dn上的关系,表示为R(D1,D2,D3...Dn)
概念很抽象,举个例子,上个表中关系就是R(老师,专业,学生),然后给R随便取个名字,叫做SAP,于是这个关系可以表示为SAP(老师,专业,学生)。总结一下就是:关系名(属性名2,属性名2,属性名3,....,属性名n)其中呢,每一个属性名都可以称之为候选码,但是,如果在这里面的所有候选码中,如果能找到一个候选码能够唯一,数据不重复,就可以当做主码。至于主码,后面详细的说.
- 基本关系的6大性质
- 每一列是同质的,也就是属性相同的。
- 不同的列可以来自于同一个域,其中的每一个列称之为属性,不同的属性列要给他们不同的属性名。
- 属性列的顺序无所谓,也就是属性列的位置可以任意交换。
- 行的顺讯无所谓。即每一行与其他行不论怎么交换都是可以的。
- 每一个分量必须取原子值,也就是每一个值必须是不可分割的数据项。
- 任意两个元组的候选码不能取相同的值。
-
-
关系模式:关系的描述称之为关系模式,它可以表示为R(U,D,DOM,F)
其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系的集合。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构