《《关系数据库设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据库设计》PPT课件.ppt(49页珍藏版)》请在金锄头文库上搜索。
1、第第3 3章章 关系数据库设计关系数据库设计3.1 数据库设计概述数据库设计概述3.2 概念结构设计概念结构设计3.3 逻辑结构设计逻辑结构设计3.4 本章小结本章小结3.1 数据库设计概述数据库设计概述 数据库设计是指对于一个给定的应用环境,设数据库设计是指对于一个给定的应用环境,设计优化的数据库逻辑模式和物理结构,并据此建立计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储、管理数据库及其应用系统,使之能够有效地存储、管理和利用数据,满足各种用户的应用需求(包括数据和利用数据,满足各种用户的应用需求(包括数据需求、处理需求、安全性和完整性需求)。需求、处理需
2、求、安全性和完整性需求)。 也就是说,数据库设计不但要建立数据库,而也就是说,数据库设计不但要建立数据库,而且还要建立基于数据库的应用系统,即设计整个数且还要建立基于数据库的应用系统,即设计整个数据库应用系统,这是对数据库设计的广义理解。据库应用系统,这是对数据库设计的广义理解。 本书主要讨论狭义的数据库设计,即设计数据本书主要讨论狭义的数据库设计,即设计数据库本身,或者说,设计数据库的各级模式并据此建库本身,或者说,设计数据库的各级模式并据此建立数据库,这是整个数据库应用系统设计的一部分。立数据库,这是整个数据库应用系统设计的一部分。3.1.1 3.1.1 数据库设计的方法数据库设计的方法新
3、奥尔良方法新奥尔良方法规范设计法,即运用软件工程思想,将设计过程规范设计法,即运用软件工程思想,将设计过程分为若干阶段和步骤,按照工程化的方法设计数分为若干阶段和步骤,按照工程化的方法设计数据库。据库。新奥尔良方法将数据库设计分成需求分析、概念新奥尔良方法将数据库设计分成需求分析、概念设计、逻辑设计和物理设计四个步骤。设计、逻辑设计和物理设计四个步骤。 现在常用的规范设计法大多起源于新奥尔良方法,现在常用的规范设计法大多起源于新奥尔良方法,只是在数据库设计的不同阶段上采用了某些具体只是在数据库设计的不同阶段上采用了某些具体的技术和方法。的技术和方法。基于E-R模型的数据库设计方法基于3NF的数
4、据库设计方法 CASE(Computer-Aided Software Engineering,计算机辅助软件工程),计算机辅助软件工程)3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤按照规范设计法,可以将数据库设计的全过程分按照规范设计法,可以将数据库设计的全过程分为六个基本阶段(如图为六个基本阶段(如图3.1所示):所示):需求分析需求分析概念结构设计概念结构设计逻辑结构设计逻辑结构设计物理结构设计物理结构设计数据库实施数据库实施数据库运行和维护数据库运行和维护在这六个阶段中,需求分析和概念结构设计可以在这六个阶段中,需求分析和概念结构设计可以独立于任何数据库管理系统,因
5、此,在设计的初独立于任何数据库管理系统,因此,在设计的初期,并不急于确定到底采用哪一种数据库管理系期,并不急于确定到底采用哪一种数据库管理系统,从逻辑结构设计阶段开始才需要选择一种具统,从逻辑结构设计阶段开始才需要选择一种具体的数据库管理系统。体的数据库管理系统。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )需求分析阶段得到的用户需求在概念结构设计阶需求分析阶段得到的用户需求在概念结构设计阶段形成独立于任何数据库管理系统的概念模型段形成独立于任何数据库管理系统的概念模型(有时也称概念模式),通常用(有时也称概念模式),通常用E-R图表示。图表示。在逻辑结构设计
6、阶段,按照一定的转换规则将在逻辑结构设计阶段,按照一定的转换规则将E-R图转换为某一数据库管理系统支持的数据模型图转换为某一数据库管理系统支持的数据模型(即逻辑模型,如关系模型),从而形成数据库(即逻辑模型,如关系模型),从而形成数据库的逻辑模式;然后在此基础上为不同用户的逻辑模式;然后在此基础上为不同用户/应用应用建立必要的视图(建立必要的视图(View),从而形成数据库的外),从而形成数据库的外模式。模式。在物理结构设计阶段,根据所用数据库管理系统在物理结构设计阶段,根据所用数据库管理系统的特点和用户的处理需求,进行物理存储安排、的特点和用户的处理需求,进行物理存储安排、建立必要的索引,从
7、而形成数据库的内模式。建立必要的索引,从而形成数据库的内模式。数据库各级模式的形成如图数据库各级模式的形成如图3.2所示。所示。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )数据库的设计需要多种人员在不同阶段参与进来,数据库的设计需要多种人员在不同阶段参与进来,包括系统分析人员、数据库设计人员、数据库管包括系统分析人员、数据库设计人员、数据库管理员、应用开发人员和用户。理员、应用开发人员和用户。系统分析人员和数据库设计人员是数据库设计的核心人系统分析人员和数据库设计人员是数据库设计
8、的核心人员,他们将自始至终参与数据库的设计,他们的水平直员,他们将自始至终参与数据库的设计,他们的水平直接决定了数据库系统的质量。接决定了数据库系统的质量。由于需要对数据库进行全面的管理和控制,数据库管理由于需要对数据库进行全面的管理和控制,数据库管理员也需要参与数据库设计的全过程。员也需要参与数据库设计的全过程。应用开发人员(包括程序员和操作员)在数据库实施阶应用开发人员(包括程序员和操作员)在数据库实施阶段参与进来,负责编制程序和准备软硬件环境。段参与进来,负责编制程序和准备软硬件环境。用户在需求分析阶段和概念结构设计阶段参与进来,使用户在需求分析阶段和概念结构设计阶段参与进来,使设计人员
9、能准确把握用户的各种需求,设计出使用户满设计人员能准确把握用户的各种需求,设计出使用户满意的概念模型;此外,设计出来的数据库最终还要交给意的概念模型;此外,设计出来的数据库最终还要交给用户正式运行,因此,用户还要参与数据库的运行和维用户正式运行,因此,用户还要参与数据库的运行和维护阶段。护阶段。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )需求分析阶段需求分析阶段进行数据库设计首先必须准确了解和分析各种用户的应用需求。进行数据库设计首先必须准确了解和分析各种用户的应用需求。需求分析是整个设计过程的基础,是最困难、也最耗时的一步。需求分析是整个设计过程的基础,是
10、最困难、也最耗时的一步。简单地说,需求分析就是分析用户的需求,是设计数据库的起点。简单地说,需求分析就是分析用户的需求,是设计数据库的起点。通过调查、收集和分析,获得用户对数据库的以下需求:通过调查、收集和分析,获得用户对数据库的以下需求:数据需求。处理需求。安全性与完整性需求。对用户的以上需求进行分析和表达之后,必须提交对用户的以上需求进行分析和表达之后,必须提交给用户,征得用户的认可。给用户,征得用户的认可。需求分析阶段的一个重要而困难的任务是收集将来需求分析阶段的一个重要而困难的任务是收集将来应用可能涉及到的数据,设计人员应充分考虑到应应用可能涉及到的数据,设计人员应充分考虑到应用的可扩
11、充性,使系统易于扩充。用的可扩充性,使系统易于扩充。 3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )概念结构设计阶段概念结构设计阶段概念结构设计是整个数据库设计的关键,它通过对用概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳和抽象,形成独立于任何数据户需求进行综合、归纳和抽象,形成独立于任何数据库管理系统的概念模型,通常用库管理系统的概念模型,通常用E-R图表示。图表示。在需求分析阶段得到的应用需求首先应抽象为信息世在需求分析阶段得到的应用需求首先应抽象为信息世界中的概念模型,才能更准确地用某一数据库管理系界中的概念模型,才能更准确地用某一
12、数据库管理系统支持的数据模型来实现这些需求。统支持的数据模型来实现这些需求。和数据模型相比,概念模型更容易被用户理解,是设计人员和用户之间进行交流的语言,用户的积极参与是数据库设计成功的关键。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计是将概念模型转换为某一数据库管理逻辑结构设计是将概念模型转换为某一数据库管理系统支持的数据模型(即逻辑模型,如关系模型),系统支持的数据模型(即逻辑模型,如关系模型),并对其进行优化。并对其进行优化。此外,逻辑结构设计还要根据用户对数据的不同需此外,逻辑结构设计还要根据用户对数据的不
13、同需求建立必要的视图,即外模式。求建立必要的视图,即外模式。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )物理结构设计阶段物理结构设计阶段 物理结构设计阶段实现的是数据库系统的内模式,它物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。的质量直接决定了整个系统的性能。物理结构设计是根据具体计算机系统物理结构设计是根据具体计算机系统(DBMS和硬件和硬件等等)的特点,为数据模型选取一个最适合应用环境的的特点,为数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。物理结构,包括存储结构和存取方法。为了设计数据库的物理结构,
14、设计人员必须充分了解为了设计数据库的物理结构,设计人员必须充分了解所用所用DBMS的内部特征;充分了解数据系统的实际应的内部特征;充分了解数据系统的实际应用环境,特别是数据应用处理的频率和响应时间的要用环境,特别是数据应用处理的频率和响应时间的要求;充分了解外存储设备的特性。求;充分了解外存储设备的特性。对将在数据库上运行的各种事务进行详细分析,根据对将在数据库上运行的各种事务进行详细分析,根据所用数据库管理系统提供的存储结构和存取方法,选所用数据库管理系统提供的存储结构和存取方法,选取一个最适合应用环境的物理结构,使得在数据库上取一个最适合应用环境的物理结构,使得在数据库上运行的各种事务的响
15、应时间小、存储空间利用率高、运行的各种事务的响应时间小、存储空间利用率高、事务吞吐率大。事务吞吐率大。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )物理结构设计阶段物理结构设计阶段( (续续) ) 例如例如为了提高数据的存取效率,为某些属性(如经常出现在查询条件中的多值属性等)建立必要的索引等;根据实际情况,将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存放,以改进系统的性能。在目前商品化的关系数据库管理系统中,数据库的大在目前商品化的关系数据库管理系统中,数据库的大部分物理结构都由系统自动完成,用户需要设计的部部分物理结构都由系统自动完成,用
16、户需要设计的部分已经很少了。分已经很少了。实际上,对于小型的数据库,我们很少考虑数据库的实际上,对于小型的数据库,我们很少考虑数据库的物理结构。物理结构。因此,这里只重点讨论数据库的概念结构设计和逻辑因此,这里只重点讨论数据库的概念结构设计和逻辑结构设计。结构设计。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )数据库实施阶段数据库实施阶段在数据库实施阶段,根据逻辑结构设计和物理结构设在数据库实施阶段,根据逻辑结构设计和物理结构设计的结果,设计人员用数据库管理系统提供的数据定计的结果,设计人员用数据库管理系统提供的数据定义语言(如义语言(如SQL)建立数据库,并
17、编制、调试应用程)建立数据库,并编制、调试应用程序,组织数据入库,进行试运行。序,组织数据入库,进行试运行。逐步增加数据量,逐步完成运行评价。逐步增加数据量,逐步完成运行评价。首先应调试运行数据库管理系统的恢复功能,做好数首先应调试运行数据库管理系统的恢复功能,做好数据库的转储和恢复工作。据库的转储和恢复工作。3.1.2 3.1.2 数据库设计的基本步骤数据库设计的基本步骤( (续续) )数据库的运行和维护阶段数据库的运行和维护阶段数据库试运行合格后,就可以交给用户正式运行了。数据库试运行合格后,就可以交给用户正式运行了。由于应用环境的不断变化,对数据库的维护工作将是由于应用环境的不断变化,对
18、数据库的维护工作将是一项长期任务。一项长期任务。在数据库运行阶段,对数据库经常性的维护工作主要在数据库运行阶段,对数据库经常性的维护工作主要由数据库管理员负责完成,包括:由数据库管理员负责完成,包括:数据库的转储和恢复。数据的安全性和完整性控制。数据库性能的监督、分析与改造。数据库的重组织和重构造。设计一个完善的数据库应用系统往往需要以上设计一个完善的数据库应用系统往往需要以上6 6个阶段的不断反复。个阶段的不断反复。 第第3 3章章 关系数据库设计关系数据库设计3.1 数据库设计概述数据库设计概述3.2 概念结构设计概念结构设计3.3 逻辑结构设计逻辑结构设计3.4 本章小结本章小结3.2
19、3.2 概念结构设计概念结构设计概念结构设计是将用户需求抽象为概念模型(或概念结构设计是将用户需求抽象为概念模型(或称概念结构)的过程,是整个数据库设计的关键。称概念结构)的过程,是整个数据库设计的关键。作为各种数据模型的共同基础,概念结构具有以作为各种数据模型的共同基础,概念结构具有以下主要特点:下主要特点:能真实、充分地反映现实世界,包括客观事物以及客能真实、充分地反映现实世界,包括客观事物以及客观事物之间的各种联系,能满足用户对数据的处理需观事物之间的各种联系,能满足用户对数据的处理需求,是现实世界的一个真实模型;求,是现实世界的一个真实模型;易于理解,从而可以用它和不熟悉计算机的用户交
20、换易于理解,从而可以用它和不熟悉计算机的用户交换意见,是数据库设计人员和用户之间进行交流的工具;意见,是数据库设计人员和用户之间进行交流的工具;易于更改,当应用环境和应用需求发生变化时,容易易于更改,当应用环境和应用需求发生变化时,容易对概念模型进行相应的修改和扩充;对概念模型进行相应的修改和扩充;易于向关系、网状、层次等各种数据模型转换。易于向关系、网状、层次等各种数据模型转换。3.2.1 3.2.1 概念结构设计的方法和步骤概念结构设计的方法和步骤概念结构设计通常有以下四种方法:概念结构设计通常有以下四种方法:自顶向下自顶向下自底向上自底向上逐步扩张逐步扩张混合策略混合策略其中,最常用的策
21、略是自底向上方法,即自顶向其中,最常用的策略是自底向上方法,即自顶向下地进行需求分析,然后再自底向上地设计概念下地进行需求分析,然后再自底向上地设计概念模型。模型。3.2.1 3.2.1 概念结构设计的方法和步骤概念结构设计的方法和步骤( (续续) )概念结构设计可分为以下两个步骤概念结构设计可分为以下两个步骤: :根据需求分析的结果,为每一个局部应用设计相应的根据需求分析的结果,为每一个局部应用设计相应的局部概念模型(或称局部视图);局部概念模型(或称局部视图);将这些局部视图集成为一个全局的概念模型,并对其将这些局部视图集成为一个全局的概念模型,并对其进行验证,以确保该全局概念模型的一致性
22、,并满足进行验证,以确保该全局概念模型的一致性,并满足需求分析阶段确定的所有用户需求。需求分析阶段确定的所有用户需求。3.2.2 3.2.2 局部视图的设计局部视图的设计学生成绩管理子系统学生成绩管理子系统学生成绩管理子系统主要用于学生的选课管理和成绩管理。学生成绩管理子系统主要用于学生的选课管理和成绩管理。学校只有一种类型的学生,每名学生有惟一的一个学号,还学校只有一种类型的学生,每名学生有惟一的一个学号,还有姓名、性别、年龄、班级等基本信息。有姓名、性别、年龄、班级等基本信息。学校开设了多门课程,每门课程有惟一的一个课程号,还有学校开设了多门课程,每门课程有惟一的一个课程号,还有课程名、学
23、分、课程简介等基本信息。课程名、学分、课程简介等基本信息。由于一门课程同时可以由多位老师讲授,因此,在上一学期由于一门课程同时可以由多位老师讲授,因此,在上一学期末进行选课的时候,每名学生可以根据主讲老师(有惟一的末进行选课的时候,每名学生可以根据主讲老师(有惟一的老师编号)的姓名、性别、年龄、职称、学历等基本信息有老师编号)的姓名、性别、年龄、职称、学历等基本信息有选择地选修由某些老师讲授的某些课程。选择地选修由某些老师讲授的某些课程。每位老师同时可以讲授多门课程,每门课程可以供多名学生每位老师同时可以讲授多门课程,每门课程可以供多名学生选修,如果由某位老师讲授的某门课程没有学生选修,则取选
24、修,如果由某位老师讲授的某门课程没有学生选修,则取消由这位老师讲授的这门课程。消由这位老师讲授的这门课程。主讲老师会在学期末将自己所教学生的所教课程成绩输入到主讲老师会在学期末将自己所教学生的所教课程成绩输入到数据库中,供学生在网上进行查询。数据库中,供学生在网上进行查询。3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )学生成绩管理子系统学生成绩管理子系统( (续续) )首先,根据用户需求,分析潜在的实体。实体通常是首先,根据用户需求,分析潜在的实体。实体通常是需求文档中的中心名词,主要活动都是围绕它们开展需求文档中的中心名词,主要活动都是围绕它们开展的。显然可以找出学生、
25、课程和老师这的。显然可以找出学生、课程和老师这3 3个实体,因个实体,因为该子系统的主要活动为该子系统的主要活动课程的选修与讲授以及成课程的选修与讲授以及成绩的输入与查询都是围绕这绩的输入与查询都是围绕这3 3个实体开展的。个实体开展的。每一个实体都有相应的属性来描述它。在本例中,每一个实体都有相应的属性来描述它。在本例中,描述学生的基本属性有学号、姓名、性别、年龄和班级,其中,学号为码。描述课程的基本属性有课程号、课程名、学分和课程简介,其中,课程号为码。描述老师的基本属性有老师编号、姓名、性别、年龄、职称、学历,其中,老师编号为码。 3.2.2 3.2.2 局部视图的设计局部视图的设计(
26、(续续) )学生成绩管理子系统学生成绩管理子系统( (续续) )其次,根据用户需求,确定实体之间的联系。实体之其次,根据用户需求,确定实体之间的联系。实体之间的联系通常是需求文档中的中心动词,表示实体之间的联系通常是需求文档中的中心动词,表示实体之间发生的动作或隶属关系。在本例中,选修(或讲授)间发生的动作或隶属关系。在本例中,选修(或讲授)就是这就是这3 3个实体之间发生的主要动作。个实体之间发生的主要动作。由于一名学生可以选修由不同老师讲授的不同课程,由于一名学生可以选修由不同老师讲授的不同课程,一位老师可以给不同学生讲授不同课程,一门课程可一位老师可以给不同学生讲授不同课程,一门课程可以
27、由不同老师给不同学生讲授,因此,这以由不同老师给不同学生讲授,因此,这3 3个实体之个实体之间的选修联系是一个多对多联系(间的选修联系是一个多对多联系(m:n:pm:n:p)。)。选修联系发生后,会产生一个基本属性,这就是主讲选修联系发生后,会产生一个基本属性,这就是主讲老师要向数据库输入的成绩。老师要向数据库输入的成绩。老师对成绩的输入和学生对成绩的查询都不能看作是老师对成绩的输入和学生对成绩的查询都不能看作是实体之间的联系,它们只是对成绩属性的数据操作。实体之间的联系,它们只是对成绩属性的数据操作。3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )学生成绩管理子系统的学生
28、成绩管理子系统的E-RE-R图图3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )在不同的应用中,同一个客观事物可以有不同的在不同的应用中,同一个客观事物可以有不同的抽象级别。抽象级别。例如,班级在这里作为学生的一个属性,而在其例如,班级在这里作为学生的一个属性,而在其它地方可能被抽象为一个实体。它地方可能被抽象为一个实体。为了简化为了简化E-R图,尽量减少实体个数,凡满足以图,尽量减少实体个数,凡满足以下两条准则的客观事物,一般都作为属性处理:下两条准则的客观事物,一般都作为属性处理:属性必须是不可再分的数据项,即属性不能再有需要属性必须是不可再分的数据项,即属性不能再有需
29、要进一步描述的性质;进一步描述的性质;属性不能与其它实体发生联系,即属性不能与其它实体发生联系,即E-R图中的联系都图中的联系都是实体和实体之间的联系。是实体和实体之间的联系。如果班级还有需要进一步描述的性质,如班级人如果班级还有需要进一步描述的性质,如班级人数和所属专业,那么班级就需要作为实体处理,数和所属专业,那么班级就需要作为实体处理,学生和班级之间就是实体和实体之间的联系。学生和班级之间就是实体和实体之间的联系。或者如果还需要描述班级和班主任之间的管理联或者如果还需要描述班级和班主任之间的管理联系的话,那么班级也需要作为实体处理。系的话,那么班级也需要作为实体处理。3.2.2 3.2.
30、2 局部视图的设计局部视图的设计( (续续) )3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )学生图书借阅管理子系统学生图书借阅管理子系统学生图书借阅管理子系统主要用于学生的借学生图书借阅管理子系统主要用于学生的借/ /还书管理。还书管理。每名学生需要由特定的图书管理员为其进行注册,才能从图每名学生需要由特定的图书管理员为其进行注册,才能从图书馆中借书,注册后的每名学生有惟一的一个借阅证号,还书馆中借书,注册后的每名学生有惟一的一个借阅证号,还有姓名、性别、班级等基本信息。有姓名、性别、班级等基本信息。每本图书也需要由特定的图书管理员对其进行登记、上架,每本图书也需要由特
31、定的图书管理员对其进行登记、上架,才能被借出,登记后的每本图书有惟一的一个书号,还有书才能被借出,登记后的每本图书有惟一的一个书号,还有书名、作者、出版社、出版时间、图书类型等基本信息。名、作者、出版社、出版时间、图书类型等基本信息。不同类型的图书有不同的借阅期限。不同类型的图书有不同的借阅期限。每名学生可以借阅多本图书,每本图书可以供多名学生借阅,每名学生可以借阅多本图书,每本图书可以供多名学生借阅,这些借这些借/ /还书工作也由若干名图书管理员负责完成。还书工作也由若干名图书管理员负责完成。此外,对每本被借出的图书还要记录相应的借出日期和归还此外,对每本被借出的图书还要记录相应的借出日期和
32、归还日期,以便快速发现归还的图书是否超出了借阅期限。日期,以便快速发现归还的图书是否超出了借阅期限。每名图书管理员有惟一的一个职工号,还有姓名、性别、职每名图书管理员有惟一的一个职工号,还有姓名、性别、职称等基本信息。称等基本信息。3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )学生图书借阅管理子系统(续)学生图书借阅管理子系统(续)首先,根据用户需求,分析潜在的实体。显然可以找首先,根据用户需求,分析潜在的实体。显然可以找出管理员、学生和图书这出管理员、学生和图书这3 3个实体,因为该子系统的个实体,因为该子系统的主要活动主要活动学生注册、图书登记和借学生注册、图书登记和
33、借/ /还书都是围还书都是围绕这绕这3 3个实体开展的。个实体开展的。由于图书类型还有一个需要描述的性质,即借阅期限,由于图书类型还有一个需要描述的性质,即借阅期限,因此将其作为一个实体处理,借阅期限是它的属性。因此将其作为一个实体处理,借阅期限是它的属性。每一个实体都有相应的属性来描述它。在本例中,每一个实体都有相应的属性来描述它。在本例中,描述学生的基本属性有借阅证号、姓名、性别和班级,其中,借阅证号为码。描述图书的基本属性有书号、书名、作者、出版社和出版时间(这里,图书类型不再作为图书的一个属性,而是作为一个实体处理),其中,书号为码。图书类型的基本属性有类型名和借阅期限,其中,类型名为
34、码。描述管理员的基本属性有职工号、姓名、性别和职称,其中,职工号为码。 3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )学生图书借阅管理子系统(续)学生图书借阅管理子系统(续)其次,根据用户需求,确定实体之间的联系。在本例中,注其次,根据用户需求,确定实体之间的联系。在本例中,注册、登记和借册、登记和借/ /还书是这些实体之间发生的还书是这些实体之间发生的3 3个主要动作。个主要动作。由于一名图书管理员可以为多名学生进行注册,而一名学生由于一名图书管理员可以为多名学生进行注册,而一名学生则只需要由特定的图书管理员注册一次即可,因此,他们之则只需要由特定的图书管理员注册一次即
35、可,因此,他们之间的注册联系是一个一对多联系。间的注册联系是一个一对多联系。同理,图书管理员和图书之间的登记联系也是一个一对多联同理,图书管理员和图书之间的登记联系也是一个一对多联系。系。由于一名学生可以借阅多本图书,一本图书可以供多名学生由于一名学生可以借阅多本图书,一本图书可以供多名学生借阅,这一工作可以由不同的图书管理员负责完成,因此,借阅,这一工作可以由不同的图书管理员负责完成,因此,这这3 3个实体之间的借阅联系是一个多对多联系(个实体之间的借阅联系是一个多对多联系(m:n:pm:n:p)。)。借阅联系发生后,会产生两个基本属性,这就是借出日期和借阅联系发生后,会产生两个基本属性,这
36、就是借出日期和归还日期。归还日期。此外,由于图书类型已经从图书的一个属性变成了一个独立此外,由于图书类型已经从图书的一个属性变成了一个独立的实体,所以它和图书之间还存在着一个联系,这就是一对的实体,所以它和图书之间还存在着一个联系,这就是一对多的属于联系。多的属于联系。3.2.2 3.2.2 局部视图的设计局部视图的设计( (续续) )学生图书借阅管理子系统学生图书借阅管理子系统的的E-R图图3.2.3 3.2.3 局部视图的集成局部视图的集成在各个局部应用的分在各个局部应用的分E-R图设计好之后,下一步就是将图设计好之后,下一步就是将所有的分所有的分E-R图集成为一个总图集成为一个总E-R图
37、。分图。分E-R图的集成也图的集成也需要分两步走:需要分两步走:合并。解决各分合并。解决各分E-R图之间的冲突,将各分图之间的冲突,将各分E-R图合并起来,图合并起来,生成初步生成初步E-R图。图。修改和重构。消除不必要的冗余,生成基本修改和重构。消除不必要的冗余,生成基本E-R图。图。3.2.3 3.2.3 局部视图的集成局部视图的集成( (续续) )合并分合并分E-R图,生成初步图,生成初步E-R图图由于各个局部应用面向的问题不同,设计人员通常也不同,由于各个局部应用面向的问题不同,设计人员通常也不同,因此,各个分因此,各个分E-R图可能会存在许多不一致的地方,称之图可能会存在许多不一致的
38、地方,称之为冲突。为冲突。在合并分在合并分E-R图的时候,必须解决这些冲突。图的时候,必须解决这些冲突。冲突的种类冲突的种类结构冲突结构冲突命名冲突命名冲突属性冲突属性冲突3.2.3 3.2.3 局部视图的集成局部视图的集成( (续续) )消除不必要的冗余,生成基本消除不必要的冗余,生成基本E-R图图在初步在初步E-R图中,虽然解决了冲突,但还可能存在一图中,虽然解决了冲突,但还可能存在一些冗余数据和冗余联系。些冗余数据和冗余联系。冗余数据和冗余联系容易破坏数据的完整性,给数据冗余数据和冗余联系容易破坏数据的完整性,给数据库的更新和维护增加困难,应当予以消除。库的更新和维护增加困难,应当予以消
39、除。例如,在下图中,学生和专业之间的例如,在下图中,学生和专业之间的“属于属于3”联系就联系就是一个冗余联系,专业人数是一个冗余联系,专业人数ns是一个冗余数据。是一个冗余数据。并不是所有的冗余数据和冗余联系都必须予以消除的。并不是所有的冗余数据和冗余联系都必须予以消除的。有时为了提高查询效率,不得不以数据冗余作为代价。有时为了提高查询效率,不得不以数据冗余作为代价。 3.2.3 3.2.3 局部视图的集成局部视图的集成( (续续) )集成后集成后的的基本基本E-R图图(省略了各个实体的属性)(省略了各个实体的属性) 3.2.3 3.2.3 局部视图的集成局部视图的集成( (续续) )将局部视
40、图集成为一个全局概念模型之后,还需要对这将局部视图集成为一个全局概念模型之后,还需要对这个全局概念模型作进一步的验证,以确保它能满足以下个全局概念模型作进一步的验证,以确保它能满足以下三个条件:三个条件:全局概念模型内部具有一致性,不存在相互矛盾的表达;全局概念模型内部具有一致性,不存在相互矛盾的表达;全局概念模型应能准确反映原来的每一个局部视图;全局概念模型应能准确反映原来的每一个局部视图;全局概念模型应能满足需求分析阶段确定的所有用户需求。全局概念模型应能满足需求分析阶段确定的所有用户需求。第第3 3章章 关系数据库设计关系数据库设计3.1 数据库设计概述数据库设计概述3.2 概念结构设计
41、概念结构设计3.3 逻辑结构设计逻辑结构设计3.4 本章小结本章小结3.3 3.3 逻辑结构设计逻辑结构设计概念模型是独立于任何一种数据库管理系统的、概念模型是独立于任何一种数据库管理系统的、更加抽象的模型,若要实现数据库,还需选择一更加抽象的模型,若要实现数据库,还需选择一种具体的数据库管理系统,将概念模型(即概念种具体的数据库管理系统,将概念模型(即概念结构设计阶段得到的基本结构设计阶段得到的基本E-R图)转换为数据库图)转换为数据库赖以计算机实现的、由该数据库管理系统支持的赖以计算机实现的、由该数据库管理系统支持的数据模型(即逻辑模型,如关系模型),这一过数据模型(即逻辑模型,如关系模型
42、),这一过程就是逻辑结构设计。程就是逻辑结构设计。由于目前设计的数据库应用系统大都采用关系数由于目前设计的数据库应用系统大都采用关系数据库管理系统,因此,这里只讨论据库管理系统,因此,这里只讨论E-R图向关系图向关系模型的转换。模型的转换。3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换E-R图向关系模型的转换,实际上就是要将图向关系模型的转换,实际上就是要将E-R图图中的实体以及实体之间的联系转换为若干个关系中的实体以及实体之间的联系转换为若干个关系模式,并确定其中的属性和码。模式,并确定其中的属性和码。E-R图向关系模型的转换需要遵循以下原则:图向关系模型的转换需要遵循以
43、下原则:实体的转换实体的转换一个实体(型)转换为一个关系模式,关系模式的属性就是实体的属性,关系模式的码就是实体的码。本例中的六个实体分别转换为以下六个关系模式(其中,关系模式的码用下划线标明):学生(学号,姓名,性别,年龄,班级)课程(课程号,课程名,学分,课程简介)老师(老师编号,姓名,性别,年龄,职称,学历)图书(书号,书名,作者,出版社,出版时间)图书类型(类型名,借阅期限)图书管理员(职工号,姓名,性别,职称) 3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )二元联系的转换二元联系的转换一对一联系有以下两种转换方法一对一联系有以下两种转换方法转换为一
44、个独立的关系模式,关系模式的属性包括与该联系相连的两端实体的码以及联系本身的属性,关系模式的码可以是任何一端实体的码。 可以和任何一端实体转换得到的关系模式合并,即在被合并的关系模式中增加与该联系相连的另一端实体的码以及联系本身的属性,合并后的关系模式的码保持不变。3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )例如,班主任和班级之间具有一对一的管理联系。例如,班主任和班级之间具有一对一的管理联系。可以转换为以下三个关系模式:可以转换为以下三个关系模式:班主任(班主任(职工号职工号,姓名,性别,年龄,职称),姓名,性别,年龄,职称)班级(班级(班级号班级号,班
45、级人数,所属专业),班级人数,所属专业)管理(管理(班级号班级号,职工号,开始时间),职工号,开始时间)或或管理(管理(职工号职工号,班级号,开始时间),班级号,开始时间)或两个关系模式:或两个关系模式:班主任(班主任(职工号职工号,姓名,性别,年龄,职称,班级号,开始,姓名,性别,年龄,职称,班级号,开始时间)时间)班级(班级(班级号班级号,班级人数,所属专业),班级人数,所属专业)或或班主任(班主任(职工号职工号,姓名,性别,年龄,职称),姓名,性别,年龄,职称)班级(班级(班级号班级号,班级人数,所属专业,职工号,开始时间),班级人数,所属专业,职工号,开始时间)和哪一端的关系模式合并会
46、更好一些呢?和哪一端的关系模式合并会更好一些呢? 3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )二元联系的转换(续)二元联系的转换(续)一对多联系有以下两种转换方法一对多联系有以下两种转换方法转换为一个独立的关系模式,关系模式的属性包括与该联系相连的两端实体的码以及联系本身的属性,关系模式的码就是n端实体的码 。 可以和n端实体转换得到的关系模式合并,即在n端实体转换得到的关系模式中增加与该联系相连的另一端实体(即1端实体)的码(该属性在合并后的关系模式中还是一个外码)以及联系本身的属性,合并后的关系模式的码保持不变。 3.3.1 3.3.1 E-R图向关系
47、模型的转换图向关系模型的转换( (续续) )例如,图书类型和图书之间具有一对多的属于联系。例如,图书类型和图书之间具有一对多的属于联系。可以转换为以下三个关系模式(其中,外码用斜体标可以转换为以下三个关系模式(其中,外码用斜体标明):明):图书(图书(书号书号,书名,作者,出版社,出版时间),书名,作者,出版社,出版时间)图书类型(图书类型(类型名类型名,借阅期限),借阅期限)属于(属于(书号书号,类型名类型名)或两个关系模式:或两个关系模式:图书(图书(书号书号,书名,作者,出版社,出版时间,书名,作者,出版社,出版时间,类型名类型名)图书类型(图书类型(类型名类型名,借阅期限),借阅期限)
48、3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )二元联系的转换(续)二元联系的转换(续)多对多联系的转换方法多对多联系的转换方法转换为一个独立的关系模式,关系模式的属性包括与该联系相连的两端实体的码以及联系本身的属性,关系模式的码由这两个实体的码共同组成,在这个独立的关系模式中,它们也都是外码。例如,仓库和零件之间具有多对多的存放联系,则它们可以转换为以下三个关系模式:仓库(仓库号,面积,位置,电话号码)零件(零件号,名称,规则,单价)存放(仓库号,零件号,存放数量) 3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )多元联系的
49、转换多元联系的转换和二元联系中的多对多联系一样,转换为一个独立的关和二元联系中的多对多联系一样,转换为一个独立的关系模式,关系模式的属性包括与该联系相连的各端实体系模式,关系模式的属性包括与该联系相连的各端实体的码以及联系本身的属性,关系模式的码由这些实体的的码以及联系本身的属性,关系模式的码由这些实体的码共同组成,在这个独立的关系模式中,它们也都是外码共同组成,在这个独立的关系模式中,它们也都是外码。码。例如,学生、老师和课程这三个实体之间具有一个多对例如,学生、老师和课程这三个实体之间具有一个多对多的选修联系,则它们可以转换为以下多的选修联系,则它们可以转换为以下4 4个关系模式:个关系模
50、式:学生(学号,姓名,性别,年龄,班级)课程(课程号,课程名,学分,课程简介)老师(老师编号,姓名,性别,年龄,职称,学历)选修(学号,课程号,老师编号,成绩)3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )一元联系的转换一元联系的转换同一个实体集内部各实体之间联系(一对一、一对同一个实体集内部各实体之间联系(一对一、一对多、多对多)的转换规则和二元联系(一对一、一多、多对多)的转换规则和二元联系(一对一、一对多、多对多)的转换规则相同。对多、多对多)的转换规则相同。例如,职工实体集内部具有一个一对多的领导联系,则例如,职工实体集内部具有一个一对多的领导联系,
51、则它们可以转换为两个关系模式:它们可以转换为两个关系模式:职工(职工号,姓名,性别,职称)领导(职工号,领导职工号) 或单个关系模式:或单个关系模式:职工(职工号,姓名,性别,职称,领导职工号)3.3.1 3.3.1 E-R图向关系模型的转换图向关系模型的转换( (续续) )具有相同码的关系模式可以合并。具有相同码的关系模式可以合并。根据以上转换原则,学生管理信息系统的关系模型由根据以上转换原则,学生管理信息系统的关系模型由以下八个关系模式组成(其中,码用下划线标明,外以下八个关系模式组成(其中,码用下划线标明,外码用斜体标明):码用斜体标明):学生(学生(学号学号,姓名,性别,年龄,班级,姓
52、名,性别,年龄,班级,职工号职工号)课程(课程(课程号课程号,课程名,学分,课程简介),课程名,学分,课程简介)老师(老师(老师编号老师编号,姓名,性别,年龄,职称,学历),姓名,性别,年龄,职称,学历)图书(图书(书号书号,书名,作者,出版社,出版时间,书名,作者,出版社,出版时间,类型名类型名,职工号职工号)图书类型(图书类型(类型名类型名,借阅期限),借阅期限)图书管理员(图书管理员(职工号职工号,姓名,性别,职称),姓名,性别,职称)选修(选修(学号学号,课程号课程号,老师编号老师编号,成绩),成绩)借阅(借阅(学号学号,书号书号,职工号职工号,借出日期,归还日期),借出日期,归还日期
53、)其中,注册联系被合并到学生关系中,登记联系和属其中,注册联系被合并到学生关系中,登记联系和属于联系被合并到图书关系中,从而在学生关系和图书于联系被合并到图书关系中,从而在学生关系和图书关系中产生了相应的外码。关系中产生了相应的外码。 3.3.2 3.3.2 数据模型的优化数据模型的优化为了进一步提高数据库应用系统的性能,还应根为了进一步提高数据库应用系统的性能,还应根据具体的应用需求对设计出来的数据模型进行适据具体的应用需求对设计出来的数据模型进行适当的调整,这就是数据模型的优化。当的调整,这就是数据模型的优化。 关系模型的优化通常以规范化理论为指导,方法关系模型的优化通常以规范化理论为指导
54、,方法是:是:按照规范化理论逐一对关系模式进行分析,考察其中按照规范化理论逐一对关系模式进行分析,考察其中是否存在部分函数依赖、传递函数依赖和多值依赖等,是否存在部分函数依赖、传递函数依赖和多值依赖等,确定各关系模式分别属于第几范式。确定各关系模式分别属于第几范式。根据用户的处理需求,分析这些关系模式是否合适,根据用户的处理需求,分析这些关系模式是否合适,确定是否要对某些关系模式进行合并或分解。确定是否要对某些关系模式进行合并或分解。对关系模式进行必要的分解,以提高数据操作的效率。对关系模式进行必要的分解,以提高数据操作的效率。水平分解垂直分解3.3.3 3.3.3 外模式的设计外模式的设计除
55、了设计全局逻辑模型外,逻辑结构设计阶段还除了设计全局逻辑模型外,逻辑结构设计阶段还要为具有不同数据需求的用户设计相应的外模式。要为具有不同数据需求的用户设计相应的外模式。目前的关系数据库管理系统都提供了视图目前的关系数据库管理系统都提供了视图(ViewView)的概念,用视图来设计外模式。)的概念,用视图来设计外模式。和逻辑模式不同,在设计外模式时,主要考虑数和逻辑模式不同,在设计外模式时,主要考虑数据的安全性和用户的习惯与方便。据的安全性和用户的习惯与方便。例如,主讲老师在输入成绩时只需看到且只能修例如,主讲老师在输入成绩时只需看到且只能修改自己所教学生的所教课程成绩,因此,可以为改自己所教
56、学生的所教课程成绩,因此,可以为主讲老师建立只包含这些数据的一张视图,主讲主讲老师建立只包含这些数据的一张视图,主讲老师拥有对该视图中成绩属性的查询和修改权限。老师拥有对该视图中成绩属性的查询和修改权限。 第第3 3章章 关系数据库设计关系数据库设计3.1 数据库设计概述数据库设计概述3.2 概念结构设计概念结构设计3.3 逻辑结构设计逻辑结构设计3.4 本章小结本章小结3.4 3.4 本章小结本章小结3.1 数据库设计概述数据库设计概述数据库设计的方法数据库设计的方法数据库设计的基本步骤数据库设计的基本步骤数据库各级模式的形成数据库各级模式的形成3.2 概念结构设计概念结构设计概念结构设计的方法和步骤概念结构设计的方法和步骤局部视图的设计局部视图的设计局部视图的集成局部视图的集成3.3 逻辑结构设计逻辑结构设计E-R图向关系模型的转换图向关系模型的转换数据模型的优化数据模型的优化外模式的设计外模式的设计