首页 > 数据库 >MySql学习笔记:什么是数据库?

MySql学习笔记:什么是数据库?

时间:2024-10-01 11:54:02浏览次数:9  
标签:关系 存储 数据库 MySql 笔记 键值 MySQL 数据

数据库的概念:

         数据库(Database),简而言之可视为数字化的文件柜,是一个长期储存在计算机内有组织的、统一管理的数据集合,用于存储和管理大量相关信息。

        数据库是一个按数据的结构来存储和管理数据的计算机系统,也就是说,数据库通常有两方面含义:保管数据的“仓库”以及管理数据的技术与方法。其通常以电子形式存储在计算机系统中,允许用户通过特定的工具和语言(如 SQL)高效地进行数据的增删查改操作。一个数据库有多个表空间组成

        数据库的核心目标是以结构化的方式存储数据,以便能够方便、快速、安全地查询和管理这些数据。其功能可分为如下几点:

  • 数据存储:数据库能够按一定的数据结构,有序的存储大量数据。

  • 数据查询:数据库可以快速查询存储的数据,满足不同的业务需求。

  • 数据操作:可以方便地对数据进行增删改等操作。

  • 数据共享:多个用户可以并发访问数据库。

  • 数据安全:通过权限控制,保证数据的机密和安全。

  • 数据备份与恢复:确保在系统故障时,数据不丢失。


数据库的分类:

关系型数据库(Relational Database)

        关系型数据库是基于关系模型的数据管理系统,其可通过被广泛使用的ODBC(开放数据互连)标准接口,在不同的操作系统与数据库系统之间进行数据访问。关系型数据库,数据通过的形式存储。

        每张表由组成,行代表具体的记录,列代表属性。表之间可以通过外键建立关系,支持数据的复杂联接和查询。 关系型数据库的特点如下:

  • 数据具有行和列的结构,是以二维表的方式进行存储的(类似于Excel)。

  • 表之间可以通过外键建立关系,实现复杂的查询和联接。

  • 数据一致性和完整性高,适用于结构化数据。

  • 支持事务和并发控制。

常见的关系型数据库有

SQL Server(微软结构化查询语言服务器,是由美国微软公司所推出的关系数据库解决方案,广泛使用的开源数据库,常用于Web应用开发 )。

Oracle(甲骨文公司的一款关系式数据库管理系统,高性能、稳定性强的商业数据库,适合大规模企业级应用。 )

以及我们所学的MySql也是关系型数据库的一个典例。


非关系型数据库(NoSQL Database)

        非关系型数据库又被称为 NoSQL(Not Only SQL)。与传统的关系型数据库相对,NoSQL 数据库用于处理非结构化或半结构化数据。该数据库不采用表结构来存储数据,而是采用更为灵活的数据模型,例如键值对、文档、图形等形式来对数据进行存储

        非关系型数据库中,数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

{
  "user:1001": {
    "name": "Alice",
    "age": 30,
    "city": "Beijing"
  },
  "user:1002": {
    "name": "Bob",
    "age": 25,
    "city": "Shanghai"
  },
  "user:1003": {
    "name": "Charlie",
    "age": 35,
    "city": "Guangzhou"
  }
}

(以上是一个KV键值存储的数据实例:在这个例子中,我们有三个用户的数据,每个用户的数据都以键值对的形式存储。键是用户的ID(如user:1001),值是一个包含用户信息的对象。)

 总的来说,非关系型数据库有以下特征:

  • 数据模型灵活,不限制数据结构,可以存储键值对、文档、列族等类型的数据。

  • 高扩展性,适合大数据量的分布式存储。

  • 高并发性能,适合大规模的实时数据处理

  • 弱化了事务支持,但可以通过其他机制保证数据一致性。

非关系型数据库的一种典型应用是:KV(Key-Value)键值存储,其常见的数据库包括

  • Redis(Remote Dictionary Server):是一个使用ANSI C编写的支持网络、基于内存、分布式、可选持久性的键值对存储数据库,也是一个典型的NoSQL数据库
  • MongoDB:一种面向文档的数据库管理系统,用C++等语言撰写而成,介于关系型数据库和非关系型数据库之间。其特点是采用文档存储模式,使用 BSON(类似 JSON 的二进制格式)存储数据,允许嵌套文档和数组。

数据库的分类可以基于多种标准,包括数据模型、存储方式、访问方式、应用领域、分布模式和数据组织方式等。还有更多的分类方式,此处不进行展开。


深入了解MySQL:

        正如上述所言,MySQL是一个开源的基于关系模型的一个关系型数据库管理系统(RDBMS)

由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,有大量的社区支持和丰富的文档资源。 被广泛应用于各种应用场景,尤其是互联网应用和网站开发。

MySQL 的应用场景
  • Web 应用:MySQL 常与 PHP、JavaScript 等结合,成为 LAMP(Linux、Apache、MySQL、PHP/Python)开发栈中的关键部分。

  • 电子商务平台:MySQL 被广泛应用于需要处理大量交易的电子商务平台中,如商品信息存储、订单处理等。

  • 内容管理系统(CMS):如 WordPress、Joomla 等 CMS 系统依赖 MySQL 来管理博客、文章和用户数据。

        MySQL 基于 SQL(Structured Query Language,结构化查询语言)进行数据操作。

其优点是SQL语言的语法简单凝练,易于学习和理解,且十分灵活,可以灵活组合进行复杂的CRUD(Create,Read,Update and Delete)操作。

        同时,MySQL也对多种主流语言提供了API支持,这些语言包括但不限于时下主流语言:

  • C/C++  
  • Java
  • PHP
  • Python
  • Ruby
  • C#

        通过由官方提供的API接口,用户可以在此类语言的程序中链接到我们的数据库,对其进行CRUD操作。

联接到C++的一个示例

常用IDE推荐: 

  • DataGrip:JetBrains公司旗下的一款数据库GUI图形界面,集成了许多实用功能。试用期为30天(长期使用可以上某多淘一个^_^)

  • SQLyog:由 Webyog 公司开发。它提供了一个图形用户界面(GUI),使数据库开发人员和管理员能够轻松地管理 MySQL 和 MariaDB 数据库。

  • MySQL Workbench官方提供的免费工具,也提供了GUI图形化界面,支持对数据库的开发和管理等。

注:部分图片来自于网络,侵删。

标签:关系,存储,数据库,MySql,笔记,键值,MySQL,数据
From: https://blog.csdn.net/R6bandito/article/details/142643904

相关文章

  • 【深入浅出MySQL】「性能调优」高性能查询优化MySQL的SQL语句编写
    总体优化大纲(1)优化查询性能:通过索引降低全表扫描频率提升数据库查询性能的途径时,一个关键的战略就是降低全表扫描的频次。因为全表扫描往往会消耗显著的计算资源,从而导致查询过程变得迟缓且效率低下,为了有效地提高查询的响应速度和整体性能。优化方向那些在where筛选条件和orderby......
  • jspGoodstuff社区购物网站8pf7x--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,商品分类,商品信息技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、项目背......
  • Linux 学习笔记(二):深入理解用户管理、运行级别与命令行操作
    Linux学习笔记(二):深入理解用户管理、运行级别与命令行操作前置学习内容:Linux学习(一)1.用户管理1.1用户密码管理创建用户密码使用passwd命令可以为指定用户设置密码:sudopasswd`userName`密码找回当忘记密码时,可以采取以下步骤找回:在登录界面按e键进入编......
  • JavaScript笔记
    基操数据类型原始类型对象类型MapandSet流程控制函数及面向对象函数方法常用内部对象面向对象编程(OOP)操作BOM元素操作DOM元素(I)操作表单jQuery基操js作为一种脚本语言,可以嵌入到HTML页面中js是双标签,可以写多行,也可以写一行内部标签<script>......
  • C/C++算法编程笔记(2024.9.26-9.30)
    一、并查集学习一:1、寻找根节点(两种)intfind(intx){if(x!=city[x]) city[x]=find(city[x]);returncity[x];}intfind(intx){ returnfa[x]==x?x:fa[x]=find(fa[x]);}2、合并不同集合voidmerge(intx,inty){inta=find(x);intb......
  • 分布式数据库
    分布式数据库是一种将数据分布在多个物理节点上的数据库系统,这些节点通过网络相互连接,形成一个逻辑上统一的数据库系统。与传统的单机数据库相比,分布式数据库具有更高的可扩展性、灵活性和容错性。分布式数据库的核心技术包括数据分片、数据同步、数据一致性、数据查询与事务......
  • 搞懂MySQL 子查询,事务,权限并附加MySQL实战
    摘要:    本文主要用来讲解和介绍MySQL数据库中有关子查询,事务,权限等部分的内容,并附加了场景模拟和实战练习。用于快速掌握和理解子查询,事务,权限这些部分的语法和知识点。1.子查询子查询:一个sql语句嵌套了另一个或者多个查询语句。1.1子查询的四种结果标量子查询:返......
  • MySQL之多表关系篇与多表查询篇
    学习前思路拆解:1.理解数据为什么要拆表存储2.明白多表有几种数据关系3.掌握表关系限制的语法并实现4.掌握多表查询语法和练习数据库多表关系1.为什么要拆表存储数据?因为将数据全部存储在一个表中,容易出现数据冗余。例子:学生表和学生成绩表不拆表存储:拆表存储: ......
  • MySQL之数据表,数据类型,表约束类型的指令讲解和练习
        本篇博客主要用来记录和分享本人学习MySQL数据库的基本操作指令的笔记和心得,包括数据表操作、数据管理、数据类型的讲解以及表的约束。通过实际的示例和注意事项,帮助大家更好地理解和应用这些知识。一、数据表操作指令1.创建数据表使用CREATETABLE指令可以创......
  • Connector C++ 连接 MySQL 数据库之增删改查
    在vcpkg中折腾了mysql-connector-cpp8.0很久,一直连接不上远程数据库,后面查官方文档,mysql-connector-cpp8.0好像只支持MySQL8.0以上的数据库,本来想把远程服务器上的MySQL升级到MySQL8.0,后面发现测试服务器的配置有点拉跨,架不住MySQL8.0,但是vcpkg中又没有mysql-c......