数据库原理-第五章
数据库原理与应用第五章课件
5.2 需求分析
5.2.2 需求分析的方法
需求分析常用的调查方法有以下几种: (1)亲自参与业务活动,了解业务处理的基本情况。 (2)请专人介绍。 (3)在对用户的需求了解过程中一定会存在许多疑问,可以通
过与用户座谈、询问等方式来解决这些疑问。 (4)设计调查表请用户填写。如果调查表设计得合理接受。 (5)查问记录。即查问原系统有关的数据记录。 (6)学习文件。及时了解掌握与用户业务相关的政策和业务规
5.6 数据库实施
所谓数据库的实施,就是根据数据库的逻辑结构 设计和物理结构设计的结果,在具体RDBMS支持的计算 机系统上建立实际的数据库模式、装人数据、并进行 测试和试运行的过程。 (1)散数据库的建立与调整 (2)数据库的调整 (3)应用程序编制与调试 (4)数据库系统的试逻辑结构设计阶段 物理结构设计阶段 数据库实施阶段 数据库运行和维护阶段
5.2 需 求 分 析
5.2.1 需求分析的任务
需求分析的任务是通过详细调查所要处理的对象(组织、 部门、企业等),充分了解原有系统的工作概况,明确用户的 各种数据需求、完整性约束条件、事务处理和安全性条件等, 然后在此基础上确定新系统的功能。新系统必须充分考虑今后 可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
(1)一个实体型转换为一个关系模式; (2)实体的属性就是关系的属性,实体的码就是关系的码。
5.5 物 理 设 计
数据库物理设计阶段主要包括以下4个过程: (1)分析影响物理数据库设计的因素。 (2)为关系模式选择存取方法。 (3)设计关系、索引等数据库文件的物理存储结构。 (4)评价物理结构。
(1)数据库的转储和恢复。 (2)维持数据库的完整性与安全性。 (3)监测并改善数据库性能。 (4)数据库的重组和重构。
MySQL数据库原理及应用第5章
构,是某个表中一列或者若干列的集 合以及相应的标识这些值所在的数据 页的逻辑指针清单。索引是依赖于表 建立的,提供了数据库中编排表中数 据的内部方法。表的存储由两部分组 成,一部分是表的数据页面,另一部 分是索引页面。索引就存放在索引页 面上。 索引一旦创建,将由数据库自动管理 和维护。例如,向表中插入、更新和 删除一条记录时,数据库会自动在索 引中做出相应的修改。在编写SQL查 询语句时,具有索引的表与不具有索 引的表没有任何区别,索引只是提供 一种快速访问指定记录的方法。
第5章 数据库的高级应用
第5章 数据库的高级应用
任务要求: 为了提高学生信息管理系统中数据的安全性、完整性和查询速 度,在应用系统开发过程中要充分利用索引、视图、存储过程 和函数、触发器、事务等来提高系统的性能。 学习目标: 了解索引、视图、游标、存储过程和函数、触发器及事务的 作用 掌握索引、视图、游标、存储过程和函数、触发器及事务的 创建方法 掌握索引、视图、游标、存储过程和函数、触发器及事务的 修改及删除方法
5.1.2 索引的类型 5.1.3 索引的设计原则 5.1.4 创建索引 5.1.5 删除索引
【任务分析】
第5章 数据库的 高级应用
5.1 索引 5.2 视图 5.3 SQL编程基础 5.4 存储过程和函 数 5.5 触发器 5.6 事务 5.7 锁
设计人员在数据库中怎样合理地设
1.索引并非越多越好 2.避免对经常更新的表进行过多的索引 3.数据量小的表最好不要使用索引 4.在不同值少的列上不要建立索引 5.指定唯一索引是由某种数据本身的特 征来决定 6.为经常需要排序、分组和联合操作的 字段建立索引
创建索引
第5章 数据库的 高级应用
《数据库原理及应用》第五章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.学号”的形式,查询结果是一样的。
数据库系统原理课后答案 第五章
5.1 名词解释(1)SQL模式:SQL模式是表和授权的静态定义。
一个SQL模式定义为基本表的集合。
一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。
(2)SQL数据库:SQL(Structured Query Language),即‘结构式查询语言’,采用英语单词表示和结构式的语法规则。
一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。
(3)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table)。
基本表是实际存储在数据库中的表,对应一个关系。
(4)存储文件:在SQL中,把传统的关系模型中的存储模式称为存储文件(Stored File)。
每个存储文件与外部存储器上一个物理文件对应。
(5)视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表。
(6)行:在SQL中,把传统的关系模型中的元组称为行(row)。
(7)列:在SQL中,把传统的关系模型中的属性称为列(coloumn)。
(8)实表:基本表被称为“实表”,它是实际存放在数据库中的表。
(9)虚表:视图被称为“虚表”,创建一个视图时,只把视图的定义存储在数据词典中,而不存储视图所对应的数据。
(10)相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。
(11)联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。
联接查询的效率比嵌套查询低。
(12)交互式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。
(13)嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。
(14)共享变量:SQL和宿主语言的接口。
共享变量有宿主语言程序定义,再用SQL 的DECLARE语句说明, SQL语句就可引用这些变量传递数据库信息。
精品课件-数据库原理及应用-第5章
第5章 关系数据库设计理论
(4) 示例模式4。 Teach(Cname,Tname,Rbook); 该关系模式用来存放课程、教师及课程参考书信息。其中, Teach为关系模式名,Cname为课程名,Tname为教师名, Rbook为某课程的参考书名。
第5章 关系数据库设计理论
现实系统的数据及语义可以通过高级语义数据模型(如实 体关系数据模型、对象模型)抽象后得到相应的数据模型。为 了通过关系数据库管理系统实现该数据模型,需要使其向关系 模型转换,变成相应的关系模式。然而,这样得到的关系模式, 还只是初步的关系模式,可能存在这样或那样的问题。因此, 需要对这类初步的关系模式,利用关系数据库设计理论进行规 范化,以逐步消除其存在的异常,得到一定规范程度的关系模 式,这就是本章所要讲述的内容。
第5章 关系数据库设计理论
实际上,设计任何一种数据库应用系统,不论是层次的、 网状的还是关系的,都会遇到如何构造合适的数据模式即逻辑 结构的问题。由于关系模型有严格的数学理论基础,并且可以 向别的数据模型转换,因此,人们就以关系模型为背景来讨论 这个问题,形成了数据库逻辑设计的一个有力工具——关系数 据库的规范化理论。规范化理论虽然是以关系模型为背景,但 是对于一般的数据库逻辑设计同样具有理论上的意义。
第5章 关系数据库设计理论
关系系统当中,数据冗余产生的重要原因就在于对数据依 赖的处理,从而影响到关系模式本身的结构设计。解决数据间 的依赖关系常常采用对关系的分解来消除不合理的部分,以减 少数据冗余。在例5.1中,我们将Teaching关系分解为三个关 系模式来表达:Student (Sno,Sname,Ssex,Sdept), Course(Cno,Cname,Tname)及Score(Sno,Cno,Grade),其 中Cno为学生选修的课程编号;分解后的部分数据如表5.2、 表5.3和表5.4所示。
《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一起使用,对分组后的结果进行过滤。
《数据库系统原理》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中,安全性 检查是任何数据库操作的第一步。
数据库原理 第五章
Database Theory
Integrity Constraints in Create Table
SCT
Student
Not NULL
Primary Key (A1, ..., An) Check (P), where P is a predicate …… E.g.
Create Table Student (Sno char(10) Not NULL, Sname char(20),
DCL (Data Control Language)
Grant Revoke
4 Finance & Economics Zhejiang University of
Database Theory
Data Definition Language (DDL) Allows the specification of not only a set of relations but also information about each relation, including:
char(n) – Fixed length character string, with user-specified length n. varchar(n). – Variable length character strings, with user-specified maximum length
Database Theory
Operations of SQL
DDL (Data Definition Language)
Create
Alter Drop
DML (Data Manipulation Language)
(完整版)数据库原理第五版习题答案
1.试述数据、数据库、数据库系统、数据库管理系统的概念。
答:
( l)数据(Data ):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。500这个数字可以表示一件物品的价格是500元,也可以表示一个学术会议参加的人数有500人,还可以表示一袋奶粉重500克。
20.试述数据库系统三级模式结构,这种结构的优点是什么?
答:
数据库系统的三级模式结构由外模式、模式和内模式组成。(参见书上图1 . 29 )外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMs管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
答:
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。( l)关系:一个关系对应通常说的一张表;( 2)属性:表中的一列即为一个属性;( 3)域:属性的取值范围;( 4)元组:表中的一行即为一个元组;( 5)主码:表中的某个属性组,它可以惟一确定一个元组;( 6)分量:元组中的一个属性值;( 7)关系模式:对关系的描述,一般表示为关系名(属性1,属性2,…,属性n )
数据库原理及应用李唯唯第五章实验
数据库原理及应用李唯唯第五章实验数据库原理及应用是一门涉及数据库设计、管理和应用的学科,主要包括数据库理论和数据库技术的学习与应用。
在学习数据库原理及应用的第五章实验中,我主要学习了数据库的事务管理和并发控制。
事务是数据库管理系统中的一个重要概念,它是由一系列数据库操作组成的逻辑单位,具有原子性、一致性、隔离性和持久性四个特性。
事务的管理可以保证数据库的数据完整性和一致性,在实际应用中起到了非常重要的作用。
在这一章节的实验中,我首先学习了事务的概念和特性,并了解了事务的隔离级别。
数据库的隔离级别包括读未提交、读已提交、可重复读和串行化四个级别,每个级别在并发访问数据库时有不同的表现和效果。
了解了这些隔离级别之后,我在实验中通过设置不同的隔离级别,进行了相关的实验和测试。
在实验中,我使用MySQL数据库进行了相关的操作和设置。
首先,我创建了一个测试用的数据库和表,并插入了一些测试数据。
接着,我通过SQL语句和MySQL的事务命令进行了不同的操作,例如插入、更新、删除等。
在进行操作的过程中,我对不同的隔离级别进行了设置,并观察了不同隔离级别下的数据库表现。
通过实验,我对事务管理和并发控制有了更深入的了解。
在并发访问数据库时,由于多个事务同时进行,可能会导致一些问题,例如脏读、不可重复读和幻读等。
通过设置合适的隔离级别,可以避免这些问题的发生。
在实验中,我观察到在读未提交的隔离级别下,可以发生脏读现象;在读已提交的隔离级别下,脏读得到了避免,但不可重复读问题依然存在;而在可重复读和串行化的隔离级别下,不仅脏读和不可重复读问题都得到了避免,还能够避免幻读问题。
通过这次实验,我不仅学习了事务管理和并发控制的相关知识,还学会了如何使用MySQL进行相关的实际操作。
数据库的事务管理和并发控制在实际应用中非常重要,特别是在多用户环境下,合理设置隔离级别可以保证数据库的数据完整性和一致性。
因此,学习和掌握这些知识对于我今后的工作和学习都具有重要的意义。
数据库原理与应用 第5章答案解析肖海蓉、任民宏
第5 章网络数据库管理系统SQL Server 2012课后习题参考答案1、简答题(1)简述组成SQL Server 2012 数据库的三种类型的文件。
答:SQL Server 数据库文件根据其作用的不同,可以分为主数据文件、次数据文件、事务日志文件3 种类型。
①主数据文件(primary file):主数据文件是数据库的起点,指向数据库文件的其他部分。
主数据文件是用来存放数据和数据库的初始化(启动)信息和部分或全部数据,是SQL Server 数据库的主体,它是每个数据库不可缺少的部分,每个数据库有且仅有一个主数据文件,用户数据和对象也可以存储在此文件中,主数据文件的文件扩展名为.mdf。
②次数据文件(secondary file):用来存储主数据文件没有存储的其他数据和对象。
如果数据库中的数据量很大,除了将数据存储在主数据文件中以外,还可以将一部分数据存储在次数据文件中;如果主数据文件足够大,能够容纳数据库中的所有数据,则该数据库不需要次数据文件。
使用次数据文件是因为数据量太过庞大,可以将数据分散存储在多个不同磁盘上以方便进行管理、提高读取速度。
次数据文件的扩展名为.ndf。
③事务日志文件(transaction log file):用来记录数据库更新情况的文件,SQL Server 2012具有事务功能,可以保证数据库操作的一致性和完整性,用事务日志文件来记录所有事务及每个事务对数据库进行的插入、删除和更新操作。
事务日志是数据库的重要组件,如果数据库遭到破坏,可以根据事务日志文件分析出错的原因;如果数据丢失,可以使用事务日志恢复数据库内容。
每个数据库至少拥有一个事务日志文件,也可以拥有多个日志文件。
事务日志文件的文件扩展名为.ldf。
(2)SQL Server 2012 有哪些系统数据库,它们的作用是什么?SQL Server 2012 中主要包括master、model、tempdb 和msdb 四个系统数据库。
数据库原理及应用第5章课后习题答案
习题51、 理解并给出下列术语的定义:1)设R(U)是一个属性集U 上的关系模式,X 和Y 是U 的子集。
若对于R(U)的任意一个可能的关系r ,r 中不可能存在两个元组在X 上的属性值相等, 而在Y 上的属性值不等, 则称 X 函数确定Y 或 Y 函数依赖于X ,记作X →Y 。
2) 完全函数依赖在R(U)中,如果X →Y ,并且对于X 的任何一个真子集X ’,都有Y 不函数依赖于X ’ ,则称Y 对X 完全函数依赖,记作Y X F −→−3) 部分函数依赖若X →Y ,但Y 不完全函数依赖于X ,则称Y 对X 部分函数依赖,记作Y X p −→−4) 传递函数依赖在R(U)中,如果X →Y ,(Y ⊆X) , Y →X ,Y →Z , 则称Z 对X 传递函数依赖。
记为:Z X T−→−注: 如果Y →X , 即X ←→Y ,则Z 直接依赖于X 。
5)候选码设K 为R (U,F )的属性或属性组合。
若U K F →, 则K 称为R 的侯选码。
6)主码:若候选码多于一个,则选定其中的一个作为主码。
7)外码:关系模式 R 中属性或属性组X 并非 R 的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key )也称外码8)如果一个关系模式R 的所有属性都是不可分的基本数据项,则R ∈1NF.9)若R ∈1NF ,且每一个非主属性完全函数依赖于码,则R ∈2NF 。
10)如果R(U,F )∈2NF ,并且所有非主属性都不传递依赖于主码,则R(U,F )∈3NF 。
11)关系模式R (U ,F )∈1NF ,若X →Y 且Y ⊆ X 时X 必含有码,则R (U ,F ) ∈BCNF 。
12)关系模式R<U ,F>∈1NF ,如果对于R 的每个非平凡多值依赖X →→Y (Y ⊆ X ),X 都含有码,则R ∈4NF 。
2、 关系规范化的操作异常有哪些?1) 数据冗余大2) 插入异常3) 删除异常4) 更新异常3、 第一范式、第二范式和第三范式关系的关系是什么?4、 已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A->D,B->C,E-> A},该关系模式的候选码是什么?候选码为:(E,B)5、 已知学生表(学号,姓名,性别,年龄,系编号,系名称),存在的函数依赖集合是{学号->姓名,学号->性别,学号->年龄,学号->系编号,系编号->系名称},判断其满足第几范式。
数据库系统原理教程第五章清华大学
存取控制(续)
– 关系数据库中授权的数据对象粒度 • 数据库 •表 • 属性列 •行
– 能否提供与数据值有关的授权反映了授权子 系统精巧程度
存取控制(续)
实现与数据值有关的授权
– 利用存取谓词 • 存取谓词可以很复杂 – 可以引用系统变量,如终端设备号, 系统时钟等,实现与时间地点有关的 存取权限,这样用户只能在某段时间 内,某台终端上存取有关数据
DBMS中的数据加密
– 有些数据库产品提供了数据加密例行程序 – 有些数据库产品本身未提供加密程序,但提
供了接口
数据加密(续)
数据加密功能通常也作为可选特征,允 许用户自由选择
– 数据加密与解密是比较费时的操作 – 数据加密与解密程序会占用大量系统资源 – 应该只对高度机密的数据加密
5.1 安全性
享
例:军事秘密、 国家机密、 新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、 医疗档案、 银行储蓄数据
安全性(续)
– 数据库中数据的共享是在DBMS统一的严格 的控制之下的共享,即只允许有合法使用权 限的用户访问允许他存取的数据
– 数据库系统的安全保护措施是否有效是数据 库系统主要的性能指标之一
例:DBA建立一用户U12后,欲将ALTER
TABLE、CREATE VIEW、CREATE INDEX、 DROP TABLE、DROP VIEW、DROP INDEX, GRANT,REVOKE、INSERT 、 SELETE、UPDATE、DELETE、AUDIT、 NOAUDIT等系统权限授予U12,则可以只简 单地将CONNECT角色授予U12即可:
空
3. 定义视图
视图机制把要保密的数据对无权存取这些数据 的用户隐藏起来,从而自动地对数据提供一定 程度的安全保护。
数据库原理第五章PPT课件
9
记录一般不会刚好填满物理块,会留下不用的零头 空间:
B―p×R<R
记录1 记录2 记录3 记录4
为了利用这部分空间,可以利用记录的跨块存储组 织(spanned organization)。
10
定长记录(跨块)
块i
记录1
记录2
记录3 记录4
区 址最 高 键
相对地址
1 121
2 134 3 167 4 182
5 203 6 211 7 223
8
9 229 10 231 11 237 12
241
索引键
13 255 14 259 15 267 16 271 …
…
37
查找索引键为211的记录的存储地址
211
271 430 601
182 4 201
Student(SNO,SNAME,SEX,BIRTHDATE, DEPT)
散列函数 H(SNO)=Address
90041 李林 … 计算机系 2
H(900412)=@addr
@addr
90041 李林 … 2
计算机系
存储空间
29
直接文件存在的问题: 键所映射的地址范围固定(地址范围设的太大或 太小都不好,为什么?)。 地址重叠问题(处理地址重叠增加了开销)。 直接文件只对散列键的访问有效。 不便于处理变长记录。 对于通用的DBMS很难找到通用的散列函数。 上述原因导致直接文件目前在数据库系统中使用不多。
0001 Nanjing 0002 Nanjing 0003 Nanjing 0004 Shanghai 0005 Shanghai
数据库管理系统原理 第五章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学
数据库管理系统原理第五章测验一、单选题(共40.00分)1. 哪种完整性将两个表中的相应元组联系起来,对其中一个表进行增删改操作时有可能破坏相应的完整性,必须进行检查。
()A. 过程完整性B. 实体完整性C. 参照完整性D. 用户定义完整性正确答案:D2. 完整性约束命名子句CONSTRAINT <完整性约束条件名><完整性约束条件> <完整性约束条件>包括NOT NULL、UNIQUE等,请从下列选项中选出不用于构造完整性约束条件的短语()。
A. CHECK短语B. PRIMARY KEY短语C. FOREIGN KEY短语D. ALTER短语正确答案:D3. 一个数据表上可能定义了多个触发器,执行下列语句,正确的执行顺序是()1、执行该表上的BEFORE触发器; 2、激活触发器的SQL语句; 3、执行该表上的AFTER触发器。
A. 1、2、3B. 2、1、3C. 2、3、1D. 3、1、2正确答案:A4. 下列关于定义触发器的语法说明错误的选项是()。
A. 表的拥有者才可以在表上创建触发器B. 触发器可以定义在基本表上,也可以定义在视图上C. 同一模式下,触发器名必须是唯一的,触发器名和表名必须在同一模式下D. 触发器只能定义在基本表上,不能定义在视图上正确答案:B二、多选题(共33.00分)1. 触发器类型()。
A. 行级触发器(FOR EACH ROW)B. 列级触发器(FOR EACH COLUMN)C. 语句级触发器(FOR EACH STATEMENT)D. 表级触发器(FOR EACH TABLE)正确答案:A C2. CREATE TABLE DEPT ( Deptno NUMERIC(2), Dname CHAR(9) UNIQUE NOT NULL)关于关键子句“ UNIQUE NOT NULL”描述正确的选项()。
A. 实体完整性B. 要求Dname列值唯一, 或者不能取空值C. 用户定义的完整性D. 要求Dname列值唯一, 并且不能取空值正确答案:C D3. 数据的安全性描述正确的选项()。
数据库系统原理PrinciplesofDatabaseSystem
完整性:能否真实地反映现实世界
数据的完整性和安全性是两个不同概念
DB
数据的完整性
防止数据库中存在不符合语义的数据,也就 是防止数据库中存在不正确的数据 防范对象:不合语义的、不正确的数据
数据的安全性
保护数据库防止恶意的破坏和非法的存取
防范对象:非法用户和非法操作
第五章
DB
数据库完整性
为维护数据库的完整性,DBMS 必须提供一种机
取值不空且唯一,部门编号Deptno 列为主码。 CREATE TABLE DEPT (Deptno CHAR(2) PRIMARY KEY, Dname CHAR(10) UNIQUE NOT NULL ,
5.1.2 实体完整性检查和违约处理
DB
索引
新插入记录 的主码值: 25 新插入记录 的主码值: 86
B+树索引
5.1.2 实体完整性检查和违约处理
DB
检查记录中主码值是否唯一的一种方法是进行全表
扫描。
全表扫描是非常耗时的。为了避免对基本表进行全 表扫描,RDBMS一般都在主码上自动建立一个索引 SQL Server在自动在主码上建立聚族索引 通过索引查找基本表中是否已经存在新的主码值, 将大大提高效率。
DB
5.3 用户定义的完整性
5.3.1 属性上的约束条件的定义 5.3.2 属性上的约束条件检查和违约处理 5.3.3 元组上的约束条件的定义
5.3.4 元组上的约束条件检查和违约处理
5.3.1 属性上的约束条件的定义
DB
在CREATE TABLE中定义属性的同时可以根据具体
的应用要求,定义属性上的约束条件,即属性取值的
例4 在创建选课基本表时,显式地说明参
数据库第5章
1-6 郑州轻工业学院软件职业技术学院
总的来说计算机安全涉及的问题
计算机系统本身的技术问题
计算机安全理论与策略
计算机安全技术
管理问题
安全管理 安全评价 安全产品
数据库原理
1-7 郑州轻工业学院软件职业技术学院
计算机安全涉及问题(续)
法学
计算机安全法律
犯罪学
计算机犯罪与侦察 安全监察
能访问他有权存取的数据,必须预 先对每个用户定义存取权限。
检查存取权限
对于通过鉴定获得上机权的用户
(即合法用户),系统根据他的存 取权限定义对他的各种操作请求进 行控制,确保他只执行合法操作。
数据库原理
1-22 郑州轻工业学院软件职业技术学院
常用存取控制方法
自主存取控制(Discretionary Access
5.3.2 授权(Authorization)与回收
在数据库系统中,定义用户存取权限称为授权 (Authorization)。 第三章讨论 SQL 的数据控制功能时,我们已知道授权有两种: 系统特权和对象特权。 系统特权是由DBA授予某些数据库用户,只有得到系统特 权,才能成为数据库用户。 对象特权可以由DBA授予,也可以由数据对象的创建者授 予,使数据库用户具有对某些数据对象进行某些操作的 特权。 在系统初始化时,系统中至少有一个具有DBA特权的用户,DBA 可以通过GRANT语句将系统特权或对象特权授予其他用户。 对于已授权的用户可以通过REVOKE语句收回所授予的特权。
用户标识和鉴定的方法有多种,为了获得更强的安全性, 往往是多种方法并举,常用的方法有以下几种:
数据库原理
1-18 郑州轻工业学院软件职业技术学院
数据库第五章
数据库第五章在学习数据库的过程中,第五章往往是一个关键的转折点。
这一章通常会涉及到一些更深入、更复杂的概念和技术,为我们进一步理解和应用数据库打下坚实的基础。
首先,第五章可能会着重探讨数据库的索引结构。
索引就像是一本书的目录,它能够帮助我们快速地找到所需的数据。
想象一下,如果没有目录,我们要在一本厚厚的书中找到特定的内容,那将是多么耗时费力。
数据库中的索引也是如此,它可以大大提高数据检索的效率。
常见的索引类型包括 B 树索引、哈希索引等。
B 树索引适用于范围查询,而哈希索引则在精确匹配查询时表现出色。
了解不同索引类型的特点和适用场景,对于优化数据库性能至关重要。
其次,数据库的存储结构也是这一章的重要内容。
数据在磁盘上的存储方式会直接影响到数据的读写速度和存储空间的利用效率。
比如,连续存储可以提高读取的性能,但不利于数据的插入和删除;而链式存储则在插入和删除操作上更具优势,但读取时可能需要更多的时间来遍历链表。
此外,还会涉及到数据的压缩技术,通过合理的压缩算法,可以减少数据存储空间,降低存储成本。
第五章可能还会讲到数据库的查询优化。
当我们向数据库发送一个查询请求时,数据库系统需要决定如何以最有效的方式执行这个查询。
这涉及到对查询语句的分析、执行计划的生成和选择。
比如,在一个包含多个表的复杂查询中,选择合适的连接方式(内连接、外连接等)以及确定表的访问顺序,都能对查询性能产生巨大的影响。
为了实现查询优化,数据库管理员需要了解数据库系统的内部机制,能够通过查看执行计划来判断查询的效率,并根据实际情况进行调整。
另外,事务处理也是这一章不容忽视的部分。
事务是数据库操作的基本单位,它具有原子性、一致性、隔离性和持久性这四个重要特性,通常被称为ACID 特性。
原子性确保事务中的所有操作要么全部成功,要么全部失败,不会出现部分成功的情况;一致性保证事务执行前后数据库的状态始终是合法的;隔离性使得多个并发事务之间相互隔离,不会相互干扰;持久性则保证事务一旦提交,其结果就会永久保存,不会因为系统故障而丢失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.6 触发器
定义触发器 激活触发器 删除触发器 Sqlserver2005中的触发器
9
激活触发器
触发器的执行,是由触发事件激活的,并由数据 库服务器自动执行。
一个数据表上可能定义了多个触发器同一个表上 的多个触发器激活时遵循如下的执行顺序:
• (1) 执行该表上的BEFORE触发器; • (2) 激活触发器的SQL语句; • (3) 执行该表上的AFTER触发器。 • 同一个表上的多个BEFORE(AFTER)触发器的执行
7
• [例19]续
– CREATE TRIGGER Update_Sal AFTER UPDATE ON Teacher FOR EACH ROW AS BEGIN IF (new.Sal <> old.Sal) THEN INSERT INTO Sal_log VALUES(new.Eno,new.Sal,CURRENT_USER,CURRENT_TIMESTAMP); END IF; END;
6
• [例19]定义AFTER行级触发器,当教师表Teacher的工资发生变化后就 自动在工资变化表Sal_log中增加一条相应记录
• 首先建立工资变化表Sal_log
– CREATE TABLE Sal_log ( Eno NUMERIC(4) references teacher(eno) Sal NUMERIC(7,2), Username char(10), Date TIMESTAMP );
– DROP TRIGGER Insert_Sal ON Teacher;
12
5.6 触发器
定义触发器 激活触发器 删除触发器 Sqlserver2005中的触发器
13
Sqlserver2005中的触发器 触发器是什么?
• 触发器是用户定义在关系表中的一类由事件驱动的特殊 过程。
• [例18] 定义一个BEFORE行级触发器,为教师表Teacher定义 完整性规则“教授的工资不得低于4000元,如果低于4000元,自 动改为4000元”。
– CREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher FOR EACH ROW AS BEGIN IF ( new.Job = '教授' ) AND (new.Sal < 4000) THEN new.Sal := 4000; END IF; END;
和操作,具有更精细和更强大的数据控制能力。
触发器的定义
• CREATE TRIGGER语法格式
– CREATE TRIGGER <触发器名> <BEFORE | AFTER> <触发事件> ON <表名> FOR EACH <ROW | STATEMENT>
[WHEN <触发条件>] <触发动作体>
– CREATE TRIGGER Insert_Sal AFTER INSERT ON Teacher FOR EACH ROW AS BEGIN INSERT INTO Sal_log VALUES(new.Eno,new.Sal,CURRENT_USER,CURRENT_TIMESTAMP); END;
数据库原理
主讲人:王子健
1
第五章 数据库完整性
实体完整性 参照完整性 用户自定义的完整性 完整性约束命名子句 触发器
2
5.6 触发器
定义触发器 激活触发器 删除触发器 Sqlserver2005中的触发器
3
定义触发器
触发器是什么?
• 触发器是用户定义在关系表中的一类由事件驱动的特殊过程。 • 表中数据的增、删、改操作是激活触发器的事件。 • 触发器可以实施比foreign key约束、check约束更为复杂的检查
• 在执行某些特定的SQL语句(触发特定事件)时自动执 行。
• 表的创建,修改,删除是激发触发器的事件(DDL触发 器)
• 表中数据的增、删、改操作是激活触发器的事件 (DML触发器)。
• 触发器可以实施比foreign key约束、check约束更为 复杂的检查和操作,具有更精细和更强大的数据控制能 力。
顺序:
– 遵循“谁先创建,谁先执行”的原则 – 按字母顺序
10
激活触发器
例题
• [例20]执行修改某个教师工资的SQL语句,激活上 述定义的触发器。
– UPDATE Teacher SET Sal=800 WHERE Ename='陈平';
• 执行顺序是:
– 执行触发器Insert_Or_Update_Sal – 执行SQL语句“UPDATE Teacher SET Sal=800 WHERE
4
定义触发器
触发器的定义
• 语法详解
– 创建者:表的拥有者 – 触发器名:为触发器命名 – 表名:触发器的目标表的名字 – 触发事件:INSERT、DELETE、UPDATE或它们的组合 – 触发器的类型:行级触发器和语句级触发器 – 触发条件:触发器被激活时,根据该条件判断是否执行<触发动作体
> – 触发动作条:是一个匿名过程块,或是对以创建存储过程的调用。
如果是行级触发器,用户可以在过程体中使用NEW和OLD引用 UPDATE/INSERT事件之后的新值和UPDATE/DELETE事件之前的 旧值。如果是语句级触发则不能在动作体中使用NEW或OLD进行 引用。
5
定义触发器
触发器的定义
Ename='陈平';” – 执行触发器Insert_Sal; – 执行触发器Update_Sal
11
删除触发器
删除触发器的SQL语法:
• DROP TRIGGER <触发器名> ON <表名>; • 触发器必须是一个已经创建的触发器,并且只能由具有
相应权限的用户删除。 • [例21] 删除教师表Teacher上的触发器Insert_Sal
14
Sqlserver2005中的触发器 触发器的定义?
• 在定义触发器时应指定触发器的:
– 名称 – 目标表格 – 触发事件 – 类型(执行动作体的方式) – 动作体(过程块)