④⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗

简介: ④⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗

3.1 数据库概念设计

考点1 概念设计的任务

(1)概念设计的任务

数据库概念设计的主要任务是理解和获取应用领域中的数据需求,分析、抽取、描述和表示清楚目标系统需要存储和管理什么数据,这些数据具有什么样的属性特征及组成格式。数据之间存在什么样的依赖关系。


(2)概念设计的目标


①定义和描述应用领域涉及的数据范围;


②获取应用领域或问题域的信息模型;


③描述清楚数据的属性特征;


④描述清楚数据之间的关系;(老师与学生)


⑤定义和描述数据的约束;


⑥说明数据的安全性要求;


⑦支持用户的各种数据处理需求;


⑧保证信息模型方便地转换成数据库的逻辑结构(数据库模式)。同时也便于为用户理解。


【真题演练】


下列不属于概念设计目标的是(    )。


A.定义和描述应用领域涉及的数据范围


B.描述清楚数据的属性特征


C.定义和描述数据的约束


D.确定数据的结构


【答案】D


考点2 概念设计的依据及过程

(1)概念设计的依据


①需求分析阶段的文档,包括需求说明书、功能模型(数据流程图或IDEFO图);


②在需求分析阶段收集到的应用领域或问题域中的各类报表等。


通过对这些文档的分析和理解,从中抽象出数据的结构、语义、数据之间的相互联系及数据满足的约束条件,从而构造信息模型,编写数据库概念设计说明书。


(2)概念设计的过程


①明确建模目标


确定模型覆盖的问题范围和目标说明,将两者结合起来定义的建模目标有助于建模人员标识所关心的数据。


②定义实体集


a.通过需求分析阶段得到的功能模型DFD图、需求说明书以及需求分析阶段收集到的原始单据、统计报表、表格等来标识和定义应用领域中的实体集。


b.通常采用自底向上的方式,从一个局部或子系统入手,标识和定义实体集。对于复杂的数据库应用系统可分别画出子系统的ER图,然后将各局部ER图集成整合成应用系统总体的信息模型。


c.定义实体集的方法是分类标识、概括命名。


第一,将应用域收集到的原始数据进行分类,即按照具有相同属性特征原则归类;


第二,依次列出每个实体集的名称。


d.对于一些复杂问题或应用域,也可以通过分类标识原材料中所有名词的方法标识和定义实体集,但不是所有名词都可作为实体集名词。实体集名词具有下列特征:


第一,能够被描述或说明;


第二,有多个同类的实例;


第三,每个实例可以被标识和区分。


③定义联系


a.联系用于描述实体集之间的关联关系,而联系的实例表示一个联系中的两个实例之间有意义的关联或连接。


b.标识实体集之间关系的简单方法是建立联系矩阵,联系矩阵由一个二维数组表示。


将前阶段定义的实体集沿水平轴和垂直轴两个方向列出,依次分析两个实体集之间可能的联系。如果两个实体集之间存在联系,则在它们的交叉点上写上×,不存在联系则用空格标注。


c.间接联系不需要标注。


d.在标识联系之后进行定义联系,主要包括:表示依赖、命名联系及关于联系的说明。


e.根据联系矩阵,从两个方向进一步检验实体集之间存在的依赖关系,以确定实体集之间联系的基数。


f.确定了实体集之间的联系之后,给联系命名。要求定义的联系名的动词或者动词短语必须是具体的、简明的和有意义的。


④建立信息模型  (ER模型)


根据前阶段标识定义的联系基数,选择一种建模方法,从局部或子系统入手,先建立局部信息模型,然后再综合成为总体信息模型。


⑤确定实体集属性


a.属性被用来描述一个实体集的特征或性质;


b.为了使模型更简明,实体集的属性可以不画在模型图中,而通过实体集—属性列表的形式将它们附在模型后面;或者在数据库的逻辑设计阶段给出。


⑥对信息模型进行集成与优化   (命名,结构一致)


在局部数据建模的基础上,进行模型的集成、汇总与优化,保证构造的概念数据模型是正确的、一致的和满足数据需求的。


【真题演练】


下列关于数据库概念设计的说法中,错误的是(    )。


A.抽象实体集时需将具有相同属性特征的事物归为一类,并对分类进行概括和命名


B.确定描述每个实体集特征的属性,并为属性命名


C.确定各实体之间的联系,但不需要确定联系具有的属性


D.确定联系的种类


【答案】C


考点3 数据建模方法

(1)概述


数据建模工具的出现使得建模人员表示数据结构的方式产生了变革。自Peter Chen之后人们又陆续推出了其他的数据建模方法,例如IDEFIX、UML中的类图等。这些数据建模方法的共同特点是:


①能够真实客观地描述现实世界中的数据及数据之间的关系。


②组成模型的概念少,语义清楚,容易理解。


③不同概念的语义不重叠,概念无多义性。


④用图形方式描述数据,数据直观易懂,有利于数据库设计者和用户交流。


⑤这种数据模型容易转换成数据库逻辑设计阶段需要的数据结构。


(2)ER建模方法


①定义


实体联系(Entity Relationship,ER)方法是一种面向数据存储需求建模,将现实世界中需要处理的数据抽象组织成某种不依赖于具体的计算机系统,仅从存储需求描述数据的属性特征及数据之间的关系的信息结构。


②与ER模型有关的几个概念


a.实体或实例(Instance)


实体指客观存在并可相互区分的事物(也称为实体集实例或实例),可以是一个具体的人或物,也可以是抽象的事件或概念。


b.实体集


实体集表示具有相同的属性或特征的事物的抽象集合,这些事物必须具有相同的属性或特征。例如,学生实体集指全部学生的集合。这个集合中的一个元素就是这个实体集的一个实例(Instance)。


c.属性


属性用于描述一个实体集的性质和特征。


d.域


每个属性的取值范围称为域。


e.码  (键)


实体集中能唯一标识每一个实例的属性或属性组称为该实体集的码(学号)


f.联系


联系描述现实世界中实物之间的关系。


现实世界事物之间的联系可归纳为三类:


第一,一对一联系(1︰1)


若对于实体集A中的每一个实例,实体集B中至多有一个实例与之联系,反之亦然,则称实体集A和实体集B具有1︰1联系。


第二,一对多联系(1︰n)


若对于实体集A中的每一个实例,实体集B中有n个实例(n≥0)与之联系,而对于实体集B中的每个实例,实体集A中至多有一个实例与之联系,则称实体集A与实体集B存在1︰n的联系。


第三,多对多联系(m︰n)


若对于实体集A中的每一个实例,实体集B中有n个实例(≥0)与之联系,而对于实体集B中的每个实例,实体集A中有m个实例(m≥0)与之联系,则称实体集A与实体集B存在m︰n的联系。


③ER图的表示方法


a.矩形框表示实体集,矩形框内写上实体集的名称。


b.菱形框表示联系,联系名写在菱形框内。


c.椭圆或圆角矩形框表示属性,属性的名字写在椭圆或圆角矩形框中。


按照给出的建模过程及ER模型规范,描述目标系统的数据需求。通常模型描述了一个企业或组织全部数据的存储需求,即数据库中将要存储的数据范围、数据的属性特征与数据之间的关系。


(3)IDEFlX建模方法


①IDEFlX与IDEFO


a.联系


IDEFlX与IDEFO是一个系列的建模工具。


b.区别


IDEFO侧重描述系统功能需求,被称为功能建模方法;IDEFlX侧重分析、抽象和概括应用领域中的数据需求,被称为数据建模方法。


②IDEFlX模型的建模元素


a.实体集


用矩形框来表示的独立标识符实体集(独立实体集)是指每个实例都能被唯一地标识而不决定于它与其他实体集的联系;用加了圆角的矩形框来表示的从属标识符实体集(从属实体集)是指一个实例的唯一标识依赖于该实体集与其他实体集的联系。


b.联系


一个“确定型连接联系”或简称“连接联系”,是实体集之间的一种连接或关系。在这种连接联系中,被称为双亲实体集的每一个实例与子女实体集的0个、1个或多个实例相连接。子女实体集中的每个实例精确地同双亲实体集的1个实例相联系。


第一,标定型联系


在“确定型连接联系”中,如果子女实体集中的每个实例都是由它与双亲的联系而确定的,那么这个联系就被称为是“标定型联系”(Identifying Relationship)


第二,非标定型联系


在“确定型连接联系”中,如果子女实体集中的每一个实例都能被唯一地确认而无需了解与之相联系的双亲实体集的实例,则该联系就被称为“非标定型联系”(Non-Identifying Relationship)


第三,分类联系


“分类联系”是两个或多个实体集之间的联系,且在这些实体集中存在一个一般实体集(Generic Entity),它的每一个实例都恰好与一个且仅一个分类实体集(Category Entity)的一个实例相联系。


一般实体集的每一个实例和与之相关的一个分类实体集实例描述的是现实世界的同一事物,因此它们具有相同的唯一标识符。


第四,非确定联系


一个非确定联系又称为“多对多关系”(Many to Many Relationship)或m︰n联系。在这种联系关联的两个实体集之间,任一实体集的一个实例都将对应另一实体集的0个、1个或多个实例


在最终的IDEF1X模型中,所有实体集之间的联系都必须用确定联系来描述。但在建模的初始阶段,标识两个实体集之间的一些“非确定联系”(Not-Specific Relationships)


常常对开发模型是有帮助的。在最终的模型中不允许出现非确定联系,任何一个非确定联系必须被转化成为确定的连接联系。


考点4 概念设计实例

(1)建模目标


根据商场经营管理系统的总目标可知,该待建模型将支持商场经营管理中包括顾客管理、采购与库存管理、销售管理、人力资源管理、财务管理多项业务活动。


①顾客管理部分


存储与管理的数据要能支持顾客申请成为会员、个人积分信息查询、个人信息更新、自动生成生日邮件祝福需要的信息,以及会员卡的升级管理需要的信息;


②采购与库存管理部分


存储与管理的数据要能支持商品入库上架及库存管理,当某商品达到最小库存时自动生成采购单引发采购活动需要的信息;


③销售管理部分


存储和管理的数据要能支持商品的价格管理,如根据销售渠道制定合理的销售价格,根据库存和销售情况为一些在售商品调价,以及支持各类销售统计信息的生成;


④人力资源管理部分


存储和管理的数据要能支持员工招聘、合同管理及员工业绩考核需要的信息;


⑤财务管理部分


存储与管理的数据要能支持商场各项资金的收支管理、员工工资发放,以及生成各类财务统计报表需要的信息。


(2)定义实体集


首先从标识实体集开始,从需求分析阶段产生的DFD图中的输入数据流、输出数据流、数据存储,以及需求分析阶段收集到的单据、统计报表等材料中发现事实,捕捉需要的信息,忽略无关的数据。


在标识实体集的基础上分类抽象,将具有相同属性特征的同类对象抽象为实体集,然后归纳整理,用一个有意义的名词或名词短语为每一个实体集命名。


(3)定义联系 (难点)


定义联系的工作从标识联系开始。分析商场经营管理系统业务活动与管理规范可知,其数据之间存在如下约束:


①一个顾客可以申请0或一张会员卡,一张会员卡属一个顾客拥有;


②一张会员卡可用于多个销售单据,一个销售单据只能使用一张会员卡;


③一个收银台可以收取多个销售单据的缴费额,一个销售单据仅限于在一个收银台缴费;


④一个供应商可提供多种商品,一种商品可以由多个供应商提供,一个采购单据可以购进多个供应商提供的多种商品;


⑤一个员工可以开出多个销售单据,一个销售单据仅限于一个员工开出;


⑥一个销售单据可以售出多种商品,一种商品可以由多个销售单据售出;


⑦一种商品允许在不同时间有多次调价,但在同一时间只有一次调价;


⑧一个员工可以领导多个员工,每个员工的直接领导只有一个。


(4)建立信息模型


根据联系矩阵描述的实体集之间的关联关系及数据之间的约束,可画出商场经营管理系统的ER图,如图3-8所示(注:图中省略了“员工”实体的属性),员工及员工领导与被领导之间的关系如图3-9所示。


(5)确认实体集属性


①确认过程


在ER模型中画出每个实体集的属性,并逐一检查确认每个属性的正确性,在此基础上标出ER图中每个实体集的主码属性(用下画线标注)。如果ER模型所含的实体集很多,可在ER图中仅给出每个联系的属性。


②实体集—属性列表


实体集所含的全部属性通过实体集—属性列表给出。实体集—属性列表按照实体集在ER图中的位置,由上到下、从左到右依次列出,其表示范如下:


a.实体集名:顾客


b.属性列表:顾客编号、姓名、性别、出生日期、身份证号、地址、邮编、电话、电子邮箱、顾客密码


c.实体集名:会员卡


d.属性列表:会员卡号、有效起始日期、有效截止日期、积分、状态


(6)对信息模型进行集成与优化


①目的


进一步检查确认模型中是否存在重复命名的联系和信息,以保证其中不存在有歧义的名字。通常实体集名、属性名用一个有意义的名词或名词短语命名,联系名用一个有意义的动词或动词短语命名,父实体集通常安排在子女实体集的上面或左边,联系名由父到子命名,如顾客“拥有”会员卡等。


②注意事项


对于大型复杂的数据库应用系统可能需要划分为多个子系统,并由不同的人员先对各子系统建模,然后汇总集成为系统的数据模型。在进行模型的汇总集成时应注意:


a.如果模型涉及的实体集在一页内放不下,可以安排多页描述,除了用于表示各子系统相交或页面相交的实体集可以重复以外,在一个模型中不允许出现重复的实体集。


b.在模型汇总集成的过程中需要检查模型的各组成部分之间是否存在命名冲突、结构不一致等方面的问题。


相关文章
|
3月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
326 2
|
4月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
4月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
389 8
|
4月前
|
人工智能 Java 关系型数据库
使用数据连接池进行数据库操作
使用数据连接池进行数据库操作
136 11
|
4月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
269 1
|
5月前
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
4月前
|
SQL 数据管理 BI
数据库操作三基石:DDL、DML、DQL 技术入门指南
本文围绕数据库操作核心语言 DDL、DML、DQL 展开入门讲解。DDL 作为 “结构建筑师”,通过CREATE(建库 / 表)、ALTER(修改表)、DROP(删除)等命令定义数据库结构;DML 作为 “数据管理员”,以INSERT(插入)、UPDATE(更新)、DELETE(删除)操作数据表记录,需搭配WHERE条件避免误操作;DQL 作为 “数据检索师”,通过SELECT结合WHERE、ORDER BY、LIMIT等子句实现数据查询与统计。三者相辅相成,是数据库操作的基础,使用时需注意 DDL 的不可撤销性、DML 的条件约束及 DQL 的效率优化,为数据库学习与实践奠定基础。
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
181 3
|
4月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

热门文章

最新文章