第1章 数据库技术基础
当今社会是一个信息化的社会,数据库技术的发展,已经成为先进信息技术的重要组成部分。数据是信息的载体,数据库是互相关联的数据的集合。数据库技术的发展,归根结底是由实际应用需求推动的。目前,绝大多数的计算机应用系统都离不开数据库的支撑。大到一个国家,小到一个集团的内部,数据库的建设规模、数据库信息量的大小和使用频度已经成为衡量其信息化水平的重要标志。
数据库技术领域有其自身显著的特点,涉及相当多的理论及概念。本章将逐步引出这些概念,帮助读者从知晓概念到加深概念的理解。
1.1 关于数据库的基本术语
数据库技术涉及许多基本概念,其中,信息、数据、数据库、数据库系统、数据库管理系统是与数据库技术密切相关的5个基本概念,理解这些概念是学习数据库技术的前提。
1.1.1 信息与数据
数据库是计算机信息管理的基础,它的研究对象是数据,一提到数据,人们往往就会想到信息。但是数据并不是信息的本身。
一般认为,信息是对现实世界中不同事物的存在特征、运动形态以及不同事物间的相互联系等多种属性的描述,通过抽象形成概念。信息是可以被认识、理解、表达、加工、推理和传播的,诸如数字、文字、图像和声音等符号所表示的某一事物的消息和知识。
信息的表达必须借助于符号,数据是对事实和概念的描述,是表达信息的符号记录。在现实生活中,数据无处不在,文字、图像、声音、员工的档案记录等。例如,在员工的档案中,对于员工的基本信息,人们最感兴趣的是员工的工号、姓名、性别、出生日期、入职时间、所属部门,可以这样描述:
(1001,张洪,男,1983-1-5,2008-3-1,销售部)
上面的这条员工记录就是数据。数据本身并不能完全表达内容,一定要通过语义解释。了解语义的人会从上面的记录中得到:张洪是该公司销售部门的一名男职员,工号是1001,1983年1月5日出生,2008年3月1日入职。
可见,数据与信息是两个既有联系又有区别的概念,数据是信息的符号表示,信息则是数据的内涵,是对数据的语义解释。但是,在计算机领域,并不严格区分两者,一般统称“数据”。
1.1.2 数据库与数据库系统
数据库(Database,DB),顾名思义,就是存放数据的仓库,是一个长期存储在计算机内,相互联系的数据集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较少冗余和较高的数据独立性,允许多个用户共享使用,并且提供数据的安全性维护和完整性检查措施。
这里需要注意的是,数据库是具有逻辑关系的数据集合,逻辑上无关的数据集合不能称作数据库;数据库是对现实世界的描述,可以是一个单位或组织,其内部的某些改变应及时反映到数据库中。
数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DataBase Administrator,DBA)和用户构成。数据库系统可以用图1-1所示来表示。
图1-1 数据库系统
1.1.3 数据库管理系统
数据库管理系统(DataBase Management System,DBMS),是位于用户与操作系统之间的一层数据管理软件,是为了建立、使用和维护数据库而配置的系统软件,如Access、Microsoft SQL Server、Oracle等。它建立在操作系统的基础上,对数据库进行统一的管理和控制。主要功能如下:
1.数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL)对数据库中的数据对象进行定义,如对表、视图、索引、存储过程等进行的定义。
2.数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
3.数据库的运行管理
数据库在建立、运用和维护时由DBMS统一管理,统一控制,以保证数据的安全性、完整性和多用户对数据库使用的并发控制及发生故障后的系统恢复等。数据库的运行管理是DBMS的核心部分。
4.数据库的建立和维护功能
数据库的建立和维护包括初始数据的输入、转换,数据库的转储、恢复功能,数据库的重组织功能和性能检测分析功能等。
1.2 数据管理技术的发展
数据是一个单位或组织的重要资源,为了组织的长远发展,必须对组织的各种数据施行有效的管理。所谓数据管理,是指对数据进行收集、整理、存储、检索、加工和传递等一系列活动的总和。数据管理的最终目的是从数据中获取有用的信息,以服务于组织的管理工作。数据处理是数据管理的中心工作,将原始数据转换成信息的过程称作数据处理。
数据管理技术的发展是随着计算机硬件技术和软件技术的发展而不断发展起来的。计算机数据管理技术经历了人工管理阶段、文件系统阶段和数据库系统3个阶段。
1.2.1 人工管理阶段
20世纪50年代中期以前,计算机数据管理的能力很差,这一阶段称为人工管理阶段。此时计算机发展的年代特征是:硬件存储设备主要有磁带、卡片、纸带等;没有操作系统和专门管理数据的软件;数据处理方式是批处理;计算机主要用于科学计算。
在人工管理阶段,数据与程序之间是一对一的关系,如图1-2所示。
图1-2 人工管理阶段应用程序与数据之间的对应关系
人工管理阶段的缺点如下。
1.数据不保存
只是在计算某一具体题目时将数据输入,运行结束后得到输出结果,输入、输出和中间结果均不保存。
2.数据不共享,冗余度大
一组数据只对应一个应用程序,即使多个应用程序使用相同的数据,也要各自定义,不能共享,导致冗余度大。
3.数据缺乏独立性
数据与程序是紧密结合在一起的,数据的逻辑结构、物理结构和存取方式都由程序规定。没有文件的概念,数据的组织方式完全由程序员决定。
1.2.2 文件系统阶段
20世纪50年代后期到60年代中期,计算机数据管理技术进入到文件系统阶段。此时计算机发展的年代特征是:已经有了磁盘、磁鼓等直接存储的设备;出现了操作系统和专门的数据管理软件,称为文件系统;处理方式上不仅有批处理,还能够实现联机实时处理;计算机不仅用于科学计算,还广泛用于数据处理。
在文件系统阶段,文件系统把数据组织成文件形式存储在磁盘上,这些数据文件相互独立,长期保存在存储设备上。文件可以命名,应用程序利用“按文件名访问,按记录进行存取”的方式,对文件中的数据进行修改、插入和删除操作。
这一阶段的数据还是面向应用程序的,数据文件基本上与各自的应用程序相对应,如图1-3所示。
图1-3 文件系统阶段应用程序与数据之间的对应关系
文件系统阶段对数据的管理有了长足的进步,但它还是从应用程序的角度来组织、看待和处理数据的。这一阶段的缺点如下:
1.数据共享性差,数据的冗余度较大
文件系统提供了数据的物理独立性,实现了一定程度的数据共享,但只能实现文件级共享。文件的设计很难满足多种应用程序的不同要求,数据冗余不可避免。
2.数据存在不一致性
在文件系统中,没有维护数据一致性的监控机制,数据的一致性由用户自己维护。同一数据在多个地方同时存放,尤其在大型信息系统中,很容易造成不一致现象的发生。
3.数据的独立性差
文件系统只实现了数据的物理独立,而没有实现数据的逻辑独立。文件结构的每一处修改都将导致应用程序的修改。因此,文件系统的数据与程序之间缺乏逻辑独立性。
1.2.3 数据库系统阶段
20世纪60年代中后期开始,计算机数据管理技术进入到数据库系统阶段。此时计算机发展的年代特征是:硬件方面有了大容量的磁盘,软件方面出现了大量的系统软件;硬件的价格在下降,软件的价格在上升;在处理方式上,联机实时处理要求增多,并开始考虑和提出分布式处理。
为了解决多用户共享数据,使数据为尽可能多的应用服务,一种新的数据管理技术——数据库技术应运而生。数据库技术从20世纪60年代中期开始萌芽,至60年代末70年代初,数据库技术已经发展到成熟阶段。
与文件系统不同的是,数据库系统是面向数据的而不是面向程序的,各个处理功能通过数据管理软件从数据库中获取所需要的数据和存储处理结果。它克服了文件系统的弱点,为用户提供了一种方便、功能强大的数据管理手段。数据库系统阶段的数据处理过程如图1-4所示。
图1-4 数据库系统阶段的数据处理过程
数据库系统是在文件系统的基础上发展起来的新技术,与文件系统相比具有如下主要特点:
1.数据库系统以数据模型为基础
数据库设计的基础是数据模型。在进行数据库设计时,要站在全局需要的角度抽象和组织数据;要完整地、准确地描述数据自身和数据之间联系的情况;要建立适合整体需要的数据模型。
2.数据库系统的数据冗余度小,数据共享性高
由于数据库系统是从整体角度上看待和描述数据的,数据不再是面向某个应用,而是面向整个系统,所以数据库中同样的数据不会多次重复出现。这就使得数据库中的数据冗余度小,从而避免了由于数据冗余度大带来的数据冲突问题,也避免了由此产生的数据维护和数据统计错误等问题。
数据库系统通过数据模型和数据控制机制提高数据的共享性。数据共享度高会提高数据的利用率,它使得数据更有价值和更容易、方便地被使用。
3.数据库系统的数据和程序之间具有较高的独立性
由于数据库中的数据定义功能和数据管理功能是由DBMS提供的,所以数据对应用程序的依赖度大大降低,数据和程序之间具有较高的独立性。
4.数据库系统通过DBMS进行数据安全性和完整性的控制
数据的安全性控制是指保护数据库,以防止不合法的使用造成的数据泄露、破坏和更改。
数据的完整性控制是指为了保证数据的正确性、有效性和相容性,防止不符合语义的数据输入或输出所采用的控制机制。
5.数据库中数据的最小存取单位是数据项
在文件系统中,由于数据的最小存取单元是记录,结果给使用及数据操作带来许多不便。数据库系统改善了其不足之处,它的最小数据存取单位是数据项,即使用时可以按数据项或数据项组存取数据,也可以按记录或记录组存取数据。
1.3 数据模型
数据模型是数据库系统的核心,要为一个数据库建立数据模型,首先要深入到信息的现实世界中进行系统需求分析,用概念模型真实地、全面地描述现实世界中的管理对象及联系,然后再将概念模型转换成数据模型。
1.3.1 数据模型的概念及要素
模型是对现实世界特征的模拟和抽象,而数据模型是对现实世界数据特征的抽象,是一组描述数据、数据之间的联系、数据的语义和完整性约束的概念工具的集合。
现实世界的物质要在计算机中得以表示和处理,一般要经过两个阶段的抽象,从现实世界到信息世界的抽象,再从信息世界到计算机世界的抽象。下面先介绍这3个世界(领域)。
1.现实世界
现实世界泛指存在于人脑之外的客观世界。信息的现实世界是指我们要管理的客观存在的各种事物、事物之间的相互联系及事物的发生、变化过程。通过对现实世界的了解和认识,使得我们对要管理的对象、管理的过程和方法有个概念模型。认识信息的现实世界并用概念模型加以描述的过程称为系统分析。
2.信息世界
现实世界中的事物反映到人们的头脑里,经过认识、选择、命名、分类等综合分析而形成了印象和概念,从而得到了信息。当事物用信息来描述时,即进入了信息世界。信息世界最主要的特征是可以反映数据之间的联系。
3.计算机世界
信息世界中的信息,经过数字化处理形成计算机能够处理的数据,就进入了计算机世界。计算机世界也叫作机器世界或者数据世界。计算机世界是数据在计算机上的存储和处理,这些数据必须具有自己特定的数据结构,能够反映信息世界中数据之间的联系。
现实世界、信息世界和计算机世界这3个领域是由客观到认识、由认识到使用管理的3个不同层次,后一领域是前一领域的抽象描述。三者的转换关系如图1-5所示。
图1-53 个世界的联系和转换过程
从图中可以看出,现实世界的事物及联系,通过系统分析成为信息世界的概念模型,而概念模型经过数据化处理转换为数据模型。
数据模型的三要素是数据结构、数据操作和数据的约束条件3部分内容。
1.数据结构
数据结构描述的是数据库中的数据的组成、特性及其相互间联系。在数据库系统中,通常按数据结构的类型命名数据模型,如层次模型、网状模型、关系模型。数据结构是对系统静态特性的描述,是数据模型三要素中的首要内容。
2.数据操作
数据操作是对数据库中各种对象的实例允许执行的操作的集合,包括操作及操作规则。数据库的操作主要有检索、插入、删除、修改,操作规则有优先级别等。数据操作是对系统动态特性的描述。
3.数据的约束条件
数据的约束条件是一组完整性规则的集合,用于限定符合数据模型的数据库状态及变化,保证数据的完整性。
1.3.2 概念模型及表示
概念模型是对信息世界的管理对象、属性及联系等信息的描述形式。概念模型不依赖计算机及数据库管理系统,它是对现实世界的真实、全面反映。
1.信息世界的基本概念
(1)实体
现实世界中可以相互区分的能被人们识别的事物和概念称为实体(Entity)。实体可以是实实在在的物体,也可以是抽象的概念或联系。例如,一个学生、一台机器、一部汽车等是事物实体,一门课程、一个班级等称为概念实体。
(2)实体集
具有相同特征或能用同样特征描述的实体的集合称为实体集(Entity Set)。例如学生、汽车等都是实体集。实体集不是孤立存在的,实体集之间有着各种各样的联系,例如,学生和课程之间有“选课”联系。
(3)属性
属性(Attribute)是实体的某一方面特征的抽象表示。例如,学生可以通过学生的“学号”“姓名”“性别”“年龄”“政治面貌”等特征来描述。此时,“学号”“姓名”“性别”“年龄”“政治面貌”等就是学生的属性。
(4)属性值
属性值是属性的具体取值。例如,某一学生的学号为“09001”,姓名为“王刚”,性别为“男”,年龄为“20”,政治面貌为“党员”,这些具体的描述就称为属性值。
(5)域
属性的取值范围称为属性的域(Domain)。例如,学生的年龄为16~45的正整数,其数据域为(16~45)。
(6)码
能唯一标识实体的属性或属性集称为码(key),也可称为关键字。例如,学生的学号可以作为学生实体的码,学生的姓名则不一定可以作为学生实体的码,因为姓名可能重复。学生的选课情况实体集则要把学号和课程号的组合作为码。
2.概念模型的表示方法
概念模型是对信息世界的建模,应该能够全面、准确地描述出信息世界中的基本概念。概念模型的表示方法很多,其中最为著名和使用最为广泛的是P.P.Chen于1976年提出的实体—联系方法(Entity-Relationship Approach),简称E-R图法。该方法用E-R图来描述现实世界的概念模型,提供了表示实体集、属性和联系的方法。E-R图也称为E-R模型。在E-R图中:
1)用长方形表示实体集,长方形内写实体名。
2)用椭圆形表示实体集的属性,并用线段将其与相应的实体集连接起来。例如,学生具有学号、姓名、性别、年龄和所在系5个属性,用E-R图表示如图1-6所示。
图1-6 学生及属性的E-R图
由于实体集的属性比较多,有些实体可具有多达上百个属性,所以在E-R图中,实体集的属性可不直接画出。
3)用菱形表示实体集间的联系,菱形内写上联系名,多用动词描述。并用线段分别与有关实体集连接起来,同时在线段旁标出联系的类型。如果联系具有属性,则该属性仍用椭圆框表示,仍需要用线段将属性与其联系连接起来。例如,供应商、项目和零件之间存在有供应联系,该联系有供应量属性,如图1-7所示。
图1-7 实体间联系的属性及其表示
3.实体联系的类型
实体集之间的联系可概括为以下3种。
1)一对一联系(1:1)。设有两个实体集A和B,如果实体集A与实体集B之间具有一对一联系,则:对于实体集A中的每一个实体,在实体集B中至多有一个(也可以没有)实体与之联系;反之,对于实体集B中的每一个实体,实体集A也至多有一个实体与之联系。两实体集间的一对一联系记作1:1。例如,在一个工厂里面只有一个厂长,而一个厂长只能在一个工厂里任职,则工厂与厂长之间具有一对一联系。
2)一对多联系(1:n)。设有两个实体集A和B,如果实体集A与实体集B之间具有一对多联系,则:对于实体集A的每一个实体,实体集B中有一个或多个实体与之联系;而对于实体集B的每一个实体,实体集A中至多有一个实体与之联系。实体集A与实体集B之间的一对多联系记作1:n。例如,一个学校里有多名教师,而每个教师只能在一个学校里教学,则学校与教师之间具有一对多联系。
3)多对多联系(m:n)。设有两个实体集A和B,如果实体集A与实体集B之间具有多对多联系,则:对于实体集A的每一个实体,实体集B中有一个或多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中也有一个或多个实体与之联系。实体集A与实体集B之间的多对多联系记作m:n。例如,工厂里的一个职工可以参加多种体育组织,而一个体育组织也可以有多名职工,体育组织与职工之间具有多对多联系。
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。图1-8是用E-R图表示两个实体集之间的1:1、1:n和m:n联系的例子。
图1-8 两个实体集联系的例子
以上3种实体间的联系都是发生在两个实体集之间的。实际上,3个或3个以上实体集之间也可以同时发生联系。例如,图1-9a所示的教师、课程、参考书之间的联系,一门课程可以有若干教师讲授,一个教师只讲授一门课程;一门课程使用若干本参考书,每一本参考书只供一门课程使用。因此,课程与教师、参考书之间的联系是一对多的。又如,供应商、项目和零件之间的联系,一个供应商可以供给多个项目多种零件;每个项目可以使用多个供应商供应的零件;每种零件可由不同供应商供给。因此,供应商、项目、零件3个实体型之间是多对多的联系,如图1-9b所示。
图1-93 个实体集联系的例子
另外,在一个实体集的实体之间也存在一对一、一对多或多对多的联系。例如,职工是一个实体集,职工中有领导,而领导自身也是职工。职工实体集内部具有领导与被领导的联系,即某一个职工领导若干名职工,而一个职工仅被一个领导所管,这种联系是一对多的联系,如图1-10所示。
图1-10 同一实体集内的一对多联系实例
1.3.3 常用的数据模型
数据模型是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。数据库领域最常用的数据模型主要有4种,它们是层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)和面向对象的模型(Object Oriental Model)。
层次模型和网状模型统称非关系模型。非关系模型的数据库系统在20世纪70~80年代初非常流行,在当时的数据库产品中占据了主导地位。关系模型的数据库系统在20世纪70年代开始出现,之后发展迅速,并逐步取代了非关系模型数据库系统的统治地位。
20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等方面都产生了深远的影响,也促进了数据库中面向对象数据模型的研究和发展。
1.层次模型
层次模型是数据库系统中最早出现的逻辑数据模型,它用树型(层次)结构表示实体类型及实体间的关系。层次模型数据库系统的典型代表是IBM公司的IMS数据库管理系统,这是一个曾经广泛使用的数据库管理系统。
在数据库中,对同时满足以下两个条件的数据模型称为层次模型。
1)有且仅有一个节点无双亲,这个节点称为“根节点”。
2)其他节点有且仅有一个双亲。
层次模型是一棵倒置的树。在层次模型中,同一双亲的子女节点称为兄弟节点;没有子女的节点称为叶节点;双亲节点与其任意一个子女节点都构成一个基本层次关系,表示一对多的关系。
层次模型的优点:层次模型数据结构简单,对具有一对多的层次关系的描述自然、直观、易理解。
层次模型的缺点:上一层记录类型和下一层记录类型只能表示一对多的关系,无法实现多对多关系。
2.网状模型
网状模型是用有向图(网状结构)表示实体类型及实体之间联系的数据模型。网状数据模型的典型代表是DBTG系统,也称CODASYL系统,它是20世纪70年代美国数据系统语言研究会CODASYL(Conference On Data Systems Language)下属的数据库任务组DBTG(DataBase Task Group)提出的一个系统方案,对当时的数据库系统产生了巨大的影响。
网状模型同时满足以下两个条件。
1)有一个以上的节点没有双亲。
2)节点可以有多于一个的双亲。
网状模型的结构比层次模型的结构更具有普遍性,它允许多个节点没有双亲,也允许节点有多于一个的双亲。此外,网状模型还允许两个节点之间有多种联系。因而,网状模型可以更直接地去描述现实世界。
网状模型的优点:记录之间的联系通过指针实现,具有良好的性能,存取效率较高。
网状模型的缺点:随着应用环境的扩大,数据库的结构会变得越来越复杂,编写应用程序也会更加复杂。与层次模型一样,现在的数据库管理系统已经很少使用网状模型了。
3.关系模型
关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。关系模型是由美国IBM公司San Jose研究室的研究员E.F.Codd于1970年首次提出的。自20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都是支持关系模型的,非关系模型的产品也大都加上了关系接口。
(1)关系模型中的数据结构
关系数据模型建立在严格的数学概念的基础上。在关系模型中,数据的逻辑结构是一张二维表,它由行和列组成。下面以学生信息表(见表1-1)为例,介绍关系模型中的一些术语。
表1-1 学生信息表
1)关系:一个关系(Relation)对应通常所说的一张二维表,表1-1就是一个关系。
2)元组:表中的一行称为一个元组(Tuple),许多系统中把元组称为记录。
3)属性:表中的一列称为一个属性(Attribute),给每个属性起一个名称即属性名。上表中有5列,对应5个属性(学号,姓名,性别,年龄,所在系)。同一个表中的属性应具有不同的属性名。
4)码:表中的某个属性或属性组,它们的值可以唯一地确定一个元组,且属性组中不含多余的属性,这样的属性或属性组称为关系的码(Key)。在表1-1中,学号可以唯一确定一个学生,因而学号是学生信息表的码。
5)域:属性的取值范围称为域(Domain)。例如,大学生的年龄属性的域是(16~35),性别的域是(男,女)。
6)分量:元组中的一个属性值。
7)关系模式:关系的型称为关系模式(Relation Mode),关系模式是对关系的描述。关系模式一般的表示是:关系名(属性1,属性2,…,属性n)。
例如,学生信息表关系可描述为:学生信息(学号,姓名,性别,年龄,所在系)。
8)关系模型中的数据全部用关系表示。
在关系模型中,实体集以及实体间的联系都是用关系来表示的。
例如,关系模型中,学生、课程、学生与课程之间的多对多的联系可以用如下3个关系模式表示:
学生(学号,姓名,性别,年龄,所在系);
课程(课程号,课程名,先修课,学分);
选修(学号,课程号,成绩)。
关系模型要求关系必须是规范化的。所谓关系规范化是指关系模式要满足一定的规范条件。关系模范条件很多,但首要条件是关系的每一个分量必须是不可分的数据项。
(2)关系数据模型的数据操作
关系操作主要包括数据查询和插入、删除、修改数据。关系中的数据操作是集合操作,无论操作的原始数据、中间数据或结果数据都是若干元组的集合,而不是单记录的操作方式。此外,关系操作语言都是高度非过程化的语言,用户在操作时,只要指出“干什么”或“找什么”,而不必详细说明“怎么干”或“怎么找”。由于关系模型把存取路径对用户隐蔽起来了,使得数据的独立性大大提高;由于关系语言的高度非过程化,使得用户对关系的操作变得容易,提高了系统的效率。
(3)关系的完整性约束条件
关系的完整性约束条件包括3大类:实体完整性、参照完整性和用户定义的完整性。其具体含义将在后面介绍。
4.面向对象的模型
面向对象数据模型(简称OO模型)是面向对象程序设计方法与数据库技术相结合的产物。面向对象数据库系统支持面向对象数据模型。一个面向对象的数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个面向对象数据模型所定义的对象集合体。
一个面向对象数据模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系的模型。一切事物、概念都可以看作对象,对象对应的是信息世界中实体的概念。
面向对象数据模型能完整描述现实世界的数据结构,具有丰富的表达能力,但该模型相对比较复杂,涉及的知识比较多,因此面向对象数据库尚未达到关系数据库的普及程度。
1.3.4 数据库系统的三级数据模式结构
数据库体系结构是数据库的一个总的框架。虽然目前市场上流行的数据库管理系统软件品种多样,支持不同的数据模型,使用不同的数据库语言,但就其体系结构而言却是大致相同的。数据库的数据模式由外模式、模式和内模式三级模式构成,如图1-11所示。
图1-11 数据库系统的三级模式结构
1.数据库的三级模式结构
数据库的三级模式是指逻辑模式、外模式、内模式。
(1)逻辑模式
逻辑模式(Logical Schema)也称模式(Schema),它是对数据库中数据的整体逻辑结构和特征的描述。逻辑模式使用模式DDL进行定义,其定义的内容不仅包括对数据库的记录型、数据项的型、记录间的联系等的描述,同时也包括对数据的安全性定义(保密方式、保密级别和数据使用权)、数据应满足的完整性条件和数据寻址方式的说明。
逻辑模式是系统为了减小数据冗余,实现数据共享的目标并对所有用户的数据进行综合抽象而得到的统一的全局数据视图。一个数据库系统只能有一个逻辑模式。
(2)外模式
外模式(External Schema)也称子模式(Subschema),它是对各个用户或程序所涉及的数据的逻辑结构和数据特征的描述。外模式使用子模式DDL(Subschema DDL)进行定义,该定义主要涉及对子模式的数据结构、数据域、数据构造规则及数据的安全性和完整性等属性的描述。
子模式是完全按用户自己对数据的需要、站在局部的角度进行设计的。由于一个数据库系统有多个用户,所以就可能有多个数据子模式。由于子模式是面向用户或程序设计的,所以它被称为用户数据视图。从逻辑关系上看,子模式是模式的一个逻辑子集,从一个模式可以推导出多个不同的子模式。
(3)内模式
内模式(Internal Schema)也叫存储模式(Access Schema)或物理模式(Physical Schema)。内模式是对数据的内部表示或底层描述。内模式使用内模式DDL(Internal Schema DDL)定义。一个数据库只能有一个内模式。
2.数据库系统的二级映像技术及作用
数据库系统的二级映像技术是指外模式与模式之间的映像、模式与内模式之间的映像技术,二级映像技术不仅在三级数据模式之间建立了联系,同时也保证了数据的独立性。
(1)外模式/模式映像及作用
外模式/模式之间的映像,定义并保证了外模式与数据模式之间的对应关系。外模式/模式的映像定义通常保存在外模式中。当模式变化时,DBA可以通过修改映像的方法使外模式不变;由于应用程序是根据外模式进行设计的,只要外模式不改变,应用程序就不需要修改。显然,数据库系统中的外模式与模式之间的映像技术保证了数据的逻辑独立性。
(2)模式/内模式映像及作用
模式/内模式之间的映像,定义并保证了数据的逻辑模式与内模式之间的对应关系。它说明数据的记录、数据项在计算机内部是如何组织和表示的。当数据库的存储结构改变时,DBA可以通过修改模式/内模式之间的映像使数据模式不变化。由于用户或程序是按数据的逻辑模式使用数据的,所以只要数据模式不变,用户仍可以按原来的方式使用数据,程序也不需要修改。模式/内模式映像的技术保证了数据的物理独立性。
1.4 实训
1.实训目的
1)正确区分数据库、数据库系统和数据库管理系统三者的关系。
2)熟练掌握概念模型的表示方法。
3)理解数据库系统中三级模式、二级映像的概念和作用。
2.实训内容
1)分析下列的假设分别属于哪种类型的实体间关系。
假设一:用户和信用卡之间的联系是,每个人只能在银行申请一张信用卡,并且每张信用卡最多归一个用户使用。
假设二:用户和信用卡之间的联系是,每个人可以在银行申请任意多张信用卡,但是每张信用卡最多归一个用户使用。
假设三:用户和信用卡之间的联系是,每个人可以在银行申请任意多张信用卡,每张信用卡可以归多个用户使用。
假设四:仓库和职工之间的联系是,一个仓库有多个职工担任仓库保管员,一个职工只能在一个仓库工作。
假设五:一个班级的学生实体集中,学生之间具有领导和被领导的关系,即班长领导班级其他同学。
假设六:顾客与购买商品之间的联系是,一个顾客可以购买多种商品,一个商品供应给多个顾客。
2)举例说明数据库系统的二级映像技术如何保证数据的独立性。
1.5 习题
1.数据库系统中所支持的主要数据模型有层次模型、关系模型、________模型和面向对象的模型。
2.数据库系统的三级模式结构由外模式、模式和________组成。
3.在概念模型中,通常用“实体—联系”图表示数据的结构,其3个主要的元素是________、属性和________。
4.数据处理进入数据库系统阶段,以下不是这一阶段优点的是( )。
A.有很高的数据独立性 B.数据不能共享
C.数据整体结构化 D.有完备的数据控制功能
5.用于定义、撤销和修改数据库对象的语言是( )。
A.DDL B.DML C.DCL D.DEL
6.数据库管理技术的发展阶段不包括( )。
A.数据库系统管理阶段 B.人工管理阶段
C.文件系统管理阶段 D.操作系统管理阶段
7.数据库系统的核心是( )。
A.数据库 B.用户 C.软件 D.硬件
8.简述数据库管理系统的主要功能。
9.简述信息与数据的关系。
10.分析数据库、数据库系统、数据库管理系统三者的区别。
11.数据库的三级模式结构是什么?各级模式的作用是什么?
12.解释以下术语:
关系 属性 码 关系模式