幻灯片 1

Similar documents
课程名称:数据库系统概论

幻灯片 1

untitled

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

数据库系统概论

untitled

untitled

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

Microsoft PowerPoint - 第十章 完整性-new

目錄

第九章 数据库的安全性和完整性

教 学 目 标 描 述 主 要 数 据 库 对 象 创 建 表 描 述 列 定 义 时 可 用 的 数 据 类 型 改 变 表 的 定 义 删 除 改 名 和 截 断 表 描 述 每 个 DML 语 句 插 入 行 到 表 中 更 新 表 中 的 行 从 表 中 删 除 行 描 述 约 束 创 建

PowerPoint Presentation

ebook 165-5

Microsoft Word 数据库原理及应用实验指导-新正文.doc

ebook46-23

习题1

幻灯片 1

作业参考答案

第 7 章扩展实践教学 SQL Server 数据库项目化教程 ( 主编 : 李蕾 北京师范大学出版社 ) 扩展实践 以随书赠送的素材库中的数据库实例 : 教务管理系统 为例, 要求 : 附加 教务管理系统 数据库至 SQL Server 2008 数据库服务器中 扩展实践 7-1 在教务管理系统数

(Microsoft Word - 11\244T\246\342\277\337\260l\302\334.doc)

基于ECO的UML模型驱动的数据库应用开发1.doc

数据完整性问题 数据完整性的四大保障措施 : 主键约束 ; 外键约束 ; 域约束 ; 业务规则约束 ;

目錄 C ontents Chapter MTA Chapter Chapter

课程名称:数据库系统概论

Oracle高级复制冲突解决机制的研究

第二章 关系数据库

数据库系统概论

数据库系统概论

第二章 关系数据库

ebook 96-16

项目 3 创建和管理表 任务实现 Office Visio PK 3 FK FK1 3.1 相关知识 SQL Server 一 制订表规划 1. 表要存储什么对象 2. 表中每一列的数据类型和长度 059

Microsoft PowerPoint - Ch6

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

幻灯片 1

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

幻灯片 1

SP_ SP_03 JAVA...6 SP_10 SQL...8 SP_ SP_ SP_ SP_ SP_ SP_ SP_ SP_04.NET...33 SP_02 C...37 SP_05

untitled

数据库系统概论

一步一步教你搞网站同步镜像!|动易Cms

幻灯片 1

幻灯片 1

幻灯片 1

课程名称:数据库系统概论

幻灯片 1

课程名称:数据库系统概论

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

untitled

Microsoft Word - sql_1__周燕红_ doc

untitled

untitled

123

Microsoft Word - 数据库实验2007.doc

Microsoft Word - 三峽鎮衛生所_3_-張家宸.李永繁.doc

Microsoft Word - 武漢大學交流營心得_黃莉云_.doc

CHAPTER 3: RELATIONAL DATABASE LANGUAGE: SQL

ZENworks 11 SP4

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

基于UML建模的管理管理信息系统项目案例导航——VB篇

<4D F736F F F696E74202D20ABD8B86DA743BAD2AED5B6E9A4CEB1C0B0CAACDBC3F6B1B9AC49A4B6B2D02D E707074>

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 孩 子, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 无 预 备 活 动 <10 分 钟 A 十 诫 石 板 B 我 是 谁? 粘 土 牙 签 一 些 名 人 的 照

<4D F736F F D20BBB7BEB3D0C5CFA2CFB5CDB3CAFDBEDDBFE2B7C3CECABDD3BFDAB9E6B7B6A3A8B1A8C5FAB8E5A3A E646F63>

Microsoft PowerPoint - db02.ppt

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

Microsoft Word - 扉页.doc

数 据 库 管 理 第 章 (1) 创 建 一 个 简 单 的 表 空 间 Create tablespace user1 datafile 'e:\database\oracle\user1_data.dbf' size 00M; () 指 定 数 据 文 件 的 可 扩 展 性 Create t

<4D F736F F D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F E646F63>

MySQL資料庫教學

Oracle Database 10g: SQL (OCE) 的第一堂課

SQL Server SQL Server SQL Mail Windows NT

ebook4-14

第三章 SQL语言

Microsoft PowerPoint - MIS_Lec03.ppt [相容模式]

Oracle 4

第12章

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

回滚段探究

<4D F736F F F696E74202D20B5DABEC5D5C220CAFDBEDDBFE2B0B2C8ABD0D42D6E6577>

第三章关系数据库标准语言 SQL 3.1 SQL 概述 3.2 学生 - 课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结

课程名称:数据库系统概论

Microsoft Word - template.doc

Oracle9i 的查询优化

Partition Key: 字 符 串 类 型, 表 示 当 前 Entity 的 分 区 信 息 这 个 Property 对 于 Table Service 自 动 纵 向 和 横 向 扩 展 至 关 重 要 Row Key: 字 符 串 类 型, 在 给 定 Partition Key 的

untitled

幻灯片 1

untitled

数据库系统概论

Microsoft Word A.doc

未命名

1、系统功能结构图

第1套

Transcription:

数据库系统原理 Database System Principles 四川大学计算机学院 段磊 leiduan@scu.edu.cn 2014.9

第五章数据库完整性 完整性的概念 指数据的正确性和相容性 与安全性的比较 安全性防止人为恶意破坏数据库和非法存取 完整性防止不合语义的 不正确的数据进入数据库

DBMS 维护完整性的机制 定义机制 允许用户定义实体完整性 参照完整性和用户定义的完整性 检查机制 在用户的更新语句 ( 事务 ) 开始执行后检查这些操作执行后是否会违背完整性约束条件 违约处理机制 如果 DBMS 检查到用户操作违背了完整性约束条件, 就采取一定动作以保证完整性 拒绝 (No Action) 级联 (Cascade) 2014-11-06 数据库系统概论 - 第 5 章 3/32

本章目录 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 2014-11-06 数据库系统概论 - 第 5 章 4/32

5.1 实体完整性 定义通过定义主码实现 例 1 定义 Student 的 Sno 为主码 create table student( sno char(10), sname char(8), sgender char(2), sage int, sdept char(2), constraint student_pkey primary key (sno) ); 2014-11-06 数据库系统概论 - 第 5 章 5/32

5.1 实体完整性 定义通过定义主码实现 例 1 定义 Student 的 Sno 为主码 ( 续 ) CREATE TABLE student( sno char(10), sname char(8), sgender char(2), sage int, sdept char(2) ); ALTER TABLE student add constraint student_pkey primary key (sno); 2014-11-06 数据库系统概论 - 第 5 章 6/32

实体完整性约束的检查和违约处理 检查主码值是否唯一 不唯一拒绝操作 检查主码的各个属性值是否为空 为空拒绝操作 主码上自动建立 B+ 树索引 快速检查主码值是否唯一 2014-11-06 数据库系统概论 - 第 5 章 7/32

本章目录 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 2014-11-06 数据库系统概论 - 第 5 章 8/32

5.2 参照完整性约束 定义通过定义外码实现 例 3 定义 SC 表 create table sc( sno char(10), cno char(3), grade int, constraint pk_sc primary key (sno,cno), constraint sc_fkey_sno foreign key (sno) references student(sno), constraint sc_fkey_cno foreign key (cno) references course(cno), ); 2014-11-06 数据库系统概论 - 第 5 章 9/32

参照完整性检查和违约处理 参照表和被参照表的增删改操作都可能破坏参照完整性 破坏参照完整性的情况 参照表插入元组, 被参照表没有对应的码值 如 SC 表中插入元组, 但 Sno 在 Student 表中无对应值 违约处理只能是拒绝 参照表修改外码值, 被参照表没有修改后对应的码值 与插入情况类似, 拒绝 2014-11-06 数据库系统概论 - 第 5 章 10/32

参照完整性检查和违约处理 被参照表删除元组, 原参照表的外码值对应的码值找不到 如删除 Student 表中的某学生的元组,SC 表中改学生选课记录的 Sno 值再也找不到了 违约处理可以是拒绝 / 级联删除 / 置空值 被参照表修改主码值 如修改学生的学号 SC 表中该生对应的 Sno 值应相应处理 违约处理可以是拒绝 / 级联删除 / 置空值 有的系统不允许修改表的主码值 2014-11-06 数据库系统概论 - 第 5 章 11/32

违约处理策略 拒绝操作 (NO ACTION) 不允许增删改操作 级联操作 (CASCADE) 删除被参照关系元组时, 相应删除对应的参照关系的相应元组 修改被参照关系主码值, 相应修改对应的参照关系的相应元组 置空操作 (SET NULL) 删除被参照关系元组或修改被参照关系主码值时, 将对应的参照关系元组的外码值设置为空值 2014-11-06 数据库系统概论 - 第 5 章 12/32

带有处理策略的 FOREIGN KEY 子句 格式 FOREIGN KEY ( column_name [,... ] ) REFERENCES reftable [ ( refcolumn [,...] ) ] [ ON DELETE action ] [ ON UPDATE action] 2014-11-06 数据库系统概论 - 第 5 章 13/32

带有处理策略的 FOREIGN KEY 子句 示例带有违约处理的 SC 表外码说明 FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE NO ACION ON UPDATE CASCADE 2014-11-06 数据库系统概论 - 第 5 章 14/32

本章目录 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 2014-11-06 数据库系统概论 - 第 5 章 15/32

5.3 用户定义的完整性 列级完整性涉及单个属性的约束 列值非空 NOT NULL 列值唯一 UNIQUE 列值满足表达式 CHECK 表级完整性涉及单个或多个属性的约束 列值唯一 UNIQUE 列值满足表达式 CHECK 2014-11-06 数据库系统概论 - 第 5 章 16/32

不允许取空值 例 5 在定义 Student 表时, 说明 Sname 不能取空值 CREATE TABLE student( sno char(10), sname char(8) NOT NULL, sgender char(2), sage int, sdept char(2), CONSTRAINT student_pkey PRIMARY KEY (sno) ); 2014-11-06 数据库系统概论 - 第 5 章 17/32

列值唯一 例 6 创建部门表 DEPT, 要求部门名称 Dname 取值唯一, 部门编号 DeptNo 为主码 CREATE TABLE DEPT( DeptNo NUMERIC(2), Dname CHAR(9) UNIQUE, Location CHAR(10), CONSTRAINT DEPT_PKEY PRIMARY KEY (DeptNo) ); 2014-11-06 数据库系统概论 - 第 5 章 18/32

列值唯一 也可写成表级约束的形式 : CREATE TABLE DEPT( DeptNo NUMERIC(2), Dname CHAR(9), Location CHAR(10), CONSTRAINT DEPT_UKEY_Dname UNIQUE(Dname), CONSTRAINT DEPT_PKEY PRIMARY KEY (DeptNo) ); 2014-11-06 数据库系统概论 - 第 5 章 19/32

CHECK 约束 说明 Student 表的 Sgender 只能取 男 女 CONSTRAINT Student_check_Sgender CHECK (Sgender IN( 男, 女 )); 说明 SC 表的 Grade 在 0 到 100 分之间 CONSTRAINT sc_check_grade CHECK (Grade >=0 and Grade <=100) 2014-11-06 数据库系统概论 - 第 5 章 20/32

CHECK 约束 涉及多个列值之间的比较 CREATE TABLE T1( ID char(4), oldvalue int, newvalue int, CONSTRAINT T1_PKEY PRIMARY KEY(ID), CONSTRAINT T1_CHECK CHECK(newvalue>oldvalue) ); 2014-11-06 数据库系统概论 - 第 5 章 21/32

本章目录 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 2014-11-06 数据库系统概论 - 第 5 章 22/32

5.4 完整性约束命名子句 列级完整性约束一般不能显示命名 表级完整性约束可显示命名 CONSTRAINT 子句 方便用 ALTER TABLE 语句修改约束 ADD CONSTRAINT 增加约束 DROP CONSTRAINT 删除约束 2014-11-06 数据库系统概论 - 第 5 章 23/32

修改 NOT NULL 约束 修改 Student 定义, 允许 Sname 为空 ALTER TABLE Student ALTER COLUMN Sname DROP NOT NULL; 又要修改为不允许空 : ALTER TABLE Student ALTER COLUMN Sname SET NOT NULL; 2014-11-06 数据库系统概论 - 第 5 章 24/32

本章目录 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 2014-11-06 数据库系统概论 - 第 5 章 25/32

5.5 域中的完整性约束 create domain SQL-92 引入, 允许用户创建带有完整性约束的自定义域 create domain person_name char(20) not null; 2014-11-06 数据库系统概论 - 第 5 章 26/32

本章目录 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 2014-11-06 数据库系统概论 - 第 5 章 27/32

5.6 触发器 SQL:1999 引入 用户定义在关系表上的一类由事件驱动的特殊过程 事件对表的插入 删除 修改 时机在对表的插入 删除 修改前或后 条件只有当触发条件为真时才执行 类型行级触发器语句级触发器 2014-11-06 数据库系统概论 - 第 5 章 28/32

5.6 触发器 例 18 为教师表 Teacher 定义一个完整性规则触发器, 规定 教授的工资不得低于 4000 元, 如果低于 4000 元, 自动改为 4000 元 create trigger I_U_Sal after insert or update on account referencing new row as nrow //nrow 引用新值 for each row // 行级 when (nrow.job= 教授 and nrow.sal < 4000 // 条件 begin update Teacher set sal = 4000 where Tno=nrow.Tno; end 2014-11-06 数据库系统概论 - 第 5 章 29/32

5.6 触发器 例 19 完成类似审计功能 补充例 :warehouse 中 4 张表 inventory(item, level): 库存量 minlevel(item, level) : 下限 reorder(item, amount): 重新订货量 orders(item, amount) : 订货量 当库存量下降到低于下界后自动按照重新订货量订货 2014-11-06 数据库系统概论 - 第 5 章 30/32

5.6 触发器 create trigger reorder-trigger after update of amount on inventory referencing old row as orow, new row as nrow for each row // 新库存少于报警值 when nrow.level < = (select level from minlevel where minlevel.item = orow.item) and orow.level > (select level // 原库存大于报警值 from minlevel where minlevel.item = orow.item) begin // 触发器动作 insert into orders 在订购单中写入要新购的项目和数量 (select item, amount from reorder where reorder.item = orow.item); end 2014-11-06 数据库系统概论 - 第 5 章 31/32

Any Question? Thank you! 2014-11-06 数据库系统概论 - 第 5 章 32/32