首页 > 学院 > 开发设计 > 正文

【Oracle数据库】关系型数据库的基本理论

2019-11-08 20:32:59
字体:
来源:转载
供稿:网友

关系型数据库

关系模型

在关系数据模型中,关系可以看成由行和列交叉组成的二维表格,每个表有多个字段列和记录行记录行:也称为元组,可以用来标识实体集中的一个实体表中任意两行(元组)不能相同字段列:也称为属性每一列都有一个名称即为属性名,表中的属性名不能相同列的取值范围称为域,同列具有相同的域,不同的列也可以有相同的域能唯一标识表中不同行的属性或属性组称为主键或复合主键严格地说,关系是一种规范化的二维表格属性值具有原子性,不可分解没有重复的行理论上没有行序,但是有时使用时可以有行序

关系型数据库

关键码通常是行的一个或几个列,简称为键唯一键:由一个列组成的键(注意与唯一约束的区别)复合键:由多个列组成的键键的主要类型超键:在一个关系中,能唯一标识元组的属性或属性集称为关系的超键候选键:如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键关于“多余的属性”的定义可以通过下面这道题来理解:
有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为(B)(单选)
学号姓名性别年龄系别专业
20020612李辉20计算机软件开发
20060613张明18计算机软件开发
20060614王小玉19物理力学
20060615李淑华17生物动物学
20060616赵静21化学食品化学
20060617赵静20生物植物学
A.{学号} B.{学号、姓名} C.{年龄、系别} D.{姓名、性别} E.{姓名、专业}
分析:题中六个属性只有学号的属性值不重复,即属性学号可以作为候选键,此时,B选项中,属性姓名就成为了多余的属性,所以,答案为B主键:如果一个关系中有多个候选键,则选择其中的一个键作为关系的主键外键:如果一个关系R中包含另一个关系A的主键所对应的属性组T,则称此属性组T为关系R的外键,并称关系A为参照关系,关系R为依赖关系主键与外键的列名称可以不同,但它们的值集必须相同

关系型数据库的E-R模型

关系型数据库的逻辑模型是通过实体和关系组成的E-R图来表示的E-R模型一个标准的E-R模型主要由实体、属性和联系三部分组成实体和属性:实体是一个数据对象,指客观存在并可以相互区分的事物每个实体由一组属性来表示具有相同属性的实体组合在一起构成实体集,而实体则是实体集中的某一个特例联系:一对一:若对于实体集A中的每一个实体,在实体集B中最多有一个实体与之相关,反之亦然,则称实体集A与实体集B具有一对一的联系一对多:若对于实体集A中的每一个实体,在实体集B中有多个实体与之相关;反之,对于实体集B中的每一个实体,实体集A中最多有一个实体与之相关,则称实体集A与实体集B具有一对多的联系多对多:若对于实体集A中的每一个实体,在实体集B中有多个实体与之相关;反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之相关,则称实体集A与实体集B具有多对多的联系E-R图的内容:矩形框:表示实体,在框中注明实体名菱形框:表示联系,在框中注明联系名椭圆形框:表示实体或联系的属性,在框中注明属性名连线:实体与属性之间、实体与联系之间、联系与属性之间用直线相连,并在直线上标注联系的类型对于一对一联系,要在两个实体连线方向各写1对于一对多联系,要在一的一方写1,多的一方写N对于多对多关系,则要在两个实体连线方向各写N、M

关系型数据库的设计范式

在关系型数据库中的每个关系都需要进行规范化,从而提高数据的结构化、共享化、一致性和可操作性规范化是把数据库组织成在保持存储数据完整的同时,最小化冗余数据的结构的过程规范化的数据库必须符合关系模型的范式规则,范式可以防止在使用数据库时出现不一致的数据,并防止数据丢失

第一范式(1NF)

第一范式是第二和第三范式的基础,是最基本的范式第一范式要求:数据组的每个属性只可以包含一个值关系中的每个数组必须包含相同数量的值关系中的每个数组一定不能相同
不符合第一范式的学生信息表
学号姓名性别年龄班级
20020612李辉20软件开发3班
符合第一范式的学生信息表
学号姓名性别年龄系别班级
20020612李辉20软件开发3班
在任何一个关系数据库中,第一范式是对关系模型的基本要求,不满足第一范式的数据库就不是关系型数据库

第二范式(2NF)

满足第二范式必须先满足第一范式第二范式要求:数据表中的每个实体必须可以被唯一地区分,设置主关键字(主键)作为区分列实体的属性完全依赖于主关键字
不符合第二范式的选课关系表
学号课程号成绩学分
关键字为组合关键字{学号,课程号}在应用中使用以上关系模式有以下问题:数据冗余:假设同一门课由40个学生选修,学分就要重复40次更新异常:若调整了某课程的学分,元组相应的学分值都要更新,有可能会因为疏漏出现同一门课学分不同插入异常:如计划开新课,有可能因为没人选修,没有学号关键字,使得无法录入课程和学分信息删除异常:若学生已经结业,从当前数据库删除选修记录,有可能因为某些课程无人选修而无法保存课程和学分信息造成如上问题的原因:非关键字属性学分仅函数依赖于课程号,也就是学分不是完全依赖组合关键字{学号,课程号}符合第二范式的选课关系表
学号课程号成绩
学号学分

第三范式(3NF)

满足第三范式必须先满足第二范式第三范式要求:关系表不存在非关键字列对任意候选关键字列的传递函数依赖
不符合第三范式的员工信息表
empnoenamedeptnodnameloc
其中empno→(决定){deptno}→(决定){dname,loc}不符合第三范式符合第三范式的员工信息表
empnoenamedeptno
deptnodnameloc
传递函数依赖:如果存在关键字段A决定非关键字段B,而非关键字段B决定非关键字段C,则称非关键字段C传递函数依赖于关键字段A
上一篇:centos7下安装mysql5.7

下一篇:SQL 常见问题

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表