《数据库原理(微课版)》第六章数据库设计_第1页
《数据库原理(微课版)》第六章数据库设计_第2页
《数据库原理(微课版)》第六章数据库设计_第3页
《数据库原理(微课版)》第六章数据库设计_第4页
《数据库原理(微课版)》第六章数据库设计_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

《数据库原理》第六章

数据库设计本章简介本章内容:数据库设计概述介绍数据库设计的方法、分类、步骤等内容数据库需求分析、概念结构设计、逻辑设计、物理设计、数据库的实施与维护等步骤的工作内容及所使用的具体设计方法。学习目标:了解数据库设计的基本概念,包括数据库设计方法、分类、步骤等。熟练掌握数据库设计的基本步骤,以及各设计步骤的工作内容。熟练掌握使用E-R模型进行数据库概念结构设计的方法与步骤。熟练掌握E-R图转换为关系模型、关系模型的优化方法。了解数据库设计物理设计、实施与维护的工作内容与方法本章目录6.1数据库设计概述6.2需求分析6.3数据库概念结构设计6.4数据库逻辑设计6.5数据库物理设计6.6数据库实施与维护6.1数据库设计概述6.1.1数据库设计方法6.1.2数据库设计分类6.1.3数据库设计步骤6.1数据库设计概述6.1.1数据库设计方法1.直观设计法依靠设计者的经验和水平来设计数据库的开发模式。2.规范设计法数据库设计规范:不断迭代,逐步求精。这种方法将数据库设计分为几个阶段,规定了各阶段的任务,依据数据库理论最终完成对整个数据库的设计。典型方法有新奥尔良方法、基于E-R模型的数据库设计方法、3NF(第三范式)的设计方法、统一建模语言(UML)方法等。6.1数据库设计概述6.1.1数据库设计方法3.计算机辅助设计法注,近年出现较多国产的数据库设计软件,例如chiner、DatablauDataModeler、FreedgoDesign、EdrawMax等,这说明我国更多优秀的软件开发人才正在进入数据库管理系统及相关软件研发领域,这方面的技术发展,值得期待。这些工具支持概念模型、数据库逻辑模型设计,包括PowerDesigner、ERWin、ERStudio等。数据库需求分析与设计工具这类工具软件一般是绘图软件功能的延伸,提供E-R图绘制组件,可画图完成E-R图、数据库逻辑模型图的设计,包括MicrosoftVisio、smartDraw等。数据库绘图工具这类工具一般是由数据库管理系统开发商提供的,例如SQLServer、Oracle等系统的管理工具都具有类似功能。DBMS逆向工具6.1数据库设计概述6.1.1数据库设计方法4.自动化设计法自动化设计法是指利用数据库自动化工具来完成设计数据库。自动化设计优势:提升设计效率显著提升数据库设计的效率,减少设计时间和工作量。提高设计质量帮助设计者生成结构良好、符合规范化理论的数据库,提高设计质量。降低出错概率减少设计错误,提高设计的准确性和可靠性。6.1数据库设计概述6.1.1数据库设计方法4.自动化设计法举例:程序员可借助编程框架实现从单个软件生成其所使用数据库结构,从数据库生成简单访问代码的功能。例如,Java程序员可使用诸如Hibernate、MyBaits(及其变种)等对象关系映射框架(Object-RelationalMapping,ORM)来实现由程序中的对象生成关系数据库、由关系数据库生成程序中对象及其创建、删除、修改等操作代码的功能。现状:需要设计者提供正确的输入和参数,否则可能导致设计结果错误或不符合需求;只能处理基本、常规的数据库设计任务,对于特殊需求可能无法满足,无法自动生成满足关系数据库规范化理论的、结构良好的关系数据库。另外,数据库设计是一项复杂的工程,目前还没有自动化工具可生成可供多个软件共同使用的结构复杂的数据库。6.1数据库设计概述6.1.2数据库设计分类1.单个软件使用的数据库面向单个软件的数据管理需求,数据需求相对统一。“包含”在使用它的软件中,其运行维护与软件的运行维护同步。若在运行维护过程中,软件的需求发生变化,数据库有可能需要改变模式以适应变化的数据管理需求。若软件退役,数据库也就终止运行了。数据库设计时,一般需要从软件的需求分析中抽取数据需求,依据数据需求进行数据库设计。也有少数情况下,由于软件改版等原因,可以在已有数据库基础上,依据新的需求进行调整改造。此类数据库设计侧重于满足软件数据管理需求及数据库的规范性。6.1数据库设计概述6.1.2数据库设计分类2.多个应用程序共享的数据库一般是面向企事业单位的多方面的数据管理需求,数据需求在各部门之间往往存在分歧甚至矛盾。它一般长期运行,数据库模式几乎不变,不会因为个别软件的需求改变而修改。数据库运行过程中不断会有旧的软件退役、有新的软件投入使用,因此,它需要一些设计余量,以满足未来一段时间内应用可能会产生的数据需求。可能涉及多类型数据的管理,可能有些会超出关系数据库范围,例如视频、图像、音频、地图、CAD文件、表格等多种类型数据。因此,需要以大数据、数据中心建设的思想开展工作。数据库设计复杂,首先需要明确当前需要使用数据库的每个软件的数据管理需求。但在此基础上,还需要花较多精力协调多个应用的数据定义中属性、实体、联系等多种冲突。供多个应用程序共享的数据库的设计一般是在已有多个数据库的基础上进行,也有少量开始于有多个软件的明确的数据需求时。6.1数据库设计概述6.1.3数据库设计步骤需求分析:数据库设计的起点。需要分析用户的数据需求,明确需要数据库实现的功能。该步骤需要数据库设计人员与用户合作来实现。2.概念结构设计将需求分析转化为数据库概念模型的过程。3.逻辑结构设计将设计好的概念模型转化为与某个特定数据库管理系统支持的数据模型所对应的结构,并对其进行优化。4.物理结构设计为已经确定的逻辑数据结构选取一个适合应用环境的物理结构5.数据库实施与维护建立数据库、编制与调试应用程序、组织数据入库进行试运行。维护阶段的任务是对数据库的转存和恢复,维护数据库的安全性与完整性。本章目录6.1数据库设计概述6.2需求分析6.3数据库概念结构设计6.4数据库逻辑设计6.5数据库物理设计6.6数据库实施与维护6.2需求分析6.2.1需求分析任务和方法6.2.2需求分析的实例6.2需求分析6.2.1需求分析任务和方法需求分析是设计数据库的第一步,也是设计数据库的基础,会影响到后面数据库设计的质量。任务方法明确用户对系统的数据需求,收集支持系统目标的基础数据及其数据处理方法。是软件需求分析的一部分,需要详细分析业务对象的组织结构、用户的业务过程、每个业务环节上需要软件提供的功能及可能的扩充和改变。6.2需求分析6.2.1需求分析任务和方法需求分析调查的内容(1)数据存储需求。明确数据库中所有数据,例如输入、输出、存储数据、数据间的联系及约束。(2)数据处理需求。明确用户需要完成的数据处理功能,包括数据处理的方式、数据处理的优先级、数据处理发生的频度、操作的执行频率和场合、数据量大小、数据处理响应速度等。(3)数据信息安全性和完整性要求。包括数据处理的安全保密要求、数据和数据视图的访问权限、数据库的安全认证机制、数据的完整性约束条件等,以确保数据安全,避免出现数据泄露、篡改和滥用状况。另外明确数据的完整性要求,可利用各种技术手段保障数据的正确性、一致性。6.2需求分析6.2.1需求分析任务和方法需求分析调查的步骤:(1)调查组织机构。为了分析数据的流向,需要了解用户所属企业的规模、组织架构等。比如用户所属的组织机构各部门的规模和职责、各部门之间的联系、需要使用待开发系统的用户类型及各类用户的业务和操作权限等信息。(2)熟悉业务活动。对各个部门的业务情况进行了解,主要了解各部门的数据使用的情况,例如,各部门输入输出数据的内容与格式,各部门的数据操作处理等。(3)明确数据要求。在熟悉用户所属企业的情况和业务内容后,需要明确用户对数据库设计所必须满足的要求。包括数据内容要求、功能处理要求、数据信息安全性与完整性要求等。(4)确定数据库功能。在以上调查结果的基础上分析,确定数据库的管理边界,即具体数据的管理功能、数据来源及接口等。6.2需求分析6.2.1需求分析任务和方法需求分析调查的步骤:数据需求分析报告数据需求分析报告内容包括:系统概括、数据需求分析技术、数据字典、数据流图等。在数据需求分析报告撰写之后,需要组织设计方和用户方进行需求确认和评审,重点检查数据需求分析报告是否完全、准确、无歧义地描述了用户的每一项数据需求。若需求确认和评审有问题,重复上述步骤修正数据需求成果,直至双方一致认可,得到正式数据需求分析报告,可才进入下一阶段工作。数据需求分析报告可以是独立的报告,也可以是软件需求规格说明书的重要组成部分。6.2需求分析6.2.1需求分析任务和方法需求分析调查的步骤:6.2需求分析6.2.1需求分析任务和方法调查用户需求的方法:(1)专家访谈与集体会议。可以通过对业务熟练的专家用户进行一对一的访谈,请他们对业务情况进行详细说明,以便数据库设计人员对业务需求有进一步的了解;也可以组织一场需求调查会议,让各个部门业务人员聚集在一起,谈本部门的工作业务,从而提炼出涉及到的数据及处理需求。在会议和访谈之前,设计人员也可以提前准备对需求的问题,使设计人员对需求细节有更深的理解和认识。(2)观察工作流程。可以选择典型业务对用户工作流程跟班作业,目的是对相关工作部门的业务活动、组成情况、工作职能、使用或处理的数据情况进行熟悉了解。(3)使用调查问卷来确定需求。根据用户业务活动需求的差异,设计数据需求问题,例如,数据处理方式、是否有涉密数据等。将这份调查表发给相关业务活动的用户,以便了解各部门用户的需求情况。(4)查阅业务资料。查阅与业务流程相关的单据、报告、工作记录等资料。6.2需求分析6.2.1需求分析任务和方法需求分析的方法:结构化分析方法(StructureAnalysis,SA)数据流图(DataFlowDiagram,DFD)数据字典(DataDictionary,DD)方法面向对象分析方法(Object-orientAnalysis,OA)......6.2需求分析6.2.2需求分析实例1.软件需求描述软件需求规格说明书是一份严谨复杂的文档且具有一定的法律效力。例如对大学教学活动来讲,用户角色至少包括教务员、教师、学生三类。教务员的工作:下达教学任务、排课、查看全学院教学任务、查看选课学生列表、查看开课教师列表等。教师的工作:查看教学任务、查看课表、打印点名册、录入学生成绩、打印成绩单等。其中打印成绩单包括打印教学班成绩单、打印班级成绩单、打印试卷分析等三种不同的打印任务。对班级成绩单和教学班成绩单,可打印历史成绩单,也可打历史课表。学生的工作:选课、查看课表、查看选修成绩、查看总成绩单(入学以来所有选修课程及成绩)等。6.2.2需求分析实例图6-3教务管理系统的USECASE总图6.2.2需求分析实例图6-4课表样例6.2需求分析6.2.2需求分析实例2.数据字典数据字典是软件需求规格说明书或数据需求说明书的重要组成部分,用于定义、描述整个软件所使用数据元素。对每个数据,描述其名称、结构组成、存储、处理逻辑等内容。其最小描述单位是数据项,数据由数据项组成。本实例数据字典内容:学院、教师、学生、课程、教学任务、选课(学生选课)、选修成绩列表、总成绩单、点名册、成绩单(包括教学班成绩单、班级成绩单、试卷分析3类)、全学院教学任务、选课学生列表、开课教师列表等数据。数据较多时,一般会对数据、数据项进行编号,方便描述。6.2需求分析6.2.2需求分析实例2.数据字典图6-4-课表是一项数据:课表=学年+学期+姓名+角色+上课时间(包括周几、第几节课)+课程名称+上课周范围+上课地点学年:年号,整数,范围1950-3000学期:两个取值:春、秋姓名:由汉字、字母、数字组成的字符串,长度50角色:两个取值:教师、学生上课时间:取值包括周几、第几节课,周取值包括星期一到星期日共7个,第几节课取值包括:第1-2节至第11-13节共6个。具体上课下课时间可参看学校校历。课程名称:由汉字、字母、数字组成的字符串,长度50上课周范围:示例中“1-12周”指第1-12周,“5-12周”指第5-12周。具体第几周是哪一天可查看学校校历。上课地点:由教学楼、教室号组成。例如“教3-304”中教3是教学楼,304是房间号。本章目录6.1数据库设计概述6.2需求分析6.3数据库概念结构设计6.4数据库逻辑设计6.5数据库物理设计6.6数据库实施与维护6.3数据库概念结构设计6.3.1概念模型及其结构6.3.2数据抽象6.3.3E-R模型6.3数据库概念结构设计6.3.1概念模型及其结构概念结构设计是将用户需求抽象为信息世界概念模型的过程。概念模型是从数据的应用语义的角度来抽取模型,并按用户的观点对数据和信息进行建模,是现实世界到信息世界的中间层次,是数据库设计阶段的关键所在。6.3数据库概念结构设计6.3.1概念模型及其结构1.概念结构主要特点数据库概念结构设计是整个数据库设计的关键,是各种数据模型的基础。概念结构通过对用户需求进行综合,归纳与抽象,设计合适的概念模型(例如,E-R图)。该模型具有以下特点:(1)概念模型不仅要满足用户对数据的具体处理要求,还要保证能够真实、全面、充分的反映现实世界中事物与事物之间的联系。概念模型是反映现实世界的模型。(2)概念模型是易于用户理解的,确保能够让每一个用户都能够参与数据库的设计。(3)概念模型要求易于修改扩充。(4)概念模型要易于转换逻辑结构中的数据模型。概念模型最终要向关系、网状、层次等各种数据模型转换。在设计概念模型时需要注意,能够方便快捷进行特定的数据模型转换。6.3数据库概念结构设计6.3.1概念模型及其结构2.概念结构的设计方法与步骤设计概念结构通常包括四种方法:自顶向下的设计方法、自底向上的设计方法、逐步扩张的设计方法、混合策略设计的方法等。(1)自顶向下的设计方法。要求根据具体需求定义全局概念结构的框架,逐步细化为不同的子概念,最后形成完整的全局概念结构,该方法是最常用的设计方法,如图6-5所示。6.3数据库概念结构设计6.3.1概念模型及其结构2.概念结构的设计方法与步骤(2)自底向上的设计方法。要求根据不同的子需求定义各局部应用的概念结构,集成后形成完整的全局概念结构,如图6-6所示。6.3数据库概念结构设计6.3.1概念模型及其结构2.概念结构的设计方法与步骤(3)逐步扩张的设计方法。要求先定义最重要的核心概念结构,向外扩充,生成其他概念结构,直至完成总体概念结构。(4)混合策略设计的方法。采用自顶向下与自底向上相结合的设计方法。首先用自顶向下策略设计一个全局概念结构的框架,再引入自底向上策略设计的各局部概念结构。6.3数据库概念结构设计6.3.2数据抽象概念模型是对现实世界中事物及其相互关系的一种抽象。抽象就是对实际的人、物、事和概念进行人为的处理,抽取现实世界存在的共同特性,精确描述这些概念,并且不忽略其本质的细节,最后形成某种模型。通常,数据抽象包括分类、聚集和概括3种基本方法。(1)

分类(Classification)。分类是面向对象的设计方法中常用的一种抽象,指定义某一类概念作为现实世界中一组对象的类型,这些对象具有某些共同的特性和行为。分类抽象了对象值和型之间的“成员”的语义。6.3数据库概念结构设计6.3.2数据抽象数据抽象包括分类、聚集和概括3种基本方法。(2)聚集(Aggregation)。聚集可简单理解为定义某一类型的组成部分。它抽象了对象内部类型和对象内部“组成部分”的语义。在E-R模型中,若干属性的聚集组成了实体型。例如,学号(id)、名字(name)、所在学院(college_name)、专业(major)、性别(gender)、出生日期(birthday)都可抽象为学生实体的属性。6.3数据库概念结构设计6.3.2数据抽象,数据抽象包括分类、聚集和概括3种基本方法。(3)概括(Generalization)。概括定义了类型之间的一种子集联系。它抽象了类型之间“所属”的语义。例如,学生是个实体集,班长、学习委员也是实体集,班长、学习委员均是学生的子集。可把学生称为超类(Superclass),班长、学习委员称为职工的子类(Subclass)。继承性指子类继承超类中定义的所有抽象。子类可以添加某些特殊属性6.3数据库概念结构设计6.3.3E-R模型E-R模型(Entity-Relationshipmodel)是由美籍华裔计算机科学家陈品山1976年提出来的,也被称作实体-联系模型。E-R模型是概念数据模型最常用的数据模型或模式图,是数据库设计的理论基础。E-R模型可以使用图形化的方法表示,称为E-R图。E-R图提供实体型、属性和联系的图形化的方法,可以形象直观地表示一个E-R模型。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是实体、属性和联系。(1)实体(Entity)实体是客观存在并且可以相互区别的事物。实体可以是具体的人、事和物,也可以是抽象的概念或联系。例如,一个学生、一场比赛、一个班级、一所学校等。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是实体、属性和联系。(1)实体(Entity)由于具有相同属性的实体拥共同特征和性质,因此使用实体名及其属性集合来抽象和刻画同类实体,称之为“实体型”。同一类型的实体构成的集合称为“实体集”。一般将实体、实体型和实体集等三个概念统称为“实体”。在E-R模型当中所提到的实体通常是指实体集。实体实例是实体的具体值。一个实体集应该拥有一个以上的实例。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素E-R模型的基本元素成分是实体、属性和联系。(1)实体(Entity)。在E-R图中,用矩形来表示实体,内部写明实体的名称(用名词表示)。为了方便工作人员与用户之间的交流,需求分析阶段通常使用中文表示实体名,在设计阶段再根据需要转换成相应的英文。英文实体名通常使用首字母大写,且具有实际意义的英文表示。属性和联系的名称也采用类似的方法。E-R图中,用矩形来表示实体女孩男孩学生人类6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(2)属性(Attribute)属性是指实体或联系所具有的性质或特征。一般来说,一个实体都是通过许多个属性来共同描述。“码”是可以唯一标识实体的属性或属性组。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(2)属性(Attribute)属性的取值范围称为该属性的域,也称为属性的值域。例如,在学生实体中的“性别”属性取值只能为“男”或者“女”。同一个实体集中,不同实体的同一个属性的属性域是相同的,但可能取不同的值。为了确认某个特别指定的实体,可以通过该实体属性的一组的特定值来进行确定。6.3数据库概念结构设计E-R图中的属性可以分为简单属性、复合属性;单值属性、多值属性、派生属性等。简单属性:实体与联系的最基本属性,是不能再进行分割的最小单位;复合属性:由多个简单属性组成,是能够再分割为更小部分的属性;单值属性:一个属性只有一个值;多值属性:一个属性可能对应一组值,用双线椭圆形表示;派生属性:由其他属性计算得出的属性,使用虚线椭圆形表示。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(2)属性(Attribute)一般来说,实体和属性之间的差异并没有直截的界限划分。但是,在现实世界中具体的应用环境对实体和属性做了自然划分。实体还是属性?设计原则:原则1:现实世界的事物能作为属性对待的尽量作为属性对待。原则2:“属性”不能再具有需要描述的性质,“属性”必须是不可分割的数据项,不能包含其他属性原则3:“属性”不能与其他实体具有联系6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(3)联系(Relationship)不同实体之间的相互关系。在现实世界中,不同类型的事物之间以及相同类型的事物之间都是有联系的。这些现实世界中的联系反映在信息世界当中就是不同实体集之间以及同一实体集内部不同实体之间的联系。实体之间联系类型的不同会直接导致数据库不同的逻辑结构设计,并影响到用户功能的实现。所以区分联系类型是一项非常重要的工作。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(3)联系(Relationship)联系的元数是指和联系所关联的实体集的个数,它由现实中参与联系的实体集个数决定。例如,联系通常会有一元联系、二元联系、和三元联系,少数情况下会存在四元或更多元的联系。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(3)联系(Relationship)一元联系是一个实体集内部一些实体与另一个实体之间的联系,例如学生中有些学生是班长,他管理他们班的其它学生,所以学生实体集中有一个联系,联系的一方是班长、另一方是班级成员。同样,课程中有些课程是另外一些课程的先行课程,课程实体集上也有一个一元联系,联系的一方是课程、另一方是它的选行课程。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(3)联系(Relationship)二元联系是两个实体集之间的联系,例如学院和学生之间有从属联系,一个学院有多个学生,而每个学生仅属于一个学院。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(3)联系(Relationship)三元联系是有三个实体集参与的联系,例如学生、教师和课程之间有一个选修联系,学生选修一门课程,就意味着他选修由某教师教授这一门课程,教师讲授一门课,其受众一定是学生,而课程开出一定是某位教师讲授、一些学生来学习才能成立的。因此,教师、学生、课程之间存在一个叫作选修的三元的联系。图6-10学院、学生、课程、教师之间的联系6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素二元联系的类型:①一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有1个实体与之联系,反之亦然,则称A与B具有一对一联系,记为1∶1例如,学院和院长之间是一对一的联系。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素二元联系的类型:②一对多联系(1:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。例如,一个学院有多名学生、而一个学生在一个时刻只能属于一个学院,因此,学院和学生之间是一对多的联系,其中学院是1方,学生是多方。6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素二元联系的类型:③多对多联系(m:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。例如,若只考虑学生和课程之间的联系,则它是一个二元多对多的联系,因为一名学生可以选修多门课程,一门课程也可以被多个学生所选修。图6-11二元联系的类型6.3数据库概念结构设计6.3.3E-R模型1.E-R模型的基本元素(3)联系(Relationship)联系也可以用属性描述。例如学生属于学院,可添加起始时间、终止时间,选修可以添加选修学年、选修学期、上课教室等属性来更加详细地描述。与实体的码类似,一般也有可以唯一标识一个联系的属性或属性组,称为联系的码。联系的码是参与联系的各实体码的集合的子集。6.3数据库概念结构设计6.3.3E-R模型2.E-R图的设计步骤:(1)分E-R图设计(2)E-R图的集成(3)修改和重构6.3数据库概念结构设计6.3.3E-R模型2.E-R图的设计(1)分E-R图设计根据某个系统的具体情况,将系统分解为若干个局部应用。对每个局部应用,在多层数据流图中选择一个中层数据流图,作为设计分E-R图的出发点。根据局部应用的数据流程图中标定的实体集、属性和主码,并结合数据字典中的相关描述内容,确定E-R图中的实体、实体之间的联系。6.3数据库概念结构设计6.3.3E-R模型2.E-R图的设计(1)E-R图的集成分一次集成和逐步集成两种方式。主要是消除冲突的操作,来解决各分E-R图之间的冲突问题。主要的冲突分属性冲突、命名冲突和结构冲突三类属性冲突:

身高:180cm1.8m,年龄与生日等

命名冲突:同名异意:课程所属学院---学生所属学院

;异名同意:生日---出生日期

结构冲突:

某个分ER中的实体是另一个分ER中的属性,

某个分ER中的实体是另一个分ER中的联系。姓名---姓、中间名、名6.3数据库概念结构设计6.3.3E-R模型2.E-R图的设计(3)修改和重构消除冗余数据和冗余实体间联系。方法:(1)分析法消除冗余数据,以数据字典和数据流图为依据,按照数据字典中关于数据项之间逻辑关系的说明来消除冗余。(2)关系规范化理论来消除冗余联系。对每个局部应用,在多层数据流图中选择一个中层数据流图,作为设计分E-R图的出发点。【例6-1】某高校教学管理系统的E-R图例【6-2】画出某高校学生管理的E-R图。图6-14

学生学籍管理子系统局部E-R图图6-15

教学管理子系统局部E-R图图6-16初步E-R图图6-17

全局E-R图对开课的不同理解本章目录6.1数据库设计概述6.2需求分析6.3数据库概念结构设计6.4数据库逻辑设计6.5数据库物理设计6.6数据库实施与维护6.4数据库逻辑设计6.4.1E-R模型向关系模型的转换6.4.2关系模型的优化6.4.3数据库的外模式设计6.4数据库逻辑设计6.4.1E-R模型向关系模型的转换转换原则:(1)

一个实体转换为一个关系模式。实体属性就是关系属性,标识符即为关系模式的码。(2)

两个实体间1:1联系,则可以在两个实体转换成的两个关系模式中任意一个关系模式属性中加入另一个关系模式的码和联系类型属性。图6-19班级与班长的概念模式关系模式:班级(班级号,人数,班长学号)班长(学号,姓名,联系电话)或班级(班级号,人数)班长(学号,姓名,联系电话,班级号)6.4数据库逻辑设计6.4.1E-R模型向关系模型的转换转换原则:(3)两个实体间1:n联系,则在n端实体转换成关系模式中加入1端实体的码和联系类型属性。关系模式:学院(学院编号,学院名称,联系电话,地址)学生(学号,姓名,生日,性别,专业,学院编号)6.4数据库逻辑设计6.4.1E-R模型向关系模型的转换转换原则:(4)一个实体间m:n联系,则将联系类型也转换成关系模式,其属性为两端实体的码加上联系类型属性,而键为两端实体的码的组合。关系模式:教师(工号,姓名,专业,性别,生日,职称)学生(学号,姓名,生日,性别,专业)授课(工号,学号,学年,学期,课程编号、课程名称)6.4数据库逻辑设计6.4.2关系模型的优化基于规范化理论的关系模型优化方法:(1)确定数据依赖。按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间的数据依赖。(2)对于各个关系模式之间数据依赖进行极小化处理,消除冗余联系。(3)按照数据依赖理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。(4)按照需求分析阶段得到的处理要求,分析这些模式对于应用环境是否合适,确定是否需要对某些模式进行分解。对关系模式进行必要分解,提高数据操作效率和存储空间利用率6.4数据库逻辑设计6.4.2关系模型的优化例6-3College(college_name,college_telephone,college_address,college_desc)Course(course_id,title,college_name,credits,hours)Instructor(ID,name,college_name,gender,birthday,title)Student(ID,name,college_name,major,gender,birthday)Section(course_id,sec_id,semester,year,building,room_number,time_slot_id)Classroom(building,room_number,capacity,classroom_type)Timeslot(time_slot_id,start_week,end_week,day,start_hr,start_min,end_hr,end_min)takes(

ID,course_id,sec_id,semester,year,grade)teaches(

ID,course_id,sec_id,semester,year)prereq(

course_id,prereq_id)6.4数据库逻辑设计6.4.2关系模型的优化【例6-4】请给出例6-2中E-R模型的逻辑结构设计College(college_id,college_name,college_telephone,college_address)Class(class_id,class_name,instructor_id)Student(student_id,name,class_id,major,gender,birthday)Course(course_id,course_name,college_id,credits)Instructor(instructor_id,name,major,gender,birthday,title,phone,college_id)teaches(instructor_id,course_id,semester,year)takes(student_id,course_id,grade)prereq(

course_id,prereq_id)6.4数据库逻辑设计6.4.2关系模型的优化【例6-4】请给出例6-2中E-R模型的逻辑结构设计College(college_id,college_name,college_telephone,college_address)Class(class_id,class_name,instructor_id)Student(student_id,name,class_id,major,gender,birthday)Course(course_id,course_name,college_id,credits)Instructor(instructor_id,name,major,gender,birthday,title,phone,college_id)teaches(instructor_id,course_id,semester,year)takes(student_id,course_id,grade)prereq(

course_id,prereq_id)6.4数据库逻辑设计6.4.3数据库的外模式设计数据库的外模式,即用户子模式。关系数据库管理系统中提供的视图是根据用户子模式设计的。这一阶段任务是根据系统需求,设计相应用户视图。设计用户视图时,只考虑用户对数据的使用要求、习惯及安全性要求,不用考虑系统的时间效率、空间效率和维护等问题。设计中尽量使用符合用户习惯的别名,对不同权限用户设计不同视图,以保证系统安全。除此之外,将应用系统中经常使用的一些复杂查询设计成视图,方便用户使用。6.4数据库逻辑设计6.4.3数据库的外模式设计【例6-5】创建视图显示当前学期所有学生选修的课程及成绩。CREATEVIEWcurrent_transcriptAS

SELECTstudent.id,name,takes.course_id,title,takes.semester,takes.year,gradeFROM(studentnaturaljointakes)JOINcourseONtakes.course_id=course.course_idWHEREyear=YEAR(CURRENT_DATE)andsemester=IF(MONTH(CURRENT_DATE)>2ANDMONTH(CURRENT_DATE)<9,'Spring','Fall')ORDERBYstudent.id,takes.course_id;CREATEVIEWview_testASSELECTID,name,majorFROMstudent;本章目录6.1数据库设计概述6.2需求分析6.3数据库概念结构设计6.4数据库逻辑设计6.5数据库物理设计6.6数据库实施与维护6.5数据库物理设计6.5.1物理结构设计内容6.5.2评价物理结构6.5数据库物理设计6.5.1物理结构设计内容1.关系模式存取方法的选择确定关系模式的存取方法即建立存取路径。数据库是多用户共享的系统,对同一关系要建立多条存取路径才能满足多用户的多种应用要求。数据库管理系统常用存取方法有B+树索引存取方法、Hash索引存取方法和聚簇存取方法。(1)

B+树索引存取方法(2)

Hash索引存取方法的选择(3)

聚簇存取方法的选择6.5数据库物理设计6.5.1物理结构设计内容2.设计数据库的存储结构设计数据库的存储结构需要考虑存取时间、

温馨提示

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

评论

0/150

提交评论