第三章 关系数据库标准语言SQL_第1页
第三章 关系数据库标准语言SQL_第2页
第三章 关系数据库标准语言SQL_第3页
第三章 关系数据库标准语言SQL_第4页
第三章 关系数据库标准语言SQL_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AnIntroductiontoDatabaseSystem中国人民大学信息学院

王珊数据库系统概论AnIntroductiontoDatabaseSystem第三章关系数据库标准语言SQLAnIntroductiontoDatabaseSystem第三章

关系数据库标准语言SQL3.1SQL概述3.2学生-课程数据库3.3数据定义3.4数据查询3.5数据更新3.6视图3.7小结AnIntroductiontoDatabaseSystem关系数据库的3级模式结构SQL视图2视图1基本表2基本表1基本表3基本表4存储文件2存储文件1外模式模式内模式复习第1章外模式—视图+部分基本表

3级模式的概念:模式——基本表

内模式—存储文件AnIntroductiontoDatabaseSystem关系模型的数据结构基本表本身独立存在的表SQL中一个关系就对应一个基本表一个(或多个)基本表对应一个存储文件一个表可以带若干索引存储文件逻辑结构组成了关系数据库的内模式物理结构是任意的,对用户透明视图从一个或几个基本表导出的表数据库中只存放视图的定义而不存放视图对应的数据视图是一个虚表用户可以在视图上再定义视图AnIntroductiontoDatabaseSystem3.3数据定义3.3.1模式的定义与删除3.3.2基本表的定义、删除与修改3.3.3索引的建立与删除SequentialFile201040306050807010090SequentialFile按照某个属性排序的文件顺序文件上的索引SequentialFile201040306050807010090稠密索引(DenseIndex)102030405060708090100110120OneitemforeachRecordItem:(Searchkey,pointertorecord)B树和B+树B树能自动保持与数据文件大小适应的索引层次平衡树能对所使用的存储空间进行管理,使每个块处于全满半满之间B+树特殊的B树,内部结点只存储索引块叶结点用指针连接4.3.1B+树指向码值为

31的记录指向码值为

37的记录指向码值为

41的记录指向顺序集上的

下一个叶结点典型的叶结点指向码值

K<23指向码值

23≤K<31指向码值

31≤K<43指向码值

K≥43典型的非叶结点参数n=3:每个块存放码值的最大个数:3最小码数:m最小指针数:pB+树指针和码的数量最大指针数最大码数最小指针数(指向数据)最小码数内部结点n+1n(n+1)/2(n+1)/2-1叶结点n+1n(n+1)/2(n+1)/2根结点n+1n11AnIntroductiontoDatabaseSystemB+树中的查找查找键为37的记录13<3731<37<43找到37键值为37的记录IO数:4若把第一、第二层结点保存在缓冲区

IO数:2AnIntroductiontoDatabaseSystemB+树中的查找(若索引块全在磁盘)查找键为37的记录读入root节点,IO=1根据条件13<37,读取下一节点块读入下一节点,IO=2根据条件31<37<43,读取下一节点块读入下一节点,IO=3,找到键值37,读取记录指针,读取记录所在的块MainMemoryDisk读入数据块,IO=4,根据记录指针找到键值为37的记录AnIntroductiontoDatabaseSystemB+树中的查找

(若第一、二层索引块在内存)查找键为37的记录读取root节点,根据条件13<37,读取下一节点块读取下一节点,根据条件31<37<43,读取下一节点块读入下一节点,IO=1,找到键值37,读取记录指针,读取记录所在的块MainMemoryDisk读入数据块,IO=2,根据记录指针找到键值为37的记录B+树的插入三种情况:叶结点满内部结点满动作否否把码放在叶结点合适的位置是否1.分裂叶结点2.把码的中间值放在内部结点合适的位置3.左侧的叶结点包括小于中间值的码4.右侧的叶结点包括大于或等于中间值的码是是1.分裂叶节点2.左侧的叶结点包括小于中间值的码3.右侧的叶结点包括大于或等于中间值的码4.分裂内部结点5.左侧的内部结点包括小于中间值的码6.右侧的内部结点包括大于中间值的码7.把码的中间值放在上一级内部结点合适的位置如果上一级内部结点已满,则继续分裂上一级结点B+树的插入插入码40

(属于情况3)401.分裂叶结点2.码中间值上提

分裂内部结点3.码中间值上提(40,b)B+树的插入插入码40

(属于情况3)1.分裂叶结点2.码中间值上提

分裂内部结点3.码中间值上提13>4031<40<434041叶结点满4340B+树的删除三种情况:叶结点小于最小充满度内部结点小于最小充满度动作否否1.删除叶结点中的码2.对码重新排序3.如果码在上一级内部结点出现,则用下一个码替换是否1.组合叶结点和它的兄弟结点2.相应更改内部结点以反映这种改变是是1.组合叶结点和它的兄弟结点2.相应更改内部结点以反映这种改变3.组合内部结点和它的兄弟结点

继续组合内部结点,直到找到一个满足充满度的结点或者到达根结点B+树的删除删除码7(属于情况2)551.组合叶结点2.更改内部结点以反映这种改变B+树的删除-删除码77<137<=74143577删除码7(属于情况2)1.组合叶结点2.更改内部结点以反映这种改变5B+树的删除删除码11(属于情况3,需要递归更改内部结点)1.组合叶结点5132.更改内部结点以反映这种改变(需要递归)233143B+树的删除-删除码1111<135<11414351.组合叶结点2.更改内部结点以反映这种改变5133123删除码11(属于情况3,需要递归更改内部结点)1113AnIntroductiontoDatabaseSystem3.4数据查询3.4.1单表查询3.4.2连接查询3.4.3嵌套查询3.4.4集合查询3.4.5Select语句的一般形式

AnIntroductiontoDatabaseSystem一、等值与非等值连接查询等值连接:连接运算符为=[例33]查询每个学生及其选修课程的情况

SELECTStudent.*,SC.* FROMStudent,SC WHEREStudent.Sno=SC.Sno;

/*连接谓词*/AnIntroductiontoDatabaseSystem等值与非等值连接查询(续)Student.SnoSnameSsexSageSdeptSC.SnoCnoGrade200215121李勇男20CS200215121192200215121李勇男20CS200215121285200215121李勇男20CS200215121388200215122刘晨女19CS200215122290200215122刘晨女19CS200215122380查询结果:AnIntroductiontoDatabaseSystem等值与非等值连接查询(续)自然连接:[例34]对[例33]用自然连接完成。

SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,

Cno,GradeFROMStudent,SCWHEREStudent.Sno=SC.Sno;AnIntroductiontoDatabaseSystem连接操作的执行:嵌套循环法(NESTED-LOOP)

select*froms,spjwheres.sno=spj.sno;S表SNOSNAMESTATUSCITYS1精益20天津S2盛锡10北京S3东方红30北京S4丰泰盛20天津S5为民30上海SPJ表SNOPNOJNOQTYS1P1J1200S2P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J5400S2P5J1400S2P5J2100S5P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S3P2J4100S5P3J1200S1P6J2200S5P6J4500resultsSNOSNAMECITYQTYS1精益天津200S1精益天津700S1精益天津100S1精益天津200S2盛锡北京100……AnIntroductiontoDatabaseSystem连接操作的执行过程嵌套循环法(NESTED-LOOP)首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。重复上述操作,直到表1中的全部元组都处理完毕

AnIntroductiontoDatabaseSystem连接操作的执行:排序合并法(SORT-MERGE)S表SNOSNAMESTATUSCITYS1精益20天津S2盛锡10北京S3东方红30北京S4丰泰盛20天津S5为民30上海SPJ表SNOPNOJNOQTYS1P1J1200S1P1J3100S1P1J4700S1P2J2100S2P3J1400S2P3J2200S2P3J4500S2P3J5400S2P5J1400S2P5J2100S3P1J1200S3P3J1200S4P5J1100S4P6J3300S4P6J4200S5P2J4100S5P3J1200S5P6J2200S5P6J4500resultsSNOSNAMECITYQTYS1精益天津200S1精益天津700S1精益天津100S1精益天津200S2盛锡北京100……AnIntroductiontoDatabaseSystem排序合并法(SORT-MERGE)常用于=连接首先按连接属性对表1和表2排序对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续AnIntroductiontoDatabaseSystem排序合并法找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。直接遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续重复上述操作,直到表1或表2中的全部元组都处理完毕为止

AnIntroductiontoDatabaseSystem索引连接(INDEX-JOIN)

select*froms,spjwheres.sno=spj.sno;S表SNOSNAMESTATUSCITYS1精益20天津S2盛锡10北京S3东方红30北京S4丰泰盛20天津S5为民30上海SPJ表SNOPNOJNOQTYS1P1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论