存储与数据库笔记

95 阅读2分钟

存储与数据库

术语:
    数据流动:用户数据👉后端服务器👉数据库系统
    持久化数据:相当于让数据长久留存
    数据库持久化:校验数据合法性👉修改内存(组织数据)👉写入存储介质

存储系统
    定义:提供了读写、控制类接口,能够安全有效地把数据持久化的软件
    特点:性能敏感、易受硬件影响(顺应硬件变更而改变)、代码简单但要考虑多种异常情况
    例子:RAID技术

存储器的层级结构:略(persistent memory)

数据如何从应用到存储介质:略
需要关注两点:
缓存很重要(软件实现cache,以硬件友好的方式访问硬件)
注意拷贝的使用(消耗cpu,要尽量减少拷贝)

数据库系统
关系:集合(表达事物间的关系)
关系代数:对关系做运算的抽象查询语言
SQL:方便人类阅读的关系代数表达形式(SDL)
    关系型数据库
        是一种存储系统,但功能不止存储,比如支持事务(ACID)、支持复杂查询语言、结构化数据友好
    非关系型数据库
        不要求严格的结构化,对半结构化数据友好。可能支持事务和复杂查询语言

数据库和经典存储在结构化数据管理的比较
    1.管理结构
    数据库:表形式管理
    经典存储:自行定义管理结构

    2.事务能力(ACID)
    数据库有优越的事务能力
    经典存储只能做深度的代码逻辑来满足一些高级需求

    3.复杂查询能力
    数据库:代码更简洁、灵活
    经典存储

主流产品剖析
    1.单机存储系统
    单个计算机节点上的存储软件系统,一般不涉及网络交互
    本地文件系统:linux
    key-value存储系统:
    常见数据结构:LSM-Tree

    2.分布式存储
    在单机存储基础上实现了分布式协议,涉及大量网络交互(注重网络交互的性能)
    分布式文件系统
    分布式对象存储系统
    eg:HDFS、ceph

    3.单机数据库
    单个计算机节点上的数据库系统。事务在单机内执行,也可能通过网络交互实现分布式事务。
    关系型数据库
    非关系型数据库

    4.分布式数据库
    目的:解决容量问题、解决弹性问题、解决性价比问题