系统架构设计师-数据库系统(3)

目录

一、数据控制

        1、安全性

        2、完整性

        3、并发控制

        4、故障恢复

二、数据库设计概述

        1、数据库设计关注的问题

        2、数据库性能优化

        3、规范化与反规范化


一、数据控制

        1、安全性

        2、完整性

                (1)实体完整性约束:规定基本关系的主属性不能取空值。

                (2)参照完整性约束:关系与关系间的引用,其他关系的主键或空值。

                (3)用户自定义完整性约束:应用环境决定。

                【触发器】:可以完成一些复杂的完整性约束。例如:对表A的某行或某个字段进行监听,如果发生变化就可以同步做更新。

        3、并发控制

         【事务】

        (1)原子性 

                事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败。任何一项操作失败都会导致整个事务的失败,同时其它已经被执行的操作都将被撤销并回滚,只有所有的操作全部成功,整个事务才算是成功完成。

        (2)一致性

                事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行前和执行后,数据库都必须处在一致性状态。例如:从A账号向B账号转钱,不可能A账户扣了钱,B账户却没收到钱。                

        (3)隔离性

                在并发环境中,并发的事务是相互隔离的,一个事务的执行不能被其它事务干扰。不同事务并发操作相同数据时,每个事务都有各自完整的数据空间。 

        (4)持续性(持久性)

                事务一旦提交后,数据库中的数据必须被永久保存下来。即使服务器系统崩溃或服务器宕机等故障,只要数据库重新启动,就一定能够将其恢复到事务成功结束后的状态。

        【封锁协议

                S封锁:共享锁,读锁,可重复加锁。

                X封锁:排他锁,写锁,不可重复加锁,如已加别的锁需等待解锁后在进行加锁。

        (1)一级封锁协议:只有X锁,只能加一次。可以解决丢失更新问题

        (2)二级封锁协议:有S锁也有X锁,读完立即释放S锁。可以解决脏数据的读出

        (3)三级封锁协议:有S锁也有X锁,事务结束才释放S锁。可以解决不可重复读问题

        (4)两段锁协议:加解锁操作在整个事务的代码段中分开,前半段都是加锁,后半段都是解锁。

        4、故障恢复

                (1)冷备份

                        也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。

                (2)热备份

                        也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。

                【完全备份】:备份所有数据。

                【差量备份】:仅备份上一次全备份之后变化的和数据。

                【增量备份】:备份上一次备份之后变化的数据。

                【日志文件】:事务日志是针对数据库改变所作的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。

                例如下计划:

                        周日全备,周一周二根据周日数据进行增备,周三根据周日数据进行差备,周四根据周三数据进行增备,周五根据周日数据进行差备,周六根据周五数据进行增备。

                【故障及解决方法

二、数据库设计概述

        1、数据库设计关注的问题

                性能数据一致性、安全

        2、数据库性能优化

                理论上看:在数据库优化设计方面,同等条件下,自然连接的性能优于笛卡尔积。

        3、规范化与反规范化

                【规范化

                随着规范化范式级别的提升,查询效率降低了。

                【反规范化

                【反规范化优缺点

                        优点:连接操作少,检索快统计快,需要查的表减少,检索容易。

                        缺点

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

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

相关文章

Python开发利器之VS Code

Python官方提供了一个Python集成开发环境(IDE): IDLE (Integrated Development and Learning Environment)。 它提供了一个图形用户界面,可以让开发者编写、调试和执行Python程序。IDLE包含Python解释器、代码编辑器、调试器和文件…

RK3568平台开发系列讲解(工具命令篇)ADB的安装

🚀返回专栏总目录 文章目录 一、ADB介绍二、Windows 下安装 adb 工具沉淀、分享、成长,让自己和他人都能有所收获!😄 一、ADB介绍 adb 全称 Android Debug Bridge,直译过来就是 Android 调试桥,它是一个通用的命令行工具。adb 做为 Android 设备与 PC 端连接的一个桥梁…

揭秘:Wasserstein GAN与梯度惩罚(WGAN-GP)

一、说明 什么是梯度惩罚?为什么它比渐变裁剪更好?如何实施梯度惩罚?在提起GAN对抗网络中,就不能避免Wasserstein距离的概念,本篇为系列读物,目的是揭示围绕Wasserstein-GAN建模的一些重要概念进行探讨。 图…

浅谈DBT的一些不足之处

DBT的好处是显而易见的,它支持连接多达41种数据库。而且不需要你写DDL语句,只要写select语句,DBT会自动帮你推断schema结构,将数据写入到数据库中: 但是使用了一段时间之后,发现DBT也存在着如下这些不足之处…

/usr/bin/ld: cannot find -lmysqlcllient

文章目录 1. question: /usr/bin/ld: cannot find -lmysqlcllient2. solution 1. question: /usr/bin/ld: cannot find -lmysqlcllient 2. solution 在 使用编译命令 -lmysqlclient时,如果提示这个信息。 先确认一下 有没有安装mysql-devel 执行如下命令 yum inst…

【Linux】Ubuntu美化主题【教程】

【Linux】Ubuntu美化主题【教程】 文章目录 【Linux】Ubuntu美化主题【教程】1. 安装优化工具Tweak2.下载自己喜欢的主题3. 下载自己喜欢的iconReference 1. 安装优化工具Tweak 首先安装优化工具Tweak sudo apt-get install gnome-tweak-tool安装完毕后在菜单中打开Tweak 然后…

**20.迭代器模式(Iterator)

意图:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 上下文:集合对象内部结构常常变化各异。对于这些集合对象,能否在不暴露其内部结构的同时,让外部Client透明地访问其中包含的元素…

nbcio-boot移植到若依ruoyi-nbcio平台里一formdesigner部分(三)

因为这个版本的若依plus不支持本地文件上传&#xff0c;所以需要增加这些本地上传文件的后端代码 和前端代码修改。 1、后端部分 先配置跳过测试吧&#xff0c;平时编译也不需要这个 <!--添加配置跳过测试--><plugin><groupId>org.apache.maven.plugins<…

Python常用库(六):科学计算库-Numpy[上篇]:创建、访问、赋值

1.Numpy 1.1 介绍 NumPy是Python中非常流行且重要的科学计算库&#xff0c;提供了一个强大的多维数组对象(ndarray)和许多数学操作&#xff0c;包括矩阵运算、线性代数、微积分等等。 numpy是Python中一个非常有用的工具&#xff0c;特别是在需要进行数值计算、线性代数计算、…

淘宝分布式文件存储系统( 三 ) -TFS

淘宝分布式文件存储系统( 三 ) ->>TFS 目录 : 文件重新映射的接口介绍文件映射 mmap_file.cpp的实现进行测试 文件重新映射 (增加 或者 减少 文件映射区域的大小) mremap() 函数的原型如下 #include <sys/mman.h> void *mremap( void * old_address , size_…

阿里测开面试大全(一)附答案完整版

万字长文&#xff0c;建议收藏 1 什么是POM&#xff0c;为什么要使用它&#xff1f; POM是Page Object Model的简称&#xff0c;它是一种设计思想&#xff0c;而不是框架。大概的意思是&#xff0c;把一个一个页面&#xff0c;当做一个对象&#xff0c;页面的元素和元素之间操…

JS Ajax 封装

ajax 封装 一、 什么是Ajax&#xff1f;二、 Ajax的优缺点&#xff1f;2.1 优点2.2 缺点 三、 Ajax的使用3.1 状态码3.2 xhr的基本使用3.3 ajax原生封装&#xff1a;3.3.1 触发GET请求&#xff1a;3.3.2 调用POST请求&#xff1a; 四、Ajax的约束 一、 什么是Ajax&#xff1f; …

【新版】系统架构设计师 - 案例分析 - 数据库设计

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 数据库设计数据库基础数据库设计概述E-R模型概念结构设计逻辑结构设计规范化&#xff08;范式&#xff09;反规范化技术数据库事务并发控制索引视图物化视图存储过程触发器数据库性能优…

【Spring Cloud系列】Feign详解与实战

Feign详解与实战 文章目录 Feign详解与实战一、概述二、什么是Feign三、Feign特性四、Feign简单使用3.1 Feign使用步骤3.2 Feign具体使用1. 引入依赖2. 启动类上添加注解3.编写FeignClient接口 五、使用Feign发起http请求5.1 Maven导入Feign配置&#xff0c;并集成Jackson5.2 F…

基于matlab实现的光折射反射(不同界面)程序

完整程序: %平面电磁波在不同介质界面上入射、反射、折射仿真 %ReadMe!!!在下述说明的用户输入区内输入入射角和两介质折射率&#xff0c; %输出反射折射示意图与反射折射系数随入射角变化的曲线 %—————————————————————————————————————…

百度SEO优化TDK介绍(分析下降原因并总结百度优化SEO策略)

TDK是SEO优化中很重要的部分&#xff0c;包括标题&#xff08;Title&#xff09;、描述&#xff08;Description&#xff09;和关键词&#xff08;Keyword&#xff09;&#xff0c;为百度提供网页内容信息。其中标题是最重要的&#xff0c;应尽量突出关键词&#xff0c;同时描述…

9.20 QT作业

widget.h #include <QPainter> //画家 #include <QTimerEvent> #include <QTime> #include<QTimer> //定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widge…

性能测试之使用Jemeter对HTTP接口压测

我们不应该仅仅局限于某一种工具&#xff0c;性能测试能使用的工具非常多&#xff0c;选择适合的就是最好的。笔者已经使用Loadrunner进行多年的项目性能测试实战经验&#xff0c;也算略有小成&#xff0c;任何性能测试&#xff08;如压力测试、负载测试、疲劳强度测试等&#…

SAP DN已发货但是需求还挂在MD04上的异常处理(SE38执行程序:ATP_VBBE_CONSISTENCY OR SDRQCR21)

背景&#xff1a;DN 80074061已经发完货&#xff0c;但是在MD04上还挂着它的需求 处理方法&#xff1a; HANA S4 版本&#xff0c; SE38 执行程序 ATP_VBBE_CONSISTENCY HANA之前的版本执行程序 SDRQCR21 以 ATP_VBBE_CONSISTENCY 为例&#xff0c;先选择模拟模式 执行&…

【计算机网络】 拥塞控制

文章目录 背景TCP的四种拥塞控制算法慢开始与拥塞避免&#xff1a;快重传&#xff1a;快恢复&#xff1a; 流量控制和拥塞控制本质上的 区别 背景 网络中的链路容量和交换节点中的缓存和处理机都有着工作的极限&#xff0c;当网络的需求超过他们的工作极限时&#xff0c;就出现…