【期末复习】大二下系列 公共课专业课 复习笔记合集

news2024/9/22 19:34:47

计算机网络

老师划重点

第一章 计算机网络概述

1.3 互联网概述(概念,因特网四个阶段)

因特网四个阶段:

  1. 因特网草案
  2. 建议标准
  3. 草案标准
  4. 因特网标准

1.5 计算机网络的主要性能指标

1.6 计算机网络体系结构(三种划分和各自功能、分层的作用、协议和服务、TCP/IP体系结构对应关系)

OSI标准结构:物联网淑慧适用(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)

IP/TCP结构:应用层、传输层、网际层、网络接口层

五层协议体系结构的各层主要功能:

  1. 应用层:通过应用间的交互来完成特定的网络应用,报文。
  2. 运输层:向两台主机中进程之间的通信提供通用的数据传输服务,TCP报文段,UDP用户数据报。
  3. 网络层:为分组交换网上的不同主机提供通信服务,IP数据报。
  4. 数据链路层:封装成帧透明传输差错检测,帧。
  5. 物理层:负责比特流的传输,比特。

网络体系结构就是计算机网络的层次结构模型与各层协议的集合。

分层结构的优势:

  1. 各层之间是独立的
  2. 灵活性好
  3. 结构上下可以分隔开
  4. 易于实现和维护
  5. 有利于功能复用
  6. 能促进标准化工作

协议和服务:协议是控制对等实体之间通信的规则,服务是由下层向上层通过层间接口提供的。

第二章 物理层

2.2.4 传输方式

2.4 信道复用技术(重点)

第三章 数据链路层

3.4.1 CSMA/CD协议

载波监听多址接入/碰撞检测,半双工通信,适用于有线局域网

3.5 网桥(透明学习算法)

第四章 网络层

4.2 网际协议(地址解析协议、IP数据报的格式和转发、地址分配)

4.3.1 ICMP报文的种类

4.4 互联网的路由选择协议(重点,RIP的定义和工作流程)

4.6.2 NAT(基本方法)

4.9.2 IPv6的基本首部(4和6)

第五章 运输层

全是重点,其中UDP和TCP重要,TCP的可靠传输重要,拥塞控制重要,注意快恢复算法。

第六章 应用层

DNS、FTP、动态主机配置协议

王道课程笔记

概述

计算机网络概述

ARPA → ARPAnet阿帕网 → 互连网 →互联网

ISP:因特网服务提供商

计算机网络:利用通信线路和交换设备将地理位置分散的、具有独立功能的多台计算机连接起来,按照某种协议进行数据通信、实现资源共享的信息系统。

资源包括:软件、硬件、数据

计算机网络分类:

数据交换方式:电路交换、报文交换和分组交换(后两者是存储转发方式

  1. 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
  2. 当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
  3. 从信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信

分层体系结构

OSI参考模型:从下到上,物联网淑慧适用(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)

  1. OSI定义三点:服务、协议、接口
  2. OSI先出现,参考模型先于协议发明,不偏向特定协议
  3. TCP/IP以开始就对面向连接和无连接服务并重,而OSI在开始时只强调面向连接服务。
  4. TCP/IP参考模型:网络接口层,网际层,传输层,应用层

物理层

物理层概述及通信基础

物理层:在连接各种计算机的传输媒体上传输数据比特流,确定与传输媒体接口有关的一些特性。

四大特性(械气工程):机械特性,电气特性,功能特性,规程特性。

数据通信基础

通信系统包含源系统、传输系统和目的系统,传输系统中传输的是模拟系统,而源系统和目的系统中的是数字信号,数字信号由码元组成。

调制解调器就是Modem,就是猫。

码元:指的是用一个固定时长的信号波形,代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,时长成为码元宽度。

当码元的离散状态有M个时,码元为M进制码元。8进制码元可以用3个二进制数字表示,因此很好算,log2一下即可。

码元传输速率(波特率):是单位时间内传输的码元个数,单位是波特Baud(B)。

编码与调制

这里的差分曼彻斯特编码,是指在时钟周期开始时跳变则为0,不变则为1,跳变就是这个周期开始前后线的位置发生变化。

极限数据传输率

出现信噪比就选香农公式,要先用信噪比公式求出S/N。

信道复用技术

上图中,右上是频分复用(FDM),右下是时分复用(TDM),时分复用还有一个类型叫做统计时分复用(STDM),每统计到有两个信号(如AB),就作为一个STDM帧发送出去。

波分复用(WDM)就是光的频分复用,码分复用(CDM)是用多维向量形式来传输信号的复用。

传输介质及物理层设备

数据链路层

链路层概述及重要协议

链路层的信道类型

一对一:点对点信道

一对多:广播信道

链路层要解决的问题:封装成帧、透明传输、差错监测(密封、透气性差)

差错检测

解决方法:循环冗余检验CRC

数据链路层重要协议:PPP协议

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议(用户计算机和ISP进行通信时所使用的协议)。

PPP协议实现透明传输的方法:

  • 异步传输|面向字符:字节填充法
  • 同步传输|面向比特:零比特填充法(五个1填一个0)

数据链路层重要协议:CSMA/CD协议

重要网络及链路层设备

局域网:LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。

以太网:使用CSMA/CD(载波监听多路访问及冲突检测)技术。

计算机通过适配器(网卡)连接到以太网。

链路层设备

网桥转发表

虚拟局域网:由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段有某些共同的需求,因此就被放在同一个VLAN里,以太网交换机可以通过以太网帧中的VLAN标记对不同VLAN的主机进行数据转发。

冲突域&广播域

网桥、交换机有几个接口,就有几个冲突域,路由器有几个接口,就有几个广播域。

网络层

网络层概述及IP地址

网络层概述:网络层向上只提供灵活的、无连接的、尽最大努力交付的数据报服务,主要任务是把分组(IP数据报)从通过路由选择与转发从源端传到目的端,为分组交换网上的不同主机提供通信服务,互联网可以由多种异构网络互连组成

IP数据报格式

下面是一个例子:

IP地址

三个进阶阶段:

  1. 分类的IP地址:最基本的编址方法
  2. 子网划分:最基本编址方法的改进
  3. 无分类编址CIDR:比较新的无分类编址方法

分类的IP地址

网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。

子网划分

对于三级IP地址(网络号、子网号、主机号),子网掩码就是将网络号和子网号全设置为1,主机号的一部分设置为0。

给出IP地址和其子网掩码,要求子网的网络地址,就是将IP地址和子网掩码逐位相与:

子网划分的五类题型

  1. 已知主机IP地址和子网掩码,求网络号
  2. 已知主机IP地址和子网掩码,求子网、主机最多有多少个
  3. 已知网络号,X位子网号,求子网掩码
  4. 已知网络号,要分成X个子网,求子网掩码和IP地址范围
  5. 已知子网掩码,求哪些IP地址属于同一个子网

这道题就是将IP地址和子网掩码相与,易知IP地址的前三段是直接保留做网络号的一部分,所以只需要将子网掩码的最后一段化为二进制,和主机IP地址的最后一段二进制相与,得到结果为120,选C。

这就相当于给你IP地址和子网掩码,求一下网络号,然后用这个网络号去再划分子网,由于网络号必须是子网掩码中为0的地方,在这道题中,网络号有4位;

现在要从四位的网络号中再分出子网号和主机号,而且要尽可能多,由于主机号不能只有一位(全零和全一不能作为主机号),因此子网号设置2位,主机号设置2位,这样就可以划分四个子网,每个主机号除去全零和全一后剩下的就是2。

这道题求的是子网掩码,题目说用8位二进制位作子网地址,因此子网掩码很显然就是:

255.255.0.0

C类地址,说明前三项不用管,最后一段的8位要划分为子网号和主机号,要分成6个子网,最少需要3位,因此把这三位设为1,其余设为0,可知答案位C

各自相与后的网络号相同的就属于同一个子网。

无分类编址CIDR

路由聚合:求最长前缀网络号

网络层重要协议

ICMP

ARP

路由选择协议

应用层

应用层对应用程序的通信提供服务。

域名解析系统DNS

查找一个网址,需要从本地域名服务器查到根域名服务器、顶级域名服务器,最后是权限域名服务器,有递归查询和递归与迭代相结合两种查询方式,前者一条路走到黑,从本地出发后,一个一个的巡回。

FTP协议

DHCP 动态主机配置协议

第一章 概述

计算机网络的分类

  • 按交换技术分类:电路交换网络、报文交换网络、分组交换网络
  • 按使用者分类:公用网、专用网
  • 按覆盖范围分类:广域网WAN、城域网MAN、局域网LAN、个域网PAN

制定互联网的正式标准的四个阶段:

  1. 因特网草案(这个阶段还不是RFC文档)
  2. 建议标准(这个阶段开始成为RFC草案)
  3. 草案标准
  4. 互联网标准

计算机网络可以向用户提供哪些服务?

  1. 连通服务:指计算机网络使上网用户之间可以交换信息,好像这些用户的计算机可以彼此直接连通一样。
  2. 资源共享:用户可以共享计算机网络上的信息资源、软件资源和硬件资源。

因特网的组成:

  1. 边缘部分,由所有连接在因特网上的主机组成,这部分是用户直接使用的,用来进行通信和数据共享;
  2. 核心部分,由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的。

路由器处理分组的过程是:

  1. 把收到的分组先放入缓存(暂时存储);
  2. 查找转发表,找出到某个目的地址应从哪个端口转发;
  3. 把分组送到适当的窗口转发出去。

电路交换的三个步骤:

  1. 建立连接(分配通信资源),从主叫端到被叫端建立连接,也就是建立一条专用的物理通路;
  2. 通话(一直占用通信资源),在通话的全部时间里,通话的两个用户始终占用端到端的通信资源;
  3. 释放连接(归还通信资源)。

电路交换的优缺点:

优点:

  • 通信时延小
  • 有序传输
  • 没有冲突
  • 适用范围广
  • 实时性强
  • 控制简单

缺点:

  • 建立连接时间长
  • 线路独占,使用效率低
  • 灵活性差
  • 难以规格化

电路交换和分组交换

分组交换的优点:

  • 高效 动态分配传输带宽,对通信链路是逐段占用;
  • 灵活 以分组为传送单位和查找路由;
  • 迅速 不必先建立连接就能向其他主机发送分组;
  • 可靠 保证可靠性的网络协议,分布式的路由选择协议使网络有很好的生存性。

分组交换带来的问题:

  • 分组在各结点存储转发时需要排队,这就会造成一定的时延;
  • 分组必须携带的首部也造成一定的开销。

速率

  • 比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位;
  • bit来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个1或0;
  • 速率即数据率(data rate)或比特率(bit rate),单位是b/s,或Mb/s,Gb/s.(这里的M就是2^20,G就是2^30)

带宽

  • 数字信道所能传送的最高速率,单位也是bps。
  • 总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

五层协议的体系结构

  • 应用层
  • 运输层
  • 网络层
  • 数据链路层
  • 物理层

第二章 物理层

物理层的作用:数据传输模型,数据在计算机中多采用并行传输方式。

物理层的特性:

  • 机械特性
  • 电气特性
  • 功能特性
  • 过程特性

香农公式的含义和计算

第五章 运输层

概述

  • 之前的物理层、数据链路层以及网络层这三层共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信
  • 但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程
  • 如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。
  • 运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道
  • 根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章要讨论的主要内容。

运输层端口号、复用和分用的概念

  • 简单来说,复用就是打包,分用就是解包
  • 端口号只具有本地意义,只是为了标识本计算机应用层中的各进程,在因特网中,不同计算机中的相同端口号是没有联系的
  • 下面就是复用和分用的过程:

  • TCP/IP体系中的应用层常用协议所使用的运输层熟知端口号:

UDP和TCP的对比

UDP:

  • 无连接
  • 支持一对一、一对多、多对一和多对多交互通信
  • 面向报文,对应用层交付的报文直接打包
  • 尽最大努力交付,也就是不可靠;不使用流量控制和拥塞控制
  • 首部开销小,仅8字节

TCP:

  • 面向连接
  • 每一条TCP连接只能有两个端点EP,只能是一对一通信
  • 面向字节流
  • 可靠传输,使用流量控制和拥塞控制
  • 首部最小20字节,最大60字节

TCP的流量控制

  • 一般来说,我们总是希望数据传输得快一些,但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失;
  • 流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收
  • 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制,
  • TCP接收方利用自己的接收窗口的大小来限制发送方发送窗口的大小;
  • TCP发送方收到接收方的零窗口通知后,会启动持续计时器,超时后,向接收方发送零窗口探测报文

TCP的拥塞控制

TCP可靠传输的实现

下面是例题:

答案是B,第三段的序号是900,说明第三段的首部是900,第二段丢失了,第一段正常到达,确认序号应该是按序到达的段的后一个序号,因此就是第二段的首部序号,第二段长度为400,由900-400=500,因此主机乙发送给主机甲的确认序号是500.

TCP的运输连接管理

TCP的连接建立

TCP是面向连接的协议,它基于运输连接来传送TCP报文段。

TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。

TCP的运输连接有以下三个阶段:

  1. 建立TCP连接
  2. 数据传送
  3. 释放TCP连接

TCP的运输连接管理就是使运输连接的建立和释放都能正常地进行。

TCP使用三报文握手建立连接,TCP的连接和建立都是采用客户服务器方式,主动发起连接建立的应用进程叫做客户,被动等待连接建立的应用进程叫做服务器:

  1. A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号x,表明下一个报文段的第一个数据字节的序号是x+1;
  2. B的TCP收到连接请求报文段后,如果同意,则发回确认,在确认报文段中使SYN=1和ACK=1,其确认号应为ack=x+1,并随机选择序号seq=y;
  3. A收到此报文段后,向B给出确认,其ACK=1,序号应为seq=x+1,确认号应为ack=y+1;
  4. A的TCP通知上层应用进程,连接已经建立;
  5. 当运行服务器进程的主机B的TCP收到主机A的确认后,也通知其上层应用进程,连接已经建立。

TCP的连接释放

第一个u和v:

u:它的值等于TCP客户进程之前已传送过的、数据的最后一个字节的序号+1;

v:它的值等于TCP客户进程之前已收到过的、数据的最后一个字节的序号+1。

为什么TCP客户进程要有时间等待状态?

举一个TCP客户进程没有时间等待状态的例子:

因此,时间等待状态以及处于该状态2MSL时长可以确保TCP服务器进程可以收到最后一个TCP确认报文而进入关闭状态。另外,TCP客户进程在发送完最后一个TCP确认报文段后,再经过2MSL时长,就可以使本次连接持续时间内所产生的所有报文都从网络中消失,这样就可以使下一个新的TCP连接中,不会出现旧连接中的报文段。

保活计时器的作用:

TCP报文段的首部格式

TCP报文段的首部格式如下:

源端口:占16比特,写入源端口号,用来标识发送该TCP报文段的应用进程

目的端口:占16比特,写入目的端口号,用来标识接收该TCP报文段的应用进程

序号:占32比特,取值范围为【0,2^32-1】,序号增加到最后一个后,下一个序号就又回到1。作用是指出本TCP报文段数据载荷的第一个字节的序号

确认号:占32比特,取值范围为【0,2^32-1】,确认号增加到最后一个后,下一个确认号就又回到1。作用是指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认

数据偏移:占4比特,以4字节为单位。用来指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远,实际上是指出了TCP报文段的首部长度(注意是以4字节为单位)。

保留:占6比特,保留为今后使用,目前应设置为0.

紧急标志位URG(urgency):取值为1时紧急指针字段有效,取值为0时紧急指针字段无效。

确认标志位ACK:取值为1时确认号字段才有效,取值为0时确认号字段无效。TCP规定,在连接建立后所有传送的TCP报文段都必须把ACK置为1.

推送标志位PSH:接收方的TCP收到该标志位为1的报文段会尽快上交应用进程,而不必等到接收缓存都填满后再向上交付。

复位标志位RST(reset):用来复位TCP连接。当RST=1时,表明TCP连接出现异常,必须释放连接,然后再重新建立连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个TCP连接。

同步标志位SYN:在TCP连接建立时用来同步序号。

终止标志位FIN:用来释放TCP连接。

窗口字段窗口值=min(接收窗口,拥塞窗口)。占16比特,指出发送本报文段的一方的接收窗口,流量控制的手段。

下面是选项:

第六章 应用层

应用层概述

客户-服务器方式和对等方式

客户-服务器方式

对等方式

动态主机配置协议DHCP

DHCP的作用

数据库

老师的笔记

第二章

第2章 课堂讲义

1.知识回顾

数据模型:

数据结构

数据操作

数据约束

2.关系型数据库:ch2-ch6

关系模型:

数据结构:

关系表--ch2

二维表-关系表-table

记录-行-元组

字段--属性-列

属性/列:取值的数据类型和长度要相同

key-码-关键字:

几种:

超码:几个属性的集合,取值唯一

可能会有多余的属性

一个表里有多个

(sno,sname)

(sno,sname,sage)

(sname,sage)--不是

候选码:对超码最小化,去掉多余的属性

一个表里可能有多个

sno,ID

主码:当前使用的候选码

一个表里有1个

sno

如何保证主码的取值唯一性?

作用:取值唯一,

识别并快速定位到某一条记录

建立索引--快速查询

一般情况下,每个表都要有主码

外码:

数据操作:

关系代数-理论上--ch6

SQL--ch3-ch5

数据约束:

ch2,ch5

(1)实体完整性规则:DBMS自动完成

对主码的取值的检查-唯一性

只需要定义主码,DBMS自动完成

第三章

Ch3--课堂笔记

1.知识回顾

select ---6

from r1 ---1

where 筛选条件 ---2

group by ---3

having 筛选条件 ---4

order by ---5

空值:设计表尽量避免,程序

2.嵌套查询

(1) select

from

where

id in (select

from

where)

(2)select

from (select

from

where)

where

(3)select (select

from

where)

from

where

(1)集合成员资格: 不相关子查询:

谓词:in 和 not in

(2)集合的比较: 不相关子查询:

谓词: >,<,some,any,all

(3) 测试空关系: 相关子查询

谓词:exists,not exist

作用:测试子查询的结果是否为空关系

子查询是否查到了数据

返回值:如果子查询有数据---返回T

如果子查询没有数据---返回F

子查询:select *

嵌套查询的执行顺序:父查询和子查询

不相关子查询:

子查询先执行,父查询后执行

相关子查询:

父查询先执行,子查询后执行

not exist:除法

第五章

第5章 高级SQL - 课堂笔记

1.知识回顾

权限管理: DBMS系统-提供了角色分组进行用户权限管理

不方便管理,自定义权限

权限管理很重要,每一个系统都有权限管理

用程序去实现权限管理:反应及时,

前后端分离开发:

后端:Java,权限框架-RBAC权限模型-shiro

前端:vue -router路由

2.存储过程:一个特殊的函数

作用:更大

可以直接在DBMS端调用--call

也可以在程序端调用--java

使用存储过程更多

优点:

(1)保护重要的业务逻辑--银行,金融

(2)减少了网络数据传输量:

java--存储过程名

(3)利于系统维护:

重要的业务逻辑-变化--DBMS-存储过程

3.函数:

可以有参数,必须要有返回值,

用select调用或在查询使用,

只能在直接在DBMS端调用

DBA--维护数据、查询数据

4.触发器

完整性约束:简单的--一个表

触发器--更加复杂的完整性要求:跨表之间数据的完整性

工资表--发生变化时---记录谁做的修改操作

--记录到新表 log

A ---B,C,D都变

触发器:

建立在某个表上,一个表可以有多个触发器;

触发动作:更新表,insert,update,delete

select-不行

DBMS-触发器--在多个表里传递数据

--临时表

JDBC

课堂笔记--编程语言访问DBMS

1.编程语言访问DBMS的一般过程

try catch

--API--建立连接(连接字符串)

--编写查询语句-字符串--

调用命令类-执行SQL---接收结果-关闭连接对象

2.SQL注入攻击问题

SQL命令---多个字符串拼接而成,

故意利用SQL语法--去构造正确的SQL,但是非法的操作

string uname = txt1.value()

string pwd= txt2.value()

SQL-- 字符串--“select * from st where"+

"sname="uname +

"and password = "+pwd

SQL---永真查询

-- ;

3.参数化SQL/预编译SQL

在实际开发中,SQL命令---全部用参数化的方式去写

SQL-- 字符串--“select * from st

where

sname=?

and password = ?”

防范SQL注入攻击问题:

参数化SQL

UI 格式校验-; -- ,设置文本框长度

DBMS--权限管理

程序里--格式校验

4.编程语言调用存储过程

5.实际开发中--Mybaits框架--持久层

分层开发

UI---业务层---Mybaits-数据访问层dao/mapper

SQL和JAVA完全分离:所有的SQL---写到.xml

SQL和JAVA半分离:

注解 @select --简单的SQL

.xml----复杂的SQL

maven:项目管理工具--管理jar包

小测---3-5

第八章

第8章 课堂笔记

1.范式的种类:衡量数据表质量的一组标准

第一范式(1NF)----级别最低

第二范式(2NF)

第三范式(3NF)

BC范式 (BCNF):实践中的最高标准--3.5NF

第四范式(4NF)

第五范式(5NF)----级别最高,标准最严

理论上,一个关系模型 R 如果满足5NF的要求,

那这个关系模型质量最好的

实践中的最高标准--BCNF

表达:R in 3NF, R 满足 3NF, R 属于符号 3NF,

R not in 3NF, R 不满足 3NF, R 不属于符号 3NF,

记住:

R如果满足高级别的范式的要求,那么它也一定满足低级别的范式要求;

R满足3NF,R一定满足 2NF;

R满足2NF,R不一定满足 3NF;

2.函数依赖(重点):表示R上属性集之间的约束关系

y=f(x):x的值知道--y的值也就知道了

x的取值--决定了--y的值

x-->y:x的取值决定了y的值---函数依赖

3.码的形式化的定义

R:关系模式

超码:K K-->R

候选码:K不一定是候选码

超码里可能有多余的属性

对超码化简--候选码

做题:R(A,B,C,D),

AB是不是候选码?

:

AB是不是超码?AB-->R?

A是不是超码? A-->R?

B是不是超码? B-->R?

4.平凡函数依赖:

在任何关系的任何时刻都成立

5.函数依赖的集合F,

在关系R上成立的所有的函数依赖的集合---F的闭包

R上属性集之间的依赖:

函数依赖:2组---重点

多值依赖:3组

连接依赖:连接查询

6. BCNF的定义---也是判断一个R是否满足BCNF依据?

(1)把R上成立的函数依赖都写出来

10个F:x-->y

(2)对每一个F做判断: x-->y

判断它是否是平凡的函数依赖

或者:

求出超码

判断x是不是超码?

7.主属性---构成候选码的属性

候选码:ID----ID

(SNO,CNO)---sno,cno

课堂笔记--Ch8 关系数据库设计

1.学期综合实践的安排

(1)答辩时间:7.1日 上午

(2)提交报告、代码:7.3日 23.55分前

2.逻辑蕴涵

一个关系表质量不好---有不好函数依赖

----在判断R是否属于 3NF,BCNF

--用到在R上成立的函数依赖

问题:R上成立的函数依赖很重要

----函数依赖正不正确?已知的F对不对?

-----还有没有一些重要的函数依赖?还有没未知F?

3.判断一个未知的函数依赖在R上是否成立?

可以使用5个推导规则

(1)先求F的闭包,然后判断--F闭包太大

--F+===函数依赖的闭包

(2)直接使用推导规则推导,有困难

(3) 先求属性集的闭包,然后判断(要掌握)

x--->b1

x--->b2

x--->b3

x——>b1b2b3

x的闭包: x+=(b1b2b3)---属性集的闭包

ID--->name

ID--->dept_name

ID+==(name,dept_name)

X--->Y ? 在R(10)上成立?

(1)求属性集X的闭包:推导规则--会求出

属性集X===所有的属性10

(2)判断Y是否包含在X的闭包?

包含---X--->Y---在R上成立

不包含----X--->Y---在R上不成立

AG+=AGBCHI

X是不是候选码?

X---超码

X有没有多余属性?

第8章 课堂笔记

2. CH8

要判断 R 是否属于 3NF,BCNF?--主要根据函数依赖来判断:

思考:(1)函数依赖正确/未知函数依赖?

(2)已知的函数依赖的集合是否是最小化的?

F进行了化简---F 正则覆盖== F的最小集

得到在R上的一组F:

F集合里每一个函数依赖都是正确的

F里的每一个函数依赖都是不可缺少的

逻辑蕴涵:

从已知的F出发,推导出未知的函数依赖

推导规则:

自反,增广,传递,合并,分解

推导方法有3种:

直接证明---困难

求出F闭包--判断------困难

求属性集X的闭包---掌握--简单

问题:

在R上,属性(ABCDE),F={ A-->B, D-->E }

问:

(1) 一个函数 AB--->C 是否被F逻辑蕴涵?

(1.1) AB+ =(AB)

(1.2) C不属于AB+ ,所有AB--->C 不被 F 逻辑蕴涵

问:

(2)求出 R 的候选码--属性集x的闭包

(2.1)求超码

K+ == ABCDE =R ---K 是超码

确定K是谁:

从函数依赖的决定因素(左边的属性)来考虑

A+ = AB

--->增广律--> ADC+ = ABDEC = R

所以,ADC就是超码,也是候选码

D+ =DE --->增广律--> ADC+ = ABDEC = R

(2.2) 对复合属性构成超码进行化简

分别求出超码的真子集的闭包

3.函数依赖的最小集--正则覆盖

如果熟练---直接推导--推理规则---F的最小集

如果不熟练---图8-9的算法--繁琐--正确

(3)对 F 进行最小化

(4)判断R的范式级别,是否属于BCNF?

不属于

(5)将 R 分解为BCNF.--优化

期末复习

第16周 课堂笔记

1.小测:星期五上课时进行第3次小测

ch7-ch14

2.判断: R 满足 3NF/BCNF?

3.优化R的表结构 数据库10个表

R 是满足3NF/BCNF ---ok - 实际使用

R 不满足3NF/BCNF --不能实际使用-

优化--提升R的范式级别3NF/BCNF

模式分解(数据库设计的优化)

(1)R 向 BCNF分解

优化的结果: R(Fmin=6) -->R1,R2,R3,....Rn Fmin=6

R(100条)-->R1,R2,R3,

无损连接: R1*R2*R3-(100)=R(100)---更重要

保持函数依赖: R(Fmin=6) -->R1,R2,R3,....Rn Fmin=6

R1,R2,R3,....Rn 属于 BCNF

测试:R(XYZ) 是否属于BCNF

X-->Y

求出R的超码

第一次判断:R1(XY)---BCNF,R2(XZ)?

第二次判断:R2(XZ),F

求出R2的超码

R21---BCNF,R22?

R-->R1,R21,R22

(2)R 向 3NF分解

优化的结果: R -->R1,R2,R3,....Rn

R1,R2,R3,....Rn 属于 3NF

步骤:

(1)求出R的候选码

(2) 求F的最小集--5个

(3) R1(XY,F=X-->Y),R2(XY,F=X-->Y),R3(),R4(),R5()

(4)判断R的候选码是否包含在某一个子关系里?

如果包含:R--R1..R5

如果不包含:R--R1..R5+R6(候选码)

关系型数据库:ch1-ch6

ch1:概述

数据库?

冗余?

数据视图:1.3

数据模型:

数据抽象:(重点)

物理层

DBMS做映射----数据的物理独立性

逻辑层

create view -数据的逻辑独立性

视图层---java

DBA:

关系模型三要素:

数据结构:

数据操作:

完整性约束:

CH7:

基本概念:

实体

实体集

联系集:

联系的类型

画出ER图--转换成一组关系表--指出主码

ch8:

函数依赖

3NF,BCNF

范式之间的关系

属性集闭包

候选码的求解

F最小集的求解

Ch13:

事务:ACID特性

数据不一致的4种:

隔离级别:

ch14:

并发控制:

锁机制:基本锁的类型,锁的粒度

两阶段锁协议:

数据库恢复:

故障的类型:

基本思想:冗余

两种数据的冗余:

日志文件:更新操作

数据库文件:备份的类型

规则:先写日志,再写数据库

我的笔记

第一章 数据库系统介绍

数据库系统:一个完整的用于管理数据的系统环境

数据库管理系统:是这个环境中用于实际管理和操作数据的软件。

数据模型:描述下列内容的工具集合(例如关系模型)

  • 数据 data
  • 数据关系 data relationships
  • 数据语义 data semantics
  • 数据约束 data constraints

数据模型三要素:

  • 数据结构:数据的组织方式
  • 数据操作:如何读取数据
  • 数据约束:如何保障数据的正确性

DDL数据定义语言

第二章 关系模型介绍

2.1 关系数据库的结构

关系是无序的。

2.3 码

为什么要有码:理论上要求,必须有一种方法来区分一个关系中的不同元组,一个关系中不能有两个元组在所有属性上取值完全相同,码就是用来区分关系中任意两条元组的。

主码约束(实体完整性约束):非空不同

外码约束(参照完整性规则):或取空值,或等于另一个元组的主码值。

总之,超码是可以标识不同关系的元组,候选码是最小不可划分的超码,主码是被选中的候选码。

两个约束:主码约束(实体完整性规则),外码约束(参照完整性规则)

第三章 SQL语言

SQL语言.pdf

第六章 关系代数

重点:会用关系代数写查询语句

1.六种基本运算符

2.各种关系代数的基本用法

(1)选择:返回的是符合条件的元组的一个元组,同select

如图是从instructor表中查找名为物理且工资大于九万的元组,倒着的A就是and。

在选择谓词中可以用比较运算符和 与或非。

(2)投影:返回的是一个或多个值。与选择复合使用,在选择返回的基础上选择某些属性。

如图是在instructor表中查找物理系的教师并返回他的名字。

(3)笛卡尔积

返回的是两个表的元组一一组合的表,可以与上述两个操作结合起来。

等价于:

返回的是教师的信息和这名教师开的课。

(4)并,差,交:可以与上述的操作结合。

并:

差:

交:

(5)赋值运算(符号为⬅)

第七章 ER模型

ER模型可以定义:实体集、联系集、属性

一个数据库可以建模为:实体和集合、实体间联系的集合

映射基数:描述一个实体通过联系集关联另一个实体的个数

对于二元联系集,映射基数必为下列类型之一:一对一、一对多、多对一、多对多

弱实体集不具有主键,依赖于标识实体集,也就是标识性联系;

弱实体集的主码由它所依赖的强实体集的主码加上它的分辨符组成

第八章 关系型数据库设计

如何设计一个达到零差错的数据库?

  • 容易存在的四大问题:删除/插入/更新异常,数据冗余;问题原因:数据间的依赖关系太强
  • 数据依赖:函数依赖、多值依赖、其它依赖
  • 范式
  • 分解模式

无损分解和有损分解:

  • 无损分解:两个小表连接可以得到原来的表,没有增加元组,没有信息损失
  • 有损分解:两个小表连接后得到的表中有原来没有的元组,增加了不确定性,损失了信息

规范化理论:用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常和数据冗余问题。

范式是符合某一种级别的关系模式的集合,关系数据库中的关系必须满足某一范式。

函数依赖的本质:一个关系模式上的一组约束,表达了一组属性的值决定另一组属性的值

候选码具有的性质:表示的唯一性和无冗余性

函数依赖的作用:测试关系的实例,看它是否满足给定的函数依赖,声明合法关系上的约束

平凡函数依赖:能满足所有关系的函数依赖是平凡函数依赖,自身决定自身或自身的一部分

闭包:被F逻辑蕴含的全体函数依赖的集合称为F的闭包,用F+表示F的闭包

范式:符合某一种级别的关系模式的集合

关系数据库中的关系必须满足某一范式

BCNF:消除了函数依赖范围里的所有冗余

就是说,如果发出箭头的里面不包含主码,说明其不是超码。

1NF(第一范式):如果你的数据库表中的所有字段都是不可分割的最小数据单位,那么这个表就满足了第一范式。这意味着每个字段都是原子性的,不能再细分为更小的数据单位。例如,一个包含用户信息的表,每个字段如姓名、年龄、地址都是不可分割的,就满足了1NF。

2NF(第二范式):在满足1NF的基础上,如果表中的所有非主键字段都完全依赖于主键,而不是仅依赖主键的一部分,那么这个表就满足了第二范式。简单来说,就是表中的每个字段都应该与整个主键有直接关系,不能只与主键的一部分有关系。例如,一个订单表中的订单明细应该与整个订单号有关,而不是只与订单号的一部分有关。

3NF(第三范式):在满足2NF的基础上,如果表中的所有字段不仅完全依赖于主键,而且不存在传递依赖,即非主键字段不依赖于其他非主键字段,那么这个表就满足了第三范式。简单来说,就是表中的每个字段只与主键有直接关系,不能与其他非主键字段有关系。例如,一个订单表中的客户信息不应该依赖于订单明细,而应该直接依赖于订单号。

BCNF(巴斯-科德范式):在满足3NF的基础上,如果对于每一个函数依赖X→Y,X都是候选键,那么这个表就满足了BCNF。简单来说,就是表中的所有函数依赖都是由候选键所决定的,没有任何一个函数依赖是由非候选键所决定的。例如,一个关于课程、教师和教室的表,如果课程决定了教师和教室,那么课程应该是候选键,而不是其他字段。

软件工程

第一大题,名词解释,10题*3分,共30分。其中八个PPT有,两个是软件工程专业应该掌握的,把理解写清楚就好,不用完全准确

第二大题,简答题(简要回答),5题*8分,共40分,需要完全准确。五道题,需求工程×1,结构化分析与设计×1,设计工程×2,软件测试×1,有一道题来自于老师讲的一个案例(数据中心体系架构)

第三大题,综合题(详细回答),2题*15分,共30分。软件测试×1,软件项目管理×1

第一部分 名词解释

  1. 分析模型:是用来分析软件结构的模型,包含了数据字典、数据流图、实体关系图和状态转换图

  1. 数据流图:描述输入数据流到输出数据流的变换过程,用于对系统的功能建模。
  2. 实体 - 关系图:描述数据字典中数据之间的关系,用于系统的数据建模。
  3. 状态转换图:描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况,用于系统的行为建模。
  4. 信息流:包括变换流和事务流。
  5. 资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境。
  6. 概要设计:也就是系统设计和总体设计,主要包括数据类的设计、体系结构的设计和接口的设计。
  7. 详细设计:也就是部件设计,主要包括软件内部的算法以及相应的数据结构。
  8. 逻辑内聚:指完成一组逻辑相关人物的模块,调用该模块时,由传送给该模块的控制型参数来确定该模块应执行哪一种功能。
  9. 数据耦合:两个模块之间仅通过参数表传递简单数据,称之为数据耦合。
  10. 项目管理:是通过项目经理和项目组织的努力,运用系统理论的方法,对项目及其资源进行计划、组织、协调、控制,实现项目的特定目标。
  11. 软件可靠性:一个程序期望以所需的精确度完成它的预期功能的程度。

第二部分 简答题

一、需求规约的原则

  1. 从现实中分离功能,即描述要做什么而不是怎样实现。
  2. 要求使用面向处理的规约语言,定义一个行为模型,从而得到做什么的规约。
  3. 整个系统都包括在规格说明的描述之中。
  4. 规约必须包括系统运行环境
  5. 规约必须是一个认识模型,而不是设计或实现的模型。
  6. 规约必须是可操作的
  7. 规约必须允许不完备性并允许扩充。
  8. 规约必须局部化和松散耦合。

分处归运,认可布局。

二、设计原则

  1. 设计对于分析模型应该是可跟踪的:软件的模块可能被映射到多个需求上
  2. 设计结构应该尽可能地模拟实际问题
  3. 设计应该表现出一致性
  4. 不要把设计当成编写代码
  5. 在创建设计时就应该能够评估质量
  6. 评审设计以减少语义性的错误
  7. 设计应该模块化,将软件逻辑地划分为元素或子系统,并包含数据、体系结构、接口和构建的清晰表示

根模一代,姑婶模块

三、数据中心的体系结构中,平台基础服务有什么?

  1. 数据模型管理
  2. 数据层次关系管理
  3. 数据质量管理
  4. 数据安全服务
  5. 元数据管理
  6. 流程配置管理
  7. 信息集成服务
  8. 日志管理

磨蹭治安,源流吉日

四、分层数据流程的分解原则

  1. 7加减2
  2. 分解应自然,概念合理清晰
  3. 只要不影响DFD的易理解性,可适当多分解几个加工,以减少层数
  4. 一般来说,上层分解得快些(即多分解几个加工),下层分解得慢些(即少分解几个加工)
  5. 分解要均匀

七二自然东分倒,上层下层要均匀

五、软件测试的目的、原则以及完成的标准

目的:

  1. 测试是一个为了发现错误而执行程序的过程
  2. 一个好的测试用例是指很可能找到从未被发现的错误的测试用例
  3. 一个成功的测试用例是指揭示了从未被发现的错误的测试

原则:

  1. 所有的测试都应可追溯到客户需求
  2. 应该在测试工作真正开始前的较长时间就进行测试计划
  3. Pareto原则:测试中发现的80%的错误可能来自于20%的程序代码
  4. 测试应该从小规模开始,逐步转向大规模
  5. 穷举测试是不可能的
  6. 为了达到最有效的测试,应由独立的第三方来承担测试

完成标准:

  1. 使用指定的测试用例设计方法产生测试用例,运行这些测试用例均未发现错误,则测试可终止。
  2. 观察测试阶段中单位时间内发现错误数目的曲线。

第三部分 详答题

英语文学

考试范围、题型和复习方法

三首诗背诵默写

I'm Nobody! Who are you?

I'm Nobody! Who are you?

Are you - Nobody - too?

Then there's a pair of us!

Don't tell! They'd advertise - you know!

How dreary - to Somebody!

How public - like a Frog -

To tell one's name - the livelong June -

To an admiring Bog!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑神话悟空mac可以玩吗

黑神话悟空mac上能不能玩对于苹果玩家来说很重要&#xff0c;那么黑神话悟空mac可以玩吗&#xff1f;目前是玩不了了&#xff0c;没有针对ios系统的版本&#xff0c;只能之后在云平台上找找了&#xff0c;大家可以再观望下看看。 黑神话悟空mac可以玩吗 ‌使用CrossOver‌&…

cdr怎么画虚线?

虚线是以点或者短线画成的断续的线&#xff0c;多用于几何图形或者标记。我们在平常学习工作中经常使用标记的方式。根据国标制图规定 机械制图 图样画法 图线规定&#xff0c;技术图样中&#xff0c;主要使用细虚线和粗虚线两种&#xff0c;细虚线用以表示不可见棱边线和不可见…

Feed流系统重构:架构篇

重构对我而言&#xff0c;最大的乐趣在于解决问题。我曾参与一个C#彩票算奖系统的重构&#xff0c;那时系统常因超时引发用户投诉。接手任务时&#xff0c;我既激动又紧张&#xff0c;连续两天几乎废寝忘食地编码。结果令人振奋&#xff0c;算奖时间从一小时大幅缩短至十分钟。…

半导体行业跨国文件传输解决方案

在数字化浪潮席卷全球的今天&#xff0c;半导体行业无疑是科技创新的先锋。随着对数据传输需求的激增&#xff0c;传统的文件传输协议FTP在处理半导体行业庞大的文件量和复杂的文件结构时显得捉襟见肘。尤其是在跨国文件传输场景中&#xff0c;传统方法已经难以跟上行业的发展步…

你了解什么是场外期权吗?

今天期权懂带你了解你了解什么是场外期权吗&#xff1f;场外期权是指在交易所之外进行交易的期权合约。这类期权通常是由买卖双方通过私人协议进行交易&#xff0c;而不是在标准化的交易所上进行。 场外期权的特点 1.定制化&#xff1a;场外期权合约可以根据交易双方的具体需…

AI写作神器:助力体制内小白轻松完成材料撰写,减少慌张茫然

刚刚进入体制内的工作者&#xff0c;对于公文材料撰写基本无从下手&#xff0c;力不从心&#xff0c;提交稿件后&#xff0c;反馈的问题大多存在结构格式不对、文字口语化&#xff0c;缺少理论依据等&#xff0c;笔者是做互联网的&#xff0c;所以对AI工具比较了解&#xff0c;…

FPGA在AI时代的应用与挑战:《详解FPGA:人工智能时代的驱动引擎》(可下载)

在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;和大数据已经成为了推动技术进步和产业革新的核心力量。在这一浪潮中&#xff0c;FPGA作为一种极具灵活性和强大计算能力的半导体器件&#xff0c;正扮演着越来越重要的角色。 本片文章将为你带来书籍…

战神诸神黄昏9月19日登录PC端! 手机怎么玩战神诸神黄昏

9月19日&#xff0c;《战神&#xff1a;诸神黄昏》正式登录PC端&#xff0c;这是一部动作冒险游戏。要是你想随时随地在手机或平板上也能玩《战神&#xff1a;诸神黄昏》&#xff0c;可以使用网易GameViewer远程帮你实现。 网易GameViewer远程作为一款专为游戏玩家打造的远程软…

智能硬件从零开始的设计生产流程

文章目录 市场分析团队组建ID设计结构设计pcba设计软件开发手板EVT开模DVTPVTMP 智能硬件研发是一个复杂的过程, 当然一件事要发出萌芽必须得有人, 有一天,几个合伙人凑在一起,说一起开发个智能硬件产品吧,于是故事开始了. 市场分析 合伙人: 万物互联的时代, 智能音箱已经成为…

【LeetCode每日一题】2024年9月第二周(下)

2024.9.13 困难 难度评分1917 链接&#xff1a;2398. 预算内的最多机器人数目 &#xff08;1&#xff09;题目描述&#xff1a; &#xff08;2&#xff09;示例 &#xff08;3&#xff09;分析 翻译一下题目&#xff1a;要求我们在给定的 chargeTimes 和 runningCosts 数组以…

ELFK日志分析平台,架构和通信

整个架构&#xff0c;加上跳板机&#xff0c;总共12台机器 技术方案&#xff1a; 1. 配置nfs服务器&#xff0c;为web集群提供共享网络文件系统 # 部署 NFS 服务 [rootnfs ~]# dnf install -y nfs-utils [rootnfs ~]# vim /etc/exports /var/webroot 192.168.1.0/24(rw,…

当代世界最著名的哲学家颜廷利:21世纪全球华人最前沿的思想家教育家

在人类的视觉体验中&#xff0c;仅有两种现象深刻影响着我们的视力&#xff1a;近视与老花。前者多在青少年时期悄然降临&#xff0c;而后者则常伴随中年之后的生活。有趣的是&#xff0c;当我们以创意的眼光观察英文字母时&#xff0c;bd组合呈现出的向下眼镜提醒我们&#xf…

Red Hat 和 Debian Linux 对比

原图的作者(https://bbs.deepin.org/post/209759) Red Hat Enterprise Linux https://www.redhat.com/ CentOS Linux https://www.centos.org/ Fedora Linux https://fedoraproject.org/ Debian https://www.debian.org/ Ubuntu https://cn.ubuntu.com/ https://ubuntu.c…

【C++ | tips】const Date* operator() const中这两个const有什么区别?他们的作用是什么?

const Date* operator&() const { return this; } 我们要明白operator&()这个函数是做什么的。 在C中&#xff0c;&操作符通常用于获取一个对象的地址。但是&#xff0c;有时候我们想要自定义这个行为&#xff0c;比如说&#xff0c;我们想要控制别人怎么获取…

【linux-Day3】linux的基本指令<中>

【linux-Day3】linux的基本指令<中> linux下的基本指令&#x1f4e2;man&#xff1a;访问linux手册页&#x1f4e2;echo&#xff1a;把字符串写入指定文件中&#x1f4e2;cat&#xff1a;查看目标文件的内容&#x1f4e2;cp&#xff1a;复制文件或目录&#x1f4e2;mv&am…

Scrapy爬虫IP代理池:提升爬取效率与稳定性

在互联网时代&#xff0c;数据就是新的黄金。无论是企业还是个人&#xff0c;数据的获取和分析能力都显得尤为重要。而在众多数据获取手段中&#xff0c;使用爬虫技术无疑是一种高效且广泛应用的方法。然而&#xff0c;爬虫在实际操作中常常会遇到IP被封禁的问题。为了解决这个…

详解RFM模型

详解RFM模型 一、定义二、RFM模型的三个指标1‌、最近一次消费&#xff08;Recency&#xff09;‌2、消费频率&#xff08;Frequency&#xff09;‌3、消费金额&#xff08;Monetary&#xff09;‌ 三、RFM模型的应用和分类1、精细化营销2、提升客户满意度3、风险管理4、产品优…

超详细超实用!!!零基础java开发之云风笔记更新数据接口开发(十)

云风网 云风笔记 云风知识库 一、service/NoteApi新增updateNode接口定义 public interface NoteApi {...int updateNote(NoteManage noteManage); }二、service/impl/NoteServiceImpl接口实现逻辑 public class NoteServiceImpl implements NoteApi {AutowiredNoteMapper n…

5、SAP定义科目组和字段控制

定义解释 用于创建科目组&#xff0c;并进行输入控制&#xff0c;即在输入科目时&#xff0c;哪些自动允许输入&#xff0c;哪些自动隐藏等。科目组是将性质类似的科目分类&#xff0c;组要维护前台会计科目主数据。(统驭科目–字段状态组–凭证输入)。 后台配置 路径&#…

当电脑错误:msvcp140.dll丢失的解决方法?总结七种修复方法

在使用 Windows 操作系统时&#xff0c;许多用户可能会遇到系统会弹出错误消息&#xff0c;提示“msvcp140.dll 丢失”或“msvcp140.dll 未找到”的问题。这个动态链接库文件是 Microsoft Visual C 2015 Redistributable Package 的一部分&#xff0c;用于支持使用 Visual C 20…