1.什么是数据库?
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
2.数据库分类
[1]数据库分为关系型数据库和非关系型数据库
区别是关系型数据库是支持事务的ACID四大特性的,而非关系型数据库是没有这四大特性的,
关系型数据库的缺点:
1.由于每天读写请求非常大,硬盘I/O是一个瓶颈
2.由于每天查询的数据量非常大,每次查询都要从头开始,效率是非常低的
关系型数据库的优点:
1.是一个二维表格,观察清晰
2.使用通用的SQL语言,避免开发者浪费时间再重新学习,使用比较方便
非关系型数据库介绍:
非关系型数据库以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销
非关系型数据库的优点:
1.可以根据自己的需要去添加相应的字段,不需要像关系型数据库那样多表联查,查的时候只需要根据id取到对应的value值即可
非关系型数据库的缺点:
只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,关系型数据库显的更为合适。不适合持久存储海量数据
(1)关系型数据库主要有
<1>.Oracle:社区版不收费但是功能不全面,部分版本可能会收费,大型公司比较常用
下载地址参考:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
Oracle安装参考:https://blog.csdn.net/weixin_45290500/article/details/100884667
<2>.MySql:部分中小型公司常用,轻量级而且免费,其中一个分支是Maria DB mysql被sun公司收购后又被甲骨文公司收购,mysql创始人只能开发出了一个mysql替代品Maria DB,两者完全兼容
mysql下载地址参考:https://dev.mysql.com/downloads/
mysql安装请参考:https://www.cnblogs.com/dtting/p/7691202.html
Maria DB下载地址参考:https://mariadb.org/download/
<3>.SQL Server
<4>.DB2
<5>.SQLite
等数据库
(2)非关系型数据库主要有
<1>高性能并发读写的key-value数据库——redis(以k,v结构存储,使用较方便)
<2>面向海量数据访问的数据库——MangoDB(在海量数据中查询效率较高)
<3>面向搜索数据内容的搜索引擎:Elasticsearch
搜索引擎是专门用于搜索数据内容的NoSQL数据库管理系统。
NoSQL的基本需求就是要支持分布式的存储,而分布式的存储就要严格一致性和可用性的互相取舍
CAP理论:
C:一致性
一致性是指更新操作成功,数据返回客户端时,所有的节点在同一时间的数据是一致的
A:可用性
可用性是指服务一直可用,不会响应超时
P:分区容错性
是指当服务某一处宕机后会抛出异常,但是不会影响整体服务的运行,仍可以满足一致性和可用性原则