当前位置: 首页 > news >正文

MySQL 数据库

目录

1. 数据库简介

1.1 使用数据库的必要性

1.2 数据库的基本概念

1.3 经典数据模型

2. MySQL 服务基础

2.1 MySQL 的二进制安装

2.1.1 基础环境准备

2.1.2 二进制安装

2.1.3 设定配置文件


1. 数据库简介

1.1 使用数据库的必要性

使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。数据库具有以下特点。

  • 可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。
  • 可以有效地保持数据信息的一致性、完整性,降低数据几余。
  • 可以满足应用的共享和安全方面的要求。

数据库技术是计算机科学的核心技术之一,具有完备的理论基础。对数据库基本概念的掌握,将有助于对数据库的理解。

1.2 数据库的基本概念

(1) 数据

描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等都是数据。

在数据库中,数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱无章的。相同格式和类型的数据统一存放在一起,而不会把“人”和“书”混在一起存储。这样,数据的存储就能够井然有序。

(2) 数据库盒数据库表

不同的记录组织在一起,就形成了数据库(Database,DB)的“表”(Table)。简单地说,数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合。例如,关系数据库的表由记录组成,记录由字段组成,字段由字符或数字组成。它可以供各种用户共享,具有最小冗余度和较高的数据独立性,它是统一管理的相关数据的集合。通常,数据库并不是简单地存储这些数据的,还要表示它们之间的关系。

(3) 数据库管理系统和数据库系统

数据库管理系统(Database Management System,DBMS)是实现对数据库资源有效组织、管理和存取的系统软件。它在操作系统的支持下,支持用户对数据库的各项操作。DBMS 主要包括以下功能。

  • 数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。
  • 数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。
  • 数据操纵功能:包括数据查询统计和数据更新两个方面。
  • 数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。
  • 通信功能:DBMS 与其他软件系统之间的通信,如Access 能与其他 Office组件进行 数据交换。

数据库系统(Database System,DBS)是一个人-机系统,一般由硬件、操作系统、数 据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成。用户可以通过 DBMS 操作 数据库,也可以通过应用程序操作数据库。应用程序是利用 DBMS 为解决某个具体的管理或数据处理的任务而编制的一系列命令的 有序集合。如果应用程序比较完善,能够提供友好的人机界面,并编译成可执行文件发行,使得普通用户不需要具备计算机的专业知识,在较短时间就学会使用,那么就称为数据库应 用软件。

数据库管理员(Database Administrator,DBA)负责数据库的更新和备份、数据库系 统的维护、用户管理等工作,保证数据库系统的正常运行。DBA般由业务水平较高、资历 较深的人员担任。

1.3 经典数据模型

数据是现实世界中“量 ”的抽象,而数据模型(Data Model)是数据特征的抽象。在数据库系统中,数据模型是它的核心与基础。数据模型表现为数据的结构、定义在其上的操作及约束条件。它从概念层次上描述了系统的静态特征、动态特征和约束条件,为数据库系统的信息表示与操作提供了一个抽象框架。
在 DBMS 的发展过程中,出现了网状模型、层次模型和关系模型三种经典的数据模型。 由于受限于数学基础、编程技术和硬件条件,最初出现的层次模型和网状模型与关系模型相 比,在用户接口的上、中层部分更易于实现。所以,这在很长一段时间阻碍了关系模型的发展。

(1) 网状模型

数据结构

  • 在网状模型中,数据记录组织成图的形式,使用“数据结构图”进行抽象的分析和表示。
  • 网状模型适合表达复杂的数据关系,也可以将数据冗余减小到最小,它的数据结构模型能直观反映现实中数据之间的联系。.

数据操作

网状模型的数据操作是建立在关系链基础上的导航式的操作。针对一个特定的网状模型系统的数据结构,有可能找到最优的查询算法。但是,一旦结构发生变化,就需要新的查询办法。网状模型以图论为基础,还无法得到一个通用的、高效 的解决方案。所以,随着关系模型的飞速发展和广泛应用,网状模型已经暂时失去其重要性了。

数据约束

网状模型的数据约束是零散孤立的,或者分散在各个节点,或者集中成为一种关系链,这样容易导致不一致性或降低效率。所以,通常网状模型不具体实现数据约束,而由应用 程序自身来实现数据约束。这样的情况也使得在网状模型基础上的开发变得困难重重。

(2) 层次模型

数据结构

  • 层次模型是网状模型的一个特例。在层次模型中,数据记录组织成树的形式,使用“树 结构图 ”进行抽象的分析和表示,适合一对多的关系模型。
  • 相对于网状模型,层次模型禁止了多对多和多对一的关系,使得它的数据结构相对简单。

数据操作

在层次模型上的数据操作不可避免地具有网状模型的特点--导航性。但是,由于禁止 了多对一和多对多的关系,因此数据操作相对网状模型而言简单了许多。这样的结构有利于提高数据的查询效率,但数据存取上还存在着必须导航的要求。因此,层次模型的数据库在数据操作上依然比较复杂。

数据约束

层次模型的数据约束与网状模型相似,由于结构的简化,去掉了网状模型中多对多和多对一的关系,数据约束处理的复杂性按级数下降。所以,层次模型的数据约束可以做到适当的系统实现,但很多还是依靠应用程序本身实现。

(3) 关系模型

数据结构

关系模型建立在关系代数的理论基础上,数据结构使用简单易懂的二维数据表,可以用简单的“实体-关系 ”(E-R)图来直接表示,E-R 图中包含了实体(数据对象)、关系和属性三个要素。

  • 实体:也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。
  • 实体集:具有相同类型及共享相同性质的实体集合。
  • 属性:实体所具有的某一特性,一个实体可以有多个属性。
  • 联系:实体集之间的对应关系称为联系,也称为关系。

数据操作

对于数据库的用户而言,关系模型使用从关系代数上抽象出来的数据库操作语言(DML) 进行操作。结构化查询语言(SQL)就是其中最重要的一种,已经成为关系数据库的标准操作语言。它的特色是直接面向结果,简化操作步骤,使得数据库应用的设计变得非常简单易懂。
对于数据库的物理结构而言,关系数据库系统的数据结构简单、功能强、数据独立性高、 理论基础坚实。严格的关系数据库以二维的数据库表作为基本数据结构,利用简单或复杂的索引技术实现查询算法,实现起来相对比较简单,也方便了预编译技术将 SQL 语言直接转化 为有效的数据检索算法。

数据约束

关系模型的数据约束可以针对实体,也可以针对实体的属性,还可以针对关系,并可以在定义实体、实体属性和关系时全面实现。关系模型使用的数据定义语言(DDL)和关系模型在理论上对关系数据库核心实现的要求,使得数据约束可以很容易实现,但是它的效率并不高。
综合来说,关系模型相比网状模型和层次模型有更为坚实和完整的理论基础。相比层次模型和网状模型而言,关系模型与用户更靠近些,而网状模型和层次型与底层实现的结合更紧密。这样的特色也更容易让关系模型成为商业数据库的选择。

2. MySQL 服务基础

MySQL 是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可 靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008 年以前,MySQL 项目由 MySQL AB 公司进行开发、发布和支持,之后历经Sun 公司收购 MySQL AB 公司, 0racle 公司收购 Sun 公司的过程, 目前 MySQL 项目由 0racle 公司负责运营和维护。

2.1 MySQL 的二进制安装

MySQL 的安装方式除了常规的源码编译安装之外,最常用的还包括 YUM 方式安装和二进 制方式安装。二进制安装方式中,包括 rpm 版本以及 glibc 版本。rpm 版本就是在特定 Linux 版本下编译的,如果你的Linux 版本匹配,就可以安装。如下载 Cent0s7 系统所对应编译好 的 rpm 包安装即可。另外一种二进制安装包是基于特定的 glibc 版本编译的,这里主要讲解 基于 glibc 方式安装MySQL.

2.1.1 基础环境准备

安装 MySQL 依赖的软件包

dnf install -y gcc libaio numactl openssl ncurses-compat-libs

创建运行 MySQL 程序的用户

useradd -M-s /sbin/nologin mysql

关闭 SELinux 和防火墙

systemctl stop firewalld
setenforce 0

2.1.2 二进制安装

tar xf mysq1-8.0.36-linux-glibc2.28-x86 64. tar.xz
mv mysql-8.0.36-linux-glibc2.28-x86 64 /usr/loca1/mysql
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

记住此处的临时密码后面登录mysql要用

2.1.3 设定配置文件

vim /etc/my.cnf
[client]
socket=/usr/local/mysql/data/mysgl.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address =0.0.0.0
skip-name-resolve
port =3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max connections=2048
character-set-server=utf8
default-storage-engine=INNODB
max allowed packet=l6M

将 MySQL 的可执行文件写入环境变量中。

ln -s /usr/local/mysql/bin/* /usr/local/bin/

登录到 MySQL 服务器

mysql -u root -p

输入临时密码

alter user 'root'@’localhost’ IDENTIFIED WITH mysql native_password By'123456’; //单引号内为新密码

相关文章:

  • VBA -- 学习Day2
  • STM32系统定时器以及微秒延时函数分析
  • 在openEuler系统下编译安装Redis数据库指南
  • JavaSE核心知识点02面向对象编程02-02(封装、继承、多态)
  • 基于Partial Cross Entropy的弱监督语义分割实战指南
  • Python开发之os.path的常用操作
  • 2025年3月青少年机器人技术等级考试(二级)理论综合真题试卷
  • 【使用switch结构输出季节】2021-11-23
  • Wubuntu安装时创建分区失败解决方案
  • 贝叶斯定理
  • [python] 函数1-函数基础
  • uniapp index.html怎么改都不生效
  • Java 异常
  • 【PhysUnits】2 SI 量纲 实现解析(prefix.rs)
  • el-table合并单元
  • 数据结构(三)——栈和队列
  • uniapp-文件查找失败:‘@dcloudio/uni-ui/lib/uni-icons/uni-icons.vue‘
  • 记录一次华为魔改 fusionlnsight和ai问答的狗血故事
  • git 多个提交记录合并为一个
  • 为什么强调 RESTful 的无状态性?-优雅草卓伊凡
  • 新修订的《婚姻登记条例》明起施行,领证不用户口本了
  • 开局良好,我国第一季度广告业务收入保持较快增速
  • 全国人大常委会启动食品安全法执法检查
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 比尔·盖茨:未来20年通过盖茨基金会捐出几乎全部财富,2045年底基金会停止运营
  • 国防部:正告菲方停止以任何方式冲撞中方核心利益