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

目录

一、数据控制

        1、安全性

        2、完整性

        3、并发控制

        4、故障恢复

二、数据库设计概述

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

        2、数据库性能优化

        3、规范化与反规范化

三、索引与视图

        1、数据库索引

        2、B+树示例

        3、关系的类型

四、分布式数据库

        1、分区和分表的共性和差异

        2、分区的常见方式

        3、分库

五、NoSQL

        1、与SQL数据库对比

        2、常见NoSQL数据库


一、数据控制

        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、规范化与反规范化

                【规范化

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

                【反规范化

                【反规范化优缺点

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

                        缺点

三、索引与视图

        1、数据库索引

                提升查询效率;降低添加、修改、删除效率;采用B树,B+树等。

        2、B+树示例

        3、关系的类型

        (1)基本关系:通常又称为基本表基表,实际存在的表,实际存储数据的逻辑表示。

        (2)查询表:查询结果对应的表。

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

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

               【视图的优点

                (1)视图能简化用户的操作

                (2)视图机制可以使用户以不同的方式查询同一数据。

                (3)视图对数据库重构提供了一定程度的逻辑独立性

                (4)视图可以对机密的数据提供安全保护

                【物化视图

                视图的内容物理存储起来,其数据随原始表变化,同步更新。它不是传统意义上虚拟视图,是实体化视图,其本身会存储数据。同时当原始表中的数据更新时,物化视图也会更新。

四、分布式数据库

        1、分区和分表的共性和差异

        2、分区的常见方式

                (1)范围分区(2)哈希分区(3)列表分区

                【分区的优点】:

                (1)相对于单个文件系统或硬盘,分区可以存储更多的数据。

                (2)数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可。

                (3)精准定位分区查询数据,不需要全表扫描查询,大大提高数据检索效率。

                (4)可跨多个分区磁盘查询,来提高查询的吞吐量。

                (5)在涉及聚合函数查询时,可以很容易进行数据合并。

        3、分库

五、NoSQL

        NoSQL(Not-only SQL):不仅仅只是SQL,泛指非关系型的数据库。

        1、与SQL数据库对比

        2、常见NoSQL数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张瑞东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值