实体 与 属性
实体:客观存在并且可以相互区分的任何事物
属性:实体所代表事物具有的某种特性
每个属性都有一定的取值范围,成为该属性的值域
实体集 与 码
实体集:具有相同属性的实体的集合
实体的值:该实体诸属性值的列表
实体集的值:该实体集中所有实体值的集合数据库的码:
- 超键(码):能唯一标识元组的属性集,其中一个属性可以为作为一个超键,多个属性组合也可以作为一个超键。
- 候选键(码):候选键有两个要求:1.始终能够确保在关系中能唯一标识元组。 2.在属性集中找不出真子集能够满足条件。
- 主键(码):在一个关系中的候选键中指定一个来表示,但是主键不能为空值,也不能重复。
- 外键(码):在一个关系A中,有一个属性b不是关系A主键或候选键,但是是另一关系B的主键,这中情况属性b则是关系A中的外键
联系 与 联系集
联系:实体之间的联系指的是不同实体集之间的联系;实体内部的联系指的是实体各属性之间的联系。
联系集:相同的类型联系的集合
实体在联系中的作用称为实体的 角色联系的类型(又称为 联系的函数性 或 映射函数):
- 一对一联系
(E2与E1中的每个实体最多与另一个实体集中的一个相互关联)
- 一对多联系
(1:n联系)
- 多对一联系
(n:1联系)
- 多对多联系
(m:n联系)
联系的属性:联系也可以包含属性,这种情况多出现在多对多联系中。
参与类型
如果实体集中的每个实体都必须参与联系R,则称实体集对联系R的参与是 强制的,或 全部参与;否则是 随意的,或 部分参与。
实体联系图(E-R图)
表示方法:
- 椭圆表示属性,属性写在框内
- 矩形表示实体集,实体集名写在框内
- 菱形框表示联系,联系名写在框内
弱实体集 与 强实体集
弱实体集:实体集的所有属性都不足以形成主码,这样的实体集称为弱实体集。
强实体集:其属性可以形成主码的实体集称为强实体集。
在现实世界中,有些实体对一另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提,前者就称为"弱实体",如在人事管理系统中,职工家属的信息就是以职工的存在为前提的,家属实体是弱实体,子女与职工的联系是一种依赖联系。
关系数据库结构
关系
关系实质上是一张二维表,当中每一行是一个元组,每一列是一个属性,每一个元组是该关系涉及到属性集合笛卡尔积的一个元素。
关系数据库是表的集合,即关系的集合。
表中一行代表的是若干值之间的关联,即表的一行是由有关联的若干值构成。
一个表是一个实体集,一行就是一个实体,它由共同表示一个实体的有关联的若干属性的值所构成。
由于一个表是这种有关联的值的集合(即行的集合),而表这个概念和数学上的关系概念密切相关,因此称为关系模型。
域:一组具有相同数据类型的值的集合。
关系模式
关系模式:对关系的描述。(有哪些属性、这些属性来自哪些域、属性和域的映射关系)
关系模式是静态的,比如我们看到的一张二维表的表头,即有哪些构成,每个列的名称,类型啊长度等等
关系是动态的,就是一张二维表的具体内容,就是除了标题以外的数据行,因为表数据经常被修改,插入,删除,所以不同时刻、关系可能不一样。关系是关系模式的一个实例,关系中的一个元组是现实世界的一个实体对应于关系模式中各属性在某一时刻的状态和内容。
关系操作
关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两部分(增删改查)
关系的查询操作中的选择、投影、并、差、笛卡尔积是5种基本操作,其他操作可以用基本操作来定义和导出。
关系操作的特点是集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式则为一次一记录的方式。
关系语言
关系代数:用对关系的运算来表达查询要求
关系演算:用谓词来表达查询要求。
SQL语言:是介于关系代数和关系演算之间。
三级模式 和 二级映像
模式(概念级):概括出一个数据库所需的所有数据,并抽像出这些数据间的逻辑结构和各个数据的特征,依此才能开始建立数据库。
外模式(用户级):用户能看到的数据库中的各个表,这些表中包含的数据以及数据之间的联系(表的逻辑结构)是跟某个应用或用户具体的需求相关的。
内模式(物理级):其实就是描述数据库中的所有数据在物理介质上的存储形式。
为了实现3种模式之间的转换,提出了二级映像。
外模式——模式 :定义了外模式和模式之间的对应关系,当模式改变,例如关系数据库系统中增加新的关系、改变关系的属性数据类型等,则只需更改外模式/模式的映射关系以保证面向用户的外模式不变,同时,应用程序是依据外模式编写的,外模式不变应用程序就不用修改,这样就保证了数据与程序的逻辑独立性。
模式——内模式:定义了数据的逻辑结构形式与物理存储结构之间的对应关系,当存储方式发生改变时,只需要修改这个模式/内模式映像就可以保持模式不变,从而使外模式无需发生改变,应用程序也无需发生改变,保证了数据与程序的物理独立性。
数据库系统的组成
- 硬件平台以及数据库:足够大的内存等。
- 软件:数据库管理系统等
- 人员:开发、管理、使用的数据库的人员。
关系代数
五个基本操作:并(∪)、差(-)、笛卡尔积(×)、投影(π)、选择(σ)
四个组合操作:交(∩)、联接(等值联接)、自然联接(RS)、除法(÷)
并相容性:参与运算的关系R与关系S的属性数目相同;对任意i,关系R的第i和属性和关系S的第i个属性的域相同。
并(或者...或者...)
R和S的并运算结果是R和S中的所有元组合并,并且那些重复的元组只出现一次,组成一个新的n元关系。对于关系数据库,记录的插入和添加可以通过并运算实现。并运算记作:
差(是...但不含...)
R和S差运算的结果是属于R而不属于S的所有元组组成的集合,即从R中删去S包含的部分,组成一个新的n元关系。对于关系数据库,记录的删除可以通过差运算实现。差运算记作:
交
R和S交运算的结果由既属于R又属于S的元组,也就是R和S中相同的元组组成一个新的n元关系。交运算记作:
广义笛卡尔积
两个分别为n元和m元的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R中有x个元组,S中有y个元组,那么R和S的广义笛卡尔积有xy个元组,可以记作:
选择
选取运算是单目运算,它根据一定的条件从关系R中选择若干个元组,组成一个新的关系。选取操作记作:
投影
投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系R在垂直方向上进行运算,从左到右按照指定的若干属性及顺序(意味着我们可以改变属性列的顺序,实际上关系中的属性列是可以交换位置的)取出相应列,并且要删除重复的元组。投影运算记作:
θ连接
θ连接运算是一个二元运算,其效果是从两个关系R和S的笛卡尔积中选取满足连接条件的元组,而后组成新的关系。设两个关系R和S,它们的属性列数分别为n和m,其中R中的属性可以进一步分解为属性集Z和X,即R=(Z,X),关系S可以进一步分解为属性集W和Y,即S=(W,Y)。如果我们认定X和Y是连接属性(需要X和Y的属性列数相等),那么关系R和S在连接属性X和Y上的θ连接,就是在R和S的笛卡尔积中选择那些X属性集上的分量与Y属性集上的分量满足θ比较条件的那些元组。新关系的列数为(n+m),即两个关系的列数和,记作:
其中θ代表的是一个算术比较运算符,称为θ连接。XθY是连接条件:
- θ为"="时,称为等值连接;
- θ为"<"时,称为小于连接;
- θ为">"时,称为大于连接
有一种常用的连接称为自然连接,它是在等值连接的情况下,当连接属性X和Y有着相同的属性列时,去掉连接结果中那些相同的属性列。总结来说,自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件的元组,再进行投影,去掉重复的同名属性,组成新的关系。
除法
除法运算是二目运算,设有关系R(X,Y)和关系S(Y,Z),其中X、Y、Z是属性集合,并且R.Y和S.Y可以有不同的属性名,但对应属性必须出自相同的域。关系R除以关系S所得的商是一个新的关系P(X),P是R中满足下列条件的元组在属性集X上的投影:元组在X上的分量值x的像集Y x _x x包含了S在Y上的投影集合。
关系演算
关系演算是以数理逻辑中的谓词演算为基础的。
关系元组演算
关系域演算