A. 数据库实体的完整性要求
数据库的几个概念
(1) 实体(Entity):指客观存在并可相互区别的事物,一个实体在数据库中表现为表中的一条记录
(2) 属性(Attribute):指实体所具有的某一特性,实体的属性在数据库中表现为表的字段。
实体完整性理论
定义2 实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。
例1:学生 (学号, 姓名, 年龄)中,学号不能取空值;
例2:选修 (学号, 课程号, 成绩)中,学号和课程号都不能取空值。
关于实体完整性的说明:
现实世界中的实体是可区分的,即它们具有某种唯一性标识;相应的,关系模型中以主码作为唯一性标识。如果主属性取空值,则说明存在某个不可标识的实体,即存在不可区分的实体,这与b相矛盾,因此这个规则称为实体完整性。
B. SQL 建立数据库 表(完整性约束)
数据库可以在SQL2000/2005/2008企业管理器中直接建立;
建表
USEDB
GO
CREATETABLET1---建立T1表
(M_1INTPRIMARYKEYNOTNULL,
M_2CHAR(20),
M_3CHAR(20),
N_1INT
)
GO
CREATETABLET2---建立T2表
(N_1INTPRIMARYKEYNOTNULL,
N_2CHAR(20),
N_3CHAR(20)
)
GO
ALTERTABLET1
---为T1表建立外键(当有数据插入T1时,会检查T1中的N_1在T2中是否存在)
ADDCONSTRAINTFK_T1_N_1FOREIGNKEY(N_1)REFERENCEST2(N_1)
GO
---------------
删除table2中数据的时候table1中有N_1的信息也要删除
建个触发器
USEDB
GO
CREATETRIGGERinfor_delONT2FORDELETE
AS
BEGIN
DELETEFROMT1WHEREN_1IN(SELETEN_1FROMDELETED)
GO
--------------------------
SQL2008下已通过执行
C. 数据库中 什么是数据完整性
数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。数据完整性因此而提出。本章将讲述数据完整性的概念及其在SQL Server 中的实现方法。
数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
数据库采用多种方法来保证数据完整性,包括外键、约束、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。
数据完整性分为以下3类:
1、域完整性:
是指一个列的输入有效性,是否允许为空值。强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则)。
2、实体完整性:
是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。
3、参照完整性:
是指保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。外键值将引用表中包含此外键的记录和被引用表中主键与外键相匹配的记录关联起来。
D. sql server 2008 支持的数据完整性约束分别用什么sql命令来完成设置
①数据库的完整性是指数据的正确性和相容性
②数据库完整性是防止不合语义或不正确的数据进入数据库
③完整性体现了是否真实地反映现实世界
例:
学生的年龄必须是整数,取值范围为14-29;
学生的性别只能是男或女;
学生的学号一定是唯一的;
学生所在的系必须是学校开设的系;
E. 如何验证数据库的完整性
SELECT Cnt = COUNT (*)
FROM [<Table>]
WHERE [<primary key column>] = <new value>
IF Cnt = 0
BEGIN
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES ( <New value> )
END
ELSE
BEGIN
<indicate plication error>
END
而一个非3GL 编码器是这样做的:
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES
( <New value> )
IF @@ERROR = 2627 -- Literal error code for Primary Key Constraint
BEGIN
<indicate plication error>
F. 数据库的完整性包含哪些完整性约束
数据完整性约束指的是为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。
数据库的完整性约束包含以下类型:
1) 与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。
2) 域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3) 断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
(6)数据库表的完整性要求命令扩展阅读:
数据的完整性
分为以下四类:
1) 实体完整性:规定表的每一行在表中是惟一的实体。
2) 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3) 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4) 用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
G. 数据库用SQL语言建表,什么是完整性约束请问如何写出各种完整性约束
一、数据的完整性
实体完整性
实体完整性简单的说,就是将表中的每一行看作一个实体。实体完整性要求表的标示符列或主键的完整性。可以通过建立唯一索引、PRIMARY KEY约束、UNIQUE约束,以及列的IDENTITY属性来实施实体完整性。
域完整性
域完整性是指给定列的输入有效性。要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的范围。域完整性通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则来实现。
引用完整性
引用完整性又称参照完整性。引用完整性维持被参照表和参照表之间的数据一致性,他通过主键(PRIMARY KEY)约束和外键(FOREIGN KEY)约束来实现。
用户定义完整性
二、约束操作
与表相关的约束
在SQL 2008中,常用有6种约束,分别是NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY,DEFAULT和CHECK.
--添加主键约束(即primary key约束)
alter table goods add constraint pk_gid primary key(gid)
--1.删除主键约束
alter table goods drop pk_gid
--添加唯一约束(即unique约束)
alter table goods add constraint uq_gname unique(gname)
--删除唯一约束:仿1.
--添加缺省约束(即default约束)
alter table goods add constraint def_gtel default 0000-00000000 for gtel
--删除缺省约束:仿1.
--添加检查约束(即check约束)
alter table goods add constraint ck_gprice check(gprice>500)
--删除check约束:仿1.
--创建表2
create table g_p
(
wno int identity(1,1) primary key,
gno int
)
--添加外键约束(即foreign key约束)
alter table g_p
add constraint fk_gno
foreign key(gno) references goods(gid)
--删除外键约束:仿1.
--使用newid()
select newid()--生成全球唯一的ID号
create table customer
(
custID uniqueidentifier not null default newid(),
customer char(30) not null
)
insert customer values(newid(),\''\''accp\''\'')--向customer中插入信息
-----------------------------------慢慢研究----
H. 数据库表操作的命令有哪些
常用的DDL语句有:
CREATE TABLE -- 创建(定义)一个表
ALTER TABLE -- 修改一个表的定义
DROP TABLE -- 从数据库中删除一个表
常用的DML语句有:
SELECT -- 查询表中的数据
UPDATE -- 更改表中的数据
INSERT -- 向表中插入数据
DELETE -- 从表中删除数据
每个语句的具体语法,请参考联机丛书或者相关资料。
I. 什么是数据库表的完整性
数据库表的完整性分为三类:
实体完整性:主要指表中哪些字段的取值不能为空,比如用来做主键的字段的取值不能为空;
参照完整性:主要是指设置为外键的这类字段,这类字段的取值必须参照其它表中主键字段的取值而存在,就是说如果被参照的字段不存在的值被插入到这类字段中,这个操作是不被允许的;
用户自定义完整性:主要指用户为字段定义的取值范围,比如年龄的字段取值必须是大于0的整数