数据库(关系模型与关系代数)

1. 关系

关系数据库是表的集合,即关系的集合。表中一行代表的是若干值之间的关联,即表的一行是由有关联的若干值构成。一个表是一个实体集,一行就是一个实体,它由共同表示一个实体的有关联的若干属性的值所构成。由于一个表是这种有关联的值的集合(即行的集合),而表这个概念和数学上的关系概念密切相关,因此称为关系模型。

空值(用null表示)是所有可能的域的一个取值,表明值未知或不存在。
是一组具有相同数据类型的值的集合。

2. 码

超码

对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码;

候选码

如果属性集A是关系r的超码,且属性集A的任意真子集都不能成为关系r的超码,则称属性集A为候选码。

主码

若一个关系有多个候选码,则可以选定其中的一个候选码作为该关系的主码。对于一个关系而言,要求必须存在候选码,即一个关系中的任意两个元组都是可区分的。

外码

设F是关系r的一个属性(或属性集),K是关系s的主码。如果F与K,相对应(即关系r中属性F的取值范围对应于关系s中主码K的取值范围的子集)则称F是关系r参照关系s的外码,简称F是关系r的外码。

对于一个关系而言,一个最基本的要求是它的每个属性的域必须是原子的。

3. 关系模式

关系的描述称为关系模式,可以形式化地表示为r(U,D,DOM,F),其中,r为关系名,U为组成该关系的属性名的集合,D为属性集U中所有属性所来自的域的集合,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。关系模式是静态的、稳定的。

关系是关系模式的一个实例,关系中的一个元组是现实世界的一个实体对应于关系模式中各属性在某一时刻的状态和内容,因此,关系的内容是动态的、随时间不断变化的。

4. 关系完整性约束

实体完整性
若属性集A是关系r的主码,则实体完整性规则是指:A不能取空值null。
参照完整性
若关系r的外码F参照关系s的主码,则参照完整性规则是指:对于关系r中的每一个元组在属性F上的取值,要么为空值null,要么等于关系s中某个元组的主码值。
用户完整性
用户自定义完整性是应用领域需要遵循的数据完整性约束,体现了具体应用领域中的数据语义约束,需要由用户根据这些数据语义约東来定义完整性约束规则。

5. 数据库模式导航图

一个含有主码和外码依赖的数据库模式可以通过模式导航图来表示。在模式导航图中,两个关系之间的多对一(或一对一)联系或一个关系内部属性之间的多对(或一对一)联系通过有向连线来表示,且连线由多的一方指向一的一方。也就是说,通过有向连线将关系之间的参照关系表示出来,箭头指向外码所参照的主码。

5. 关系代数

基本的关系代数运算有选择、投影、集合并、集合差、笛卡儿积和更名等。在这些基本运算之外,还有一些其他运算,即集合交、连接、除和赋值等。连接运算可分为连接、等值连接和自然连接,以及外连接、左外连接和右外连接。

给定一个查询需求,构造其关系代数表达式的步骤如下:
①明确该査询涉及哪些属性。
②明确该查询涉及哪些关系。

③根据数据库模式导航图,通过多对一联系(或一对多联系)把所有涉及的关系连接起来,每一个多对一联系(或一对多联系)都可以表示为外码属性的自然连接。
由于多对多联系都要借助于“联系”关系转化为多对一联系(或一对多联系),因此将所有关系连接起来的过程中可能会涉及更多的关系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,185评论 6 13
  • 我静静的想着你 如你想着我一样 你未言 我也不语 你是否记得有一年秋天我们种下的一颗种子 一颗包裹着涩绿的圆乎乎的...
    艾薇琪阅读 178评论 0 3
  • 今天高考,过来凑个热闹。原来觉得90后是最年轻的,谁知道岁月是的车轮逼着我们往前走,不知不觉高考都是8年前的事情了...
    平平和平平阅读 309评论 0 1
  • 人们经常提起自己有拖延症,偶尔思想还会冒起点惰性来。 我发现自己也是一个拖延患者,刚开始自己做事情的时候感觉到自己...
    普通女孩阅读 293评论 2 0