软考系统架构师知识点集锦九:数据库系统

一、考情分析

 二、考点精讲

2.1数据库概述

2.1.1数据库模式

  • (1)三级模式:外模式对应视图,模式(也称为概念模式)对应数据库表,内模式对应物理文件。
  • (2)两层映像:外模式-模式映像,模式-内模式映像;两层映像可以保证数据库中的数据具有较高的逻辑独立性和物理独立性。
  • (3)物理独立性:即数据库的内模式发生改变时,应用程序不需要改变。
  • (4)逻辑独立性:即逻辑结构发生改变时,用户程序不需要改变。(逻辑独立性 比物理独立性更难
  • 实现)
  • (5)聚簇索引会影响内模式
     

2.1.2分布式数据库

(1)体系结构

(2)分布式数据库特点:

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

(3)分布式透明性

  • 分片透明性:分不分片,用户感受不到(不关心如何分片存储)。(水平分片:按记录分;垂直分片:按字段分;混合分片)
  • 位置透明性:数据存放在哪里,用户不用管(用户无需知道数据存放的物理位置)。
  • 局部数据模型透明性(逻辑透明) :用户或应用程序无需知道局部场地使用的是哪种数据模型。

两阶段提交协议2PC:
2PC事务提交的两个阶段:

  • 表决阶段,目的是形成一个共同的决定。
  • 执行阶段,目的是实现这个协调者的决定。

两条全局提交规则:

  • 只要有一个参与者撤销事务,协调者就必须做出全局撤销决定。
  • 只有所有参与者都同意提交事务,协调者才能做出全局提交决定。

(4)分库分区分表

分区的优点:

  • 1、相对于单个文件系统或是硬盘,分区可以存储更多的数据。
  • 2、数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可。
  • 3、精准定位分区查询数据,不需要全表扫描查询,大大提高数据检索效率。
  • 4、可跨多个分区磁盘查询,来提高查询的吞吐量。
  • 5、在涉及聚合函数查询时,可以很容易进行数据的合并。

(5)分布式数据库管理系统-组成: LDBMS、GDBMS、 全局数据字典、通信管理(CM)

(6)分布式数据库管理系统结构

  • 全局控制集中的DDBMS
  • 全局控制分散的DDBMS
  • 全局控制部分分散的DDBMS

2.1.3索引和视图

(1)关系的3种类型

基本关系(通常又称为基本表或基表) :实际存在的表,实际存储数据的逻辑表示。
查询表:查询结果对应的表。
视图表:由基表或其他视图表导出的表,本身不独立存储,数据库只存放它的定义,常称为虚表。
它是一个虚拟表(逻辑上的表), 其内容由查询定义(仅保存SQL查询语句)。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据。

(2)视图(View) 并不在数据库中实际存在,而是一种虚拟表。

(3)视图的优点:

  • 1、视图能简化用户的操作
  • 2、视图机制可以使用户以不同的方式查询同- -数据
  • 3、视图对数据库重构提供了-定程度的逻辑独立性
  • 4、视图可以对机密的数据提供安全保护

(4)物化视图:它不是传统意义上虚拟视图,是实体化视图,其本身会存储数据。同时当原始表中的数据更新时,物化视图也会更新。

2.2数据库设计过程

2.2.1概念结构设计过程

(1) E-R 图集成的方法:

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

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

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

2.2.2逻辑结构设计

(1) 任务
1、E-R 图向关系模式的转换;

  • 实体向关系模式的转换
  • 联系向关系模式的转换

2、关系模式的规范化;
3、确定完整性约束(保证数据的正确性) ;

  • 实体完整性约束
  • 参照完整性约束
  • 用户自定义完整性约束
  • 触发器

4、用户视图的确定(提高数据的安全性和独立性)。

  • 根据数据流图确定处理过程使用的视图
  • 根据用户类别确定不同用户使用的视图

5、应用程序设计

(2)相关概念

  • 目或度:关系模式中属性的个数。
  • 候选码(候选键)
  • 主码(主键)
  • 主属性与非主属性:组成候选码的属性就是主属性,其它的就是非主属性。
  • 外码(外键)
  • 全码(ALL-Key) :关系模式的所有属性组是这个关系的候选码。
  • 简单属性与复合属性、派生属性、多值属性

2.2.3数据库性能优化

2.3关系代数

2.3.1并(结果为二者元组之和去除重复行)

2.3.2交(结果为二者重复行)

2.3.3差(前者去除二者重复行)

类似于集合运算,计算如下图所示:

 2.3.4笛卡尔积

结果的属性列数为二者属性列数之和,结果的元组行数为二者元素数乘积。

2.3.5投影

        对属性列的选择列出。

2.3.6选择

        对元组行的选择列出。
        属性名可以依次标序号,直接以数字形式出现在表达式中。计算如下图所示:

 2.3.7自然连接

        结果列数为二者属性列数之和减去重复列,行数为二者同名属性列其值相同的结果元组。笛卡尔积、选择、投影的组合表示可以与自然连接等价。

        普通连接的条件会写出,没有写出则表示为自然连接。计算如图所示:

2.4规范化理论

2.4.1非规范化存在的问题

        非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。

2.4.2相关概念

        函数依赖:

2.4.3 Amstrong公理

2.4.4候选键

        主属性与非主属性:组成候选码的属性就是主属性,其它的就是非主属性。

        将关系模式的函数依赖关系用“有向图”的方式表示。

        找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键。

        若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。

2.4.5范式

范式的关系

第一范式(1NF) :在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。

第二范式(2NF)--消除非主属性对码的部分函数依赖:当且仅当关系模式R是第一范式(1NF),且每一个非主属性完全依赖候选键(没有不完全依赖)时,则称关系模式R是第二范式。

第三范式(3NF)--消除非主属性对码的传递函数依赖:当且仅当关系模式R是第二范式(2NF),且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式。

BC范式(BCNF) --根据定义判断:设R是一个关系模式,F是它的依赖集, R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
(可以理解为在3NF基础上,消除主属性之间的传递函数依赖和部分函数依赖)

2.4.6规范化过程-模式分解

2.4.7反规范化

(1)反规范化手段

(2)反规范化的优缺点
优点:连接操作少,检索快,统计快,需要查的表减少,检索容易。
缺点:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法-数组2】有序数组的平方 和 长度最小的子数组

今天,带来数组相关算法的讲解。文中不足错漏之处望请斧正! 理论基础点这里 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输…

手机app爬虫配置(模拟机)

近期在做某个项目,涉及到需要对手机app的进行数据爬取。 下面将讲述具体配置步骤 1、安装手机模拟器 在百度上搜索手机模拟器就可以啦,这里以夜神模拟器夜神安卓模拟器-安卓模拟器电脑版下载_安卓手游模拟器_手机模拟器_官网为例子。 下载后,直接点击安装即可。 2、安装…

Mac怎么删除文件和软件?苹果电脑删除第三方软件方法

Mac删除程序这个话题为什么一直重复说或者太多人讨论呢?因为如果操作不当,可能会导致某些不好的影响。因为Mac电脑如果有太多无用的应用程序,很有可能会拖垮Mac系统的运行速度。或者如果因为删除不干净,导致残留文件积累在Mac电脑…

软考系统架构师知识点集锦十:计算机网络、数学与经济管理、知识产权与标准化

一、计算机网络 1.1、考情分析 2.1 TCP/IP协议簇 2.1.1常见协议及功能 网际层是整个TCP/IP体系结构的关键部分,其功能是使主机可以把分组发往任何网络并使分组独立地传向目标。 POP3: 110 端口,邮件收取SMTP: 25 端口,邮件发送FTP: 20数据端口/21控制…

最优值函数

一、最优状态值函数 解决强化学习任务大致上意味着找到一种政策,能够在长期内实现很多奖励。对于有限MDPs,我们可以精确地定义一种最优政策,其定义如下。值函数定义了政策的一种部分排序。如果一个政策的预期回报大于或等于另一个政策π0在所…

C++ 动态规划 DP教程 (一)思考过程(*/ω\*)

动态规划是一种思维方法,大家首先要做的就是接受这种思维方法,认同他,然后再去运用它解决新问题。 动态规划是用递推的思路去解决问题。 首先确定问题做一件什么事情? 对这件事情分步完成,分成很多步。 如果我们把整件…

ubuntu下英伟达显卡驱动及cuda安装

一、查看显卡需要安装的cuda版本及需要的驱动版本 进入官网查看: CUDA 12.3 Release Notes 比如需要装cuda12.2GA需要驱动版本至少为535.54.03 二、下载显卡驱动 2.1 进入官网下载界面: Official Drivers | NVIDIA,点击Beta and older dr…

redis6.0源码分析:跳表skiplist

文章目录 前言什么是跳表跳表(redis实现)的空间复杂度相关定义 跳表(redis实现)相关操作创建跳表插入节点查找节点删除节点 前言 太长不看版 跳跃表是有序集合zset的底层实现之一, 除此之外它在 Redis 中没有其他应用。…

音视频技术开发周刊 | 317

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 MIT惊人再证大语言模型是世界模型!LLM能分清真理和谎言,还能被人类洗脑 MIT等学者的「世界模型」第二弹来了!这次,他们证明…

谁知道腾讯云轻量服务器“月流量”是什么意思?

腾讯云轻量服务器月流量什么意思?月流量是指轻量服务器限制每月流量的意思,不能肆无忌惮地使用公网,流量超额需要另外支付流量费,上海/广州/北京等地域的轻量服务器月流量不够用超额部分按照0.8元/GB的价格支付流量费。阿腾云aten…

【SpringMVC篇】讲解RESTful相关知识

🎊专栏【SpringMVC】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🎄REST简介🌺RESTful入门案例⭐案例一⭐…

【Java数据结构重点知识】第一节:认识数据结构与算法、集合框架

一:数据结构与算法 1.数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合 2.算法 算法就是定义良好的计算过程。他取一个或一组的值为输入,并产生一个或一组作为输出。简单来说就是一系列的…

前端开发必备技能!用简单CSS代码绘制三角形,提升用户体验

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、前…

AdaBins:使用自适应bins进行深度估计

论文:https://arxiv.org/abs/2011.14141 代码:https://github.com/open-mmlab/mmsegmentation/tree/main/projects/Adabins 0、摘要 本文主要解决了从单个RGB输入图像估计高质量密集深度图的问题。我们从一个baseline的encoder-decoder CNN结构出发&…

cocos tilemap的setTileGIDAt方法不实时更新

需要取消勾选 Enable Culling。同时代码添加:markForUpdateRenderData函数。 floor.setTileGIDAt(102427,newP.x,newP.y,0); //中心 floor.markForUpdateRenderData(); 具体问题参考官网说明: Cocos Creator 3.2 手册 - 项目设置

将数据文件,控制文件,日志文件分别放在不同的目录下,且数据库正常启动

一、定位数据文件、控制文件、日志文件的位置 注意:后序需要用到这些文件的位置,可以在查询完毕之后先截图保存 1.以管理员身份登录数据库 sqlplus / as sysdba2.查找数据文件位置 SELECT name FROM v$datafile;3.查找控制文件位置 SELECT name FROM …

Python算法练习 10.30

leetcode 841 钥匙和房间 有 n 个房间,房间按从 0 到 n - 1 编号。最初,除 0 号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而,你不能在没有获得钥匙的时候进入锁住的房间。 当你进入一个房间,你可能会在里面找…

使用ControlNet生成视频(Pose2Pose)

目录 ControlNet 介绍 ControlNet 14种模型分别是用来做什么的 ControlNet 运行环境搭建 用到的相关模型地址 ControlNet 介绍 ControlNet 是一种用于控制扩散模型的神经网络结构,可以通过添加额外的条件来实现对图像生成的控制。它通过将神经网络块的权重复制到…

LeetCode 2742.给墙壁刷油漆

思路 dp(u,count)为当前再考虑下标为1-u的墙面&#xff0c;并且还有count免费工次的最小代价 主要是递归边界的选择&#xff1a; u1<count return 0; if(u-1&&count<0)return 0x3f3f3f3f; if(u-1&&count0)retrun 0; 这三个可以合并成 if(u<count) …

C文件操作

目录 1. 什么是文件 2. 为什么要有文件 3. 文件名 4. 文件类型 5. 文件指针 6. 文件的打开和关闭 7. 文件的顺序读写 7.1. fgetc 7.2. fputc 7.3. fgets 7.4. fputs 7.5. fscanf 7.6. fprintf 7.8. sscanf 7.9. sprintf 7.9. fread 7.10. fwrite 8. 文件的随…