一、数据库的原理
1.数据库的分类
我们可以根据数据的结构类型,将数据分成三类,分别是:结构化数据,半结构化数据,非结构化数据。
要点:对于结构化数据来讲通常是先有结构再有数据。
要点:对于半结构化数据来说则是先有数据再有结构。 三者具体总结如下图

2.数据库管理系统
数据库:Database(DB) 按照一定的数据结构来组织,存储和管理数据的仓库
数据库管理系统:Database Management System (DBMS) 一种操纵和管理数据库的大型软件
数据库管理员:Database Administrator (DBA) 从事管理和维护数据库管理系统人员的统称
应用程序:Application 一个应用程序通常是指能够执行某种功能的软件程序。
2.1 数据库管理系统基本功能
数据的定义,数据操作,数据组织、存储与管理,数据库的运行管理,数据库的维护,通信
关系数据库管理系统:Relational Database Management System(RDBMS)
常见的关系型数据库系统
MySQL: MySQL,MariaDB,Percona Server
MySQL: MySQL,MariaDB,Percona Server
PostgreSQL: PgSQL,EnterpriseDB
Oracle: Oracle
SQLServer: Microsoft公司推出的一种关系型数据库系统,
DB2: IBM公司研制的一种关系型数据库系统
3.关系型数据库理论
3.1 E-R模型
全称为实体联系模型、实体关系模型或实体联系模式图(ERD:Entity-relationship model),它
提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。
E-R图模型的组成是由实体,属性和联系三部份组成。
3.2 数据的操作
操作描述 | 作用 | SQL 关键字 |
---|---|---|
Create | 增加数据 | Insert |
Read | 读取数据 | Select |
Update | 更新数据 | Update |
Delete | 删除数据 | Delete |
3.3 数据库的正规化分析
数据库六范式
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式 (BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。 在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般数据库只需满足第三范式(3NF)即可。
第一范式 1NF (确保每列保持原子性)
第二范式 2NF (确保表中的每列都和主键相关)
第三范式 3NF (确保每列都和主键列直接相关,而不是间接相关)
第二范式 2NF (确保表中的每列都和主键相关)
第三范式 3NF (确保每列都和主键列直接相关,而不是间接相关)
简单来说,所谓的第三范式,其实指的是,我们的表里面的数据都是功能比较单一的,他们彼此实现了松耦合的效果。
3.4 SQL 结构化查询语言
SQL:( Structure Query Language ), 结构化查询语言。
是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,SQL语句就是用SQL语言写的用于操作数据库的语句。
3.5 MySQL执行查询语句执行流程

1 接收查询语句:
2 词法分析和语法分析:
3 语义分析:
4 查询优化:
5 查询执行:
6 结果集返回:
二、MySQL 安装和基本使用
1.MySQL软件
MySQL 的三个主要分支
项目 | 官网地址 | 文档地址 |
---|---|---|
MySQL | https://www.mysql.com/ | https://dev.mysql.com/doc/ |
Mariadb | MariaDB Foundation - MariaDB.org | https://mariadb.com/kb/en/ |
Percona Server | https://www.percona.com | MySQL Software - Best Enterprise MySQL Database Software | Percona |
2.安装Mysql
2.1 光盘镜像
CentOS9 系列光盘镜像自带 mysql-server 8.0 和 mariadb-server 10.3
CentOS7 系列光盘镜像自带 mariadb-server 5.5 CentOS6 系列光盘镜像自带 mysql-server 5.1
[root@rocky9 ~]# mount /dev/cdrom /opt 挂载镜像
[root@rocky9 ~]# ls /opt/AppStream/Packages/m/mysql-ser* 查看数据库软件
[root@rocky9 ~]# ls /opt/AppStream/Packages/m/mariadb-server-1* 查看数据库软件
2.2 官方源安装
源类型 | 配置地址 |
---|---|
mariadb 官方源 | Download MariaDB Server - MariaDB.org |
mysql 官方源 | https://dev.mysql.com/downloads |
阿里云 mysql 源 | mysql安装包下载_开源镜像站-阿里云 |
阿里云 mariadb 源 | mariadb安装包下载_开源镜像站-阿里云 |
清华 mysql 源 | Index of /mysql/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror |
清华 mariadb 源 | Index of /mariadb/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror |
2.3 包安装(yum为例)
[root@rocky9 ~]# yum install -y mysql-server #安装
[root@rocky9 ~]# pstree | grep mysql #多线程模式
[root@rocky9 ~]# getent passwd mysql #自动创建账户
[root@rocky9 ~]# ll /var/lib/mysql #查看mysql真正的家目录
[root@rocky9 ~]# ls /var/lib/mysql/mysql #查看数据库的数据文件
[root@rocky9 ~]# ls /var/lib/mysql/mysql #查看数据库的数据文件
注意:因为这些文件,不是普通的文件系统,它是数据库专用的文件,只能通过数据库的统一接口到这些文件中,进行数据的查找。