中科大高级数据库课件第一章.ppt
- 文档编号:10725250
- 上传时间:2023-05-27
- 格式:PPT
- 页数:58
- 大小:1MB
中科大高级数据库课件第一章.ppt
《中科大高级数据库课件第一章.ppt》由会员分享,可在线阅读,更多相关《中科大高级数据库课件第一章.ppt(58页珍藏版)》请在冰点文库上搜索。
高级数据库技术,金培权,课程目的,掌握数据库设计和优化的方法深入掌握DBMS的原理和技术了解DBMS实现技术,课程内容,Part1:
Application-Oriented关系数据库理论回顾数据库设计方法与案例分析Part2:
System-Oriented数据库文件与系统结构索引结构查询处理缓冲区管理恢复锁与并发控制,课程主页,linkedinhttp:
/,课程安排,讲课实验50学时讲授,20学时实验教材DatabaseSystemImplementation(2th),H.Garcia-Molina,J.D.Ullman,J.Widom.机械工业出版社参考文献DatabaseManagementSystems(3rd),RaghuRamakrishnanetal.etal,清华大学出版社DatabaseSystemConcepts(3rd),AbrahamSilberschatzetal,机械工业出版社AFirstCoursetoDatabaseSystem,J.Ullmanetal.,机械工业出版社数据库系统概论(第4版),萨师煊,王珊.高教出版社,课程安排,考核期末考试60作业20实验20预备知识数据库系统原理,SQL,数据库应用编程,课程安排,上机软件Oracle/SybaseASE/MSSQLServerSybasePowerDesignerC+/Java,课程知识结构,Chp.1数据库系统概述,Chp.2关系数据库回顾,Chp.3数据库设计,Chp.4数据存储,Chp.5数据元素表示,Chp.7查询编译,Chp.6索引结构,Chp.8查询优化,Chp.9故障与恢复,Chp.10事务管理,第1章数据库系统概述,主要内容,数据库系统的基本概念DBMS实现问题数据库设计问题数据库存取问题数据库技术的发展,一、数据库系统的基本概念,数据数据库数据库模式数据库管理系统数据库系统,1、数据,数据(Data)是数据库中存储的基本对象数据的定义人们用来反映客观世界而记录下来的可以鉴别的符号数据的种类数值数据:
09非数值数据:
字符、文字、声音、图形、图像等,1、数据,数据的特点数据与其语义是不可分的例子1:
93是一个数据语义1:
学生某门课的成绩语义2:
某人的体重语义3:
软件学院2011级学生人数,例子2:
学生档案记录(李明,197205,中国科大,1990)语义1:
学生,出生年月,所在学校,毕业年份语义2:
学生,出生年月,录取大学,入学时间,2、数据库,数据库的定义数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合数据库的基本特征数据按一定的数据模型组织、描述和储存可为各种用户共享数据间联系密切,具有最小的冗余度和较高的独立性服务于某个特定的应用例:
图书馆的图书数据库、机场的航班数据库、银行数据库,3、数据库模式,数据库模式是数据库中全体数据的逻辑结构和特征的描述,数据库,数据库模式,数据,数据的语义,举例,学生(学号:
char,姓名:
char,年龄:
int),模式,数据库,4、数据库管理系统,DBMS(DatabaseManagementSystem),是计算机程序的集合,用于创建和维护数据库位于操作系统和用户应用之间总是基于某种数据模型数据库厂商的产品通常指DBMS,如Oracle8i、MicrosoftSQLServer2000、DB2、Informix等,5、数据库系统,DBS(DataBaseSystem),指在计算机系统中引入了数据库后的系统,即采用了数据库技术的计算机系统,5、数据库系统,终端用户,终端用户,终端用户,应用程序,应用程序开发工具,数据库管理系统,操作系统,数据库,6、数据库系统的特点,数据结构化数据的共享性高,冗余度低数据独立性高数据由DBMS统一管理和控制,7、数据库系统中的三个主要问题,如何设计和实现一个DBMS来高效的组织和管理数据库?
DBMS实现问题如何针对特定应用的需求设计一个合理的数据库结构?
数据库设计问题应用程序如何有效地存取数据库中的数据?
数据库存取问题,二、DBMS实现问题,Oracle、Informix、DB2、MSSQLServer、Mysql数据结构:
关系数据操作:
关系代数&SQL存储:
文件,1、一个虚拟的DBMS:
Megatron2000,UNIX下的关系型DBMS,支持SQL实现细节关系通过文件(ASCII)存储,e.g.R存储在/usr/db/R中数据库模式存储在特定的文件(ASCII)中,Smith#123#CSJones#522#EE,R1#A#INT#B#STRR2#C#STR#A#INT,2、Megatron2000使用示例,%MEGATRON2000WelcometoMEGATRON2000!
&quit%,2、Megatron2000使用示例,&select*fromR#nameiddeptSMITH123CS&,2、Megatron2000使用示例,&selectA,BfromR,SwhereR.A=S.AandS.C100#AB123CAR522CAT&,3、Megatron2000如何执行查询?
执行“select*fromRwherecondition”:
读数据字典获取R的属性读R对应的文件,对于每一行数据:
检查条件如果条件满足,则输出,3、Megatron2000如何执行查询?
执行“selectA,BfromR,Swherecondition”:
读数据字典获取R和S的属性读R文件,对于每一行数据:
读S文件,对于每一行数据:
生成连接元组检查条件若条件满足,则输出,Megatron2000功能总结,可以定义表可以进行数据操作数据更新数据查询,4、Megatron2000存在什么问题?
元组平铺在磁盘上将EE改为ECON,需要重写整个文件ASCII存储过于昂贵删除操作同样代价很高,4、Megatron2000存在什么问题?
低级的查询处理例,select*fromStudentS,SCwhereS.sno=SC.snoandSC.credit3先做连接比先做选择效率要低未考虑更高效的连接算法,4、Megatron2000存在什么问题?
没有缓冲区管理数据直接从磁盘存取,磁盘I/O的代价昂贵需要Cache来加速数据存取效率,Disk,Cache,Memory,Disk,4、Megatron2000存在什么问题?
没有并发控制多用户同时存取数据时数据一致性得不到保证,A:
700,A:
500,执行顺序:
R1(A)R2(A)W1(A)W2(A),A=500,4、Megatron2000存在什么问题?
没有索引;数据查询效率低不能快速地根据给定键值查询元组总是要读入整个关系,若pagesize=8KB,pageI/O10ms1MB(128pages)-1.28s128MB(16384pages)-163.8s1GB(131072pages)-1310.7s21.8min,4、Megatron2000存在什么问题?
没有可靠性发生数据库系统故障时没有恢复机制易出现数据不一致的情形,4、Megatron2000存在什么问题?
没有应用程序编程接口(API)应用如何存取数据库?
4、Megatron2000存在什么问题?
糟糕的数据字典组织,5、Megatron2000总结,一个糟糕的DBMS,三、数据库设计问题,如何把现实世界数据表达到数据库系统中?
针对一个具体应用,应该如何构造一个适合于它的数据库模式?
三、数据库设计问题,数据库模式设计不规范会带来一系列的问题数据冗余更新异常插入异常删除异常,示例关系模式R,示例关系模式R(Tname,Addr,C#,Cname)一个教师只有一个地址(户口所在地)一个教师可教多门课程一门课程只有一个任课教师因此R的主码是(C),1、问题
(1):
数据冗余,教师T1教了三门课程,他的地址被重复存储了2次,2、问题
(2):
更新异常,如果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,Addr)R2(C#,Cname)方法2R1(Tname,Addr,C#)R2(C#,Cname),授课信息丢失了,R1中问题依然存在,5、如何解决?
方法:
模式分解方法1:
R分解为R1(Tname,Addr)R2(C#,Cname)方法2R1(Tname,Addr,C#)R2(C#,Cname)方法3R1(Tname,Addr)R2(Tname,C#,Cname),授课信息丢失了,R1中问题依然存在,基本解决问题,但又带来联接查询代价,可能会导致数据库性能不能满足需求,5、如何解决?
到底什么样的数据库模式才合理?
怎么分解才能满足要求?
标准是什么?
如何实现?
数据库设计要解决的主要问题,四、数据库存取问题,数据库的存取?
增、删、改、查数据库模式的存取?
数据库访问控制信息的存取?
?
?
四、数据库存取问题,DBMS,数据库,用户,四、数据库存取问题,用户与数据库的唯一接口数据库语言DBMS支持用户通过数据库语言进行数据存取有三类数据库语言数据定义语言(DataDefinitionLanguage,DDL)存取数据库模式数据操纵语言(DataManipulationLanguage,DML)存取数据库数据数据库控制语言(DataControlLanguage,DCL)存取访问控制信息,SQL,DDL,DML,DCL,CreateTable/AlterTable/DropTable:
定义基本表,CreateView/DropView:
视图操作,CreateIndex/DropIndex:
索引操作,InsertDeleteSelectUpdate,GrantRevoke,数据记录操作,访问控制,SQL的基本组成,本课程的重点,DBMS实现问题数据库设计问题数据库存取问题,五、数据库技术的发展,1961:
GE的C.W.Bachman设计了历史上第一个DBMS网状数据库系统IDS(IntegratedDataStore)1968:
IBM设计了层次数据库系统IMS1969:
CODASYL的DBTG发表了网状数据模型报告,奠定了网状数据库技术1970:
IBM的E.F.Codd提出了关系数据模型,奠定了关系数据库理论基础1974:
IBM的Boyce和Chamberlin设计了SQL语言19731976:
E.F.Codd设计了SystemR,M.Stonebraker设计了Ingres1976:
IBM的JimGray提出了一致性、锁粒度等设计,奠定了事务处理基础1977:
LarryEllison创建了Oracle公司,1979年发布Oracle2.0,1986年Oracle上市1983:
IBM发布DB2,CharlieBachman,EdgarCodd,JimGray,数据库技术的发展,1985:
面向对象数据库技术提出1987:
Sybase1.0发布1990:
M.Stonebraker发表“第三代数据库系统宣言”,提出对象关系数据模型19871994:
Sybase和Microsoft合作,发布SybaseSQLServer4.2。
破裂后Sybase继续发布SybaseASE11.01996:
Microsoft发布MicrosoftSQLServer6.51996:
开源的MySQL正式发布1998:
提出了半结构化数据模型(XML1.0)2005,M.Stonebraker等开发完成C-Store,Column-basedDBMS2007,NoSQL(非关系型数据库)在Web领域大行其道。
Amazon(SimpleDB/Dynamo)、Google(BigTable)、Facebook(Cassandra)、Yahoo(PNUTS)、Yales(HadoopDB),MichaelStonebraker,本章小结,数据库系统的基本概念DBMS实现问题数据库设计问题数据库存取问题数据库技术的发展,Next,关系数据库回顾,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中科大 高级 数据库 课件 第一章