、数据库介绍

什么是数据库(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、不区分大小写

mysql基础之mariadb概念的更多相关文章

  1. mysql基础之mariadb galera集群(多主)

    一.概念 galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性. galera集群是基于wsrep协议(端口4 ...

  2. mysql基础之mariadb库管理和表管理语句

    一.数据库管理语句 1.Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... cr ...

  3. mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解

    一.mariadb安装 1.配置mariadb源: [root@ren7 ~]# vim /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB ...

  4. mysql基础之mariadb对表中数据的增删改查

    复习: 查看表:show tables; 创建表:create table 表名(字符类型); 删除表:drop table 表名; 对表的结构进行增删改查: 查看表结构:desc 表名; 修改表-添 ...

  5. Mysql 基础 1

    MySQL基础 1.概念 数据库,为我们提供高效.便捷的方式对数据进行增删改查的工具 优势 程序稳定.数据一致性.并发.效率 2.数据库管理系统 (DataBase Management System ...

  6. MySQL基础概念知多少

    MySQL基础概念相关的名词还是挺多的,比如3大范式.4种隔离界别.ACID.DQL.DML.DDL,还有redo.undo.binlog等,本文就统一整理下MySQL常见的基础概念,方便小伙伴们翻阅 ...

  7. MySQL基础、MySQL安装和MariaDB安装

    MySQL基础 目录 MySQL基础 关系型数据库介绍 数据结构模型 RDBMS专业名词 关系型数据库的常见组件 SQL语句 MySQL安装与配置 MySQL安装 MariaDB安装 关系型数据库介绍 ...

  8. Linux系统——MySQL基础(一)

    # 数据库 ## 数据库简单的分类:(1)关系型数据库:MySQL和Oracle.Postgresql(2)非关系型数据库:Memcached和Redis(3)消息队列中间件(4)搜索引擎数据库:El ...

  9. MySQL基础----py全栈

    目录 MySQL基础----py全栈 一.引言 1.什么是数据? 2.什么是数据库(DB)? 3.什么是数据库管理系统(DBMS)? 4.什么是数据库系统? 5.数据库管理系统由来 6.什么是数据模型 ...

随机推荐

  1. 初学 Babel 工作原理

    前言 Babel 对于前端开发者来说应该是很熟悉了,日常开发中基本上是离不开它的. 已经 9102 了,我们已经能够熟练地使用 es2015+ 的语法.但是对于浏览器来说,可能和它们还不够熟悉,我们得 ...

  2. 如果要做优化,CSS提高性能的方法有哪些?

    一.前言 每一个网页都离不开css,但是很多人又认为,css主要是用来完成页面布局的,像一些细节或者优化,就不需要怎么考虑,实际上这种想法是不正确的 作为页面渲染和内容展现的重要环节,css影响着用户 ...

  3. mooc人大单元测试4

    @font-face { font-family: Wingdings } @font-face { font-family: 宋体 } @font-face { font-family: " ...

  4. PHP 导出 Excel 兼容 CSV XlS格式

    class ExcelRead { /** * 获取Excel文件内容 * @param $file * @return mixed * @throws PHPExcel_Reader_Excepti ...

  5. Xposed学习二:实现机制

    在上一篇我们学习了如何在AS中创建Xposed模块,本篇来分析下官方教程中redClock的实现原理.本系列文章基于version-51 public void handleLoadPackage(X ...

  6. Linux下用SUID提权

    关于SUID详细:Linux下的用户.组和权限 SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得 ...

  7. JSON和JSONP的区别及使用方法

    JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JS ...

  8. (Py练习)日期格式转换

    #将日期转换为易读的格式 #使用dateuti包 from dateutil import parser dt = parser.parse("Mar 6 2019 12:00AM" ...

  9. 一种Maven项目启动时不编译java文件的解决方案

    问题 前提介绍 : 环境版本 : JDK -version : 1.8.0-251 Tomcat -version : 8.5.5 Maven -version : 3.6.3 项目情况描述 使用ID ...

  10. Raspberry PI 4B 安装和配置 Raspbian

    做记录,以备之后需要,待完成中 目录 做记录,以备之后需要,待完成中 下载镜像和安装程序 ssh 远程访问 下载镜像和安装程序 Raspbian: installer: ssh 远程访问 开启ssh ...