【系统分析师之路】第十五章 数据库系统下篇思维导图
第十五章 数据库系统下篇思维导图
数据库系统章节索引二
数据库系统第一部分是数据库系统的基础理论知识,而本部分往往是数据库的应用方面的知识。一般出现在案例分析当中,数据库进阶部分的知识点主要有以下的几个点:数据库视图与物化视图,数据库索引知识,内存数据库,数据库的复制,数据库集群,数据库安全,数据库缓存技术,数据库分区技术以及其他补充零星知识点。

十二. 视图与物化视图
数据库视图的概念,物化视图的概念,两者之间的区别,视图的优点,这几块内容所组成。
首先视图不是普通的关系表结构,它是一个虚表,它只存储视图的定义,根据定义再去查找相关的关联表,所以数据库的视图也可以说是从一个或者多个关系表中导出的表。
而物化视图和视图就完全不是同样的一个概念了。物化视图其实可以简单理解成定期更新的物理表结构,它将需要查找的关系表信息提前进行了汇总计算,并定期更新,这样我们在查找关系表的时候,如果使用物化视图的话,效率将大大的提升。
物化视图也是远程数据的一个本地副本,而且是只读的。
视图的优点是什么?视图最大的优点就是可以和信息安全联系起来,因为它可以帮助隐藏关系表的细节,只需要公开我们认为有必要公开的情报。因为视图的特点,可以提供一定程度的逻辑独立性,感觉就是在分层架构的基础上又加了一层逻辑层次,除了安全,也简化了用户的操作,因为作为用户来说,已经不再需要知道关系表的内容,复杂的部分被视图隐藏了起来;使用视图还可以用不同的方式访问数据库某关系表的某些数据,这个也算是视图的优点吧。总结起来视图的优点有以上四个。
物化视图和普通视图的区别?两者最大的区别就是物化视图需要存储具体的数据,而视图只是一个虚表,只有定义没有数据,他们都可以反映某个查询的结果,使用物化视图还可以消除数据冗余的问题。

十三. 数据库索引
数据库索引也是在案例分析中经常会出现考察的知识点。它的概念,索引的分类,索引的实现原理,使用索引的代价这四个知识点构成。
什么是数据库索引?数据库索引和书籍的索引一样,使用它可以快速查找到我们需要的关系表数据,而无需查找整个表。可以提高查询数据的性能。(先看目录,再找到我们需要的章节中的具体信息)。
索引的分类?可以分为两大类,一类是聚集索引,另一类是非聚集索引,而聚集索引更加有利于对数据的更新操作。
索引的原理是怎样的?它是将数据库关系表中的数据,也就是整齐排列数据转换成二叉树的数据结构,形成平衡二叉树,以方便我们更好的查找。经过调整之后数据结构变成了B树的结构。
索引的缺陷有哪些?索引在提高性能的同时,也有其自身达不到的瓶颈。比如索引的创建维护需要额外的开销,如果对数据库关系表有频繁更新的情况下,开销更大,所以这个时候就不建议你使用索引了;使用索引改变了对数据的存储结构,不得不增加物理存储空间;最后使用索引有时候并不能提高查找的速度,极端情况下还不如全表扫描。
所以在现实情况下对数据库查找性能的改善时,相比使用索引来说,更加倾向于数据库分区的技术。当然数据仓库例外。
在这里顺便提一下,使用物化视图也可以提高查询的效率,但是物化视图的实现技术和索引的实现技术是完全两样的。

十四. 内存数据库
说到内存数据库,它的很多内容都是和NoSQL和数据库缓存技术是有重叠的,现在看起来内存数据库就是为了提高数据库数据读写速度,将常见的数据放在了内存从而取代了磁盘读写。因为内存数据库的特点,需要在内存和磁盘等外存之间建立良好的同步关系。MYSQL中的Memory存储引擎,Redis等都是内存数据库。内存数据库最大的特点就是读写性能比之前高了10倍,提高了Web应用程序响应的速度,减少了磁盘的访问。

十五. 数据库复制
数据库复制技术相当于应用服务器的集群技术,它有四种数据库复制的类型,分别是同步复制,异步复制,主从复制和分布式复制。同步复制要求在任何的时间点上都需要保持一致,所以它只能用在实时性较高的数据库复制中;异步复制则刚好和同步复制相反,复制节点数据时不同步;主从复制在数据库复制当中用得最为广泛,一个主点多个复制点;而分布式数据库复制是多个主数据库一个复制点。
数据库复制的原理是什么?数据库复制用到了bin-log文件。通过复制bin-log文件当中的日志来实现数据库的复制。我们的目标就是把主数据库的bin-log文件的sql语句复制过来。让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。
数据库复制的作用有哪些?
首先提高了数据IO的性能,实现了数据库的备份(安全性和可用性),架构方面看来实现数据库复制的系统将来也是更加容易扩展。
主从数据库复制的策略是什么?
主服务器提供写操作,从服务器提供读操作,从而减少并发操作带来的数据访问的延迟。
主从数据库复制的步骤是什么?
(1)主服务器将所做修改通过自己的IO线程,保存在本地二进制日志中;
(2)从服务器上的IO线程读取主服务器上面的二进制日志,然后写入从服务器本地的中继日志;
(3)从服务器上同时开启一个SQL thread,定时检查中继日志,如果发现有更新则立即把更新的内容在本机的数据库上面执行一遍。
MYSQL中的数据复制?
有三种方法,一种是基于SQL语句的复制,一种是基于行的复制,最后一种是基于混合模式的复制。
关系数据库与非关系数据库如何通过复制数据库来实现同步?
1)通过触发器来实现数据同步
2)通过插件来完成数据同步
3)通过定时任务机制来完成同步。

十六. 数据库集群
有了数据库复制技术之后,就可以实现数据库的集群。我们在这里要求清楚的知道集群的背景和概念,集群的分类,数据库集群之间如何实现同步数据,以及数据库集群和分布式数据库之间的区别。
数据库集群的概念是什么?
多台服务器构成虚拟单一的逻辑映像。分布式数据库中每一个节点都可以作成数据库集群,从而提高数据库的性能,可靠性和可用性。
数据库集群与分布式数据库的区分?
1)数据存储
分布式数据库的特点是逻辑统一物理分布,也就是物理节点存的都是不一样的数据(使用分区技术)而数据库集群(使用复制技术)是每个节点存放同一份内容;
2)同构与异构:
集群基于复制,因此需要相同OS和DBMS
分布式基于分区,因此可以允许存在不同的DBMS和OS;
3)配置部署:
数据库集群需要所有数据库服务器都在一个网段内,以便更好的同步数据;分布式只要逻辑上统一就可以,可跨网段也可以使用路由;
4)数据处理
分布式数据库需要协同处理,而集群则不需要协同(因为需要的是同步)。
5)可用容错
数据库集群具备容错,而分布式数据库则没有这个特征。
数据库集群的分类?
有共享磁盘型和非共享磁盘型两类集群。既然共享磁盘了数据也就不需要在数据库服务器之间共享了;而非共享磁盘型集群必须要进行同步处理才可以。
有哪四种数据库同步的机制?
1)串型异步复制
异步复制有时间差
2)串型同步复制
主备同时处理,需要昂贵的硬件环境支持。
3)基于共享存储
双机容错
4)基于实时数据同步
采用了负载均衡技术,具有高可用性。

十七. 数据库安全技术
系统容灾可以分为应用容灾和数据容灾两类;应用容灾可以使用系统迁移和系统恢复技术,数据容灾可以使用数据备份,数据复制和数据管理。
数据库安全分类可以分为内部安全和外部安全两大类,内部安全主要由故障引起,外部安全可以有SQL注入攻击和黑客攻击密码控制等方式。

十八. 数据库缓存技术
说到数据库的缓存,就不得不提高MemCached和Redis这两个东东。
MemCached的概念和特点?
MemCache就是分布式缓存数据库,它需要事先规划好内存当中的各类数据。它是开源的,也是高并发高性能的缓存数据库,有效地减少了数据库访问的频率。
Redis的概念和特点是什么?
它是磁盘内存同步的数据库,基于内存也可以持久化键值数据库。
它的特点有支持持久化,支持主从,指出事务和丰富的数据结构。
Redis和MemCache的比对?
1)类型
MemCache是纯内存数据库,而Redis是磁盘内存同步的数据库;
2)数据类型
MemCache在定义数值的时候需要固定数据类型,Redis不需要固定的数据类型;
3)虚拟内存
Redis支持而MemCache不支持。
4)过期策略
两者都是支持的
5)数据存储安全性
MemCached不支持安全性,Redis可将数据同步到dump.db中;
6)灾难恢复
Memcache不支持而Redis则可以将磁盘中的数据恢复到内存当中;
7)分布式
MemCache支持,Redis还支持主从同步。
8)订阅与发布
Redis支持而MemCache不支持。

十九. 数据库分区技术
什么事数据库分区技术?
将一个关系表或者索引分解成更小的可管理的部分。这个概念非常雷同于Wbs分解。在这里每一个分区都是相对独立的对象,逻辑上的一个表在物理上被分解为多个表来存储。
分区技术带来了什么好处?
改善了数据查询性能,减少了管理的负担,提高数据可用性,压缩了数据量减少了单台数据库服务器存储空间,减少大容量OLTP在系统上的竞争。
分区的方法有哪些?
分区可以按时间来分区,也可以存储内容来分区,按照存储来分区又可以分为了水平分区和垂直分区两个,垂直分区是指对将关系表一部分属性放去A,另一部分放去B数据库服务器,而水平分区根据技术的特点又可以分为了范围分区,列表分区和哈希分区。
哈希分区适合于数据均匀分布的场合,它对数据管理能力比较弱,其他分区方式在数据管理上都很强,当然使用Hash方式来分区数据存储比较的均匀,这也是它的一个优点。
范围分区适合于数据值连续的场合,可以按照关系表中某个字段的值的范围来分;
列表分区适用于数据比较离散的场合,按照某个字段具体的值来进行的分区。
除了以上这三种分区技术之外还有一种叫做组合分区,如果某表按照某列分区之后,仍然较大,或者是一些其它的需求,还可以通过分区内再建子分区的方式将分区再分区,即组合分区的方式。
最后数据库分区技术往往和分布式数据库绑定在一起。

二十. 数据库补充技术

本文深入探讨了数据库系统中的关键模块,包括视图与物化视图的概念及其优势,数据库索引的分类与实现原理,内存数据库的性能提升,以及数据库安全技术与缓存策略。涵盖了数据库复制的不同类型、集群技术的区别和安全措施,是数据库应用和管理的实用指南。
10万+

被折叠的 条评论
为什么被折叠?



