一、數據庫的原理
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? ?#查看數據庫的數據文件
注意:因為這些文件,不是普通的文件系統,它是數據庫專用的文件,只能通過數據庫的統一接口到這些文件中,進行數據的查找。