系统架构设计师③:数据块系统
数据库模式
数据库模式是指数据库的结构和组织方式,它描述了数据库中数据的逻辑结构和组织方式,是数据库设计的核心组成部分。以下是关于数据库模式的详细解析:
一、定义与组成
定义:数据库模式定义了数据库中数据的结构和关系,为用户提供了有效地访问和操作数据库的方式。
组成:数据库模式主要由三个部分组成,分别是实体、属性和关系。实体是现实世界中的一个对象,如人、物、事、概念等;
属性是用来描述实体的某一特性,如学生的姓名、学号、性别等;
关系则是描述实体之间的联系,如学生和班级之间的关系。
二、类型与层次
类型:数据库模式主要包括物理数据库模式、概念数据库模式和外部数据库模式三种。
物理数据库模式:指数据库在物理存储设备中的数据组织方式,主要关注数据如何在磁盘或其他物理存储设备上存储,包括数据分布的方式、存储的路径、访问数据的方法等。
概念数据库模式:指数据库的全局视图,展示了数据库中所有数据类型及其之间的关系,是从全局视角对数据库进行描述的。
外部数据库模式:指数据库用户的视图,是对数据库的局部视图的描述,一般是对概念模式的一个子集,包含了用户需要使用的数据元素和数据结构。
层次:数据库模式还包括外模式、概念模式和内模式三个层次。
外模式:用户能够看到和操作的数据库的逻辑结构,定义了用户能够使用的数据和操作方式。
概念模式:数据库的全局逻辑结构,定义了数据库中所有表的结构和关系。
内模式:数据库的物理存储结构,定义了数据在磁盘上的存储方式和组织方式。
三、作用与意义
数据结构与组织:数据库模式定义了数据库中数据的结构和组织方式,使得数据能够按照一定的规则进行存储和访问。
数据完整性:通过约束(如主键约束、外键约束、唯一约束等)和触发器等技术手段,确保数据的准确性和一致性,防止数据出现错误或不一致的情况。
数据共享与独立性:数据库中的数据可以被多个用户、多个应用程序共享访问,同时数据库系统通过三级模式和两级映像实现了数据的逻辑独立性和物理独立性,降低了应用程序对数据的依赖性。
数据库视图:它一个虚拟表(逻辑上的表),其内容由查询定义(仅保存SQL查询语句)同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据。
视图的优点:
①视图能简化用户操作
②视图使用户能以多种角度看待同一数据
③视图对重构数据库提供了一定程度的逻辑独立性
④视图可以对机密数据提供安全保护
物化视图:它不是传统意义上虚拟视图,是实体化视图,其本身会存储数据。同时当原始表中的数据更新时,物化视图也会更新。
分布式数据库
分布式数据库特点:
①高可用性:由于数据被分布在多个节点上,当某个节点发生故障时,系统可以自动切换到其他可用节点,保证系统的正常运行。
②可扩展性:分布式数据库系统可以轻松地扩展到数千个节点,从而可以处理大规模的数据和请求。
③容错性:系统具备容错机制,能够在部分节点故障时保持整体运行。
④可移植性:支持多种数据库管理系统和操作系统,便于在不同环境间迁移。
⑤一致性:支持多种复制和数据同步策略,确保不同节点之间的数据一致性。
⑥数据安全性:采用多层次的安全性措施,确保数据的保密性、完整性和可用性。
⑦低延迟:由于数据分布在多个节点上,系统可以在靠近用户的节点上快速响应请求,提供低延迟的服务。
分布式数据库的透明性
分布透明性:
分片透明性
分片透明:是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的。
复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。
分片方式:
①垂直分片
②混合分片
③水平分片
位置透明性
位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的
局部数据模型透明性
局部映像透明性(逻辑透明):是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。
两阶段提交协议 2PC
2PC事务提交的两个阶段
表决阶段,目的是形成一个共同的决定
执行阶段,目的是实现这个协调者的决定
两条全局提交规则
只要有一个参与者撤销事务,协调者就必须做出全局撤销决定(一致性)
只有所有参与者都同意提交事务,协调者才能做出全局提交决定(同步性)
数据库设计过程
数据库设计流程可如下图所示:
概念结构设计
集成的方法:
①多个局部E-R图一次集成。
②逐步集成,用累加的方式一次集成两个局部E-R。
集成产生的冲突及解决办法:
①属性冲突:包括属性域冲突和属性取值冲突。
②命名冲突:包括同名异义和异名同义。
③结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同
关系模型基本概念
数据模型三要素:数据结构、数据操作、数据的约束条件。
层次模型
网状模型
面向对象模型
关系模型
完整性约束
实体完整性约束:规定基本关系的主属性不能取空值。
参照完整性约束:关系与关系间的引用,其他关系的主键或空值。
用户自定义完整性约束:应用环境决定。
触发器
逻辑结构设计
规范化理论-范式
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。
第二范式(2NF):当且仅当实体E是第一范式(1NF),且每一个非主属性完全依赖主键(不存在部分依赖)时,则称实体E是第二范式。
第三范式(3NF):当且仅当实体E是第二范式且E中没有非主属性传递依赖于码时,则称实体E是第三范式。
并发控制——事务的ACID特性
事务的特点 :原子性,一致性,隔离性 ,持续性。
原子性(Atomicity):是指事务包含的所有操作要么全部成功,要么全部失败回滚。这些操作是一个整体,不能部分地完成。
一致性(Consistency):是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
隔离性(lsolation):是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的。
持久性(Durability,永久性):是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,无论发送何种故障,都不应对其有任何影响。