1 / 1
2.数据库设计的目标
好的数据库物理设计应当充分考虑应用的需求和开发工具的特征,应当充分利用和挖掘数据库的功能。一流的数据库设计会给整个应用系统带来以下的好处:
? 维护容易。当需求发生变化时,优良的数据库设计会使应用系统容易地适应这种变化。
? 编程简单。由于数据库设计充分挖掘了数据库的功能,因此应用程序的复杂度能够明显降低。
? 加快开发速度。因为数据库设计充分地考虑了需求和开发工具的特征,因此开发人员会感到左右逢源,得心应手,从而能够加快开发速度。 ? 系统具有良好的整体运行效率。 3. 数据库的特征
? 完整性约束。完整性约束同意在表上定义某种约束条件,这些条件作为表定义的一部分存在,从而强制表中的数据满足一定的规则。
? 存储过程。存储过程是由流操纵语句(if…else)和SQL语句书写的过程,那个过程通过编译和优化后存储在数据库服
1 / 1
务器中,使用时只要调用即可。
? 触发器。触发器是一种专门的存储过程,不同的是这种过程不是由程序调用来执行,而是通过数据库数据的更新自动地“触发”执行。
? 事务处理:事务是最小的逻辑工作单元,在那个单元中对数据库所有的更新要么全成功要么全失败。
? 并发处理。同意用户在没有冲突的情况下更新表中不同的行。行级锁和页级锁对联机事务处理特不有用。
? 序号生成器。数据库能够自动生成连续的序号供应用程序使用。
? 遵守工业标准的SQL。
? 视图。视图是原始数据库表的变换,可给应用程序带来安全性、简单性和独立性。
? 分布处理。数据能够分布在网络的多个点上,数据本身支持分布查询和分布修改。
? 数据复制。数据能够在网络的多个数据库点相互复制。 3.1完整性约束
完整性约束是数据库用于维护数据库完整性的一种机制。这
1 / 1
种约束是表定义的一部分,是内部的。与在应用程序中维护数据库的完整性不同,它的代价小而且性能高。
完整性约束有以下两点作用: 1. 使企业的规则与数据库联系起来。
2. 防止操作员或终端用户输入错误的数据,破坏数据库的完整性。
完整性约束有以下几种: ? not null约束 缺省值 ? unique约束 ? primary key约束 ? foreign key约束 ? check约束 3.1.1not null约束
not null的含义是列中不能有空值。not null在创建表时定义。
not null约束限定了列中必须有值,但不能限定列中能够有什么值,因此它常常与其它的约束配合使用。
1 / 1
3.1.2缺省值
缺省值是在数据录入时,若用户没有输入数据,数据库自动输入的值。下面是定义缺省时应注意的一些事项: 要确保列宽对缺省值来讲足够大。
要注意缺省值与规则间的冲突,确保缺省值为规则所同意,否则,缺省值会被规则忽略掉。 3.1.3 unique约束
唯一列是如此的列,它的值不能在表中重复出现。注意,唯一列与主键不同,主键可用来唯一地标识表中的一行(不能有空值),而唯一列仅仅表示该列的值不能在表中重复出现(能够有空值)。
能够在一个列上定义唯一列,也能够在表上定义唯一列,也能够在表上对多个列定义唯一列。 3.1.4 primary key约束
每个表中都应有主键,主键唯一标识表中的行。选择主键应注意以下几点:
? 选择数据是唯一的列。
? 选择数据值可不能改变的列。主键的目的是唯一地标识一行,
1 / 1
数据库设计规范



