今天介绍的内容包括一下几点:
1、什么是数据库,也就是数据库的基本概念。
2、数据库的发展。
3、数据库的组成。
4、当前流行的数据库。
5、网络数据库的安全隐患。
1、什么是数据库
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
2、数据库的发展
A、文件系统
大家知道,计算机的主要功能就是:计算和数据储存。因为有了对数据的储存,才更好的完成知识的积累。数据怎么在介质上保存,是计算机一开始就要面对的问题。
最早的储存方式就是打孔方式。后来IBM发明了硬盘,于是开始了以硬盘为介质的存储方式。在数据的储存过程中,以什么结构来储存海量数据是数学家和计算机专家长期研究的问题。
最早和最基本的存储方式是文件系统。这里插一句,其实我们用的操作系统,就是建立在对硬件的管理基础上的,其中对硬盘数据的管理就是非常重要的一方面。没一种操作系统都会提供一种最基本的数据保存形式,也就是文件系统。比如 ms-dos,win95 fat16、win2000 fat32、win nt ntfs、linux ext2、ext3、ext4 等。
B、关系数据库
有了文件系统对数据的管理,为什么还需要数据库呢?因为文件系统有自身的缺点:
(1)、格式不明显;
(2)、不利于查找;
(3)、没有加密功能;
(4)、数据的管理能力比较差;
(5)、浪费磁盘空间,
(6)、不易扩充和升级、维护性比较差。
上面说的文件系统保存数据,比如win2000 的 fat32 格式吧,他是将磁盘划分为4KB的簇,如果一个文件(记录)只有几个B,当然,大量的数据都是这样的,那几个B的数据如果用文件保存在磁盘的时候怎么办,它也是占用一个簇。如果有大量的这样的文件,势必造成对磁盘的极大浪费。数据库的这个功能和压缩软件的功能起到的效果是差不多的。
C、面向对象的数据库
面向对象是一种认识方法学,也是一种新的程序设计方法学。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。
在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中, 其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。 这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。
D、数据仓库
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。
数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。
数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
特点
1、数据仓库是面向主题的;
2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出
数据仓库的核心工具
来,进行加工与集成,统一与综合之后才能进入数据仓库;
3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;
4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求,他在商业领域取得了巨大的成功。
体系结构
数据源
是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;
数据的存储与管理
是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
OLAP(联机分析处理)服务器
对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和HOLAP(混合型线上分析处理)。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
前端工具
主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
组成
数据仓库数据库
是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
突出的特点是对海量数据的支持和快速的检索技术。
数据抽取工具
把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。
元数据
元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。
技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。
商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;
元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。
访问工具
为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。
数据集市(DataMarts)
为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。
数据仓库管理
安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。
信息发布系统
把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。
3、数据库的组成
数据库系统是指在计算机系统引入数据库后的系统组成,包括计算机、数据库、操作系统、数据库管理系统、数据库开发工具、应用系统、数据库管理员和用户。概括来说,数据库系统主要由硬件、数据、软件和用户四部分构成。
① 数据:数据是数据库系统中存储的信息,它是数据库系统的操作对象,存储在数据库中的数据具有上述数据库的几大特性。
② 硬件:硬件是数据库系统的物理支撑。
③ 软件:软件包括系统软件与应用软件,其中系统软件包括操作系统及负责对数据库的运行进行控制和管理的核心软件——数据库管理系统;而应用软件是在DBMS的基础上由用户根据实际需要自行开发的应用程序。
④ 用户:指使用数据库的人员。在数据库系统中主要由终端用户、应用程序员和数据库管理员三类用户组成。终端用户是使用数据库应用系统的工程技术或管理人员,他们无须掌握太多的计算机知识,利用应用系统提供的接口查询获取数据库的数据。应用程序员是为终端用户编写数据库应用程序的软件人员。数据库管理员(DBA)是全面负责数据库系统运行的高级计算机人员,是数据库系统一个很重要的人员组成。
数据库系统的组成结构。
数据库、数据库管理系统、数据库应用系统和数据库系统是几个不同的概念,数据库强调的是数据;数据库管理系统是系统软件;数据库应用系统面向的是具体的应用;而数据库系统强调的是系统,它包含了前三者。
在使用Mysql数据库时,大家经常使用的phpMyAdmin就是一套数据库管理系统,而我们做的网站,就是数据库的应该系统。
4、当前流行的数据库
麦杰的openPlant实时数据库
实时数据库系统介绍
实时数据库系统是数据库理论在新领域的扩展,在电力、化工、钢铁、冶金、造纸、交通控制和证券金融等领域有着非常广阔的应用前景。它可以为企业提供高速、及时的实时数据服务,能够对快速变化的实时数据进行长期高效的历史存储,是工厂控制层(现场总线、DCS、PLC等)与生产管理系统之间连接的桥梁,同时也是流程模拟、先进控制、在线优化、故障诊断等系统的数据平台。
openPlant实时数据库系统采用当今先进的技术和架构,可安全、稳定地实现与现场各控制系统的接口,并能对采集来的数据进行高效的数据压缩和长期的历史存储,同时提供方便易用的客户端应用和通用的数据接口(API/DDE/ODBC/JDBC/OPC等),使企业的管理和决策人员能及时、全面的了解当前的生产情况,也可回顾过去的生产情况,及时发现生产中所存在的问题,提高设备利用率,降低生产成本,增强企业的核心竞争力。
实时数据库系统特点
■ 企业级的生产实时数据平台
■ 分布式数据库架构,满足集团级需求
■ 实时访问全厂生产数据
■ 高效的数据压缩和长期历史存储
■ 支持在线计算和统计
■ 专业的图形仿真技术,监视画面与控制系统完全一致
■ 丰富的客户端应用工具
■ 优异的跨平台性能,支持Unix/Linux/Windows等操作系统
■ 开放的数据接口,如API/DDE/ODBC/JDBC/OPC
■ 200,000点上万小时现场稳定运行考验
■ 支持远程访问,随时随地享用生产信息
■ 个性化定制服务,让您从容应对不断变化的用户需求
IBM 的DB2
作为关系数据库领域的开拓者和领航人,IBM在1977年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
Informix
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
SQL Server
1987 年,微软和IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。
PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象——关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.
mySQL
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
Access数据库
美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。其主要特点如下:
(1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。
(2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。
(3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。
(4)作为Office套件的一部分,可以与Office集成,实现无缝连接。
(5)能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。
SQLite
SQLite是遵守ACID的关联式资料库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
FoxPro数据库
最初由美国Fox公司1988年推出,1992年Fox公司被Microsoft公司收购后,相继推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了较大的提高。 FoxPro2.5、2.6分为DOS和Windows两种版本,分别运行于DOS和Windows环境下。FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。
5、网络数据库的安全隐患
一、导致安全问题存在的原因
目前导致电子商务网站数据库存在安全隐患的原因主要表现在以下几个方面:
(1)用户对数据库的不正确访问,引起数据库数据的错误;
(2)为了某种目的,故意破坏数据库,使其不能恢复;
(3)非法访问不该访问的数据库信息,但又不留痕迹;
(4)用户通过网络进行数据库访问时,有可能受到各种技术(如搭线窃听等)的攻击;
(5)非法用户绕过安全内核,窃取信息资源等现象;
(6)未经授权非法修改数据库数据,使其数据失去真实性等等;
(7)数据库服务器的物理安全。地震、火灾、断电等对数据库服务器的破坏。
(8)脚本语言(ASP,PHP,JSP等)带来的安全问题
a.脚本语言程序源代码的隐患
由于脚本语言程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而造成脚本语言应用程序源代码的泄露。
b.程序设计中的安全隐患
脚本语言代码利用表单(form)实现与用户交互的功能,而相应的内容会反映在浏览器的地址栏中,如果不采用适当的安全措施,只要记下这些内容,就可以绕过验证直接进入某一页面。例如在浏览器中敲入“page.asp?x=1”,即可不经过表单页面直接进入满足“x=1”条件的页面。因此,在设计验证或注册页面时,必须采取特殊措施来避免此类问题的发生。
二、保护电子商务网站数据库安全的方法
(一)非常规命名法
修改数据库的主文件名。防止数据库被找到的简便方法是为Access数据库文件起一个复杂的非常规名字,并把它存放在多层目录下。例如,对于网上花店的数据库文件,不要简单地命名为“flower.mdb”或“bloom.mdb”,而是要起个非常规的名字,例如:halower123.mdb,再把它放在如/wh123/wd123d/hoo9/dh123/abc之类的深层目录下。这样攻击者想简单地猜测数据库的位置就很困难了。另外,把mdb扩展名修改为ASP或ASA等不影响数据查询的名字
但是有时候修改为ASP或者ASA以后仍然可以被下载,如将mdb修改为ASP以后,直接在IE的地址栏里输入企业提供安全高效的信息服务。
(二)使用ODBC数据源
在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在程序中。 如果,ASP源代码失密后,数据库也很容易被下载下来。如果使用ODBC数据源,就不会存在这样的问题了。
(三)加密ASP页面
可以使用微软公司的免费软件Script Encoder对ASP页面进行加密。它可以对当前目录中的所有的ASP文件进行加密,并把加密后的文件统一输出到相应的目录中。由于Script Encoder只加密在HTML页面中嵌入的ASP代码,其他部分仍保持不变,这就使得我们仍然可以使用FrontPage等常用网页编辑工具对HTML部分进行修改、完善,操作起来简单方便、效果良好。
(四)利用Session对象进行注册验证
为防止未经注册的用户绕过注册界面直接进入应用系统,可以采用Session对象进行注册验证。Session对象最大的优点是可以把某用户的信息保留下来,让后续的网页读取。一般情况,在设计网站时都要求用户注册成功后才可登录。但如果不采用Session对象进行注册验证,则用户在浏览器中敲入“URL/hrmis.asp?page=1”即可绕过注册界面,直接进入系统。利用Session对象可以有效阻止这一情况的发生。
三、保障电子商务网站数据库安全的措施
(一)、存在漏洞的保护措施
1、数据库文件名应复杂
下载Access数据库文件,首先必须知道该数据库文件的存储路径和文件名。如果你将原本非常简单的数据库文件名修改得更加复杂,这样那些“不怀好意”者就要花费更多的时间去猜测数据库文件名,无形中增强了Access数据库的安全性。很多ASP程序为方便用户使用,它的数据库文件通常都被命名为“data.mdb”,这大大方便了有经验的攻击者。如果我们将数据库文件名修改得复杂一些,他人就不易猜到,如将“data.mdb”修改为“1rtj0ma27xi.mdb”,然后修改数据库连接文件中的相应信息。这样Access数据库就相对安全一些。此方法适合于那些租用Web空间的用户使用。
但其不足之处是,一旦查看到数据库连接文件中的内容,再复杂的文件名也无济于事。
2、利用ODBC数据源
很多网站Web程序,将Access数据库文件的存储路径和文件名存放在数据库连接文件中。一旦这些连接文件中的内容外泄,那么不管数据库文件名多么复杂,都会暴露出踪迹。
这时就可以使用ODBC数据源方法,即使连接文件的内容外泄,他人也只能知道网站程序所使用的ODBC数据源名称,而数据库文件的存储路径和文件名却无法找到。接着在IIS服务器中新建名为“rtjmaxi”的ODBC数据源,并在其中指定“1rtj0ma27xi.mdb”数据库文件的位置即可,最后点击“确定”按钮完成配置。
但其不足之处是,此方法不适合于租用Web空间的用户使用,要想使用ODBC数据源方法,必须要有管理和维护IIS服务器的权限。
3、改变存储位置
一般情况下,Access数据库文件存放在相应的Web目录中,很多黑客就是利用这种规律来查找并下载数据库文件。因此可以采用改变数据库文件存储位置的方法,将数据库文件存放在Web目录以外的某个文件夹中,让黑客难以猜测存储位置。接着修改好数据库连接文件中的数据库文件相应信息,这样Access数据库文件就安全多了。即使攻击者通过连接文件找到数据库文件的存储路径,由于数据库文件存放在Web目录以外的地方,攻击者就无法通过HTTP方式下载数据库文件。但其不足之处是,此方法不适合于租用Web空间的用户使用,因为将Access数据库文件移至Web目录之外,一般需要很大的权限。
以上方法,在不同程度上增强了数据库文件的安全性,但我们不能将它们当成“仙丹妙药”,毕竟网络环境是复杂的,黑客的破坏手段也在不断增强,我们可以根据自己的需要,选择其中的多种方法配合使用,效果才会更理想,网站数据库后台文件才会更加安全。
(二)、网站数据库管理安全的措施
服务器管理员还应在IIS中为每个网站设置好执行权限,可千万别给人家静态网站以"脚本和可执行"权限。一般情况下给个"纯脚本"权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为"无"好了,这样做是为了防止人家上传ASP木马,执行权限设为"无",人家上传ASP木马也运行不了。一般情况下,SQL注入漏洞仅是涉及一个网站安全的事,如果人家通过这个漏洞上传了ASP木马并运行起来,那整个服务器都失陷了。所以有远见的、有责任心的服务器管理员应该十分吝啬的配置IIS的执行权限。
程序员主要要做两件事,最重要的一件事,当然是对客户端提交的变量参数进行仔细地检测。对客户端提交的变量进行检查以防止SQL注入。二是给用户密码加密。比如用MD5加密。MD5是没有反向算法,不能解密的。人家即使知道经加密后存在数据库里的像乱码一样的密码,他也没办法知道原始密码了。
下节内容
数据库的操作--结构化查询语言
程序对数据库的操作