1、结构简单
2、可以直接处理多对多的关系
3、是面向记录集合的
4、有坚实的理论基础(数学理论:集合论、关系代数)
5、具有较高的数据独立性
1、结构简单
2、可以直接处理多对多的关系
3、是面向记录集合的
4、有坚实的理论基础(数学理论:集合论、关系代数)
5、具有较高的数据独立性
转载于:https://www.cnblogs.com/tianyongze/p/3178441.html
关系模型就是用二维表描述数据本身,以及数据之间的关系。
关系模型的组成:
数据结构(表结构)+关系操作(八个操作)+完整性约束(三个完整性)
实体完整性 在关系表中,所有元组主码的值都不能为空。
参照完整性 在关系模型中,采用给关系定义外键的形式进行关系间属性的引用,从而实现参照完整性。
自定义完整性 能反映某一具体应用所涉及的数据必须满足的语义要求的约束条件,称为用户自定义的完整性
关系模型的特点
1)每一列不可再分;
2)同一关系中属性(字段)不允许重名
3)关系中不允许有完全相同的元组
4)关系中交换任意两行的位置不影响数据的实际含义;
5)关系中交换任意两列的位置不影响数据的实际含义
关系模型是用二维表描述实体以及实体之间的联系。
在关系模型中把二维表称为关系,
表中的列称为属性,列中的值取自相应的域(Domain),域是属性所有可能取值的集合。表中的一行称为一个元组(Tuple),元组用关键字(Keyword)标识。
关系模型具有坚实的理论基础。在层次、网状和关系三种常用的数据模型中,关系模型是唯一可数学化的数据模型。
二维表不仅能表示实体,而且能方便地表示实体之间的联系,所以说它有很强的表达能力,这是层次模型和网状模型所不及的。
关系模型的基本结构是二维表,数据的表示方法统一、简单,便于在计算机上实现。
数据独立性高。
关系模型是目前最常用地数据模型之一。关系型数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集,以及实体集之间的联系,其最大特点是描述的一致性。关系模型是由若干个关系模式组成的集合。关系模式可记为R(A1,A2,A3,…,An),其中,R表示关系名,A1,A2,A3,…,An表示属性名。
一个关系模式相当于一个记录型,对应与程序设计语言中类型定义的概念。关系是一个实例,也是一张表,对应于程序设计语言中变量的慨念。变量的值随程序运行可能发生变化,当关系被更新时,关系实例的内容也随时间发生了变化。
在关系模型中用主码导航数据,表格简单、直观易懂,用户只需要简单的查询语句就可以对数据库进行操作,即用户只需指出“做什么”或“找什么”,而不必详细说明“怎么做”或“怎么找”,不需要涉及到存储结构和访问技术等细节。
例:教学管理数据库4个关系模式如下:
S(Sno,Sname,SD,Sage,Sex):学生关系模式S,属性为学号、姓名、系、年龄和性别。
T(Tno,Tname,Tage,Sex):教师关系模式T,属性为教师号、姓名、年龄和性别。
C(Con,Cname,Pcno):课程关系模式C,属性为课程号、课程名、先修课程号。
SC(Sno,Cno,Grade):学生选课关系模式SC,属性为学号、课程号、成绩。
关系模式中带下划线的属性是主码属性。教学模型的一个具体实例如下图所示:
本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。
数据模型的三个方面:
常用的关系操作
👊查询:选择、投影、连接、除、并、交、差
👊数据更新:插入、删除、修改
👊查询的表达能力是其中最主要的部分
👊选择、投影、并、差、笛卡尔积是5种基本操作
关系操作的特点
集合操做方式:操作的对象和结果都是集合,一次一集合的方式
为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:
现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。
例1: 学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
例2: 学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选课(学号,课程号,成绩)
定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)
关系R和S不一定是不同的关系
参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
①或者取空值(F的每个属性值均为空值);
②或者等于S中某个元组的主码值。
如下图,学生关系中某个学生(如s1或s2)“系别”的取值,必须在参照的系别关系中主关系键“系别”的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。
如果某个学生(如s11)“系别”取空值,则表示该学生尚未分配到任何一个系。否则,它只能取专业关系中某个元组的专业号值
例如:
学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选课(学号,课程号,成绩)
如果按照参照完整性规则,选课关系中的外部关系键“学号”和“课程号”可以取空值或者取被参照关系中已经存在的值。但由于“学号”和“课程号”是选课关系中主属性,根据实体完整性规则,两个属性都不能为空。所以选课关系中的外部关系键“学号”和“课程号”中只能取被参照关系中已经存在的值
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变性。任何关系数据库系统都应该支持这两类完整性
除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,这就是用户定义完整性
E-R图向关系模型的转换要解决的问题
①如何将实体型和实体间的联系转换为关系模式
②如何确定这些关系模式的属性和码
转换内容
将E-R图转换为关系模型:将实体、实体属性和实体之间的联系转换为关系模式。
实体型间的联系有以下不同情况:
(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
(2)一个1:n联系可以转换为一个独立的关系模型,也可以与n端对应的关系模式合并
(3)一个m:n联系转换为一个关系模型。例如:“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码 👉选修(学号,课程号,成绩)
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。例如:“讲授”联系是一个三元联系,,可以将它转换为如下关系模式,其中课程号、教工号和书号为关系的组合码👉讲授(课程号,教工号,书号)
用E-R图表示某个工厂物资管理的概念模型
关系数据库——关系数据结构及形式化定义
关系数据库——关系代数