数据库引言

一、数据库简介

1.什么是数据库

数据库其实是一种软件的概念,他是安装在我们操作系统之上,对数据进行操作的管理软件,称作(DB DataBase),用来存储和操作数据,我们常说的mysql,oracle之类,其实是DBMS(数据库管理系统),只是在开发中常称为数据库

2.数据库的分类

常说的数据库分为两大类:

关系型数据库 非关系型数据库
种类 mysql,oracle,DB2,Sql Server .... Redis MongoDB ElasticSearch...
联系 通过表与表之间,行与列之间的关系进行数据的存储 数据以对象的形式存储在数据库中,对象之间的关系通过每个对象自身属性来决定

3.数据库概述

1)关系型数据库

关系型数据库的关系主要体现在结构化,其面向记录,创建在二维表格模型的基础上,天然就是表格的形式

2)非关系型数据库

我们常用NoSQL来描述非关系型数据库,网上常用的一个描述是,NoSQL=NOT ONLY SQL 不仅仅是sql 而不是NOT SQL

非关系型数据库的产生是为了应对Web2.0纯动态网站类型的三高:对数据库高并发读写需求 对海量数据高效存储与访问需求 对数据库高扩展性与高可用性需求

3)综合

关系型数据库和非关系型数据库都有各自的特点与应用场景,两者的紧密结合将会给Web2.0的数据库发展带来新的思路。让关系数据库关注在关系上,非关系型数据库关注在存储上。例如,在读写分离的MySQL数据库环境中,可以把经常访问的数据存储在非关系型数据库中,提升访问速度。

二、数据库的区别

1.数据库存储方式不同

关系型和非关系型数据库的主要差异是数据存储的方式,关系型数据天然就是表格形式的,存储在数据库的行和列中,表之间通过关联协作存储,较为容易提取数据。

非关系型数据库常以大块的形式组合在一起,数据常常存储在数据集中,类似文档、键值对或者图结构,影响数据存储和提取的方式就是数据和其特性。

2.数据库扩展方式不同

sql关系型数据库的扩展是纵向扩展的,主要是提高数据处理能力,使用速度更快的计算机,关系型数据库的数据存储在关系表中,操作的性能瓶颈可能涉及多个表,需要提高计算机性能来克服,但是纵向扩展总有上限。而NOSQL数据库是横向扩展,非关系型数据库存储天然就是分布式的,可以给资源池添加更多普通数据库服务器节点来分担负载,是没有上限的。

3.对事务性的支持不同

从数据操作的高书屋和复制数据的查询来说,传统的sql数据库性能的优秀和稳定性无疑是最好的选择,sql数据库支持事务原子性细粒度控制,且易于回滚事务。nosql虽然也可以使用事务操作,但是稳定性肯定不能和关系型数据库比较,非关系数据库常用以扩展性和大数据量处理的方面

4.数据库模型不同

非关系型数据库是基于CAP模型,而传统的关系型数据库是基于ACID模型的

三、数据的优缺点

1.关系型数据库

1)优点

1.容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
2.使用方便:通用的是SQL语言使得操作关系型数据库非常方便;
3.易于维护: 丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率;
4.支持SQL: 可用于复杂的查询。

2)缺点

  1. 为了维护一致性所付出的巨大代价就是其读写性比较差;

  2. 不擅长大量数据的写入处理;

  3. 不擅长为有数据更新的表做索引或表机构变更;

  4. 字段不固定时应用不方便;

  5. 不擅长对简单查询需要快速返回结果的处理。

3)关系型数据库的特点及应用场景

特点:
最大的特点,事务的一致性;
通用的SQL语言,使得操作关系型数据库非常方便;
ACID:原子性、一致性、隔离性、持久性
表结构严格,存储数据很难出错

应用场景:
需要做复杂处理的数据;
数据量不是特别大的数据;
对安全性要求高的数据;
数据格式单一的数据。

2.非关系型数据库

1)优点

  1. 无需经过sql层的解析,读写性能很高;
  2. 基于键值对,数据没有耦合性,容易扩展;
  3. 存储数据的格式:Nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。

2)缺点

  1. 不提供sql支持,学习和使用成本较高;

  2. 无事务处理,附加功能和报表等支持也不好。

3)非关系型数据库的特点及使用场景
特点:
存储结构灵活,没有固定的结构;
对事物支持比较弱,但对数据的并发处理性能高;
大多数不使用SQL语言操作数据。
适用场景:
数据结构不固定场景;
对事物要求不高,但读写并发比较大的场景;
对数据的处理操作比较简单的场景;
缓存(数据查询,短连接,新闻内容,商品内容等),使用最多;
任务队列(秒杀,抢购,12306等);
应用排行榜;
网站访问统计
数据过期处理(可以精确到毫秒)
分布式集群架构中的session问题。

posted @ 2023-02-19 19:14  shian_work  阅读(49)  评论(0编辑  收藏  举报