数据库 - 概念结构设计
概念结构设计
什么是概念结构设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计
概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定
概念结构设计是整个数据库设计的关键
概念结构设计的特点
(1) 能真实、充分地反映现实世界
(2) 易于理解
(3) 易于更改
(4) 易于向关系、网状、层次等各种数据模型转换
描述概念模型的工具
E-R模型
概念模型独立于具体的DBMS
概念结构设计的方法与步骤
设计概念结构的四类方法
自顶向下
首先定义全局概念结构的框架,然后逐步细化
自底向上
首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构
逐步扩张
首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构
混合策略
将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
数据抽象
抽象是对实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。
概念结构是对现实世界的一种抽象
三种常用抽象
1. 分类(Classification)
定义某一类概念作为现实世界中一组对象的类型
抽象了对象值和型之间的“is member of”的语义
2. 聚集(Aggregation)
定义某一类型的组成成分
抽象了对象内部类型和成分之间“is part of”的语义
3. 概括(Generalization)
定义类型之间的一种子集联系
抽象了类型之间的“is subset of”的语义
继承性
局部视图设计
设计分E-R图的步骤:
⒈选择局部应用
⒉逐一设计分E-R图
在多层的数据流图中选择一个适当层次的数据流图,作为设计分E-R图的出发点
通常以中层数据流图作为设计分E-R图的依据
任务
将各局部应用涉及的数据分别从数据字典中抽取出来
参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码
确定实体之间的联系及其类型(1:1,1:n,m:n)
两条准则:
(1)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成
(2)属性不能与其他实体具有联系。联系只发生在实体之间
[实例]销售管理子系统分E-R图的设计
销售管理子系统的主要功能:
处理顾客和销售员送来的订单
工厂是根据订货安排生产的
交出货物同时开出发票
收到顾客付款后,根据发票存根和信贷情况进行应收款处理
冲突的种类
属性冲突
两类属性冲突
属性域冲突
属性值的类型
取值范围
取值集合不同
属性取值单位冲突
命名冲突
两类命名冲突
同名异义:不同意义的对象在不同的局部应用中具有相同的名字
异名同义(一义多名):同一意义的对象在不同的局部应用中具有不同的名字
结构冲突
三类结构冲突
同一对象在不同应用中具有不同的抽象
同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同
实体之间的联系在不同局部视图中呈现不同的类型
冗余
冗余的数据是指可由基本数据导出的数据
冗余的联系是指可由其他联系导出的联系
冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难
消除不必要的冗余后的初步E-R图称为基本E-R图
消除冗余的方法
分析方法
以数据字典和数据流图为依据
根据数据字典中关于数据项之间的逻辑关系
效率VS冗余信息
需要根据用户的整体需求来确定
若人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件
Q4=∑Q5
一旦Q5修改后就应当触发完整性检查,对Q4进行修改
规范化理论
函数依赖的概念提供了消除冗余联系的形式化工具
集成过程,解决了以下问题:
异名同义,项目和产品含义相同
库存管理中职工与仓库的工作关系已包含在劳动人事管理的部门与职工之间的联系之中,所以可以取消
职工之间领导与被领导关系可由部门与职工(经理)之间的领导关系、部门与职工之间的从属关系两者导出,所以也可以取消
验证整体概念结构
视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:
整体概念结构内部必须具有一致性,不存在互相矛盾的表达
整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系
整体概念结构能满足需要分析阶段所确定的所有要求
整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据。
概念结构设计的步骤
抽象数据并设计局部视图
集成局部视图,得到全局概念结构
验证整体概念结构
设计局部视图
⒈ 选择局部应用
2. 逐一设计分E-R图
标定局部应用中的实体、属性、码,实体间的联系
用E-R图描述出来
集成局部视图
1.合并分E-R图,生成初步E-R图
消除冲突
属性冲突
命名冲突
结构冲突
2. 修改与重构
消除不必要的冗余,设计生成基本E-R图
分析方法
规范化理论
数据库 - 概念结构设计相关推荐
- 机房收费系统数据库概念结构设计
数据库的设计大致流程想必大家都知道,不知道的也能很容易的在网上找到相关的资料,通常,我们将数据库设计分为6个阶段,即需求分析阶段.概念结构设计阶段.逻辑结构设计阶段.物理结构设计阶段.实施阶段.运行和 ...
- (数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计
pdf下载:密码7281 专栏目录首页:[专栏必读](考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解 文章目录 一:E-R模型 (1)两个实体之间的联系 ①:一对一联系( ...
- 数据库原理(十 一)- 概念结构设计
数据库原理(十 一)- 概念结构设计 前言 概念结构的特点 E-R模型 概念结构设计 实体划分的原则 E-R的集成 借鉴 前言 将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设 ...
- 数据库 之数据库设计浅知识 -- 设计概述、概念结构设计(E-R模型概述)、逻辑结构设计(函数依赖和范式)、物理结构设计
文章目录 1. 数据库设计概述 1.1 数据库设计的特点:结构和行为分离的设计 1.2 数据库设计方法 1.3 数据库设计的基本步骤 1.4 数据库设计过程中的各级模式 2. 需求分析 2.1 需求分 ...
- 数据库原理 概念结构设计-E-R图及其设计
将 用户需求抽象成概念模型的过程就是概念结构设计 是数据库设计的关键 概念模型的一种表现方法:实体-联系法(Entity-Relationship Approach) 简称:E-R方法:用E-R图来描 ...
- 数据库的概念结构设计与计算机的,数据库结构的优化设计研究
摘要:在计算机的各项发展中,发展最快其中之一就是数据库技术,他也是在我们的日常生产活动中被应用最为广泛的的技术.他成为了计算机系统与应用系统之间的连接桥梁.在数据库被设计出来之前,数据库的设计人员将在 ...
- 数据库结构设计之概念结构设计
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计.它是整个数据库设计的关键. 1. 概念模型 在需求分析阶段所得到的应用需求应当首先抽象为信息世界的结构,然后才能更好,更准确 ...
- 数据库设计:概念结构设计
概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型.概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在 ...
- 数据库设计之概念结构设计---------E-R图详解
0.试述采用E-R方法进行数据库概念设计的过程. 答:采用E-R方法进行数据库概念设计,可以分成3步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局的E-R模式,最后对全局E-R模式 ...
- 数据库设计之概念结构设计---------E-R图详解(流程和关系)
0.试述采用E-R方法进行数据库概念设计的过程. 答:采用E-R方法进行数据库概念设计,可以分成3步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局的E-R模式,最后对全局E-R模式 ...
最新文章
- php函数的默认值,php函数指定默认值方法的小例子
- 17.Java5的Exchanger同步工具
- C++_STL——queue(and priority_queue)
- 从头开始学py,列表,字符串
- 【错误记录】Android Studio 编译信息输出乱码
- CRM How to configure text type to allow html editor
- C语言 计算日期是当年的第几天
- 干货!一文讲清楚电商商品生产和库存的数据分析
- php 改变页面元素,动态更改网页HTML元素(对象)内容_经验交流
- 后缀自动机Suffix Links的应用
- linux环境sphinx搭建,Sphinx安装配置应用
- 计算机专业装win几,低配电脑装win10还是win7系统比较合适
- 第1章 Dev C++的使用
- 二值图像连通区域标记
- 一张表左关联另外两张表,三表关联
- win10自动聚焦无法更换壁纸
- 字符串的输入输出处理
- pam mysql安装_安装pam-mysql
- 如何用matlab画烧杯,matlab 微分方程求解作图这个方程怎么解,还有图象怎么出来~dN1/dt=[r1*(1-N1/K1)-m*N2]*N...
- java:错误: 非法的表达式开始
热门文章
- 私有云服务器和公有云服务器有什么区别
- STM32超低功耗入门之认识超低功耗
- git版本管理软件——git储藏
- Using platform encoding (UTF-8 actually) to copy filtered resources错误
- PyQt之QSS美化
- UESTC 1639 云中谁寄锦书来?雁字回时,月满西楼
- INVALID_PARAMETER 订单信息无法识别,建议联系卖家。 支付宝
- Linux 3.x 的platform
- JNDI全攻略(一)
- mysql从一加到100_MYSQL用存储过程求1到100累加