数据库系统设计漫谈童家旺课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库系统设计漫谈童家旺课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 设计 漫谈 童家旺 课件
- 资源描述:
-
1、数据库系统设计漫谈讲师:童家旺,阿里集团数据库架构师主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常见数据库系统回顾数据库基本问题调查大家都使用过哪些数据库?哪些内容是数据库系统的关键点?常见的数据存储传统的数据库系统OracleDB2、SQL ServerMySQL、PosgreSQL分布式数据库Google Spanner&BigTable&MegaStoreOceanBase、Hbase缓存服务器 KeyValue StoreTairMemcacheDRedis数据库的主要特性ACID 原子性(Atomicity
2、)完整性(Consistency)隔离性(Isolation)持久性(Durability)Relation SQLStructured Query Language(即SQL)A Relational Model of Data for Large Shared Data Banks(By Edgar Codd)RDBMS之前的数据库的问题不支持数据独立性数据库与应用系统之间的强耦合应用系统的复杂度应用系统本身的规模较小(性价比?)关系数据库的主要业务场景Billing(记账类业务,电信、银行)Booking(订票类业务,航空)Inventory(库存管理,零售)这些业务的共同特征是什么啊?
3、关系数据库的关系来自哪里?这是关系的一个来源另一个来源是NormalizationACID的基础概念Transaction的概念借自Contract Law一手交钱、一手交货(Atomicity)不会出现库存为负,也不会出现资金为负的情况(Consistency)可同时与多人进行交易(Isolation)离柜概不负责(Durability)Atomicity要么全部成功,要么全不成功Consistency写入数据库的数据必须满足所有定义的约束规则(主键、唯一键、外键等约束)Isolation确保并发执行的事务就如同串行执行的事务一样,保证系统状态(state)的一致性。Durability一旦
4、提交,哪怕出现掉电、Crash也不会丢数据几个基础概念Write-Ahead LogRedo LogicalPhysicalPhysiologicalUndo事务槽事务标识SCN 系统变更统一时间戳(逻辑时钟)如何实现原子性一个简单购物场景A卖一件衣服给BA的衣服库存-1A的资金+NB的衣服库存+1B的资金-N如何实现原子性(2)事务槽为变更入口,单一入口(原子)每个变更的记录都包含事务槽信息数据库中如何保证C通过Read Dirty与锁来解决PK/UK通过Ref检查来解决FK的问题(需要Index)通过PreCommit trigger来做Null以及Check数据库中如何保证I锁控制不同粒
5、度的锁(表级、块级、记录级)不同维度的锁(数据相关锁,内存相关锁)MVCCSnapshot IsolationBlock Image+SCN+Undo Image 判断差别在于读取哪个时间点的Snapshot数据库中如何保证DLog before DataLGWR before DBWnFlush Log on CommitDurability On CommitCheckpoint Before Redo Log File ReuseACID的代价不同的Isolation对应不同的代价SerialiazabilityRead Committed(Through Snapshot)Read D
6、irty?(没有并发控制)不同的Durability级别Flush on CommitFlush on Timeout(Time Range)Flush on Batch(commits count?)主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常见数据库系统回顾Normalization先做个小游戏用笔记录下学员名单、讲师名称、讲师简介、课程名称、课程简介调整下讲师(童家旺金光丁)以及对应的讲师简介再次调整下课程(数据库概论分布式数据库原理)简介Normalization解决的问题更新一个源头不会出现异常每份数据只
7、有一个源头如何保证多份数据的一致性?一份数据有多少个源头?同一份数据被重复了多少次?对应的存储空间?为了存储耗费的其它资源?Normalization带来的问题表之间的依赖(关系依赖,耦合)表关联的成本(关联开销,可能的IO开销)系统扩展的复杂度(解耦合)如何权衡Normalization尽量不要对静态数据做Normalization除非你希望节约存储空间考虑范式化 Vs 反范式化的投入产出为什么很多IT新人喜欢Normalization那是因为他们的老师告诉他们需要Ali的实际情况适度的使用关键在于判断业务之间的耦合性主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析
8、(Normalization)数据库的扩展性浅析常见数据库系统回顾一个小实验如何将2个人从这里送到杨浦?如何将5个人从这里送到杨浦?如何将50个人从这里送到杨浦?如何将500个人从这里送到杨浦?如何将5000个人从这里送到杨浦?如何将50000个人从这里送到杨浦?解决扩展性的根本途径数据库的扩展性问题做数据库架构、系统架构与上图差别在于:如何满足如下的要求检索问题Relation并发问题IsolationConsistency(UK)一致性问题Isolation速度问题Performance,Durability+Isolation数据库检索问题如何从班级的联系方式中找到XX的电话号码?如何从
展开阅读全文