一、数据库的介绍
1.1 什么是数据库
数据库,就是一类软件专门用来管理(增删查改)数据
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
数据库存储的介质是:磁盘、内存
为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器
1.2 数据库的分类
数据库大体可以分为:关系型数据库和非关系型数据库
- 关系型数据库
是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织,基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:
- Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统,收费。
- MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
- SQL Server:微软的产品,小巧轻量,安卓上自带的内置数据库,是世界上"装机量"最大的数据库,安装部署在windows
server上,适用于中大型项目。收费。
- 非关系型数据库:
不规定基于SQL实现。现在更多是指NoSQL数据库,如:
- 基于键值对(Key-Value):如 memcached、redis
- 基于文档型:如 mongodb
- 基于列族:如 hbase
- 基于图型:如 neo4j
【关系型数据库和非关系型数据库的区别】:
OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line Analytical
Processing)是指联机分析处理。
二、MySQL的介绍
2.1 MySQL的结构
MySQL是一个"客户端-服务器"结构的程序.
客户端:主动的一方
服务器:被动的一方
【举例理解客户端和服务器】
一个餐馆就相当于是服务器,就餐的人相当于是客户端,一个餐馆同一时间允许很多人同时就餐,也就是一个服务器同一时刻可能要给多个客户端提供服务,同时对于就餐人来说,什么时间去吃饭是自己决定的,而餐馆并不知道就餐人什么时候来服务,于是餐馆就要很早的开门,很晚关门,一直等待着为就餐人提供服务,甚至说有的餐馆要24小时营业,服务器也是一样,它不确定客户端何时发来请求,所以服务器往往要长时间的运行
像我们自己安装的MySQL程序,其实就既安装了客户端有安装了服务器
客户端:(默认自带的命令行客户端)
服务器:
用户和客户端进行交互,客户端通过网络和服务器进行通信
MySQL客户端和服务器可以在不同的主机上(更常见)
【说明】:
对于MySQL来说,存储和管理数据,都是由MySQL服务器负责的,因此MySQL服务器要比MySQL的客户端复杂很多
2.2 MySQL服务器如何组织数据
- 一个MySQL服务器程序中有多个数据库
> 一个MySQL服务器上可以包含多个"数据库",此处的"数据库"其实就是数据集合,这里面存放了一些具有关联关系的数据
- 一个数据库中里面有多个"数据表"
以上面的教务系统中的数据为例,在数据库1中就可能有很多表:学生表、课程表、作业表等
每张表中有很多行,每一行称为一条"记录",每一行中有不同的列,每一列都表示不同的含义,每一列也称为一个"字段"(filed)
关系型数据库都是按照上述形式来组织数据的。
MySQL是把数据存储到硬盘上的