文章目录
数据库技术
三级模式两级映射
三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层、概念层和内部层。这三个层次分别对应三种不同类型的模式,分别是外模式、概念模式和内模式。在外模式与概念模式之间,以及概念模式与内模式之间,还存在映像即二级映像。
- 外模式:面向应用程序,描述用户的数据视图(View)
- 内模式(又称为物理模式、存储模式):面向物理上的数据库,描述数据在磁盘中如何存储;
- 概念模式(又称为模式、逻辑模式):面向数据库设计人员,描述数据的整体逻辑结构。
三级模式是数据的三个抽象级别,每个级别关心的重点不同。为了使三级模式之间产生关联,数据库管理系统在三级模式之间提供了二级映像功能。二级映像是一种规则,它规定了映像双方如何进行转换。通过二级映像,体现了逻辑和物理两个层面的数据独立性 - 逻辑独立性。外模式/概念模式映像体现了逻辑独立性。逻辑独立性是指当修改了概念模式,不影响其上一层的外模式。例如,将基本表的"库存"和"销量"拆分到另一张表中,此时概念模式发生了更改,但可以通过改变外模式/概念模式的映像,继续为用户提供原有的视图
- 物理独立性。概念模式/内模式映像体现了物理独立性。物理独立性是指修改了内模式,不影响其上层的概念模式和外模式。例如,在Excel中将.xls文件另存为.xlsx文件,虽然更换了文件格式,但是打开文件后显示的表格内容一般不会发生改变。在数据库中,更换更先进的存储结构,或者创建索引以加快查询速度,内模式会发生改变。此时,只需改变概念模式/内模式映像,就不会影响到原有的概念模式
数据设计
- 需求分析:即分析数据存储的要求,产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求:信息要求、处理要求、系统要求。
- 概念结构设计:就是设计E-R图,也即实体-联系图。工作步骤包括:选择局部应用、逐一设计分E-R图、E-R图合并。分E-R图进行合并时,它们之间存在的冲突主要有以下3类。
- 属性冲突。同一属性可能会存在于不同的分E-R图中。
- 命名冲突。相同意义的属性,在不同的分E-R图上有着不同的命名,或是名称相同的属性在不同的分E-R图中代表若不同的意义。
- 结构冲突。同一实体在不同的分ER图中有不同的属性,同一对象在某一分-R图中被抽象为实体而在另一分E-R图中又被抽象为属性。
- 逻辑结构设计:将E-R图,转换成关系模式。工作步骤包括:确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图。
- 物理设计:步骤包括确定数据分布、存储结构和访问方式。
- 数据库实施阶段:根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
- 数据库运行和维护阶段:数据库应用系统经过试运行即可投入运行,但该阶段需要不断地对系统进行评价、调整与修改。
数据模型
E-R模型
用E-R图来描述概念数据模型,世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
在E-R模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图:
在现实世界中有一种特殊的联系,这种联系代表实体间的所有(Ownership)关系,例如职工与家属的联系,家属总是属于某职工的。这种实体对于另一些实体具有很强的依赖关系,即一个实体的存在必须以另一个实体为前提,将这类实体称为弱实体。
关系模型
关系模型中数据的逻辑结构是一张二维表,由行列组成。用表格结构表达实体集,用外键标识实体间的联系。如下图:
- 优点:建立在严格的数学概念基础上;概念单一、结构简单、清晰,用户易懂易用;存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。
- 缺点:由于存取路径透明,查询效率往往不如非关系数据模型。
练习题
例:某本科高校新建教务管理系统,支撑各学院正常的教学教务管理工作。经过初步分析,系统中包含的实体有学院、教师、学生、课程等。考虑需要将本科学生的考试成绩及时通报给学生家长,新增家长实体;考虑到夜大、网络教育学生管理方式的不同,需要额外的管理数据,新增进修学生实体:规定一个学生可以选择多门课程,每门课程可以被多名学生选修;一个教师可以教授多门课程,一门课程只能被一名教师讲授。()实体之间为多对多联系,()属于弱实体对强实体的依赖联系。
A、学生、学院
B、教师、学院
C、学生、课程
D、教师、课程
A、家长、学生
B、学生、教师
C、学生、学院
D、教师、学院
答案C A
例:部门、员工和项目的关系模式及它们之间的E-R图如下所示,其中关系模式中带实下划线的属性表示主键属性。图中:
部门(部门代码,部门名称,电话)
员工(员工代码,姓名,部门代码,联系方式,薪资)
项目(项目编号,项目名称,承担任务)
由于员工和项目之间的联系类型为(),所以员工和项目之间的联系需要转换成一个独立的关系模式,该关系模式的主键是()。
A.1对1
B.1对多
C.多对1
D.多对多
A.项目名称,员工代码)
B.(项目编号,员工代码)
C.(项目名称,部门代码)
D.(项目名称,承担任务)
答案D B
关系代数
并:结果是两张表中所有记录数合并,相同记录只显示一次。
交:结果是两张表中相同的记录。
差:S1-S2,结果是S1表中有而S2表中没有的那些记录
笛卡尔积:S1XS2,产生的结果包括S1和S2的所有属性列,并且S1中每条记录依次和S2中所有记录组合成一条记录,最终属性列为S1+S2属性列,记录数为S1*S2记录数。
投影(π):实际是按条件选择某关系模式中的某列,列也可以用数字表示。π~sno,sname~S1或者π~1,2~S1(这个最常见)表示读取S1的第一列和第二列的数据如下图的S1投影结果。请注意1,2不要加引号例如'1',加引号表示的是值,不是第几列
选择(σ:sigma):实际是按条件选择某关系模式中的某条记录。σ~2~S1,表示取第二行的数据如下图的S1选择结果
自然连接:显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。
关系代数运算符
练习题
【例9.4】设有关系R、S如下所示,请求出RUS、R-S、RXS、π~A,C~®、σ~A>B~®和σ~3<4~(RXS)。
RUS:并,需要忽略重复
A | B | C |
---|---|---|
a | b | c |
b | a | d |
c | d | e |
d | f | g |
f | h | k |
R-S:差
A | B | C |
---|---|---|
a | b | c |
c | d | e |
RXS:笛卡尔积
A | B | C | A | B | C |
---|---|---|---|---|---|
a | b | c | b | a | d |
a | b | c | d | f | g |
a | b | c | f | h | k |
b | a | d | b | a | d |
b | a | d | d | f | g |
b | a | d | f | h | k |
c | d | e | b | a | d |
c | d | e | d | f | g |
c | d | e | f | h | k |
d | f | g | b | a | d |
d | f | g | d | f | g |
d | f | g | f | h | k |
π~A,C~®:选择关系R的A和C列
A | C |
---|---|
a | c |
b | d |
c | e |
d | g |
σ~A>B~®:选择关系R的A>B列的行
A | B | C |
---|---|---|
b | a | d |
σ~3<4~(RXS):在R和S的笛卡尔积中选择第三列<第四列的行
RXS:笛卡尔积
A | B | C | A | B | C |
---|---|---|---|---|---|
a | b | c | d | f | g |
a | b | c | f | h | k |
b | a | d | f | h | k |
c | d | e | f | h | k |
给定关系R(A,B,C,D)和关系S(C,D,E),,对其进行自然连接运算R⋈S后的属性列为()个;与σ~R.B>S.E~(R⋈S)等价的关系代数表达式为()。
A.4
B.5
C.6
D.7
A.σ~2>7~(RXS)
B.π~1,2,3,4,7~(σ~'2'>'7'∧3-5∧4=6~(RXS))
C.σ~'2'>'7'~>(RXS)
D.π~1,2,3,4,7~(σ~2>7∧3=5∧4=6~(RXS))
答案B D
SQL语句
SQL(Structured Query Language):是关系数据库管理系统的标准查询语言,用于存取数据以及查询、更新和管理关系数据库,最近的SQL标准是SQL99标准,也称之为SQL3。
SQL的主要功能包括:
- 数据定义语言(DDL):用于定义数据库对象,如表、视图、索引等。包括CREATE、ALTER、DROP等语句。
- 数据操作语言(DML):用于对数据库中表的数据进行增删改操作。包括INSERT、UPDATE、DELETE等语句。
- 数据查询语言(DQL):用于查询数据库中表的记录。主要是SELECT语句及其子句
- 事务控制语言(TCL):用于管理数据库事务。包括COMMIT、ROLLBACK、SAVEPOINT等语句。
- 数据控制语言(DCL):用于管理数据库的权限和安全性。主要是GRANT(授权)和REVOKE(回收权限)语句。
练习题
【2019】要将部门表Dept中name列的修改权限赋予用户Ming,并允许Ming将该权限授予他人。实现该要求的SQL语句如下:GRANT UPDATE(name)ON TABLE Dept TO Ming ()
(A)FOR ALL
(B)CASCADE
(C)WITH GRANT OPTION
(D)WITH CHECK OPTION
答案C
【2023】如果将Students表的插入权限赋予用户User1,并允许其将该权限授予他人,那么正确的SQL语句如下:GRANT(55)TABLE Students TO User1(56)
(55)
A.INSERT
B.INSERT ON
C.UPDATE
D.UPDATE ON
(56)
A.FOR ALL
B.PUBLIC
C.WITH GRANT OPTION
D.WITH CHECK OPTION
答案B C
数据库控制
事务:由一系列DML操作组成,这些操作,要么全做,要么全不做,它从第一个DML操作开始,rollback、commit或者DDL结束,拥有以下四种特性,详解如下:
- (操作)原子性Atomicity:要么全做,要么全不做,例如银行转账,在没到最后一步完成转账之前,前面的所有操作都是无效的。
- (数据)一致性Consistency:事务发生后数据是一致的,例如银行转账,不会存在A账户转出,但是B账户没收到的情况。
- (执行)隔离性solation:任一事务的更新操作直到其成功提交的整个过程对其他事务都是不可见的,不同事务之间是隔离的,互不干涉。
- (改变)持续性Durability:事务操作的结果是持续性的。
事务是并发控制的前提条件,并发控制就是控制不同的事务并发执行,提高系统效率,但是并发控制中存在下面三个问题:
- 丢失更新:事务1对数据A进行了修改并写回,事务2也对A进行了修改并写回,此时事务2写回的数据会覆盖事务1写回的数据,就丢失了事务1对A的更新。即对数据A的更新会被覆盖。
- 不可重复读:事务2读A,而后事务1对数据A进行了修改并写回,此时若事务2再读A,发现数据不对。即一个事务重复读A两次,会发现数据A有误。
- 读脏数据:事务1对数据A进行了修改后,事务2读数据A,而后事务1回滚,数据A恢复了原来的值,那么事务2对数据A做的事是无效的,读到了脏数据。
如何解决三个问题?
X锁是排它锁(写锁)。若事务T对数据对象A加上x锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。
S锁是共享锁(读锁)。若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁(也即能读不能修改),直到T释放A上的S锁。
共分为三级封锁协议,如下: - 一级封锁协议 :事务在修改致据之前必须先对其加X锁 ,直到事务结束才释放,可解决丢失更新问题 。
- 二级封锁协议:一级封锁协议的基础上加上事务T在读数据R之前必须先对其加S锁,读完后即可释放S锁。可解决失更新、读脏数据问题 。
- 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可解决丢失更新、读脏致据、数据重复读问题
练习题
当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程对其他事务都是不可见的,这一性质通常被称为事务的()。
A.原子性
B.一致性
C隔离性
D持久性
答案C
若事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2、D3加了排它锁,则事务T1对数据();事务T2对数据()
A.D2、D3加排它锁都成功
B.D2、D3加共享锁都成功
C.D2加共享锁成功,D3加排它锁失败
D.D2、D3加排它锁和共享锁都失败
A.D1、D3加共享锁都失败
B.D1、D3加共享锁都成功
C.D1加共享锁成功,D3如排它锁失败
D.D1加排它锁成功,D3加共享锁失败
答案D C
数据库故障和备份
数据库系统产生的故障如下所示:
- 事务内部故障:本身逻辑(可预期)、运算溢出(不可预期)
- 系统故障:系统停止运行任何事件,如操作系统故障、停电
- 介质故障:物理介质损坏,几率小破坏性最大
- 计算机病毒:人为的故障和破坏,在计算机程序中插入的破坏
数据库的备份:分为静态转储和动态转储、海量转储和增量转储、日志文件。
- 静态转储:即冷备份,指在转储期间不允许对数据库进行任何存取、修改操作:
- 动态转储:即热备份,在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可并发执行;
- 海量转储:即完全备份,每次都备份所有数据,
- 增量转储:即增量备份:每次只备份上一次备份之后变化的数据。
- 差量备份:仅备份上一次完全备份之后变化的数据。
日志文件:在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。一旦发生故障,DBMS的恢复子系统利用日志文件辙销事务对数据库的改变,回退到事务的初始状态。
数据库的恢复
- 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
- 对事务的更新操作执行逆操作。
- 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志。
函数依赖
为什么需要规范化:关系数据库设计的目标是生成一组合适的、性能良好的关系模式,以减少系统中信息存储的冗余度,并可方便地获取信息。而关系数据库设计理论的核心是数据间的函数依赖,衡量的标准是关系规范化的程度及分解的无损连接和保持函数依赖性。
函数依赖:给定一个X,能唯一确定一个Y,就称X决定(确定)Y,或者说Y依赖于X。
- 例如:Y=X*X函数,此时X能确定Y的值,但是Y无法确定X的值,比如x=2,y=4,但是y=4无法确定x=2。
函数依赖又可扩展以下两种规则:
-
部分函数依赖:A可决定C,(A,B)也可决定C,既然A都可以决定C了,那么要不要B其实都无所谓了,所有这种就称之为部分函数依赖。
-
传递函数依赖:当A和B不相同时,A可决定B,B可决定C,则A可决定C,是传递函数依赖;若A和B相同,则不存在传递了,A就可以直接就可决定C。
函数依赖的公理系统
函数依赖的公理系统(Armstrong:阿姆斯特朗公理)是指一组用于推导和证明函数依赖的规侧和公理集合。设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有以下推理规则。
- 自反律:对于任意属性集合X和Y,有Y⊆X⊆U,则X→Y被F逻辑蕴含。
也就是说如果属性集Y属于X,则X可以决定Y,又可以说属性集X可以决定他的属性子集。 - 增广律:对于任意属性集合X、Y和Z,如果X→Y,那么XZ→YZ。
如果X→Y在F这个函数依赖集合中,另一属性(组)Z是属性集U中的元素,那么从F中可以推导出XZ函数决定YZ。 - 传递律:对于任意属性集合X、Y和Z,如果X→Y且Y→Z,那么X→Z。
根据上述3条推理规则又可推出下述3条推理规则:
- 合并律:对于任意属性集合X、Y和Z,如果X→Y和X→Z,那么X→YZ。
- 分解律:对于任意属性集合X、Y和Z,如果X→YZ,则X→Y和X→Z。
- 合成律:对于任意属性集合X、Y和Z,如果X→Y且Y→Z,那么XZ→YZ。
键与约束
超键(码):能够唯一标识一条记录的属性或属性集。换句话说,超键中的属性组合可以保证每个元组在关系中都是唯一的。
- 举例:假设我们有一个学生表,包含以下属性:学号、姓名、性别、出生日期,那么,以下属性集合都是超键:{学号}、{学号,出生日期}、{姓名,性别,出生日期,因为这些属性组合都可以唯一标识每个学生。
候选键:超键中不包含任何冗余属性的超键。换句话说,候选键中的每个属性都是必需的,用于唯一标识元组。
- 举例:在上面的例子中,{学号}是候选键,因为它是唯一标识学生的最小属性集合。如果我们设置姓名不能重复的话,那姓名也是一个候选键,但是{姓名,性别,出生日期这个组合就不是了,因为性别和出生日期冗余了,可以由姓名得到
主属性:包含在任一候选码中的属性称主属性。换句话说,主属性是候选码所有属性的并集
- 举例:在上面的例子中,如果姓名不能重复,那么主属性就是学号和姓名
主键:从候选键中选取的一个属性或属性集合,作为表中元组的唯一标识符。
- 举例:在上面的例子中,我们可以选择{学号}作为主键
外键:是指一个表中的属性,它引用另一个表中的主键。外键用于建立表之间的关系。
规范化
必考
第一范式1NF
第一范式1NF:要求数据库表中的所有字段都是不可分割的原子值。通俗地说,第一范式就是表中不允许有小表的存在。比如,对于如下的员工表,就不属于第一范式:
例如,供应者和它所提供的零件信息,关系模式FIRST和函数依赖集F如下:
- FIRST(Sno,Sname,Status,City,Pno,Qty)
- F=[Sno->Sname,Sno->Status,Status->City,(Sno,Pno)->Qty)
第一范式所带来的问题: - 冗余度大,例如,每个供应者的Sno、Sname、Status.、City要与其供应的零件的种类一样多。
- 引起修改操作的不一致性。例如,供应者S1从"天津"搬到"上海",若稍不注意,就会使一些数据被修改,另一些数据没有被修改,导致数据修改的不一致性。
- 插入异常。关系模式FRISTI的主码为So、Pno,按照关系模式实体完整性规定,主码不能取空值或部分取空值。这样,当某个供应者的某些信息未提供时(如Po),则不能进行插入操作,这就是所谓的插入异常。
- 删除异常。若供应商S4的P2零件销售完了,并且以后不再销售P2零件,那么应删除该元组。这样,在基本关系FIRST找不到S4,而S4又是客观存在的。
第二范式2NF
第二范式(2NF):在1NF的基础上,要求数据库表中的每个非主属性完全依赖于码(不能出现部分函数依赖),例如,FIRST:关系中的码是Sno、Pno,而Sno→Status,因此非主属性Status部分函数依赖于码,故非2NF的。
若此时将FIRST关系分解为FIRST1(Sno,Sname,Status,City)和FIRST2(Sno,Pno,Qty)。分解后的关系模式FIRST1的码为Sno,非主属性Sname、Status、City完全依赖于码Sno,所以属于2NF;关系模式FIRST2的码为Sno、Pno,非主属性Qty完全依赖于码,所以也属于2NF。
第三范式3NF
第三范式(3NF):在2NF的基础上,消除了非主属性对码的传递函数依赖(不能存在传递依赖),则称为3NF。例如,FIRST1不属于3NF,因为在分解后的关系模式FIRST1中有Sno->Status,Status->City,存在着非主属性City传递依赖于码Sno。若此时将FIRST1继续分解为:FIRST1.1(Sno,Sname,Status)、FIRST1.2(Status,City),通过上述分解,数据库模式FIRST转换为FIRST1.1(Sno,Sname,Status)、FIRST1.2(Status,City)和FIRST2(Sno,Pno,Qty)3个子模式。由于这3个子模式都达到了3NF,因此称分解后的数据库模式达到了3NF。
可以证明,3NF的模式必是2NF的模式。产生冗余和异常的两个重要原因是部分依赖和传递依赖。因为3NF模式中不存在非主属性对码的部分函数依赖和传递函数依赖,所以具有较好的性能。对于非3NF的1NF、2NF其性能弱,一般不宜作为数据库模式,通常要将它们变换成为3NF或更高级别的范式,这个变换过程称为"关系模式的规范化处理"。
练习题
【2019年】设有关系模式R(E,N,M,L,Q),其函数依赖集为F={E→N,EM→Q,M→L)。则关系模式R达到了(),该关系模式()
A.1NF
B.2NF
C.3NF
D.BCNF
A.无需进行分解,因为已经达到了3NF
B.无需进行分解,因为已经达到了BCNF
C.尽管不存在部分函数依赖,但还存在传递依赖,所以需要进行分解
D.需要进行分解,因为存在冗余、修改操作的不一致性、插入和删除异常
答案A D
【2023年】给定关系模式R(U,F),U={A,B,C,D},F={AB→C,CD→B。关系R(),且分
别有()。
A.只有1个候选关键字ACB
B.只有1个候选关键字BCD
C.有2个候选关键字ACD和ABD
D.有2个候选关键字ACB和BCD
A.0个非主属性和4个主属性
B.1个非主属性和3个主属性
C.2个非主属性和2个主属性
D.3个非主属性和1个主属性
答案C A
模式分解
模式分解:是关系数据库规范化设计中的一个重要概念。它指的是通过对关系模式进行拆分,来消除模式中的混合组合依赖,达到将模式分解为更小的模式的过程。一般分为以下两种:
- 是否保持函数依赖分解:对于关系模式尺,有依赖集F,若对R进行分解,分解出来的多个关系模式,保持原来的依赖集不变,则为保持函数依赖的分解。另外,注意要消除掉冗余依赖(如传递依赖)
- 有损无损分解:分解后的关系模式能够还原出原关系模式,就是无损分解,不能还原就是有损
判断方式
- 是否是保持函数依赖:设原关系模式R(A,B,C),依赖集F(A->B,B->C,A->C),将其分解为两个关系模式R1(A,B)和R2(B,C),此时R1中保持依赖A->B,R2保持依赖B->C,说明分解后的R1和R2是保持函数依赖的分解,因为A->C这个函数依赖实际是一个冗余依赖,可以由前两个依赖传递得到,因此不需要管。
- 是否是有损无损分解:如果R的分解为p={R1,R2},F为R所满足的函数依赖集合,分解P具有无损连接性的充分必要条件是R1∩R2->(R1-R2)或者R1∩R2->(R2-R1)。
练习题
【2018年】假设关系模式R(U,F),属性集U={A,B,C),函数依赖集F={A→B,B→C)。若将其分解为p={R1(U1,F1),R2(U2,F2),其中U1={A,B},U2={A,C}。那么,分解p()
A.有损连接但保持函数依赖
B.既无损连接又保持函数依赖
C.有损连接且不保持函数依赖
D.无损连接但不保持函数依赖
答案D
U1∩U2 = A,U1-U2= B,根据依赖集F可以知道A→B成立,所以是无损连接
【2019年】给定关系模式R<U,F>,U={A,B,C,D,E},F={B→A,D→A,A→E,AC→B},则R的候选关键字为(),分解P={R1(ABCE),R2(CD)()。
B.ABD
C.ACD
D.ADE
A.具有无损连接性,且保持函数依赖
B.不具有无损连接性,但保持函数依赖
C,具有无损连接性,但不保持函数依赖
D.不具有无损连接性,也不保持函数依赖
答案A D
候选关键字的求法:根据依赖集,找出从未在右边出现过的属性(有出度没有入度),必然是候选键之一,以该属性为基础,根据依赖集依次扩展,看能香遍历所有属性,将无法遍历的加入候选键中。
因此看F,右边的有A E B,没有出现的是CD。所以候选键必有CD,有没有A或者其他的,可以以CD为基础看能不能推导出其他的属性。
R1∩R2=C,R1-R2=ABE, R2-R1=D,根据F不能推出C→ABE或C→D,所以是有损连接
标准化与知识产权
权利类型和保护期限
知识产权归属
在公司上班,所有权都归公司
单位和委托的区别在于,当合同中未规定著作权的归属时,著作权默认归于单位,而委托创作中,著作权默认归属于创作方个人,具体如下:
侵权判定
中国公民、法人或者其他组织的作品,不论是否发表,都享有著作权 。
开发软件所用的思想、处理过程、操作方法或者数学概念不受保护。
- 著作权法不适用于下列情形:
- 法律、法规、国家机关的决议、决定、命令和其他具有立法、行政、司法性质的文件,及其官方正式译文;
- 时事新闻;
- 历法、通用数表、通用表格和公式。
商业秘密 - 构成条件:未公开、能为权利人带来利益、保密性。
- 商业秘密无固定的保密时间,一般由企业自行规定。且不能延长。
商标权
- "近似商标"是指文字、数字、图形、三维标志或颜色组合等商标的构成要素的发音、视觉、含义或排列顺序及整体结构上虽有一定区别,但又使人难以区分,容易产生混淆的商标。会产生商标侵权,故不能同时注册。由双方协商决定,协商未果后采用抽签方式决定。
引用资料
- 只能引用发表的作品,不能引用未发表的作品;
- 只能限于介绍、评论作品;
- 只要不构成自己作品的主要部分可适当引用资料:不必征得原作者的同意,不需要向他支付报酬。
练习题
【2021年上半年】根据《计算机软件保护条例》的规定,对软件著作权的保护不包括()。
(A)目标程序
(B)软件文档
(C)源程序
(D)开发软件所有的操作方法
答案D
【2021年上半年】甲、乙两互联网公司于2020年7月7日就各自开发的库存管理软件分别申请"宏达"和"鸿达"商标注册,两个库存管理软件相似,甲第一次使用时间为2019年7月,乙第一次使用时间为2019年5月,此情景下,()能获准注册。
(A)"宏达"
(B)"宏达"和"鸿达"均
(C)由甲、乙协商哪个
(D)"鸿达"
答案D
谁先使用归谁
【2021年上半年】A经销商擅自复制并销售B公司开发的OA软件光盘已构成侵权,C企业在未知情形下从A处购入100张并已安装使用,在C企业知道了所使用的软件为侵权复制的情形下,以下说法正确的是()。
(A)C企业的使用行为侵权,须承担赔偿责任
(B)C企业的使用行为侵权,支付合理费用后可以继续使用这100张软件光盘
©C企业的使用行为不侵权,可以继续使用这100张软件光盘
(D)C企业的使用行为不侵权,不需承担任何法律责任
答案B
【2020年下半年】小王是某高校的非全日制在读研究生,目前在甲公司实习,负责了该公司某软件项目的开发工作并撰写相关的软件文档。以下叙述中,正确的是()。
(A)该软件文档属于职务作品,但小王享有该软件著作权的全部权利
(B)该软件文档属于职务作品,甲公司享有该软件著作权的全部权利
©该软件文档不属于职务作品,小王享有该软件著作权的全部权利
(D)该软件文档不属于职务作品,甲公司和小王共同享有该著作权的全部权利
答案B
【2022年】()的保护期限是可以延长的。
A.著作权
B.专利权
C.商标权
D.商业秘密权
答案C
【2022年】55、软件著作人与被许可方签订一份软件使用许可合同。若在该合同约定的时间和地域范围内,软件权利人不得再许可任何第三人以此相同的方法使用该项软件,但软件权利人可以自己使用,则该项许可使用是()。
A.独家许可使用
B.独占许可使用
C.普通许可使用
D.部分许可使用
答案A
【解析】软件许可使用一般有独占许可使用,独家许可使用和普通许可使用三种形式。独占许可使用,许可的是专有使用权。实施独占许可使用后,软件著作权人不得将软件使用双授予第三方,软件著作权人不能使用该软件:独家许可使用,许可的是专有使用权,实施独家许可使用后,软件著作权人不得将软件使用授予第三方,软件著作权人自己可以使用该次件:普通许可使用,许可的是非专有使用权,实施普通许可使用后,软件著作权人可以将软件使用权授予第三方、软件著作权人自己可以使用该软件。本题选择A。
【2022年】以下关于某委托开发软件的著作权归属的叙述中,正确的是( )。
A.该软件的著作权归属仅依据委托人与受托人在书面合同中的约定来确定
B.无论是否有合同约定,该软件的著作权都由委托人和受托人共同享有
C.若无书面合同或合同中未明确约定,则该软件的著作权由受托人享有
D.若无书面合同或合同中未明确约定,则该软件的著作权由委托人享有
答案C
受托人是开发者
有书面合同根据合同约定,没有合同归开发者
【2022年】《计算机软件保护条例》第八条第一款第八项规定的软件著作权中的翻译权是将原软件由 (13) 的权利。
A. 源程序语言转换成目标程序语言
B. 一种程序设计语言转换成另一种程序设计语言
C. 一种汇编语言转换成一种自然语言
D. 一种自然语言文字转换成另一种自然语言文字
答案B
2)计算机软件的若作财产权
著作权中的财产权是指能够给著作权人带来经济利益的权利。财产权通常是指由软件著作权人控制和支配,井能够为权利人带来一定经济效益的权利。《计算机软件保护条例》规定,软件著作权人享有下述软件时产权,
(5)翻译权。翻译是指以不同于原软件作品的一种程序语言转换该作品原使用的程序语言,面重现软件作品内容的创作。简单地说,也就是指将原软韩从一种程序语言转换成另一种程序语言的权利;
【2022年】M公司将其开发的某软件产品注册商标为S,为确保公司在市场竞争中占据优势地位,M公司对员工进行了保密约束,此情形下,该公司不享有 (14) 。
A. 软件著作权
B. 专利权
C. 商业秘密权
D.商标权
答案B
【2023年】12、著作权中,()的保护期不受限制。
A.发表权
B.发行权
C.署名权
D.展览权
答案C
【2023年】13、国际上为保护计算机软件知识产权不受侵犯所采用的主要方式是实施()。
A.合同法
B.物权法
C.版权法
D.刑法
答案C
【2023年】14、以下关于计算机软件著作权的叙述中,不正确的是()。
A.软件著作权人可以许可他人行使其软件著作权,并有权获得报酬
B.软件著作权人可以全部或者部分转让其软件著作权,并有权获得报酬
C.软件著作权属于自然人的,该自然人死亡后,在软件著作权的保护期内、继承人能继承软件著作权的所有权利
D.为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬
答案C
【2023年》34、程序员甲将其编写完成的软件程序发给同事乙并进行讨论,之后由于甲对该程序极不满意,因此甲决定放弃该程序,后来乙将该程序稍加修改并署自己名在某技术论坛发布。下列说法中,正确的是()。
A.乙对该程序进行了修改,因此乙享有该程序的软件著作权
B.乙的行为没有侵犯甲的软件著作权,因为甲已放弃程序
C乙的行为未侵权,因其发布的场合是以交流学习为目的的技术论坛
D.乙的行为侵犯了甲对该程序享有的软件著作权
答案D
网络与信息安全
网络概述与互联硬件
计算机网络的概念
计算机网络:是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。
计算机网络的功能:数据通信、资源共享、负载均衡、提高系统可靠性。
计算机网络的分类:
网络的拓扑结构:
- 总线型:利用率低、干扰大、价格低
- 星型:交换机形成的局域网、中央单元负荷大
- 环型:流动方向固定、效率低、扩充难
- 树型:总线型的扩充、分级结构
- 分布式:任意节点连接、管理难成本高
OSI七层模型
需要记住:
- 七层的名称和顺序
- 记住各层的数据单元
- 各层干的事情
- 各层对应的物理设备
- 各层对应的协议
OSI七层模型从下到上分别是:
- 物理层:二进制bit数据传输,该层包括物理连网媒介,为上层协议提供了一个传输数据的物理媒体,常见的协议有RS-232、RJ-45(水晶头的网线协议)、FDDI(光纤协议)
- 数据链路层:控制网络层与物理层之间的通信,将数据封装成帧 ,传送至局域网内的物理主机上,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路,常见的协议有IEEE802.3、HDLC、PPP等
- 网络层:数据分组传输和路由选择 ,能准确的将数据传送至互联网的网络主机上,将网络地址(IP地址)转对应的物理地址(网卡地址),并决定如何将数据从发送方路由到接收方,常见的协议有IP、ICMP、IGMP、ARP、RARP等
- 传输层:模型中最重要的一层,是第一个端到端 ,即主机到主机的层次,负责将上层数据分段并提供端到端的、可靠的或不可靠的传输,常见的协议是TCP、UDP
- 会话层:管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话,常见的协议有RPC、NFS
- 表示层:应用程序和网络之间的翻译官,提供解释所交换信息含义的服务,包括数据之间的格式转换、压缩、加密等操作,对数据进行处理,常见的协议有JPEG、ASCl、GIF、DES、MPEG
- 应用层:负责为操作系统或网络应用程序提供访问网络服务的接口。应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。浏览器或者说WWW(万维网)也属于应用层;常见的协议有FTP、HTTP、SMTP、Telnet、.DNS、WWW、POP3等;
网络设备和传输介质
网络设备:
- 物理层:中继器(扩大信号)、集线器Hub(多路中继器),这些设备负责原始比特流的传输,确保数据可以在各种物理媒体上传输。
- 数据链路层:网卡、网桥(分析帧地址)、交换机(多口网桥,MC地址表),这些设备在物理层提供的服务基础上,向网络层提供服务,确保数据可靠地传输到相邻节点的目标机网络层。
- 网络层:路由器(连接多个逻辑上分开的网络,路由选择)、防火墙,这些设备通过寻址来建立两个节点之间的连接,包括通过互连网络来路由和中继数据
- 应用层:网关(连接不同类型且协议差别较大的网络,协议转换)
传输介质:
- 有线介质:双绞线(最大长度100m,每端需要一个RJ45水晶头)、同轴电缆、光纤。
- 无线介质:微波、红外线、激光和卫星通信。
组建网络的组成部分:服务器、客户端、网络设备、通信介质、网络软件。
练习题
例:以下关于网络层次与主要设备对应关系的叙述中,配对正确的是(7)。
A.网络层一一集线器
B.数据链路层一一网桥
C.传输层一一路由器
D.会话层一一防火墙
答案B
【2022年】在OSI参考模型中,()在物理线路上提供可靠的数据传输。
A.物理层
B.数据链路层
C.网络层
D.传输层
答案B
【2023年】在0SI参考模型中,负责对应用层消息进行压缩、加密功能的层次为()。
A.传输层
B.会话层
C.表示层
D.应用层
答案C
网络协议与标准
网络协议
局域网的协议:
- IEEE802.3标准以太网(CSMA/CD),速度为10Mbps,传输介质为同轴电缆;
- IEEE802.3u为快速以太网,速度为100Mbps,传输介质为双绞线;
- IEEE802.3z为千兆以太网,速度为1000Mbps,传输介质为光纤或双绞线。
- IEEE802.4令牌总线网和IEEE802.5令牌环网。
- 无线局域网CSMA/CA(载波侦听多路访问方法)。
广域网的协议:
- 点对点协议PPP:拨号上网
- 数字用户线xDSL:ADSL上传网速和下载网速不对等,下载网速一般很快
- 数字专线DDN:市内或长途的数据电路
- 帧中继:以为传输单位
TCP/IP介绍
TCP/IP作为Internet的核心协议,被广泛应用于局域网和广域网中,包含许多重要的基本特性,主要表现在以下几个方面:逻辑编址、路由选择、域名解析、错误检测和流量控制以及对应用程序的支持等。
- 逻辑编址:每一块网卡在出厂时就由厂家分配了一个独一无二的永久性的物理地址。在Internet中,为每台连入因特网的计算机分配一个逻辑地址,这个逻辑地址被称为P地址。
- 路由选择:在TCPP中包含了专门用于定义路由器如何选择网络路径的协议,即IP数据包的路由选择。
- 域名解析:将域名映射为P地址的操作称为域名解析。域名具有较稳定的特点,而P地址较易发生变化。
- 错误检测和流量控制:检测数据信息的传输错误(保证到达目的地的数据信息没有发生变化),确认已传递的数据信息已被成功地接收,监测网络系统中的信息流量,防止出现网络拥塞。
TCP/IP分层模型
- 应用层:具体应用功能
- 传输层:提供应用程序间端到端的通信
- 网际层:又称IP层,处理网络中机器间的通信
- 网络接口层:又称为数据链路层,负责接收IP数据包并把数据包通过选定的网络发送出去
TCP/IP协议族
必考:每层对应的协议
- 网际层协议:
- IP:最重要核心的协议,无连接、不可靠。
- ICMP:因特网控制信息协议,用来检测网络通信是否顺畅。
- ARP和RARP:地址解析协议,ARP是将P地址转换为物理地址,RARP是将物理地址转换为IP地址。
- 传输层协议:
- UDP协议:不可靠连接,因为数据传输只管发送,不用对方确认,因此可能会有丢包现象。一般用于视频、音频数据传输。
- TCP协议:可靠连接,因为有验证机制,每发送一个数据包,都要求对方回复确认:初始建立连接,有三次握手机制,断开连接有四次挥手机制
- 应用层协议:
- 基于TCP的FTP、HTTP等都是可靠传输。基于UDP的DHCP、DNS等都是不可靠传输,
- FTP:可靠的文件传输协议。
- HTTP:超文本传输协议,用于上网。使用SSL加密后的安全网页协议为HTTPS。
- SMTP和POP3:邮件传输协议,邮件报文采用ASC格式表示。
- Telnet:远程连接协议。
- TFTP:不可靠的小文件传输协议。
- SNMP:简单网络管理协议,使用的是无连接的UDP协议。
- DHCP:动态分配IP地址协议,客户机V服务器模型,租约默认为8天,当租约过半时,客户机需要向DHCP服务器申请续租,当租约超过87.5%时,如果仍然没有和当初提供P地址的DHCP服务器联系上,则开始联系其他DHCP服务器。
DNS:域名解析协议,将域名解析为P地址
DNS服务器:维持域名和P地址对应的表格,层次结构为:本地域名服务器、权威域名服务器、顶级域名服务器、根域名服务器。
输入网址(即域名)后,首先会查询本地DNS缓存,无果后再查询本地,DNS服务器又分为递归查询和迭代查询两种方式。
- 主机向本地域名服务器的查询采用递归查询
- 本地域名服务器向根域名服务器的查询通常采用迭代查询。(依据是域名服务器是否空闲)
练习题
例:某用户在使用校园网中的一台计算机访问某网站时,发现使用域名不能访问该网站,但是使用该网站的地址可以访问该网站,造成该故障产生的原因有很多,其中不包括(69)。
A.该计算机设置的本地DNS服务器工作不正常
B.该计算机的DNS服务器设置错误
C.该计算机与DNS服务器不在同子网
D.本地DNS服务器网络连接中断
答案C
例:通常工作在UDP协议上的应用是(69)
69.A.浏览网页
B.Telneti远程登录
C.VolP
D.发送邮件
答案C
【2022年】下列协议中,可以用于文件安全传输的是(7)。
A.FTP
B.SFTP
C.TFTP
D.ICMP
答案B
【2022年】在TCP/IP协议栈中,远程登录采用的协议为(32)。
A.HTTP
B.TELNET
C.SMTP
D.FTP
答案B
【2022年】下列不属于电子邮件收发协议的是(34)。
A.SMTP
B.POP3
C.IMAP
D.FTP
答案D
【2023年】www的控制协议是(66)。
A.FTP
B.HTTP
C.SSL
D.DNS
答案B
【2023年】SNMP的传输层协议是(69)。
A.UDP
B.TCP
C.IP
D.ICMP
答案A
Internet及应用
IP地址
机器中存放的IP地址是32位的二进制代码,每隔8位插入一个空格,可提高可读性,为了便于理解和设置,一般会采用点分十进制方法来表示:将32位二进制代码每8位二进制转换成十进制,就变成了4个十进制数,而后在每个十进制数间隔中插入.,如下所示,最终为128.11.3.31:
因为每个十进制数都是由8个二进制数转换而来,因此每个十进制数的取值范围为0-255(掌握二进制转十进制的快速计算方法,牢记2的幂指数值,实现快速转换)。
IPv6
IPv6主要是为了解决IPv4地址数不够用的情况而提出的设计方案,IPv6具有以下特性:
- IPv6地址长度为28位,地址空间增大了296倍:
- 灵活的P报文头部格式,使用一系列固定格式的扩展头部取代了Pv4中可变长度的选项字段。Pv6中选项部分的出现方式也有所变化,使路由器可以简单略过选项而不做任何处理,加快了报文处理速度:
- IPv6简化了报文头部格式,加快报文转发,提高了吞吐量;
- 提高安全性,身份认证和隐私权是Pv6的关键特性:
- 支持更多的服务类型
- 允许协议继续演变,增加新的功能,使之适应未来技术的发展。
IPv4和IPv6的过渡期间,主要采用三种基本技术:
- 双协议栈:主机同时运行IPv4和IPv6两套协议栈,同时支持两套协议,一般来说IPv4和IPv6地址之间存在某种转换关系,如IPv6的低32位可以直接转换为IPv4地址,实现互相通信。
- 隧道技术:这种机制用来在IPv4网络之上建立一条能够传输IPv6数据报的隧道,例如可以将IPv6数据报当做IPv4数据报的数据部分加以封装,只需要加一个IPv4的首部,就能在IPv4网络中传输IPv6报文。
- 翻译技术:利用一台专门的翻译设备(如转换网关),在纯IPV4和纯IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPV4和纯IPv6站点之间能够透明通信。
练习题
【2022年】以下关于IP地址和MAC地址说法错误的是(70)
A.IP地址长度32或128位,MAC地址的长度48位
B.IP地址工作在网络层,MAC地址工作在数据链路层
C.IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商
D.IP地址具有唯一性,MAC地址不具有唯一性
答案D
网络安全
信息安全基础知识
信息安全包括5个基本要素:机密性、完整性、可用性、可控性与可审查性◇
- 机密性:机密性指的是信息只能被授权的人员或实体访问,防止未经授权的人获取敏感信息。
- 完整性:确保信息在传输或存储过程中不被篡改或损坏,保持其准确性和完整性。
- 可用性:确保信息和资源在需要时可供访问和使用,避免因服务中断或不可用性导致的损失。
- 可控性:是指对系统或信息进行管理和控制,确保只有授权的人员可以进行合法的操作。
- 可审查性:指对系统和操作进行监控和审查的能力,记录和跟踪系统中发生的事件,以便追查和解决安全问题
计算机病毒和木马
计算机病毒:编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
病毒具有:传染性、隐蔽性、潜伏性、破坏性、针对性、衍生性、寄生性、未知性。
木马:是一种后门程序,常被黑客用作控制远程计算机的工具,隐藏在被控制电脑上的一个小程序监控电脑一切操作并盗取信息。
病毒和木马种类:
- 系统引导型病毒;
- 文件外壳型病毒:
- 目录型病毒;
- 蠕虫病毒(感染EXE文件):熊猫烧香,罗密欧与朱丽叶,恶鹰,尼姆达,冲击波。木马:QQ消息尾巴木马,特洛伊木马。宏病毒(感染word、exce等文件中的宏变量):美丽沙,台湾1号。CH病毒:史上唯一破坏硬件的病毒。红色代码:蠕虫病毒+木马。
防火墙
防火墙是在内部网络和外部因特网之间增加的一道安全防护措施,它认为内部网络是安全的,外部网络是不安全的。分为网络级防火墙和应用级防火墙,两级之间的安全手段如下所示:
- 网络级防火墙层次低,但是效率高,因为其使用包过滤和状态监测手段,一般只检验网络包外在(起始地址、状态)属性是否异常,若异常,则过滤掉,不与内网通信,因此对应用和用户是透明的。但是这样的问题是,如果遇到伪装的危险数据包就没办法过滤。
- 应用级防火墙,层次高,效率低,因为应用级防火墙会将网络包拆开,具体检查里面的数据是否有问题,会消耗大量时间,造成效率低下,但是安全强度高。包括双宿主主机、屏蔽主机网关、被屏蔽子网等方法。
- 被屏蔽子网方法,是在内网和外网之间增加了一个屏蔽子网,相当于多了一层网络,称为DMZ(非军事区),这样,内网和外网通信必须多经过一道防火墙,屏蔽子网中一般存放的是邮件服务器、WEB服务器这些内外网数据交互的服务器,可以屏蔽掉一些来自内部的攻击,但是完全来自系统内部服务器的攻击还是无法屏蔽掉。
练习题
【2022】下列不属于计算机病毒的是(8)。
A.永恒之蓝
B.蠕虫
C.特洛伊木马
D.DDOS
答案D
【2022】以下关于杀毒软件的描述中,错误的是(9)。
A.应当为计算机安装杀毒软件并及时更新病毒库信息
B.安装杀毒软件可以有效防止蠕虫病毒
C.安装杀毒软件可以有效防止网站信息被篡改
D.服务器操作系统也需要安装杀毒软件
答案C
【2022】通过在出口防火墙上配置(10)功能可以阻止外部未授权用户访问内部网络。
A.ACL
B.SNAT
C.入侵检测
D.防病毒
答案A
【2023年】以下关于入侵检测系统功能的描述中,不正确的是(10)。
A.监测并分析用户和系统的网络活动
B.匹配特征库识别已知的网络攻击行为
C.联动入侵检测系统使其阻断网络攻击行为
D.检测僵尸网络,木马控制等僵尸主机行为
答案C
【2023年】web应用防火墙无法有效保护(11)。
A.登录口令暴力破解
B.恶意注册
C.抢票机器人
D.流氓软件
答案D
【2023年】某电脑无法打开任意网页,但是互联网即时聊天软件使用正常,造成该故障的原因可能是(70)。
A.IP地址配置错误
B.DNS配置错误
C.网卡故障
D,链路故障
答案B
结构化开发方法
系统分析与设计概述
结构化开发方法:结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
- 结构化分析是用数据流图来建立系统的功能模型。
- 结构化设计是用软件结构图来建立系统的物理模型,实现系统的概要设计。
- 结构化程序设计使用3种基本控制结构构造程序。
系统分析:是一种问题求解技术,它将一个系统分解成各个组成部分,目的是研究各个部分如何工作、交互,以实现其系统目标。
目的和任务:系统分析的主要任务是对现行系统进一步详细调查,将调查中所得到的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需的资料,并提交系统方案说明书(系统分析报告)。
系统设计基本原理
系统设计基本原理:
- 抽象:把现实中的业务抽象到信息系统中
- 模块化:可组合、分解和更换的单元
- 信息隐蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中
- 模块独立:每个模块完成一个相对独立的特定子功能,且与其他模块之间的联系简单
模块的设计要求独立性高,就必须高内聚,低耦合
- 内聚是指一个模块内部功能之间的相关性
- 耦合是指多个模块之间的联系
内聚
考点需要记
内聚程度从低到高如下表所示:
内聚分类 | 定义 | 记忆 |
---|---|---|
偶然内聚 | 一个模块内的各处理元素之间没有任何联系 | 无直接关系 |
逻辑内聚 | 模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能 | 逻辑相似、参数决定 |
时间内聚 | 把需要同时执行的动作组合在一起形成的模块。 | 同时执行 |
过程内聚 | 一个模块完成多个任务,这些任务必须按指定的过程程序执行 | 指定的过程顺序 |
通信内聚 | 模块内的所有处理元素都在同一个任务 | 相通数据结构、相通输入输出 |
顺序内聚 | 一个模块中各个处理元素都密切相关同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入 | 顺序执行、输入为输出 |
功能内聚 | 最强的内聚,模块内的所有单元共同作用完成一个功能,缺一不可 | 共同作用、缺一不可 |
耦合
考点需要记
耦合程度从低到高如下表所示:
耦合分类 | 定义 | 记忆 |
---|---|---|
无直接耦合 | 两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,不传递任何信息。 | 无直接关系 |
数据耦合 | 两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。 | 传递数据值调用 |
标记耦合 | 两个模块之间传递的是数据结构 | 传递数据结构 |
控制耦合 | 一个模块调用另一个模块时,传递的是控制变量 | 软件外部环境 |
外部耦合 | 模块间通过软件之外的环境联合(如I/O将模块耦合到特定的设备、格式、通信协议上) | 软件外部环境 |
公共耦合 | 通过一个公共数据环境相互作用的那些模块间的耦合 | 外部公共数据 |
内容耦合 | 当一个模块直接使用另一个模块的内部数据。或通过非正常入口转入另一个模块内部时 | 模块内部关联 |
练习题
【2022年】若模块A和模块B通过外部变量来交换输入、输出信息,则这两个模块的耦合类型是(31)耦合。
A.数据
B.标记
C.控制
D.公共
答案D
【2023年】若模块A通过控制参数来传递信息给模块B,从而确定执行模块B中的哪部分语句。则这两个模块的耦合类型是()耦合
A.数据
B.标记
C.控制
D.公共
答案A
结构化分析
结构化特点:自顶向下,逐步分解,面向数据。
三大模型:功能模型(数据流国)、行为模型(状态转换四)、数据拱型(E-R国)以及数据字典。
数据流图
数据流图DFD基本图形元素:外部实体、加工、数据存储、数据流。
- 数据流:由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向必须经过加工。
- 加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的
三种错误如图所示- 加工3.1.2有输入但是没有输出,称之为"黑洞"
- 加工3.1.3有输出但没有输入。称之为""奇迹"。
- 加工3.1.1中输入不足以产生输出,我们称之为"灰洞"。
- 数据存储:用来存储数据。
- 外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。