【教学课件】第3章关系模型、语言及系统.ppt
第3章关系模型、语言及系统,本章内容,关系模型概念*关系约束*关系数据库模式*基本关系代数操作,男,女,10-70,TEXT(20),学号范围,域,关系,主码,属性,度,元组,基数,域、元组和关系-域,定义3.1 域(Domain):是一组具有相同数据类型的值的集合。可以为每个域指定一个数据类型(data type)或格式(format)它可以是系统定义的类型,也可以是用户自定义的数据类型,域-SQL Server的基本数据类型,整数bigint 8从-263(-9223372036854775808)到 263-1(9223372036854775807)的整型数据(所有数字)。Int 4从-231(-2,147,483,648)到 231-1(2,147,483,647)的整型数据(所有数字)。smallint 2从-215(-32,768)到 215-1(32,767)的整数数据。tinyint 1从 0 到 255 的整数数据。bit 11 或 0 的整数数据。,域-SQL Server的基本数据类型,浮点数float 8从-1.79E+308 到 1.79E+308 的浮点精度数字。real 4从-3.40E+38 到 3.40E+38 的浮点精度数字。时间日期datetime 8从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。smalldatetime 4从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。,域-SQL Server的基本数据类型,字符串char固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。varchar可变长度的非 Unicode 数据,最长为 8,000 个字符。text可变长度的非 Unicode 数据,最大长度为 231-1(2,147,483,647)个字符。Unicode 字符串nchar固定长度的 Unicode 数据,最大长度为 4,000 个字符。nvarchar可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。ntext可变长度 Unicode 数据,其最大长度为 230-1(1,073,741,823)个字符。,域-SQL Server的基本数据类型,二进制字符串 binary固定长度的二进制数据,其最大长度为 8,000 个字节。varbinary可变长度的二进制数据,其最大长度为 8,000 个字节。image可变长度的二进制数据,其最大长度为 231-1(2,147,483,647)个字节,域、元组和关系-元组,定义3.2笛卡尔积(Cartesian Product):给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1 D2 Dn=(d1,d2,dn)|di Di,i=1,2,n,其中每一个元素(d1,d2,dn)叫做一个n元组(n-tuple)或简称元组(tuple)。元素中的每一个值di叫做一个分量(Component)。,域、元组和关系-元组,若Di(i=1,2,n)为有限集,其基数(Cardinal number)为mi(i=1,2,n),则D1 D2 Dn 的基数M为:M=m1 m2 mn笛卡尔积可表示为一张二维表。表中的每一行对应一个元组,表中的每列对应一个域。例如:D1=导师集合=邬伦,李琦,方裕,陈秀万,秦其明 D2=专业集合=GIS,RS D3=研究生集合=s1,s2,s3,s4,s5,s6,s7,s8,s9,域、元组和关系-关系,定义3.3 D1 D2 Dn 的子集叫做在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn)这里R表示关系的名称,n是关系的目或度(degree)。关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。为了加以区别,必须对每列起一个名字,成为属性(attribute)。N目关系必有n个属性。,域、元组和关系-关系的类型,基本关系(基本表、基表):实际存在的表,它是实际存储数据的逻辑表示。查询表:查询结果对应的表。视图表:是由基本表或其它视图表导出的表,是虚表。,域、元组和关系-关系作为关系模型的数据结构,需要如下限制和扩充,无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。通过为关系的每一列附加一个属性名的方法取消关系元组的有序性,即(d1,d2,di,dj,dn)=(d1,d2,dj,di,dn)(i,j=1,2,n),关系模型概念-关系性质,列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。不同的列可出自一个域,称其中的每一列为属性,不同的属性要给予不同的属性名。列的顺序无所谓,即列的次序可以任意交换。任意两个元组不能完全相同。行的顺序无所谓,即行的次序可以任意交换。分量必须取原子值,即每一个分量都必须是不可分的数据项。,关系模型概念-关系模式,关系数据库中,关系模式是型,关系是值。关系是元组的集合,关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映射关系。定义3.4 关系的描述称为关系模式(Relation Schema)。它可以形式化表示为:R(U,D,dom,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组中属性所来自的域,dom为属性向域的映射集合,F为属性间数据的依赖关系集合。关系是关系模式在某一时刻的状态或内容;关系模式是静止的、稳定的,而关系是动态的、随时间不断变化的。,关系模型概念-关系的解释,关系模式可以解释成声明或者断言(assertion)例如:学生(学号,姓名,出生日期,所在学院)关系的每一个元组可以解释成断言的一个事实(fact)。例如(00412001,张三,1984-9-9,地空学院),关系约束,域约束 码约束和空值约束实体完整性 参照完整性用户定义完整性,关系约束-域约束,域约束规定每个属性A的值必须是来自域dom(A)的原子值。数据类型值范围枚举类型,关系约束-码约束和空值约束,候选码:若关系中的某一属性组的值能唯一标识一个元组,则称该属性组为候选码(Candidate key)。例如 R(书号,书名,作者)主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。主属性:主码的诸属性称为主属性(Prime attribute)。非码属性:不包含在任何候选码中的属性称为非码属性(Non-key attribute)。全码:关系模式的所有属性组是这个关系模式的候选码,成为全码(All-key)。,关系约束-码约束和空值约束,是否允许唯一值UNIQUE约束是否允许空值学生的姓名属性不能为null,则该属性就有not null的约束,关系约束-实体完整性,实体完整性规则 若属性A是基本关系R的主属性,则属性A不能取空值。完整性规则是针对基本关系而言的。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应的、关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。Primary key约束,关系约束-参照完整性、外码,定义3.5设F是基本关系R的一个或一组属性,但不是关系R的码。如果与基本关系S的主码Ks相对应,则称F是基本关系的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Target Relation)或目标关系。关系R和不一定是不同的关系。目标关系S的主码Ks和参照关系R的外码F必须定义在同一个域上。例如,关系约束-参照完整性、外码,规则3.2 参照完整性规则 若属性(或属性组)是基本关系R的外码,它与基本关系的主码相对应(基本关系和不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(的每个属性值均为空);或者等于中某个元组的主码值。,关系约束-用户定义的完整性约束,用户定义的完整性是针对某一具体数据的约束条件,由应用环境决定。它反映某一具体应用所涉及的数据必须满足的语义要求。系统应提供定义和检验这类完整性的机制,以便用统一的系统方法处理它们,不再由应用程序承担这项工作。,关系数据库模式,关系数据库模式(Relational Database Schema)S包含关系模式的集合S=R1,R2,Rm和完整性约束(Integrity Constraints)的集合IC。关系数据库实例(Relational Database Instance)DB是关系实例的集合DB=r1,r2,rm,其中每个ri是Ri的一个实例,并且关系实例ri满足IC中规定的完整性约束。,