候选码,是一个属性还是可以一组属性,
一、候选码,是一个属性还是可以一组属性,
在关系A里,候选码B能够决定A,如果这个B是属性,那么你还要属性组么?明显是冗余。如果A的任何一个属性都不能决定A,那么你还问候选码是属性么?肯定候选码是属性组。候选码可以是属性,也可以是属性组,如果一个关系里,属性能作为候选码,肯定不选属性组作为候选码此时属性是一个候选码,属性组不是候选码,若属性不能作为候选码,只能属性组是候选码,此时,属性不是候选码,属性组是候选码。
二、sql中怎样删除有外键的字段
--删除主键
alter table Stu_PkFk_S drop constraint PK_S
删除SQL SERVER外键
alter table Stu_PkFk_Sc drop constraint FK_s
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键
比如
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键
成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键
同理 成绩表中的课程号是课程表的外键
三、在关系数据库模型中,什么是关系的原子性
在关系数据模型中,关系可以看成由行和列交叉组成的二维表格,表中一行称为一个元组,可以用来标识实体集中的一个实体。表中的列称为属性,给每一列起一个名称即为属性名,表中的属性名不能相同。
列的取值范围称为域,同列具有相同的域,不同的列也可以有相同的域。表中任意两行(元组)不能相同。能唯一标识表中不同行的属性或属性组称为主键。
尽管关系与传统的二维表格数据文件具有类似之处,但是它们又有区别,严格地说,关系是一种规范化的二维表格!
四、sql2014中怎样删除表的代码
drop table table_name
五、请说出数据库完整性的几种类型,并举例说明
任何一部数据库的书上都有:
完整性有三类:实体完整性,参照完整性,用户定义完整性。
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('男','女')。
六、Sql Server数据库属性“文件组”有何作用?如何使用
SQLServer中一个数据库可以对应多个物理文件,其中有一个的主数据库文件,扩展名为MDF,其他为次数据库文件,扩展名为NDF。可以将不同的文件存放在不同的驱动器上,可以提高数据访问速度。文件组是逻辑概念,主要目的是将文件分组管理。createdatabasedb3onprimary--主文件组(name='db3_dat1',--数据库主文件filename='d:\db3_dat1.mdf',size=10mb,maxsize=100mb,filegrowth=10%),(name='db2_dat2',--主文件组,是次数据库文件filename='d:\db2_dat2.ndf',size=10mb,maxsize=100mb,filegrowth=10%),filegroupdb3g1--第2个文件组(name='db3_dat3',--第2个文件组中的次数据库filename='d:\db2_dat3.ndf',size=10mb,maxsize=30mb,filegrowth=5mb),(name='db3_dat4',--第2个文件组中的次数据库filename='d:\db2_dat4.ndf',size=5mb,maxsize=30mb,filegrowth=5mb),filegroupdb3g2--第三个文件组(name='db3_dat5',----第三个文件组中的次数据库filename='d:\db2_dat5.ndf',size=10mb,maxsize=50mb,filegrowth=20%)logon(name='db3_log',--日志文件filename='d:\db3_log.ldf',size=20mb,maxsize=100mb,filegrowth=10mb)