带你认识存储 & 数据库 |青训营笔记

132 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

下面是课程开始的一些问题,个人在听课时记下了自己认为可能正确的答案,如有错误,请多批评指正。

1.数据库是怎么保证数据不丢失的

首先从数据存储的角度来看:一般来说存储系统由用户,介质(如硬盘),内存,有时还要用到网络几个部分组成。

从存储介质的层级来看:一般来说,访问速度快的介质数据存储量偏小,相反,访问速度慢的介质能存储更大量的数据。

数据库就是能够读写,提供数据持久化的一种软件

个人理解:数据库对用户和存储介质提供接口。将用户的数据存放到存储介质(如硬盘)中。在又需要的情况下再从数据库中提取需要的数据给用户。

2.数据库怎么处理多人修改问题

一些数据库支持事务ACID

A(tomicity):事物内的事要不都做要不都不做

C(onsistency):事务执行前后,数据状态是一致的

I(solation):可以隔离多个并发事务,避免影响

D(urabiltiy):事务提交成功后保证持久性。

个人理解:事务的四大特性ACID让数据库遭遇多人修改的情况下提供的一种保证数据准确性的方案。

为什么用数据库,除了数据库还能存到哪些存储系统

数据库拥有结构化数据友好、支持事务ACID、支持复杂查询语言(SQL)等

数据库底层运用了一些适合数据存储与读写的一些数据结构。

SQL是一种DSL,是专门用来查询数据库数据的一种语言。相比其他编程语言更适合数据库查询。

数据库按关系类型可以分为关系型数据库(如MySQL)和非关系型数据库(如Redis) 按部署类型可以分为单机数据库和分布式数据库。

tips:在面试中,对于数据库的一些底层知识经常会考察。数据库与整个系统会形成一个整体,不能单独剥离

数据库只能存储结构化数据吗

有一些数据库支持存储非结构化数据:

例如MongDb: 面向文档存储,文档可序列化,高版本也开始支持事务。

有哪些操作数据库的方式,需要什么编程语言

SQL语句