1、数 据 库 技 术 及 应 用,北京邮电大学信息与通信工程学院 龚萍 ,信息理论与技术中心移动通信实验室:院士 教授: 吴伟陵 林家儒 田宝玉 赵振刚 郭莉 副教授:牛凯 贺志强 龚萍 林雪红 别志松 许文俊 李永华,周炯磐,数据库技术是什么?一门专门的计算机软件技术,主要用于数据处理.数据库技术应用情况如何?各行各业都在广泛使用,和我们生活的方方面面都结合得较紧.数据库在通信行业应用如何?在网管、 计费、客服、电子运维、移动通信网、智能网等中发挥着重要作用.学习数据库这门课需要哪些先修课程?后面还有哪些课是基于数据库的?严格地说,本课程需要离散数学、操作系统及数据结构几门课程中的部分知识为先
2、修内容.,参考书目, 数据库基础理论 数据库系统概论(第四版) 萨师煊 王珊 高等教育出版社 Database System Concepts Abraham SilberschatZ Bell-Labs 数据库系统概念 杨冬青 唐世渭译 机械工业出版社 SQL Server数据库使用和管理 Transact-SQL 权威指南 中国电力出版社 SQL Server2005 宝典电子工业出版社人大数据库教学网站:www.chinadb.org讲义下载ftp:/ Username: kejian Password: kejian,考核方法, 期末考查 40% 实验: 40%平时随堂小作业 20%
3、,教学思想, 结合本专业特点,使同学们掌握数据库技术相应的基本概念、理论和原理,了解当前信息和通信领域数据库技术的最新应用掌握数据库管理系统的基本使用、管理和维护,掌握数据库应用系统设计的基本理论和方法,教学大纲, 引言 数据库系统概述 关系数据库系统 SQL语言 SQL Server 2005的使用与管理 数据库设计理论 SQL Server 2005数据库应用系统开发 数据库系统在通信中的应用,引言, 数据与数据处理 数据库技术的发展历程及趋势 当前流行的数据库产品,数据与数据处理, 信息:人们对客观事物的认识和反映。 数据:用以载荷信息的物理符号。 数据处理:指对各种类型的原始数据进行收
4、集、管理、加工利用乃至信息输出的演变与推导全过程。其中,数据管理,即数据的收集、整理、组织、存储、维护、检索、传送等操作,是数据处理的基本环节。,数据库技术的发展, 数据库技术是计算机科学技术中发展最快的重要分支之一,它已经成为计算机信息系统和应用系统的重要技术支柱。它产生、发展于本世纪60、70年代,在短短的30年里,它从第一代的层次、网状数据库技术和第二代的关系数据库技术,发展到第三代的面向新一代应用的数据库技术。,第一代数据库技术,第一代数据库技术的代表是层次和网状数据库系统: 1969年,IBM公司研制了基于层次模型的数据管理系统IMS(Information Management S
5、ystem) 美国数据库系统语言协会CODASYL (Conference On Data System Language)下属的数据库任务组DBTG(Data Base Task Group)对数据库方法进行了系统的研究、探讨,于60年代末70年代初提出了若干报告,称为DBTG报告。报告所提议的方法是基于网状结构的,它是数据库网状模型的典型代表。,第二代数据库技术,第二代数据库系统是关系数据库系统 1970年IBM公司San Jose实验室的研究员E.F.Codd发表了题为“大型共享数据库数据的关系模型”的论文,提出了关系数据模型,开创了关系数据库方法和关系数据库理论,为关系数据库技术奠定了
6、理论基础。 70年代是关系数据库理论研究和原型系统开发的时代,其中以IBM公司SanJose实验室开发的System R 和Berkeley加利福尼亚大学研制的INGRES为代表。,经过大量的高层次研究和开发,关系数据库系统的研究取得了一系列的成绩,主要包括: 奠定了关系模型的理论基础,给出了被人们普遍接受的关系模型的规范说明 提出了关系数据语言,如关系代数、关系演算、SQL语言、QBE等等。这些描述性语言一改以往程序设计语言和网状、层次数据库语言的面向过程的风格,为80年代数据库语言标准化打下了基础 研制了大量的关系数据库系统原型,攻克了系统实现中查询优化、并发控制、故障恢复等一系列关键技术
7、 70年代后期,关系数据库从实验室走向了社会,而80年代几乎所有新开发的数据库系统均是关系型的。这些商用数据库系统的运行,特别是微机RDBMS的使用,使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等各个方面。,下一代数据库技术,传统数据库技术面临着严峻的挑战 80年代以来,数据库技术在商业领域的巨大成就刺激了其他领域对数据库需求的迅速增长。例如,计算机辅助设计与制造、地理信息系统、办公信息系统和web应用等等。这些领域需要的数据管理功能有相当一部分是传统数据库所不能满足的,例如: 复杂数据类型的支持。复杂数据类型包括图像、音频、视频、web网页、抽象数据类型、无结构的超长数据等 复杂
8、对象的存储和处理。复杂对象不仅内部结构复杂,相互之间的联系也很复杂 巨型数据库(数据量可超过1012字节)的管理 数据、对象、知识的统一管理,下一代数据库系统是什么?,数据库工作者从多方面发展了现行的数据库系统技术,研究全新的数据库系统。新一代数据库系统具有如下特点: 面向对象数据模型80年代面向对象的方法和技术的出现,对计算机各个领域都产生了深远的影响,也给面临新挑战的数据库技术带来了机会和希望。数据库研究人员提出了建立面向对象数据模型。该模型克服了传统数据模型的局限性,促进了数据库技术在一个新的技术基础上继续发展.目前在市场上已经有大量的面向对象数据库产品:Versant,Objectiv
9、ity,ObjectStore,GemStone等。,XML (可扩展标记语言,Extensible Markup Language)数据库Internet的异军突起以及XML语言的出现,给数据库系统的发展开辟了一片新的天地。 上世纪90年代末,随着德国软件股份公司(Software AG)推出世界上第一个“原状XML (Native XML)数据库系统”产品问世,标志着数据库系统进入了一个新的发展时期。随后,一些大型数据库系统生产厂家,如:Oracle、微软公司等纷纷宣布要发展支持XML的数据库产品, IBM DB2 9更声称是PureXML数据库产品。,非关系式/面向互联网/键值/分布式数
10、据库云计算 NoSQL Google(Bigtable), 数据库技术与多学科技术的有机结合传统的数据库技术和多学科技术的结合,使数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化,建立和实现了一系列新型数据库:基于WWW的网络数据库、嵌入式移动数据库、多媒体数据库、演绎数据库、知识数据库、工程数据库、地理数据库、模糊数据库等,它们共同构成了数据库大家族. 传统数据库即面向商业与事物处理的数据库仅仅成大家族中的一员,当然,也是最成熟的和应用最广泛的一员。它的核心理论、应用经验、设计方法等仍然是整个数据库技术发展和应用开发的先导和基础,数据库技术的发展概况,当前流行的数据库
11、产品,目前,商品化的数据库管理系统是以关系数据库为主导产品,技术比较成熟。国际国内的主导关系型数据库管理系统有ORACLE、SYBASE、INFORMIX、INGRES、MS SQL SERVER、DB2等 ORACLE是Oracle软件系统有限公司的产品。Oracle成立于1977年,总部设在加利福尼亚,是世界第二大的计算机软件供应商,向全球百余个国家的用户提供大量的软件产品和电子化信息服务。ORACLE系列产品在数据库领域一直居领先地位,它在全球的销售份额约占50%。 DB2关系型数据库家庭产品是IBM公司的主要产品。80年代初DB2的发展重点放在大型的主机平台,80年代中期后DB2已发展
12、到适用于各种硬件平台。, Microsoft SQL Server是微软公司的产品,它建立在Microsoft Windows 操作系统基础之上,提供了一个功能强大的客户/服务器平台,是能同时支持多个并发用户的关系数据库系统。2008年,微软发布了面向企业级市场的高端数据库软件SQL Server 2008。 Sybase是SYBASE软件公司(已被SAP收购)的系列产品,SYBASE公司成立于1984年。SYBASE公司是第一个提出并推出客户/服务器(C/S)体系结构的高性能数据库服务器的数据库厂商,并促进了它的广泛流行。关系技术公司(Relational Technology Inc)的I
13、NGRES数据库系统的多项技术直接采用了Berkeley大学的最新研究成果,多应用在高等学校和科研所等,另一阵营:开放源代码数据库 以瑞典的MySQL为代表(08年被Sun收购,随后Sun已被Oracle收购):据统计,该软件如今的下载量已经超过了一亿份,最新版本MySQL5.5。还有Ingres 、 PostgreSQL等.,第一章 数据库系统概述,数据库、数据库管理系统、数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统组成 数据库技术的研究领域,概 要,数据库、数据库管理系统、数据库系统与数据库应用系统 计算机数据处理
14、技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的研究领域,DB、DBMS、DBS、DBAS,什么是数据库(DB)数据库管理系统 (DBMS)数据库系统(DBS)数据库应用系统(DBAS),什么是数据库?, 数据库(DataBase,DB )以一定的组织方式长期存储在计算机内的,为多种应用服务的,相互有关的结构化的数据集合。即统一管理的相互关联的数据的集合,数据库管理系统 (DBMS), DBMS是位于用户与数据库之间的一层数据管理系统软件,是数据库的核心。它提供了一个软件环境,使用户能方便快速地建立、维护、检索、存取和处理数据库中的信息 DBM
15、S的组成 数据描述语言(DDL)及其翻译处理程序 数据操纵语言(DML)及其编译程序 系统建立维护程序,DBMS的功能,用户对数据库的所有操作以及应用程序的执行,都是通过DBMS进行的,它主要有以下几个方面的功能: 数据库的定义和建立 数据库的操作 数据库的管理 数据库的维护,数据库系统(DBS),引入数据库后的计算机系统,即把数据库、有关的硬件、软件和人员组合起来提供信息服务的系统。广义的DBS包括: 数据库(DB) 数据库管理系统DBMS 支持DBMS的软、硬件环境 数据库管理员DBA 用户及其应用程序,一个简化的数据库系统环境,用户 用户,应用程序,数据库操作,数 据 库 管 理 系 统
16、,数据库操作,操 作 系 统,数据字典,数据库数据,数据库管理员,数据库应用系统( DBAS ), DBAS是在DBMS支持下的一类计算机应用系统,是由数据库系统和各种用户应用程序结合而成的。 它不同于使用普通文件和由文件管理程序支持的系统,要包括专用或通用的DBMS DBAS中的应用程序可以分为:功能程序:完成特定的操作要求,如修改、查询、打印等控制程序:显示功能清单(菜单),接受用户选择,并调用相应的程序来完成用户的操作意向,概 要,数据库、数据库管理系统、数据库系统与数据库应用系统计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技
17、术的研究领域,本节重点,数据库 VS 文件系统 理解数据库技术的特点和根本出发点数据库外部体系结构的变化数据库系统的三层内部结构,计算机数据处理技术的发展,人工管理阶段 文件管理阶段 数据库系统阶段,人工管理阶段,数据不保存数据与程序不具有独立性只有程序没有文件的概念数据面向应用,文件管理阶段,文件系统是操作系统中主要用来管理辅助存储器 上的数据的子系统 数据可长期保存在磁盘上数据的存取以记录为单位文件系统提供了多种文件结构和存取方法,对文件的记录可顺序访问和随机访问文件的形式多样化程序与数据之间有了一定的独立性,但又紧密相关 数据的逻辑结构和输入输出格式仍由程序员在程序中定义和管理,文件系统
18、的缺陷,数据共享性差,冗余度大 不同的应用程序独立地定义和处理自己的文件,相同的数据集合在不同的应用程序中使用时,经常需要重复定义、重复存储 数据不一致相同数据的重复存储,单独管理,给数据的修改和维护带来了困难,容易造成数据不一致 数据独立性差 文件与应用程序联系紧密,当文件的结构发生改变时,必须修改应用程序,包括修改记录结构的定义和应用程序的数据处理部分 数据结构化程度低 文件之间是孤立的,从整体上看是无结构 、无联系的,概 要,数据库、数据库管理系统、数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的
19、研究领域,数据库系统的特点与功能,做到了以数据为中心为数据处理提供了一种更完善、高级的管理方式,实现了对所有相关数据的统一、集中、独立的管理.主要优点 :数据集成 数据的结构化控制数据冗余 数据的独立性数据的共享性高 统一的数据控制功能,数据集成数据集成是数据库管理系统的主要目的,通过数据集成来统一计划与协调遍及各相关应用领域的信息资源,这样可使数据得到最大程度的共享,而冗余最少。下图所示的表明了一个集成的人事工资信息系统,其中的人事工资数据库由所有相关应用共享。,工资发放系统,数据库管理软件,劳资人事数据库,人力资源 管理系统,薪酬管理 系统,业务管理 系统,控制数据冗余,在数据库设计阶段,
20、我们只要充分考虑所有用户的数据管理需求,将所有数据集成为单一的逻辑结构,而且每一数据项值可以理想地只存储一次,即可避免数据冗余。然而,我们并不认为所有的冗余都可以或应该消除,有时,由于应用业务或技术上的原因,如数据合法性检验、数据存取效率等方面的需要,同一数据可能在数据库中保持多个副本。但是,在数据库系统中,冗余是受控的。数据一致性通过消除或控制数据冗余,可以在一定范围内避免数据的不一致性 .当发生更新时,数据库系统本身可以通过更新所有其他副本来自动保护数据的一致性。,数据的独立性 指数据与应用程序之间不存在相互依赖关系 数据的物理独立性: 指当数据存储结构(或称物理结构)改变时,数据的逻辑结
21、构不变,则用户编写的应用程序不变。 数据的逻辑独立性: 指当数据的总体逻辑结构改变时,应用程序可以不变。 统一的数据控制功能数据的完整性 安全性保护 并发控制 故障发现和恢复 可修改和可扩充性,概 要,数据库、数据库管理系统、数据库系统与数据库应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构 数据库数据模型 数据库系统的组成 数据库技术的研究领域,数据库系统结构,可以从多角度来考察、描述数据库系统的结构 从数据库最终实现角度看,即数据库系统外部的体系结构从数据库管理系统角度看,即数据库系统内部的结构,通常是采用三级模式结构,数据库系统外部的体系结构,可分为: 集中式D
22、BS(Centralized DBS) 分布式DBS(Distributed DBS) 并行式DBS(Parallel DBS) 客户机/服务器式DBS(Client/Server DBS,记为C/S DBS) 浏览器/WEB服务器/数据库服务器(B/W/D)结构的DBS,单用户数据库系统,整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。早期的最简单的数据库系统,主从式结构的数据库系统,一个主机带多个终端的多用户结构 数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成 各个用户通过主机的终端并发地存取数
23、据库,共享数据资源,主从式结构的数据库系统,主机,终端,主从式结构的数据库系统(续),优点 易于管理、控制与维护。 缺点 当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降。 系统的可靠性依赖主机,当主机出现故障时,整个系统都不能使用。,分布式结构的数据库系统,数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。 网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用 同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用,分布式结构的数据库系统(续),优点 适应了地理上分散的公司、团体和组织对于数据库应用的需求。 缺点 数据的
24、分布存放给数据的处理、管理与维护带来困难。 当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。,客户服务器结构的数据库系统,把DBMS功能和应用分开 网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器 其他结点上的计算机安装DBMS的外围应用开发工具,用户的应用系统,称为客户机,数据库系统的体系结构 C/S式DBS,数据库,DBMS,数据库 访问接口,数据库 访问接口,数据库 访问接口,应用程序,应用程序,应用程序,LAN,客户服务器数据库系统的种类,集中的服务器结构一台数据库服务器,多台客户机 分布的服务器结构 在网络中有多台数据库服务器 分
25、布的服务器结构是客户服务器与分布式数据库的结合,客户服务器结构的优点,显著减少了数据传输量 数据库更加开放 客户与服务器一般都能在多种不同的硬件和软件平台上运行 可以使用不同厂商的数据库应用开发工具,客户服务器结构的缺点,“胖客户”问题: 系统安装复杂,工作量大。 应用维护困难,难于保密,造成安全性差。 相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源。系统规模达到数百数千台客户机,它们的硬件配置、操作系统又常常不同,要为每一个客户机安装应用程序和相应的工具模块,其安装维护代价便不可接受了。,浏览器/应用服务器/数据库 的系统结构,客户端:浏览器软件、用户界面浏览器
26、的界面统一,广大用户容易掌握大大减少了培训时间与费用。 服务器端分为两部分: Web服务器、应用服务器 数据库服务器等大大减少了系统开发和维护代价,能够支持数万甚至更多的用户.,数据库系统的体系结构 B/W/D式DBS,数据库,Web Server,浏览器,浏览器,浏览器,数据访问 页面,数据访问 页面,数据访问 页面,Internet/ Intranet/ Extranet,DBMS,数据库的三级模式结构,实际的数据库管理系统虽然种类很多,但在体系结构上都具有相同特征:即采用三级模式结构并提供两级映象(抽象)功能三级模式结构是指:数据库系统是由外模式、概念模式和内模式 构成的两级抽象是指:
27、概念级抽象把数据库的外模式抽象为数据库的概念模式;物理级抽象把数据库的概念模式抽象为数据库的内模式三级模式和两种数据抽象的对应关系如下图所示,数据库系统的三级模式结构,1模式(Schema),模式(也称逻辑模式) 数据库中全体数据的逻辑结构和特征的描述 所有用户的公共数据视图一个数据库只有一个模式,模式的地位:是数据库系统模式结构的中间层 与数据的物理存储细节和硬件环境无关 与具体的应用程序、开发工具及高级程序设计语言无关 模式的定义 数据的逻辑结构(数据项的名字、类型、取值范围等) 数据之间的联系 数据有关的安全性、完整性要求,2. 外模式(External Schema),外模式(也称子模
28、式或用户模式) 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,外模式(续),外模式的地位:介于模式与应用之间 -模式与外模式的关系:一对多 外模式通常是模式的子集 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同,外模式(续),-外模式与应用的关系:一对多 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。外模式的用途 -保证数据库安全性的一个有力措施。 -每个用户只能
29、看见和访问所对应的外模式中的数据,3内模式(Internal Schema),内模式(也称存储模式) 是数据物理结构和存储方式的描述 是数据在数据库内部的表示方式 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储) 索引的定义、组织方式 数据是否压缩存储、数据是否加密 数据存储记录结构的规定 所使用的设备特征一个数据库只有一个内模式。,二级映象,三级模式是对数据的三个抽象级别二级映象在DBMS内部实现这三个抽象层次的联系和转换,外模式模式映象,外模式模式映象把数据库的外模式抽象为数据库的逻辑模式。数据库的逻辑模式综合了外模式中所有视图,反映了所有数据库用户所关心的现实世界的抽象,
30、形成了数据库的整体逻辑结构。数据库定义机构提供了概念抽象的工具,可以用来定义概念数据库模式的逻辑结构。,模式内模式映象,模式内模式映象把数据库的概念模式进一步抽象成为数据库的内模式。数据库的内模式描述了数据如何在物理存储设备上存储。数据库系统中数据定义语言的物理数据库定义机构提供了物理抽象的工具,可以用来定义数据库的物理存储结构。,视图,DBMS把不同用户的观点抽象为多个逻辑数据结构。每个逻辑数据结构称为一个视图(或用户视图),描述了每个用户所关心的数据。所有视图的集合形成了数据库的外模式(或子模式)。数据库系统中数据定义语言的视图定义机构提供了进行视图抽象的工具,可以用来定义视图的逻辑结构。
31、,数据独立性,数据库系统提供的两种数据映象能力和三级数据库模式实现了两种数据独立性。两种数据独立性的本质是把数据定义从应用程序中分离出来。应用程序中的数据存取由数据库系统完成从而减少了编制程序的工作量,减少了应用程序的维护和修改值得注意的是,实际数据库系统的逻辑数据独立性不能保证直接建立在数据库概念模式上的应用程序与数据的独立。当数据库的概念模式改变时,这些应用程序仍然需要修改。从这种意义上讲,数据库系统提供的逻辑数据独立性是不完备的,小结,模式 是数据库的中心与关键 独立于数据库的其它层次 设计数据库模式结构时应首先确定数据库的逻辑模式,小结(续),内模式 依赖于全局逻辑结构,但独立于数据库
32、的用户视图即外模式,也独立于具体的存储设备。 它将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。,小结(续),外模式 面向具体的应用程序,定义在逻辑模式之上,但独立于存储模式和存储设备 设计外模式时应充分考虑到应用的扩充性。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动,小结(续),应用程序 在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。 不同的应用程序有时可以共用同一个外模式。,小结(续),二级映象- 保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用
33、需求本身发生变化,否则应用程序一般不需要修改。- 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。,Thank You !,数 据 库 技 术 及 应 用,北京邮电大学信息与通信工程学院 龚萍 ,本节课要解决的问题,掌握一个工具,在设计一个庞大的应用系统时, 逐步理清各种对象及它们之间错综复杂的联系,从而清晰地得到计算机最终要处理的数据开始在SQL Server2005中,认识、了解实际的关系数据库, 从而理解对应的概念数据库(一个软件及其理论基础)是如何来反映、实现现实世界的对象的,是从几个方面(或部分)来全面考虑的?,概 要,数据库、数据库管理系统、数据库系统与数据库
34、应用系统 计算机数据处理技术的发展 数据库系统的特点与功能 数据库系统结构数据库数据模型 数据库系统的组成 数据库技术的研究领域,数据库数据模型,数据模型是对现实世界的抽象,是数据间的一个整体逻辑结构图计算机反映现实世界的过程及术语 现实世界-信息世界-计算机世界(概念模型) (数据模型) 个体 实体(Entity) 记录(Record)或元组特征 属性(Attribute) 字段(Field)关联 关系(Relation) 数据模型(Data Model)集合 实体集(Entity Set) 文件(File),数据模型要素,数据模型是描述数据、数据联系、数据的语义和完整性约束的概念集合,通常
35、由数据结构、数据操作和完整性约束三部分组成 :数据结构数据结构是所研究的对象的类型的集合,这些对象是数据库的组成部分。包括两类:一类是与数据类型、内容有关的对象,一类是与数据之间联系有关的对象。 数据操作 数据操作是指对数据模型中各种对象型的实例所允许执行的所有操作的集合,包括操作及有关的操作规则。数据模型要定义这些操作的确切含义、操作符号、操作规则如操作优先级别以及实现操作的语言.数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,数据的完整性约束条件数据的完整性约束条件是完整性规则的集合包括:数据及其联系所具有的制约和依存规则。 数据模型既反映和规定本数据模型必须遵守的基本的通
36、用的完整性约束条件,还应具备定义特定完整性约束条件的机制.在实际数据库系统中,人们(主要是DBA)用DBMS提供的数据描述语言DDL,按照该DBMS支持的某种数据模型的要求来描述系统的概念模型,两类数据模型,根据模型应用的不同目的,可以将数据模型划分为不同层次的两类: 概念模型:是按用户的观点来对数据和信息建模,主要应用在数据库设计阶段数据模型:主要包括网状模型、层次模型、关系模型等,它是按计算机观点对数据建模,主要用于基本DBMS的实现,概念模型,实体(Entity):实际上就是一些名词,是一个人、地点、事物或者事件。 属性(Attribute):是指实体的特性,如学生实体的姓名、性别 域(
37、Domain):属性的取值范围称为该属性的域 码或键(Key):是能唯一标识一个实体的属性或属性组 实体集(Entity Set):同类型实体的集合 关系(Relation):意味着实体之间的联系,关系有一对一、一对多关系和多对多关系,实体之间的联系方式一对一 例:部门 经理、班级班长一对多(多对一) 例:部门 职工、班级学生多对多 例:订单货物、学生 课程,概念模型的表示方法,概念模型的表示方法很多 实体联系方法(E-R方法)(Entity-Relationship Approach),是PeterChen于1976年提出的,即用E-R图来描述某一组织的概念模型 E-R方法也称为E-R模型,
38、E-R图,实体型 用矩形表示,矩形框内写明实体名。,学生,教师,E-R图(续),属性 用椭圆形表示,并用无向边将其与相应的实体连接起来,E-R图(续),联系 联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n) 联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来,联系的表示方法,联系的表示方法(续),联系的表示方法示例,联系的表示方法示例(续),联系属性的表示方法,E-R图实例,P38 课后作业12:,P38 课后作业13:, E-R图实例:P19-P20某
39、工厂物资管理E-R图,包括,班级,学生,1,N,班级(班号,班主任,系),学生(学号,姓名,性别,班号),E-R图转换成关系模式(示例一), : N,班主任,系,班号,学号,姓名,班号,性别,M : N,学生(学号,姓名,性别,班号),课程(课程号,课程名,学分),选课(学号,课程号,成绩),E-R图转换成关系模式(示例二),M : N,常用数据模型,非关系模型 层次模型(Hierarchical Model) 网状模型(Network Model )非关系模型数据结构:以基本层次联系为基本单位基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系,常用数据模型(续),关系模型(Rel
40、ational Model) 数据结构:表面向对象模型(Object Oriented Model) 数据结构:对象,层次模型,用树形或森林结构来表示实体及实体间联系的模型叫层次数据模型实体用独立的节点(记录)表示,实体间的联系(仅限于一对多)用记录间指针表示较严格地说,层次数据模型指满足下列条件的基本层次联系的集合有且仅有一个节点无父节点,此节点即根节点根节点以外的其他节点有且仅有一个父节点 层次模型中的几个术语 根节点,双亲节点,兄弟节点,叶节点,层次数据模型的数据结构(续),层次数据模型的数据结构(续),表示方法 实体型:用记录类型描述。每个节点表示一个记录类型。 属性:用字段描述。每个
41、记录类型可包含若干个字段。 联系:用节点之间的连线表示记录(类)型之间的一对多的联系 实例:教员-学生数据模型(P21),层次数据模型的数据结构(续),特点 节点的双亲是唯一的 只能直接处理一对多的实体联系 每个记录类型定义一个排序字段,也称为码字段 任何记录值只有按其路径查看时,才能显出它的全部意义 没有一个子女记录值能够脱离双亲记录值而独立存在,层次数据模型的数据结构(续),多对多联系在层次模型中的表示 用层次模型间接表示多对多联系 方法 将多对多联系分解成一对多联系 分解方法 冗余节点法 虚拟节点法,层次模型的数据操纵,查询插入删除更新,层次模型的完整性约束,无相应的双亲节点值就不能插入
42、子女节点值 如果删除双亲节点值,则相应的子女节点值也被同时删除 更新操作时,应更新所有相应记录,以保证数据的一致性,层次数据模型的存储结构,邻接法 按照层次树前序遍历的顺序把所有记录值依次邻接 存放,即通过物理空间的位置相邻来实现层次顺序 链接法 用指引元来反映数据之间的层次联系 子女兄弟链接法 P26 层次序列链接法 P26,层次模型的优缺点,优点 层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解 性能优于关系模型,不低于网状模型 层次数据模型提供了良好的完整性支持 缺点 多对多联系表示不自然 对插入和删除操作的限制多 查询子女节点必须通过双亲节点 层次命令趋于程序化,
43、网状模型,网状模型满足下面几个条件的基本层次联系的集合为网状模型。 允许一个以上的节点无双亲; 一个节点可以有多于一个的双亲; 允许两个节点之间有多种联系关系。,网状数据模型的数据结构,网状数据模型的数据结构(续),表示方法(与层次数据模型相同) 实体型:用记录类型描述。每个节点表示一个记录类型。 属性:用字段描述。每个记录类型可包含若干个字段。 联系:用节点之间的连线表示记录(类)型之间的一对多的父子联系。,网状数据模型的数据结构(续),特点 只能直接处理一对多的实体联系 每个记录类型定义一个排序字段,也称为码字段 任何记录值只有按其路径查看时,才能显出它的全部意义,网状数据模型的数据结构(
44、续),网状模型与层次模型的区别 网状模型允许多个节点没有双亲节点 网状模型允许节点有多个双亲节点 网状模型允许两个节点之间有多种联系(复合联系) 网状模型可以更直接地去描述现实世界 层次模型实际上是网状模型的一个特例,网状数据模型的数据结构(续),网状数据模型的数据结构(续),网状数据模型的数据结构(续),网状数据模型的数据结构(续),网状数据模型的数据结构(续),多对多联系在网状模型中的表示 用网状模型间接表示多对多联系 方法将多对多联系直接分解成一对多联系,网状模型的数据操纵,查询 插入 删除 更新,网状数据模型的完整性约束,网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的
45、完整性约束 码 双亲节点与子女节点之间是一对多联系 允许插入尚未确定双亲节点值的子女节点值 允许只删除双亲节点值,网状数据模型的存储结构,关键 实现记录之间的联系 常用方法 单向链接 双向链接 环状链接 向首链接 例:P29,网状模型的优缺点,优点 能够更为直接地描述现实世界,如一个节点可以有多个双亲 具有良好的性能,存取效率较高 缺点 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握 DDL、DML语言复杂,用户不容易使用,关系模型,用二维表来表示实体集之间关系以及实体集属性之间关系的形式模型。,关系模型的基本概念,关系(Relation) 一个关系对应
46、通常说的一张表。 元组(Tuple) 表中的一行即为一个元组。 属性(Attribute) 表中的一列即为一个属性,给每一个属性起一个 名称即属性名。,关系模型的基本概念,主码(Key) 表中的某个属性组,它可以唯一确定一个元组。 域(Domain) 属性的取值范围。 分量 元组中的一个属性值。 关系模式 对关系的描述 关系名(属性1,属性2,属性n) 学生(学号,姓名,年龄,性别,系,年级),关系数据模型的数据结构,实体及实体间的联系的表示方法 实体型:直接用关系(表)表示。 属性:用属性名表示。 一对一联系:隐含在实体对应的关系中。 一对多联系:隐含在实体对应的关系中。 多对多联系:直接用
47、关系表示。,关系数据模型的数据结构(续),例1 学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级) 系 (系号,系名,办公地点)例2 系、系主任、系与系主任间的一对一联系 系 (系号,系名,系主任),关系数据模型的数据结构(续),例3,学生、课程、学生与课程之间的 多对多联系:学生(学号,姓名,年龄,性别,系号,年级) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),关系数据模型的数据结构(续),关系必须是规范化的,满足一定的规范条件 最基本的规范条件(1NF):关系的每一个分量必须是一个不可分的数据项。,关系模型的数据操纵,查询、插入、删除、更新 数据操
48、作是集合操作,操作对象和操作结果都是关系,即若干元组的集合 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”,关系模型的完整性约束,实体完整性 参照完整性 用户定义的完整性,关系数据模型的存储结构,表以文件形式存储有的DBMS一个表对应一个操作系统文件有的DBMS自己设计文件结构,关系模型的优缺点,优点 建立在严格的数学概念的基础上 概念单一。数据结构简单、清晰,用户易懂易用 实体和各类联系都用关系来表示 对数据的检索结果也是关系 关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作,关系模型的优缺点(续),缺点 存取路径对用户透明导致查询效率往往不如非 关系数据模型为提高性能,必须对用户的查询请求进行优化 增加了开发数据库管理系统的难度,