数据库 第三章 关系数据库
规则3.1 实体完整性规则(Entity Integrity)
若属性A(可以是一个属性也可以是多个属性) 是基本关系R的主属性,则属性A不能取空值。 如: S(S# , SN , SEX , AGE , D#) S#为主码,则S# 不能为空。
空值:不知道或无意义
2.3.1 实体完整性
数据更新:插入、删除、修改 查询的表达能力是其中最主要的部分 选择、投影、并、差、笛卡尔基是5种基本操作
二、关系操作的特点
关系操作是集合操作,操作的对象及结果都是集合,是一 次一集合( Set-at-a-time)的方式,而非关系型的数据 操作方式是一次一记录(Record-at-a-time)
2.2 关系操作
2.1关系数据结构及形式化定义
( 4)任意两个元组不能完全相同(集合内不能有相同的两 个元素,一般限制为任意两个元组的候选码不能相同) ( 5)每一分量必须是不可再分的数据。满足这一条件的关 系称作满足第一范式(1NF)的。这是规范条件中最基
本的一条.
非规范化关系
职工 号
86051
姓名
陈平
职称
讲师
2.1关系数据结构及形式化定义
5. 码 候选码(Candidate Key) 关系中的一个属性组,其值能唯一标识一个元组。 若从属性组中去掉任何一个属性,它就不具有这 一性质了,这样的属性组称作候选码 如DEPT中的D#,DN都可作为候选码 任何一个候选码中的属性称作主属性 , 不包含在任 何侯选码中的属性称为非主属性,或非码属性。 如SC中的S#,C# 主码(Primary Key) 进行数据库设计时,从一个关系的多个候选码中 选定一个作为主码 如可选定D#作为DEPT的主码
关系数据库模式包括 若干域的定义 在这些域上定义的若干关系模式
2.关系数据库的值: 关系模式在某一时刻对应的关系 的集合,简称为关系数据库 其型是关系模式的集合,即数据库描述,称作 数据库的内涵(Intension) 其值是某一时刻关系的集合,称作数据库的外 延(Extension)
2.1关系数据结构及形式化定义
域(Domain) 是一组具有相同数据类型的值的集合。例:
整数 实数 介于某个取值范围的整数 长度指定长度的字符串集合 {‘男’,‘女’} ……………..
2.1关系数据结构及形式化定义
笛卡尔积(Car’tesian Product)
给定一组域D1,D2,…,Dn,这些域中可以有相同的。
2.1关系数据结构及形式化定:
s(sno,same,sex) 最极端的情况:关系模式的所有属性组是这个关系模 c(cno,cname) 式的候选码,称为全码(All-key )。 sc(sno,cno,score)
如:教师授课关系 (教师编码 ,课程编码) 外部码(Foreign Key) 关系R中的一个属性组,它不是R的码,但它与另一个 关系S的码相对应,则称这个属性组为R的外部码 如S关系中的D#属性
2.1关系数据结构及形式化定义
关系的性质:
(1)列是同质的 即每一列中的分量来自同一域,是同一类型的数据。 其 中的每一列称为一个属性,不同的属性要给予不同的属 性名。 如TEACH(T, S, C)={(t1 , s1 , c1), (t1 , t2 , c1)}是错误的 (2)不同的列可来自同一域,每列必须有不同的属性名。 如 P={t1,t2 , s1,s2 ,s3},C= {c1,c2},则 TEACH不 能写成TEACH (P, P, C),还应写成TEACH(T, S, C) (3)行列的顺序无关紧要
选修
提示: (数据结构) 单一的数据结构——关系 实体集、联系都表示成关系
实体关系,属性关系的属性 如何表达实体和 联系关系的属性或联系 关系 实体间的联系? 1:n n:n 1:1
2.1关系数据结构及形式化定义
2.2 关系操作
一、常用的关系操作
查询:选择、投影、连接、除、并、交、差
2.1关系数据结构及形式化定义
3.基数(Cardinal number)
2,…,n),则D1×D2×…×Dn的基数M为:
若 Di(i=1,2,…,n)为有限集,其基数为 mi(i=1,
M mi i 1
4.笛卡尔积的表示方法
n
笛卡尔积可表示为一个二维表 表中的每行对应一个元组,表中的每列对应一个域
关系模式可以形式化地表示为:
R(U,D,DOM,F) R 关系名 U 组成该关系的属性名集合 D 属性组U中属性所来自的域
DOM 属性向域的映象集合 F 属性间的数据依赖关系集合 关系模式通常可以简记为 R (U) 或 R (A1,A2,…,An)
R: 关系名 A1,A2,…,An : 属性名
注:域名及属性向域的映象常常直接说明为属性的类型、长度
SQL
介 于 关 系 代 数 和 关 系 演 算 之 间 , 由 IBM 公 司 在 研 制 System R时提出 基于Codd 提出的元组关系演算语言 ALPHA,在INGRES 上 实现
QUEL
QBE
基于域关系演算,由IBM公司研制
2.3 关系的完整性
关系模型的完整性 是对关系的某种约束条件。分为三类:
2.1关系数据结构及形式化定义
6. 三类关系
基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其他视图表导出的表,是虚表,不对 应实际存储的数据
2.1关系数据结构及形式化定义
7.关系的性质
笛卡儿积不满足交换律,按照数学定义 (d1,d2,…,dn)≠ (d2,d1,…,dn) 因此,当关系作为关系数据模型的数据结构时,需要做如下 的限制和扩充: (1 )无限关系在关系数据库中是无意义的。因此限定关系 数据模型中的关系必须是有限集合。 (2)通过对关系的每一列附加一个属性名的方法取消关系 元组的有序性,即: (d1,d2,…,di,dj, … dn)= d1,d2,…,dj,di, … dn)(i,j=1,2,…,n)
三、关系数据语言概述 1、关系数据语言的特点
一体化
一般关系系统的数据语言都同时具有数据定义、数据操 纵和数据控制语言,而不是分为几个语言。对象单一, 都是关系,因此操作符也单一。而非关系型系统,如 DBTG,有对记录的操作,有对系的操作
非过程化
用户只需提出“做什么”,无须说明“怎么做”,存取 路径的选择和操作过程由系统自动完成 操作对象是一个或多个关系,结果是一个新的关系(一 次一关系)。非关系系统是一次一记录的方式
2.1关系数据结构及形式化定义
例子:用关系模型表达该概念模型
系
DEPT(D# , DN , DEAN) S(S# , SN , SEX , AGE , D#)
属于
学生
工作 管理 教师 教授 课程
C(C# , CN , PC# , CREDIT) SC(S# , C# , SCORE) PROF(P# , PN, D# , SAL) TEACH(P# , C#)
面向集合的存取方式
2.2 关系操作
2、关系数据语言 抽象的查询语言
关系代数
用对关系的运算来表达查询,需要指明所用操作 用谓词来表达查询,只需描述所需信息的特性 谓词变元的基本对象是元组变量 谓词变元的基本对象是域变量
关系演算
元组关系演算
域关系演算
2.2 关系操作
具体系统中的实际语言
列?
t1
t1 t1
s1
s1 s2
c1
c2 c1
…
t2
…
s3
…
c2
2.1关系数据结构及形式化定义
1. 元组(Tuple) 笛卡尔积中每一个元素( d1,d2,…,dn)叫作一个 n 元组(n-tuple)或简称元组(Tuple) (t1,s1,c1)、(t1,s1,c2)等都是元组 2. 分量(Component) 笛卡尔积元素( d1,d2,…,dn)中的每一个值 di 叫作 一个分量. t1,s1,c1等都是分量
2.1关系数据结构及形式化定义
关系
笛 卡 尔 积 D1×D2×…×Dn 的 子 集 叫 做 在 域 D1 , D2 ,…, Dn上的关系,用R(D1 , D2 ,…, Dn )表示
含义?
R是关系的名字,n是关系的度或目( Degree ) 关系是笛卡尔积中有意义的子集 关系也可以表示为二维表 属性 关系TEACH(T, S, C) T
工资 基本
1305
扣除 职务
50
津贴
1200
房租
160
水电
112
实发
2283
2.1关系数据结构及形式化定义
关系模式
关系的描述称作关系模式,包含: (1)元组集合的结构 属性构成 属性来自的域 属性与域之间的映象关系 (2)元组语义以及完整性约束条件 (3)属性间的数据依赖关系集合
2.1关系数据结构及形式化定义
实体完整性 参照完整性 用户定义的完整性
其中: (1)实体完整性和参照完整性是关系模型必须满足的完
整性约束条件称为关系的两个不变性,应该由关系系统自动
支持; (2)用户定义的完整性是应用领域需要遵循的约束条件, 体现了具体领域中的语义约束 。
2.3.1 实体完整性
实体完整性实现实体的标识。
D1 , D2 ,…, Dn的笛卡尔积为: D1×D2×…×Dn = {(d1 , d2 , … , dn) | di∈Di , i=1,…,n} 含义: 所有域的所有取值的一个组合; 不能重复