第6章 数据库建模 大多数软件系统都需要处理大量数据,数据库是软件系统的重要组成部分,数据库也是软件系统的基础。在面向数据流的软件设计方法中,是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,并由此建立E-R图,确定数据库结构。而在面向对象的软件开发过程中,通常是先建立设计模型,然后将永久类及永久类之间的关系映射为数据库的表结构等,我们将在第7章的第9节介绍采用人工和建模工具的自动映射方法。

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

第六章 数据库技术基础 本章要点  数据库系统概述 数据库系统概述  关系数据库 关系数据库  数据库设计 数据库设计.
Chapter 3: SQL.
An Introduction to Database System
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
An Introduction to Database System
第七章 数据库设计 7.1 数据库设计概述 7.2 需求分析 7.3 概念结构设计 7.4 逻辑结构设计 7.5 数据库的物理设计
Principle and Application of Database
公务员管理子系统建设步骤 1、组建由局长直接领导的体制,制定公务员管理、工资管理、其他业务用户的管理权限,以及各业务间的协作流程。
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第1章 数据库基础知识 1.1 数据处理技术的发展 1.2 数据抽象与模型 1.3 关系模型.
Database Principles & Applications
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
作业4讲评.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
面向对象建模技术 软件工程系 林 琳.
李杰 首都经济贸易大学 安全与环境工程学院 个人主页:
大学计算机基础 典型案例之一 构建FPT服务器.
管理信息结构SMI.
SQL Injection.
走进编程 程序的顺序结构(二).
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
数据库设计是信息系统的核心组成部分 从现实世界到数据世界的转换的过程
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
实验1 信息系统分析与设计工具安装.
程序设计工具实习 Software Program Tool
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
面向对象建模技术 软件工程系 林 琳.
数据集的抽取式摘要 程龚, 徐丹云.
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
第六章 数据模型转化为 关系数据库.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
熟悉PowerDesiner12操作环境 菜单栏 标题栏 工具栏 导航栏 工作区 浮动工具条 导航选项卡 控制信息栏 状态栏.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
VB与Access数据库的连接.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
RefWorks使用指南 归档、管理个人参考文献.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
Presentation transcript:

第6章 数据库建模 大多数软件系统都需要处理大量数据,数据库是软件系统的重要组成部分,数据库也是软件系统的基础。在面向数据流的软件设计方法中,是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,并由此建立E-R图,确定数据库结构。而在面向对象的软件开发过程中,通常是先建立设计模型,然后将永久类及永久类之间的关系映射为数据库的表结构等,我们将在第7章的第9节介绍采用人工和建模工具的自动映射方法。 2019年5月3日星期五

第6章 数据库建模 6.1 从业务需求创建数据模型的流程 6.2 定义数据需求 6.3 定义概念模型 6.4 设计逻辑数据模型 6.5 设计物理数据模型 6.6 数据模型的优化与发布 2019年5月3日星期五

6.1 从业务需求创建数据模型的流程 1. 问题引入 第四章中的用例建模是属于需求分析阶段任务,需求分析之后就是系统建模阶段,系统建模阶段包括功能建模和数据库建模两部分,上一章介绍的是系统建模中的功能建模部分,这里将介绍数据库建模,那么数据库建模的基本过程是怎样的呢? 2019年5月3日星期五

6.1 从业务需求创建数据模型的流程 2. 解答问题 数据库建模主要涉及3个阶段,即建立概念模型、逻辑模型和物理模型。如图6-1所示是数据库建模的流程。 2019年5月3日星期五

6.1 从业务需求创建数据模型的流程 图6-1 数据库建模基本流程 2019年5月3日星期五

6.1 从业务需求创建数据模型的流程 3. 分析问题 数据库建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库。将经过系统分析后抽象出来的概念模型转化为物理模型后,用Visio或PowerDesign等工具建立数据库实体以及各实体之间关系的过程(实体一般是表)。 2019年5月3日星期五

6.1 从业务需求创建数据模型的流程 建模过程中的主要活动包括: (1) 确定数据及其相关过程(如实地销售人员需要查看在线产品目录并提交新客户订单)。 (2) 定义数据(如数据类型、大小和默认值)。 (3) 确保数据的完整性(使用业务规则和验证检查)。 (4) 定义操作过程(如安全检查和备份)。 (5) 选择数据存储技术(如关系、分层或索引存储技术)。 2019年5月3日星期五

以上数据建模过程又可以概括为概念建模、逻辑建模和物理建模。 6.1 从业务需求创建数据模型的流程 以上数据建模过程又可以概括为概念建模、逻辑建模和物理建模。

概念建模是把用户的信息需求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何数据库管理系统软件和硬件。 6.1 从业务需求创建数据模型的流程 概念建模是把用户的信息需求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何数据库管理系统软件和硬件。

6.1 从业务需求创建数据模型的流程 逻辑建模是把概念建模阶段得到的结果转换为选用的DBMS所支持的数据模型相符合的逻辑结构。对于关系型数据库而言,逻辑建模的结果是一组关系模式的定义。

6.1 从业务需求创建数据模型的流程 物理建模是对给定的逻辑数据模型选取一个最适合应用要求的物理结构,包括数据库的存储记录格式、存储记录安排、存取方法等,数据库的物理建模完全依赖给定的硬件环境和数据库产品。

6.2 定义数据需求 1. 问题引入 数据库建模的作用是分析和设计需要存储在数据库中的数据的模型。在建模之前,就必须确定哪些数据需要存储到数据库,这个过程就是定义数据需求的过程,这一过程的成果将为下阶段概念模型设计打好基础,那如何确定数据需求呢? 2019年5月3日星期五

6.2 定义数据需求 2. 解答问题 确定数据需求的方法一般有跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录等。一般需要根据具体情况选用一种或多种方法。 2019年5月3日星期五

需求分析的过程一般是: 6.2 定义数据需求 (1) 调查组织机构总体情况; (2) 熟悉业务活动; (3) 明确用户需求; (4) 确定系统边界。

其中数据流图(顺序图或协作图或活动图)可以用作明确用户需求和确定系统边界两个步骤中,帮助设计者了解数据如何流动,并发现需要存储的对象。 6.2 定义数据需求 其中数据流图(顺序图或协作图或活动图)可以用作明确用户需求和确定系统边界两个步骤中,帮助设计者了解数据如何流动,并发现需要存储的对象。

在PowerDesign中创建一个RequirementModel将上述对象添加上去,如图6-2所示。 6.2 定义数据需求 在客户服务系统中,需要存储的对象有: 客户资料 来电咨询信息 产品及项目信息 派工单 经验库 系统用户 在PowerDesign中创建一个RequirementModel将上述对象添加上去,如图6-2所示。

6.2 定义数据需求 图6-2 数据需求模型 2019年5月3日星期五

6.2 定义数据需求 3. 分析问题 要设计一个良好的数据库系统,明确应用环境对系统的要求是首要的和基本的。因此,收集和分析应用环境的需求应作为数据库设计的第一步。在这一阶段收集到的基础数据和一组数据流程图是下一步进行概念设计的基础。数据库需求分析包括: 2019年5月3日星期五

6.2 定义数据需求 (1) 收集资料。收集资料的工作是数据库设计人员和用户共同完成的任务。强调各级用户的参与是数据库应用系统设计的特点之一。 (2) 分析整理。分析的过程是对所收集到的数据进行抽象的过程。 (3) 数据流程图。在系统分析中通常采用数据流程图来描述系统的数据流向和对数据的处理功能。在面向对象的分析设计中,数据流程图往往不被包含在系统分析中,而可以综合考虑顺序图、协作图和活动图。 (4) 用户确认。 2019年5月3日星期五

6.3 定义概念模型 1. 问题引入 概念建模是把用户的信息需求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何数据库管理系统软件和硬件。请将上述客户服务系统中的信息需求进行概念建模 2019年5月3日星期五

6.3 定义概念模型 2. 解答问题 通过使用PowerDesigner的概念建模工具“File->new->ConceptualDataModel”进行概念建模,得到以下结果,如图6-3所示,其中,“产品项目”是指“产品”和“项目”,这两者放在一起存储和处理,用“类型”来区分(后面所出现的“产品项目”与该处意义相同)。 2019年5月3日星期五

图6-3 概念模型 2019年5月3日星期五

6.3 定义概念模型 3. 分析问题 概念模型也称信息模型,它是按用户的观点来对数据和信息建模。概念模型是现实世界到机器世界的一个中间层次。表示概念模型最常用的是“实体-关系”图。 概念模型用于信息世界的建模,它是真实世界到信息世界的第一层抽象,它是数据库设计的有力工具,也是数据库开发人员与用户之间进行交流的语言。因此概念模型既要有较强的表达能力,又应该简单、清晰、易于理解。目前最常用的是实体-联系模型,即E-R图。 2019年5月3日星期五

实体-联系模型中主要包括实体、属性、联系等概念,其中联系主要有以下几个类型: 6.3 定义概念模型 实体-联系模型中主要包括实体、属性、联系等概念,其中联系主要有以下几个类型: 2019年5月3日星期五

6.3 定义概念模型 (1) 一对一联系:实体集A中的每一个实体,实体集B中至多有一个实体与之有联系,反之亦然,则称实体集A与B具有一对一联系,记为1:1。如班级与班长的联系,一个班只有一个班长,一个班长也只能在一个班级中任职。 2019年5月3日星期五

6.3 定义概念模型 (2) 一对多联系:实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之有联系;而实体集B中的每一个实体,实体集A中至多有一个与之有联系,则称实体集A与B具有一对多联系,记为1:n。如客户和来电咨询的联系,一个客户可以多次来电咨询,一个来电咨询只能由一个客户产生。 2019年5月3日星期五

6.3 定义概念模型 (3) 多对多联系:实体集A中的每一个实体,实体集B中有n(n≥0)个实体与之相联系;而实体集B中的每一个实体,实体集A中有m(m≥0)个与之相联系,则称实体集A与B具有多对多联系,记为m:n。如教师与学生的联系,一个教师可以教多名学生,一名学生也可以上多位老师的课。 2019年5月3日星期五

6.3 定义概念模型 (4) 其它类型的联系 两个以上实体集之间也存在1:1、1:n、m:n的联系。如教师、课程、参考书的联系。注意把这三个实体之间的联系与两两直接的多个联系区分开来。 同一个实体集的各实体之间也存在1:1、1:n、m:n的联系。如职工和职工之间有直接领导的联系。 2019年5月3日星期五

6.4 设计逻辑数据模型 1. 问题引入 上述概念建模只是一个主要与客户进行沟通的模型,客户确认之后,我们可以针对具体的数据库管理系统进行更详细的描述,请根据上述概念模型设计出该数据系统的逻辑模型。 2019年5月3日星期五

6.4 设计逻辑数据模型 2. 解答问题 PowerDesigner工具对于概念模型和逻辑模型的创建集成在一起,在概念模型中只需要进行简单描述即可,而在逻辑模型中就必须更加详细的描述数据,如数据的类型、是否是主标识符以及是否可以为空等。如图6-4、6-5所示。 2019年5月3日星期五

6.4 设计逻辑数据模型 图6-4 逻辑模型之实体定义 2019年5月3日星期五

图6-5 逻辑模型

6.4 设计逻辑数据模型 3. 分析问题 概念结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQL Server或Oracel或MySql)。由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型。 在进行转换时需要注意以下几个内容: 2019年5月3日星期五

6.4 设计逻辑数据模型 (1) 属性 不要引入任何不必要的属性。属性服务于三个目的: 标识它的拥有者的实体 指向另一个实体 简化实体描述 如果有一些实体存在公共的属性,合并这些属性。切记其主要目的是形成带最少个数属性的最少数量表格的数据库,避免冗余。

6.4 设计逻辑数据模型 (2) 键 RDBMS使用关联寻址,即它由键来标识和定位行。因此,关系型数据库系统需要可唯一标识表中行的键。 键有许多类型,如下: 主键 外键 候选键 备选键 复合键

6.4 设计逻辑数据模型 任何唯一标识表中行的属性(或属性集)都是主键的候选键。这样的属性叫候选键。基于熟悉程度和易用性等因素,从候选键中选择一个作为主键。任何候选键但不是主键的属性称为备选键。当唯一标识表中的行的键由一个以上属性组成时,称为复合主键。外键总是代表关系。

6.4 设计逻辑数据模型 (3) 实体 在数据库设计中,有些属性需要获得更多属性来限定它们自己,使其成为实体。你可以建立一个新的实体来表示重要的属性组;或者有些属性是需要具有可维护性的,如“类型”等,也可以将其作为实体创建出来。

6.5 设计物理数据模型 1. 问题引入 请将上述逻辑模型映射为数据库中的表。 2019年5月3日星期五

6.5 设计物理数据模型 2. 解答问题 PowerDesigner的物理模型工具“File->New->PhysicalDiagram”可以帮助我们将逻辑模型映射为表结构,也可以通过逻辑模型直接生成物理模型“Tools->Generate Physical Data Model”。如图6-6所示。 2019年5月3日星期五

图6-6 物理模型 2019年5月3日星期五

3. 分析问题 将逻辑模型转换为物理表格的过程也就是E-R图转换为表的过程,尤其对于E-R图中的关系需要进行合理表述。下面描述的是转换规则。 6.5 设计物理数据模型 3. 分析问题 将逻辑模型转换为物理表格的过程也就是E-R图转换为表的过程,尤其对于E-R图中的关系需要进行合理表述。下面描述的是转换规则。 2019年5月3日星期五

6.5 设计物理数据模型 (1) 一个实体转换为一个关系模式 一般E-R图中的一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的主键就是关系的主键。如图6-7所示。 图6-7 实体转换为关系

6.5 设计物理数据模型 (2) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。比如“一个职工负责一个产品”,根据此规则,主要有两种转换方式。 与职工端合并 职工(工号,姓名,产品号) 产品(产品号,产品名) 其中“职工.产品号”为外键。 与产品端合并 职工(工号,姓名) 产品(产品号,产品名,负责人工号) 其中“产品.负责人工号”为外键。

(3) 一个1:n联系主要是与n端对应的关系模式合并,外键位于n端实体。如“一个客户服务人员可以记录多个经验信息”。如图6-8所示。 6.5 设计物理数据模型 (3) 一个1:n联系主要是与n端对应的关系模式合并,外键位于n端实体。如“一个客户服务人员可以记录多个经验信息”。如图6-8所示。

6.5 设计物理数据模型 图6-8 1:n联系

(4) 一个m:n联系可以转换为一个独立的关系模式。如“客户购买产品” 6.5 设计物理数据模型 (4) 一个m:n联系可以转换为一个独立的关系模式。如“客户购买产品” 该关系的属性包括联系自身的属性,以及与联系相连的实体的属性。各实体的码组成关系码或关系码的一部分。如图6-9所示。

6.5 设计物理数据模型 图6-9 m:n联系

6.6 数据模型的优化与发布 1. 问题引入 冗余意味着数据的重复。冗余增加了更新、新增和删除数据的时间,同时也增加了磁盘空间的使用,一次磁盘的输入输出也增加了。针对前面设计的物理模型,检查设计的成果是否规范合理,对物理模型进行优化后发布到数据库。 2019年5月3日星期五

6.6 数据模型的优化与发布 2. 解答问题 有了关系模型,可以对其作进一步的优化处理,其方法为: (1) 确定数据依赖。 (2) 对数据依赖进行极小化处理,消除冗余联系(参看范式理论)。 (3) 确定范式级别,根据应用环境,对某些模式进行合并或分解。 2019年5月3日星期五

6.6 数据模型的优化与发布 以上工作理论性比较强,主要目的是设计一个数据冗余尽量少的关系模式。下面这步则是考虑效率问题了。 2019年5月3日星期五

6.6 数据模型的优化与发布 (4) 对关系模式进行必要的分解。 如果一个关系模式的属性特别多,就应该考虑是否可以对这个关系进行垂直分解。如果有些属性是经常访问的,而有些属性是很少访问的,则应该把它们分解为两个关系模式。

6.6 数据模型的优化与发布 发布数据库可以通过PowerDesigner的以下步骤来完成: 配置的前提是要在系统中装有对应数据库系统的驱动程序。 (1) 选择【Database】->【Generate Database】菜单命令。 (2) 点击【General】按钮,在出现的窗体中选择【Direct Generation】,如果没有配置好数据源,就要点窗体中的数据库的图标,配置Data Sourcce。 (3) 选择【ODBC machine data source】选项,点击【Configure】按钮。 (4) 点击添加Data Source,选择用户数据源(只用于当前机器)。 (5) 选择对应数据库驱动,填写新建的数据源的名字即可。

6.6 数据模型的优化与发布 规范化是一种科学的方法,通过使用某些规则把复杂的表结构分解为简单的表结构。使用这种方法可以降低表中的冗余和消除不一致和磁盘空间利用的问题。 规范化有几个要点:可以产生更快的排序和索引,每个表更少索引、更少NULL会使得数据库更加紧凑。规范化帮助简化表的结构。为了实现一个好的数据库设计,必须遵循一些规则:

6.6 数据模型的优化与发布 (1) 每一个表格有一个标识符; (2) 每一个表格应当存储单个实体类型的数据; (3) 接受NULL的列应当避免; (4) 值或列的重复应当避免。

6.6 数据模型的优化与发布 范式用来保证各种类型的不规范和不一致性不会引入到数据库。一个表结构总是以某种范式而存在,最重要的和最被广泛使用的范式有: 第一范式 第二范式 第三范式 BCNF范式 通常情况下,满足第三范式即可成为比较合理规范的数据库结构。

总结 数据库建模主要涉及3个阶段,即建立概念模型、逻辑模型和物理模型。 要设计一个良好的数据库系统,明确应用环境对系统的要求是首要的和基本的。因此,收集和分析应用环境的需求应作为数据库设计的第一步。 概念建模是把用户的信息需求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何数据库管理系统软件和硬件。 逻辑建模是把概念建模阶段得到的结果转换为选用的DBMS所支持的数据模型相符合的逻辑结构。对于关系型数据库而言,逻辑建模的结果是一组关系模式的定义。 2019年5月3日星期五

总结 物理建模是对给定的逻辑数据模型选取一个最适合应用要求的物理结构,包括数据库的存储记录格式、存储记录安排、存取方法等,数据库的物理建模完全依赖给定的硬件环境和数据库产品。 范式用来保证各种类型的不规范和不一致性不会引入到数据库。一个表结构总是以某种范式而存在,最重要的和最被广泛使用的范式有: 第一范式 第二范式 第三范式 BCNF范式 2019年5月3日星期五