1、1 .PPT 课件练习Chap01 数据库系统概述PPT27-411.3 数据库系统的组成什么是数据库系统指使用数据库技术存储大量有组织相关数据的计算机系统。数据库系统的目标可实现对有组织、大量相关数据进行管理和维护,支持用户访问、检索和更新所需信息。硬件:计算机身,CPU内存、外存、I/O设备计算机网络软件:操作系统;应用程序开发工具;实用程序数据库管理系统,数据库系统的核心。用户应用程序员,负责编写数据库应用程序最终用户,可以是具有专业背景的用户,可以是一些并未受过IT 训练的普通用户数据库管理员 DBA熟悉计算机数据处理业务、负责设计和维护数据库的技术人员文档及说明书系统运行所必需的各类
2、文档和说明书。数据库应用体系结构客户 / 服务器 (Client/Server, C/S) 结构。客户端Client :请求SQL服务的软件进程。服务器Server :提供SQL服务的软件进程。一个服务器可支持多个数据库;一个数据库包含多个关系。1.4 数据库模式(Schema) 结构什么是模式?模式是对某个数据库的逻辑结构的完整描述,通常用一组DDL来描述。数据独立性数据物理独立性改动存储结构时,逻辑结构可不改变,从而避免应用程序的“感知” 。数据逻辑独立性一个数据库有它的总体结构, 而某个应用的需要有各种局部的逻辑结构, 数据库系统同样提供映射,实现局部逻辑与总体逻辑之间的转换,允许局部逻
3、辑有独立于总体逻辑的表示方法。数据库的数据独立性依靠模式分级及模式之间的映像实现。1.5 数据库管理系统概述主要指对数据库存取、管理和维护的系统软件,通常叫做数据库管理系统, 负责响应和处理各类用户对数据库的各种操作请求。数据存储器主要以文件方式存储数据和元数据元数据 metadata :关于数据的结构信息。数据按元数据规范的格式存储。索引 index :一种支持对数据库中数据有效存取的数据结构,以快速查找数据项 (item) 。索引是数据的一部分,而对索引的说明则是元数据的一部分。Hash 表是早期建立索引的主要方法,现一般使用 B(Balance) 树。查询处理器命令转变为对存储数据的操作
4、序列,主要问题是优化。SQL接受操作请求,把编译器:负责对查询或更新语句进行优化。解释器:负责编译或解释模式更新。预编译器器:完成嵌入在宿主语言中的查询语句。查询优化:找到查询语句的最佳执行规划,即完成这条语句需要的成本最少。处理三种SQL命令模式更新:通常由管理员和设计员使用,改变当前数据库模式。查询:对数据的询问。两种接口:通用的交互式接口 (Interactive SQL) 和 API 。数据更新:改变当前数据库中数据的状态。存储管理器接受上层数据请求,提取或更新对应的数据。包括文件管理和缓冲区管理。依赖于特定OS。文件 file 管理:磁盘文件分块 block : 1K-16K 。负责
5、跟踪磁盘上文件的位置;从磁盘上获取数据块,选择用于存储这些数据块的内存位置缓冲区 buffer 管理:文件到内存的映像。内存分页page : 1K-4K 。可以把磁盘上的数据块保存一段时间, 但是如果内存紧张的话, 可以释放这些数据块, 然后利用这些释放出来的空间保存新的数据块。事务管理器负责系统数据的完整性;保证并发运彳f的多个SQL命令相互不冲突;保证系统出现故障时不丢失数据。什么是事务Transaction一组按顺序执行的操作单元数据库系统允许许多事务并发地执行,保证这些事务全部正确的执行是DBM计事务管理程序的任务。事务特性 ACIDAtomicity :原子性,一个事务中的一组操作,
6、要么全部执行,要么一点也不执行。Consistency :一致性,保持正确状态Isolation :隔离性,多个事务并发运行时,作用效果相互分开。Durability :持久性,事务完成后,即使系统发生故障,事务的结果不丢失。如何保持事务特性日志 (logging): 为保证持久性,数据库的每一个变化都记录在单独的磁盘上并发控制 (concurrency control):事务必须表现为以孤立的方式执行; 多个事务的单个动作是按某个顺序来执行。消除死锁 (deadlock resolution): 通过对正在执行的事务进行干预, 以便其他的事务得以顺利的执行。Chap04 数据库建模PPT12
7、-32,39-57chap02 关系数据模型和 chap03 关系数据库设计理论( 1 )如何计算属性的闭包? PPT82-86给定函数依赖集S和属性集A=A1,A2,An,如何计算 A+?1将X初始化为A1,A2,An,闭包最小集合。2遍历S中的每个函数依赖,对于每个函数依赖:B1B2Bm-C若B1、B2、Bm都在X中,而C不在X中,则把 C加入X中。3 重复第 2 步,直到遍历完S 中所有函数依赖,而没有新属性能加入到 X 中。4 最终属性集 X 即为属性集A 在函数依赖集S 下的闭包 A+ 。( 2 )属性闭包和键码之间关系PPT89-92对于一个关系 R,当且仅当A1,A2,An+是关
8、系R所有属性的集合,则属性A1,A2,An是关系 R 的超键码。可通过计算属性的闭包确定关系的键码A1,A2,An+是关系R所有属性的集合A1,A2,An任一真子集的闭包不是关系R所有属性的集合。( 3 )如何求最小函数依赖集合?PPT95-99(1)根据分解规则,可得到一个与F 等价的函数依赖集 G, G 中每个函数依赖右边均为单属性。(2)在 G 中消除冗余的函数依赖。(3)在 G 中消除每个函数依赖中左边冗余的属性。(4)如何求函数依赖的投影?PPT100-103对于子关系R1的属性集合U中的每个属性子集 X,计算X+,于是对于满足下列条件的每个属性B,函数依赖X- B在R1中成立:B是
9、R1的一个属性,B属于X+,而且B不属于X。令T为最终输出的FD集合,初始化为对于子关系R1的属性集合U中的每一个子集 X,计算X+。该计算依据FD集合S,可能会涉及一 些关系模式R中存在却不在R1中的属性。对于所有在X+中且属于R1的属性A,将所有的非平凡 FD XfA加入到T中T是在R1中成立的FD基本集,但可能不是最小化基本集。可通过求最小函数依赖集合的方法构造最小化基本集。(5)判断关系是否满足BCNF 和如何分解为 BCNFPPT112-121关系R 满足BC 范式的两种情形关系R 中不存在非平凡函数依赖。 (只有平凡函数依赖)每个非平凡函数依赖左面包含某个键码(即左面是超键码) 。
10、判断 bc 范式找出所有的键码Key ;检查所有非平凡函数依赖;左面是否为超键码?1找一个违背 BCNF的非平凡函数依赖 A1A2An -B1B2Bm。注意:函数依赖右边包含尽可能多的属性,要求是 A1,A2,An+(但不是必需),这样能够 减少总的工作量。2 把关系 R 分解成两个关系:R1(A1,A2,An, B1,B2,Bm)。R2(A1,A2,An,所有其它属性)注意:若不满足 BC 范式,则再分解。(5)判断关系是否满足3NF 和如何分解为 3NFPPT133-137,141一个关系模式总可以分解为满足 3NF 的模式这个分解既可恢复信息,又保持所有函数依赖。如何定义 3NF?关系模
11、式 R 满足 3NF ,当且仅当若非平凡函数依赖A1A2An-B在关系R中成立,A1,A2,An是R的超键码或者 B是某个键码的组成部份(键属性)。 3NF 满足 Booking ( movie, theater, city ) 根据定义,关系对于关系模式R 和 R 上的函数依赖集合 F ,先求出 F 的最小依赖集合G;对最小依赖集合 G中的每个函数依赖X-Y,用XY去构成分解出的某一个关系模式;若分解出的每一个关系模式都不包含 R 的任何一个候选键码,则用任何一个候选键码构成一个新的关系模式。(6)判断关系是否满足 4NF 和如何分解为 4NFPPT143-155R 中不存在非平凡多值依赖。
12、( 只有平凡多值依赖)R 中存在非平凡多值依赖,则要求所有非平凡多值依赖的左面包含某个键码。上例:关系 Star (name, street, city, title, year)中有非平凡多值依赖name street city左面不是超键码,故不符合 4NF。但符合BCNF。(假设增加一个属性gender表示性别,又符合什么范式? )注意:键码和超键码只与函数依赖有关,增加多值依赖并不改变键码的定义。注意: 每个函数依赖都是一个多值依赖, 违背 BCNF 肯定违背 4NF ;满足 4NF 肯定满足 BCNF注意: 4NF 在 BCNF 基础上,进一步消除非平凡多值依赖引起的冗余。与 BCN
13、F 分解相似1找一个违背4NF的多值依赖 A - B, A不是超键。2 把关系 R 分解两个关系:R1 (A, B) ; R2 (A, 所有其它属性),若不满足 4NF ,则再分解chap05 关系代数( 1 )笛卡尔积PPT12-13 若要恢复原有信息,需要将分解后关系进行合并。关系合并分为无条件合并和有条件合并。对于关系R和S,笛卡尔积表示为:RX So结果关系的属性数量=R+S若 R 和 S 中出现同名公共属性,使用“关系名 .属性名”进行区别。结果关系的元组: R 中的每个元组与S 中每个元组的自由组合。兀组数量是R x S。(2) 自然连接PPT14-16 若要将分解后关系重新恢复原
14、有信息, 需要对关系进行有条件合并,而且必须是自然连接。对于两个关系R和S,自然连接表示为R S确切说,设A是R和S的公共属性,当且仅当 R的元组r与S的元组s在A上都一致时,元组 s 和 r 组合成为 R S 的一个元组,称为一个连接元组。结果关系的属性:属性数量=RUS ,去掉其中同名的一个或一组公共属性;结果关系的元组: R 和 S 在同名公共属性上一致的元组进行组合配对。(3) 8连接PPT18-19自然连接必须根据特定的条件(公共属性取值相同)进行元组配对,但有时候需要把满足其他条件的元组进行配对,这个条件可以是任意条件8 , 现在一般用 c 表示这个条件。对于两个关系 R和S,基于
15、条件c的8连接表示为R cS,计算步骤:计算RXS ,即笛卡尔积; 用条件c做选择运算:b c(RXS)。( 4 )关系代数语法树PPT22-25Sta StarName (T 100 LengthMovie.title,Movie.year,length,InColorMovie.year = StarIN.year XStudioName,StarName (T . Movie.title = StarIN.title ANDMovieStarInPPT26-28为有效管理,需对关系名和属性名进行改名。(5)改名关系名不变,仅改属性名,An) (S) S (A1, A2,表示为p既改关系名
16、,又改属性名,An) (R),表示为p S (A1, A2, 只改关系名,不改属性名表示为p S (R)PPT30-32设有关系:(6)综合练习)年龄,姓名性别,学生(学号,)成绩,课号,选修(学号)教师,课名,课程(课号 完成以下要求:的学 生学号1.选修课号为c2)选修=c2( n学号0课号的学生学号和姓名选修课号为c22.)选修 学生 姓名 n学号,(b课号 =c2(的学生学号和姓名选修课名为Maths3.)课程 学生( 选修( n学号,姓名0课名 =Maths设有关系:)年龄,性别,学号学生 (,姓名)成绩,课号,选修(学号)教师课名,课程(课号,完成以下要求:的学生学号或C24.选修
17、 课号为ci)选修=c2( b课号 n学号(b课号=ci(选修)u n学号的学生学号,亦选修c25.既选修课号为c1)选修(b课号=c2()b课号n学号(=c1(选修nn学号设有关系:)年龄T别,姓名,学号学生()成绩,课号,学号(选修课程(课号,课名,教师)完成以下要求:6 .没选修课号为c1的学生学号n学号(选修)n学号(0课号=ci(选修)7 .学习全部课程的学生姓名n姓名(学生(n学号,课号(选修)+n课号(课程)8 .所学课程包含S3所学课程的学生学号n学号,课号(选修)+n课号(0学号= S3(选修)(7)关系约束1若R是一个关系代数表达式,则2若R和S是关系代数表达式,则 当然,
18、S中可能包含其他不在 这两种方式都能表示等价的语义。PPT39-42关系代数作为约束语言,两种方式表示约束:R= 4表示R的值必须为空,与R中没有元组等价。R S表示任何在 R中出现的元组都必须在S中出现oR中出现的元组R=()等价于R 4R S等价于R-S= 4(8)分组操作PPT50-52表达式丫 L(R)所产生的关系把关系R的元组分组。每一组有具有L中分组属性为特定赋值的所有元组构成。对于每一组,产生如下内容的元组:那个组的分组属性值。本组中所有元组对列表L的属性聚集操作的结果。(9)扩展投影PPT53-54扩展投影操作n L(R),使它支持在元组上的操作,其投影列表可以是以下所列出的元
19、素之一:1. R 的一个属性。2 .形如x-y的表达式,其中,x和y都是属性名字。x-y表示R中x属性取来并重命名为y。3 .形如E-z的表达式,其中 E是一个涉及R的属性、常量、代数运算或字符串运算的表 达式。 z 是表达式 E 得到结果属性的新名字。( 8 )外连接PPT57-60 连接操作的缺陷连接操作的一个性质是可能产生悬挂元组。 而这些元组不能跟另外关系的任何一个元组匹配,所以这种连接操作并不能完全反映原始关系的全部信息。什么是外连接考虑两个关系 R 和 S 的自然连接, 然后再把来自 R 或 S 的悬浮元组加入其中, 用 null 的表示符号 补齐结果元组中那些不具有值的属性。我们
20、称之为外连接,用符号表示。只是将左变量R 的悬浮元组补齐加入到结果中,称之左外连接,用符号RLS 表示。只是将右变量S 的悬浮元组补齐加入到结果中,称之右外连接,用符号RRS 表示。8外连接的操作是,先进行8连接,然后将那些不能匹配其他关系的元组,也用补齐,用UCV表示一个带条件C的0外连接。同样,可用 L或R来修饰这个算符,使其表示0的左外连接或右外连接。SQL数据库语言 chap06( 1 )定义和修改关系模式PPT12-39( 2 ) SQL 中的简单查询PPTP44-56( 3 )多个关系的查询PPT57-88(4)聚集查询PPT91-97(5)视图操作PPT98-108Chap10 SQL 的事务机制和安全认证 PPT2-16,27-402. 理论作业( 1 )理论作业01 : E/R 图建模及转化成关系模式( 2 )理论作业02 :属性闭包的计算和函数依赖的投影(3)理论作业 03:关系模式满足 BCNF 3NF和4NF的判断和分解( 4 )理论作业04 :关系代数表达式的计算(复杂查询要求可考虑分步实现)3. 上机作业( 1 )上机作业01 :创建和修改关系模式;SQL语句的简单查询( 2 )上机作业02 :关系实例的数据操纵(添加、修改和删除)(3)上机作业 03: SQL语句的多关系查询和子查询(4)上机作业04: SQL语句的聚集查询和视图操作