第01章:概论与引言

上传人:抢*** 文档编号:243151460 上传时间:2024-09-17 格式:PPT 页数:78 大小:423.50KB
返回 下载 相关 举报
第01章:概论与引言_第1页
第1页 / 共78页
第01章:概论与引言_第2页
第2页 / 共78页
第01章:概论与引言_第3页
第3页 / 共78页
点击查看更多>>
资源描述
单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,数据库系统设计与原理,讲义,主讲教师:,冯建华 教授,清华大学计算机科学与技术系,2008-09-15,9/17/2024,1,数据库系统设计与原理,教师简介:,冯建华,教授,软件所数据库研究组教师:,1986,年进入清华大学计算机系学习,,1993,年获得清华大学计算机系工学硕士学位,,2006,年获得,清华大学工学博士学位,。,1996,年,-1997,年在联合国的,IAEA,工作。,办公室电话:,62789150,(东主楼,10,区,204,),E-MAIL,地址:,fengjh,9/17/2024,2,数据库系统设计与原理,你对数据库管理系统了解多少,其功能与地位是什么?,数据管理者的工具:,IBM/MS/ORACLE,?,数据管理的发展趋势?,全数据:对象?数据之间的关联,工具:,RDBMS,/NXDBMS/Search Engine,全语言:接口?语法限制与模式要求,其他:存储介质的变化,,F-DBMS,9/17/2024,3,数据库系统设计与原理,海量数据:需要更多的机器与存储介质组建数据中心,数据中心的主要问题是什么?如何解决?促进了计算机体系结构的变化与发展:,Virtual Machine,。,9/17/2024,4,数据库系统设计与原理,本课程主要讲什么内容?,传统的与,RDBMS,相关的所有内容!,为什么要学习数据库管理系统呢?,应用:广泛,无处不在!,系统:打开黑匣子!,select t1.f1, t2.f2,from t1,t2,Where t1.f2=t2.f3,9/17/2024,5,数据库系统设计与原理,什么是数据库?,所谓数据库就是指一组,相互有关联,的数据集合,英文称,Database,,简称,DB,。,什么是关联?全数据,-ALL DATA,结构化数据:层次、网状、关系、对象;,半结构化数据:,OEM,、,XML,;非结构化数据。,什么是数据库管理系统?,而数据库管理系统是由数据库和一组用于访问这些数据的程序组成,英文称,Database Management System,,简称,DBMS,。,9/17/2024,6,数据库系统设计与原理,什么是数据库系统?,口语中常说的,“,数据库系统,”,在大多数时候都是指,DBMS,;,但是严格地来说,数据库系统,(Database System, DBS),是指在计算机系统中引入数据库之后的系统:,一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员,(Database Administrator, DBA),和最终用户构成。即:,DBS = DB + DBMS + Application + DBA + End,User,9/17/2024,7,数据库系统设计与原理,DBMS,涉及到的问题,数据库管理系统是为了管理大量、复杂的数据。对数据的管理既涉及到,存:数据存储结构的定义,取:数据操作机制的提供,如果数据被多用户共享,那么,DBMS,还必须设法避免可能产生的异常结果,即并发控制;,如果系统发生故障,那么,DBMS,必须保证将数据恢复到故障发生前的状态,即故障恢复;,DBMS,还必须保证所存储数据的安全性,不被非法访问和操作,即访问控制,9/17/2024,8,数据库系统设计与原理,讲课内容:,引言索引和散列,E,R,模型查询处理,关系模型,10,事务,11,并发控制,完整性约束,12 3-in-1,关键字检索,数据库的物理设计,13XML,文档编码与连接,存储结构和文件结构,考试(作业与实验),9/17/2024,9,数据库系统设计与原理,9/17/2024,10,数据库系统设计与原理,教学安排:,助教介绍:李,/,刘,1-16,周正常上课,每周课内,2,学时。可能会补,1-2,次课;,平时作业,占期末总成绩的,10,;,上机练习,1,:学习,SQL,的使用,由系教学实验室统一组织安排,有助教随堂辅导。也可以使用自己的计算机完成上机作业,占期末总成绩的,10,;,上机练习,2,:,SQL Server 2000,的触发器选项与参数设置实验,占期末总成绩的,5,;,综合练习,完成,1,个大实验作业:,XML,文档编码与结构连接的研究与实现,占期末总成绩的,75,;最多,2,人一组,时间要求:所有作业、练习和实验报告、实验检查都必须在第,17,周周五(,2009-1-9,)下午,5,:,00,之前提交并完成,过时将按,0,分处理。发现有任何抄袭者,相关人员均,0,分处理!,9/17/2024,11,数据库系统设计与原理,综合练习:,XML,文档编码与结构连接的研究与实现,具体要求:,9/17/2024,12,数据库系统设计与原理,教学方法与过程:,总的原则:,学生自学,和,教师讲解,并重!重点问题提问并讨论;结合科研任务解析原理。,自学:要求非常熟悉基本概念(,2,、,3,、,4,章);,练习:尤其是第,4,章,SQL,,要求非常熟练地掌握;,复习:,1-5,章,每章后面的作业都要求做!,讲课的重点是:,会设计、懂原理,数据库系统原理是重点;,容易忽视和出错的地方;,科研问题的动机与来源。,9/17/2024,13,数据库系统设计与原理,授课教材,数据库系统设计与原理,,第,1,版,冯建华、周立柱,清华大学出版社,本书的内容根据授课教师历年的讲义修改而成;,主要参考教材,SQL Server,数据库原理,-,设计与实现,周立柱、冯建华、孟小峰、陈立军、杨冬青、王珊等,清华大学出版社,深而精,是难得的一本介绍,DBMS,实现技术的书。,9/17/2024,14,数据库系统设计与原理,主要参考教材,DATABASE SYSTEM CONCEPTS,,,Third Edition,,,数据库系统概念,Abraham,Silberschatz,,,Henry,F.Korth,& S.,Sudarshan,;杨冬青等翻译;,机械工业出版社,本书的缺点是太贵,英文影印版,RMB65,元,翻译过来的中文版,RMB49,元。但内容较新颖,基础性的内容非常全面,难度不大,容易理解。第,4,版也已经出版,!,9/17/2024,15,数据库系统设计与原理,其他参考教材,数据库管理系统,,第,3,版,Raghu,Ramakrishnan,& Johannes,Gehrke,,周立柱等翻译;,清华大学出版社,这两位作者分别来自威斯康星和康奈尔大学。本书的内容非常新颖、全面、深入,且有一定的难度,适合咱们清华的学生学习。,9/17/2024,16,数据库系统设计与原理,其他参考教材,数据库系统全书,Hector Garcia-Molina, Jeffrey D.,Ullman, Jennifer,Widom,著,岳丽华、杨冬青等翻译;,机械工业出版社,本书是美国斯坦福大学计算机系,CS145,和,CS245,两门课的教材,内容新颖、全面,而且有深度。中文版价格为,65,元,RMB,。,9/17/2024,17,数据库系统设计与原理,其他参考教材,数据库系统概论,第,3,版,萨师煊、王珊,高等教育出版社,该书的内容与第二版相比有了很大的改动,价格适中,每本,28,元,RMB,。,9/17/2024,18,数据库系统设计与原理,课程概况,(,请参阅教材的附录,),:,课程信息,教师信息,课程简介,学习目标,学生要求,学习要求,重点与难点,学习安排,教材、参考书及其他参考资料,知识结构图,9/17/2024,19,数据库系统设计与原理,与,Stanford,大学数据库课程比较,9/17/2024,20,数据库系统设计与原理,与,Stanford,大学数据库课程比较,CS145,,,数据库简介:对数据库设计与数据库管理系统的使用进行基本的介绍。内容包括,关系模型和,XML,(,包括,XML,的查询语言,Xpath,和,XQuery,),以及,SQL,(,创建、查询以及更新关系数据库或对象,-,关系数据库的标准语言,),;,关系代数、基于函数依赖与范式的关系设计原则以及数据库设计的实体,-,联系方法和面向对象方法,;其他问题包括,索引、视图、事务、权限和完整性约束以及触发器,;由数据仓储、数据挖掘、,OQL(Object,Query Language,,它是,SQL,的基于对象的版本,),、,Datalog,(,一种类似,Prolog,的语言,可用作数据库的查询语言,),、时态数据库、中间件以及,peer-to-peer(,对等网络,),系统引出的几个高级专题。,9/17/2024,21,数据库系统设计与原理,与,Stanford,大学数据库课程比较,CS245,,,数据库系统原理:主要内容包括文件组织和访问、缓冲区管理、性能分析和存储管理;数据库系统体系结构、查询优化、事务管理、故障恢复和并发控制;可靠性、保护及完整性;设计与管理问题。,CS345,,,数据库系统高级专题:数据库系统和信息系统领域里的高级专题,每次讲课的内容都会有所不同,如数据仓库、联机分析处理和数据挖掘等。,9/17/2024,22,数据库系统设计与原理,与,Stanford,大学数据库课程比较,CS346,,,数据库系统实现:一个主要的数据库系统实现项目,实现前面课程所覆盖的基本原理和技术。利用文件结构,通过查询处理,(,要有学生个人的设计特征和扩展,),,学生要独立构建一个完整的数据库管理系统。,讲课主要集中于项目的细节和数据库管理系统实现中的高级技术,核心内容集中在查询处理和优化,。来自工业界的客坐教师都是商用数据库管理系统实现技术方面的专家。,9/17/2024,23,数据库系统设计与原理,与,Stanford,大学数据库课程比较,CS347,,,事务,处理和分布式数据库:主要介绍分布式数据库的原理和系统组织。内容包括数据划分和分布、分布式数据设计、查询处理和优化、分布式并发控制、可靠性和提交协议以及重复数据管理;数据管理的分布式算法:时钟、死锁检测、互斥;异构和联邦分布式数据库系统;商用系统和研究原型概论。,9/17/2024,24,数据库系统设计与原理,与,Stanford,大学数据库课程比较,CS395,,,数据库独立项目:专门为计算机系的研究生开设的课程。利用数据库管理系统开发实际的应用,或者是利用文件系统实现数据库管理系统的某一部分。最后要完成必要的分析和性能评价报告。,CS545,,,数据库研究研讨班:展示数据库系统和信息系统领域的当前研究以及工业界的动向。,9/17/2024,25,数据库系统设计与原理,与,Stanford,大学数据库课程比较,清华计算机系的现状如下:,将,CS145,和,CS245,合二为一:,30240262,;,Stanford,将这两门课的教材合并为,“,数据库系统全书,”,!,CS345,这类课程没有,只是在本课程的最后,在有时间的情况下介绍一点,李绢子,Data Mining,CS346,这类课程已经设置,即课程,B34,:专业专题训练,(,不得少于,5,学分,),,包括计算机网络,(,必选,1),、操作系统,(,选,2),、编译原理,(,选,2),和数据库,(,选,2),专题训练;,CS347,和,CS395,合并为,分布式数据库,周立柱;,CS545,这类课程没有,但是,9/17/2024,26,数据库系统设计与原理,第部分,数据库设计,(,第章第章,),9/17/2024,27,第章引言,讲课内容:,DBMS,的目的,数据库语言,数据视图,查询处理器,数据模型,存储管理器,DBMS,总体结构,磁盘存储器,数据库用户,商业数据库系统,9/17/2024,28,1.1DBMS,的目的,数据管理的进展,数据管理随着计算机软硬件技术的发展而不断发展,,40,多年来经历了以下三个阶段:,人工管理阶段:,50,年代中期以前;,文件系统阶段:,50,年代后期到,60,年代中期之间;,数据库系统阶段:,60,年代后期开始,9/17/2024,29,1.1DBMS,的目的,文件处理系统,在,DBMS,出现以前,把需要管理的数据存放在永久性的,操作,系统文件中,同时为了能够操作这些文件里的数据,系统里还有针对这些文件编写的应用程序,:文件,+,程序,文件处理系统是由源源不断的数据文件和程序混合而成,由此产生了很多问题!,9/17/2024,30,1.1DBMS,的目的,在文件处理系统中存储数据的弊端,数据冗余和不一致,数据访问困难:文件格式不同、复杂,数据孤立,完整性问题,原子性问题,并发访问问题,安全性问题,要解决这些问题,就必须,开发通用的数据存储与检索系统推翻:,n,文件,+ n,程序,表达和实现约束,对数据的访问进行逻辑管理:事务,对数据进行访问控制,对事务进行并发控制,9/17/2024,31,1.1DBMS,的目的,数据库管理系统的提出:,2-3,文件,+ 1,程序,数据库管理系统就是为了解决上面提到的和未提到的在文件处理系统中存在的问题;,由于这些问题的存在,使得数据库管理系统提出了很多新的概念和算法,加速了数据库管理系统的发展;,数据库管理系统是一个平台软件,在用户数据未知和不断发生变化的情况下,平台软件中的数据管理程序不发生任何变化,这大大地提高了数据的独立性,使得应用程序的开发也简单、独立、快速!,9/17/2024,32,1.2,数据视图,数据库管理系统的一个主要作用就是隐藏关于数据存储和维护的某些细节,,再者用户也没有必要了解数据库中用来表示数据的复杂的数据结构。但可以为用户提供数据在不同层次上的抽象,即,不同的使用者从不同的角度去观察数据库中的数据所得到的结果,。,数据抽象,实例和模式,数据独立性,9/17/2024,33,1.2,数据视图,数据抽象,数据库管理系统通过如下几个层次的抽象来向用户屏蔽复杂性,简化系统的用户界面:,物理层,:最低层次的抽象,描述数据是如何存储的。它描述复杂的底层数据结构,是学者和开发,DBMS,的供应商研究的事情;,(Oracle),逻辑层,:比物理层稍高层次的抽象,描述数据库中存储什么数据以及这些数据间存在什么关系。数据库管理员和数据库应用开发人员必须确定数据库中应该保存哪些信息;,(,计算中心,),视图层,:也叫概念层,是最高层次的抽象,但它只描述整个数据库的一小部分,系统可以为同一数据库提供多个视图。,(,教师,学生,职员,),9/17/2024,34,1.2,数据视图,数据抽象的三个层次,视图,1,视图,2,视图,3,视图,n,.,逻辑层,物理层,9/17/2024,35,与程序设计语言中数据类型概念类比,用一种类,Pascal,语言定义如下记录类型:,type course = record,course_number,:,string;,course_name,:,string;,course_location,:,string;,course_capacity,:,string;,end;,student,:,student_number,、,student_name,;,teacher,:有,teacher_number,、,teacher_name,和,teacher_age,三个字段。,1.2,数据视图,9/17/2024,36,1.2,数据视图,与程序设计语言中数据类型概念类比,物理层,course,、,student,和,teacher,等记录,都,被描述为由连续,的,存储位置,,,如字节,,,组成的存储块。,程序设计,语言,的,编译器为,编程,人员屏蔽了这一层的细节。与此类似,数据库管理系统为数据库程序设计人员屏蔽了许多,底,层的存储细节,。,9/17/2024,37,1.2,数据视图,与程序设计语言中数据类型概念类比,逻辑层,正如前面的代码所示,在程序设计语言中,每个这样的记录通过类型定义进行描述,。程序设计人员正是在这个抽象层次上使用某种高级语言,(,如,C+),进行工作。与此类似,数据库管理员和,数据库,程序,设计人,员也,正是,在这个抽象层次上,使用,SQL,语言,工作,的,。如:,create table course (,course_name,varchar(30),course_number,char(18),course_location,varchar(50),course_capacity,int,),9/17/2024,38,1.2,数据视图,与程序设计语言中数据类型概念类比,视图层,(,计算机应用系统:开发系统的,+,在系统上开发应用的,+,使用应用系统的,),计算机,用户,最终,看见的是为其屏蔽了数据类型细节的一组应用程序,(,界面,),。与此类似,视图层上数据库管理系统,也,定义了数据库的多个视图,数据库用户看到的是这些视图,-,部分实际数据。除了屏蔽数据库的逻辑层细节外,视图还提供了防止用户访问数据库某些部分的安全机制。例如,能看到,课程,信息的,学生,用户,就不,能够访问,教师,的,个人,信息。,数据库系统概论,,,CS001,,六教,6C102,,,180,你更看不到它的存储细节,!,varchar, 30,计算机专业到底学什么?,9/17/2024,39,1.2,数据视图,实例和模式,数据库中的数据会随时发生变化,特定时刻存储在数据库中的信息集合称作数据库的一个实例。而数据库的总体设计,即数据库的样子,称作数据库模式,数据库模式不会频繁地发生变化;,前面只定义了,course,类型而没有定义任何变量,:,var,course1:,course;,/,定义一个变量,变量,course1,对应于一块包含,course,类型记录的存储区域。与此类似,数据库模式与程序设计语言中的数据类型相对应;,程序设计语言中,给定类型的一个变量在特定的时刻有具体的值。因此,程序设计语言中变量的值对应于数据库模式的一个实例。,9/17/2024,40,1.2,数据视图,实例和模式,根据前面讨论的数据抽象层次的不同,数据库模式又可分为:,物理模式:即数据库在物理层的总体设计,又称内模式;,逻辑模式,:即数据库在逻辑层的总体设计,通常简称为,“,模式,”,。而实例是模式的具体体现,可以看做是模式的一个具体的值;,视图模式:即数据库在视图层或概念层的总体设计,又称子模式或外模式;,通常,数据库管理系统支持一个物理模式、一个逻辑模式和多个视图模式。,(TS Info),9/17/2024,41,1.2,数据视图,数据独立性,在某个层次上修改数据库的模式定义而不影响位于其上层模式的能力叫做数据独立性。有两个层次的数据独立性:,物理数据独立性:,是指修改数据库的物理模式而不必重写应用程序的能力;,逻辑数据独立性:,是指修改数据库的逻辑模式而不必重写应用程序的能力;,为什么要修改数据库的模式呢?,为了提高性能,偶尔在物理层做一些修改;,只要数据库的逻辑结构发生了变化,逻辑层就必须要做一些修改,这种修改是经常的。,9/17/2024,42,1.2,数据视图,数据独立性,逻辑数据独立性比物理数据独立性更难作到,这是因为应用程序对于它们所要访问的数据的逻辑结构依赖性很大,应用程序与逻辑层靠得更近一些;,如应用程序是基于数据库的视图层模式开发的,则逻辑数据独立性就容易做到,只需要修改逻辑层到视图层的映射关系;,数据独立性的概念同现代程序设计语言中的抽象数据类型的概念类似,两者都为用户屏蔽了数据内部的具体实现细节。,9/17/2024,43,1.3,数据模型,概述,数据库结构的基础就是数据模型,它是描述数据,(,数据结构,),、数据之间的联系,数据语义即数据操作,以及一致性,(,完整性,),约束的概念,工具的集合,。,基于,对象,的逻辑模型,数据模型,基于,记录,的逻辑模型,网状模型,层次模型,关系模型,面向对象模型,实体联系模型,(逻辑层和概念层),逻辑数据模型,物理数据模型(物理层),9/17/2024,44,1.3,数据模型,实体联系模型,(E-R,模型,),新模型?,EDM,该模型是这样认识现实世界的:现实世界是由一组称作实体的基本对象以及这些对象间的联系构成;,实体是现实世界中可区别于其他对象的一个,“,事件,”,或一个,“,物体,”,。例如每个学生是一个实体,每门课程也是一个实体。实体通过相关的属性集合来描述。例如,学生的学号,student_number,和姓名,student_name,属性描述了大学里某个特定的学生;,联系是实体间的相互关联。例如,selecting,这个选课联系将一个学生和他,她所选的课程关联起来;,同一类型的所有实体的集合称作实体集,同一类型所有联系的集合称作联系集;,E-R,模型主要用于在概念层上描述数据。,9/17/2024,45,1.3,数据模型,实体联系模型,(E-R,模型,),E-R,模型还可以表示出数据库必须遵循的特定约束,-,映射基数,它表示一个实体集中的实体通过某联系集能与另一实体集中的实体进行关联的实体数目;,数据库的总体概念结构可以用,E-R,图来表示。,E-R,图由以下元素构成:,矩形:代表实体集,椭圆:代表属性,菱形:代表实体间的联系集,线段:将属性与实体集相连或将实体集与联系集相连,图中的每个成分都标上它所代表的实体集或联系集的名称,具体的,E-R,图示例如下。,9/17/2024,46,实体联系模型,(E-R,模型,),E-R,图示例,1.3,数据模型,9/17/2024,47,1.3,数据模型,基于记录的数据模型,该类模型主要在逻辑层上描述数据,用来定义数据库的全局逻辑结构。而基于对象的数据模型主要用来描述数据库的概念结构;,该类数据模型名称的由来是由于它用一些固定格式的记录来描述数据库的逻辑结构。每个记录类型定义了固定数目的字段,通常每个字段的长度也是固定的。,基于记录的数据模型主要有:,关系模型,9/17/2024,48,1.3,数据模型,关系模型,关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有唯一的列名,9/17/2024,49,1.3,数据模型,网状模型,网状模型中的数据用记录,(,与,Pascal,语言中的记录含义相同,),的集合来表示,数据间的联系用链接,(,可看作指针,),来表示。数据库中的记录可被组织成任意图的集合。,9/17/2024,50,1.3,数据模型,层次模型,与网状模型类似,层次模型也用记录和链接来表示数据和数据间的联系;与网状模型不同的是:层次模型中的记录只能组织成树的集合而不能是任意图的集合。,9/17/2024,51,1.3,数据模型,基于记录的三种模型的差别,关系模型与网状模型及层次模型的不同的地方在于关系模型不使用指针或链接,而通过记录所包含的值把数据联系起来。,9/17/2024,52,1.3,数据模型,物理数据模型,物理数据模型用于在最底层,即物理层上描述数据。与逻辑数据模型不同,实际使用中的物理数据模型较少。常用的两种物理数据模型是:,一致化模型,框架存储模型,物理数据模型同数据库管理系统的具体实现密切相关,这是开发,DBMS,的数据库厂商最为关心的事情。本课程对这部分内容不进行深入讨论。,9/17/2024,53,1.3,数据模型,数据模型的可理解性,人对现实世界的认知与计算机对现实世界的认知:,人的认知模型,?,概念模型,逻辑模型,物理模型,人能理解的模型,?,计算机可以理解的模型,?,模型的可理解性与现实世界及计算机的距离,?,人和计算机都可以理解的模型,?,建筑与土木,数学与计算机,9/17/2024,54,1.4DBMS,总体结构,DBMS,在计算机中的位置,DBMS,划分为不同的模块,每个模块完成一定功能;,DBMS,的部分功能由计算机的操作系统提供。通常,计算机操作系统提供最基本的服务:即文件服务;,设计,DBMS,时必须考虑到,DBMS,与操作系统接口的灵活性和可移植性。,9/17/2024,55,1.4DBMS,总体结构,缓存管理器、文件管理器和磁盘,页,读,/,写页,缓存管理器,DBMS,的存储管理,查询处理器,读写记录,行集:,Record Set,缓存中的数据页结构,文件中的页结构,数据库文件中的页与磁盘上的物理块之间的对应关系,9/17/2024,56,1.4DBMS,总体结构,数据库管理系统,磁盘,存储器,用户,应用界面,索引,统计数据,数据文件,数据字典,应用程序,交互查询,数据库模式,应用程序目标码,嵌入式,DML,预编译器,DML,编译器,DDL,解释器,查询计算引擎,事务管理器,缓冲区管理器,文件管理器,查询处理器,存储管理器,权限及完整性管理器,日志,9/17/2024,57,1.4DBMS,总体结构,DBMS,的主要部件,查询处理器:关系引擎,存储管理器:存储引擎,其次就是,DBMS,的,物质基础,磁盘存储器:必要的数据结构,当然处于最顶层的就是,DBMS,用户,DBA,:一个特殊的用户,负责对,DBMS,进行集中的管理与控制,它就是数据库管理员,-DBA-Database Administrator,;,普通用户:除,DBA,之外的其他用户还可以通过应用程序和交互式的查询语言,即数据库语言等手段访问数据库中的数据。,9/17/2024,58,1.5,数据库语言,概述,数据库管理系统提供两种不同类型的语言,一种用于定义数据库的逻辑模式、访问方式和存储结构;另一种用于表达数据库的查询和更新:,数据定义语言,(DDL-Data Definition Language),数据操纵语言,(DML-Data Manipulation Language),Keyword Search,?,Scheme-aware Language,?,9/17/2024,59,1.5,数据库语言,数据定义语言,数据库模式通过一系列定义来说明,这些定义由称作,DDL,的一种特殊语言来表达,,如,create table,;,DDL,语句编译执行,的,结果是填写一系列存储在一个特殊文件中的系统表,,该,特殊文件称作数据字典,;,数据字典是一个包含元数据的文件,元数据是关于数据的数据。在,DBMS,中,实际读取和修改数据前总要先查询该文件,:,sysobjects, syscolumns, sysindexes.,DBMS,所使用的存储结构和访问方式也是通过一系列特殊的,DDL,语句,如:,create cluster,、,create index,来定义的,这种特殊的,DDL,语句称作数据存储定义语言。编译,的,结果是一系列用来描述数据库模式实现细节的指令,对用户来说是不可见的。,9/17/2024,60,1.5,数据库语言,数据操纵语言,数据操纵是指:,S,:对存储在数据库中的数据进行检索,I,:向数据库中插入新的数据,D,:从数据库中删除数据,U,:修改存储在数据库中的数据,数据操纵语言,通常有两类,:,过程化的,DML,:要求用户指定需要什么数据以及如何获得这些数据;开发,DBMS,的人使用!,非过程化的,DML,:只要求用户指定需要什么数据,而不必指明如何获得这些数据;使用,DBMS,的人使用这种语言!,9/17/2024,61,1.5,数据库语言,数据库语言小结,从数据库中选择和综合数据的过程就是查询。,DML,中涉及查询的部分称作查询语言。,DDL,:,数据模式定义语言(数据结构),数据存储定义语言(存储结构、索引方式),DML,:,操纵过程:,过程化的,DML,和非过程化的,DML,操纵方式:,数据查询语言:,select-from-where/keyword,数据更新语言:,insert/delete/update/,9/17/2024,62,1.6,查询处理器,概述,查询处理器部件主要由四部分组成,它们分别是:,DML,编译器,(,包括查询优化,),嵌入式,DML,预编译器,DDL,解释器,查询计算引擎,9/17/2024,63,1.6,查询处理器,DML,编译器,负责将查询语言中的,DML,语句翻译成查询计算引擎能理解的低级指令,并力图将用户的请求转换成一个等价的但效率更高的表达式形式,以找到执行查询的更好策略,这就是,DBMS,的主要功能,-,查询优化;,DDL,解释器,负责解释,DDL,语句并将其记录到包含元数据的一系列系统表中;,查询计算引擎,负责执行由,DML,编译器产生的低级指令。关系代数吗?,9/17/2024,64,1.6,查询处理器,嵌入式,DML,预编译器,DML,调用嵌套在高级程序设计语言,(,在这里也叫宿主语言,),里,,如,C,、,Pascal,和,Cobol,等等;,为了区分宿主语言中的,DML,调用,常常以一个特殊的字符串作为,DML,调用的前导,如,EXEC SQL,;,嵌入式,DML,预编译器,如,Oracle,数据库中的,Pro*C,:,PCC,、,Sybase,数据库中的,sqlpp,等,将嵌入在宿主语言中的,DML,语句转化成宿主语言中普通的过程调用和函数调用(有关数据库接口的,API,);,嵌入式,DML,预编译器必须同,DML,编译器共同发挥作用,才能保证产生正确的程序代码;,预编译所产生的程序再通过宿主语言的编译器产生正确的目标代码来运行。,9/17/2024,65,1.6,查询处理器,数据库编程接口,当然数据库管理系统也支持在宿主语言中像调用宿主语言的普通函数和过程一样直接调用那些访问数据库的函数和过程。例如,dblogin,、,dbopen,、,dbexec,、,dbclose,和,dblogout,等。而且这是实际中最常用的数据库应用系统的开发方法之一;,例如,,Sybase,数据库中的,DB-Library/C,;,Oracle,中的,Oracle,调用接口,OCI(Oracle Call Interface),等等,这就是我们常说的数据库,API,。,9/17/2024,66,1.7,存储管理器,概述,存储管理器是为存储在数据库底层的数据与应用程序及向系统提交的查询之间提供接口的程序模块;,原始数据通过文件系统存储在磁盘上,文件系统通常由操作系统提供;,存储管理器将经过查询处理器编译的不同的,DML,语句的代码再次翻译成底层的文件系统命令;,总之,,存储管理器负责数据库管理系统中数据的存储、检索和更新,。,9/17/2024,67,1.7,存储管理器,存储管理器部件,权限及完整性管理器:检查是否满足完整性约束,检查试图访问数据的用户的权限;,事务管理器:保证即使发生了故障,数据库也是一致的,(,正确的,)(,故障恢复,),;保证并发事务的执行不发生冲突,(,并发控制,),;,文件管理器:管理磁盘空间的分配,管理用于表示数据库所存储信息的数据结构;,缓冲区管理器:负责将数据从磁盘取到内存或从缓存写到磁盘,并决定哪些数据应被缓冲存储在内存里,即缓冲区的替换策略。,9/17/2024,68,1.7,存储管理器,事务的概念,数据库应用中完成单一逻辑功能的操作集合,是一个既具原子性又具一致性的逻辑执行单元,举例?,事务的特征,(ACID),关于事务的原子性问题在前面的资金转账例子中已经提到:几个操作要么都完成要么根本不发生;,资金转账还必须保持数据库的一致性,也就是说钱的总数应该保持不变,这种对数据库值的正确性要求称作一致性;,当资金转账成功结束后,不管发生什么事情,包括系统故障,账户,A,和账户,B,的钱数也应该保持不变,这种对数据库的值保持不变的要求称作持久性。,9/17/2024,69,1.7,存储管理器,事务的一致性:与数据库的一致性不同,事务的定义:应使数据库保持一致性,这是由程序员在定义事务时保证的;,事务的执行:,IF,执行前数据库是一致的,在事务执行的过程中允许数据库暂时的不一致,但此时发生故障或并发执行将产生问题:,故障恢复和并发控制来保证数据库的一致性!,THEN,事务成功执行后数据库也应是一致的,事务的原子性和持久性则是由,DBMS,自己保证的,具体地说是事务管理器和故障恢复管理器的责任。,9/17/2024,70,1.7,存储管理器,事务的隔离性,当多个事务同时执行时,即使每个单独的事务都正确执行完毕,数据库的一致性也可能遭到破坏,怎么办?,DBMS,的并发控制管理器就是用来控制并发事务间的相互影响,把它们隔离开,使得每个事务都感觉到系统中好像只有自己一个事务在执行一样,以便确保数据库的一致性。,9/17/2024,71,1.8,磁盘存储器,用户,应用界面,索引,统计数据,数据文件,数据字典,应用程序,交互查询,数据库模式,应用程序目标码,嵌入式,DML,预编译器,DML,编译器,DDL,解释器,查询计算引擎,事务管理器,缓冲区管理器,文件管理器,查询处理器,存储管理器,数据库管理系统,磁盘存储器,权限及完整性管理器,日志,9/17/2024,72,1.8,磁盘存储器,必要的数据结构,数据文件:存储数据库中的数据;表:平凡,数据字典:存储关于数据库结构的元数据。由于频繁使用数据字典,因此字典的良好设计和高效实现是非常重要的;表:平凡,索引:提供对数据项的快速访问;表:树!,统计数据:存储关于数据库中数据的统计信息,这些信息被查询处理器用来选择高效的执行查询的方法;表:平凡,日志:存储故障恢复所需要的各种信息。?,9/17/2024,73,records,File,read/write blocks,9/17/2024,74,1.9,商业数据库系统,常用的大型商业数据库系统,Oracle,:,目前的版本是,Oracle 9i,,,10G,;,在中国的销量处于第一位;,我国的主要用户是公安系统、金融系统和大的企业;,系统本身非常复杂,可以按照用户的要求进行组装。支持,XML,数据处理,支持,Web,功能,支持在数据库中存储大对象数据,如图像和图形、视频和音频数据等等;,支持各种操作系统。,9/17/2024,75,1.9,商业数据库系统,常用的大型商业数据库系统,Sybase,:,主打产品有两种:,Sybase Adaptive Server Enterprise,Sybase Adaptive Server Anywhere,在世界和中国的销量逐渐下降;,其主要用户有铁道部、金融系统和大型企业;,成功的案例有,“,98,世界杯网站系统,”,,,“,全国铁路售票系统,”,(,与民航售票系统完全不同,),。这些系统主要采用,Sybase,公司的数据复制技术和主键冲突解决方案;,支持各种操作系统。,9/17/2024,76,1.9,商业数据库系统,常用的大型商业数据库系统,Microsoft SQL Server,:,它最早是从,Sybase,公司买的核心技术,目前的版本是,200,5(,代码名称,Yukon),;,在全球的销量处于第一位;全球销量处于第二位的是,IBM,的,DB2,,,DB2,主要专用于,IBM,的大型机用于并行存储与计算,,XML,引擎;,Microsoft,公司的,SQL Server,在我国的主要用户是中小型企业和教育机构;,技术上没有什么特别之处,是大众化的产品,仅支持,Windows,操作系统。,9/17/2024,77,小结:,GUI+QP+SM+DS,用户,应用界面,索引,统计数据,数据文件,数据字典,应用程序,交互查询,数据库模式,应用程序目标码,嵌入式,DML,预编译器,DML,编译器,DDL,解释器,查询计算引擎,事务管理器,缓冲区管理器,文件管理器,查询处理器,存储管理器,数据库管理系统,磁盘存储器,权限及完整性管理器,日志,9/17/2024,78,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!