1、数据库系统原理与设计,嘉兴学院数理与信息工程学院 任课教师:滕姿 Telephone:617664 E-mail:,什么是数据管理技术,狭义:数据库技术 广义:对数据进行管理、利用的所有技术 数据库技术 数据模型、数据存储结构和索引、查询处理和查询优化、事务与并发、开发工具等 数据仓库技术 数据挖掘技术 数据集成技术 信息检索技术 ,数据管理技术与图灵奖,图灵奖历史上的三位数据库专家: 1973年, 查理士巴赫曼(Charles W. Bachman): “网状数据库之父”或“DBTG之父” 1981年, 埃德加科德(Edgar F. Codd): “关系数据库之父” 1998年, 詹姆斯尼古
2、拉格雷(James Gray): 数据库与事务处理,数据管理技术的重要性,数据管理技术是信息社会赖以运转的技术基础之一 数据管理技术是Web时代的基石 数据管理技术逐渐渗透到人们的日常学习和生活中 数据管理技术是信息技术和计算机科学最重要的分支之一 形成了一个巨大的软件产业,是理论成果转化为产品的成功典范 数据库管理系统DBMS(DataBase Management System)及其相关工具产品、应用解决方案,数据管理技术的体系,知识点,理论,方法,技术,应用,基础 知识,关系 数据库,数据库 设计,系统 管理,数据库 新技术,使用,管理,开发,研究范畴,学习深度与广度,学习要求,第一:本
3、课程的每一章后面都附有作业题,为了很好地掌握课件上的内容,要求学生必须独立完成每章后面的所有作业题,作业要工整、清楚; 第二:本课程是一门实践性很强的课程,尤其是在学习 “SQL操作”的时候,要求大家上机做实验,联系SQL的使用,熟悉SQL的语法,最后给出实验报告,总结自己在上机过程中的体会和发现到的问题; 第三:课堂参与、作业、上机实践是学习该课程的关键,也是大家平时成绩的由来,加上期末考试,通过这些了解大家对本课程内容的掌握情况,也是对大家学习情况的一个评价。 总之,本课程的学习要经过上课、作业、实验、自学以及考试等环节,每一个环节都要求大家能够认真地完成,这样就能很好地掌握有关数据库的基
4、本概念和技术,数据管理技术的体系,模型是主线 概念模型:实体-联系模型(Entity-Relationship Model,E-R模型)和面向对象模型(Object Oriented Model,OO模型) 逻辑模型:关系模型(数据结构、操作、约束)、层次模式、网状模型 物理模型:存储结构、索引技术等 系统是核心 数据库管理系统DBMS (DataBase Management System,DBMS):存储结构与索引、查询与优化、完整性与安全、事务与恢复等 人员:数据库管理员、系统分析员和数据库设计人员、数据库应用程序员以及终端用户等 支撑软件及硬件系统:操作系统及各种硬件资源 应用是动力
5、需求分析:业务需求及处理流程、功能需求及数据需求分析、业务规则分析等 数据库设计:数据库概念模型、逻辑模型和物理模型等 数据库应用开发:数据库应用系统的体系结构、常用数据库访问技术和数据库应用开发技术等,课程目标定位,使学生学会“用”数据库 系统分析员 数据库设计员 数据库应用程序员 数据库管理员 具体来说,使学生 掌握数据库的基本知识、基本理论和基本方法; 具有较强的数据库设计、数据库系统管理和应用开发能力,能够灵活运用数据库技术解决实际应用问题; 培养学生的自主学习能力、创新能力和团队协作精神,以及从应用中发现问题、提出问题、分析问题和解决问题的能力问题求解能力。,教学内容与课时安排,第1
6、章 数据库系统概论 第2章 关系模型与关系代数 第3章 SQL语言 第4章 数据库建模(实体-联系模型) 第5章 关系数据理论及模式求精 第6章 关系数据库设计实例网上书店,第7章 数据库存储结构 第8章 查询处理 第9章 数据库完整性与安全 第10章 事务管理及恢复 第11章 数据库应用开发 第12章 Web数据库,教学内容与课时安排,实验(课内16课时 + 课外32课时) 实验一:简单查询 实验二:复杂查询 实验三:数据定义操作 实验四:数据更新操作 实验五:执行计划 实验六:安全性定义与检查 实验七:完整性定义与检查 实验八:游标与存储过程 实验九:触发器 实验十:事务处理 实验十一:数
7、据库模式脚本设计 实验十二:C/S模式的数据库应用开发 实验十三:B/S模式的数据库应用开发,成绩构成,考核要求 平时成绩:10% 上机实验:10% 期中考试:20% 期末考试:60%,第1章 数据库系统概论,数据库系统原理与设计,目 录,数据库系统,数据库系统的作用,数据模型,数据抽象与数据库三级模式,数据与数据管理,数据:描述事物的符号记录 数据处理:从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说有价值、有意义的数据。 数据管理:对数据进行有效的分类、组织、编码、存储、检索、维护和应用数据处理的中心问题。,人工管理阶段(40年代中-50年代中) 文件系统阶段
8、(50年代末-60年代中) 数据库系统管理阶段(60年代末-现在),数据管理技术的发展过程,数据库技术的产生与发展,人工管理阶段 20世纪50年代中期以前的这段时间。 计算机还很简陋,尚没有完整的操作系统,主要应用于科学计算。 数据是面向应用程序的,一个数据集只能对应于一个程序,程序与数据之间的关系如图1-1所示。 数据需要由应用程序自己定义和管理,没有相应的软件系统专门负责数据的管理工作。 当多个应用程序涉及某些相同的数据时,必须由各自的应用程序分别定义和管理这些数据,无法共享利用,因此存在大量冗余数据。,数据库技术的产生与发展,文件系统阶段 20世纪50年代后期到60年代中期的这段时间。
9、计算机除了应用于科学计算外,已开始应用于数据管理 在操作系统之上建立的文件系统已经成熟并广泛应用,数据由专门的软件进行统一管理。 对于一个特定的应用,数据被集中组织存放在多个数据文件(以后简称为文件)或文件组中,并针对该文件组来开发特定的应用程序。 利用“按文件名访问,按记录进行存取”的管理技术,可以对文件进行记录的修改、插入和删除等操作。 文件系统阶段程序与数据之间的关系如图1-2所示。,数据库技术的产生与发展,文件系统的主要特点 文件系统实现了文件内的结构性,即一个文件内的数据是按记录进行组织的,这样的数据是有结构的。 整体上还是无结构的,即多个文件之间是相互独立的,无法建立全局的结构化数
10、据管理模式。 程序和数据之间由文件系统提供的存取方法进行转换,程序员可以不必过多地考虑物理细节。 由于数据在存储上的改变不一定反映在程序上,因此应用程序与数据之间有了一定的物理独立性。,数据库技术的产生与发展,文件系统的弊端 数据共享性差,数据冗余和不一致 数据冗余是指相同的数据在不同的地方(文件)重复存储 文件系统中的一个(或一组)文件基本上对应于一个应用程序,不同应用程序之间很难共享相同数据 如何有效地提高不同应用共享数据的能力成为急需解决的问题 数据独立性差 文件系统中的文件组是为某一特定应用服务的,其逻辑结构对于该特定应用程序来说是优化的,但系统也不易扩充 数据与应用程序之间缺乏逻辑独
11、立性 如何有效地提高数据与应用程序之间的独立性成为急需解决的问题 数据孤立,数据获取困难 对于数据与数据之间的联系,文件系统仍缺乏有效的管理手段 如何有效地管理数据与数据之间的联系成为急需解决的问题,数据库技术的产生与发展,文件系统的弊端 完整性问题 数据的完整性是指数据的正确性、有效性和相容性,也称为一致性约束 例如,一个学生需要选修某门课程,该学生必须已经修过了该课程规定的先修课程时才能选修(因为课程之间存在先修后修关系);必须在该教学班尚未选满时才能选修(因为教室容量有限);必须在时间上与其它已经选修的课程不冲突时才能选修 如何有效地表达和实现一致性约束成为急需解决的问题 安全性问题 一
12、个系统可能有很多用户,不同用户可能只允许其访问一部分数据,即该用户只有一部分数据的访问权限 如何有效地保障数据的安全性就成为急需解决的问题,数据库技术的产生与发展,文件系统的弊端 原子性问题 计算机系统有时会发生故障,一旦故障发生并被检测到,数据就应该恢复到故障发生前的状态 例如,学生选课时,不仅要在选课文件中增加某学生选修某门课的记录,同时也要在该课程教学班记录中将已选课人数加1,以便学生选课时进行容量控制 因此,增加选课记录与选课人数加1两个操作要么都发生,要么都不发生,这就是学生选课操作的原子性要求 如何有效地保障操作的原子性就成为急需解决的问题 并发访问异常 系统应该允许多个用户同时访
13、问数据,在这样的环境中由于并发更新操作相互影响,可能会导致数据的不一致 如何有效地控制并发操作的正确性就成为急需解决的问题,数据库技术的产生与发展,数据库管理系统阶段 20世纪60年代后期以来 数据管理对象的规模越来越大,应用范围越来越广,多种应用共享数据的要求越来越强烈 数据库管理系统(DBMS)是由一个相互关联的数据的集合和一组用以访问、管理和控制这些数据的程序组成 这个数据集合通常称为数据库(database, DB),其中包含了关于某个企业信息系统的所有信息 DBMS是位于用户与操作系统之间的一层数据管理软件,它提供一个可以方便且高效地存取、管理和控制数据库信息的环境 DBMS和操作系
14、统一样,都是计算机的基础软件(系统软件),也是一个大型复杂的软件系统,数据库技术的产生与发展,设计数据库管理系统的目的是为了有效地管理大量的数据,既涉及到数据存储结构的定义,又涉及到数据操作机制的提供 解决文件处理系统中存在的问题: 数据共享性差(数据冗余和不一致) 数据独立性差 数据孤立和数据获取困难 完整性问题 原子性问题 并发访问异常 安全性问题,数据库技术的产生与发展,数据库管理系统的主要特点 数据结构化。数据库管理系统实现数据的整体结构化,这是数据库的主要特征之一,也是数据库管理系统与文件系统的本质区别 一是指数据不仅仅是内部结构化,而是将数据以及数据之间的联系统一管理起来,使之结构
15、化。,二是指在数据库中的数据不是仅仅针对某一个应用,而是面向全组织的所有应用。 例如,一个学校的信息系统中不仅要考虑教务处的学生成绩管理,还要考虑学生处的学籍注册管理、学生奖惩管理、学生家庭成员管理,以及财务处的学生缴费管理;同时还要考虑研究生院的研究生管理、科研处的科研管理、人事处的教职工人事管理和工资管理等。 因此,学校信息系统中的学生数据要面向全校各个职能管理部门和院系的应用,而不仅仅是教务处的一个学生成绩管理应用。,数据库技术的产生与发展,数据库管理系统的主要特点 数据的共享度高,冗余度底,易扩充 数据库管理系统从整体角度描述和组织数据,数据不再是面向某个应用,而是面向整个系统 因此,
16、数据可以被多个用户、多个应用共享使用 数据共享可以大大减少数据的冗余,避免数据之间的不一致性 数据独立性高 数据独立性是用来描述数据与应用程序之间的依赖程度,包括数据的物理独立性和数据的逻辑独立性,依赖程度越低则独立性越高 物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,数据库技术的产生与发展,数据库管理系统的主要特点 数据由数据库管理系统(DBMS)统一管理和控制 数据的安全性保护:保护数据以防止不合法的使用造成数据的泄密和破坏 数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系 并发控制
17、:对多个用户或应用同时访问同一个数据的并发操作加以控制和协调,确保得到正确的修改结果或数据库的完整性不遭到破坏 数据库恢复:当计算机系统发生硬件或软件故障时,需要将数据库从错误状态恢复到某一已经正确状态,数据库管理系统的主要特点,数据结构化 数据库管理系统实现数据的整体结构化,这是数据库的主要特征之一,也是数据库管理系统与文件系统的本质区别。 数据的共享度高,冗余度底,易扩充 数据库管理系统从整体角度描述和组织数据,数据不再是面向某个应用,而是面向整个系统 因此,数据可以被多个用户、多个应用共享使用 数据共享可以大大减少数据的冗余,避免数据之间的不一致性 数据独立性高 数据独立性是用来描述数据
18、与应用程序之间的依赖程度,包括数据的物理独立性和数据的逻辑独立性,依赖程度越低则独立性越高 物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的 数据与程序的独立,把数据的定义和描述从应用程序中分离出来,加上数据的存取又由数据库管理系统DBMS负责提供,用户不必考虑存取路径等细节,从而大大简化了应用程序的编写,也大大提高了应用程序的维护和修改的效率,降低了代价。 数据由数据库管理系统(DBMS)统一管理和控制,数据管理技术的应用(高校),教学管理 用于存储各专业教学计划、教师和学生信息、教室信息、教材信息、教师开课以及
19、学生选课记录等,提高排课、选课、成绩管理、毕业管理效率 科研管理 用于存储教师信息、科研成果记录等,方便科研成果的考核、检索和统计工作 图书馆管理 用于存储图书馆的馆藏资料(图书、期刊等)、读者(教师、学生等)信息,以及图书和期刊的借阅、归还记录等,方便读者查找资料,方便管理人员办理图书和期刊的借阅、归还和催还等手续,提高图书馆管理水平,数据管理技术的应用(制造企业),销售管理 用于存储客户、商品信息以及销售记录,以便能够实时的订单跟踪、销售结算、库存管理和商品推荐 人力资源管理 用于存储部门信息、员工信息,以及出勤记录、计件记录等,自动计算员工的工资、所得税和津贴,产生工资单 制造业管理 用
20、于存储客户信息、生产工艺信息,以及采购、生产、入库、出库记录等,实现供应链管理,跟踪工厂的产品生产情况,实现零部件、半成品、产成品的库存管理等 固定资产管理 用于存储客户信息、部门信息和员工信息,固定资产的采购记录、领用记录和报废记录等,自动计提固定资产折旧,提供各种固定资产报表,数据管理技术的应用,书店管理 用于存储员工、客户信息以及图书采购、库存、销售记录等,提高图书的采购、库存和销售管理水平,方便书店的账务处理 售票管理 用于存储客户信息和客运飞机、火车、汽车班次等信息,以及订票、改签和退票记录等,提高交通客运管理水平,方便客户订票 电信管理 用于存储客户信息、通话记录等,自动结算话费,
21、维护预付电话卡的余额,产生每月账单,提高电信管理水平 银行管理 用于存储客户信息、存款账户和贷款账户记录以及银行之间的转账交易记录等,提高存款、贷款管理水平,加速资金流转和银行结算,目 录,数据库系统,数据库系统的作用,数据模型,数据抽象与数据库三级模式,数据模型的分类,数据库结构的基础是数据模型(data model) 数据模型是一个描述数据语义、数据与数据之间联系(数据结构),数据操作,以及一致性(完整性)约束的概念工具的集合 通过数据模型可以对现实世界的数据特征进行抽象 根据数据抽象的不同级别,将数据模型划分为3类: 概念模型:概念层次的数据模型,也称为信息模型 逻辑模型:用于描述数据库
22、数据的整体逻辑结构 物理模型:用来描述数据的物理存储结构和存取方法,数据模型的分类,概念模型 按用户的观点或认识对现实世界的数据和信息进行建模 主要用于数据库设计 常用的概念模型有实体-联系模型(E-R模型)和面向对象模型(OO模型) E-R模型基于对现实世界的如下认识:现实世界是由一组称作实体的基本对象以及这些对象间的联系构成 实体是现实世界中可区别于其他对象的一件“事情”或一个“物体” 例如,选课系统中的一门课程、一个学生、一个部门、一条选课记录、一个教室、一本书等都是实体 OO模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型 对象是由一组数据结构和在这组
23、数据结构上操作的程序代码封装起来的基本单位,数据模型的分类,逻辑模型 是用户通过数据库管理系统看到的现实世界,是按计算机系统的观点对数据建模,即数据的计算机实现形式 主要用于DBMS的实现。它既要考虑用户容易理解,又要考虑便于DBMS实现 不同的DBMS提供不同的逻辑数据模型 层次模型(hierarchical model) 网状模型(network model) 关系模型(relational model) 面向对象模型(即OO模型) XML模型 对象关系模型(object relational model),数据模型的分类,物理模型 物理层是数据抽象的最低层 例如,一个数据库中的数据和索引
24、是存放在不同的数据段上还是相同的数据段上;数据的物理记录格式是变长的还是定长的;数据是否压缩存储;索引结构是B+树还是Hash结构等 物理模型的具体实现是DBMS的任务,数据库设计人员要了解和选择物理模型,一般用户则不必考虑物理层细节 适用对象 从现实世界到概念模型的转换是由数据库设计人员完成 从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以用数据库设计工具协助设计人员完成 从逻辑模型到物理模型的转换一般由DBMS来完成,数据模型的组成要素,数据模型是一个描述数据、操作和约束的一组概念和工具的集合 这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件 数据模型的组成要素有:
25、数据结构:描述数据库的组成对象(数据)以及对象之间的联系 数据操作:指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则 完整性约束:一组完整性规则,它给定数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据库中数据的正确、有效和相容,层次模型,典型代表是1968年IBM公司推出的第一个大型商用数据库管理系统IMS(information management system) 层次模型用树形结构来表示各类实体以及实体间的联系。实体用记录来表示,实体间的联系用链接(可看作指针)来表示 满足如下两个条件的基本层次联系
26、的集合为层次模型: 有且只有一个结点没有双亲结点,这个结点称为根结点 根以外的其他结点有且只有一个双亲结点 在层次模型中,每个结点表示一个记录型,记录(型)之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系 每个记录型由若干个字段组成,记录型描述的是实体,字段描述的是实体的属性。每个记录型可以定义一个排序字段,也称为码字段,如果所定义的排序字段的值唯一,则它也可以用来唯一标识一个记录值,层次模型,层次模型,层次模型的主要优点: 数据结构比较简单清晰 查询效率高 提供了良好的完整性支持 层次模型的主要缺点: 现实世界中很多联系是非层次的(如多对多联系),层次模型在表示这类
27、联系时,解决的办法:一是通过引入冗余数据(易产生不一致性),二是创建非自然的数据结构(引入虚拟结点) 。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂 查询孩子结点必须通过双亲结点 由于结构严密,层次命令趋于程序化,网状模型,典型代表是DBTG系统,亦称为CODASYL系统,它是20世纪70年代由数据系统语言研究会(conference on data system language, CODASYL)下属的数据库任务组(data base task group, DBTG)提出的一个系统方案 满足如下两个条件的基本层次联系的集合称为网状模型 允许一个以上的结点无双亲 一个结点可以有
28、多个双亲 网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,还允许两个结点之间有多种联系(称为复合联系)。因此,网状模型可以更直接地去描述现实世界,网状模型,网状模型的主要优点: 能够更为直接地描述现实世界 具有良好的性能,存取效率较高 网状模型的主要缺点: 结构比较复杂,而且随着应用规模的扩大,数据库的结构会变得越来越复杂,不利于最终用户掌握 操作语言比较复杂,关系模型,1970年美国IBM公司San Jose研究室的研究员E. F. Codd首次提出了数据库管理系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。 由于E. F. Cod
29、d的杰出工作,他于1981年获得ACM图灵奖 20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,数据库领域当前的研究工作也都是以关系方法为基础 本书的重点也主要是讲授关系数据库,关系模型,关系数据模型的数据结构 关系模型中的常用术语: 关系(relation):一个关系对应一张二维表,每一个关系有一个名称即关系名; 元组(tuple):表中的一行称为一个元组; 属性(attribute):表中的一列称为一个属性,每一个属性有一个名称即属性名; 码(key):也称为码键。表中的某个属性或属性组,它可以唯一地确定关系中的一个元组; 域(domain):属性的取值范围; 分量
30、(component):元组中的一个属性值; 关系模式(relational schema):通过关系名和属性名列表对关系进行描述,相当于二维表的表头部分(即表格的描述部分) 关系模式的一般形式: 关系名(属性名1,属性名2,属性名n),关系模型,关系Student、Course和Score可分别描述为: Student(学号,姓名,性别,出生日期,所学专业) Course(课程号,课程名称,学时,学分) Score(学号,课程号,学期,成绩) 关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件。 最基本的规范条件是: 关系的每一个分量必须是一个不可分的数据项,即不允许表中有表,
31、关系模型,关系数据模型的操作 关系数据模型的操作主要包括查询、插入、删除和修改(更新数据) 关系:元组的集合,关系模型的数据操作是集合操作,操作对象和操作结果都是关系(元组的集合)不同于传统的非关系模型的数据操作:单记录操作 关系模型:存取路径是透明的,用户只要指出“干什么”或“找什么”,不必说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了软件的开发和维护效率 关系数据模型的完整性约束条件 实体完整性、参照完整性和用户自定义完整性,关系模型,关系数据模型的优点: 严格的数学基础:有关系代数作为语言模型,有关系数据理论作为理论基础 概念单一:无论实体还是实体之间的联系都是用关系来
32、表示,对数据(关系)的操作(检索和更新)结果还是关系。所以其数据结构简单、清晰,用户易懂易用 存取路径透明:具有更高的数据独立性、更好的安全保密性,简化了程序员的工作,提高了软件的开发和维护效率 关系数据模型的缺点: 由于存取路径对用户透明,查询效率往往不如非关系数据模型 为了提高性能,DBMS必须对用户的查询请求进行查询优化,这样就增加了DBMS的开发难度,层次模型:查询信息系C04班的女同学,关系模型:查询信息系C04班的女同学,面向对象模型,以面向对象数据模型为核心的面向对象数据库的主要特征: 对象。面向对象数据模型将客观世界模拟成由各个相互作用的称为对象的单元组成的复杂系统。对象的定义
33、包括状态和行为两方面,状态由一组属性值组成,行为由一组方法组成 对象类。具有相同属性和方法的对象组成对象类,对象只属于某一个类并作为该类的实例 继承。定义子类时可以直接继承超类的属性和方法,在此基础上定义不同于超类的属性和方法,这称为子类对超类的继承(inheritance) 持久性和对象标识。在大多数程序设计语言中,对象是临时的;但在面向对象数据库中,对象在被删除前是永久存在的。一个对象的对象标识在系统中是唯一的,在整个生存期内是不变的 阻抗失配。数据库查询语言是由系统自选查询路径的非过程化语言。非过程化语言面向集合的操作方式与高级程序设计语言面向记录的操作方式之间会产生不协调现象,称为阻抗
34、失配。阻抗失配的根本原因在于数据库的数据模型与程序设计语言的不一致,因而对所有嵌入式数据库查询语言来说,阻抗失配是不可避免的,面向对象模型,面向对象模型的基本概念: 数据建模的基本原语是对象(object)和文字(literal),每个对象有一个唯一的标识符,文字没有标识符 对象和文字都可以划分为类型(type),同一类型的对象或文字具有相同的行为和状态,对象可以称为类型的实例 通过一组性质(property)来定义对象的状态,性质可以分为两种:对象的属性和对象之间的联系 通过一组操作(operation)来定义对象的行为,操作都具有输入和输出参数,并且可以返回特定类型的结果 利用ODL(ob
35、ject definition language)定义对象数据库管理系统的模式。面向对象数据库中存储的对象都是模式中定义的类型的实例,即对象,这些对象可以供多个用户和应用共享,XML模型,XML(可扩展标记语言)是SGML(标准通用标记语言)的子集,目标是允许普通的SGML在Web上以目前HTML(超文本标记语言)的方式被服务、接收和处理。XML被设计成易于实现,且可在SGML和HTML之间互操作 XML的基本概念: 元素:由一对标记(即起始标记和终止标记)串行化而成,起始标记的形式是,终止标记的形式是,元素的后裔则位于起始标记和终止标记之间。典型地组成了XML文档中的大部分内容 属性:用来给
36、元素提供所显示内容的额外信息 DTD:通过具体说明每一个元素和属性的名称、元素与子元素之间的嵌套关系、子元素的出现次数等来定义XML文档的结构模型,XML模型,XML信息集 一个最基本的XML信息内容的描述,它为XML文档提供了一个比较抽象、概念上的解释 两个XML文档即使在字符层次上是不同的,但是只要有着相同的信息集,那么都可以认为它们是等价的 XPath 1.0数据模型 XPath 1.0基于一个树状模型,这个树状模型基本上与XML信息集相当 在这个模型中,每个结点都是以下7种类型之一:文档结点、元素结点、属性结点、命名空间结点、处理指令结点、注释结点、文本结点 一个XML文档可以认为是X
37、Path数据模型的实例,目 录,数据库系统,数据库系统的作用,数据模型,数据抽象与数据库三级模式,数据抽象,DBMS:隐藏关于数据存储和维护的某些细节,为用户提供数据在不同层次上的视图,即数据抽象,方便不同的使用者可以从不同的角度去观察和利用数据库中的数据 物理层抽象 最低层次的抽象,描述数据实际上是怎样存储的 逻辑层抽象 描述数据库中存储什么数据以及这些数据之间存在什么关系 提供给数据库管理员和数据库应用开发人员使用的,他们必须明确知道数据库中应该保存哪些信息 视图层抽象 最高层次的抽象,只描述整个数据库的某个部分 系统可以为同一数据库提供多个视图,每一个视图对应一个具体的应用,数据库的三级
38、模式,根据数据抽象的3个不同级别,DBMS也应该提供观察数据库的3个不同角度,以方便不同的用户使用数据库的需要。这就是数据库的三级模式结构 模式 也称为逻辑模式,对应于逻辑层数据抽象,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 模式的一个具体值称为模式的一个实例(instance) 它是DBMS模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关,数据库的三级模式,外模式 也称子模式或用户模式,对应于视图层数据抽象 是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,
39、是数据库用户的数据视图,是与某一具体应用有关的数据的逻辑表示 外模式是保证数据库安全性的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的 内模式 也称存储模式,对应于物理层数据抽象,它是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式,数据库的三级模式,数据库的两层映像功能与数据独立性 外模式/模式映像 对应于一个模式可以有多个外模式。对于每一个外模式,数据库管理系统都有一个模式/外模式映像,它定义了该外模式与模式之间的对应关系 在各自的外模式描述中定义外模式/模式映像 保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性 模式/内模式映像
40、数据库中只有一个模式,也只有一个内模式,模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系 在模式描述中定义模式/内模式映像 保证了数据与程序的物理独立性,简称为数据的物理独立性,数据库的三级模式,在数据库的三级模式结构中,模式即全局逻辑结构是数据库的核心和关键,它独立于数据库的其他层次。因此,设计数据库模式结构时,应首先确定数据库的逻辑模式 总结 一方面由于数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出来 另一方面由于数据的存取由DBMS管理,用户不必考虑存取路径等细节 从而大大简化了应用程序的编制,也大大提高了应用程序的维护和修改的效率,目 录,
41、数据库系统,数据库系统的作用,数据模型,数据抽象与数据库三级模式,数据库系统组成,数据库系统(database system, DBS),是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其应用开发工具)、应用系统、数据库管理员和最终用户构成 数据库管理员(database administrator, DBA),是指数据库的建立、使用和维护等的工作人员 在不引起混淆的情况下,常常把数据库系统简称为数据库,数据库管理系统简称为数据库系统,数据库管理系统DBMS,数据库管理系统(DBMS)是一组软件,负责数据库的存取、维护和管理 DBMS的功能 数据定义:DBMS提供数据定义
42、语言(DDL) 数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等 数据操纵:DBMS还提供数据操纵语言(DML) 数据库的事务管理和运行管理:数据库在建立、运行和维护时由DBMS统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发操作以及发生故障后的系统恢复 数据库的建立和维护 其他功能,数据库管理系统DBMS,DBMS的组成 查询处理器:对用户请求的SQL操作进行查询优化,从而找到一个最优的执行策略,然后向存储管理器发出命令,使其执行 存储管理器:根据执行策略,从数据库中获取相应的数据,或更新数据库中相应的数据 事务管理器:负责保证系统的完整性,保证多个同时运行的事务不发生冲突操作,以及保证当系统发生故障时数据不会丢失,数据库管理系统DBMS,数据库系统的相关人员,开发、管理和使用数据库系统的人员: 数据库管理员 系统分析员 数据库设计人员 应用程序员 最终用户 不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如图1-19所示,数据库系统的相关人员,数据库管理员的主要职责 决定数据库中的信息内容和结构 决定数据库的存储结构和存取策略 定义数据的安全性要求和完整性约束条件 监控数据库的使用和运行 数据库的改进和重组重构,本章结束!,请同学们对本章内容进行复习、总结!,