软考基础知识点(持续更新中)

张开发
2026/5/25 14:04:44 15 分钟阅读
软考基础知识点(持续更新中)
基础知识7.面向对象技术错误点1.边界对象负责与外部参与者用户、其他系统交互。 如登录界面、API接口、命令行输入处理器。 功能接收输入 → 转换为内部格式 → 传递给控制/实体对象。 控制对象处理业务逻辑。 实体对象代表持久化数据如数据库记录。2.重置和覆盖的区别 重载 就是函数或方法有同样的名称但是参数列表不相同的情形这样的同名不同参数的函数或者方法之间互相称之为重载函数和方法 重置重写 是在子类中重新定义父类中已经定义的方法这是一种动态绑定机制3.动态和静态绑定 动态绑定运行时 静态绑定编译时4.“实例化”包含分配内存初始化两个步骤5.面向对象针对接口编程而不是针对实现编程6.类属是一种参数多态机制 “强调的是...与具体类型无关的那些部分” → 指的是算法逻辑、数据结构组织方式等不依赖具体类型的代码。 如链表节点指针操作、数组扩容策略、迭代器遍历逻辑等。 这部分对所有T都一样 → 复用性强 “与具体类型相关的部分则用变元来表示” → “变元”即“类型参数”TypeParameter如T、E、K,V。 例如Titem;、publicvoidadd(Telement);编译器会在实例化时将T替换成真实类型如String并做类型检查。1.多态多态类型子类型关键机制决策时机举例通用多态参数多态泛型 / 类型变量编译期ListT,identity(x)包含多态继承 动态绑定运行期Animal a new Dog()特定多态过载多态方法重载编译期print(int),print(String)强制多态隐式类型转换编译期/运行期5 3,int → double2.重置和覆盖的区别特性重载 (Overloading)重写/重置 (Overriding)发生范围同一个类中父类与子类之间方法名相同相同参数列表必须不同 (类型/个数/顺序)必须完全相同返回类型可以不同 (但不能仅靠返回类型区分)必须相同或是其子类型 (协变返回类型)访问修饰符可以不同子类权限不能低于父类 (如父类是public子类不能是private)绑定时间编译时 (静态绑定)运行时 (动态绑定)主要目的方便调用处理不同输入修改行为实现多态8.数据库错误点1.数据库的三级模式概念模式Schema也称为模式Mode是数据库中全体数据的逻辑结构和特征的描述。它由若干个概念记录类型组成只涉及行的描述不涉及具体的值。概念模式的一个具体值称为模式的一个实例同一个模式可以有很多实例。外模式External Schema也称为用户模式或子模式是用户与数据库系统的接口是用户用到的那部分数据的描述由若干个外部记录类型组成。描述外模式的数据定义语言称为外模式DDL。内模式Internal Schema也称为存储模式是数据物理结构和存储方式的描述是数据在数据库内部的表示方式定义所有的内部记录类型、索引和文件的组织方式以及数据控制方面的细节。描述内模式的数据定义语言称为内模式DDL。总结概念模式全局逻辑结构描述所有数据的逻辑结构和特征。外模式用户视图描述用户用到的那部分数据。三级模式结构通过将数据库的逻辑结构和物理存储分离开来提高了数据的独立性和安全性。2.3.逻辑透明也称为局部数据模型透明分片透明用户只需对全局关系进行操作不用关心数据如何分片存储和“局部数据模型”无关。复制透明用户不用知道数据的复制情况比如数据是否有多个副本、副本存放在哪里等和数据模型无关。位置透明用户不用知道数据存放在哪个物理位置哪个站点和数据模型无关。逻辑透明也叫局部数据模型透明指用户或应用程序无需知道局部场地使用的是哪种数据模型系统会自动处理不同数据模型的差异对上层应用屏蔽底层数据模型的不同。4.数据模型三要素数据结构它是所研究的对象类型的集合是对系统静态特性的描述。例如在关系模型中数据结构体现为“表”的形式包含表的字段属性、字段类型等静态信息。数据操作它是对数据库中各种对象型的实例值允许执行的操作集合包括操作及操作规则是对系统动态特性的描述。例如对表的操作包括“增INSERT”“删DELETE”“改UPDATE”“查SELECT”等动态行为。数据的约束条件这是一组完整性规则的集合要求具体的应用数据必须遵循特定的语义约束条件以保证数据的正确、有效、相容。例如主键约束保证记录唯一、外键约束保证表间关联的有效性、非空约束保证字段值存在等都是常见的约束条件。5.E-R模型6.冲突命名冲突意义相同在不同系统中有着不同的命名 结构冲突同一实体在不同的子系统中有着不同的属性 属性冲突同一属性在不同系统中属性的类型取值范围或者数据单位等不一致7.属性的再理解1.简单属性是原子的不可再分的属性如学号姓名性别年龄2.复合属性可以细分为更小的部分3.单值属性对于一个特定的实体只有单独的一个值如学生的学号姓名性别4.多值属性一个属性可能对应一组值如家庭成员 派生属性是从其他属性得来的8.转换转换规则回顾1.实体转换每个实体S, D, C都转换为一个关系模式表。* S(学号, 姓名, 性别, 入学时间, 联系方式)* D(院系号, 院系名称, 电话号码, 负责人)* C(课程号, 课程名)2.联系转换* 对于一对多 (1:∗1:*1:∗) 联系转换规则是将“一”端实体的主键作为外键Foreign Key加入到“多”端实体的关系模式中。* 对于多对多 (∗:∗*:*∗:∗) 联系必须创建一个新的关系模式表该表的主键由两个参与实体的主键共同组成。9.关系代数并减交笛卡尔积选择和投影自然连接和除除法1.确定公共2.找出非公共元素3.确定取值集合10.范式1.部分和完全函数依赖一、核心定义1. 完全函数依赖Full Functional Dependency定义若X是关系模式的候选码或码的一部分Y是非主属性且Y依赖于X的全部属性不能仅依赖其中一部分则称Y完全函数依赖于X。记号X→FYX \xrightarrow{F} YXF​Y关键点去掉X中的任何一个属性Y就不再被唯一确定。2. 部分函数依赖Partial Functional Dependency定义若Y依赖于X但Y实际上只依赖于X的某个真子集则称Y部分函数依赖于X。记号X→PYX \xrightarrow{P} YXP​Y关键点X中存在冗余属性Y并不需要全部X属性就能被确定。二、判定逻辑以候选码为复合码为例设候选码为X(A,B)X (A, B)X(A,B)Y为非主属性依赖类型依赖表达式是否满足2NF说明完全依赖(A,B)→Y(A,B) \rightarrow Y(A,B)→Y且A↛YA \not\rightarrow YA→YB↛YB \not\rightarrow YB→Y✅ 满足Y必须同时由A和B共同决定部分依赖(A,B)→Y(A,B) \rightarrow Y(A,B)→Y但A→YA \rightarrow YA→Y或B→YB \rightarrow YB→Y❌ 不满足Y只依赖A或B中的一个存在冗余✅2NF要求所有非主属性必须完全函数依赖于候选码不能存在部分依赖。单属性码不可能产生“部分依赖”因为没有“部分”可言没有非主属性自然不存在“非主属性对码的部分依赖”或“传递依赖”。所以它满足 3NFBCNF要求每一个决定因素都包含候选码即所有函数依赖的左部必须包含候选码。2.候选码在关系数据库理论中候选码的定义是能够唯一标识关系中每一个元组的最小属性集。针对题目R(A,B,C,D)R(A, B, C, D)R(A,B,C,D)及函数依赖集F{B→A, BC→D}F \{ B \rightarrow A, \ BC \rightarrow D \}F{B→A,BC→D}判断BCBCBC是候选码的原因如下1. 唯一性Uniqueness候选码必须能决定关系中的所有属性即闭包包含所有属性。已知属性BBB和CCC。推导过程由BBB可以推出AAA根据B→AB \rightarrow AB→A。由BBB和CCC可以推出DDD根据BC→DBC \rightarrow DBC→D。结论从BCBCBC出发可以推导出AAA和DDD最终得到{A,B,C,D}\{A, B, C, D\}{A,B,C,D}。因为BCBCBC的闭包(BC){A,B,C,D}(BC)^ \{A, B, C, D\}(BC){A,B,C,D}说明BCBCBC能够唯一确定关系中的所有数据满足唯一性要求。2. 最小性Minimality候选码必须是“最小”的即不能从候选码中去掉任何一个属性否则就无法唯一标识元组。去掉BBB只剩下CCC仅凭CCC无法推导出其他任何属性CCC不在任何函数依赖的左部。CCC的闭包C{C}C^ \{C\}C{C}显然不包含所有属性。去掉CCC只剩下BBB由BBB可以推出AAA得到{A,B}\{A, B\}{A,B}。但是BBB无法推出CCC和DDD。BBB的闭包B{A,B}B^ \{A, B\}B{A,B}不包含所有属性。结论BBB和CCC都是必不可少的缺一不可满足最小性要求。为什么它不是其他属性组合为什么BBB不是候选码如上所述BBB只能推出AAA无法推出CCC和DDD。如果只有BBB我们不知道对应的CCC是什么也无法确定DDD的值。为什么AAA或DDD不是候选码AAA和DDD都是被决定的属性出现在函数依赖的右部它们无法决定其他属性更不可能决定整个关系。总结因为BCBCBC既能决定所有属性唯一性又不能去掉其中任何一个属性最小性所以BCBCBC是该关系模式的候选码。3.各阶段设计需求分析确定需求。概念设计ER图。逻辑设计将ER图转换为关系模式并规范化。物理设计存储结构。4.无损连接并保持函数依赖的分解1.无损连接Lossless Join通常使用“表格法”或观察交集是否能推出差集。2.保持函数依赖Dependency Preservation所有原始的函数依赖必须能在分解后的子模式中被逻辑蕴含。

更多文章