【MySQL入门】-- 数据库介绍

news2024/11/26 3:53:12

 

目录

1.为什么要使用数据库?

2.数据库相关概念 

3.数据库与数据库管理系统的关系

4.常见数据库排名

5.常见数据库的简单介绍 

6.MySQL介绍

7.MySQL版本的选择

8.关系型数据库和非关系型数据库

9.关系型数据库设计规则以及规范

10.表的关系(一对一,一对多,多对多)


1.为什么要使用数据库?

  • 持久化:把数据保存到可以掉电存储设备中供之后使用。数据库持久化意味着内存中保存的数据保存到硬盘中加以“固化”;持久化主要的作用就是将内存中的数据存储在关系型数据库中。

2.数据库相关概念 

  • DB:数据库(database)即存储数据的仓库,本质是一个文件系统。
  • DBMS:数据库管理系统是一种操纵和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问那数据库中表的数据。
  • SQL:结构化查询语言:用来和数据库通信的语言。

3.数据库与数据库管理系统的关系

数据库管理系统可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库,为了保存应用实体中的数据,一般会在数据库中创建多个表,以保存用户的数据。简单关系图如下:

4.常见数据库排名

根据受欢迎程度进行排名:

5.常见数据库的简单介绍 

关系型数据库(Relational Databases):

  • Oracle:商业化的关系型数据库管理系统,主要用于大型企业级应用和数据处理。
  • SQL Server:由Microsoft开发的关系型数据库管理系统,适用Windows环境下的企业应用。
  • PostgreSQL:开源的关系型数据库管理系统,提供高度可扩展性和强大的功能。
  • MySQL:开源且广泛使用的关系型数据库管理系统,具有稳定性、灵活性和易用性。

非关系型数据库(NoSQL Databases):

  • MongoDB:一种文档型数据库,以BSON格式存储数据,适用于大规模数据存储和实时数据查询。
  • Redis:一种基于内存的键值对存储数据库,支持复杂数据类型和数据结构,并具有高效的读写性能。
  • Elasticsearch: 分布式搜索和分析引擎,用于快速地存储、搜索和分析大量数据。

6.MySQL介绍

MySQL是一种开源的关系型数据库管理系统(RDBMS),广泛用于企业级应用和Web应用程序中。以下是MySQL的一些主要特点和功能:

  1. 可靠性:MySQL具有良好的稳定性和可靠性,经过广泛的测试和使用,在各种场景下被证明是可靠的数据库解决方案。

  2. 跨平台性:MySQL支持多个操作系统平台,包括Windows、Linux、Mac等,可以灵活地应用于不同的环境中。

  3. 高性能:MySQL被设计成高性能的数据库系统,具有快速的读写速度和高效的数据处理能力,可满足大规模数据处理和高并发访问的需求。

  4. 灵活的数据模型:MySQL支持基于关系模型的数据存储和查询,具有丰富的SQL语言功能,支持复杂查询和数据操作。

  5. 完善的事务支持:MySQL支持ACID(原子性、一致性、隔离性和持久性)事务特性,可以在并发访问的情况下保证数据的一致性和完整性。

  6. 安全性:MySQL提供了多层次的安全措施,包括权限管理、加密传输、用户认证等,保护数据的安全性和机密性。

  7. 分布式数据库支持:MySQL提供了复制(Replication)和分片(Sharding)等分布式数据库架构,可实现数据在多个节点之间的复制和分布,提高系统的可伸缩性和可用性。

  8. 开源社区支持:MySQL是一个开源项目,拥有庞大的开源社区支持,用户可以获得丰富的文档、示例和技术支持。

MySQL是一种功能强大,性能优越,稳定可靠的关系型数据库管理系统,适用于各种规模的应用程序。无论中小企业还是大型企业都有MySQL的影子。

7.MySQL版本的选择

MySQL 5.7和MySQL 8.0是MySQL数据库的两个主要版本,它们在功能、性能和安全性等方面有一些区别。以下是MySQL 5.7和MySQL 8.0之间的一些主要区别:

  1. JSON支持:MySQL 5.7引入了对JSON数据类型的支持,允许存储、查询和操作JSON格式的数据。而MySQL 8.0进一步增强了对JSON的支持,提供了更多的JSON函数和操作符。

  2. 空间数据类型:MySQL 8.0引入了空间数据类型,支持存储和查询地理和几何数据,如点、线、多边形等。这对于需要进行地理信息系统(GIS)相关操作的应用程序非常有用。

  3. 窗口函数:MySQL 8.0引入了窗口函数,允许进行更复杂的数据分析和聚合运算。通过窗口函数,可以在查询中执行分组、排序和聚合操作,非常适用于处理大规模数据集和复杂报表需求。

  4. 自动故障转移:MySQL 8.0引入了InnoDB集群(InnoDB Cluster)功能,提供了自动故障转移和自动扩展的功能。这使得MySQL 8.0在高可用性和扩展性方面有了更好的支持。

  5. 性能改进:MySQL 8.0在性能方面进行了一系列的优化和改进,包括索引优化、查询计划优化、数据字典重构等。相比MySQL 5.7,MySQL 8.0在某些场景下可能会有更好的性能表现。

在选择MySQL版本时,需要根据具体的需求和应用场景来考虑。以下是一些建议:

  1. 如果你的项目已经在使用MySQL 5.7,并且没有特殊需求或功能要求,可以继续使用MySQL 5.7。它已经经过广泛验证,稳定性和兼容性较好。

  2. 如果你需要使用JSON数据类型或空间数据类型,或者对窗口函数和分析功能有较高的需求,那么可以考虑升级到MySQL 8.0。

  3. 如果你对性能和扩展性要求比较高,或者需要自动故障转移和扩展功能,那么MySQL 8.0可能更适合你的需求。

  4. 在选择版本时,还可以考虑相关的生态系统支持、社区活跃度和安全性等因素。

总而言之,选择MySQL 5.7还是MySQL 8.0取决于具体的需求和应用场景。在做出决策之前,建议仔细评估和测试两个版本,以确定哪个更符合你的需求。

8.关系型数据库和非关系型数据库

关系型数据库和非关系型数据库是两种不同的数据存储模型,它们有一些区别和适用场景。

关系型数据库(RDBMS):

  1. 数据结构:关系型数据库使用表(Table)来表示数据,表由行(Row)和列(Column)组成,形成二维结构。
  2. 数据模型:关系型数据库使用结构化查询语言(SQL)进行数据操作和查询,遵循预定义的表结构和关系之间的约束(主键、外键等)。
  3. 数据一致性:关系型数据库强调数据的一致性和完整性,支持事务处理,确保数据的原子性、一致性、隔离性和持久性(ACID特性)。
  4. 灵活的查询能力:关系型数据库通过SQL提供了强大的查询能力,可以执行复杂的连接和聚合查询。
  5. 严格的数据模式:关系型数据库需要事先定义好数据模式,即确定表结构、字段类型、关系等,强调数据的结构化和一致性。

非关系型数据库(NoSQL):

  1. 数据结构:非关系型数据库使用不同的数据模型,如键值对(Key-Value)、文档型(Document)、列族(Column Family)、图形(Graph)等,具有灵活的数据结构。
  2. 数据模型:非关系型数据库不使用SQL,而是使用特定的查询语言或API进行数据操作和查询。
  3. 分布式扩展性:非关系型数据库通常具有分布式架构和可伸缩性,可以在多个节点上存储和处理大规模数据,更适合处理高并发和大数据量的场景。
  4. 高性能读写:非关系型数据库往往以牺牲一部分数据一致性为代价,获得更高的读写性能和吞吐量。
  5. 灵活的数据模式:非关系型数据库不需要事先定义严格的数据模式,可以根据需求动态地改变数据结构,适用于快速迭代和灵活的数据模型。

应用场景:

  1. 关系型数据库适用于需要强调数据一致性、事务处理和复杂查询的场景,如企业级应用、金融系统、电子商务平台等。
  2. 非关系型数据库适用于需要灵活的数据结构、高性能读写和大规模数据存储的场景,如大数据分析、社交网络、实时日志处理等。
  3. 关系型数据库更适合于数据之间有复杂的关联和规范要求的应用场景,而非关系型数据库更适合于需要灵活改变数据结构和扩展性的应用场景。
  4. 在一些场景中,关系型数据库和非关系型数据库可以结合使用,形成混合架构,以充分发挥各自的优势和满足不同的需求。

9.关系型数据库设计规则以及规范

设计规范对于MySQL数据库是非常重要的,可以提高数据库的性能、可维护性和扩展性。以下是一些常见的MySQL数据库设计规范:

  1. 规范化设计:遵循规范化原则,将数据分解为逻辑上相互独立的表,减少数据冗余和更新异常。

  2. 主键设计:每个表应该有一个主键来唯一标识每条记录,可以使用自增整数、GUID等作为主键。

  3. 索引设计:根据查询需求创建适当的索引,提高查询性能。主键默认会创建索引,还可以根据经常用来查询的字段创建额外的索引。

  4. 字段设计:选择适当的字段类型和长度,尽量减小存储空间占用。避免使用过长的字段名和包含特殊字符的字段名。

  5. 外键关联:使用外键建立表之间的关联关系,并定义合适的级联操作和引用完整性约束。

  6. 数据类型选择:根据实际需求选择正确的数据类型,例如使用整数类型存储整数值,使用日期/时间类型存储日期和时间等。

  7. 命名规范:统一采用一致的命名规范,命名清晰且易于理解。可以使用下划线或驼峰命名法。

  8. 数据库安全:设置合适的用户权限和访问控制策略,保护数据的安全性。最小化对数据库的直接访问权限。

  9. 数据库备份和恢复:定期进行数据库备份,并测试恢复过程,以防止意外数据丢失。

  10. 性能优化:监控数据库性能并进行必要的调整,如优化查询语句、表结构调整、增加缓存等,以提高数据库的性能。

  11. 注释和文档:为表、字段和查询语句添加注释,编写清晰和详细的文档,方便理解和维护数据库。

10.表的关系(一对一,一对多,多对多)

数据库中的关系有三种常见类型:一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。

  1. 一对一关系(One-to-One Relationship):

    • 定义:一对一关系表示两个实体之间的唯一对应关系。在这种关系中,一个实体的某个实例只能与另一个实体的一个实例相关联。
    • 示例:例如,一个人(Person)只能拥有一个身份证(ID Card),而每张身份证也只能属于一个人。
    • 实现方式:可以通过在一个表中存储外键来实现一对一关系,也可以使用两个表,每个表包含一个外键。
  2. 一对多关系(One-to-Many Relationship):

    • 定义:一对多关系表示一个实体的实例可与另一个实体的多个实例相关联。在这种关系中,一个实体的记录可以在另一个实体的表中存在多个关联记录。
    • 示例:例如,一个订单(Order)可以包含多个商品(Product),但是每个商品只能属于一个订单。
    • 实现方式:可以通过在多的一方的表中存储外键,指向一的一方的主键,实现一对多关系。
  3. 多对多关系(Many-to-Many Relationship):

    • 定义:多对多关系表示两个实体之间的多对多关联。在这种关系中,一个实体的实例可以与另一个实体的多个实例相关联,反之亦然。
    • 示例:例如,一个学生(Student)可以选择多门课程(Course),同时一门课程也可以被多个学生选择。
    • 实现方式:为了实现多对多关系,通常需要使用一个中间表(关联表)来记录两个实体之间的关联关系,这个表包含两个外键,分别指向两个实体的主键。

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

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

相关文章

【Proteus仿真】51单片机+ADC0808模数转换数码管显示

【Proteus仿真】51单片机+ADC0808模数转换数码管显示 📺Proteus仿真演示: 📗ADC0808主要数据参数简介 8路输入通道,8位A/D转换器,即分辨率为8位:0 - 255。转换时间为100μs(时钟为640KHz时),130μs(时钟为500KHz时)。模拟输入电压范围0~+5V,不需零点和满刻度校准。…

谷粒商城第一天-项目概述、架构、Linux环境搭建

目录 一、学习的内容 一、常见的商城模式 二、谷粒商城项目的微服务架构 三、谷粒商城项目的微服务划分 四、谷粒商城项目的亮点 五、微服务的基本的概念 二、完成的进度 三、学到的东西 四、总结 6月9日正式下决心开始学习谷粒商城项目,之前早就听说谷粒商…

Powerjob部署安装

安装思路: 1、本地环境和具体生产环境都要安装部署jdk-------------------参考jdk安装 2、本地部署maven-------------------参考maven安装 3、本地部署powerjob 4、生成jar包,上传生产环境启动 部署: 1、下载上传Powerjob包,本次选取4.0.1版本 https://github.com/Powe…

arx程序与cgal冲突的地方,记录一下

arx本身是个dll,而且运行库是 /md,多线程,无论debug还是release都是/md,而不是/mtd cgal编译出来的库,release版本是Mt,debug版本是MTd 感觉debug版本是MTd对arx没用,不知道这种看法对不对&…

stable diffusion webui 安装部署(linux系统)

文中部署stable diffusion webui所使用的机器是腾讯云服务器linux系统,centos7 一 环境准备 在这里使用anaconda安装,优势就是可以方便地安装和管理软件包,同一系统上可以同时使用不同版本的 Python 和第三方软件包。如果你需要安装多个系统…

图像目标检测 - CenterNet: Objects as Points (arXiv 2019)

CenterNet: Objects as Points - 目标作为点(arXiv 2019) 摘要1. 引言2. 相关工作3. 准备工作4. 目标作为点4.1 3D 检测4.2 人体姿态估计 5. 实施细节6. 实验6.1 目标检测6.1.1 附加实验 6.2 3D 检测6.3 姿态估计 7. 结论References附录A:模型…

华为防火墙之攻击防范

1.DoS攻击简介 攻击和防御技术发展史 DoS是Denial of Service的简称,即拒绝服务。造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法正常提供服务。 2.单包攻击及防御 最常见的DoS攻击就是单包攻击,一般都是以个人为单位的攻击者…

回归预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测 预测效果 基本介绍 MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测,运行环境Matlab2020b及以上。优化正则化率、学习率、隐藏层单元数。…

大数据Doris(四十二):Routine Load导入Kafka数据到Doris

文章目录 Routine Load导入Kafka数据到Doris 一、创建 Doris 表 二、创建 Kafka topic 三、创建 Routine Load

PTA OJ 合集 C语言

目录 7-1 查找整数 7-2 大笨钟的心情 7-3 将数组中的数逆序存放 7-6 矩阵运算 7-7 求矩阵的局部极大值 7-8 矩阵A乘以B 7-9 找鞍点 6-1 查找数组元素最大值 6-2 在数组中查找指定元素 7-5 求数列之和[A] 6-3 使用函数的选择法排序 6-5 计算天数[2] 6-4 求矩阵不靠…

ABAP 新语法--Open SQL

1. 常量 1.1 常量赋值 常量字段可以用来为内表中的部分字段赋初始值,字段类型和长度依据输入常量的值决定 SELECTmara~matnr, " 物料号mara~matkl, " 物料组mara~mtart, " 物料类型 AS lkenz, " 删除标识,常量空字符串123 AS fla…

STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040

STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040 Proteus仿真小实验: STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040 功能: 硬件组成:STM32F103C LCD1602 L298N电机控制电路2个电机一个左轮一个右轮 2个按键(模拟两个避…

Web安全:bWAPP 靶场搭建.(集成了各种常见漏洞和最新漏洞的开源Web应用程序)

Web安全:bWAPP 靶场搭建. bWAPP是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场,帮助安全爱好者,开发人员和学生发现和防止Web漏洞。它有超过100个网络漏洞数据,包括所有主要的已知网络漏洞. 目录…

谷粒商城第三天-微服务中基本组件的使用

目录 一、前言 二、学习的内容 一、Nacos的服务注册/发现 1. 导依赖,nacos-discovery java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.cho 2. 在application.yml中声明nacos服务器的ip地址和端口号&…

MySQL常见问题

优化慢查询 慢查询可能出现的情况: 聚合查询多表查询表数据量过大深度分页查询 表象:页面加载过慢,接口压测响应时间过长(超过1s) 如何定位慢查询? 方案一:开源工具 可以使用相应的调试工具&a…

数据库SQL查询(一)

本文介绍SQL查询,如何在海量数据中筛选想要数据; 数据库管理系统选择:关系型数据库mysql 数据库管理工具选择:navicat 本文中查询语句和查询案例参考自:https://edu.csdn.net/course/detail/27673?ops_request_mis…

管理类联考——英语——趣味篇——背诵单词

考友方法推荐 词根词缀巧记考研英语大纲词汇 ⼀、词根词缀构词法的威⼒ 《考研英语⼤纲》要求考⽣掌握 5500 个词汇及相关词组,我们将这 5500 个单词,分成了三类,通过第⼀类“3450 基础⾼频词汇”的学习,考⽣夯实了基础&#xf…

Fmoc-保护氨基酸合成中的新型底物:Fmoc-Thr(Ac4Manα1-2Ac3Manα)-OH,CAS:482576-73-8

文章关键词:糖化学试剂,多肽合成,Fmoc-保护氨基酸,糖基化修饰一、产品描述: 西安凯新生物科技有限公司供应的​Fmoc-Thr(Ac4Manα1-2Ac3Manα)-OH,多肽固相合成法,基于Fmoc化学合成&#xff0c…

[学习笔记] [机器学习] 12. [下] HMM 隐马尔可夫算法(马尔科夫链、HMM 三类问题、前后后向算法、维特比算法、鲍姆-韦尔奇算法、API 及实例)

5. 维特比算法解码隐藏状态序列 Q Q Q 学习目标: 知道维特比算法解码隐藏状态序列 Q Q Q 在本篇我们会讨论维特比算法解码隐藏状态序列 Q Q Q,即给定模型 λ \lambda λ 和观测序列 O O O,求给定观测序列 O O O 条件下,最…

使用华为云开发者插件一键部署应用到ECS

前言 笔者是一名码龄5年左右的程序员,大学是能源行业,处于对技术(碎银几两)的热爱,选择投身搬砖之路。从用C语言在控制台打印第一句“Hello World!”开始,笔者陆续接触过C/C、Java、Golang、Py…