(数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计
- pdf下载:密码7281
- 专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解
文章目录
- 一:E-R模型
- (1)两个实体之间的联系
- ①:一对一联系(1:1)
- ②:一对多联系(1:n)
- ③:多对多联系(m:n)
- (2)两个以上实体型之间的联系
- (3)单个实体型内的联系
- 二:E-R图
- (1)定义
- (2)符号表示
- (3)E-R模型的优点
- (4)示例
- 三:概念结构设计
- (1)实体与属性的划分原则
- (2)E-R图的集成
- A:什么是E-R图的集成
- B:第一步——合并E-R图,生成初步E-R图
- ①:属性冲突
- ②:命名冲突
- ③:结构冲突
- C:第二步——消除不必要的冗余,设计基本的E-R图
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,它是整个数据库设计的关键
一:E-R模型
(1)两个实体之间的联系
前面的文章中就说过:在现实世界中,事物内部以及事物之间是有联系的。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体型的实体集之间的联系
一般地,把参与联系的实体型的数目称为联系的度
- 两个实体型之间的联系度为2,也称为二元联系
- 三个实体型之间的联系度为3,称为三元联系
- N个实体型之间的联系|度为N,也称为N元联系
①:一对一联系(1:1)
一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1
- 例如,学校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间是1:1关系
②:一对多联系(1:n)
一对多联系(1:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
- 例如,一个班级中有若干名学生,而每个学生只在一个班级中学习, 则班级与学生之间具有一对多联系
③:多对多联系(m:n)
多对多联系(m:n):如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系;反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n
- 例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。
(2)两个以上实体型之间的联系
两个以上实体型之间也存在着一对一、一对多或多对多的联系
- 例如,对于课程、教师与参考书三个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的
- 又如,有三个实体型:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,由此看出供应商、项目、零件三者之间是多对多的联系
(3)单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多和多对多的联系
- 例如,职工实体型内部具有领导与被领导的联系,即某一职工 (干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系
二:E-R图
(1)定义
使用实体联系图可以建立数据模型,利用E-R图描绘的数据模型称之为E-R模型
- 实体: 描述的数据对象
- 属性: 描述数据对象的性质
- 联系: 描述数据对象之间的交互方式
(2)符号表示
(3)E-R模型的优点
- E-R模型比较接近人的思维习惯方式
- E-R模型使用简单的图形符号表达,便于用户理解
(4)示例
一个学生可选修多门课,一门课有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;学生选修一门课,产生成绩;学生的属性有学号、姓名等;教师的属性有教师编号,教师姓名等;课程的属性有课程号、课程名等。请画出该系统E-R图
三:概念结构设计
(1)实体与属性的划分原则
概念结构设计的第一步就是对需求分析阶段收集到的数据进行分类、 组织,确定实体、实体的属性、实体之间的联系类型,形成E-R图。由于实体与属性之间并没有形式上可以划分的界限,所以这个看似简单的问题也时长困扰着设计人员
划分原则:为了简化E-R图的处置,现实世界的事物能作为属性对待的尽量作为属性对待。如果能满足下述两条原则,一般均可作为属性对待
- ① 作为属性,不能再具有需要描述的性质,也即属性必须是不可分的数据项,不能包含其他属性
- ② 属性不能与其他实体具有联系,也即E-R图中所表示的联系是实体之间的联系
【例如】职工是一个实体,职工号、姓名、年龄是职工的属性,职称如果没有与工资、岗位津贴、福利挂钩,换句话说,没有需要进一步描述的特性,则根据准则①可以作为职工实体的属性;但如果不同的职称有不同的工资、岗位津贴和不同的附加福利,则职称作为一个实体看待就更恰当
【例如】在医院中一个病人只能住在一个病房,病房号可以作为病人实体的一个属性;但如果病房还要与医生实体发生联系,即一个医生负责几个病房的病人的医疗工作,则根据准则②病房应作为一个实体
(2)E-R图的集成
A:什么是E-R图的集成
E-R图的集成:在开发一个大型信息系统时,最经常采用的策略是自顶向下地进行需求分析,然后再自底向上地设计概念结构。即首先设计各子系统的分E-R图,然后将它们集成起来,得到全局E-R图。E-R图的集成一般需要两步
- 合并:解决各分E-R图之间的冲突,将分E-R图合并起来生成初步E-R图
- 修改和重构:消除不必要的冗余,生成基本E-R图
B:第一步——合并E-R图,生成初步E-R图
冲突:各个局部应用所面向的问题不同,且通常是由不同的设计人员进行局部视图设计,这就导致各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。冲突主要有三类
- 属性冲突
- 命名冲突
- 结构冲突
①:属性冲突
主要包含以下两类冲突
- 属性域冲突:即属性值的类型、取值范围或取值集合不同。例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型,不同部门对零件号的编码也不同。又如年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄
- 属性取值单位冲突:例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位
②:命名冲突
命名冲突可能发生在实体、联系一级上,也可能发生在属性一级上。其中属性的命名冲突更为常见
主要包含以下两类冲突
- 同名异义:即不同意义的对象在不同的局部应用中具有相同的名字
- 异名同义:即同一意义的对象在不同的局部应用中具有不同的名字
③:结构冲突
主要包含以下三类冲突
同一对象在不同应用中具有不同的抽象:例如,职工在某一 局部应用中被当作实体,而在另一局部应用中则被当作属性。解决方法通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象
同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同(常见):原因是不同的局部应用关心的是该实体的不同侧面。解决方法是使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序
实体间的联系在不同的E-R图中为不同的类型:如实体E1与E2在一个E-R图中是多对多联系,在另一个E-R图中是一对多联系。解决方法是根据应用的语义对实体联系的类型进行综合或调整
C:第二步——消除不必要的冗余,设计基本的E-R图
冗余数据和冗余联系:在初步E-R图中可能存在一些冗余的数据和实体间冗余的联系
- 冗余的数据:可由基本数据导出的数据
- 冗余的联系:可由其他联系导出的联系
(数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计相关推荐
- 数据库系统概论:第七章 数据库设计
7.1 数据库设计概述 数据库设计,广义上讲,是数据库及其应用系统的设计,即设计整个数据库应用系统:狭义上讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分. 数 ...
- (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述
注意:此部分内容和软件工程的知识点重合较多,更多请点击[免费分享]软件工程核心知识点 本章较分散,各节导航如下 (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析 (数据库系统概论|王珊)第七 ...
- 数据库系统概念总结:第七章 数据库设计和E-R模型
周末无事水文章,期末备考的总结资料 第七章 数据库设计和E-R模型 7.1 设计过程概览 7.1.1 设计阶段 需要完整地刻画未来数据库用户的数据需求 选择数据模型,并采用所选数据模型的概念将这些需求 ...
- (数据库系统概论|王珊)第二章关系数据库-第一节:关系数据结构及其形式化定义
文章目录 一:关系 (1)域 (2)笛卡尔积 (3)关系 A:基本概述 B:码相关概念 C:关系的三种类型 二:关系模式 三:关系数据库 (1)基本概念 (2)关系数据库的型与值 前面说过,数据模型由 ...
- (数据库系统概论|王珊)第九章关系查询处理和关系优化-第三节:查询优化之代数优化
注意: 关系代数有关符号,大家可能又不熟悉了,点击跳转:(数据库系统概论|王珊)第二章关系数据库-第四节:关系代数 文章目录 一:关系代数表达式等价变换规则 (1)连接.笛卡尔积.并.交的交换律 (2 ...
- (数据库系统概论|王珊)第七章数据库设计:习题
名词解释 数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满 ...
- (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析
文章目录 一:需求分析的任务 二:需求分析的步骤和方法 (1)步骤 (2)方法 三:数据字典 (1)定义 (2)组成 ①:数据项 ②:数据结构 ③:数据流 ④:数据存储 ⑤:处理过程 注意 更多可参照 ...
- 数据库系统概论 第七章 数据库设计(1)特点,概述,设计方法,规范设计方法,新奥尔良方法,用户和数据库管理员,模式,外模式,概念模式,逻辑模式,内模式,需求分析,数据项,数据流,数据存储,处理过程
关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料 7.1数据库设计概述 广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统 狭义的将,是设计数据库本身,即设计数据库的各级模式 ...
- 数据库系统:第七章数据库设计
7.1 数据库设计概述 数据库设计: 广义地讲,设计整个数据库应用系统. 侠义地讲,是指设计数据库本身. 一般性定义:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构, ...
最新文章
- html的css样式中表示后代选择器,html添加css——样式选择器
- linux eclipse web插件,使用Tomcat插件开发WEB应用
- 【案例解析】 e家洁创始人:O2O创业的痛点与深坑
- poj 3233 Matrix Power Series
- centos7 nginx+php5.6+mysql安装与配置
- mysql dodba_doDBA
- JAVA类定义,成员类,抽象类及接口类
- Oracle在Solaris下的机能与调整简介
- android 设置drawable大小,在Android中调整Drawable大小
- bzoj3315:[Usaco2013 Nov]Pogo-Cow
- Grasshopper: Architectural Prototyping Grasshopper建筑原型 Lynda课程中文字幕
- 关于Java Web打印
- element-ui局部区域loading效果
- oracle的odac dll,.NET2.0中施用最少的ODAC动态库文件连接Oracle数据库
- 使用GitHub小总结
- android判断图片是否模糊,Android 图片模糊 性能总结
- stm32单片机按键消抖、长按、多击终极解决方案
- 程序员996工作制,逼出了一批牛妈!为牛妈点赞!
- powermock跳过某方法_PowerMock使用详解
- 使用微信+树莓派+Arduino+服务器构建你的看门狗