欢迎来到天天文库
浏览记录
ID:5663825
大小:53.00 KB
页数:4页
时间:2017-12-21
《数据库的关系完整性》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一、数据库的关系完整性关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。关系关系模型的完整性规则是的关系的某种约束条件,是指数据库中数据的正确性和一致性。现实世界的实际存在决定了关系必须满足一定的完整性约束条件,这些约束表现在对属性取值范围是限制上。完整性规则就是防止用户使用数据库时,想数据库中加入不符合语义的数据。规则模型中有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性尚关系模型必须满足的完整性约束条件被称作关系的两个不变性。1、实体完整性规则实体完整性是指基本关系的主属性,即主键的值都不能取空值。在关系系
2、统中一个关系通常对应一个表,实际存储数据的表称为基本表,而查询结果表、视图表都不是基本表。实体完整性是针对基本表而言的,指在实际存储数据的基本表中,主属性不能去空值。例如:在“A班学生信息”表中,“学号”为主键,则“学号”不能取空值。一个基本关系对应于现实世界中的一个实体集,如学生关系对应于学生集合。现实世界中实体书可区分的,即每个实体具有唯一的标识。在关系模型中用主键作唯一性标识时,若主键去空值,则说明这个实体无法标识,即不可区分。这显然与现实世界相矛盾,现实世界不可能存在这样不可标识的实体,从而引入实体完整性规则。实体完整性规则规定基本关系的所有主属性都不能取空值,而
3、不仅仅是主键整体不能取空值。如果是多个字段一起组成主键,则这多个字段均不能取空值,否则就违反了实体完整性规则。或:实体完整性是指关系的主关键字不能取空值或重复的值。如果是多个字段一起组成主键,则这多个字段均不能取空值。如:学号是主键,则该列不能有空值或重复值,否则无法对应某个具体的学生,这样的二维表不完整,对应关系不符合实体完整性规则的约束条件。2、参照完整性规则现实世界的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,这样就存在着关系之间的引用。参照完整性是定义建立关系之间联系的主键与外键引用的规则,即外键要么取空值,要么等于相关关系中主键的
4、某个值。例如:外键主键课程表(课程ID,课程名,类型ID,学分,。。。。。)课程类别表(类型ID,类型)这两个表之间存在着属性的引用,即“课程”表引用了“课程类别”表的主键“类型ID”。按照参照完整性规则,“课程”表中每个元祖的“类型ID”属性只能取下面两类值“(1)空值。表示该课程还未确定类别。(2)非空值。此时取值必须和“课程”表这某个元祖的“类型ID”值相同,表示这门课程归属该类别。参照完整性规则规定不能引用不存在的实体。3、用户定义完整性(域完整性)规则实体完整性和参照完整性是关系模型这必须满足的完整性约束性条件,只要是关系数据库系统就应该支持实体完整性和参照完整
5、性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义完整性就是对某些具体关系数据库的约束条件。例如:对“性别”字段的约束条件是“男”or“女”;对“成绩字段的约束条件是“>=0and<=100”,即用有效性规则来约束。例题1、数据表之间通过保证数据的一致性。设置参照完整性2、Access数据库中,为了保持表之间的关系,要求在子表(从表)中添加记录时,如果主表中没有相关的记录,则不能再子表(从表)中添加该记录。为此需要定义的关系是()。A输入掩码B有效性规则C默认值D参照完整性3、数据表通过设置保证域的完整性。有效性规则二、SQL语
6、句的使用1.SELECT语句的一般格式语法格式:SELECT[ALL
7、DISTINCT]*
8、<字段1>[AS别名1][,<字段2>[AS别名2]][,…]FROM<表名1>[,<表名2>][,…][WHERE<条件表达式1>][GROUPBY<字段i>[,<字段j>][,…][HAVING<条件表达式2>]][ORDERBY<字段m>[ASC
9、DESC][,<字段n>[ASC
10、DESC]][,…[ASC
11、DESC]]];Select语句的说明:1、Select子句说明由哪些列选项组成结果表,它放在Select语句的开始处,指定此查询要检索出的列名称,这些列选项用“,”隔开
12、,并按照从左到佑的顺序排列。2、from子句列出查询数据使用的表,它由关键字from后跟一组用逗号分开的表名组成。每个表名都代表一个提供该查询数据源的表。这些表称为此SQL语句的表源,因为它们是查询的数据源。3、where子句告诉SQL查询哪些行(记录)中的数据,这些行由“条件表达式”来确定。4、orderby子句将查询结果按一列或多列中的数据排序。如果省略此子句,则查询结果是无序的。添加ASC属性以升序(从小到大)排列,DESC属性以降序(从大到小)排列。默认为升序。5、groupby子句指定该查询为分组总计查询,即不是对每
此文档下载收益归作者所有