请说出数据库完整性的几种类型,并举例说明
- 提问者网友:浮克旳回音
- 2021-07-28 06:20
- 五星知识达人网友:街头电车
- 2021-07-28 07:30
解答如下:
完整性有三类:实体完整性,参照完整性,用户定义完整性。
(1)实体完整性:规定基本关系R的主属性A不能取空值,如:
Create Table 学生
(
学号CHAr(10) PRIMARY KEY,
姓名 CHAr(20),
.......
);
(2)参照完整性:规定若F是基本关系的外码,它与基本关系S的住吗相对应,则对于R中每一个远足在F上的值必须取空值(F的每一个属性值均为空值),或等于S中某一个远足的主码值。
如:
Create Table 学生
(
学号 CHAr(10) PRIMARY KEY,
姓名 CHAr(20),
........
课程号 CHAr(10),
FOREIGN KEY(课程号)REFERENCES 课程(课程号)
);
Create 课程
(
课程号 CHAr(10) PRIMATY KEY,
........
);
(3)用户定义完整性:就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用环境决定,即属性值限定,包括:列值非空(NOT NULL), 列值唯一(UNIQUE),检查列值是否满足一个布尔表达式。如:
Create Table 学生_课程
(
学号 CHAr(10) NOT NULL,
课程号 CHAr(10) NOTNULL,
成绩 SMALLINT NOT NULL,
PRIMARY KEY(学号,课程号),
......
);
- 1楼网友:罪歌
- 2021-07-28 08:59
任何一部数据库的书上都有:
完整性有三类:实体完整性,参照完整性,用户定义完整性。
1.实体完整性:若属性(指一个或一组属性)A是基本关系的R的主属性,则A不能取空值。
例子如下:在关系:学生(学号,姓名,年龄,性别,专业号...),学号属性为主属性,则学号不能为空。按照实体完整性规则的规定,基本关系的主码都不能取空值。比如:选修(学号,课程号,成绩),主码为(学号,课程号),则两个属性都不能为空。
2.参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码k相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为:
1.空值(F的每个属性均为空值)
2.等于s中的某个元组的主码值。
例子:
1。空值的例子:比如学生关系的属性中有专业号,对应专业关系(专业号,专业名)的主码,对于一个学生,如果专业号为空,表示专业为分配。
2.等于S中的某个元组的主码值。比如选修关系(课程号,学号,成绩),课程号对应于课程关系(课程号,课程名称,学分)的主码,学号对应于学生关系的主码学号,但是由于选修关系中的课程号和学号是主属性,不能取空值,所以他们只能取对应的被参照关系课程,学生关系中的已经存在的主码值。
用户定义完整性:任何关系数据系统都应该支持上面的两种完整性。
另外,不同的关系数据系统根据其应用环境的不同,往往还要一些特殊的约束关系。用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如:
某个属性必须取唯一值(unique约束)。某个非主属性不能取空值(not null约束)。某个属性的值必须在1-100之间(例如学生的成绩,check grade between 1 and 100),学生的性别只有男女之分(check sex in('男','女')。
- 2楼网友:山河有幸埋战骨
- 2021-07-28 07:44
实体完整性,
参照完整性
用户自定义完整性.