【Mysql第一期 数据库概述】

news2024/11/17 11:45:48

文章目录

  • 1. 为什么要使用数据库
  • 2. 数据库与数据库管理系统
    • 2.1 数据库的相关概念
    • 2.2 数据库特点
    • 2.3SQL优点
  • 3.常见的数据库介绍
    • 1.Oracle
    • 2.SQL Server
    • 3.MySQL
    • 4.Access
    • 5.DB2
    • 6.PostgreSQL
    • 7.SQLite
    • 8.informix
  • 4. MySQL介绍
    • 4.1Mysql重大历史事件
    • 4.2 关于MySQL 8.0
    • 4.3 Why choose MySQL?
    • 4.4 Oracle vs MySQL

1. 为什么要使用数据库

持久化(persistence)把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
在这里插入图片描述
生活中的例子:
在这里插入图片描述
在这里插入图片描述

2. 数据库与数据库管理系统

2.1 数据库的相关概念

DB:数据库(Database)
即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。
DBMS:数据库管理系统(Database Management System)
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控
制。用户通过数据库管理系统访问数据库中表内的数据。
SQL:结构化查询语言(Structured Query Language)
专门设计与数据库通信的语言。(对应大多数的数据库都适用,会在一些命令上有所区别)。

2.2 数据库特点

1.将数据放到表中,表在放在数据库中
2.一个数据库中可以有多张表,每个表都有一个自己的特点名字,用来标识自己(数据库和数据库表大规模命令标准)
3.表具有一些特性,这些特性定义了数据在表中如何存储,类似java中的"类"的设计
4.表由列组成,也被称为字段,所以表都是有一个或者多个列组成,每列类似java中的"属性"
5.表中的数据是按行存储的(有些数据库也可以按照列式存储,或者混合存储),每一行类似java中的"对象"

2.3SQL优点

1.不是某个特定数据库供应商专有的语言,几乎所以的DBMS都支持SQL,当然各个数据库都有自己的特点,类似部分小方言。
2.简单易学
3.一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。|

数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体用户的数据。可以看看它们三者直接的关系图谱:
在这里插入图片描述
目前互联网上常见的数据库管理软件有Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、
Sybase、Informix这几种。以下是2021年DB-Engines Ranking 对各数据库受欢迎程度进行调查后的统计结
果:(查看数据库最新排名: https://db-engines.com/en/ranking)
在这里插入图片描述

3.常见的数据库介绍

现在已经存在了很多优秀的商业数据库,如甲骨文(Oracle)公司的 Oracle 数据库、IBM 公司的 DB2 数据库、微软公司的 SQL Server 数据库和 Access 数据库。同时,还有很多优秀的开源数据库,如 MySQL 数据库,PostgreSQL 数据库等。下面介绍这些常见的数据库。

1.Oracle

Oracle 是甲骨文公司的一款关系型数据库管理系统,在数据库领域一直处于领先地位的产品,是目前世界上流行的关系型数据库之一,是一种高效率、可靠性好、适应高吞吐量的数据库方案。
优点:
Oracle 可移植性好,能在所有主流平台上运行(包括 Windows),完全支持所有工业标准。采用完全开放策略,使客户可以选择最适合解决方案。以及对开发商的全力支持。
获得最高认证级别的 ISO 标准认证,安全性高。
与其它数据库相比,Oracle 性能最高。保持着开放平台下 TPC-D 和 TPC-C 世界记录。
多层次网络计算,支持多种工业标准,可以用 ODBC、JDBC、OCI 等网络客户连接 。
完全向下兼容,因此被广泛应用,且风险低 。
向下兼容指的是高版本支持低版本的或者说后期开发的版本支持和兼容早期开发的版本。

缺点:
对硬件的要求高
价格比较昂贵
管理维护麻烦
操作比较复杂

2.SQL Server

SQL Server 是 Microsoft(微软)公司推出的关系型数据库管理系统,主要应用于大型的管理系统中。
优点:
与微软的 Windows 系列操作系统的兼容性很好。
高性能设计,可充分利用 WindowsNT 的优势。
系统管理先进,支持 Windows 图形化管理工具,支持本地和远程的系统管理和配置。
强壮的事务处理功能,采用各种方法保证数据的完整性。
支持对称多处理器结构、存储过程、ODBC,并具有自主的 SQL 语言。
缺点:
SQL Server 只能在 Windows 系统上运行,没有丝毫开放性。
没有获得任何安全证书。
多用户时性能不佳 。
只支持 C/S 模式,SQL Server C/S 结构只支持 Windows 客户用 ADO、DAO、OLEDB、ODBC 连接。

3.MySQL

MySQL 是一种开放源代码的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。因为其速度、可靠性和适应性而备受关注。MySQL 是流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的应用软件之一。
优点:
性能卓越服务稳定,很少出现异常宕机
开放源代码且无版权制约,自主性强、使用成本低。
历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。
软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
支持多种操作系统,提供多种 API 接口,支持多种开发语言。
缺点:
MySQL 最大的缺点是其安全系统,主要是复杂而非标准,只有调用 mysqladmin 来重读用户权限才会发生改变。
MySQL 不允许调试存储过程,开发和维护存储过程很难。
MySQL 不支持热备份。
MySQL 的价格随平台和安装方式变化。

4.Access

Access 是由 Microsoft(微软)发布的小型关系数据库管理系统,是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。
优点:
存储方式简单,易于维护管理。Access 的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb 或 .accdb)的数据库文件中,便于用户的操作和管理。
Access 是一个面向对象的开发工具,这种基于面向对象的开发方式,使得开发应用程序更为简便。
界面友好、易操作。Access 是一个可视化工具,风格与 Windows 完全一样,用户想要生成对象应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
集成环境,可以处理多种数据信息。Access 基于 Windows 操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
支持广泛,易于扩展,弹性大。Access 是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发。即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。
缺点:
不支持并发处理。
数据库存储量小安全性不够高。
Access 是小型数据库,当数据量过大时,一般百M以上(纯数据,不包括窗体、报表等客户端对象)性能会变差。
虽然理论上支持 255 个并发用户,但实际上根本支持不了那么多,如果以只读方式访问大概在 100 个用户左右,而如果是并发编辑,则大概在10-20个用户。
单表记录数过百万时,性能就会变得较差,如果加上设计不良,这个限度还要降低。
不能编译成可执行文件(.exe),必须要安装 Access 运行环境才能使用。

5.DB2

DB2 是美国 IBM 公司开发的一款支持多媒体、Web 的关系型数据库管理系统。主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境。
优点:
相比较 MySQL 和 Oracle 两种数据库来说,DB2 提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模地应用程序执行能力,具有与平台无关的基本功能和 SQL 命令。
DB2 采用了数据分级技术,能够使大型数据很方便的下载到数据库服务器,使数据库本地化和远程连接透明化。
拥有非常完备的查询优化器,改善了查询性能,并支持多任务并行查询。
具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统更加使用。
DB2 可跨平台使用。
缺点:
配置文件和参数多,且命名不规范。
一些 DB2 产品开发不方便。
和 Oracle 相比,命令多,且没 Oracle 统一规范的好。
由于其设计框架的问题,如果用户对数据库的本身优化和应用程序优化做的不足,那么 DB2 容易出现锁等待现象。

6.PostgreSQL

PostgreSQL 是一款富有特色的自由数据库管理系统,甚至可以说是最强大的自由软件数据库管理系统。该数据库管理系统支持了目前世界上最丰富的数据类型。是自由软件数据库管理系统中唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的自由软件。
优点:
PostgreSQL 遵循的是 BSD 协议,是一个完全开源、免费、同时非常强大的关系型数据库。
与 PostgreSQL 配合的有很多分布式集群软件,如 pgpool、pgcluster、slony、plploxy 等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这些 MySQL 则比较难实现。
PostgreSQL 源代码写的很清晰,易读性比 MySQL 强,所以很多公司基本都是以 PostgreSQL 做二次开发的。
PostgreSQL 是多进程的,而 MySQL 是多线程的。并发不高时,MySQL处理速度快,但当并发高的时候,对于现在多核的单台机器上,MySQL 的总体处理性能不如 PostgreSQL,原因是 MySQL 的线程无法充分利用 CPU 的能力。
PostgreSQL 有很强大的查询优化器,支持很复杂的查询处理。
BSD 开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

缺点:
对于简单而繁重的读取操作,相比较其它数据库来说,PostgreSQL 性能较低。
PostgreSQL 数据库扩容花费时间很长。

7.SQLite

嵌入式的小型数据库,应用在手机端。 零配置,SQlite3不用安装,不用配置,不用启动,关闭或者配置
数据库实例。当系统崩溃后不用做任何恢复操作,再下次使用数据库的时候自动恢复。

8.informix

IBM公司出品,取自Information 和Unix的结合,它是第一个被移植到Linux上的商业数据库产品。仅运行
于unix/linux平台,命令行操作。 性能较高,支持集群,适应于安全性要求极高的系统,尤其是银行,证
券系统的应用。

4. MySQL介绍

在这里插入图片描述

  • MySQL是一个 开放源代码的关系型数据库管理系统 ,由瑞典MySQL AB(创始人Michael
    Widenius)公司1995年开发,迅速成为开源数据库的 No.1。 2008被 Sun 收购(10亿美金),2009年Sun被
    Oracle 收购。
  • MariaDB 应运而生。(MySQL 的创 造者担心 MySQL 有闭源的风险,因此创建了 MySQL 的分支项目 MariaDB)
  • MySQL6.x 版本之后分为 社区版 和 商业版 。
  • MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库 内,这样就增加了速度并提高了灵活性。
  • MySQL是开源的,所以你不需要支付额外的费用。 MySQL是可以定制的,采用了 GPL(GNU General Public
    License) 协议,你可以修改源码来 开发自己的MySQL系统。 MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持 4GB ,64位系 统支持最大的表文件为 8TB 。
  • MySQL使用 标准的SQL数据语言 形式。
  • MySQL可以允许运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、 Java、Perl、PHP和Ruby等。
  • MySQL发展史重大事件 MySQL的历史就是整个互联网的发展史。互联网业务从社交领域、电商领域到金融领域的发展,推动着应用对数据库的需求提升,对传统的数据库服务能力提出了挑战。高并发、高性能、高可用、轻资源、 易维护、易扩展的需求,促进了MySQL的长足发展。

4.1Mysql重大历史事件

MySQL的历史就是整个互联网的发展史。互联网业务从社交领域、电商领域到金融领域的发展,推动着应用对数据库的需求提升,对传统的数据库服务能力提出了挑战。高并发、高性能、高可用、轻资源、易维护、易扩展的需求,促进了MySQL的长足发展。
在这里插入图片描述

4.2 关于MySQL 8.0

MySQL从5.7版本直接跳跃发布了8.0版本 ,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。
在这里插入图片描述

4.3 Why choose MySQL?

为什么如此多的厂商要选用MySQL?大概总结的原因主要有以下几点:

  1. 开放源代码,使用成本低。
  2. 性能卓越,服务稳定。
  3. 软件体积小,使用简单,并且易于维护。
  4. 历史悠久,社区用户非常活跃,遇到问题可以寻求帮助。
  5. 许多互联网公司在用,经过了时间的验证。

4.4 Oracle vs MySQL

Oracle 更适合大型跨国企业的使用,因为他们对费用不敏感,但是对性能要求以及安全性有更高的要求。
MySQL 由于其体积小、速度快、总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司、中小型网站选择了MySQL作为网站数据库(Facebook,Twitter,YouTube,阿里巴巴/蚂蚁金服,去哪儿,美团外卖,腾讯)。

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

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

相关文章

linux内核读文件代码分析

linux下“一切皆文件”,所有设备都可以被抽象成文件,用户态可以通过open、read、write、llseek等api操作一个文件,通过系统调用进入内核态,最终访问到pagecache/磁盘上的数据,然后返回给用户态。 kernel version:v6.2-rc4 社区master主干 用户态应用程序调用read接口,通…

【转载】车载传感器与云端数据交换标准SensorIS的理解与使用

原文 https://zhuanlan.zhihu.com/p/386277784 1、什么是SensorIS?SensorIS全称是Sensor Interface Specification,翻译为中文就是传感器接口规范,是由来自全球汽车行业的主机厂、地图和数据提供商、传感器制造商和电信运营商共同组成的开放团体发布的一…

JavaEE day10 初识SpringMVC

JSON简介 JSON :JavaScript Object Notation JS对象表示法 是轻量级的文本数据交换格式,但是JSON仍然独立于语言和平台。其解析器和库支持许多不同的编程语言。目前非常多的动态编程语言(java,PHP)都支持JSON。JSON…

禅道好用吗?优缺点及类似10大项目管理系统介绍

类似禅道的十大项目管理软件:1、一站式研发项目管理软件PingCode;2、通用型项目协作工具Worktile;3、开源项目管理软件Redmine;4、免费项目管理软件Trello;5、无代码项目管理软件Monday;6、IT项目追踪管理工…

面试宝典-数据库基础

数据库基础前言一、数据库1.1 sql练习题1.2 sql语句执行顺序1.3 sql语句编写前言 本文主要记录B站视频视频链接的内容,做到知识梳理和总结的作用,项目git地址。 一、数据库 1.1 sql练习题 user表数据: idusername1张三2李四3王五4小刘 user_role表数…

CrackQL:一款功能强大的图形化密码爆破和模糊测试工具

关于CrackQL CrackQL是一款功能强大的图形化密码爆破和模糊测试工具,在该工具的帮助下,广大研究人员可以针对密码安全和应用程序安全进行渗透测试。 除此之外,CrackQL同时也是一款通用的GraphQL渗透测试工具,它可以控制速率限制…

垃圾分类智能分析系统 yolov7

垃圾分类智能分析系统应用pythonyolov7网络模型深度学习识别技术,自动识别违规投放行为并现场进行语音提示实时预警。如垃圾满溢抓拍预警、人脸识别、工服识别、厨余垃圾混投未破袋识别预警、垃圾落地识别预警、人来扔垃圾语音提醒等。我们选择当下YOLO最新的卷积神…

数组去重的七种方法

数组去重的七种方法1. 双重for循环2. forindexOf3.es6 set4.filter5.includes6.创建一个新的object7.new Map()1. 双重for循环 第1种是定义一个新的空数组,再执行嵌套双循环,监测空数组中如果没有的元素,push进空数组中。这个方法考察了conti…

AcWing - 寒假每日一题2023(DAY 16——DAY 20)

文章目录一、AcWing 4455. 出行计划(简单)1. 实现思路2. 实现代码二、AcWing 4510. 寻宝!大冒险!(简单)1. 实现思路2. 实现代码三、AcWing 3422. 左孩子右兄弟(中等)1. 实现思路2. 实…

【MySQL】过年没有回老家,在出租屋里整理了一些思维导图

Xmind导图知识点Mysql知识点SQL知识点Mybatis知识点面试题分享MySQL部分Mybatis部分Mysql知识点 通过下面的图片可以看出,MySQL基础语法分为四部分:连接数据库,对数据库的操作,对表中的数据操作,对表操作等等。 SQL…

python exe程序注册为window系统服务

1、使用pyinstaller将py打包成exe 1、安装 pip install pyinstaller2、打包成exe可执行文件 pyinstaller -F packTest.py #packTest.py为待打包的py文件打包成功后会在同级目录中生成两个文件夹和一个文件,分别为dist和build文件夹,以及一份与.py文件同…

Java——最大子数组和

题目链接 leetcode在线oj题——最大子数组和 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 题目示例 输入:…

Vulnhub DC-4靶机渗透

环境准备DC-4靶机 ip:???????kali攻击机 ip:192.168.153.128一、信息收集kali攻击机中,使用 arp-scan -l 扫描c段(-l为扫描c段)确定靶…

自动驾驶——智能配电

一、汽车配电 汽车配电(Power Distrubition Unit,PDU)分为低压配电与高压配电,即低压PDU与高压PDU。 二、传统控制方式——PCB式电器盒 传统配电盒(机电器件): (1)继…

为什么要做黑盒测试?黑盒测试有什么作用?

对于软件测试的从业者来说,黑盒测试是十分重要的测试方式,它可以弥补白盒测试检查不到的部分。可能刚刚入门的测试小白,对于为什么要做黑盒测试?黑盒测试有什么作用?仍然抱有很大的疑问。下面小编就来从黑盒测试的概念…

QT入门Buttons之QPushButton

目录 一、界面布局介绍 1、布局器中的位置及使用 2、控件的界面属性 3、常用基本属性介绍 3.1控件名称 3.2控件大小属性 3.3按钮上的文字设置 3.4设置按钮的样式 二、属性功能介绍 1、常用方法介绍 2、基本信号介绍 三、Demo展示 一、界面布局介绍 1、布局器中的位…

丰田埃尔法商务租车价格是多少,它的性能到底有多好呢

丰田埃尔法作为MPV之王。埃尔法的高腰线和深色玻璃也使内部更具神秘感,惹眼闪烁的进气格栅,类似盔甲一般的全镀铬饰条构成的霸道前脸和富于设计感的车身曲线,细节处采用36颗闪亮镀铬装饰点缀,有着很高的辨识性。保持了典型的MPV风…

需要代理上网的linux服务器,无法使用NTP同步时间,只需要这一行指令即可。

这将会是一篇让你对时间同步受益匪浅的文章!如果你看完之后有收获,希望你能加个关注,如果你看完之后没有收获,希望你能留下你路过的痕迹。 由于工作需要,我们使用了一款神奇的调度框架,叫powerjob&#xff…

【职工管理系统】C++全栈体系(十四)

职工管理系统 第七章 添加职工 功能描述:批量添加职工,并且保存到文件中 一、功能分析 分析: 用户在批量创建时,可能会创建不同种类的职工 如果想将所有不同种类的员工都放入到一个数组中,可以将所有员工的指针维…

组织级过程资产库如何助力CMMI3-5级高效落地?

为了助力CMMI3-5级高效落地,近日CoCode旗下Co-ProjectV3.0智能项目管理平台全面升级,CMMI落地4大工具正式上线:CMMI成熟度自测工具、量化管理工具(组织级过程改进工具和量化项目管理工具)、组织级过程资产库。 组织级过…