第2章 关系数据库_第1页
第2章 关系数据库_第2页
第2章 关系数据库_第3页
第2章 关系数据库_第4页
第2章 关系数据库_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

cocktail74@1第2章关系数据库江西先锋软件职业技术学院主讲:王浩本章主要内容

1、关系模型的主要术语

2、关系的运算

3、模型转换

4、关系的完整性

5、关系数据库设计实例

关系数据结构二维表选择、投影、连接等关系运算关系操作集合关系模型插入、删除、修改等数据操作

实体完整性关系的完整性域完整性参照完整性2.1关系模型的主要术语

2.1关系模型的主要术语

关系模型采用相互关联而又相互独立的多个二维表格来反映数据库的关系。其数据的逻辑结构就是相互关联又相互独立的多个二维表。表行列码项关系Table记录Record字段Field关键字Key数据Data

2.1关系模型的主要术语

表(关系Table):一个关系对应于平常讲的一张二维表,是具有相同性质的记录的集合。行(记录Record):表中的一行称为一条记录。列(字段Field):表中的一列称为字段,给每一列起一个名称即字段名。码(关键字Key):唯一地标识一条记录的一个或若干个字段集合。

主码(PrimaryKey):被挑选出来作为表中记录的唯一标识的码,一个表中只有一个主码。

外码(ForeignKey):如果两个关联关系中具有相容或相同的码,当这个码在一个关系中是主码,则被称为另一个关系的外码。外码表示两个关系之间的联系。项Data(数据):行中的列值。2.1关系模型的主要术语字段记录例:学生表数据主码2.1关系模型的基本概念

例:学生选课系统中,其概念模型中有学生实体、课程实体以及选课联系。学号(studentID)姓(studentName)性别(Sex)20100101张小丽女20100102王刚男20100103李平女20100104郭鹏男20100105刘翔男20100106吴飞男20100107张国强男20100108李国庆男2.1.2关系基本概念课程号(courseID)课程名(coursename)课程类别(typename)342101计算机基础专业课342102数据库应用专业课342103C语言程序设计专业课342104大学英语基础课342105高等数学基础课学号(studentID)课程号(courseID)成绩(Grade)20100102342103862010010134210179201001053421028120100107342104902010010834210192201001023421047520100107342105802010010634210170关系选课

外码是指一个表中的某个列(非主码)是另一个表的主码,那么该列被称为外码。

关系学生

2.1关系模型的主要术语

需要关注的几点:1)关系中每一数据项不可再分,是最基本的数据单位。

2)每一列的数据项是同属性的,列数根据需要而设,且各列的顺序是任意的。

3)每一行由一个个体事物的诸多属性构成,且各行的顺序可以是任意的。

4)一个关系是一张二维表,不允许有相同的列名,也不允许有相同的行。

5)支持数据独立性,因而可维护性、可扩展性、可重用性都比较好。

2.1关系模型的主要术语

对某个班级的学生、任课教师、课程和成绩的管理,就需要用到以下3张表格:学生表、课程表、成绩表。这些表虽然各自是独立的,但又相互关联。例:查询孙雯同学的影视文学成绩,并找出其任课老师。

1)到《学生表》姓名字段找到“孙雯”,记下她的学号[2007230317];

2)到《课程表》课程名字段找到“影视文学”,记下它的课程号[B0100260];

3)到《成绩表》,在学号列找到[2007230317]集合,然后在该集合的课程列找到[B0100260],成绩列就是李华伟同学的英语成绩(72分)。

4)到《课程表》在课程编号字段找到[B0100260],对应任课教师列就是大学英语的任课教师(刘建臣)。2.2关系的运算

关系的运算包括选择、投影、差、并、交、乘、除、连接等。在关系运算中,变量是关系,运算结果仍然是关系。常用的关系运算有:

1、选择(select):由满足条件的记录组成。

2、投影(project):由某些字段的所有值组成。

3、连接(join):由多个关系通过连接条件组成。

学号姓名性别班级家庭住址联系电话99010301刘中雨女注会北京东城6395665599020201闻书敏女金融北京怀柔8935632199020202于小丽女金融北京宣武623678352.2关系的运算1、选择运算

选择是在关系R中选择满足给定条件的诸记录;选择运算是从行的角度进行的运算。

仅选出【性别】为【女】的同学信息班级姓名性别注会刘中雨女注会林天力男注会王平男注会章闻天男金融闻书敏女金融于小丽女2.2关系的运算2、投影运算

投影是从关系R中选择出若干字段组成新的关系。投影运算是从列的角度进行的运算。

仅选出学生的【班级】【姓名】【性别】信息(3)连接连接运算是二元关系运算,是从两个关系元组的所有组合中选取满足一定条件的元组,由这些元组形成连接运算的结果关系。其中条件表达式涉及到两个关系中属性的比较,该表达式的取值为逻辑的真或假。连接运算中最为常用的是等值连接和自然连接。等值连接是指对关系R和S中按相同属性的等值进行的连接运算,而自然连接是在等值连接中去掉重复列的连接运算。2.1关系模型的概述学号数学语文990103038072990202018860990103029188990103047265990202026870990103017580学号姓名数学语文99010301刘中雨758099010302林天力916899010303王平807299010304章闻天726599020201闻书敏886099020202于小丽6870学号姓名性别班级家庭住址联系电话99010301刘中雨女注会北京东城6395665599010302林天力男注会北京崇文6711737899010303王

平男注会北京丰台6372891299010304章闻天男注会北京朝阳6739135699020201闻书敏女金融北京怀柔8935632199020202于小丽女金融北京宣武623678352.2关系的运算3、连接运算连接运算是二元关系运算,是从两个关系记录的所有组合中选取满足一定条件的记录,由这些记录形成连接运算的结果关系。

连接【学生表】和【成绩表】,从中选出学生的【数学】【语文】成绩信息2.3模型转换1、模型转换的方法

概念模型向关系模型转换实际就是将E-R图转换为关系模型,要将实体、实体的属性和实体之间的联系转化为关系模式。2.3模型转换1)模型转换遵循的原则

(1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。(2)一个m::n联系转换为一个关系模式。各实体的码及联系本身的属性均转为关系的属性,关系的码为各实体码的组合。(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。各实体的码及联系本身的属性均转为关系的属性,关系的码为n端实体的码。(4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。(5)具有相同吗的关系模式可合并。

【例】实体部门(编号,名称)与实体经理(工号,姓名)之间的任职联系是1:1联系。E-R模型如图所示。将其转换为关系模型。11部门经理任职名称工号编号任职日期姓名11部门(编号,名称)经理(工号,姓名,编号,任职日期)2.3模型转换【例】将图书借阅系统的E-R模型转换为关系模型。

读者编号姓名读者类型已借数量图书出版日期出版社编号书名定价借期还期借阅mn读者(编号,姓名,读者类型,已借数量)借阅(读者编号,图书编号,借期,还期)图书(编号,书名,出版社,出版日期,定价)2.3模型转换2.3模型转换2、关系模型的优化(3NF标准)(1)表内的每一个值都只能被表达一次。

例:R1(职工,姓名,电话号码)问题:一人可能有1个办公室电话号码和1个家庭电话号码。解决办法:将电话号码分为办公室电话号码和家庭电话号码2个属性。改为:R1(职工,姓名,办公室电话号码,家庭电话号码)2.3模型转换2、关系模型的优化(3NF标准)(2)表内的每一行都应该被唯一标识。

例:R2(学号,课程号,成绩)问题:若将学号定位关键字,一个学生选修多门课程,没有被唯一标识。解决办法:将学号、课程号组合为关键字。改为R2(学号,课程号,成绩)2.3模型转换2、关系模型的优化(3NF标准)(3)表内不应该存储依赖于其他键的非键信息。例:R3(学号,姓名,系编号,系名称,系地址)问题:系编号,系名称,系地址等字段将重复存储。解决办法:分为2个关系。改为:R31(学号,姓名,系编号)

R32(系编号,系名称,系地址)2.3模型转换3、模型转换示例课本第19页,例2.1思考:该模型有几个实体,分析出各实体的主码?哪些实体间有联系,分析该联系是哪种类型的联系?并指出主码和外码。课本第20页,例2.2思考:该模型有几个实体,分析出各实体的主码?哪些实体间有联系,分析该联系是哪种类型的联系?并指出主码和外码。课堂练习:E-R图转换成关系模式,并指出主码和外码。仓库号面积电话号码仓库职称职工号姓名年龄职工开工日期项目号预算项目课堂练习:将某工厂的仓库管理E-R模型转换为关系模型供应商号姓名地址电话号帐号供应商(a)某工厂物资管理实体-联系图(E-R图)零件号名称规格单价供应商号零件仓库号供应商项目零件仓库职工mnnmn1n入库存储保管出库m课堂练习:将某工厂的仓库管理E-R模型转换为关系模型转换出来的关系模型仓库(仓库号、面积、电话号码)零件(零件号、名称、规格、单价、供应商号、仓库号)供应商(供应商号、姓名、地址、电话号码、账号)职工(职工号、姓名、年龄、职称)项目(项目号、预算、开工日期)入库(供应商号、零件号)存储(仓库号、零件号)出库(项目号、零件号)保管(仓库号、职工号)课堂练习:将某工厂的仓库管理E-R模型转换为关系模型2.3关系的完整性

数据的完整性有完整性规则来定义,关系模型的完整性规则是对关系的某种约束条件。1、实体完整性

实体完整性实施在行上。

规则:若属性A是关系R的主属性,则A不能取空值。解释:在任何关系的任何一条记录中,主属性值的任一数据项都不允许为空值,而不仅是主码不能取空。例如,在《学生表》中,因学号字段被设为主码,不允许为空值,即每一个学生必须有一个对应的学号。例如,在《成绩表》中,学号和课程号组合成主码,这两个字段都不能取空值。2、域完整性(也称用户自定义完整性)

域完整性实施在列上。规则:由用户针对某一具体数据库的约束条件,把属性限制在一个有限的集合中。解释:它由应用环境决定,反映了某一具体应用所涉及的数据必须满足的语义要求。如数据类型、格式、值域范围、是否允许空值等。例如,学生的性别只能是“男”或“女”两种可能,不能是其它值。例如,成绩的取值只能限制在数字0~100之间才合乎情理。例如,年龄只能是大于“0”的正整数。2.3关系的完整性2.3关系的完整性3、参照完整性

实体与实体之间往往存在某种依存关系,这种依存关系叫做联系。在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用,即关系参照的完整性。在一个关系模型中,关系R中的外码对应另一个关系S的主码(关系R和S不一定是不同的关系),关系R中外码的取值要参照另一个关系S主码的取值。此时,R为参照关系,S为被参照关系。参照完整性规则:定义外码与主码之间的引用和参照规则,参照关系的外码取值不能超出被参照关系的主码取值。。2.4关系的完整性4、完整性检查

1)执行插入(INSERT)记录操作时的检查。检查实体完整性=>检查参照完整性=>检查域完整性。

2)执行删除(DELETE)记录操作时的检查。仅检查参照完整性,不检查实体完整性和域完整性。

3)执行修改(UPDATE)记录操作时的检查。先删除记录,再插入记录。例:学生表(学号,姓名,性别,入学时间,出生日期,籍贯)成绩表(学号,课程号,成绩)向学生表中插入记录没有限制;向成绩表中插入记录时,学号不能为空值,且要求学号的值必须是从《学生表》的主码学号中选取的值。删除课程表中某个学生的成绩记录没有限制;删除学生表中某个学生的记录,则要检查成绩表中是否有该学生的成绩记录,若有,要么不能删除该学生记录,要么将该学生的成绩记录级联删除。关系数据库设计的一般步骤

1、确立建立数据库的目的:用数据库管理哪些数据,有哪些需求和功能。

2、确定所需要的表:把信息分成各个独立的主题,每一主题可以是数据库中的一个表。

3、确定所需要的字段:每个表中要保存哪些信息。

4、确定关系:分析每个表,确定表中的数据和其他表中的数据有何关系。

5、改进设计:对设计作进一步分析,查找其中的错误,需要时可调整设计。2.5关系数据库设计实例

1、确立建立数据库的目的:用数据库管理哪些数据,有哪些需求和功能。

建立CJGL数据库:《成绩管理系统》不仅要对学生的成绩进行管理,还要对与学生成绩有关的其他信息进行管理,如学生的基本信息、系部信息、班级信息、课程信息等管理模块,对每类信息的管理一般都应具有增加、删除、修改和查询功能,有些信息还要对其进行统计和分析。该系统的功能划分设计框图见下页。2.5关系数据库设计实例2.5关系数据库设计实例“成绩管理系统”功能划分如下图

2、确定所需要的表:把信息分成各个独立的主题,每一主题可以是数据库中的一个表。

CJGL数据库需设系部、班级、学生、课程、成绩等5个数据表。

2.5关系数据库设计实例

3、确定所需要的字段:每个表中要保存哪些信息。各个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论