知识内容:
1.数据库技术的概述
2.数据库技术的发展
3.主流的数据库介绍
一、数据库技术的概述
1.什么是数据库、数据库管理系统、数据库系统
数据库(DB): 数据库是长期存放在计算机内的、有组织的、可共享的数据的集合
数据库管理系统(DBMS): 数据库管理系统是一种负责数据库的定义、建立、操作、管理和维护的软件系统
数据库系统(DBS): 数据库系统是实现有组织地、动态地存储大量关联数据方便多用户访问的计算机软件、硬件和数据资源组成的系统
2.数据库系统介绍
(1)数据库系统的分类
根据计算机的系统结构,DBS(数据库系统)可分为4类: 集中式、客户\服务式、并行式和分布式
(2)数据库系统组成部分
一个典型的数据库系统应该包括数据库、硬件、软件(应用程序)和数据库管理员(DBA)4个部分,狭义地讲数据库和数据库管理系统加在一起就构成了数据库系统
(3)数据库系统的特点
- 数据库系统中的数据是结构化的
- 数据冗余度小,易于扩充
- 较高的数据和程序独立性
- 数据库为用户提供了方便的接口
- 数据的最小单位是数据项
(4)数据库系统的控制功能
- 数据的安全性控制 -> 防止数据的泄密和损坏
- 数据的完整性约束 -> 数据的正确性、有效性和相容性
- 并发控制 -> 防止多个用户同时存取、修改数据库中的数据时,发生相互干扰而使数据完整性收到破坏
- 数据库的恢复 -> 数据库发生故障时就需要使用到数据库的恢复
二、数据库技术的发展
1.web应用开发技术简单介绍
(1)CGI编程 -> 现在已经是不存在了
CGI(通用网关接口)是一种通信标准,它的任务是接受客户端的请求,经过辨认和处理,生成HTML文档并重新传送到客户端。这种交互过程的编程就叫做通用网关接口编程。CGI可以运行在多个平台上,可以使用多种语言编写CGI程序,但是其也有致命缺点: 速度慢、安全性差
(2)ASP
ASP(动态服务器页面)是微软公司推出的用以取代CGI的技术,是简单易学、功能强大的服务器编程技术。通过ASP可以建立动态的、交互的、高效的、web服务器应用程序。用ASP编写的程序在服务端执行,程序执行完毕后再将执行的结果返回给客户端浏览器,这样不仅减轻了客户端浏览器的压力,大大提高了交互速度,而且避免了ASP程序源代码的外泄,提高了程序的安全性
(3)JSP
JSP(Java服务器页面)是sun公司推出的web应用开发技术,一经推出就大受关注。JSP技术使用Java语言编写服务器端程序,当客户端向服务器发生请求时,JSP源程序被编译成servlet并由Java虚拟机执行。这种编译仅在对JSP页面的第一次请求时发生,因此JSP程序能够提供更快的交互速度,安全性和跨平台性也很优秀
2.数据库技术的发展3大阶段
(1)人工管理阶段
20世纪50年代以前,计算机主要用于数值计算.从当时的硬件看,外存只有纸带,卡片,磁带,没有直接存取设备;从软件看(实际上,当时还未形成软件的整体概念),没有操作系统以及管理数据的软件;从数据看,数据量小,数据无结构,由用户直接管理,且数据间缺乏逻辑组织,数据依赖于特定的应用程序,缺乏独立性
(2)文件系统阶段
50年代后期到60年代中期,出现了磁鼓,磁盘等数据存储设备.新的数据处理系统迅速发展起来。这种数据处理系统是把计算机中的数据组织成相互独立的数据文件,系统可以按照文件的名称对其进行访问,对文件中的记录进行存取,并可以实现对文件的修改,插入和删除,这就是文件系统.文件系统实现了记录内的结构化,即给出了记录内各种数据间的关系。但是,文件从整体来看却是无结构的.其数据面向特定的应用程序,因此数据共享性,独立性差,且冗余度大,管理和维护的代价也很大
(3)数据库系统阶段
60年代后期,出现了数据库这样的数据管理技术.数据库的特点是数据不再只针对某一特定应用,而是面向全组织,具有整体的结构性,共享性高,冗余度小,具有一定的程序与数据间的独立性,并且实现了对数据进行统一的控制
三、主流的数据库介绍
1.SqlServer
(1)SqlServer介绍
SQL Server是由Microsoft开发和推广的数据库,是一种应用广泛的数据库管理系统
(2)SqlServer优缺点
优点:
- 易用性
- 适合分布式组织的可伸缩性
- 用于决策支持的数据仓库功能
- 与许多其他服务器软件紧密关联的集成性
- 良好的性价比
缺点:
- 开放性: 只能运行在微软的windows平台,没有丝毫的开放性可言
- 可伸缩性及并行性: 并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限
- 性能稳定性: SQLServer当用户连接多时性能会变的很差,并且不够稳定
- 使用风格: SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证明。并不十分兼容早期产品。使用需要冒一定风险
- 客户端支持及应用模式: 只支持C/S模式
2.MYSQL
(1)MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件
另外由于其体积小、速度快、总体拥有成本低,尤其是开发源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 组成良好的开发环境
(2)MySQL的优缺点
优点:
- 体积小、速度快、总体拥有成本低,开源支持多种操作系统
- 是开源数据库,提供的接口支持多种语言连接操作
- 核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源
- 支持ODBC for Windows, 支持所有的ODBC 2.5函数和其他许多函数, 可以用Access连接MySql服务器, 使得应用被扩展
- 支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改
- 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性
- MySQL同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言介面
- 跨平台,可以在Windows、Linux、Unix、Mac上使用
缺点:
- 不支持热备份
- MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变
- 没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制
3.oracle
(1)oracle介绍
Oracle是甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案
(2)oracle优缺点
优点:
- 开放性:oracle能所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持
- 可伸缩性,并行性:Oracle 并行服务器通过使组结点共享同簇工作来扩展windownt能力提供高用性和高伸缩性
- 安全性:获得最高认证级别的ISO标准认证
- 性能:Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录
- 客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接
- 使用风险:Oracle 长时间开发经验完全向下兼容得广泛应用地风险低
缺点:
- 对硬件的要求很高
- 价格比较昂贵
- 管理维护麻烦一些
- 操作比较复杂,需要技术含量较高
4.DB2
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
5.MongoDB
MongoDB是一个介于关系型数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json中的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引
6.Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis读写数据的效率极高,远远超过数据库,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度