版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 关系数据库设计,3.1 数据库设计概述 3.2 概念结构设计 3.3 逻辑结构设计 3.4 本章小结,3.1 数据库设计概述,数据库设计是指对于一个给定的应用环境,设计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储、管理和利用数据,满足各种用户的应用需求(包括数据需求、处理需求、安全性和完整性需求)。 也就是说,数据库设计不但要建立数据库,而且还要建立基于数据库的应用系统,即设计整个数据库应用系统,这是对数据库设计的广义理解。 本书主要讨论狭义的数据库设计,即设计数据库本身,或者说,设计数据库的各级模式并据此建立数据库,这是整个数据库应用系统设计的一部
2、分。,3.1.1 数据库设计的方法,新奥尔良方法 规范设计法,即运用软件工程思想,将设计过程分为若干阶段和步骤,按照工程化的方法设计数据库。 新奥尔良方法将数据库设计分成需求分析、概念设计、逻辑设计和物理设计四个步骤。 现在常用的规范设计法大多起源于新奥尔良方法,只是在数据库设计的不同阶段上采用了某些具体的技术和方法。 基于E-R模型的数据库设计方法 基于3NF的数据库设计方法 CASE(Computer-Aided Software Engineering,计算机辅助软件工程),3.1.2 数据库设计的基本步骤,按照规范设计法,可以将数据库设计的全过程分为六个基本阶段(如图3.1所示): 需
3、求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护 在这六个阶段中,需求分析和概念结构设计可以独立于任何数据库管理系统,因此,在设计的初期,并不急于确定到底采用哪一种数据库管理系统,从逻辑结构设计阶段开始才需要选择一种具体的数据库管理系统。,3.1.2 数据库设计的基本步骤(续),需求分析阶段得到的用户需求在概念结构设计阶段形成独立于任何数据库管理系统的概念模型(有时也称概念模式),通常用E-R图表示。 在逻辑结构设计阶段,按照一定的转换规则将E-R图转换为某一数据库管理系统支持的数据模型(即逻辑模型,如关系模型),从而形成数据库的逻辑模式;然后在此基础上为不同用户
4、/应用建立必要的视图(View),从而形成数据库的外模式。 在物理结构设计阶段,根据所用数据库管理系统的特点和用户的处理需求,进行物理存储安排、建立必要的索引,从而形成数据库的内模式。 数据库各级模式的形成如图3.2所示。,3.1.2 数据库设计的基本步骤(续),3.1.2 数据库设计的基本步骤(续),数据库的设计需要多种人员在不同阶段参与进来,包括系统分析人员、数据库设计人员、数据库管理员、应用开发人员和用户。 系统分析人员和数据库设计人员是数据库设计的核心人员,他们将自始至终参与数据库的设计,他们的水平直接决定了数据库系统的质量。 由于需要对数据库进行全面的管理和控制,数据库管理员也需要参
5、与数据库设计的全过程。 应用开发人员(包括程序员和操作员)在数据库实施阶段参与进来,负责编制程序和准备软硬件环境。 用户在需求分析阶段和概念结构设计阶段参与进来,使设计人员能准确把握用户的各种需求,设计出使用户满意的概念模型;此外,设计出来的数据库最终还要交给用户正式运行,因此,用户还要参与数据库的运行和维护阶段。,3.1.2 数据库设计的基本步骤(续),需求分析阶段 进行数据库设计首先必须准确了解和分析各种用户的应用需求。 需求分析是整个设计过程的基础,是最困难、也最耗时的一步。 简单地说,需求分析就是分析用户的需求,是设计数据库的起点。 通过调查、收集和分析,获得用户对数据库的以下需求:
6、数据需求。 处理需求。 安全性与完整性需求。 对用户的以上需求进行分析和表达之后,必须提交 给用户,征得用户的认可。 需求分析阶段的一个重要而困难的任务是收集将来 应用可能涉及到的数据,设计人员应充分考虑到应 用的可扩充性,使系统易于扩充。,3.1.2 数据库设计的基本步骤(续),概念结构设计阶段 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳和抽象,形成独立于任何数据库管理系统的概念模型,通常用E-R图表示。 在需求分析阶段得到的应用需求首先应抽象为信息世界中的概念模型,才能更准确地用某一数据库管理系统支持的数据模型来实现这些需求。 和数据模型相比,概念模型更容易被用户理
7、解,是设计人员和用户之间进行交流的语言,用户的积极参与是数据库设计成功的关键。,3.1.2 数据库设计的基本步骤(续),逻辑结构设计阶段 逻辑结构设计是将概念模型转换为某一数据库管理系统支持的数据模型(即逻辑模型,如关系模型),并对其进行优化。 此外,逻辑结构设计还要根据用户对数据的不同需求建立必要的视图,即外模式。,3.1.2 数据库设计的基本步骤(续),物理结构设计阶段 物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。 物理结构设计是根据具体计算机系统(DBMS和硬件等)的特点,为数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。 为了设计数据
8、库的物理结构,设计人员必须充分了解所用DBMS的内部特征;充分了解数据系统的实际应用环境,特别是数据应用处理的频率和响应时间的要求;充分了解外存储设备的特性。 对将在数据库上运行的各种事务进行详细分析,根据所用数据库管理系统提供的存储结构和存取方法,选取一个最适合应用环境的物理结构,使得在数据库上运行的各种事务的响应时间小、存储空间利用率高、事务吞吐率大。,3.1.2 数据库设计的基本步骤(续),物理结构设计阶段(续) 例如 为了提高数据的存取效率,为某些属性(如经常出现在查询条件中的多值属性等)建立必要的索引等; 根据实际情况,将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存
9、放,以改进系统的性能。 在目前商品化的关系数据库管理系统中,数据库的大部分物理结构都由系统自动完成,用户需要设计的部分已经很少了。 实际上,对于小型的数据库,我们很少考虑数据库的物理结构。 因此,这里只重点讨论数据库的概念结构设计和逻辑结构设计。,3.1.2 数据库设计的基本步骤(续),数据库实施阶段 在数据库实施阶段,根据逻辑结构设计和物理结构设计的结果,设计人员用数据库管理系统提供的数据定义语言(如SQL)建立数据库,并编制、调试应用程序,组织数据入库,进行试运行。 逐步增加数据量,逐步完成运行评价。 首先应调试运行数据库管理系统的恢复功能,做好数据库的转储和恢复工作。,3.1.2 数据库
10、设计的基本步骤(续),数据库的运行和维护阶段 数据库试运行合格后,就可以交给用户正式运行了。 由于应用环境的不断变化,对数据库的维护工作将是一项长期任务。 在数据库运行阶段,对数据库经常性的维护工作主要由数据库管理员负责完成,包括: 数据库的转储和恢复。 数据的安全性和完整性控制。 数据库性能的监督、分析与改造。 数据库的重组织和重构造。 设计一个完善的数据库应用系统往往需要以上6个阶段的不断反复。,第3章 关系数据库设计,3.1 数据库设计概述 3.2 概念结构设计 3.3 逻辑结构设计 3.4 本章小结,3.2 概念结构设计,概念结构设计是将用户需求抽象为概念模型(或称概念结构)的过程,是
11、整个数据库设计的关键。 作为各种数据模型的共同基础,概念结构具有以下主要特点: 能真实、充分地反映现实世界,包括客观事物以及客观事物之间的各种联系,能满足用户对数据的处理需求,是现实世界的一个真实模型; 易于理解,从而可以用它和不熟悉计算机的用户交换意见,是数据库设计人员和用户之间进行交流的工具; 易于更改,当应用环境和应用需求发生变化时,容易对概念模型进行相应的修改和扩充; 易于向关系、网状、层次等各种数据模型转换。,3.2.1 概念结构设计的方法和步骤,概念结构设计通常有以下四种方法: 自顶向下 自底向上 逐步扩张 混合策略 其中,最常用的策略是自底向上方法,即自顶向下地进行需求分析,然后
12、再自底向上地设计概念模型。,3.2.1 概念结构设计的方法和步骤(续),概念结构设计可分为以下两个步骤: 根据需求分析的结果,为每一个局部应用设计相应的局部概念模型(或称局部视图); 将这些局部视图集成为一个全局的概念模型,并对其进行验证,以确保该全局概念模型的一致性,并满足需求分析阶段确定的所有用户需求。,3.2.2 局部视图的设计,学生成绩管理子系统 学生成绩管理子系统主要用于学生的选课管理和成绩管理。 学校只有一种类型的学生,每名学生有惟一的一个学号,还有姓名、性别、年龄、班级等基本信息。 学校开设了多门课程,每门课程有惟一的一个课程号,还有课程名、学分、课程简介等基本信息。 由于一门课
13、程同时可以由多位老师讲授,因此,在上一学期末进行选课的时候,每名学生可以根据主讲老师(有惟一的老师编号)的姓名、性别、年龄、职称、学历等基本信息有选择地选修由某些老师讲授的某些课程。 每位老师同时可以讲授多门课程,每门课程可以供多名学生选修,如果由某位老师讲授的某门课程没有学生选修,则取消由这位老师讲授的这门课程。 主讲老师会在学期末将自己所教学生的所教课程成绩输入到数据库中,供学生在网上进行查询。,3.2.2 局部视图的设计(续),学生成绩管理子系统(续) 首先,根据用户需求,分析潜在的实体。实体通常是需求文档中的中心名词,主要活动都是围绕它们开展的。显然可以找出学生、课程和老师这3个实体,
14、因为该子系统的主要活动课程的选修与讲授以及成绩的输入与查询都是围绕这3个实体开展的。 每一个实体都有相应的属性来描述它。在本例中, 描述学生的基本属性有学号、姓名、性别、年龄和班级,其中,学号为码。 描述课程的基本属性有课程号、课程名、学分和课程简介,其中,课程号为码。 描述老师的基本属性有老师编号、姓名、性别、年龄、职称、学历,其中,老师编号为码。,3.2.2 局部视图的设计(续),学生成绩管理子系统(续) 其次,根据用户需求,确定实体之间的联系。实体之间的联系通常是需求文档中的中心动词,表示实体之间发生的动作或隶属关系。在本例中,选修(或讲授)就是这3个实体之间发生的主要动作。 由于一名学
15、生可以选修由不同老师讲授的不同课程,一位老师可以给不同学生讲授不同课程,一门课程可以由不同老师给不同学生讲授,因此,这3个实体之间的选修联系是一个多对多联系(m:n:p)。 选修联系发生后,会产生一个基本属性,这就是主讲老师要向数据库输入的成绩。 老师对成绩的输入和学生对成绩的查询都不能看作是实体之间的联系,它们只是对成绩属性的数据操作。,3.2.2 局部视图的设计(续),学生成绩管理子系统的E-R图,3.2.2 局部视图的设计(续),在不同的应用中,同一个客观事物可以有不同的抽象级别。 例如,班级在这里作为学生的一个属性,而在其它地方可能被抽象为一个实体。 为了简化E-R图,尽量减少实体个数
16、,凡满足以下两条准则的客观事物,一般都作为属性处理: 属性必须是不可再分的数据项,即属性不能再有需要进一步描述的性质; 属性不能与其它实体发生联系,即E-R图中的联系都是实体和实体之间的联系。 如果班级还有需要进一步描述的性质,如班级人数和所属专业,那么班级就需要作为实体处理,学生和班级之间就是实体和实体之间的联系。 或者如果还需要描述班级和班主任之间的管理联系的话,那么班级也需要作为实体处理。,3.2.2 局部视图的设计(续),3.2.2 局部视图的设计(续),学生图书借阅管理子系统 学生图书借阅管理子系统主要用于学生的借/还书管理。 每名学生需要由特定的图书管理员为其进行注册,才能从图书馆
17、中借书,注册后的每名学生有惟一的一个借阅证号,还有姓名、性别、班级等基本信息。 每本图书也需要由特定的图书管理员对其进行登记、上架,才能被借出,登记后的每本图书有惟一的一个书号,还有书名、作者、出版社、出版时间、图书类型等基本信息。 不同类型的图书有不同的借阅期限。 每名学生可以借阅多本图书,每本图书可以供多名学生借阅,这些借/还书工作也由若干名图书管理员负责完成。 此外,对每本被借出的图书还要记录相应的借出日期和归还日期,以便快速发现归还的图书是否超出了借阅期限。 每名图书管理员有惟一的一个职工号,还有姓名、性别、职称等基本信息。,3.2.2 局部视图的设计(续),学生图书借阅管理子系统(续
18、) 首先,根据用户需求,分析潜在的实体。显然可以找出管理员、学生和图书这3个实体,因为该子系统的主要活动学生注册、图书登记和借/还书都是围绕这3个实体开展的。 由于图书类型还有一个需要描述的性质,即借阅期限,因此将其作为一个实体处理,借阅期限是它的属性。 每一个实体都有相应的属性来描述它。在本例中, 描述学生的基本属性有借阅证号、姓名、性别和班级,其中,借阅证号为码。 描述图书的基本属性有书号、书名、作者、出版社和出版时间(这里,图书类型不再作为图书的一个属性,而是作为一个实体处理),其中,书号为码。 图书类型的基本属性有类型名和借阅期限,其中,类型名为码。 描述管理员的基本属性有职工号、姓名
19、、性别和职称,其中,职工号为码。,3.2.2 局部视图的设计(续),学生图书借阅管理子系统(续) 其次,根据用户需求,确定实体之间的联系。在本例中,注册、登记和借/还书是这些实体之间发生的3个主要动作。 由于一名图书管理员可以为多名学生进行注册,而一名学生则只需要由特定的图书管理员注册一次即可,因此,他们之间的注册联系是一个一对多联系。 同理,图书管理员和图书之间的登记联系也是一个一对多联系。 由于一名学生可以借阅多本图书,一本图书可以供多名学生借阅,这一工作可以由不同的图书管理员负责完成,因此,这3个实体之间的借阅联系是一个多对多联系(m:n:p)。 借阅联系发生后,会产生两个基本属性,这就
20、是借出日期和归还日期。 此外,由于图书类型已经从图书的一个属性变成了一个独立的实体,所以它和图书之间还存在着一个联系,这就是一对多的属于联系。,3.2.2 局部视图的设计(续),学生图书借阅管理子系统的E-R图,3.2.3 局部视图的集成,在各个局部应用的分E-R图设计好之后,下一步就是将所有的分E-R图集成为一个总E-R图。分E-R图的集成也需要分两步走: 合并。解决各分E-R图之间的冲突,将各分E-R图合并起来,生成初步E-R图。 修改和重构。消除不必要的冗余,生成基本E-R图。,3.2.3 局部视图的集成(续),合并分E-R图,生成初步E-R图 由于各个局部应用面向的问题不同,设计人员通
21、常也不同,因此,各个分E-R图可能会存在许多不一致的地方,称之为冲突。 在合并分E-R图的时候,必须解决这些冲突。 冲突的种类 结构冲突 命名冲突 属性冲突,3.2.3 局部视图的集成(续),消除不必要的冗余,生成基本E-R图 在初步E-R图中,虽然解决了冲突,但还可能存在一些冗余数据和冗余联系。 冗余数据和冗余联系容易破坏数据的完整性,给数据库的更新和维护增加困难,应当予以消除。 例如,在下图中,学生和专业之间的“属于3”联系就是一个冗余联系,专业人数ns是一个冗余数据。 并不是所有的冗余数据和冗余联系都必须予以消除的。有时为了提高查询效率,不得不以数据冗余作为代价。,3.2.3 局部视图的
22、集成(续),集成后的基本E-R图(省略了各个实体的属性),3.2.3 局部视图的集成(续),将局部视图集成为一个全局概念模型之后,还需要对这个全局概念模型作进一步的验证,以确保它能满足以下三个条件: 全局概念模型内部具有一致性,不存在相互矛盾的表达; 全局概念模型应能准确反映原来的每一个局部视图; 全局概念模型应能满足需求分析阶段确定的所有用户需求。,第3章 关系数据库设计,3.1 数据库设计概述 3.2 概念结构设计 3.3 逻辑结构设计 3.4 本章小结,3.3 逻辑结构设计,概念模型是独立于任何一种数据库管理系统的、更加抽象的模型,若要实现数据库,还需选择一种具体的数据库管理系统,将概念
23、模型(即概念结构设计阶段得到的基本E-R图)转换为数据库赖以计算机实现的、由该数据库管理系统支持的数据模型(即逻辑模型,如关系模型),这一过程就是逻辑结构设计。 由于目前设计的数据库应用系统大都采用关系数据库管理系统,因此,这里只讨论E-R图向关系模型的转换。,3.3.1 E-R图向关系模型的转换,E-R图向关系模型的转换,实际上就是要将E-R图中的实体以及实体之间的联系转换为若干个关系模式,并确定其中的属性和码。 E-R图向关系模型的转换需要遵循以下原则: 实体的转换 一个实体(型)转换为一个关系模式,关系模式的属性就是实体的属性,关系模式的码就是实体的码。 本例中的六个实体分别转换为以下六
24、个关系模式(其中,关系模式的码用下划线标明): 学生(学号,姓名,性别,年龄,班级) 课程(课程号,课程名,学分,课程简介) 老师(老师编号,姓名,性别,年龄,职称,学历) 图书(书号,书名,作者,出版社,出版时间) 图书类型(类型名,借阅期限) 图书管理员(职工号,姓名,性别,职称),3.3.1 E-R图向关系模型的转换(续),二元联系的转换 一对一联系有以下两种转换方法 转换为一个独立的关系模式,关系模式的属性包括与该联系相连的两端实体的码以及联系本身的属性,关系模式的码可以是任何一端实体的码。 可以和任何一端实体转换得到的关系模式合并,即在被合并的关系模式中增加与该联系相连的另一端实体的
25、码以及联系本身的属性,合并后的关系模式的码保持不变。,3.3.1 E-R图向关系模型的转换(续),例如,班主任和班级之间具有一对一的管理联系。 可以转换为以下三个关系模式: 班主任(职工号,姓名,性别,年龄,职称) 班级(班级号,班级人数,所属专业) 管理(班级号,职工号,开始时间) 或 管理(职工号,班级号,开始时间) 或两个关系模式: 班主任(职工号,姓名,性别,年龄,职称,班级号,开始时间) 班级(班级号,班级人数,所属专业) 或 班主任(职工号,姓名,性别,年龄,职称) 班级(班级号,班级人数,所属专业,职工号,开始时间) 和哪一端的关系模式合并会更好一些呢?,3.3.1 E-R图向关
26、系模型的转换(续),二元联系的转换(续) 一对多联系有以下两种转换方法 转换为一个独立的关系模式,关系模式的属性包括与该联系相连的两端实体的码以及联系本身的属性,关系模式的码就是n端实体的码 。 可以和n端实体转换得到的关系模式合并,即在n端实体转换得到的关系模式中增加与该联系相连的另一端实体(即1端实体)的码(该属性在合并后的关系模式中还是一个外码)以及联系本身的属性,合并后的关系模式的码保持不变。,3.3.1 E-R图向关系模型的转换(续),例如,图书类型和图书之间具有一对多的属于联系。 可以转换为以下三个关系模式(其中,外码用斜体标明): 图书(书号,书名,作者,出版社,出版时间) 图书
27、类型(类型名,借阅期限) 属于(书号,类型名) 或两个关系模式: 图书(书号,书名,作者,出版社,出版时间,类型名) 图书类型(类型名,借阅期限),3.3.1 E-R图向关系模型的转换(续),二元联系的转换(续) 多对多联系的转换方法 转换为一个独立的关系模式,关系模式的属性包括与该联系相连的两端实体的码以及联系本身的属性,关系模式的码由这两个实体的码共同组成,在这个独立的关系模式中,它们也都是外码。 例如,仓库和零件之间具有多对多的存放联系,则它们可以转换为以下三个关系模式: 仓库(仓库号,面积,位置,电话号码) 零件(零件号,名称,规则,单价) 存放(仓库号,零件号,存放数量),3.3.1
28、 E-R图向关系模型的转换(续),多元联系的转换 和二元联系中的多对多联系一样,转换为一个独立的关系模式,关系模式的属性包括与该联系相连的各端实体的码以及联系本身的属性,关系模式的码由这些实体的码共同组成,在这个独立的关系模式中,它们也都是外码。 例如,学生、老师和课程这三个实体之间具有一个多对多的选修联系,则它们可以转换为以下4个关系模式: 学生(学号,姓名,性别,年龄,班级) 课程(课程号,课程名,学分,课程简介) 老师(老师编号,姓名,性别,年龄,职称,学历) 选修(学号,课程号,老师编号,成绩),3.3.1 E-R图向关系模型的转换(续),一元联系的转换 同一个实体集内部各实体之间联系(一对一、一对多、多对多)的转换规则和二元联系(一对一、一对多、多对多)的转换规则相同。 例如,职工实体集内部具有一个一对多的领导联系,则它们可以转换为两个关系模式: 职工(职工号,姓名,性别,职称) 领导(职工号,领导职工号) 或单个关系模式: 职工(职工号,姓名,性别,职称,领导职工号),3.3.1 E-R图向关系模型的转换(续)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年医疗废物分类处置全流程合规自查报告
- 小学语文名师工作室专项培训计划
- 2025-2030美国隐私计算技术商业化应用场景拓展研究报告
- 三年级音乐下册教学内容计划
- 2025年济南技师学院高职单招职业技能考试题库及参考答案详解(突破训练)
- 2027年重庆渝中职业学院高职单招职业技能考试题库含完整答案详解【必刷】
- 2025年广西壮族自治区崇左市高职单招职业技能考试题库及一套答案详解
- 2027年山东东岳职业学院高职单招职业技能考试模拟试卷附答案详解(培优B卷)
- 2024年张家口桦皮岭学院单招职业技能考试模拟试卷(考点提分)附答案详解
- 2025年湘西技师学院单招职业技能考试题库附答案详解【A卷】
- 扣件式钢管脚手架安全管理培训
- 2024年计划员采购员工作总结报告
- 水泥混凝土路面常见病害类型及分级
- 财政投资评审项目造价咨询服务方案审计技术方案
- 《习作我学会了》 全市一等奖
- 水电技术交底记录
- 《知行合一投资赢家》培训心得
- 《城市经济学》各章-练习题及参考答案
- GB/T 5537-2008粮油检验磷脂含量的测定
- 三、卫生行政处罚程序课件
- 住建部施工临时用电安全管理培训
评论
0/150
提交评论