Mysql系列—1.数据库的基本概念

目录

1. 什么是数据库

2. 数据库发展史

3. 常⻅的数据库类型

1. 关系型数据库(RDBMS)

2. NoSQL数据库

3. NewSQL数据库

4. In-Memory数据库

5. 时序数据库

6. 图数据库

4. OLTP 和 OLAP

OLTP(联机事务处理)

OLAP(联机分析处理)

5. 事务的 ACID


1. 什么是数据库

        在操作系统出现之后,随着计算机应⽤范围的扩⼤、需要处理的数据迅速膨胀。最初,数据与程序⼀样,以简单的 ⽂件作为主要存储形式。以这种⽅式组织的数据在逻辑上更简单,但可扩展性差,访问这种数据的程序需要了解数 据的具体组织格式。当系统数据量⼤或者⽤户访问量⼤时,应⽤程序还需要解决数据的完整性、⼀致性以及安全性 等⼀系列的问题。因此,必须开发出⼀种系统软件,它应该能够像操作系统屏蔽了硬件访问复杂性那样,屏蔽数据 访问的复杂性。由此产⽣了数据管理系统,即数据库。 数据库是结构化信息或数据的有序集合,⼀般以电⼦形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来 控制。在现实中,数据、DBMS 及关联应⽤⼀起被称为数据库系统,通常简称为数据库。 为了提⾼数据处理和查询效率,当今最常⻅的数据库通常以⾏和列的形式将数据存储在⼀系列的表中,⽀持⽤户便 捷地访问、管理、修改、更新、控制和组织数据。另外,⼤多数数据库都使⽤结构化查询语⾔ (SQL) 来编写和查询 数据。

2. 数据库发展史

3. 常⻅的数据库类型

1. 关系型数据库(RDBMS)

特点: 使⽤表格(表)来组织和存储数据,表之间通过关系建⽴连接。

例⼦: MySQL、Oracle Database、Microsoft SQL Server、PostgreSQL等。

应⽤场景: 适⽤于需要事务处理、数据⼀致性和复杂查询的应⽤,如企业管理系统、⾦融系统等。

2. NoSQL数据库

特点: 不依赖固定的表结构,可以处理半结构化和⾮结构化数据。通常更具有分布式、⾼可扩展性。

例⼦: MongoDB(⽂档型)、Cassandra(列式存储)、Redis(键值存储)、Neo4j(图形数据库) 等。

 应⽤场景: 适⽤于⼤数据、实时数据处理、分布式系统等场景,例如社交媒体、⽇志分析、物联⽹应⽤ 等。

3. NewSQL数据库

特点: 结合了关系型数据库的 ACID 特性和分布式系统的可扩展性,旨在解决传统关系型数据库在⼤规 模分布式环境中的性能瓶颈问题。

例⼦: Google Spanner、CockroachDB等。

应⽤场景: 适⽤于需要同时满⾜关系型数据库事务特性和分布式系统可扩展性需求的场景。

4. In-Memory数据库

特点: 将数据存储在内存中,提⾼访问速度和响应时间。

例⼦: Redis、Memcached等。

应⽤场景: 适⽤于对读取性能要求较⾼、可以牺牲部分持久性的场景,如缓存、实时分析等。

5. 时序数据库

特点: 专⻔⽤于处理按时间顺序存储和查询的数据。

例⼦: InfluxDB、OpenTSDB等。

应⽤场景: 适⽤于物联⽹、监控系统、⽇志数据等需要按时间序列进⾏查询和分析的场景。

6. 图数据库

特点: ⽤于存储和查询图结构的数据,适⽤于处理实体之间复杂的关系。

例⼦: Neo4j、ArangoDB等。

应⽤场景: 适⽤于社交⽹络分析、推荐系统、⽹络关系分析等场景。

4. OLTP 和 OLAP

OLTP(联机事务处理)和OLAP(联机分析处理)是两种数据库处理⽅式,它们在应对不同类型的业务需求时发挥 不同的作⽤。

OLTP(联机事务处理)

1. 定义: OLTP是⼀种⾯向⽇常业务操作的数据库处理⽅式,⽤于⽀持⽇常的事务性操作,例如插⼊、更新和删 除记录。

2. 特点: OLTP系统通常涉及⼤量的短期交易,每个交易可能只涉及到少量的数据。它强调实时性、⾼并发和数 据⼀致性。

3. ⽬标: 主要⽤于记录业务活动的原⼦性操作,例如订单处理、在线购物、银⾏交易等。OLTP系统通常针对操 作型数据库设计,采⽤规范化的数据库结构以避免数据冗余。

4. 性能指标: OLTP系统的性能关注点通常在于处理速度、并发性和事务的⼀致性。

OLAP(联机分析处理)

1. 定义: OLAP是⼀种⽤于⽀持决策⽀持和业务智能的数据库处理⽅式,强调对⼤量历史数据的分析和查询。

2. 特点: OLAP系统通常涉及复杂的查询和分析操作,需要处理⼤量的数据。它强调数据的分析、汇总和报告 功能。

3. ⽬标: 主要⽤于⽀持决策制定、趋势分析、数据挖掘等,例如销售趋势分析、业务预测等。OLAP系统通常 采⽤多维度数据库结构,以便更好地⽀持多维度数据的查询和分析。

4. 性能指标: OLAP系统的性能关注点通常在于查询速度、数据汇总和灵活性。

两者对⽐

⽤途不同: OLTP主要⽤于⽀持业务的⽇常操作,⽽OLAP主要⽤于⽀持决策制定和业务智能的分析。

数据模型不同: OLTP通常采⽤规范化的数据模型,⽽OLAP通常采⽤维度模型。

查询复杂度: OLTP处理相对简单的查询,OLAP处理更复杂的查询和分析操作。

实时性要求: OLTP要求实时处理,⽽OLAP更注重历史数据的综合分析,对实时性要求相对较低。

综合来说,OLTP和OLAP分别服务于业务操作和决策⽀持两个不同层⾯的需求,数据库系统在设计上需要考虑满⾜ 这两种处理⽅式的要求。

5. 事务的 ACID

ACID(Atomicity、Consistency、Isolation、Durability)是事务处理的四个基本属性,⽤于确保数据库操作的可 靠性和⼀致性。以下是每个属性的具体示例:

1. Atomicity(原⼦性): 考虑⼀笔银⾏转账操作,涉及从⼀个账户减少⾦额并将相同⾦额增加到另⼀个账户。在原⼦性的要求下,这 两个操作要么同时成功,要么同时失败。如果在扣款后发⽣错误,那么转账应该被回滚,保持事务的原⼦ 性。

2. Consistency(⼀致性): 假设⼀个在线商店的数据库中有产品库存信息,要求每次成功的订单都要保持库存的⼀致性。如果⼀个订单 成功提交,但库存更新失败,系统应该回滚订单操作,以保持库存和订单数量的⼀致性。

3. Isolation(隔离性): 假设有两个⽤户同时尝试在银⾏系统中转账。隔离性要求⼀个⽤户的转账操作不应受到另⼀个⽤户同时进⾏ 的转账操作的影响。即使两个转账操作同时执⾏,它们也应该在事务的隔离环境中执⾏,以防⽌数据不⼀ 致。

4. Durability(持久性): 考虑⼀个在线投票系统,在⽤户投票后,系统将投票结果写⼊数据库。持久性要求⼀旦投票结果被确认写⼊ 数据库,即使系统崩溃或发⽣故障,投票结果也应该在系统恢复后仍然可⽤,以保持事务的持久性。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥德彪的蕉

天不生我奥德彪,非洲无人拉香蕉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值