首页 > 数据库 >Restart Study MySQL-01数据库概述(基础)

Restart Study MySQL-01数据库概述(基础)

时间:2023-12-03 22:57:41浏览次数:47  
标签:关系 存储 01 Study SQL 键值 MySQL 数据 数据库

C(Chapter)

C-01.数据库概述

1.为什么要用数据库

  • 持久化(persistence):把数据保存到可掉电式存储设备(硬盘)中以供之后使用。大多数情况下,特别是企业应用,数据持久化是将内存中的数据保存到硬盘上加以"固化",而持久化的实现过程大多使用各种关系数据库来完成。
  • 持久化的主要作用是将内存中的数据存到关系型数据库中,当然也可以存储在磁盘文件,XML数据文件中。

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

2.1 数据库的相关概念

DB:数据库(Database)。存储数据的仓库,其本质是一个文件系统。保存了一系列有组织的数据。
DBMS:数据库管理系统(Database Management System)。是一种操作和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一的管理和控制。用户通过数据库管理和访问数据库中表的数据。
SQL:结构化查询语言(Structured Query Language)。专门用来与数据库交互的语言。

2.2 数据库和数据库管理系统的关系

数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中用户的数据。

3.MySQL优势

为什么很多厂商选择MySQL?
  • 1.开放源代码,使用成本低。
  • 2.性能卓越,服务稳定。
  • 3.软件体积小,使用简单,并且易于维护。
  • 4.历史悠久,社区用户活跃,遇到问题容易解决。
  • 5.很多互联网公司再用,经过了时间的考验。

4.RDBMS与非RDBMS

RDBMS(Relationship Database Management System)

4.1 关系型数据库(RDBMS)

4.1.1 实质
  • 关系型数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(二维表格)。
  • 关系型数据库以行(row)列(column)的形式存储数据,以便于用户理解。这一系列的行和列被称为表(table),一组表组成了一个库(database)。
  • 表和表之间的数据记录有关系(relationship)。现实世界里的各种实体以及实体之间的各种关系均用关系模型来表示。关系型数据库,就是建立在关系模型基础上的数据库。
  • SQL就是关系型数据库的交互语言。
4.1.2 优势
  • 复杂查询 可以用SQL语句方便的在一个表以及各个表之间,做非常复杂的数据查询。
  • 事务支持 使得对于安全性很高的数据访问要求得以实现。

4.2 非关系型数据库(非DBMS)

4.2.1 介绍

非关系型数据库,可以看成关系型数据库的简化版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。同时,减少了很多不常用的功能,进一步提高了性能。
目前主流的非关系型数据库都是免费的。

4.2.2 有那些非关系型数据库

相比于SQL,NoSQL泛指非关系型数据库,包括了键值型数据库,文档型数据库,搜索引擎和列存储等,还有图形数据库。也只有NoSQL才能将这些数据库都概括。
键值型数据库
键值型数据库,通过key-value键值的方式来存储数据,其中key和value可以是简单的对象,也可以是复杂的对象。key作为唯一的标识符,优点是查找速度快,而且明显优于关系型数据库,确定是无法像关系型数据库一样使用条件过滤(比如WHERE),如果不知道去哪里找数据,就会遍历所有的键,消耗大量的CPU资源。
键值型数据库典型的使用场景就是作为内存缓存。Redis是最流行的键值型数据库。
文档型数据库
可以存放文档,可以是xml格式,json格式。再数据库中文档作为处理信息的基本单位,一个文档相当于一条记录。文档数据库所存放的文档,就相当于键值数据库所存放的值。MongoDB是最流行的文档型数据库。此外还有CouchDB等。
搜索引擎数据库
关系型数据库虽然采用了索引提升了检索效率,但是针对全文索引效率却较低。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候,才能保证性能最优。核心原理是倒排索引
典型产品:ES(Elasticsearch),Solr,Splunk等。
列式数据库
列式数据库是相对于行式存储的数据库,Oracle,MySQL,SQL Server等数据库都是采用的行式存储(Row-based),而列式数据库是将数据按照列存储到数据库中,这样做的好处是可以大量降低系统的I/O,适合于分布式文件系统,不足在于功能相对有限。
典型产品:HBase。
图形数据库
图形数据库,利用了图这种数据结构存储了实体(对象)之间的关系,图形数据库最典型的例子就是社交网络中人与人的关系,数据模型主要是以节点和边(关系)来实现,特点在于能高效的解决复杂的关系问题。
图形数据库顾名思义,就是一种存储图形关系的数据库,它利用了图这种数据结构,存储了实体(对象)之间的关系。关系型数据用于存储明确关系的数据,但对于复杂关系的数据存储却有些力不从心。如社交网络中人物之间的关系,如果使用关系型数据库会非常复杂,用图形数据库将非常简单。
典型产品:Neo4J,InfoGrid等。

4.2.3 NoSQL的演变

NoSQL对SQL做出了很好的补充,比如实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高成本更低的的非关系型数据库当然是更好的选择,比如:排行榜,定时器等。

5.关系型数据库设计规则

  • 关系型数据库的典型数据结构就是数据表,这些数据表的组成都是结构化的(Structured)。
  • 将数据放到表中,表再放到库中。
  • 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
  • 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java中“类”的设计。

5.1 表,记录,字段

  • E-R(entity-relationship,实体-联系),模型中有三个主要概念是:实体集属性联系集
  • 一个实体集(Class)对应数据库中的一张表(Table),一个实体(Instance)则对应于数据库表中的一行(Row),也称为一条记录(Record)。一个属性(Attribute)对应于数据库中的一列(Cloumn),也成为一个字段(Field)。
  • ORM思想(Object Relational Mapping)体现:数据库中的一张表 <----> Java中一个类,表中的一条数据 <----> 类的一个对象(实体),
    表中的一个列 <----> 类中的一个字段,属性(Field)。

5.2 表的关联关系

  • 表与表之间的数据记录有关系。现实世界的实体及实体之间的关系均用关系模型来表示。
  • 四种,一对一关系,一对多关系,多对多关系,自我引用。

学习视频是尚硅谷宋红康老师主讲的b站视频,BV1iq4y1u7vj
只是为了记录自己的学习历程,且本人水平有限,不对之处,请指正。

标签:关系,存储,01,Study,SQL,键值,MySQL,数据,数据库
From: https://www.cnblogs.com/changming06/p/17873952.html

相关文章

  • MySQL
    基础篇通用语法及分类DDL:数据定义语言,用来定义数据库对象(数据库、表、字段)DML:数据操作语言,用来对数据库表中的数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数据控制语言,用来创建数据库用户、控制数据库的控制权限DDL(数据定义语言)数据库操作查......
  • 初中英语优秀范文100篇-016An unforgettable Trip-一次难忘的旅行
    PDF格式公众号回复关键字:SHCZFW016记忆树1Lastyear,Iwenttomyfavoritecity,Beijing.翻译去年,我去了我最喜欢的城市,北京简化记忆城市句子结构这个句子可以分析为一个复合句,由主句和从句构成。主句是“Iwenttomyfavoritecity,Beijing”,主语是“I”......
  • Http 状态码 301 和 302 的应用场景
    301表示永久重定向,302表示临时重定向。如果浏览器收到的是301,则会缓存重定向的地址,之后不会再重新请求服务器,直接使用缓存的地址请求,这样可以减少请求次数。但如果浏览器收到的是302,则不会缓存重定向地址,浏览器将来会继续以原有地址请求。因此,301适合地址永久转移的场景,比如域......
  • MySQL触发器
    前言触发器(trigger)是由事件来触发某个操作,这些事件包括:insert语句、update语句、delete语句,当数据库系统执行这些事件时,就会激活执行相应的操作。一、创建触发器触发器是由insert、update和delete等事件来触发的某种特定的操作,满足触发器的触发条件时,数据库系统就会执行触发器......
  • 2023-2024-1 20231301 《计算机基础与程序设计》第十周学习总结
    2023-2024-120231301《计算机基础与程序设计》第十周学习总结作业信息作业链接作业课程<班级>(2023-2024-1-计算机基础与程序设计)作业要求<作业>(2023-2024-1计算机基础与程序设计第十周学习总结)作业目标<《计算机基础与程序设计》预习第十二、十三、十四章......
  • Python基础_01_MarkDown语法基础
    MarkDown基础语法[一]Typora(1)下载官网:Typora官方中文站(typoraio.cn)正版价格及介绍:89元/3台设备;89元三个设备码(重装系统设备码失效)绿色版:网盘链接[.\Typora\resources文件夹下替换(app.asar)](2)部分设置主题更改:Typora官方主题库下载完成后,解压压缩包后将.css......
  • Redis缓存和MySQL数据一致性方案详解
    需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MYSQL)间......
  • P3214 [HNOI2011] 卡农 题解
    Description给定\(n,m\),要从\(1,2,\dots,2^n-1\)中选\(m\)个无序的数,使得他们互不相同且异或和为\(0\),问有多少种选法。对\(998244353\)取模。Solution考虑求出有序的方案数的个数再除以\(m!\)。设\(f_i\)表示选出\(i\)个数的方案。那么如果随便选前\(i-1\)......
  • games101-2 透视深度插值矫正与抗锯齿分析
    透视深度插值矫正与抗锯齿分析深度插值的差错原因透视深度插值公式推导games101中的错误msaa与ssaa简要定义games101中ssaa的实现games101中msaa的实现深度插值的差错原因当投影的图形与投影的平面不平行时,这时进行透视投影,从上图中可以看出,投影平面上的线段时均匀......
  • AW2013芯片讲解
    (文章目录)前言本篇文章将带大家学习AW2013芯片的使用。一、AW2013芯片介绍AW2013是AWINICLED驱动器产品线中支持自动呼吸模式的3通道LED驱动器产品。它可以驱动3个独立的LED或一个RGBLED组。AW2013通过常阳极恒定电流驱动LED。亮度可以通过256级PWM调制。输出电流可以在4......