目录
- UML在线绘图工具
- 信息系统分析与设计
- 第1章 系统思想
- 第2章 信息、管理与信息系统
- 第3章 信息系统建设概论🌟
- 第4章 系统规划🌟
- 第5章 系统分析概述
- 第6章 流程建模🌟
- 业务流程图
- DFD数据流图🌟
- 数据字典
- 第7章 用例建模(用例图)🌟
- 用例图
- 第8章 领域对象建模(类图)🌟
- 第9~11章 系统设计
- 第12章 系统实施
- 第13章 系统维护与管理
- 第14章 信息系统工程新进展
- 其他内容
- 英文缩写翻译大全(按字母升序排序)
- 数据库分拣范式
- 白盒测试和黑盒测试
- 包
- UML相关知识
UML在线绘图工具
以下在线工具(网站/软件)均免费
- ⚠️前置条件:
熟悉UML图的基本概念和元素(如类、接口、用例等),以及它们之间的关系(如继承、关联、依赖等) - 对于想学习数据库相关知识的fans
推荐搭配一本讲关系型数据库管理系统(RDBMS)具体实现的小书或者一本讲数据库技术的书籍~
如:《MySQL必知必会》、《SQL必知必会》、大黑书《数据库系统概念》、《高性能MySQL》、《Qracle 高效设计》等 - 当然下面提供的一些习题也可以拿来练手
- diagrams 所见即所得,直接绘制的
强烈推荐!
选择这里的UML
就可以尝试自己绘制UML的各种图形啦~
示例:
并行通信和串行通信示意图
- yuml 在线编辑,需要会点基础的数据库语法
- HIGHCHARTS 需要注册,个人用户免费
- staruml 需要下载,需要一定的时间上手
- 蚂蚁金服无需下载,比较硬核~(会数据库语法可以看看,页面高级,功能强大)
- ECharts 基于JavaScript的开源可视化图库
参考书籍
本文的的PDF附在这啦,供有需要的fans下载~
信息系统分析与设计
第1章 系统思想
系统
- 定义
- 系统是由若干要素(部分)组成的
- 系统有一定的结构
- 系统有一定的功能,特别是人造系统总有一定的目的性
- 分类
- 按系统的复杂程度分类
- 按系统的起源分类
- 按系统的抽象程度分类
- 按系统与环境的关系分类
- 特性
- 整体性
- 层次性
- 目的性
- 稳定性
- 突变性
- 自组织性
- 相似性
课后习题 1.6
系统工程方法的一般步骤是什么
①问题定义、②目标选择、③系统综合、④系统分析、⑤最优系统选择、⑥实施计划
第2章 信息、管理与信息系统
信息
定义:信息是经过加工后的数据
基本属性
- 事实性
- 扩散性
- 传输性
- 共享性
- 增值性
- 不完全性
- 等级性
- 滞后性
管理信息:管理活动中所使用的信息
可划分为战略信息、战术信息和业务信息三类
信息系统
- 定义:输入数据,通过加工处理,产生信息的系统
- 基本功能
- 数据的采集和输入
- 数据的传输
- 信息的存储
- 信息的加工
- 信息的维护
- 信息的使用
- 结构🌟
- 概念结构
- 逻辑结构
- 物理结构🌟
- 文件服务器系统
- C/S(Client/Server)系统
- B/S(Brower/Server)系统
- 分类
- 按技术发展分类
- 数据处理系统EDPS
- 管理信息系统MIS
- 决策支持系统DSS
- 主管支持系统ESS
- 按管理应用分类
- 企业资源计划ERP
- 客户关系管理CRM
- 供应链管理SCM
- 电子商务EC
- 内容管理系统CMS
第3章 信息系统建设概论🌟
信息系统的生命周期(注意定语)
- 系统规划——系统分析(又称逻辑设计)——系统设计(物理设计)——系统实施——系统运行和维护
基于生命周期的开发方法
- 瀑布开发方法
- 原型开发方法
- 迭代开发方法
- 增量迭代
- 进化迭代
- 螺旋迭代方法
- 敏捷开发过程
基于开发技术的开发方法
- 管理模型和信息处理模型
- 结构化开发方法
- 面向对象开发方法
- 面向服务开发方法
信息系统开发工具(CASE工具)
-
概念
- 一种软件
- 高级程序语言之后,软件技术进一步发展的产物
- 目的是在软件开发过程的不同方面给予人们不同程度的支持和帮助
-
分类
-
分析与设计工具 (建模工具 )
-
编程工具
-
测试工具
-
运行维护工具
-
项目管理工具
-
课后习题3.7
面向对象程序设计和结构化程序设计有什么联系和区别?
联系:
- 基础与扩展:结构化程序设计方法是其他系统开发方法 (包括面向对象方法 )的基础 面向对象开发在一定程度上基于结构化开发,并保留了结构化开发中的某些元素,如“函数”和“结构体”
区别:
- 设计思维:
- 结构化程序设计:强调自顶向下、逐步求精、单入口、单出口的设计原则,其指导思想是将系统视为由功能相互联系、相互作用而形成的
- 面向对象程序设计:出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界的方法和过程 它认为系统是由一些对象的相互联系、相互作用而形成的
- 封装性
- 结构化编程:封装难度较大,因为它需要开发者将客观世界模型分解为功能,每个功能按照顺序用以完成一定的数据处理 对于私有的方法,较难控制,敏感信息较难隐藏
- 面向对象编程:通过把客观事物封装成抽象的类,类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
- 复用性
- 结构化程序设计:以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难
- 面向对象程序设计:对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性
- 界面与性能
- 结构化程序设计:其优点在于容易理解和交流,对于大系统可以从全局逐步展开到局部,整体性较好 面向过程程序设计主要是为了大型工程计算或完成特定任务,对界面要求不高,但通常运行速度快
- 面向对象程序设计:稳定可靠,有利于维护和重用,并容易实现多层分布式结构 它主要是对各种事物能进行形象的描述并模拟在计算机上运行,界面相对容易设计,但执行速度和容量可能不如结构化程序设计
课后习题3.10
什么是CASE工具?选择一种CASE工具进行简明介绍
CASE工具,即Computer-Aided Software Engineering工具,是指用于支持软件开发生命周期各个阶段的工具集合 它的基本思想在于提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的工具 CASE工具可以显著提高软件开发的效率、质量和可维护性
CASE工具通常按照软件开发的不同阶段分为上层CASE和下层CASE产品:
- 上层或前端CASE工具
- 主要负责应用的计划、设计和分析
- 帮助用户定义需求,产生需求说明
- 可完成与应用开发相关的所有计划工作
- 下层或后端CASE工具
- 主要负责应用系统的编程、测试和维护工作
以下是对一种具体的CASE工具——PowerDesigner的简明介绍:
PowerDesigner工具介绍
一、概述
PowerDesigner是一款功能强大的数据库设计工具,它支持多种数据库 (如Oracle、SQL Server、DB2等 ),能够方便地进行数据库建模、正向和逆向工程等操作 PowerDesigner作为CASE工具的一种,为数据库开发提供了全面的支持
二、主要功能
- 数据库建模:PowerDesigner提供了直观的图形界面,使用户能够方便地创建、编辑和管理数据库模型 模型可以包括表、视图、索引、存储过程、触发器等数据库对象
- 正向工程:根据数据库模型,PowerDesigner可以自动生成数据库表结构、索引、触发器等对象的DDL (数据定义语言 )脚本,方便用户快速创建数据库
- 逆向工程:对于已有的数据库,PowerDesigner可以自动读取数据库结构,生成相应的数据库模型,方便用户对现有数据库进行分析和改造
- 数据同步:PowerDesigner支持模型与数据库之间的数据同步,确保模型与数据库结构的一致性
- 团队协作:PowerDesigner支持多用户同时编辑一个模型,并提供版本控制功能,方便团队协作和项目管理
三、特点
- 直观易用:PowerDesigner提供了直观的图形界面和丰富的操作提示,使用户能够快速上手
- 功能强大:PowerDesigner支持多种数据库和多种开发环境,能够满足不同用户的需求
- 灵活可定制:用户可以根据自己的需求定制PowerDesigner的界面和功能
- 高效稳定:PowerDesigner采用了先进的技术和算法,确保了其高效性和稳定性
第4章 系统规划🌟
系统规划
- 任务
- 制定信息系统的发展战略
- 制定信息系统的总体方案,安排项目开发计划
- 制定系统建设的资源分配计划
2.特点
- 系统规划是面向全局,面向长远的关键问题,具有较强的不确定性,结构化程度较低
- 系统规划是高层次的系统分析,高层管理人员是工作的主体
- 系统规划不宜过细
- 系统规划是企业规划的一部分,并随环境发展而变化
- 原则
- 支持企业的总目标
- 整体上着眼于高层管理,兼顾各管理层的要求
- 摆脱信息系统对组织机构的依从性
- 技术和方法(基本步骤)🌟
- 战略目标集转移法SST
信息系统的战略规划的过程——将组织战略集转换成于它相关联和一致的信息系统战略集 - 企业系统规划法BSP
- 定义管理目标
- 定义管理功能
- 定义数据类
- 实体法
- 功能法
- 定义信息结构
- 关键成功因素法KSF/CSF
- 确定组织目标
- 确定关键成功因素
- 确定关键成功因素的性能指标
- 确定信息需求
- 价值链分析法VCA
- 识别企业价值链
- 确定关键价值增加环节
- 确定关键价值减少环节
- 明确信息技术对关键价值环节的支持
课后习题 4.4
试述BPS法的四个基本步骤
- 定义管理目标
- 定义管理功能
- 定义数据类
- 定义信息结构
课后习题 4.8
系统规划的一般步骤是什么?
- 企业调查和分析
- 信息系统调查和分析
- 制定方向
- 评审及建议
课后习题 4.9
可行性的含义是什么?信息系统可行性分析包括哪些内容?
答:可行性是指在企业当前情况下,研制这个信息系统是否有必要,是否具备必要的条件.可行性的含意不公包括可能性,还包括必要性、合理性.
包含以下内容: (1 )技术可行性(2 )经济可行性(3 )社会可行性
第5章 系统分析概述
课后习题 5.2
为什么说系统分析阶段时最困难的阶段?
答:因为系统分析需要对根据系统的需求,综合公司的各个方面的能力来进行评估,考虑系统实施的各种风险因素,并需要为系统架构提供建设性的意见和方案,关系项目的成败.
第6章 流程建模🌟
业务流程图
课后习题 6.1
用什么业务流程图表示学生上课请假的流程图 (可与考勤流程图合并 )
答:
DFD数据流图🌟
数据流图的四个基本符号
- 外部实体
- 数据处理
- 数据流
- 数据存储
课后习题 6.3
用数据流程图描述到储蓄所存款的全过程
课后习题6.4
结合本校学籍管理系统的实际情况,画出“异动管理"、“奖惩管理"的数据流程图
数据字典
数据字典实际上是”关于数据流图DFD的字典“
数据流图与数据字典共同构成系统的功能模型
-
定义:描述数据流图DFD中的数据流、数据存储、处理过程和外部实体的详细内容
-
各类条目(六类):
-
数据元素
-
数据结构
-
数据流
-
数据存储
-
处理过程
-
外部实体
-
-
作用:
- 按各种要求列表
- 相互参照,便于系统修改
- 由描述内容检索名称
- 一致性检验和完整性检验
记下面这些就够了
- 在何地
数据类型:字符串(Text)
描述:学生工作或学习的地点(如果与工作单位或学习相关) - 家庭主要成员
数据类型:集合(Set)或列表(List)
子属性:
姓名(Name):字符串(Text)
关系(Relation):字符串(Text),如“父亲”、“母亲”等
年龄:(Age):整数(Integer)
职务(Occupation):字符串(Text)
工作单位(WorkUnit):字符串(Text)
描述:列出学生的主要家庭成员及其相关信息
常见的数据类型:
字符串(Text)
日期(Date)
整数(Integer)
枚举(Enumeration) 如 [‘男’, ‘女’]
布尔值(Boolean) 如 [True, False]
(本人简历)文本块Text Block
(家庭主要成员)集合(Set)或列表(List)
课后习题 6.5
某校“学生登记卡”格式如下,试用数据字典表示
数据字典
实体集:学生登记卡
属性:
- 政治面貌
数据类型:字符串 (Text )
描述:描述学生的政治立场或身份,如“群众”、“中共党员”等
- 出生日期
数据类型:日期 (Date )
描述:学生的出生日期
- 班号
数据类型:字符串 (Text )或整数 (Integer )
描述:学生所在的班级编号
- 姓名
数据类型:字符串 (Text )
描述:学生的全名
- 开始时间
数据类型:日期 (Date )
描述:学生的入学时间或其他开始日期
- 籍贯
数据类型:字符串 (Text )
描述:学生的祖籍或出生地
- 年龄
数据类型:整数 (Integer )
描述:学生的年龄
- 曾用名
数据类型:字符串 (Text )
描述:学生过去使用的名字 (如果有 )
- 学号
数据类型:字符串 (Text )或整数 (Integer )
描述:学生的唯一识别号
- 结束年月
数据类型:日期 (Date )
描述:学生的毕业时间或其他结束日期
- 职务
数据类型:字符串 (Text )
描述:学生在某个组织或单位中的职位或职责 (如果有 )
- 系
数据类型:字符串 (Text )
描述:学生所在的学院或系的名称
- 性别
数据类型:枚举 (Enumeration )如 [‘男’, ‘女’]
描述:学生的性别
- 是否华侨
数据类型:布尔值 (Boolean )如 [True, False]
描述:表示学生是否是华侨
- 入学日期
数据类型:日期 (Date )
描述:学生的入学日期
- 工作单位
数据类型:字符串 (Text )
描述:学生当前或曾经的工作单位名称 (如果有 )
- 在何地
数据类型:字符串 (Text )
描述:学生工作或学习的地点 (如果与工作单位或学习相关 )
- 民族
数据类型:字符串 (Text )
描述:学生的民族信息
- 本人简历
数据类型:字符串 (Text )或文本块 (Text Block )
子属性:
开始时间
结束年月
在何地
描述:学生的个人学习、工作经历和成就的简要描述
- 家庭主要成员
数据类型:集合 (Set )或列表 (List )
子属性:
姓名 (Name ):字符串 (Text )
关系 (Relation ):字符串 (Text ),如“父亲”、“母亲”等
年龄: (Age ):整数 (Integer )
职务 (Occupation ):字符串 (Text )
工作单位 (WorkUnit ):字符串 (Text )
描述:列出学生的主要家庭成员及其相关信息
第7章 用例建模(用例图)🌟
用例图
课后习题 7.6
在医院放射科科技接待员、护士和医生使用预约和病历记录系统.当病人第一时间看病时,接待员使用系统输入病人信息,并负责安排所有的预约.病人根据预约来放射科进行检查,护士使用系统来跟踪病人每次看病的结果并输入病人的诊断信息和诊疗情况.护士也访问这些信息以打印病人报表会就诊历史.医生用该系统来查看病人的病史,医生偶尔也输入病人的医疗信息,但通常由护士输入这些信息.
根据以上描述,绘制该系统的用例图.
第8章 领域对象建模(类图)🌟
基本知识
- 属性:包含描述该类的每个实例的具体信息,又称字段变量
- 属性名称以小写字母开头,后面跟着冒号和数据类型
- 底部放置方法,又称操作或者函数方法:允许我们指定类的任何行为
- 可见性属性或方法的可见性:用于设置该属性或方法的可访问性
- 可见性符号
- -表示私有(属性或方法私有):任何其他类或子类都无法访问它们
- +表示属性或方法是公共的
- # \# #表示属性或方法受到保护,只能由同一个类或其子类访问
- ~表示可见性为target或default,只要他在同一个包中任何其他类都可以访问(很少用到)
- 可见性符号
- 类之间的关系(对应四种图示)
- 继承关系(父类和子类) 空心三角形 虚线连接
- 关联(又称接口) 空心三角形 实线连接
- 聚合 空心菱形标记——弱拥有——一部分可以独立存在于整体之外
- 组合 实心菱形标记——强拥有——缺少任何其中一部分都不行
- 多重性(题目没有要求可不写):允许对关系设置数字约束
- 多重性为0~1一般省略不写
课后习题 8.3
泛化关系如何确定?类图中如何表示对象关联?
答:泛化关系式一般事物(超类或父类)和该事物的较为特殊的种类(子类)间的关系,类似继承关系.通过两个方面来检查(1)类的属性或行为不适合该类的全部对象(2)属性和行为相似的类.表示方法:子类指向父类的空心三角形箭头的实线.
第9~11章 系统设计
分别为:第9章 系统设计概述;第10章 系统总体设计;第11章 系统详细设计
系统设计
-
设计原则
- 抽象与复用
- 松耦合
- 单一指责原则
- 开放-封闭原则
- Liskov 替换原则
- 依赖倒置原则
- 接口隔离原则
-
设计模式
- 一个模式的四个基本要素
- 模式名pattern name
- 问题problem
- 解决方案solution
- 效果consequences
- 抽象层次主要有两类:
- GRASP(General responsiblility assignment software pattern, 通用职责分配模式)
- GoF 23种设计模式
- 基于职责分配的通用原则模式
- 信息专家模式information expert
- 创建者模式creator
- 高内聚模式high cohesion
- 内耦合模式low coupling
- 控制器模式 controller
- GoF 设计模式
- 创建型模式
- 结构型模式
- 行为型模式
- 一个模式的四个基本要素
-
设计方法
-
结构化设计方法
-
面向对象设计方法
-
面向服务设计方法
-
第12章 系统实施
系统测试
系统测试的分类
- 模块测试
- 模块界面
- 内部数据结构
- 独立路径
- 错误处理
- 边界条件
- 联合测试
- 由上到下
- 由下到上
- 验收测试
- 系统测试
测试用例设计
- 语句覆盖法
- 判断覆盖
- 条件覆盖
- 条件组合覆盖
- 路径覆盖
- 等价类划分
- 边界值测试
课后习题 12.4
“好程序”应具备哪些条件?
1 )能够工作2)调试代价低3 )易于维护4 )易于修改5)设计部复杂6 )效率高
课后习题 12.8
系统转换有哪些方式?这些方式各有什么优缺点?
程序转换有三种方式:
直接转换方式:直接转换指在某一时刻,老系统停止运行,新系统立即开始运行.这种切换方式简单,用户没有重复劳动,最省费用,但风险高,结果无比较性.
**并行方式:**是新老系统并行工作一段时间,经过这段时间考验,以后新系统代替旧系统.风险小,有安全感,可以将结果进行对照;重复劳动,费用高.
**分段切换方式:**低风险,比并行节省费用,可以积累经验,能循序渐进.但新旧系统的子系统间、功能间接口多,实施复杂,技术成本高.一般较大系统采用.
第13章 系统维护与管理
系统监理与审计
系统监理
系统监理的分类
- 外部监理
- 管理监理
- 操作监理
- 说明性文件监理
- 安全性监理
系统审计
系统审计的基本方法
- 调查表法
- 间接审计
- 直接审计
- 应用程序的审计审查
系统评价
系统评价范围
- 系统运行的一般情况
- 系统的使用效果
- 系统的性能
- 系统的经济效益
课后习题 13.2
系统维护包括哪些内容?系统维护分哪几种类型?
系统维护包括程序维护,数据维护,代码维护和硬件维护
系统维护包括四种类型:纠错性维护,适应性维护,完善性维护和预防性维护
课后习题 13.8
什么是系统的安全性?影响系统安全性的因素有哪些?
系统的安全性指的是保障计算机及其相关的和配套的设备、设施 (含网络 )的安全以及运行环境的安全,保障信息的安全,保障计算机功能的正常发挥,以维护计算机信息系统的安全运行.包括以下内容:保密性,可控制性,可审查性,抗攻击性.
影响系统安全性的因素有:
1 ) 自然和不可抗拒因素
2 ) 硬件和物理因素
3 ) 软件因素
4 ) 数据因素
5 ) 人为和管理因素
第14章 信息系统工程新进展
云计算类型
按交付模式分类
IaaS——基础设施即服务
这里的基础设施指IT基础设施,包括计算机、存储、网络及其他相关设施
IaaS具体包括四大类服务:
- 网络和通信系统提供的通信服务
- 服务器设备提供的计算服务
- 存储设备提供的存储服务
- 操作系统、通用中间件和数据库等系统软件服务
SaaS——软件即服务
以互联网为载体,以浏览器为交互方式,把服务器端的应用程序提供给远程用户来使用的应用模式
Paas——平台及服务
PaaS面向应用程序开发人员,把软件开发、测试、部署、运行环境通过互联网提供给用户,从而简化应用程序开发和部署工作
PaaS事SaaS发展的一种结果
按部署模式分类
- 私有云
- 社区云
- 公有云
- 混合云
其他内容
英文缩写翻译大全(按字母升序排序)
推荐使用OS自带的查找HotKey
Control + F/ Cmd + F
- ASR (Automatic Speech Recognition, 自动语音识别 )
- BOM(Bill of Material, 物料清单)
- BPI (Business Process Improvement, 业务流程改进 )
- BPM(Business Process Management, 业务流程管理)
- BPMS (Business Process Management System, 企业流程管理软件系统 )
- BPR(Business Process Reengineering, 企业过程重组)
- BRMS (Business Rule Management System, 业务规则管理系统 )
- BRP(Business Resource Plan, 企业资源计划)
- BSP法(Business System Planning法, 企业系统规划法)
- CAPMS(Computer Aided Production Management System, 计算机辅助生产管理系统)
- CASE工具(Computer-Aided Software Engineering Tool, 计算机辅助软件工程工具)
- CMS(Content Management System, 内存管理系统)
- CMS(Content Management System, 内容管理系统)
- CRM(Customer Relationship Management, 客户关系管理)
- CRP(Capacitity Requirement Planning, 生产能力需求计划)
- DCL(Data Control Language, 数据控制余元)
- DDL(Data Definition Language, 数据定义语言)
- DFD(logical Data Flow Diagram,数据流(程)图)
- DMAIC (Define Measure Analyze Improve Control 定义测量分析改进控制 )
- DML(Data Manipulation Language, 数据操纵语言)
- DSS (Decision Support System, 决策支持系统)
- DSS(Decision Support System, 决策支持系统)
- EAI (Enterprise Application Integration, 企业应用集成 )
- EC(Electronic Commerce, 电子商务)
- EDPS(Electronic Data Processing System, 数据处理系统)
- EIS(Executive Information System, 主管信息系统)
- ERP(Enterprise Resource Planning, 企业资源计划)
- ESB (Enterprise Service Bus, 企业服务总线 )
- ESIA (Elimitate Simplify Integrate Automate 消除简化整合自动化 )
- ESS(Executive Support System, 主管支持系统)
- GIS(Geographic Information System, 地理信息系统)
- GRASP (General Responsibility Assignment Software Pattern, 对象职责分配模式 )
- GUI (Graphical User Interface, 图形用户页面 )
- HIPO(Hierarchical Input Process Output, 层次化输入处理输出)
- ISSP(Information System Strategic Planning, 信息系统战略规划)
- IT治理(Information Technology治理)
- IaaS(Infrastructure as a Service, 基础设施即服务)
- JAD (Joint Application Development, 联合应用开发 )
- KPI(Key Performance Indicator, 关键性能指标)
- KSF(Key Successful Factor)—关键成功因素—CSF(Critical Successful Factor)
- MIS(Management Information System, 管理信息系统)
- MPS(Master Production Schedule, 主生产计划)
- MRP(Manufacturing Resource Planning, 制造资源计划)
- MVC架构模式(Model-View-Controller架构模式)
- MySQL(My Structured Query Language, 关系型数据库管理系统)
- OAS(Office Automation System, 办公自动化系统)
- OCR (Optional Character Recognition, 光学字符识别 )
- OMR (Optical Mark Reader, 光学标记阅读机 )
- ORM (Object Relational Mapping, 对象关系映射 )
- Oracle(甲骨文公司)
- PDL (Program Design Language, 程序设计语言 )
- PaaS(Platform as a Service, 平台即服务)
- RACI (Responsible-Accountable-Consulted-Informed, 责任分配矩阵)矩阵(Matrix)
- SA(System Analyst, 系统分析员)
- SCM(Supply Chain Management, 供应链管理)
- SLA (Service Level Agreement, 服务等级协议 )
- SOA (Service Oriented Architecure, 面向服务的架构 )
- SOA(Service-Oriented Architecture, 面向服务的架构)
- SQL(Structured Query Language, 结构化查询语言)
- SSM(Soft System Methodology, 软系统方法论)
- SST(Strategy Set Transformation, 战略目标集转移法)
- SaaS(Software as a Service, 软件即服务)
- UML(Unified Modeling Language, 统一建模语言)
- VCA(Value Chain Analysis, 价值链分析法)
- WSDL (Web Service Description Language, Web服务描述语言 )
- WSR系统方法论(Wuli-Shili-Renli, 物理-事理-人理系统方法论)
数据库分拣范式
范式(Normalization)
在数据库设计中,范式(Normalization)是一种指导数据库表结构设计的理论,旨在减少数据冗余、增强数据完整性,并简化数据库维护
通过分解数据库为更小的、更稳定的表,并定义表之间的关系,范式可以优化数据库性能
第一范式(1NF - First Normal Form)
定义:第一范式要求数据库表中的每一列都是不可分割的原子项
换句话说,表中的每一列只能包含单一的值,而不是一组值
关键点:
- 列不可再分
- 每列都是原子的,即只包含一个值
第二范式(2NF - Second Normal Form)
定义:第二范式建立在第一范式的基础上,要求非主键列完全依赖于整个主键,而不是主键的一部分
关键点:
- 符合1NF
- 非主键列必须完全依赖于整个主键,而不是主键的一部分
- 消除部分函数依赖
第三范式(3NF - Third Normal Form)
定义:第三范式建立在第二范式的基础上,要求非主键列之间不存在传递依赖 也就是说,一个非主键列不能依赖于另一个非主键列
关键点:
- 符合2NF
- 消除传递函数依赖
- 所有非主键列都直接依赖于主键,而不是通过其他非主键列间接依赖于主键
示例
假设我们有一个存储学生信息的表Students
,包含以下字段:
StudentID
(主键)Name
CourseID
(课程ID)CourseName
(课程名称)Score
(分数)
这个表违反了第二范式和第三范式,因为CourseName
依赖于CourseID
而不是StudentID
(主键),并且Score
依赖于CourseID
和StudentID
的组合 为了符合第三范式,我们可以将表分解为三个表:
Students
表:包含StudentID
和Name
Courses
表:包含CourseID
和CourseName
StudentScores
表:包含StudentID
、CourseID
和Score
,并通过外键与Students
和Courses
表关联
范式习题
题目一:第一范式(1NF)
题目描述:
给定一个学生信息表Students
,其中包含以下字段:StudentID
(学生ID)、Name
(姓名)、Info
(信息,包括年龄、性别、联系方式等) 该表是否满足第一范式?如不满足,请说明原因并给出改进方案
标准答案:
该表不满足第一范式,因为Info
字段包含了多个值(年龄、性别、联系方式等),这些值应当被分解为单独的字段
改进方案:
将Info
字段分解为Age
(年龄)、Gender
(性别)和Contact
(联系方式)等单独的字段,形成新的表结构如下:
StudentID | Name | Age | Gender | Contact |
---|---|---|---|---|
… | … | … | … | … |
题目二:第二范式(2NF)
题目描述:
给定一个订单信息表Orders
,其中包含以下字段:OrderID
(订单ID)、CustomerID
(客户ID)、ProductID
(产品ID)、ProductName
(产品名称)、Quantity
(数量)和Price
(价格) 该表的主键为OrderID
和ProductID
的组合 该表是否满足第二范式?如不满足,请说明原因并给出改进方案
标准答案:
该表不满足第二范式,因为ProductName
和Price
这两个非主键字段只依赖于ProductID
,而不完全依赖于主键OrderID
和ProductID
的组合
改进方案:
将ProductName
和Price
这两个字段移到一个新的表Products
中,该表以ProductID
为主键 然后,在Orders
表中只保留与订单相关的字段,并通过ProductID
与Products
表进行关联
题目三:第三范式(3NF)
题目描述:
给定一个员工信息表Employees
,其中包含以下字段:EmployeeID
(员工ID)、DepartmentID
(部门ID)、DepartmentName
(部门名称)、Salary
(工资)和ManagerID
(经理ID) 该表的主键为EmployeeID
该表是否满足第三范式?如不满足,请说明原因并给出改进方案
标准答案:
该表不满足第三范式,因为DepartmentName
这个非主键字段依赖于非主键字段DepartmentID
,而DepartmentID
又依赖于主键EmployeeID
,这构成了传递依赖
改进方案:
将DepartmentName
字段移到一个新的表Departments
中,该表以DepartmentID
为主键 然后,在Employees
表中只保留与员工相关的字段,并通过DepartmentID
与Departments
表进行关联 同时,将ManagerID
也作为一个外键,关联到Employees
表自身(表示经理也是员工),以避免数据冗余
白盒测试和黑盒测试
白箱测试 (也称为白盒测试 )和黑箱测试 (也称为黑盒测试 )是软件测试中两种主要的测试方法,它们各有特点和应用场景 以下是对这两种测试方法的详细解释:
一、白箱测试 (白盒测试 )
- 定义:白箱测试是一种基于软件系统内部结构和实现细节的测试方法 测试人员需要了解程序的内部逻辑结构、代码实现以及程序运行的状态,从而设计并执行测试用例
- 测试目的:白箱测试旨在验证软件系统的内部逻辑是否正确、程序代码是否符合规范和安全标准,并发现潜在的错误和缺陷
- 测试步骤:
- 代码分析:对软件系统的源代码进行分析,了解程序的内部结构和实现细节,确定代码中可能存在的问题或错误
- 设立检查点:在程序的不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致
- 逻辑覆盖:确保一个模块中的所有独立路径至少被测试一次,所有逻辑值 (如true和false )均需被测试
二、黑箱测试 (黑盒测试 )
- 定义:黑箱测试是一种不关注程序内部结构和实现细节的测试方法 在测试中,测试人员将程序看作一个不能打开的黑盒子,只根据程序的输入和输出来判断程序的功能是否正确
- 测试目的:黑箱测试主要检测软件的每一个功能是否能够正常使用,以及程序是否能适当地接收输入数据并产生正确的输出信息
- 测试方法:
- 等价类划分法:将程序所有可能的输入数据划分为若干个等价类,从每个部分中选取具有代表性的数据作为测试用例
- 边界值分析法:对程序输入或输出的边界值进行测试,因为考虑了边界条件的测试用例通常具有更高的测试回报率
- 因果图法:直观地表明输入条件和输出动作之间的因果关系,帮助测试人员设计测试用例
- 错误推测法:基于以往的经验和直觉,推测当前被测程序中可能存在的缺陷和错误,有针对性地设计测试用例
三、总结
白箱测试注重程序的内部结构和实现细节,而黑箱测试则更关注程序的功能和输入输出
在实际的软件测试过程中,通常会结合使用这两种测试方法,以确保软件的质量和稳定性
包
特别是在Oracle数据库中,“包”是一种主要用于组织和管理相关的数据库对象的机制
⚠️Oracle数据库是一种关系型数据库管理系统(RDBMS),类似的还有MySQL、SQL Server、PostgreSQL等
一、包的定义
包是一种将相关的数据库对象 (如存储过程、函数、变量等)组合在一起的模式对象
提供了一种组织和管理对象的方式,将相关的对象封装在一起,以提高代码的可维护性和可重用性
二、包的组成部分
包规范定义了公共对象,而包体则实现了这些对象的具体逻辑和细节
-
包规范 (Package Specification):这部分定义了包中的所有公共对象,包括过程、函数、类型和变量
它类似于一个接口,描述了包的使用方式和可见性 在包规范中声明的所有内容都是公有的,对应用程序是可见的
-
包体 (Package Body):包体部分完全定义游标和子程序,并对包规范中的内容加以实现 它包含了私有的子程序和变量,这些子程序和变量只能在包内使用,对外部不可见
包体中的内容有私有的,实现了包规范中定义的细节内容,并且对应用程序是不可见的
三、包的作用
-
组织和管理:通过将相关的数据库对象封装在一个包中,可以方便地管理和维护这些对象
这有助于减少命名冲突,保护包内部的数据和逻辑,提高代码的可读性和可维护性
-
共享数据:包可以定义公共的变量和常量,用于在不同的对象中共享数据 这样可以避免在不同对象之间传递数据时出现错误
-
封装性:包使用私有的子程序和变量,这些子程序和变量只能在包内使用,对外部不可见
这有助于保护包内部的数据和逻辑,避免在包外部被意外修改或访问
四、包的使用
在Oracle数据库中,可以使用CREATE PACKAGE语句来定义一个包
一旦包被定义并编译,就可以像使用其他数据库对象一样使用它
应用程序可以调用包中的过程、函数和访问公共变量等
UML相关知识
一、UML的六种关系
-
泛化——空心三角+实线——指向父类
-
实现——空心三角+虚线——指向接口
-
关联——普通实线
-
聚合——空心菱形+实线
-
组合——实心菱形+实线
-
依赖——普通虚线