数据库系统主要由三大部分组成:数据库管理系统(DBMS,专门负责组织和管理数据信息的程序)、数据库应用程序(它使得能够获取、显示和更新由DBMS存储的数据)、数据库。
一、数据库管理系统(Data Base Management System)
简称为DBMS,是用于描述、管理和维护数据库的程序系统,是数据库系统的核心组成部分。它建立在操作系统的基础上,对数据库进行统一的管理和控制。它的主要功能是:
(1)描述数据库:描述和定义数据库的逻辑结构、存储结构、语义信息和保密要求等。
(2)管理数据库:控制整个数据库系统的运行,控制用户的并发性访问,检验数据的安全、保密与完整性,执行数据检索、插入、删除、修改等操作。
(3)维护数据库:控制数据库初始数据的装入,记录工作日志,监视数据库性能,修改更新数据库,重新组织数据库,恢复出现故障的数据库。
(4)数据通信:组织数据的传输,以保证多个用户同时使用数据库。
根据数据库管理系统所基于的数据模型的不同,数据库管理系统(DBMS)又可分为四种类型:文件管理系统、层次数据库系统、网状数据库系统和关系数据库系统。目前关系数据库系统应用最为广泛。如常见的FoxPro、Access、Oracle等都属于关系数据库系统。在众多的关系数据库管理系统(RDBMS)中,Oracle和Sybase主要应用于大型数据库应用系统,而dBase、FoxBase、FoxPro、Access主要用于中小型数据库应用系统。
二、数据库应用程序
DBMS中存储了大量的数据信息,其目的是为用户提供数据信息服务,而数据库应用程序正是与DBMS进行通信,并访问DBMS中的数据,它是DBMS实现其对外提供数据信息服务这一目的的唯一途径。简单地说,数据库应用程序是一个允许用户插入、修改、删除并报告数据库中的数据的计算机程序。数据库应用程序在传统上是由程序员用一种或多种通用或专用的程序设计语言编写的,但是近年来出现了多种面向用户的数据库应用程序开发工具,这些工具可以简化使用DBMS的过程,并且不需要专门编程。
用来生成数据库应用程序的语言主要分为以下类型:
(1)过程化语言(忽略)
标准的计算机程序设计语言如Pascal、Basic和C都是过程化语言,这些语言可以通过某种“应用程序接口”(API)来创建数据库应用程序,这种API由一组标准的函数(或调用)组成,这些函数和调用则扩展了语言的功能,使之能访问数据库中的数据。当程序设计人员用过程化语言创建数据库应用时,必须把应用的代码编写成一系列的过程,每个过程执行应用的某一部分的工作,如一个过程查询数据库,而另一过程更新数据库中的数据,然后不同的过程通过其他的用户界面过程(例如菜单系统)联系在一起,并且在应用中的适当地方运行。
上述这些过程化语言一般用来创建非数据库应用程序,它们通常被称为“第三代语言”(3GL)。还有一些过程化程序设计语言是某种特定的DBMS专用的,这些语言一般被称为“第四代语言”(4GL),即数据库专用语言。常见的数据库专用的过程化语言如dBASE语言,Paradox数据库的PAL语言等等。
(2)结构化查询语言(SQL)
结构化查询语言(Structure Query Language)是基于关系模型的数据库查询语言,它是一种非过程化的程序语言,也就是说,没有必要写出将如何做某件事情,只需写出做到什么就可以了。
(3)其他语言
用于开发数据库应用程序的语言中,还可以使用目前数常见的“面向对象程序设计”(OOP)语言,如C++、 Objact Pascal等,OOP代表了一种完全不同的程序设计方法,在这种程序设计方法中,活动被定义为在“对象”上发生的操作,而不是作为一系列过程来定义的。在数据库应用程序中使用OOP语言的情况正在不断增加。开发数据库应用程序使用的另一种语言是“宏”语言。宏语言不是一种完全的程序设计语言,它实际上是一个用户手工输入的表,这个表被输入到应用程序中,以便自动执行一定的任务。对于某个特定应用的高级语言,宏语言通常可以在低档DBMS软件中或数据库服务器的前端中找到。
(4)范例查询语言
还有一种“Query-By-Example”(QBE,范例查询)语言。严格地讲QBE不是一种语言,它是面向用户提供了一个或多个空表的界面,这些空表对应于数据库中的表。用户可以通过键盘选择需要查询的列,并在适当的列中填入条件从而定义查询的检索条件,然后DBMS就把QBE转换成相应的动作,以完成用户要求的查询任务。数据库系统从文件管理系统发展而来,已经经历了层次模型,网状模型以及到目前主流的关系模型三个阶段。
常见的数据库数据恢复成功率,在目前的专业
数据恢复公司中,对文件损坏数据库的数据恢复水平:Sql server/Access 数据库恢复成功率比较高;Oracle数据库的恢复成功率很高;Sybase/DB2/MySql/Informix恢复成功率较低。误删除的恢复水平: Sql server/Oracle/Sybase/DB2/Informix恢复成功率比较高;Access/MySql由于没有日志所以恢复成功率很低