1、基基 础础 知知 识识 第一章 数据库系统概论 数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性和安全控制机制,能够保证数据的安全、可靠,并允许并发地使用数据库,及时、有效地处理数据,且能保证数据的一致性和完整性。1.1 数据库技术发展数据库技术发展1.1.1 数据处理技术的演变 数据管理是数据库的核心任务,其内容包括对数据的分类、组织、编码、储存、检索和维护。数据库技术随着计算机硬件和软件的发展而不断地发展。数据管理共经历了人工管理阶段、文件系统阶段和数据库系统阶段三个阶段。20世纪50年代中期以前 数据和程序之间的关系人工管理
2、阶段的特点:(1)数据不保存(2)数据缺乏管理软件(3)数据冗余度高应用程序 1应用程序 2应用程序 n数据组1数据组 2数据组 n1.人工管理阶段 20世纪50年代后期到60年代中期:不仅用于科学计算,还大量应用于管理数据。2文件系统管理阶段文件系统管理阶段的特点:1 数据冗余度大 2 数据不一致 3 程序和数据具有物理独立性,但不具有逻辑独立性程序和数据之间的关系 应用程序1应用程序2应用程序n文件系统文件1文件2文件n 3.数据库系统阶段 20世纪60阶段年代后期,数据库中的数据面向整个企业(组织)或整个应用的。数据库系统阶段特点(1)使用复杂的数据模型来表示结构(2)具有很高的数据独立
3、性(3)数据共享度高、冗余度小应用程序1应用程序2应用程序n数 据 库管 理 系统数据库数据和程序之间的关系 20世纪60年代末 1.1968年美国IBM公司推出世界上第一个数据库管理系统IMS,基于层次模型 2.1969年美国数据系统语言协会(CODASYL)的数据库任务组DBTG(DataBase Task Group)发表了网状数据模型的DBTG报告 3.1970年美国IBM公司的高级研究员E.F.Code连续发表论文,提出关系数据模型,奠定了关系数据库的理论基础1.1.2 数据库系统的发展过程1.2.1基本概念数据及数据联系的描述 1.数据模型的概念数据模型是数据库系统的数学形式框架,
4、是用来描述数据的一组概念和定义,包括如下几个方面的内容:数据的静态特征,包括对数据结构和数据间联系的描述数据的动态特征,是一组定义在数据上的操作,包括操作的含义、操作符、运算规则及其语言等数据的完整性约束,这是一组规则,数据库中的数据必须满足这组规则。数据模型的类型:1.2 数数 据据 模模 型型(1)概念数据模型(conceptual data model):这是面向数据库用户的现实世界的数据模型,与具体的DBMS无关。概念数据模型主要用来描述现实世界的概念化结构,它使数据库的设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据、数据间联系等。概念模型必须转换成逻辑数据模
5、型,才能在DBMS中实现。最常用的概念模型是E-R模型。它是将现实世界的信息结构转换成数据库的数据模型的桥梁。(2)逻辑数据模型(logical data model):用户从数据库所看到的数据模型,是具体的DBMS所支持的数据模型。如网状数据模型、层次数据模型、关系数据模型和面向对象数据模型等。逻辑数据模型既要面向用户,也要面向系统,一般由概念模型转换而来。(3)物理数据模型(physical data model):描述数据在存储介质上的组织方式的数据模型,它不仅与具体的DBMS有关,而且与操作系统和硬件有关。每一种逻辑数据模型在实现时都有对应的物理数据模型,一般说来都由DBMS自动完成物
6、理数据模型的实现工作,设计者则只负责设计索引、聚集等特殊结构。2.其他相关概念(1)现实世界 现实世界是指存在于人脑之外的客观世界。现实世界是客观存在的。(2)概念世界 概念世界又称信息世界,是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述。它不是现实世界的简单复制,而要经过选择、命名、分类等抽象过程产生概念模型。概念模型是现实世界到机器世界必然经过的中间层次。实体:客观存在并可相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件,还可以是事物之间的联系。属性:用来描述实体的某一方面特性的概念。实体标识符:如果某个属性或属性组合的值能够惟一地标识出实体集中的每一个实体,
7、则可以选择该属性或属性组合作为实体标识符。联系(Relationship):现实世界中的事物是存在普遍联系的。两类联系:实体内部各属性之间的联系。和实体之间的联系。(3)机器世界字段(field):相应于属性的数据称为字段,或者叫数据项,又叫数据元素或初等项。记录(record):相应于每一实体的数据叫记录。文件:相应于实体集的叫文件,它是同类记录的集合。记录型:相应于实体型的为记录型。关键字:相应于实体标识符的为关键字,关键字又称为码。上述概念对应关系如下:信息世界 机器世界 实 体 记 录 属 性 字 段 实 体 集 文 件 实 体 型 记录型 实体标识符 关键字1.E-R模型的目的(1)
8、企图建立一个统一的数据模型,以概括三种传统数据模型(层次模型、网状模型和关系模型);(2)作为三种传统模型之间互相转换的中间模型;(3)作为超脱DBMS的一种概念数据模型,以比较自然的方式模拟现实世界。E-R模型不同于传统数据模型,它不是面向实现的,而是面向现实世界的。设计E-R模型的出发点是有效和自然地模拟现实世界,而不是首先考虑它在机器中如何实现。1.2.2 概念数据模型(概念数据模型(E-R模型)(模型)(Entity-Relation)2.E-R图三要素 实体 联系 属性3.三种联系方式 设A、B为两个实体集。(1)一对一联系(1:1)若A中的每个实体至多和B中的一个实体有联系,反过来
9、B中的每个实体至多和A中的一个实体有联系,称A和B是1:1联系。(2)一对多联系(1:n)如果A中的每个实体可以和B中的几个实体有联系,而B中的每个实体至多和A中的一个实体有联系,那么A对B属于1:n联系。(3)多对多联系(m:n)若A中的每个实体可与B中的多个实体有联系,反过来B中的每个实体也可以与A中的多个实体有联系,则称A对B或B对A是多对多联系(m:n)(4)ER图设计 1)真实性 2)简单性原则 3)实体与属性确定规则 a.作为属性,不能再具有需要描述的信息,属性必须是不可再分的数据项,不能包含有其它属性。b.属性不能与其它实体具有联系,在E-R图中,只有实体与实体之间才能有联系。1
10、.层次模型 层次模型(Hierarchical Model)是用树型结构来表示实体之间联系的模型。它可以看作是一棵以记录型为结点的有向树,它把整个数据库的结构表示成一个有序树的集合,而这些有序树的每一个结点是一个有若干数据项组成的逻辑记录型。在层次模型中,数据是按层次路径存取的。层次模型是一种简单的模型,只能表示一对多的联系,无法描述复杂的联系,表达能力弱,所以适用范围受限。1.2.3 逻辑数据模型逻辑数据模型 教务管理系统的层次模型学生学号姓名性别年龄课号课程名学时教师编号姓名职称教师专业代号专业名专业系学院学院代号 学院名 负责人系号负责人系名 2.网状模型 在网状模型中子女到双亲的联系不
11、是惟一的,即在网状模型中可以很容易实现多对多的联系,可以描述更复杂的现实世界。在网状模型中给每一对父结点与子结点之间的联系都要指定名字,这种联系称为系。系中的父结点称为首记录型或主记录型,子记录型称为属记录型。网状模型的主要缺点是数据结构本身及其相应的数据操作语言都极为复杂。一般说来,结构越复杂,则其功能越强,所要处理的操作也越多,因此相应的数据操作语言也就越复杂。而且由于其结构复杂,给数据库设计带来了困难。3.关系模型 关系模型是通过表格数据,而不是通过指针连接来表示和实现两个实体间的联系。(1)关系具有如下属性:表格中的每一列都是不可再分的基本属性;各列的名字不同,列的顺序不重要;行的次序
12、无关紧要;关系中不允许有完全相同的两行存在。(2)关系模型具有以下特点:1)描述的一致性。2)利用公共属性连接。3)结构简单直观。4)有严格的理论基础。5)语言表达简练。员工编码 姓名 部门 性别 职务 50002文明办公室男科员60003李翔风人事科男科长70004张晓风财务科女科员70005王莉勤后勤处女处长 将关系名及其属性名集合称为关系模式,具体的关系将关系名及其属性名集合称为关系模式,具体的关系是实例。是实例。在支持关系模型的数据库中,数据被看作是一个个的在支持关系模型的数据库中,数据被看作是一个个的关系,描述数据库全部关系的一组关系模式称为关系关系,描述数据库全部关系的一组关系模式
13、称为关系数据库的数据库模式。任何时刻数据库的所有具体的数据库的数据库模式。任何时刻数据库的所有具体的关系组成关系数据库的一个实例。关系组成关系数据库的一个实例。关系模型具有以下特点:(1)描述的一致性。无论是信息世界中的实体还是联系都是用一个关系来描述,保证了数据操作语言相应的一致性,对于每一种基本操作功能,都只需要一种操作运算。(2)利用公共属性连接。关系模型中的各个关系之间都是通过公共属性发生联系的。(3)结构简单直观。采用表结构,用户容易理解,有利于和用户进行交互,并且在计算机中实现也极为方便。(4)有严格的理论基础。二维表的数学基础是关系数据理论,对二维表进行的数据操作相当于在关系理论
14、中队(对?)关系进行运算。这样,在关系模型中整个模型定义与操作均建立在严格的数学理论基础上。(5)语言表达简练。在进行数据库查询时,用严密的关系运算表达式来描述查询,从而使查询语句的表达非常简单直观。关系模型的缺点是在执行查询操作时,需要执行一系列的查表、拆表、并表操作,故执行时间较长,但是采用优化技术的当代关系数据库系统的查询操作的效率,完全不输于建立在其他数据模型上的数据库系统。4.三种数据模型的比较 比较的标准:(1)使用容易程度(2)实现效率 就使用方便来说,关系模型是最佳的。从实现效率来看,层次模型和网状模型要优于关系模型。1.3 数据库系统的结构 数据库系统是一个复杂的系统,因为数
15、据库系统不仅是指数据库和数据库管理系统本身,而且是指计算机系统引进数据库技术后的整个系统,是数据、硬件、软件和相关人员的组合体。数据库系统的五个部分组成:硬件资源 软件资源 数据库结构 数据库管理员 用户应用程序应用程序应用程序数据库管理系统(DBMS)数据库管理员(DBA)数据库用户1.硬件资源数据库系统的硬件资源包括CPU、内存、磁盘、磁带及其他外部设备等。2.系统软件数据库系统软件包括:操作系统(OS),如DOS系统,UNIX系统,Windows系统及LINIX系统等。数据库管理系统(DBMS)如FoxPro、Oracle、Ingres、Sybase等。高级语言编译系统,如利用Fortr
16、an、C+、VB等。其核心为DBMS。3.数据库体系结构数据库系统的三级模式结构:用户级数据库:用户看到和使用的数据库,所以也称为用户视图,又称为子模式、外模式、用户模式等。概念级数据库:DBA(数据库管理员)看到的数据库,因此也称为DBA视图,又称为模式。物理级数据库:数据在数据库系统内部的表示,即对数据的物理结构和方式的描述。又称为存储模式、内模式 4.数据库管理员主要职责包括:负责数据库核心及其开发工具的安装及升级;为数据库系统分配存储空间并规划未来的存储需求;协助开发者建立基本的对象(表、视图、索引);负责注册用户并维护系统的安全性;负责数据库系统的备份和恢复。5.用户专业用户最终用户
17、5.DBMS DBMS是对数据库进行定义、管理、维护和检索的一个软件系统。DBMS总是基于某种数据模型的,因此,可以把它看成是某种数据模型在计算机系统上的具体实现。(1)DBMS的功能数据库的定义数据库的操作及查询优化数据库的控制运行数据库的恢复和保护数据库的数据管理(2)数据库管理系统的工作过程 状态工作区应用程序ADBMS应用程序A外模式应用程序B外模式概念模式内模式OS系统缓冲区数据库外部记录存储记录图2.13 数据库存取的过程(3)DBMS的选择 选择DBMS之前,数据库设计者需要确定数据库应用系统对DBMS的要求,这些要求包括如下几个方面:(1)数据库管理系统的类型,如是专用DBMS
18、还是通用DBMS等。(2)DBMS所支持的数据库的规模以及数据量(3)数据库的安全性、完整性、恢复及并发控制的能力(4)数据独立性程度(5)数据库终端用户的类型、联机处理特性、数据处理特性以及对数据语言的要求。(7)系统开发和数据库利用的难易。如提供哪些开发工具、主语言、DML的功能、终端语言等。(8)监测数据库性能的能力(9)提供DBMS的厂商所能提供的支持 1.4.1 概述 数据库的保护涉及到三个方面的问题,即数据库的私用性(Privacy)、安全性(Security)和完整性(Integrity)。私用性是指一定的数据和对这些数据的某些操作,只对特定的用户开放,由某些用户专用(独享)。安
19、全性主要是指对数据的存取控制(Access Control)。防止未经授权的人员非法存取他不该存取的数据,防止数据泄密,防止数据被破坏。完整性是指保证数据的正确与一致,使数据库中的数据在任何时刻都是有效的。1.4 数据库的完整性与安全性数据库的完整性与安全性1.4.2 数据的完整性约束 数据库的完整性包含三个方面的含义:数据的正确性(correctness)、准确性(Accuracy)和有效性(Validity)。一致性(consistency)是指数据库中两个以上的数据的互相相容的要求。完整性受到破坏的原因:(1)错误的数据(2)错误的更新操作(3)各种软硬件故障(4)并发访问(5)人为破坏
20、 完整性控制最核心的元素是完整性约束条件。完整性约束条件作用的对象可以是属性、元组、关系等几种对象。对属性的约束主要指对其取值类型、精度、范围等的约束条件。对元组的约束是指对记录中各字段之间的联系的约束。对关系的约束是指对若干记录间、关系间的联系的约束。静态约束就是反映数据库状态合理性的约束。动态约束则是反映数据库从一个状态变为另一个状态时应遵守的约束。(1)完整性约束说明 隐式约束:主键约束 外键约束 非空约束 数据类型说明 显式约束:用过程说明约束 CHECK约束 用断言说明 用触发器表示约束 1.4.3数据库的安全性1.DBMS安全模型登录用户角色权限对象2.视图视图 视图技术是当前数据
21、库技术中保护数据库安全性的重视图技术是当前数据库技术中保护数据库安全性的重要手段之一。要手段之一。3.访问控制访问控制 (1)权限和角色)权限和角色 (2)授权授权4.数据密码数据密码5.跟踪审计跟踪审计 1.事务:数据库环境中的一个逻辑工作单元。由一系列事务:数据库环境中的一个逻辑工作单元。由一系列操作组成,这些操作要么全部成功完成,要么全部失败。操作组成,这些操作要么全部成功完成,要么全部失败。事务是数据库系统工作的基本单位,相当于操作系统的事务是数据库系统工作的基本单位,相当于操作系统的进程。进程。长事务长事务短事务短事务事务的特性:事务的特性:ACID性质性质(1)原子性()原子性(A
22、tomicity)(2)一致性()一致性(Consistency):对数据库的每一个更新):对数据库的每一个更新操作,都必须遵守一定的完整性约束。操作,都必须遵守一定的完整性约束。1.4.3 并发控制并发控制(3)隔离性()隔离性(Isolation)是指两个或多个事务可以同时运行而不互相影响,一是指两个或多个事务可以同时运行而不互相影响,一个事务内部的操作及其使用的数据对并发的其他事务个事务内部的操作及其使用的数据对并发的其他事务是隔离的、不可见的。是隔离的、不可见的。(4)持久性()持久性(Durability)事务的持久性是一个事务的成功完成之后,其工作的事务的持久性是一个事务的成功完成
23、之后,其工作的结果就会永远保存在数据库中,使永久有效的。结果就会永远保存在数据库中,使永久有效的。2.并发异常并发异常(1)丢失更新)丢失更新当两个事务当两个事务T1和和T2同时更新某条记录时,它们读取记录并修改。事同时更新某条记录时,它们读取记录并修改。事务务T2提交的结果将破坏提交的结果将破坏T1提交的结果,导致提交的结果,导致T1的修改结果丢失的修改结果丢失(2)脏数据)脏数据“脏脏”数据是指事务数据是指事务T1修改某一条记录,将其写入数据库,事务修改某一条记录,将其写入数据库,事务T2读取同一条记录后,读取同一条记录后,T1由于某种原因被撤销,此时由于某种原因被撤销,此时T1已修改过的
24、已修改过的数据恢复原值,但数据恢复原值,但T2读到的数据却和数据库中的数据不一致了,读到的数据却和数据库中的数据不一致了,这个数据被称为这个数据被称为“脏脏”数据。数据。(3)不可重复读)不可重复读 事务事务T1读取数据后,事务读取数据后,事务T2对同一数据执行更新操作,使对同一数据执行更新操作,使T1再次再次读取该数据时,得到与前一次不同的值。读取该数据时,得到与前一次不同的值。(4)幻影数据)幻影数据 事务事务T1按一定条件从数据集中读取数据后,事务按一定条件从数据集中读取数据后,事务T2对该数据集删对该数据集删除或插入了一些记录,这时事务除或插入了一些记录,这时事务T1再按相同条件读取数
25、据时,发再按相同条件读取数据时,发现少了或多了一些记录。现少了或多了一些记录。3.锁在操作前先对数据对象加锁 排他锁(排他锁(X封锁)封锁)共享锁(共享锁(S封锁)封锁)锁的粒度:封锁目标的大小锁的粒度:封锁目标的大小 死锁死锁 为了预防死锁的发生,可以参照下述方式进行:按照统一顺序访问资源 避免事务中的用户交互 保持事务简短1.5.1 Access Access的特点:1对资源要求不高,适应性强。2数据共享性好。3可方便地与Internet连接,利用因特网与任一节点交流信息。4Access的数据类型有Binary、Bit、Byte、Counter、Currency、Datetime、Sing
26、le、Double、Short、Long、Text、Longtext、Longbinary等13种。其中,Longtext可以链接1.2GB的数据;Longbinary也能链接多媒体对象;可以用guid实现超级链接。1.5 关系数据库管理系统实例关系数据库管理系统实例1.5.2 Oracle 目前,Oracle产品覆盖了大、中、小型机几十中计算机系统,成为世界上使用非常广泛的、著名的关系数据库管理系统。Oracle系统的特点(1)兼容性。(2)可移植性。(3)可联结性。(4)高生产率。1.6 数据库技术新发展1 分布式数据库分布式数据库系统是在两台或多台地理上或物理上分散而逻辑上集中的数据库系
27、统。管理这样的数据库系统的软件称为分布式数据库管理系统(DDBMS)。2 面向对象数据库系统面向对象(OO,Object-Oriented)数据库系统是数据库技术与面向对象技术相结合的产物,它是数据库的应用从传统的商业或管理中的事务处理扩展到CAD、CAM及CIMS、CAI和办公自动化等新的领域的需要而产生和发展起来的。3 多媒体数据库能够管理数值、文件、表格、图形、图像、声音等多媒体的数据库称为多媒体数据库(MDB)。4 数据仓库、联机分析处理和数据挖掘数据仓库、联机分析处理技术和数据挖掘是三种独立的信息处理技术。数据仓库用于数据存储和组织,联机分析处理集中于数据分析;数据挖掘则致力于知识的自动发现。它们可以分别应用到信息系统的涉及和实现中,以提高相应部分的处理能力。