第8章 数据库的设计.ppt
1,第8章 数据库的设计,主讲教师 毛一梅2010.01,2,一、概述,数据库设计的基本概念数据库设计人员应具备的知识数据库设计的特点数据库设计的方法数据库设计的基本步骤,3,1、数据库设计的基本概念,数据库设计是建立数据库及其应用系统的技术的基础,是信息系统开发和建设中的核心技术和重要的组成部分。具体来讲,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。,4,2、数据库设计的专业人员应具备的知识:,计算机的基础知识和程序设计的方法与技巧;软件工程的原理和方法;数据库的基础知识和设计技术;应用领域的知识。其中应用领域的知识随着应用系统所属的领域不同而不同。数据库设计人员必须深入实际与用户密切接触,对应用环境、专业知识有具体深入的了解才能设计出符合具体领域要求的数据库应用系统。,5,3、数据库设计的特点,将技术和管理相结合强调结构(数据)设计和行为(处理)设计相结合。,6,数据库设计应该与应用系统设计相结合,结构(数据)设计:设计数据库框架或数据库结构行为(处理)设计:设计应用程序、事务处理等,7,一个性能优良的数据库不可能一次性地完成设计,需要经过“反复探寻,逐步求精”的过程。首先从数据模型开始设计,以数据模型为核心进行展开,将数据库设计和应用系统设计相结合,建立一个完整、独立、共享、冗余小和安全有效的数据库系统。,8,4、数据库设计的方法,直观设计法规范设计法计算机辅助设计法自动化设计法这些设计方法大都是数据库设计在不同阶段所使用的具体技术和方法。,9,5、数据库设计的基本步骤,按照规范的设计方法,考虑数据库及应用系统开发的全过程,将数据库设计分为以下六个阶段:需求分析概念结构设计逻辑结构设计物理设计数据库实施数据库的运行和维护,10,需求分析阶段,概念设计阶段,数据库运行和维护阶段,11,CreatLoad,Main()ifthenend,逻辑结构设计,概念结构设计,物理设计,12,二、需求分析,需求分析就是分析用户对数据库的具体要求,需求分析是整个数据库设计的起点。它的结果需要准确地反映用户的实际要求,因为这将影响到后面各个阶段的设计和最终结果是否合理和实用。准确了解与分析用户需求(包括数据与处理)是整个设计过程的基础,是最困难、最耗费时间的一步,13,1、需求分析的任务,通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求 在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库,14,2、需求分析的重点,需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。,15,(1)信息要求,用户需要从数据库中获得信息的内容与性质由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据,16,(2)处理要求,对处理功能的要求对处理的响应时间的要求对处理方式的要求(批处理/联机处理),17,(3)安全性与完整性要求,安全性是指用户需要如何保护数据不被未授权的用户破坏,完整性是指用户需要如何检查和控制不合语义的、不正确的数据,防止它们进入数据库。,18,3、需求分析的难点,用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。新的硬件、软件技术的出现也会使用户需求发生变化。,19,解决方法,设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步得以确定用户的实际需求,20,4、需求分析的步骤,调查组织机构情况(组织部门的组成情况、各部门的职责等)调查各部门的业务活动情况(各个部门输入和使用什么数据、如何加工处理这些数据、输出什么信息、输出到什么部门、输出结果的格式是什么)。-调查重点之一在熟悉业务活动的基础上,协助用户明确对新系统的各种要求(信息要求、处理要求、完全性与完整性要求)。-调查重点之二。对前面调查的结果进行初步分析(确定新系统的边界:即确定哪些功能由计算机完成或将来准备让计算机完成、确定哪些活动由人工完成,由计算机完成的功能就是新系统应该实现的功能。),21,5、需求调查的常用方法,跟班作业开调查会请专人介绍或询问设计调查表请用户填写查阅记录(包括各类报单、报表),22,做需求调查时,往往需要同时采用多种方法无论使用何种调查方法,都必须有用户的积极参与和配合设计人员应该和用户取得共同的语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对设计工作的最后结果共同承担责任,23,了解用户需求后,还需要进一步分析和表达用户的需求,使之转换为后续各设计阶段可用的形式。分析和表达用户需求的方法很多,其中结构化分析(Structured Analysis,SA)方法是一个简单实用的方法。SA方法是从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并且把每一层用数据流图和数据字典进行描述。,24,6、对需求调查结果的分析,系统抽象分解处理功能和数据,25,首先把任何一个系统都抽象为:,26,分解处理功能和数据,分解处理功能将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。分解数据在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图 数据流图表达了数据和处理过程的关系表达方法 处理过程:用判定表或判定树来描述 数据:用数据字典来描述,27,需求分析阶段的工作结果是数据库设计的重要基础,因此对用户需求进行分析和表达后,必须要交给用户,征得用户的认可。,28,需求分析过程小结,29,7、数据流图,数据流图(DFD,Data Flow Diagram)是描述各处理活动之间数据流动的有力工具,是一种从数据流的角度描述一个组织业务活动的图示。数据流图被广泛用于数据库设计中,并作为需求分析阶段的重要文档资料系统需求说明书的重要内容,也是数据库信息系统验收的依据。,30,(1)数据流图中使用的基本符号及其含义,或,数据源点或宿点,或,变换数据的处理,或,数据存储,数据流,31,从原则上讲,只要有足够大的纸,一个软件系统的数据流图可以画在一张纸上。但当系统比较复杂时,为了便于理解,控制其复杂性,根据自顶向下逐层分解的思想,可以将数据流图进行分层绘制。在分层数据流图中,顶层图只有一张图,其中只有一个处理,代表整个软件系统,该处理描述了软件系统与外界(源或宿)之间的数据流;顶层图中的加工经过分解后的图称为0层图,也只有一张,它描述系统的全貌,揭示了系统的组成部分及各部分之间的关系;1层图分别描述各子系统的结构。如果系统结构还比较复杂,那么可以继续细化,直到表达清楚为止。在处理功能逐步分解的同时,它们所用的数据也逐级分解,形成若干层次的数据流图。,32,33,(2)数据流图应用举例,以图书管理系统开发的需求调研为例,在详细调查用户需求后,经过抽象、综合,将用户的活动归类为:注册、借书、还书和图书查询等活动。在此基础上可将业务活动描述如下:注册:工作人员对读者进行信息注册,发放借书证。借书:首先输入读者的借书证号,检查借书证是否有效;如借书证有效,则查阅借还书登记文件,检查该读者所借图书是否超过可借图书数量(不同类别的读者具有不同的可借图书数量)。若超过,拒绝借阅;未超过,再检查图书的库存数量,在有库存的情况下办理借书,修改库存数量,并记录读者借书信息。还书:根据所还图书编号及借书证编号,从借还书登记文件中,查阅与读者有关的记录,查阅所借日期。如果超期,作罚款处理;否则,修改库存信息与借还书记录。图书查询:根据一定的条件对图书进行查询,并可查看图书详细信息。,34,图书管理系统顶层数据流图,通过以上描述可以把握用户的工作需求,要进一步分析系统范围内的用户活动所涉及数据的性质、流向和所需的处理,用数据流图进行描述。图书管理系统顶层数据流图如下:,35,图书管理系统的0层数据流图,36,还书处理的第1层数据流图,还书审核,还书信息,超期处理,登记入库,登记还书,未超期图书,经处理的超期图书,罚款单,超期图书,读者信息,图书信息,图书/读者信息,借书信息,还书信息,37,8、数据字典,数据字典是进行数据收集和数据分析所获得的主要成果。数据字典是各类数据描述的集合,是数据库设计中的又一个有力工具。数据字典是对数据流图中出现的所有数据元素给出逻辑定义和描述,可供系统设计者,软件开发者、系统维护者和用户参照使用。数据字典通常包括:数据项、数据结构、数据流、数据存储和处理过程五个部分。,38,(1)数据项,数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:数据项描述数据项名称,别名,数据项含义说明,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系 其中:取值范围、与其他数据项的逻辑关系定义了该数据项的完整性约束条件,是设计数据检查功能的依据。当然不是每个数据项描述都包含上述所有内容。,39,图书管理系统涉及很多数据项,其中“借书证号”数据项可以描述如下:数据项:借书证号 别名:卡号 含义说明:唯一标识一个借书证类型:字符型 长度:10 取值范围:S|T000000000至S|T999999999 取值含义:第一位是字母,代表学生(S)或老师(T);第二、三位标识该学生所在年级,第四、五位标识该学生所在系部,后五位按顺序编号。,40,(2)数据结构,数据结构反映了数据项之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括以下内容:数据结构描述数据结构名,含义说明,组成:数据项或数据结构,41,在图书管理系统中,“读者”是核心数据结构之一,它可以描述如下:数据结构名:读者 含义说明:是图书管理系统的主体数据结构之一,定义了一个读者的相关信息 组成:=学号|工号姓名性别年龄所在系年级借书证号,42,(3)数据流,数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:数据流描述数据流名称,说明,数据流来源,数据流去向,组成:数据结构,平均流量,高峰期流量 其中:数据流来源说明该数据流来自哪里,可以是一个处理、源或文件;数据流去向说明该数据流将到哪个处理、宿或文件。平均流量是指在单位时间(每天、每周、每月等)中的传输次数。高峰期流量则是指在高峰时期的数据流量。,43,“罚款单”是图书管理系统中的一个数据流,具体描述如下:数据流名:罚款单 说明:超期归还图书的处理结果 数据流来源:超期处理 数据流去向:流通部(或读者)组成:=借书证号姓名图书编号书名超期天数罚款金额 平均流量:高峰期流量:,44,(4)数据储存,数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:数据存储描述数据存储名,说明,编号,写文件加工,读文件加工,组成:数据结构,数据量,存取方式 其中:流入的数据流要指出其来源;流出的数据流要指出其去向;数据量是指每次存取多少数据,每天(或每小时、每周等)存取几次等信息;存取方式包括是批处理还是联机处理,是检索还是更新,是顺序检索还是随机检索等。,45,“图书借阅表”是图书管理系统中的一个数据存储,具体描述如下:数据存储名:借还表 说明:记录图书借阅的基本信息 写文件的处理:登记借书、登记还书流出数据流:还书审核组成:=借书证号图书编号借阅日期应归还日期实际归还日期数据量:平均每年60000条存取方式:随机存取,46,(5)处理过程,数据字典中只需要描述处理过程的说明性信息,通常包括以下内容:处理过程描述处理过程名,说明,输入:数据流,输出:数据流,处理逻辑:简要说明 其中,简要说明中主要描述该处理过程的功能及处理要求。功能是指该处理过程用来做什么(而不是怎么做)处理要求包括处理频度要求,如单位时间里处理多少事务,多少数据量;响应时间要求等。这些处理要求是后面物理设计的输入及性能评价的标准。,47,处理过程“还书审核”可如下描述:处理过程名:还书审核说明:认定该图书借阅是否超期输入:还书信息、借书信息、读者信息输出:超期图书或未超期图书 处理逻辑:根据借阅表和读者表,如果借阅图书没有超过规定的期限,认定未超期图书,否则认定为超期图书。要求从借阅之日起,学生借阅时间不能超过3个月,教师不能超过6个月。,48,由此可见,数据字典是关于数据库中数据的描述,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。,49,三、概念结构设计,需求分析阶段描述的用户应用需求是现实世界的具体需求将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键,50,51,1、概念结构设计的特点,(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换。,52,2、描述概念模型的工具,E-R模型,53,3、概念结构设计的方法,自顶向下 首先定义全局概念结构的框架,然后逐步细化自底向上 首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构逐步扩张 首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构混合策略 将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。,54,(1)自顶向下策略,55,(2)自底向上策略,56,(3)逐步扩张策略,57,概念结构设计的步骤,常用策略自顶向下地进行需求分析自底向上地设计概念结构自底向上设计概念结构的步骤第1步:抽象数据并设计局部视图第2步:集成局部视图,得到全局概念结构见P211图7.8,58,4、数据抽象与局部视图设计,数据抽象局部视图设计,59,(1)数据抽象,概念结构是对现实世界的一种抽象从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节把这些特性用各种概念精确地加以描述这些概念组成了某种模型,60,三种常用抽象,分类聚集概括,61,分类(Classification),定义某一类概念作为现实世界中一组对象的类型这些对象具有某些共同的特性和行为它抽象了对象值和型之间的“is member of”的语义在E-R模型中,实体型就是这种抽象见P212图7.10,62,聚集(Aggregation),定义某一类型的组成成分它抽象了对象内部类型和成分之间“is part of”的语义在E-R模型中若干属性的聚集组成了实体型,就是这种抽象见P212图7.11,63,概括(Generalization),定义类型之间的一种子集联系它抽象了类型之间的“is subset of”的语义概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。例:P217图6.13,64,注:原E-R模型不具有概括,本书对E-R模型作了扩充,允许定义超类实体型和子类实体型。用双竖边的矩形框表示子类,用直线加小圆圈表示超类-子类的联系,65,数据抽象的用途,对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体实体的属性,标识实体的码确定实体之间的联系类型(1:1,1:n,m:n),66,(2)局部视图设计,设计分E-R图的步骤:选择局部应用逐一设计分E-R图,67,选择局部应用,需求分析阶段,已用多层数据流图和数据字典描述了整个系统。设计分E-R图首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分E-R图。,68,通常以中层数据流图作为设计分E-R图的依据。原因:高层数据流图只能反映系统的概貌中层数据流图能较好地反映系统中各局部应用的子系统组成低层数据流图过细,69,对于学籍管理、课程管理等不太复杂的系统,可以从它们数据流图入手设计学生管理子系统的分E-R图。如果局部应用比较复杂,则可以从更下层的数据流图入手。,70,逐一设计分E-R图,标定局部应用中的实体、属性、码,实体间的联系将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(1:1,1:n,m:n),71,实体:,现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是“is member of的关系。例:在学校环境中,可把张三、李四等对象抽象为学生实体。,72,属性:,对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是“is part of的关系。例:学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。,73,如何区分实体和属性,实体与属性是相对而言的。同一事物,在一种应用环境中作为“属性”,在另一种应用环境中就必须作为“实体”。例:学校中的系,在某种应用环境中,它只是作为“学生”实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时它就需要作为实体了。,74,一般原则,属性的特性属性必须是不可分的数据项,不能再由另一些属性组成。属性不能与其他实体具有联系。联系只发生在实体之间。符合上述两条特性的事物一般作为属性对待。为了简化E-R图的处置,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。,75,举例,例1:“学生”由学号、姓名等属性进一步描述,根据准则,“学生”只能作为实体,不能作为属性。例2:职称通常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处理会更合适些。(教程194图6-10),76,设计分E-R图的步骤,(1)以数据字典为出发点定义E-R图。数据字典中的“数据结构”、“数据流”和“数据存储”等已是若干属性的有意义的聚合(2)按上面给出的准则进行必要的调整。,77,例:,在图书管理系统中的实体,参照局部应用中的数据流图和数据字典,可以初步确定为读者、读者类型、图书和图书类别。由于一本图书可以借给多个学生阅读,而一个学生又可以借阅多本图书,因此图书与读者之间是m:n的联系;由于一个读者属于一种读者类型,一种读者类型包括多名读者,因此读者类型与读者之间是1:n的联系。,78,得到“注册”局部应用的分E-R图,79,得到“借还”局部应用的分E-R图,80,(3)全局概念结构的集成,当所有的局部E-R图设计完毕后,就可以对局部E-R图进行集成。集成即把各局部E-R图加以综合连接在一起,使同一实体只出现一次,消除不一致和冗余。局部E-R模型的集成一般需要经过两个步骤:(1)合并,解决各局部E-R图之间的冲突问题,生成初步的E-R图。(2)修改和重构,消除不必要的冗余,生成基本的E-R图。见P220-223,81,四、逻辑结构设计,概念结构是独立于任何一种数据模型的信息结构,它与DBMS无关。对于系统的实现还需要将概念结构进一步转换为逻辑结构,再通过计算机来加以实现。逻辑结构设计的任务就是把概念结构设计阶段产生的系统基本E-R图转换为某种具体的DBMS所支持的数据模型相符合的逻辑结构。逻辑结构设计一般分三步:将概念结构转换为一般的关系、网状或层次模型。将转换来的关系、网状、层次模型向DBMS支持下的数据模型转换,变成合适的数据库模式。对模式进行调整和优化。,82,(一)E-R图向关系模型的转换,E-R图由实体、实体的属性、实体之间的联系三个要素组成,因此E-R图向关系模型的转换就是解决如何将这三要素转换成关系模型中的关系和属性以及如何确定关系的码。,83,在E-R图向关系模式的转换遵循的原则,实体的转换原则联系的转换原则,84,1.实体的转换,原则1:一个实体型转换为一个关系模式,实体名成为关系名,实体的属性成为关系的属性,实体的码就是关系的码。,85,2.联系的转换,由于实体间的联系存在一对一、一对多、多对多三种联系类型,所以实体间的联系转换时,则采取不同的原则。,86,(1)1:1联系的转换,原则2:一个1:1联系,可以将联系转换成一个独立的关系模式,也可以与联系的任意一端对应的关系模式合并。如果转换成独立的关系模式,则与该联系相连的各实体的码及联系本身的属性均转换成新关系的属性,每个实体的码均是该关系的候选码;如果将联系与其中的某端实体对应的关系模式合并,则需在该关系模式中加上另一关系模式的码及联系自身的属性。,87,(2)1:n联系的转换,原则3:一个1:n联系,可以将联系转换成一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系自身的属性均转换成新关系模式的属性,n端实体的码成为新关系的码;如果将其与n端实体对应的关系模式合并,则将1端关系的码和联系的自身的属性加入到n端实体对应的关系模式中,这时n端实体对应的关系模式的码仍然保持不变。,88,(3)m:n联系的转换,原则4:对于m:n联系,将其转换成一个独立的关系模式。与该联系相连的各实体的码及联系自身的属性均转换成新关系的属性,而新关系模式的码为各实体的码的组合。,89,(4)多元联系的转换,原则5:对于三个或三个以上实体的多元联系可以转换成一个独立的关系模式。与该联系相连的各实体的码及联系本身的属性均转换成新关系的属性,而新关系模式的码为各个实体的码的组合。,90,3.关系模式的合并,原则6:具有相同码的关系模式可以合并。为减少系统中的关系个数,如果两个关系模式具有相同的主码,可以考虑将它们合并为一个关系模式,合并时将其中一个关系模式的全部属性加入到另一个关系模式,然后去掉其中的同义属性,并适当调整属性的次序。,91,例如在转换中得到的关系模式中得到“属于”和“读者”两个关系模式:属于(卡号,读者类别ID)读者(卡号,姓名,性别,部门,办卡日期,卡状态)两者的码均是“卡号”,因此可以将这两个关系模式进行合并,合并后的关系模式为:读者(卡号,姓名,性别,部门,办卡日期,卡状态,读者类别ID),92,(二)逻辑结构的优化,数据库逻辑结构设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导。,93,常用的优化步骤,1)确定各属性间的数据依赖。从E-R图转换而来的关系模式还只是逻辑结构的雏形,根据需求分析阶段得到的语义,用数据依赖的概念分析和表示数据之间的联系,写出每个关系模式的各属性之间的函数依赖以及不同关系模式各属性之间的数据依赖关系。2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余联系。3)根据数据依赖的理论逐一分析各关系模式,考查是否存在部分函数依赖,传递函数依赖等,确定它们分别属于第几范式。4)按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并和分解。5)对关系模式进行必要的分解。我们知道被查询关系的大小对查询的速度有很大的影响,为了提高数据操作的效率和存储空间的利用率,有时需要把关系进行分割。常用方法是水平分解和垂直分解,这两种方法的思想都是提高数据访问的局部性。,94,(三)外模式的设计,将概念结构转换为逻辑结构后,也就生成了整个应用系统的模式,此时,还应该根据局部应用的需求,结合具体DBMS的特点设计用户的外模式。外模式是用户所看到的数据模式,各类用户有各自的外模式。目前关系数据库管理系统一般都提供了视图概念,可以利用这一功能设计更符合局部用户需要的外模式。,95,定义外模式时可以考虑如下几个方面:,(1)尽可能符合不同用户的使用习惯(2)保证数据的安全性(3)简化用户对系统的使用,96,应用实例,为学生信息管理系统设计一个学生信息数据库,该系统主要实现对学生基本信息、班级、课程、教师等的管理,学生选课管理以及数据的综合查询统计等功能。学生信息管理系统功能需求包括:基本信息管理、课程设置与选课管理、查询与统计。,97,功能需求分析,(1)基本信息管理该模块包括班级信息、学生基本信息、课程基本信息、教师基本信息的输入、维护、删除功能。(2)课程设置与选课管理该模块包括学期课程设置、编制课表、学生选课。学期课程设置设定本学期所开设课程并安排相应的教师;编制课程表,根据学期课程安排编制课程表;根据学期的课程安排和课程表,学生进行选课。(3)查询与统计查询和统计学生、教师、课程的基本信息、课表信息、学期课程安排信息、课程表、学生选课信息等。,98,得到如下的数据需求:,(1)班级信息:班级编号、班级名称、专业、所属院系、入学年度、学制、备注。(2)学生基本信息:学号、姓名、性别、出生日期、政治面貌、毕业学校、照片、籍贯、备注。(3)课程信息:课程编号、课程名、类别、学分、备注(4)教师信息:工号、姓名、性别、所在院系、专业、学历、毕业学校、备注。(5)教室信息:教室编号、教室名称、位置、容纳人数、备注。(6)班级学生表:班级编号、学号、状态、备注。(7)学期课程安排表:安排编号、学期、课程编号、教师编号、周课时数、上课周数、开始时间、结束时间、考试方式、学分、班级编号、备注。(8)课程表:课程表编号、安排编号、教室编号、上课时间、备注。(9)学生选课表:课程安排编号、学号、成绩、备注。,99,编写数据字典,对数据项、数据结构、数据流、数据存储、处理过程进行描述。,100,数据项“班级编号”描述:,数据项:班级编号别名:班级号含义说明:唯标识一个班级类型:字符型长度:10位取值范围:0000000001-9999999999取值含义:前4位为该班建立的年度号;第5位标注入学季节,0为春季入学,1为秋季入学;第6、7位为所在二级学院序列号;第8位为所在系序列号;第9位为所学专业序列号;第10位为相关专业的班级序列号。,101,“课程信息”的数据结构描述:,数据结构名:课程信息含义说明:它是学生选课的依据之一,定义了一门课程的相关信息组成:=课程编号+课程名+类别+学分+备注,102,“学期课程安排表”的数据流描述:,数据流名:学期课程安排表说明:下学期授课的安排信息数据流来源:授课计划、教室信息表、教师信息表、课程信息表数据流去向:听课学生、任课教师、教务处组成:安排编号+学期+课程编号+教师编号+周课时数+上课周数+开始时间+结束时间+考试方式+班级编号+学分+备注平均流量:10000条/年高峰期流量:300条/天,103,“学生信息表”数据存储描述:,数据存储名:学生信息表说明:记录学生的基本信息写文件的处理:新生入学报到后从新生登记表中获取信息并输入。流出数据流:为所有学生相关的表如成绩表登记、选课表登记等提供学生基本信息。也为学生基本信息查询、统计模块提供原始数据。组成:学号+姓名+性别+出生日期+政治面貌+毕业学校+照片+籍贯+备注数据量:平均每年30000条存取方式:随机存取,104,进行概念结构设计,经过分析、归纳、整理,可以得到的具体实体有:学生、教师、课程、班级、教室等。学生、教师、课程、班级、教室实体,105,得到相关实体的属性图,106,得到E-R图,107,逻辑结构设计,将E-R图转换为关系模型,则可得到如下关系:学生(学号,姓名,性别,出生日期,政治面貌,毕业学校,籍贯,照片,备注)教师(工号,姓名,性别,所在院系,专业,毕业学校,学历,照片,备注)班级(班级编号,班级名称,专业,入学年度,学制,所属院系,备注)教室(教室编号,教室名称,位置,容纳人数,备注)课程(课程编号,课程名称,学分,类别,备注),108,由于存在m:n的关系,所以需要增加一些关系:选课-成绩(学号,课程号,任课教师编号,成绩,学分)课程-教室(课程编号,教室编号,上课时间),109,五、物理结构设计,物理结构设计根据具体的DBMS的特点和应用处理的需要,将逻辑结构设计的关系模式进行物理存储安排,建立索引,形成数据库的内模式。,110,数据库的物理结构设计通常分为两步:,确定数据库的物理结构;对物理结构进行评价,评价的重点是时间和空间效率。,111,1、确定数据库的物理结构,1)数据库物理设计的要求2)确定数据的存取方法3)确定数据的存储结构,112,数据库物理设计的要求,通常对于关系数据库物理结构设计的内容主要包括:为关系模式选择存取方法;设计关系、索引等数据库文件的物理存储结构。,113,确定数据的存取方法,存取方法是快速存取数据库中数据的技术,许多关系型数据库管理系统都提供了多种存取方法。常用的方法有三类:索引存取方法;聚簇(Cluster)存取方法;HASH方法。其中索引方法中的B+树索引方法是数据库中经典的存取方法。具体采用哪种存取方法由系统根据数据的存储方式决定,一般用户不能干预。,114,确定数据的存储结构,确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志和备份等的存储安排和存储结构;确定系统配置等。确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,因此需要进行权衡,选择一个折中方案。,115,2、评价物理结构,在确定了数据库的物理结构之后,还需进行评价,其评价重点是时间和空间的效率。在实施数据库前,对这些方案进行细致的评价,以选择一个较优的方案作为数据库的物理结构。,116,六、数据库的实施,设计人员使用具体的关系数据库管理系统提供的数据定义语言DDL和其他的实用程序将数据库逻辑结构设计和物理结构设计严格地描述出来,在计算机上建立起实际数据库结构,然后装入数据、进行测试和试运行,这就是数据库实施阶段的主要任务。,117,七、数据库的运行和维护,数据库试运行符合要求后,数据库就可以正式运行。由于应用环境在不断的变化,数据库运行过程中物理存储也会不断的变化,因此对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。,118,思考题,1、什么是数据库设计?它有什么特点?2、试述数据库设计的基本步骤,并说明各个步骤的工作内容及成果。3、什么是数据字典?它包括哪些内容?4、什么是数据流图?它有什么作用?,