自学内容网 自学内容网

软考中级笔记

上午题

二 程序设计语言 6′

1、编译程序和解释程序

解释器:翻译源程序时不生成独立的目标程序。
解释程序和源程序要参与到程序的运行过程中。
编译器:翻译时将源程序翻译成独立保存的目标程序。
机器上运行的是与源程序等价的目标程序。
源程序和编译程序都不再参与目标程序的运行过程。

2、数据类型:
①便于为数据合理分配存储单元
②便于对参与表达式计算的数据对象进行检查
③便于规定数据对象的取值范围及能够进行的运算

3、
传值调用:
将实参的值传递给形参,实参可以是变量、常量和表达式。
不可以实现形参和实参间双向传递数据的效果。

传引用(地址)调用:
将实参的地址传递给形参,形参必须有地址,实参不能是常量(值),表达式。
可以实现双向传递数据。

4、
编译方式:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成
解释方式:词法分析、语法分析、语义分析

编译器和解释器都不可省略词法分析、语法分析、语义分析且顺序不可交换即词法分析、语法分析、语义分析是必须的。
编译器方式中中间代码生成和代码优化不是必要,可省略。
即编译器方式可以在词法分析、语法分析、语义分析阶段后直接生成目标代码。

5、符号表
不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入符号表中。
记录源程序中各个字符的必要信息,以辅助语义的正确性检查和代码生成。

6、
词法分析:分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。
输入:源程序 输出:记号流

语法分析:对各条语句的结构进行合理性分析,分析程序中的句子结构是否正确。
输入:记号流 输出:语法(分析)树

语义分析:是进行类型分析和检查。
输入:语法树
语法分析可以发现程序中的语法错误,但不能发现程序中所有的语义错误。
语义分析可以发现静态语义错误,不能发现动态语义错误,动态语义错误运行时才能发现。

目标代码生成阶段的工作与具体的机器密切相关。
寄存器的分配处于目标代码生成阶段。

中间代码生成
常见的中间代码有:后缀式、三地址码、三元式、四元式和树(图)等形式。
中间代码与具体的机器无关(不依赖具体的机器)。
可以将不同的高级程序语言翻译成同一种中间代码。
中间代码可以跨平台。
因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性。

7、正规式

8、
有限自动机是词法分析的一个工具,它能正确地识别正规集。
确定的有限自动机(DFA):对每一个状态来说识别字符后转移的状态是唯一的
不确定的有限自动机(NFA):对每一个状态来说识别字符后转移的状态是不唯一的
正确识别:最后停留在终态,ε为空
        

9、大多数程序设计语言的语法规则用 上下文无关文法 描述即可。

10、中缀、后缀 —— 栈

优先级:()> 逻辑与∧ 逻辑或∨


五 知识产权 2~3′

1、
人身权:发表权、署名权、修改权、保护作品完整权。
发表权有时间性,终生+死亡后50年。另外三个永永远远。

2、知识产权的地域性。

3、计算机软件著作权
        主体是指享有著作权的人,根据《中华人民共和国著作权法》和《计算机软件保护条例》规定,主体包括公民、法人和其他组织。
        客体是受保护的对象,著作权法保护的计算机软件是计算机程序及其有关文档。计算机程序包括源程序和目标程序。

4、计算机软件著作权的权利

  1. 计算机软件的著作人身权
    《中华人民共和国著作权法》规定,软件作品享有两类权力,一类是软件著作权的人身权(精神权利);另一类是软件著作权的财产权(经济权力)。《计算机软件保护条例》规定,软件著作权人享有发表权和开发者身份权,这两项权力与软件著作权人的人身权是不可分离的。
    1. 发表权
    2. 开发者身份权(署名权)。开发者的身份权不随软件开发者的消亡而丧失,且无时间限制。
  2. 计算机软件的著作财产权
    使用权、复制权、修改权、发行权、翻译权、注释权、信息网络传播权、出租权、使用许可权和获得报酬权
  3. 计算机软件著作权的保护期
    根据《著作权法》和《计算机软件保护条例》的规定,计算机软件著作权的权利自软件开发完成之日起产生,保护期为50年。保护期满,除开发者身份权外,其他权利终止。

5、软件盗版 行为是指任何未经软件著作权人许可,擅自对软件进行复制、传播,或以其他方式超出许可范围传播、销售和使用的行为。

6、《计算机软件保护条例》是国务院颁布的,用来保护软件著作权人的利益。


 六 数据库 6′

1、根据模型应用的不同目的,可将数据模型分成:
①概念数据模型:从信息世界中抽象的数据模型   
     
②结构数据模型:从计算机世界中抽象出的DBMS支持的数据模型。主要分为层次、网状、关系和面向对象模型。
        关系模型:二维表格结构

2、数据库的三级模式结构
        概念模式/模式——基本表
        外模式/用户模式/子模式——视图
        内模式/存储模式——存储文件
        

3、数据库的两级映像
       
模式/模式映像:实现了概念模式与内模式转换。—— 物理独立性
        模式/模式映像:实现了外模式与概念模式转换。—— 逻辑独立性

4、关系模型基本术语
        关系:一个关系就是一张二维表。
        元组:表中一行即为一个元组。对应存储文件中的一个记录值。
        属性:表中的列。相当于记录中的数据项或字段值。
        域:属性取值范围。
        关系模式:对关系的描述。格式:关系名(属性名1,属性名2......)

        码=键
        候选码/候选键:属性或属性集合,唯一地表示一个元组。
        主键/主码:候选码中选择一个。
        主属性:包含在任何候选码中的属性。否则为非主属性。
        外码/外键:如果一个属性不是关系的主键却是另一个关系的主键。
        全码:所有属性组是候选码。
        超码:一个包含码的属性集。

5、关系模型
        关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
        关系完整性约束:
                ①实体完整性:主码的值不能为空或部分为空,即主属性不能取空值。
                ②参照完整性:
                
                ③用户自定义完整性

6、笛卡尔积:
                

7、关系代数
       
集合运算
                
        专门的关系运算符:选择 投影 连接 除
                
                
                连接 \Join
                        θ连接、等值连接:在基于笛卡尔积的基础上选择满足条件的结果。
                        自然连接:除去重复属性的等值连接。
                        外连接:
                                
                                

8、
        投影、选择转SQL语言
                select 属性 from 表名/关系 where 条件
        笛卡尔积转SQL语言
                select R.A,R.B,R.C,S.A,S.B,S.C from R,S
        自然连接转SQL语言

9、SQL语言
        建立数据库:create database 数据库名
        建立基本表:create table 表名
                              (列名 数据类型 完整性约束,
                               ......,
                               .......
                               )
                        not null,unique,not null unique,default
                        primary key(属性)
                        foreign key(id) referencces 表名(id)
                        check (条件)
        增加列:alter table 表名 add 列名 类型
        修改列:alter table 表名 alter column 列名 新类型
        删除列:alter table 表名 drop column 列名
        删除基本表:drop table 表名
        

        insert 插入语句:
                ①直接插入元组值:insert into 表名(列名序列) values (元组值)
                ②插入一个查询的结果值:insert into 表名(列名序列) select 查询语句
                

        delete from 表名 where 条件

        update 表名
        set 列名=值,...
        where 条件

        select (distinct 去除重复行) 列名
        from 表名
        where 行条件
        group by 列条件
        having 组条件
        order by 列名 asc升序/desc降序

 

  • 选择查询
  • 条件表达式 where 条件
  • select 列名 as '别名' from 表名
  • 字符串匹配:(not) like '匹配串'
    • %(百分号)代表任意长度(长度可以为0)的字符串。例如a%b表示以a开头,以b结尾的任意长度的字符串,如 acb、addgb、ab 等都满足该匹配串。
    • _(下划线)代表任意单个字符。例如a_b表示以a开头,以b结尾的长度为3的任意字符串,acb、afb 等都满足该匹配串。

  • 聚合函数 avg count min max
  • 表的连接查询
    • select 列名 from 表1,表2 where 连接条件
  • 查询结果的并交差
    • union intersect except

10、SQL访问控制
        授权:grant 权限 on 对象类型 对象名 to 用户
                

        收回权限:revoke 权限 on 对象类型 对象名 from 用户
                

11、视图:从一个或多个基本表或视图中导出的表,是一个虚拟表
        
create view 视图名(列表名)
        as select 查询子句
        [with check option];
12、索引:改变的是内模式

13、关系模式:R<U,F>
        R关系名,U属性,F为属性组U上的一组数据依赖。A→B:A决定B,B依赖于A

14、关系数据库规范化 函数依赖
        

        

15、规范化
        1NF
                若关系模式R的 每一个分量是不可再分的数据项,则关系模式R属于第范式(1NF)
                存在问题 : 冗余 、修改异常、 插入异常 、 删除异常
        2NF
                若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF
                (即当 1NF消除了非主属性对码的部分函数依赖,则称为2NF )
        3NF
                若关系模式R(U, F)中不存在这样的码X、属性组Y及非主属性Z(Z不属于y),
                使得X→Y,Y→X,Y→Z成立,则称关系模式R∈3NF
                (即当 2NF消除了非主属性对码的传递函数依赖,则称为3NF )
                3NF的模式必是2NF的模式。
                产生冗余和异常的两个重要原因是部分依赖和传递依赖。               
        

16、模式分解 ——无损连接性,保持函数依赖
17、E-R图转换为关系模式
        对于联系:
                一对一 : 联系 作为一个属性 随便加入 哪个实体中
                一对多 : 联系可以单独转换为一个关系模式, 也可 以 作为一个属性加入到N端中(N端实体包含1端的主键)
                多对多 : 联系必须单独转换为一个关系模式(且此关系模式应该包含两端实体的主键)

18、数据库的控制功能——事务管理
        原子性 :事务的所有操作在数据库中 要么全做,要么全都不做
        一致性 :数据不会因为事务的执行而被破坏
        隔离性 :一个事务的 执行不能被 其他事务 干扰
        持久性 :事务一旦提交 ,对数据库中数据的 改变必须是永久 的,
                        即便系统出现故障时也是如此

19、数据库的保存与恢复
        恢复的基本原理是“建立数据冗余”(重复存储) 。建立冗余数据的方法是进行 数据转储 和 登记日志文件 。

20、并发控制技术——封锁
        排他锁(X锁) :若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。
        共享锁(S锁) :若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁,直到T释放A上的S锁。

21、分布式数据库
        分片 透明:用户或应用程序 不需要知道逻辑上访问的表具体是怎么分块存储的
        复制 透明:采用复制技术的分布方法,用户不需知道数据是复制到哪些节点,如何复制的
        位置 透明:用户无须知道数据存放的物理位置
        逻辑 透明:用户或应用程序 无需知道局部场地使用的是哪种数据模型


        共享 性:指数据存储在 不同的结点数据共享
        自治 性:指 每结点对本地数据都能独立管理
        可用 性:指 当某一场地故障时,系统可以使用其他场地上的副本而不至于使整个系统瘫痪
        分布 性:指 数据在不同场地上的存储

 


 

七 面向对象 3~4'

1、
        对象 :基本的运行实体,为类的实例,封装了数据和行为的整体,如学生、汽车等真实存在的实体 。
        消息 : 对象 之 间 进行 通信 的一种构造称为消息
类 :是 对象的抽象 ,定义了一组大体相似的对象结构,定义了 数据 和 行为 。包括:
实体类 (用于 对必须存储的信息和相关行为建模 的类,是需要 长久保存且一直存在的类 )
边界类 ( 系统内部与系统外部 的业务主角之间进行 交互建模 的类)
控制类 (用于对一个或几个用例所特有的 控制行为进行建模 ,在用例执行过程中被动出现的特定行为的
类)
继承 : 父类 和 子类 之间 共享数据和方法 的机制。是类之间的一种关系
多态 :不同的对象收到 同一个消息时产生完全不同的反应 。包括:
参数多态(不同类型参数多种结构类型)
包含多态(父子类型关系)
过载多态(类似于重载,一个名字不同含义)
强制多态(强制类型转换)
多态由继承机制支持
覆盖 :子类在原有父类接口的基础上,用适合于自己要求的实现去置换父类中的相应实现。即 在子类中重定
义一个与父类同名同参的方法
函数重载 : 与覆盖要区分开 ,函数重载与子类父类无关,且 函数是同名不同参数
封装 :一种 信息隐蔽技术 ,其目的是 使对象的使用者和生产者分离 ,也就是使其他开发人员 无需了解所要
使用的软件组件内部的工作机制,只需知道如何使用组件
静态类型 是指一个对象的类型 在编译时 就 确定
动态类型 指对象类型在 运行时 才能 确定
静态绑定 (静态分配)是基于静态类型的,在程序 执行前方法已经被绑定
动态绑定 是基于动态类型的, 运行时 根据变量实际引用的对象类型 决定调用哪个方法 , 动态绑定支持多态 


 

 八 UML 3~4'

 


 

下午题

试题一 15′

形式:说明 + 2图 + 问题

数据流图DFD基本图形元素 ——
        矩形 E :外部实体
        数据存储:D
        加工 P :圆角矩形

        

外部实体:当前系统之外的人、物、外部系统 
        人:学生、老师、员工、主观、医生、客户、供应商......
        物:传感器、控制器、单车、车辆、采购部门......
        外部系统:支付系统、车辆交易系统、库存管理系统、道闸控制系统......
数据存储:存储数据和提供数据,存储加工的输出数据和提供加工的输入数据
        例子:客户表、订单表、学生表、课表文件、维修记录文件
加工:将输入数据处理后得到输出数据
        一个加工至少有一个输入数据流和一个输出数据流加工
        只有输入没有输出:黑洞
        只有输出没有输入:白洞
        输入数据不足以产生输出数据:灰洞
数据流的起点或终点必须有一个是加工。

问题一 实体
问题二 数据存储 +表/文件
问题三 补充缺失数据流
        第一种方法:父图子图平衡 连连看
        第二种方法:加工既有输入数据流又有输出数据流
        第三种方法:数据守恒
        格式:
        

 


 试题二 15′


原文地址:https://blog.csdn.net/weixin_47187147/article/details/142787106

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!