文章目录
- 概念层数据模型——E-R模型
- 实体:
- 属性:
- 联系:
- E-R图表示
- 两个实体之间的联系
- 一对一联系
- 一对多联系
- 多对多联系
- 多个实体之间的联系
- 概念设计的特点和策略
- 设计全局E-R模型
- E-R图之间的冲突
- 优化全局E-R模型
- 逻辑结构设计
- E-R模型的转换一
- E-R模型的转换二
- E-R模型的转换三
数据库开发的基本步骤
数据模型的概念
用于概念结构设计和逻辑结构设计
模型是对事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表达,是理解系统的思维工具。
数据模型(Data Module)是对现实世界中数据特征的抽象和表示 。
常用数据模型分为概念数据模型和组织数据模型。
概念数据模型:
也称概念模型或信息模型,是按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。
组织数据模型:
它是按计算机系统的观点对数据进行建模,是现实世界数据特征的抽象,用于实现具体的DBMS。组织数据模型有层次模型、网状模型、关系模型和面向对象模型。
概念模型应该具有较强的语义表达能力,能够方便、直接的表达应用中的各种语义知识,还应该简单、清晰、易于用户理解
概念层数据模型——E-R模型
E-R模型的主要元素包括实体、属性和关系。实体用矩形表示,属性用椭圆形表示,关系用菱形表示。实体之间的关系由关系连接线表示,连接线上标注了关系的名称和类型,如一对一、一对多或多对多等。
E:代表实体;R:代表关系
这里分享画ER图的网站——Process On
常用的概念模型有实体-联系(Entity-Relationship,简称E-R)模型、语义对象模型。
这里只介绍实体-联系模型。
实体:
在E-R图中,实体(Entity)是一个具有独立身份和特征的对象,通常用矩形表示。实体可以是现实世界中的一个具体对象,如人、车、书等,也可以是一个抽象概念,如订单、客户等。
实体在E-R图中通常包含以下三个要素:
-
实体名称:通常用名词来表示,如“员工”、“产品”等。
-
实体属性:即实体具有的特征或属性,通常用椭圆形表示,包括实体的属性名称和数据类型。例如,“员工”实体的属性可以包括姓名、性别、年龄等。
-
实体主键:用于唯一标识实体的属性或属性组合,通常用下划线标记。实体主键可以作为关系中的外键,用于建立实体之间的联系。
在E-R图中,实体的属性和主键决定了实体之间的关系,也影响着数据库表的设计和数据存储方式。
因此在设计E-R图时,需要仔细分析实体之间的关系和属性,确保E-R图能够准确地反映现实世界中的业务需求。
属性:
在E-R图中,属性(Attribute)是实体所拥有的特征或者数据,通常用椭圆形表示。在实体上画出该属性表示该属性属于该实体。
属性具有以下两个要素:
-
属性名称:通常用名词来表示,如“员工”实体的属性可以包括姓名、性别、年龄等。
-
数据类型:属性的数据类型定义了该属性可以存储的数值类型,例如文本、数字、日期等。属性的数据类型可以根据不同的数据库管理系统进行不同的设置。
属性的数量和类型决定了实体内部的数据结构和数据存储方式。
在实际的E-R图设计中,应该仔细考虑每个属性的含义和作用,确保只有必要的属性被包含在实体中,从而提高数据库的效率和操作的简便性。
联系:
在E-R图中,联系(Relationship)表示实体之间的关系,用来描述不同实体之间的相互作用和联系。
联系通常用菱形表示,并用两条线将联系和实体连接在一起。E-R图中联系的类型包括一对一(1:1)、一对多(1:N)和多对多(M:N)。联系也可以有属性。
一对一表示两个实体之间只存在一个关联,例如每个人只能有一个身份证号码,一个身份证号码只能对应一个人。
一对多表示一个实体可以和多个另外的实体相关联,例如一个部门可以有多个员工,但一个员工只能属于一个部门。
多对多表示两个实体之间存在多个对应,例如一个学生可以选多门课程,每门课程也可以被多个学生选择。
联系的类型也决定了数据库表之间的关系,因此在后续的数据库设计中需要根据E-R图中的联系建立相应的外键关系,从而保证数据的完整性和一致性。
E-R图表示
实体用矩形表示
属性在E-R图中用圆角矩形或者是椭圆形表示
在矩形框内写上属性的名字,并用连线将属性矩形框与它所描述的实体联系起来。
主码用属性名字加下划线表示
两个实体之间的联系
一对一联系
指实体集E1中的一个实体最多只与实体集E2中的一个实体相联系。
例如:电影院的座位和观众实体之间的联系
一对一联系:如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系。
记作:1 : 1。
一对多联系
表示实体集E1中的一个实体可与实体集E2中的多个实体相联系。
例如:部门和职工两个实体集 之间的联系
一对多联系:如果实体A中的每个实例在实体B中有n个实例(n≥0)与之联系,而实体B中每个实例在实体A中只有一个实例与之联系,则称实体A与实体B是一对多联系,
记作:1 : n。
多对多联系
表示实体集E1中的多个实体可与实体集E2中的多个实体相联系。
例如:工程项目和职工两个实体集之间的联系
例如:学生和课程,一个学生可以选修多门课程,一门课程也可以被多个学生选修,因此学生和课程之间是多对多的联系。
多个实体之间的联系
两个以上不同实体之间存在1:1:1、1:1:n、1Ⓜ️n和rⓂ️n的联系。
供应商、项目和零件之间是多对多(r:n:m)的联系。
例:病房、病人和医生之间是一对多(1:n:m)的联系。
同一实体内的二元关系
同一实体内的各实体之间也存在1:1、1:n和m:n的联系
例:职工实体中的领导与被领导的联系 。
概念设计的特点和策略
概念结构设计的任务是产生反映企业组织信息需求的数据库概念结构,即概念模型。
概念模型的特点
有丰富的语义表达能力;
易于交流和理解;
易于更改,当应用环境和应用要求发生变化时,能很容易对概念模型进行修改,以反映这些变化;
易于向各种数据模型转换,易于导出与DBMS有关的逻辑模型。
概念结构设计的策略
自底向上:先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。
自顶向下:先定义全局概念模型,然后再逐步细化。
由里向外:先定义最重要的核心结构,然后再逐步向外扩展。
混合策略:将自顶向下和自底向上结合起来使用。先用自顶向下设计一个概念结构的框架,然后以它为框架再用自底向上设计局部概念结构,并把它们集成。
最常用的设计策略是自底向上策略。
概念结构设计步骤
概念结构设计是用集合概念,抽取出现实业务系统的元素及其应用语义关联,最终形成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模型
一个好的全局E-R模型除了能反映用户功能需求外,还应满足如下条件。
实体个数尽可能少;
实体所包含的属性尽可能少;
实体间联系无冗余。
优化的目的就是要满足上述三个条件,即相关实体的合并,一般是把具有相同主码的实体进行合并。
逻辑结构设计
逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为具体的数据库管理系统支持的数据模型,也就是导出特定的DBMS可以处理数据库的逻辑结构。
关系DBMS处理的是关系模型。
补充:关系中的概念
候选码(候选键):如果关系中的某一个或者一组属性的值能够唯一的确定一个元组,则该属性或者属性组称为候选码(候选键)。
主码(主键):如果一个关系包含多个候选码,可以任选其中一个作为主码(主键)。因为一个关系只能设定一个主码。
外码: 参照某一张表的主码的属性。其如果取值必须参照该主码的取值范围。
E-R模型的转换一
1.实体的转换
一个实体映射为一个关系模式。实体名就是关系名,实体的属性就是关系的属性,实体的主码就是关系的主码。
E-R模型的转换II
2.一对一联系的转换
一个1:1联系,可以转换为一个独立的表,也可以与任意一端的实体所对应的表合并。
如果单独转换为一张表,则联系的名称作为表的名称,与联系相关联的两个实体的主码以及联系本身的属性都作为这张表的属性,任选一个与之相关联的实体的主码作为转换后关系的主码。
如果与某端实体所对应的关系合并,则需要在该关系中添加另一端实体转换后关系的主码和联系本身的属性作为该表的属性。
E-R模型的转换二
3.一对多联系的转换
一个1:n联系,可以单独转换为一张表,也可以合并到多端实体所对应的表中。
如果单独转换为一张表,则联系的名称作为表的名称,与联系相关联的两个实体的主码以及联系本身的属性都作为这张表的属性,与联系相关联的多端实体的主码作为联系转换后关系的主码。
如果与多端实体所对应的表合并,则需要在该表中添加一端实体所对应表的主码和联系本身的属性作为该表的属性。
E-R模型的转换三
4.多对多联系的转换
一个m:n联系只能映射为一个独立的关系模式
联系的名称作为表的名称,相关联的两个实体的主码以及联系本身的属性都作为该表的属性,两端实体的主码联合起来作为该表的主码。
练习
将此E-R图转换成关系模式
答案
设备(型号,功率,备注,名称)
供货厂商(联系人,电话,传真,厂址)
订货(名称,联系人)
逻辑结构设计的步骤
-
将系统的全局E-R模型按照转换原则转换为关系模式。
-
对转换后的关系模式进行优化。如:主码相同的关系可以进行合并。
-
设计数据库的外模式(即视图)。