数据库介绍
数据存储演变史
第一阶段:单独的文本文件
刚开始使用文本文件存储数据,这种方式没有固定的存放位置和固定的数据格式。
第二阶段:软件开发目录规范
这个阶段规定了文件存放位置,解决了文本文件没有固定的存放位置的问题,但是没有固定的数据格式这个问题还是存在。
第三阶段:数据库应用
这个阶段开始使用数据库来存储数据了,用数据库存储数据就解决了数据存放位置和数据格式的问题。
数据库应用发展史
第一阶段:单机游戏阶段
刚开始的数据都是各自保存在各自的计算机上的,无法实现远程共享,就像单机游戏一样,不用互联网,但只能在自己计算机上游玩。
第二阶段:多机游戏阶段
从这里开始数据都统一通过网络保存到某个固定的服务器上,其他计算机就可以通过这个服务器来实现数据共享了。
缺点:如果所有的数据都存放到一台服务器上,那么这个服务器的压力就会很大,并且一旦服务器崩溃,所有的数据都有可能丢失,数据的安全性比较低。
这个时候就有了新的解决方法:增加服务器的数量,任务均匀分担,并且数据同步保存,用于备份的作用,一台服务器崩溃了还有另外一台。
集群:具有相同功能的多个服务器组合到一起。
数据库本质
数据库从微观层面来说,就是运行在计算机上专门处理数据的进程;从宏观层面来说,就是提供给用户一个简单快捷的操作进程(数据处理)的软件;
所以平时在说的数据库一般指的是操作数据库的应用软件,也就是数据库软件,既然是一个软件,那么它的本质上也是一个基于C/S架构。
数据库分类
数据库大致可以分为两类:
- 关系型数据库
- 非关系型数据库
关系型数据库
特征:
- 有固定的表结构(主要特征),比如excel中的表格。
- 表与表之间可以建立关系,比如存储班级的表和存储学生的表之间是有关系的。
常见数据库:MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server。
- MySQL:关系型数据库代表,开源免费,使用频率极高。
- Oracle:安全性极高,但是使用和维护收费。
- PostgreSQL:支持二次开发(自己嫁接,拓展功能)。
- MariaDB:与MySQL是用一作者,开发初衷是作为MySQL的替代品。
- sqlite:小型数据库,携带方便但功能较少,主要用于本地测试。
- sql server:老牌数据库软件,目前主流不用。
非关系型数据库
特征:
- 没有固定的表结构,数据存储采用K:V键值对形式(主要特征),比如{'name':'tom'}、
- 表与表之间不能建立关系。
常见数据库:Redis、MongoDB、Memcache。
- Redis:目前最火的非关系数据库,类型丰富,功能强大。
- MongoDB:最像关系型数据库的非关系型数据库,主要用于爬虫和大数据。
- Memcache:落寞了,被Redis取代了。
SQL与NoSQL
SQL有时候用来表示关系型数据库,有时候表示SQL语句;NoSQL有时候用来表示非关系型数据库,有时候表示NoSQL语句
SQL语句与NoSQL语句统一了各个编程语言与数据库服务器的沟通标准。
- SQL语句是与关系型数据库交互的语言。
- NoSQL语句是与非关系型数据库交互的语言。