数据表存在的问题(一)——数据冗余
解决冗余最好的方法就是分类存储。
数据表存在的问题(二)——数据完整性
一)键的原数据库中数据的准确性:应重视表的前期设计--约束方法:主键约束、标识列、唯一约束
主键约束
选择主键的原则
£最少性 尽量选择单个键作为主键。
£稳定性 尽量选择数值更新少的列作为主键。
如果表中一列不能确定一个实体,需要几列的组合才能确定,那么这几列可以联合作为主键,称为“联合主键”。
标识列
标识列也称自增字段,一般为数字类型,本身没有实际意义,不属于实体
属性,只是用来区别不同行信息 。标识列只能是数字类型。
二)数据完整性—域完整性:约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束
建立关系图
引用关系规则
£不能将主表中关联列不存在的数据,插入到子表中。
——图书表中不能够出现作者信息表中不存在的作者编号。
£不能更改主表中的数据,而导致子表中数据的孤立。
——如果作者表中的作者编号改变了,图书表中作者编号也应随之改变。
£不能删除主表中的数据,而导致子表中数据的孤立
——如果删除了作者表中作者信息,那么图书表中对应的作者信息也应随之删除。
£删除主表前,先删子表
——先删图书表、再删除作者表。
检查约束(check)
外键约束:
用于在两个表之间建立关系,需要指定引用主表的哪一列
使用外键的表为外键表,被引用的表为主键表。
三)数据完整性—自定义完整性:约束方法:规则、存储过程、触发器
identity表示自增列的意思
IDENTITY(数据类型, 标识种子, 标识增量)
IDENTITY(int, 1, 1) 表示int型,从1开始递增,每次自增1。