数据库概述

这篇博客介绍了数据库的基础知识,包括数据库的概念,强调关系型数据库的重要性。讲解了数据库系统的构成,如数据文件、DBMS和应用程序,并讨论了索引的作用和管理。此外,文章还介绍了SQL语言在数据库操作中的作用以及事务处理的概念,确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是数据库

所谓数据库(Database)就是数据(Data)的基地(Base)。

适合存储大规模数据的是关系型数据库(Relational Database)。在关系型数据库中,数据被拆分整理到多张表中,同时表与表之间的关系也可以被记录下来。

1970年美国IBM公司的Codd先生设计发明了关系型数据库。现在关系型数据库被广泛应用,以至于一提到数据库就默认是关系型数据库。

2.数据文件、DBMS和数据库应用程序
在这里插入图片描述
如图,数据库系统的构成要素包括“数据文件”“DBMS”“应用程序”三部分。数据库的实质虽然是某种数据文件,但是诸位编写的应用程序并不是直接去读写这些数据文件,而是以DBMS作为中介间接地读写。DBMS为
Database Management System,数据库管理系统。

数据库系统有如下几种:
在这里插入图片描述
在这里插入图片描述
3.索引

索引仅仅是提升数据检索和排序速度的内部机制。一旦在字段上设置了索引,DBMS就会自动为这个字段创建索引表。

索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。

索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所起的就是“目录”的作用。

也许会有人这样想,既然索引能够提升检索和排序的速度,那么在所有表的所有字段上都加上索引不就好了吗?实际上并不能这样做。因为一旦设置了索引,每次向表中插入数据时,DBMS都必须更新索引表。提升数据检索和排序速度的代价,就是插入或更新数据速度的降低。因此,只有对那些要频繁地进行检索和排序的字段,才需要设置索引。

4.SQL语句

为了对数据库进行增删改查操作,就必须从应用程序向DBMS发送命令。这里所使用的命令就是SQL语言(Structural Query Language,结构化查询语言)。

现在市面上几乎所有的DBMS都支持SQL语言。

5.事务处理

事务由若干条SQL语句构成,表示对数据库一系列相关操作的集合。

有一个经典的银行账户间汇款的例子可以用于说明其概念。为了从顾客A的账户中给顾客B的账户汇入1万元,就需要将以下两条SQL语句依次发送给DBMS:

  1. 把A的账户余额更新(UPDATE语句)为现有余额减去1万元;
  2. 把B的账户余额更新(UPDATE语句)为现有余额加上1万元。

此时这两条SQL语句就构成了一个事务。

假设在第一条SQL语句执行后,网络或计算机发生了故障,第二条SQL语句无法执行,那么会发生什么呢?A的账户余额虽然减少了1万元,但是B的账户余额却没有相应地增加1万元,这就导致了数据不一致。

为了防止出现这种问题,在SQL语言中设计了以下三条语句:

  1. BEGIN TRANSACTION(开启事务)语句,用于通知DBMS开启事务;
  2. COMMIT(提交事务)语句,用于通知DBMS提交事务;
  3. ROLL BACK(事务回滚)语句,用于在事务进行中发生问题时,把数据库中的数据恢复到事务开始前的状态。
    在这里插入图片描述

6.说明

本文为《计算机是怎样跑起来的》读书笔记,如有错误,请兄弟们指正,大家一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值