软件设计师
2023-08-23 15:49:36 0 举报
AI智能生成
软件设计师思维导图
作者其他创作
大纲/内容
8.程序设计语言与语言处理程序基础(编译原理)
1.编译与解释
编译过程
源程序
词法分析
语法分析
语义分析
中间代码生成
代码优化
目标代码生成
目标程序
2.文法
定义
一个形式文法是一个有序四元组G=(V,T,S,P),其中:
1)V:非终结符。不是语言组成部分,不是最终结果,可理解为占位符
2)T:终结符。是语言的组成部分,是最终结果。VT=D起始符。是语言的开始符号。
3)S:起始符。是语言的开始符号
4)P:产生式。用终结符替代非终结符的规则。形如a一B
1)V:非终结符。不是语言组成部分,不是最终结果,可理解为占位符
2)T:终结符。是语言的组成部分,是最终结果。VT=D起始符。是语言的开始符号。
3)S:起始符。是语言的开始符号
4)P:产生式。用终结符替代非终结符的规则。形如a一B
分类
语法推导树
3.正规式⭐
例题
4.有限自动机⭐
例题
5.表达式⭐
前缀表达式(波兰式)
中缀表达式
后缀表达式(逆波兰式)
6.传值与传址⭐
传值调用
形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变
引用(传址)调用
形参取的是实参的地址,即详单与实参存储单元的地址引用因此其值发生改变同时就改变了实参的值
7.多种程序语言特点
Fortran语言(科学计算,执行效率高)
Pascal语言(为教学而开发的,表达能力强,Delphi)
C语言(指针操作能力强,高效 )
Lisp语言(函数式程序语言,符号处理,人工智能 )
C++语言(面向对象,高效)
Java语言(面向对象,中间代码,跨平台)
C#语言(面向对象,中间代码,.Net)
Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统
9.法律法规
知识产权
知识产权人确定
作品
职务作品
利用单位的物质条件进行创作,并由单位承担责任的
除署名权外其他著作权归单位
有合同约定,其著作权属于单位
除署名权外其他著作权归单位
其他
作者拥有著作权,单位有权在业务范围内优先使用
软件
职务作品
属于本职工作中明确规定的开发目标
单位享有著作权
属于本职工作活动的结果
单位享有著作权
使用了单位资金、专用设备、未公开的信息等物质、技术条件,并由单位组织或承担责任的软件
单位享有著作权
专利权
职务作品
本职工作中做出的发明创造
单位享有著作权
履行本单位交付的本职工作之外的任务所做出的发明创造
单位享有著作权
离职、退休或调动工作后1年内,与原单位工作相关
单位享有著作权
作品软件
委托创作
有合同约定,著作权归属委托方
委托方
合同中未规定著作权归属
创作方
合作开发
只进行组织、提供咨询意见、物质条件或者进行其他辅助工作
不享有著作权
共同创作的
共同享有,按人头比例。成果可分割的,可分开申请
商标
谁先申请谁拥有(除知名商标的非法抢注)
同时申请,则根据谁先使用(需提供证据)
无法提供证据,协商归属,无效时使用抽签(但不可不确定)
同时申请,则根据谁先使用(需提供证据)
无法提供证据,协商归属,无效时使用抽签(但不可不确定)
专利
谁先申请谁拥有
同时申请协商归属,但不能够同时驳回双发的专利申请
同时申请协商归属,但不能够同时驳回双发的专利申请
保护期限
公民作品
署名权、修改权、保护作品完整权
无限制
发表权、使用权、获得报酬权
作者终生及其死后的50年(第50年的12月31日)
单位作品
发表权、使用权、获得报酬权
50年(首次发表后的第50年的12月31日),若其间未发表不保护
公民软件作品
署名权、修改权
无限制
发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权
作者终生及其死后的50年(第50年的12月31日),合作开发,以最后死亡作者为准
单位软件作品
发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权
50年(首次发表后的第50年的12月31日),若其间未发表不保护
注册商标
有效期10年(若注册人死亡或倒闭1年后,未转移则可注销,期满6个月内必须续注)
发明专利
保护期为20年(从申请日开始)
实用新型和外观设计专利权
保护期为10年(从申请日开始)
商业秘密
不确定,公开后公众可用
侵权判定
中国公民、法人或其他组织的作品,不论是否发表,都享有著作权。
开发软件所用的思想、处理过程、操作方法或者数学概念不受保护
著作权法不适用于下列情形
法律法规,国家机关的决议、决定、命令和其他具有立法、行政、司法性质的文件。及其官方正式译文;
时事新闻
历法、通用数表、通用表格和公式
不侵权
侵权
标准化
标准的分类
标准的代号
10.多媒体
音频
声音的带宽
人耳:20Hz-20kHz(低次声波,高超声波)
说话:300-3400Hz
乐器:20Hz-20kHz
采样
采样的频率
采样的精度
采样频率应为最高频率的2倍
图像
亮度
色调(红、绿)
饱和度(色彩艳丽程度)
彩色空间
RGB
YUV(电视,兼容)
CMY(CMYK)
HSV(HSB)
媒体种类
感觉媒体
指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉和味觉等
表示媒体
指信息的表示形式。如:文字、图形、图像、动画、音频和视频等
显示媒体(表现媒体)
表现和获取信息的物理设备。如:输入显示媒体键盘鼠标和麦克风等;输出显示媒体显示器、打印机和音箱等
存储媒体
存储数据的物理设备,如磁盘、光盘和内存等
传输媒体
传输数据的物理载体,如电缆、光缆和交换设备等
多媒体计算问题
图像容量计算
音频容量计算
容量 = 采样频率(Hz) * 量化/采样位数(位) * 声道数 / 8
视频容量计算
容量 = 每帧图像容量(Byte) x 每秒顿数 x 时间 + 音频容量 x 时间
常见多媒体标准
JPEG
有损
RGB转YUV
离散余弦
RGB转YUV
离散余弦
JPEG-2000
有损&无损压缩比更高小波变换医学图像应用
MPEG-1
离散余弦VCD
MP3
MP3
MPEG-2
离散余弦
Huffman
DVD
有线/卫星电视AAC
Huffman
DVD
有线/卫星电视AAC
MPEG-4
网络应用/可视电话无线通信增强交互性数码权限管理多媒体传输集成框架
MPEG-7
多媒体内容描述接口具备描述功能不是编码标准
MPEG-21
融合不同协议制定新标准标准集成
数据压缩
基础
空间压缩(几何冗余)
时间冗余
视觉冗余
信息熵冗余
结构冗余
知识冗余
压缩
无损压缩
也称冗余压缩法或熵编码法
有损压缩
熵压缩法
11.软件工程
软件开发模型
瀑布模型:软件生命周期中各个活动规定为依线性顺序连接的若干阶段的模型
适用于需求明确的项目/二开
原型模型、演化模型、增量模型
原型模型
需求分析阶段做一个初期的简单页面,适用于需求不明确的项目
增量模型
融合了瀑布模型的基本成分和原型实现的迭代特征
演化模型
原型模型
适用于开发初期很难得到一个完整的需求规格说明的情况
螺旋模型
对于复杂大型软件,开发一个原型往往达不到要求,螺旋模型加入了风险分析,弥补瀑布模型和演化模型的不足
V模型
喷泉模型
以用户需求为驱动力,对象作为驱动的模型,适合面向对象开发
迭代、无间隙
构建组装模型(DBSD)
提高复用性,缩短时间节省成本
统一过程(UP/RUP)
起始阶段
生命周期目标
精化阶段
生命周期架构
构建阶段
初始运作功能
移交阶段
产品发布
⭐敏捷开发
方法
自适应开发
水晶方法
特征驱动开发
SCRUM
极限编程
基本原则
短平快的会议
小型版本发布
较少的文档
合作为重
客户直接参与
自动化测试
适应性计划调整
结对编程
测试驱动开发
持续集成
重构
小型版本发布
较少的文档
合作为重
客户直接参与
自动化测试
适应性计划调整
结对编程
测试驱动开发
持续集成
重构
价值观
沟通
简单
反馈
勇气
简单
反馈
勇气
5大原则
快速反馈
简单性假设
逐步修改
提倡更改
优质工作
简单性假设
逐步修改
提倡更改
优质工作
12个最佳实践
计划游戏
小型发布
隐喻
简单设计测试先行
重构
结对编程
集体代码所有制
持续集成
每周工作40小时
现场客户
编码标准
小型发布
隐喻
简单设计测试先行
重构
结对编程
集体代码所有制
持续集成
每周工作40小时
现场客户
编码标准
信息系统开发方法
结构化法
用户至上
严格区分工作阶段,每阶段有任务与成果
强调系统开发过程的整体性和全局性
系统开发过程工程化,文档资料标准化
自顶向下,逐步分解(求精)
严格区分工作阶段,每阶段有任务与成果
强调系统开发过程的整体性和全局性
系统开发过程工程化,文档资料标准化
自顶向下,逐步分解(求精)
原型法
适用于需求不明确的开发包括抛弃式原型和演化式原型
面向对象方法
更好的复用性一个全面、合理、统一的模型关键在于建立分析、设计、实现三个阶段,界限不明确
面向服务方法
SO方法有三个主要的抽象级别:操作、服务、业务流程
SOAD分为三个层次:基础设计层(底层服务构件)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排)
服务建模:分为服务发现、服务规约和服务实现三个阶段
SOAD分为三个层次:基础设计层(底层服务构件)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排)
服务建模:分为服务发现、服务规约和服务实现三个阶段
需求工程
需求开发
需求分类
1
业务需求
用户需求
系统需求
2
功能需求
性能需求
设计约束
OFD
基本需求
期望需求
兴奋需求
获取方法
收集资料
联合需求计划
用户访谈
书面调查
情节串联板
现场观摩
参加业务实践
阅读历史文档
抽样调查
结构化设计
基本原则
概要设计
详细设计
内聚与耦合
内聚
功能内聚
完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚
处理元素相关,而且必须顺序执行
通信内聚
所有处理元素集中在一个数据结构的区域上
过程内聚
处理元素相关,而且必须按特定的次序执行
瞬时内聚
所包含的任务必须在同一时间间隔内执行
逻辑内聚
完成逻辑上相关的一组任务
偶然内聚(巧合内聚)
完成一组没有关系或松散关系的任务
耦合
非直接耦合
两个模块之间没有直接关系,他们之间的联系完全是通过主模块的控制和调用来实现的
数据耦合
一组模块借助参数表来传递简单数据
标记耦合
一组模块通过参数表传递记录信息(数据结构)
控制耦合
模块之间传递的信息中包含用于控制模块内部逻辑的信息
外部耦合
一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息
公共耦合
多个模块都访问同一个公共数据环境
内容耦合
一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口
软件测试
原则
尽早不断地进行测试
程序员避免测试自己设计的程序
既要选择有效、合理的数据,也要选择无效、不合理的数据
修改后应该进行回归测试
尚未发现的错误数量与该程序已发现的错误成正比
分类
动态测试
黑盒测试法
白盒测试法
灰盒测试法
静态测试
桌面检查
代码走查
代码审查
测试用例设计
黑盒测试
等价类划分
边界值分析
错误推测
因果图
⭐白盒测试
基本路径测试
循环覆盖测试
逻辑覆盖测试
语句覆盖
程序中所有语句都执行一遍,若逻辑覆盖
判定覆盖
所有判定的真假分支执行一遍
条件覆盖
每个条件的真假分支执行一遍
条件判定覆盖
判定覆盖且条件覆盖
修正的条件判断覆盖
条件组合覆盖
各种可能组合
点覆盖
边覆盖
路径覆盖
覆盖所有可能路径
测试阶段
单元测试
集成测试
确认测试
系统测试
McCabe复杂度
计算有向图环路复杂度公式为:V(G) = m - n + 2。m是G有向弧数,n是G中节点数。
系统运行与维护
软件维护是生命周期的一个完整部分。可以将软件维护定义为需要提供软件支持的全部活动,这些活动包括在交付前完成的活动,以及交付后完成的活动。交付前完成的活动包括交付后运行的计划和维护计划等,交付后的活动包括软件修改、培训、帮助资料等
可维护性
易分析性
易改变性
稳定性
易测试性
维护类型
改正性维护(20%)
改bug
适应性维护(20%)
兼容操作系统、适应数据环境(软硬件适应性维护)
完善性维护(50%)
系统运行过程中扩充功能,改善性能
预防性维护(5%)
现在不维护以后会出问题,重构、文档健全
软件过程改进
CMMI
阶段式(组织能力成熟度)
一级
混乱
已管理级
需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证
已定义级
需求开发、技术解决方案、产品集成、验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境
定量管理级
组织级过程性能、定量项目管理
优化级
组织级改革与实施、因果分析和解决方案
连续式(软件过程能力)
过程管理
组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施
项目管理
项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理
工程
需求管理、需求开发、技术解决方案、产品集成、验证确认
支持
配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案
项目管理
关键路径
开始节点到结束节点最长路径,对应项目的最短周期
风险曝光度
风险出现的概率 * 风险可能造成的损失
12.面向对象程序设计
需求开发
需求分析
OOA
对象
类(实体类、边界类、控制类)
抽象
封装
继承与泛化
多态
接口
消息
组件
模式和复用
UML
构造块
事物
结构事物
行为事物
分组事物
注释事物
关系
依赖
依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。
在图形上,把一个依赖画成一条可能有方向的虚线
在图形上,把一个依赖画成一条可能有方向的虚线
箭头指向是被依赖的一段
关联
关联是一种结构关系,它描述了一组链,链是对象之间的连接。
在关联上可以标注重复度(Multiplicity,又多重度)和角色(Role)
在关联上可以标注重复度(Multiplicity,又多重度)和角色(Role)
聚合
是一种特殊类型的关联,它描述了整体和部分之间的关系。
部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在。
部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在。
举例:鸟——>(空心菱形)鸟群
组合
是一种特殊类型的关联,它描述了整体和部分之间的关系。
部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在。
部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在。
举例:鸟翅膀——>(实心菱形)鸟
泛化
泛化是一种特殊/一般关系,特殊元素(子元素)的对象可以替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。
在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素。
在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素。
举例:猫——>(空心箭头)动物
实现
实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:
一种是在接口和实现他们的类或构件之间;
另一种是在用例和实现他们的协作之间;
在图形上,把一个实现关系画成一条带有空心箭头的虚线。
一种是在接口和实现他们的类或构件之间;
另一种是在用例和实现他们的协作之间;
在图形上,把一个实现关系画成一条带有空心箭头的虚线。
举例:类------->(空心箭头)接口
图
结构图(静态图)
类图(Class Diagram)
含义
展现了一组对象、接口、协作和他们之间的关系。
构成
类
类名
属性
访问修饰符
+:public
-:private
#:protected
~:package
属性名
类型
方法
接口
协作
依赖、泛化和关联关系
对象图
包图
组合结构图
构件图
部署图
软件的构件应该部署在哪个节点上
制品图
行为图(动态图)
用例图(用例)
含义
展示了一组用例、参与者(Actor)以及他们之间的关系。
构成
用例。用椭圆表示
参与者。火柴人
用例之间的扩展(<<extend>>)关系和包含(<<include>>)关系,参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。
关系
包含关系:用例和用例之间的关系,一个用例包含另一个用例
例如
扩展关系:用例和用例之间的关系,一个用例执行的时候可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例。
例如
泛化关系:参与者与参与者,用例与用例之间的关系。
例如
顺序图/序列图
通信图/协作图
定时图
状态图
含义
展示状态机的图
所谓状态机,它是一种行为,用于描述一个对象在其生命周期中的各种状态及状态的转换。
构成
状态
表示对象的生命周期中的一种条件/情况,有初态和终态之分
转换
表示两种状态间的一种关系
事件
表示在某一时间与空间下所发生的有意义的事情
动作
表示状态机中的非原子操作,是UML能够表达的最小计算单元
活动
表示状态机中的非原子执行,一般由一系列动作组成
活动图
交互概览图
规则
公共机制
规格说明
修饰
公共分类
扩展机制
设计原则
单一职责原则
设计目的单一的类
开放-封闭原则
对扩展开放,对修改关闭
里氏替换原则
子类可以替换父类
依赖倒置原则
要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
接口隔离原则
使用多个专门的接口比使用单一的总接口好
组合重用原则
要尽量使用组合,而不是继承关系达到重用目的
迪米特原则(最少知识法则)
一个对象对其他对象有尽可能少的了解
面向对象设计
设计模式?
概念
架构模式
软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策
设计模式
主要关注软件系统的设计,与具体的实现语言无关
惯用法
是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如引用-计数就是C++语言中的一种惯用法
分类
创建型模式
工厂方法(factory method)模式
抽象工厂(abstract factory)模式
原型(prototype)模式
单例(singleton)模式
构建器(builder)模式
结构型模式
适配器(adapter)模式
桥接(bridge)模式
组合(composite)模式
装饰(decorator)模式
外观(facade)模式
享元(flyweight)模式
代理(proxy)模式
行为型模式
职责链(chain of responsibility)模式
命令(command)模式
解释器(interpreter)模式
迭代器iterator)模式
中介者(mediator)模式
备忘录(memento)模式
观察者(observer)模式
状态(state)模式
策略(strategy)模式
模板方法(template method)模式
访问者(visitor)模式
操作系统基本原理
3.01操作系统概述
3.02进程状态转换
三态模型
五态模型
3.03前驱图
3.04进程的同步与互斥
互斥
同步
3.05PV操作
临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量
3.07PV操作与前驱图
3.09死锁问题
死锁:
必要条件
互斥
保持和等待
不剥夺
环路等待
死锁的预防--打破四大条件
死锁的避免
有序资源分配法
银行家算法
3.10银行家算法
分配资源的原则
当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
进程可以分期请求资源,但请求的总数不能超过最大需求量
当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源
例子
1. 题目
2. 解题
1. 得出每个进程每个资源差几个
2. 优先分配差的少的并且系统剩余资源数满足的
3.11分区存储组织
题目
某计算机系统的内存大小为128k,采用可变分区分配方式进行内存分配,当前系统的内存分块情况如下图所示,现有作业4申请内存9k,几种不同的存储分配算法在分配中,会产生什么样的结果呢?
存储分配算法
首次适应法
最佳适应法
最差适应法
循环首次适应法
段页式存储
1. 页式存储
高级语言使用逻辑地址;运行状态,内存中使用物理地址
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销;可能产生抖动现象
⭐逻辑地址与物理地址之间的转化
物理地址=页帧号/块号+页内地址
逻辑地址=页号+页内地址
2. 段氏存储
一个函数一段,段大小不要求一致
优点:多道程序共享内存,各程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
3. 段页式存储
先分段后分页
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速率大大下降
4. 快表
快表是一块小容量的相联存储器(Associative Memory),由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号。
3.13页面置换算法
最优(Optmal,OPT)算法
随机(RAND)算法
先进先出(FIFO)算法
有可能产生抖动。例如,432143543215,用3个页面,比4个缺页要少
最近最少使用(LRU)算法
不会抖动
例题1
子主题
例题2
b、c 约定:指令不论占了几个页都会一次性调入
3.15索引文件结构
结构
默认13个结点
例题
c、d
3.16树型目录结构
文件属性
R只读文件属性
A存档属性
S系统文件
H隐藏文件
文件名的组成
驱动器号
路径
主文件名
扩展名
绝对路径:是从盘符开始的路径
相对路径:是从当前路径开始的路径
若当前为:D1,要求F2路径,则
绝对路径:/D1/W2/F2
相对路径:w2/F2
3.17文件管理
空闲存储空间管理
空闲区表法(空闲文件目录)
一个表记录哪些区域空闲
空闲链表法
空闲区域链表连接起来
位视图法
表示
例题 d、b (4195+1)/32=132......3向上取整
成组链接法
设备管理
3.18数据传输控制方式
程序控制方式(程序查询方式)需要CPU介入
程序中断方式
DMA方式
通道
输入输出处理机
3.19虚设备与SPOOLING技术
3.20微内核操作系统
数据库系统
数据库三级模式-两级映射
数据库设计过程说明⭐
阶段产出物重点
ER模型
表示
方形:实体;椭圆:属性;菱形:联系
集成的方法
多个局部E-R图一次集成
逐步集成,用累加的方式一次集成两个局部E-R
集成产生的冲突及解决办法
属性冲突:包括属性域冲突和属性取值冲突
命名冲突:包括同名异义和异名同义
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同
一个实体型转换为一个关系模式
1:1联系
1:n联系
m:n联系
三个以上实体间一个多元联系
关系代数
并
交
差
笛卡尔积
投影(Π)
选择需要的列
选择()
选择符合条件的行
联接
两个表相同字段等值
函数依赖
含义
设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[x]=v[x],就有u[y]=v[y],则称X函数决定Y,或称Y函数依赖于X,记为X→Y
图示
规范化理论
价值与用途
非规范化关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
键
超键
唯一标识元组,但可能存在冗余属性
候选键
唯一标识元组,消除多余属性
主键
候选键任选一个
外键
其他关系的主键
求候选键
将关系模式的函数依赖关系用“有向图”的方式表示
找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点) 并入入度为0的属性集中,直至该集合能遍万所有结点,集合为候选键
范式
1NF
属性值都是不可分的原子值
2NF
消除非主属性对候选键的部份依赖
把CNO、CREDIT提出来做一个新的关系
3NF
消除非主属性对候选键的传递依赖
BCNF
消除主属性对候选键的传递依赖
函数依赖关系左侧必须是候选键
模式分解
保持函数依赖分解
设数据库模式p={R1,R2,...,Rk)是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{F1,F2,··,F}与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD
无损分解
什么是有损,什么又是无损?
有损:不能还原。
无损:可以还原
有损:不能还原。
无损:可以还原
无损联接分解
无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式
并发控制
事务
原子性
一致性
隔离性
持续性
并发产生的问题
丢失更新
不可重复读
“脏”数据的读出
解决方案
S封锁
X封锁
封锁协议
一级封锁协议
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。可防止丢失修改
二级封锁协议
一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读“脏”数据
三级封锁协议
一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读
两段锁协议
可串行化的。可能发生死锁
死锁问题
预防法
死锁的解除法
数据库完整性约束
实体完整性约束
主键
参照完整性约束
外键
用户自定义完整性约束
自定义
触发器
脚本约束数据
数据库安全
措施
用户标识和鉴定
最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式
存取控制
对用户进行授权,包括操作类型(如增删改查等动作)和数据对象(主要是数据范围)的权限
密码存储和传输
对远程终端信息用密码传输
视图的保护
对视图进行授权
审计
使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来
数据备份
冷备份/静态备份
热备份/动态备份
数据仓库与数据挖掘?
反规范化技术?
大数据基本概念
计算机网络
七层模型
例题
网络技术标准与协议
TCP/IP协议:Internet,可扩展,可靠,应用最广,牺牲速度和效率
IPX/SPX协议:NOVELL,路由,大型企业网
NETBEUI协议:IBM,非路由,快速
TCP协议
DHCP协议
DNS协议
例题
分类
拓扑结构
按分布范围分
局域网(LAN)
城域网(MAN)
广域网(WAN)
因特网
按拓扑结构分
总线型
星型
环型
网络规划与设计
原则
网络规划原则
适用性原则
开放性原则
先进性原则
网络设计任务
确定网络总体目标
确定总体设计原则
通信子网设计
资源子网设计
设备选型
网络操作系统与服务器资源设备
网络安全设计
网络设计原则
可用性:指网络或网络设备可用于执行预期任务时间所占总量的百分比
可靠性:网络设备或计算机持续执行预定功能的可能性
可恢复性:指网络从故障中恢复的难易程度和时间
适应性:指在用户改变应用要求时网络的应变能力
可伸缩性:网络技术或设备随着用户需求的增长而扩充的能力
网络实施原则
可靠性
安全性
高效性
可伸缩性
网络实施步骤
工程实施计划
网络设备到货验收
设备安装
系统测试
系统试运行
用户培训
系统转换
网络设计
逻辑网络设计
利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,最后得到一份逻辑网络设计文档,输出内容
逻辑网络设计图
IP地址方案
安全方案
具体的硬软件、广域网连接设备和基本服务
招聘和培训网络员工的具体说明
对应软件、服务、员工的培训的费用初步估计
物理网络设计
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等确定,确保网络的物理连接符合逻辑连接要求。输出内容
物理网络结构图和布线方案
设备和部件的详细列表清单
软硬件和安装费用的估算
安装日程表,详细说明服务的时间及期限
安装后的测试计划
用户的培训计划
分层设计
接入层:向本地网段提供用户接入
汇聚层:网络访问策略控制、数据包处理、过滤、寻址
核心层:数据交换
IP地址
子网划分
1. 子网掩码
2. 将一个网络划分成多个子网(取部分主机号当子网号)
例题,B类地址默认前两位是网络位
3. 将多个网络合并成一个大的网络(取部分网络号当主机号)
无分类编址
特殊含义IP地址
无线网
优势
移动性
灵活性
成本低
容易扩充
分类
无线局域网(WLAN,802.11,Wi-Fi)
无线城域网(WMAN,802.16,WiMax)
无线广域网(WWAN,3G/4G)
无线个人网(WPAN,802.15,Bluetooth;zigbee)
网络接入技术
有线接入
共用交换电话网络(PSTN)、传真、POS机
数字数据网(DDN)
综合业务数字网(ISDN)
非对称数字用户线路(ADSL)
同轴光线技术(HFC)
无线接入
IEEE 802.11(WiFi)
IEEE 802.15(蓝牙Bluetooth)
红外(IrDA)
WAPI
3G/4G
WCDMA
CDMA2000
TD-SCDMA
LTE_Advanced
WirelessMAN-Advanced(802.16m)(WiMAX)
IPv6
IPv6是设计用于替代现行版本IP协议 (IPV4)的下一代IP协议
特性
(1)IPv6地址长度为128位,地址空间增大了296倍
(2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPv4中可变长度的选项字段。IPv6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;
(3)IPv6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量
(4)提高安全性。身份认证和隐私权是IPv6的关键特性
(5)支持更多的服务类型;
(6)允许协议继续演变,增加新的功能,使之适应未来技术的发展:
分类
单播地址(Unicast): 用于单个接口的标识符
任播地址(Anycast): 泛播地址。一组接口的标识符,IPv4 广播地址
组播地址(Multicast): IPv6中的组播在功能上与IPv4中的组播类似。
6.系统安全分析与设计
信息系统安全属性
保密性:最小授权原则、访暴露、信息加密、物理保密
完整性:安全协议、校验码、密码校验、数字签名、公证
可用性:综合保障(IP过滤、业务流控制、路由选择控制、审计跟踪)
不可抵赖性:数字签名
加密
对称加密技术
缺点
加密强度不高
密钥分发困难
常用算法
DES:替换+移位、56位客钥、64位数据块、速度快、密钥易产生
3DES(三重DES):两个56位的密钥K1、K2。加密 :K1加密->K2解密->K1加密解密 :K1解密->K2加密->K1解密
AES:高级加密标准Rindael加密法,是美国联邦政府采用的一种区块加密标准这个标准用来替代原先的DES。对其要求是”至少与3DES一样安全”
RC-5:RSA数据安全公司的很多产品都使用了RC-5。
IDEA算法:128位密、64位数据块、比DES的加密性好、对计算机功能要求相对低,PGP。
非对称加密
缺点
加密速度慢
常用算法
RSA:512位(或1024位)密钥、计算量极大、难破解
Elgamal:其基础是Diffie-Hellman密钥交换算法
ECC:圆曲线算法
其它非对称算法包括:背包算法、Rabin、D-H
信息摘要
单向散列函数(单向Hash函数)、固定长度的散列值。
常用的信息摘要算法有,MD5,SHA等,市场上广泛使用的MD5,SHA算法散列值分别为128和160位,由于SHA采用密钥较长,因此安全性高于MD5
数字签名?
数字信封与PGP?
数字信封
PGP
练习-设计邮件加密系统
要求邮件以加密方式传输,邮件最大附件内容可达500MB,发送者不可抵赖,若邮件被第三方截获,第三方无法篡改。
网络安全
各个网络层次的安全保障
网络威胁
业务流分析--长期+分析
防火墙技术
7.数据结构与算法?
0 条评论
下一页