数据库中的各种定义,关系、关系模式、关系模型……

原文指路:关系、关系模式、关系模型blablabla…

数据:数据就是数据库中存储的基本数据,比如学生的学号、学生的班级
数据库:存放数据的仓库
数据库管理系统:数据库软件,如MySQL、Oracle
数据库系统:数据库+数据库管理系统+应用程序+数据库管理员(大佬)

实体:客观存在的对象,比如一个学生,一位老师
属性:实体的特性,比如学生的学号、姓名、院系
:可唯一标识实体的属性集。比如学号是学生的码,一个学号唯一标识一名学生。学号和课程号是成绩的码,因为学号和课程号唯一标识一门课程的成绩
实体型:对实体的描述,比如学生(学号,姓名,院系)
实体集:实体的集合
联系:实体集之间的关系。一名学生对应一个寝室(一对一),一个院系对应多名学生(一对多),多位教师对应多名学生(多对多)

关系:若干元组的集合->数据库表
关系模式:对关系的描述称为关系模式,最后会详细描述 -> 表的标题
关系模型:若干关系的集合 -> 数据库
属性(关系):相对于前面的属性的意义,这里特指数据库表中的某列
元组:一条数据库记录
分量:元组中某一属性值
:一组具有相同数据类型的值的集合,是属性的取值范围,比如性别属性的域就是{男,女},学生学历属性的域就是{学士、硕士、博士、院士}

候选码:可唯一标识某一元组的属性组,属性组中各个属性缺一不可。【t_student】(学号,姓名,学院),姓名可能会重复,所以其中学号可以唯一标识一条记录,学号就是t_student的候选码。那么假设姓名不会重复,那么候选码就有学号和姓名两个。 又比如【t_grade】(学号,课程,成绩),其中一个学生可以有多条成绩记录,所以需要学号和课程号组合才可以唯一标识一条数据库记录,所以学号、课程号就是t_student的一个候选码。
超码:只要一个属性组可以唯一标识一个元组,那么就说这个属性组是超码 【t_student】(学号,姓名,学院),姓名可能会重复,所以(学号)是一个超码同时也是候选码,(学号,姓名)可唯一标识一个元组,所以其也是超码,但不是候选码,因为少了姓名也可以唯一标识。
主属性:候选码中的属性称为主属性。【t_student】(学号,姓名,学院),学号就是主属性
非主属性:不是主属性就是非主属性呗。【t_student】(学号,姓名,学院),姓名、学院就是非主属性
全码:极端情况下表的所有属性组成该表的候选码,则称为全码
主键/主码:primary key,一个表可能有多个候选码,往往选中一个作为主键
外键/外码:foreign key,假设表A的某个属性attr是另一表B中的主码,且A和B有某种联系,则称attr是外码
参照表:外码所在的表
被参照表:外码所引用(foreign key references)的表
数据完整性:数据完整性就是指数据的正确性和相容性(符合逻辑),又分为实体完整性、参照完整性、用户自定义完整性
实体完整性:主码唯一且不为空
参照完整性:不允许引用不存在的实体。参照表插入某条记录,这条记录的外码在被参照表中必须存在
用户自定义完整性:由用户自定义的数据约束。比如性别只能用男、女表示,人的年龄在0-120之间。常见的用户自定义完整性有NOT NULL,UNIQUE,CHECK等

内模式:对数据库的物理存储结构和存储方式的描述,是数据库在数据库内部的存储方式。拿MySQL来讲,每建一个表,都会在文件系统上生成一个或多个文件,这些文件存储了数据、表信息、索引信息,这就称为内模式
模式:对内模式的抽象,即数据库
外模式:对模式的抽象,即用户直接使用的应用程序
外模式-模式映像:保证数据的逻辑独立性。当模式改变时(增加表,增加表的结构),可以保证外模式不变
模式-内模式映像:保证数据的物理独立性。当内模式改变时(比如MySQL切换了存储引擎),可以保证模式不变,从而外模式也不会变。

关系模式
关系模式是对关系的描述(有哪些属性,各个属性之间的依赖关系如何),模式的一个具体值称为模式的一个实例。模式反应是数据的结构及其联系,是型,是相对稳定的,实例反应的是关系某一时刻的状态,是值,是相对变动的。
想要查看t_student的关系模式?DESC t_student
想要查看t_student的关系实例?SELECT * FROM student
另外,关系模式有约定的数学表示,R(U,D,DOM,F),R指关系名,U指一组属性,D指域,DOM指属性到域的映射,F就是指数据依赖。举个栗子,假设一个学生表t_student,拥有属性学号,姓名,性别,学院,其数学表示如图。
在这里插入图片描述

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值