课程研讨|数据库原理第一周研讨-2
数据库产品分类、特点及区别
1. 关系型数据库和非关系型数据库
关系型数据库
数据库由数据表组成,但是每张数据表之间都存在关系。
关系型数据库模型是把复杂的数据结构归结为简单的二元关系。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。
非关系型数据库
NoSQL(Not only SQL),泛指非关系型的数据库。
-
键值存储数据库(key-value)
键值数据库就类似传统语言中的哈希表,通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。
键值数据库主要使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。key/value模型对于IT系统来说的优势在于简单、易部署、高并发。
-
列存储数据库(column-oriented)
将数据存储在列族中,一个列族存储经常被一起查询相关数据。通常用于应对分布式存储海量数据。
-
面向文档数据库(document-oriented)
该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储。可以看作是键值数据库的升级版,允许之间嵌套键值。
数据以文档形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名词与对应值,值既可以是简单的数据类型。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的。
-
图形数据库
允许我们将数据以图的方式存储。实体会被作为顶点,而实体之间的关系则会被作为边。
2. Oracle数据库
简介
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。
特点
- 完整的数据管理功能
- 数据的大量性
- 数据保存的持久性
- 数据的共享性
- 数据的可靠性
- 完备关系的产品
- 信息准则
- 保证访问的准则
- 视图更新准则
- 数据物理性和逻辑性独立准则
- 分布式处理功能
- 分布式处理:分布式处理则是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调地完成大规模信息处理任务的计算机系统。
- 用Oracle能轻松实现数据仓库的操作
- 数据仓库:数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
优点
- 可用性强
- 可扩展性强
- 数据安全性强
- 稳定性强
应用
3. MySQL
简介
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
特点
- 开源的
- 平台独立性,可在多种操作系统下运行
- 快速的、可靠的和易于使用的数据库服务器
- 使用C和C++编写,保证源代码的可移植性
- 支持多线程,充分利用CPU资源。采用优化SQL查询算法,提高查询速度
- 既能够作为一个单独的应用程序应用在C/S网络环境中,也能作为一个库嵌入到其他的软件中
- 提供TCP/IP、ODBC和JDBC等多种数据库连接途径
- 提供用于管理、检查、优化数据库操作的管理工具
- 可以处理拥有上千万条记录的大型数据库
4. SQL Server
简介
是Microsoft公司推出的关系型数据库管理系统。具有使用方便、可伸缩性好,与相关软件集成程度高等优点。
特点
-
是一项完美的C/S系统
-
与Windows界面风格完全一致,易于安装和学习
-
兼容性好、可扩展、可靠性高
-
提供数据仓库服务
5. Memcached
简介
是一套分布式高速缓存系统。其API使用32位元的循环冗余校验计算键值,将资料分散在不同的机器上。当表格满了以后,新增的资料会以LRU机制替换。一般使用目的是通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用速度,提高可扩展性。
特点
-
协议简单
- 基于libevent的事件处理
- libevent是个程序库,将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥I/O性能。
-
内置内存存储方式
- 不互相通信的分布式
6. 区别与比较
- 开放性
- Oracle、MySQL能在所有主流平台上运行,采用完全开放策略
- SQL Server只能在windows上运行
- 面向对象
- Oracle面向主流大型数据库,用于中大型网站开发
- MySQL、SQL Server做中小型数据库,用于中小型网站以及个人使用
- 操作性
- Oracle较为复杂,同时提供GUI和命令行,多平台下操作相同
- SQL Server操作简单,采用图形界面(GUI)
- 易维护性、价格
- Oracle价格较高,管理复杂
- SQL Server图形管理界面易掌握,管理费用较低
7. 小结
-
大型应用系统一般采用Oracle,提供高性能、高安全稳定性以及较高的数据处理能力;Oracle支持大型数据库、支持多种系统平台、数据安全级别为最高级
-
MySQL体积小、速度快,可以在多种操作系统下运行,大大降低数据库系统的总体拥有成本
-
中小型企业或应用中采用SQL Server作为数据平台,节省资金的同时便于维护管理;运行平台必须是微软公司的操作系统,容易掌握
-
很多网站使用Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问的网站,减少查询效率,提高查询速度