数据库设计

第一节: 设计关系表

一、表是数据库存储的主要单位。
表的类型:
1)数据表
2)连接表
3)子表
4)校验表
1、数据表
包含个人、地方、时间等需要的数据记录,通过主码列和多个列组合成唯一标识该类表的实例,其他列由切只由主码列确定,数据表不能包含由计算或其他数据列组合产生的数据。
数据表中没有重复的列。
2、连接表
也叫交集表或者链接表,用来解决两个表之间多对多的关系,使用连接表可以将两个表之间的关联转换为两个一对多关系。设计初期表间多对多关系非常普遍,该问题在设计表前必须解决,因此大多数据库都提供了这样的连接表。
3、子表
常规用途的表中有一些并不会在该表所有实例的子类或子集中使用的列。
4、校验表
或叫查找表中包含其他表的列数据的取值范围的列表,通过提供列的取值范围,确保用户输入的数据都在合理范围内,所以它可以用来支持数据的完整性或业务规则。校验表有时也叫做编码表。
二、定义表
根据ERD中的信息,可以通过手工方式定义CREATE TABLE语句,也可以使用自动化设计工具生成语句在ORACLE的DESIGNER工具中,可以自动生成一个类似ERD的服务器模型图。模型图中可以显示表、列以及关联关系。
三、命名规则的回顾
1)使用两到三个字符作为对象名称的前缀,可以避免不同部门表名的重复出现。
2)表名在企业范围内应该是唯一的
3)表名应该尽可能是描述性的,并且是简洁的
4)不要使用table、file或其他特殊词语来定义对象名称
5)制定表名最大长度标准,它应该比RDMBMS中定义术语的名称的长度小。表名最大长度30
6)不要使用有限的名称来命名表,例如带有具体列名的表名
7)表名应该是复数形式
四、创建表的列
实体是逻辑形成的,而表是物理形式或真正存储数据的,所以生成表的列,这个过程叫做转化或转换,将逻辑模型转换成物理模型,
创建完成的表的列后,可能需要增加或删除一些表来使数据库定义完整,对数据库的结构进行规范化或非规范化处理。规范化处理在逻辑建模阶段,非规范化处理通常发生在物理建模之后或者数据库已经完成后,也可以发生在数据提取和重新组织的过程中。
五、确定列规范
列需要标识主码以及必须或可选的属性,必须属性是对于表中的每一条数据,记录表列都必须有相应的数据存在。
实体间的关系被转换为外码。
在数据库中,除非该列在其他表中是外码,否则该列的名称应该是唯一的
一个表范围内,列名必须唯一。
六、建立列的列表
表列表是由实体列表产生的,在物理设计阶段还必须对所定义的字段列表进行改进和最终确定。
定义列时,需要下列信息
1)列名
2)数据类型
3)是否为空
4)码值属性
5)可用用约束
6)允许的数据值
7)允许的重复数据值
七、存储考虑
1)数据增长和大小的估计
2)实际数据增长和监控
3)视图的使用和复制
4)影响存储的RAID级
1、表空间的增加和调整
2、表大小的增加和调整
3、视图和复制
4、RAID,大中型数据库的磁盘存储设备都会使用RAID(冗余磁盘列阵)。
5、表的所有者,模式所有者来管理软件应用涉及对应的表。

==============================================================
第二节:业务规则和数据完整性结合

一、业务规则如何影响数据库
业务规则是从促进组合的策略和操作过程的实现的商业处理开始的,用以控制系统,管理数据处理,防止垃圾数据。
在数据库的设计阶段,业务规则主要集中在数据库约束的使用,数据库的约束由以下几部分组成:
1)主码
2)外码
3)唯一约束性
4)检查约束
5)数据库类型
6)数据精度和范围
7)空或非空
二、从逻辑模型中抽取业务规则
数据的四个基本类型
1)数据类型
2)数据唯一性
3)数据的大小写
4)数据的引用
三、增强业务规则
1)数据库约束
2)监视数据的审核脚本
3)数据库触发器
4)为用户理解业务提供培训

===============================================================
第三节: 视图设计

一、视图的优点
1)视图不需要物理存储
2)访问的视图存储在内存中,因此某种情况下提高了性能
3)视图可以提供表数据的不同方面来满足表的需求
4)视图可以为用户和应用程序提供数据库独立性
5)视图简化了数据的使用
二、视图概念包括:
1)数据总结,可用于显示对数据进行复杂的计算或总结的结果
2)过滤数据
3)数据库安全性
4)数据转换,数据过滤并在数据展现形式上进行转换
5)数据分割
三、视图性能及其他的考虑
1)基于多表连接的视图要相等连接。
2)如果视图定义的WHERE字句中使用了子查询,则不能用视图删除数据
3)一次只能对视图中的一个表进行插入和删除,在视图中只有一个可更新表
4)在视图的SELECT语句中使用了DISTINCT语句的查询将不能再其对应的基本表上进行UPDATE和DELETE操作
5)从视图插入数据时,基本表中所有非空列都必须有值。
6)不能更改视图中的虚列
7)不能用包含GROUP BY子句的视图更改表数据
四、视图联系
1)表到表
2)表到视图
3)视图到视图
五、视图的管理
第一级视图为包含数据表的视图
第二级同第三级是一样,依赖于其他视图的视图,视图只能创建到两到三层,
底层视图被删除,则二三级视图会无效,表结构变化也会引起视图无效。
六、避免设计拙劣的视图
1)避免视图通过复杂视图来改变表,简单的视图可用来更改表数据,复杂的视图通常是不可以更改的,复杂视图应该只用来查询操作
2)嵌入超过三层深度的视图一般都很慢,如果连接列上没有索引或没有索引的视图将非常慢
3)包含复杂计算的查询通常很慢,应确保计算不发生在比所需要的数据大的视图结果集上,而且计算不比所需要的复杂
4)视图应该利用数据库应有系统有关的调整原则,保持视图的良好性能。

==============================================================

第四节: 数据库设计概念的应用

数据库在一个信息管理系统中占有非常重要的地位,数据库结构的设计好坏将直接对应用系统的效率以及实现的效果产生影响。数据库设计一般包括以下四个部分:数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
详细请见WORD文档:
一个典型的数据库设计实例POS——sales

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值