在生产生活中我们经常会使用到数据库进行信息的存储和操作,所以我们必须对其有一定的了解,才能熟练地使用。
1、什么是数据库(database)?
- 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件)
- 表(table)某种特定类型的结构化清单
- 列和数据类型
表由列组成。列中存储着表中的某部分信息。
列(cloumu)表中的一个字段
数据类型(datatype)所容许的数据类型。每个表列都又相应的数据类类型,它限制(或容许)该列中存储的数据。 - 行(row)表中的一个记录
表的数据按行存储,所保存的的每个记录存储在自己的行内。将表想象成网格,网格的垂直列为表列,水平行为表行。 - 主键(primary key)一列(或一组列),其值能够唯一区分表中的每个行
主键需满足:
任意两行都不具有相同的主键值;
每个行都必须有一个主键值(主键列不允许 NULL 值)。
2、数据库的种类
早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是两种,即 关系型数据库 和非关系型数据库。
3、什么是关系型数据库
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)
- MySQL 和 Oracle 数据库,互联网运维中最常用的是 MySQL
- 通过 SQL 结构化查询语句存储数据
- 保持一致性方面很强,ACID 理论体系。
4、MySQL
MySQL 已经存在很久了,由于体积小、速度快、总体拥有成本低、开放源代码等优点,它在世界范围内得到了广泛的安装和使用。
MySQL 是互联网领域里一款最要的,深受广大用户欢迎的开源关系型数据库软件之一、由瑞典 MySQL AB 公司开发与维护。2006 年。MySQL AB 公司被 SUN 公司收购,2008 年,SUN 公司又被传统数据数据库领域大佬甲骨文(oracle)公司收购,因此,MySQL 数据库软件目前属于 Oracle 公司,成为传统数据库领域老大的又一个数据库产品,甲骨文公司收购 MySQL 后,使得自身在商业数据库与开源软件领域市场占有份额都跃居第一的位置,这样的格局,引起了很多人的担忧,这种担忧直接导致后来的 Mysql 分支数据库 MariaDB 的诞生于发展。
5、非关系型数据库(NOSQL)
非关系型数据库也被成为 NoSQL 数据库,NOSQL 的本意是“Not Olnly SQL”
指的是非关系型数据库,而不是“No SQL”的意思,因此,NoSQL 的产生并不是要彻底地否定非关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL 数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
高性能、高并发、对数据一致性要求不高
开源的 NoSQL 体系,如 Facebook 的 Cassandra,Apache 的 HBase,也得到了广泛认同,Redis,mongb 也逐渐越来越受到各类大中小型公司的欢迎和追捧
NOSQL 非关系型数据库小结:
1、NOSQL 不是否定关系数据库,而是作为关系数据库的一个重要补充
2、NOSQL 为了高性能、高并发而生,忽略影响高性能,高并发的功能
3、NOSQL 典型产品 memcached(纯内存),redis(持久化缓存),mongodb(文档的数据库)
6、非关系型数据库的分类
1. 键值数据库(key-value)
键值数据库就类似传统语言中使用哈希表,可以通过 key 来添 加、查询或删除数据,因为使用 key 主键访问,所以会获得很高的性能及扩展性
键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value 模型对于 IT 系统来说的优势在于简单、易部署、高并发
典型产品:Memcached、Redis、MemcacheDB、BerkeleyDB
2. 文档型数据库(Doucument-Oriented)
面向文档数据库会将以文档的形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关系对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用 XML、JSON 或者 JSONB 等多种形式存储
典型产品:MongoDB、CouchDB
3. 列存储(Column-oriedted)数据库
4. 图形(Graph)数据库