计算机基础课程系列教材
点击查看第二章
点击查看第三章
数据库与数据处理:Access 2010 实现 第2版
张玉洁 孟祥武 编著
第1章
数据处理与数据库
早期计算机主要用于科学计算,数据类型单一。随着计算机技术的发展以及计算机的益普及,计算机应用已经远远超出了这个范畴。如今面对各种类型的海量数据,利用计算机做得更多的是进行数据处理。数据处理不仅广泛应用于电信、银行、证券、航空、教育、出版、气象等领域,而且在地质勘探测绘、仓库管理、技术情报管理、销售、制造、智能交通、电子商务等领域也呈现出勃勃生机。
数据处理离不开软件的支持,常用的数据处理软件包括:用于管理数据的文件系统和数据库管理系统,用于编写各种处理程序的高级程序设计语言及其编译、解释程序,以及各种数据处理方法的应用软件包等。
1.1 数据处理
数据和信息的关系非常密切,多数情况下没有严格的区分。信息处理从根本上离不开数据,因此信息处理实质上就是数据处理。而数据处理的最终结果是以信息或知识的方式展示给用户,所以数据处理也称为信息处理。但在某些特定的环境下,数据和信息还是两个不同的概念,不能混用,比如,不能将数据文件说成信息文件等。
1.1.1 数据与信息
1. 数据
数据是对客观世界中各种事物的一种抽象、符号化的表示。它采用一种人为规定的符号来表示从现实世界中观察和收集到的现象和事实。数据的表现形式很多,可以是数字、文字、时间,也可以是图形、图像、动画、声音等多媒体形式。
从计算机的角度看,数据泛指可以被计算机接受并能被计算机处理的符号。从数据库的角度看,数据就是数据库中存储的基本对象。数据有型与值之分。数据的型给出了该数据所属数据类型的说明,如整型、字符型、布尔型等;数据的值给出了符合给定型的数值,值是型的一个实例。数据的型相当于程序设计语言中变量的类型说明,数据的值相当于变量的取值。数据的型基本上相对稳定,数据的值则是不断变化的。
2. 信息
信息源于拉丁文“Information”,是指一种陈述或解释、理解等。数据经过解释并赋予一定的含义之后,就成为信息,即信息是根据需要对数据进行加工处理后得到的结果。
3. 数据与信息的关系
数据是信息的符号表示,是信息的具体表现形式,信息只有通过数据的形式表示出来才能被理解和接受。信息是数据的内涵,即数据的语义,信息在计算机中的存储即为数据。信息是观念上的,受制于人对客观事物变化规律的认知。例如,一个数字40的语义可能是年龄为40岁、体重为40公斤、价格为40元、考试成绩为40分、苹果为40个、书为40本等,也可能是高烧40度、水深40米、雨量达到40毫米、血压低压为40等。又比如,文字“黎明”的语义可能是一个词语,表示天快要亮或刚亮的时候,也可能是名称,如某人的姓名、壁画的名字、绘本的名字等。
数据要符合其语义,数据与其语义是不可分的。数据库系统要保证数据库中的数据符合其语义。
1.1.2 数据处理与数据管理
数据处理的发展及应用的广度和深度,极大地影响着人类社会发展的进程。数据处理,也称信息处理,是将数据加工成信息的过程,具体指利用计算机对各种数据(包括数值数据和非数值数据)进行收集、整理、存储、分类、排序、检索、维护、加工、统计、传输等一系列活动的总和。数据处理的主要目的之一是从大量无序、难以理解的数据中,抽取并推导出有用的数据成分,作为行为和决策的依据。
数据处理贯穿于社会生产和社会生活的各个领域。通常,数据处理的计算方法和过程比较简单,但处理的数据量通常很大,数据结构复杂,因此,数据处理的重点不是计算,而是数据管理。
数据管理是数据处理的核心,主要功能包括数据的收集和分类、数据的表示和存储、数据的定位与查找、数据的维护和保护、提供数据访问接口和数据服务(如性能检测分析、可视化界面服务)等。
数据处理与数据管理密切相关,数据管理技术的优劣直接影响数据处理的效果,数据库技术正是针对这一目标进行研究、发展并逐渐完善起来的专门技术。数据是数据库技术的研究目标,数据处理是数据库技术的应用方向,而数据管理则是数据库技术研究的主要内容。
1.1.3 数据管理简史
数据管理作为计算机应用领域中最大的一类应用,随着应用需求和计算机软硬件的发展,主要经历了人工管理、文件管理和数据库管理三个发展阶段。
1. 人工管理阶段
20世纪50年代中期之前,计算机主要用于科学计算。数据存储设备主要是卡片、纸带和磁带。没有操作系统和数据管理软件,数据需要人工管理。数据不保存,随用随丢。应用程序和数据不可分割,数据完全依赖于应用程序,不具有独立性,因而数据无法共享。该阶段应用程序与数据之间的对应关系如图l-1表示。
2. 文件管理阶段
20世纪50年代后期至60年代中期,计算机技术有了很大的发展,开始广泛应用于信息处理。数据存储设备主要是磁盘、磁鼓。磁盘是一种随机存取设备,允许用户直接访问数据,摆脱了磁带顺序访问的限制。该阶段出现了操作系统,并使用专门的管理软件即文件系统(操作系统中的文件管理功能)来实施数据管理。数据可以长期保存在磁盘上,应用程序和数据有了一定的独立性,数据文件有了一定的共享性,但存在较大的数据冗余。
在文件系统中,数据的逻辑结构和输入/输出格式由程序员在程序中进行定义和管理,数据的物理存储和存取方法则由文件系统提供。一个命名的数据集合称为一个文件,文件中的数据被组织成记录的形式,记录由字段组成。一个个文件彼此是孤立的,缺乏联系。应用程序只需使用文件名就可以与数据打交道,而不必关心数据的物理位置。图1-2给出了一个使用文件系统进行数据管理的示例。假设学生处应用程序需要学生文件F1,该文件包含了学生的基本信息。教务处应用程序需要学生信息文件F1、课程文件F21、选课文件F22、授课文件F23以及教工文件F3。人事处应用程序需要教工文件F3,该文件包含了教工的基本信息。这些文件的结构如下:
F1:学号、姓名、性别、出生日期、所在院系、专业、班级、联系电话、宿舍地址
F21:课程号、课程名、授课学期、学分、课程性质、开课学院
F22:学号、姓名、所在院系、专业、班级、课程号、课程名、授课学期、学分、成绩
F23:教师号、教师姓名、性别、职称、课程号、课程名、授课学期、学分、课程性质、授课年度
F3:教工号、姓名、性别、出生日期、所在院系、最终学历、职称、联系电话、家庭住址
仔细分析这些数据的组织方式后发现,使用文件系统来管理数据存在如下一些缺点:
(1)数据共享差,同样的数据在多个文件中重复存储,冗余较大
学生的学号、姓名、所在院系、专业、班级等基本信息既保存在学生文件F1中,又保存在F22中;课程的课程号、课程名、授课学期、学分、课程性质既保存在F21中,又保存在F23中;教师的教师号、姓名、性别、职称等基本信息既保存在F3中,又保存在F23中。
这样的数据组织方式使得相同数据重复保存,不能被共享,既浪费空间,又会影响数据的完整性。比如,某个学生转专业了,那么所有包含这些数据的文件都必须更新,以保持数据的完整性。然而,文件系统不具备维护数据一致性的功能,不会自动完成这些更新,需要人工完成,当数据重复存储在多处时,很难保证每一处都能及时更新,这样很容易造成数据的不一致,从而失去数据的可信性。
(2)文件是孤立存在的,数据是分离的
由于文件系统不具备自动实现数据之间关联的功能,无法反映现实世界事物之间的内在联系,文件之间相互独立,所以要建立文件之间的联系,必须通过应用程序来构造。比如,若查询某位教师所教授的某门课的学生信息,需要以某种方式将多个文件关联,以图1-2为例,至少需要将F1、F22、F23三个文件进行关联,从中提取需要的数据并组成一个新的文件。
(3)数据的独立性差,程序和数据没有真正分离
文件系统中,应用程序依赖文件的结构,每一次修改文件结构,都要修改相应的应用程序。例如,如果修改学生文件F1中专业的字段长度,或者在F1中增加或删除一个字段,那么所有使用F1文件的应用程序都必须修改。
(4)文件系统提供的操作有限
文件系统只提供了几个低级的文件操作命令,如果需要进行文件的查询、修改,则需要编写相应的应用程序来实现,而且功能相同的操作也很难共享应用程序。此外,文件系统很难控制用户的某些文件操作,比如,只能读写文件但不能删除文件,或者只能读文件中的部分数据等。
3. 数据库管理阶段
20世纪60年代后期,随着应用需求的增加、软硬件技术发展的日趋成熟,计算机用于信息处理的规模越来越大,对数据管理技术的要求也越来越高,原有的文件系统已经不能胜任数据管理的任务。与此同时,计算机网络系统和分布式系统的相继出现,导致急需一种新的能够在多用户环境下进行数据共享和处理的数据管理软件。在这个背景下,数据库管理系统(DataBase Management System, DBMS)应运而生。
在数据库管理阶段,数据由DBMS统一管理和控制,包括数据的安全性控制、数据的完整性控制、并发控制以及数据库恢复等,实现整体数据的结构化,数据的结构使用数据模型来描述,无须程序定义和解释。数据面向整个系统,可以被多个用户或应用程序共享,提高了数据的共享性,减少了数据冗余,保证了数据的一致性和完整性。数据与应用程序相对独立,减少了应用程序开发和维护的成本。数据库管理阶段,应用程序与数据之间的对应关系如图l-3所示。
数据库管理系统的出现,使得以数据库为中心的数据库管理技术(简称数据库技术)成为计算机领域发展最快的技术之一。
1.1.4 数据库技术的发展和未来
1. 关系型数据库技术
在数据库管理阶段,首先出现的是层次数据库管理系统和网状数据库管理系统,到了20世纪70年代出现了关系型数据库管理系统(Relational DataBase Management System, RDBMS),它基于E. F. Codd所提出的关系数据模型,这种数据模型最大的优点在于数据的逻辑结构简单,就是二维表(也称关系)。在目前使用的数据处理软件中,RDBMS占据了统治地位。从甲骨文公司的Oracle,到IBM的DB2和Informix、Sybase公司的Sybase、微软公司的SQL Server和Access,再到开源软件MySQL(Oracle公司)、PostgreSQL等,这些关系型数据库管理系统被广泛应用于各个不同的行业领域。关系型数据库技术的主要特点如下:
- 采用关系模型表示复杂的数据结构。关系型数据库将所有的数据以行和列的二元表现形式保存在一个规范的二维表中,有严格的字段定义和数据类型约束,对数据的读写以行(即记录)为单位。
- 采用SQL技术标准对数据库进行定义、操作和控制,增加了软件的可移植性。
- 在数据处理中严格遵守ACID原则,采用强事务保证数据的一致性和安全性。
- 可以对多个数据表进行JOIN操作,以完成复杂的查询任务。
- 尽可能解决尽可能多的数据处理和应用问题,因而常作为通用型的数据库技术。
关系型数据库技术也存在一些不足,比如,不适合大数据写入处理的场景,数据管理规模和访问速度受服务器物理性能(指硬盘、内存、CPU、主板总线等硬件最大性能指标)的限制,横向扩充(即构成多服务器集群)存在困难。
随着数据库应用的日益复杂,比如对于计算机辅助设计和制造、数字出版、地理信息系统、动态的Web站点等需要处理多媒体数据并且能够根据用户要求进行交互式修改的复杂应用场景来说,RDBMS开始表现出一些不适应。此时出现了面向对象的数据库管理系统(Object-Oriented DataBase Management System, OODBMS),它将面向对象的概念与数据库系统相结合,可以为多种高级数据库应用提供适当的解决方案,目前多用于工程和设计领域。OODBMS存在的很多缺点使其占据的市场份额不多。比如,缺乏通用的数据模型;与RDBMS相比,OODBMS提供的功能比较复杂,难以使用;OODBMS面向程序员而不是非专业的最终用户,这使得设计和管理OODBMS的学习过程很艰难。这些都导致了人们对这种技术的排斥。
进入20世纪90年代,Internet的兴起为商业智能提供了许多机会,DBMS开发商专注于数据仓库系统和数据挖掘产品的开发。数据仓库系统提供了数据分析机制,用户可以将分析结果用于决策支持。随着Web技术的迅猛发展以及XML的出现, 数据库与Web数据库集成环境的集成(简称Web数据库集成)以及XML与DBMS产品的集成呈现出高度发展的态势。Web数据库集成的方案的优点包括:具有简单性、平台无关性,使用Web浏览器轻松访问数据库,连接在Internet的所有机器上的文档都采用统一的标准HTML等。
Web数据库集成的一些流行方案主要包括:使用脚本语言(如JavaScript、VBScript、PHP),扩展浏览器和Web服务器的能力,使其提供额外的数据库功能;使用JDBC,JDBC是Java 访问RDBMS最主要也是最成熟的方法,在JDBC中定义了数据库访问的API,Java可以作为编写数据库应用的宿主语言;Microsoft的ODBC技术(提供了访问多种SQL数据库的通用接口)以及Web解决平台,包括.NET、.ASP、ADO等。
为使HTML文档具有动态特性,浏览器开发商引入了专用的HTML标记,这使开发Web文档变得复杂和困难。XML作为HTML的补充,使得不同类型的数据可以在网络上轻松交换。随着采用XML格式数据量的增大,对数据进行存储和查询的需求也日益增多。目前XML与DBMS产品的集成主要采用SQL/XML:2011数据模型,该模型在RDBMS中引入一种新的数据类型XML,并为该类型定义一组操作,将XML文档作为关系中的值,定义从关系数据到XML的一组映射。在存储了XML文档之后利用SQL:2011标准(扩展的SQL,用于发布XML)对数据进行查询。
2. NoSQL(Not only SQL)数据库技术
随着物联网、云计算、大数据技术的兴起,21世纪迎来了信息爆炸的时代,尤其是在21世纪前10年出现了大数据处理问题,推动了非关系型数据库技术尤其是NoSQL技术的发展。相比关系型数据库技术尽可能解决尽可能多的数据应用问题,NoSQL数据库技术只解决某一个方面或某一主题的问题。NoSQL重点关注“更快的处理速度”和“更恰当的存储”。NoSQL数据库没有固定的表结构,采用类似文档、键值、列族等非关系型数据模型,可以自由、灵活定义并在一个数据元素中存储各种不同类型的数据,支持海量数据存储,具有灵活的水平扩展能力,在处理数据库服务器大规模负载增加方面具有较高的性价比。但是为了提高操作性能,NoSQL放弃了很多像关系型数据库实施的规则约束,将本该数据库系统完成的功能交给了数据库程序员,不仅增加了数据库程序员的负担,也对他们的分析和编程能力提出了更高的要求。
近些年,NoSQL数据库发展势头迅猛,数量上多达200多种,但归结起来通常分为键值数据库、文档数据库、列族数据库和图数据库4大类。这4类NoSQL数据库都是针对一种数据模型进行数据处理,各有特点和长处。
(1)键值数据库(Key-Value Database)
键值数据库的设计原则是以提高数据处理速度为目标,适合存在大量写操作的应用需求,擅长处理数组类型的数据。键值数据库运行在内存(它以内存或SSD为数据运行存储的主环境),采用定期向硬盘写数据的持久化策略,因此,键值数据库常被称为内存数据库。数据存储结构只有键(Key)和值(Value),并成对出现。在Value中可以保存任何类型的数据,通过Key来存储和检索具体的Value。键值数据库的优点是数据结构简单、提供分布式处理能力、高速计算和快速响应,只要配置更大容量、更快速度的内存就可以轻松应对海量数据访问的速度问题。缺点是无法存储结构化信息、在发生故障时不支持回滚操作,因此无法支持事务,不容易建立数据集之间复杂的横向关系,只限于两个数据集之间的有限计算。此外,对值进行多值查询的功能较弱。
键值数据库产品有Redis、Memcached、Riak、BerkeleyDB、SimpleDB、DynamoDB以及甲骨文的Oracle NoSQL数据库等。作为键值数据库代表之一的Redis,使用C语言开发,提供了100多条命令,这些命令要比SQL语言简单很多。Redis支持的键值数据类型只有5种(字符串类型、散列类型、列表类型、集合类型、有序集合类型),并提供了几十种不同编程语言的客户端库,这使得在程序中与Redis的交互变得轻松容易。此外,Redis数据库中的所有数据都存储在内存中,并提供了持久化支持,将内存中的数据异步写入硬盘中,避免了程序退出而导致内存中数据丢失的问题。目前,Redis得到越来越多公司的青睐,百度、新浪微博、京东、阿里巴巴、腾讯、美团网、Twitter、Flickr、Stack Overflow、GitHub(Redis的开源代码就托管在其上)等都是Redis的用户。
(2)文档数据库(Document Store Database)
文档数据库是为解决大数据环境下的快速响应而设计的,擅长处理基于JSON、XML、BSON等格式的文档以及集合类型的数据。它具有强大的查询功能,看上去更接近于关系型数据库,并具有很强的可伸缩性,可以轻松解决PB级甚至EB级的数据存储需求,这给大数据处理带来了很多的方便。在文档数据库中,集合对应关系型数据库中的表,文档对应关系型数据库中的记录,是数据库的最小单位。每一条文档由大括号标识,其中包含若干个键值对(Key-Value Pair),键值对类似于关系型数据库中的字段值。
文档数据库同关系型数据库一样,也是建立在对磁盘读写的基础上,对数据进行各种操作。但是为提高读写性能,文档数据库摒弃了关系型数据库规则的约束。对文档数据库的基本操作有读、写、修改和删除4种。
最有名的文档数据库产品是MongoDB。百度云、腾讯云、新浪云、阿里云、华为、携程、中国银行、中国东方航空公司、Foursquare、eBay、MTV、MetLife等都是MongoDB的用户。
(3)列族数据库(Column Family Database)
在当今的大数据时代,列族数据库格外引人注目,它特别擅长PB、EB级别的大数据存储和几千或几万台级别的服务器分布式存储管理,具有丰富的查询功能以及高密集写入处理能力。列族数据库的数据存储模式比文档数据库和键值数据库的复杂,其存储结构由4部分组成:命名空间(相当于关系型数据库中的表名)、行键(相当于关系型数据库中的表的主键)、列族(相当于关系型数据库中的表结构)、列(相当于关系型数据库中的表的字段),列的每个值都附带一个时间戳。
列族数据库的产品有BigTable、HBase、HadoopDB、Cassandra、HyperTable等。Twitter、eBay、Facebook、Netflix都是列族数据库产品的用户。
(4)图数据库(Graph Database)
图数据库专用于处理高度关联的数据,支持复杂的图算法,构建复杂的关系图谱,特别适合社交网络(QQ、微信)、推荐系统、模式识别、物流派送、规则推理等应用场景。图数据库以图论为基础,使用图作为数据模型来存储数据,节点、边、属性构成了图存储的三要素,凡是有类似关系的事物都可以使用图存储来处理。图存储数据本身非常简单,主要通过节点之间的关系发现有价值的数据规律。
图数据库的产品有Neo4j、Infinite Graph、Allegro Graph、GraphDB等。其中,Neo4j是目前使用较多的产品,它无须事先定义存储结构,完全兼容关系型数据库的ACID特性,提供事务处理能力,为单个节点提供Create、Delete、Update、Remove、Merge等操作,为图提供图的交集、并集以及图的遍历等操作。Neo4j成功应用于eBay、Adobe、Cisco、T-Mobile等公司。
3. NewSQL数据库技术
近年来,出现了NewSQL数据库技术。NewSQL技术结合了关系型数据库与NoSQL数据库的优点,用于解决大数据环境下的数据存储和处理问题,是对各种新的可扩展、高性能数据库的统称。NewSQL数据库不仅具有NoSQL数据库良好的扩展性和灵活性,还保持了关系型数据库支持ACID和SQL等特性。NewSQL数据库产品有Spanner、SequoiaDB、VoltDB、Clustrix、GenieDB等。
无论数据库技术如何发展,关系型数据库仍然是当今世界软件的基础,关系型数据库及其第三范式和SQL接口仍然在稳定地运行着。本书将详细介绍关系型数据库技术的相关概念、原理以及应用。
1.2 数据库与数据库管理系统
1.2.1 数据库
数据库(DataBase,DB)是指长期存储在磁带、磁盘、光盘或其他外存介质上,按照一定的结构组织在一起的相互关联的数据集合。
从不同的角度看数据库有不同的理解,如图1-4所示。从用户的角度来看,数据库就是一种数据库应用软件;从数据模型的角度来看,数据库就是数据库管理系统;从数据的实际组织情况来看,数据库才是真正意义上的数据库。
数据库具有如下特征:
1)在数据库中,不仅能够表示数据本身,还能够表示数据与数据之间的联系。比如,教学管理数据库中存放学生和课程的数据,学生数据通过选课与课程数据产生联系。
2)数据通过一定的数据模型进行组织、描述和存储。数据模型包括层次模型、网状模型和关系模型等。
3)具有较小的冗余度、较高的数据独立性和易扩展性。
4)用户和应用程序可以共享数据。
5)数据的各种操作如查询、修改、删除等都由一种专业软件统一进行管理。
在当今数字时代,我们的数字交互,无论是信息检索、微博搜索和排序,还是社交、购物、评论、点赞,本质上都是在与数据库交互。
1.2.2 数据库管理系统
上述数据库的特征蕴藏在一种名为数据库管理系统(DBMS)的专业软件中。DBMS是一个与用户的应用程序和数据库相互作用的软件,它的目标是将数据作为一种可管理的资源来处理。如图1-5所示,DBMS是一种介于用户与操作系统之间,并在操作系统的支持下,专门用于数据管理的系统软件。它提供了有效建立、管理,并安全持久地保存大量数据的能力。DBMS是数据库系统的核心组成部分,它完成“科学组织和存储数据,高效获取和处理数据”的任务。
可以将DBMS看作某种数据模型在计算机系统上的具体实现。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
DBMS的主要功能包括:
1)数据定义功能。通过DBMS提供的数据定义语言(Data Definition Language,DDL)及其翻译程序,定义数据库的结构、数据库中的各种数据对象,以及数据完整性和其他的约束条件。
2)数据操纵功能。通过DBMS提供的数据操纵语言(Data Manipulation Language,DML)来完成对数据库中数据的插入、修改、删除和查询操作。
3)数据控制功能。通过DBMS提供的数据控制语言(Data Control Language,DCL)对数据库进行统一管理和控制。比如,DBMS提供完整性控制,保证所存储数据的一致性;提供安全控制机制,禁止没有被授权的用户访问数据库;提供多用户环境下的并发控制机制,允许共享数据库。
除了上述核心功能之外,DBMS还提供数据字典,用于存放数据库各级结构的描述;提供访问数据库的方法,即数据库接口以供用户或应用程序访问数据库;提供数据维护功能,比如数据库的数据装入、转换、存储、备份和发生故障后的系统恢复,以及数据库的性能分析和监测等。
数据字典中存放的是数据库系统的一些说明信息,即数据的数据,称为元数据,如对各级模式的描述、索引、完整性约束、安全性要求、数据库的使用人员等说明信息。类似于日常生活中使用的字典或书的目录,它能够帮助DBMS按照用户指定的数据对象名称,快速找到所需要的信息。数据字典提供了对描述数据进行集中管理的手段,可以将它看成是数据库系统自身的小的、专门的数据库,区别于真正的物理数据库,常称之为描述数据库或数据库的数据库,只能由数据库系统本身来访问和修改。数据字典在数据库系统的设计、实现、运行和维护各阶段起着非常重要的作用,是数据管理和控制的有力工具。
1.2.3 认识Access 数据库管理系统
Access是一种小型的关系数据库管理系统。Access 2010是微软2010年推出的Microsoft Office 2010中的一员,它与Word、Excel和PowerPoint等有相同的操作界面和使用环境,具有存储方式单一、界面友好、易于操作以及强大的交互式设计功能等特点,很多中小型企业、大公司的部门,以及喜爱编程的开发人员专门利用它来制作处理数据的桌面应用系统。Access也常用于开发简单的Web应用程序,或作为客户/服务器系统中的客户端数据库,以及数据库相关课程的教学实践环境。
Access通过数据库文件来组织和保存数据表、查询、报表、窗体、宏和模块等数据库对象,并提供了各种生成器、设计器和向导,以快速、方便地创建数据库对象和各种控件。此外,Access提供了丰富的内置函数和程序开发语言VBA(Visual Basic for Application),帮助数据库开发人员快捷开发数据库系统;还提供了与SQL Server、Oracle、MySQL等数据库的接口,实现数据共享和交换;可方便与Excel、Word等共享信息。
1. Access 2010的操作环境
启动 Access 2010成功后,首先看到的窗口就是 Backstage 视图,这里的视图是指界面。初次使用Access 2010时,首先要利用Backstage 视图创建数据库,然后再依次创建数据库中的各个对象。将创建数据库对象的界面称为Access 2010用户操作界面,该界面主要由快速访问工具栏、功能区、导航窗格和工作区组成。
(1)Backstage 视图
Backstage 视图也称为Access 2010的启动窗口,如图1-6所示。该视图替代了 Office 以前版本中的 Microsoft Office 按钮和“文件”菜单。因为通过该视图整合的各种文件级操作和任务都是在后台进行的,所以Backstage 视图也被称为后台视图。在实际的操作中,可以单击“文件”选项卡随时切换到 Backstage 视图。
Backstage 视图分为两个部分,左侧窗格由一些命令组成,右侧窗格显示不同命令的选择结果。命令包括新建、保存、打开、信息、保存并发布、帮助、选项、退出等。此外,与打印相关的命令和设置(如预览、打印、页面布局)也集中在Backstage 视图中。
图1-6给出的是Backstage 视图的默认界面,左侧窗格中显示当前命令是“新建”数据库,在右侧窗格中显示“可用模板”和“空数据库”两个部分。利用它们既可以从头开始创建新数据库,也可以从专业设计的数据库模板库中选择数据库。“可用模板”中给出了当前Access系统中所有的数据库模板,包括12个样本模板(其中包含了5个Web数据库模板)、我的模板以及Office.com提供的“资产”“联系人”“问题&任务”“非盈利”和“项目”5个模板类别。单击“样本模板”可以看到当前Access系统所提供的12个样本模板,其中包含了预先建立的各种数据库对象。如果样本模板基本符合自己的设计要求,用户可以立即使用该模板或做简单修改后,快速建立起自己的数据库文件。如果没有合适的模板,可以在Office.com上搜索、下载由他人提供的模板,或者自己创建一个新的数据库文件。当新建一个空白数据库时,在界面右侧会显示将要创建的数据库的默认文件名和保存的位置,用户可以修改文件名和存放的位置。
现在新建了一个数据库文件Database2.accdb。单击Backstage 视图中的“信息”命令,在视图的右侧窗格将出现如图1-7所示的界面,利用其中的命令选项可以对Database2.accdb进行压缩、恢复以及加密操作。此外,还可以查看和编辑该数据库文件的属性等。
Backstage 视图提供了上下文信息,根据不同的情况,“信息”窗格可能会显示数量不同的命令选项。例如,相对图1-7,在图1-8中增加了“启用内容”。这可能是因为存在禁用的宏,而系统阻止了该宏以保护计算机。这时可以通过“信息”窗格查看该宏的上下文信息,并启用宏。又如,某个在 Office 早期版本中创建的文档在兼容模式下打开,并且某些丰富的新功能被禁用的情况下,“信息”窗格中会出现版本转换功能等。
在Backstage 视图中,单击“保存并发布”后,右侧窗格如图1-9所示。
“数据库另存为”功能可以将数据库文件保存为2003或2002等低版本的格式。例如,对于2010版本的Database2.accdb,将被保存为低版本的Database2.mdb文件。此外,可以将当前的数据库文件另存为扩展名为.accdt的数据库模板,可以将数据库打包、备份,还可以将数据库上传到SharePoint网站上实现共享,将包含VBA代码的数据库文件保存为扩展名为.accde的文件,该文件可以编译所有的VBA代码模块等。
“发布到Access Services”功能可以将数据库文件发布到SharePoint网站上,以便通过浏览器和Access共享数据库。当数据库发生变化时,需要重新发布到SharePoint网站上。
重要提示
- 需要注意的是,Backstage 视图中的各种命令通常适用于整个数据库,而不是数据库中的某个对象。
- 可以通过自定义用户界面来扩展 Backstage视图,该用户界面使用 XML 来定义元素。
- 发布到SharePoint网站上的数据库文件只能是扩展名为.accdb的文件。
(2)功能区
功能区取代了以往版本的传统菜单,将相关命令以选项卡的方式组织在一起,在同一时间只显示一个选项卡中的相关命令。如图1-10所示,Access 2010的功能区在默认情况下只有4个选项卡,分别是“开始”“创建”“外部数据”和“数据库工具”。每个选项卡又分为多个选项卡组(简称组)。在与选项卡平行的右侧有一个上箭头和一个问号,分别表示将功能区最小化和显示Access的帮助信息(也可以按F1键)。实际操作中遇到问题时,可随时查询系统帮助中的信息。
利用“开始”选项卡中的命令,可以进行视图的选择、数据的复制/粘贴、记录的排序与筛选,还可以对记录进行刷新、保存、删除、汇总、拼写检查,以及查找记录、设置字体格式和对齐方式等操作。“创建”选项卡中的命令主要用于创建Access 2010数据库对象。“外部数据”选项卡中的命令主要用于导入和导出各种数据。例如,导入外部数据或链接到外部数据,通过电子邮件收集和更新数据,导出数据到Excel、文本文件或电子邮件中,或以XML、PDF等格式保存等。“数据库工具”选项卡主要针对Access 2010数据库进行比较高级的操作,例如,压缩和修复数据库、启动VBA编辑器以创建和编辑VBA模块、运行宏、设置数据表之间的关系、显示或隐藏对象相关性、数据库性能分析、将部分或全部数据库移至SQL Server或SharePoint网站上,以及管理Access加载项等。
除了上述4个默认的选项卡之外,还有一些隐藏的选项卡,称为上下文选项卡,它们只有在对特定对象进行特定操作时才会显示出来。例如,运行“创建”选项卡“表格”组中的“表”命令,在数据库Database2.accdb中创建一个数据表“表1”时,功能区中会自动出现黄色的“表格工具”选项卡组,其中包括“字段”和“表”两个选项卡。如图1-11所示。若采用表设计器来创建“表1”,则“表格工具”选项卡组中只有“设计”选项卡,如图1-12所示。
如果利用窗体设计器创建一个窗体,则功能区上会出现紫色的“窗体设计工具”选项卡组,其中包括“设计”“排列”和“格式”3个选项卡,如图1-13所示。
在 Access 2010中,可以自定义功能区中的选项卡,首先单击Backstage 视图中的“选项”命令,然后在“Access选项”对话框中选择“自定义功能区”。如图1-14所示。然后选择并添加选项卡、组和命令到功能区中,还可以进行删除、重命名、重新排列选项卡以及组合命令等操作。
(3)快速访问工具栏
默认情况下,快速访问工具栏位于功能区上方应用程序标题栏左侧的Access标志的右边,也可以将其移到功能区的下方。快速访问工具栏将经常使用的功能集中在一起,如“保存”“恢复”“撤销”等。可以自定义快速访问工具栏以适应自己的工作环境,方法有以下两种。
方法一:单击快速访问工具栏右侧的箭头,通过弹出的“自定义快速访问工具栏”菜单,在工具栏上添加其他命令,如图1-15所示。如果提供的命令不能满足需要,可以单击“其他命令”,直接跳转到如图1-16所示的界面进行设置。
方法二:单击Backstage 视图中的“选项”命令,在“Access选项”对话框中选择“快速访问工具栏”,如图1-16所示,然后选择要添加或从快速访问工具栏中移除的命令。
(4)导航窗格与工作区
导航窗格位于功能区下方的左侧,用于显示当前数据库中已经创建好的各种数据库对象。图1-17给出了利用样本模板创建的数据库文件“教职员.accdb”。通过窗口标题栏中央位置显示的内容可以知道,当前打开的是“教职员”数据库窗口。双击此处可以最大化或者还原该窗口。
在导航窗格中单击或(称为百叶窗开/关按钮),可以展开或折叠导航窗格。单击
,可以在弹出的“浏览类别”菜单中选择查看对象的方式。图1-17显示的内容是按照对象类型进行排列的内容,可以看出“教职员”数据库中包含了表、查询、窗体和报表4类数据库对象。如果单击或,将折叠或展开每个数据库对象中包含的具体内容。右击导航窗格中的任何对象,将弹出相应的快捷菜单,可以从中选择相关命令执行操作。图1-18给出了右击数据库对象“窗体”时的快捷菜单。
在导航窗格中,双击某个对象,将打开该数据库对象,如表、窗体或报表,也可以右击数据库对象,然后单击“打开”。如果想了解更多导航窗格的详细内容,可以查看Access 2010的帮助信息。
工作区是位于功能区下方、导航窗格右侧的区域。工作区用于对数据库对象进行设计、编辑、修改、显示,以及打开运行数据库对象。Access 2010采用了选项卡式文档来代替Access 2003中的重叠窗口以显示数据库对象。图1-17显示了“教职员列表”和“教职员电话列表”两个选项卡式文档,从文档名前面的图标可以识别出前者是窗体,后者是报表,并且当前文档是“教职员列表”。因为只是借助模板创建了“教职员”这个数据库,各个数据库对象中并没有数据,所以没有显示的内容。
2. Access 2010的数据库对象
(1)数据表
数据表简称表,是数据库中最基本也是最重要的对象。Access 将数据组织成由行和列组成的二维表,每一行称为一条记录,每一列称为一个字段。需要为每个表指定主键来唯一标识每条记录,并确定各个表中的数据如何彼此关联,从而建立表间关系。表1-1给出了E-R模型、关系模型以及作为一种RDBMS的Access的术语对照。
图1-19给出了样本模板“罗斯文”数据库中的“客户”数据表的结构和内容。这是在Access 2010用户操作界面的工作区中展示的数据表。选项卡式文档包括了4个数据表,分别是“采购订单”“产品”“订单”和“客户”,当前显示的是“客户”数据表。
在Backstage 视图中创建数据库之后,首先要做的工作就是创建数据表。数据表是其他数据库对象的基础。在Access中,允许一个数据库中包含多个数据表,在不同的数据表中存储不同主题的数据。每个数据表都是由表结构和记录组成的。创建数据表首先要创建表结构,然后再创建表间关系,最后输入数据或将外部数据导入数据表中。有关数据表的相关概念和具体操作详见本书第四部分的第7章。
(2)查询
查询是数据库中应用最多的数据库对象。查询通常是指通过设置查询条件,从一个表、多个表或其他查询中选取全部或部分数据,以二维表的形式显示数据供用户浏览,或作为窗体、报表或其他查询的数据源。查询的结果虽然以二维表的形式展示,但查询不是数据表。每个查询只记录该查询的操作方式,并不真正保存查询结果数据,每进行一次查询,只是根据该查询的操作方式动态生成查询结果。因此,数据表是实表,查询是虚表。
Access中,查询不仅可以从数据源中产生符合条件的动态数据集,还可以创建数据表,以及对数据源中的数据进行追加、删除、更新操作。
Access 提供了5种查询类型,分别是选择查询、参数查询、交叉表查询、操作查询和SQL查询。通常使用查询向导和查询设计器两种方式创建查询。
Access中的查询对象共有5种视图,分别是设计视图、数据表视图、SQL视图、数据透视表视图、数据透视图视图。图1-20给出了“罗斯文”数据库中的“现有库存”查询的数据表视图,图1-21给出了“现有库存”查询的设计视图。有关查询的相关概念和具体操作详见第四部分的第8章。
(3)窗体
Access 提供了可视化的直观操作来设计数据输入、输出界面的结构和布局,即窗体数据库对象。窗体是用于处理数据的界面,通常包含了很多控件用于执行各种命令。通过设置控件的属性和编写宏或事件过程,可以确定窗体中要显示的内容、所打开的窗体和报表,以及执行其他各种任务。
窗体为数据的输入和编辑提供便捷、美观的屏幕显示方式。其数据可以通过键盘直接输入,也可以来自数据表、查询或SQL语句。数据若来自数据表或查询,窗体中显示的数据将随表或查询中数据的变化而变化。
Access中的窗体对象共有6种视图,分别是设计视图、 窗体视图、 数据表视图、布局视图、数据透视表视图、数据透视图视图,不同的窗体视图有不同的作用和显示效果。如图1-22所示,对于一个创建好的窗体,可以通过单击“开始”选项卡中的“视图”命令,从中选择其中的一种视图来查看窗体。
窗体作为用户与数据库交互的界面,在数据库应用程序中扮演着重要的角色。Access中的窗体类型主要有单个窗体、连续窗体、数据表窗体、分割窗体、多项目窗体、数据透视表窗体、数据透视图窗体、主/子窗体、导航窗体等。常用的创建方法有各种自动创建窗体的工具、窗体向导以及窗体设计器等。有关窗体的相关概念和具体操作详见第四部分的第9章。
(4)报表
报表主要用于数据的显示和打印,它的数据来源可以是表、查询,也可以是SQL语句。同窗体一样,报表本身不存储数据,只是在运行报表的时候才将信息收集起来。通过报表组织和显示Access中的数据,为打印或屏幕显示效果设置数据格式。利用报表提供的功能,可以对数据分组,进行数据的计算和统计,还可以打印输出标签、转换为PDF等其他格式的文件,以使报表便于阅读。此外,还可以运用报表创建标签并打印输出,以用于邮寄或其他目的等。
图1-23给出了一个典型的报表例子。这是“罗斯文”数据库中的“年度销售报表”报表的报表视图,分别统计了各个产品在4个季度的销售金额。
报表有4种视图,分别是设计视图、报表视图、布局视图、打印预览视图。一般采用报表向导、报表设计器来创建报表。报表的种类有纵栏式报表、表格式报表、图表报表和标签报表。有关报表的相关概念和具体操作详见第四部分的第9章。
(5)宏
宏是由一个或多个宏操作命令组成的集合,主要功能是让程序自动执行相关的操作。Access 2010提供了大量的宏操作命令,每个宏操作命令都可以完成一个特定的任务。例如,宏操作OpenForm用于打开一个指定的窗体;宏操作MessageBox用于显示一个消息对话框,如图1-24所示,用户只需要输入相应的参数就可以创建一个简单宏。
宏与内置函数一样,可以为数据库应用程序提供各种基本功能。可以在窗体、报表、控件和模块中添加并使用宏以完成特定的功能。例如图1-25所示的“登录”窗体,若将“退出”命令按钮的“单击”事件与图1-24所示的“再见”宏相关联,则使得“登录”窗体运行时,单击“退出”命令按钮就执行MessageBox宏操作,即弹出如图1-26所示的对话框。使用宏非常方便,不需要记住语法,也不需要复杂的编程,只需利用几个简单的宏操作就可以对数据库进行一系列的操作。有关宏的相关概念和具体操作详见第四部分的第10章。
(6)模块
模块是Access中一个重要的对象,它比宏的功能更强大,运行速度更快,不仅能完成操作数据库对象的任务,还能直接运行Windows的其他程序。通过模块还可以自定义函数,以完成复杂的计算、执行宏所不能完成的复杂任务。
模块由VBA声明语句和一个或多个过程组成。过程由一系列VBA代码组成,并通过VBA语句执行特定的操作或计算数值。过程分为两类:事件过程和通用过程。通用过程分为Sub 过程和 Function 过程。Sub过程又称子程序,Function过程又称函数过程。事件过程是一种特殊的Sub过程,它由系统自动命名,事件过程名由指定的控件名和其所响应的事件名称构成。
在Access中,模块分为两种基本类型:类模块和标准模块。窗体模块和报表模块都属于类模块,而且它们各自与某一个具体存在的窗体或报表相关联。标准模块是存放公共过程的模块,这些过程不与任何对象关联。
任何模块都需要在VBA编辑器中编写相关代码。图1-27给出了VBA编辑器的界面。在左侧的工程窗口中可以看到名为“教学管理系统”的数据库中的所有模块。其中,类模块有7个,全部是窗体模块(以“Form_”开头),标准模块有3个。窗口右侧的代码区显示的是名为“模块2”的标准模块的代码,可以看出,“模块2”中只有一个名为sum的过程,功能是计算1~100之间的奇数和。执行这个过程的结果如图1-28所示。有关模块的相关概念和具体操作详见第四部分的第11章。
重要提示
Access 2010数据库使用新格式来保存文件,创建扩展名为.accdb文件格式的数据库,而不是先前版本的.mdb文件格式。Access 2010向下兼容,在 Access 2010 中仍然可以打开和编辑低版本的数据库,但诸如文件菜单等各级菜单、数据库窗口以及工具栏等功能将被2010版本的用户界面所替代。
1.3 数据视图
数据库管理系统的主要目的之一是通过抽象来屏蔽数据存储和维护细节,为用户提供数据的抽象视图,以简化用户与数据库系统的交互。
1.3.1 数据抽象
1. 三个世界
数据处理的过程会涉及三个不同的世界:现实世界、信息世界和计算机世界。
现实世界是存在于人们头脑以外的客观世界,狭义上讲,现实世界就是客观存在的每个事物和现象。
信息世界是现实世界在人们头脑中的反映和解释,它将现实世界的事物用文字和符号记录下来,是现实世界的概念化。信息世界是对现实世界的抽象,并从现实世界中抽取出能反映现实本质的概念和基本关系。信息世界作为现实世界通向计算机世界的桥梁,起着承上启下的作用。
计算机世界是对信息世界的进一步抽象,反映数据特征和数据之间的联系,是信息世界的形式化和数据化。信息世界的信息在计算机世界中以数据的形式进行存储。有时也将计算机世界称为数据世界。
上述三个世界中的常用术语对照如表1-2所示。
2. 抽象层次
抽象层次由高到低依次划分为:视图层、逻辑层和物理层。
1)视图层:因为大多数用户并不需要访问数据库中的全部数据,所以视图层仅描述整个数据库的部分数据,为用户提供屏蔽了数据类型等细节的一组应用程序。并且从安全性考虑,系统在视图层定义了多个不同的视图使不同的用户访问不同的数据。
2)逻辑层:程序设计人员在这个抽象层次上使用某种高级程序设计语言进行工作。逻辑层描述整个数据库所存储的数据以及数据之间的关系。DBA通常在这个抽象层次上工作。
3)物理层:描述数据的实际存储情况。DBA可能需要了解某些数据物理结构的细节,程序设计人员可能没有必要了解这些细节。数据库系统为数据库程序设计人员屏蔽了许多物理层的存储细节。
1.3.2 视图
视图的本意是指一个人看到某个物体所得到的图像。物体有全局的概念,而视图具有局部的含义。将视图的概念引入数据库,数据库相当于一个全局的事物,而每个用户从数据库中看到的数据就形成了视图。例如,从教务管理系统中查看成绩,每名学生登录系统后只能看到自己的课程成绩。视图相当于数据库的一个子集,它提供了一个保密级别,可以通过创建视图将用户不能查看的数据排除在外。图1-29给出了与三个抽象层次对应的视图:用户视图、概念视图和存储视图。用户视图也称外部视图,呈现的是数据库的局部结构。概念视图呈现的是数据库的全局结构。存储视图也称内部视图,呈现的是存储记录的物理顺序和彼此关联的方式。
1.3.3 模式与实例
对数据库的描述或者说对包含在一个数据库中所有实体的描述定义,称为数据库模式,简称模式。在多个抽象级别进行定义就形成了多个级别的模式。特定时刻存储在数据库中的数据集合称为数据库的一个实例。同一个模式可以有很多实例。
通常情况下,模式在数据库设计阶段就要确定下来,一般不会频繁修改,因而是相对稳定的,而实例是变化的,因为数据库中的数据总是不断更新。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。
1.4 数据库系统
1.4.1 数据库系统的组成
在具体应用中,最终用户实际面对的是数据库系统,而不是数据库或数据库管理系统。数据库系统(DataBase System,DBS)是基于数据库的计算机应用系统。如图1-30所示,DBS由计算机软硬件、数据库(包括物理数据库和描述数据库)、数据库管理系统、数据库应用系统、数据库管理员以及用户组成。
其中,数据库应用系统是实现业务逻辑的应用软件,它通过向DBMS提出合适的请求(SQL语句)而与数据库进行交互。数据库应用系统是以操作系统、DBMS、高级程序设计语言和实用程序为软件环境,以某一领域的数据管理需求为应用背景,采用数据库概念和技术编写的一个可实际运行的计算机程序。它提供一个友好的图形用户界面,使用户可以方便地访问数据库中的数据。常见的数据库应用系统有信息管理系统、办公自动化系统、情报检索系统、高校教学管理系统、财务管理系统、商业交易系统等。
数据库管理员(DataBase Administrator,DBA)是负责对数据库进行全面管理和控制的人员。数据库是共享资源,可以被多个用户和应用程序共享,需要统一规划、管理、协调、监控,同时,数据库也是重要的信息资源,需要对数据库中数据的并发性、安全性、完整性以及故障恢复进行维护,DBA就是完成上述工作的人员或机构。DBA可能是一个人,也可能是一组人。对于一个规模较大的数据库系统,DBA通常指数据库管理机构或部门。DBA的工作很繁重也很关键,所有与数据库有关的事宜一般均由DBA来决定。
重要提示
数据库、数据库系统、数据库管理系统是三个不同的概念,在不引起混淆的情况下,数据库通常作为数据库系统或数据库管理系统的简称。比如,人们常说的数据库应用领域、数据库的三级模式结构,实际上是指数据库系统的应用领域、数据库系统的三级模式结构。又比如,甲骨文公司的Oracle是一款关系数据库管理系统产品,人们通常简称为 Oracle数据库。大学里常用的教学管理数据库系统,也常常称为教学管理数据库或教学管理系统。在实际学习中,到底是指哪一个概念,要根据上下文来理解。
1.4.2 数据库系统的特点
(1)数据的结构化
数据的结构化是指数据之间相互联系,面向整个系统。具体来说,就是数据库系统不仅描述数据本身,而且还描述数据之间的联系,实现了整体数据的结构化。数据的结构化也是数据库系统与文件系统的主要区别之一。
(2)数据共享程度高、易扩充、冗余度低
共享是指数据可以被多个用户、多个应用程序使用。冗余度是指同一数据被重复存储的程度。共享程度高可以大大减少数据冗余,节约存储空间,避免数据的不一致性。此外,由于数据库设计是面向系统而不是面向某个应用,主要考虑的是数据的结构化,因而容易扩充。
(3)数据的独立性高
数据库系统的一个重要目标就是要使程序和数据真正分离,使它们能独立发展。数据的独立性就是指数据独立于应用程序,两者之间互不影响。数据的独立性包括逻辑独立性和物理独立性。
(4)数据控制能力较强
数据由DBMS统一管理和控制,包括数据的并发控制、安全性控制、完整性控制以及故障恢复等。
1.4.3 数据库系统的体系结构
数据库系统的体系结构分为外部体系结构和内部体系结构。外部体系结构是指从数据库最终用户的角度来看数据库系统,一般分为集中式结构、分布式结构、客户/服务器结构和并行结构。内部体系结构是指从数据库管理系统的角度来看数据库系统。本小节介绍数据库系统的内部体系结构,即三级模式结构。
1. 数据库系统的三级模式结构
根据美国国家标准化协会和标准计划与需求委员会提出的建议,将数据库系统的内部体系结构定义为三级模式和二级映像结构,如图1-31所示。数据库系统的三级模式之间的联系通过二级映像实现,实际的映像转换工作由DBMS完成。
与数据抽象的层次相对应,数据库系统的三级模式分别是外模式、模式和内模式,如图1-32所示。一个数据库只有一个模式、一个内模式,但可以有多个外模式。数据库系统的三级模式不仅可以使数据具有独立性,而且还可以使数据达到共享,使同一数据能够满足更多用户的不同要求。
(1)外模式
外模式(External Schema)也称子模式或用户模式,是数据库在视图层上的数据库模式。它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
一个数据库可以有多个外模式,由于不同用户有不同的需求,以及拥有不同的访问权限,因此,对不同用户提供不同的外模式的描述,即每个用户只能看见和访问所对应的外模式中的数据。同一外模式可以为多个应用程序使用,但一个应用程序只能使用一个外模式。
例如,大学的教学管理系统中,学生可能需要知道所选课程的名称、学分、授课教师、地点、时间以及课程成绩,但不必知道授课教师的工资、福利等信息。授课教师只需要知道所教学生的学号、姓名、性别、专业、所在学院以及所教课程的学生成绩,但不必知道学生其他课程的成绩以及学生的年龄、籍贯等其他信息。这样就需要为教师和学生分别建立一个数据库视图。
DBMS提供外模式DDL来严格地定义外模式,例如为教师创建一个所教课程号为C1的学生成绩视图,使用SQL语句表示如下。有关SQL的内容将在本书第三部分详细介绍。
CREATE VIEW 学生成绩
AS
SELECT 学号, 课程号, 成绩
FROM 成绩
WHERE 课程号="C1";
(2)模式
模式(Schema)也称逻辑模式,是在逻辑层描述数据库的设计。模式是数据库中全体数据的逻辑结构和特征的描述,通常称为数据模式,是所有用户的公共数据视图。模式实际上是数据库数据在逻辑层上的视图。
DBMS一般提供模式DDL来严格定义数据的逻辑结构、数据之间的联系以及与数据有关的安全性要求、完整性约束等。数据的逻辑结构包括数据记录的名字以及数据项的名字、类型、取值范围等。
下面给出了教学管理数据库系统中模式的例子,其中标有下划线的字段是主键:
学生模式:学生(学号,姓名,性别,出生日期,所在系,班级)
系模式:系(系号,系名,系主任)
课程模式:课程(课程号,课程名,所在系,学分)
选修模式:选修(学号,课程号,成绩)
(3)内模式
内模式也称存储模式。它是对数据库物理结构和存储方法的描述,是数据在存储介质上的保存方式。例如,数据的存储方式是顺序存储还是按照 B 树结构存储等。
一般由DBMS提供的内模式DDL来定义内模式。内模式对一般用户是透明的,通常不需要关心内模式具体的实现细节,但它的设计会直接影响数据库的性能。
2. 数据独立性与二级映像
(1)数据独立性
在三级模式中提供了二级映像,以保证数据库系统的数据独立性。数据的独立性包括物理独立性和逻辑独立性。
物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据相互独立,应用程序不会因为物理存储结构的改变而改变。物理独立性使得在系统运行中,为改善系统效率而调整物理数据库不会影响应用程序的正常运行。
逻辑独立性是指用户的应用程序与数据库的逻辑结构相互独立。数据库的逻辑结构改变了,如增删字段或联系,也不需要重写应用程序。
(2)二级映像
二级映像在DBMS内部实现数据库三个抽象层次的联系和转换。二级映像包括外模式/模式映像和模式/内模式映像。二级映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。
- 外模式/模式映像。即外模式到逻辑模式的映像,它定义了数据的局部逻辑结构与全局逻辑结构之间的对应关系。该映像定义通常包含在各自外模式的描述中。对于每一个外模式,数据库系统都有一个外模式/模式映像。当逻辑模式改变时,由DBA对各个外模式/模式映像做相应改变,使外模式保持不变,从而不必修改应用程序,保证了数据的逻辑独立性。
- 模式/内模式映像。即逻辑模式到内模式的映像,定义了数据的全局逻辑结构与物理存储结构之间的对应关系。该映像定义通常包含在模式描述中。数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像也是唯一的。当数据库的存储结构改变(如换了另一个磁盘来存储该数据库)时,由DBA对模式/内模式映像做相应改变,使模式和外模式保持不变,从而保证了数据的物理独立性。
重要提示
- 模式是内模式的逻辑表示,内模式是模式的物理实现,外模式则是模式的部分抽取,它定义在模式之上,独立于内模式和存储设备。
- 模式是数据库系统的中心和关键,因此,在数据库设计中首先应该确定数据库的模式。
- 外模式面向具体的应用程序,当应用需求发生较大变化导致相应的外模式不能满足其要求时,外模式就需要做相应的修改。因此,设计外模式时应充分考虑具体应用的可扩充性。
- 数据库三级模式之间的转换是在DBMS的统一控制下实现的。
1.5 小结
数据处理也称信息处理,数据是符号化的信息,信息是语义化的数据。数据管理是数据处理的中心问题,数据管理技术的优劣直接影响数据处理的效率。数据库技术是数据管理的最新技术。
数据库是由数据库管理系统(DBMS)进行管理的数据集合,这种集合可以长期保存。数据库管理系统允许用户使用数据定义语言建立数据库并说明数据的逻辑结构,同时提供了查询、更新数据的操作以及控制多个用户或应用程序对数据的访问。数据库系统就是采用数据库技术的计算机系统。DBMS是数据库系统的核心,数据库中的数据都是由DBMS统一进行管理和控制的。从DBMS角度看,数据库系统通常采用三级模式结构和二级映像。三级模式结构是由外模式、模式和内模式三级组成。二级映像保证了数据的独立性。
习题
1.名词解释:
数据、信息、数据处理、数据库、数据库管理系统、数据库应用系统、数据库系统、数据库管理员、数据字典、外模式、逻辑模式、内模式、数据的独立性
2.简述文件管理方式的缺点。
3.简述数据库管理系统的主要功能。
4.简述数据库系统的特点。
5.简述数据库系统中的数据独立性是如何实现的。