数据库规划
分析用户需求(现有系统问题,管理报表等文件副本)
标识对象,对象存储的列(标识符列,数据列,外键关联列),对象间的关系
使用建模工具建模 E-R图
确定表的特征:
1. 列的数据类型和长度:可变时选择变长类型,如varchar;数值类型考虑数值大小和所需精度;存储量超过8000,使用Text Imagevarchar,否则使用char和binary;货币数据使用money类型
2. 那些列允许空值
3. 确定级联约束,外键,主键,unique(非主键列无重复值),check(列中数据的取值,如500-1000,一个列可应用多个check)和default
4. 是否需要加密存储
5. 建立视图和索引
可以先创建一个基表,输入测试数据使用一段时间,这些数据要求:数据尽可能全面;数据建完后进行备份。这种方法在确定3,5时,判断哪些事务最常用,哪些数据经常输入
创建一个基本数据库
创建不同级别的用户
重构方向
确定应用类型
OLTP: 考虑原子性和并发性,从以下方面优化
联机备份
缩短事务
小心使用索引
很好的数据放置
OLAP:大量数据的查询,从以下方面优化
大量索引
构建数据仓库及多维数据库
重构步骤
对表进行规范化
不经常查询的使用3级规范化,常查询的使用2级规范化
检查数据完整性
标识列的有效性,列中数据的完整性(check unique foreignkey primary key)
查看系统日志(5章的mysql日志部分),对经常查询的表构建视图、索引、临时表
与程序员交互,看是否需要构建存储过程和事务
构建数据库备份系统(完全,增量,定时)
规范化
当发现给数据列中起的名字中有序号——》外键关联到另一个表
层级关系的表示
使用冗余:父字段和根字段
把层次最多限制在两层,如超过两层增加数据表或数据列