数据库设计 第六章_第1页
数据库设计 第六章_第2页
数据库设计 第六章_第3页
数据库设计 第六章_第4页
数据库设计 第六章_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理与应用

第六章数据库设计广东外语外贸大学左明辉数据库设计数据库设计是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立相应的数据库结构和数据库应用系统。⑴最大限度地满足用户的应用功能需求。主要是指用户可以将当前与可预知的将来应用所需要的数据及其联系,全部准确地存放在数据库中。⑵获得良好的数据库性能。即要求数据库设计保持良好的数据特性以及对数据的高效率存取和资源的合理使用,并使建成的数据库具有良好的数据共享性、独立性、完整性及安全性等。

数据库设计目标对关系数据库而言主要有:数据要达到一定的规范化程度,避免数据重复存储和异常操作。保持实体之间连接的完整性,避免数据库的不一致性。满足对事务响应时间的要求。尽可能减少数据的存储量和内外存间数据的传输量。便于数据库的扩充和移植,使系统有更好的适应性。数据库设计的目标数据库设计的目标⑶对现实世界模拟的精确度要高。⑷数据库设计应充分利用和发挥现有DBMS的功能和性能。⑸符合软件工程设计要求,因为应用程序设计本身就是数据库设计任务的一部分。数据库设计的基本步骤运行和维护

实现

物理设计逻辑设计概念设计需求分析对用户提出的各种要求加以分析,对各种原始数据加以综合、整理,是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。

概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立于DBMS和有关软、硬件的概念数据模型的设计过程,这是对现实世界中具体数据的首次抽象,实现了从现实世界到信息世界的转化过程。

逻辑结构设计是将概念结构转化为某个DBMS所支持的数据模型,并进行优化的设计过程。由于逻辑结构设计是一个基于具体DBMS的实现过程,所以选择什么样的数据模型尤为重要,其次是数据模型的优化。

物理结构设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理结构的实现过程。数据库实施阶段,即数据库调试、试运行阶段。一旦数据库物理结构形成,就可以用已选定的DBMS来定义、描述相应的数据库结构,装入相应的数据,以生成完整的数据库。数据库实施阶段结束,标志着数据库系统投入正常运行工作的开始。数据库运行及维护的过程,是一个调整、修改和不断完善的运行过程。需求分析调查清楚用户的实际需求并进行初步分析与用户达成共识进一步分析与表达这些需求需求分析的任务需求分析阶段任务是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。这一阶段的结果是“需求说明书”,其主要内容是系统的数据流图和数据字典。需求分析的步骤(一)⑴分析用户活动,产生用户活动图。⑵确定系统范围,产生系统范围图。⑶分析用户活动所涉及的数据,产生数据流图。教师原始输入输入处理成绩登录输出处理教务处输入格式化输出输出格式化成绩文件数据流图(DataFlowDiagram,简记为DFD)是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法。特点:具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。DFD有四个基本成分:数据流(用箭头表示),加工或处理(用圆圈表示),文件(用双线段表示)和外部实体(数据流的源点或终点,用方框表示)。需求分析的步骤(二)需求分析的步骤(三)系统原始数据输入学生选课系统学生基本信息学生选课信息课程成绩课程信息个人成绩单选课情况一览表某课程成绩单系统输出数据学生选课系统顶层数据流图。需求分析的步骤(四)课程信息学生基本信息个人成绩单选课情况一览表某课程成绩单查询结果查询结果查询结果系统原始数据系统输出数据学生基本信息课程信息学生选课信息学生信息录入选课信息录入成绩录入查询个人所有课程成绩课程信息录入查询课程的选课情况查询某门课程的所有成绩学生选课系统的0层数据流图

⑷分析系统数据,产生数据字典。数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述(称为元数据Metadata),如叙述性的数据定义等,并且为DBA提供有关的报告。需求分析的步骤(四)数据项数据项是数据的最小单位,对数据项的描述,通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。

例6.2

在上图中有一个数据流查询个人所有课程成绩,每个人的成绩单有一个数据项为学生的学号SNO。在数据字典中对此数据项如下描述。数据项名:SNO说明:标识每张成绩单类型:CHAR(9)长度:9别名:学生学号取值范围:000000000~999999999数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合而成。它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。数据结构数据结构以“学生”为例 “学生”是该系统中的一个核心数据结构:数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级

数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。数据流数据流名:个人成绩查询说明:学生可以根据所学专业、班级号、学生姓名、课程名称来查询个人成绩来源:学生选课信息去向:输出到个人成绩单数据结构:个人成绩查询所学专业班级号学生姓名课程名称数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。对数据存储的描述应包括:数据存储名、说明、输入数据流、输出数据流、数据量(每次存取多少数据)、存取频度(单位时间内存取次数)和存取方式(是批处理,还是联机处理;是检索,还是更新;是顺序存取,还是随机存取)。

数据存储数据存储名:课程说明:对每门课程的名称、学分、先行课程号和摘要的描述输出数据流:课程介绍数据描述:课程号、课程名、学分数、先行课程号、摘要数量:每年328种存取方式:随机存取⑤加工过程对加工处理的描述包括加工过程名、说明、输入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。加工过程处理过程:确定选课名单说

明:对选某门课程的每一个学生,根据已选修课程确定其是否可选该课程。再根据学生选课的人数选择适当的教室,制定选课单。输入:学生选课、可选课程、已选课程输出:选课单程序提要:

a.对所选课程在选课表中查找其是否已选此课程;

b.若未选过此课程,则在选课表中查找是否已选此课程的先行课程;

c.若a、b都满足,则在选课表中增加一条选课记录;

d.处理完全部学生的选课后,形成选课单。概念结构设计什么是概念结构设计需求分析阶段描述的用户应用需求是现实世界的具体需求将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键概念结构(续)现实世界机器世界信息世界需求分析概念结构设计概念结构(续)概念结构设计的特点(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。概念结构(续)概念结构设计的特点(续)(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换。概念结构(续)描述概念模型的工具E-R模型概念结构设计的方法与步骤设计概念结构的四类方法自顶向下首先定义全局概念结构的框架,然后逐步细化自底向上首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构概念结构设计的方法与步骤(续) 自顶向下策略概念结构设计的方法与步骤(续)

自底向上策略概念结构设计的方法与步骤(续)逐步扩张首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构混合策略将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。概念结构设计的方法与步骤(续)

逐步扩张概念结构设计概念结构设计任务和ER模型的特点概念结构设计的基本方法概念结构设计的主要步骤局部ER模型的设计全局ER模型的设计概念结构设计实例概念结构设计的主要步骤⑴进行数据抽象,设计局部概念模式⑵将局部概念模式综合成全局概念模式⑶评审局部ER模型的设计(1)1.确定局部结构范围设计局部ER模型时,首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计局部ER图。局部ER模型设计的流程图:需求分析结果确定局部ER模型范围实体定义联系定义属性分配还有局部结构待分析无进入全局ER模型设计有教务管理信息系统学生学籍数据课程数据选课数据成绩数据学籍变动表课程表选课一览表成绩单局部ER模型的设计下面图给出了教务管理信息系统的0层数据流图,该图描述了教务管理信息系统的组成部分以及各部分的输入和输出数据。课程管理2成绩管理4学生基本信息课程表课程数据成绩单成绩数据选课一览表选课管理3学生基本信息课程信息选课信息学籍变动表学生学籍数据学生学籍管理1选课数据2.确定实体及实体的主键⑴确定实体实体(Entity)是一个数据对象,指应用中可以区别的客观存在的事物,如人、部门、表格、物体、项目等。同一类实体构成实体集(EntitySet)。ER模型中的实体往往是指实体集。局部ER模型的设计⑵确定实体的主键主键是确定实体的唯一标志。学生实体的主键是学号;课程实体的主键是课程号;学籍变动实体的主键是学号+变动日期;教师实体的主键是教师号;成绩实体的主键是学号+课程号。局部ER模型的设计局部ER模型的设计⑶区分实体与属性的一般原则:实体一般需要描述信息,而属性不需要。例如,学生需要描述属性(学号、姓名、性别、出生年月等),所以学生是实体。而性别不需要描述属性,所以性别是属性。多值的属性可考虑作为实体。例如,教师的职务是一个多值的属性,即一个教师可能担任多个职务。此时职务可考虑作为一个独立的实体,否则数据库表中就会出现大量空值。⑷实体与属性是相对而言的。同一事物,在一种应用环境中作为“属性”,在另一种应用环境中就必须作为“实体”。例如,学校中的系,在某种应用环境中,它只是作为“学生”实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时系就需要作为实体了。局部ER模型的设计局部ER模型的设计3.定义实体间的联系

联系是实体集之间关系的抽象表示,即对现实世界中事物之间关系的描述。如教师实体集与学生实体集间的“讲授”联系,公司实体集与职工实体集之间的“聘任”联系等。在局部ER图设计时,需要对已识别出的实体确定不同实体间的联系是属于什么类型的联系,是二元联系还是多元联系?定义实体联系时应注意几点:①消除冗余联系。在确定联系类型时,应注意防止出现冗余联系(即可以从其他联系导出的联系)。局部ER模型的设计技术员技术参与1掌握工程使用N111N冗余联系假定每一个技术员必须参加一个工程;每个工程有多个技术员参加;每个工程必须使用一种技术。由于联系具有传递性,因此,隐含了每一个技术员必须掌握一种技术。该问题设计到三个实体,即技术员、工程以及技术。②正确鉴别二元及多元联系。在局部ER图设计中,不同实体间应建立二元还是多元联系,应该根据问题说明来确定。问题1:任何一个供应商可向任何一个顾客供应任何一种零件。局部ER模型的设计供应商零件供-顾-零顾客NPM问题2:任何一个供应商可向任何一个顾客供应零件,但每个顾客订购的零件是一定的。局部ER模型的设计供应商顾客供应MN零件购买M1只有供应商和顾客确定了,才能确定一个供应联系值;而顾客确定了,可以有一个唯一的零件值。问题3:任何一个供应商可向任何一个顾客提供零件,但某个供应商对某个顾客供应的零件是确定的。这个问题表示,当供应商和顾客确定了,供应商供应给顾客的零件也就确定了。对此只需定义一个二元联系,而零件则可作为供应联系的一个属性。局部ER模型的设计M供应商顾客供应N4.给实体及联系加上描述属性

为局部视图中的每个实体和联系加上所有必需的其他描述属性。例如,“学生”实体的描述属性除了“学号”以外,还需要“姓名”、“性别”、“出生年月”、“家庭地址”、“入学时间”、“系别”、“专业”等属性;而“课程”实体的描述属性除了“课程号”属性以外,还需要“课程名”、“学时数”、“学分”、“开设学期”、“课程类型”(必修或选修)等属性。局部ER模型的设计联系本身也可以有描述属性。局部ER模型的设计学生学号姓名…专业课程课程号课程名课程类型…选修MN成绩5.ER模型的操作

在数据库设计过程中,常常要对ER图进行种种变化。这种变化称为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并、增删等。例6.6

分裂方式有水平分裂和垂直分裂两种。把教师分裂成男教师与女教师两个实体类型,这是水平分裂。也可把教师中经常变化的属性组成一个实体类型,而把固定不变的属性组成另一个实体类型,这是垂直分裂。局部ER模型的设计局部ER模型的设计教师职务姓名教师号出生日期工资奖金教师不变信息姓名教师号出生日期教师变动信息职务工资奖金教师号联系类型也可分裂。下图是教师担任教学任务的ER图,而“担任”联系类型可以分裂为“主讲”和“辅导”两个新的联系类型。局部ER模型的设计教师课程担任MN教师课程主讲辅导1MNN合并是分裂操作的逆过程。例如,有一个“产品销售”实体,其属性有“产品号”和“销售额”,另一个“产品生产”实体,其属性有“产品号”和“产量”,把它们合并操作如以下图。局部ER模型的设计产品销售产品号销售量产品生产产品号产量产品产品号产量销售量但必须注意,对于联系的合并,其类型必须是定义在相同的实体类型组合中,否则是不合法的合并,下图所示的合并就是不合法的合并。局部ER模型的设计(a)(b)AA-CB-CBCAA-B-CBC6.弱实体与弱联系在现实世界中,有时某些实体对于另一些实体具有很强的依赖联系,例如一个实体的存在必须以另一实体的存在为前提。一个实体对于另一些实体具有很强的依赖联系,而且该实体主键的部分或全部从其依赖实体中获得,称该实体为弱实体。在ER模型中,弱实体用双线矩形框表示。与弱实体的联系,称为弱联系,用双线菱形框表示。局部ER模型的设计局部ER模型的设计例6.7在人事管理系统中,社会关系的存在是以职工的存在为前提,即社会关系对于职工具有依赖联系。又如商业应用系统中,顾客地址与顾客之间也有类似的联系(一般顾客可以有若干个联系地址)。1N职工具有社会关系1N顾客通讯地址7.子类和超类子类和超类的概念最先出现在面向对象技术中。在现实世界中,实体类型之间可能存在着抽象与具体的联系。譬如学校人事系统中有人员、教师、学生、本科生和研究生等实体类型。这些概念之间,“人员”是比“教师”、“学生”更为抽象,而“教师”、“学生”是比“人员”更为具体的概念。局部ER模型的设计局部ER模型的设计当低层上较具体的实体类型表达了与之联系的较高层上的更为一般实体类型的特殊情况时,就称较高层上实体类型为超类型(supertype),简称超类;较低层上实体类型为子类型(subtype),简称子类。性质:子类与超类之间具有继承性特点,即子类实体继承超类实体的所有属性。但子类实体本身还可以包含比超类实体更多的属性。继承性是通过子类实体和超类实体具有相同的实体标识符实现的。在ER图中,超类以两端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表示。局部ER模型的设计教师本科生研究生人员学生全局ER模型的设计流程无局部ER模式确定公共实体类型合并两个局部ER模式检查并消除冲突还有未合并的局部模式有还有冲突吗有属性冲突:如,重量单位有的用公斤,有的用克。

结构冲突:同一对象在不同应用中的不同抽象;同一实体在不同局部ER图中属性的个数或次序不同;实体之间的联系在不同的局部ER图中呈现不同的类型

命名冲突:属性名、实体名、联系名之间存在同名异义或异名同义冲突全局ER模型的设计1.确定公共实体类型同一现实世界的对象可能给予不同的描述,有的作为实体类型,有的又作为联系类型或属性。实体类型名和键也可能不同。处理方法:根据实体类型名和键来认定公共实体类型。把同名实体类型作为公共实体类型的一类候选。把具有相同键的实体类型作为公共实体类型候选。2.局部ER模型的合并合并原则:首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3.消除冲突局部ER模型之间的不一致的地方,称之为冲突。⑴属性冲突属性域的冲突,即属性值的类型、取值范围或取值集合不同。例如,重量单位有的用公斤,有的用克。全局ER模型的设计⑵结构冲突同一对象在不同应用中的不同抽象,类型有:①如职工,在某个应用中为实体,而在另一应用中为属性。②同一实体在不同局部ER图中属性组成不同,包括属性个数、次序等。③实体之间的联系在不同的局部ER图中呈现不同的类型。全局ER模型的设计(3)对于解决结构冲突,有下列常用方法:对于同一对象在不同的局部ER模型中产生不同的抽象,其解决方式是:把属性变为实体或把实体变为属性,使同一对象具有相同的抽象。对于同一个实体在不同ER模型中属性组成不同,其解决方式为:取两个分ER模型属性的并,作为合并后的该实体属性。对于实体间的相同联系呈现的不同的类型,其解决方式为:根据具体应用的语义,对实体键的联系作适当的综合或调整。

全局ER模型的设计在教务管理信息系统中的系,在某一局部ER模型中为学生实体的属性,而在另一局部ER模型中为一个单独的实体,其实学生和系之间存在从属关系,应该调整、合并为如图所示。全局ER模型的设计系名称联系电话系主任所在地点编号姓名所在系所学专业学号学生性别属于1N全局ER模型的设计(a)姓名所在系所学专业学号学生性别学生籍贯政治面貌家庭住址姓名(b)(c)家庭住址姓名所在系所学专业学号学生性别籍贯政治面貌(a)产品数量组成零件MN供应商产品数量供应零件MNP(b)组成(c)MN供应数量组成数量供应商产品零件组成NMP全局ER模型的设计⑶命名冲突包括属性名、实体名、联系名之间的冲突。同名异义,即不同意义的对象具有相同的名字;异名同义,即同一意义的对象具有不同的名字。属性冲突和命名冲突通常采用讨论、协商等行政手段解决,结构冲突则要认真分析后才能解决。

全局ER模型的设计设计全局ER模型的目的不在于把若于局部ER模型形式上合并为一个ER模型,而在于消除冲突,使之成为能够被全系统中所有用户共同理解和接受的统一的概念模式。4.全局模式的优化在得到全局ER模型后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模型进行优化。一个好的全局ER模型,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数尽可能少;实体类型所含属性个数尽可能少;实体类型间无冗余联系。全局ER模型的设计全局ER模型的优化原则:⑴相关实体类型的合并一般在权衡利弊后可以把1:1联系的两个实体类型合并。具有相同键的实体类型常常是从不同角度刻画现实世界,如果经常需要同时处理这些实体类型,那么也有必要合并成一个实体类型。但这时可能会产生大量空值,因此,要对存储代价、查询效率进行权衡。全局ER模型的设计⑵冗余属性的消除在综合成全局ER模型后,可能产生全局范围内的冗余属性。一般同一非键的属性出现在几个实体类型中,或者一个属性值可从其他属性值导出,此时,应把这些冗余的属性从全局模式中去掉。冗余属性消除与否,也取决于它对存储空间、访问效率和维护代价的影响。有时为了兼顾访问效率,有意保留冗余属性。全局ER模型的设计⑶冗余联系的消除在全局模式中可能存在有冗余的联系,通常利用规范化理论中函数依赖的概念消除冗余联系。全局概念结构应满足如下要求:全局概念结构内部必须具有一致性,不再存在各种冲突;全局概念结构能准确地反映原各局部视图结构,包括属性、实体及实体间的联系;全局概念结构能满足需求分析阶段所确定的所有需求。全局ER模型的设计概念结构设计实例(1)实例1

教务管理信息系统(简化的)全局ER图是由学生学籍管理ER图、学生选课ER图、课程管理ER图以及成绩管理ER图组成。根据本章前面讨论的局部ER图,教务管理信息系统的全局ER图模式如图所示。学籍变动学号…变动日期专业学生学号…课程号课程…变动日期奖金教师号教师…讲课成绩M选课N11变动实例2

某厂产品生产及库存综合管理系统的概念结构设计。概念结构设计实例(2)产品零件组成MN材料消耗MN产品材料使用MN材料仓库存放MN概念结构设计实例耗用量组成产品性能参数产品号零件零件号规格材料材料名消耗零件数(a)使用量使用产品编号价格库存量材料材料名价格仓库号(b)(c)存放量存放材料编号价格材料名库存量仓库号仓库面积地点在解决上述有关冲突后,综合各局部ER模型可形成如下图所示初步的全局ER模型。概念结构设计实例产品性能参数产品号+编号产品价格产品性能参数产品号价格合并概念结构设计实例耗用量存放存放量仓库号仓库地点面积使用量产品性能参数产品号价格使用零件零件号消耗规格材料材料名编号库存量价格组成零件数MMNN1NER模型存在着存放量、库存量、使用量等属性的冗余问题。消除这些冗余后,我们可以得到下图所示的基本ER模型。概念结构设计实例存放量产品性能参数产品号价格组成零件数存放仓库号仓库地点面积耗用量零件零件号消耗规格材料材料名编号价格MN1N概念结构设计实例实例分析:某大学教务管理系统中包含三个部分:教师管理子系统;学籍管理子系统;课程管理子系统。局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析教师子模块……局部ER图其他局部模式

现有的教学管理系统初步分析系统的对象根据服务种类分析学生子模块……图5.21学籍管理局部应用的分E-R图导师班级学生组成管理班主任档案材料宿舍住宿归档指导系有参加学会1N111NNN11NMN1具有社会关系1N局部ER图其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析课程子模块……局部ER图图5.22课程管理局部应用分E-R图1教室M1教科书教师担任课程系开设N1学生选修NMN上课PN三个局部ER图合并成一个ER图1图5.24合并后的教学管理E-R图1N1P1N1N1N1MMNNNN社会关系具有1NNM1系聘用承接项目参加设置院长学院主管NN111教师评定职称分配工作量111N档案材料归档参加学会1宿舍住宿教科书担任指导课程选修教室上课有1班级学生组成N开设N管理11教师管理1

1合并后的教学管理ER图逻辑结构设计ER模型向关系模型的转换关系模式的优化逻辑结构设计概念结构设计的结果是得到一个与DBMS无关的概念模式。而逻辑设计的目的是把概念结构设计阶段设计好的全局ER模型转换成与选用的具体机器上的DBMS所支持的数据模式相符合的逻辑结构(包括数据库模式和外模式)。处理需求ER模型DBMS特征从ER模型导出初始数据库模式关系模式规范化模式评价是否需要修正模式修正用DBMS语法描述进入物理设计阶段是否ER模型向关系模式的转换将ER模型转换为关系模式实际上就是要将实体、实体的属性和实体间的联系转换为关系模式的过程。其原则是:1.实体类型的转换将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系模式的键。

ER模型向关系模式的转换2.联系类型的转换联系类型转换成关系模式是根据不同的情况做不同的处理。下面以两个实体的联系为例做如下说明:

若实体间的联系是1:1的,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。ER模型向关系模式的转换例如某学校管理中的实体“校长”与“学校”之间存在着1:1的联系,在将其转化为关系模式时,“校长”与“学校”各为一个关系模式。如果用户经常要在查询学校信息时同时查询其校长信息,那么可在学校模式中加入校长名和任职年月,其关系模式设计如下(加下划线者为主键,加虚线者为外键):学校关系模式(学校名,地址,电话,校长名,任职年月)校长关系模式(校长名,年龄,性别,职称)⑵

若实体间的联系是1:N的,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。例如某学校管理中的实体“系”与“教师”之间存在着1:N的联系,其转换成的关系模式如下:系关系模式(系编号,系名,电话,系主任)教师关系模式(教师编号,姓名,年龄,性别,职称,系编号,聘用年月)ER模型向关系模式的转换ER模型向关系模式的转换⑶

弱实体:若实体间的联系是1:N的,而且在N端实体类型为弱实体,转换成的关系模式中将1端实体类型(父表)的键作为外键放在N端的弱实体(子表)中。弱实体的主键由父表的主键与弱实体本身的候选键组成。也可以为弱实体建立新的独立的标识符ID。ER模型向关系模式的转换1N学生具有社会关系班号姓名所在系学生编号年龄性别家庭住址姓名年龄称呼政治面貌工作单位转换成关系模式如下:学生关系模式(学生编号,姓名,年龄,性别,家庭住址,所在系,班号)社会关系模式(学生编号,称呼,姓名,年龄,政治面貌,工作单位)⑷若实体间的联系是M:N的,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。ER模型向关系模式的转换MN选修学生班号姓名所在系学生编号年龄性别家庭住址开课系编号开课学期课程课程名课程编号课程性质学分数先行课成绩转换成的关系模式如下:学生关系模式(学生编号,姓名,年龄,性别,家庭地址,所在系,班号)课程关系模式(课程编号,课程名,课程性质,学分数,先行课,开课学期,开课系编号)选修关系模式(学生编号,课程编号,成绩)ER模型向关系模式的转换3.超类和子类的转换将超类和子类各转换成一个关系模式,在子类转换成的关系模式(子表)中加入超类转换成关系模式(父表)的键,从而实现父表与子表的联系。由于父表与子表的主键相同,所以子表的主键也是外键。

ER模型向关系模式的转换ER模型向关系模式的转换教师本科生研究生人

温馨提示

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

评论

0/150

提交评论