数据库原理-不错的教程.ppt_第1页
数据库原理-不错的教程.ppt_第2页
数据库原理-不错的教程.ppt_第3页
数据库原理-不错的教程.ppt_第4页
数据库原理-不错的教程.ppt_第5页
已阅读5页,还剩261页未读 继续免费阅读

下载本文档

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

文档简介

数据库概述 数据库系统本质上是一个用计算机存储记录的系统 数据库本身可被看作为一种电子文件柜 也就是说 它是收集计算机数据文件的仓库或容器 系统用户可以对这些文件执行一系列的操作 例如 向数据库中增加新的空文件向现有文件中插入数据从现有文件中检索数据更改现有文件的数据删除现有文件中的数据删除数据库中的现有文件 DatabaseManagementSystem 数据库的性质 数据库描述了现实世界中的某些方面 构成了现实世界中的一个微小世界 数据库是一个逻辑上紧密相连的数据集 该数据集中的数据具有某些固有的语义含义 数据库是为某个特定目标设计 建立和使用的 它拥有确定的用户组和这些用户组感兴趣的预定的应用 DatabaseManagementSystem 信息 数据与数据处理 信息与数据信息是现实世界事物的存在方式或运动状态的反映 数据是将现实世界中的各种信息记录下的 可以识别的符号 是信息的载体 信息的具体表现形式 数据处理数据处理实际上就是利用计算机对各种形式的数据进行处理 它包括 数据采集 整理 编码和输入 有效地把数据组织到计算机中 有计算机对数据进行一系列存储 加工 计算 分类 检索 传输 输出等操作过程 数据处理的目的是从大量的 原始的数据中抽象和推导出对人们有价值的信息以作为行动和决策的依据 在数据处理的一系列活动中 数据搜集 分类 组织 编码 存储 检索 传输和维护等操作为基本操作 我们将这些基本操作环节称为数据管理 DatabaseManagementSystem 数据库管理系统 数据库管理系统DBMS DatabaseManagementSystem 是计算机程序的集合 它被数据库用户用来创建和维护数据库 因此 它是一个通用软件系统 数据库管理系统一般应具有的功能包括 定义 创建 操作和维护数据库 定义数据库涉及描述存储在数据库中数据的数据类型 描述这些数据的数据结构和描述这些数据所具有的各种语义限制 创建数据库则是在数据库管理系统的控制下把这些数据存储在某种存储介质上 数据的操作则包括如查询 更新和生成报表等一系列处理功能 DatabaseManagementSystem 数据管理的进展 人工管理阶段数据不保存没有专用的软件对数据进行管理只有程序的概念 没有文件的概念数据面向程序文件系统阶段数据以文件的形式长期保存数据的逻辑结构与物理结构有了区别文件形式多样化程序与数据之间有一定的独立性 数据库系统阶段数据共享面向全组织的复杂的数据结构数据独立性可控数据冗余度统一的数据控制功能数据安全性控制数据完整性控制并发控制数据恢复 DatabaseManagementSystem 数据库方法与文件处理方法 数据库的自说明性质数据库系统中 不仅含有数据库本身 而且还有完整的有关数据库的定义描述 定义被存放在数据字典 DataDictionary 之中 其内容包括每个文件的结构 数据项的类型及存储格式 数据项上应有的语义限制等 存放在数据字典中的数据称为元数据 Metadata 程序与数据的独立在传统文件处理中 数据文件结构是嵌入在存取程序之中的 对文件结构的任何改变 都需要对存取这些文件的所有程序也做相应修改 因此说 文件处理中程序与数据是紧密关联的 而在数据库系统中 数据库管理系统存取程序是独立于任何特定文件的 数据文件结构作为数据字典的一部分被存储 是独立于存取程序的 允许程序于数据独立 程序于操作独立的性质被称为数据抽象 DataAbstraction 数据库管理系统为用户提供的数据抽象包含数据的概念描述 ConceptualRepresentation 概念描述中只使用逻辑概念来描述数据 不包含任何有关数据是如何存储的细节 数据的多视图数据共享和多用户事务处理 DatabaseManagementSystem 数据库管理概述 什么是数据库系统数据集成共享硬件软件数据库管理器 数据库服务器 数据库管理系统 DBMS 用户什么是数据库持久数据 我们说数据库中的数据是持久的 是因为一旦数据进入数据库被DBMS接受 就只有向DBMS提出某些明确的请求时 才能从数据库中删除数据 数据库是一个持久数据的集合 这些数据用于某企业的应用系统中 为什么用数据库数据管理和数据库管理数据库方法的优点数据共享减少冗余避免不一致提供事务支持保持完整性增强安全性平衡相互冲突的请求加强标准化 DatabaseManagementSystem 数据库系统用户 DBA DatabaseAdministrator 这类人员全面负责数据库系统的管理维护和正常使用 DBA的具体职责是 决定数据库的内容和结构 决定数据库的存储结构和存取策略 定义数据的安全性要求和完整性约束条件 监督控制数据库的使用和运行 数据库系统的改进和重组 数据库设计者 终端用户临时用户初级用户熟练用户系统分析员和应用程序员系统软件工作人员数据库管理系统软件的设计和实现者工具开发者操作与维护人员 DatabaseManagementSystem 数据描述 现实世界存在于人们头脑之外的客观世界 信息世界现实世界在人们头脑中的反映 实体 entity 实体集 entityset 属性 attribute 键 key 机器世界信息世界中的信息在机器世界中一数据形式存储 字段 field 记录 record 文件 file 键 key DatabaseManagementSystem 数据之间的联系 现实世界中 事务是相互联系的 这种联系在信息世界中对应为实体的联系 实体的联系有两类 一类是实体内部的联系 反映在数据上是同一记录内部各字段间的联系 另一类是实体与实体间的联系 反映在数据上就是记录之间的联系 数据库技术不但要考虑记录内部的联系 而且还要考虑记录之间的联系 实体间的联系一对一联系 1 1 一对多联系 1 m 多对多联系 n m DatabaseManagementSystem 逻辑数据和物理数据 物理数据描述指存放在存储设备上的存储方式 物理数据是实际存放在存储设备上的数据 例如物理联系 物理结构 物理文件 物理记录等术语 都是用来描述存储数据的细节 逻辑数据描述指程序员或用户用以操作的数据形式 是抽象的概念 例如逻辑联系 逻辑结构 逻辑文件 逻辑记录等术语 都是用户观点的数据描述 在数据库系统中 逻辑数据与物理数据之间可以差别很大 用户看到的数据结构和数据 与存储器中的数据结构和数据可能完全不同 数据库管理软件的功能之一就是要把逻辑数据转换成物理数据 或者把物理数据转换成逻辑数据 DatabaseManagementSystem 数据模型 数据模型 DataModel 是一组可用来描述数据库结构的概念集 数据库结构是指存储在数据库中的数据的类型 数据之间的联系以及数据上应有的语义限制 数据模型也包括数据操作 描述在数据库上可执行的检索与更新 另外 数据操作也可以包括用户定义的操作 User DefinedOperation DatabaseManagementSystem 数据模型分层 概念层 Conceptual Level 现实世界的第一层抽象 又称为 概念数据模型 为终端用户所使用 完全不涉及信息在计算机系统中的表示 只是用来描述某个特定组织所关心的信息结构 表示层 Representational Level 或实现层 Implementation Level 现实世界的第二层抽象 又称为 基本数据模型 或 结构数据模型 可以为终端用户理解 不涉及到数据的具体组织 直接面向数据库的逻辑结构 具有严格的形式化定义 以便于计算机系统中的实现 物理层 Physical Level 描述数据在计算机中如何存储 DatabaseManagementSystem 模式与实例 在数据库模型中 很重要的一点是要区别数据库描述和数据库本身 数据库描述称为数据库模式 DatabaseSchema 数据库模式是在数据库设计时被说明的 其结构由不被经常修改的数据结构描述 数据库中的数据是可以经常被修改的 数据库中某一时刻的数据称为该数据库的数据库状态 或称为数据库值 Occurrence 也可以称为数据库实例 Instance 集合 在一个给定的数据库状态中 每一个模式结构都有其自己的当前值集 每次对数据库中数据项的插入 删除和修改 都是将数据库从一个状态改变到另一个状态 区别数据库模式和数据库状态是重要的 当我们定义一个新数据库时 我们仅仅只是对DBMS描述了数据库模式 这时的数据库状态是 空 即没有数据 当对数据库第一次装载时 就获得了数据库的 初始状态 从此以后 每个对数据库的更新操作都使其获得了数据库的另一个状态 DBMS有责任保证每个数据库状态都是有效状态 ValidState 也就是说 DBMS要保证新获得的状态中数据库模式的结构和语义限制说明都是正确的 对DBMS说明一个正确的模式极为重要 DBMS将模式存放在字典之中 DBMS的软件就可以在任何需要的时候引用该模式 获得对数据库中数据的解释 模式有时也被称为内涵 Intension 而数据库状态被称为该模式的外延 Extension DatabaseManagementSystem 数据独立性 数据库系统中 应尽可能避免应用程序依赖于数据的情况 这至少基于如下两条原因 不同的应用程序对相同的数据会从不同角度来看 DBA必须有权改变物理表示和访问技术以适应变化的需要而不必改变现有的应用程序 数据独立性 应用程序不会因物理表示和访问技术的改变而改变 数据独立性包括两个方面 物理独立性和逻辑独立性 DatabaseManagementSystem 数据模型 数据模型的三要素数据结构 对实体类型和实体间联系的表达和实现 数据操作 对数据库的检索和更新两类操作 数据的约束条件 给出数据及其联系所具有的制约和依赖规则 这些规则用于限定数据库的状态及状态的变化 以保证数据库中数据的正确 有效和安全 概念模型实体联系模型 EntityRelationshipModel 简记为ER模型 三种主要的数据模型层次模型网状模型关系模型面向对象模型 DatabaseManagementSystem 实体联系模型 实体联系模型直接从现实世界中抽象出实体类型和实体间联系 然后用实体联系图 ER图 表示数据模型 设计ER图的方法称为ER方法 ER图是直观表示概念模型的有力工具 在ER图中 用矩形框表示实体集 框内写上实体名 用椭圆形框表示属性 属性名写在框内 属性与实体集之间用无向边连接 用菱形框表示实体集之间的联系 菱形框内写上联系名 用线段分别与有关实体集相连接 在线段边上标上联系的种类 1 m m n或1 1 若实体集之间的联系也具有属性 则把属性和菱形边也用线段连接上 DatabaseManagementSystem 关系模型中的主要术语 关系模型 用二维表格结构来表示实体与实体间的联系的模型为关系模型 RelationModel 属性 在二维表格中的列 字段 数据项 称为属性 Attribute 列值称为属性值 属性值的取值范围为值域 Domain 关系模式 在二维表格中的行定义 记录的型 称为关系模式 元组 tuple 与关系 在二维表格中行 记录的值 称为元组 元组的集合称为关系 主键 PrimeKey 又称主码 它能唯一识别标识元组的属性和属性的组合 且不含有多余的属性 外键 ForeignKey 它在其特定表内不是主键 但它可以是主键的一部分 它在该特定表外一定有个关联表存在 并且它在该特定表中值和在关联表中有相同的值域 它也可由一个或多个属性组成 DatabaseManagementSystem 关系模型中的主要术语 图解 DatabaseManagementSystem 数据库系统体系结构 三级体系结构外模式概念模式内模式映象数据库管理员数据库管理系统数据通信管理器客户服务器体系结构工具分布式处理 DatabaseManagementSystem 三级体系结构 ANSI SPARC体系结构分为三层 即内模式 概念模式和外模式 这种三级结构有时也称为 数据抽象的三个级别 广义地讲 内模式 存储模式 是最接近物理存储的 也就是 数据的物理存储方式 外模式 用户模式 是最接近用户的 也就是 用户所看到的数据视图 概念模式 公共逻辑模式 或有时称逻辑模式 是介于前两者之间的间接的层次 注意到外模式是单个用户的数据视图 而概念模式是一个部门或企业的数据视图 换句话说 外部视图 即外模式 会有许许多多 每一个都或多或少地抽象表示整个数据库的某一部分 而 概念视图 概念模式 只有一个 它包含对现实世界数据库的抽象表示 大多数用户只对整个数据库的某一部分感兴趣 同样 内部视图 即内模式 也只有一个 表示数据库的物理存储 DatabaseManagementSystem 数据库系统体系结构 DatabaseManagementSystem 外模式 外模式就是单个用户的数据视图 一个用户可以是应用程序员或任一最终用户 这里DBA是一个特例 与其他用户不同 DBA还要了解概念模式和内模式 每个用户都有其自己要使用的语言 对于应用程序员 可能会使用常规的编程语言 如PL I C Java 或其他专用语言 这些专用语言通常被称作 第四代 语言 4GL 对于最终用户 其使用的语言或者是一种查询语言或是某一特定目的的语言 这些语言可能是表格驱动的或菜单驱动的 可处理用户的请求并由在线的应用程序来支持 重要的是所有这些语言都包含数据子语言 即数据库对象和操作的整个语言的一个子集 数据子语言嵌入在相应的主语言中 主语言负责提供各种非数据库的功能 如局部变量 计算操作 逻辑分支 等等 一个指定系统可以支持多种主语言和多种数据库子语言 理论上 任何特定的数据子语言至少包含两个子语言 数据定义语言 DDL 和数据操纵语言 DML 数据定义语言支持对数据库对象的定义或说明 数据操纵语言支持对这些对象的操作和处理 DatabaseManagementSystem 外模式 ANSI SPARC对用户视图的术语为外部视图 外部视图就是特定用户所看到的数据库的内容 即 对那些用户来说 外部视图就是数据库 通常 外部视图包括许多外部记录类型的值 不必和存储记录一样 用户数据子语言是根据外部记录来定义的 每个外部视图都是通过外模式来定义的 外模式包括外部视图中的各种外部记录类型的基本定义 外模式是使用用户数据子语言的DDL部分来写的 因此有时DDL也当作外部数据定义子语言 此外 在外模式和其下面的概念模式之间要定义映象 DatabaseManagementSystem 概念模式 概念视图表示数据库的全部信息内容 其形式要比数据的物理存储方式抽象些 通常 它与任何特定用户观察数据的方式都很不同 广义上讲 概念视图更接近于实际数据 而不像某一用户所看到的数据 这些数据受到特定语言或可能使用的硬件限制 概念视图由许多概念记录类型的值构成 概念记录既不和外部记录相同 也不和存储记录相同 DatabaseManagementSystem 概念模式 概念视图是由概念模式定义的 概念模式包括各种概念记录型的定义 概念模式是用另一种数据定义语言来写的 即概念数据定义语言 如果可以实现物理记录的独立性 那么概念视图根本不涉及物理表示和访问的技术 它们只定义信息的内容 如果概念视图以这种方式真正地实现数据独立性 那么根据这些概念模式定义的外模式也会有很强的独立性 概念视图是整个数据库内容的视图 概念模式是该视图的定义 在概念模式中的定义应包括许多额外的特征 诸如安全性和完整性约束 DatabaseManagementSystem 内模式 体系结构的第三层是内模式 内部视图是整个数据库的底层表示 它由许多内部记录型中每一类型的许多值组成 内部记录 是ANSI SPARC对存储记录的称谓 内部视图与物理层仍然不同 因为它并不涉及物理记录的形式 即物理块或页 也不考虑具体设备的柱面或磁道大小 内部视图由内模式来描述 内模式不仅定义各种存储记录 而且也说明存在什么索引 存储记录怎么表示 存储记录是在什么物理队列中 等等 内模式是用另一种数据定义语言 内部数据定义语言来写的 DatabaseManagementSystem 映象 除了三级模式本身 ANSI SPARC的体系结构中还含有一定的映象关系 即概念模式 内模式间的映象和外模式 概念模式间的映象 一般地讲 概念模式 内模式的映象定义了概念视图和存储的数据库的对应关系 它说明了概念记录和字段在内部层次怎样表示 如果数据库的存储结构改变了 也就是说 如果改变了存储结构的定义 那么概念视图 内模式的映象必须进行相应的改变 以便概念模式能够保持不变 换句话说 为了保持数据的物理独立性 内模式变化所带来的影响必须与概念模式隔离开来 外模式 概念模式间的映象定义了特定的外部视图和概念视图之间的对应关系一般地讲 这两层之间存在的差异情况与概念视图和存储模式之间存在的差异情况是类似的 DatabaseManagementSystem 数据独立 三级模式结构给出了数据独立 DataIndependence 的概念 数据独立是指在三级模式中 对某一模式的修改 不会引起其相邻模式的修改 很显然 就像概念模式 内模式的映象是物理独立性的关键 外模式 概念模式的映象是逻辑独立性的关键 如果用户和用户的应用程序能相对于数据库物理结构的改变而保持不变 系统就提供了物理独立性 同样地 如果用户和用户的应用程序对于数据库逻辑结构的改变 即在概念或公共逻辑层的改变 能保持不变 系统就提供了逻辑独立性 在三级模式结构中 数据字典必须包括有如何在各个模式之间完成需求和数据间映射的信息 DBMS有专门软件按照字典中的映射说明完成其映射功能 由于数据独立性 某一模型的修改不会引起相邻模式的改变 被改变的只是其映射 三级模式结构提供了真正的逻辑和物理数据独立性 但是 两级映射给查询和程序的执行增加了负担 降低了DBMS的效率 DatabaseManagementSystem 用户 用户是指使用数据库的应用程序或联机终端用户 编制应用程序的语言仍然是COBOL FORTRAN C等高级程序设计语言 在数据库技术中 这些语言称为宿主语言 hostlanguage 或简称为主语言 DBMS提供了数据操作语言 Datamanipulationlanguage 简记为DML 供用户或程序员使用 DML可自成系统在终端上直接对数据库进行操作 称为自含型DML 或交互型DML 也可嵌入在主语言中使用 称为嵌入型DML 此时主语言是经过扩充 能处理DML语句的语言 用户界面 userinterface 是用户和数据库系统间的一条分界线 在界线下面 用户是不可知的 用户界面定在外部级上 用户对于外模式是可知的 DatabaseManagementSystem DBMS语言 DBMS语言可以分为完成数据库描述的数据定义语言DDL DataDefinitionLanguage 和完成数据库中数据存取的数据操作语言DML DataManipulationLanguage 数据定义语言通常被DBA或数据库设计者用来定义模式 DBMS提供DDL的编译程序处理DDL语句 以识别模式结构的描述 并将这些描述存于数据库字典中 在DBMS中 对概念模式和内模式有明显的语言维护 一般DDL只用于概念模式描述 内模式的描述由存储定义语言SDL StorageDefinitionLanguage 完成 两个模式之间的映射可以在这两类语言的任一类中加以实现 一个完整的三级模式结构 还应有描述用户视图 以及用户视图到概念模式的映射 这是由视图定义语言VDL ViewDefinitionLanguage 完成的 DatabaseManagementSystem DBMS语言 一旦数据库模式被定义 数据库中被装人数据 用户就要使用数据操作语言来存取这些信息 DML包括的典型操作是查询 插入 删除和修改 DML语言有两种类型 一种称为高级或非过程DML 该语言允许用户用一种简洁的方式来说明其复杂的操作需求 很多DBMS允许高级DML语句以交互式或以嵌入在通用程序设计语言的方式被使用 低级的或过程性DML必须被嵌入在通用程序设计语言中使用 过程型的DML语言从数据库中检索出单个记录 然后处理 所以 它需要使用程序设计语言中的结构语句 例如循环 去处理从数据库中检索出来的记录集 由于这个性质 过程型DML也被称为基于记录的DML语言 高级DML语言 如SQL 能够在一个DML语句中检索和处理一组记录 因此被称为基于集合的DML 高级DML常常只是说明要从数据库中检索什么样的记录 而不必说明如何去检索到这些记录 DatabaseManagementSystem 数据库语言和接口 不论是高级还是低级DML语言 只要是以嵌入方式使用 那么被嵌入的通用程序设计语言被称为主语言 HostLanguage DML语言本身被称为数据子语言 DataSub Language 在较新的面向对象系统中 主语言与子语言都被综合在一个语言之中 如C 另一方面 以独立的交互方式使用的高级DML被称为查询语言 当前的DBMS中并不真的具有上述不同类型的语言 而是提供一种包括概念模式定义 视图定义 数据操作和存储定义的综合性语言 其典型的例子是SQL关系数据库语言 虽然存储定义语言SDL正在逐渐从SQl语言中移出 但SQL语言仍然是DDL VDL DML和SDL的组合 DatabaseManagementSystem DBMS界面 基于菜单的界面用户使用称为菜单的一组选择表项来完成自己的需求 菜单使用户不必记忆查询语言命令和语法说明 而是通过由系统显示的菜单 一步步选择下去 达到最终的处理目的 下拉式菜单是基于窗口用户界面的通用技术 它将数据库功能以非结构方式展现在用户面前 它是一般用户喜爱的界面之一 图形界面图形界面是在图形窗口中显示数据库的模式结构 用户通过图例来说明其查询 在很多情形 图形界面是以与菜单界面相结合的方式供用户使用 图形界面要求用户使用如鼠标一类的点击设备来选择模式结构部分 DatabaseManagementSystem DBMS界面 基于FORM的界面FORM界面是在用户显示器上给用户展现一个具体的FORM 用户可以在此FORM上的各个数据项栏填人新数据完成对数据库记录的插入 修改 也可以在FORM的某些栏处填人内容 以实现对数据库的查询 FORM界面通常是为初级用户设计和实现 很多DBMS都有专门的FORM说明语言帮助程序员说明一个FORM 有些系统还允许终端用户交互地在屏幕上设计自己的FORM 自然语言界面该界面接受英语或其它语言的检索申请 一般自然语言界面有其自己的 模式 这个模式与数据库的概念模式相似 界面使用该模式中的单词或一组标准短语来解释用户申请 如果这个解释成功 界面生成一个高级查询并且将其提交给DBMS处理 若解释失败 系统则启动一个对话 帮助用户更明确地说明他的申请 DatabaseManagementSystem DBA界面 大多数数据库系统都含有仅供DBA使用的特权命令 这些命令包括创建帐号 设置系统参数 获取权力 改变模式以及重新组织数据库数据结构等等 DatabaseManagementSystem 数据库管理员 数据管理员是根据企业的数据制定策略和政策决策的人 数据库管理员对执行这些决定提供必要的技术支持 因此 数据库管理员负责在技术层的全局控制 通常 数据库管理员的任务至少包括下列内容 定义概念模式定义内模式与用户联络定义安全性和完整性约束定义转储和重载机制监控系统性能并响应不断变化的请求 DatabaseManagementSystem 数据库管理员 定义概念模式数据管理员的工作是决定数据库中存放的信息 换句话说 是确定对企业有用的实体和实体的相关信息 这一过程通常是指数据库的逻辑设计 有时也称概念设计 一旦数据管理员在抽象的层次上决定了数据库的内容 数据库管理员就使用概念数据定义语言创建相应的概念模式 模式的目标形式 已编译的 由数据库管理系统在响应访问要求时使用 源形式 未编译的 作为系统用户的参考文档 注意 在实际中 事情不像前面所说的那样能够清楚地区分 某些情况下 数据管理员可能直接创建概念模式 另外 数据库管理员也可以做逻辑设计 定义内模式DBA也决定数据库中数据表示的问题 这一过程通常叫做物理设计 完成物理设计之后 DBA必须使用内部数据定义语言创建相应的存储结构定义 内模式 此外 DBA必须定义相应的概念模式 内模式的映象 实际上 概念数据定义语言或内部数据定义语言 更多的可能是指前者 会包括定义映象的方法 但是两方面功能 创建模式 定义映象 要清楚地分开 像概念模式一样 每个内模式和相应的映象都会以源形式和目标形式存在 DatabaseManagementSystem 数据库管理员 与用户联络为了确保用户需要的数据可用 并可以使用外部数据定义语言来编写 或帮助用户写 必要的外模式 DBA要负责与用户的联络 如前所述 一个指定的系统可以支持几个不同的外部数据定义语言 此外 相应的外模式 概念模式的映象也需要定义 实际上 外部数据定义语言会包括说明映象的方法 但是 模式和映象要清楚地分开 每个外模式和相应的映象都以源形式和目标形式两种方式存在 与用户联络的其他方面还包括考虑应用程序的设计 提供技术培训 帮助决定问题和解决问题 及类似的专业服务 定义安全性和完整性约束 定义转储和重载机制一旦企业采用了数据库系统 它就非常依赖于对系统的正确操作 如果数据库的任何部分遭到破坏 人为引起的或硬件错误或系统错误 必须能够以最小的代价恢复数据 且尽量减小对系统的影响 例如 未被破坏数据的访问并不受影响等 DBA必须定义和执行一个恰当的破坏控制计划 这些计划典型地应包括预先的对数据库卸载或转储到备份存储设备上并且当需要时从最近的转储中恢复数据库 监控系统性能并响应不断变化的请求DBA负责组织系统 以得到对企业最佳的性能 并根据需求的改变来做相应的调整 或调节 DatabaseManagementSystem 数据库管理系统 数据库管理系统 DBMS 是指数据库系统中对数据进行管理的软件系统 它是数据库系统的核心组成部分 对数据库的一切操作 包括定义 查询 更新及各种控制 都是通过DBMS进行的 DBMS总是基于某种数据模型 因此可以把DBMS看成是某种数据模型在计算机系统上的具体实现 根据数据模型的不同 DBMS可以分成层次型 网状型 关系型 面向对象型等 在不同的计算机系统中 由于缺乏统一的标准 即使同种数据模型的DBMS 它们在用户接口 系统功能等方面也常常是不相同的 用户对数据库进行操作 是由DBMS把操作从应用程序带到外部级 概念级 再导向内部级 进而操纵存储器中的数据 DBMS的主要目标是使数据作为一种可管理的资源来处理 DBMS应使数据易于为各种用户共享 应该增进数据的安全性 完整性和可用性 并提供高度的数据独立性 DatabaseManagementSystem DBMS的主要功能 数据库的定义功能DBMS提供数据定义语言 DDL 来定义数据库的三级结构 包括外模式 概念模内模式及其相互之间的映象 定义数据的完整性约束 保密限制等约束 因此 在DBMS中应包括DDL的编译程序 数据库的操纵功能DBMS提供数据操纵语言 DML 实现对数据的操作 基本的数据作有四种 检索 查询 插入 删除和修改 后三种又称为更新操作 DML有两类 一类是嵌入在COBOL C等宿主语言中使用 称为宿主型 或嵌入型 DML 另一类是可以独立地交互使用的DML 称为自含型 或交互型 DML 因而在DBMS中应包括DML的编译程序或解释程序 DatabaseManagementSystem DBMS的主要功能 数据库的保护功能DBMS对数据库的保护主要通过四方面实现 因而在DBMS中应该包括这四个子系统 1 数据库的并发控制 数据库技术的一个优点是数据共享 但多个用户同时对同一个数据的操作可能会破坏数据库中的数据 或者用户读了不正确的数据 并发控制子系统能防止上述情况发生 正确处理好多用户 多任务环境下的并发操作 2 数据库的恢复 在数据库被破坏或数据不正确时 系统有能力把数据库恢复到最近某个正确的状态 3 数据完整性控制 保证数据库中数据及语义的正确性和有效性 防止任何对数据造成错误的操作 4 数据安全性控制 防止未经授权的用户蓄谋或无意地存取数据库中的数据 以免数据的泄露 更改或破坏 DatabaseManagementSystem DBMS的主要功能 数据库的维护功能这一部分包括数据库的初始数据载入 转换 转储 数据库的改组以及性能监视分析等功能 这些功能分别由各个实用程序完成 数据字典 datadictionary DD DD管理首数据库三级结构的定义 对数据库的操作都要通过DD才能进行 现在有的大型系统中 把DD单独抽出来自成一个系统 成为一个软件工具 使之成为一个比DBMS更高级的用户与数据库之间的接口 上面是一般的DBMS所具备的功能 通常在大 中型计算机上实现的DBMS功能较强 较全 在微型计算机上实现的DBMS功能较弱 应该注意 应用程序并不属于DBMS范围 应用程序是用宿主语言和DML编写的 程序中DML语句由DBMS执行 而其余部分仍由主语言编译程序完成 DatabaseManagementSystem DBMS系统组成模块 DatabaseManagementSystem DBMS系统组成模块 DBMS的组成模块如图所示 数据库和DBMS字典通常存储在磁盘上 对磁盘的操作由操作系统 OperatingSystem 控制 DBMS的高级存储数据管理员 StoredDataManager 控制对磁盘上数据库信息的存取 而不问其是数据库数据还是字典数据 图中虚线和标记为A B C D E的存取是在存储数据管理员控制之下进行的 存储数据管理员使用基本的OS功能完成磁盘和计算机主存之间的低层数据转换 但是主存储器内缓冲区数据转换工作也是由该数据管理员控制完成的 一旦数据被存入主存储器缓冲区 DBMS的其它模块就可以使用这些数据 DDL编译器处理DDL中说明的模式定义 并且将这些定义存入DBMS的字典中 字典信息包括 文件的名字 每个文件的存储细节 模式之间的映射信息 语义限制说明 DBMS软件通过查询字典获取这些信息 运行数据库处理器 Run TimeProcessor 处理运行时数据库的存取 它接受检索和更新操作 然后在数据库上运行 对磁盘的存取由存储数据管理员完成 查询编译器 QueryCompiler 处理以交互式方式输入的高级查询 查询编译器对查询做语法分析 然后生成对运行数据库处理器的调用 完成对数据库的检索 预编译器 Precompiler 抽取用宿主语言编写的程序中的DML命令 将这些命令送给DML编译器 由DML编译器生成对数据存取的目标代码 程序的其余部分送给主语言编译器 DML编译生成的存取目标代码与程序的其它部分连接起来形成一个套装的事务 其执行代码包括对运行数据库处理器的调用 DatabaseManagementSystem DBMS对数据的存取 当一个应用程序通过DBMS读取一组数据记录时 在DBMS内部发生了一系列动作 其过程步骤举例如下 用户A 或应用程序A 用某种特定的数据操作语言向DBMS发出一个存取请求命令 命令给出想要读的记录 DBMS接受这个请求并解释它 DBMS依次检查外模式 外 概念映象 概念模式 概念 内映象以及存储结构定义等 DBMS对存储数据库执行必要的存取操作 DBMS按外模式导出用户程序需要的记录形式 然后把数据从系统缓冲区送到用户A的工作区 DatabaseManagementSystem 数据库系统实用软件 除了DBMS的软件模块外 大多数DBMS都还有数据库实用软件 用来帮助DBA运行数据库系统 典型的实用软件如 装载装载 Loading 软件用于将已存在的数据文件 例如正文文件 顺序文件 的数据直接装入数据库中 装载软件的通常方法是将当前的数据文件格式和要装入的数据库文件格式都告诉装载软件 由装载软件自动地转换数据 然后存人数据库中 随着数据库的应用越来越广泛 在一个组织中 常常还需要将一个数据库中的数据转换成另一个数据库中的数据 对此 数据库开发商也提供了相应的装载软件产品 只要给出源数据库的存储模式和目的数据库的存储模式 该产品就可以生成合适的装载程序 完成不同数据库之间的数据装载 备份备份 Backup 软件是为运行的数据库拷贝一个完全相同的备份 通常的方法是把整个数据库卸到磁带上去 一旦数据库系统遭受损坏 就可以利用备份将数据库恢复到运行状态 文件重组织文件重组织 FileReorganization 软件是为了加强数据的执行效果 将已有的数据库文件重新组织成另一个不同的文件 性能监视性能监视 PerformanceMonitoring 软件监视数据库的运行状况 并且对DBA提供相应的统计数据 DBA使用这些统计数据判定是否要对数据库重新组织 以提高系统的执行效率 DatabaseManagementSystem 数据库系统实用软件 其它还可能有的实用软件包括排序文件 数据压缩 用户存取监视等其它功能软件 另一个有用的实用软件是扩展的数据字典系统 在这个字典系统中 除了存储模式和语义限制的信息之外 数据字典还可以存储其它信息 如设计决策 使用标准 应用程序描述以及用户信息等 这些信息可以直接地由用户或DBA存取 DatabaseManagementSystem 通信功能 DBMS也要有与通信软件的接口 其功能是允许用户用计算机终端 工作站 本地的微型机 小型机对远程数据库系统存取 所有这些终端 工作站 微机等都是通过数据通信硬件 如电话线 网络 无线通信设备等 与数据库相连 很多商用DBMS都有与DBMS工作的通信软件包 另外 分布式DBMS可管理物理上分布的多个机器上的数据 此时为连接这些机器 通信网是必需的 常见的通信网是局域网 LAN 但也可以是其它类型的网 客户 服务器结构是指应用程序和数据库存取运行在不同的机器上 应用程序运行的机器站点被称为客户 而数据存取和存储运行的一台机器被称为服务器 开发商可以提供各种不同的客户 服务器组合 DatabaseManagementSystem 客户 服务器体系结构 数据库系统的全部目的是支持开发和执行数据库应用程序 从较高层来看 数据库系统可以看作是由两个非常简单的部分组成 一个服务器 也称为后端 和一组客户 也称为前端 说明如下 服务器就是指DBMS本身 它支持所有DBMS的基本功能 数据定义 数据操纵 数据安全性 等等 尤其是提供了对内模式 概念模式和外模式的支持 在这样的上下文中 服务器 一词就是DBMS的另一个称谓 客户是指在DBMS上运行的各种应用程序 用户编写的应用程序各嵌入的程序 即DBMS厂商或某第三方厂商所提供的应用程序 对服务器来说 用户编写的应用程序和嵌入的程序之间没有什么不同 它们都使用相同的服务器接口 即外模式接口 DatabaseManagementSystem 应用程序 用户编写的应用程序基本上是规范的应用程序 或者采用第三代语言如C或COBOL或采用一些专门的第四代语言来编写 尽管在两种情况下该语言都要有相应的数据子语言来与之匹配 厂商提供的应用程序 常称为工具 的基本目的是支持创建各执行其他应用程序 所创建的应用程序是为某些特定任务定制的 它们可能不太像传统的应用程序 的确 工具的关键就是允许用户 特别是最终用户能够创建应用程序而且不必使用传统的程序设计语言来编写 厂商提供的工具大致可以分成以下几类 查询语言处理器 报表编写器 商用表格子系统 电子制表软件 自然语言处理器 统计包 复制管理成 数据提取 工具 应用程序生成器 包括第四代语言处理器 其他应用程序开发工具 包括计算机辅助软件工程 CASE 产品 和其他许多软件 DatabaseManagementSystem 分布式处理 分布式处理是指不同机器可以通过通信网络如因特网连接起来 这样 一个数据处理任务可以分散到网络中的几台机器上进行分别处理 并行处理 一词有时也用于同样的意义 除了不同的机器物理上连接成 并行 系统而不是这样的 分布 系统之外 例如 它们可以在地理上是分散的 在不同机器之间的通信是由网络管理软件来处理的 可能是数据通信管理器的扩展 还可能是一个独立的软件部件 在各种层次上都可能存在分布式处理 分布式处理也可能是各种各样的 一个简单的例子是在一台机器上运行DBMS后端 服务器 而在另一台机器上运行应用程序前端 客户端 DatabaseManagementSystem 支持分布式处理方案的理由 首先 基本上是通常的并行处理的理由 即 许多处理部件都可用于整个任务 而且服务器和客户处理并行进行 响应时间和生产率就提高了 而且 服务器机可以是为数据库管理系统功能而定制的机器 数据库机 这样就使数据库管理系统更高效 同样 客户机可以是根据最终用户的需要定制个人工作站 这样就提供了更好的界面 高可用性 快速反应和全面提高用户的易用性 几台不同的客户机可能访问同一台服务器 几个不同的客户系统可以共享一个数据库 此外 在不同机器上运行客户和服务器符合企业的实际运作方式 一个企业 例如银行 运行许多计算机是很常见的 这样 企业就可以把一部分数据存在一台机器上 而别一分数据存在另一台机器上 一台机器的用户偶尔会访问其他机器上的数据也是很平常的 继续看银行这个例子 一个分支机构的用户偶尔需要访问其他的数据 注意 客户机有自己的数据 服务器有自己的应用程序 一般地讲 每台机器都会作为一些用户的服务器和另一些用户的客户机 见图2 8 换句话说 每台机器都将支持整个数据库系统 DatabaseManagementSystem 分布式数据库系统 最后一点是一台客户机可能访问几台不同的服务器机 如前所述 企业非常需要这种功能 因为企业典型的运转方式是整个数据不是存储在单个的机器上 而是分散在许多不同的机器上 而且应用程序需要从不止一台机器访问数据 基本上 有两种方式可以提供这种访问 一台客户机要访问任意数目的服务器 但是一次只能访问一个 即 每个单独的数据库请法语只向一台服务器发出 在该系统中 不可能在一个请求中将两个或更多的服务器的数据结合起来 系统中的用户必须了解哪台机器存有哪些数据 客户机可以同时访问许多服务器 即 一个数据库请求可以将几个不同数据库的数据结合起来 在这种情况下 对客户机来说 这些服务器 从逻辑上看 好像实际上只是一台服务器 系统的用户不必了解哪台机器存有哪些数据 后一种情况就是通常所说的分布式数据库系统 关系数据库 1970年E F Codd在美国计算机学会会刊 CommunicationoftheACM 上发表题为 ARelationalModelofDataforSharedDataBanks 的论文 开创了数据库系统的新纪元 从此 人们开始了关系数据库系统的研究 30多年来 关系数据库系统的研究取得了辉煌的成就 关系数据库系统已经占据了数据库系统的市场 关系理论的确立标志着关系数据库系统的基础研究已经接近顶峰 该理论建立在集合代数的理论基础上 用集合代数的笛卡尔积给出了关系的定义 并给出了对关系的操作算法 DatabaseManagementSystem 关系模型概述 关系模型是由一组相互联系的关系组成的 关系关系是笛卡尔积的一个有意义的子集 即满足一定规范要求的二维表 每个关系都有一个关系名 元组二维表格中的一行 也称为记录 属性二维表格的一列 也称为字段或数据项 属性包括属性名 属性值和属性值类型三部分内容 属性名属性的名称 给属性起的名 属性的值域属性的取值范围 分量元组中的一个属性值 主关系键关系中的某个属性组 由一个或多个属性组成 它的值能够唯一地标识一个元组 主关系键也称为主码 主键 DatabaseManagementSystem 关系模型中的主要术语 图解 DatabaseManagementSystem 关系的性质 关系中没有重复元组 任意一个元组在关系中都是唯一的 元组的顺序无关紧要 即元组的次序可以任意交换 每一列称为属性 属性必须有不同的属性名 即一个表中属性名不能相同 以唯一标识元组的分量 列的唯一性标志 不同的属性可来自同一个域 列是同质的 即同列所有分量是同类型的元素 且来自同一个域 属性的顺序是非排序的 即属性的次序可以任意交换 属性一般是用它的名字而不是用它的位置标识 这一点可使引用属性的错误和模糊的程序范围缩小 每一分量必须是不可分的数据项 因为二维表中的每一行和列的交叉位置上总能精确地存在一个值 允许空值 而决不允许有多个不同的值存在 也就是不能 表中有表 满足该条件的关系称为规范化关系 否则为非规范化关系 在上述定义的关系性质中 性质一保证元组引用的确定性和唯一性 性质三和四保证属性的引用的确定性和唯一性 性质六保证行和列同时引用的属性值的唯一性 DatabaseManagementSystem 关系的键 为了引用关系中的夫组 建立关系之间的联系 必须要确定关系的键 关系键数据存入数据库中的目的就是让用户使用或引用 要实现用户引用一个关系的元组 就必须对关系中的各个元组用标识符加以标识或者命名 以便使用标识符就能唯一地确定一个元组 也就是通过标识符的值就能找到所查找的元组 在给定的关系中 存在一个 或一组属性 若它的值能唯一地标识一个元组 具有这种唯一标识特性的一个 或一组 属性可称为该关系的关系键 关系键也称为码或关键字 主关系键和候选关系键有时我们会在某些关系中发现具有关系键性的属性或属性组有多个 那么 我们把它们都称为候选关系健 当一个关系中有多个候选关系键时 我们从候选关系键中选择一俱和为主关系键 主关系键在关系中用来作为插入 删除 检索元组的操作变量 我们将这些包括在候选关系键中的属性称为主属性 不包括在候选关系键中的属性称为非主属性 主关系键在数据库设计中是一个很重要的概念 每个关系都必须选择一个候选关系键作为主关系键 每个关系中都必定有一个且只有一个主关系键 对于任一关系 主关系键一经选定 通常是不能随意改变的 外部关系键如果关系R2中含有一个与关系R1的主关系键相对应的属性或属性组X 则该属性或属性组X称为关系R2的外部关系键 外部键 一个关系键涉及另一关系的引用是常有的事情 DatabaseManagementSystem 关系模型的完整性 实体完整性我们知道 元组是描述现实世界的实体的 一个元组代表一个实体 关系体 元组的集合 代表一个实体集 那么 我们可以说 主关系键实际上是描述这些实体的唯一标识 如果一个主关系键的属性值为空或部分为空 说明现实世界存在某个不可标识或无意义的实体 而这是与现实世界中的实体是可以区分的事实相矛盾 因此 在关系中要求主关系键的值不能为空或部分为空这一约束极端重要 我们将主关系键的值不能为空或部分为空的约束称为实体完整性 DatabaseManagementSystem 关系模型的完整性 参照完整性如果关系R2的外部关系键与关系R1的主关系键相符 那么外部关系键的每个值必须在关系R1中主关系键的值中

温馨提示

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

评论

0/150

提交评论