确保数据的完整性
数据库域最简单的就是数据库中列使用的数据类型。 此数据类型可以是内置类型(例如整数或字符串)或定义数据约束的自定义类型。
数据输入和域
当您将数据输入任何形式的在线表格时 - 无论是您的姓名和电子邮件,还是完整的工作申请表 - 数据库都会将您的输入存储在幕后。 该数据库根据一组标准评估您的条目。 例如,如果输入一个邮政编码,数据库希望找到五个数字或一个完整的美国邮政编码:五个数字后跟一个连字符,然后四个数字。 如果您将姓名输入邮政编码字段,数据库可能会投诉。
这是因为数据库正在针对为邮政编码字段定义的域测试您的条目。 一个域基本上是一个可以包含可选限制的数据类型。
了解数据库域
要理解数据库域,我们来考虑数据库的其他几个方面:
- 数据库模式定义了一组属性 ,也称为列或字段。 例如,如果您有一个表“员工联系信息”,它可能包括FirstName,LastName,JobTitle,StreetAddress,City,State,ZipCode,PhoneNumber和Email的属性。
- 每个属性都有一个定义允许值的域。 这可能包括其数据类型,长度,值和其他细节。
例如,属性ZipCode的域可能会指定数字数据类型,例如整数,通常称为INT或INTEGER,具体取决于数据库。 或者数据库设计人员可能会选择将其定义为字符,通常称为CHAR。 该属性可以进一步定义为需要特定的长度,或者是否允许空值或未知值。
当您将所有定义域的元素集中在一起时,最终会得到一种自定义数据类型,也称为“用户定义数据类型”或UDT。
关于域的完整性
允许的属性值创建域完整性 ,这可确保字段中的所有数据均包含有效值。
域完整性由以下定义:
- 数据类型,例如整数,字符或小数
- 数据的允许长度
- 范围,定义上限和下限
- 任何约束或对可允许值的限制。 例如,美国的邮政编码字段可能会强制执行完整的ZIP + 4代码或完整的九位代码。
- NULL支持的类型,或者属性是否可以具有未知或NULL值
- 默认值,如果有的话
- 日期格式(如果适用)(例如,dd / mm / yy或mm / dd / yyyy)
创建一个域
对于使用SQL (结构化查询语言)或SQL风格的数据库,请使用CREATE DOMAIN SQL命令。
例如,此处的执行语句创建一个包含五个字符的数据类型为CHAR的ZipCode属性。 NULL或未知值是不允许的。 数据范围必须介于“00000”和“99999之间”。创建数据类型为CHAR的ZipCode属性包含五个字符。 NULL或未知值是不允许的。 数据范围必须介于“00000”和“99999”之间。
CREATE DOMAIN ZipCode CHAR(5)NOT NULL CHECK(VALUE>'00000'AND VALUE
每种类型的数据库都提供了一种方法来定义管理可允许数据的一组限制和规则,即使它没有将其称为域。 有关详细信息,请参阅数据库文档。