系统分析师-案例分析-数据库

系统分析师-案例分析-数据库

  • 更多软考资料 https://ruankao.blog.csdn.net/

文章目录

  • 系统分析师-案例分析-数据库
    • 数据库考察知识点
    • 规范化
      • 函数依赖
      • 范式
        • 1NF
        • 2NF
        • 3NF
    • 规范化问题
      • 不规范化
      • 反规范化设计
      • 反规范化设计同步问题
    • 并发控制
    • 性能优化
    • 完整性约束
    • 视图
    • 安全
    • 分布式数据库
      • 特点
      • 优点
      • 查询优化
    • NoSQL VS SQL
      • 类型
    • 内存数据库
    • 云数据库

数据库考察知识点

年份知识点形式分数
2018视图的基本概念与用法简答8
2018规范化设计简答8
2018事物、触发器、物化视图简答9
2019读写分离、主从复制,MySQL复制方式填空8
2019SQL和NoSQL特点比较填空8
2019混合数据库数据同步问题简答9
2020索引的副作用简答9
2020物理分区模式比较填空+简答4+6
2020读写分离、主从复制简答6
2021主题数据库的设计要求和基本特征简答10
2021云数据库的特点简答8
2022两阶段提交协议(2PC)来解决服务数据的一致性问题简答7
2022分布式数据库服务数据的一致性问题填空8
2022分布式数据库发布更新数据原子性问题简答10
2023SQL和NoSQL特点以及比较简答8
2023NoSQL特点以及比较填空8
2023混合数据库简答9

规范化

函数依赖

  • 给定一个X,能唯一确定一个Y,就成X确定Y,或说Y依赖X。记X->Y。
  • 部分函数依赖(只发生在联合主键) :A->C,AB -> C。
  • 传递函数依赖: A -> B , B -> C , A != B => A -> C。

范式

学生表(学号,课程名,学生姓名,学生地址(省市县),教师号,教师地址,成绩)
(学号 -> 学生姓名,学号 -> 学生地址(省市县),学号 -> 教师号,教师号 -> 教师地址,学号,课程名 -> 成绩)

1NF

每一个分量必须是一个不可分的数据项,即表中不允许小表。
学生表(学号,课程名,学生姓名,学生省,学生市,学生县,教师号,教师地址,成绩)

2NF

实体的非主属性完全完全依赖于主关键字,即消除部分函数依赖。
学生表(学号,课程名,学生姓名,学生省,学生市,学生县,教师号,教师地址)
成绩表(学号,课程名,成绩)

3NF

任何非主属性不依赖于其它非主属性。即在2NF上消除传递依赖。
学生表(学号,课程名,学生姓名,学生省,学生市,学生县,教师号)
教师表(教师号,教师地址)
成绩表(学号,课程名,成绩)
就是主键可以直接决定非主键。

规范化问题

不规范化

  1. 数据冗余,教师姓名列出现多次。
  2. 修改异常,如修改教师地址,需要保证同时修改完所有行。
  3. 插入异常,没有学生信息的时候教师信息无法插入。
  4. 删除异常,学生信息清空的时候会将教师信息清空。

反规范化设计

规范化设计之后,会降低查询效率。降低连接操作的需求。

  1. 增加冗余列,在多个表中存在相同的列。
  2. 增加派生列,在表中增加本表和它表计算生产的列。
  3. 重新组表,把需要查看的两个表的结果保存为新表。
  4. 水平分割表,按行分,常用于分部署数据库或者对历史数据不关心的表。
  5. 垂直分割表,按列分,常用于分部署数据库。

反规范化设计同步问题

  1. 应用程序同步
  2. 批量处理同步
  3. 触发器

并发控制

  • ACID:原子性、一致性、隔离性、持久性

  • 引发的问题。丢失更新(A覆盖了B的修改)、不可重复读(A第一次读到的数据后,B修改了数据,A再次读取数据得到的值不一样),脏数据(A读到的数据是回滚前的数据)

  • 读写(排它)锁

性能优化

  • 提升硬件:CPU 内存 IO 网络
  • 软件提升:进程优先级,CPU使用权,内存预分配
  • 数据库设计:反规范化设计、分库分表、读写分离、索引优化、SQL查询优化(减少多表和子查询)
  • 应用软件:数据库连接池

完整性约束

  • 实体完整性(主键唯一非空)、参照完整性(外键唯一或空)、用户定义完整性(用户自定义范围)

视图

视图(View)是从一个或多个表(或视图)导出的表。视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

视图的优点:

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

安全

  1. 用户标识和鉴别(密码、口令)
  2. 存取控制(用户权限)
  3. 密码存储用传递(加密)
  4. 视图保护(用户权限)
  5. 审计(记录操作)

分布式数据库

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

特点

  1. 分布性: 数据物理上分布在不同位置,但逻辑上属于同一个系统。
  2. 共享性:数据可以被网络上多个用户或系统共享。
  3. 可用性:系统设计能够面对硬件故障、网络问题等异常时继续提供服务。
  4. 自治性:系统中每个几点具有独立管理自己的数据和操作的能力。

优点

  1. 分布式数据库可以解决企业部门分散而数据需要相互联系的问题。
  2. 如果企业需要增加新的相对自主的部门来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。
  3. 分布式数据库可以满足均衡负载的需要。
  4. 当企业已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。
  5. 相等规模的分布式数据库系统在出现故障的概率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此,就整个系统来说,它的可靠性是比较高的。

查询优化

  • 降低通讯为核心
  1. 全局查询树的变换:例如,在做笛卡尔积之前,先进行投影和选择运算。
  2. 副本的选择与多副本的更新策略:多个副本存在于不同的节点,如何选择。
  3. 查询树的分解:对所有节点采取后续遍历法,直到所有叶节点均被成功地遍历为止。
  4. 半连接与直接连接等:不需要传递整个关系,只要传送连接时与对方匹配的元组即可。

NoSQL VS SQL

特征SQLNoSQL
并发支持支持并发、效率低并发性能高
存储与查询关系表方式存储、SQL查询海量数据存储、查询效率高
扩展方式向上扩展向外扩展
索引方式B树、哈希等键值索引
应用领域面向通用领域特定应用领域
数据一致性实时一致性弱一致性
数据类型结构化数据非机构化
事物高事务性弱事务性
水平扩展
数据容量有限数据海量数据

类型

类型代表典型应用场景数据模型优点缺点
Key-ValueRedis、MemCache缓存、日志等Key-Value/全键值对键操作性能高(基于键的增删查改都快),可扩展性强数据无结构
列式存储HBaseOLAP列簇式存储查找速度快、可扩展性强功能相对局限
文档型MongoDBweb应用key-value ,value为结构化数据使用JSON或者XML等格式来存储数据,格式灵活查询性能不高、缺乏统一语言
图数据库NeoJs社交网络、推荐系统等节点和关系组成的图利用图结构的各类算法需对图整计算,分布集群方案,实现困难

内存数据库

内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。
特点:工作版本常驻内存,活动事务只与实时内存数据库的内存拷贝打交道。
常见的内存数据库:Redis、SQLite、Mircrosoft SQLServer Compact 等。

云数据库

云数据库是指被优化并部署到云端虚拟计算环境中的数据库。可以实现按需付费、按需扩展、高可用性以及存储整合等优势。

云数据库的特点包括高并发、高性能、高可用、高可靠、存储整合、高效部署、按需扩展、按需付费、云端迁移等诸多特点。

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

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

相关文章

前端性能优化:从系统分析讲到实践策略

前言 在过去几年,我曾经写过几篇和性能优化相关的文章,例如有性能优化方法相关的,有性能监控相关的。但是都只关注于局部,没有从整体上去看待、分析性能优化。所以本文打算尝试从整体上去分析前端性能优化,从性能指标…

使用 RisingWave 和 Redash 处理和可视化实时数据

在创建流处理管道时,需要两个关键组件:一个用于处理和转换数据,一个用于数据可视化。RisingWave 和 Redash 就提供了一个优秀的解决方案。 RisingWave 是一个支持实时数据处理的分布式 SQL 流数据库。它提供增量更新的物化视图,使…

TRICONEX 3720 技术特点

TRICONEX 3720是一款安全管理系统通讯模块,通常用于工业自动化和安全系统中。它的主要作用是在控制系统中处理和管理数据通讯,确保信息在各个组件之间的有效传递。以下是关于TRICONEX 3720的详细介绍: 功能定位:TRICONEX 3720作为…

计算机操作系统总结(1)

1操作系统的概念(定义)功能和目标 (1)什么是操作系统? (2)操作系统的功能和目标—作为系统资源的管理者 (3)操作系统的功能和目标—向上层提供方便易用的服务 (4)操作系…

IP学习——ospf1

OSPF:开放式最短路径优先协议 无类别IGP协议:链路状态型。基于 LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署---区域划分、ip地址规划 支持等开销负载均衡 组播更新 ---224.0.0.5 224.0.0.6 …

区块链开发:区块链软件开发包装相关解析

区块链开发是指设计、构建和维护基于区块链技术的应用程序或系统的过程。区块链是一种分布式账本技术,它通过去中心化的方式记录和验证数据,确保数据的透明性、不可篡改性和安全性。区块链开发者使用各种编程语言和框架来创建这些应用程序。 在加密货币领…

【Linux】-Linux文件的上传和下载、压缩和解压[9]

目录 前言 一、上传和下载 1、使用finalshell对Linux系统进行上传下载 2、rz、sz命令 二、解压和压缩 1、压缩格式 2、tar命令压缩 3、tar命令压缩 4、zip命令压缩文件 5、unzip命令解压文件 前言 在Linux系统中,文件的上传和下载、压缩和解压是非常重要…

暴风雨的短视频:成都鼎茂宏升文化传媒公司

暴风雨的短视频:大自然的力与美 ​随着科技的进步和网络的普及,短视频已经成为我们生活中不可或缺的一部分。在这些短暂而精彩的瞬间里,我们得以窥见世界的每一个角落,感受生活的多样性和复杂性。成都鼎茂宏升文化传媒公司而当我…

go语言之基本数据类型

文章目录 基础数据类型分类整数类型有符号整数无符号整数默认整数类型 浮点类型复数类型布尔类型字符类型字符串replace字符串获取字符串长度字符串的拼接字符串获取指定位置字符更多string操作 数据类型之间的转换其它基本类型转字符串类型fmt包中的Sprintfstrconv包中函数 字…

java 解决异常 Class path contains multiple SLF4J bindings

前面 为了使用 j2cache pom中导入了 <dependency><groupId>net.oschina.j2cache</groupId><artifactId>j2cache-core</artifactId><version>2.8.4-release</version> </dependency><dependency><groupId>net.osc…

Java开发之JDBC

JDBC 介绍JDBC程序&#xff08;Statement&#xff09;相关细节URLResultSet 连接池程序&#xff08;PreparedStatement&#xff09; 本文主要记录一下学习JDBC的一些知识点 介绍JDBC 首先谈谈什么是JDBC。下面放几张图&#xff0c;大致就可以清楚JDBC了。程序&#xff08;Sta…

网络编程—— Http的Get请求

http: hyper text transport protocal:超文本传输协议。 http是一种基于客户端-服务器模式的协议(Client-Server)。它规定只能由客户端先发起请求给服务器&#xff0c; 服务器做出响应。 http数据传输以数据报文的形式进行&#xff0c; 客户端向服务器发起的请求叫做请求报文。…

【Linux玩物志】Linux环境开发基本工具使用(终章) ——git与gdb调试器

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a;这是最后一篇Linux工具篇&#xff0c;今天这篇文章我们要来简单讲一件git与调试器gdb。 目录 使用 git 命令行 安装 git 在 Github 创建项目 注册账号 创建项目 ​编辑 下载项目到本地 在 Gite…

融合基因组序列识别scATAC-seq的细胞类型

利用scATAC-seq技术进行单细胞分析&#xff0c;可以在单细胞分辨率下深入了解基因调控和表观遗传异质性&#xff0c;但由于数据的高维性和极端稀疏性&#xff0c;scATAC-seq的细胞注释仍然具有挑战性。现有的细胞注释方法大多集中在细胞峰矩阵上&#xff0c;没有充分利用潜在的…

商品指数创年内新高,粘性通胀成为美联储噩梦

文章概述 虽然美国4月CPI增幅放缓让美联储今年降息的可能性大增&#xff0c;但与此同时&#xff0c;大宗商品价格却达到了一年来的最高水平&#xff0c;粘性通胀可能成为美联储的噩梦。数据显示&#xff0c;跟踪24种能源、金属和农业合约彭博大宗商品现货指数今年以来已经上涨…

使用Flask ORM进行数据库操作的技术指南

文章目录 安装Flask SQLAlchemy配置数据库连接创建模型类数据库操作插入数据查询数据更新数据删除数据 总结 Flask是一个轻量级的Python Web框架&#xff0c;其灵活性和易用性使其成为开发人员喜爱的选择。而ORM&#xff08;对象关系映射&#xff09;则是一种将数据库中的表与面…

LeetCode题练习与总结:二叉树的最大深度--104

一、题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root […

ESP32开发环境搭建Windows VSCode集成Espressif IDF插件开发环境搭建 IDF_V5.2.1

一、安装Visual Studio Code 下载地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 打开上方链接&#xff0c;选择页面中的Windows版本&#xff0c;单击下载 将下载好的VSCodeUserSetup-x64-1.89.1.exe。单击右键&#xff0c;选择以管理员身份运行&#xf…

jenkins自动化部署详解

一、准备相关软件 整个自动化部署的过程就是从git仓库拉取最新代码&#xff0c;然后使用maven进行构建代码&#xff0c;构建包构建好了之后&#xff0c;通过ssh发送到发布服务的linux服务器的目录&#xff0c;最后在此服务器上执行相关的linux命令进行发布。 此篇文章jenkins…

【iOS安全】BurpSuite iOS https抓包 | DNS Spoofing

BurpSuite 完整版安装 参考&#xff1a;Admin Team 小数智 的博客 下载 Burp Suite 2021.6 官网下载地址 https://portswigger.net/burp/releases &#xff08;下载并安装好&#xff09; jdk 使用的是11.0.10 https://www.oracle.com/java/technologies/javase-jdk11-downl…