数据库的简介
数据库是20世纪60年代末发展起来的一项重要技术,已经成为计算机科学与技术的一个重要分支。数据库技术主要是用来解决数据处理的非数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。
数据库的作用:
1. 数据持久化:数据库可以将数据保存在存储介质中,即使应用程序关闭或服务器重启,数据也 不会丢失。
2. 数据结构化:数据库能够以结构化的方式存储数据,使得数据易于管理和查询。
3. 数据完整性:数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和一致 性。
4. 并发控制:数据库可以处理多个用户或进程同时访问和修改数据,同时确保数据的一致性。
5. 安全性:数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。
6. 可扩展性:随着数据量的增长,数据库可以水平或垂直扩展,以适应不断增长的数据需求。
7. 备份和恢复:数据库支持数据的备份和恢复,以防数据丢失或损坏。
8. 查询优化:数据库系统提供了高效的查询优化器,可以快速执行复杂的查询操作。
9. 事务管理:大部分关系型数据库都支持事务,确保一系列操作要么完全成功,要么完全失败,提高了操作的可靠性。
10. 多用户支持:数据库允许多个用户同时访问和操作数据,适合多用户环境。
主流数据库可分为关系型数据库和非关系型数据库
关系型数据库:
Oracle:甲骨文产品,适合大型项目,业内最强的数据库,没有之一,需要收费。
MySQL:开源免费,最受欢迎的数据库,在中小企业中普及率非常高,属于甲骨文,主要用在电 商,论坛等。
PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,可以免费使用,修改和分发。
SQL Sever:微软推出的⼀款专业级数据库,与旗下的操作系统,编程环境配合使用,适用于中 大型项目。
SQLite:一款轻型的数据库,占用资源非常低,常用于嵌入式设备,手机APP,桌面程序等场 景。
非关系型数据库:
Redis:流行的基于键值对的内存数据库,常用作缓存,支持数据持久化,支持多种数据结构。
MongoDB:基于NoSQL的文档型数据库,易扩展,高性能,高可用性,支持丰富的查询和聚合 操作。
关系型数据库简介:
关系型数据库是指采用了关系模型来组织数据的数据库,以行和列的形式存储数据。关系模型可 以简单理解为二维表格模型,而⼀个关系型数据库就是由二维表及其之间的关系组成的一个数据组 织。如图:
注意:每个表中的每一条记录称为一行数据,每一个数据行由一个或多个列组成
客户端与服务器的两种通讯方式:C/S架构与B/S架构
C/S架构即客户端 / 服务器架构模式
B/S架构即浏览器 / 服务器架构模式
C/S架构
C/S 架构全称是客户端 / 服务器(Client / Server)架构,是常用的两层架构。客户端需要安装客户端软件,服务端程序运行在服务器上,提供Socket或数据库服务。使用客户端与MySQL数据库服务器通讯属于C/S架构,常用于固定用户群体中。常见的C/S架构的应用,比如QQ,CCTALK,各种网络游戏等等,一般需要安装并且与服务器进行网络通信的都属于此类。
C/S架构的优点:
(1)大部分业务都可以在客户端完成,充分利用本地的计算机资源
(2)响应速度快
(3)个性化定制能力强
(4)面向相对固定的用户群,对信息安全的控制能力强
C/S架构的缺点:
(1)需要安装客户端才能使用
(2)维护成本高,任何一台电脑上的客户端出现问题都需要进行维护,升能过程繁琐
B/S架构
B/S架构全称是浏览器 / 服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服 务三部分,可以理解为是对C/S架构一种改进。由于所有的业务逻辑都由服务器程序处理,所以客户端仅使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。常用于对公开用户提供的网络服务中。比如常见的大型网站都属于此类。
B/S架构的优点:
(1)客户端零维护,只需要安装一个浏览器即可
(2)所有业务都集中在服务器端,业务扩展非常方便
(3)维护成本低,只需要维护服务器即可
B/S架构的缺点:
(1)服务器安全与业务处理能力需要花费很大精力与成本
(2)不同浏览器支持不尽人意
SQL简介
SQL(Structured Query Language)是结构化查询语言的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库。
SQL分为:Data Definition Language、Data Manipulation Language、Data Control Language
DDL【Data Definition Language】 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML【Data Manipulation Language】 数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update,select
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit
存储引擎简介
存储引擎是MySQL数据库处理数据的核心组件,不同的存储引擎对数据如何存储、索引、更新和 查询的实现方式各有不同,在不同的业务场景可以选用合适的存储引擎。MySQL服务器采用可插拔的存储引擎架构,在服务器运行时可以动态的加载和卸载。
可以使用 SHOW ENGINES 语句查看当前服务器支持哪些存储引擎,如图:
INNODB为默认的存储引擎