《高级数据库技术》PPT幻灯片

上传人:日度 文档编号:148658232 上传时间:2020-10-21 格式:PPT 页数:58 大小:486KB
返回 下载 相关 举报
《高级数据库技术》PPT幻灯片_第1页
第1页 / 共58页
《高级数据库技术》PPT幻灯片_第2页
第2页 / 共58页
《高级数据库技术》PPT幻灯片_第3页
第3页 / 共58页
《高级数据库技术》PPT幻灯片_第4页
第4页 / 共58页
《高级数据库技术》PPT幻灯片_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《《高级数据库技术》PPT幻灯片》由会员分享,可在线阅读,更多相关《《高级数据库技术》PPT幻灯片(58页珍藏版)》请在金锄头文库上搜索。

1、1,高级数据库技术,金培权 ,课程目的,掌握数据库设计和优化的方法 深入掌握DBMS的原理和技术 了解DBMS实现技术,课程内容,Part 1: Application-Oriented 关系数据库理论回顾 数据库设计方法与案例分析 Part 2 : System-Oriented 数据库文件与系统结构 索引结构 查询处理 缓冲区管理 恢复 锁与并发控制,课程主页,linked in,课程安排,讲课实验 50学时讲授,20学时实验 教材 Database System Implementation(2th) ,H. Garcia-Molina, J.D. Ullman, J. Widom. 机

2、械工业出版社 参考文献 Database Management Systems(3rd),Raghu Ramakrishnan et al.et al, 清华大学出版社 Database System Concepts(3rd),Abraham Silberschatz et al,机械工业出版社 A First Course to Database System, J. Ullman et al., 机械工业出版社 数据库系统概论(第4版), 萨师煊,王珊. 高教出版社,课程安排,考核 期末考试60 作业20 实验20 预备知识 数据库系统原理,SQL,数据库应用编程,课程安排,上机软件 O

3、racle/Sybase ASE/MS SQL Server Sybase PowerDesigner C+/Java,课程知识结构,Chp.1 数据库系统概述,Chp.2 关系数据库回顾,Chp.3 数据库设计,Chp.4 数据存储,Chp.5 数据元素表示,Chp.7 查询编译,Chp.6 索引结构,Chp.8 查询优化,Chp.9 故障与恢复,Chp.10 事务管理,9,第1章 数据库系统概述,主要内容,数据库系统的基本概念 DBMS实现问题 数据库设计问题 数据库存取问题 数据库技术的发展,一、数据库系统的基本概念,数据 数据库 数据库模式 数据库管理系统 数据库系统,1、数据,数据(

4、Data)是数据库中存储的基本对象 数据的定义 人们用来反映客观世界而记录下来的可以鉴别的符号 数据的种类 数值数据:09 非数值数据:字符、文字、声音、图形、图像等,1、数据,数据的特点 数据与其语义是不可分的 例子1:93是一个数据 语义1:学生某门课的成绩 语义2:某人的体重 语义3:软件学院2011级学生人数,例子2:学生档案记录(李明,197205,中国科大,1990) 语义1:学生,出生年月,所在学校,毕业年份 语义2: 学生,出生年月,录取大学,入学时间,2、数据库,数据库的定义 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合 数据库的

5、基本特征 数据按一定的数据模型组织、描述和储存 可为各种用户共享 数据间联系密切,具有最小的冗余度和较高的独立于某个特定的应用 例:图书馆的图书数据库、机场的航班数据库、银行数据库,3、数据库模式,数据库模式是数据库中全体数据的逻辑结构和特征的描述,数据库,数据库模式,数据,数据的语义,举例,学生(学号:char,姓名:char,年龄:int),模 式,数 据 库,4、数据库管理系统,DBMS(Database Management System),是计算机程序的集合,用于创建和维护数据库 位于操作系统和用户应用之间 总是基于某种数据模型 数据库厂商的产品通常指DBMS,如Oracle8i、M

6、icrosoft SQL Server 2000、DB2、Informix等,5、数据库系统,DBS(DataBase System),指在计算机系统中引入了数据库后的系统,即采用了数据库技术的计算机系统,5、数据库系统,终端用户,终端用户,终端用户,应用程序,应用程序开发工具,数据库管理系统,操作系统,数据库,6、数据库系统的特点,数据结构化 数据的共享性高,冗余度低 数据独立性高 数据由DBMS统一管理和控制,7、数据库系统中的三个主要问题,如何设计和实现一个DBMS来高效的组织和管理数据库?DBMS实现问题 如何针对特定应用的需求设计一个合理的数据库结构?数据库设计问题 应用程序如何有效

7、地存取数据库中的数据?数据库存取问题,二、DBMS实现问题,Oracle、Informix、DB2、MS SQL Server、Mysql 数据结构:关系 数据操作:关系代数 & SQL 存储:文件 ,1、一个虚拟的DBMS:Megatron2000,UNIX下的关系型DBMS,支持SQL 实现细节 关系通过文件(ASCII)存储,e.g. R存储在/usr/db/R中 数据库模式存储在特定的文件(ASCII)中,Smith # 123 # CS Jones # 522 # EE,R1 # A # INT # B # STR R2 # C # STR # A # INT ,2、Megatron

8、 2000 使用示例,% MEGATRON2000 Welcome to MEGATRON 2000! & & quit %,2、Megatron 2000 使用示例,& select * from R # name id dept SMITH 123 CS &,2、Megatron 2000 使用示例,& select A,B from R,S where R.A = S.A and S.C 100 # A B 123 CAR 522 CAT &,3、Megatron 2000如何执行查询?,执行 “select * from R where condition”: 读数据字典获取R的属性

9、读R对应的文件,对于每一行数据: 检查条件 如果条件满足,则输出,3、Megatron 2000如何执行查询?,执行 “select A,B from R,S where condition”: 读数据字典获取R和S的属性 读R文件,对于每一行数据: 读S文件,对于每一行数据: 生成连接元组 检查条件 若条件满足,则输出,Megatron 2000功能总结,可以定义表 可以进行数据操作 数据更新 数据查询,4、Megatron 2000 存在什么问题?,元组平铺在磁盘上 将 EE改为 ECON,需要重写整个文件 ASCII存储过于昂贵 删除操作同样代价很高,4、Megatron 2000 存在

10、什么问题?,低级的查询处理 例,select * from Student S,SC where S.sno = SC.sno and SC.credit 3 先做连接比先做选择效率要低 未考虑更高效的连接算法,4、Megatron 2000 存在什么问题?,没有缓冲区管理 数据直接从磁盘存取,磁盘I/O的代价昂贵 需要Cache来加速数据存取效率,Disk,Cache,Memory,Disk,4、Megatron 2000 存在什么问题?,没有并发控制 多用户同时存取数据时数据一致性得不到保证,A:700,A:500,执行顺序:R1(A)R2(A)W1(A)W2(A),A=500,4、Meg

11、atron 2000 存在什么问题?,没有索引;数据查询效率低 不能快速地根据给定键值查询元组 总是要读入整个关系,若 page size = 8 KB,page I/O 10ms1 MB (128 pages)-2.56 s128 MB (16384 pages)-163.8 s1 GB (131072 pages)-1310.7 s 21.8 min,4、Megatron 2000 存在什么问题?,没有可靠性 发生数据库系统故障时没有恢复机制 易出现数据不一致的情形,4、Megatron 2000 存在什么问题?,没有应用程序编程接口(API) 应用如何存取数据库?,4、Megatron

12、2000 存在什么问题?,糟糕的数据字典组织,5、Megatron 2000 总结,一个糟糕的DBMS,三、数据库设计问题,如何把现实世界数据表达到数据库系统中? 针对一个具体应用,应该如何构造一个适合于它的数据库模式?,三、数据库设计问题,数据库模式设计不规范会带来一系列的问题 数据冗余 更新异常 插入异常 删除异常,示例关系模式R,示例关系模式 R(Tname, Addr, C#, Cname) 一个教师只有一个地址(户口所在地) 一个教师可教多门课程 一门课程只有一个任课教师 因此R的主码是(C),1、问题(1):数据冗余,教师T1教了三门课程,他的地址被重复存储了2次,2、问题(2):

13、更新异常,如果T1的地址变了,则需要改变3个元组的地址;若有一个未更改,就会出现数据不一致。但DBMS无法获知这种不一致,3、问题(3):插入异常,如果要增加一名教师,但他还未带课,则C#和Cname为空,但由于C是主码,为空违反了实体完整性,所以这名教师将无法插入到数据库中,4、问题(4):删除异常,如果教师T3现在不带课了,则需将T3的元组删去,但同时也把他的姓名和地址信息以及C6课程信息删掉了,5、如何解决?,方法:模式分解 方法1:R分解为 R1(Tname, Addr) R2(C#,Cname),授课信息丢失了,5、如何解决?,方法:模式分解 方法1:R分解为 R1(Tname, A

14、ddr) R2(C#,Cname) 方法2 R1(Tname, Addr, C# ) R2( C#, Cname),授课信息丢失了,R1中问题依然存在,5、如何解决?,方法:模式分解 方法1:R分解为 R1(Tname, Addr) R2(C#,Cname) 方法2 R1(Tname, Addr, C# ) R2( C#, Cname) 方法3 R1( Tname, Addr) R2( Tname ,C#, Cname),授课信息丢失了,R1中问题依然存在,基本解决问题,但又带来联接查询代价,可能会导致数据库性能不能满足需求,5、如何解决?,到底什么样的数据库模式才合理?怎么分解才能满足要求?

15、标准是什么?如何实现?数据库设计要解决的主要问题,四、数据库存取问题,数据库的存取? 增、删、改、查 数据库模式的存取? 数据库访问控制信息的存取?,?,?,四、数据库存取问题,DBMS,数据库,用户,四、数据库存取问题,用户与数据库的唯一接口数据库语言 DBMS支持用户通过数据库语言进行数据存取 有三类数据库语言 数据定义语言(Data Definition Language, DDL)存取数据库模式 数据操纵语言(Data Manipulation Language, DML)存取数据库数据 数据库控制语言(Data Control Language,DCL)存取访问控制信息,SQL,DD

16、L,DML,DCL,Create Table/Alter Table/Drop Table:定义基本表,Create View/Drop View:视图操作,Create Index/Drop Index:索引操作,Insert Delete Select Update,Grant Revoke,数据记录操作,访问控制,SQL的基本组成,本课程的重点,DBMS实现问题 数据库设计问题 数据库存取问题 ,五、数据库技术的发展,1961:GE的C.W. Bachman设计了历史上第一个DBMS网状数据库系统IDS (Integrated DataStore) 1968:IBM设计了层次数据库系统IMS 1969:CODASYL的DBTG发表了网状数据模型报告,奠定了网状数据库技术 1970:IBM的E.F. Codd提出了关系数据模型,奠定了关系数据库理论基础 1974:IBM的Boyce和Chamberlin设计了SQL语言 19731976:E.F. Codd设计了System

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号