随着计算机技术的发展,数据库技术作为数据管理的基本信息技术和软件工具已经在科研部门、政府机关、企事业单位甚至于人们的日常生活等各个方面得到了广泛地应用,可以说数据库系统已经成为社会各个领域正常运作的重要基础元素。
也许你并未特别意识到,但事实是有关你的很多信息早就成为数据库中信息的一部分,或者说你每天或多或少地都在与数据库直接或间接地打着交道。
你的身份证或户籍信息存储在居民信息管理中心的数据库中;
你的手机或电话信息存储在移动或电信公司的信息管理中心数据库中;
你的银行(信用)卡信息存储在银行信息管理中心数据库中;
你到图书馆去查阅书籍时,已经不需要翻阅书籍目录卡片了,而是通过相应的计算机软件直接搜索,但你所搜索的信息也是有相应的数据库支持的;
你的网络聊天QQ号或网络邮箱账号信息存储在网站信息管理中心数据库中;
如果你是一名学生,你的学籍信息都存储在学校的学籍信息管理中心数据库中。
说到这里,你也许会受到启发联想到更多与你相关的信息也存储在某类数据库中。
而随着因特网(Internet)的出现和发展,还有随之而来的企业内部网(Intranet)和企业外部网(Extranet)以及虚拟私有网(Virtual Private Network,VPN)的产生和应用,将整个世界联成一个小小的地球村,人们可以跨越时、空、地在网上交换信息和协同工作。这样,展现在人们面前的已不是局限于本部门、本单位和本行业的庞大数据库,而是浩瀚无垠的信息海洋。现在的数据库系统通常是借助于计算机网络进行接受、传递和反馈信息的。
那么什么是数据库?什么是数据库系统?如何组织和存储数据库中的信息?如何提取和处理数据库信息?如何对数据库进行各种满足需求的操作?本章将以基础应用为主线,在实现具体应用的过程中概述性地给予解答。
7.1数据库应用示例
首先让我们看一个用Microsoft Access 编制的学籍信息管理系统(简单版)应用示例,先了解一下应用示例的系统功能和运行界面效果,旨在帮助你更直观更快捷地理解数据库信息处理的效果与应用目标。接着,我们会在本章后续的各个章节中,通过实现该应用示例,在具体的设计过程中展开和叙述相关的数据库概念和数据库应用。
7.1.1示例功能与界面
是一个学籍信息管理系统的登录口令验证界面和主窗体界面。
通过登录口令验证进入主窗体界面后,该系统可以实现如下主要功能:
1.数据库信息编辑浏览
当用户点击“编辑浏览”栏中任何一个按钮时,系统会分别自动跳出一个对数据库中对应表对象进行编辑浏览的窗体界面,其中可以对相应的表对象内容进行翻阅、浏览、修改、追加、删除(剪切)、复制和粘贴等操作。
2.数据库信息统计查询
当用户点击“统计查询”栏中任何一个按钮时,系统会自动跳出一个分别对学生成绩、课程成绩和所有成绩信息进行统计查询的窗体界面,通过点击窗体界面底部的记录跳转按钮,可以查询和浏览对应学生或课程的相关成绩信息(不及格的成绩分数显示为红色),但却不可以修改和删除信息。
3.数据库信息匹配查询
当用户点击“匹配查询”栏中任何一个按钮时,系统会自动跳出一个分别按输入的不同参数值进行匹配查询成绩信息的窗体界面,通过点击窗体界面底部的记录跳转按钮,可以查询和浏览对应学生或课程的相关成绩信息(不及格的成绩分数显示为红色),但却不可以修改和删除信息。
4.数据库信息报表
当用户点击“报表预览”栏中任何一个按钮时,系统会分别自动跳出一个对学生、课程及成绩信息输出报表的预览界面(不及格的成绩分数显示为红色)。
由上述应用示例所实现的功能和运行界面可以看到,Microsoft Access 运用可视化的控件界面为数据库的信息处理提供了直观方便的展示平台和操作环境,同时运用数据库信息访问技术可以完成满足应用需求的对信息的各种处理工作。
7.1.2示例数据来源
在前面的数据库应用示例中,无论是学籍信息的编辑和浏览,还是学籍信息的各种查询和报表输出,所有的信息都是出自同一个地方——“学籍管理”数据库。
“学籍管理”数据库中,有4个数据库表,分别是“学生”、“课程”、“成绩”和“专业”。
“学生”表中存储了有关学生的相关信息;“课程”表中存储了有关课程的相关信息;而“成绩”表中存储的是学生选修的所有课程的成绩信息。“学生”表和“成绩”表通过“学号”来关联,而“课程”表与“成绩”表则由“课程号”来联系。“专业”表中存储了所有专业名称,用于“学生”表编辑时快速向导查阅链接之用。
如果与“学生”、“课程”、“成绩”和“专业”表相关的信息发生了变化,那么只要对“学籍管理”数据库中的4个数据库表的信息进行编辑,就可以自动获取所有更新后的信息资源(如查询、窗体和报表中的信息等)。
7.1.3数据访问方式
窗体、报表甚至网页中的信息之所以会随着数据库中信息的改变而改变,是由于数据库的独特高效的数据访问技术,其原理很简单。窗体或报表中显示的信息都与特定的数据源捆绑在一起,而这个数据源是来自对数据库访问的记录集(表记录集或查询记录集),记录集是直接反映数据库中各个表的实际信息状态的。是“学生表编辑界面”窗体的数据源捆绑设置情况,而则直观地表示了数据库的数据访问方式。
7.2数据库概述
7.2.1数据管理技术
数据库,顾名思义,是用来存储数据的仓库,但是数据应该以怎样的形式、以何种关系、以什么样的结构进行存储,可以使得原本看似无意义的零散原始数据变成有关联、有价值和有寓意的信息,便于信息的访问、查询、统计和输出?这应该是数据库的关键技术所在。
1.数据库中的数据与信息
我们知道任何事物的属性都是通过数据来表示的,数据是信息的物理表示和载体。
一个简单的例子,可以理解数据与信息的关系,比如:“070211001”,“0001”,95.2。这是3个数据,2个字符数据,1个数字数据,如果不赋予其含义和关联,它们没有任何意义,只是一些离散的数据而已。但是在数据库中它们可以表示一条有意义的信息:学号为“070211001”的学生,其课程编号为“0001”课程的期末成绩为95.2分。如果将相关信息关联起来,还可以得出更详尽的信息:学号为“070211001”的“经济学”专业的“女”学生“张海谰”,其课程编号为“0001”,“第一学期”学分为4的“考试”课程“高等数学”的期末成绩为95.2分。
数据库中的数据是指可以通过特定设备输入到计算机中,并可以进行储存、处理和传输的各种数字、字母、文字、声音、图片和视频的总称。
数据库中的信息是指将数据经过处理、组织并赋予一定关联和意义后的数据集合。
2.数据库系统管理
数据处理的一个重要方面就是数据管理,计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段和途径。
数据管理经历了由低级到高级的人工管理、文件系统和数据库管理系统3个阶段。
20世纪60年代后期开始,计算机用于数据管理的规模迅速扩大,对数据共享的需求日益增强,为解决数据的独立性问题,实现数据统一管理,达到数据共享的目的,发展了数据库技术。
数据库技术试图提供一种完善的、更高级的数据管理方式,它的基本思想是解决多用户数据共享的问题,实现对数据的集中统一管理,具有较高的数据独立性,并为数据提供各种保护措施。数据库管理软件作为用户与数据的接口。
概括起来,数据库技术的数据管理具有以下特点:
(1)数据模型表示复杂的数据结构:数据模型不仅描述数据本身的特征,还要描述数据之间的联系。数据面向整个应用系统。数据冗余少,实现了数据共享。
(2)具有较高的数据独立性:数据的逻辑结构与物理结构之间的差别可以很大。用户以简单的逻辑结构操作数据而无需考虑数据的物理结构。数据库的结构分成用户的局部逻辑结构、数据库的整体逻辑结构和物理结构三级。用户(应用程序或终端用户)的数据和外存中的数据之间转换由数据库管理系统实现。
(3)数据库系统为用户提供了方便的用户接口:用户可以使用查询语言或终端命令操作数据库,也可以用程序方式(如用C、VB 等高级语言和数据库语言联合编制的程序)操作数据库。
(4)数据库系统提供了数据控制功能:有较高的数据安全性、完整性,实现并发控制。
(5)系统操作的灵活性:对数据的操作不一定以记录为单位,可以以数据项为单位,提供数据排序、统计、分析、制表等多种数据操作。
7.2.2数据库系统
数据库系统(Data Base System,DBS)的运作是构架在计算机之上的,所以数据库系统的前提组成元素必然是计算机硬件,而计算机硬件又需要计算机软件的支撑和协作。
数据库是数据库系统中最基本的组成元素,而对数据库的所有数据管理相关功能的提供自然是最核心的组成元素数据库管理系统。
所以说数据库系统是一个引入数据库以后的计算机系统,它由计算机硬件(包括计算机网络与通信设备)及相关软件(如操作系统)、数据库、数据库管理系统、数据库应用开发系统和用户组成。
1.数据库(Data Base,DB)
简单地说,数据库是按照数据结构来组织、存储和管理数据的仓库。严格地说,数据库是结构化的相关数据的集合。这些数据是按一定的结构和组织方式存储在外存储器上,并具有最小的数据冗余,可供多个用户共享,为多种应用服务;数据的存储独立于使用它的程序;对数据库进行数据的插入、修改和检索均能按照一种通用的和可控制的方式进行。
2.数据库管理系统(DBMS ——Data Base Management System)
数据库管理系统是在操作系统支持下工作的管理数据的软件,它是整个数据库系统的核心。它负责对数据的统一管理,提供以下基本功能:对数据进行定义;建立数据库;进行插入、删除、修改、查询等操作;数据库的维护、控制;对数据的排序、统计、分析、制表等。同时它构架了一个软件平台和工作环境,提供了多种操作工具和命令,使得用户可以在方便友好的界面上实现和完成各种功能。
3.计算机硬件
数据库系统是建立在计算机系统上的,它需要基本的计算机硬件(主机和外设)支撑,硬件可以是一台个人计算机,也可以是中大型计算机,甚至是网络环境下的多台计算机。
4.计算机软件
在软件方面包括(网络)操作系统和作为应用程序的高级语言以及编译系统等。典型情况下,应用程序是用第三代编程语言(3GL)编写的,如:C、Java、Visual Basic 等,或者使用嵌入到3GL 中的第四代编程语言(4GL)编写,如SQL。
5.人
数据库系统通常有3种人员:对数据库系统进行日常维护的数据库管理员(DBA);用数据操纵语言和高级语言编制应用程序的软件开发程序员;使用数据库的终端用户。
7.2.3数据模型
1.数据模型概念
数据模型是现实世界中各种实体之间存在着联系的客观反映,是用记录描述实体信息的基本结构,它要求实体和记录一一对应,同一记录类型描述同一类实体且必须是同质的。
基于记录的数据模型,要求数据库由若干不同类型的固定格式的记录组成。每个记录类型有固定数量的域,每个域有固定的长度。
基于记录的逻辑数据模型基本有:层次模型、网状模型和关系模型3类,它们是依据描述实体与实体之间联系的不同方式来划分的。用树结构来表示实体与实体之间联系的模型叫做层次模型;用图结构来表示实体与实体之间联系的模型叫做网状模型;用二维表格表示实体与实体之间联系的模型叫做关系模型。
关系模型是目前数据库普遍采用的一种数据结构模型。由关系数据模型组成的数据库称为关系数据库,而管理关系数据库的软件称为关系数据库管理系统。
关系数据库管理系统是被公认为最有前途的一种数据库管理系统,目前已成为占据主导地位的数据库管理系统。自20世纪80年代以来,作为商品推出的数据库管理系统几乎都是关系型的,如大型数据库管理系统软件Oracle、SQLServer、DB2、Sybase 等,中小型数据库管理系统软件Informix、Visual Fox Pro和MS Access 等。
2.关系数据模型
关系模型是建立在严格的数学概念基础上的,由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系数据模型把一些复杂的数据结构归结为简单的二元关系(即二维表格形式),由行和列组成。