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

下载本文档

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

文档简介

AnIntroductiontoDatabaseSystem数据库系统概论AnIntroductiontoDatabaseSystem第七章数据库设计AnIntroductiontoDatabaseSystem7.1数据库设计概述

数据库设计数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境AnIntroductiontoDatabaseSystem数据库设计的特点(续)现实世界概念模型设计子模式设计物理数据库设计逻辑数据库设计建立数据库数据分析功能分析功能模型功能说明事务设计程序说明应用程序设计程序编码调试结构和行为分离的设计

AnIntroductiontoDatabaseSystem数据库设计的基本步骤数据库设计分6个阶段需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护

需求分析和概念设计独立于任何数据库管理系统逻辑设计和物理设计与选用的DBMS密切相关AnIntroductiontoDatabaseSystem数据库设计过程中的各级模式数据库设计不同阶段形成的数据库各级模式数据库的各级模式

AnIntroductiontoDatabaseSystem7.2需求分析的任务详细调查现实世界要处理的对象(组织、部门、企业等)充分了解原系统(手工系统或计算机系统)明确用户的各种需求确定新系统的功能充分考虑今后可能的扩充和改变AnIntroductiontoDatabaseSystem需求分析的重点调查的重点是“数据”和“处理”,获得用户对数据库要求

信息要求处理要求安全性与完整性要求AnIntroductiontoDatabaseSystem需求分析的难点确定用户最终需求用户缺少计算机知识设计人员缺少用户的专业知识解决方法设计人员必须不断深入地与用户进行交流AnIntroductiontoDatabaseSystem需求分析的成果数据字典:进行详细的数据收集和数据分析所获得的主要结果数据项数据结构数据流数据存储处理过程数据流图AnIntroductiontoDatabaseSystem数据项

数据项是不可再分的数据单位对数据项的描述

数据项描述={数据项名,数据项含义说明,别名, 数据类型,长度,取值范围,取值含义, 与其他数据项的逻辑关系,数据项之间的 联系}AnIntroductiontoDatabaseSystem数据结构数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述

数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}AnIntroductiontoDatabaseSystem数据流

数据流是数据结构在系统内传输的路径。对数据流的描述

数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}AnIntroductiontoDatabaseSystem数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述

数据存储描述={数据存储名,说明,编号, 输入的数据流,输出的数据流, 组成:{数据结构},数据量,存取频度, 存取方式}AnIntroductiontoDatabaseSystem处理过程具体处理逻辑一般用判定表或判定树来描述处理过程说明性信息的描述

处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}AnIntroductiontoDatabaseSystem数据字典举例例:学生学籍管理子系统的数据字典。数据项,以“学号”为例:数据项:学号含义说明:唯一标识每个学生别名:学生编号类型:字符型长度:8

取值范围:00000000至99999999取值含义:前两位标别该学生所在年级,后六位按顺序编号与其他数据项的逻辑关系:AnIntroductiontoDatabaseSystem处理过程(续)

数据结构,以“学生”为例 “学生”是该系统中的一个核心数据结构:数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级

AnIntroductiontoDatabaseSystem处理过程(续)数据流,“体检结果”可如下描述:数据流:体检结果说明:学生参加体格检查的最终结果数据流来源:体检数据流去向:批准组成:……平均流量:……高峰期流量:……AnIntroductiontoDatabaseSystem处理过程(续)数据存储,“学生登记表”可如下描述:数据存储:学生登记表说明:记录学生的基本情况流入数据流:……

流出数据流:……

组成:……

数据量:每年3000张存取方式:随机存取

AnIntroductiontoDatabaseSystem处理过程(续)处理过程“分配宿舍”可如下描述:处理过程:分配宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生宿舍其处理时间应不超过15分钟。

AnIntroductiontoDatabaseSystem数据字典数据字典是关于数据库中数据的描述,是元数据,而不是数据本身数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善数据流图销售管理子系统第一层数据流图AnIntroductiontoDatabaseSystems7.3概念模型概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基本要求较强的语义表达能力能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解AnIntroductiontoDatabaseSystems信息世界中的基本概念(1)实体(Entity)

客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。(2)属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。(3)码(Key)唯一标识实体的属性集称为码。AnIntroductiontoDatabaseSystems信息世界中的基本概念(续)(4)域(Domain)属性的取值范围称为该属性的域。(5)实体型(EntityType)用实体名及其属性名集合来抽象和刻画同类实体称为实体型(6)实体集(EntitySet)同一类型实体的集合称为实体集AnIntroductiontoDatabaseSystems信息世界中的基本概念(续)(7)联系(Relationship)

现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系实体之间的联系通常是指不同实体集之间的联系AnIntroductiontoDatabaseSystems二、两个实体型之间的联系实体型A联系名实体型B111:1联系实体型A联系名1n1:n联系实体型A实体型B联系名mnm:n联系实体型B用图形来表示两个实体型之间的这三类联系

AnIntroductiontoDatabaseSystems二、两个实体型之间的联系(续)一对一联系(1:1)实例一个班级只有一个正班长一个班长只在一个班中任职定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1

班级班级-班长班长111:1联系AnIntroductiontoDatabaseSystems两个实体型之间的联系(续)一对多联系(1:n)实例一个班级中有若干名学生,每个学生只在一个班级中学习定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n班级组成学生1n1:n联系AnIntroductiontoDatabaseSystems两个实体型之间的联系(续)多对多联系(m:n)实例课程与学生之间的联系:一门课程同时有若干个学生选修一个学生可以同时选修多门课程定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n课程选修学生mnm:n联系AnIntroductiontoDatabaseSystems三、两个以上实体型之间的联系两个以上实体型之间一对多联系若实体集E1,E2,...,En存在联系,对于实体集Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的AnIntroductiontoDatabaseSystems两个以上实体型之间的联系(续)实例

课程、教师与参考书三个实体型一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用课程讲授教师1m两个以上实体型间1:n联系参考书nAnIntroductiontoDatabaseSystems两个以上实体型之间的联系(续)多个实体型间的一对一联系两个以上实体型间的多对多联系实例

供应商、项目、零件三个实体型一个供应商可以供给多个项目多种零件每个项目可以使用多个供应商供应的零件每种零件可由不同供应商供给供应商供应项目mp两个以上实体型间m:n联系零件nAnIntroductiontoDatabaseSystems四、单个实体型内的联系一对多联系实例

职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系

请举例职工领导1n单个实体型内部1:n联系AnIntroductiontoDatabaseSystems单个实体型内的联系实体型1联系名mn单个实体型内的m:n联系多对多联系AnIntroductiontoDatabaseSystems五、概念模型的一种表示方法实体-联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型AnIntroductiontoDatabaseSystemsE-R图实体型用矩形表示,矩形框内写明实体名。属性用椭圆形表示,并用无向边将其与相应的实体连接起来学生教师学生学号年龄性别姓名AnIntroductiontoDatabaseSystemsE-R图(续)联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)AnIntroductiontoDatabaseSystems联系的属性课程选修学生mn成绩联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来KeysAkey

isasetofattributesforoneentitysetsuchthatnotwoentitiesinthissetagreeonalltheattributesofthekey.Itisallowedfortwoentitiestoagreeonsome,butnotall,ofthekeyattributes.Wemustdesignateakeyforeveryentityset.KeysinE/RDiagrams:

Underlinethekeyattribute(s)Example:aMulti-attributeKeyCoursesdeptnumberhoursroom

Notethathoursandroomcouldalsoserveasakey,butwemustselectonlyonekey.设计原则忠实(Faithfulness)避免冗余(Avoidredundancy).能用属性表示的情况下绝不用实体集忠实性例1实体集Stars和Movies之间的Stars-in联系应该是m:n。filmtypeStarsaddressnameMoviestitlelengthyearStars_inmn忠实性(续)例2实体集Course和Instructors之间的Teach联系可以是m:n,但也可能是1:n或者其它类型。避免冗余同一个信息以不同的方式多次存在就会发生冗余。冗余会造成空间浪费,更重要的是可能产生数据不一致。Example:GoodThisdesigngivesthenameofeachstudioexactlyonce.MoviesStudiosOwnstitlenameaddryearm1Example:BadMoviesStudiosOwnstitleThisdesignstatesthenameofeachstudiotwice:addryearStudioName1mExample:BadThisdesignrepeatsthestudio’saddressonceforeachmovieandlosestheaddressiftherearetemporarilynomovieforastudio.MoviestitleyearStudioNameStudioAddr实体集VS.属性一个事物被抽象成实体集,应至少满足下面的条件之一:除了事物的名字外,还应该有其他描述信息;至少有一个非主属性

或该事物出现在m:n或n:1联系的多端。Example:GoodMoviesStudioOwnstitleStudiodeservestobeanentitysetbecauseofthenonkeyattributeaddr.Moviesdeservestobeanentitysetbecauseitisthe“many”ofthemany-onerelationshipOaddr1mExample:GoodMoviestitleThereisnoneedtomakethestudioanentityset,becausewerecordnothingaboutstudiosbesidestheirname.StudioNameExample:BadMoviesStudiosOwnstitleSincetheStudiosisnothingbutaname,andisnotatthe“many”endofanyrelationship,1m7.4逻辑结构设计E-R图向关系模型的转换数据模型的优化设计用户子模式AnIntroductiontoDatabaseSystemsAnIntroductiontoDatabaseSystemE-R图向关系模型的转换E-R图向关系模型的转换要解决的问题如何将实体型和实体间的联系转换为关系模式如何确定这些关系模式的属性和码转换内容将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)实体型间的联系有以下不同情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式与某一端实体对应的关系模式合并(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。转换为一个独立的关系模式与n端对应的关系模式合并AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)(3)一个m:n联系转换为一个关系模式。 例,“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:选修(学号,课程号,成绩)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。 例,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:讲授(课程号,职工号,书号)AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)(5)具有相同码的关系模式可合并目的:减少系统中的关系个数合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序AnIntroductiontoDatabaseSystemE-R图向关系模型的转换(续)注意:从理论上讲,1:1联系可以与任意一端对应的关系模式合并但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定。由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标。例如,如果经常要查询某个班级的班主任姓名,则将管理联系

温馨提示

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

评论

0/150

提交评论