数据库开发的基本步骤
数据模型的概念
用于概念结构设计和逻辑结构设计
模型是对事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表达,是理解系统的思维工具。
数据模型(Data Module)是对现实世界中数据特征的抽象和表示 。
常用数据模型分为概念数据模型和组织数据模型。
概念数据模型:
也称概念模型或信息模型,是按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。
组织数据模型:
它是按计算机系统的观点对数据进行建模,是现实世界数据特征的抽象,用于实现具体的DBMS。组织数据模型有层次模型、网状模型、关系模型和面向对象模型。
概念模型用于信息世界的建模,实现了由现实世界到信息世界的第一层抽象。
是面向用户面向现实世界的数据模型,与具体的DBMS无关。
是在数据库设计阶段设计人员使用的有力工具,也是数据库设计人员和用户之间进行交流的语言。
概念模型应该具有较强的语义表达能力,能够方便、直接的表达应用中的各种语义知识,还应该简单、清晰、易于用户理解
概念层数据模型——E-R模型
E:代表实体;R:代表关系
这里分享画ER图的网站
好工具一定要分享给最好的朋友,助您和好友一起高效办公!
常用的概念模型有实体-联系(Entity-Relationship,简称E-R)模型、语义对象模型。
这里只介绍实体-联系模型。
实体:
是现实世界中可以区别于其他对象的“事件”或“物体”。在E-R图中,用矩形表示实体,矩形框内标明实体名称。
实体是具有公共性质的可相互区别的现实世界对象的集合。如:人,图书,学生,课程。
实体可以是具体的,也可以是抽象的概念(如:贷款,整数)。
实体的取值称为实例。
图书:数据库原理,C++,操作系统。
学生:张山,李树,王仁等。
实体通过一组属性来表示。
属性:
一个实体集内的所有实体都具有的共同性质我们称之为属性,在E-R图中,用椭圆形表示属性,在椭圆内标明属性名称,并将属性与其对应的实体用无向边进行连接。
属性是实体中每个成员所拥有的性质。
学生(实体):学号,姓名,性别(属性)
图书:书名,作者,价格
实体的每个属性都有一个值。
一个实例 --“数据库原理”对应的属性值:
书名:数据库原理
作者:邓丽
价格:30元
联系:
联系是数据之间的关联集合,是客观存在的应用语义链。在E-R图中,联系用菱形框表示,在菱形框内标明联系名称,并用无向边将联系框与它所关联的实体连接起来。
E-R图表示
实体用矩形表示
属性在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:m:n和r:m:n的联系。
供应商、项目和零件之间是多对多(r:n:m)的联系。
例:病房、病人和医生之间是一对多(1:n:m)的联系。
同一实体内的二元关系
同一实体内的各实体之间也存在1:1、1:n和m:n的联系
例:职工实体中的领导与被领导的联系 。
例:
用E-R图来表示某个工厂的物资管理的概念模型
物资管理涉及的实体有:
设备:属性有名称、型号、功率、备注
供货厂商:属性有联系人、电话、传真、厂址
实体之间的联系为:
一个设备可以由多个厂商提供;一个厂商可以提供多种设备。订货有订货数量。
概念设计的特点和策略
概念结构设计的任务是产生反映企业组织信息需求的数据库概念结构,即概念模型。
概念模型的特点
有丰富的语义表达能力;
易于交流和理解;
易于更改,当应用环境和应用要求发生变化时,能很容易对概念模型进行修改,以反映这些变化;
易于向各种数据模型转换,易于导出与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图转换成关系模式
答案
设备(型号,功率,备注,名称)
供货厂商(联系人,电话,传真,厂址)
订货(名称,联系人)
逻辑结构设计的步骤
1. 将系统的全局E-R模型按照转换原则转换为关系模式。
2. 对转换后的关系模式进行优化。如:主码相同的关系可以进行合并。
3. 设计数据库的外模式(即视图)。