资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,数据库原理及应用,-,项目,2,设计学生信息管理数据库,情景导入,通过项目1的学习,王宁同学对数据库的基本概念、数据描述、数据模型有了初步的认识。于是,李老师给王宁布置了一个新的任务,设计一个学生信息管理数据库,用于对学生的基本信息、成绩信息、公寓住宿等所有数据进行管理。,通过查阅资料,王宁了解到,数据库设计是指对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各类用户的应用需求(信息要求和处理要求)。具体如何实现呢?王宁带着这个问题投入了本项目的学习中。,了解数据库设计,需求分析,概念结构设计,逻辑结构设计,数据库的物理设计,数据库的实施、运行和维护,主要内容,项目,1,理解,数据库,职业能力目标,掌握数据库设计的步骤和方法,理解怎样收集数据,掌握建立E-R模型的方法,掌握如何将E-R模型转换为关系模式,了解关系模式可能存在的问题及规范化,任务,2-1,了解数据库设计,【任务提出】,王宁要设计一个学生信息管理数据库,对学生的所有信息进行科学有效地管理,可是,从哪里入手,要做哪些工作呢?这些都成为了摆在王宁面前的问题。,本任务将带领王宁一起了解数据库设计的基本步骤。,了解数据库设计,按照规范化设计的方法,考虑数据库及其应用系统开发的全过程,将数据库的设计分为以下6个设计阶段。,需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库运行和维护。,了解数据库设计,数据库设计步骤,了解数据库设计,需求分析阶段,需求分析就是根据用户的需求收集数据,是设计数据库的起点。需求分析的结果是否准确反映用户的实际需求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。,概念设计阶段,概念设计是整个数据库设计的关键,它通过对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。,了解数据库设计,逻辑设计阶段,将概念模型转换成某个DBMS所支持的数据模型,并对其进行优化。,物理设计阶段,为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。,了解数据库设计,数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果创建数据库,编制与调试应用程序,组织数据入库,并进行试运行。,数据库运行和维护阶段,对数据库应用系统正式投入运行后,在数据库系统运行过程中必须不断地对其进行评价、调整与修改。,任务,2-1,了解数据库设计,【任务实施】,随着学习的深入,王宁同学的问题找到了答案,要设计学生信息管理系统数据库,要分需求分析、概念设计、逻辑设计、物理设计、数据库的实施、数据库的运行和维护六个阶段完成,数据库的设计过程不是一蹴而就的,有时可能需要不断反复。,任务,2-2,需求分析,【任务提出】,王宁同学即将开始进行学生信息管理系统数据库设计的第1步,即将学生信息管理中的数据收集起来,那么要收集哪些数据呢,收集的步骤及方法是什么?,(,一,),需求分析的任务及目标,需求分析的任务就是收集数据,要尽可能多地收集关于数据库要存储的数据以及将来如何使用这些数据的信息,确保收集到数据库需要存储的全部信息。,需求分析的任务,(,一,),需求分析的任务及目标,(1)有多少数据,数据的来源在哪里,是否有已存在的数据资源?,(2)必须保存哪些数据,数据是字符、数字或日期型?,(3)谁使用数据,如何使用?,(4)数据是否经常修改,如何修改和什么时候修改?,(5)某个数据是否依赖于另一个数据或被其他数据引用?,(6)某个信息是否要唯一?,(7)哪些数据是组织内部的和哪些是外部数据?,(8)哪些业务活动与数据有关,数据如何支持业务活动?,(9)数据访问的频度和增长的幅度如何?,(10)谁可以访问数据,如何保护数据。,可参考以下问题,(,二,),需求分析的方法,(1)调查组织机构情况,为分析信息流程做准备。,(2)调查各部门的业务活动情况,这是调查的重点。,(3)在熟悉了业务的基础上,协助用户明确对新系统的各种要求,包括信息要求、处理要求、完全性与完整性要求,这是调查的又一个重点。,(4)确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。,调查用户需求的步骤:,(,二,),需求分析的方法,(1)跟班作业。通过亲身参加业务工作来了解业务活动的情况。通过这种方法可以比较准确地了解用户的需求,但比较耗费时间。,(2)开调查会。通过与用户座谈来了解业务活动情况及用户需求。座谈时,参加者和用户之间可以相互启发。,(3)请专人介绍。,(4)询问。对某些调查中的问题,可以找专人询问。,(5)问卷调查。设计调查表请用户填写。如果调查表设计得合理,这种方法是很有效的,也易于为用户所接受。,(6)查阅记录。查阅与原系统有关的数据记录。,常用的调查方法:,任务,2-2,需求分析,【任务实施】,为了收集数据库需要的全部信息,王宁通过与学生管理人员和系统的操作者进行交谈、发放调查问卷等方法,记录了如下要点。,(1)数据库要存储每位学生的基本信息、各系部的基本信息、各班级的基本信息、教师基本信息、教师授课基本信息和学生宿舍基本信息。,(2)管理人员可以通过数据库管理各系部、各班、各教师、全院学生的基本信息。,(3)按工作的要求查询数据,如浏览某系部、某班级、某年级、某专业等学生基本信息。,(4)根据要求实现对各种数据的统计,如学生人数,应届毕业生人数,某系、某专业、某班级男女生人数,各系部教师人数,退、休学人数等。,(5)能实现对学生学习成绩的管理(录入、修改、查询、统计、打印)。,(6)能实现对学生住宿信息的管理,如查询某学生的宿舍楼号、房间号及床位号等。,(7)能实现历届毕业生的信息管理,如查询某毕业生的详细信息。,(8)数据库系统的操作人员可以查询数据,管理人员可以修改数据。,(9)使用关系数据库模型。,上述列表中的信息没有固定的顺序,并且有一些信息也可能有重复,或者遗漏了某些重要的信息,这里收集到的信息在后面的设计工作中要与用户反复查对,以确保收集到关于数据库的完整和准确的全部信息。,任务,2-3,概念结构设计,【任务提出】,面对收集到的学生信息管理系统数据库所需要描述的大量复杂的数据,怎么找出它们之间的联系,用哪种数据模型表示呢。,本任务将带领王宁同学一起学习概念结构设计,揭晓问题的答案。,概念结构设计的方法,(一)概念结构设计的方法和步骤,(1)自顶向下。首先定义全局概念结构的框架,然后逐步细化。,(2)自底向上。首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念 结构。,(3)逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。,(4)混合策略。将自顶向下和自底向上的方法相结合,用自顶向下策略设计一个全局概念结构的框架,以它为框架自底向上设计各局部概念结构。,最常采用的是混合策略,即自顶向下进行需求分析,然后自底向上设计概念结构。,(一)概念结构设计的方法和步骤,概念结构设计的步骤,(1)进行数据抽象,设计局部E-R模型。,(2)集成各局部E-R模型,形成全局E-R模型。,(一)概念结构设计的方法和步骤,设计方法,(二)局部E-R模型设计,设计局部,E-R,图首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中的每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分,E-R,图。,将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,确定各局部应用中的实体、实体的属性、标识实体的码、实体之间的联系及其类型(,1,1,,,1,n,,,m,n,)。,【例2.1】设有如下实体。,学生:学号、系名称、姓名、性别、年龄、选修课程名、平均成绩,课程:编号、课程名、开课单位、任课教师号,教师:教师号、姓名、性别、职称、讲授课程编号,单位:单位名称、电话、教师号、教师姓名,上述实体中存在如下联系。,一个学生可选修多门课程,一门课程可为多个学生选修。,一个教师可讲授多门课程,一门课程可为多个教师讲授。,一个系可有多个教师,一个教师只能属于一个系。,(二)局部E-R模型设计,学生选课局部,E-R,图,教师授课局部E-R图,(二)局部E-R模型设计,局部E-R的集成方法,多元集成法,也叫做一次集成,一次性将多个局部E-R图合并为一个全局E-R图。,二元集成法,也叫做逐步集成,首先集成两个重要的局部E-R图,然后用累加的方法逐步将一个新的E-R图集成进来。,(三)全局E-R模型设计,局部E-R图集成步骤,合并分E-R图,消除各种冲突,生成初步E-R图。,消除不必要的冗余,生成基本E-R图。,(三)全局E-R模型设计,冲突,由于各个局部应用所面向的问题不同,并且通常由不同的设计人员进行局部E-R图设计,因此,各局部E-R图不可避免地会有许多不一致的地方,通常把这种现象称为冲突。,属性冲突:又分为属性值域冲突和属性的取值单位冲突。,命名冲突:又分为同名异义和异名同义。,结构冲突,(三)全局E-R模型设计,优化后的基本E-R图,(三)全局E-R模型设计,任务,2-3,概念结构设计,【任务实施】,王宁同学根据本任务学习的概念设计步骤和方法,将学生信息管理系统数据库的概念设计按照如下两个步骤进行。,1进行数据抽象,设计局部E-R模型,王宁同学在对收集到的大量信息进行分析、整理后,确定了数据库系统中应该存储如下信息:学生基本信息、系部基本信息、班级基本信息、教师基本信息、课程基本信息、学生学习成绩信息、学生综合素质成绩信息、毕业生基本信息、宿舍基本信息、系统用户信息。,根据这些信息抽象出系统将要使用的实体:学生、系部、班级、课程、教师、宿舍。定义实体之间的联系以及描述这些实体的属性,最后用E-R图表示这些实体和实体之间的联系。,任务,2-3,概念结构设计,【任务实施】,学生实体的属性:学号、姓名、性别、出生日期、身份证号、家庭住址、联系电话、邮政编码、政治面貌、简历、是否退学、是否休学。码是学号。,系部实体的属性:系号、系名、系主任、办公室、电话。码是系号。,班级实体的属性:班级号、班级名称、专业、班级人数、入学年份、教室、班主任、班长。码是班级号。,课程实体的属性:课程号、课程名、学期。码是课程号+学期。,教师实体的属性:教师号、姓名、性别、出生日期、所在系别、职称。码是教师号。,宿舍实体的属性:楼号、房间号、住宿性别、床位数。码是楼号+房间号。,任务,2-3,概念结构设计,【任务实施】,实体与实体之间的联系为:,一个系拥有多个学生,每个学生只能属于一个系;,一个班级拥有多个学生,每个学生只能属于一个班级;,一个系拥有多名教师,一位教师只能属于一个系;,一个学生只在一个宿舍里住宿,一个宿舍里可容纳多名学生;,一个学生可学习多门课程,一门课程可由多名学生学习;,一位教师可承担多门课程的教授任务,一门课程可由多位教师讲授。,因此,系部实体和学生实体的联系是一对多联系;,系部实体和教师实体是一对多联系;,班级实体和学生实体是一对多联系;,学生实体和课程实体是多对多联系;,课程实体和教师实体多对多联系;,宿舍实体和学生实体是一对多联系。,任务,2-3,概念结构设计,【任务实施】,根据上述抽象,可以得到学生选课、教师授课、学生住宿、学生班级等的局部E-R图。,学生选课局部E-R图,任务,2-3,概念结构设计,【任务实施】,教师授课局部E-R图,学生住宿局部E-R图,任务,2-3,概念结构设计,【任务实施】,教师授课局部E-R图,任务,2-3,概念结构设计,【任务实施】,2全局E-R模型设计,各个局部E-R图建立好后,接下来的工作是对它们进行合并,消除各局部E-R图中的冲突,消除不必要的冗余,集成为该管理系统的全局E-R图。,任务2-4 逻辑结构设计,【任务提出】,王宁分析得到的学生信息管理系统的全局E-R图仍然不能直接在计算机上实现,怎么办呢?李老师告诉王宁,需要将其转换为某个具体的DBMS所支持的数据模型才可以。接下来,本任务将和王宁同学一起学习如何将E-R模型转换成关系模式,并进行规范化。,一般的逻辑设计分为以下3步,(,1,)初始关系模式设计。,(,2,)关系模式规范化,。,(,3,)模式的评价与改进。,任务2-4 逻辑结构设计,转换规则:,(一)初始关系模式设计,规则,2.1,实体类型的转换,:将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体的标识符即为关系模式的键。,规则,2.2,联系类型的转换,:根据不同的联系类型做不同的处理。,规则,2.2.1,若实体间联系是,1,1,,可以在两个实体类型转换成的两个关系模式中任意一个关系模式中加入另一个关系模式的键和联系类型的属性。,规则,2.2.2,若实体间的联系是,1,n,,则在,n,端实体类型转换成的关系模式中加入,1,端实体类型的键和联系类型的属性。,规则,2.2.3,若实体间联系是,m,n,,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合,。,规则,2.2.4 3,个或,3,个以上的实体间的一个多元联系,,不管联系类型是何种方法,总是将多元联系类型转换成一个关系模式,其属性为与该联系相连的各实体的键及联系本身的属性,其键为各实体键的组合。,规则,2.2.5,具有相同键的关系可合并。,【例,2.2,】将,下,图所,示的含有,1,1,联系的,E-R,图根据上述规则转换为关系模式。,或者:,方案,1,:“负责”与“职工”两关系模式,合并。,职工(,职工号,,姓名,年龄,产品号),产品(,产品号,,产品名,价格),方案,2,:“负责”与“产品”两关系模式,合并。,职工(,职工号,,姓名,年龄),产品(,产品号,,产品名,价格,职工号),(一)初始关系模式设计,【例2.3】将下图所示的含有1n联系的E-R图根据上述规则转换为关系模式。,仓库(,仓库号,,地点,面积),产品(,产品号,,产品名,价格,仓库号,数量),(一)初始关系模式设计,【例2.4】将下图所示的含有1n联系的E-R图根据上述规则转换为关系模式。,职工,(,职工,号,,,姓名,年龄,领导工号,),(一)初始关系模式设计,【例2.5】将下图所示的含有mn联系的E-R图根据上述规则转换为关系模式。,商店(,店号,,店名,店址,店经理),商品(,商品号,,商品名,单价,产地),经营(,店号,,,商品号,,月销售量),(一)初始关系模式设计,【例2.6】将下图所示的含有mn联系的E-R图根据上述规则转换为关系模式。,零件(,零件号,,名称,价格),组装(,组装件号,,,零件号,,数量,),(一)初始关系模式设计,【例2.7】将下图所示的多实体集间含有mn联系的E-R图根据上述规则转换为关系模式。,供应商(,供应商号,,供应商名,地址),零件(,零件号,,零件名,单价),产品(,产品号,,产品名,型号),供应(,供应商号,,,零件号,,,产品号,,数量),(一)初始关系模式设计,【例2.8】将下图所示的的E-R图根据上述规则转换为关系模式。,系(,系名,,电话),教师(,教师号,,姓名,性别,职称,系名),学生(,学号,,姓名,性别,年龄,系名),课程(,课程号,,课程名),选修(,学号,,,课程号,,成绩),讲授(,教师号,,,课程号,),(一)初始关系模式设计,1、存在的问题及解决方法,例如,要设计一个教学管理数据库,希望从该数据库中得到学生学号、姓名、年龄、性别、系别、系主任姓名、学生学习的课程名和该课程的成绩信息。若将此信息要求设计为一个关系,则关系模式如下。,S,(,sno,,,sname,,,sage,,,ssex,,,sdept,,,mname,,,cname,,,score,),该关系存在以下问题:,数据冗余太大。,插入异常。,删除异常。,更新异常。,解决办法:分解,S,(,sno,,,sname,,,sage,,,ssex,,,sdept,),SC,(,sno,,,cname,,,score,),DEPT,(,sdept,,,mname,),(二)关系模式的规范化,2,、范式,利用规范化理论,使关系模式的函数依赖集满足特定的要求,满足特定要求的关系模式称为范式。,关系按其规范化程度从低到高可分为5级范式(Normal Form),分别称为1NF、2NF、3NF(BCNF)、4NF、5NF。规范化程度较高者必是较低者的子集,即,5NF 4NF BCNF 3NF 2NF 1NF,(二)关系模式的规范化,第一范式,定义,4,:如果关系模式,R,中不包含多值属性,(,每个属性必须是不可分的数据项,),,则,R,满足第一范式,(First Normal Form),,记作,R1NF,。,第二范式,第三范式,定义5:如果关系模式R(U,F)1NF,且R中的每个非主属性完全函数依赖于R的某个候选码,则R满足第二范式(Second Normal Form),记作R 2NF。,定义6:如果关系模式R(U,F)2NF,且每个非主属性都不传递函数依赖于任何候选码,则R满足第三范式(Third Normal Form),记作R 3NF。,(二)关系模式的规范化,任务2-4 逻辑结构设计,【任务实施】,根据设计要求,王宁同学为学生信息管理数据库选用关系数据模型,按照转换规则将E-R图转换成关系模式(表)并规范化后,王宁得到的逻辑结构设计结果,为:,学生(学号,姓名,性别,出生日期,身份证号,家庭住址,联系电话,邮政编码,政治面貌,简历,是否退学,是否休学,楼号,房间号,床位号,班级号),系(系号,系名,系主任,办公室,电话),班级(班级号,班级名称,专业,班级人数,入学年份,教室,班主任,班长,系号),课程(课程号,课程名,学期),教师(教师号,姓名,性别,出生日期,职称,系号),宿舍(楼号,房间号,住宿性别,床位数),选修(学号,课程号,成绩),讲授(教师编号,课程号,学期),任务2-5 数据库的物理设计,【任务提出】,王宁同学在得到了学生信息管理系统数据库的关系模式后,是不是就可以开始创建操作了呢,还需要做什么工作?李老师告诉王宁,接下来还要明确数据库在存储设备的存储方法及优化策略,要确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构;确定系统配置等。,数据库的物理结构指,数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统。,数据库的物理设计是指,为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。,数据库的物理设计可分为两步。,(1)确定数据库的物理结构,在关系数据库中主要指存储结构和存取方法。,(2)对物理结构进行评价,评价的重点是时间和空间效率。,1、索引存取方法选择,(一)关系模式存取方法选择,2、聚簇存取方法的选择,所谓索引存取方法就是根据应用要求确定对关系的哪些属性列来建立索引、哪些属性列建立组合索引、哪些索引要设计为唯一索引等。,为了提高某个属性或属性组的查询速度,把这个或这些属性上具有相同值的元组集中存放在连续的物理块称为聚簇。,3、HASH存取方法选择,如果一个关系的属性主要出现在等值连接条件中或主要出现在相等比较选择条件中,并且满足下列两个条件之一时,则此关系可以选择HASH存取方法。,(1)如果一个关系的大小可预知,并且不变。,(2)如果关系的大小动态改变,并且所选用的DBMS提供了动态HASH存取方法。,(一)关系模式存取方法选择,主要任务,确定数据的存放位置;,确定系统配置。,(二)确定数据库的存储结构,任务提出,任务2-6 数据库的实施、运行和维护,在完成数据库的物理设计后,王宁要开始数据库的实施、运行与维护操作了。在这一阶段,王宁将主要完成数据的导入、应用程序的编写与调试、数据库试运行,以及正式投入运行之后的维护工作,以保证数据库的正常运转。,主要任务,(一)数据库的实施,数据载入,应用程序的编码和调试,数据库试运行,在数据库运行阶段,对数据库经常性的维护工作主要由DBA完成,包括以下几个方面。,数据库的转储和恢复,数据库的安全性、完整性控制,数据库性能的监督、分析和改进,数据库的重组织与重构造,(二)数据库的运行与维护,任务实施,任务2-6 数据库的实施、运行和维护,王宁设计完成的学生信息管理系统包括学生信息浏览子系统、学生信息查询子系统和学生信息统计子系统三部分。其中,学生信息浏览子系统可实现全院学生的信息浏览、某系部学生的信息浏览、某系部某年级某班级学生的信息浏览;学生信息查询子系统可实现学生信息的模糊查询;学生信息统计子系统可实现各类学生信息的统计,如学院总人数的统计、学院男女生人数的统计等。,项目总结,本项目,主要带领大家学习了数据库设计的步骤及各个阶段的主要任务。,要求大家加强复习,增进理解。把各个知识点学会、领悟,能举一反三。,主要内容,重点要求大家,结合练习内容进行强化复习,灵活掌握设计步骤及各个阶段的工作任务及实现方法。,重难点要求,志存高远 自强不息,
展开阅读全文