MySQL的概念

news2024/11/30 0:34:51

MySQL的概念

  • 一.数据库的基本概念
    • 1、数据(Data)
    • 2、表
    • 3、数据库
    • 4、数据库管理系统(DBMS)
      • 4.1 关系数据库
      • 4.2 非关系型数据库 NoSQL
    • 5、数据库系统
    • 6、访问数据库的流程
  • 二.数据库系统发展史
    • 1.第一代数据库
    • 2.第二代数据库
    • 3.第三代数据库
  • 三、当今主流数据库介绍
    • 1.SQL Server (微软公司产品)
    • 2、Oracle (甲骨文公司产品)
    • 3、DB2 (IBM公司产品)
    • 4.MySQL (甲骨文公司收购)
  • 四、关系数据库
    • 1、实体
    • 2、属性
    • 3、联系
    • 4、关系数据库
    • 5、关系数据库的应用
  • 六、非关系数据库
    • 1、非关系型数据库的优点
    • 2、常用的非关系数据库
  • 七、MySQL的介绍
    • 1 MySQL数据库介绍
    • 2、MySQL商业版与社区版
    • 3、 MySQL产品阵营
  • 八、编译安装MySQL数据库
    • 脚本一键安装部署

一.数据库的基本概念

1、数据(Data)

• 描述事物的符号记录

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

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

2、表

• 将不同的记录组织在一起

• 用来存储具体数据

3、数据库

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

• 以一定的组织方式存储的相互有关的数据集合

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

数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能

• 是实现对数据库资源有效组织、管理和存取的系统软件

数据库管理系统主要分为以下两类:

4.1 关系数据库

​ 关系数据库是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示.几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。

​ 典型代表有:MySQL、Oracle、Microsoft SQL Server、Access及PostgreSQL等

4.2 非关系型数据库 NoSQL

​ 非关系型数据库是对不同于传统的关系数据库的数据库管理系统的统称。与关系数据库最大的不同点是不使用SQL作为查询语言。

​ 典型代表有:Reids、BigTable(Google)、Cassandra、MongoDB、CouchDB;

​ 还包括键值数据库:Apache Cassandra(Facebook)、LevelDB(Google)

5、数据库系统

• 是一个人机系统,由硬件、os、数据库、DBMS、应用软件和数据库用户组成

• 用户可以通过DBMS或应用程序操作数据库

结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。

作用:用于存取数据、查询、更新和管理关系数据库系统。

6、访问数据库的流程

在这里插入图片描述

二.数据库系统发展史

1.第一代数据库

• 自20世纪60年代起,第一代数据库系统问世

• 是层次模型与网状模型的数据库系统

• 为统一管理和共享数据提供了有力的支撑

2.第二代数据库

• 20世纪70年代,第二代数据库—关系数据库开始出现

• 20世纪80年代,IBM公司的关系数据库系统DB2问世,开始逐步取代层次与网状模型的数据库,成为行业主流

• 到目前为止,关系数据库系统仍占领数据库应用的主要地位

3.第三代数据库

• 自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现

• 面向对象的数据库系统,实用性强,适应面广

• 20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面

• 一些新的元素被添加进主流数据库系统中
例如,Oracle支持的 “关系-对象"数据库模型

三、当今主流数据库介绍

1.SQL Server (微软公司产品)

• 面向Windows操作系统
• 简单、易用

2、Oracle (甲骨文公司产品)

• 面向所有主流平台,
• 安全、完善,操作复杂

3、DB2 (IBM公司产品)

• 面向所有主流平台
• 大型、安全、完善

4.MySQL (甲骨文公司收购)

• 免费、开源、体积小

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。

MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。

四、关系数据库

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

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

• 关系模型可用简单的“实体关系”(E-R) 图来表示

• E-R图中包含了实体(数据对象)、关系和属性三个要素
在这里插入图片描述

1、实体

  • 也称为实例,对应现实世界中可区别于其它对象的“事件”或“事物”

    • 如银行客户、银行账户等

2、属性

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

    • 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

3、联系

  • 实体集之间的对应关系称为联系,也称为关系

    • 如银行客户和银行账户存在“储蓄”的关系

    • 所有实体及实体之间联系的集合构成一个关系数据库

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

在每个二维表中

  • 每一行称为一条记录,用来描述一个对象的信息

  • 每一列称为一个字段,用来描述对象的一个属性

4、关系数据库

• Oracle , MySQL
• SQLServer、Sybase
• Informix、access
• DB2、FoxPRO

5、关系数据库的应用

12306用户信息系统------------Oracle,MySQL

淘宝账号系统---------------------SQLServer、Sybase

联通手机号信息系统----------- Informix、access

银行用户账号系统---------------DB2、FoxPRO

网站用户信息系统---------------PostgreSQL

六、非关系数据库

非关系数据库也被称作NoSQL (Not Only SQL)

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

1、非关系型数据库的优点

• 数据库可高并发读写

• 对海数据高效率存储与访问

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

2、常用的非关系数据库

Redis、mongoDB等

七、MySQL的介绍

1 MySQL数据库介绍

一款深受欢迎的开源关系型数据库

Oracle旗下的产品

遵守GPL协议,可以免费使用与修改

特点:

性能卓越、服务稳定

开源、无版权限制、成本低

多线程、多用户

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

安全可靠

2、MySQL商业版与社区版

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

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

两者区别

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

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

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

3、 MySQL产品阵营

第一阵营:5.0-5.1阵营,可说是早期产品的延续

第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能

第三阵营:6.0-7.1阵营,就是MySQL Cluster版本, 为适应新时代对数据库的集群需求而开发

下载网址:
http://www.dev.mysql.com/downloads

八、编译安装MySQL数据库

脚本一键安装部署

#!/bin/bash

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake

#创建程序用户管理
useradd -s /sbin/nologin mysql

cd /opt
tar zxvf mysql-5.7.17.tar.gz -C /opt
cd /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17

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_EXTRA_CHARSETS=all \
-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=/usr/local/boost \
-DWITH_SYSTEMD=1

make -j2 && make install


#创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf


#调整配置文件

echo '[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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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
' > /etc/my.cnf

#设置环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

#初始化数据库
cd /usr/local/mysql/bin/
echo "wait..."
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

#数据库开启
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

yum -y install expect &> /dev/null
source /etc/profile
#设置Mysql密码
/usr/bin/expect <<-EOF
spawn mysqladmin -u root -p password  
expect {
"Enter password"
{send "\r";exp_continue}
"New password"
{send "123456\r";exp_continue}
"Confirm new password"
{send "123456\r"}
}
expect eof
EOF
echo "mysql密码为123456"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA多线程(MultiThread)的各种用法

多线程简单应用 单线程的问题在于&#xff0c;一个线程每次只能处理一个任务&#xff0c;如果这个任务比较耗时&#xff0c;那在这个任务未完成之前&#xff0c;其它操作就会无法响应。 如下示例中&#xff0c;点击了“进度1”后&#xff0c;程序界面就没反应了&#xff0c;强行…

类文件结构和初识一些字节码指令

文章目录类文件的结构为什么要了解字节码指令Class文件结构Java虚拟机规定的类结构魔数版本常量池访问标志类索引、父类索引、接口索引Ⅰ. interfaces_count&#xff08;接口计数器&#xff09;Ⅱ. interfaces[]&#xff08;接口索引集合&#xff09;字段表集合**1. 字段表访问…

【React】使用 react-pdf 将数据渲染为pdf并提供下载

文章目录前言环境步骤1. 安装react脚手架2. 使用 create-react-app 创建项目 &#xff08;首字母不要大写、不要使用特殊字符&#xff09;3. 用 vscode 打开目录 react-staging4. yarn 启动项目5. 参考 react-pdf readme加入依赖6. 结合 github readme 和官方文档产出 demo 代码…

OpenGL 色彩替换

目录 一.OpenGL 色彩替换 1.IOS Object-C 版本1.Windows OpenGL ES 版本2.Windows OpenGL 版本 二.OpenGL 色彩替换 GLSL Shader三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录…

防抖debounce与节流throttle(63rd)

一、前言 当用户高频触发某一事件时&#xff0c;如窗口的resize、scroll&#xff0c;输入框内容校验等&#xff0c;此时这些事件调用函数的频率如果没有限制&#xff0c;可能会导致响应跟不上触发&#xff0c;出现页面卡顿&#xff0c;假死现象。此时&#xff0c;我们可以采用…

深度剖析NIKE Web3平台:为什么Web3对品牌很重要?

欢迎关注沉睡者IT&#xff0c;点上面关注我 ↑ ↑ 上周&#xff0c;NIKE 宣布了其新的 Web 3 平台 .SWOOSH&#xff0c;这是 NIKE Virtual Sudios (耐克虚拟工作室) 的一项新举措&#xff0c;将成为 NIKE 所有数字资产创作的“大本营”。继去年收购 RTFKT 之后&#xff0c;此次…

SpringBoot SpringBoot 原理篇 3 核心原理 3.4 启动流程【3】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇3 核心原理3.4 启动流程【3】3.4.1 看源码咯3 核心原理 3.4 启动流程【3】 …

负载均衡反向代理下的webshell上传

目录 架构如下&#xff1a; 实验环境&#xff1a; AntSword-Labshttps://github.com/AntSwordProject/AntSword-Labs 搭建环境&#xff1a; 启动环境&#xff1a; 测试连接&#xff1a; 地址不停的在漂移会造成的问题&#xff1a; 难点一&#xff1a;我们需要在每一台节点…

特征工程(六)—(2)利用LDA进行特征转换

1、LDA的手动处理 LDA&#xff08;线性判别分析&#xff09;是特征变换算法&#xff0c;也是有监督分类器。 和PCA一样&#xff0c;LDA的目标是提取一个新的坐标系&#xff0c;将原始的数据集投影到一个低维的空间中。 和PCA的主要区别是&#xff0c;LDA不会专注数据的方差&a…

[附源码]计算机毕业设计JAVA实验教学过程管理平台

[附源码]计算机毕业设计JAVA实验教学过程管理平台 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

【Hack The Box】linux练习-- Magic

HTB 学习笔记 【Hack The Box】linux练习-- Magic &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月21日&#x1f334; &#x1f36…

Js逆向教程17-极验滑块 实现加密算法的逻辑

Js逆向教程17-极验滑块 实现加密算法的逻辑 还是和上节课一样&#xff0c;针对这个网址 https://www.geetest.com/demo/slide-float.html 一、加密算法的结果查看 计算u运行后的结果&#xff1a; a45a0551c344b03be428cab551f9755f073e64061c35988a29d6ba70e7d35c8b9e963b63…

全波形反演的深度学习方法: 第二章 正演 (草稿)

本章介绍正演的基础知识. 本贴的目的是进行内部培训, 错误之处较多, 希望不要误导读者. 2.1 弦线波动基本原理 波动方程是正演的基础. 最简单的模型是在一根弦上的波动, 假设如下: 横震动. 例如拨动吉他弦;微小震动. 满足 u(xΔx,t)−u(x,t)≪Δxu(x \Delta x, t) - u(x, t…

Redis学习(三)之 分布式锁详解

1、redis分布式锁相关的可以移步这篇文章redis做分布式锁实战案例详解_酒书的博客-CSDN博客 这里是对该篇文章的加深与补充 2.集群主从切换导致锁丢失问题&#xff1a;在redis主从架构中&#xff0c;写入都是写入到主redis中&#xff0c;主redis会同步数据到slave机器&#x…

Mybatis插件机制

什么是插件机制 插件插件&#xff0c; 就是能在执行某个方法之前加入一些功能代码&#xff0c; 有啥方法能够实现呢&#xff1f;当然是动态代理了&#xff0c; 为啥要使用动态代理应为他是为了写框架扩展性必备的东西。 只要定义一些接口 或者类 就行使用jdk自带的或者CGLIB之…

分布式NoSQL数据库HBase实践与原理剖析(二)

title: HBase系列 第五章 HBase核心原理 5.1 系统架构 注意&#xff0c;其实上图中的HLog应该在HRegionServer里面&#xff0c;而不是在HRegion里面。所以图有点点问题。其实通过后面的物理存储的图也能发现这个问题。 Client 职责 1、HBase 有两张特殊表&#xff1a; .meta.…

力扣 21. 合并两个有序链表 C语言实现

题目描述&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 题目链接 方法1&#xff1a;遍历 新建一个链表 newList 用于存放合并后的链表&#xff0c;设置一个指针指向该链表最后一个位置的 next&#xff0c…

77.【JavaWeb文件上传和邮件发送04】

JavaWeb(二十五)、文件上传1.准备工作2.实用类介绍3.思维导图:4.正戏开始5.完整代码(二十六)、邮箱发送1.邮箱发送的原理:2.服务器的原理3.下载两个jar包4.基本类:5.全部代码(二十七)、网站注册发送邮件实现(二十五)、文件上传 1.首先创建一个empty项目 2.配置project项目中的…

【JVM】jvm中的栈简介

jvm中的栈简介一、JVM体系结构二、栈是什么&#xff1f;三、栈的特性四、栈帧五、栈的运行原理5.1 运行原理5.2 代码示例5.2.1 方法的入栈和出栈5.2.2 没有捕获异常5.2.3 捕获异常六、栈帧的内部结构七、运行时数据区&#xff0c;哪些部分存在Error和GC&#xff1f;八、本文源码…

boot 创建 https

需要在配置文件中&#xff1a;加入 server:ssl:key-store: classpath:https.keystorekey-store-type: JKSkey-alias: tomcatkey-password: 123456key-store-password: 123456port: 8089 这样原本请求的http&#xff0c;就需要变成https&#xff0c;其他类似 RestController p…