更多关于数据库标准化的内容
参看数据库标准化:从键开始。
提供索引
当开发者创建一个主键规范时,SQL服务器将自动地在列表规范的专栏上创建一个唯一的串索引。如果没有其他串索引定义给表格,那么就会有一个串索引被创建。大多数情况下,串索引的创建将加速数据访问,并有可能会提高插入,更新和删除等操作的性能。要指出的是,对于基准测试,经销商经常会去掉索引来提高性能。
当你创建主键时,微软公司推荐使用整数主键,这是因为SQL服务器已经被优化来进行分类的索引,类似的,当加入表格时,在外来键专栏上创建非串索引则可以提升性能。
最小化修正异常
修正异常在数据的插入,更新和删除时出现,且信息会以意外的方式丢失。在图A的数据库表格中,删除一个employee就会删除关于公司building的信息,除非你将building信息储存在一个单独的表格之中。
Figure A
要创建一个新的building入口,你需要插入或是更新一个employee记录,这种设计还存在一个问题,就是你的building会有相同名称但拼写不同的现象(例如Warehouse1, warehouse1, warehouse 1等等)。
缩小表格/行的大小
通过去除复制的数据,我们可以有效地利用磁盘空间并加大其他区域可用的行空间的数量,行的大小将会成为一个问题,这是由于SQL Server中行的基本单位是页面,它的大小在SQL Server 7.0/2000之中是8 KB。这就是说一行只可以包含8060字节的数据而排除了文本和图像数据类型。创建主键/外来键规范可以减少专栏中空值的数量从而减少数据库的大小。
增强参考的完整性
我已经见到很多数据库的问题是由参考完整性的缺乏所造成的,这些问题通常显示为无法解压重要的数据或是在两个表格之间没有连接的时候无法将一个表格的信息与另一个表格的数据做关联。例如,如果一个电子商务应用软件中没有参考完整性的话,一份订单就可能在没有相关客户的情况下单独存在,这很显然是一个问题。一些设计者可能会在GUI或是中间层面上加入逻辑来防止这种问题的发生,但是要通过SQL声明直接将信息输入到数据库中却还是有可能的,开发者经常在数据库中同时使用前端逻辑和参考完整性两种途径来消除这些问题的出现。