文章目录

  • 数据库概述
    • 什么是数据库(数据,表,数据库)
    • 数据库有什么作用?
    • 关系数据库详解
    • 非关系数据库详解
    • 数据库系统发展史
    • 数据库管理系统(DBMS)
  • 当今主流数据库介绍
    • MySQL数据库
    • MySQL商业版与社区版有什么区别?
    • MySQL产品阵营有哪些?
    • MySQL产品阵营有哪些?
    • - 编译安装MySQL 5.7

数据库概述

什么是数据库(数据,表,数据库)

  • 数据

    • 描述事物的符号记录称为数据(Data)
    • 包括数字,文字、图形、图像、声音、档案记录等
    • 以“记录”形式按统一的格式进行存储
    • 每一行,称为记录
    • 每一列,称为字段
    • 将不同的记录组织在一起,就形成了“表
    • 是用来存储具体数据的
  • 数据库
    • 数据库就是表的集合,是存储数据的仓库
    • 以一定的组织方式存储的相互有关的数据

数据库有什么作用?

数据的持久化保存

高可靠,高可用

数据的快速提取(海量的数据,便于管理数据,非结构化数据{比如视频,音频等})

关系数据库详解

  • 关系型数据库是依据关系模型来创建的数据库。
  • 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
  • 关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)

实体-关系”(ER)

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

  • 实体:

    • 也称为实例,对应现实世界中可区别于其他对象的“事件”或“
      事物”,如学生、老师等
  • 属性:
    • 实体所具有的某一特性,一个实体可以有多个属性。例如,“姓名,课程名”实体集中的每个实体均具有姓名、住址、电话等属性
  • 联系:
    • 实体集之间的对应关系称为联系,也称为关系。例如,学生和老师是由“课程”相连接的关系
  • 所有实体及实体之间联系的集合构成一个关系数据库
  • 关系数据库表中会有编码,称为主键,具有唯一,非空特性
  • 关系数据库的存储结构是二维表格,反映事物及其联系的数据是以表格形式保存的
  • 在每个二维表中,每一行称为一条记录,用来描述一个对象的信息;每一列称为一个字段,用来描述对象的一个属性
  • 关系型数据库的应用举例:
    • 12306用户信息系统
    • 淘宝账号信息系统、支付宝账号系统移动、电信、联通手机号信息系统、计费系统银行用户账号系统
    • 网站用户信息系统

非关系数据库详解

  • 非关系型数据库的优点

    • 数据库高并发读写的需求
    • 对海量数据高效率存储与访问
    • 数据库的高扩展性与高可用性的需求
  • NoSQL大部分以文件形式存在

  • 关系型数据库存储方式

    • 键值方式( key-value),以键为依据存储、删、改数据
    • 列存储( Column- oriented),将相关的数据存储在列族中
    • 文档的方式,数据库由一系列数据项组成,每个数据项都有名称与对应的值
    • 图形方式,实体为顶点,关系为边,数据保存为一个图形
  • 非关系数据库产品

    • Memcached是一个开源的、高性能的、具有分布式内存对象的缓存系统,以 key-value方式存储数据

      • 缓存数据以减轻数据库压力并能加快访问速度
      • 加速动态Web应用
      • 缓存的内容保存在内存中
    • redis也是一个以key-vaue方式存储数据的,数据也是保存在内存中,但会定期将数据写入磁盘中

      • 相对于 Memcached有以下特点

        • 支持内存缓存
        • 支持持久化
        • 数据类型更多
        • 支持集群、分布式
        • 支持队列
    • 数据库的日志文件用来做恢复,oracle日志称为重做日志组

    • 例如:

      • 阿里oss对象存储采用oracle重做日志组思想,

        阿里oss数据一式三份,是盘古系统

        Redis有一个中继日志(二进制日志)

    • Redis应用举例

      • 数据库前端缓存
      • session共享
      • 当需要缓存除了key/value之外的更多数据类型时
      • 当缓存的数据需要长久保存

数据库系统发展史

  • 第一代数据库

    • 自20世纪60年代起,第一代数据库系统问世。它们是层次模型与网状模型的数据库系统,为统一管理和共享数据提供了有力的支撑
  • 第二代数据库
    • 20世纪70年代初,第二代数据库–关系数据库开始出现
    • 20世纪80年代初,IBM公司的关系数据库系统DB2问世,作为第二代数据库系统的关系数据库,开始逐步取代层次与网状模型的数据库,成为占主导地位的数据库,成为行业主流。
    • 到目前为止,关系数据库系统仍占领数据库应用的主要地位
  • 第三代数据库
    • 自20世纪80年代开始,各种适应不同领域的新型数据库系统不断涌现,如工程数据库,多媒体数据库,图形数据库,智能数据库,分布式数据库及面向对象数据库等,特别是面向对象数据库系统,由于其实用性强,适应面广而受到人们的青睐
    • 20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面
    • 当然,在商务应用方面,依然还是关系数据库占主流,不过,已经有一些新的元素被添加进主流商务数据库系统中。
    • 例如,Oracle支持的“关系-对象”数据库模型

数据库管理系统(DBMS)

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

数据库系统

是人机系统,由硬件,os,数据库。BDMS,应用数据用户组成

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

当今主流数据库介绍

  • MySQL(甲骨文公司收购)

    • 免费,开源,体积小 (MariaDB数据库管理系统是MySQL的一个分支 mariaDB
  • sql server(微软公司产品)
    • 面向Windows操作系统
    • 简单,易用
  • access(微软公司产品)
    • 面向Windows操作系统
    • 是Microsoft office套件应用程序的成员
  • oracle(甲骨文公司产品)
    • 面向所有主流平台
    • 安全,完善,操作复杂
  • db2(IBM公司)
    • 面向所有主流平台
    • 大型,安全,完善
  • sybase(Sybase公司)
    • 面向所有主流平台
    • 大型,安全,完善
    • 全球最大

MySQL数据库

  • MySQL是一款深受欢迎的开元关系型数据库
  • oracle旗下的产品
  • 遵守了GPL协议,可以免费使用与修改
  • 特点
    • 性能卓越,服务稳定
    • 开源,无版权限制,成本低
    • 多线程,多用户
    • 给予C/S(客户端/服务器)架构
    • 安全可靠

MySQL商业版与社区版有什么区别?

  • MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用
  • MySQL社区版是由分散在世界各地的MySQL开发者,爱好者一起开发与维护,可以免费使用
  • 两者区别
    • 商业版组织管理与测试环节更加严格,稳定性更好
    • 商业版不遵守GPL
    • 商业版可获得7*24小时的服务,如故障维护与打补丁等

MySQL产品阵营有哪些?

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

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

  • 两者区别

    • 商业版组织管理与测试环节更加严格,稳定性更好
    • 商业版不遵守GPL
    • 商业版可获得7*24小时的服务,如故障维护与打补丁等

MySQL产品阵营有哪些?

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

- 编译安装MySQL 5.7

解压源码包

[root@localhost opt]# tar zxvf mysql-5.7.17.tar.gz
[root@localhost opt]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@localhost opt]# cd /usr/local/
[root@localhost local]# ll
总用量 4
drwxr-xr-x. 2 root root     6 4月  11 2018 bin
drwx------. 8  501 games 4096 8月  12 2015 boost_1_59_0
drwxr-xr-x. 2 root root     6 4月  11 2018 etc
drwxr-xr-x. 2 root root     6 4月  11 2018 games
drwxr-xr-x. 2 root root     6 4月  11 2018 include
drwxr-xr-x. 2 root root     6 4月  11 2018 lib
drwxr-xr-x. 2 root root     6 4月  11 2018 lib64
drwxr-xr-x. 2 root root     6 4月  11 2018 libexec
drwxr-xr-x. 2 root root     6 4月  11 2018 sbin
drwxr-xr-x. 5 root root    49 7月  15 19:44 share
drwxr-xr-x. 2 root root     6 4月  11 2018 src

重新命名

[root@localhost local]# mv boost_1_59_0/ boost

安装环境

[root@localhost opt]# yum -y install ncurses ncurses-devel bison cmake gcc gcc-c++

创建用户

[root@localhost local]# useradd -s /sbin/nologin mysql

编译安装

[root@localhost opt]# cd /opt/mysql-5.7.17/[root@localhost 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_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[root@localhost mysql-5.7.17]# make && make install[root@localhost mysql-5.7.17]# chown -R mysql.mysql /usr/local/mysql

配置文件修改

[root@localhost opt]# 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 = 1sql_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

设置环境变量

[root@localhost opt]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH'>>/etc/profile[root@localhost opt]# echo 'export PATH'>>/etc/profile[root@localhost opt]# source /etc/profile

初始化数据库

[root@localhost opt]# cd /usr/local/mysql/[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

数据库开启并查看服务

[root@localhost system]# systemctl start mysqld[root@localhost system]# systemctl enable mysqld[root@localhost system]# systemctl status mysqld[root@localhost system]# netstat -antp | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      21684/mysqld

添加数据库的管理员密码

[root@localhost etc]# mysqladmin -u root -p password "123123"
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

进入数据库

[root@localhost mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17 Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec

数据库概述(了解数据库,当前数据库介绍,mysql数据库介绍,安装mysql数据库)相关推荐

  1. mac安装mysql workbench_MAC上安装mysql及workbench

    下载mysql for mac    https://dev.mysql.com/downloads/installer/ 官网下载很慢---百度云:链接: https://pan.baidu.com ...

  2. MySQL 笔记1 -- 安装MySQL及Navicat

    MySQL 笔记1 – 安装MySQL及Navicat MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.安 ...

  3. 编译安装mysql gmake,编译安装mysql

    编译安装MySQL 1.安装MySQL需要的依赖包和编译软件 (1)安装MySQL需要的依赖包#yum install ncurses-devel libaio-devel -y (2)安装编译MyS ...

  4. mysql 5.x数据库安装_Ubuntu 12.04 mysql 源码安装--mysql.5.5.x

    1.假设已经有mysql-5.5.25.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...

  5. mysql sakila world_MySQL 安装示例数据库(employee、world、sakila、menagerie 等)

    sakila 示例数据库官方资料及安装说明,注意查看示例数据库支持的版本是否匹配你的数据库. 为了测试,有时候需要大量的数据集,MySQL 官方提供了用于测试的示例数据库,下载页面在 这里. 下面以 ...

  6. mac系统装mysql还是mariadb_Mac安装MariaDB数据库

    Mac安装MariaDB数据库 参考资料: 如果你是Mac上的开发者,你可以在OS X上通过Homebrew来简单的获取安装最新稳定版本的MariaDB,接下来我们将一步步的来指导安装MariaDB数 ...

  7. 如何配置mac的mysql环境_mac安装mysql数据库及配置环境变量

    安装mysql 下载mysql.我下载的是:mysql-8.0.11-macos10.13-x86_64.dmg 双击打开mysql-8.0.11-macos10.13-x86_64.dmg,然后双击 ...

  8. linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Linux安装mysql 8.0的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 经过一番努力下载mysql文件,我们可以开始M ...

  9. 公安网安装mysql 5.7_安装Mysql 5.7.1

    现在安装MySQL变成了一件非常人性化的事情,因为有了MySQL-installer这个工具,它可以帮助我们全程安装MySQL. 下面我来简单介绍一下如何使用,以供新手学习: 1.首先下载MySQL- ...

  10. centos7 安装mysql php,Centos7安装mysql与php的方法

    本文主要和大家分享Centos7安装mysql与php的方法,希望能帮助到大家. 相关mysql视频教程推荐:<mysql教程> 官网下载安装mysql-server 依次使用下面三个命令 ...

最新文章

  1. android中textcolor属性,android – EditText和TextView textColorPrimary不遵循API lt;21的主题颜色...
  2. Altiris 7.1 插件
  3. Sumif——可以用来发函证和进行重分类
  4. php实现队列上传,php实现队列
  5. 室内空气流动原理图_家庭新风系统示意图 新风系统运行原理介绍
  6. SparkSQL读取文件时,数据字段类型调整
  7. 程序员最喜欢用的在线IDE代码编译器,什么?你竟然不知道!
  8. JS进阶 你真的掌握变量和类型了吗?
  9. mysql questions_sql_mysql
  10. 【小家Java】Future与FutureTask的区别与联系
  11. 史上最简单的 SpringCloud 教程 | 终章
  12. JAVA 实现《推箱子》游戏
  13. Chinese-Whisper聚类算法
  14. bootstrap collapse 卡顿
  15. 游戏实战篇|原神人物模型下载教程,并在Unity中给模型 添加动画【伯嫖最新原神所有人物模型】文末送书
  16. 从变成浅谈《新概念》三册中的措辞精准
  17. 爱快云微信连wifi3.1用户前期准备工作
  18. HTML+css+javascript面试题
  19. matlab画出拟合的曲线,matlab画出拟合曲线
  20. 【数字逻辑与数字系统设计】应对期末考(更新于2022/4/15)

热门文章

  1. LiveVideoStackCon 2021北京站 9月再次启航!
  2. 和Google 微帧 Hulu Hotstar 爱奇艺 火花思维 猿辅导 新浪微博的专家聊聊Codec
  3. Hive安装及常用交互命令
  4. 时下最流行前端构建工具Webpack 入门总结
  5. 东南亚版“QQ 音乐”:JOOX 的音乐推荐重构之路
  6. 大剑无锋之Java的深浅拷贝解释一下!
  7. leetcode 775. Global and Local Inversions | 775. 全局倒置与局部倒置(Java)
  8. leetcode 16. 3Sum Closest | 16. 最接近的三数之和(双指针)
  9. 【Ajax Servlet JSP MySQL】Ajax实现省份地区选择:三级联动
  10. 分布式系统原理 之4 Quorum 机制