数据库配置与管理-项目.ppt

上传人:牧羊曲112 文档编号:6578712 上传时间:2023-11-14 格式:PPT 页数:28 大小:264.50KB
返回 下载 相关 举报
数据库配置与管理-项目.ppt_第1页
第1页 / 共28页
数据库配置与管理-项目.ppt_第2页
第2页 / 共28页
数据库配置与管理-项目.ppt_第3页
第3页 / 共28页
数据库配置与管理-项目.ppt_第4页
第4页 / 共28页
数据库配置与管理-项目.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《数据库配置与管理-项目.ppt》由会员分享,可在线阅读,更多相关《数据库配置与管理-项目.ppt(28页珍藏版)》请在三一办公上搜索。

1、项目二,公司管理数据库系统的规划设计,【教学目标】(1)理解数据库的基本概念。(2)理解数据库组织数据的模型。(3)掌握关系型数据库的有关基本概念。(3)理解范式理论。【能力目标】(1)能够对实际应用系统进行项目需求分析。(2)能够根据项目需求分析进行数据库的概念模型设计。(3)能够将E-R 模型转换为关系模型。(4)能够利用范式理论对数据表进行优化设计。(5)通过项目需求分析,培养与客户沟通的能力。【学习导航】本项目介绍数据库的开发流程,即数据库的设计规则和设计步骤。在图2-1中,可,图2-1 本项目在公司管理数据库系统开发中的称节及位置以看到本项目在公司管理数据库系统开发中的环节及位置。【

2、工作任务】根据公司管理系统的工作流程,设计一个满足该公司管理的数据库。按照数据库设计的思想及基本步骤对公司管理数据库进行如下设计。(1)公司管理数据库的需求分析。(2)公司管理数据库的概念结构设计。(3)公司管理数据库的逻辑设计。(4)公司管理数据库的物理设计。,理论知识准备,数据库是相关数据的集合,它不仅反映数据本身的内容,而且要反映数据之间的联系。在数据库中,用数据模型这个工具来抽象、表示、处理现实世界中的数据和信息,以便计算机能够处理这些对象。因此,数据模型就是对现实世界数据的模拟。了解数据模型的基本概念是学习数据库的基础。根据数据模型应用目的的不同,可以将数据模型分为两类:概念模型(也

3、称信息模式)和数据模型。前者是从用户的角度来对数据和信息建模,这类模型主要用在数据库的设计阶段,与具体的数据库管理系统无关。后者是从计算机系统的角度对数据建模,它与所使用的数据管理系统的种类有关,主要用于DBMS的实现。1实体实体是客观存在且相互区别的事物及事物之间的联系,例如,在数据库概念结构设计时有客户实体、订单实体、雇员实体和产品实体。2属性属性是指实体所具有的某种特性。属性用来描述一个实体,例如,产品实体有产品ID、产品名等各种属性。,2.1.1 概念模型,2.1.1 概念模型,3联系现实世界的事物间总是存在这样或那样的联系,这种联系必然要在信息世界中得到反映。这些联系在信息世界中反映

4、为实体内部以及实体与实体之间的联系。两个实体之间的联系有3种情况。(1)一对一联系:如果对于实体A中的每一个实体,实体B中至多有一个实体与其发生联系,反之亦然,则称实体A与实体B是一对一联系,记作1:1。(2)一对多联系:如果对于实体A中的每一个实体,实体B中有n(n0)个实体与之发生联系;反之,对于实体B中的每一个实体,实体A中至多有一个实体与之发生联系,则称实体A与实体B是一对多联系,记作1:n。这是一种最常见的一种联系。如图2-2所示,产品实体与类别实体使用类别ID进行联系,每个类别都拥有多件产品,而每件产品只属于一个类别。因此,类别实体中的一个实体对应产品实体中的多个实体,产品实体中的

5、一个实体只对应类别实体中的一个实体。所以,这两个实体之间构成一对多联系。(3)多对多联系:如果对于实体A中的每一个实体,实体B中有n(n0)个实体与之发生联系;反之,对于实体B中的每一个实体,实体A中有m(m0)个实体与之发生联系,则称实体 A与实体B是多对多联系,记作m:n。,如图2-3所示,如果公司中的每一个雇员并不是只负责一个订单,而每个订单也不是只能有一个订单负责人,那么在订单实体和雇员实体之间就会建立多对多联系。在大多数情况下,可以将这种联系转换为多个一对多联系。,图2-2 一对多联系 图2-3 多对多联系,4E-R方法E-R方法是一种用来在数据库设计过程中表示数据库系统结构的方法,

6、又被称为EAR方法或EAR模型。它的主导思想是使用实体(Entity)、实体的属性(Attribution)、实体之间的关系(Relationship)来表示数据库系统的结构。在E-R模型图中,用方框表示实体,用菱形表示联系,用椭圆形表示属性。例如,可以将一名雇员作为一个实体表示,,如图2-4所示。,图2-4 雇员实体另外,还可以使用E-R模型图来表示实体之间的关系。例如,可以使用如图2-5所示的E-R模型图来表示雇员实体和订单实体之间的关系。,图2-5 雇员实体和订单实体之间的联系图2-6 转换后的数据表结构在完成了E-R模型图以后,就可以将模型图转换为真正的数据表结构了。在E-R模型图向数

7、据表的转换过程中,首先需要将实体转换为一个独立的数据表,然后将实体的属性转换为数据表中的字段,最后根据实体之间的关系建立数据表之间的关联。例如,图2-5中的E-R模型图可以转换为如图2-6所示的数据表结构。当然,许多有经验的数据库开发者已经完全不必经过设计E-R模型图、将E-R模型图转换为数据表结构的过程就可以设计出准确可靠的数据库结构了。但在刚刚开始设计数据库的阶段,还希望同学们按照这种过程来进行。,图2-6 转换后的数据表结构,2.1.2 数据模型,1数据模型的三要素现实世界中的客观事物经过概念模型的抽象和描述,最终要转换为计算机所能识别的数据模型。数据模型与具体的DBMS相关,可以说它是

8、概念模型的数据化,是现实世界的计算机模拟。数据模型通常有一组严格定义的语法,人们可以使用它来定义、操纵数据库中的数据。数据模型的组成要素包括数据结构、数据操作和数据的完整性约束。(1)数据结构。数据结构是对数据静态特征的描述。数据的静态特征包括数据的基本结构、数据间的联系和对数据取值范围的约束。所以说,数据结构是所研究对象类型的集合。例如,在前面所讲的公司管理系统中,产品表中的产品ID和订单表中的产品ID是有联系的,即订单表中的产品ID必须在产品表中产品ID的取值范围内。(2)数据操作。数据操作是指对数据动态特征的描述,包括对数据进行的操作及相关操作规则。数据库的操作主要有检索和更新(包括插入

9、、删除、修改)两大类。数据模型要定义这些操作的确切含义、操作符号、操作规则(如优先级别)以及实现操作的语言。因此,数据操作完全可以看成是对数据库中各种对象操作的集合。,(3)数据的完整性约束。数据的完整性约束是对数据静态和动态特征的限定,是用来描述数据模型中数据及其联系应该具有的制约和依存规则,以保证数据的正确、有效和相容。数据模型应该反映和规定符合本数据模型必须遵守的基本的通用的完整性约束条件。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。另外,数据模型还应该提供定义完整性约束条件的机制,用以反映特定的数据必须遵守特定的语义约束条件。例如,学生信息中必须要求学生性别只能

10、是男或女。数据模型的这3个要素完整地描述了一个数据模型,数据模型不同,描述和实现方法亦不同。2层次模型数据库的有类型,是根据数据模型划分的。目前常用的数据模型主要有层次模型、网状模型、关系模型和面向对象模型。其中,层次模型、网状模型是非关系模型。层次模型用树形结构来表示各类实体以及实体间的联系。以实体作为节点,树是由节点和连线组成的。每个节点表示一个记录类型,记录(类型)之间的联系用节点之间的连线(有向边)表示。通常把表示1的节点放在上面,称为父节点;把表示多的节点放在下面,称为子节点。在数据库中定义满足下面两个条件的数据模型为层次模型。(1)有且只有一个节点没有父节点,这个节点称为根节点。(

11、2)根以外的其他节点有且只有一个父节点。由此可见,层次模型描述的是1:n的实体联系,即一个父节点可以有一个或多个子节点。如图2-7所示是一个层次模型。,3网状模型在现实世界中,事物之间的联系更多的是非层次关系的,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一点。与层次模型一样,网状模型中每个节点表示一个记录类型(实体),每个记录类型可包含若干个字段(实体的属性),节点间的连线表示记录类型(实体)之间一对多的父子联系。与层次模型不同,网状模型中的任意节点间都可以有联系。在数据库中,把满足以下两个条件的数据模型称为网状模型。(1)允许一个以上的节点无父节点。(2)一个节点可以有多于一

12、个的父节点。由此可见,网状模型可以描述实体间多对多的联系。如图2-8所示是一个网状模型。图2-7 层次模型 图2-8 网状模型,网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个节点没有父节点,允许节点有多个父节点,此外它还允许两个节点之间有多种联系(称为复合联系)。因此,网状模型可以更直接地用于描述现实世界,而层次模型实际上是网状模型的一个特例。4关系模型关系模型是目前应用最广泛,也是最重要的一种数据模型。关系数据库就是采用关系模型作为数据的组织形式的。关系模型是1970年在EFCodd发表的题为大型共享数据库数据的关系模型的论文中首次提出的,并开创了数据库关系方

13、法和关系数据理论的研究,进而创建了关系数据库系统(Relational Database System,RDBS)。更重要的是RDBS提供了结构化查询语言(Strctured Query Language,SQL),它是在关系数据库中定义和操纵数据的标准语言。SQL大大增强了数据库的查询功能,是RDBS普遍应用的直接原因。(1)数据结构。关系模型中基本的数据结构是二维表。每个实体可以看成一个二维表,它存放实体本身的数据,实体间的联系也用二维表表表达。在关系模型中,每个二维表称为一个关系,并且有一个名称,称为关系名。如表2-1所示是个二维表的结构。,表2-1 二维表,(2)数据操纵与完整性约束。

14、关系模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足关系模型的完整性约束条件。关系模型的完整性约束包括实体完整性、参照完整性和用户定义完整性。关于数据完整性请参见。,(3)存储结构。关系模型中,实体及实体间的联系都用二维表来表示。在数据库的物理组织中,二维表以文件形式存储。(4)优点。关系数据模型的主要优点如下。具有严格的数据理论基础,关系数据模型是建立在严格的数据概念基础上的。概念单一,不管是实体本身还是实体之间的联系都用关系(表)来表示,这些关系必须是规范化的,使得数据结构非常清晰、简单。在用户的眼中,无论是原始数据还是结果都是二维表,不用考虑数据的存储路径。因

15、此,提高了数据的独立性、安全性,同时也提高了开发效率。5面向对象模型面向对象数据库系统支持面向对象数据模型。面向对象数据库是面向对象数据库技术和面向对象程序设计相结合的产物,面向对象的方法是面向对象数据库模型的基础,这种数据模型能够适应更复杂的数据处理技术。面向对象模型中的核心概念是对象(Object)和类(Class)。(1)对象和类。对象类似于E-R模型中的实体,但更为复杂。每个对象不仅有数据特征,还有状态(State)特征和行为(Behavior)特征,并把它们封装在一起。比如,学号、姓名、年龄、专业等可以看做学生的数据特征,学生是否毕业看成状态特征,学生是否选修了课程可以看做学生的行为

16、特征。因此,对象应该具有三要素:唯一的标识符用来识别对象;用特征或属性用来描述对象;有一组操作用来决定对象对应的行为。根据对象的定义,我们可以看出有很多客观存在的对象具有相似的特性。,比如,学生是一个客观存在的对象,那么无论是男学生还是女学生都应该具有学生的特征,只不过可以通过相应的属性值加以区分。我们把具有相同数据特征和行为特征的所有对象称为类。由此可以看出,对象是类的一个实例。类是一个描述,对象是具体描述的值。每个类都由两部分组成,其一是对象类型,也称对象的状态;其二是对这个对象进行的操作方法,称为对象的行为。对象的状态是描述该对象属性值的集合,对象的行为是对该对象操作的集合。例如,学生赵

17、强是一个学生类的对象。对象名:赵强 对象的属性(状态):未婚 学号:性别:男 专业:信息工程系 出生日期:1988-0425 对象的操作(行为):选修课程,参加考试该学生类中所有像赵强这样的学生对象,都具有相同的数据状态和行为。(2)面向对象模型的优缺点。由于面向对象模型中不仅包括描述对象状态的属性集,而且包括类的方法及类层次,具有更加丰富的表达能力。因此,面向对象的数据库比层次、网状、关系数据库使用上更加方便,它能够支持这些模型所不能处理的复杂的应用。面向对象模型不但能够支持存储复杂的应用程序,而且还能够支持存储较大的数据结构。由于面向对象模型可以直接引用对象,因此,使用对象可以处理复杂的数

18、据集。当然,面向对象模型也有它的缺点,比如,由于模型复杂,系统实现起来难度大。,2.1.3 数据库系统模型,在数据库系统中,通常按数据结构的类型来命名数据模型。数据库系统模型是指数据库中数据的存储结构。1层次型数据库层次型数据库使用结构模型作为自己的存储结构。这是一种树形结构,它由节点和连线组成,其中节点表示实体,连线表示实体之间的关系。在这种存储结构中,数据将根据需要分门别类地存储在不同的层次之下。2网络型数据库网络型数据库使用网络模型作为自己的存储结构。在这种存储结构中,数据记录组成网络中的节点,而记录和记录之间的关联组成节点之间的连线,从而构成了一个复杂的网状结构。3关系型数据库关系型数

19、据库使用的存储结构是多个二维表格。表中的一行称为一条记录或元组,用来描述一个对象的信息;表中的一列称为一个字段或属性,用来描述对象的一个属性。使用这种模型的数据库的优点是结构简单、格式唯一、理论基础严格,而且数据表之间是相对独立的,它们可以在不影响其他数据表的情况下进行数据的增加、修改和删除。在进行查询时,还可以根据各数据表之间的关联性,从多个数据表中查询抽取相关的信息。关系型数据库是目前最为流行的数据库,关系型数据库管理系统很多,如SQL Server、Oracle、Sybase、Informix、Dbase、DB2等。在以后的叙述中,我们提及的数据库均指关系型数据库。,2.1.4 关系数据

20、库的基本理论,基于关系模型的关系数据库是目前各类数据库中最重要、最流行的数据库,也是目前使用最广泛的数据库管理系统。20世纪70年代后期开发的数据库管理系统产品几乎都是关系数据库。关系模型是关系数据库的基础,因此在这一节中将继续讨论关系数据的一些基本理论。1关系的定义在中已经介绍过,关系模型的数据结构是用二维表的形式来表示实体及实体之间联系的数据模型。关系模型的数据结构是由行和列组成的二维表。任意两行互不相同,列值是不可分的数据项,行和列的次序任意。从用户角度来看,关系的逻辑结构是一个二维表,在磁盘上以文件形式存储。表2-1就是一个代表产品信息的关系。在表示关系的二维表中,每个关系都有一个关系

21、名。不是所有二维表都是关系,因此二维表必须满足以下几个条件。(1)表中每一项都必须是不可再分的最小数据项,这也是对关系的最基本限定。例如,表2-2就不是一个关系,因为表中“学时数”不是最小的数据项。要想使其成为一个关系,只需要把“学时数”这个数据项分解为“理论时数”和“实践时数”两项即可,新关系如表2-3所示。,关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表。(2)表中不能出现数据完全相同的两行。(3)表中同一列的数据类型是相同的,也就是说,列中所有分量是同类型的数据,来自同

22、一值域。如果把每一列称为一个属性,则每一列的列名或属性名不应该相同。(4)表中各行或各列的次序可以任意交换,不改变关系的实际意义。例如,把学生关系中的“性别”和“年龄”两列交换次序,并不影响这个表要表达的意义。2关系模型的常用术语(1)关系(Relation):一个关系通常对应于一张表,如表2-1所示。(2)元组(Tuple):二维表中的一行即为一个元组(记录),如表2-1所示的产品关系中,元组如下所示。牛奶12.30200冰激凌 11.50400打印纸 240.00 100墨盒2200.00 150(3)属性(Attribute):二维表中的一列即为一个属性,给每一个属性起一个名称即属性名。

23、,例如,例如,表2-1有5列,对应5个属性(产品ID,产品名,类别ID,单价,库存量)。(4)域(Domain):属性的取值范围称为该属性的域。属性的域是由属性的性质及要表达的意义确定的,如商品的单价只能取大于零的数。(5)主关键字或主码(Key):表中的某个属性或几个属性组合称为关键字,它可以唯一确定一个元组,如产品关系中的产品ID,可以唯一确定一种产品,因此产品ID称为这个关系的关键字。(6)外关键字、外键或外码(Foreign Key):一个关系中的属性或属性组不是本关系的主码,而是另一关系的主码,则称该属性或属性组是该关系的外主关键字。(7)关系模式(Relation Schema):

24、对关系的描述称为关系模式,它描述的是二维表的结构。关系模式一般表示为:关系名(属性1,属性2,属性n)例如,上面的关系可描述为:产品(产品ID,产品名,类别ID,单价,库存量)。在关系模型中,实体以及实体间的联系都是用关系来表示的。例如,学生、课程、选课之间的多对多联系在关系模型中可以表示如下。学生(学号,姓名,年龄,性别,专业)课程(课号,课程名,课时数)选修(学号,课程号,成绩),3关系的完整性数据完整性是指数据库中数据的一致性和正确性。数据库是否具备完整性涉及数据是否正确、可信和一致。关系模型的完整性包括实体完整性、域完整性、参照完整性和用户定义的完整性。(1)实体完整性(Entity

25、Integrity):实体完整性的目的是确保数据库中所有实体的唯一性,也就是不应使用完全相同的数据记录。可以通过设定主键(Primary Key)、唯一键(Unique Key)、唯一索引(Unique Index)和标识列(Identity Column)等多种方法来实现实体完整性,其中最常用的是使用主键。例如,如果在employee表中已经存在雇员ID为“1002”的记录,那么,再试图添加一个雇员ID为“1002”的记录时,SQL Server将拒绝向数据表中添加该记录。(2)区域完整性(Domain Integrity):区域完整性是要求数据表中的数据位于某一个特定的允许范围内。可以使用

26、默认值(Default)、核查(Check)、外键(Foreign Key)、数据类型(Data Type)和规则(Rule)等多种方法来实现区域完整性。例如,如果限制“性别”字段的数据值可以是“男”或“女”,那么,输入的其他数值将被SQL Server拒绝。(3)参照完整性(Referential Integrity):参照完整性是用来维护相关数据表之间数据一致性的手段,通过实现参照完整性,可以避免因一个数据表的记录改变而造成另一个数据表内的数据变成无效的值。,可用来实现参照完整性的方法包括:外键、核查、触发器(Trigger)和存储过程(Stored Procedure)。例如,在empl

27、oyee表和p_order表中,如果要删除employee表中的一条记录,而同时在p_order表中存在需要参考该记录的记录集,那么该删除操作将会失败,这样就避免了p_order表中的数据失去关联。(4)用户定义完整性:这种数据完整性由用户根据实际应用中的需要自行定义。可以用来实现用户定义完整性的方法有:规则、触发器、存储过程和数据表创建时可以使用的所有约束(Constraint)。例如,在employee表和p_order表中,如果某雇员负责的订单数超过5个,那么该雇员的“薪水”应大于5000。通过使用这些强制的完整性定义,数据库管理系统将提供更加可靠的数据,同时避免在多个用户同时操作数据库

28、时可能发生的数据不一致。,表2-4 employee关系,2.1.5 范式理论,关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则被称为规范化形式,即范式。在数据库设计过程中,对数据库进行检查和修改并使它符合范式的过程叫做规范化。范式按照规范化的级别分为5种:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)和第五范式(5NF)。在实际的数据库设计过程中,通常需要用到的是前三类范式。1第一范式第一范式要求每一个数据项都不能拆分成两个或两个以上的数据项。例如,教师(编号,姓名,性别,职称职务)并不

29、满足第一范式,因为“职称职务”属性可以再分解为职称、职务两个字段。2第二范式如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式,即2NF。例如,在p_order表(表2-7)中,数据表的主键是订单ID。其中,“产品名”字段完全依赖于“产品ID”字段,而不是取决于订单ID。,2.1.5 范式理论,因此,该表所示的p_order表不满足第二范式。但该数据表中的其他字段都完全依赖于该表的主键宇段“订单ID”。因此,可以将该数据表中的“产品名”字段去掉,以满足第二范式,如表2-8所示。表2-7 不满足第二范式的p_order表,

30、表2-8 满足第二范式的p_order表,2.1.5 范式理论,2.1.5 范式理论,3第三范式如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范式,即3NF。如果在employee表中,“奖金”字段的数值是“薪水”字段数值的20,那么,这两个宇段之间存在着函数关系。故表2-9所示的employee表不满足第三范式。可以将“奖金”字段从该表中删除,以满足第三范式,如表2-10所示。表2-9 不满足第三范式的employee表,表2-10 满足第三范式的employee表,实际上,第三范式就是要求不要在数据库中存储可以通过简单计

31、算得出的数据。这样不但可以节省存储空间,而且在拥有函数依赖的一方发生变动时避免了修改成倍数据的麻烦,同时也避免了在这种修改过程中可能造成的人的错误。通过对表的规范化过程可以看出,数据表规范化的程度越高,数据冗余就越小,同时造成人为错误的可能性就越小;反之,规范化的程度越低,在查询检索时需要做的关系等工作就越多,数据库在操作过程中需要访问的数据表以及之间的关系也就越多。因此,在数据库设计的规范化过程中,要根据数据库需求的实际情况,选择一个折衷的规范化程度。,小结,数据库设计是根据给定的应用环境,构造出规范的数据库模型,建立数据库及其应用系统,有效地存储数据,满足用户信息处理的要求。本项目以公司管理数据库系统为例,介绍了数据库设计过程以及与数据库设计有关的数据库基本概念。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号