、数据库介绍

什么是数据库(Database)?

简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据

更简单的理解形象,数据库和我们生活追踪存放杂物的储物间仓库性质一样,区别只是存放的东西不通,杂物间存放实体的物件,而数据库里存储的是数据,这样我们就对数据库有一个初步了解了。

数据库诞生于1950年,随着信息技术的发展和人类社会的不断进步,特别是2000年后,数据库不在仅仅是存储和管理数据了,而转变成用户所需要的各种数据管理的方式,数据库有很多种类和功能,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

主流的数据库有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等

二、MySQL简介

MySQL是一个真正的多用户、多线程SQL数据库服务器。MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。SQL(结构化查询语言(Structured Query Language))是世界上最流行的和标准化的数据库语言,它使得存储、更新和存取信息更加容易。

MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和许多不同的客户程序以及库组成的。

分为关系数据库(mysql、sqlserver、oracle、db2、mariadb)和非关系型数据库(redis、mongodb)。

三、关系型数据库

(1)介绍

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(既二维格式表)

(2)概念

关系:存储数据的表的表名

元组:就是表中的一条记录(一行就是一条记录)

属性:就是表中的一个字段(一列就是一个字段)

域:字段的取值范围

关键字:可以唯一标识一条记录的字段(这也是一个或多个字段)

关系模型:表和表之间的关系

(3)优点

1)易于维护:都是使用表结构,格式一致;(主要用于保证数据完整、数据一致)

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

3)复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

(4)缺点

1)事务一致性(数据一致性):为了保证数据的完整,会带来额外的开销,导致性能降低

2)关系型数据库在高并发的读写I/O请求下,会是程序系统的性能瓶颈

3)固定的表结构,灵活度稍欠,可扩展性差(拆分,分库,分表)

4)读写的时效性差,读写性能差

5)需要写复杂的SQL,甚至需要用多表联合查询

四、非关系型数据库(nosql

(1)概念

非关系型数据库也称之为nosql数据库,请注意,nosql的本意是“not only SQL”,指的是非关系型数据库,而不是“no SQL”的意思,因此nosql的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充,NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

通常是作为关系型数据库的一个补充,而且不遵循ACID;通常NoSQL是以key-value的方式存储

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

随着互联网的兴起,超大规模和高并发量的微博,微信,SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据库IO瓶颈,性能瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特异化的数据库产品,NoSQL类的数据库就是在这样的情景中诞生并得到了非常迅速的发展

NoSQL是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面,NoSQL数据存储不需要固定的表结构,通常也不存在连接操作,在大数据存取上具备关系型数据库无法比拟的性能优势,该术语(NoSQL)在2009年初得到了广泛的认同

google的BigTable与Amazon的Dynamo是非常成功的商业NoSQL,一些开源的NoSQL体系,如

Redis, mongodb也逐渐的越来越受到各大中小型企业的欢迎和追捧

(2)优点

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

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

3)高扩展性;

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

(3)缺点

1)不提供sql支持,学习和使用成本较高;

2)无事务处理;

3)数据结构相对复杂,复杂查询方面稍欠。

(4)分类

类型1:key-value

借助于hash表实现快速读写

特点:简单、容易部署、高并发状态下性能好

产品: redis:内存+磁盘

emcached:纯内存的数据库

类型2:列式存储数据库

Column Family(列簇)

通常场景:用来实现分布式海量数据存储

产品: HBbase

Cassandra

类型3:面向文档的数据库

数据库中所存放的是文档

产品: MongoDB

类型4:图形数据库

graph

五、选择MySQL的理由

1. BAT都在用mysql,而且往往都是从oracle切换到了mysql

2. 性能好,而且稳定

3. 开源

4. 社区活跃

5. 轻量级

6. 维护简单

7. 支持跨平台

8. 支持多种语言(编码)

9. 执行用sql进行数据的读写

六、MySQL的版本

1、版本

社区版:社区人员自行维护的版本,没有售后

商业版:各种功能都是经过官方测试稳定,而且有完善的售后服务

2、MySQL发行版本

Alpha版

beta版

RC版

GA版

3、MySQL的产品线

第一条:5.0-5.1,5.1稳定版

第二条:5.4-5.7,5.5 5.7稳定

第三条:6.0 7.0 8.0 ,最新8.0

4、生产环境中如何选择版本

1) 选择社区版

2) 选择稳定版

3) 建议选择发布时间在6个月以上的稳定

4) 关注版本最近是否有修复补丁

5) 注意是否和开发人员使用的数据兼容

6) 注意是否和现有数据库兼容

7) 现版本的数据库就建议在内部测试运行3-6个月以上

8) 在从原有数据库转移数据的过程中,建议先转移非核心数据,测试是否正常

七、RDBMS

Relational Database Management System关系数据库管理系统

1、sql语句主要分为:

DQL:数据查询语言,用于对数据进行查询,如select

DML:数据库操作语言,对数据库进行增删改查,如:insert,update,delete

TPL:事物处理语言,对事物进行处理,包括begin,transaction,commit,rollback

DCL:数据控制语言,如grant,revoke

DDL:数据定义语言:进行数据库,表的管理等,如create,drop

CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor

2、sql是一门特殊的语言,专门用来操作关系型数据库

3、不区分大小写

转载于:https://www.cnblogs.com/renyz/p/11419597.html

mysql基础之mariadb概念相关推荐

  1. MySQL基础学习笔记(持续更新中)

    一.MySQL基础 1. 数据库概念 1.1 为什么要学MySQL 个人理解:随着互联网的发展,数据变得烦杂,冗余,量大,为了保证数据的持久性以及健壮性等等,同时也为了方便人们很好的处理数据,这就发明 ...

  2. MySQL基础-(概念、安装、SQL语句、约束)

    MySQL基础 一.数据库的基本概念 1.为什么要学数据库? 之前我们如果想将一些数据实现永久化存储,可以怎么做呢?没错.使用IO流的技术将数据保存到本地文件中 但是接下来我有这样一个需求:将下面的u ...

  3. MYSQL基础之centos 6下二进制安装mariadb

    安装mysql的方法: 1.源代码:编译安装 2.二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用 3.程序包管理器管理的程序包 项目官方最新版地址:https://downloads.m ...

  4. MySQL基础一些概念一些用法

    MySQL基础_为什么学习数据库 [toc] 实现数据辞持久化(本地) 使用完整的管理系统统一查询管理 MySQL基础_数据库的相关概念 DB 数据库( database ):存储数据的"仓 ...

  5. Mysql基础篇(1)—— 基础概念、DML基本语法和表连接

    前言 Mysql基础篇相关的内容是看了康师傅的视频做的笔记吧 数据库相关概念 DB: 数据库(Database) ​ 存储数据的仓库,本质是一个文件系统.它保存了一系列有组织的数据. DBMS:数据库 ...

  6. mysql基础_月隐学python第22课

    目录 ⼀.数据库基本概念 常⻅的数据库: MySQL简介 mysql的安装 linux下 windows下安装 ⼆. SQL 三.操作数据库 四.数据库表 例子: 五.数据类型 数值型 字符型​ ⽇期 ...

  7. 30道MySQL基础面试题

    每天晚上 00:00 执行 mysql 数据备份,请写出 crontab 配置项 答案: 0 0 * * * mysqldump -uroot -p123456 --flush-logs 数据库名 & ...

  8. MySQL基础与navicat使用

    MySQL基础 文章目录 MySQL基础 1,数据库 1.1 数据库 1.2 数据库管理系统 1.3 常见的数据库管理系统 1.4 SQL 2,MySQL 2.1 MySQL安装 2.2 MySQL卸 ...

  9. 最全MySQL基础篇

    文章目录 导入表的问题 第三章_最基本的SELECT语句 1. SQL语言的规则和规范 1) 基本规则 2) SQL大小写规范(建议遵守) 3) 注释 4) 命名规则 2. 基本的SELECT语句 1 ...

  10. MySQL基础(二)

    MySQL基础(二) MySQL基础(一) 文章目录 MySQL基础(二) MySQL基础(一) 存储过程与函数 存储过程概述 理解 分类 创建存储过程 语法分析 代码举例 调用存储过程 调用格式 代 ...

最新文章

  1. Python 2.7 学习笔记
  2. 安装完matlab7.0但无法运行
  3. android toast几种使用方法 (转)
  4. 160 - 49 DueList.4
  5. python程序设计实践教程答案-Python程序设计实践教程
  6. pta mysql训练题集 (221-240)
  7. 与“鸡”对话的时代孤独
  8. PopupWindow底部弹出,底部UI被遮盖问题
  9. 中国光学级聚酯薄膜市场趋势分析与营销策略研究报告2022版
  10. Maven中央仓库配置文件
  11. 相册计算机软件,电脑相册制作软件免费版,windows自带安全又免费相册制作软件...
  12. 抽奖随机滚动_仅需2分钟,使用excel制作一个抽奖小工具,再也不用为抽奖发愁了...
  13. Expected tensor for argument #1 ‘indices‘ to have one of the following scalar types: Long, Int; but
  14. 华裔女性钱璐璐:用 DNA 开发人工智能神经网络,识别手写数字!
  15. 【目录】王爽《汇编语言》
  16. hbase+dataframe+java_Java实现Spark将DataFrame写入到HBase
  17. 你不知道的CSS霓虹灯文字总结
  18. KVM虚拟化技术学习笔记2
  19. Android自定义未读消息提示View
  20. android 获取cpu型号_如何查看Android 手机架构

热门文章

  1. 编程之美之寻找发帖“水王” 的算法问题
  2. winfrom的DataGridView控件选中行的DataGridViewLinkColumn列字体颜色的改变
  3. 几个关于oracle 11g ASM的问题
  4. 一步一步安装服务器监视软件MRTG
  5. 「leetcode」763. 划分字母区间:【记录最远位置与双指针】详解
  6. 在 Mac 上的 Keynote 讲演中如何自动替换文本?
  7. iOS开发之$ pod setup时,CocoaPods报CocoaPods was not able to update the `master` repo.
  8. 如何在 Mac 上修复丢失的鼠标光标?
  9. hihocoder 1513 小Hi的烦恼——bitset
  10. javascript调试