数据库原理及应用-第5章

合集下载

数据库原理及应用(第2版)--课后习题参考答案

数据库原理及应用(第2版)--课后习题参考答案

9.在利用概念层数据模型描述数据时,一般要求模型要满足三个要求。下列描述中,不属于概念层 数据模型应满足的要求的是 A A.能够描述并发数据 B.能够真实地模拟现实世界 C.容易被业务人员理解 D.能够方便地在计算机上实现 10.数据模型三要素是指 B
3
·4·
A.数据结构、数据对象和数据共享 B.数据结构、数据操作和数据完整性约束 C.数据结构、数据操作和数据的安全控制 D.数据结构、数据操作和数据的可靠性 11.下列关于实体联系模型中联系的说法,错误的是 A.一个联系可以只与一个实体有关 B.一个联系可以与两个实体有关 C.一个联系可以与多个实体有关 D.一个联系也可以不与任何实体有关 D
·1·
第 1 章 数据概述
一.选择题 1.下列关于数据库管理系统的说法,错误的是 C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是 D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数 据的效率 3.下列说法中,不属于数据库管理系统特征的是 C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是 A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指 D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作 系统之间,属于 A A.系统软件 B.工具软件 C.应用软件 D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 A.数据库 B.操作系统 C.应用程序 D.数据库管理系统 B D

数据库原理及应用课件:第5章 ACCESS 数据库—面向对象的程序设计语言(VBA)

数据库原理及应用课件:第5章 ACCESS 数据库—面向对象的程序设计语言(VBA)

13
2022/10/3
– 用户自定义型 所占字节数与元素个数有关,用 户可以使用Type语句定义任何数据类型。语法 如下:
– [Private/Public] Type 类型名
– 元素名 As 数据类型
–…
– End Type
例如:自定义一个教师的基本信息数据类型,其 中包括姓名、性别、年龄的信息。
4
2022/10/3
– 对象(Object)—是类的一个实例,是组成一个 系统的基本逻辑单元,是具有某些特征的具体的 事物的抽象。每个对象都具有属性和行为。
– 数据抽象(Data Abstraction)—指仅表现核心 的特性而不描述背景细节的行为。
– 继承(Inheritance)—是可以让某个类型的对象 获得另一个类型的对象的属性的方法。
24
2022/10/3
例:已知两个数x和y,比较它们的大小,使 得x大于y。
– 方法一:if x<y then
t=x
x=y
y=t
end if
– 方法二: if x<y then t=x:x=y:y=t
25
2022/10/3
– If …Then…Else语句(双分支结构)。此语句 也有两种形式:块结构和行结构。
– I说f…明T:hen语句(单分支结构)。有两种形
式1):表块达结式构一和般行为结关构系表达式、逻辑表达 块式0结为,构F也a形l可s式e以。:为If<算表术达表式达>式Th,e非n 0为True,
2)语句块可以语是句一块句或多句,若用行结 构来表示,则En只d 能If是一句语句,若多句, 行语结句构间形需式用:冒If号<表隔达开式,>而T且he必n须<语在句一>行上 书写。

《数据库原理及应用》第五章SQL查询

《数据库原理及应用》第五章SQL查询

SQL语言
SQL功能 命令动词
数据查询
数据定义 数据操纵
SELECT
CREATE、DROP、ALTER INSERT、UPDATE、DELETE
数据控制
GRANT、REVOKE
SQL语言
SQL语言的优点在于SQL不是面向过程的 语言,使用SQL语言只需描述做什么,而 不需要描述如何做,为使用者带来极大的 方便。本章将以讨论SQL的数据查询语言 为主,同时介绍数据定义语言和数据操纵 语言。本章中大部分例题使用“学生管理” 数据库,并假定数据库在Access的当前目录 下。
简单查询----选择记录
WHERE子句通过指定查询条件,可以在表中找出满足条件 的记录。查询条件可以是任意复杂的逻辑表达式。 当WHERE子句需要指定一个以上的查询条件时,要使用逻 辑运算符AND、OR和NOT将其连接成复合的逻辑表达式。 其优先级由高到低为:NOT、AND、OR,可以使用括号改 变优先级。 条件查询还可以使用LIKE或NOT LIKE进行部分匹配查询。* 表示任意长度的字符串;?表示任意单个字符。 在查询中还可以使用查询谓词,查询谓词IN 和NOT IN用于 检索属于(IN)或不属于(NOT IN)指定集合的记录。 例10 查询成绩在60分以下(不包括60分)、90分以上(含 90分)学生的学号。
连接查询(多表查询)
例13 查询会计系学生选修课程及成绩,要求查询结果中含 属性学号、姓名、课程名称和成绩。 SELECT student.学号,姓名,课程名称,成绩 FROM student,course,grade WHERE 所属院系='会计学院' and student.学号=grade. 学号 and grade.课程编号=course.课程编号 这个查询涉及到两个表,查询所要求的结果来自两个表,查 询的条件也涉及到两个表,所以有“FROM student,grade”; 这两个表之间是有联系的,这种联系是通过父表的主关键字 (student中的学号)和子表的外部关键字(grade表的学号) 建立的,所以有命令子句WHERE中的筛选条件“student. 学号=grade.学号”。 由于student表和grade表都有学号属性,因此在SELECT子 句中要用前缀的形式“student.学号”指明取自哪个表中的 学号;此例中用“grade.学号”的形式,查询结果是一样的。

《MySQL数据库原理、设计与应用》第5章课后习题答案

《MySQL数据库原理、设计与应用》第5章课后习题答案

第五章一、填空题1.逗号或,2. 33.FLOOR(3+RAND()*(11-3+1))或FLOOR(3+RAND()*9)4.NULL5.ON DUPLICATE KEY二、判断题1.错2.对3.错4.对5.对三、选择题1. D2. B3. D4. A5. C四、简答题1.请简述DELETE与TRUNCA TE的区别。

答:①实现方式不同:TRUNCATE本质上先执行删除(DROP)数据表的操作,然后再根据有效的表结构文件(.frm)重新创建数据表的方式来实现数据清空操作。

而DELETE语句则是逐条的删除数据表中保存的记录。

②执行效率不同:在针对大型数据表(如千万级的数据记录)时,TRUNCATE清空数据的实现方式,决定了它比DELETE语句删除数据的方式执行效率更高。

③对AUTO_INCREMENT的字段影响不同,TRUNCATE清空数据后,再次向表中添加数据,自动增长字段会从默认的初始值重新开始,而使用DELETE语句删除表中的记录时,则不影响自动增长值。

④删除数据的范围不同:TRUNCATE语句只能用于清空表中的所有记录,而DELETE语句可通过WHERE指定删除满足条件的部分记录。

⑤返回值含义不同:TRUNCATE操作的返回值一般是无意义的,而DELETE语句则会返回符合条件被删除的记录数。

⑥所属SQL语言的不同组成部分:DELETE语句属于DML数据操作语句,而TRUNCA TE通常被认为是DDL数据定义语句。

2.请简述WHERE与HA VING之间的区别。

1答:①WHERE操作是从数据表中获取数据,用于将数据从磁盘存储到内存中,而HA VING是对已存放到内存中的数据进行操作。

②HA VING位于GROUP BY子句后,而WHERE位于GROUP BY 子句之前。

③HA VING关键字后可以跟聚合函数,而WHERE则不可以。

通常情况下,HA VING关键字与GROUPBY一起使用,对分组后的结果进行过滤。

数据库原理及应用智慧树知到答案章节测试2023年山东建筑大学

数据库原理及应用智慧树知到答案章节测试2023年山东建筑大学

第一章测试1数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是()。

A:DB包含DBS和DBMSB:DBMS包含DB和DBSC:DBS包含DB和DBMSD: 没有任何关系答案:C2.数据库系统的核心和基础是()。

A: 逻辑模型B: 数据模型C: 概念模型D: 物理模型答案:B3.单个用户使用的数据视图的描述称为()A: 外模式B: 存储模式C: 概念模式D: 内模式答案:A4.数据模型的三要素是()。

A: 关系模型、层次模型和网状模型B: 外模式、模式和内模式C: 实体、属性和联系D: 数据结构、数据操作和完整性约束答案:D5. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为()。

A: 数据管理功能B: 数据操纵功能C: 数据定义功能D: 数据控制功能答案:B6在数据库的三级模式结构中,描述数据库中全体数据的逻辑结构和特性的是()。

A: 模式B: 内模式C: 外模式D: 存储模式答案:A7.在数据库的体系结构中,数据库存储结构的改变会引起内模式的改变。

为了使数据库的模式保持不变,必须改变模式与内模式之间的映象。

使数据库具有()。

A: 操作独立性B: 逻辑独立性C: 物理独立性D: 数据独立性答案:C8.数据库系统的三级模式结构中,下列属于三级模式的是()。

A: 内模式B: 抽象模式C: 模式D: 外模式答案:ACD9.一个数据库系统的外模式只能有一个。

()A: 对B: 错答案:B10在数据库中,数据的物理独立性是指应用程序与数据库中数据的逻辑结果相互独立。

()A: 对B: 错答案:B第二章测试1一个关系只有一个()。

A: 超码B: 候选码C: 外码D: 主码答案:D2参照完整性规则是对()的约束。

A: 候选码B: 外码C元组D: 列答案:B3设关系R和关系S的元数分别是3和4,关系T是R与S的厂义笛卡尔积,即:T=R S,则关系T的元数是()A:12B:7C:16D:9答案:A4.设关系R和关系S具有相同的元数,且对应的属性取自相同的域。

《数据库系统原理》PPT电子课件教案-第五章 数据库保护

《数据库系统原理》PPT电子课件教案-第五章 数据库保护

四、用户定义的安全性措施 除了系统级的安全性措施外,Oracle还允许用户用数 据库触发器定义特殊的更复杂的用户级安全性措施。例 如,规定只能在工作时间内更新Student表,可以定义如 下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure student BEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,’DY’) IN(‘SAT’,’SUN’)) OR(TO_NUMBER(sysdate HH24') NOT BETWEEN 8 AND l7) THEN


常用的方法:
1)用一个用户名或者用户标识号来标明用户身份, 系统鉴别此用户是否是合法用户。 2)口令(Password)。为进一步核实用户,系统要求 用户输入口令 3)系统提供一个随机数,用户根据预先约定好的某 一过程或函数进行计算,系统根据计算结果是否正 确进一步鉴定用户身份。


2. 存取控制
(2)行级安全性 Oracle行级安全性由视图实现。用视图定义表的水 平子集,限定用户在视图上的操作,就为表的行级提供 了保护。视图上的授权与回收与表级完全相同。 例如,只允许用户U2查看Student表中信息系学生的 数据,则首先创建信息系学生视图S_ IS,然后将该视图 的SELECT权限授予U2用户。 (3)列级安全性 Oracle列级安全性可以由视图实现,也可以直接在基 本表上定义。 用视图定义表的垂直子集就可以实现列级安全性,方 法与上面类似。
Oracle对数据库对象的权限采用分散控制方式, 允许具有WITH GRANTOPTION的用户把相应权限或 其子集传递授予其他用户,但不允许循环授权,即被 授权者不能把权限再授回给授权者或其祖先, U1 U2 U3 U4 × 循环授权 Oracle把所有权限信息记录在数据字典中。当用 户进行数据库操作时,Oracle首先根据数据字典中的 权限信息,检查操作的合法性。在Oracle中,安全性 检查是任何数据库操作的第一步。

Chapter5-大数据技术原理与应用-第五章-NoSQL数据库-pdf

Chapter5-大数据技术原理与应用-第五章-NoSQL数据库-pdf
hbase543文档数据库相关产品couchdbmongodbterrastorethrudbravendbsisodbraptordbcloudkitperserverejackrabbit数据模型版本化的文档典型应用存储索引并管理面向文档的数据或者类似的半结构化数据大数据技术原理与应用厦门大学计算机科学系林子雨ziyulinxmueducn优点性能好灵活性高复杂性低bcodecademymongodbfoursquaremongodbnbcnewsravendb544图形数据库相关产品neo4jorientdbinfogridinfinitegraphgraphdb数据模型图结构典型应用应用于大量复杂互连接低结构化的图结构场合比如社交网络推荐系统等大数据技术原理与应用厦门大学计算机科学系林子雨ziyulinxmueducn推荐系统等优点灵活性高支持复杂的图形算法可用于构建复杂的关系图谱缺点复杂性高只能支持一定的数据规模使用者adobeneo4jcisconeo4jtmobileneo4j55nosql的三大基石cap大数据技术原理与应用厦门大学计算机科学系林子雨ziyulinxmueducnnosqlbase最终一致性551cap所谓的cap指的是
缺点 使用者
功能较少,大都不支持强事务一致性
Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、 Twitter(Cassandra and HBase)、Facebook(HBase)、Yahoo! (HBase)
《大数据技术原理与应用》
厦门大学计算机科学系
本PPT是如下教材的配套讲义: 21世纪高等教育计算机规划教材 《大数据技术原理与应用 ——概念、存储、处理、分析与应用》 (2015年6月第1版) 厦门大学 林子雨 编著,人民邮电出版社 ISBN:978-7-115-39287-9

数据库原理及应用教案

数据库原理及应用教案

数据库原理及应用教案第一章:数据库基础知识1.1 数据库概念介绍数据库的定义、特点和作用解释数据库管理系统(DBMS)的作用1.2 数据模型介绍实体-关系模型、关系模型和对象-关系模型解释模型中的概念,如实体、属性、关系等1.3 数据库设计介绍数据库设计的过程和方法解释需求分析、概念设计、逻辑设计和物理设计的关系第二章:SQL语言2.1 SQL概述介绍SQL的作用和特点解释SQL的基本语法和命令2.2 数据定义介绍数据表的创建、修改和删除命令解释字段数据类型的选择和约束条件的设置2.3 数据操作介绍数据插入、更新、删除和查询命令解释SQL语句中的条件筛选和排序功能第三章:关系数据库管理3.1 关系数据库概述介绍关系数据库的概念和特点解释关系数据库管理系统(RDBMS)的作用3.2 关系代数和元组演算介绍关系代数和元组演算的基本操作解释选择、投影、连接和除法等操作的含义和应用3.3 数据库事务管理介绍事务的概念和属性解释事务管理的基本操作,如提交、回滚和隔离级别第四章:数据库安全与性能优化4.1 数据库安全介绍数据库安全的重要性解释访问控制、用户身份验证和加密等安全措施4.2 数据库性能优化介绍数据库性能优化的目标和方法解释查询优化、索引创建和数据分区等技术的作用和应用4.3 数据库备份与恢复介绍数据库备份和恢复的概念和重要性解释备份策略、恢复模式和故障转移等操作的实现方法第五章:数据库应用系统设计与实现5.1 数据库应用系统概述介绍数据库应用系统的概念和组成部分解释系统分析、设计和实现的关系和流程5.2 数据库应用系统设计介绍数据库应用系统设计的方法和步骤解释需求分析、系统架构设计、界面设计和数据访问设计等内容5.3 数据库应用系统实现介绍数据库应用系统实现的工具和技术解释编程语言的选择、数据库连接和业务逻辑实现等步骤第六章:关系数据库高级功能6.1 函数依赖与规范化介绍函数依赖的概念和分类解释规范化理论及其应用,包括第一范式至第三范式6.2 数据库模式设计介绍模式设计的原则和方法解释如何进行模式分解和模式重构6.3 数据库触发器和存储过程介绍触发器和存储过程的概念和作用解释它们的语法和应用场景第七章:数据库编程技术7.1 数据库访问接口介绍ODBC、JDBC等数据库访问接口的概念和作用解释如何使用这些接口进行数据库编程7.2 参数化查询与预编译语句介绍参数化查询和预编译语句的概念解释它们的优点和编程实现方法7.3 事务处理与并发控制介绍事务的概念和并发控制的重要性解释事务处理和并发控制的技术,如锁定和乐观并发控制第八章:XML数据库和大数据技术8.1 XML数据库概述介绍XML数据库的概念和特点解释XML数据模型和XML查询语言8.2 大数据技术简介介绍大数据的概念、特征和挑战解释大数据处理技术,如Hadoop和Spark8.3 NoSQL数据库技术介绍NoSQL数据库的概念和分类解释非关系型数据库的优缺点和应用场景第九章:数据库系统的案例分析9.1 企业级数据库应用案例分析企业级数据库应用的典型案例解释案例中的数据库设计、性能优化和安全性考虑9.2 云计算环境下的数据库应用介绍云计算对数据库技术的影响分析云计算环境下的数据库部署和运维策略9.3 移动数据库应用案例探讨移动数据库的特点和挑战分析移动数据库在特定应用场景下的解决方案第十章:数据库发展趋势与未来10.1 数据库技术的发展趋势分析数据库技术的发展方向讨论新兴技术如NewSQL、图数据库等的发展状况10.2 数据库未来的挑战与机遇讨论数据库技术在未来的挑战探讨应对挑战的可能解决方案和发展机遇10.3 数据库教育的未来分析数据库教育在未来的发展需求讨论如何培养适应未来数据库技术发展的人才重点和难点解析重点环节1:数据库概念和特点数据库的定义和作用是理解数据库原理的基础,需要重点关注。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章 数据库完整性
5.1 实体完整性
5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制
5.6 触发器
5.7 小结
5.2 参照完整性
5.2.1 参照完整性定义 5.2.2 参照完整性检查和违约处理
5.2.1 参照完整性定义
关系模型的参照完整性定义
5.3.4 元组上的约束条件检查和 违约处理
插入元组或修改属性的值时,RDBMS检查元组
上的约束条件是否被满足
如果不满足则操作被拒绝执行
第五章 数据库完整性
5.1 实体完整性
5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制
5.6 触发器
5.7 小结
完整性约束命名子句(续)
[例10] 建立学生登记表Student,要求学号在90000~99999之间 ,姓名不能取空值,年龄小于30,性别只能是“男”或“女”。
CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK (Sage < 30), Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN ( '男','女')), CONSTRAINT StudentKey PRIMARY KEY(Sno) ); 在Student表上建立了5个约束条件,包括主码约束(命名为 StudentKey)以及C1、C2、C3、C4四个列级约束。

在CREATE TABLE中用FOREIGN KEY短
语定义哪些列为外码
用REFERENCES短语指明这些外码参照哪些
表的主码
参照完整性定义(续)
例如,关系SC中一个元组表示一个学生选修的某门课程的 成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用 Student表的主码和Course表的主码
(Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno) );
实体完整性定义(续) [例2]将SC表中的Sno,Cno属性 组定义为码
CREATE TABLE SC (Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL, Grade SMALLINT,
/*只能在表级定义主码*/
PRIMARY KEY (Sno,Cno)
);
5.1.2 实体完整性检查和违约处理
◆插入或对主码列进行更新操作时,RDBMS按 照实体完整性规则自动进行检查。包括:
1. 检查主码值是否唯一,如果不唯一则拒绝插入
完整性约束命名子句(续)
2. 修改表中的完整性限制
使用ALTER TABLE语句修改表中的完整性限制
完整性约束命名子句(续)
[例13] 修改表Student中的约束条件,要求学号改为 在900000~999999之间,年龄由小于30改为小于40 先删除原来的约束条件,再增加新的约束条件
数据库原理及应用
Database Principle and Application
第五章 数据库完整性
数据库完整性
本章重难点:
SQL语言实现完整性控制的ห้องสมุดไป่ตู้法 触发器的定义和使用
数据库完整性(续)
数据库的完整性
数据的正确性和相容性
数据的完整性和安全性是两个不同概念
数据的完整性
5.7 小结
5.3 用户定义的完整性
5.3.1 属性上的约束条件的定义 5.3.2 属性上的约束条件检查和违约处理 5.3.3 元组上的约束条件的定义 5.3.4 元组上的约束条件检查和违约处理
5.3 用户定义的完整性
用户定义的完整性就是针对某一具体应用
的数据必须满足的语义要求
RDBMS提供,而不必由应用程序承担
数据库完整性(续)
在SQL中,表达完整性约束的规则有 主键约束 、 外键约束 、 属性值约束 和 全局约束等 多种形式。
1、主键约束:可用主键子句或主键短语 PRIMARY
KEY 来定义。
2、外键约束:可用外键子句来定义,例如
FOREIGN KEY (Sno) REFERNCES S(Sno)
3、属性值约束:包括非空值约束( NOT NULL )和
/*性别属性Ssex只允许取'男'或'女' */
Sage SMALLINT, Sdept CHAR(20) );
5.3.2 属性上的约束条件检查和 违约处理
插入元组或修改属性的值时,RDBMS检查属
性上的约束条件是否被满足
如果不满足则操作被拒绝执行
5.3.3 元组上的约束条件的定义
在CREATE TABLE时可以用CHECK短语定义元 组上的约束条件,即元组级的限制 同属性值限制相比,元组级的限制可以设置不同
属性上的约束条件的定义(续)
2.列值唯一
[例6] 建立部门表DEPT,要求部门名称Dname列取值 唯一,部门编号Deptno列为主码 CREATE TABLE DEPT (Deptno NUMERIC(2),
Dname CHAR(9) UNIQUE,/*要求Dname列值唯一*/
Location CHAR(10),
CHECK约束以及域约束等
第五章 数据库完整性
5.1 实体完整性
5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制
5.6 触发器
5.7 小结
5.1 实体完整性
5.1.1 实体完整性定义 5.1.2 实体完整性检查和违约处理
5.1.1 实体完整性定义
防止数据库中存在不符合语义的数据,也就是防止数据库中存 在不正确的数据
防范对象:不合语义的、不正确的数据
数据的安全性
保护数据库防止恶意的破坏和非法的存取 防范对象:非法用户和非法操作
数据库完整性(续)
为维护数据库的完整性,DBMS必须:
1.提供定义完整性约束条件的机制 2.提供完整性检查的方法 3.违约处理
PRIMARY KEY (Deptno)
);
属性上的约束条件的定义(续)
3. 用CHECK短语指定列值应该满足的条件
[例7] Student表的Ssex只允许取“男”或“女”。 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (‘男’,‘女’) ) ,
或修改
2. 检查主码的各个属性是否为空,只要有一个为
空就拒绝插入或修改
实体完整性检查和违约处理(续)
第一种情况:
Readers表
若执行: insert into readers(rid) values('2004060001') 则系统会出现:
实体完整性检查和违约处理(续)
第二种情况
向表中插入数据时, 如果没有向主键列上插 入数据,则会出现以下 问题: Readers表
CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) ,
Sage SMALLINT,
Sdept CHAR(20));
实体完整性定义(续)
(2)在表级定义主码
CREATE TABLE Student
关系模型的实体完整性
CREATE TABLE中用PRIMARY KEY定义
单属性构成的码有两种说明方法
定义为列级约束条件 定义为表级约束条件
对多个属性构成的码只有一种说明方法
定义为表级约束条件
实体完整性定义(续)
[例1] 将Student表中的Sno属性定义为码
(1)在列级定义主码
[例3] 定义SC中的参照完整性 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表级定义实体完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /*在表级定义参照完整性*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) /*在表级定义参照完整性*/ );
违约处理(续)
[例4] 显式说明参照完整性的违约处理示例
CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADE /*级联删除SC表中相应的元组*/ ON UPDATE CASCADE, /*级联更新SC表中相应的元组*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE NO ACTION /*当删除course 表中的元组造成了与SC表不一致时拒绝删除*/ ON UPDATE CASCADE /*当更新course表中的cno时,级联更新SC表中相应的元组*/ );
相关文档
最新文档