前言
在学习数据库之前,我们先要明确,sql是编程语言;Oracle,Mysql,SQL Server这些是数据库软件,sql这个语言是运行在数据库软件上的(就像Java运行在jvm上一样)
1、常见的关系型数据库软件
关系型数据库:
- 关系型数据库是依据关系模型来创建的数据库。
- 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织
Oracle,Mysql,SQL Server,SQLite(轻量级的数据库)
2、常见的非关系型数据库
- 非关系型数据库,有多种模型:列模型,键值对模型,文档类模型。
- 这里以键值对模型为例介绍:以键值对存储,器结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要添加自己需要的字段,这样为了获取用户的不同信息,不需要想关系型数据中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。
功能相比于关系型数据更少一些,但是性能更高,同时更适合当下大数据 分布式这样的时代背景
代表软件:redis, MongoDB,HBase
3、关系型数据库和非关系型数据的优缺点
3.1、关系型数据库
3.1.1、优点
- 容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
- 使用方便:通用的SQL语言使得操作关系型数据库非常方便;
- 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
- 支持SQL,可用于复杂的查询。
3.1.2、缺点
为了维护一致性所付出的巨大代价就是其读写性能比较差;
固定的表结构;
高并发读写需求;
海量数据的高效率读写;
3.2、非关系型数据库
3.2.1、优点
无需经过sql层的解析,读写性能很高;
基于键值对,数据没有耦合性,容易扩展;
存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。
3.2.2、缺点
不提供sql支持,学习和使用成本较高;
无事务处理,附加功能bi和报表等支持也不好;
4、了解MySQL数据库软件
MySQL是一个数据库“客户端—服务器”结构的程序。咱们再安装MySQL时,其实同时安装了MySQL的服务器和MySQL的客户端(这两个程序都在我们的电脑上)
这里来了解以下客户端于服务器的定义:他们是根据主动与被动来确定的。
- 客户端:主动发起交互的一段称为客户端。
- 服务器:接受交互的一段称为服务器。
- 请求(Request):客户端给服务器端发送的数据就是请求
- 相应(Respone):服务器端返回给客户端的数据就是相应。
MySQL自带的客户端就是一个命令行程序,用户在客户端中输入的任何命令最终都会转换成网络上的数据传输给服务器。
服务器是MySQL的本体,重要性和复杂性远远 超过客户端。客户端是非常简单的,也有多种形态。【客户端、第三方软件(比如:navicat),也可以自己写一个】.
MySQL的数据保存再哪里?
MySQL以及其他的关系型数据库,都是使用硬盘来保存数据的。
4.1、MySQL服务器在硬盘上如何组织数据
- MySQL为了更好的组织数据,把要存的数据划分出了多个数据集合,这些数据集合也称为“数据库”
- 每个数据库里,使用“表”这样的结构来组织数据(这个表相当于excel表格,最上面一行是表头,描述每一列是什么意思)。
- 每个表里有很多记录(record),每个记录也就是一行(row)
- 每一行这里又有很多列(column),每一列也称为一个字段(field)