知识产权知识
《民法通则》保护。知识产权分为两类工业产权和著作权。特点:无形性、双重性、确认性、独占性、地域性、时间性(专利20年,实用新型和外观10年,到期前6个月展期10年)。
《计算机软件保护条例》受保护的软件的条件:独立创作、可被感知、逻辑合理。软件著作权保护期50年。软件著作权法律:民事责任(侵犯著作权 发表改名),行政责任(复制销售删改转让等),刑事责任。《反不正当竞争法》商业秘密。
常用算法
算法的五特性:有穷性、确定性、可行性、输入、输出
好的算法的目标:正确性、可读、健壮、效率与低存储需求
迭代法:求方程近似根。穷举搜索法。递推法。递归法:执行过程分递推和回归两阶段 背包问题。回溯法即试探法。贪心法:不求最优但求快速有解,哈夫曼算法 装箱问题 马的遍历。分治法:大问题分成小问题解决 快速排序 比赛日程。动态规划法:求两字符串中最长公共字符序列。
面向对象技术
面向对象=对象+分类+继承+通过消息的通讯。对象有对象名(标识)、属性和操作(方法)组成。对象是类的实例。类解决数据保护问题,继承是父子共享数据和方法的机制。
多态:是不同对象收到同一消息产生不同结果。通用多态有参数多态(最纯的、类属),包含多态(子类型化);特定多态有过载多态(同一变量被用来表示不同功能)、强制多态。
好的OOP必须支持:被封装的对象、类和实例的概念、继承性、多态。程序设计的发展:过程程序设计、模块化、函数、逻辑、面向对象。
面向对象的好处:对象技术解决了产品质量和生产率间的平衡;继承机制使系统具有很高的灵活性和易扩充性;面向对象是一个能管理复杂性并增强伸缩性的工具;从概念模型化到分析设计编码可以无缝传递;封装有助于建立安全的系统。
面向对象的概念:对象、类、方法、实例变量、消息、子类、继承
类的访问控制符:Private类内 Protected类及友元 Public
消息传递机制和对象自身引用将方法与特定的对象动态地联系在一起,使得不同对象在执行同样的方法体时,可因对象的状态不同而产生不同的行为,从而使方法对具体地对象具有个性。
衡量开发人员:能否最好地发挥已有类库地优点、将已有类库与新问题紧密匹配地能力、不得不另外编写地代码最少。
面向对象分析方法OOA:将数据和功能合在一起考虑,把系统地行为和信息间地关系表示为迭代构造特征。五个活动:认识对象、组织对象、对象间地相互作用、基于对象地操作。
面向对象设计OOD:设计分析模型和实现源代码。构件是功能和数据的封装。
面向对象测试:单元测试-综合测试-系统测试;算法层-类层-模板层-系统层。常采用回归测试和自动测试。
面向对象的分析和设计方法:1)Peter Coad的OOA模型的五个层次:主题层、对象类层、结构层、属性层、服务层;两种结构分类结构(一般和特殊)和组装结构(整体和部分)。OOD的四个活动:设计问题域部件、设计人机交互部件、设计任务管理部件、设计数据管理部件。2)Booch 的OOD:认为软件开发是螺旋的,每个周期包括标识类和对象、确定他们的含义、标识他们的关系、说明每一个类的界面和实现。3)对象建模技术OMT:三个模型即对象模型(链和关联、泛化、聚集、模块)、动态模型(与时间和操作顺序有关的特征,用状态图表示)、功能模型(描述与值变换有关的特征 用数据流图表示)。
4)统一建模语UML:UML三要素(UML的基本构造块、支配这些构造块如何存放的规则、运用与整个语言的一些公共机制)。三种构造块(事物、关系、图)。四种事务:结构事物(静态部分类 接口 协作 用例 主动类 构件 结点)、行为事物(交互和状态机)、分组事物(包 是概念性的仅在开发时存在)、注释事物。四种关系:依赖(事物间语义关系)、关联(结构关系)、聚集(特殊的关联 整体和部分)、泛化(一般和特殊)、实现(类元之间的语义关系)。五类9种图:①用例图(用户角度描述系统功能,用于对系统的语境和需求建模)、②静态图(类图、对象图;定义类之间关系和类内结构)、③行为图(状态图由状态转换事件和活动组成;活动图用于工作流建模和对操作建模)、④交互图(顺序图 合作图:描述对象间的交互关系)、⑤实现图(构件图:描述代码部件的物理结构及各部件之间的关系; 配置图即部署图:定义系统中软硬件关系。)
数据结构
栈:先进后出;队列:尾进头出 循环对列F=(R+1+Memory_Length) mod M
串:(主串n 模式串m)朴素的模式匹配算法即布鲁特-福斯算法:最好情况平均比较次数=(n+m)/2 最坏=m(n+m)/2
二叉树:i层至多2i-1个结点;深度为k的二叉树最多2k-1个结点;具有n个结点的完全二叉树的深度为└ log2n ┘ + 1;森林和树的转换利用树的孩子兄弟表示法。哈夫曼树即最优二叉树,是带权路径最短的树。
图:N个顶点的无向完全图有n(n-1)/2条边;任何图的边=顶点总度数/2;连通图是指无向图任两顶点连通,最大的连通子图叫连通分量;生成树是极小连通图;n个顶点e条边的无向图的邻接链表需要n个头结点和2e个表结点。求最小生成树有普里姆算法prim和克鲁斯卡尔算法Kruskal;
AOV网:工程可行性;AOV的拓扑排序(选入度为0的输出、删)
AOE网:工程需时和关键活动;关键路径是最长路径。
最短路径:迪杰斯特拉算法
查找:①顺序查找平均查找次数ASL=(n+1)/2;②折半ASL=(n+1)/2 * log2(n+1) -1 ;③分块(s是每块的个数)块内块间都顺序ASL=(n/s + s )/2 +1 块内顺序块间折半ASL= log2(n/s+1) + s/2
二叉排序树即二叉查找树 左小于右;平衡二叉树AVL树左右深度差不超过一;m阶B-树 根至少有两棵子树其他非叶至少有m/2进位取整棵
哈希表 散列表:构造方法有直接定址法、数字分析法、平均取中法、折叠法、随机数法、除留余数法;冲突处理方法有开放地址法、链地址法、再哈希法、建公共溢出区法;装填因子=表中记录数/哈希表长度。
排序:堆排序 建堆从最后一个非叶开始(一直往下)一个个往前筛选。
直接插入 好O(n) 均O(n2) 坏O(n2) 辅O(1) 稳定
直接选择 O(n2) O(n2) O(n2) O(1) 不稳
冒泡排序 O(n) O(n2) O(n2) O(1) 稳定
希尔排序 ――― O(n1.25) 不稳 缩小增量排序
快速排序 O(nlogn) O(nlogn) O(n2) O(nlogn)不稳后往前找小交换
堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳
归并排序 O(nlogn) O(nlogn)O(nlogn) O(1) 稳定 两两排序归并
基数排序 O(d(n+rd))O(d(n+rd))O(d(n+rd))O(rd) 稳定r=10,d位数
操作系统
四个特征:并发、共享、虚拟性、不确定性。五大管理功能:进程、文件、存储、设备、作业管理。运行、就绪、阻塞。
操作系统内核包含支撑功能(中断处理、时钟管理、原语操作)、资源管理功能(进程、存储、设备管理)。引起阻塞的原因:启动某个IO操作、新数据尚未到底、无新工作可作。互斥临界区的管理原则:有空则进、无空等待、有限等待、让权等待。信号量机制有整型信号量、记录型、信号量集机制。公用信号量:实现互斥,等于临界资源数目;私用信号量实现同步。P(-1)V(+1)。进程的高级原语通信的类型有:共享存储系统、消息传递系统、管道通信。管程实现同步机制的基础是条件结构。
进程调度:三级调度 高级调度(长调度、作业调度、接纳调度)、中级调度(对换调度)、低级调度(进程调度)。调度方式:先来先服务、时间片轮转、优先级调度、多级反馈调度算法。优先级的确定:I/O型最高优先级、计算型进程 减少调度次数、主要是CPU处理的进程、为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完时降低优先级。
死锁产生的原因:资源竞争及进程推进顺序非法。产生死锁的四个必要条件:互斥条件、请求保持、不可剥夺条件、环路条件。死锁的处理:鸵鸟政策、预防政策(静态分配法、资源有序分配法)、避免政策(安全状态和银行家算法)、检测与解除死锁。
线程也称为轻型进程:目的是提高系统内程序并发程度、提高吞吐量。线程作为调度和分配的基本单位,基本不拥有资源;进程作为独立分配资源的单位。线程可以创建线程,同一进程有多个线程。
存储管理的功能:主存的分配和回收、提高主存的利用率、存储保护、主存扩充。可变分区的四种算法:最佳适应(保留最大空白区)、最差适应(不易产生碎片)、首次适应(最易合并相邻空白区)、循环首次适应。解决碎片的方法是拼接即紧凑。地址重定位是逻辑地址被转成主存物理地址的过程。可重定位分区是解决碎片问题的简单有效的方法。
分页存储管理:页表的作用是实现从页号到物理块号的地址映射。地址变换机构的基本任务是利用页表把用户程序中的逻辑地址变换成主存中的物理地址。快表:硬件实现,有一组联想高速存储器组成。两级页表机制:外层页表即页目录存放页表的物理地址,内层页表页的物理块号。
分段存储管理:便于编程、分段共享、分段保护、动态链接、动态增长。段页式存储管理。
虚拟存储管理:根据程序运行局部性原理,具有请求调入和置换功能;特征:离散性、多次性、对换性、虚拟性。请求分页的硬件支持:缺页中断特点:在指令执行期间产生和处理(一般中断在后)、返回时回到该指令的开始重新执行该指令(一般中断回到下一条)、一条指令可产生多次缺页中断。虚拟存储的页面置换算法 减少抖动颠簸:最佳置换、先进先出FIFO、最近最久未使用LRU、最近未用算法NUR。
工作集:驻留内存,是进程集合。
设备管理:目标提高设备利用率。I/O系统组成:设备、控制器、通道、总线、I/O软件。块设备(磁盘):传输率高、可寻址、DMA方式。字符设备(终端、打印机):传输率低、不可寻址、中断方式。中速(各种打印机)高速设备(磁带磁盘光盘)。设备管理的主要技术:中断技术、DMA、通道、缓冲技术。
I/O软件的目的是设备独立性和统一命名。分四层:中断处理程序、设备驱动程序、与设备无关的系统软件(功能统一接口、设备命名、保护、缓冲、错误处理、存储分配释放)、用户级软件(I/O调用、格式化I/O、Spooling)。
通道:目的是使数据独立于CPU。字节多路通道、数组选择通道、数组多路通道。
DMA技术:指主存与I/O设备间直接成块传送,只需CPU启动信号,不需CPU干涉。缓冲技术:目的提高外设利用率,解决CPU与IO速度不匹配、减少中断频率放宽中断相应时间的限制、提高CPU与IO的并行。Spooling假脱机技术使独占设备变成多台虚拟设备,由预输入程序、缓输出技术、井管理程序、输入输出井组成。磁盘调度目标是使平均寻道时间最短。
常见文件系统FAT32 NTFS HPFS VXT2 VFAT。文件控制块FCB是由基本信息(名、物理地址)、存取控制信息、使用信息组成。FCB的集合称为目录。磁盘分配表是外存空闲空间管理的数据结构。空闲空间管理方法有空闲区表、位示图、空闲块链、成组链接法。文件共享:硬链接ln 名 新名、软链接ls –s。
作业 由程序、数据、作业说明书组成。作业的四种状态:提交、后备、执行、完成。作业调度算法:先来先服务、短作业先服务、相应比高优先、优先级调度、均衡调度算法。
网络操作系统:有三类集中式、客户服务器模式、对等模式。常见:NT 、Unix、 SunOS、 Hpox、 aix、 linux。嵌入式操作系统:微型化、可定制、实时性、可靠性、易移植性(硬件抽象层HAL屏蔽了硬件平台的差异),常见:Win CE 、VxWorks、pSOS、 Palm OS 、C/OS-
Unix采用三级索引、四种寻址方式。文件系统布局:引导块、超级块、索引结点区、数据存储区。进程控制语句:Fork创建、Exec执行、Exit结束、Signal相应事件、Kill发送软中断信号。进程调度采用动态优先数调度算法。采用分页式虚拟存储机制,二次机会页面替换算法。文件系统与设备驱动程序的接口通过设备开关表控制。正则表达式符号:.任意字符 *前一字符的多次出现 []选一个 ^否定 $行尾 \转义符 “”忽视特殊字符 \<字首匹配 \>字尾匹配。SHELL变量:IFS分割符 LOGNAME、$0本程序名 $#参数个数、$*所有位置参数、$@双引号内保持不变、$?上一命令的返回码、$$当前命令的进程、$!最近后台进程号、$-Shell标识位组成的字符串。
Win2000系统:用户态即目态只能执行特权指令,核心态即管态可执行任何指令并改变状态。四类进程:系统支持进程、服务进程、环境子系统、应用程序。子系统动态链接库是服务进程和应用进程和系统交互的凭借。NTFS使用64位簇进行索引。进程对象属性包括进程标识、资源访问令牌、进程的基本优先级。采用二级页表结构来转换物理地址和虚拟地址。IO设备虚拟界面,将所有读写数据看成送往虚拟文件的字节流。体系结构分三层:IO系统层、设备驱动层、硬件抽象层HAL。
数据库
DBMS特点:①数据结构化且统一管理,②有较高的数据独立性,③数据控制功能:安全性、完整性、并发控制(带来的数据不一致性有三类:丢失更新、不可重复读、读脏数据)、故障恢复(事务内部故障、系统、介质、病毒)
三级模式:①内模式 存储模式:数据物理格式存储方式描述、②模式 概念模式:数据逻辑结构及联系描述、③外模式即用户模式 子模式。
两级映射:模式到内模式(数据的物理独立性)、外模式到模式(数据的逻辑独立性)
目或度n:R上的n元关系,元数:属性的个数,基数:元组的个数记录数,候选码:唯一标识一个元组,主码:关键字,主属性:全部候选码,全码:所有属性都是候选码。
数据模型的三要素:数据结构、数据操作、数据的约束条件。
三类完整性约束条件:实体的(主属性不空)、参照的即引用的、用户定义的完整性
五个基本运算:并∪、2-差、3×笛卡儿积 from、4投影п select、5选择σwhere
扩展运算:1交∩ R∩S=R-(R-S), 2连接◇, 3除
CREATE TABLE tbname( sno char(5) NOT NULL UNIQUE,...PRIMARY KEY(sno),UNIQUE(sno),FOREIGN KEY(x) REFERENCES tbname(sno) );
ALTER TABLE tbname [ADD 列名 完整性约束条件] [DROP 完整性约束名] [MODIFY 列名 类型]
CREATE [UNIQUE][CLUSTER]INDEX idname ON tbname 列名ASC/DSC
CREATE VIEW viewname 列名 AS SELEC子句[WITH CHECK OPTION]
SELECT [ALL|DISTINCT]列表名 FROM tbname/vname WHERE [GROUP BY 列名 HAVING 条件表达式][ORDER BY 列名ASC/DESC]
INSERT INTO tbname (字段名) VALUES(常量/查询子句)
UPDATE tbname SET 列名=值(,,,) WHERE
GRANT <权限,,>ON<对象类型><对象名>TO用户WITH GRANT OPTION
REVOKE <权限,,> ON <对象类型><对象名> FROM 用户
grant all privileges on table tbname to user1
grant insert on table tbname to user2
grant createtab on database dbname to user3
revoke update(sno) on table tbname from user4
求选修了课程名J的姓名:select sname from s where sno IN select sno from sc where cno IN select cno from c where cname='J'
求不选C3课程的姓名:select sname from S where NOT EXISTS (select * from sc where sc.sno=s.sno and cno='C3')
求选修了全部课程的姓名:select sname from S where NOT EXISTS (select * from C where NOT EXISTS (select * from SC where sno=s.sno and cno=c.cno) )
求至少选修了学生S2所修课程的学生姓名:select DISTINCT SNO from SC x where NOT EXIST (select * from SC y where y.sno='s2' and NOT EXISTS ( select * from sc z ehere z.sno=x.sno and z.cno=y.cno))
求选修了C2课程的学生选修的其他课程号:select cno from SC x where CNO<>'c2' and SNO IN select SNO from sc y where y.cno='c2'
求定购了bid='123'图书的用户定购的其他图书(表orders orderlist):select bid from orderlist A where NOT exists (select * from orders B where A.orderbum=B.orderbum and B.cid NOT IN (select cid from orderlist C,orders D where D.cid='123' and c.ordernum=D.ordernum))
按学号给出每个学生选修课程的门数:select sno,count(CNO) from sc group by SNO
查某工程至少用了3家供应商供应零件的平均数(表S、P、J、SPJ):select JNO,avg(QTY) from SPJ group bu JNO having count(distinct(SNO))>=3 order by JNO DESC
规范化1NT:没有表中表,2NT消除了1NT中非主属性对码的部分函数依赖即每一个非主属性完全依赖于全部的码(X->Y即Y依赖X)、3NT消除了非主属性对码传递依赖、BCNF消除了主属性对码的部分和传递依赖、4NT表中没有多值依赖
事务的四个特征:原子性、一致性(数据不会因事务而破坏)、隔离性(事务独立运行)、持久性(事务一旦提交)。
BEGIN TRANSACTION ; COMMIT;ROLLBACK
并发控制的主要技术是封锁,三级封锁协议:1级可解决丢失更新问题;2级可解决读脏数据;3级防止丢失更新、不读脏数据、防不可重复读
建立冗余数据的方法是数据转储和登记日志文件。