软考重点8 面向对象及数据库
Posted 编程圈子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软考重点8 面向对象及数据库相关的知识,希望对你有一定的参考价值。
软考重点8 面向对象及数据库
- 一、面向对象的基本概念
- 二、UML
- 三、设计模式
- 四、数据库
一、面向对象的基本概念
1. 基本概念
- 对象:程序系统中运行的实体;
- 类:类是象的抽象,对象是类的具体化;
- 继承:类之间的传递关系,父子之间共享数据和方法的机制;分为单重继承和多重继承;
- 重置/重写/覆盖:一种 动态绑定机制,使子类继承父类的同时,转换父类的实现;
- 消息:对象之间的通信构造;
- 消息传递:接收到信息的对象经过解释予以响应。
- 多态:收到同样的消息,不同对象可以产生不同的结果,有过载多态、通用多态、特定多态 ;
2. 面向对象的基本过程
- 面向对象分析:OOA
- 面向对象设计:OOD
- 面向对象程序开发:OOP
- 面向对象测试:OOT
二、UML
1. UML基本概念
UML是统一建模语言。
(1)UML 三要素:
- 基本构造块
- 放置规则
- 语言公共机制
(2)UML构造块:
- 事物:对模型中最有代表性的成分的抽象,如类、接口、构件;
- 关系:事物结合在一起,如泛化、聚集;
- 图:聚集相关的事物
2. 事务
(1)结构事物
类、接口、协作、用例、主动类、组件、节点
(2)行为事物
UML模型中的动态部分,描述了跨越时间和空间的行为,如交互(Interaction)、状态机(State machine)和活动(Activity)。
(3)分组事务
UML的组织部分,如包(Package)。
(4)注释事务
UML模型中的解释部分。
3. UML关系
- 依赖关系
- 泛化关系(继承)
- 关联关系
- 聚合关系:整合与部分生命周期不同。
- 组合关系:整体与部分生命周期相同。
- 实现关系:接口与类之间的关系。
4. UML图
- 类图:静态视图,展现一组对象、接口、协作及其之间的关系;
- 对象图:静态视图,一组对象和对象间的关系;
- 用例图:静态视图,用例、参与者及它们之间的关系;
- 组件图:静态视图,一组构件之间的组织和依赖,专注于系统的静态实现视图;
- 部署图:静态视图,运行处理结点以及构件的配置给出体系结构的静态实施视图;
- 序列图:动态视图,以时间为序描述对象间的交互活动;
- 状态图:动态视图,展现了一个状态机,由状态、转换、事件和活动组成;
- 活动图:动态视图,一个活动到另一个活动的流程;
- 交互图:动态视图,用例活动的对象如何交互;
- 定时图:动态视图,对象在改变状态时时间约束条件;
- 包图:包管理
- 组合结构图:分解类、组件或用例的内部结构
- 通信图:强调收发消息的对象之间的组织结构
三、设计模式
开发人员面对一般问题的解决方案
1. 创建型
- 工厂方法(factory method)
- 抽象工厂(abstract factory)模式
- 原型模式(prototype)
- 单例(singleton)模式:保证一个类只有一个实例
- 构建器模式(builder)
2. 行为型模式
- 职责链(chain of responsibility)模式
- 命令(command)模式
- 解释器(interpreter)模式
- 迭代器(iterator)模式
- 中介者(mediator)模式
- 备忘录(memento)模式
- 观察者(observer)模式
- 状态(state)模式
- 策略(strategy)模式
- 模板方法(template method)模式
- 访问者(visitor)模式
3. 结构型模式
- 适配器(adapter)模式
- 桥接(bridge)模式
- 组合(composite)模式
- 装饰(decorator)模式
- 外观(facade)模式
- 享元(flyweight)模式
- 代理(proxy)模式
四、数据库
1. 数据库系统的基本概念
- 数据:描述事物的符号记录,可以是文字、图形、图像、声音和语言等;
- 数据库:数据集合
- 数据库管理系统DBMS:由数据库、硬件、软件和人员组成;
- 大数据:无法用拥有的工具提取、存储、搜索、共享和处理的海量的、复杂的数据集合,特点有:大量化(Volume)、快速化(Velocity)、多样化(Variety)、价值密度低(Value)
2. 三层模式两层映射
(1)三层模式:
- 外模式
- 概念模式
- 内模式
(2)两层映射:
外模式/模式映射
定义在外模式描述中,保证逻辑独立性。
模式/内模式映射
定义在模式描述中,把描述全局逻辑结构的模式与描述物理结构的内模式联系起来,保证物理独立性。
3. 数据库的设计过程
4. 数据模型
(1)概念数据模型/信息模型
- E-R模型(实体联系模型)
(2)基本数据模型
- 层次模型(Hierarchical Model):树型结构
- 网状模型(Network Model)
- 关系模型(Relational Model):用二维表结构描述
- 面向对象模型(Object Oriented Model):采用面向对象的方法来设计数据库
(3)数据模型的三要素
数据结构
所研究的对象类型的集体,是对象静态特性的描述。
数据操作
对数据库中对象所允许操作的集体,对系统动态特性的描述。
数据的约束条件
一组完整性的集合,包含:
- 实体完整性约束:主键不能取空值
- 参照完整性约束(引用完整性):实体之间的联系,如外键;
- 用户自定义完整性约束:针对某一具体的关系数据库的约束条件,由环境决定。
5. 数据流图
(1)概念
一种结构化的设计工具,以图形的方式描述数据在系统中流动和处理的过程
- 外部实体:系统中数据的外部来源和去处;
- 加工:对数据的逻辑处理功能;
- 数据存储:数据保存到的文件或表;
- 数据流:加工功能的输入数据或输出数据;
(2)其它需求分析工具
- 数据字典:定义数据流图中各个成分的具体含义;
- 判定表:描述加工逻辑,对于不同条件的不同处理方式;
- 判定树:与判定表相同,也能用于表示问题逻辑中的条件和动作的对应关系。判定树用内部节点表示问题中的条件,用叶子节点表示活动,用根节点表示问题的名字。
6. 概念模型(E-R模型)
(1)实体
实体集是相同属性的实体集合。每个实体有一组特性(属性)来表示。
(2)属性
- 简单属性和复合属性
- 单值属性和多值属性
- Null属性
- 派生属性
(3)联系
- 两个不同实体集之间的联系
- 两个以上不同实体集之间的联系
- 同一实体内的二元联系
7. 规范化模型-主键
- 主键是唯一的,用来保持数据完整性;
- 复合键:将多个列作为一个索引键,一般用于复合索引;
- 外键:用于与另一张表建立关联。能确定另一张表记录的字段,保持数据的一致性,用于和其他表建立联系;
- 索引:用来加快查询速度
8. E-R图转关系模式
- 一个实体型转换为一个关系模式
- 联系转关系模式:
-
- 1:1 联系: 可将联系合并至任何一端的实体关系模式中;
-
- 1:n 联系: 可将联系合并至n端实体关系模式中;
-
- m:n 联系: 联系必须单独转换成关系模式。
- 三个以上实体间的一个多元联系
9. 关系运算
(1)列、行概念
- 列:一列包含相同的数据
- 行:一组相关的数据
(2)并、交、差(结构相同)
- 并:行数据合并;
- 交:数据相同的部分;
- 差:S1-S2,从S1中减去在S2中存在的行;
- 笛卡尔积:列是S1与S2合并 , 行是S1每一行与S2每一行合并;
- 投影:选择所需要的列;
- 选择:选择需要的行;
- 自然连接:S1与S2取相同的列(记C)合并,然后取C值相同的行(数据库左连接操作);
10. SQL 语言
(1)创建表
CREATETABLE <表名> (<列名><数据类型>[列级完整性约束条件]
(<列名><数据类型>[列级完整性约束条件] ……
[, 表级完整性约束条件]);
约束性条件:
- NULL , NOT NULL
- UNIQUE
- PRIMARY KEY(列名)
- FOREIGN KEY(列名1) REFERNCES 表名2 (列名2)
(2)修改
ALTER TABLE <表名>
[ADD <新列名><数据类型><列级完整性约束条件>]
[DROP<列名/完整性约束条件>]
[MODIFY/CHANGE<列名><数据类型>]
[CHANGE<列名><新列名><数据类型>]
(3)删除表
DROP TABLE <表名>
(4)数据插入
INSERT INTO <表名> [(<属性列>,
[,<属性列>……)]
VALUES(<常量1>[,<常量2>]……);
(5)修改数据
UPDATE <表名>
SET <列名>=<表达式>,[<列名>=<表达式>]……
[WHERE <条件>];
(6) 删除数据
DELETE FROM <表名>
[WHERE <条件>];
(7)创建索引
- CREATE
- ALTER
- DROP
- UNIQUE
- CLUSTERED
- NONCLUSTERED
- ASC
- DESC
CREATE UNIQUE INDEX 索引名 ON 表名(字段名)
(8)查询语句
SELECT [ALL|DISTINCT] <目标表达式>[<目标表达式>]……
FROM <表名>[<表名>]……
[WHERE <条件表达式>]
[GROUP BY <列名1> [HAVING<条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]……];
(9)查询语句——连接、嵌套查询
SELECT Sno, Sname
FROM S,SC
WHERE S.Sno=SC.Sno AND SC.Cno='C1';
(10)分组查询GROUP BY
SELECT Sno, AVG(Grade)
FROM SC
GROUP By Sno
HAVING AVG(Grade)>=60
ORDER BY S.Sno DESC;
(11)别名
AS子句,如:
SELECT Sname as Sname1 FROM S
(12) LIKE 模糊查询
SELECT Sname , Sno
FROM S
WHERE SName LIKE '_明' --下划线表示匹配单个字符, %表示匹配多个字符
11. 数据库的控制
1. 并发控制
多用户共享的系统中,多用户同时对同一数据进行操作。
并发产生的问题:
- 丢失更新
- 不可重复读数据
- 读“脏”数据
解决方案——封锁协议
- S封锁:共享锁、读锁,加S锁后可以再加S锁,不能加X锁;
- X封锁:排他锁、写锁,加X锁后不能加其它任何锁;
- 两段锁协议
死锁
- 预防
- 死锁的解除
事物的性质
- 原子性:要么全操作、要么全不操作;
- 一致性
- 隔离性:事务间相互隔离;
- 持久性
2. 故障恢复
数据库中的4类故障:
- 内部故障
- 系统故障
- 介质故障
- 计算机病毒
3. 完整性
数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不合语义的数据;
4. 安全性
保护数据库不受恶意访问,即防止不合法的使用所千万的数据泄漏、更改、破坏。
以上是关于软考重点8 面向对象及数据库的主要内容,如果未能解决你的问题,请参考以下文章