第16章 案例特训专题【数据库篇】

张开发
2026/4/4 0:12:15 15 分钟阅读
第16章 案例特训专题【数据库篇】
目录16.1 课程内容提要16.2 规范化-数据库设计过程16.3 规范化-范式16.4 反规范化16.5 数据库索引16.6 数据库视图16.7 数据库-分区分表分库16.8 分布式数据库系统16.9 NoSQL16.10 联邦数据库系统16.11 数据库性能优化16.12 大数据16.1课程内容提要数据库设计关注的问题性能、数据一致性、安全16.2规范化-数据库设计过程数据库设计主要分为6个阶段①用户需求分析分析用户活动、收集数据确定系统边界。②概念结构设计将应用对象抽象成不依赖于数据库管理系统DBMS的数据模型即概念模型。描述概念模型的较理想的工具是实体-关系(E-R图。③逻辑结构设计将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型即关系模式。④物理结构设计为逻辑数据模型选取一个最适合应用环境的物理结构包括存储结构和存取方法即在物理设备上的实现方案。数据库实施阶段根据前两个阶段的结果建立数据库编制与调试应用程序组织数据入库并进行试运行。†数据库运行和维护阶段在数据库系统正式投入运行后对其进行长期的评价、调整与修改。16.3规范化-范式思考范式级别提升带来了什么负面影响?16.4反规范化2021.11案例分析题反规范化设计可提高查询的性能但必然会带来数据的不一致性问题。在反规范化设计中解决数据不一致性问题的三种常见方法。(1)应用程序同步指的是通过应用程序在更新数据的同时同步更新对应的冗余数据这两个操作会放到同一个事务中从而保证两个操作的原子性。(2)触发器同步触发器是与表事件相关的特殊存储过程它由执行事件来触发由数据库管理系统在后台自动执行。常见的方法是在更新数据的表上增加相应事件的触发器在触发器内容同步更新冗余数据。(3)批处理同步这种方法一般应用在对数据一致性要求不高的场景下。当更新数据操作执行了一段时间后根据更新数据进行批量的同步操作使得冗余数据和更新数据保持一致。根据题干的要求该系统适合采用应用程序同步或触发器同步。反规范化的优点连接操作少检索快、统计快需要查的表减少检索容易。16.5数据库索引数据库索引提升查询效率降低添加、修改、删除效率。采用B树B树等。16.6数据库视图视图(View)并不在数据库中实际存在而是一种虚拟表。视图的优点1、视图能简化用户的操作2、视图机制可以使用户以不同的方式查询同一数据3、视图对数据库重构提供了一定程度的逻辑独立性4、视图可以对机密的数据提供安全保护物化视图将视图的内容物理存储起来其数据随原始表变化同步更新。16.7数据库-分区分表分库分区的常见方式分区的优点1、相对于单个文件系统或是硬盘分区可以存储更多的数据。2、数据管理比较方便比如要清理或废弃某年的数据就可以直接删除该日期的分区数据即可。3、精准定位分区查询数据不需要全表扫描查询大大提高数据检索效率。4、可跨多个分区磁盘查询来提高查询的吞吐量。5、在涉及聚合函数查询时可以很容易进行数据的合并。16.8分布式数据库系统全局外模式是全局应用程序的用户视图是全局概念模式的子集该层直接与用户(或应用程序)交互全局概念模式定义分布式数据库中数据的整体逻辑结构数据就如同根本没有分布一样可用于传统的集中式数据库中所采用的方法进行定义。分片模式将一个关系模式分解成几个数据片分布模式分布式数据库的本质特性就是数据分布在不同的物理位置。分布模式的主要职责是定义数据片段(即分片模式的处理结果)的存放节点。局部概念模式就是局部数据库的概念模式(基本表)局部内模式局部数据库的内模式(物理结构和存储方式的描述索引、文件组织方式)。分布透明性分片透明性分不分片用户感受不到位置透明性数据存放在哪里用户不用管局部数据模型透明性(逻辑透明)用户不用关系局部数据模型分布式数据库管理系统-组成1LDBMS2GDBMS3全局数据字典4通信管理(CM)分布式数据库管理系统-结构1全局控制集中的DDBMS2全局控制分散的DDBMS3全局控制部分分散的DDBMS分布式数据库优化技术CAP理论BASE理论16.9 NoSQLNoSQL(Not-only SQL)不仅仅只是SQL泛指非关系型的数据库。16.10联邦数据库系统联邦数据库系统(FDBS)是一个彼此协作却又相互独立的成员数据库(CDBS)的集合它将成员数据库系统按不同程度进行集成对该系统整体提供控制和协同操作的软件叫做联邦数据库管理系统(FDBMS)联邦数据库特征1分布性2异构性3自治性4透明性联邦数据库分类1紧耦合2松耦合16.11数据库性能优化16.12大数据大数据处理系统应该具有的重要特征1高度可扩展性2高性能3高度容错4支持异构环境5较短的分析延迟6易用且开放的接口7较低成本8向下兼容性Stomm之父Nathan Marz提出了他认为大数据系统应该具有的属性包括鲁棒性和容错性、低延迟读取和更新能力、横向扩容、通用性、延展性、即席查询能力、最少维护能力、可调试性。典型的大数据架构大数据架构设计理论与实践1. Lambda 架构分为批处理层存储原始数据 、 加速层处理实时数据 、服务层合并结果响应请求。2. Kappa 架构优化 Lambda 架构 删除批处理层 以消息队列替代数据通道 分为实时层和服务层 统一离线和实时处理代码。1. Lambda 架构Lambda架构是一种用于同时处理离线和实时数据的、可容错的、可扩展的分布式系统。Lambda架构分为以下3层(1)批处理层。该层核心功能是存储主数据集主数据集数据具有原始、不可变、真实的特征。批处理层周期性地将增量数据转储至主数据集并在主数据集上执行批处理生成批视图。架构实现方面可以使用Hadoop HDFS或HBase存储主数据集再利用Spark或MapReduce执行周期批处理之后使用MapReduce 创建批视图。(2)加速层。该层的核心功能是处理增量实时数据,生成实时视图快速执行即席查询。架构实现方面可以使用HadoopHDFS或HBas存储实时数据,利用Spark或Storm实现实时数据处理和实时视图。(3)服务层。该层的核心功能是响应用户请求,合并批视图和实时视图中的结果数据集得到最终数据集。具体来说就是接收用户请求,通过索引加速访问批视图,直接访问实时视图,然后合并两个视图的结果数据集生成最终数据集,响应用户请求。架构实现方面可以使用HBase或Cassandra作为服务层通过Hive 创建可查询的视图。Lambda架构优缺点:Lambda架构的优点容错性好查询灵活度高弹性伸缩易于扩展。Lambda架构的缺点编码量大持续处理成本高重新部署和迁移成本高。与Lambda架构相似的模式有事件溯源模式、命令查询职责分离模式。2. Kappa架构Kappa架构是在Lambda架构的基础上进行了优化,删除了Batch Layer的架构,将数据通道以消息队列进行替代。Kappa架构分为如下2层1实时层。该层核心功能是处理输入数据生成实时视图。具体来说是采用流式处理引擎逐条处理输入数据生成实时视图。架构实现方式是采用Apache Kafka回访数据然后采用Flink或 Spark Streaming 进行处理。2)服务层。该层核心功能是使用实时视图中的结果数据集响应用户请求。实践中使用数据湖中的存储作为服务层。因此Kappa架构本质上是通过改进Lambda架构中的加速层,使它既能够进行实时数据处理同时也有能力在业务逻辑更新的情况下重新处理以前处理过的历史数据.Kappa架构的优点是将离线和实时处理代码进行了统一方便维护。缺点是消息中间件有性能瓶颈、数据关联时处理开销大、抛弃了离线计算的可靠性。3. Lambda 架构与Kappa架构的对比对于两种架构设计的选择可以从以下4个方面考虑

更多文章