当前位置: 首页 > news >正文

MySQL数据库-基本概念

数据

  • 描述事物的符号记录
  • 包括属组、文字、图形、图像、声音、档案记录等
  • 以“记录”形式按统一的格式进行存储

  • 将不同的记录组织在一起
  • 用来存储具体数据

数据库

表的集合,是以一定的组织方式存储的相互有关的数据集合

数据库管理系统(DBMS)

  • 是实现对数据库资源有效组织、管理和存取的系统软件

数据库系统

  • 是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成
  • 应用程序是利用 DBMS 为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合

关系数据库

系型数据库(Relational Database Management System, RDBMS)是一种基于关系模型的数据库管理系统,它使用表格(Table)来存储数据,并通过SQL(Structured Query Language,结构化查询语言)等语言来访问和操作这些表格中的数据。关系型数据库的核心在于数据的组织方式是围绕“关系”进行的,即数据被组织成一系列的表,表之间通过特定的关系(如外键)相互关联

  1. 表结构:关系型数据库中的数据被组织成一系列的行和列(也称为记录和字段),形成表格的形式。每个表格都有一个唯一的名称,并且定义了表中每列的数据类型。

  2. 数据一致性:关系型数据库通过事务(Transaction)来保证数据的一致性和完整性。事务是一组操作,要么全部执行成功,要么在遇到错误时全部撤销,以保持数据库的一致性。

  3. 数据关系:关系型数据库支持表之间的关联,通过外键(Foreign Key)约束来维护表之间的关系。这种关系允许通过关联查询来检索多个表中的数据。

  4. 数据完整性:数据库管理系统提供了多种机制来维护数据的完整性,包括实体完整性(通过主键约束)、参照完整性(通过外键约束)和用户定义的完整性(通过约束条件、触发器等)。

  5. ACID属性:关系型数据库通常遵循ACID(原子性、一致性、隔离性、持久性)原则,确保数据库事务的可靠处理。

常见的关系型数据库系统包括:

  • MySQL:开源的关系型数据库管理系统,广泛用于Web应用程序。
  • PostgreSQL:另一个强大的开源对象-关系数据库系统,支持复杂查询和扩展性。
  • Oracle Database:由甲骨文公司开发,是一个功能强大的商业数据库系统。
  • Microsoft SQL Server:微软开发的数据库系统,广泛用于企业级应用。
  • SQLite:一个轻量级的数据库,是许多桌面和移动应用程序的内置数据库引擎。

关系型数据库的使用场景:

关系型数据库适用于需要高数据一致性、复杂查询、事务处理和ACID属性的应用场景,如金融、电子商务、企业资源规划(ERP)系统等。然而,在处理大规模非结构化数据(如文本、图像、视频等)时,可能需要考虑使用非关系型数据库(NoSQL)来获得更好的性能和扩展性

非关系数据库

  • 被称为NoSQL(Not Only SQL)
  • 存储数据不以关系模型为依据,不需要固定的表格式
  • 非关系型数据库的优点
    • 数据库可高并发读写
    • 对海量数据高效率存储与访问
    • 数据库具有高扩展性与高可用性
  • 常非用关系型数据库
    • Redis
    • mongoDB

非关系型数据库适用于以下场景:

  1. 需要处理大量数据和高并发的场景:如互联网公司、电信公司等,非关系型数据库可以分布式存储数据,并具有出色的高并发处理能力。
  2. 需要快速响应和共享访问的场景:非关系型数据库通常采用内存存储,可以提供快速的响应时间和实时共享访问的能力,适用于需要快速响应的应用。
  3. 新型的和互联网驱动的应用:如社交网络、在线游戏、内容管理等,这些应用通常需要存储和处理大量的非结构化数据,非关系型数据库可以提供灵活的数据模型和高效的存储方式

MySQL数据库

  • 一款深受欢迎的开源关系型数据库
  • Oracle旗下产品
  • 遵守GPL协议,可以免费使用和修改
  • 端口号为3306

特点

  • 性能卓越,服务稳定
  • 开源、无版权限制、成本低
  • 多线程、多用户
  • 基于C/S(客户端/服务器)架构
  • 安全可靠
http://www.lryc.cn/news/409952.html

相关文章:

  • 【无标题】web+http协议+nginx搭建+nginx反向代理(环境准备)
  • c-periphery RS485串口库文档serial.md(serial.h)(非阻塞读)(VMIN、VTIME)
  • Matlab arrayfun 与 bsxfun——提高编程效率的利器!
  • 【Unity编辑器拓展】GraphView自定义可视化节点
  • 教程系列4 | 趋动云『社区项目』极速体验 LivePortrait 人脸表情“移花接木”大法
  • WGS84、GCJ-02、BD09三大坐标系详解
  • css上下动画 和淡化
  • 深入解析C#中的URI和URL编码:理解EscapeDataString、EscapeUriString和UrlEncode的区别及字符编码错误处理
  • 【CSS】给图片设置 max-width
  • 区块链——代码格式检查(prettier、solhint)
  • 搭建自动化 Web 页面性能检测系统 —— 部署篇
  • 知识图谱增强的RAG(KG-RAG)详细解析
  • python中list的深拷贝和浅拷贝
  • 【LeetCode】字母异位词分组
  • Golang | Leetcode Golang题解之第295题数据流的中位数
  • 【C语言】C语言期末突击/考研--数据的输入输出
  • How can I fix my Flask server‘s 405 error that includes OpenAi api?
  • LeetCode Hot100 将有序数组转换为二叉搜索树
  • 【Linux】线程的控制
  • Vue3自研开源Tree组件:人性化的拖拽API设计
  • MYSQL--触发器详解
  • C++实用指南:Lambda 表达式的妙用
  • FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
  • 基于springboot+vue+uniapp的居民健康监测小程序
  • TypeScript基础【学习笔记】
  • 树莓派物联网服务器搭建流程:集成 Node.js、InfluxDB、Grafana 和 MQTT 协议
  • typescript 断言
  • 期刊评价指标及其查询方法
  • 巴斯勒相机(Basler) ACE2 dart 系列说明和软件
  • 【Pycharm中anaconda使用介绍】