什么是数据库
维基百科上这样定义:
以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
简单讲,数据库是一个数据仓库,用来存储结构化数据。
数据库类型有哪些
数据库类型按照数据存储模型来区分,数据模型主要有以下几种:
- 层次模型
- 网状模型
- 关系模型
- 面向对象模型
- 半结构化模型
关系模型为主流数据模型,所以一般将主流数据库类型分为,关系型数据库和非关系型数据库。
关系型数据库:
创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种关联均采用关系模型来表示。
数据保存在不同的二维表里,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
典型代表:MySql、Oracle、db2、SqlServer、PostgreSql等。
非关系型数据库:
非关系型数据库也被称为 NoSQL(Not Only SQL的缩写) 数据库,是对不同于传统的关系型数据库的数据库管理系统的统称,可用于超大规模数据的存储。
典型代表:MongoDB、CouchDB等。
各自有哪些特点呢
MySql:关系型数据库,瑞典MySql公司开发,属于Oracle公司下的产品,是一个客户机/服务器结构的应用。
优点:
- 完全多线程,支持多处理器;
- 同时访问数据库的用户数量不受限制;
- 可以保存超过5千万条记录;
- 运行速度快;
- 用户权限设置简单、有效;
- 体积小、成本低、代码开源;
- 比较适合中小型项目开发。
不足:
- 缺乏标准的RI(Referential Integrity-RI)机制;
- 安全系统,复杂而非标准;
- 没有一种存储过程(Stored Procedure)语言;
- 不支持热备份。
图1 MySql
Oracle:关系型数据库,甲骨文公司开发。在整个数据库领域一直处于领先地位,是目前世界上最流行的关系数据库管理系统。
优点:
- 开放性:能在所有主流平台上运行;
- 安全级别高,非常高;获得最高认证级别的ISO标准认证;
- 存储强,数据仓库存储能力非常强大;
- 支持多种操作系统;
- 处理速度快,非常快;保持开放平台下TPC-D和TPC-C世界记录;
缺点:
- 价格昂贵
图2 Oracle
db2:关系型数据库,IBM公司研制。主要应用于大型应用系统,具有较好的可伸缩性,支持从大型机到单用户环境。
优点:
- 高层次、完整性;
- 最适于海量数据;
- 开放性、可移植性好;
- 可扩展性好;
- 自动冲突检测;
- DB2公认为电子商务基石。
缺点:
- 关闭机制有一定的不足;
图3 db2
SqlServer:关系型数据库,微软公司产品。
优点:
- 操作简单;
- 全图形界面;
- 可伸缩性;
- 灵活性、扩充性好;
- 价格便宜。
缺点:
- 安全性:没有获得任何安全证书;
- 性能 :多用户时性能不佳;
图4 SqlServer
PostgreSql:关系型数据库,美国加州大学计算机系研发。
优点:
- 支持继承、函数重载;
- 复杂的sql、大量的分析函数,非常适合数据仓库;
- 多CPU利用率比较高;
缺点:
- 对资源消耗比较大;
- 不支持类型自动转换,需要显示转换或添加CAST;
- sql语法限制比较严格。
图5 PostgreSql
MongoDB:介于关系数据库和非关系数据库之间,C++语言编写,分布式文件存储,可扩展的高性能数据存储,是一种NoSQL的数据库。存放xml、json、bson类型的数据,数据结构由键值(key=>value)对组成。
优点:
- 不需要编写sql语句;
- 不需要建表,只需定制Collection,MongoDB自动创建Collection。
- 数据读写速度十分快;
- 高可用和集群架构拥有十分高的扩展性;
- 适合文档格式的存储与查询;
- 适合做数据仓库。
缺点:
- 不支持事务操作、占用空间过大。
图6 MongoDB
国内有哪些比较优秀的数据库呢
南大通用、武汉达梦、人大金仓、神舟通用等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。