数据库的基本概念和安装MYSQL数据库

目录

一、数据库的发展

1、文件管理系统的缺点

2、数据库管理系统DBMS的优点

3、数据库管理系统(DBMS)

3.1DBMS的功能

3.2DBMS的工作模式

4、数据库系统的发展

5、数据库管理系统的架构

6、数据库管理系统分类

二、RDBMS关系型数据库的基本介绍

1、关系型数据库相关概念

2、常用的关系型数据库

3、关系型数据库三要素

4、关系型数据库与非关系型数据库

4.1关系型数据库

4.2非关系型数据库

5、关系型数据库和非关系型数据库的区别

5.1关系型数据库:关系型数据库结构是二维数据库,存储在硬盘中

5.1.1优点:

5.1.2缺点:

5.2缓存加速软件 非关系型数据库

5.2.1优点

5.2.2缺点

三、数据库的基本概念

1、数据

2、表

3、数据库

4.访问数据库的过程​编辑

四、MySQL数据库介绍

1、mysql数据库是什么

2、特点

3、三大分支

4、版本演变

5、商业版和社区版本

6、Mysql的组成

6.1客户端程序

6.2服务端程序

五编译安装Mysql数据库

1、安装相关依赖包

2、下载并压缩源码包

3、编译安装

4、数据库目录进行权限调整,改变属主属组

5、调整配置文件

6、设置环境变量

7、初始化数据库

8、数据库开启自启,关闭,状态

9、设置MySQL密码

10、登录,登出mysql


一、数据库的发展

1、文件管理系统的缺点

编写应用程序不方便 数据较为冗余 应用程序依赖性 不支持对文件的并发访问 数据之间联系弱 难以按用户视图表示数据 无安全控制功能 

2、数据库管理系统DBMS的优点

相互关联的数据的集合 较少的数据冗余 程序与数据相互独立 保证数据的安全、可靠 最大限度地保证数据的正确性 数据可以并发使用并能同时保证一致性

3、数据库管理系统(DBMS)

3.1DBMS的功能

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

①数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。

②数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。

③数据操纵功能:包括数据查询统计和数据更新两个方面。

④数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。

⑤通信功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。

3.2DBMS的工作模式

①接受应用程序的数据请求和处理请求

②将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)

③实现对数据库的操作

④从数据库的操作中接受查询结果

⑤对查询结果进行处理(格式转换)

⑥将处理结果返回给用户

4、数据库系统的发展

①第一阶段:文件系统

使用磁盘文件来存储数据

②第二阶段:第一代数据库

出现了网状模型,层次模型的数据库,代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。

③第三阶段:关系型数据库,目前大部分数据库采用的是关系型数据库。1970年IBM公司的研究员E.F.Codd提出了关系模型。其代表产品为sysem R和Inges。

④第四阶段:第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。它必须支持面向对象,具有开放性,能够在多个平台上使用。管理技术的3个阶段1 人工管理2 文件管理3 数据库系统组合

5、数据库管理系统的架构

①单机架构

②大型主机终端架构

③主从式架构

④分布式架构

6、数据库管理系统分类

①层次数据库

层次模型数据库系统是最早的数据库系统,最典型的是IMS。

②网状数据库

网状数据库采用网状原理和方法,以网状数据模型为基础建立的数据库。即一个节点可以有一个或者多个下级节点,也可以有一个或多个上级节点。

③RDBMS关系型数据库

二、RDBMS关系型数据库的基本介绍

1、关系型数据库相关概念

①关系:关系就是二维表

②行:表中的每一行

③列:表中的每一列

④主键:用于唯一确定一个记录的字段,一张表只有一个主键

⑤域:属性的取值范围

2、常用的关系型数据库

①Mysql(甲骨文公司)免费开源,体积小

②SQL S erver(微软公司产品)面向windows操作系统,简单易用

③Oracle(甲骨文公司产品)面向所有主流平台,安全,完善,操作复杂

④DB2(IBM公司产品)面向所有主流平台,大型,安全,完善

⑤Postgre SQL(加州大学计算机系开发的)

3、关系型数据库三要素

①实体:也成为实例,对应现实世界中可区别于其他对象的事件或事物

②属性:实体所具有的某一特性,一个实体可以有多个属性

③联系:实体集之间的对应关系成为联系,也成为关系

4、关系型数据库与非关系型数据库

4.1关系型数据库

①关系型数据库系统是基于关系模型的数据库系统

②关系模型的数据结构使用简单易懂的二维数据表

③关系模型可用简单的实体-关系 图来表示

④E-R图中包含了实体,关系和属性三个要素

⑤关系型数据库的存储结构是二维表格

在每个二维表格中,每一行为一个记录,用来描述一个对象的信息。每一列称为一个字段,用来描述对象的一个属性。

4.2非关系型数据库

也叫做NoSQL

存储数据不以关系模型为依据,不需要固定的表格式

非关系型数据库的优点

①数据库可高并发读写

②对海量数据效率存储与访问

③数据库具有高扩展性与高可用

常用的非关系数据库:Redis mongoDB等

5、关系型数据库和非关系型数据库的区别

5.1关系型数据库:关系型数据库结构是二维数据库存储在硬盘
5.1.1优点:

①易于维护:格式一致

②使用方便:SQL语言通用,可用于复杂查询

③复杂操作:支持SQL,可用于一个表以及多个表之间复杂的查询

5.1.2缺点:

①读写性能较差,尤其是海量数据的高效率读写

②固定的表结构,灵活度较低

③高并发读写需求,传统关系型数据库,硬盘I/O是一个很大的瓶颈

5.2缓存加速软件 非关系型数据库

mongoDB Redis K-V键值对。严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

5.2.1优点

①格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、 图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。

②速度快:osql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘

③高扩展性和高可用性

④成本低:nosql数据库部署简单,基本都是开源软件。

5.2.2缺点

①不支持sql,学习和使用成本比较高

②无事务处理

③数据结构相对复杂,查询方面稍微欠缺

三、数据库的基本概念

1、数据

描述事物的符号记录

包括数字,文字,图形,声音,档案记录等

以记录形式按统一的格式进行存储

2、表

将不同的记录组织在一起

用来存储具体数据

3、数据库

表的集合,是存储数据的仓库

4.访问数据库的过程

过程:

1、应用程序把查询SQL语句发给服务端执行

2、服务器解析请求的SQL语句

3、语句执行

ps:

1、确保SQL语法正确

2、确保SQL语义上的正确性即对象是否存在

3、数据库用户是否具有相应的访问权限

四、MySQL数据库介绍

1、mysql数据库是什么

是一款受欢迎的开源关系型数据库,oracle旗下的产品,遵守GPL协议,可以免费使用与修改。

2、特点

①性能卓越,服务稳定

②开源,无版本限制,成本低

③多线程,多用户

④基于C/S(客户端/服务器)架构

⑤更安全可靠

3、三大分支

①mysql

②mariadb

③percona server

4、版本演变

mysql -V 可以查看mysql版本号

第一阵营:5.0-5.1阵营,可说是早期产品的延续
第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
第三阵营:6.0-7.1阵营,就是MySQL Cluster版本, 为适应新时代对数据库的集群需求而开发

5、商业版和社区版本

MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用

MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可以免费使用

区别:

商业版组织管理与测试环节更加严格,会比社区版更稳定

商业版不遵守GPL,社区版遵从GPL可以免费使用

商业版可获得7*24小时的服务,社区版则没有
 

6、Mysql的组成

6.1客户端程序
  • mysql: 交互式的CLI工具

  • mysqladmin:基于mysql协议管理mysqld

  • mysqlimport:数据导入工具

    MyISAM存储引擎的管理工具:

  • myisamchk:检查MyISAM库

  • myisampack:打包MyISAM表,只读

6.2服务端程序
  • mysqld_safe

  • mysqld

  • mysqld_multi 多实例 ,示例:mysqld_multi

五编译安装Mysql数据库

1、安装相关依赖包

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2、下载并压缩源码包

#切换目录,上传压缩包
cd /opt
rz -E
 
#解压
tar xf  mysql-boost-5.7.20.tar.gz

3、编译安装

1. #切换目录
cd mysql-5.7.20/
 
2. #编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
 
3. #安装
make -j2 && make install
 
#############模块解释#####################
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
#指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \
#指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \
#指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \
#指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \
#指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
#指定数据库文件的存储路径
-DWITH_BOOST=boost \
#指定boost的路径,
-DWITH_SYSTEMD=1
#生成便于systemctl管理的文件

4、数据库目录进行权限调整,改变属主属组

useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

5、调整配置文件

vim /etc/my.cnf
--------------------------内容如下
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
 
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
 
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

6、设置环境变量

#配置环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
 
#刷新
source /etc/profile
 
#查看是否成功
echo $PATH

7、初始化数据库

#切换目录
cd /usr/local/mysql/
 
#初始化
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
 
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

8、数据库开启自启,关闭,状态

systemctl enable mysqld        #设置开机自启
systemctl start mysqld         #开启
systemctl stop mysqld          #关闭
systemctl start mysqld         #开启
systemctl status mysqld        #查看状态
ss -anpt | grep 3306           #过滤端口验证是否开启

9、设置MySQL密码

#修改密码为123123 开始初始密码为空  回车即可
mysqladmin -u root -p password "123123"

10、登录,登出mysql

#登录
mysql -u root -p
 
#授予root用户可以在所有终端远程登录,使用的密码是123123,并对所有数据库和所有表有操作权限
grant all privileges on *.* to 'root'@'%' identified by '123123';
 
#退出
quit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/471674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软考 网工 每日学习打卡 2024/3/19

学习内容 第8章 网络安全 本章主要讲解网络安全方面的基础知识和应用技术。针对考试应该掌握诸如数据加密、报文认 证、数字签名等基本理论,在此基础上深入理解网络安全协议的工作原理,并能够针对具体的 网络系统设计和实现简单的安全解决方案。 本章共有…

Java学习笔记21——使用JDBC访问MySQL数据库

JDBC(Java Database Connectivity,Java数据库连接)是应用程序编程借口(API),描述了一套访问关系数据库的标准Java类库。可以在程序中使用这些API,连接到关系数据库,执行SQL语句&…

由浅到深认识C语言(7):预处理二进制

该文章Github地址:https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn…

Oracle19C静默安装教程

一、安装前的准备 1、安装Linux操作系统 红帽Linux安装教程 2、配置网络源或者本地源 网络源:网络源配置方法 本地源:本地源配置方法 3、hosts文件配置 配置hostname: hostnamectl set-hostname p19c配置hosts文件: cat &…

从零开始写 Docker(七)---实现 mydocker commit 打包容器成镜像

本文为从零开始写 Docker 系列第七篇,实现类似 docker commit 的功能,把运行状态的容器存储成镜像保存下来。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识: 核心原…

多个线程交替打印ABC

多个线程交替打印ABC package 多个线程交替打印ABC;import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier;/*** Created with IntelliJ IDEA.** Author: AlenXu* Date: 2024/03/20/10:10* Description:*/ public class ThreadLoopP…

数字功放VS模拟功放,选择适合你的音频解决方案

数字功放和模拟功放是音频系统中常用的两种功放技术,适用于不同的音频应用,都具有各自的优势和特点。本文将为您详细介绍数字功放和模拟功放的差异,并帮助您找到适合自己的音频解决方案。 1、数字功放是一种利用数字信号处理技术的功放。它将…

0基础 三个月掌握C语言(13)

数据在内存中的存储 整数在内存中的存储 在讲解操作符时 我们就已经学习了该部分的内容 这里我们回顾一下 整数的二进制表示方法有三种:原码 反码 补码 有符号的整数(unsigned) 三种表达方式均有符号位和数值位两部分 最高位的一位被当…

【C语言步行梯】C语言实现扫雷游戏(含详细分析)

🎯每日努力一点点,技术进步看得见 🏠专栏介绍:【C语言步行梯】专栏用于介绍C语言相关内容,每篇文章将通过图片代码片段网络相关题目的方式编写,欢迎订阅~~ 文章目录 需求分析具体实现主函数体菜单实现游戏实…

AI预测福彩3D第14弹【2024年3月20日预测--新算法重新开始计算第11次测试】

今天继续对第一套算法进行测试。废话不多说了,直接上分析出的图表,再上结果。 最终,经过研判分析,2024年3月20日福彩3D的七码预测结果如下: 百位:7 8 4 3 5 6 9(1换9) 十位:5 4 3 6 1 2 0(07分一…

day14-SpringBoot 原理篇

一、配置优先级 SpringBoot 中支持三种格式的配置文件: 注意事项 虽然 springboot 支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置 (yml 是主流)。 配置文件优先级排名(从高到低&…

事务同步管理器TransactionSynchronizationManager

事务同步管理器的使用场景: 同步涉及的资源包括:SqlSession & Connection。同步资源核心目的是线程共享,意味着必须跟线程绑定。同步资源伴随着线程生存或者消亡,意味着线程结束之前必须手动清除其绑定的资源。事务同步管理器…

基于SpringBoot+Redis实现接口限流

前言 业务中需要对一些接口进行限流处理&#xff0c;防止机器人调用或者保证服务质量&#xff1b; 实现方式 基于redis的lua脚本 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis&…

Linux Deepin系统安装x11vnc+cpolar实现Windows系统电脑远程其桌面

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 x11vnc是一种在Linux系统中实现远程桌面控制的工具&#xff0c;它的原理是通过X Window系统的协议来实现远程桌面的展…

linux用git拉取我云端以及git处理冲突

拉取后切换一个跟云端分支(dev)一样的 git branch --set-upstream-toorigin/dev dev 之后就同步了 A在dev分支写了iii,提交 B在dev分支写了hhh,提交,冲突 怎么修改,B把云端的拉下来,随便改改就行

YOLOv7 | 添加GSConv,VoVGSCSP等多种卷积,有效提升目标检测效果,代码改进(超详细)

⭐欢迎大家订阅我的专栏一起学习⭐ &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; YOLOv5涨点专栏&#xff1a;http://t.csdnimg.cn/QdCj6 YOLOv7专栏&#xff1a; http://t.csdnimg.cn/dy…

Qt 多元素控件

Qt开发 多元素控件 Qt 中提供的多元素控件有: QListWidgetQListViewQTableWidgetQTableViewQTreeWidgetQTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例. QTableView 是基于 MVC 设计的控件. QTableView 自身不持有数据. 使用QTableView 的 …

latex如何让标题section取消数字标号

解决方法——加一个*号 在LaTeX中&#xff0c;如果你想让section标题取消数字标号&#xff0c;可以使用section*代替section。section*将生成一个不带数字标号的节标题。 例如&#xff0c;你可以这样写&#xff1a; \section*{这是不带数字标号的节标题}这将生成一个标题&am…

给老婆整了个短剧搜索机器人APP

最近短剧挺火&#xff0c;很多群友们都在做一些资源分享&#xff0c;老胡于是基于这些资源做了个短剧搜索引擎&#xff0c;挺多朋友喜欢看的&#xff0c;我老婆也在看哈哈&#xff0c;真上头&#xff0c;废话不多说&#xff0c;上短剧机器人。 短剧机器人 直接在微信群输入&…

解决由于历史原因解析tflite失败的问题

文章目录 0. 背景1. tflite 历史遗留问题2. schema3. flatbuffers 编译器3.1 安装 FlatBuffers 编译器3.2. 编译 FlatBuffers schema 文件3.3 使用生成的 Python 文件 4 问题未解决终极解决方案 写在最前面&#xff1a;解决方法是升级tensorflow版本&#xff0c;重新生成tflite…