设为首页 加入收藏

TOP

11GConcept第五章翻译DataIntegrity(数据完整性)(一)
2014-11-24 08:16:35 来源: 作者: 【 】 浏览:13
Tags:11GConcept 第五 翻译 DataIntegrity 数据 完整性

本章解释了完整性约束是怎样强制实施数据库中的“业务规则”的,以及怎样预防无效的信息插入到表中。

本章包含下面几个小节:

Introduction to Data Integrity(数据完整性介绍)

Types of Integrity Constraints(完整性约束的种类)

states of Integrity Constraints(完整性约束的状态)

Introduction to Data Integrity(数据完整性介绍)

“业务规则” 设置了一些条件和“关系”,这些条件要么必须符合,要么必须不符合

举个例子:

每个公司都有它自己的工资政策,雇员编号,库存跟踪,等等。

维护数据完整性,是指遵守DBA或者开发定义在数据库上的规则,这很重要。

Techniques for Guaranteeing DataIntegrity(保证数据完整性的技术)

当设计一个数据库应用,开发人员有很多选项来保证存入在数据库中数据的完整性。这些选项波扩:

使用触发器来保证业务规则

使用存储过程完完全全控制数据的访问

在应用程序代码中保证业务规则

使用Oracle数据库完整性约束,它是值定义在列or表级别的规则,用来约束数据。

这一张主要解释了完整性约束的基本原理

Advantages of Integrity Constraints(完整性约束的优势)

一个完整性约束是一个schema object,它创建和删除都使用SQL。为了强制保证数据完整性,尽可能使用完整性约束。

在保证数据完整性上,对比其他手段,完整性约束的优势包括:

Declarative ease(声明简单)

使用SQL来定义完整性约束,你在定义或者修改一个表定义时,不需要额外的编程工作

SQL语句易于编写,也易于排除编程故障。

Centralized rules(集中的规则)

完整性约束在表上定义,然后存在数据字典。因此,任何应用输入的数据 都必须遵守相同的完整性约束。如果表级别的规则有了变化,那么应用是不需要变化的。同样,应用可以使用数据字典中的元数据立即提醒用户的违规操作,甚至在数据库检查SQL语句之前。

Flexibility when loading data灵活性(当大量加载数据时)

你可以临时将约束设为disable,用来避免加载大量数据时候的性能开销。当数据加载完成后,你可以再将约束设回enable。

Types of Integrity Constraints(完整性约束的种类)

Oracle数据库使你可以在 表级 和段级 两个级别应用约束。

约束可以指定为列或属性定义的一部分,称之为inline规范。

约束可以指定为表定义的一部分,称之为out-of-line规范

术语key在好几种完整性约束类型定义中都有使用。

某些完整性约束类型的定义中,包含了的列,或者一组列,称之为key。

key描述了关系型数据库中表和列的关系 ,key中每个值,称之为key values。

下表描述了约束的种类,除了NOT NULL(必须inline),其他都可以是inline或者是out-of-line。

Constraint Type

Description

See Also

NOT NULL

Allows or disallows inserts or updates of rows containing a null in a specified column.

"NOT NULL Integrity Constraints"

Unique key

Prohibits multiple rows from having the same value in the same column or combination of columns but allows some values to be null.

"Unique Constraints"

Primary key

Combines a NOT NULL constraint and a unique constraint. It prohibits multiple rows from having the same value in the same column or combination of columns and prohibits values from being null.

"Primary Key Constraints"

Foreign key

Designates a column as the foreign key and establishes a relationship between the foreign key and a primary or unique key, called the referenced key.

"Foreign Key Constraints"

Check

Requires a database value to obey a specified condition.

"Check Constraints"

REF

Dictates types of data manipulation allowed on values in a REF column and how these actions affect dependent values. In an object-relational database, a built-in data type called a REF encapsulates a reference to a row object of a specified object type. Referential integrity constraints on REF columns ensure that there is a row object for the REF.

Oracle Database Object-Relational Developer's Guide to learn about REF constraints

NOT NULL Integrity Constraints(非空完整性约束)

NOT NULL约束,要求表中的一列不允许有null值。不存在值就是NULL,默认情况下,表中的所有列都是允许有null的。

NOT NULL主要用于不能缺少值的列。举个例子,hr.employees表要求last_name列有值。企图插入一个雇员信息,但少了last_name列,将会产生如下错误:

SQL>INSERT INTO hr.employees (employee_id, last_name) values (999, 'Smith');

.

.

ERROR at line1:

ORA-01400:cannot insert NULL into("HR"."EMPLOYEES"."LAST_NAME")

在表中有数据是,你是没办法直接添加一个具有not null约束的列,除非你有指定默认值。

Unique Constraints(唯一约束)

唯一键约束要求一个列的值,或者一组列组合的值必须是唯一的。在添加了唯一约束的表,没有行可以在唯一列或者唯一组合列上拥有完全相同的值。

注意:这里的术语key仅仅只在完整性约束中指定的列。因为数据库创建唯一索引时,会强制隐式创建,或者重用一个在key上面的索引,术语unique key 有一些情况下会被错误的用做unique key constraint 或者unique index的同义词。

唯一键约束是为不

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle禁用操作系统认证方式登陆.. 下一篇11GConcept第六章翻译DataDiction..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 集合框架 - 菜 (2025-12-27 02:19:36)
·Java集合框架最全详 (2025-12-27 02:19:33)
·为什么安卓开发要用J (2025-12-27 02:19:30)
·C/C++ 类模板与模板 (2025-12-27 01:49:52)
·C语言 模板化<templ (2025-12-27 01:49:49)