问题:什么是数据库?
- 百度百科:
- 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
- 理解:
- 日常开发的应用中,数据都是在内存中进行交互的,如果需要将处理后的数据结果保存下来,以便下一次使用(关机、重启、程序重启后等),就需要将数据保存(持久化)到硬盘(容量大,难丢失)中。
- 数据库就是能让我们的程序应用更容易的保存数据,并提供一整套的解决方案(读、写、事务、数据一致性等等),根据不同的数据格式的数据持久化,也会有不同的数据库。
问题:一个数据库应该包含什么模块?
主要分为存储部分与程序事例部分
- 存储部分主要是对底层硬盘文件的读写
- 程序实例部分
- 存储管理:主要进行数据的逻辑关系转换为物理关系
- 缓存机制:优化执行效率
- SQL解析:用于SQL语句解析
- 日志管理:记录操作的日志管理模块,bin.log
- 权限划分:多用户管理
- 容灾机制:灾难恢复
- 索引管理:优化数据查询效率
- 锁管理:数据库支持并发操作的锁模块
问题:数据库的存储模式有哪些?
- 数据库有三种常见的存储模式
- 行存储模式
- 列存储模式
- 对象(文件)存储模式