永发信息网

请说出数据库完整性的几种类型,并举例说明

答案:3  悬赏:30  手机版
解决时间 2021-07-28 13:12
  • 提问者网友:浮克旳回音
  • 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

实体完整性,

参照完整性

用户自定义完整性.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯