本次更新继续分享企业数据治理的相关学习心得,内容承接之前一期更新,知识点源自《DAMA数据管理知识体系指南》的第5部分,核心关于企业数据开发中详细的数据设计。
“
详细的数据设计
”
详细的数据设计包括:
详细的物理数据库设计,包括视图、函数、触发器和存储过程
其他可支持的数据架构,如XML模式和对象类
信息产品,如在屏幕展示和报表中使用的数据
数据访问方案,包括数据访问对象、整合服务及报表和分析服务
“
设计物理数据库
”
物理数据库详细设计包括数据库实施的详细说明书。物理数据库的设计可能需要特定的数据库管理系统所特有的功能和能力(例如SQL与NOSQL)
关系数据库最主要的交付物是DDL(数据定义语言)说明书,XML数据来说最主要的交付物是命名空间(对命名空间的介绍可参考本订阅号中历史更新内容,下附链接)
聊一聊数字档案管理中的元数据
DBA负有详细数据库设计的主要职责,包括:
确保能达到数据完整性要求
确保以最合适的物理结构来存放和组织数据,例如关系型数据、文件、OLAP数据集等
确定数据库硬件要求:磁盘空间、cpu以及网络等
为数据结构创建详细的设计说明书
确保满足性能要求
对于数据备份、恢复、归档和清除过程的设计,确保能满足可用性要求
设计数据安全的实施方案,包括身份验证、加密需求、应用角色以及数据访问和权限
适当情况下使用分区
要求SQL代码评审,确保服务编码标准,并高效运行
在架构基础上进行数据库设计主要考量:
数据是否需要更新,更新频率如何
数据的自然组织
数据如何展现和使用
在实施技术基础上进行数据库设计应考量:
数据需要保存多长时间
是否需要与其他数据整合或者跨系统和应用边界进行传递
数据的安全性、完整性、可恢复性、可访问性和可重用性
物理数据库设计最佳实践的建议:
使用关系型数据库支持事务处理的应用,使用符合范式的设计以提升数据的完整性、可重用性、良好的更新性能和数据可扩展性
使用视图、函数和存储过程来创建非范式的、应用特定的、对向友好的视图数据、不要将数据库模型与应用程序紧耦合
下图为DataVault模型架构,小编个人理解这种数据模型具备良好的弹性与实体间松散耦合性,无论对应用系统或是数据仓库开发都有借鉴意义,后期小编也将分享DataVault相关内容,请小伙持续关注!!
对于整个数据库和数据库实体对象都使用标准的命名规则以及有意义和描述性的名字,简化维护
在数据库级别对数据的安全性和完整性进行强制要求
尽可能在数据库服务器端对数据进行处理,以最大化性能,简化维护,提高安全性、可扩展性、减少网络流量,降低开发成本
仅对应用程序组或角色授权数据库对象,而不是对单个用户授权
决不允许对数据库进行任何直接的、即席的更新,所有的更新都应在控制方式下,通过预先定义的流程进行
数据库设计者必须为数据库表选择和定义合适的索引
只有当去范式化明显能提高数据库查询性能,数据的拆分和组合能降低查询结果集的大小,数据的组合可以减少表查询联接和数据计算的执行和存储时才采用去范式:
合并层次(向上汇总):子表中的每一行重复父表的列,从而将父\子关系组合到一张基表
分解层次(向下细化):按照不同类型将父表分解为多个子表
垂直分割:根据不同的列创建子集
水平分割:使用某列的取值作为区分标志将表分割成子集
组合和预联接表:创建一个已包括两表联接查询结果的基表
从存储中提取数据:在查询时减少计算成本使用预计算列,并将计算结果存入基表
创建报表副本:为提高报表性能可以创建一张包含报表所需所有元素的基表,这些元素已经计算过并联接在一起,并可周期性的更新
创建镜像:为经常使用且常常处于竞争的数据集创建副本,类似均衡负载
一个物理数据库设计文档应包括:
数据库设计中业务功能的介绍性描述
图形化的设计模式,如ER图用于设计关系型数据库,UML实现面向对象的数据库设计
数据库语言相关语句
以文档记录的技术元数据
用例或样本数据
数据架构和技术以及选择原因
选择数据库管理系统的限制条件
数据库设计流程
数据库的安全需求及其实施
数据库的服务水平协议
数据库的用户和应用需求
“
信息产品设计
”
数据库设计是数据开发的焦点,数据专家同时也应该参与到相关的数据交付物设计中
数据分析师可以在屏幕展示和报表等方面帮助信息产品设计过程中的软件设计者和开发者进行设计,以满足业务数据需求。此外数据分析师应确保业务数据术语的一致性
DBA(数据管理员)通常协助应用开发,让业务用户和管理者能在更加好用的表单中使用更加稳定可用的数据,数据库管理员应该熟悉:
报表服务
分析服务
统计仪表盘
记分卡
门户网站
XML交付
业务流程自动化
应用集成
DBA在信息产品设计中:
帮助进行数据整合与交付
帮助软件开发者创建和维护数据库访问语句
与软件设计与开发者在设计数据访问层时合作,使数据访问标准化,并将数据库变更与应用程序相隔离
“
数据访问服务设计
”
数据访问服务的最终目标是在企业范围内以方便低廉的数据重用方式使用数据,尽可能避免成本高昂的数据复制模式,尽可能地防止冗余和不一致的数据
通常访问和复用远程数据最常见的方法是:
“链接服务器”
SOA WEB SERVERS
消息代理
数据访问类
ETL
复制
位置合并
“
数据整合服务设计
”
数据库事务是可恢复工作的原子单元,一个事务是原子性的,这就意味着命令要么全部执行,要么全部什么也没有执行(但并非所有的数据库天生都具备原子性,例如MongoDB)
数据库设计的一个重要方面是确定适当的更新机制。当多个用户可以并发更新数据表时需要控制机制,确保两个用户无法再同一时间更新同一记录,这通常靠“锁”来保证,DBA需要为每个数据库对象、文件或数据库确定合适的锁类型
数据分析和数据整合专家为ETL程序和其他技术定义源和目标之间的映射,以及数据转换设计来执行数据的移动、清理和整合
▼
领取专属 10元无门槛券
私享最新 技术干货