• 数据库及分类详细介绍


    一、数据库详细介绍

    1、什么是数据库

    数据库从字面上的理解就是数据的仓库,其实我们平时说的数据库是指数据库管理系统(Database Management System),它是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。严格来说数据库是数据库管理系统的实例,一个数据库管理系统可以有多个数据库实例。
    数据库种类很多,我们平时接触最多的就是Oracle数据库和MySQL数据库。两者是应用最广泛的关系型数据库。

    2、数据库的种类

    最常用的数据库模式主要有两种,即关系型数据库和非关系型数据库。

    3、常见的数据库

    • 生产环境主流的关系型数据库有Oracle、Microsoft SQL Server、MySQL/MariaDB、SQLite等。
    • 生产环境主流的非关系型数据库有MongoDB Memcached Redis

    4、关系型数据库

    4.1、关系型数据库介绍

    关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。
    关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“一对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)

    关系型数据库诞生距今已有 40 多年了,从理论产生到发展到实现产品,例如:常见的 MySQL 和 Oracle 数据库,Oracle 在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而 MySQL 也是不容忽视的数据库,以至于被 Oracle 重金收购了。
    数据的存储形式:关系型数据库以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库

    4.2、关系型数据库的优缺点

    • 优点:
      易于维护:都是使用表结构,格式一致;
      使用方便:SQL语言通用,可用于复杂查询;
      支持复杂的操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
    • 缺点:
      读写性能比较差,不能满足海量数据的高效率读写。
      不节省空间,因为建立在关系模型上,就要遵循某些规则,比如数据中某字段值即使为空仍要分配空间。
      固定的表结构,灵活度较低。

    4.3、关系型数据库小结

    关系型数据库在存储数据时实际就是采用的一张二维表(和 Word 和 Excell 里表格几乎一样)。
    市场占有量较大的是 MySQL 和 Oracle 数据库,而互联网场景最常用的是 MySQL 数据库。

    5、非关系型数据库

    5.1、非关系数据库诞生的背景

    随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站(特别是超大规模和高并发类型的web2.0纯动态网站)已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展;2008年左右,网站、论坛、社交网络开始高速发展,关系型数据库的地位受到了很大的挑战。

    关系型数据库的以下问题逐渐凸显:

    • 难以应付每秒上万次的高并发数据写入。
    • 查询上亿量级的数据速度极其缓慢。
    • 关系型数据库分库、分表形成的子库到达一定规模后难以进一步扩展。
    • 分库、分表的规则可能会因为需求变更而发生变更。
    • 修改表结构困难。

    在很多互联网应用场景下,对数据联表的查询需求不是那么强烈,也并不需要在数据写入后立刻读取,但对数据的读取和并发写入速度有非常高的要求。在这样的情况下,非关系型数据库得到高速的发展。

    5.2、非关系型数据库的介绍

    非关系型数据库也被称为 NoSQL 数据库,NoSQL 的本意是 “Not Only SQL”,NoSQL 的产生并不是要彻底否定关系型数据库,而是作为传统数据库的一个有效补充。
    NoSQL 数据库在特定的场景下可以发挥难以想象的高效率和高性能。

    5.3、非关系型数据库的优缺点

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

    • 优点:
      非关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
      数据存储速度快,效率高。 NoSQL 可以使用硬盘或者内存作为载体,而关系型数据库只能使用硬盘。
      海量数据的维护和处理非常轻松。
      非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。
      可以实现数据的分布式处理。
    • 缺点:
      非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。
      非关系数据库没有事务处理,没有保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。
      功能没有关系型数据库完善。

    5.4、非关系型数据库小结

    NoSQL 数据库不是否定关系型数据库,而是作为关系数据库的一个重要补充。
    NoSQL 数据库为了灵活及高性能、高并发而生,忽略影响高性能、高并发的功能。
    在NoSQL 数据库领域,当今的最典型产品为 Redis(持久化缓存)、MongoDB、Memcached(纯内存)等。
    NoSQL 数据库没有标准的查询语言(SQL),通常使用数据接口或者查询API。

    二、MySQL数据库详解

    1

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
    MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
    MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
    RDBMS即关系数据库管理系统(Relational Database Management System)

    1、MySQL类型

    MySQL Community Server是社区版本,开源免费,但不提供官方技术支持。MySQL Community Server也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。
    MySQL Enterprise Edition企业版本,需付费,可以试用30天。
    MySQL Cluster集群版,开源免费,可将几个MySQL Server封装成一个Server。
    MySQL Cluster CGE高级集群版,需付费。

    2、MySQL 版本号

    以 MySQL 5.7.27 这个版本的版本号为例说明每个数字含义。
    ​第一个数字(5)主版本号:文件格式改动时,将作为新的版本发布;
    第二个数字(7)发行版本号:新增特性或者改动不兼容时,发行版本号需要更改;
    第三个数字(27)发行序列号:主要是小的改动,如bug的修复、函数添加或更改、配置参数的更改等。
    MySQL的官方网址: http://www.mysql.com/
    中文官网地址:https://www.mysql.com/cn/
    MySQL的社区版本下载地址为: http://dev.mysql.com/downloads/mysql/

    3、什么是sql?

    SQL是为操作数据库而开发的一种语言,它可以对数据库里的表进行操作,比如修改数据,查找数据。
    数据库里面放着数据,SQL是用来操作数据库里数据的工具。
    SQL代表结构化查询语言(Structured Query Language),用于访问数据库的标准化语言。

    SQL包含三个部分:

    • 数据定义语言包含定义数据库及其对象的语句,例如表,视图,触发器,存储过程等。也叫数据定义语句:DDL — 数据定义语言 (Data Definition Language)
    • 数据操作语言包含允许您更新和查询数据的语句。也叫数据操作语句:DML — 数据操作语言(Data Manipulation Language)
    • 数据控制语言允许授予用户权限访问数据库中特定数据的权限。也叫数据控制语句:DCL— 数据控制语言(Data Control Language)

    总结:
    DDL用来定义数据库本身及其对象(表、索引等)
    DML用来修改数据,如插入、修改、删除数据
    DCL用来定义数据的访问权限,决定用户对数据的访问级别

  • 相关阅读:
    多线程&JUC
    〖Python 数据库开发实战 - Redis篇③〗- Mac系统下通过homebrew安装Redis数据库
    GBase8s jdbc连接超时参数说明
    【CSS】伪元素与伪类
    Java连接FTP服务器上传文件报错
    Spring——bean的生命周期
    Obsidian之利用MaoXian获取网页信息
    Oracle with as ORA-00903: invalid table name 多表报错
    2023第11届济南国际生物发酵产品与技术装备展览会
    C/C++ 实现动态资源文件释放
  • 原文地址:https://blog.csdn.net/m0_62396418/article/details/133278585