资源描述:
《第2章 关系数据库系统模型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三讲关系数据库系统模型教学内容关系模型关键码(主键和外键)关系的定义和性质三类完整性规则关系数据库的基本概念关系运算学习重点及目标掌握关系数据库的定义了解关系运算和演算掌握关系的概念3.1关系模型的基本概念关系模型就是用二维表格结构来表示实体及实体之间联系的模型用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(relationalModel)关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。学号姓名性别出生年月99070470JimMale1980-10-199070471MikeMale1981-1-199070468Marr
2、yFemale1979-2-1学生基本信息表(StudInfo)关系术语(1)关系模式(RelationalScheme)。它由一个关系名以及它所有的属性名构成。它对应二维表的表头,是二维表的构成框架(逻辑结构)。其格式为:关系名(属性名1,属性名2,…,属性名n)在SQLServer中对应的表结构为:表名(字段名1,字段名2,…,字段名n)(2)关系(Relation)。每一张表称为该关系模式的一个具体关系。它包括:关系名,表的结构和表的数据(元组)。(3)元组(Tuple)。二维表的一行称为关系的一个元组,对应一个实体的数据。关系术语(4)属性(Att
3、ributes)和分量。二维表中的每一列称为关系的一个属性。列中的每一个元素,该属性的值称为分量。(5)域(Domain):属性所对应的取值变化范围叫属性的域,(6)主关键字(PrimaryKey):能唯一标识关系中不同元组的属性或属性组称为该关系的候选关键字。被选用的候选关键字称为主关键字。(7)外部关键字(ForeignKey):如果关系R的某一(些)属性A不是R的候选关键字,而是另一关系S的候选关键字,则称A为R的外来关键字。关系模型术语字段称为属性字段值称为属性值记录类型称为关系模式关系中属性个数称为“元数”元组个数为“基数”。关系模型术语关系元数
4、为5,基数为43.2关系的定义在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。3.2.1域(Domain)域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1={李力,王平,刘伟}m1=3D2={男,女}m2=2D3={47,28,30}m3=3其中,D1,D2,D3为域名
5、,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2={男,女}={女,男}3.2.2笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)
6、di∈Di,i=1,2,…,n}。由定义可以看出,笛卡尔积也是一个集合。其中:1.元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)2.每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple)
7、,简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如:(1,2,3)≠(2,3,1)≠(1,3,2);而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。笛卡尔积(CartesianProduct)假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。可以扩展到多个集合的情况,类似的例子有:如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。笛卡尔积(Car
8、tesianProduct)3.若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累乘之积,即M=例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组其基数M=m1×m2=3*2=6元组的个数为63.2.3关系(Relation)笛卡尔
9、积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的