第5章 数据库完整性约束综述.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 数据库完整性约束综述

第 5 章 数据库完整性;场景: 学校的学籍管理办公室数据库管理员抱怨,每次都有学生输入了错误的数据,如:错误的专业名称、和学籍档案不一致的姓名、错误的导师名称等等,有时也会因网络超时,相同的信息重复的输入多次,这样会增加了更多的管理工作。 若你是学校的数据库管理人员认为可由什么方法解决这个问题,提高效率呢? 通过数据库完整性来解决这个问题。 ;什么是数据库完整性 数据库的完整性是指数据的正确性和相容性 数据库完整性是防止不合语义或不正确的数据进入数据库 完整性体现了是否真实地反映现实世界 例: 学生的年龄必须是整数,取值范围为14-29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系;; DBMS维护数据库完整性的机制: 1.提供定义完整性约束条件的机制 DBMS应提供定义数据库完整性约束条件,并把它们存入数据库中。 2.提供完整性检查的方法 检查数据是否满足完整性约束条件的机制称为完整性检查。一般在INSERT、UPDATE、DELETE语句执行后开始检查。 3.违约处理 DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作以保证数据的完整性,如拒绝执行该操作,或级联执行其他操作。; 约束是SQL Server提供的自动保持数据库完整性的一种方法,它通过限制字段中数据、记录中数据和表之间的数据来保证数据的完整性。 在SQL SERVER中,对于基本表的约束分为列约束和表约束。 列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“,”分隔,定义表约束时必须指出要约束的那些列的名称。 ;; 完整性约束的基本语法格式为: [CONSTRAINT constraint_name(约束名)] 约束类型 约束不指定名称时,系统会给定一个名称。 ; PRIMARY KEY 与 UNIQUE 约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:; 主键的创建操作方法有两种:SQL Server管理平台操作法和Transact-SQL 语句操作法。 (1) SQL Server管理平台操作法(如图示);(2)举例: 建立一个SCORE表,包括:SNO、CNO和GRADE,定义SNO,CNO共同组成SCORE的主键。;(2)举例: 建立一个SCORE表,包括:SNO、CNO和GRADE,定义SNO,CNO共同组成SCORE的主键。 CREATE TABLE SCORE (SNO CHAR(10) NOT NULL, CNO CHAR(10) NOT NULL, GRADE NUMERIC(9), CONSTRAINT SC_PRIM PRIMARY KEY (SNO,CNO) ); ;5.2 UNIQUE约束;5.2 UNIQUE约束;使用Transact-SQL语句完成惟一性约束的操作,其语法形式如下: UNIQUE CONSTRAINT constraint_name UNIQUE ( column_name );当使用外部键约束时,应该考虑和注意以下几点: FOREIGN KEY 约束确保同一个表或者不同表之间的引用完整性 必须引用一个 PRIMARY KEY 或者 UNIQUE 约束 用户必须在应用表上具有 REFERENCES 权限 一个表中最多可以有 31 个外部键约束; 在临时表中,不能使用外部键约束; 主键和外部键的数据类型必须严格匹配 。;在SQL Server管理平台中添加外部键约束:;使用Transact-SQL语句设置外部键约束 ,其语法形式如下: CONSTRAINT constraint_name FOREIGN KEY(column_name[,…n]) REFERENCES ref_table [(ref_column[,…n])] ;5.4 CHECK 约束; 创建检查约束常用的操作方法有如下两种 :使用SQL Server管理平台创建检查约束;用Transact-SQL语句创建检查约束。 (1)使用SQL Server管理平台创建检查约束;CREATE TABLE SCore ( SNO CHAR (5), CNO CHAR (5), GRADE NUMERIC(9,1), CONSTRAINT SCORE_CHK CHECK (GRADE =0

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档