下载

1下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 数据完整性

数据完整性.doc

数据完整性

吴明理
2019-05-18 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《数据完整性doc》,可适用于IT/计算机领域

数据更新典型方法添加修改删除chinanetboy既有效防止了对数据库的意外破坏,提高了完整性检测,主要方法包含如下数据完整性约束可以分下面种实体完整性唯一性和非空限制域完整性数据类型,长度,取值范围,缺省值引用参照完整性外键同步数据用户定义完整性存储过程与触发器同步数据。实体完整性唯一性和非空值限制实体完整性要求表中的每一列值必须是符合按一定条件得到的惟一记录,以下PrimaryKey,Uniquekey,IDENTITY,index都必须是非空约束(not)主要有主键约束(PrimaryKey),惟一约束(Uniquekey),标识属性列(IDENTITY),索引约束(index)主键约束(PrimaryKey)原理:向表中添加主键约束时,database将检查现有记录的列值,以确保现有数据符合主键的规则,所以在添加主键之前要保证主键列没有空值和重复值,主键可以是单独一列或者多组合而成代码:单一主键:createtable(columnnamedatatypenotPrimaryKey,)组合主键:altertabletablenameaddconstraint主键名称PRIMARYKEY(columnnamelist)删除主键:altertabletablenamedropPrimaryKey(columnname)惟一约束(Uniquekey)原理:Uniquekey主要是为了防止非主键的列名的数据不重复,不是的表的主键,它相当于候选码的功能,添加语法:altertabletablenameaddconstraint唯一约束名UniqueCLUSTEREDNONCLUSTERED(cloumnnamelist)例如:定义唯一约束是同一个城市中没有重复的商店名称添加代码:altertabletbstoreaddconstraintukstorenameUNIQUENONCLUSTERED(storename,city)删除语法:altertabletablenamedropconstraint唯一约束名删除代码:altertabletbstoredropconstraintukstorename索引约束(index)许多大型数据库都不用我们再建立索引约束,它通常会为主键建立一个索引!有特别需要,再建立索引!标识属性列(IDENTITY)原理:为表中的记录按照要求自动地生成标识字段的值,通常该字段的值在现实生活中并没有直接的意义可以用表的标识列来实现。不同的数据库都有自动标识属性专用关键字,不同的数据库实现的有些差异代码:sqlserverdatabaseidentity(起始值,步长)IDintIDENTITY(,)NOT域完整性数据类型,长度,取值范围,缺省值域完整性:列的数据类型,长度,取值范围,缺省值的约束包括数据类型约束,长度约束,取值范围约束,缺省值约束数据类型约束原理:主要是指定列的数据类型,不同的数据库的数据类型明些不一样,比如通用类型int,long,char,varchar,double,float,real语法:<columnname><datatype>代码:idintnot,namechar(),chinesenamevarchar(),int,char,varchar就是对列id,name,chinasename的数据类型约束数据长度约束原理:通常char,varchar之类的都会有一个长度限制语法:<columnname><datatype><length>代码:namechar(),chinesenamevarchar(),,就分别是列name,chinesename的数据长度约束!取值范围约束check原理:主要是指定例的取值范围,使用CHECK(检查)子句可保证属性值满足某些前提条件语法:CHECK<条件表达式>条件表达式可以是逻辑表达式,也可以是子查询语句它通常放在createtable语句每个列定义的最后代码:check(age>=andage<=)设定age范围()check(sexin('男','女')设定性别取值为男,女check(dnoin(selectdnofromdepartment))用子查询指定必须是XX表的一个值check(amount<=)例如每次从ATM机上最多只能取元缺省值约束default原理:当一个列,用户没有输入数据时,为它设定一个缺省值字符default''初始化为空串,整数default初始化为小数default日期defaultgetdate()用数据库提供的当天日期函数初始化datetime列名格式:default<数据内容>代码:qtyintdefault,raterealdefault,初始化它为remarkchar()default""初始化它为空串createdatedatetimedefault(getdate())用当天的日期来初始化createdate引用参照完整性外键同步数据引用参照完整性的前提:两个表之间的关系必须用外键关联起来foreignkey参照完整性定义了一个关系数据库中,不同的表中列之间的关系(父键与外键)。要求一个表中(子表)的一列或一组列的值必须与另一个表(父表)中的相关一列或一组列的值相匹配。被引用的列或一组列称为父键,父键必须是主键或惟一键,通常父键为主键,主键表是主表。引用父键的一列或一组列称为外键,外键表是子表。如果父键和外键属于同一个表,则称为自参照完整性。子表的外键必须与主表的主键相匹配,只要依赖某一主键的外键存在,主表中包含该主键的行就不能被删除参照完整性共有种控制策略:RESTRICT(限制策略),CASCADE(级联策略),SET(置空策略)RESTRICT(限制更新策略)当在子键插入父键不存在的值时,会被数据库拒绝插入当用户对表进行违反了上述完整性约束、条件的插入、删除或修改操作时,将会被数据库系统拒绝。CASCADE(级联更新策略)当对两表之间应用级联策略后,在包含父键的表的进行修改或者删除键值时,对应的参照表的子键会自动被修改或者被删除,以达到两表之间的数据的高度统一性设置两表之间的级联策略,通常是用数据库的管理器界面进行设置和修改SET(子鍵置空策略)在这种策略下,当删除时,包含父键的表的进行修改或者删除键值时,对应的参照表的子键的值将被置空,这是因为找不到参考物,就只能置空值添加外键约束建立表时同时建立外键语法createtabletablename(columnnamedatetypelengthforeignkey(columnname)referencesreftablename(clolumnname)ONUPDATE|ONDELETE|NOACTION|CASCADE|SET)建立表之后再添加外鍵约束语法altertabletablenameaddconstraintforeignkeynameforeignkey(columnname)referencesreftablename(clolumnname)ONDELETE|NOACTION|CASCADE|SET更新策略方式删除外键约束altertabletablenamedropCONSTRAINTforeignkeyname代码实例部门表bm=部门createtabletbbm(bmvarchar()notprimarykey,remarkvarchar()default'')createtabletbgz(ghidintnotprimarykey,namevarchar()not,bmvarchar()not,gzrealdefault,remarkvarchar()default'')工资表说明createtabletbgz(ghidintnotprimarykey,员工编号namevarchar()not,姓名bmvarchar()not,部门名称gzrealdefault,remarkvarchar()default'')两个主要的概念:父表父键和子表外键是什么为了保证工资表tbgz中的bm都是使用tbbm中的bm的值,我们得为它们建立外键引用参照关系tbgzbm引用参照tbbmbm当参照物的表tbbm是父表,使用的表tbgz是子表!tbgz的bm父表的参照列是父键,tbgz的bm子表的bm上面建立的参照键是外键任务要求:假如tbbm表的bm有一个部门为IT,tbgz表中bm有个人全是IT部门的人现在tbbm表的bm部门IT重新改名为GAMEDEVLOP,tbgz表中bm中个原来是IT的全部自动改为GAMEDEVLOP通过下面实现添加外键:在tbgz上建立参考引用的外键fkbmaltertabletbgzaddconstraintfkbmforeignkey(bm)referencestbbm(bm)ONUPDATECASCADEONDELETECASCADE删除外键altertabletbgzdropconstraintfkbm控制策略常用选项:ONUPDATECASCADE=更新为级联策略,当父表数据变动,子表自动变动,这个用的非常多ONDELETECASCADE=更新为级联策略,当父表删除,子表自动删除ONDELETESET=当父表值删除,子表自动设置为空用户定义的完整性用户定义的完整性包括:自定义数据类型不同的数据库有不同的数据类型自定义的规则不同的数据库有不同的规则存储过程自定义特制的仹储过程触发器自定义特制的触发器

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/12

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利

2017夜夜干精品 2017天天夜夜干精品 夜夜啪狠狠爱2017精品在线观看