数据库的一些问题
- 数据库怎么保证数据不丢
- 数据库怎么处理多人同时修改的问题
- 为什么用数据库,除了数据库可以用别的数据系统么
- 数据库只能处理结构化函数么
- 有哪些操作数据库的方式,用什么编程语言
存储系统
定义:一个提供了读写、控制类接口,能够安全有效的把数据持久化的软件
特点
- 作为后端软件的底座,性能敏感
- 存储系统的代码,既简单又复杂
- 存储系统软件架构,容易受影响
数据怎么从应用到存储介质
缓存重要,贯穿整个存储系统。 拷贝很昂贵,应该尽量减少。硬件设备很多,需要有抽象统一的接入层
RAID技术(磁盘阵列)
单机存储系统怎么做到高性能/高性价比/高可靠性-----(RAID技术)
- 出现的背景
- 单块大容量磁盘的价格>多块小容量磁盘
- 单块磁盘的写入性能<多块磁盘的并发写入性能
- 单块磁盘的容错能力有限,不够安全
- 其中
- RAID 0
- 多块磁盘简单组合
- 数据条带化存储,提高磁盘带宽
- 没有额外的容错技术
- RAID 1
- 一块磁盘对应一块额外镜像盘
- 真实空间利用率仅50%
- 容错能力强
- RAID 0+1
- 结合了上述两种
- 真实空间用率仅50%
- 容错性好,写入带宽好
数据库和存储系统不一样么?
- A(原子性Atomicity)事务内的操作要么全做,要么不做
- C(一致性Consistencyv)事务执行前后,数据状态是一致的
- I(隔离性Isolation)可以隔离多个并发事务,避免影响
- D(持久性Durability)事务一旦提交成功,数据保持持久性
关系型数据库
关系=集合=任意元素组成的若干有序偶对反映了事物间的关系。 关系型数据库是存储系统,但是在存储之外,又发展出其他能力
- 结构化数据友好
- 事务管理(ACID)
- 支持复杂查询sql语言
非关系型数据库
非关系型数据库也是存储系统,但一般不要求严格的结构化
- 半结构化数据友好
- 可能支持从事务管理(ACID)
- 可能支持复杂查询sql语言