数据库中的各种定义,关系、关系模式、关系模型……
原⽂指路:
数据:数据就是数据库中存储的基本数据,⽐如学⽣的学号、学⽣的班级
数据库:存放数据的仓库
数据库管理系统:数据库软件,如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,拥有属性学号,姓名,性别,学院,其数学表⽰如图。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。