数据库发展历史
1、介绍
数据库技术,是之前60年代开始兴起的一门信息管理自动化的新兴学科,是计算机科学中的一个重要分支。随着计算机应用的不断发展,数据处理越来越占主导地位,数据库技术的应用也越来越广泛。数据管理是数据库的核心任务,内容包括对数据的分类、组织、编码、储存、检索和维护,数据库是以一定方式储存在一起,能与多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。
2、发展阶段:
从数据管理的角度看,数据库技术到目前共经历了以下几个阶段:
(1)人工管理阶段
(2)文件系统阶段
(3)数据库系统阶段
- 人工管理阶段
这个时期的计算机主要用于科学计算。从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有操作系统和管理数据的软件,数据处理方式是批处理。
特点:
(1)数据不保存
该时期的计算机主要应用于科学计算,一般不需要将数据长期保存,只是在计算某一课题 时将数据输入,用完后不保存原始数据,也不保存计算结果。
(2)没有对数据进行管理的软件系统
程序员不仅要规定数据的逻辑结构,而且还要在程序中设计物理结构,包括存储结构、存取方法、输入输出方式等。因此程序中存取数据的子程序随着存储的改变而改变,数据与程序不具有一致性。
(3)没有文件的概念
数据的组织方式必须由程序员自行设计。
(4)一组数据对应于一个程序,数据是面向应用的
即使两个程序用到相同的数据,也必须各自定义、各自组织,数据无法共享、无法相互利用和互相参照,从而导致程序和程序之间有大量重复的数据。
- 文件系统阶段
计算机不仅用于科学计算,而且还大量用于管理数据的阶段(从50年代后期到60年代中期)。在硬件方面,外存储器有了磁盘等直接存取的存储设备。在软件方面,操作系统中已经有了专门用于管理数据的软件,称为文件系统。
特点:
(1)数据需要长期保存在外存上供反复使用
由于计算机大量用于数据处理,经常对文件进行查询、修改、插入和删除等操作,所以数据需要长期保留,以便于反复操作。
(2)程序之间有了一定的独立性
操作系统提供了文件管理功能和访问文件的存取方法,程序和数据之间有了数据存取的接口,程序可以通过文件名和数据打交道,不必再寻找数据的物理存放位置,至此,数据有了物理结构和逻辑结构的区别,但此时程序和数据之间的独立性尚还不充分。
(3)文件的形式已经多样化
由于已经有了直接存取的存储设备,文件也就不再局限于顺序文件,还有了索引文件、链表文件等,因而,对文件的访问可以是顺序访问,也可以是直接访问。
(4)数据的存取基本上以记录为单位
- 数据库系统阶段
从60年代后期开始。在这一阶段中,数据库中的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用的。
特点:
(1)采用复杂的结构化的数据模型
数据库系统不仅要描述数据本身,还要描述数据之间的联系。这种联系是通过存取路径来实现的。
(2)较高的数据独立性
数据和程序彼此独立,数据存储结构的变化尽量不影响用户程序的使用。
(3)最低的冗余度
数据库系统中的重复数据被减少到最低程度,这样,在有限的存储空间内可以存放更多的数据。
(4)数据控制功能
数据库系统具有数据的安全性,以防止数据的丢失和被非法使用;具有数据的完整性,以保护数据的正确、有效和相容;具有数据的并发控制,避免并发程序之间的相互干扰;具有数据的恢复功能,在数据库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个时刻的正确状态。
3、数据库的主要特点
(1)实现数据共享
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
(2)减少数据的冗余度,冗余度低
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
(3)数据的独立性
数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
(4)数据实现集中控制
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
(5)数据一致性和可维护性,以确保数据的安全性和可靠性
安全性控制:以防止数据丢失、错误更新和越权使用;
完整性控制:保证数据的正确性、有效性和相容性;
并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;
故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障;
(6)故障恢复
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。
4、数据库类型
关系型数据库
Oracle
Mysql
PostgreSql
DB2
Microsoft SQL server
MicroSoft Access
非关系型数据库
Redis
Mongodb
Big Table
关系型数据库和非关系型数据库数据之间的区别
关系型数据库
关系型数据库最典型的数据结构是表,有二维表及其之间的联系所组成的一个数据组织,支持事物一致性特性
优点:
(1)易于维护:都是使用表结构,格式一致
(2)使用方便:SQL语言通用
(3)支持复杂操作:可用于一个表及其多个表之间非常复杂的查询
缺点
(1)性能差:读写性能较差,尤其是对海量数据的高效率读写(传统关系型数据库的硬盘I/O是一个很大的瓶颈)
(2)存储方式不灵活:固定的表结构,灵活度欠缺
非关系型数据库
非关系型数据库严格上来说不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者是键值对等,不支持事物一致性特性
优点
格式灵活:存储数据的格式可以是键值对形式,文档形式,图片形式等
高扩展性:基于键值对,数据没有耦合性,容易扩展
缺点
不支持SQL:不提供sql支持,学习和使用成本较高
不支持事务:无事务处理能力
不支持复杂查询:数据结构相对复杂,复杂查询方面欠缺
5、相关概念
- DB(Data Base):数据库,保存一组有组织的数据的容器
- DBMS(DataBase Management System):数据库管理系统,用于管理DB中的数据
- SQL:结构化查询语言,用于和DBMS通信的语言。
- DBA(database administrator)数据库管理员
- DBS(database system)数据库系统:包括DB、DBMS、DBA等
常见数据库管理系统:Mysql\Oracle(要收费)\DB2\SqlServer等