软件公司关系型数据库设计规范(编辑修改稿)内容摘要:
”执行。 事务处理:事务是最小的逻辑工作单元,在这个单元中对数据库所有的更新要么全成功要么全失败。 并发处理。 允许用户在没有冲突的情况下更新表中不同的行。 行级锁和页级锁对联机事务处理非常有用。 序号生成器。 数据库 可以自动生成连续的序号供应用程序使用。 遵守工业标准的 SQL。 视图。 视图是原始数据库表的变换,可给应用程序带来安全性、简单性和独立性。 分布处理。 数据可以分布在网络的多个点上,数据本身支持分布查询和分布修改。 数据复制。 数据可以在网络的多个数据库点相互复制。 完整性约束是数据库用于维护数据库完整性的一种机制。 这种约束是表定义的一部分,是内部的。 与在应用程序中维护数据库的完整性不同,它的代价小而且性能高。 完整性约束有以下两点作用: 1. 使企业的规则与数据库联系起来。 2. 防止操作员或终端用户输入 错误的数据,破坏数据库的完整性。 完整性约束有以下几种: not null约束 缺省值 unique 约束 primary key 约束 foreign key 约束 check 约束 中国最大的管理资源中心 第 7 页 共 15 页 null 约束 not null的含义是列中不能有空值。 not null在创建表时定义。 not null约束限定了列中必须有值,但不能限定列中可以有什么值,因此它常常与其它的约束配合使用。 缺省值 缺省值是在数据录入时,若用户没有输入数据,数据库自动输入的值。 下面是定义缺省时应注意的一些事项: 要确保列宽 对缺省值来说足够大。 要注意缺省值与规则间的冲突,确保缺省值为规则所允许,否则,缺省值会被规则忽略掉。 unique 约束 唯一列是这样的列,它的值不能在表中重复出现。 注意,唯一列与主键不同,主键可用来唯一地标识表中的一行(不能有空值),而唯一列仅仅表示该列的值不能在表中重复出现(可以有空值)。 可以在一个列上定义唯一列,也可以在表上定义唯一列,也可以在表上对多个列定义唯一列。 primary key 约束 每个表中都应有主键,主键唯一标识表中的行。 选择主键应注意以下几点: 选择数据是唯一的列。 选择数据值不会 改变的列。 主键的目的是唯一地标识一行,不含有用于其它目的的数据,选择一般不需要改变主键值的列。 选择不含有空值的列。 根据定义,主键列不允许输入空值。 选择短的和数值型的列。 避免选择联合主键。 虽然允许联合主键,但很难满足以上四点要求。 参照完整性约束 参照完整性约束用来约束两个表间的关系。 1. 空值和外部键 对于缺省(无 not null 或 check 语句)的情况,外部键约束为组合外部键实施“无匹配”规则。 通过使用 check 和 not null也可使用全部或部分规则: 在组合外部键中实施全匹配规则,要求键的全部要么都 为空要么都不为空。 在一般情况下,不能使用参照完整性在组合键中实施部分匹配规则。 部分匹配规则要求键的非空部分出现在引用表的主键的对应部分上,这种情况一般要用触发器来处理。 2. 父表和子表的关系 中国最大的管理资源中心 第 8 页 共 15 页 父表和子表的关系决定于在子表的外部键上定义的其它类型的完整性约束。 在外部键上没有约束。 在外部键上有非空约束。 在外部键上有 unique 约束。 在外部键上有 unique 和 not null约束。 check 约束 当需要根据逻辑表达式来限定列的值域时,可以用 check 完整性约束。 check 约束的写法和where 子句的写法一 样,但它有如下的限制: 条件必须是能够利用更新行中的值来求值的表达式。 条件中不能有子查询或序号。 条件中不能含有函数。 条件中不能含有伪列。 存储过程 存储过程是由流控制和 SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,使用时只要调用即可。 使用存储过程有以下优点: 存储过程的能力大大增强了 SQL 语言的功能和灵活性。 存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 可保证数据的安全性和完整性。 通过存储过程可以使没有权限的用户在控制之下间接地寸取数据库,从 而保证数据的安全。 通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。 在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。 这种已经编译好的过程可极大地改善 SQL 语句的性能。 由于执行 SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。 可以降低网络的通信量。 使体现企业规则的运算程序放入数据库服务器中,以便: 集中控制。 当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。 触发器 触发器是一种特殊的存储过程,它在插入、删除或修改特定表中 的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。 数据库触发器有以下的作用: 安全性。 可以基于数据库的值使用户具有操作数据库的某种权利。 可以基于时间限制用户的操作。 可以基于数据库中的数据限制用户的操作。 审计。 可以跟踪用户对数据库的操作。 中国最大的管理资源中心 第 9 页 共 15 页 审计用户操作数据库的语句。 把用户对数据库的更新写入审计表。 实现复杂的数据完整性规则。 实现非标准的数据完整性检查和约束。 触发器可产生比规则更复杂的限制。 与规则不同,触发器可以引用列或数据库对象。 提供可变的缺省值。 实现复杂的非标准的数据库相关完整性规则。 触发器可以对数据库中相关的表进行连环更新。 在修改或删除时级联修改或删除其它表中的与之匹配的行。 在修改或删除时把其它表中的与之匹配的行设成 NULL 值。 在修改或删除时把其它表中的与之匹配的行级联成缺省值。 触发器能够拒绝或“回退。软件公司关系型数据库设计规范(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。