数据库 - 概念结构设计

概念结构设计

什么是概念结构设计

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计

概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定

概念结构设计是整个数据库设计的关键

概念结构设计的特点

(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图

分析方法

规范化理论

时间: 2024-09-28 16:39:38

数据库 - 概念结构设计的相关文章

机房收费系统数据库概念结构设计

数据库的设计大致流程想必大家都知道,不知道的也能很容易的在网上找到相关的资料,通常,我们将数据库设计分为6个阶段,即需求分析阶段.概念结构设计阶段.逻辑结构设计阶段.物理结构设计阶段.实施阶段.运行和维护阶段. 本次我们不谈数据库设计的理论知识,主要是以机房收费系统的数据库设计为背景来说明数据库的概念结构设计是如何产生的,当然包括了数据库设计中最难的需求分析了,否则就谈不上什么数据库的概念结构设计了. 因为我们都已经做过一遍了,而且从一开始我们就是照着系统原型做的,没有从无到有的过程,所以无法体

数据库表结构设计方法及原则(Ali)

数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际开发中最为常见的设计范式有三个:第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式:第二范式在第一范式的基础之上更进一层.第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言).也

数据库表结构设计方法及原则

http://www.cnblogs.com/RunForLove/p/5693986.html 数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际开发中最为常见的设计范式有三个:第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式:第二范式在第一范式的基础之上更进一层.第二范

数据库表结构设计方法

author:skate time:2011-02-12 数据库表结构设计方法 当我们设计一个数据库存储模式时,要仔细分析数据模式,不要一股脑的把所有的数据都放在一起.那样的话对系统的可用性,高效能,扩展性都会有严重的影响.当然你设计的系统非常小,完全可以用最简单的方法. 要通过对业务的熟练,从不同的角度对数据进行多维度分析,一般可以从如下几个方向分析: 1.       数据流向 2.       数据访问特点 3.       数据量的大小 4.       数据的增长量 5.      

常用SQL操作(MySQL或PostgreSQL)与相关数据库概念

本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; help show; 显示可用的数据库列表:show databases; 显示一个数据库内可用的表的列表:show tables; 显示表列:show columns from 一个表名; /describe 表名;  示例:show columns from customers;    desc

笔试面试那件小事(数据库概念知识)

第一节: 相关概念: 1>Data:数据,是数据库中存储的基本对象,是描述事物的符号记录 2>DataBase:数据库,是长期存储在计算机内.有组织的,可共享的大量数据的集合. 3->DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学的组织.存储和管理数据,高效的获取和维护数据 4->DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库.数据库管理系统和数据库管理员组成 5->数据模型:是用来抽象.表示和处理现实世界的数据和信息工具

数据库概念 MySQL语法

数据库概念 将保存的数据部分,存到一个公共的地方,所有的用户涉及到数据相关都必须来这个公共地方查找 MySQL 本质就是一款基于网络通信的应用软件,任何基于网络通信的软件底层都是socket 可以把MySQL看成是一款支持远程操作文件的软件 库 >>> 文件夹 表 >>> 文件 记录 >>> 文件内一行行的数据叫做一条条的记录 表头 : 就是表格的第一行数据 字段 : 字段名 + 字段类型 服务端 mysqld 基于socket通信 收发信息 SQL语

1、数据库概念

学习视频:https://www.bilibili.com/video/av19538278/?p=4 学习网站:https://www.runoob.com/mysql/ 数据库概念 数据库:高效的记录信息的方式 生活中的常识:记账帐:就是数据信息记账-->就是存储数据/信息 表:档案表.成绩表.就业登记表... 数据库:包含多张表 数据库服务器:管理多个数据库的软件 一台服务器下有多个库,一个库下有1到多张表,表有多行多列的数据 1.数据库服务器是不是mysql呢?答:不是,但是Mysql可

Activiti5.13数据库表结构设计

1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*: ‘RU’表示runtime,运行时表-RuntimeService.这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据.Activiti只存储实例执行期间的运行时数据,当流程实例