• 软考重点8 面向对象及数据库


    在这里插入图片描述

    一、面向对象的基本概念

    1. 基本概念

    • 对象:程序系统中运行的实体;
    • 类:类是象的抽象,对象是类的具体化;
    • 继承:类之间的传递关系,父子之间共享数据和方法的机制;分为单重继承和多重继承;
    • 重置/重写/覆盖:一种 动态绑定机制,使子类继承父类的同时,转换父类的实现;
    • 消息:对象之间的通信构造;
    • 消息传递:接收到信息的对象经过解释予以响应。
    • 多态:收到同样的消息,不同对象可以产生不同的结果,有过载多态、通用多态、特定多态 ;

    2. 面向对象的基本过程

    1. 面向对象分析:OOA
    2. 面向对象设计:OOD
    3. 面向对象程序开发:OOP
    4. 面向对象测试: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 <表名> (<列名><数据类型>[列级完整性约束条件]
                 (<列名><数据类型>[列级完整性约束条件] ……
                 [, 表级完整性约束条件]);
    
    • 1
    • 2
    • 3

    约束性条件:

    • NULL , NOT NULL
    • UNIQUE
    • PRIMARY KEY(列名)
    • FOREIGN KEY(列名1) REFERNCES 表名2 (列名2)

    (2)修改

    ALTER TABLE <表名>
    [ADD <新列名><数据类型><列级完整性约束条件>]
    [DROP<列名/完整性约束条件>]
    [MODIFY/CHANGE<列名><数据类型>]
    [CHANGE<列名><新列名><数据类型>]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (3)删除表

    DROP TABLE <表名>
    
    • 1

    (4)数据插入

    INSERT INTO <表名> [(<属性列>,
        [,<属性列>……)]
        VALUES(<常量1>[,<常量2>]……);
    
    
    • 1
    • 2
    • 3
    • 4

    (5)修改数据

    UPDATE <表名>
    SET <列名>=<表达式>,[<列名>=<表达式>]……
    [WHERE <条件>];
    
    • 1
    • 2
    • 3

    (6) 删除数据

    DELETE FROM <表名>
    [WHERE <条件>];
    
    • 1
    • 2

    (7)创建索引

    • CREATE
    • ALTER
    • DROP
    • UNIQUE
    • CLUSTERED
    • NONCLUSTERED
    • ASC
    • DESC
    CREATE UNIQUE INDEX 索引名 ON 表名(字段名)
    
    • 1

    (8)查询语句

    SELECT [ALL|DISTINCT] <目标表达式>[<目标表达式>]……
    FROM <表名>[<表名>]……
    [WHERE <条件表达式>]
    [GROUP BY <列名1> [HAVING<条件表达式>]]
    [ORDER BY <列名2> [ASC|DESC]……];
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (9)查询语句——连接、嵌套查询

    SELECT Sno, Sname 
    FROM S,SC
    WHERE S.Sno=SC.Sno AND SC.Cno='C1';
    
    • 1
    • 2
    • 3

    (10)分组查询GROUP BY

    SELECT Sno, AVG(Grade) 
    FROM SC
    GROUP By Sno
    HAVING AVG(Grade)>=60
    ORDER BY S.Sno DESC;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (11)别名

    AS子句,如:

    SELECT Sname as Sname1 FROM S
    
    • 1

    (12) LIKE 模糊查询

    SELECT Sname , Sno 
    FROM S
    WHERE SName LIKE '_明'        --下划线表示匹配单个字符, %表示匹配多个字符
    
    • 1
    • 2
    • 3

    11. 数据库的控制

    1. 并发控制

    多用户共享的系统中,多用户同时对同一数据进行操作。

    并发产生的问题:
    • 丢失更新
    • 不可重复读数据
    • 读“脏”数据
    解决方案——封锁协议
    • S封锁:共享锁、读锁,加S锁后可以再加S锁,不能加X锁;
    • X封锁:排他锁、写锁,加X锁后不能加其它任何锁;
    • 两段锁协议
    死锁
    • 预防
    • 死锁的解除
    事物的性质
    • 原子性:要么全操作、要么全不操作;
    • 一致性
    • 隔离性:事务间相互隔离;
    • 持久性

    2. 故障恢复

    数据库中的4类故障:

    • 内部故障
    • 系统故障
    • 介质故障
    • 计算机病毒

    3. 完整性

    数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不合语义的数据;

    4. 安全性

    保护数据库不受恶意访问,即防止不合法的使用所千万的数据泄漏、更改、破坏。

  • 相关阅读:
    JVM运行时数据区——直接内存
    【Hadoop大数据技术】——HDFS分布式文件系统(学习笔记)
    多线程------实际篇
    数据链路层
    赶紧进来!!!干货满满!!C语言操作符详细讲解(下)
    SpringBoot轻轻松松搞定用户邮箱登录注册
    Java线程与锁-2
    深度寻路四方向
    浅谈IT运维-服务目录
    现在健身耳机哪个牌子好、2023年最好的健身房耳机推荐
  • 原文地址:https://blog.csdn.net/xundh/article/details/127639973