软件架构师高级——3、数据库系统

• 数据库概述(★★★)

集中式数据库系统

•数据管理是集中的
•数据库系统的素有功能 (从形式的用户接口到DBMS核心)

者口集中在DBMS所在的计算机。

B/S结构

•客户端负责数据表示服务

•服务器主要负责数据库服务
•数据 和后端 库系统分为前
•ODBC、JDBC

并行数据库•共享内存式
•无共享式
分布式数据库• 物理上分布、逻辑上集中
• 物理上分布、逻辑上分布
•特点
- 透明性

• 数据库的结构与模式(★★★★)

数据库系统的三级模式

外模式
 

外模式(子模式、用户模式
描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作

语句或应用程序去操作数据库中的数据。
外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征

数据的安全性和完整性约束条件
 

概念模式
 

概念模式(模式、逻辑模式

整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,

定义记录、数据项、 数据的完整性约束条件及记录之间的联系,是数据项值的框架。
数据库系统概念模式通常还包含有访问控制、保密定义、完整性检查等方面的内容,以
及概念/物理之间的映射
概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个概念模式

内模式
 

内模式是整个数据库的最低层表示,不同于物理层,它假设外存是一个
无限的线性地址空间。
内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理
顺序,指引元、索引和存储路径等数据的存储组织。

内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

一个数据库只有一个内模式。

内模式、模式和外模式之间的关系如下:
(1)模式是数据库的中心与关键;
(2)内模式依赖于模式,独立于外模式和存储设备;
(3)外模式面向具体的应用,独立于内模式和存储设备;
(4)应用程序依赖于外模式,独立于模式和内模式。
 


• 数据库设计阶段(★★)

集成的方法:

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

集成产生的冲突及解决办法:

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

• ER模型 (★)

概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型
主要用实体—联系方法(Entity-Relationship Approach)表示,所以也称 E-R 模型。

常用的基本数据模型有层次模型、网状模型、关系模型和面向对象模型

• 关系代数(★★★★)


 

计算两个关系在集合理论上的并集,即给出关系

R 和 S(两者有相同元/列
数), R∪ S 的元组包括 R 和 S 所有元组的集合


计算两个关系集合理论上的交集,即给出关系

R 和 S(两者有相同元/列数),
R∩ S 的元组包括 R 和 S 相同元组的集合,

计算两个关系的区别的集合,即给出关系 R 和 S(

两者有相同元/列数), R-S
的元组包括 R 中有而 S 中没有的元组的集合

 笛卡尔积


计算两个关系的笛卡尔乘积,令 R 为有 m 元的关系,

S 为有 n 元的关系,则 R× S 是 m+n 元的元组的集合,

其前 m 个元素来自 R 的一个元组,而后 n 个
元素来自 S 的一个元组

选择从一个关系中抽取指明的属性(列)。令 R 为一个包含属性 A 的关系
投影
连接θ连接从两个关系的笛卡儿积中选取属性之间满足一定条件的元组
除法设有关系 R(X, Y)与关系 S(Z), Y 和 Z 具有相同的属性个数,且对应属性出
自相同域。关系 R(X, Y)÷S(Z)所得的商关系是关系 R 在属性 X 上投影的一个子集,该子
集和 S(Z)的笛卡尔积必须包含在 R(X, Y)中,记为 R÷S


• 规范化理论(★★★★★)

第一范式

1NF 是最低的规范化要求。如果关系 R 中所有属性的值域都是简单域,其元素(即属
性)不可再分,是属性项而不是属性组,那么关系模型 R 是第一范式的,记作 RÎ1NF。

第二范式

如果一个关系 R 属于 1NF,且所有的非主属性都完全依赖于主属性,则称之为第二范
式,记作 RÎ2NF

有一个获得专业技术证书的人员情况登记表结构为:

省份、姓名、证书名称、证书编号、核准项目、发证部门、发证日期、有效期。

这个结构符合 1NF,其中“证书名称”和“证书编号”是主码,但是因为“发证部门”
只完全依赖于“证书名称”,即只依赖于主关键字的一部分(即部分依赖),所以它不符合 2NF,

分解成两个表就完全符合 2NF 了

省份、姓名、证书名称、证书编号、核准项目、发证日期、有效期

证书名称、发证部门

第三范式

如果一个关系 R 属于 2NF,且每个非主属性不传递依赖于主属性,这种关系是 3NF,
记作 RÎ3NF。

有一个表(职工姓名,工资级别,工资额),
其中职工姓名是关键字,此关系符合 2NF,但是因为工资级别决定工资额,也就是说非主
属性“工资额”传递依赖于主属性“职工姓名”,它不符合 3NF,同样可以使用投影分解的

办法分解成两个表:(职工姓名,工资级别),(工资级别,工资额)。

BC 范式

如果关系模型 R∈ 1NF,且 R 中每一个函数依赖关系中的决定因素都
包含码,则 R 是满足 BC 范式的关系,记作 RÎBCNF。

综合 1NF、 2NF 和 3NF、 BCNF 的内涵可概括如下:
(1)非主属性完全函数依赖于码(2NF 的要求);
(2)非主属性不传递依赖于任何一个候选码(3NF 的要求);
(3)主属性对不含它的码完全函数依赖(BCNF 的要求);
(4)没有属性完全函数依赖于一组非主属性(BCNF 的要求)。
 

• 并发控制(★)

数据库的并发操作带来的问题有:丢失更新问题、不一致分析问题(读过时的数据)、依赖
于未提交更新的问题(读了“脏”数据)。这三个问题需要 DBMS 的并发控制子系统来解决。

处理并发控制的主要方法是采用封锁技术。它有两种类型:排他型封锁(X 封锁)和共
享型封锁(S 封锁)

(1)排他型封锁(简称 X 封锁)。如果事务 T 对数据 A(可以是数据项、记录、数
据集,乃至整个数据库)实现了 X 封锁,那么只允许事务 T 读取和修改数据 A,其他事
务要等事务 T 解除 X 封锁以后,才能对数据 A 实现任何类型的封锁。可见 X 封锁只允
许一个事务独锁某个数据,具有排他性。

(2)共享型封锁(简称 S 封锁)。 X 封锁只允许一个事务独锁和使用数据,要求太严。
需要适当放宽,例如可以允许并发读,但不允许修改,这就产生了 S 封锁概念。 S 封锁的
含义是:如果事务 T 对数据 A 实现了 S 封锁,那么允许事务 T 读取数据 A,但不能修
改数据 A,在所有 S 封锁解除之前绝不允许任何事务对数据 A 实现 X 封锁。
 

• 分布式数据库(★★)

分布式数据库=是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个结点也能通过网络通信子系统执行全局应用。


 图 3-8 的模式结构从整体上可以分为两大部分:下半部分是集中式数据库的模式结构,
代表了各局部场地上局部数据库系统的基本结构;上半部分是分布式数据库系统增加的模式
级别。

• 数据仓库(★★★)

著名的数据仓库专家 W.H.Inmon 在《Building the Data Warehouse》一书中将数据仓库
定义为:数据仓库( Data Warehouse)是一个面向主题的、集成的、相对稳定的、且随时间
变化的数据集合,用于支持管理决策。

• 数据挖掘(★★★★)

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际
应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。

数据挖掘的功能

  • 1.自动预测趋势和行为数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。
  • 2.关联分析数据关联是数据库中存在的一类重要的可被发现的知识。
  • 3.聚类数据库中的记录可被划分为一系列有意义的子集,即聚类。
  • 4.概念描述概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。
  • 5.偏差检测数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。
     

常用的数据挖掘技术包括关联分析、序列分析、分类、预测、聚类分析时间序列分析

 

• 大数据(★★★)

业界通常用 4 个 V(即 Volume、 Variety、 Value、 Velocity)来概括大数据的特征

Volume:指的是数据体量巨大,从 TB 级别跃升到 PB 级别(1PB=1024TB)、 EB 级别
1EB=1024PB),甚至于达到 ZB 级别(1ZB=1024EB)。截至目前,人类生产的所有印刷材
料的数据量是 200PB,而历史上全人类说过的所有话的数据量大约是 5EB。当前,典型个
人计算机硬盘的容量为 TB 量级,而一些大企业的数据量已经接近 EB 量级。

Variety:指的是数据类型繁多。这种类型的多样性也让数据被分为结构化数据和非结构
化数据。相对于以往便于存储的以文本为主的结构化数据,非结构化数据越来越多,包括网
络日志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了
更高要求。

Value:指的是价值密度低。价值密度的高低与数据总量的大小成反比。以视频为例,
一部 1 小时的视频,在连续不间断的监控中,有用数据可能仅有 1-2 秒。如何通过强大的
机器算法更迅速地完成数据的价值“提纯”成为目前大数据背景下亟待解决的难题。当然把
数据集成在一起,并完成“提纯”是能达到 1+1 大于 2 的效果的,这也正是大数据技术的
核心价值之一。

Velocity:指的是处理速度快。这是大数据区分于传统数据挖掘的最显著特征。根据 IDC
的“数字宇宙”的报告, 预计到 2020 年,全球数据使用量将达到 35.2ZB。在如此海量的
数据面前,处理数据的效率就是企业的生命。
 

 大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数
分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全
等)

• 数据库完整性约束(★)


• 数据库备份与安全 (★)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/24937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】【预】配置虚拟机的桥接网卡+nfs

【Linux】【预】配置虚拟机的桥接网卡 1. 配置VM虚拟机的桥接网络2 配置Win10中的设置3.配置Linux中的IP4. 串口连接开发板,配置nfs5 修改网络文件6 验证nfs 是否成功总结 1. 配置VM虚拟机的桥接网络 右击设置,选择添加网络,按照如下顺序操作…

MySQL语句性能分析与优化

目录 SQL性能分析 SQL执行频率 SQL慢查询日志 Profile Explain SQL优化 插入数据的优化 主键优化 Order By优化 Group By优化 Limit 优化 Count 优化 Update 优化 多表连接查询优化 SQL性能分析 通过SQL性能分析来做SQL的优化,主要是优化SQL的查询语…

Springboot+Easyexcel将数据写入模板文件并导出Excel

SpringbootEasyexcel将数据写入模板文件并导出Excel 一、导入依赖二、根据excel表头创建对应的实体类Pojo三、Controller类接收请求四、Service层获取待写入数据五、效果展示六、总结 一、导入依赖 <!--操作excel工具包--> <dependency><groupId>com.alibab…

[Flask]SSTI1

根据题目提示&#xff0c;这关应该是基于Python flask的模版注入&#xff0c;进入靶场环境后就是一段字符串&#xff0c;而且没有任何提示&#xff0c;有点难受&#xff0c;主要是没有提示注入点 随机尝试一下咯&#xff0c;首先尝试一下guest&#xff0c;GET传参 但是没有反应…

离散Hopfield神经网络的联想记忆与matlab实现

1案例背景 1.1离散Hopfield神经网络概述 Hopfield网络作为一种全连接型的神经网络,曾经为人工神经网络的发展开辟了新的研究途径。它利用与阶层型神经网络不同的结构特征和学习方法,模拟生物神经网络的记忆机理,获得了令人满意的结果。这一网络及学习算法最初是由美国物理学家…

react中hooks的理解与使用

一、作用 我们知道react组件有两种写法一种是类组件&#xff0c;另一种是函数组件。而函数组件是无状态组件&#xff0c;如果我们要想改变组件中的状态就无法实现了。为此&#xff0c;在react16.8版本后官方推出hooks&#xff0c;用于函数组件更改状态。 二、常用API 1、use…

【css】css隐藏元素

display:none&#xff1a;可以隐藏元素。该元素将被隐藏&#xff0c;并且页面将显示为好像该元素不在其中。visibility:hidden&#xff1a; 可以隐藏元素。但是&#xff0c;该元素仍将占用与之前相同的空间。元素将被隐藏&#xff0c;但仍会影响布局。 代码&#xff1a; <!…

go编译文件

1.编译go文件 go build [go文件]2.执行文件编译文件 ./demo [demo为go文件名称]

当服务器域名出现解析错误的问题该怎么办?

​  域名解析是互联网用户接收他们正在寻找的域的地址的过程。更准确地说&#xff0c;域名解析是人们在浏览器中输入时使用的域名与网站IP地址之间的转换过程。您需要站点的 IP 地址才能知道它所在的位置并加载它。但&#xff0c;在这个过程中&#xff0c;可能会出现多种因素…

web服务

静态网页与动态网页的区别 在网站设计中&#xff0c;静态网页是网站建设的基础&#xff0c;纯粹 HTML 格式的网页通常被称为“静态网页”&#xff0c;静态网页是标准的 HTML 文件&#xff0c;它的文件扩展名是 .htm、.html&#xff0c;可以包含文本、图像、声音、FLASH 动画、…

MySQL(1)

MySQL创建数据库和创建数据表 创建数据库 1. 连接 MySQL mysql -u root -p 2. 查看当前的数据库 show databases; 3. 创建数据库 create database 数据库名; 创建数据库 4. 创建数据库时设置字符编码 create database 数据库名 character set utf8; 5. 查看和显示…

【前瞻】视频技术的发展趋势讨论以及应用场景

视频技术的发展可以追溯到19世纪初期的早期实验。到20世纪初期&#xff0c;电视技术的发明和普及促进了视频技术的进一步发展。 1&#xff09;数字化&#xff1a;数字化技术的发明和发展使得视频技术更加先进。数字电视信号具有更高的清晰度和更大的带宽&#xff0c;可以更快地…

Spring源码解析(七):bean后置处理器AutowiredAnnotationBeanPostProcessor

Spring源码系列文章 Spring源码解析(一)&#xff1a;环境搭建 Spring源码解析(二)&#xff1a;bean容器的创建、默认后置处理器、扫描包路径bean Spring源码解析(三)&#xff1a;bean容器的刷新 Spring源码解析(四)&#xff1a;单例bean的创建流程 Spring源码解析(五)&…

SSE技术和WebSocket技术实现即时通讯

文章目录 一、SSE1.1 什么是SSE1.2 工作原理1.3 特点和适用场景1.4 API用法1.5 代码实现 二、WebSocket2.1 什么是WebSocket2.2 工作原理2.3 特点和适用场景2.4 API用法2.5 代码实现 三、SSE与WebSocket的比较 当涉及到实现实时通信的Web应用程序时&#xff0c;两种常见的技术选…

Agile manifesto principle (敏捷宣言的原则)

Agile Workflow Agile在管理中越来越受推崇&#xff0c;最初是由于传统的软件开发管理方式&#xff08;瀑布模型&#xff09;面对日益复杂的需求&#xff0c;无法Delivery令人满意的结果&#xff0c;经过总结探索&#xff0c;2001年&#xff0c;由行业代表在一次聚会中提出Agil…

桥接模式(C++)

定义 将抽象部分(业务功能)与实现部分(平台实现)分离&#xff0c;使它们都可以独立地变化。 使用场景 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;乃至多个纬度的变化。如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型…

Elasticsearch 商业启示

上月的“红帽事件”&#xff0c;说明开源软件的“客服模式”行不通&#xff0c;那么&#xff0c;开源软件如何赚钱呢&#xff1f;既不能卖软件&#xff0c;又不能卖支持服务&#xff0c;该怎么办呢&#xff1f;我现在的看法是&#xff0c;只剩下一种模式是可行的&#xff0c;开…

博客项目测试报告

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 一、项目背景二、项目功能三、测试计划一&#xff09;功能测试二&#xff09;自动化测试三&#xff09;性能测试编写性能测试…

Vue3 第一节 Vue3简介以及创建Vue3工程

1.Vue3简介以及Vue3带来了什么 2.创建Vue3.0工程并分析Vue3工程结构 3.setup函数 4.ref函数 5.reactive函数 一.Vue3简介以及Vue3带来了什么 ① Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff0…

auto-changelog的简单使用

auto-changelog的简单使用 自动化生成Git提交记录&#xff0c;CHANGELOG.md文件 github&#xff1a;https://github.com/cookpete/auto-changelog 安装 npm install -g auto-changelog配置脚本 package.json文件下 "scripts": {"changelog": "aut…