1.1 数据库简介与SQL
Last updated
Was this helpful?
Last updated
Was this helpful?
数据库是保存数据的地方,数据库可以分为关系型数据库(SQL,Structured Query Language)和非关系型数据库(NoSQL,No Structured Query Language)。
SQL由一个或者多个数据表组成,同一个数据表中数据之间关系明确,类似Excel表格,比如:
表头(header):列的名字;
列(col):具有相同数据类型的数据的集合;
行(row):每一行就是一条记录;
值(value):某个数值,该值的数据类型必须与列的数据类型一致;
键(key):标识特定的行,不同行的key值不同。
SQL缺点
对数据库高并发读写的需求:SQL数据库按行存储,即使只是针对一列的数据进行处理,也会将整行数据读取到内存中,I/O较高;
对海量数据的高效率存储和访问的需求 :数据量非常大,对于关系数据库来说,在一张上亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。
对数据库的高可扩展性和高可用性的需求 :如果需要修改表的结构,需要执行DDL(data definition language)修改,修改期间,部分服务不可用;另外,数据库却没有办法简单的通过添加更多的硬件和服务节点来扩展性能和负载能力;
SQL数据库有也不能存储非结构化的数据。
NoSQL
列式数据库:按照列储存,提高I/O能力,典型HBase;
key-value数据库:解决SQL数据库无法存储数据结构的问题,典型Redis;
文档数据库:将半结构化的数据存储为文档,通常以Json或者XML格式存储数据,典型MongoDB。
大数据的特征
Hadoop、Hive、Spark