认识存储与数据库课程笔记| 青训营

61 阅读2分钟

一、经典案例:一条数据从产生,到数据流动,最后持久化的生命周期

数据的产生:新用户使用app,进行注册

数据的流动:用户产生的结构化的数据先是来到后端服务器,但最后还是被存储在数据库中。这些数据也会进入到其它系统。

数据的持久化:需要校验数据的合法性(例如:用户名是否已经存在?);修改内存(用高效的数据结构组织数据)并写入存储介质(以寿命友好和硬件 友好的方式写入)。

潜在的问题:数据库怎么保证数据不丢?数据库怎么处理多人同时修改的问题?为什么用数据库,除了数据库还能存到别的存储系统吗?数据库只能处理结构化数据吗?有哪些操作数据库的方式,要用什么编程语言?

二、存储&数据库简介:什么是存储系统,什么是数据库系统?

存储系统:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统。

存储系统的特点:作为后端软件的底座,性能敏感;存储系统软件架构,容易受硬件影响;存储系统代码,既“简单"又“复杂”。

数据库:分为关系型数据库和非关系型数据库。

关系(Relation) :Edgar.F.Codd于1970年提出“关系模型”。关系也叫集合,是任意元素组成的若干有序偶对;关系代数是对关系作运算的抽象查询语言。SQL是一种DSL,方便人类阅读的关系代数表达形式。反应了事物间的关系。

关系型数据库:关系型数据库是存储系统,但是在存储之外,又发展出其他能力:结构化数据友好、支持事务(ACID)、支持复杂查询语言。

结构化数据管理:写入关系型数据库,以表形式管理;写入文件,自行定义管理结构。

事务能力:凸显出数据库支持“事务”的优越性。

事务具有: A(tomicity),事务内的操作要么全做,要么不做;

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

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

D(urability),事务-旦提交成功,数据保证持久性;

复杂查询能力:使用SQL在数据库中查询,简洁高效。