《数据库原理及应用第二章.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用第二章.ppt(67页珍藏版)》请在第壹文秘上搜索。
1、第第2章章 关系数据库关系数据库吉林大学珠海学院吉林大学珠海学院计算机科学与技术系计算机科学与技术系 数据库技术的发展在经历了层次模型、网数据库技术的发展在经历了层次模型、网状模型后,形成了今天较为成熟的关系模型。状模型后,形成了今天较为成熟的关系模型。19701970年美国年美国IBMIBM公司的研究员公司的研究员E.F.CoddE.F.Codd首首次提出了数据库系统的关系模型,开创了数据次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。技术奠定了理论基础。主要内容主要内容一一 关系数据库概述关系数据库
2、概述 l关系的定义关系的定义 l关系模式关系模式 l关系数据库关系数据库 l关系的完整性约束关系的完整性约束 二二 关系代数关系代数l传统的集合运算传统的集合运算 l专门的关系运算专门的关系运算 1关系的定义关系的定义l域(域(domaindomain)l笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)l关系(关系(relationrelation)(1)域(domain)定义定义2.1 2.1 域是一组具有相同数据类型的值的集合。域是一组具有相同数据类型的值的集合。l例如:姓名的域是指构成所有合法姓名的字符例如:姓名的域是指构成所有合法姓名的字符串集
3、合、性别的域是串集合、性别的域是男男,女女、成绩、成绩的域是介于的域是介于01000100的实数、出生年份的域是介的实数、出生年份的域是介于某个取值范围的日期等。于某个取值范围的日期等。(2)笛卡尔积()笛卡尔积(Cartesian Product)l定义定义2.2 2.2 给定一组域给定一组域D1D1,D2D2,DnDn,这些域,这些域中可以有相同的。中可以有相同的。D1D1,D2D2,DnDn的笛卡尔积的笛卡尔积为:为:D1D1D2D2DnDn(d1d1,d2d2,dndn)di di Di Di,i i1 1,2 2,n nl不能重复出现的所有域的所有取值的一个组合。不能重复出现的所有域
4、的所有取值的一个组合。l若若Di(i=1,2,n)为有限集,其基)为有限集,其基数(数(Cardinal Number,此域中所有可,此域中所有可取值的个数)为取值的个数)为mi(i=1,2,n),),则笛卡尔积的基数则笛卡尔积的基数M为:为:nii1mM例如:给出三个域:例如:给出三个域:D1=D1=性别性别=男,女男,女 (性别集合)(性别集合)D2=D2=专业专业=计算机专业,信息专业计算机专业,信息专业 (专业集合)(专业集合)D3=D3=姓名姓名=张静,刘敏,王一张静,刘敏,王一 (姓名集合)(姓名集合)基数:223=12 D1 D1D2D2D3 D3 (男,计算机专业,张静男,计算
5、机专业,张静),(男,计算机专业,刘男,计算机专业,刘敏敏),(男,计算机专业,王一男,计算机专业,王一),(男,信息专业,张静男,信息专业,张静),(男,信息专业,男,信息专业,刘敏刘敏),(男,信息专业,王一男,信息专业,王一),(女,计算机专业,张静女,计算机专业,张静),(女,计算机专业,刘敏女,计算机专业,刘敏),(女,计算机专业,王一女,计算机专业,王一),(女,信息专业,张静女,信息专业,张静),(女,信息专业,女,信息专业,刘敏刘敏),(女,信息专业,王一女,信息专业,王一)(3)关系()关系(relation)l定义定义2.3 笛卡尔积笛卡尔积D1D2Dn的任的任一子集称为在
6、域一子集称为在域D1,D2,Dn上的上的关系,表示为关系,表示为R(D1,D2,Dn)。)。其中:其中:R表示关系的名字,表示关系的名字,n表示关系表示关系的目或度(的目或度(Degree)。)。l候选码(候选码(Candidate Key):能唯一表示关系):能唯一表示关系中元组的一个属性或属性集。称为候选码,也中元组的一个属性或属性集。称为候选码,也称候选关键字。称候选关键字。如:如:“学生关系学生关系”中学号能唯一标识每个学生,中学号能唯一标识每个学生,则属性则属性“学号学号”是学生关系的候选码。是学生关系的候选码。又如:在又如:在“选课关系选课关系”中,只有属性的组合中,只有属性的组合
7、“学号学号”+“课程号课程号”才能唯一标识每一条选才能唯一标识每一条选课记录,则属性集课记录,则属性集(学号,课程号学号,课程号)是选课关系是选课关系的候选码。的候选码。l主码(主码(Primary Key):如果一个关系中有多):如果一个关系中有多个候选码,可以从中选择一个作为查询、插入个候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选中的候选码称为或删除元组的操作变量,被选中的候选码称为主关系码,或简称主码、主键、主关键字等。主关系码,或简称主码、主键、主关键字等。l每个关系必须有且仅有一个主码。每个关系必须有且仅有一个主码。l外码(外码(Foreign KeyForeig
8、n Key):设):设F F是基本关系是基本关系R R的一的一个或一组属性,但不是关系个或一组属性,但不是关系R R的主码(或候选的主码(或候选码)。如果码)。如果F F与基本关系与基本关系S S的主码的主码K K相对应,则相对应,则称称F F是基本关系是基本关系R R的外部关系码,可简称外码。的外部关系码,可简称外码。“学生数据库学生数据库”中有中有“学生学生”和和“院系院系”两个关系,其关系模式两个关系,其关系模式如下:如下:学生(学生(学号学号、姓名、性别、年龄、姓名、性别、年龄、院院系编码系编码)假设假设“学号学号”为主码为主码院系(院系(院系编码院系编码,院系名称、电话),院系名称、
9、电话)假设假设“院系编码院系编码”为主码为主码 学生关系中的学生关系中的“院系编码院系编码”为外码。为外码。2关系模式关系模式l关系模式一般可简写为关系模式一般可简写为R(U)或)或R(A1,A2,An)。其中,)。其中,R为关系名,为关系名,A1,A2,An为属性名。为属性名。我们以学生信息管理系统的模型为例,其我们以学生信息管理系统的模型为例,其对应的部分关系模式如下:对应的部分关系模式如下:l学生(学号,姓名,曾用名,性别,年龄,籍贯,民学生(学号,姓名,曾用名,性别,年龄,籍贯,民族,入学时间,系别,专业)族,入学时间,系别,专业)l教师(教师工号,姓名,曾用名,性别,年龄,籍贯,教师
10、(教师工号,姓名,曾用名,性别,年龄,籍贯,政治面貌,参加工作时间,教研室号,职称)政治面貌,参加工作时间,教研室号,职称)l系(系别代码,系名称,办公室地址,电话)系(系别代码,系名称,办公室地址,电话)l课程(课程号,课程名,教师工号,学分,学期号,课程(课程号,课程名,教师工号,学分,学期号,课程类型)课程类型)l成绩(学号,课程号,成绩)成绩(学号,课程号,成绩)l教研室(教研室号,教研室名,办公室)教研室(教研室号,教研室名,办公室)关系模式与关系的区别:关系模式与关系的区别:1 1 在关系数据库中,关系模式是在关系数据库中,关系模式是型型,关系是,关系是值值,两者是有区别的。两者是
11、有区别的。2 2 一般来说,关系模式是相对稳定的,而关系一般来说,关系模式是相对稳定的,而关系的值是相对变化的,因此在有些文献中,称关的值是相对变化的,因此在有些文献中,称关系模式为关系的内涵(系模式为关系的内涵(intensionintension),关系的),关系的值为关系的外延(值为关系的外延(extensionextension)。)。3 3 在进行关系数据库的设计时,通常使用关系在进行关系数据库的设计时,通常使用关系模式来描述关系。模式来描述关系。3关系数据库关系数据库 l通常关系数据库模式与关系数据库的值统称为关系数通常关系数据库模式与关系数据库的值统称为关系数据库据库 例如,教学
12、关系数据库包含如下五个关系模式:例如,教学关系数据库包含如下五个关系模式:l教师(职工编码,姓名,职称,年龄,学历)教师(职工编码,姓名,职称,年龄,学历)l学生(学号,姓名,性别,年龄,籍贯,专业)学生(学号,姓名,性别,年龄,籍贯,专业)l课程类型(课程编码,课程名称,学分,课时,选修课程类型(课程编码,课程名称,学分,课时,选修课)课)l已开课程(开课编码,课程编码,主讲教师)已开课程(开课编码,课程编码,主讲教师)l选课(学号,开课编码,成绩)选课(学号,开课编码,成绩)在每个关系中,又有其相应的数据库在每个关系中,又有其相应的数据库的实例。例如,与学生关系模式对应的数的实例。例如,与
13、学生关系模式对应的数据库中的实例有如下据库中的实例有如下4个元组。个元组。学号学号姓名姓名性别性别年龄年龄籍贯籍贯专业专业080301080301王建王建男男1818吉林吉林计算机计算机080302080302田江晨田江晨男男1919长春长春计算机计算机080303080303苏畅苏畅女女1818哈尔滨哈尔滨工商工商080304080304李学明李学明男男1919沈阳沈阳机电机电关系模式关系值4 4关系的完整性约关系的完整性约束束 关系模型中允许定义三类完整性:实体关系模型中允许定义三类完整性:实体完整性、参照完整性和用户定义的完整性。完整性、参照完整性和用户定义的完整性。其中实体完整性和参照
14、完整性是关系模型其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,是由关系数据库必须满足的完整性约束条件,是由关系数据库系统自动支持的。而用户定义的完整性是应用系统自动支持的。而用户定义的完整性是应用领域需要遵循的条件,体现在具体领域中的语领域需要遵循的条件,体现在具体领域中的语义约束。义约束。实体完整性:实体完整性:l规则规则2.1 实体完整性规则:实体完整性规则:若属性若属性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A不能取空值。不能取空值。l如:在学生档案表里,由于如:在学生档案表里,由于“学号学号”是基本关是基本关系的主属性,则系的主属性,则“学号学号”值不能
15、为空值,学生值不能为空值,学生的其他属性可以是空值,如的其他属性可以是空值,如“年龄年龄”值或值或“性性别别”值如果为空,则表明不清楚该学生的这些值如果为空,则表明不清楚该学生的这些特征值。特征值。参照完整性参照完整性:l规则规则2.2 参照完整性规则:参照完整性规则:若属性(属性组)若属性(属性组)F是基本关系是基本关系R的外码,它的外码,它与基本关系与基本关系S的主码的主码K相对应(基本关系相对应(基本关系R和和S不一定是不同的关系),则对于不一定是不同的关系),则对于R中每个元组中每个元组在在F上的值必须为:上的值必须为:(1)或者取空值()或者取空值(F的每个属性值均为空值);的每个属
16、性值均为空值);(2)或者等于)或者等于S中某个元组的主码值。中某个元组的主码值。例如,学生关系中的例如,学生关系中的“系院编码系院编码”为外码;那么依照参照完整性规则,为外码;那么依照参照完整性规则,在学生关系中,某一个学生在学生关系中,某一个学生“系院系院编码编码”要么取空值,表示该学生未要么取空值,表示该学生未被分配到指定系;要么等于系院关被分配到指定系;要么等于系院关系中某个元组的系中某个元组的“系院编码系院编码”,表,表示该学生隶属于指定系。示该学生隶属于指定系。用户定义的完整性用户定义的完整性l用户定义的完整性约束:用户定义的完整性约束:就是针对某一具体关系数据库的约束条件,就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足它反映某一具体应用所涉及的数据必须满足的语义要求。的语义要求。例如:在学生关系中,学生年龄分量的取值例如:在学生关系中,学生年龄分量的取值范围应该限定在范围应该限定在1830岁,学生考试的成绩岁,学生考试的成绩必须在必须在0100之间,学生的性别应该为男或之间,学生的性别应该为男或女等。女等。2.2 关系代数关系代数关系代数的运