1、什么是数据库?
数据库是信息或数据的有组织的集合,通常由数据库管理系统 (DBMS) 来控制。在现实中,数据、DBMS 及关联应用一起被称为数据库系统,通常简称为数据库。
数据库(Database)是计算机系统中按照一定的数据模型来组织、存储和应用的数据集合。
2、什么是数据模型(Data Model)?
数据模型是现实世界特征的模拟和抽象。在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。 数据库技术中研究的数据模型分为两个层面:一层是面向用户的,称为概念模型;另一层面是面向计算机系统的,称为结构模型。
把现实世界中的人、物、活动、概念等用【数据模型】来抽象、表示成计算机能识别和处理的数字。
数据模型是DB系统的核心和基础。
3、概念数据模型
概念数据模型是独立于计算机系统的数据模型,用来描述某个特定组织关心的信息结构,属于信息世界的建模。
4、有哪些数据模型?
数据库技术发展至今,传统数据库根据不同的数据模型,主要有以下几种:层次型、网状型和关系型。
结构数据模型
分类:层次模型、网状模型和关系模型,常用的结构数据模型是关系模型。
5、大数据的特性
数据量大;价值密度低,需要便宜的设备承载;数据类型繁多,形式多变,需要灵活存储;处理速度快,需要高并发支持及快速扩容能力
6、关系型数据库
6.1 关系型数据库的特点
(1)容易理解:用二维表表示
(2)使用方便:通用的SQL语言。
(3)易于维护:丰富的完整性约束大大减低了数据冗余和数据不一致的可能性。
6.1 关系型数据库不足
(1)无法适应多变的数据结构:关系数据库所采用的二维表格数据模型不能有效地处理多维数据,不能有效处理互联网应用中半结构化和非结构化的海量数据,如Web页面、电子邮件、音频、视频等。
(2)高并发读写的性能低:关系数据库达到一定规模时,非常容易发生死锁等并发问题,导致其读写性能下降非常严重。
(3)可扩展性低:当一个应用系统的用户量和访问量与日俱增的时候,传统的关系型数据库却没有办法像Web Server那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。数据库系统进行升级和扩展往往需要停机维护和数据迁移,但是很多系统需要提供不间断服务。
6.2 如何解决关系型数据库在大数据时代的问题?
(必须对传统的关系数据库做出相应改变。)
(1)在大数据时代的非结构化数据应用场合中,很多是日志性数据,数据准确性、一致性的要求并没有那么高。而放松一致性的要求,能为数据库带来极大的性能提升和架构灵活性好处。
(2)业务需求的变化要求数据结构和系统结构发生变化时,就会面临问题。因此,放弃沿用面向行的表结构,以适应表结构变化的需要。
(3)由于存在类似“关联、事务”这样多表联动的功能,使得数据库在扩展能力很难提高,因此去掉这些多表联动的功能,才能释放数据库扩展的能力;
这就是Nosql应运而生的背景。
分布式数据库必须具有如下特征,才能应对不断增长的海量数据。
● 高可扩展性:分布式数据库必须具有高可扩展性,能够动态地增添存储节点以实现存储容量的线性扩展
● 高并发性:分布式数据库必须及时响应大规模用户的读/写请求,能对海量数据进行随机读写
● 高可用性:分布式数据库必须提供容错机制,能够实现对数据的冗余备份,保证数据和服务的高度可靠性
7、NoSQL数据库的特点
易扩展,大数据量、高性能,灵活的数据模型,高可用。
对比关系数据库,nosql具有以下几个特点:
- 模式*: nosql一般不需要定义表结构,数据表中的每条记录都可能有不同的属性和格式。
- 逆规范化: nosql不遵循范式的要求,去掉完整性约束,减少表之间的依赖
- 多分区存储: nosql会对数据进行分区,将一张表里的数据分散在不同的节点上,来提高数据管理的性能。
- 可扩展性强:nosql的分布式架构,可在系统运行过程中,动态增加和删除节点,实现数据自平衡移动
- 多副本复制:nosql的数据采用读写日志来实现异步复制进行高效备份。
- 软事务: nosql去除了数据库的事务ACID保证,只保证最终一致性。这一点我们会在后续详细讲解。
8、为什么会有Nosql数据库的出现?
为了解决关系型数据库存在的问题而出现的,主要表现:
1、满足高并发读写需求
2、满足海量数据的高效率读写
3、满足高扩展性和可用性
9、什么是数据库系统?
数据库系统 = 数据库管理系统 + 数据库
10、什么是数据库管理系统?
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。主要任务就是对外提供数据,对内要管理数据。
11、数据处理方式:集中式VS分布式
集中式数据库是指数据库中的数据集中存储在一台计算机上,数据的处理也集中在一台机器上完成。
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。
12、Nosql数据库主要有哪几类?分别说出类型名称和代表产品?
键值数据库(Redis)、列族数据库(Hbase)、文档型数据库(MongoDB)、图形数据库(Neo4J)
13、NoSQL数据库共同特征
不需要预定义模式:不需要事先定义数据模式,预定义表结构。
无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL将数据划分后存储在各个本地服务器上。
弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。
分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。
BASE:最终一致性和软事务。
NoSQL数据库并没有一个统一的架构:两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据 库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。
14、NoSQL的应用
现在已经有很多公司使用了NoSQL数据库:Google、Facebook、Mozilla、Adobe、LinkedIn、Digg、McGraw-Hill Education、百度、腾讯、阿里、新浪、华为……