数据库设计概念
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库设计概念
在设计数据库时,需要计划要存储有关哪些事物的信息,以及要保存有关各个事物的哪些信息。您还需要确定这些事物的相互关系。如果使用数据库设计中的术语,在这一步创建的数据库原型就称作概念数据库模型。
实体和关系
要存储其相关信息的可识别对象或事物称作实体。它们之间的关联称作关系。在数据库描述语言中,可以将实体看做名词,将关系看做动词。
由于概念模型对实体和关系进行了明确的区分,因此这种模型非常有用。这种模型将在任何特定数据库管理系统中实施设计所涉及的细节隐藏起来,从而使设计者可以集中考虑基础数据库结构。因此,这种模型也成为了一种用于讨论数据库设计的通用语言。
实体关系图
概念数据库模型主要由一个显示实体和关系的示意图构成。这个示意图通常称作实体关系图。因此,许多人也使用实体关系建模这个词来指创建概念数据库模型的任务。
概念数据库设计是一个由上至下的设计方法。现在有许多功能完备的工具可以帮助您按照这种方法或其他方法进行设计,例如,Sybase PowerDesigner。虽然本章的目的只是进行介绍,但也提供了足够的信息可以帮助您设计简单的数据库。
实体
在数据库中,一个实体对应于一个名词。可识别的对象,例如,雇员、订单项、部门和产品,都是实体的示例。在数据库中用表代表各个实体。置入数据库的实体都源于要使用数据库执行的活动,例如,跟踪销售电话和维护雇员信息,等等。
属性
每个实体都包含一些属性。属性是指要为事物存储的特定特性。例如,在雇员实体中,需要存储雇员ID 号、姓氏和名字、地址,以及与一个特定雇员相关的其他信息。属性也称作特性。
实体用一个矩形框表示。在矩形框内部,列出与该实体相关联的属性。
标识符是指所有其他属性都依赖的一个或多个属性。它在实体中唯一地标
识一个项目。在要组成标识符的属性名下面加上下划线。
在上面的Employee 实体中,Employee Number 唯一地标识一个雇员。
所有其他属性都存储只与那个雇员相关的信息。例如,一个雇员编号唯一
地确定一个雇员的名字和地址。两个雇员可能具有相同的名字或相同的地址,但可以确保他们的雇员编号不同。Employee Number 下面带有下划线,表示它是标识符。
为每个实体都创建一个标识符是一个良好的习惯。这些标识符在表中将成
为主键,下文中将对此进行说明。主键值必须唯一,并且不能为空或未定义。主键唯一地标识表中的每一行,并且提高数据库服务器的性能。
关系
在数据库中,实体之间的一个关系对应于一个动词。一个雇员属于一个部门,或者一个办事处位于一座城市。数据库中的关系可能表现为表间的外
键关系,也可能自身就成为独立的表。您将在本章中看到这两种情况的示例。
数据库中的关系就是控制实体中数据的规则或惯例的编码。如果每个部门
有一个部门经理,可以在部门和雇员之间建立一对一的关系来标识该部门
经理。
当关系置入数据库结构后,就不可能再出现例外。没有地方可以输入另一
个部门经理。复制部门条目将复制部门ID,而它是标识符。标识符不允
许有重复。
提示
严格的数据库结构有很大好处,因为它可以消除不一致的问题,例如一个部门有两个经理。另一方面,作为设计者,您应该使设计具有足够的灵活性以便于进行扩展,以满足某些未预见到的需要。对设计合理的数据库进行扩展通常并不很困难,但修改现有表结构可能会致使整个数据库及其客户端应用程序无法使用。
关系的基数
表之间有三种关系。这三种关系对应于关系中所涉及的实体的基数(数量)。
•一对一关系关系通过在两个实体间画一条连线表示。连线上可以有其他标记,例如,下图中所示的两个圆圈。这些
标记的用途将在下文中进行说明。在下图中,一个部门由一
个雇员管理。
•一对多关系如果[实体1] 中包含的一项可以与[实体2] 中的多项相关联,这样一种关系用多条连线连接到[实体2]
来表示。在下图中,一个办事处可以有多部电话。
•多对多关系在这种情况下,两个实体的连接处都要画多条连线。这表示一个仓库可以存放许多不同的部件,而同一类
部件也可以存放在许多仓库中。
角色
您可以用两个角色来描述每种关系。角色是用于从每个观察点描述关系的
动词或短语。例如,雇员和部门之间的关系可以用以下两个角色来描述:
1. 雇员属于部门。
2. 而部门包含雇员。
角色非常重要,因为它们为您提供了一种方便且有效的方法来验证您的工作。
提示
不管是从左到右读取还是从右到左读取,下面的规则都会使读取这些图示变得容易:读取(1) 第一个实体的名称,(2) 第一个实体旁边的角色,(3) 到第二个实体的连接的基数,(4) 第二个实体的名称。
强制元素
表示关系的连线末端的小圆圈具有非常重要的作用。圆圈表示存在于该实
体内的元素在另一个实体内不必有对应的元素。
如果出现的是一段交叉线而不是圆圈,则表示另一个实体中的每个元素在
该实体中至少应有一个对应元素。下面举例说明这些标记的含义。
此图具有以下四个含义:
1. 一家出版社出版了零或多本书。
2. 一本书由恰好一家出版社出版。
3. 一本书由一或多位作者撰写。
4. 一位作者撰写了零或多本书。
提示
可以把小圆圈看做数字0,把交叉线看做数字1。圆圈表示至少零。交叉线表示至少一。
反身关系
有时,同一个实体内的条目之间也存在关系。这种关系称作反身关系。关
系的两端都连接到同一个实体。
此图具有以下两个含义。
1. 一个雇员最多只向另外一个雇员报告。
2. 一个雇员管理零个或多个雇员。
请注意,在这个关系中,关系在两个方向上都应该是可选的。某些雇员不
是经理。同样,至少应该有一个雇员是公司的总经理,因此不向任何人报告。
自然,还应指定一个雇员不能是他自己的经理。这个限制是一种业务规则。业务规则将在下文中作为设计过程的一部分进行讨论。
将多对多关系更改为实体