《数据库技术与应用》PPT课件.ppt_第1页
《数据库技术与应用》PPT课件.ppt_第2页
《数据库技术与应用》PPT课件.ppt_第3页
《数据库技术与应用》PPT课件.ppt_第4页
《数据库技术与应用》PPT课件.ppt_第5页
已阅读5页,还剩362页未读 继续免费阅读

下载本文档

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

文档简介

数据库技术及应用 北京邮电大学信息与通信工程学院龚萍pgong 信息理论与技术中心移动通信实验室 院士教授 吴伟陵林家儒田宝玉赵振刚郭莉副教授 牛凯贺志强龚萍林雪红别志松许文俊李永华 周炯磐 数据库技术是什么 一门专门的计算机软件技术 主要用于数据处理 数据库技术应用情况如何 各行各业都在广泛使用 和我们生活的方方面面都结合得较紧 数据库在通信行业应用如何 在网管 计费 客服 电子运维 移动通信网 智能网等中发挥着重要作用 学习数据库这门课需要哪些先修课程 后面还有哪些课是基于数据库的 严格地说 本课程需要离散数学 操作系统及数据结构几门课程中的部分知识为先修内容 参考书目 数据库基础理论 数据库系统概论 第四版 萨师煊王珊高等教育出版社 DatabaseSystemConcepts AbrahamSilberschatZBell Labs 数据库系统概念 杨冬青唐世渭译机械工业出版社 SQLServer数据库使用和管理 Transact SQL权威指南 中国电力出版社 SQLServer2005宝典 电子工业出版社 人大数据库教学网站 www chinadb org讲义下载ftp Username kejianPassword kejian 考核方法 期末考查40 实验 40 平时随堂小作业20 教学思想 结合本专业特点 使同学们掌握数据库技术相应的基本概念 理论和原理 了解当前信息和通信领域数据库技术的最新应用 掌握数据库管理系统的基本使用 管理和维护 掌握数据库应用系统设计的基本理论和方法 教学大纲 引言 数据库系统概述 关系数据库系统 SQL语言 SQLServer2005的使用与管理 数据库设计理论 SQLServer2005数据库应用系统开发 数据库系统在通信中的应用 引言 数据与数据处理 数据库技术的发展历程及趋势 当前流行的数据库产品 数据与数据处理 信息 人们对客观事物的认识和反映 数据 用以载荷信息的物理符号 数据处理 指对各种类型的原始数据进行收集 管理 加工利用乃至信息输出的演变与推导全过程 其中 数据管理 即数据的收集 整理 组织 存储 维护 检索 传送等操作 是数据处理的基本环节 数据库技术的发展 数据库技术是计算机科学技术中发展最快的重要分支之一 它已经成为计算机信息系统和应用系统的重要技术支柱 它产生 发展于本世纪60 70年代 在短短的30年里 它从第一代的层次 网状数据库技术和第二代的关系数据库技术 发展到第三代的面向新一代应用的数据库技术 第一代数据库技术 第一代数据库技术的代表是层次和网状数据库系统 1969年 IBM公司研制了基于层次模型的数据管理系统IMS InformationManagementSystem 美国数据库系统语言协会CODASYL ConferenceOnDataSystemLanguage 下属的数据库任务组DBTG DataBaseTaskGroup 对数据库方法进行了系统的研究 探讨 于60年代末70年代初提出了若干报告 称为DBTG报告 报告所提议的方法是基于网状结构的 它是数据库网状模型的典型代表 第二代数据库技术 第二代数据库系统是关系数据库系统 1970年IBM公司SanJose实验室的研究员E F Codd发表了题为 大型共享数据库数据的关系模型 的论文 提出了关系数据模型 开创了关系数据库方法和关系数据库理论 为关系数据库技术奠定了理论基础 70年代是关系数据库理论研究和原型系统开发的时代 其中以IBM公司SanJose实验室开发的SystemR和Berkeley加利福尼亚大学研制的INGRES为代表 经过大量的高层次研究和开发 关系数据库系统的研究取得了一系列的成绩 主要包括 奠定了关系模型的理论基础 给出了被人们普遍接受的关系模型的规范说明 提出了关系数据语言 如关系代数 关系演算 SQL语言 QBE等等 这些描述性语言一改以往程序设计语言和网状 层次数据库语言的面向过程的风格 为80年代数据库语言标准化打下了基础 研制了大量的关系数据库系统原型 攻克了系统实现中查询优化 并发控制 故障恢复等一系列关键技术 70年代后期 关系数据库从实验室走向了社会 而80年代几乎所有新开发的数据库系统均是关系型的 这些商用数据库系统的运行 特别是微机RDBMS的使用 使数据库技术日益广泛地应用到企业管理 情报检索 辅助决策等各个方面 下一代数据库技术 传统数据库技术面临着严峻的挑战80年代以来 数据库技术在商业领域的巨大成就刺激了其他领域对数据库需求的迅速增长 例如 计算机辅助设计与制造 地理信息系统 办公信息系统和web应用等等 这些领域需要的数据管理功能有相当一部分是传统数据库所不能满足的 例如 复杂数据类型的支持 复杂数据类型包括图像 音频 视频 web网页 抽象数据类型 无结构的超长数据等 复杂对象的存储和处理 复杂对象不仅内部结构复杂 相互之间的联系也很复杂 巨型数据库 数据量可超过1012字节 的管理 数据 对象 知识的统一管理 下一代数据库系统是什么 数据库工作者从多方面发展了现行的数据库系统技术 研究全新的数据库系统 新一代数据库系统具有如下特点 面向对象数据模型80年代面向对象的方法和技术的出现 对计算机各个领域都产生了深远的影响 也给面临新挑战的数据库技术带来了机会和希望 数据库研究人员提出了建立面向对象数据模型 该模型克服了传统数据模型的局限性 促进了数据库技术在一个新的技术基础上继续发展 目前在市场上已经有大量的面向对象数据库产品 Versant Objectivity ObjectStore GemStone等 XML 可扩展标记语言 ExtensibleMarkupLanguage 数据库Internet的异军突起以及XML语言的出现 给数据库系统的发展开辟了一片新的天地 上世纪90年代末 随着德国软件股份公司 SoftwareAG 推出世界上第一个 原状XML NativeXML 数据库系统 产品问世 标志着数据库系统进入了一个新的发展时期 随后 一些大型数据库系统生产厂家 如 Oracle 微软公司等纷纷宣布要发展支持XML的数据库产品 IBMDB29更声称是PureXML数据库产品 非关系式 面向互联网 键值 分布式数据库云计算NoSQLGoogle Bigtable 数据库技术与多学科技术的有机结合传统的数据库技术和多学科技术的结合 使数据库的许多概念 技术内容 应用领域 甚至某些原理都有了重大的发展和变化 建立和实现了一系列新型数据库 基于WWW的网络数据库 嵌入式移动数据库 多媒体数据库 演绎数据库 知识数据库 工程数据库 地理数据库 模糊数据库等 它们共同构成了数据库大家族 传统数据库即面向商业与事物处理的数据库仅仅成大家族中的一员 当然 也是最成熟的和应用最广泛的一员 它的核心理论 应用经验 设计方法等仍然是整个数据库技术发展和应用开发的先导和基础 数据库技术的发展概况 当前流行的数据库产品 目前 商品化的数据库管理系统是以关系数据库为主导产品 技术比较成熟 国际国内的主导关系型数据库管理系统有ORACLE SYBASE INFORMIX INGRES MSSQLSERVER DB2等 ORACLE是Oracle软件系统有限公司的产品 Oracle成立于1977年 总部设在加利福尼亚 是世界第二大的计算机软件供应商 向全球百余个国家的用户提供大量的软件产品和电子化信息服务 ORACLE系列产品在数据库领域一直居领先地位 它在全球的销售份额约占50 DB2关系型数据库家庭产品是IBM公司的主要产品 80年代初DB2的发展重点放在大型的主机平台 80年代中期后DB2已发展到适用于各种硬件平台 MicrosoftSQLServer是微软公司的产品 它建立在MicrosoftWindows操作系统基础之上 提供了一个功能强大的客户 服务器平台 是能同时支持多个并发用户的关系数据库系统 2008年 微软发布了面向企业级市场的高端数据库软件SQLServer2008 Sybase是SYBASE软件公司 已被SAP收购 的系列产品 SYBASE公司成立于1984年 SYBASE公司是第一个提出并推出客户 服务器 C S 体系结构的高性能数据库服务器的数据库厂商 并促进了它的广泛流行 关系技术公司 RelationalTechnologyInc 的INGRES数据库系统的多项技术直接采用了Berkeley大学的最新研究成果 多应用在高等学校和科研所等 另一阵营 开放源代码数据库以瑞典的MySQL为代表 08年被Sun收购 随后Sun已被Oracle收购 据统计 该软件如今的下载量已经超过了一亿份 最新版本MySQL5 5 还有Ingres PostgreSQL等 第一章数据库系统概述 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统组成 数据库技术的研究领域 概要 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的研究领域 DB DBMS DBS DBAS 什么是数据库 DB 数据库管理系统 DBMS 数据库系统 DBS 数据库应用系统 DBAS 什么是数据库 数据库 DataBase DB 以一定的组织方式长期存储在计算机内的 为多种应用服务的 相互有关的结构化的数据集合 即统一管理的相互关联的数据的集合 数据库管理系统 DBMS DBMS是位于用户与数据库之间的一层数据管理系统软件 是数据库的核心 它提供了一个软件环境 使用户能方便快速地建立 维护 检索 存取和处理数据库中的信息 DBMS的组成 数据描述语言 DDL 及其翻译处理程序 数据操纵语言 DML 及其编译程序 系统建立维护程序 DBMS的功能 用户对数据库的所有操作以及应用程序的执行 都是通过DBMS进行的 它主要有以下几个方面的功能 数据库的定义和建立 数据库的操作 数据库的管理 数据库的维护 数据库系统 DBS 引入数据库后的计算机系统 即把数据库 有关的硬件 软件和人员组合起来提供信息服务的系统 广义的DBS包括 数据库 DB 数据库管理系统DBMS 支持DBMS的软 硬件环境 数据库管理员DBA 用户及其应用程序 一个简化的数据库系统环境 用户用户 应用程序 数据库操作 数据库管理系统 数据库操作 操作系统 数据字典 数据库数据 数据库管理员 数据库应用系统 DBAS DBAS是在DBMS支持下的一类计算机应用系统 是由数据库系统和各种用户应用程序结合而成的 它不同于使用普通文件和由文件管理程序支持的系统 要包括专用或通用的DBMS DBAS中的应用程序可以分为 功能程序 完成特定的操作要求 如修改 查询 打印等 控制程序 显示功能清单 菜单 接受用户选择 并调用相应的程序来完成用户的操作意向 概要 数据库 数据库管理系统 数据库系统与数据库应用系统计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的研究领域 本节重点 数据库VS文件系统理解数据库技术的特点和根本出发点数据库外部体系结构的变化数据库系统的三层内部结构 计算机数据处理技术的发展 人工管理阶段 文件管理阶段 数据库系统阶段 人工管理阶段 数据不保存 数据与程序不具有独立性 只有程序没有文件的概念 数据面向应用 文件管理阶段 文件系统是操作系统中主要用来管理辅助存储器上的数据的子系统 数据可长期保存在磁盘上 数据的存取以记录为单位 文件系统提供了多种文件结构和存取方法 对文件的记录可顺序访问和随机访问 文件的形式多样化 程序与数据之间有了一定的独立性 但又紧密相关 数据的逻辑结构和输入输出格式仍由程序员在程序中定义和管理 文件系统的缺陷 数据共享性差 冗余度大不同的应用程序独立地定义和处理自己的文件 相同的数据集合在不同的应用程序中使用时 经常需要重复定义 重复存储 数据不一致相同数据的重复存储 单独管理 给数据的修改和维护带来了困难 容易造成数据不一致 数据独立性差文件与应用程序联系紧密 当文件的结构发生改变时 必须修改应用程序 包括修改记录结构的定义和应用程序的数据处理部分 数据结构化程度低文件之间是孤立的 从整体上看是无结构 无联系的 概要 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的研究领域 数据库系统的特点与功能 做到了以数据为中心 为数据处理提供了一种更完善 高级的管理方式 实现了对所有相关数据的统一 集中 独立的管理 主要优点 数据集成 数据的结构化 控制数据冗余 数据的独立性 数据的共享性高 统一的数据控制功能 数据集成数据集成是数据库管理系统的主要目的 通过数据集成来统一计划与协调遍及各相关应用领域的信息资源 这样可使数据得到最大程度的共享 而冗余最少 下图所示的表明了一个集成的人事工资信息系统 其中的人事工资数据库由所有相关应用共享 工资发放系统 数据库管理软件 劳资人事数据库 人力资源管理系统 薪酬管理系统 业务管理系统 控制数据冗余 在数据库设计阶段 我们只要充分考虑所有用户的数据管理需求 将所有数据集成为单一的逻辑结构 而且每一数据项值可以理想地只存储一次 即可避免数据冗余 然而 我们并不认为所有的冗余都可以或应该消除 有时 由于应用业务或技术上的原因 如数据合法性检验 数据存取效率等方面的需要 同一数据可能在数据库中保持多个副本 但是 在数据库系统中 冗余是受控的 数据一致性通过消除或控制数据冗余 可以在一定范围内避免数据的不一致性 当发生更新时 数据库系统本身可以通过更新所有其他副本来自动保护数据的一致性 数据的独立性指数据与应用程序之间不存在相互依赖关系 数据的物理独立性 指当数据存储结构 或称物理结构 改变时 数据的逻辑结构不变 则用户编写的应用程序不变 数据的逻辑独立性 指当数据的总体逻辑结构改变时 应用程序可以不变 统一的数据控制功能 数据的完整性 安全性保护 并发控制 故障发现和恢复 可修改和可扩充性 概要 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的研究领域 数据库系统结构 可以从多角度来考察 描述数据库系统的结构 从数据库最终实现角度看 即数据库系统外部的体系结构 从数据库管理系统角度看 即数据库系统内部的结构 通常是采用三级模式结构 数据库系统外部的体系结构 可分为 集中式DBS CentralizedDBS 分布式DBS DistributedDBS 并行式DBS ParallelDBS 客户机 服务器式DBS Client ServerDBS 记为C SDBS 浏览器 WEB服务器 数据库服务器 B W D 结构的DBS 单用户数据库系统 整个数据库系统 应用程序 DBMS 数据 装在一台计算机上 为一个用户独占 不同机器之间不能共享数据 早期的最简单的数据库系统 主从式结构的数据库系统 一个主机带多个终端的多用户结构数据库系统 包括应用程序 DBMS 数据 都集中存放在主机上 所有处理任务都由主机来完成各个用户通过主机的终端并发地存取数据库 共享数据资源 主从式结构的数据库系统 主机 终端 主从式结构的数据库系统 续 优点易于管理 控制与维护 缺点当终端用户数目增加到一定程度后 主机的任务会过分繁重 成为瓶颈 从而使系统性能下降 系统的可靠性依赖主机 当主机出现故障时 整个系统都不能使用 分布式结构的数据库系统 数据库中的数据在逻辑上是一个整体 但物理地分布在计算机网络的不同结点上 网络中的每个结点都可以独立处理本地数据库中的数据 执行局部应用同时也可以同时存取和处理多个异地数据库中的数据 执行全局应用 分布式结构的数据库系统 续 优点适应了地理上分散的公司 团体和组织对于数据库应用的需求 缺点数据的分布存放给数据的处理 管理与维护带来困难 当用户需要经常访问远程数据时 系统效率会明显地受到网络传输的制约 客户 服务器结构的数据库系统 把DBMS功能和应用分开网络中某个 些 结点上的计算机专门用于执行DBMS功能 称为数据库服务器 简称服务器其他结点上的计算机安装DBMS的外围应用开发工具 用户的应用系统 称为客户机 数据库系统的体系结构 C S式DBS 数据库 DBMS 数据库访问接口 数据库访问接口 数据库访问接口 应用程序 应用程序 应用程序 LAN 客户 服务器数据库系统的种类 集中的服务器结构一台数据库服务器 多台客户机分布的服务器结构在网络中有多台数据库服务器分布的服务器结构是客户 服务器与分布式数据库的结合 客户 服务器结构的优点 显著减少了数据传输量数据库更加开放客户与服务器一般都能在多种不同的硬件和软件平台上运行可以使用不同厂商的数据库应用开发工具 客户 服务器结构的缺点 胖客户 问题 系统安装复杂 工作量大 应用维护困难 难于保密 造成安全性差 相同的应用程序要重复安装在每一台客户机上 从系统总体来看 大大浪费了系统资源 系统规模达到数百数千台客户机 它们的硬件配置 操作系统又常常不同 要为每一个客户机安装应用程序和相应的工具模块 其安装维护代价便不可接受了 浏览器 应用服务器 数据库的系统结构 客户端 浏览器软件 用户界面浏览器的界面统一 广大用户容易掌握大大减少了培训时间与费用 服务器端分为两部分 Web服务器 应用服务器数据库服务器等大大减少了系统开发和维护代价 能够支持数万甚至更多的用户 数据库系统的体系结构 B W D式DBS 数据库 WebServer 浏览器 浏览器 浏览器 数据访问页面 数据访问页面 数据访问页面 Internet Intranet Extranet DBMS 数据库的三级模式结构 实际的数据库管理系统虽然种类很多 但在体系结构上都具有相同特征 即采用三级模式结构并提供两级映象 抽象 功能 三级模式结构是指 数据库系统是由外模式 概念模式和内模式构成的 两级抽象是指 概念级抽象把数据库的外模式抽象为数据库的概念模式 物理级抽象把数据库的概念模式抽象为数据库的内模式三级模式和两种数据抽象的对应关系如下图所示 数据库系统的三级模式结构 1 模式 Schema 模式 也称逻辑模式 数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图一个数据库只有一个模式 模式的地位 是数据库系统模式结构的中间层与数据的物理存储细节和硬件环境无关与具体的应用程序 开发工具及高级程序设计语言无关模式的定义数据的逻辑结构 数据项的名字 类型 取值范围等 数据之间的联系数据有关的安全性 完整性要求 2 外模式 ExternalSchema 外模式 也称子模式或用户模式 数据库用户 包括应用程序员和最终用户 使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图 是与某一应用有关的数据的逻辑表示 外模式 续 外模式的地位 介于模式与应用之间 模式与外模式的关系 一对多外模式通常是模式的子集一个数据库可以有多个外模式 反映了不同的用户的应用需求 看待数据的方式 对数据保密的要求对模式中同一数据 在外模式中的结构 类型 长度 保密级别等都可以不同 外模式 续 外模式与应用的关系 一对多同一外模式也可以为某一用户的多个应用系统所使用 但一个应用程序只能使用一个外模式 外模式的用途 保证数据库安全性的一个有力措施 每个用户只能看见和访问所对应的外模式中的数据 3 内模式 InternalSchema 内模式 也称存储模式 是数据物理结构和存储方式的描述是数据在数据库内部的表示方式记录的存储方式 顺序存储 按照B树结构存储 按hash方法存储 索引的定义 组织方式数据是否压缩存储 数据是否加密数据存储记录结构的规定所使用的设备特征一个数据库只有一个内模式 二级映象 三级模式是对数据的三个抽象级别二级映象在DBMS内部实现这三个抽象层次的联系和转换 外模式 模式映象 外模式 模式映象把数据库的外模式抽象为数据库的逻辑模式 数据库的逻辑模式综合了外模式中所有视图 反映了所有数据库用户所关心的现实世界的抽象 形成了数据库的整体逻辑结构 数据库定义机构提供了概念抽象的工具 可以用来定义概念数据库模式的逻辑结构 模式 内模式映象 模式 内模式映象把数据库的概念模式进一步抽象成为数据库的内模式 数据库的内模式描述了数据如何在物理存储设备上存储 数据库系统中数据定义语言的物理数据库定义机构提供了物理抽象的工具 可以用来定义数据库的物理存储结构 视图 DBMS把不同用户的观点抽象为多个逻辑数据结构 每个逻辑数据结构称为一个视图 或用户视图 描述了每个用户所关心的数据 所有视图的集合形成了数据库的外模式 或子模式 数据库系统中数据定义语言的视图定义机构提供了进行视图抽象的工具 可以用来定义视图的逻辑结构 数据独立性 数据库系统提供的两种数据映象能力和三级数据库模式实现了两种数据独立性 两种数据独立性的本质是把数据定义从应用程序中分离出来 应用程序中的数据存取由数据库系统完成从而减少了编制程序的工作量 减少了应用程序的维护和修改值得注意的是 实际数据库系统的逻辑数据独立性不能保证直接建立在数据库概念模式上的应用程序与数据的独立 当数据库的概念模式改变时 这些应用程序仍然需要修改 从这种意义上讲 数据库系统提供的逻辑数据独立性是不完备的 小结 模式是数据库的中心与关键独立于数据库的其它层次设计数据库模式结构时应首先确定数据库的逻辑模式 小结 续 内模式依赖于全局逻辑结构 但独立于数据库的用户视图即外模式 也独立于具体的存储设备 它将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织 以达到较好的时间与空间效率 小结 续 外模式面向具体的应用程序 定义在逻辑模式之上 但独立于存储模式和存储设备设计外模式时应充分考虑到应用的扩充性 当应用需求发生较大变化 相应外模式不能满足其视图要求时 该外模式就得做相应改动 小结 续 应用程序在外模式描述的数据结构上编制的 它依赖于特定的外模式 与数据库的模式和存储结构独立 不同的应用程序有时可以共用同一个外模式 小结 续 二级映象 保证了数据库外模式的稳定性 从而从底层保证了应用程序的稳定性 除非应用需求本身发生变化 否则应用程序一般不需要修改 数据与程序之间的独立性 使得数据的定义和描述可以从应用程序中分离出去 ThankYou 数据库技术及应用 北京邮电大学信息与通信工程学院龚萍pgong 本节课要解决的问题 掌握一个工具 在设计一个庞大的应用系统时 逐步理清各种对象及它们之间错综复杂的联系 从而清晰地得到计算机最终要处理的数据 开始在SQLServer2005中 认识 了解实际的关系数据库 从而理解对应的概念 数据库 一个软件及其理论基础 是如何来反映 实现现实世界的对象的 是从几个方面 或部分 来全面考虑的 概要 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构数据库数据模型 数据库系统的组成 数据库技术的研究领域 数据库数据模型 数据模型是对现实世界的抽象 是数据间的一个整体逻辑结构图 计算机反映现实世界的过程及术语现实世界 信息世界 计算机世界 概念模型 数据模型 个体实体 Entity 记录 Record 或元组特征属性 Attribute 字段 Field 关联关系 Relation 数据模型 DataModel 集合实体集 EntitySet 文件 File 数据模型要素 数据模型是描述数据 数据联系 数据的语义和完整性约束的概念集合 通常由数据结构 数据操作和完整性约束三部分组成 数据结构 数据结构是所研究的对象的类型的集合 这些对象是数据库的组成部分 包括两类 一类是与数据类型 内容有关的对象 一类是与数据之间联系有关的对象 数据操作 数据操作是指对数据模型中各种对象型的实例所允许执行的所有操作的集合 包括操作及有关的操作规则 数据模型要定义这些操作的确切含义 操作符号 操作规则如操作优先级别以及实现操作的语言 数据结构是对系统静态特性的描述 数据操作是对系统动态特性的描述 数据的完整性约束条件 数据的完整性约束条件是完整性规则的集合包括 数据及其联系所具有的制约和依存规则 数据模型既反映和规定本数据模型必须遵守的基本的通用的完整性约束条件 还应具备定义特定完整性约束条件的机制 在实际数据库系统中 人们 主要是DBA 用DBMS提供的数据描述语言DDL 按照该DBMS支持的某种数据模型的要求来描述系统的概念模型 两类数据模型 根据模型应用的不同目的 可以将数据模型划分为不同层次的两类 概念模型 是按用户的观点来对数据和信息建模 主要应用在数据库设计阶段 数据模型 主要包括网状模型 层次模型 关系模型等 它是按计算机观点对数据建模 主要用于基本DBMS的实现 概念模型 实体 Entity 实际上就是一些名词 是一个人 地点 事物或者事件 属性 Attribute 是指实体的特性 如学生实体的姓名 性别域 Domain 属性的取值范围称为该属性的域码或键 Key 是能唯一标识一个实体的属性或属性组实体集 EntitySet 同类型实体的集合关系 Relation 意味着实体之间的联系 关系有一对一 一对多关系和多对多关系 实体之间的联系方式 一对一例 部门 经理 班级 班长 一对多 多对一 例 部门 职工 班级 学生 多对多例 订单 货物 学生 课程 概念模型的表示方法 概念模型的表示方法很多 实体 联系方法 E R方法 Entity RelationshipApproach 是PeterChen于1976年提出的 即用E R图来描述某一组织的概念模型 E R方法也称为E R模型 E R图 实体型用矩形表示 矩形框内写明实体名 学生 教师 E R图 续 属性用椭圆形表示 并用无向边将其与相应的实体连接起来 E R图 续 联系联系本身 用菱形表示 菱形框内写明联系名 并用无向边分别与有关实体连接起来 同时在无向边旁标上联系的类型 1 1 1 n或m n 联系的属性 联系本身也是一种实体型 也可以有属性 如果一个联系具有属性 则这些属性也要用无向边与该联系连接起来 联系的表示方法 联系的表示方法 续 联系的表示方法示例 联系的表示方法示例 续 联系属性的表示方法 E R图实例 P38课后作业 12 P38课后作业 13 E R图实例 P19 P20某工厂物资管理E R图 包括 班级 学生 1 N 班级 班号 班主任 系 学生 学号 姓名 性别 班号 E R图转换成关系模式 示例一 N 班主任 系 班号 学号 姓名 班号 性别 M N 学生 学号 姓名 性别 班号 课程 课程号 课程名 学分 选课 学号 课程号 成绩 E R图转换成关系模式 示例二 M N 常用数据模型 非关系模型层次模型 HierarchicalModel 网状模型 NetworkModel 非关系模型数据结构 以基本层次联系为基本单位基本层次联系 两个记录以及它们之间的一对多 包括一对一 的联系 常用数据模型 续 关系模型 RelationalModel 数据结构 表 面向对象模型 ObjectOrientedModel 数据结构 对象 层次模型 用树形或森林结构来表示实体及实体间联系的模型叫层次数据模型 实体用独立的节点 记录 表示 实体间的联系 仅限于一对多 用记录间指针表示 较严格地说 层次数据模型指满足下列条件的基本层次联系的集合 有且仅有一个节点无父节点 此节点即根节点 根节点以外的其他节点有且仅有一个父节点 层次模型中的几个术语 根节点 双亲节点 兄弟节点 叶节点 层次数据模型的数据结构 续 层次数据模型的数据结构 续 表示方法 实体型 用记录类型描述 每个节点表示一个记录类型 属性 用字段描述 每个记录类型可包含若干个字段 联系 用节点之间的连线表示记录 类 型之间的一对多的联系实例 教员 学生数据模型 P21 层次数据模型的数据结构 续 特点节点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型定义一个排序字段 也称为码字段任何记录值只有按其路径查看时 才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在 层次数据模型的数据结构 续 多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法将多对多联系分解成一对多联系分解方法冗余节点法虚拟节点法 层次模型的数据操纵 查询插入删除更新 层次模型的完整性约束 无相应的双亲节点值就不能插入子女节点值 如果删除双亲节点值 则相应的子女节点值也被同时删除 更新操作时 应更新所有相应记录 以保证数据的一致性 层次数据模型的存储结构 邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放 即通过物理空间的位置相邻来实现层次顺序 链接法用指引元来反映数据之间的层次联系子女 兄弟链接法P26层次序列链接法P26 层次模型的优缺点 优点层次数据模型简单 对具有一对多的层次关系的部门描述自然 直观 容易理解性能优于关系模型 不低于网状模型层次数据模型提供了良好的完整性支持 缺点多对多联系表示不自然对插入和删除操作的限制多查询子女节点必须通过双亲节点层次命令趋于程序化 网状模型 网状模型满足下面几个条件的基本层次联系的集合为网状模型 允许一个以上的节点无双亲 一个节点可以有多于一个的双亲 允许两个节点之间有多种联系关系 网状数据模型的数据结构 网状数据模型的数据结构 续 表示方法 与层次数据模型相同 实体型 用记录类型描述 每个节点表示一个记录类型 属性 用字段描述 每个记录类型可包含若干个字段 联系 用节点之间的连线表示记录 类 型之间的一对多的父子联系 网状数据模型的数据结构 续 特点只能直接处理一对多的实体联系每个记录类型定义一个排序字段 也称为码字段任何记录值只有按其路径查看时 才能显出它的全部意义 网状数据模型的数据结构 续 网状模型与层次模型的区别网状模型允许多个节点没有双亲节点网状模型允许节点有多个双亲节点网状模型允许两个节点之间有多种联系 复合联系 网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例 网状数据模型的数据结构 续 网状数据模型的数据结构 续 网状数据模型的数据结构 续 网状数据模型的数据结构 续 网状数据模型的数据结构 续 多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法将多对多联系直接分解成一对多联系 网状模型的数据操纵 查询插入删除更新 网状数据模型的完整性约束 网状数据库系统 如DBTG 对数据操纵加了一些限制 提供了一定的完整性约束码双亲节点与子女节点之间是一对多联系允许插入尚未确定双亲节点值的子女节点值允许只删除双亲节点值 网状数据模型的存储结构 关键实现记录之间的联系常用方法单向链接双向链接环状链接向首链接例 P29 网状模型的优缺点 优点能够更为直接地描述现实世界 如一个节点可以有多个双亲具有良好的性能 存取效率较高缺点结构比较复杂 而且随着应用环境的扩大 数据库的结构就变得越来越复杂 不利于最终用户掌握DDL DML语言复杂 用户不容易使用 关系模型 用二维表来表示实体集之间关系以及实体集属性之间关系的形式模型 关系模型的基本概念 关系 Relation 一个关系对应通常说的一张表 元组 Tuple 表中的一行即为一个元组 属性 Attribute 表中的一列即为一个属性 给每一个属性起一个名称即属性名 关系模型的基本概念 主码 Key 表中的某个属性组 它可以唯一确定一个元组 域 Domain 属性的取值范围 分量元组中的一个属性值 关系模式对关系的描述关系名 属性1 属性2 属性n 学生 学号 姓名 年龄 性别 系 年级 关系数据模型的数据结构 实体及实体间的联系的表示方法实体型 直接用关系 表 表示 属性 用属性名表示 一对一联系 隐含在实体对应的关系中 一对多联系 隐含在实体对应的关系中 多对多联系 直接用关系表示 关系数据模型的数据结构 续 例1学生 系 系与学生之间的一对多联系 学生 学号 姓名 年龄 性别 系号 年级 系 系号 系名 办公地点 例2系 系主任 系与系主任间的一对一联系系 系号 系名 系主任 关系数据模型的数据结构 续 例3 学生 课程 学生与课程之间的多对多联系 学生 学号 姓名 年龄 性别 系号 年级 课程 课程号 课程名 学分 选修 学号 课程号 成绩 关系数据模型的数据结构 续 关系必须是规范化的 满足一定的规范条件最基本的规范条件 1NF 关系的每一个分量必须是一个不可分的数据项 关系模型的数据操纵 查询 插入 删除 更新数据操作是集合操作 操作对象和操作结果都是关系 即若干元组的集合存取路径对用户隐蔽 用户只要指出 干什么 不必详细说明 怎么干 关系模型的完整性约束 实体完整性参照完整性用户定义的完整性 关系数据模型的存储结构 表以文件形式存储有的DBMS一个表对应一个操作系统文件有的DBMS自己设计文件结构 关系模型的优缺点 优点建立在严格的数学概念的基础上概念单一 数据结构简单 清晰 用户易懂易用实体和各类联系都用关系来表示对数据的检索结果也是关系关系模型的存取路径对用户透明具有更高的数据独立性 更好的安全保密性简化了程序员的工作和数据库开发建立的工作 关系模型的优缺点 续 缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能 必须对用户的查询请求进行优化增加了开发数据库管理系统的难度 概要 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型数据库系统的组成 数据库技术的研究领域 数据库系统的组成 硬件平台及数据库足够大的内存 足够大的存储介质 足够强的通信能力 软件DBMS OS 高级语言及其编译系统 应用开发工具 人员 DBA 模式定义 模式和物理组织的修改 对数据库访问的授权 完整性约束的说明 数据库的监控和运行等 其他人员 数据库设计 分析员 应用程序员 用户 数据库管理员 DBA 决定数据库中的信息内容和结构决定数据库的存储结构和存取策略定义数据的安全性要求和完整性约束条件监控数据库的使用和运行周期性转储数据库系统故障恢复介质故障恢复监视审计文件数据库的改进和重组性能监控和调优数据重组 系统分析员 负责应用系统的需求分析和规范说明与用户及DBA协商 确定系统的硬软件配置参与数据库系统的概要设计 数据库设计人员 参加用户需求调查和系统分析确定数据库中的数据设计数据库各级模式 应用程序员 设计和编写应用系统的程序模块进行调试和安装 概要 数据库 数据库管理系统 数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成数据库技术的研究领域 数据库技术的研究领域 DBMS的研制 数据库设计 数据库理论 数据库技术及应用 北京邮电大学信息与通信工程学院龚萍pgong 第二章关系数据库 关系数据模型概述 关系数据结构 关系的完整性规则 关系数据库的数据操作 周1上午3 4 下午7 8周2下午7 8节前3班空 后周3下午5 6节前3班周4下午前3个班空 后3有课 戴金关系数据库简介 系统而严格地提出关系模型的是美国IBM公司的E F Codd1970年提出关系数据模型E F Codd ARelationalModelofDataforLargeSharedDataBanks CommunicationoftheACM 1970之后 提出了关系代数和关系演算的概念1972年提出了关系的第一 第二 第三范式1974年提出了关系的BC范式 关系数据库简介 关系数据库应用数学方法来处理数据库中的数据80年代后 关系数据库系统成为最重要 最流行的数据库系统 概要 关系数据模型概述 关系数据结构 关系的完整性规则 关系数据库的数据操作 关系模型 关系模型是由以下三部分组成 关系数据结构 关系 二维表 关系操作 集合操作 高度非过程化 完整性约束 三类约束 概要 关系数据模型概述关系数据结构 关系的完整性规则 关系数据库的数据操作 关系数据结构 关系模型建立在集合代数的基础上关系数据结构的基本概念关系关系模式关系数据库 关系 域 Domain 2 笛卡尔积 CartesianProduct 3 关系 Relation 域 Domain 域是一组具有相同数据类型的值的集合 整数实数介于某个取值范围的整数指定长度的字符串集合 是 否 介于某个取值范围的日期新一代数据库数据的类型则更复杂 笛卡尔积 CartesianProduct 给定一组集合D1 D2 Dn 则称D1 D2 Dn d1 d2 dn di Di i 1 2 n 为这组集合的笛卡尔积例 D1 a1 a2 D2 b1 b2 b3 D1 D2 a1 b1 a1 b2 a1 b3 a2 b1 a2 b2 a2 b3 所有域的所有取值的一个组合不能重复 笛卡尔积 续 例给出三个域 D1 SUPERVISOR 张清玫 刘逸 D2 SPECIALITY 计算机专业 信息专业 D3 POSTGRADUATE 李勇 刘晨 王敏 则D1 D2 D3的笛卡尔积为 D1 D2 D3 张清玫 计算机专业 李勇 张清玫 计算机专业 刘晨 张清玫 计算机专业 王敏 张清玫 信息专业 李勇 张清玫 信息专业 刘晨 张清玫 信息专业 王敏 刘逸 计算机专业 李勇 刘逸 计算机专业 刘晨 刘逸 计算机专业 王敏 刘逸 信息专业 李勇 刘逸 信息专业 刘晨 刘逸 信息专业 王敏 笛卡尔积 续 元组 Tuple 笛卡尔积中每一个元素 d1 d2 dn 叫作一个n元组 n tuple 或简称元组 分量 Component 笛卡尔积元素 d1 d2 dn 中的每一个值di叫作一个分量 笛卡尔积 续 基数 Cardinalnumber 若Di i 1 2 n 为有限集 其基数为mi i 1 2 n 则D1 D2 Dn的基数M为 在上例中 基数 2 2 3 12 即D1 D2 D3共有2 2 3 12个元组 笛卡尔积 续 笛卡尔积的表示方法笛卡尔积可表示为一个二维表 表中的每行对应一个元组 表中的每列对应一个域 在上例中 12个元组可列成一张二维表 关系的数学描述 设以D1 D2 Dn表示关系模型R A1 A2 An 的属性域 则D D1 D2 Dn表示该关系中所有可能出现的元组 关系R通常是笛卡尔积D的子集 因此 关系可以描述为 关系模型所有属性域的笛卡尔积的一个子集n称为关系的目或度 关系 续 注意 关系是笛卡尔积的有限子集 无限关系在数据库系统中是无意义的 由于笛卡尔积不满足交换律 即 d1 d2 dn d2 d1 dn 但关系实际满足交换律 即 d1 d2 di dj dn d1 d2 dj di dn i j 1 2 n 解决方法 为关系的每个列附加一个属性名以取消关系元组的有序性 关系 续 例在表2 1的笛卡尔积中取出有实际意义的元组来构造关系关系 SAP SUPERVISOR SPECIALITY POSTGRADUATE 假设 导师与专业 1 1 导师与研究生 1 n于是 SAP关系可以包含三个元组 张清玫 信息专业 李勇 张清玫 信息专业 刘晨 刘逸 信息专业 王敏 关系模型术语 一 关系 Relation 就是含有有限个不同的行的二维表 元组 Tuple 就是二维表中的一行 即表中的记录 属性 Attribute 就是为二维表中的一列起的一个名字 用类型和值表征 域 Domain 每个属性取值的变化范围 关系模型术语 二 键 Key 又称码 能够唯一标识元组的属性或属性组 称为关系模式的键 例如 学生关系中的 学号 课程关系中的 课程号 等 候选键 CandidateKey 如果一个属性集能唯一标识元组 且又不含有多余属性 那么这个属性集称为候选键 主键 PrimaryKey 关系模式中用户正在使用的候选键 关系的性质 同一个列中的分量定是来自同一个域 不同列可来自同一个域 列 行的顺序可以交换 任意两个元组不能完全相同 每一个分量必须取原子值 即分量值不可再分 也不能有多值 三类关系 基本关系 基本表或基表 实际存在的表 是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表 是虚表 不对应实际存储的数据 关系模式 关系模式是对关系的描述 它可以形式化为R U D dom F 通常简记为R U 或R A1 A2 An 其中A1 A2 An为属性名 关系模式是关系数据库的型 是静态 稳定的 而动态 变化的关系的具体值由对应的二维表来表示 关系模式和关系往往统称为关系 关系数据库 关系数据库是由多个关系模式组成 一个现实对象的相关信息被分成若干部分 每个关系模式描述其中一部分信息 关系数据库的值是这些关系模式在某一时刻对应的关系的集合 即关系数据库 关系数据库的型与值 关系数据库也有型和值之分 关系数据库的型称为关系数据库模式 是对关系数据库的描述若干域的定义在这些域上定义的若干关系模式 关系数据库的值是这些关系模式在某一时刻对应的关系的集合 通常简称为关系数据库 概要 关系数据模型概述 关系数据结构关系的完整性规则 关系数据库的数据操作 关系模型的完整性 为了维护数据库中数据的正确性和一致性 关系数据库的数据与更新操作必须遵循下列三类完整性规则 实体完整性规则 EntityIntegrityRule 关系的主属性 即主键的组成不能有空值 null 如果出现空值 那么主键就无法起到唯一标识元组 实体 的作用 若所定义的实体的主键为组合属性 如 学生 选课 中 学号 课程号 为主键 则该实体的任一元组中 学号和课程号这两个属性的值均不得为空值 否则就违反了实体完整性要求 引用完整性规则 ReferenceIntegrityRule 如果关系R2的属性中 包含与另一关系R1的主键相对应的属性集合K 那么K则称为R2的外键 对R2每个元组在K上的取值只允许有两种可能 空值 等于R1的关系中某个元组的主键值 R1与R2不一定是不同的关系 主键与外键可以不同名 但是定义在同一值域中以上两类规则是由系统自动支持的 即 在建立关系 表 时 只要指明了主键 外键 系统将自动进行此类完整性检查 引用完整性规则 例子 例1 学生 课程 学生选课之间的多对多联系可以用以下三个关系表示 学生 学号 姓名 性别 专业号 年龄 课程 课程号 课程名 类别 学分 选课 学号 课程号 成绩 选课关系分别引用了学生关系中的主码 学号 和课程关系的主码 课程号 因此 选课中出现的 学号 和 课程号 的值必须是学生和课程关系中确实存在的值例2 在关系员工 员工号 姓名 性别 部门号 职务 部门经理 中 员工号 是主键 部门经理 表示该员工所在部门经理的员工号 它引用了自身关系 员工号 属性 所以 部门经理 必须是确实存在的员工的员工号 学生 学生选课 课程 用户定义的完整性规则 User definedIntegrity 这是针对某一应用环境的完整性约束

温馨提示

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

评论

0/150

提交评论