《第2章关系数据库基本原理精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2章关系数据库基本原理精选PPT.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章关系数据库基章关系数据库基本原理本原理1第1页,此课件共43页哦本章内容本章内容n2.1 2.1 关系数据库概述关系数据库概述n2.2 关系代数的基本原理关系代数的基本原理n2.3 关系模式的分解关系模式的分解n2.4 2.4 关系模型的完整性约束关系模型的完整性约束n2.5 2.5 数据库的设计方法数据库的设计方法2第2页,此课件共43页哦2.1 关系数据库概述关系数据库概述n关系数据模型关系数据模型 数据模型的任务是描述现实世界中的实体及其联系。关系数数据模型的任务是描述现实世界中的实体及其联系。关系数据模型就是采用一个有序数组描述实体及其属性,用这种有序数据模型就是采用一个有序数
2、组描述实体及其属性,用这种有序数组的集合描述一个实体集合,而采用定义在两个集合上的关系反组的集合描述一个实体集合,而采用定义在两个集合上的关系反映不同实体间的联系。映不同实体间的联系。部部门编门编号号部部门门名称名称员员工工编编号号员员工姓名工姓名性性别别住址住址D001总经总经理理办办E001钱钱达理达理男男东风东风路路78号号D001总经总经理理办办E002东东方牧方牧男男五一北路五一北路25号号D002市市场场部部E003郭文斌郭文斌男男公司集体宿舍公司集体宿舍D003销销售部售部E004肖海燕肖海燕女女公司集体宿舍公司集体宿舍D004仓储仓储部部E005张张明明华华男男韶山北路韶山北路
3、55号号表表2-1关系模型示例关系模型示例3第3页,此课件共43页哦2.1 关系数据库概述关系数据库概述n关系数据库基本概念关系数据库基本概念 定义:关系数据库就是一些相关的二维表和其他数据库定义:关系数据库就是一些相关的二维表和其他数据库对象的集合。对象的集合。在这个定义中明确,关系数据库中的所有信息都存储在在这个定义中明确,关系数据库中的所有信息都存储在二维表格中;一个关系数据库可能包含多个表;除了这种二二维表格中;一个关系数据库可能包含多个表;除了这种二维表外,关系数据库还包含一些其他对象,如视图等。维表外,关系数据库还包含一些其他对象,如视图等。关系模型的基本概念关系模型的基本概念:1
4、 1关系关系一个关系就是一张二维表,通常将一个没有重复行、重一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。复列的二维表看成一个关系,每个关系都有一个关系名。4第4页,此课件共43页哦2.1 关系数据库概述关系数据库概述2 2元组元组二维表的每一行在关系中称为元组二维表的每一行在关系中称为元组(Tuple)。一行描述了。一行描述了现实世界中的一个实体,或者描述了不同实体间的一种联系。现实世界中的一个实体,或者描述了不同实体间的一种联系。3 3属性属性二维表的每一列在关系中称为属性二维表的每一列在关系中称为属性(Attribute),每个属性,每
5、个属性都有一个属性名,各个属性的取值称为属性值。每个属性有都有一个属性名,各个属性的取值称为属性值。每个属性有一定的取值范围,称为值域。一定的取值范围,称为值域。4 4关键字关键字关系中能惟一区分、确定不同元组的属性或属性组合,关系中能惟一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。关键字又称为键或码称为该关系的一个关键字。关键字又称为键或码(Key)。5第5页,此课件共43页哦2.1 关系数据库概述关系数据库概述5 5外部关键字外部关键字如果关系中某个属性或属性组合并非关键字,但却是另如果关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,则称此属性或属性组合为本
6、关系的外一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字或外键部关键字或外键(Foreign Key)。在关系数据库中,用外部关。在关系数据库中,用外部关键字表示两个表间的联系。键字表示两个表间的联系。6第6页,此课件共43页哦2.1 关系数据库概述关系数据库概述n关系数据库基本特征关系数据库基本特征有坚实的理论基础有坚实的理论基础 数据结构简单、易于理解数据结构简单、易于理解 对用户提供了较全面的操作支持对用户提供了较全面的操作支持得到了众多开发商的支持得到了众多开发商的支持 7第7页,此课件共43页哦2.4 关系模型的完整性约束关系模型的完整性约束n实体完整性实体完整性所所谓谓
7、实实体体完完整整性性,就就是是一一个个关关系系模模型型中中的的所所有有元元组组都都是是惟惟一一的的,没没有有两两个个完完全全相相同同的的元元组组,也也就就是是一一个个二二维维表表中中没没有两个完全相同行,也称为行完整性。有两个完全相同行,也称为行完整性。n域完整性域完整性域完整性就是对表中列数据的规范,也称列完整性,用域完整性就是对表中列数据的规范,也称列完整性,用于限制列的数据类型、格式以及取值范围。于限制列的数据类型、格式以及取值范围。n参照完整性参照完整性 当一个数据表中有外部关键字当一个数据表中有外部关键字(即该列是另外一个表的关即该列是另外一个表的关键字键字)时,外部关键字列的所有值
8、,都必须出现在其所对应的时,外部关键字列的所有值,都必须出现在其所对应的表中,这就是参照完整性的含义表中,这就是参照完整性的含义。n用户定义完整性用户定义完整性24第24页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法n数据库设计过程数据库设计过程 数据库设计过程一般包括:数据库设计过程一般包括:(1)需求分析需求分析(2)概念设计概念设计(3)逻辑设计逻辑设计(4)物理设计物理设计(5)实施与维护实施与维护25第25页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法nE-R模型及其到关系模型的转化模型及其到关系模型的转化 E-R模型模型关系模型关系模型对问题进行分析对问
9、题进行分析转化转化图图2-2E-R模型到关系模型的转化过程模型到关系模型的转化过程1独立实体到关系模型的转化独立实体到关系模型的转化一个独立实体转化为一个关系模型一个独立实体转化为一个关系模型(即一张关系表即一张关系表),实体码转,实体码转化为关系表的关键属性,其他属性转化为关系表的属性,注意根据实化为关系表的关键属性,其他属性转化为关系表的属性,注意根据实际对象属性情况确定关系属性的取值域。际对象属性情况确定关系属性的取值域。26第26页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法例:例如对于图例:例如对于图2-3所示的学生实体,应将其转化为关系:所示的学生实体,应将其转化为关
10、系:学生学生(学号学号,姓名姓名,民族民族,籍贯籍贯)其中下划线标注的属性表示关键字。其中下划线标注的属性表示关键字。学学 生生学学 号号民民 族族籍籍 贯贯姓姓 名名图图2-3学生实体的学生实体的E-R图图27第27页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法21:1联系到关系模型的转化联系到关系模型的转化11经经 理理公公 司司领领 导导姓姓 名名住住 址址出生年出生年月月电电 话话民民 族族名名 称称电电 话话类类 型型注册地注册地图图2-41:1联系到关系模型的转化联系到关系模型的转化28第28页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法对图对图2-4模
11、型转化为关系模型:模型转化为关系模型:经理经理(姓名姓名,民族民族,住址住址,出生年月出生年月,电话电话,名称名称)公司公司(名称名称,注册地注册地,类型类型,电话电话,姓名姓名)其中名称和姓名分别是其中名称和姓名分别是“公司公司”和和“经理经理”两个关系模两个关系模式的关键字,在式的关键字,在“经理经理”和和“公司公司”两个关系中,两个关系中,为了表明为了表明两者间的联系,各自增加了对方的关键字作为外部关键字两者间的联系,各自增加了对方的关键字作为外部关键字,当两个表中出现下面的元组时,表明了张小辉是京广实业公当两个表中出现下面的元组时,表明了张小辉是京广实业公司的经理。司的经理。(张小辉张
12、小辉,汉汉,北京前门大街北京前门大街156号号,48,68705633,京广实业公京广实业公司司)(京广实业公司京广实业公司,北京复兴门外大街北京复兴门外大街278号号,有限责任有限责任,65783265,张小辉张小辉)29第29页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法31:n联系到关系模型的转化联系到关系模型的转化要转化要转化1:n联系,需要在联系,需要在n方方(即即1对多关系的多方对多关系的多方)实体表实体表中增加一个属性,中增加一个属性,将对方的关键字作为外部关键字处理将对方的关键字作为外部关键字处理即可。即可。1n学学 生生班班 级级属属 于于姓姓 名名学学 号号民
13、民 族族出生年出生年月月名名 称称班班 号号系系年年 级级专专 业业图图2-51:n关系到关系模型的转化关系到关系模型的转化30第30页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法如图如图2-5所示,所示,“班级班级”与与“学生学生”的联系是的联系是1:n的联系,的联系,学生方是学生方是n方,对图方,对图2-5进行转化,得到关系模型:进行转化,得到关系模型:学生学生(学号学号,姓名姓名,民族民族,出生年月出生年月,班号班号)班级班级(班号班号,名称名称,年级年级,系系,专业专业)在学生表中增加在学生表中增加“班级班级”中的关键字中的关键字“班号班号”作为外部作为外部关键字。关键字
14、。31第31页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法4m:n联系到关系模型的转化联系到关系模型的转化一个一个m:nm:n联系要单独建立一个关系模式,分别用两个实体联系要单独建立一个关系模式,分别用两个实体的关键字作为外部关键字。的关键字作为外部关键字。学学 习习mn学学 生生学学 号号姓姓 名名出生年出生年月月民民 族族课程号课程号课程名课程名学时数学时数课程课程成绩成绩图图2-6m:n关系到关系模型的转化关系到关系模型的转化32第32页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法图图2-6描述的学生与课程的联系是描述的学生与课程的联系是m:n联系,将联系,将
15、E-R图转化图转化为为3个关系:个关系:学生学生(学号学号,姓名,民族,出生年月,姓名,民族,出生年月)课程课程(课程号课程号,课程名,学时数,课程名,学时数)学习学习(学号学号,课程号课程号,成绩,成绩)33第33页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法5多元联系到关系模型的转化多元联系到关系模型的转化所谓多元联系,即是说该联系涉及两个以上的实体。例所谓多元联系,即是说该联系涉及两个以上的实体。例如一个课程表,涉及班级、课程、教师、教室等如一个课程表,涉及班级、课程、教师、教室等4个实体。个实体。例如一个课程表,涉及班级、课程、教师、教室等例如一个课程表,涉及班级、课程、
16、教师、教室等4个实个实体。体。转化时,应建立一个单独的关系表,将该联系所涉及的转化时,应建立一个单独的关系表,将该联系所涉及的全部实体的关键字作为该关系表的外部关键字,再加上适当全部实体的关键字作为该关系表的外部关键字,再加上适当的其他属性的其他属性,得到关系模式如下:,得到关系模式如下:课程表课程表(班号班号,课程号课程号,教师号教师号,教室号教室号,周次周次)。34第34页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法6自联系到关系模型的转化自联系到关系模型的转化自联系指同一个实体类中实体间的联系。例如一个公司自联系指同一个实体类中实体间的联系。例如一个公司的所有员工组成的实体
17、类中,员工中存在领导与被领导这样的所有员工组成的实体类中,员工中存在领导与被领导这样的联系,只要分清两部分实体在联系中的身份,其余的情况的联系,只要分清两部分实体在联系中的身份,其余的情况与一般二元关系相同,如图与一般二元关系相同,如图2-7所示。所示。姓姓 名名员工号员工号民民 族族基本工基本工资资职职 务务住住 址址领领 导导员员 工工图图2-7自联系关系到关系模型的转化自联系关系到关系模型的转化35第35页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法对图对图2-7所示所示E-R图转化为关系模型:图转化为关系模型:员工员工(员工号员工号,姓名姓名,住址住址,民族民族,基本工资
18、基本工资,职务职务)领导领导(领导员工号领导员工号,被领导员工号被领导员工号)在领导关系表中,是只反映直接领导关系,还是把非直在领导关系表中,是只反映直接领导关系,还是把非直接领导关系也进行反映,由应用系统的要求确定。接领导关系也进行反映,由应用系统的要求确定。36第36页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法n数据库设计实例数据库设计实例 1问题概述问题概述销售公司销售公司商品商品供应商供应商客户客户采购订单采购订单销售订单销售订单库存文件库存文件图图2-8 某销售公司业务流程图某销售公司业务流程图37第37页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法该系
19、统数据模型包含的数据实体有:该系统数据模型包含的数据实体有:(1)供应商供应商(Supplier):为该公司提供商品的公司。:为该公司提供商品的公司。(2)商品商品(Goods):该公司经营的商品。:该公司经营的商品。(3)客户客户(Customer):该公司提供服务的厂家。:该公司提供服务的厂家。(4)员工员工(Employee):该公司的员工。:该公司的员工。(5)运输商运输商(Transporter):为该公司提供运输服务的公司。:为该公司提供运输服务的公司。(6)销售订单销售订单(Sell_Order):该公司与用户签定的销售合同。:该公司与用户签定的销售合同。(7)采购订单采购订单(
20、Purchase_Order):该公司与供应商签定的采:该公司与供应商签定的采购合同。购合同。38第38页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法员工员工销售订单销售订单商品商品采购订单采购订单供应商供应商运输商运输商客户客户图图2-9 数据实体之间的关系数据实体之间的关系39第39页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法2数据实体的数据实体的E-R图图这个实例包含的数据实体较多,联系较复杂,如果用一这个实例包含的数据实体较多,联系较复杂,如果用一般的般的E-R图描述,幅面会比较大,对于这种问题,常常用一图描述,幅面会比较大,对于这种问题,常常用一种种E-
21、R图的变形图来描述。在这种变形图中,实体及其属性图的变形图来描述。在这种变形图中,实体及其属性用一个矩形框描述,实体名称标注在矩形框的顶部,实体关用一个矩形框描述,实体名称标注在矩形框的顶部,实体关键字用键字用*标出,并紧跟在实体名称后面,实体属性依次标注。标出,并紧跟在实体名称后面,实体属性依次标注。实体间的联系省略菱形框,只用连线,并在连线的两端标注实体间的联系省略菱形框,只用连线,并在连线的两端标注联系类型。联系类型。40第40页,此课件共43页哦2.5 数据库的设计方法数据库的设计方法3数据表设计示例数据表设计示例以员工、销售订单、商品以及部门以员工、销售订单、商品以及部门4个数据实体
22、及其相互个数据实体及其相互间的联系为例,说明这种转换过程。间的联系为例,说明这种转换过程。(1)“员工员工”实体到关系模式的转换实体到关系模式的转换从图从图2-10和图和图2-11中看出,中看出,“员工员工”实体有实体有9个属性,个属性,Employee_ID是其关键属性,该实体与是其关键属性,该实体与“销售订单销售订单”实体间实体间有一个有一个1:n的联系。此外,与的联系。此外,与“部门部门”实体间有一个实体间有一个n:1的联的联系,为描述这种联系,需要增加一个外部关键字系,为描述这种联系,需要增加一个外部关键字Department_ID,转换结果见表,转换结果见表2-8。41第41页,此课
23、件共43页哦2.5 数据库的设计方法数据库的设计方法(2)“销售订单销售订单”实体到关系模式的转换实体到关系模式的转换“销售订单销售订单”实体包含实体包含Order_ID1等等7个属性,还与个属性,还与“客客户户”等等4个实体具有个实体具有n:1的联系,为描述这种联系,需要增加的联系,为描述这种联系,需要增加4个外部关键字个外部关键字(实体中已列出了这实体中已列出了这4个外部关键字个外部关键字)。转换结果。转换结果见表见表2-9。(3)“商品商品”实体到关系模式的转换实体到关系模式的转换“商品商品”实体包含实体包含6个属性,关键属性是个属性,关键属性是“商品代码商品代码(Goods_ID)”,
24、“商品商品”实体与实体与“销售订单销售订单”实体及实体及“采购采购订单订单”实体间有实体间有1:n的联系,与的联系,与“商品规格商品规格”实体有实体有n:1的联的联系。转换结果见表系。转换结果见表2-10。(4)“部门部门”实体到关系模式的转换实体到关系模式的转换“部门部门”实体有实体有4个属性,并且与个属性,并且与“员工员工”实体有实体有1:n的联的联系,转换结果见表系,转换结果见表2-11。42第42页,此课件共43页哦本章小结本章小结(1)关系数据库是二维表的集合,这种表的列应满足原子关系数据库是二维表的集合,这种表的列应满足原子特征,即列是不可分解的。特征,即列是不可分解的。(2)关系
25、运算是关系数据库操作的数学基础,通常的关系关系运算是关系数据库操作的数学基础,通常的关系运算包括并、交、差、乘积、选择、投影等运算包括并、交、差、乘积、选择、投影等6种。种。(3)不好的关系模式存在数据冗余、插入异常、删除异常不好的关系模式存在数据冗余、插入异常、删除异常等许多问题,解决这些问题的基本方法是对关系模式进行分等许多问题,解决这些问题的基本方法是对关系模式进行分解。解。(4)数据完整性是保证数据正确性的一组规则。完整性分数据完整性是保证数据正确性的一组规则。完整性分为实体完整性、域完整性、参照完整性和自定义完整性为实体完整性、域完整性、参照完整性和自定义完整性4种。种。(5)数据库应用系统开发有两个任务,一是数据库的设计,数据库应用系统开发有两个任务,一是数据库的设计,二是应用程序的开发。二是应用程序的开发。43第43页,此课件共43页哦