TP4-实现SQL SERVER 2000数据完整性_第1页
TP4-实现SQL SERVER 2000数据完整性_第2页
TP4-实现SQL SERVER 2000数据完整性_第3页
TP4-实现SQL SERVER 2000数据完整性_第4页
TP4-实现SQL SERVER 2000数据完整性_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章数据的完整性上节回顾SQLSERVER表的概述在企业管理器中创建及管理表使用T-SQL语句创建及管理表预习检查数据模型的概念数据完整性含义及分类本章目标数据模型完整性的概念约束的类型约束的创建及管理数据模型概念:数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(DataModel)是数据特征的抽象。数据模型按不同的应用层次分成三种类型:概念数据模型逻辑数据模型物理数据模型数据模型概念数据模型概念数据模型(ConceptualDataModel):简称概念模型,是面向数据库用户实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统(DatabaseManagementSystem,即DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现

数据模型概念数据模型中的基本概念实体(Entity)属性(Attribute)域(Domain)实体集(EntitySet)键(Key)联系(Relationship)一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)数据模型逻辑数据模型逻辑数据模型(LogicalDataModel):简称数据模型,这是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型,如网状数据模型(NetworkDataModel)、层次数据模型(HierarchicalDataModel)、关系数据模型(RelationalDataModel)等等。主要用于数据库管理系统(DBMS)的实现数据模型物理数据模型物理数据模型(PhysicalDataModel):简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。

数据模型数据模型所描述的内容包括三个部分:数据结构数据操作数据约束数据模型数据结构数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上数据操作数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式数据约束数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容完整性概念数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性输入的类型是否正确?

——年龄必须是数字输入的格式是否正确?

——身份证号码必须是18位是否在允许的范围内?

——性别只能是”男”或者”女”是否存在重复输入?

——学员信息输入了两次是否符合其他特定要求?完整性概念根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分为以下四种类型实体完整性域完整性参照完整性(引用完整性)自定义完整性实体完整性实体是指表中的记录,一个实体就是表中的一条记录。实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。

完整性概念例如:“学生”表中的学号必须唯一,并且不能为空,这样就可以保证学生记录的唯一性实体完整性男剑南春0802003女王小云0802002女王树彤0802001男易建联0801002男姚明0801001….性别 姓名学号女王树彤0802001×域完整性域完整性也称列完整性域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围完整性概念例如:在“选课表中”,对学生成绩列输入数据时,不能出现字符,也不能输入小于0或大于100的数值域完整性男王刚08101000000×男剑南春0802003女王小云0802002女王树彤0802001男易建联0801002男姚明0801001….性别 姓名学号完整性概念参照完整性参照完整性又称引用完整性参照完整性是指作用于有关联的两个或两个以上的表,使表中的键值在相关表中保持一致例如:选课表中的“学号”列不能输入学生表中没有的学号男剑南春0802003女王小云0802002女王树彤0802001男易建联0801002男姚明0801001….性别 姓名学号参照完整性980802068数学×科目学号分数…数学080100188数学080100274语文080100167语文080200181数学080200398完整性概念自定义完整性自定义完整性是应用领域需要遵守的约束条件,其允许用户定义不属于其他任何完整性分类的特定业务规则。所有完整性类型都支持用户定义完整性自定义完整性专科程序员MS0016专科程序员MS0014专科程序员MS0013本科项目主管MS0012硕士技术总监MS0011….学历职务员工编号编号姓名学历….00192观音硕士00288唐三藏本科12333孙悟空专科93000红孩儿初中×检查学历完整性概念域完整性实体完整性引用完整性自定义完整性约束的类型概念约束是SQLSERVER提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性约束类型PRIMARYKEY(主键)约束UNIQUE(唯一)约束FOREIGNKEY(外键)约束NOTNULL(非空)约束CHECK(检查)约束DEFAULT(默认)约束PRIMARYKEY(主键约束)功能:主键约束用来强制数据的实体完整性,它是在表中定义一个主键来唯一标识表中的每行记录。特点:①每个表中只能有一个主键

②主键值必须唯一并且不能为空例如:在“学生”表中可以将学号设置为主键,用来保证表中的学生记录具有唯一性

约束的类型UNIQUE(唯一约束)功能:用来强制数据的实体完整性,限制表的非主键列中不允许输入重复值特点:①一个表中可以定义多个唯一约束

②空值可以出现在某列中一次例如:在“科目表”中可以将科目代码设置为主键,用来保证记录的唯一性,如果不允许同名课程存在,应该为科目名称定义唯一约束,保证非主键列中不出现重复值

约束的类型NOTNULL(非空约束)功能:非空约束用来强制数据的域完整性,它用于设定某列值不能为空特点:如果指定某列不能为空,则在进行插入记录时,此列必须插入数据例如:对于“选课”表,存在一个学生,就必须存在其所选的课程,应该设置课程号不能为空

约束的类型CHECK(检查约束)功能:检查约束用来强制数据的域完整性,它使用逻辑表达式来限制表中的列可以接受哪些数据值例如:对于学生成绩的取值应该限制在0-100之间,就应该为成绩列创建检查约束,使其取值在正常范围内约束的类型DEFAULT(默认约束)功能:默认约束用来强制数据的域完整性,它为表中某列建立一个默认值,当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列特点:①默认值可以是常量、内置函数或表达式

②使用默认约束可以提高输入记录的速度例如:在“学生”表中可以将性别字段设置其默认值为‘男’,当输入记录时,对于男生就可以不输入性别数据,而由默认值提供,这样可以提高输入效率

约束的类型FROEIGNKEY(外键约束)定义:外键是指一个表中的一列或列组合,它不是该表的主键,却是另一个表的主键功能:通过外键约束可以为相关联的两个表建立联系,实现数据的参照完整性。例如:如果要求选课表中“学号”列的取值必须是学生表中“学号”列的列值之一,就要在选课表的“学号”上创建外键约束

约束的类型一、创建主键1、使用企业管理器打开表设计器-右击要设为主键的字段-设置主键

另:选择字段-单击工具栏中的“钥匙”工具按钮

约束的创建及管理约束的创建及管理2、使用SQL语句

USE数据库名

GOALTERTABLE表名

ADDCONSTRAINT约束名PRIMARYKEY(列名)GO例:为科目表中的科目代号建立主键约束UsestudentGoAltertablesubjectinfoAddConstraintpk_subjectidprimaryKey(subjectID)Go二、创建唯一约束1、使用企业管理器(1)打开表设计器-右击某个字段-属性-索引/键(2)新建-输入索引名(约束名)-选择列名-选择创建UNIQUE约束的创建及管理2、使用SQL语句use数据库名goaltertable表名addconstraint约束名unique(列名)go例:为科目表中的“科目名称”字段建立唯一约束usestudentgoaltertablesubjectInfoaddconstraintuk_subjectNameunique(subjectName)go约束的创建及管理约束的创建及管理三、创建检查约束1、使用企业管理器(1)打开表设计器-右击某个字段-属性-CHECK约束(2)新建-输入约束表达式-输入相应约束名约束的创建及管理2、使用SQL语句use数据库名goaltertable表名addconstraint约束名check(约束表达式)go例:使用SQL语句为选课表中的成绩字段创建检查约束,保证成绩在0-100之间usestudentgoaltertableselectInfoaddconstraintck_scorecheck(score>=0andscore<=100)score为表中要创建检查约束的字段约束的创建及管理四、创建默认约束1、使用企业管理器打开表设计器-选择字段-输入默认值约束的创建及管理2、使用SQL语句use数据库名goaltertable表名addconstraint约束名default默认值for列名go例:为学生表“性别”字段创建默认约束,默认值为’男‘usestudentgoaltertablestudentInfoaddconstraintdk_stusexdefault'男'forstuSexgo约束的创建及管理五、创建外键约束1、使用企业管理器(1)打开外键表设计器-右击某个字段-属性-关系(2)新建-输入关系名-选择主键表和外键表及其对应的主键和外键(同名列)创建外键约束时,主键表必须已经创建了主键约束或唯一约束约束的创建及管理2、使用SQL语句use数据库名goaltertable外键表名addconstraint约束名foreignkey(外键)references主键表名(主键)go例:在选课表上为“科目代码”创建外键约束usestudentgoaltertableselectInfoaddconstraintfk_subjectidforeignkey(subjectID)referencessubjectInfo(subjectID)go约束的创建及管理管理约束一、查看约束的定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论