软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

本文主要是介绍软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.数据库的基本概念

1.1数据库的体系结构

1.1.1常见数据库

①集中式数据库

数据是集中的;数据管理是集中的

②C/S结构

客户端负责数据表服务;服务器负责数据库服务;系统分前后端;ODBC、JDBC

③分布式数据库

物理上分布、逻辑上集中;物理上分布、逻辑上分布;透明性

④并行数据库

分为共享内存式和无共享式

1.1.2分布式数据库的特点

数据独立性。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)。 ②集中与自治共享结合的控制结构。各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。 ③适当增加数据冗余度。在不同的场地存储同一数据的多个副本,可以提高系统的可靠性和可用性,同时也能提高系统性能。(提高系统的可用性,即当系统中某个节点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性。)全局的一致性、可串行性和可恢复性

1.1.3分布式数据库的透明性

分片透明:是指用户不必关心数据是如何分片/分块的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的。

复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。

位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的

局部映像透明性(逻辑透明)∶是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。

1.1.4例题

(1)

答案:D A

解析:白给

(2)

答案:C

解析:白给

知识点补充与回顾:

在分布式数据库中:

①共享性:所有的数据都是共享的

②自治性:每个节点有局部的数据库管理系统管理

③可用性:某个节点故障,而有副本,系统仍可用

④分布性:在物理结构上分布

1.2三级模式结构

1.2.1三级模式概念图

注:①外模式-概念模式映射/映像对应逻辑独立性

逻辑独立性:数据的逻辑结构发生变化后,用户程序也可以不修改,但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像。

②概念模式-内模式映射对应物理独立性

物理独立性:当数据的物理结构发生改变时,应用程序不用改变。但是为了能够保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像。

1.2.2例题

答案:B

解析:白给题

答案:B

解析:白给

答案:D

解析:白给

1.3数据仓库

1.3.1数据仓库的特点

①面向主题:数据按主题组织

②集成的:消除了源数据中的不一致性,提供整个企业的一致性全局信息

③相对稳定的(非易失的):主要进行查询操作,只有少量的修改和删除操作(或是不删除)

④反映历史变化(随着时间变化)︰记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测

1.3.2数据仓库的过程

OLAP和OLTP的区分:

OLAP:数据仓库就是典型的OLAP,其中A是分析的意思,着重于分析

OLTP:常见的数据库就是OLTP,关于联机事务,着重于事务

1.3.3例题

答案:B

解析:

A数据清理

D数据抽取

2.数据库的设计过程

2.1设计过程概念图

注:①数据流图(OFD)

②数据字典(OD)

③聚簇索引属于物理设计

④逻辑设计阶段的关系模式需要考虑关系规范化

2.2例题

答案:B

解析:白给

3.概念设计

3.1概念设计过程

在“合并局部模型消除冲突”中:

(1)集成方法:

①多个局部E-R图一次集成

②逐步集成,用累加的方式一次集成两个局部E-R

(2)集成产生的冲突及解决办法:(针对同一对象)

属性冲突:包括属性域冲突和属性取值冲突

命名冲突:包括同名异义和异名同义

结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同

3.2 E-R图

3.2.1 E-R模型示意图

实体用矩形表示,属性用椭圆表示,联系用方块表示,特殊化的实体用特殊矩形+特殊线段表示

3.2.1 E-R图
3.2.1.1基本概念

①实体:实体是现实世界中可以区别于其他对象的事件或事物。(实体集―实体的集合)

②属性:属性是实体某方面的特性

③联系∶实体的联系分为实体内部的联系和实体与实体间的联系。实体间联系类型:一对一(1 : 1)、一对多(1 : n)、一对多(n : m)

3.2.1.2属性

(1)简单属性和复合属性

①简单属性是原子的,不可再分的

②复合属性可以细分为更小的部分(即划分为别的属性)

复合属性的举例:地址可以拆分出省、市

(2)单值属性和多值属性

①定义的属性对于一个特定的实体都只有单独的一个值,称为单值属性

②在某些特定情况下,一个属性可能对应一组值,称为多值属性

多值属性的举例:一个人有好几个号码

(3)一些特殊的属性

①NULL属性:表示无意义或不知道

②派生属性:可以从其他属性得来

派生属性的举例:年龄可由身份证号推出

3.2.1.3联系

(1)一对一(1 : 1)

一个班就只有一个班长,一个班长只对应一个班

(2)一对多(1 : n)(1 : *)

一个班有很多学员,一个学员只属于一个班级

(3)多对多(n : m)(* : *)

一门课程有多个学员学习,一个学员可以学习多门课程

3.2.1.4三元联系

(1)两个以上不同实体集之间的联系可以存在三元联系

(2)多重度的确定,可根据语义直接转换

以三元关系中的一个实体作为中心,假设另两个实体都只有一个实例:

①若中心实体只有一个实例能与另两个实体的一个实例进行关联,则中心实体的连通数为“—”

P_D:表示一个病房有多个病人和多个医生,一个医生只负责一个病房,一个病人只属于一个病房

②若中心实体有多于一个实例能与另两个实体实例进行关联,则中心实体的连通数为“多”

Supp为供应商,Proj为项目,Part为零件

SP_P:表示供应商为多个项目供应多种零件,每个项目可用多个供应商供应的零件,每种零件可由不同的供应商供应。

3.2.1.5同一个实体集内部的二元联系

3.2.1.6扩充的E-R模型

(1)弱实体:在现实世界中有一种特殊的依赖联系,该联系是指某实体是否存在对于另一些实体具有很强的依赖关系,即一个实体的存在必

须以另一个实体为前提,而将这类实体称为弱实体,如家属与职工的联系,附件与邮件

(2)特殊化:在现实世界中,某些实体一方面具有一些共性,另一方面还具有各自的特性,一个实体集可以按照某些特征区分为几个子实体

(3)聚集:一个联系作为另一个联系的一端

4.逻辑设计

4.1关系模式相关概念

4.1.1数据模型

①层次模型

该图来源于数据库系统概论第五版

②网状模型

该图来源于数据库系统概论第五版

其中S-SC和C-SC为联系名

关系模型

关系名(属性1, 属性2, 属性3, ……, 属性n)

eg:学生(学号, 姓名, ……)

该图来源于数据库系统概论第五版

数据模型三要素:数据结构、数据操作、数据的约束条件

④面向对象模型(了解一下)

以对象为单位来组织的模型

4.1.2关系模型的相关概念

(1)目和度

关系模式中属性的个数

(2)候选码(候选键)

若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码

(3)主码(主键)

若一个关系有多个候选码,则选定其中一个为主码

(4)主属性与非主属性

候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。

(5)外码(外键)

其它关系的主键

(6)全码

关系模式的所有属性组是这个关系的候选码

(7)关系表的三种类型

基本关系表、查询表、视图表,前者为存在于数据库中的实表,后两者为虚表

(8)完整性约束

实体完整性约束(主键唯一且非空)、参照完整性约束(即外键,要么是其它主键,要么是空)、用户自定义完整性约束

注:触发器可以完成复杂完整性的定义

4.2 E-R图转关系模式

4.2.1相关概念

(1)一个实体型必须转换为一个关系模式

(2)联系转关系模式:

①一对一联系的转换有两种方式

独立的关系模式:并入两端主键及联系自身属性。(主键:任一端主键)

归并(任意一端):并入另一端主键及联系自身属性。(主键:保持不变)

②一对多联系的转换有两种方式

独立的关系模式:并入两端主键及联系自身属性。(生键:多端主键)

归并(多端)∶并入另一端主键及联系自身属性。(主键:保持不变)

③多对多联系的转换只有一种方式

独立的关系模式:并入两端主键及联系自身属性。(主键:两端主键的组合键)

4.2.2例题

其中下划线代表主键,波浪线代表外键

(1)1 : 1

E-R图:

关系模式:

①独立关系模式

②归并:

第一种归并:

第二种归并:

(2)1 :n

E-R图:

关系模式:

①独立关系模式:

②归并:

(3)n : m

E-R图:

关系模式:

上一篇:软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

下一篇:软件设计师学习笔记11-磁盘管理+IO管理软件+文件管理+作业管理

这篇关于软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199738

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio