快速升级:一文快速熟记【数据库系统】和【软件开发模型】常用知识点
前言
嗨,大家好,近期看到了 InfoQ 与阿里云开发者社区共同举办的第三季签约作者计划,经过朋友推荐和运营工作人员的宣传了解到了本次签约计划。因此满怀欣喜的报名参加了本次签约作者计划。
参加本次签约作者的选手实力都很强大,因此在前期选题的时候耗时比较久。InfoQ 写作社区和阿里云开发者社区主要面向的是软件开发人员、运维人员、系统设计人员等技术性的人才,因此慎重考虑之后,选择了数据库系统和软件开发模型两大内容知识点进行分析。
个人在学习新知识的时候比较喜欢用思维导图的形式记录知识点,方便快速记忆和时常回顾温习,因此周末的时候将数据库系统和软件开发模型两大知识系统常用知识点进行了详细的分析,由于创建时间比较 紧迫,如有不足的地方还望大家指正,再次感谢大家的阅读。
数据库系统
下面是数据库系统的思维导图。
- 规范化理论
- 函数的依赖:主键,部分函数依赖、传递函数依赖
- 非规范化存在问题:数据冗余、异常删除、异常插入、异常更新
- 主键、外键、候选键、超键(关系表的主键)
- 候选键的选择:
- 1、将关系模式的函数依赖关系用“有向图”表示
- 2、找入度为 0 的属性,能便利所有有向图即为候选键
- 3、如入度为 0 的属性不能遍历所有的有向图,则可以并入中间点作为集合,能遍历所有节点的为候选键
- 范式
- 第一范式:属性值都是不可分的原子值
- 第二范式:消除非主属性对候选键的部分依赖
- 第三范式:消除非主属性对候选键的传递依赖
- 第四范式:消除主属性对候选键的传递依赖
- 模式分解
- 保持函数依赖分解
- 无损分解
- 无损联接分解
- 反规范化技术
- 增加派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
- 数据库完整性约束
- 实体完整性约束
- 参照完整性约束
- 用户自定义完整性约束
- (高级约束)触发器
- 数据库安全
- 用户标识和鉴定,认证身份
- 存取控制
- 密码的存储和传输
- 视图保护
- 审计日志
- 数据仓库与数据挖掘
- 数据仓库包含数据库
- 特点:面向主题、集成的、相对稳定的、反映历史变化
- 数据抽取、清洗、装载、刷新
- 数据库模式:三级模式 2 级映射
- 外模式
- 用户级数据库
- 用户视图
- 外模式与概念模式映射
- 概念模式
- 概念级数据库
- DBA 视图
- 概念模式与内模式映射
- 内模式
- 物理级数据库
- 内部视图
- 数据库设计过程
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理数据库设计
- ER 模型
- 实体、属性、关系
- ER 模型转关系模式:一个实体转为一个关系模式,三个实体间的一个多元关系
- 关系代数与模组演算
- 交、并、差、笛卡尔积、投影、选择、联接
- 并发控制
- 事务
- 原子性
- 一致性
- 隔离性
- 持续性
- 并发存在的问题
- 丢失更新
- 不可重复读
- 读取到脏数据
- 封锁协议
- 一级封锁协议
- 加 X 锁(写锁),可以防止丢失更新
- 二级封锁协议
- 加 S 锁(读锁)然后读完释放,在加 X 锁,防止丢失修改、防止读取脏数据
- 三级封锁协议
- 先对数据加 S 锁,读完数据之后执行一级封锁,整个事务执行完释放 S 锁。防止丢失更新、防止读到脏数据、防止不可重读
- 两段锁协议,可串行化的,可能发生死锁
- 大数据
- 数据量、速度、多样性、值
- PB 或以上、深度分析、集群化
- 大数据系统特性:高性能、高度可扩展、高度容错、支持异构环境、较短的分析延时、开放接口、较低成本、向下兼容
- 数据备份
- 冷备份
- 静态备份,数据库停止状态下对数据进行备份
- 优点:简单速度快、容易归档、容易恢复到某个时间点、低维护高度安全
- 缺点:备份中不能工作,不能安表和用户恢复、媒介传输比较慢
- 热备份
- 动态备份,在数据库运行中使用软件对数据进行备份
- 优点:可实现表空间备份时间短、可达到秒级恢复、恢复速度快
- 缺点:不能出错、维护困难、备份不成功不能用于时间点的恢复
- 完全备份、差量备份、增量备份
软件开发模型
下面是软件开发模型的思维导图。
- 快速原型模型
- 演化模型
- 螺旋模型
- 瀑布模型
- 增量模型
- V 模型
- 过程
- 需求分析
- 概要设计
- 详细设计
- 编码
- 单元测试
- 集成测试
- 系统测试
- 验收测试
- 特点:测试细分,需求细化,及早发现问题
- RAD 快速开发模型
- 由瀑布模型和构件化模型组合而成
- 过程
- 业务建模
- 数据建模
- 过程建模
- 应用生成
- 测试交付
- 敏捷开发方法
- 敏捷开发模型
- 自适应开发
- 水晶方法
- 特征驱动开发
- SCRUM
- 极限编程
- 基本原则
- 短平快的会议
- 小型版本发布
- 较少的文档
- 合作为重
- 客户直接参与
- 自动化测试
- 适应性计划调整
- 结对编程
- 测试驱动开发
- 持续集成
- 重构
- 四大价值观
- 沟通
- 简单
- 反馈
- 勇气
- 五大原则
- 快速反馈
- 简单性假设
- 逐步修改
- 提倡更改
- 优质工作
- 软件需求
- 分类:业务需求、用户需求、系统需求
- 功能需求、性能需求、约束设计
- 基础需求、期望需求、兴奋需求
- 软件测试
- 动态测试
- 黑盒测试
- 等价类划分
- 边界值分析
- 错误推测
- 因果图
- 白盒测试
- 基本路径测试
- 循环覆盖测试
- 逻辑覆盖测试
- 灰盒测试
- 静态测试
- 桌前检查
- 代码走查
- 代码审查
- 软件测试阶段
- 单元测试
- 集成测试
- 一次性组装
- 增量式组装
- 确认测试
- 内部确认测试
- Alpha 测试
- Beta 测试
- 验收测试
- 系统测试
- 环路复杂度计算 :边数-结点数+2
- 项目管理
- 范围管理
- 时间管理
- 成本管理
- 质量管理
- 人力资源管理
- 沟通管理
- 风险管理
- 采购管理
- 整体管理
- 瀑布模型 SDLC
- 开发过程
- 软件计划
- 需求分析
- 软件设计
- 程序编码
- 软件测试
- 运行维护
- 适合场景:需求明确;二次开发
- 缺点:需求不明确
- 结构化的开发
- 螺旋模型
- 包含:瀑布模型、原型、增量模型、演化模型的特征
- 引入了风险分析
- 包含
- 制定计划
- 风险分析
- 客户评估
- 实施过程
- 喷泉模型
- 迭代
- 无间隙
- 面向对象的模型
- 构建组装模型 CBSD
- 提高复用性
- 过程
- 需求分析和定义
- 软件架构设计
- 构件库的建立
- 构件标准
- CORBA
- EJB
- COM/DCOM/COM+
- 应用软件建立
- 测试发布
- 信息系统开发方法
- 结构化方法
- 用户至上
- 严格区分阶段
- 系统开发的整体性和全体性
- 自顶向下,逐步求解
- 原型方法
- 适用于需求不明确
- 包括抛弃式原型和演化式模型
- 面向对象方法
- 更好的复用性
- 全面合理统一的模型
- 分析设计实现界限不明确
- 面向对象方法
- 操作服务业务
- 基础设计层、应用结构层和业务组织层
- 服务发现、服务规约、服务实现
- 结构化设计
- 概要设计
- 自顶向下,逐步求精
- 信息屏蔽
- 模块独立,低耦合高内聚
- 详细设计
- 软件维护
- 可维护性
- 易分析性
- 易改变性
- 稳定性
- 易测试性
- 维护类型
- 改正性维护
- 适应性维护
- 完善性维护
- 预防性维护
- 软件过程改进 CMMI
- 阶段式
- 过程管理
- 项目管理
- 工程
- 支持
- 连续式(组织能力成熟度)
- 混乱
- 已管理级
- 已定义级
- 定量管理级
- 优化级
结语
以上就是关于数据库系统和软件开发模型常用知识点的总结,如果您感觉对您系统学习数据库和软件开发模型有帮助,欢迎点赞收藏。如果文中有不足或者错误的地方,还请各位指出,再次感谢您的阅读。
好了,感谢您的阅读,希望您喜欢,如对您有帮助,欢迎点赞收藏。如有不足之处,欢迎评论指正。下次见。
版权声明: 本文为 InfoQ 作者【小阿杰】的原创文章。
原文链接:【http://xie.infoq.cn/article/0472ff0994e4f2c128606428f】。文章转载请联系作者。
评论