- ORM
- 关系型数据库和对象之间映射
- 无须与复杂的 SQL 打交道,只需要操作对象
- 面向对象将实体看作对象,关系型数据库采用实体间关系,关系也可以用对象表达
- 数据库分类
- 关系型数据库:建立在关系模型基础,多张能互相连接的二维行列表格组成的数据库
- NoSQL:非关系型数据库,解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,如超大规模数据存储
- 内存数据库:将数据库整体存储在内存中,提高性能
- 缓存技术
- MemCache:高性能分布式内存对象缓存,内存维护一个 Hash,存储各种格式数据
- Redis:开源的使用 ANSI C 编写,支持网络,基于内存亦可持久化的日志型、KV 数据库,并提供多种语言的 API
- 差异:
- 都将数据存储在内存,MemCache 还可用于缓存图片、视频等
- Redis 并非将所有数据一直存储在内存,会将数据交换到磁盘
- Redis 支持一定的数据库特性
- 并发控制
- 存在的问题:丢失更新、不可重复度、读脏数据
- 规范化问题
- 不规范化带来的问题
- 数据冗余
- 修改异常
- 插入异常
- 删除异常
- 反规范化技术:牺牲部分规范化提高异常
- 益处:降低连接操作的需求、降低外码和索引数据、减少表的数目、提高查询效率
- 问题:重复存储、完整性问题、降低修改速度
- 方法:
- 增加冗余列
- 增加派生列
- 重新组表
- 水平分割表
- 垂直分割表
- 不规范化带来的问题
- 分布式数据库
- 数据分布在网络的不同计算机,每个节点具有独立处理的能力,每个节点也能通过网络通信子系统执行全局应用
- 特点
- 数据独立性:逻辑独立性、物理独立性、数据分布独立性
- 集中与自治共享结合的控制结构
- 增加冗余度
- 全局一致性、可串行性和可恢复性
- 优点
- 解决企业部门分散而数据需要相互联系的问题
- 方便增加新的相对自主的部门来扩充机构
- 满足负载均衡
- 方便实现全局应用
- 故障仅影响局部数据应用,可靠性比较高
- 数据仓库
- 特点:集成数据、面向主题、数据相对稳定、包含历史信息
- 包含四个层次
- 数据源
- 数据的存储与管理
- OLAP(联机分析处理)服务器
- 前端工具
- 商业智能 BI:包括数据预处理、建立数据仓库、数据分析和数据展现四个阶段