1.1数据库的相关概念
前言
数据库:长期存储在计算机内,有组织的,可共享的大量数据的集合
数据库数据具有永久存储、有组织和可共享三个基本特点
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
数据库管理系统:位于用户和操作系统之间的一层数据管理软件、数据库管理系统和操作系统一样是计算机的基础软件
数据定义功能
数据组织、存储和管理
数据操作功能
数据库的事务管理和运行管理
数据库的建立和维护功能
数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
数据库系统:由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统
数据库应用系统:指在数据库管理系统的支撑下建立的计算机应用系统
该课提到的关系型数据库和非关系型数据库,实际都是数据库管理系统的具体形式,用来管理不同特点的数据,以及用来支撑不同的业务逻辑
1.1.1关系型数据库管理系统
建立在关系模型基础上的数据库管理系统,称之为关系型数据库管理系统
关系型数据库中的事务正确执行,需要满足原子性、一致性、隔离性、持久性这四个特性
1.1.2关系型数据库的瓶颈
关系型数据库由于数据模型、完整性约束和事务的强一致性等特点,导致其难以实现高效率、易横向扩展的分布式部署架构
关系模型、完整性约束和事务特性等在典型互联网业务中并不能体现优势,例如:在管理海量的页面访问日志时候,并不需要严格保障数据的实体完整性和引用完整性
纵向扩展:通过不断升级硬件配置的方法,来提高其数据处理能力
横向扩展:采用多个计算机组成集群,共同对数据进行存储、组织、管理和处理
对于集群,应当有以下特征
(1)能够对集群内的计算机及其计算存储资源进行统一的管理、调度和监控
(2)能够在集群中对数据进行分散的存储和统一的管理
(3)能够向集群指派任务,能够将任务并行化,使集群内的计算机可以分工协作、负载均衡。
(4)当集群中的少量计算机或局部网络出现故障时,集群性能虽略有降低,仍然可以保持功能的有效性,且数据不会丢失,具有很强的分区容错性
(5)利用集群执行所需的数据查询和操作时,性能远超单独的高性能计算机
(6)可以用简单的方式部署集群、扩展集群,以及替换故障节点,即具有很强的伸缩性
1.1.3NoSQL的特点
常见的NoSQL数据库-HBase、Cassandra、MongoDB
NoSQL数据库并没有统一的模型,一般会弱化关系,即弱化模式或者表结构、弱化完整性约束、弱化甚至取消事务机制等,其目的就是去掉关系模型的约束,以实现强大的分布式部署能力-一般包括分区容错性、伸缩性和访问效率(可用性)等
在软件实现上,NoSQL数据库通常有两个特点
一是流行的NoSQL软件很多诞生在互联网领域中,主要为满足互联网业务需求而生
二是知名的NoSQL软件一般是免费的
NoSQL一般特征包括:集群部署的、非关系型的、无模式的数据库,以及通常是开源软件等
1.1.4NewSQL的概念
NewSQL被描绘为既支持关系数据模型和强事务机制,也支持分布式并行结构的数据库形式,也可以进行SQL语句进行查询等
1.1.5NoSQL的典型应用场景
(1)海量日志数据、业务数据或监控数据的管理和查询
不同业务服务器或不同工业设备采集的数据格式可能是不同的,这使得利用关系型数据模型描述数据变得困难。NoSQL采用键值对、无模式的数据模型处理这类数据会简单一些
(2)特殊的或复杂的数据模型的简化处理
(3)作为数据仓库、数据挖掘系统或者OLAP系统的后台数据支撑
数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改、较稳定的数据集合
数据挖掘是从大量数据中发现有用的新模式的过程
OLAP(联机分析处理):一般面向决策人员和数据分析人员,针对特定的商务主题对海量数据进行查询和分析等
OLTP(联机事务处理):利用传统关系型数据库系统实现的、基于事务的业务系统
1.2大数据的技术体系
1.2.1大数据的特征
大容量-数据总量大
多样化-多种数据类型
高速率-数据增长快且数据持续增长
有价值-对大数据进行查询、统计、挖掘会产生很高的价值
1.2.2大数据的采集
在线采集:直接监视数据源的变化,以实时或准实时的方式将产生的新数据获取,并装载大数据系统中
离线采集:定期将数据从数据源上传到大数据系统中的方式
1.2.3大数据的存储
对海量数据进行存储,一般需要基于分布式架构,并支持通过网络方式访问,常见的外挂存储或网络存储方式有DAS、NAS和SAN等
DAS(直连式存储):存储设备是通过电缆直接连到服务器
NAS(网络接入存储):存储设备连接到网络中,通常是标准的TCP/IP网络
SAN(存储区域网络):存储设备组成单独的网络。大多利用光纤连接
1.2.4大数据的管理和使用
常见的数据预处理工具有Apache Hadoop的MapReduce模块、Apache Spark等。
常见的大数据挖掘和机器学习引擎有基于Hadoop的Mahout、基于Spark的Mlib、谷歌的TensorFlow等
1.2.5数据可视化
常用的MS Excel,Python语言的扩展包Matplotlib,基于JavaScript的图表工具Echarts和D3.js等
1.2.6大数据安全和治理
身份管理和访问控制
大数据加密
隐私保护和准标识符保护