vlambda博客
学习文章列表

MySQL技能二的一些概念

E-R图

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,三者分别用矩形、椭圆、菱形表示。

实体-联系数据模型中的联系型,存在3种一般性约束:一对一约束(联系)、一对多约束(联系)和多对多约束(联系)

E-R图 三要素:实体,属性,联系

  • 矩形:实体

  • 菱形:关系

  • 椭圆:属性

将E-R图转换为关系模型的⽅法

将E-R 图转换为关系模型的转换规则如下:
1)实体集转换为关系
- 实体集对应于⼀个关系
-关系名:与实体集同名。
-属性:实体集的所有属性。
-主码:实体集的主码。
2)联系转换为关系
联系转换成为关系模式。联系转换成为关系模式时,要根据联系⽅式的不同采⽤不同的转换⽅式
①1:1联系的转换⽅法
a)将1:1 联系转换为⼀个独⽴的关系:与该联系相连的各实体的码以及联系本⾝的属性均转换为关系的
属性,且每个实体的码均是该关系的候选码。
b)将1:1 联系与某⼀端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联
系本⾝的属性和与联系相关的另⼀个实体集的码。
② 1:n联系的转换⽅法
a)⼀种⽅法是将联系转换为⼀个独⽴的关系,其关系的属性由与该联系相连的各实体集的码以及联系本⾝
的属性组成,⽽该关系的码为n端实体集的码;
b)另⼀种⽅法是在端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系⾃⾝的属性构
成,新增属性后原关系的码不变。
③ m:n 联系的转换⽅法
在向关系模型转换时,⼀个 m:n联系转换为⼀个关系。转换⽅法为:与该联系相连的各实体集的
码以及联系本⾝的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的
组合码)

以下说法是正确的【这一部分内容是数据库设计阶段的第3阶段----逻辑结构设计】

  • 一个实体类型转换为一个关系模式

  • 一个联系类型转换为一个关系模式

  • 由实体类型转换成的关系模式的主键是该实体类型的主键

参考文章:https://wenku.baidu.com/view/77877b0d925f804d2b160b4e767f5acfa1c7833a.html?fr=income1-wk_app_search_ctr-search

数据库的设计阶段

数据库设计的步骤 

按规范设计法可将数据库设计分为六个阶段 
1.系统需求分析阶段 
2.概念结构设计阶段 
3.逻辑结构设计阶段 
4.物理结构设计阶段 
5.数据库实施阶段 
6.数据库运行与维护阶段 

数据库设计概述

  1. 数据库设计的任务 
    数据库设计是指根据用户需求研制数据库结构的过程
    2.数据库设计的内容 

3.数据库设计的特点 
是强调结构设计与行为设计相结合
是一种“反复探寻,逐步求精”的过程
以数据模型为核心,将数据设计与应用系统设计相结合

规范设计方法:
1.基于E-R模型的数据库设计方法
由E-R图构造
2.基于3NF的数据库设计方法 
由单一模式分解成符合3NF的关系模式集合
3.基于视图的数据库设计方法
为每个应用建立视图,再将视图汇总 

1 系统需求分析 【比如-没有一个系统是完美的,一切都是根据需求开发软件。】

需求分析的任务:对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能 。

MySQL技能二的一些概念

需求分析的方法 

  • 自顶向下、自底向上

MySQL技能二的一些概念

自顶向下(SA)方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统。

用数据流图和数据字典描述系统:
1.数据流图 :描述输入数据到输出数据的变换过程。

MySQL技能二的一些概念

MySQL技能二的一些概念

2.数据字典 
数据字典是对系统中数据的详细描述,数据流图中出现的数据流,处理,文件等的说明。
数据流图中的每个元素均与数据字典的一个条目相对应。

2 概念结构设计

简记:设计E-R图

E-R模型是最著名、最实用的一种是概念模型。

定义:

概念结构设计:将需求分析得到的用户需求抽象为信息结构,即概念模型。

概念结构设计的方法:自顶向下 、自底向上 、逐步扩张 、混合策略 

概念结构设计的步骤:需求分析数据 、局部E-R模型、全局E-R模型 

局部E-R模型设计:

① 属性必须是不可分的数据项 ,不能再由放弃他属性组成。
② 属性不能与其他实体具有联系,联系只能发生在实体之间。
③ 为简化E-R图,凡是能作为属性对待的,尽量作为属性

MySQL技能二的一些概念

全局E-R模型设计:

集成各局部E-R模型,形成全局模型
视图集成的方法有两种:
① 多元集成法,一次性将多个局部E-R图合并为一个全局E-R图。
② 二元集成法,首先集成两个重要的局部E-R图,以后用累加的方法逐步将一个新的E-R图集成进来。

合并分ER图产⽣的冲突

参考文章:https://wenku.baidu.com/view/e6263539a46e58fafab069dc5022aaea988f4154.html

MySQL技能二的一些概念

合并分E-R图
各个局部应⽤所⾯向的问题不同,各个⼦系统的E-R图之间必定会存在许多不⼀致的地⽅,称之为冲突。
⼦系统E-R图之间的冲突主要有三类:

  • 属性冲突

  • 命名冲突

  • 结构冲突

冲突分类

MySQL技能二的一些概念

①属性冲突

属性域冲突,即属性值的类型、取值范围或取值集合不同。
例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。
年龄,某些部门以出⽣⽇期形式表⽰职⼯的年龄,⽽另⼀些部门⽤整数表⽰职⼯的年龄。
属性取值单位冲突。
例如,零件的重量有的以公⽄为单位,有的以⽄为单位,有的以克为单位。
②命名冲突
同名异义,即不同意义的对象在不同的局部应⽤中具有相同的名字。
异名同义(⼀义多名),即同⼀意义的对象在不同的局部应⽤中具有不同的名字。
如对科研项⽬,财务科称为项⽬,科研处称为课题,⽣产管理处称为⼯程。
命名冲突
可能发⽣在实体、联系⼀级上
也可能发⽣在属性⼀级上
通过讨论、协商等⾏政⼿段加以解决
③结构冲突
同⼀对象在不同应⽤中具有不同的抽象。
例如,职⼯在某⼀局部应⽤中被当作实体,⽽在另⼀局部应⽤中则被当作属性。
解决⽅法:把属性变换为实体或把实体变换为属性,使同⼀对象具有相同的抽象。
同⼀实体在不同⼦系统的E-R图中所包含的属性个数和属性排列次序不完全相同。
解决⽅法:使该实体的属性取各⼦系统的E-R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的E-R图中为不同的类型。
实体E1与E2在⼀个E-R图中是多对多联系,在另⼀个E-R图中是⼀对多联系
解决⽅法是根据应⽤的语义对实体联系的类型进⾏综合或调整。

2020下半年软件师上午真题

MySQL技能二的一些概念

冲突的优化

消除初步E-R图中不必要的冗余,生成基本E-R图
冗余数据:可由基本的数据导出的数据
冗余联系:可由基本的联系导出的联系

MySQL技能二的一些概念

3 逻辑结构设计

逻辑设计的任务是将概念模型转换成特定DBMS所支持的数据模型的过程。

1.转换原则 
逻辑设计的结果是一组关系模式的集合
就是将E-R图中的实体、属性和联系转换成关系模式。 
在转换中要遵循以下原则:
(1)一个实体转换为一个关系模式
实体的属性就是关系的属性
实体的键就是关系的键。

题:在进行数据库逻辑设计时,可将 E-R 图中的属性表示为关系模式的(A )。

  • A. 属性

  • B. 键

  • C. 关系

  • D. 域

2)一个联系转换为一个关系模式
与该联系相连的各实体的键以及联系的属性均转换为该关系的属性
联系关系的键有三种情况:
如果联系为1:1,则每个实体的键都是关系的候选键;
如果联系为1:n,则n端实体的键是关系的键
如果联系为n:m,则各实体键的组合是关系的键。

在 E-R 图中,一个联系是不可以孤立存在的,联系不能脱离实体,必须有实体连接且可以是实体的自身联系。

题:从 E-R 图向关系模型转换时,一个 M:N 的联系转换为关系模型时,该关系模型的主码是 ( C ) 。

  • A. M端实体对应关系的主码

  • B. N端实体对应关系的主码

  • C. 两表的主码联合做主码

  • D. 两表的全部码

(3)多元联系在转换为关系模式时,与该多元联系相连的各实体的主键及联系本身的属性均转换成为关系的属性,转换后所得到的关系的主键为各实体键的组合。

E-R图中实体之间(多对多)联系是通过建立新的关系来实现向关系模型的转换。

说了这么多,逻辑设计阶段到底干啥 ??????????????

题:下列那些工作是数据库逻辑设计的内容 ( B)。

Ⅰ.设计 E-R 图 

Ⅱ.创建表 

Ⅲ.创建视图

Ⅳ.创建索引 

V .装载数据

排除法做。

设计 E-R 图 属于概念设计【参见:2 概念结构设计】

表设计、视图设计这些属于逻辑结构设计

索引设计属于物理结构设计【参见:4 物理结构设计】

装载数据属于数据库实施【参见:5 数据库的实施】

4 物理结构设计

物理设计阶段简记:聚集、索引

物理结构通俗的理解就是:数据存在什么地方,比如服务器上,再确定时间换空间,还是空间换时间 ?

物理结构设计:对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构。

数据库的物理结构设计可分为两步:
(1)确定物理结构:存取方法和存储结构
(2)评价物理结构:评价的重点是时间和空间效率

确定物理结构
1.存储记录结构的设计
物理结构中,数据的基本存取单位是存储记录
某一类型的所有存储记录的集合称为“文件”

决定存储结构的主要因素包括存取时间、存储空间、维护代价

物理设计阶段简记:聚集、索引

1)聚集
将在属性上具有相同值的元组集中的存放在一个物理块中,这个属性称为聚集值
聚集值只需存储一次,节省空间
提高按聚集码查询的效率

(2)索引

2.访问方法的设计 
访问方法:为存储在物理设备(辅存)上的数据提供存储和检索能力的方法,包括存储结构和检索机构
存储结构限定了可能访问的路径和存储记录,检索机构定义了每个应用的访问路径
3.数据存放位置的设计 
为提高性能,可将数据的易变部分、稳定部分、经常存取部分和存取频率较低部分分开存放
4.系统配置的设计

5 、 6 数据库的实施、运行和维护

数据库实施:指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。 

MySQL技能二的一些概念

数据库运行和维护阶段的主要任务包括以下三项内容:
(1)维护数据库的安全性与完整性;
(2)监测并改善数据库性能;
(3)重新组织和构造数据库。

只要数据库系统在运行,就需要不断地进行修改、调整和维护。

候选键、主键、外键、可选键

候选键(Candidate Key):一个或者多个属性的集合,可以唯一确定实体的一个实例;

主键(Primary Key):从候选键中,选中用来作为唯一标识的属性或者属性组被称为主键;主键:实体完整性

可选键(Alternative Key):候选键中没有选中的其他键,称为可选键;

而表的外键是另一表的主键, 外键可以有重复的, 可以是空值。

外键:参照完整性

数据流图、用户活动图、ER图、流程图的区别

数据流图:数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

MySQL技能二的一些概念

MySQL技能二的一些概念

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型(1:1,1:n或m:n)。

矩形框:表示实体,在框中记入实体名。 

菱形框:表示联系,在框中记入联系名。 

椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。 

连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1;对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。) [1] 构图要素编辑

MySQL技能二的一些概念

流程图:

流程图(Flowchart):使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。流程图在汇编语言和早期的BASIC语言环境中得到应用。相关的还有一种PAD图,对PASCAL或C语言都极适用。

为便于识别,绘制流程图的习惯做法是:

圆角矩形表示“开始”与“结束”;

矩形表示行动方案、普通工作环节用; 

菱形表示问题判断或判定(审核/审批/评审)环节;

用平行四边形表示输入输出;箭头代表工作流方向。

MySQL技能二的一些概念

用户活动图暂未找到。

参考:

https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/4136477?fr=aladdin

https://baike.baidu.com/item/E-R%E5%9B%BE/304954?fromtitle=ER%E5%9B%BE&fromid=2908042&fr=aladdin

数据库三大范式

数据库的设计范式是数据库设计所需要满⾜的规范,满⾜这些规范的数据库是简洁的、结构明晰的,同时,不会发⽣插(insert)、删除(delete)和更新(update)操作异常。

第⼀范式(1NF): 强调列不可再分

1.每⼀列属性都是不可再分的属性值,确保每⼀列的原⼦性
2.两列的属性相近或相似或⼀样,尽量合并属性⼀样的列,确保不产⽣冗余数据

第⼆范式(2NF)属性完全依赖于主键

第⼆范式(2NF)是在第⼀范式(1NF)的基础上建⽴起来的,即满⾜第⼆范式(2NF)必须先满⾜第⼀范式(1NF)。第⼆范式
(2NF)要求数据库表中的每个实例或⾏必须可以被唯⼀地区分。为实现区分通常需要为表加上⼀个列,以存储各个实例的唯⼀标识。这个唯⼀属性列被称为主键。

第三范式(3NF)属性不依赖于其它非主属性属性直接依赖于主键

总结:三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求》性能》表结构。所以不能一味的去追求范式建立数据库。

参考:https://wenku.baidu.com/view/8e67d23151d380eb6294dd88d0d233d4b14e3f61.html

模式、外模式、内模式

  1. 模式(Schema)
    模式也称为:逻辑模式,它是DB中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式层是数据库模式结构的中间层,既不涉及到数据的物理存储细节和硬件环境,也与具体的应用程序、应用开发工具以及高级程序设计语言无关(C、C++、JAVA等)。
    模式就是数据库数据在逻辑上的视图,且一个数据库只有一个模式。实际工作中,模式就等同于程序员创建一个具体的数据库的全部操作,如:这是一个MySQL数据库,有2张表,每个表的名字,属性的名字、类型、取值范围,主键,外键,索引,其他完整性约束等等。
    DBMS提供模式描述语言(模式DDL)来严格地定义模式。

  2. 外模式
    外模式也称为:子模式(subschema)/用户模式,它是数据库用户(应用程序员、最终用户)能够看到的使用的局部数据的逻辑结构和特征的描述,是数据库的数据视图,是与某一个应用有关的数据的逻辑表示。
    外模式通常是模式的子集。一个数据库可以有多个外模式。同一个外模式可以为某一用户的多个应用系统所使用,但一个应用系统只能使用一个外模式。
    外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
    DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

  3. 内模式
    内模式也称为:存储模式(Storage schema),一个数据库只有一个内模式。它是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。如:记录的存储方式是堆存储,还是按照某些属性值的升(降)存储,还是按照属性值聚簇(cluster)存储;索引按照什么方式组织,是B+树索引,还是hash索引等等。
    DBMS提供内模式描述语言(内模式DDL/存储模式DDL)来严格定义内模式。

    原文链接:https://blog.csdn.net/u010297957/article/details/50846279

二级映像功能和数据的独立性

数据库的3级模式是对数据的3个抽象级别。它使得用户能够逻辑地抽象地处理数据,而不必再去关心数据在计算机中的具体表示方式与存储方式。实际上,为了能够实现在这3个抽象层次之间的联系和转换,DBMS在这三级模式之间设计了两层映像:

外模式/模式映像
模式/内模式映像
这两层映像保证了数据库中的数据能够具有较高的逻辑独立性和物理独立性。

  1. 外模式/模式映像
    由上可知:一个DB只有一个模式,但可以有多个外模式。
    所以,对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了这个外模式与模式的对应关系。外模式的描述中通常包含了这些映像的定义。
    当模式改变时(增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式映像作相应的改变,可以使得外模式保持不变。而又由于应用程序应该是依据外模式编写的,从而应用程序不必修改,这就保证了数据与程序的逻辑独立性。

总结:外模式/模式映像保证了当模式改变时,外模式不用变 — 逻辑独立性。

  1. 模式/内模式映像
    由上可知:一个DB只有一个模式,也只有一个内模式,所有模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
    当数据库的存储结构改变时(例如选用了另一个存储结构),由数据库管理员对模式/内模式映像作出相应的改变,可以使得模式保持不变,从而应用程序也不必改变。这就保证了数据和程序的物理独立性。

总结:模式/内模式映像保证了当内模式改变时,模式不用变 — 物理独立性。

版本2

三级模式

  (1)模式

  模式对应着概念级,它是由数据库设计者总和所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图。它是由数据库管理系统提供的数据模式描述语言(Date Description Language,DDL)来描述、定义的,体现并反映了数据库系统的整体观。

  (2)外模式

  外模式对应于用户级,它是某个或某几个用户看到的数据库的数据视图,是与某一应用有关的数据逻辑的表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DML)对这些数据记录进行操作。

  (3)内模式

  内模式对应于物理级,它是数据库中全部数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上存储方式的物理结构,对应着实际存储在外存储介质上的数据库。

数据库系统的三级模式是对数据的3个抽象,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示和存储。为了能够在内部实现着3个抽象层次的练习和转换,DBMS在这3个级别之间提供了两层映像:外模式/模式映像 和 模式/内模式映像。

  外模式/模式映像 使数据具有较高的逻辑独立性。它定义了外模式和模式之间的对应关系。这些映像定义通常包含在各自外模式的描述。当模式改变时,DBA要求相关的外模式/模式映像做相应的改变,以使外模式保持不变。应用程序是依据实际的外模式编写的,外模式不变应用程序就没必要修改。所以,外模式/模式映像 功能保证了数据与程序的逻辑独立性。

  模式/内模式映像使数据具有较高的物理独立性。它定义了数据库全局逻辑结构与存储结构之间的对应关系。该映像定义通常包含在模式描述中。当数据库的存储结束了,DBA要对模式/内模式映像做相应的改变,以使模式保持不变。模式不变,与模式没有直接联系的应用程序也不会改变。所以,模式/内模式映像功能保证了数据与程序的物理独立性。