1、第1章 数据库概论 本章的重要概念(一)(1)DB、DBMS和DBS的定义(2)数据管理技术的发展阶段人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库技术阶段等各阶段的特点。(3)数据描述概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。本章的重要概念(二)(4)数据模型数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。(5)DB的体系结构三级结构,两级映象,两级数据独立性,体系结构各个层次中记录的联系。(6)DBMS DBMS的工作模式、主要功
2、能和模块组成。(7)DBSDBS的组成,DBA,DBS的全局结构,DBS结构的分类。前 言 从20世纪50年代中期开始,计算机的应用由科学研究部门逐渐扩展到企业、行政部门。至60年代,数据处理已成为计算机的主要应用。在60年代末,数据库技术作为数据处理中的一门新技术发展起来的。经过30多年的发展,数据库技术已是计算机软件领域的一个重要分支,形成了较为完整的理论体系和实用技术。本章先回顾数据管理技术的发展过程,然后介绍数据库中的基本概念,以使读者对数据库的概貌有所了解。1.1 引言v1963年,美国Honeywell公司的IDS(Integrated Data Store)系统投入运行,揭开了数
3、据库技术的序幕。v20世纪70年代是数据库蓬勃发展的年代,网状系统和层次系统占据了整个数据库商用市场,而关系系统仅处于实验阶段。v20世纪80年代,关系系统由于使用简便以及硬件性能的改善,逐步代替网状系统和层次系统占领了市场。v20世纪90年代,关系数据库已成为数据库技术的主流。v进入21世纪以后,无论是市场的需求还是技术条件的成熟,对象数据库技术、网络数据库技术的推广和普及已成定局。1.1.1 数据和信息v数据是数据库系统研究和处理的对象。数据与信息十分不开的,它们既有联系又有区别。v所谓数据,通常指用符号记录下来的、可以识别的信息。v信息与数据之间存在着固有的联系:数据是信息的符号表示或称
4、为载体;信息则是数据的内涵,是对数据语义的解释。1.1.2 数据处理与数据管理 v数据处理是指从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。v数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。v数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。1.1.3 数据库技术的基本术语(一)v定义定义1.1 数据库(数据库(Database,简记为,简记为DB)DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DB能为各种用户共享,具有较小冗
5、余度、数据间联系紧密而又有较高的数据独立性等特点。1.1.3 数据库技术的基本术语(二)v定义定义1.2 数据库管理系统(数据库管理系统(Database Management System,简记为,简记为DBMS)DBMS是位于用户与操作系统(OS)之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。DBMSOSDB 用户1.1.3 数据库技术的基本术语(三)v定义定义1.3 数据库系统(数据库系统(Database System,简记为简记为DBS)DBS是实现有
6、组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。v定义定义1.4 数据库技术数据库技术是研究数据库的结构、存储、设计、管理和使用的一门软件学科。1.2 数据库的由来和发展v磁盘容量的发展磁盘容量的发展v数据管理技术的发展经历了人工管理、文件系统、数据库阶段和高级数据库阶段。时间(年)19561965197119781981198519952003容量(MB轴)53010060012005000100001800001.2.1 人工管理阶段v在人工管理阶段(20世纪50年代中期以前),计算机主要用于科学计算,其他工作还没有展
7、开。外部存储器只有磁带、卡片和纸带等,还没有磁盘等字节存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理的方式基本上是批处理。v人工管理阶段的数据管理有下列特点:人工管理阶段的数据管理有下列特点:数据不保存在计算机内。没有专用的软件对数据进行管理。只有程序(program)的概念,没有文件(file)的概念。数据的组织方式必须由程序员自行设计与安排。数据面向程序。即一组数据对应一个程序。1.2.2 文件系统阶段(一)v在这一阶段(20世纪50年代后期至60年代中期),计算机不仅用于科学计算,还用于信息管理。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据
8、管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取存储设备。软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存的数据管理软件。数据处理的方式有批处理,也有联机实时处理。1.2.2 文件系统阶段(二)v文件系统阶段的数据管理有以下特点:文件系统阶段的数据管理有以下特点:数据以“文件”形式可长期保存在外部存储器的磁盘上。数据的逻辑结构与物理结构有了区别,但比较简单。文件组织已多样化。有索引文件、链接文件和直接存取文件等。数据不再属于某个特定的程序,可以重复使用,即数据面向应用。对数据的操作以记录为单位。v随着数据管理规模的扩大,数据量急剧增加,文件系统显露随着数据管理
9、规模的扩大,数据量急剧增加,文件系统显露出三个缺陷:出三个缺陷:数据冗余(redundancy)数据不一致(inconsistency)数据联系弱(poor data relationship)1.2.3 数据库阶段(一)v数据管理技术进入数据库阶段的标志是数据管理技术进入数据库阶段的标志是20世纪世纪60年代末的三件大事:年代末的三件大事:1968年美国IBM公司推出层次模型的IMS系统。1969年美国CODASYL组织发布了DBTG报告,总结了当时各式各样的数据库,提出网状模型。1970年美国IBM公司的E.F.Codd 连续发表论文,提出关系模型,奠定了关系数据库的理论基础。1.2.3
10、数据库阶段(二)v数据库阶段的数据管理具有以下特点:数据库阶段的数据管理具有以下特点:采用数据模型表示复杂的数据结构。有较高的数据独立性。数据库系统为用户提供了方便的用户接口。数据库系统提供以下四方面的数据控制功能:数据库的并发控制,数据库的恢复,数据的完整性和数据安全性。增加了系统的灵活性 1.2.3 数据库阶段(三)v数据库系统的结构数据库系统的结构1.2.3 数据库阶段(四)v程序和数据间的联系程序和数据间的联系 v文件系统阶段信息处理的传统方式文件系统阶段信息处理的传统方式1.2.3 数据库阶段(五)v数据库阶段信息处理方式的演变数据库阶段信息处理方式的演变 1.2.4 高级数据库技术
11、阶段(一)v分布式数据库系统主要有下面三个特点分布式数据库系统主要有下面三个特点数据库的数据物理上分布在各个场地,但逻辑上是一个整体。每个场地既可以执行局部应用(访问本地DB),也可以执行全局应用(访问异地DB)。各地的计算机由数据通信网络相联系。本地计算机单独不能胜任的处理任务,可以通过通信网络取得其它DB和计算机的支持。1.2.4 高级数据库技术阶段(二)v分布式数据库系统 1.2.4 高级数据库技术阶段(三)v对象数据库系统主要有以下两个特点对象数据库系统主要有以下两个特点 对象数据模型能完整地描述现实世界地数据结构,能表达数据间嵌套、递归的联系。具有面向对象技术的封装性(把数据与操作定
12、义在一起)和继承性(继承数据结构和操作)的特点,提高了软件的可重用性。v网络数据库系统网络数据库系统 1.3 数据描述在数据处理中,数据描述将涉及到不同的范畴。从事物的特性到计算机中的具体表示,实际上经历了三个阶段概念设计中的数据描述、逻辑设计中的数据描述和物理设计中的数据描述。本节先介绍这三个阶段的数据描述,再介绍数据之间联系如何描述。1.3.1 概念设计中的数据描述v实体(实体(entity):):客观存在,可以相互区别的事物称为实体。v实体集(实体集(entity set):):性质相同的同类实体的集合,称为实体集。v属性(属性(attribute):):实体有很多特性,每一个特性称为属
13、性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。v实体标识符(实体标识符(identifier):):能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键。1.3.2 逻辑设计中的数据描述(一)v字段(字段(field):):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。v记录(记录(record):):字段的有序集合称为记录。v文件(文件(file):):同一类记录的集合称为文件。v关键码(关键码(key):):能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。1.3.2
14、 逻辑设计中的数据描述(二)v术语的对应关系术语的对应关系 概念设计逻辑设计 实体 记录 属性 字段(数据项)实体集 文件 实体标识符 关键码1.3.3 物理设计中的数据描述v位(位(bit,比特):,比特):一个二进制位称为“位”。一位只能取0或1两个状态。v字节(字节(byte):):8个比特称为一个字节,可以存放一个字符所对应的ASCII码。v字(字(word):):若干个字节组成一个字。一个字所含的二进制位的位数称为字长。v块(块(block):):又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为210214字节。v桶(桶(bucket):):外存的逻辑单位
15、,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。v卷(卷(volume):):一个输入输出设备所能装载的全部有用信息,称为“卷”。1.3.4 数据联系的描述(一)v定义定义1.5 联系(联系(relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。v定义定义1.6 二元联系有以下三种类型:二元联系有以下三种类型:一对一联系:一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。一对多联系:一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多
16、个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。多对多联系:多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。1.3.4 数据联系的描述(一)v例例1.1 图1.8 一对一联系图1.9 一对多联系1.3.4 数据联系的描述(一)v例例1.1图1.10 多对多联系1.3.4 数据联系的描述(二)v例例1.2 图1.11 三元联系图1.12 一元联系1.4 数据模型的定义 v定义定义1.7 数据模型的简单定义数据模型的简单定义:
17、能表示实体类型及实体间联系的模型称为“数据模型”。概念数据模型和逻辑数据模型。v定义定义1.8 逻辑数据模型应包含数据结构、数据操作和数据逻辑数据模型应包含数据结构、数据操作和数据完整性约束三个部分:完整性约束三个部分:数据结构是指对实体类型和实体间联系的表达和实现;数据操作是指对数据库的检索和更新(包括插入、删除和修改)两类操作;数据完整性约束给出数据及其联系应具有的制约和依赖规则。1.4.2实体联系模型(一)v定义定义1.9,ER图有三个基本成分:图有三个基本成分:矩形框,用于表示实体类型(考虑问题的对象)。菱形框,用于表示联系类型(实体间联系)。椭圆形框,用于表示实体类型和联系类型的属性
18、。1.4.2实体联系模型(二)v例1.3 首先确定实体类型。本问题有三个实体类型:零件PART,工程项目PROJECT,零件供应商SUPPLIER。确定联系类型。PROJECT和PART之间是M:N联系,PART和SUPPLIER之间也是M:N联系,分别命名为P_P和P_S.把实体类型和联系类型组合成ER图。确定实体类型和联系类型的属性。确定实体类型的键,在ER图中属于码的属性名下画一条横线。1.4.2实体联系模型(三)图1.14 图1.14 ER图实例1.4.2实体联系模型(四)v例1.4 MMNN PROJECT SUPPLIER PART P_P_S PART SUBPART P图1.1
19、5 三元联系图1.16 一元联系1.4.3 层次模型v用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(Hierarchical Model)。v层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。v层次模型有两个缺点:一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。
20、1.4.4 网状模型v用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(network model)。v网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。v网状模型的缺点是数据结构复杂和编程复杂。1.4.5关系模型(一)v关系模型(Relational Model)的主要特征是用二维表格表达实体集。v与前两种模型相比,数据结构简单,容易为初学者理解。v关系模型是由若干个关系模式组成的集合。v关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。1.4.5关系模型(二)v例1.7 图1.21
21、关系模型的例子PART模式(P#,PNAME,COLOR,WEIGHT)PROJECT模式(J#,JNAME,DATE)SUPPLIER模式(S#,SNAME,SADDR)P_P模式(J#,P#,TOTAL)P_S模式(P#,S#,QUANTITY)1.4.5关系模型(三)100S2P4BEIJINGFADCS2300S2P3SHANGHAIPICCS1150S1P2SADDRSNAMES#200S2P2SUPPLIER关系100S1P191-3JCJ3QUANTITYS#P#90.5JBJ2P_S关系89.1JAJ118P3J1DATEJNAMEJ#25P3J2PROJECT关系65P2J1
22、19REDSCREWP46P3J312REDNUTP315P2J217GREENBOLTP250P1J114BLUESCREWP1TOTALP#J#WEIGHTCOLORPNAMEP#P_P关系PART关系100S2P4BEIJINGFADCS2300S2P3SHANGHAIPICCS1150S1P2SADDRSNAMES#200S2P2SUPPLIER关系100S1P191-3JCJ3QUANTITYS#P#90.5JBJ2P_S关系89.1JAJ118P3J1DATEJNAMEJ#25P3J2PROJECT关系65P2J119REDSCREWP46P3J312REDNUTP315P2J21
23、7GREENBOLTP250P1J114BLUESCREWP1TOTALP#J#WEIGHTCOLORPNAMEP#P_P关系PART关系1.4.6 对象模型(一)v对象(object)是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。v将属性集和方法集相同的所有对象组合在一起,构成了一个类(class)。1.4.6 对象模型(二)层次模型网状模型关系模型面向对象模型创始1968年IBM公司的IMS系统1969年CODASYL的DBTG报告(71年通过)1970年F.Codd提出关系模型20世纪80年代数据结构复杂(树结构)复杂(有向图结构)简单(二维表)复杂(嵌套递归)数据联系通过指
24、针通过指针通过表间的公共属性 通过对象标识查询语言过程性语言过程性语言非过程性语言面向对象语言典型产品IMSIDS/IMAGE/3000IDMSTOTALOracleSybaseDB2SQL ServerInformixONTOS DB盛行期20世纪70年代70年代至80年代中期80年代至现在90年代至现在图1.24 四种逻辑数据模型的比较1.5.1 数据库的三级体系结构(一)图1.25 三级模式结构1.5.1 数据库的三级体系结构(二)v数据的三级抽象术语 数据模型用数据定义语言描述的称呼DBTG报告中的称呼外部级外模型外模式子模式概念级概念模型概念模式模式内部级内模型内模式物理模式图1.2
25、6 数据抽象的术语1.5.1 数据库的三级体系结构(三)1.5.2 体系结构中的五个要素v定义1.10 概念模式(conceptnal schema)是数据库中全部数据的整体逻辑结构的描述。v定义1.11 外模式(external schema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。v定义1.12 内模式(internal schema)是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。v定义1.13 模式内模式映象存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。v定义1.14 外模式模式映象存在于外部级和概念级
26、之间,用于定义外模式和概念模式之间的对应性。1.5.3 两级数据独立性v定义1.15 数据独立性(data independence)是指应用程序和数据库的数据结构之间相互独立,不受影响。v数据独立性分成物理数据独立性和逻辑数据独立性两个级别。1.5.4 用户与用户界面v定义1.16 用户是指使用数据库的应用程序或联机终端用户。v定义1.17 用户界面是用户和数据库系统之间的一条分界线,在界限下面,用户是不可知的。用户界面定在外部级上,用户对于外模式是可知的。1.6.1 DBMS的工作模式(一)接受应用程序的数据请求和处理请求将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)实现对数
27、据库的操作从对数据库的操作中接受查询结果对查询结果进行处理(格式转换)将处理结果返回给用户图1.29 DBMS的工作模式1.6.1 DBMS的工作模式(二)用户访问数据的过程 图1.30 用户访问数据的过程1.6.2 DBMS的主要功能数据库的定义功能数据库的操纵功能数据库的保护功能数据库的维护功能数据字典1.6.3 DBMS的模块组成v查询处理器有四个主要成分:DDL编译器,DML编译器,嵌入式DML的预编译器及查询运行核心程序。v存储管理器有四个主要成分:权限和完整性管理器,事务管理器,文件管理器及缓冲区管理器。1.7.1 DBS的组成(一)vDBS是采用了数据库技术的计算机系统。DBS是
28、一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件和数据库管理员的集合体。vDB是与一个企业组织各项应用有关的全部数据的集合。v定义1.18 DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。1.7.1 DBS的组成(二)vDBA的主要职责有以下六点:定义模式定义内模式与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务。定义安全性规则,对用户访问数据库的授权。定义完整性规则,监督数据库的运行。数据库的转储与恢复工作。1.7.2 DBS的全局结构(一)图1.31 DBS的全局结构1.7.
29、2 DBS的全局结构(二)v数据库用户vDBMS的查询处理器 vDBMS的存储管理器 v磁盘存储器中的数据结构 1.7.3 DBS结构的分类v集中式DBS(centralized DBS)v客户机服务器式DBS(client/server DBS,记为C/S DBS)v并行式DBS(parallel DBS)v分布式DBS(distributed DBS)1.7.4 DBS的效益灵活性简易性面向用户有效的数据控制加快应用系统的开发速度维护方便标准化小 结(一)v数据管理技术经历了人工管理、文件系统、数据库和高级数据库技术等四个阶段。数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统
30、的三个缺陷:数据的冗余、不一致性和联系弱。v在数据库领域,应该准确使用术语,深刻了解实体间1:1、1:N和M:M三种联系的意义。小 结(二)v数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等方面内容。数据模型分成概念模型和结构模型两大类。前者的代表是实体联系模型,后者的代表是层次、网状、关系和面向对象模型。关系模型是当今的主流模型,面向对象模型是今后发展的方向。小 结(三)v数据库是存储在一起集中管理的相关数据的集合。数据库的体系结构是对数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,
31、减轻了用户使用系统的负担。由于三级结构之间往往差别很大,存在着两级映象,因此使DBS具有较高的数据独立性:物理数据独立性和逻辑数据独立性。小 结(四)v数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。vDBMS是位于用户与OS之间的一层数据管理软件。数据库语言分成DDL和DML两类。DBMS主要由查询处理器和存储管理器两大部分组成。vDBS是包含DB和DBMS的计算机系统。DBS的全局结构体现了DBS的模块功能结构。本章的重点篇幅(1)教材P23的图1.24(四种逻辑数据模型的比较)。(2)教材P25的图1.27(DB的体系结构)。(3)教材P29的图1.29(DBMS的工作模式)。(4)教材P34的图1.31(DBS的全局结构)。