在生产生活中我们经常会使用到数据库进行信息的存储和操作,所以我们必须对其有一定的了解,才能熟练地使用。

1、什么是数据库(database)?

  1. 数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)
  2. 表(table)某种特定类型的结构化清单
  3. 列和数据类型
    表由列组成。列中存储着表中的某部分信息。
    列(cloumu)表中的一个字段
    数据类型(datatype)所容许的数据类型。每个表列都又相应的数据类类型,它限制(或容许)该列中存储的数据。
  4. 行(row)表中的一个记录
    表的数据按行存储,所保存的的每个记录存储在自己的行内。将表想象成网格,网格的垂直列为表列,水平行为表行。
  5. 主键(primary key)一列(或一组列),其值能够唯一区分表中的每个行
    主键需满足:
    任意两行都不具有相同的主键值;
    每个行都必须有一个主键值(主键列不允许NULL值)。

2、数据库的种类

早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库非关系型数据库

3、什么是关系型数据库

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)

  1. MySQL和Oracle数据库,互联网运维中最常用的是MySQL
  2. 通过SQL结构化查询语句存储数据
  3. 保持一致性方面很强,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)数据库


洛阳高歌
9 声望4 粉丝

java编程爱好者,希望能够通过记录自己的点点滴滴来促进自己的进步以及能帮助一些想要了解这方面知识的朋友,希望大家多多指教