1. 数据库简介
1.1什么是数据库?
简单来说就是组织和保存数据的应用程序
。
数据库是20世纪60年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分⽀。数据库技术主要是⽤来解决数据处理的⾮数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。
1.2数据库与之前学的数据结构有啥关系?
数据结构是组织
数据的一种方式。
数据库用一些合适的数据结构来组织数据,方便数据的写入与查询。
1.3为什么要使⽤数据库?
对数据进行增删改查
。
注意:以前学的ArrayList,这个集合也可以保存数据,这种在内存中保存的数据,电脑重启之后就没有的。
数据库中保存的数据,必须要放在一个可以随时访问的存储介质中,数据库保存数据的过程就是数据持久化的过程。
数据库的特点:
2. 主流数据库
2.1 关系型数据库
- Oracle:甲⻣⽂产品,适合⼤型项⽬,业内最强的数据库,没有之⼀,需要收费。
- MySQL:开源免费,最受欢迎的数据库,在中⼩企业中普及率⾮常⾼,属于甲⻣⽂,主要⽤在电商,论坛等。
- PostgreSQL:加州⼤学伯克利分校计算机系开发的关系型数据库,可以免费使⽤,修改和分发。
- SQLSever:微软推出的⼀款专业级数据库,与旗下的操作系统,编程环境配合使⽤,适⽤于中⼤型项⽬。
- SQLite:⼀款轻型的数据库,占⽤资源⾮常低,常⽤于嵌⼊式设备,⼿机APP,桌⾯程序等场景。
什么是关系型数据库?
关系型数据库是指采⽤了关系模型来组织数据的数据库,以⾏和列的形式存储数据。关系模型可以简单理解为⼆维表格模型,⽽⼀个关系型数据库就是由⼆维表及其之间的关系组成的⼀个数据组织。
MySQL也可以称为行列数据库
。
2.2 ⾮关系型数据库
- Redis:流⾏的基于键值对的内存数据库,常⽤作缓存,⽀持数据持久化,⽀持多种数据结构。
- MongoDB:基于NoSQL的⽂档型数据库,易扩展,⾼性能,⾼可⽤性,⽀持丰富的查询和聚合操作。
3. 数据库服务器,数据库与表之间的关系
1. 其中MySQL数据库本质上就是一个软件
2. DB1以及后面的DB就仅仅是一个个的数据库
3. 每个数据库下维护多个表
以淘宝举例,淘宝==数据库服务相当于一个软件,数据库服务就相当于一个软件app
,数据库就是存放软件各个不同区域的内容
,每个数据库中通过多个表格来描述其中存放的信息
。
4. 客⼾端与服务器的通讯⽅式
C/S架构与B/S架构
- C/S架构即 客⼾端/服务器 架构模式
- B/S架构即 浏览器/服务器 架构模式
4.1 CS 架构
C/S 架构全称是客⼾端/服务器(Client/Server)架构,是常⽤的两层架构。客⼾端需要安装客⼾端软件,服务端程序运⾏在服务器上,提供Socket或数据库服务。
使⽤客⼾端与MySQL数据库服务器通讯属于C/S架构
常⽤于固定⽤⼾群体中。常⻅的C/S架构的应⽤,⽐如QQ,CCTALK,各种⽹络游戏等等,⼀般需要安装并且与服务器进⾏⽹络通信的都属于此类。
优点:
• ⼤部分业务都可以在客⼾端完成,充分利⽤本地的计算机资源
• 响应速度快
• 个性化定制能⼒强
• ⾯向相对固定的⽤⼾群,对信息安全的控制能⼒强
缺点:
• 需要安装客⼾端才能使⽤
• 维护成本⾼,任何⼀台电脑上的客⼾端出现问题都需要进⾏维护,升能过程繁琐
4.2 BS架构
B/S架构全称是浏览器/服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,可以理解为是对C/S架构⼀种改进。由于所有的业务逻辑都由服务器程序处理,所以客⼾端仅使⽤浏览器就可以完成所有操作,⼤⼤降低了客⼾端的维护成本。
优点:
- 客⼾端零维护,只需要安装⼀个浏览器即可
- 所有业务都集中在服务器端,业务扩展⾮常⽅便
- 维护成本低,只需要维护服务器即可
缺点:
- 服务器安全与业务处理能⼒需要花费很⼤精⼒与成本
- 不同浏览器⽀持不尽⼈意
5. SQL简介
SQL(StructuredQueryLanguage)是结构化查询语⾔的简称,是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理关系数据库。(结构化查询语言本身是一套语言,和Java,C平级)
SQL分类:
DDL
【Data Definition Language】 数据定义语⾔,⽤来维护存储数据的结构(库和表级别)
代表指令:create,drop,alter
DML
【Data Manipulation Language】 数据操纵语⾔,⽤来对数据进⾏操作(行级别)
代表指令:insert,delete,update,select
DCL
【Data Control Language】 数据控制语⾔,主要负责权限管理和事务
代表指令:grant,revoke,commit
6. MySQL架构
MySQL8.0服务器是由连接池、服务管理⼯具和公共组件、NoSQL接⼝、SQL接⼝、解析器、优化器、缓存、存储引擎、⽂件系统组成。MySQL还为各种编程语⾔提供了⼀套⽤于外部程序访问服务器的连接器。
整体架构图如下所⽰: