第1章 数据库系统概述_第1页
第1章 数据库系统概述_第2页
第1章 数据库系统概述_第3页
第1章 数据库系统概述_第4页
第1章 数据库系统概述_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

1 第1章数据库系统概述 为什么学习数据库 数据库技术是数据管理的最新技术 是计算机科学技术中发展最快的领域之一 也是应用最广的技术之一 它已成为各行各业存储数据 管理信息 共享资源的最先进最常用的技术 数据库技术研究的问题是 如何科学地组织和存储数据 如何高效地获取和处理数据 如何更广泛 更安全地共享数据 3 数据库应用例1 4 如航空售票系统 包括的数据项 1 座位预定信息 座位分配 座位确认等2 航班信息 航班号 飞机型号 机组号 起飞地 目的地 起飞时间 到达时间等 3 机票信息 票价 折扣 有无等 系统工作 1 查询 某一时间内从某个指定地到另一指定地的航班 是否有可以选择的座位 飞机型号 票价 折扣等 2 更新 登记航班 分配座位等3 统计 统计经常乘坐某一航班的乘客信息等 数据库应用例2 5 图书管理系统 包括的主要数据项 1 图书信息 书号 书名 作者姓名 出版日期等2 作者信息 姓名 性别 住址 电话等3 出版社信息 名称 地址 社长 电话等4 读者信息 姓名 借书号 借书数量等管理工作 1 查询 查看图书 检索指定作者的图书 检索指定出版社出版的图书等 2 更新 新书登记 作者信息等 1 1信息 数据 数据处理与数据管理1 2数据库技术的产生 发展1 3数据库系统的组成1 4数据库系统的模式结构1 5数据库系统的外部体系结构1 6数据库管理系统 DBMS 1 7数据模型1 8四种数据模型1 9数据库系统的发展1 10数据库技术与其他相关技术的结合 6 通讯录 图书馆 7 数据库 数据的仓库 即数据存放的地方 小数据库可用手工管理 大型数据库必须由计算机进行管理 计算机三大主要应用领域 科学计算 过程控制 数据处理 70 1 1信息 数据 数据处理与数据管理 1 1 1数据与信息 8 信息的特征 信息 能源 材料 客观世界的三大要素 采集并加工 传递 消息情报指令数据信号 学号 S1姓名 赵亦性别 女年龄 17岁所在系别 计算机 源于物质和能量 可以感知 可存储 加工 传递和再生 信息是关于现实世界事物的存在方式或运动状态的反映的综合 具体说是一种被加工为特定形式的数据 但这种数据形式对接收者来说是有意义的 而且对当前和将来的决策具有明显的或实际的价值 如 2000年硕士研究生将扩招30 其中的数据可改为汉字形式 两千年 百分之三十 9 S1赵亦女17岁计算机 数字文字图形图象声音等 数据数据是信息的具体表现形式数据的表现形式 数据与信息的联系如上例中的数据2000 30 被赋予了特定的语义 它们就具有了传递信息的功能 10 数据是信息的符号表示或载体信息是数据的内涵 是对数据的语义解释 1 1 2数据处理与数据管理 信息 数据 数据处理 11 将数据转换成信息包括数据的收集 管理 加工利用乃至信息输出 数据的收集 整理 组织 编码 存储 维护 检索 传输等操作 数据处理 数据管理 产出输出结果 原料输入 数据处理 的真正含义应该是为了产生信息而处理数据 1 2数据库技术的产生 发展 数据处理的中心问题是数据管理 数据管理是指对数据的组织 分类 编码 存储 检索和维护 随着计算机硬件和软件的发展 数据管理经历了人工管理 文件系统和数据库系统三个发展阶段 12 人工管理阶段 人工管理阶段 50年代中期以前 应用背景这一阶段计算机主要用于科学计算 硬件中的外存只有卡片 纸带 磁带 没有磁盘等直接存取设备 软件只有汇编语言 没有操作系统和管理数据的软件 数据处理的方式基本上是批处理 13 人工管理阶段 人工管理阶段的特点如下 1 数据不保存 因为当时计算机主要用于科学计算 对于数据保存的需求尚不迫切 2 系统没有专用的软件对数据进行管理 每个应用程序都要包括数据的存储结构 存取方法 输入方式等 程序员编写应用程序时 还要安排数据的物理存储 因此程序员负担很重 3 数据不共享 数据是面向程序的 一组数据只能对应一个程序 多个应用程序涉及某些相同的数据时 也必须各自定义 因此程序之间有大量的冗余数据 14 人工管理阶段 4 数据不具有独立性 程序依赖于数据 如果数据的类型 格式 或输入输出方式等逻辑结构或物理结构发生变化 必须对应用程序做出相应的修改 在人工管理阶段 程序与数据之间的关系可用图1 1表示 15 文件系统阶段 50年代后期至60年代中期 应用背景这一阶段 计算机不仅用于科学计算 还大量用于信息管理 大量的数据存储 检索和维护成为紧迫的需求 硬件有了磁盘 磁鼓等直接存储设备 在软件方面 出现了高级语言和操作系统 操作系统中有了专门管理数据的软件 一般称为文件系统 处理方式有批处理 也有联机处理 16 文件系统阶段 文件管理数据的特点如下 1 数据以文件形式可长期保存下来 用户可随时对文件进行查询 修改和增删等处理 2 文件系统可对数据的存取进行管理 程序员只与文件名打交道 不必明确数据的物理存储 大大减轻了程序员的负担 3 文件形式多样化 有顺序文件 倒排文件 索引文件等 因而对文件的记录可顺序访问 也可随机访问 更便于存储和查找数据 4 程序与数据间有一定独立性 由专门的软件即文件系统进行数据管理 程序和数据间由软件提供的存取方法进行转换 数据存储发生变化不一定影响程序的运行 17 文件系统阶段 在文件系统阶段 程序与数据之间的关系可用图1 2表示 18 图1 2文件系统阶段 文件系统阶段 与人工管理阶段相比 文件系统阶段对数据的管理有了很大的进步 但一些根本性问题仍没有彻底解决 主要表现在以下三方面 数据冗余度大 各数据文件之间没有有机的联系 一个文件基本上对应于一个应用程序 数据不能共享 数据独立性低 数据和程序相互依赖 一旦改变数据的逻辑结构 必须修改相应的应用程序 而应用程序发生变化 如改用另一种程序设计语言来编写程序 也需修改数据结构 数据一致性差 由于相同数据的重复存储 各自管理 在进行更新操作时 容易造成数据的不一致性 19 数据库系统阶段 60年代末开始 背景60年代后期 计算机应用于管理的规模更加庞大 数据量急剧增加 硬件方面出现了大容量磁盘 使计算机联机存取大量数据成为可能 硬件价格下降 而软件价格上升 使开发和维护系统软件的成本增加 文件系统的数据管理方法已无法适应开发应用系统的的需要 为解决多用户 多个应用程序共享数据的需求 出现了统一管理数据的专门软件系统 即数据库管理系统 20 数据库系统阶段 数据库系统管理数据的特点如下 1 数据共享性高 冗余少 这是数据库系统阶段的最大改进 数据不再面向某个应用程序而是面向整个系统 当前所有用户可同时存取库中的数据 这样便减少了不必要的数据冗余 节约存储空间 同时也避免了数据之间的不相容性与不一致性 2 数据结构化按照某种数据模型 将全组织的各种数据组织到一个结构化的数据库中 整个组织的数据不是一盘散沙 可表示出数据之间的有机关联 21 数据库系统阶段 例 要建立学生成绩管理系统 系统包含如下数据 并分别对应三个文件 学生 学号 姓名 性别 系别 年龄 课程 课程号 课程名 成绩 学号 课程号 成绩 若采用文件处理方式 因为文件系统只表示记录内部的联系 而不涉及不同文件记录之间的联系 要想查找某个学生的学号 姓名 所选课程的名称和成绩 必须编写一段不很简单的程序来实现 而采用数据库方式 数据库系统不仅描述数据本身 还描述数据之间的联系 上述查询可以非常容易地联机查到 22 数据库系统阶段 3 数据独立性高 数据的独立性是指逻辑独立性和物理独立性 数据的逻辑独立性是指当数据的总体逻辑结构改变时 数据的局部逻辑结构不变 由于应用程序是依据数据的局部逻辑结构编写的 所以应用程序不必须修改 从而保证了数据与程序间的逻辑独立性 例如 在原有的记录类型之间增加新的联系 或在某些记录类型中增加新的数据项 均可确保数据的逻辑独立性 数据的物理独立性是指当数据的存储结构改变时 数据的逻辑结构不变 从而应用程序也不必改变 例如 改变存储设备和增加新的存储设备 或改变数据的存储组织方式 均可确保数据的物理独立性 23 数据库系统阶段 4 有统一的数据控制功能数据库为多个用户和应用程序所共享 对数据的存取往往是并发的 即多个用户可以同时存取数据库中的数据 甚至可以同时存取数据库中的同一个数据 为确保数据库数据的正确有效和数据库系统的有效运行 数据库管理系统提供下述四方面的数据控制功能 1 数据的安全性 security 控制 防止不合法使用数据造成数据的泄露和破坏 保证数据的安全和机密 例如 系统提供口令检查或其他手段来验证用户身份 防止非法用户使用系统 也可以对数据的存取权限进行限制 只有通过检查后才能执行相应的操作 2 数据的完整性 integrity 控制 系统通过设置一些完整性规则以确保数据的正确性 有效性和相容性 24 数据库系统阶段 正确性是指数据的合法性 如年龄属于数值型数据 只能含0 1 9 不能含字母或特殊符号 有效性是指数据是否在其定义的有效范围 如月份只能用1 12之间的正整数表示 相容性是指表示同一事实的两个数据应相同 否则就不相容 如一个人不能有两个性别 3 并发 concurrency 控制 多用户同时存取或修改数据库时 防止相互干扰而提供给用户不正确的数据 并使数据库受到破坏 25 数据库系统阶段 4 数据恢复 recovery 当数据库被破坏或数据不可靠时 系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态 数据库系统阶段 程序与数据之间的关系可用图1 3表示 图1 3数据库系统阶段 26 数据库系统阶段 从文件系统管理发展到数据库系统管理是信息处理领域的一个重大变化 在文件系统阶段 人们关注的是系统功能的设计 因此程序设计处于主导地位 数据服从于程序设计 而在数据库系统阶段 数据的结构设计成为信息系统首先关心的问题 数据库技术经历了以上三个阶段的发展 已有了比较成熟的数据库技术 但随着计算机软硬件的发展 数据库技术仍需不断向前发展 27 1 3数据库系统的组成 数据库系统 DBS 28 数据库 计算机软件系统 数据库用户 计算机硬件系统 图1 6数据库系统 用户1 用户2 用户n 用户 应用系统 应用开发工具 DBMS 操作系统OS 数据库 数据库管理员 软件系统 数据库数据库 DB 是存储在计算机内 有组织的 可共享的数据集合用户 29 集成性 共享性 终端用户 应用程序员 数据库管理员 对数据库进行存储 维护和检索 主要是使用数据库的各级管理人员 工程技术人员 科研人员 一般为非计算机专业人员 负责为终端用户设计和编制应用程序 以便终端用户对数据库进行存取操作 负责设计 建立 管理和维护数据库以及协调用户对数据库要求的个人或工作团队 软件 Software 系统硬件 Hardware 系统硬件系统指存储和运行数据库系统的硬件设备 包括CPU 内存 大容量的存储设备 外部设备等 数据库系统在整个计算机系统中的地位如图所示 30 DBMS OS 应用系统 软件系统 数据库系统的核心 DBMS在操作系统支持下工作 应用程序在DBMS支持下才能使用数据库 1 4数据库系统的模式结构 1 4 1数据库系统的三级模式结构模式 Schema 是数据库中全体数据的逻辑结构和特征的描述 数据库系统内部的体系结构从逻辑上分为三级 31 型 值 模式 实例 外模式 模式 内模式 可以从多种不同的角度考查数据库系统的结构 从数据库管理系统的角度看 数据库系统通常采用三级模式结构 这是数据库系统内部的体系结构 从数据库最终用户的角度看 数据库系统的结构分为集中式结构 分布式结构和客户 服务器结构 这是数据库系统外部的体系结构 32 图1 8数据库系统的三级模式结构 应用1 应用2 应用n 外模式1 外模式m 外模式 模式映象 模式 模式 内模式映象 内模式 数据库 用户级 概念级 物理级 内模式是整个数据库实际存储的表示模式是整个数据库实际存储的抽象表示 DBMS提供模式描述语言 模式DDL 来定义模式 外模式是概念模式的某一部分的抽象表示 DBMS提供子模式描述语言 子模式DDL 来定义子模式 33 外模式 模式 内模式 数据库中全体数据的逻辑结构和特征的描述 数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征的描述 它是对数据库存储结构的描述 是数据在数据库内部的表示方式 与实际存储数据方式有关的一层 由多个存储记录组成 但并非物理层 不必关心具体的存储位置 可有多个 只有一个 三级结构的优点 1 保证数据的独立性 将模式和内模式分开 保证了数据的物理独立性 将外模式和模式分开 保证了数据的逻辑独立性 2 简化了用户接口 按照外模式编写应用程序或敲入命令 而不需了解数据库内部的存储结构 方便用户使用系统 3 有利于数据共享 在不同的外模式下可有多个用户共享系统中数据 减少了数据冗余 4 利于数据的安全保密 在外模式下根据要求进行操作 不能对限定的数据操作 保证了其他数据的安全 34 1 4 2数据库系统的二级映象与数据独立性 DBMS在三级模式之间提供了二级映象功能 保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性 35 模式 内模式映象 确定了数据的全局逻辑结构与存储结构之间的对应关系 确保了数据的物理独立性 例如 存储结构变化时 模式 内模式映象也应有相应的变化 使其概念模式仍保持不变 即把存储结构的变化的影响限制在概念模式之下 这使数据的存储结构和存储方法较高的独立于应用程序 通过映象功能保证数据存储结构的变化不影响数据的全局逻辑结构的改变 从而不必修改应用程序 即确保了数据的物理独立性 36 外模式 模式映象 保证了数据与程序间的逻辑独立性 数据库中的同一模式可以有任意多个外模式 对于每一个外模式 都存在一个外模式 模式映象 它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系 例如 在原有的记录类型之间增加新的联系 或在某些记录类型中增加新的数据项时 使数据的总体逻辑结构改变 外模式 模式映象也发生相应的变化 这一映象功能保证了数据的局部逻辑结构不变 由于应用程序是依据数据的局部逻辑结构编写的 所以应用程序不必须修改 从而保证了数据与程序间的逻辑独立性 1 5数据库系统的外部体系结构 单用户结构的数据库系统 主从式结构的数据库系统 分布式结构的数据库系统 将应用程序 DBMS 数据库都装在一台计算机上 不能共享数据 大型主机带多个终端 应用程序 DBMS 数据库都集中于大型主机上 主机处理 终端输出 是分布在计算机网络上的多个逻辑相关的数据库的集合 数据在物理上分布 所有数据在逻辑上是整体的 结点上分别存储的数据相对独立 从最终用户角度来看 数据库系统分为单用户结构 主从式结构 分布式结构 客户 服务器结构和浏览器 服务器结构 38 客户 服务器结构的数据库系统 浏览器 服务器结构的数据库系统 把DBMS的功能与应用程序分开 管理数据的节点称为服务器应用DBMS的节点称为客户机 客户机负责管理用户界面 接收用户数据 处理应用逻辑 生成数据库服务请求 发送给服务器 服务器处理后 将结果返回给客户机 并将结果按一定格式显示给用户 称为胖客户机模式 客户机端近安装通用的浏览器软件 将客户端运行的应用程序转移到应用服务器上 充当了客户机和数据库服务器的中介 架起了用户界面与数据库之间的 1 6数据库管理系统 DBMS 39 DBS DBMS 核心 数据定义查询更新各种控制 DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件 这给用户带来很大的方便 1 6 1DBMS的主要功能数据定义功能 数据操纵功能 数据库运行管理功能 数据库的建立和维护功能 数据通信接口 数据组织 存储和管理数据定义功能定义数据的模式 外模式和内模式三级模式结构定义模式 内模式和外模式 模式二级映象定义有关的约束条件 40 例如 为保证数据库安全而定义的用户口令和存取权限 为保证正确语义而定义完整性规则 数据操纵功能提供数据操纵语言实现对数据库的基本操作 检索 更新 包括插入 修改 删除 等 DML有两类 自主型宿主型数据库运行管理功能对数据库运行的管理是DBMS运行的核心部分 DBMS对数据库的控制主要通过四个方面实现 数据的安全性控制 数据的完整性控制 多用户环境下的并发控制和数据库的恢复 41 交互式命令语言 语法简单 独立使用 把对数据的存取语句嵌入在如Fortran Pascal C等高级语言中 不能单独使用 数据库的建立和维护功能数据库的建立包括数据库的初始数据的装入与数据转换等 数据库的维护包括数据库的转储 恢复 重组织与重构造 系统性能监视与分析等 数据通信接口DBMS提供与其他软件系统进行通信的功能 实现用户程序与DBMS之间的通信 通常与操作系统协调完成 数据组织 存储和管理负责对数据库中需要存放的各种数据如 数据字典 用户数据 存取路径等的组织 存储和管理工作 确定以何种文件结构和存取方式物理地组织这些数据 以提高存储空间利用率和对数据库进行增 删 查 改的效率等 42 1 6 2DBMS的组成 43 语言编译处理程序 数据定义语言DDL及其编译程序它把用DDL编写的各级源模式编译成各级目标模式 这些目标模式是对数据库结构信息的描述 而不是数据本身 它们被保存在数据字典中 供以后数据操纵或数据控制时使用 数据操纵语言DML及其编译程序实现对数据库的基本操作 DML有两类 一类是宿主型 嵌入在高级语言中 不能单独使用 另一类是自主型或自含型 可独立地交互使用 44 系统运行控制程序 系统总控程序 是DBMS运行程序的核心 用于控制和协调各程序的活动 安全性控制程序 防止未被授权的用户存取数据库中的数据 完整性控制程序 检查完整性约束条件 确保进入数据库中的数据的正确性 有效性和相容性 并发控制程序 协调多用户 多任务环境下各应用程序对数据库的并发操作 保证数据的一致性 数据存取和更新程序 实施对数据库数据的检索 插入 修改 删除等操作 通信控制程序 实现用户程序与DBMS间的通信 45 系统建立 维护程序 数据字典 装配程序 完成初始数据库的数据装入 重组程序 当数据库系统性能变坏时 如查询速度变慢 需要重新组织数据库 重新装入数据 系统恢复程序 当数据库系统受到破坏时 将数据库系统恢复到以前某个正确的状态 用来描述数据库中有关信息的数据目录包括数据库的三级模式 数据类型 用户名 用户权限等有关数据库系统的信息起着系统状态的目录表的作用帮助用户 DBA DBMS本身使用和管理数据库 1 6 3DBMS的数据存取的过程 DBMS对数据的存取通常需要以下几个步骤 1 用户使用某种特定的数据操作语言向DBMS发出存取请求 2 DBMS接受请求并将该请求解释转换成机器代码指令 3 DBMS依次检查外模式 外模式 模式映象 模式 模式 内模式映象及存储结构定义 4 DBMS对存储数据库执行必要的存取操作 5 从对数据库的存取操作中接受结果 6 对得到的结果进行必要的处理 如格式转换等 7 将处理的结果返回给用户 46 47 应用程序 数据库 DBMS 数据请求 处理结果 低层指令 结果 图1 11DBMS的工作方式 应用程序 系统缓冲区 DBMS 操作系统 外模式 模式 内模式 数据库 图1 12DBMS存取数据的过程示意图 1 7数据模型 数据库即是模拟现实世界中某应用环境所涉及的数据的集合 或者包含了信息的一部分 用用户视图模拟 或者包含了信息的全部 用概念视图模拟 而这种模拟是通过数据模型来进行的 数据模型是数据库的框架数据模型是数据库系统的核心和基础1 7 2三个世界的划分及其有关概念三个世界的划分首先将现实世界的事物及联系抽象成信息世界的信息模型然后再抽象成计算机世界的数据模型数据加工经历了现实世界 信息世界和计算机世界三个不同的世界 经历了两级抽象和转换 48 组织方式表达方式存取路径 数据及其联系 49 现实世界 概念模型 认识抽象 DBMS支持的数据模型 图1 13数据处理的抽象和转换过程 50 型 值 属性名 具体值 现实世界现实世界即客观存在的世界人们总是选用感兴趣的最能表征该事物的若干特征来描述该事物信息世界及其有关基本概念实体客观存在并且可以相互区别的 事物 称为实体实体可以是具体的人 事 物 也可以是抽象的事件属性实体所具有的某一特性称为属性如学生实体有学号 姓名 年龄 性别 系等方面的属性 如姓名 年龄 性别是属性的型 如 990001 张立 20 男 计算机 这些属性值的集合表示了一个学生实体 51 学生 学号 姓名 年龄 性别 系 实体型具有相同属性的实体必然具有共同的特征实体集同型实体的集合称为实体集 如所有学生 所有的课程 键能惟一标识一个实体的属性或属性集称为实体的键域属性的取值范围称为该属性的域如学号的域为6位整数 姓名的域为字符串集合 年龄的域为小于40的整数 性别的域为 男 女 联系实体型内部的联系通常是指组成实体的各属性之间的联系实体型之间的联系通常是指不同实体集之间的联系两个实体型之间的联系有如下三种类型 52 A B A B A B a 一对一联系 b 一对多联系 c 多对多联系 53 a 一对一联系 1 1 实体集A中的一个实体至多与实体集B中的一个实体相对应 反之亦然 则称实体集A与实体集B为一对一的联系 记作1 1 如 班级与班长 观众与座位 病人与床位 b 一对多联系 1 n 实体集A中的一个实体与实体集B中的多个实体相对应 反之 实体集B中的一个实体至多与实体集A中的一个实体相对应 记作1 n 如 班级与学生 公司与职员 省与市 c 多对多 m n 实体集A中的一个实体与实体集B中的多个实体相对应 反之 实体集B中的一个实体与实体集A中的多个实体相对应 记作 m n 如 教师与学生 学生与课程 工厂与产品 54 计算机世界及其有关基本概念信息世界中的实体抽象为计算机世界中的数据 存储在计算机中 字段 Field 标记实体属性的命名单位称为字段 如学生有学号 姓名 年龄 性别 系等字段 记录 Record 字段的有序集合称为记录 如 一个学生 990001 张立 20 男 计算机 为一个记录 文件 File 同一类记录的集合称为文件 所有学生的记录组成了一个学生文件 关键字 Key 能惟一标识文件中每个记录的字段或字段集 称为记录的关键字 55 在计算机世界中 信息模型被抽象为数据模型 实体型内部的联系抽象为同一记录内部各字段间的联系 实体型之间的联系抽象为记录与记录之间的联系 现实世界是设计数据库的出发点 也是使用数据库的最终归宿 实体模型和数据模型是现实世界事物及其联系的两级抽象 而数据模型是实现数据库系统的根据 1 7 3数据模型的分类 56 E R模型 概念模型它是按用户的观点对数据和信息建模用来描述某个特定组织所关心的信息结构概念模型属于信息世界中的模型逻辑模型 或称数据模型 和物理模型逻辑模型是属于计算机世界中的模型逻辑模型主要包括层次模型 网状模型 关系模型 面向对象模型等物理模型描述数据在磁盘或磁带上的存储方式和存取方法 1 7 4实体联系模型及E R图 E R图的基本成分 57 学生 学号 选修 a 实体 b 属性 c 联系 1 11 nm n 是广泛应用于数据库设计工作中的一种概念模型 它利用E R图来表示实体及其之间的联系 E R图的几种基本形式 两个实体之间的联系 58 系主任 成绩 领导 系 学生 属于 系 学生 选修 课程 1 1 1 n n m 两个以上实体间的联系 59 数量 供应商 供应 零件 n m 项目 n 60 同一实体型内部的1 n联系 设计一个图书馆数据库对每个借阅者保存记录 读者号 姓名 地址 性别 年龄 单位对每本书保存记录 书名 作者 出版社对每一本被借出的书保存 读者号 借出日期 应还日期 归还日期 61 1 7 5数据模型的组成要素 62 数据结构 数据操作 数据的完整性约束 层次结构 网状结构 关系结构 查询 插入 删除 修改 更新 正确 有效 相容 数据模型是现实世界中的事物及其联系的一种模拟和抽象表示 是一种形式化描述数据 数据间联系以及有关语义约束规则的方法 这些规则规定数据如何组织以及允许进行何种操作 63 1 8四种数据模型 数据模型的好坏 直接影响数据库的性能 数据模型的选择 是设计数据库的一项首要任务 目前最常用的数据模型有层次模型 HierarchicalModel 网状模型 NetworkModel 关系模型 RelationalModel 这三种数据模型的根区别在于数据结构不同 即数据之间联系的表示方式不同 层次模型用 树结构 来表示数据之间的联系 网状模型是用 图结构 来表示数据之间的联系 关系模型是用 二维表 来表示数据之间的联系 64 其中层次模型和网状模型是早期的数据模型 统称为非关系模型 20世纪70年代至80年代初 非关系模型的数据库系统非常流行 在数据库系统产品中占据了主导地位 现在已逐渐被关系模型的数据库系统取代 但在美国等国 由于早期开发的应用系都是基于层次数据库或网状数据库系统 因此目前层次数据库或网状数据库的系统仍很多 20世纪80年代以来 面向对象的方法和技术在计算机各个领域 包括程序设计语言 软件工程 计算机硬件等各方面都产生了深远的影响 出现了一种新的数据模型 面向对象的数据模型 1 8 1层次模型 层次模型是数据库系统中最早出现的数据模型 采用层次模型的数据库的典型代表是IBM公司的IMS InformationManagementSystem 数据库管理系统 现实世界中 许多实体之间的联系都表现出一种很自然的层次关系 如家族关系 行政机构等 层次模型用一棵 有向树 的数据结构来表示各类实体以及实体间的联系 在树中 每个结点表示一个记录类型 结点间的连线 或边 表示记录类型间的关系 每个记录类型可包含若干个字段 记录类型描述的是实体 字段描述实体的属性 各个记录类型及其字段都必须命名 如果要存取某一记录型的记录 可以从根结点起 按照有向树层次向下查找 65 层次模型的数据结构 66 无双亲 根节点 根以外的其他结点有且仅有一个双亲结点 父子结点之间的联系是一对多 1 n 的联系 这就使得层次数据库系统只能直接处理一对多的实体关系 任何一个给定的记录值只有按其路径查看时 才能显出它的全部意义 没有一个子女记录值能够脱离双亲记录值而独立存在 具有四个记录型 D R S TS与T是叶结点 它们没有子女结点由D到R R到T 由D到S均是一对多的关系 67 68 对应上述数据模型的一个值 该值是D02系 计算机系 记录值及其所有后代记录值组成的一棵树 D02系有3个教研室子记录值 R01 R02 R03和3个学生记录值 S63871 S63874 S63876 教研室R01有3个教师记录值 T2101 T17090 T3501 层次模型的数据操纵与数据完整性约束进行插入操作时 如果没有相应的双亲结点值就不能插入子女结点值 进行删除操作时 如果删除双亲结点值 则相应的子女结点值也被同时删除 修改操作时 应修改所有相应的记录 以保证数据的一致性 层次模型的优缺点 69 结构简单 层次分明 查询效率高 提供良好的数据完整性支持 不能直接表示多对多联系 插入和删除数据限制太多 查询子女结点必须通过双亲结点 优点 缺点 70 现实世界中事物之间的联系更多的是非层次关系的 用层次模型表示这种关系很不直观 网状模型克服了这一弊病 可以清晰的表示这种非层次关系 20世纪70年代 数据系统语言研究会CODASYL ConferenceOnDataSystemLanguage 下属的数据库任务组DBTG DataBaseTaskGroup 提出了一个系统方案 DBTG系统 也称CODASYL系统 成为了网状模型的代表 网状模型取消了层次模型的两个限制 两个或两个以上的结点都可以有多个双亲结点 则此时有向树变成了有向图 该有向图描述了网状模型 1 8 2网状模型 网状模型的数据结构网状模型是采用有向图结构表示记录型与记录型之间联系的数据模型 每个结点表示一个记录型 每个记录型可包含若干个字段 记录型描述的是实体 结点间的带箭头的连线 或有向边 表示记录型间的1 n的父子联系 71 网状模型的特点 有一个以上的结点没有双亲结点 允许结点有多个双亲结点 允许两个结点之间有多种联系 复合联系 网状模型的数据操纵与完整性约束插入数据时 允许插入尚未确定双亲结点值的子女结点值 删除数据时 允许只删除双亲结点值 修改数据时 只需更新指定记录即可 它没有像层次数据库那样有严格的完整性约束条件 只提供一定的完整性约束 网状模型的优缺点 72 可表示实体间的多种复杂联系 具有良好的性能和存储效率 数据结构复杂 数据定义语言 数据操纵语言复杂 数据独立性差 由于实体间的联系本质上是通过存取路径表示的 因此应用程序在访问数据时要指定存取路径 优点 缺点 73 关系模型是发展较晚的一种模型 1970年美国IBM公司的研究员E F Codd首次提出了数据库系统的关系模型 他发表了题为 大型共享数据银行数据的关系模型 ARelationModelofDataforLargeSharedDataBanks 在文中解释了关系模型 定义了某些关系代数运算 研究了数据的函数相关性 定义了关系的第三范式 从而开创了数据库的关系方法和数据规范化理论的研究 他为此获得了1981年的图灵奖 此后许多人把研究方向转到关系方法上 陆续出现了关系数据库系统 1977年IBM公司研制的关系数据库的代表SystemR开始运行 其后又进行了不断的改进和扩充 出现了基于SystemR的数据库系统SQL DB 1 8 3关系模型 74 小型数据库系统 Foxpro Access 大型数据库系统 Oracle SQLServer Informix Sybase 20世纪80年代以来 计算机厂商新推出的数据库管理系统几乎都支持关系模型 非关系系统的产品也都加上了关系接口 数据库领域当前的研究工作也都是以关系方法为基础 关系数据库已成为目前应用最广泛的数据库系统 关系模型的数据结构及有关概念 75 关系 二维表 元组 属性 域 属性的取值范围 男 女 关系模型的数据结构是一个 二维表框架 组成的集合 每个二维表又可称为关系 所以关系模型是 关系框架 的集合 关系模型与层次模型 网状模型不同 它是建立在严格的数学概念之上的 76 分量每一行对应的列的属性值 即为元组中的一个属性值 关键字 Key 可惟一标识一个元组的属性或属性集 也称为关系键或主码 如S表中学号可以惟一确定一个学生 为学生关系的主码 关系模式关系模式是对关系的描述 是关系模型的 型 一般表示为 关系名 属性1 属性2 属性n 如 学生 学号 姓名 性别 年龄 系别 关系实例关系实例是关系模式的 值 是关系的数据 相当于二维表中的数据 关系模型的数据操纵与完整性约束关系模型中的数据操作是集合操作 操作对象和操作结果都是关系 即若干元组的集合 关系模型把对数据的存取路径隐蔽起来 用户只要指出 干什么 而不必详细说明 怎么干 从而大大地提高了数据的独立性 提高了用户操作效率 关系模型的优缺点 77 有严格的数学理论根据 用关系描述实体间的联系 关系模型的存取路径对用户透明 具有更高的数据独立性 更好的安全保密性 优点 查询效率不如非关系模型 缺点 1 8 4面向对象模型 对象和对象标识对象是现实世界中实体的模型化 对象标识独立于对象的内容和存储位置 是一种逻辑标识符 通常由系统产生 它在整个系统范围内是惟一的 两个对象即使内部状态值和方法都相同 如标识符不同 仍认为是两个相等而不同的对象 每个对象都包含一组属性和一组方法 78 一个学生一门课程一次考试记录 对象 属性 方法 对象 属性 方法 现实世界存在着许多含有复杂数据结构的应用领域 如CAD数据 图形数据等 它们需要更高级的数据库技术表达这类信息 面向对象概念最早出现在1968年的Smalltalk语言中 79 属性用来描述对象的状态 组成和特性 是对象的静态特征 一个简单对象如整数 其值本身就是其状态的完全描述 不再需要其它属性 这样的对象称为原子对象 属性的值也可以是复杂对象 一个复杂对象包含若干个属性 而这些属性作为一种对象 又可能包含多个属性 这样就形成了对象的递归引用 从而组成各种复杂对象 方法用以描述对象的行为特性 一个方法实际是一段可对对象操作的程序 方法可以改变对象的状态 所以称为对象的动态特征 如一台计算机 它不仅具有描述其静态特征的属性 CPU型号 硬盘大小 内存大小等 还具有开机 关机 睡眠等动态特征 由此可见 每个对象都是属性和方法的统一体 与关系模型的实体概念相比 对象模型中的对象概念更为全面 因为关系模型主要描述对象的属性 而忽视了对象的方法 因此会产生前面提到过的 结构与行为相分离 的缺陷 80 每一对象都由唯一的对象标识来识别 用于确定和检索这个对象 对象标识独立于对象的内容和存储位置 是一种逻辑标识符 通常由系统产生 在整个系统范围内是唯一的 两个对象即使内部状态值和方法都相同 如标识符不同 仍认为是两个相等而不同的对象 如同一型号的两个零件 在设计图上被用在不同的地方 这两个零件是 相等 的 但被视为不同的对象具有不同的标识符 在这一点上 面向对象的模型与关系模型不同 在关系模型中 如果两个元组的属性值完全相同 则被认为是同一元组 81 消息中只包含发送者的要求 它告诉接收者需要完成哪些处理 如何处理由接收者解释 接收者独立决定采用什么方式完成所需的处理 在面向对象系统中对对象的操作在于选择一个对象并通知它要作什么 该对象决定如何完成这一工作 即在它的一组方法中选择合适的方法作用于其自身 因此 在面向对象的系统中 对象是操作的基本单位 类 Class 和继承 Inheritance 具有同样属性和方法集的所有对象构成了一个对象类 一个对象是某一类的实例 类的属性域可以是基本数据类型 如整型 实型 字符型等 也可以是类 类的表示具有层次性和继承性 82 对象 类 型 值 83 此外 类的表示具有层次性 在OO模型中 可以通过对已有的类定义进行扩充和细化来定义一个新类 从而形成了一种层次结构 有了超类和子类的概念 所谓超类就是可以通过扩充和细化导出其他类 而子类是指由通过扩展类定义而

温馨提示

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

评论

0/150

提交评论