操作系统、计算机网络、数据库系统概论等相关面试问题

操作系统

1. 中断和陷入有什么异同?

  1. 外中断时指来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等。狭义上也叫中断;
  2. 内中断主要指在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;
  3. 中断和陷阱的主要区别:
    (1) 陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
    (2) 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
    (3) CPU 在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。

2. 父子进程是否可以并发运行?

可以

3. 在没有程序运行时, CPU在做什么?

只要计算机打开着,CPU 一定都在不停处理进程。在 Windows 系统下至少 rundll32.exe 这个程序是持续运行的。在 Linux 下 kernel 也是会持续运行的。运行进程个数为零的时候有没有呢?有,那就是计算机关机的时候。

4. 设备驱动器是否属于操作系统,它的作用是什么?

不是,驱动程序是另外安装的软件,是操作系统控制并且和硬件之间通讯的桥梁(程序)

5. 线程、进程、程序和任务的区别?

  1. 任务是最抽象的, 是一个一般性的术语, 指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操 作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。
  2. 进程常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己
  3. 线程则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据进程的全局数据进程的全局数据进程的全局数据。
  4. 程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。

6. 处理中断的过程

请求中断 → 响应中断 → 关闭中断 → 保留断点 → 中断源识别 → 保护现场 → 中断服务子程序 → 恢复现场 → 中断返回

7. 分页、分段、段页式的特点,为什么要引入?

  • 分页是为了提高内存的利用率,提高计算机性能,且分页通过硬件机制来实现,对用户完全透明。
  • 分段是为了方便编程,信息保护和共享、动态增长及动态链接等多方面的需要。
  • 段页式是两者的结合

8. 计算机系统怎样实现存储保护?

  1. 防止地址越界(对进程所产生的地址必须加以检查,发生越界时产生中断,由操作系统
    进行相应处理)
  2. 防止操作越权(对属于自己区域的信息,可读可写:对公共区域中允许共享的信息或获得授权可使用的信息,可读而不可修改;对未授权使用的信息,不可读,不可写)

9. MMU

MMU 是 Memory Management Unit 的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来

  • ①管理虚拟存储器、物理存储器的控制线路,
  • ②同时也负责虚拟地址映射为物理地址,
  • ③以及提供硬件机制的内存访问授权。

10. 多线程,真的提高了效率吗?

多线程效率,我认为未必会高,而且有时候相反会低。
多线程并不是为了提高效率,而是不必等待,可以并行执行多条数据。

  • 可以这么想:我们通过 xp 系统复制文件。你可以复制一份文件 —— 这叫是单线程。但是你要等这个复制完了才能复制另一份文件,而且不能多复制,这样很难受。所以你可以选择多复制文件,这就是多线程。但复制多份文件用的时间未必会比一份一份文件所用时间少。只是它合理利用了时间进行了多个操作。
  • 如果是买票系统,就会用到多线程。买票是同时进行的,如果一个用户一个用户等下去不是办法,所以可以多个用户同时买票,效率也就提高了。这里的效率不是执行的效率 而是时间的合理利用,多个线程同时进行。

11. 中断的作用

中断是计算机系统结构一个重要的组成部分。在中断机制中的硬件部分(中断装置)的作用就是在 CPU 每执行完一条指令后,判别是否有事件发生。如果没有事件发生,CPU继续执行;若有事件发生,中断装置①中断原先占用 CPU 的程序的执行,②把被中断程序的断点保存起来,③让操作系统的处理服务程序占用 CPU 对事件进行处理,④处理完后,再让被中断的程序继续占用 CPU 执行下去。

12. DMA 的优先级为什么比 CPU 的优先级高?

因为 DMA 请求得不到及时响应,I/O 传输数据可能会丢失。

13. 虚拟内存容量由什么决定?

虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量

14. RAID 的工作原理

  • RAID(独立磁盘冗余阵列(Redundant Array of Independent Disks))通过条带化存储和奇偶校验两个措施来实现其冗余和容错的目标。条带化存储意味着可以一次写入一个数据块的方式将文件写入多个磁盘。条带化存储技术将数据分开写入多个驱动器,从而提高数据传输速率并缩短磁盘处理总时间。这种系统非常适用于交易处理、但可靠性却很差,因为系统的可靠性等于最差的单个驱动器的可靠性 【木桶效应】
  • 奇偶校验通过在传输后对所有数据进行冗余校验可以确保数据的有效性。利用奇偶校验,当 RAID 系统的一个磁盘发生故障时,其它磁盘能够重建该故障磁盘。在这两种情况中,这些功能对于操作系统都是透明的。由磁盘阵列控制器(DAC)进行条带化存储和奇偶校验控制。

计算机网络

在这里插入图片描述

1. 计算机网络和分布式计算机系统的区别?

两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信资源共享的功能。
区别关键在于:

  • 分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行,且具有透明性——用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;
  • 而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。

2. 波特和比特的区别?

  • 波特是码元传输的速率单位,说明每秒传多少个码元。码元传输速率也称为码元速率、调制速率、波形速率或符号速率。
  • 比特是信息量的单位,与码元的传输速率“波特”是两个完全不同的概念。

但是,信息的传输速率“比特/秒”与码元的传输速率“波特”在数量上却有一定的关系。

3. TCP/IP网络协议的核心是什么,如何引出“over everything”和“everything over?”

  • TCP/IP协议的核心TCP、UDP和IP协议
  • 分层次画出具体的协议来表示TCP/IP协议族,它的特点是上下两头大而中间小:应用层和网络接口都有很多协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个IP协议中。这种很像沙漏计时器形状的TCP/IP协议族表明:TCP/IP协议可以为各种各样的应用提供服务(everything over ip) 同时TCP/IP协议也允许IP协议在各种各样的网络构成的互联网上运行(IP over everything)

everything over IP: everything 均以 IP 为基础,以后的网络中的设备都用 IP(现在的电话网络就不是)。【over:以…为基础】
IP over everything: 在现在的电通信网过渡到光通信网的过程中,IP、ATM、WDM 会配合使用,渐渐过渡,即是 IP over everything。【over:凌驾于…之上】

4. 电路交换、报文交换、分组交换区别

电路交换、报文交换、分组交换区别
若传输的数据量很大,而且传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路有很多段链路组成时,采用分组交换较为合适。从提高整个网络的信道利用率上看,分组交换优于电路交换。

注:报文交换是以“报文”为单位的,分组交换是以“分组”为单位的,所以速度快。

5. IPv4 和 IPv6 的区别

  1. IPv6具有更大的地址空间。IPv4中规定IP地址长度为 32 bit,最大地址个数为232;而IPv6中IP地址的长度为 128 bit,即最大地址个数为2128。与32位地址空间相比,其地址空间增加了2128 / 232 = 296个。

  2. IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

  3. IPv6增加了增强的 组播(Multicast)支持 以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。

  4. IPv6加入了对 自动配置(Auto Configuration) 的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

  5. IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。

  6. 允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。

  7. 更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。

  8. 新的选项。IPV6有一些新的选项来实现附加的功能。

6. TCP的拥塞控制与流量控制的功能和区别?

  • 拥塞控制:
    • 防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载
    • 拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。
    • 拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。
      拥塞避免
  • 流量控制:
    • 指点对点通信量的控制,是端到端的问题。
    • 匹配速率】流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
      流量控制

7. 集线器,路由器和交换机有什么区别.

  • 集线器工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,
    当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了。
  • 交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是 MAC 地址的集合,它能分辨出帧中的源 MAC 地址和目的 MAC 地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得 IP 地址,它只知道 MAC 地址。
  • 路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的 IP 地址,如果它接收到一个数据包,就检查其中的 IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。

8. P2P 网络编程的特点

P2P(对等网络,是一种有别于传统 C/S 客户/服务器式的分布式网络)直接将人们联系起来,让人们通过互联网直接交互。P2P 模型的思想是整个网络中的传输内容不再被保存在中心服务器上,每个节点都同时具有下载、上传的功能,其权利和义务都是大体对等的。P2P 使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P 就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。

9. DNS 的递归查询与迭代查询

  1. 递归查询:
    一般客户机和服务器之间属递归查询,即当客户机向 DNS 服务器发出请求后,若 DNS 服务器本身不能解析,则会向另外的 DNS 服务器发出查询请求,得到结果后转交给客户机。
  2. 迭代查询(反复查询):
    一般 DNS 服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;举例:比如学生问老师一个问题,王老师告诉他答案这之间的叫递归查询。这期间也许王老师也不会,这时王老师问张老师 ,这之间的查询叫迭代查询!
    迭代查询与递归查询图解

10. 什么是码元?什么是码元长度?

在数字通信中常常用时间间隔相同的符号来表示一位二进制数字。这样的时间间隔内的信号称为二进制码元,而这个间隔被称为码元长度。

11. 计算机网络的接入类型都有哪些?

局域网、城域网、广域网和互联网四种

12. 中继器,集线器,交换机,网桥,网关,路由器的功能作用,区别到底是什么?

  1. 物理层:中继器(Repeater)集线器(Hub)。用于连接物理特性相同的网段,这些网段,只是位置不同而已。Hub 的端口没有物理和逻辑地址。

  2. 逻辑链路层:网桥(Bridge)交换机(Switch)。用于连接同一逻辑网络中、物理层规范不同的网段,这些网段的拓扑结构和其上的数据帧格式,都可以不同。Bridge和Switch的端口具有物理地址,但没有逻辑地址。

  3. 网络层:路由器(Router)。用于连接不同的逻辑网络。Router的每一个端口都有唯一的物理地址和逻辑地址。

  4. 应用层:网关(Gateway)。用于互连网络上,使用不同协议的应用程序之间的数据通信,目前尚无硬件产品。

  • 中继器:物理层, 适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。
  • 集线器:物理层,基本功能信息分发,它把一个端口接收的所有信号向所有端口分发出去。一些集线器在分发之前将弱信号重新生成。

中继器与集线器的区别:区别在于集线器能够提供多端口服务,也称为多口中继器。

  • 网桥:数据链路层, 网桥(Bridge)像一个聪明的中继器, 网桥是一种对进行转发的技术,根据 MAC 分区块,可隔离碰撞网桥将网络的多个网段在数据链路层连接起来。【将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”。】

  • 交换机:数据链路层,是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。可以理解为高级的网桥,他有网桥的功能,但性能比网桥强。交换机和网桥的细微差别就在于:交换机常常用来连接独立的计算机,而网桥连接的目标是 LAN,所以交换机的端口较网桥多。

  • 路由器:网络层,用于连接多个逻辑上分开的网络,几个使用不同协议和体系结构的网络;具有判断网络地址和选择路径的功能,过滤和分隔网络信息流。路由器的主要工作就是为经过路由器的每个IP数据包寻找一条最佳传输路径,并将该数据有效地传送到目的站点。 路由器的基本功能是,把数据(IP报文)传送到正确的网络。

  • 网关:网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 通过字面意思解释就是网络的关口。从技术角度来解释,就是连接两个不同网络的接口,比如局域网的共享上网服务器就是局域网和广域网的接口。

来源:中继器、集线器、网桥、交换机、路由器、网关的超全总结

13. TCP建立连接

三次握手

TCP建立连接,也就是我们常说的三次握手,它需要三步完成。在TCP的三次握手中,发送第一个SYN的一端执行的是主动打开。而接收这个SYN并发回下一个SYN的另一端执行的是被动打开。

  • 第一次握手:【检查Server是否能正常通信】 建立连接时,客户端发送SYN包(SYN = 1)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
  • 第二次握手:【Server回访,测试Client是否能正常通信】 服务器收到SYN包,必须确认客户的SYN(ack = 客户端的初始序列号 x + 1),同时自己也发送一个SYN包(SYN = 1),即SYN + ACK包,此时服务器进入SYN_RECV状态;

    注:该步骤ack表示需要客户端发送第x+1个字节了

  • 第三次握手:【Client收到确认,告知Server可正常通信】 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack = 服务器的初始序列号y + 1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

如果服务器没有收到客服端的ACK,会超时重传自己的SYN请求,一直到收到服务端的ACK为止(会导致SYN泛洪攻击)

14. ARP 协议过程

ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“”,帧里面是有目标主机的 MAC 地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC 地址是如何获得的呢?它就是通过地址解析协议 ARP 获得的。所谓“地址解析”就是主机在发送帧将目标 IP 地址转换成目标 MAC 地址的过程。 ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。

ARP(AddressResolutionProtocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。APR就是实现这个功能的协议。

假设主机A和B在同一个网段,主机A要向主机B发送信息。具体的地址解析过程如下

(1)主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2)如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3)主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4)主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。
当主机A和主机B不在同一网段时,主机A就会先向网关发出ARP请求,ARP请求报文中的目标IP地址为网关的IP地址。当主机A从收到的响应报文中获得网关的MAC地址后,将报文封装并发给网关。如果网关没有主机B的ARP表项,网关会广播ARP请求,目标IP地址为主机B的IP地址,当网关从收到的响应报文中获得主机B的MAC地址后,就可以将报文发给主机B;如果网关已经有主机B的ARP表项,网关直接把报文发给主机B。

  1. 发送方:主机
    接收方:本网络的另一台主机
    用ARP找到目的主机的硬件地址。
  2. 发送方:主机
    接收方:其他网络的另一台主机
    用ARP找到本网络的一个路由器的硬件地址,剩下的工作由这个路由器完成。
  3. 发送方:路由器
    接收方:本网络的一台主机
    用ARP找到目的主机的硬件地址。
  4. 发送方:路由器
    接收方:其他网络的另一台主机
    用ARP找到本网络的一个路由器的硬件地址,剩下的工作由这个路由器完成。

15. PPP协议

点到点协议(Point to Point Protocol,PPP)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。PPP具有以下功能:
(1)PPP具有动态分配 IP 地址的能力,允许在连接时刻协商IP地址;
(2)PPP支持多种网络协议,比如TCP/IPNetBEUINWLINK 等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议;
(4)无重传的机制,网络开销小,速度快。
(5)PPP具有身份验证功能。
(6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。

15.1 点对点和端到端工作在哪层?工作机制?

  • 点对点:应用层、表示层、会话层、传输层
  • 端到端:网络层、数据链路层、物理层
点对点端到端
点对点是基于MAC地址或者IP地址,是指一个设备发数据给另外一个设备,这些设备是指直连设备包括网卡,路由器,交换机。端对端是网络连接,应用程序之间的远程通信。端对端不需要知道底层是如何传输的,是一条逻辑链路。
发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。在数据传输前,经过各种各样的交换设备,在两端设备问建立一条链路,就像它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功。
点对点,是说两台主机(终端)在局域网中传输端对端,主要服务于Application Layer,是说两台主机(终端),跨过网络直接连接
优点是发送端设备送出数据后,它的任务已经完成,不需要参与整个传输过程;另外,即使接收端设备关机或故障,点到点传输也可以采用存储转发技术进行缓冲。优点是链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要进行存储转发
缺点是发送端发出数据后,不知道接收端能否收到或何时能收到数据。缺点是直到接收端收到数据为止,发送端的设备一直要参与传输。

16. 比较TCP与UDP

TCP与UDP都是传输层协议,且都用端口号标识数据所达的进程。

TCPUDP
面向连接服务无连接服务
可靠交付(确认和重传机制)不可靠交付
流量控制、拥塞控制无确认机制
用于可靠性要求高的场合,如:SMTP,FTP,HTTP等用于即时性强的场合,如:视频聊天,语音电话等
  • TCP面向连接的,传输数据时,需先进行三次握手,建立连接,UDP是无连接的,发送数据之前不需要建立连接
  • TCP通过确认和重传机制,提供可靠的服务。即通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达,而UDP不保证可靠传输,只是尽可能得交付
  • TCP面向字节流,即将数据看成一连串无结构的字节流。UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
  • 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  • TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

17. 计算机网络中各层作用

传输单位任务功能设备协议
物理层比特透明地传输比特流为数据端设备提供传送数据通路集线器 中继器
数据链路层将网络层传下来的IP数据报组成帧① 链路的建立,拆除,分离;
② 帧定界和帧同步
③ 差错检测
交换机 网桥PPP、HDLC、ARQ
网络层数据包①将传输层传下来的报文段封装成分组
②选择适当的路由,使传输层传下来的分组能够交付到目标主机
为传输层提供服务;
组包和拆包;
路由选择;
拥塞控制。
路由器ICMP ARP RARP IP IGMP
传输层报文段 TCP,UDP负责主机两个进程之间的通信为端到端提供可靠的传输服务;
为端到端连接提供流量控制、差错控制、服务质量等管理服务。
TCP UDP
会话层 表示层 应用层应用层提供系统与用户的接口文件传输;
访问和管理;
电子邮件服务。
FTP、SMTP POP3、HTTP DHCP、RIP、BGP

来源:计算机面试(考研复试)问题整理

https://blog.csdn.net/qq_41923622/article/details/85805003

数据库系统概论

1. 数据库安全性与操作系统安全性的关系?

安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统,网络系统的安全性是紧密联系、相互支持的。

2. SQL 主键约束和唯一约束有什么区别呢?

主键不能为空而唯一可以为空,相同点就是都不允许重复

3. 什么是基本表?什么是视图?两者的区别和联系是什么?

  • 表是实实在在得保存数据的实体,写入的数据都保存在表中;而视图是不保存数据的,也没有数据。视图就是一条语句,实际上视图从表中去数据,只是给我们的感觉好像直接从表中取得一样。
  • 表可以建立各种触发器,可以建立索引,可以建立主键、约束等;但是视图不能建立这些对象( 视图可以建立替代触发器)。
  • 表和视图可以更新,但是视图的更新受到约束。比如,GROUP BY 和表连接生成的视图不能更新表是实实在在的保存数据的实体,写入的数据都保存在表中;而视图是不保存数据的,也没有数据。

4. 数据库索引

目的:提供多种存储路径,加快查找速度。

建立索引需要考虑的问题:

  1. 没有查询、统计的需要则不建;
  2. 数据增删改频繁,系统会花费许多时间来维护索引,从而降低了查询效率。

5. 哪些视图是可以更新、哪些是不可以更新的

(1)简单视图

就是由一个表生成出来的视图,这种情况你更新它就和更新表一样

(2)二次加工出来的简单视图

仍然是一个表出来的视图,但是视图中存在通过函数或计算二次加工出来的其他字段。更新

的时候只要不更新这些加工出来的字段也是可以更新的。

(3)组合视图

通过表之间关联联合等出来的复杂视图。这种视图更新的时候要注意你所更新的列要来自同

一个表,也是可以更新的。

(4)静态视图

这种视图等同于表可以直接更新,但是更新的数据尽在视图中反映出来,不反映到原表

(5)其他视图

通过表函数等其他生成的更为复杂的视图。一般不可更新

6、数据库完整性与安全性的区别

完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出造成的无效操作和错误结果,而后者是防止数据库被恶意的破坏和非法的存取。当然,完整性和安全性是密切相关的。特别是从系统实现的方法来看,某一种机制常常既可以用于安全保护亦可用于完整性保证。

7、数据库保护(访问)的内容有哪些?

  1. 利用权限机制和完整性约束防止非法数据进入数据库;
  2. 提供故障恢复能力;
  3. 提供并发访问控制。

8、 DBA 的职责是什么?

DBA 负责全面管理和控制数据库系统,其职责有:

  1. 决定数据库中的信息内容和结构:数据库中要存放哪些信息
  2. 决定数据库的存储结构和存取策略:获得较高的存取效率和存储空间利用率
  3. 定义数据的安全性要求和完整性约束条件:负责确定各个用户对数据库的存取权限、 数据的保密级别和完整性约束条件
  4. 监控数据库的使用和运行:转储数据、维护日志文件、故障恢复
  5. 数据库的改进和重组重构:对运行情况进行记录、统计分析,以此来不断改进数据库设计。

9、数据库系统和文件系统相比有什么优点?

在这里插入图片描述

10、什么是完整性约束?

完整性约束可确保数据库中的数据正确性和相容性,主要包括:实体完整性、参照完整性、用户自定义完整性。

11、DBMS 【数据库管理系统】支持那几种数据模型?

常用的是层次模型,网状模型和关系模型(最重要)。新兴的是面向对象数据模型和对象关系数据模型。

  • 层次模型: 层次模型是指用树行结构表示实体及其之间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。
    在一个层次模型中的限制条件是:有且仅有一个节点,无父节点,此节点为树的根;其他节点有且仅有一个父节点。

网状模型的数据结构主要有以下两个特征:
(1)允许一个以上的节点无双亲。
(2)一个节点可以有多于一个的双亲。

  • 网状模型:用有向图结构表示实体类型及实体间联系的数据结构模型称为网状模型关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系。

现实世界的实体以及实体间的各种联系均用关系来表示,从用户角度看,关系模型中数据的逻辑结构是一张二维表。

12、SQL(Structured Query Language)的四个组成部分?

① 数据定义语言(Data Definition Language);
② 查询语言(Query Language);
③ 数据操纵语言(Data Manipulation Language);
④ 数据控制语言(Data Control Language)

13、数据库操纵语言举例

数据操纵语言 DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的查询(select)、插入(insert)、删除(delete)和修改(update)

14、介绍下有哪些应用数据库?

大概知道的有:
桌面型:Access、Foxpro、DBase
企业型:SQL Server 系列、MySQL、Oracle、Sybase

非关系型数据库:Nosql

15. 什么是数据独立性。

数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。

逻辑数据独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。

例:增加一个字段,应用程序不用改变

是指当数据库的模式发生改变时,只需要改变存在于外模式和概念模式之间的映射转换,无需改变外模式或应用程序。

物理数据独立性指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。

例:本来是一行行存放数据,现在是一列列存放数据,但应用程序可以不变 或者 本来是用B树建索引 后来使用hash建索引

是指当数据库的内模式发生改变时,系统只要改变概念模式和内模式之间的映射转换,而不必改变模式,从而不需要更改外模式。

16、1NF 是啥,数据模式?

  • 第一范式 是数据库最基本的要求,即每一个分量必须是不可分的数据项;
  • 第二范式 是数据库非主属性对码的部分函数依赖,即每一个非主键完全函数依赖于主键;
  • 第三范式 是非主属性对码的传递依赖,即不包含已在其他表中已包含的非主键信息,防止数据冗余;

数据模式是基于选定的数据模型对数据进行的“型”的方面的刻画,而相应的“实例”则是对数据“值”的方面的描述。先有数据模型,才能据其讨论相应数据模式,有了数据模式,就能依据该模式得到相应的实例。

17、 数据库的关系操作有哪些?各有什么作用?

关系模型中常用的关系操作包括两大部分:

  • 选择、投影、连接、除、并、交、差、笛卡尔积等查询操作
  • 增加、删除、修改操作

查询的表达能力是其中最主要的部分。

关系操作的特点是集合操作方式,即 操作的对象和结果都是集合。这种操作方式也称为 一次一集合(set-at-a-time) 的方式。相应地,非关系数据模型的数据操作方式则为 一次一记录(record-at-a-time) 的方式

18、DB 并发操作通常带来哪三类问题?

  1. 丢失修改(Lost Update):当一个事务修改了数据,并且这种修改还没有还没有提交到数据库中时,另外一个事务又对同样的数据进行了修改,并且把这种修改提交到了数据库中。这样,数据库中没有出现第一个事务修改数据的结果,好像这种数据修改丢失了一样。
  2. 脏读(Dirty Read):当一个事务正在访问数据,并对数据进行了修改,而这种修改还没有提交到数据库中,这时,另一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
  3. 不可重复读(Non-Repeatable Read):在一个事务内,多次读同一数据。在这个事务还没有结束时,另一个事务也访问该同一数据,那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,第一个事务两次读到的数据可能是不一样的。

19、两段锁协议

所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:

  1. 在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;
  2. 而且在释放一个封锁之后,事务不再申请和获得任何其他封锁。
  • 加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,在进行写操作之前要申请并获得X锁。加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。
  • 解锁阶段:当事务释放了一个封锁以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作。

所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段。
在这阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。
例如事务 T1 遵守两段锁协议,其封锁序列是:(如右)

又如事务 T2 不遵守两段锁协议,其封锁序列是:
Slock A … Unlock A … Slock B … Xlock C … Unlock C … Unlock B;

可以证明,若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。
另外要注意两段锁协议和防止死锁的一次封锁法的异同之处。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议;但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁

20、事务的四个特点?

事务的概念:用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
1. 一致性(Consistency)
2. 原子性(Atomicity)
3. 隔离性(Isolation)
4. 持续性(Durability)

21、 数据库恢复策略有哪几种?

1、事务内部的故障 2、系统故障 3。介质故障 4。计算机病毒

22、数据库的三级模式

1、模式又称概念模式或逻辑模式,对应于概念级,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图),反映了数据库系统的整体观。
2、外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。外模式反映了数据库的用户观。
3、内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式是数据库的存储观。在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。

23、什么是表?什么是视图?两者的区别和联系是什么?

表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。视图就是一条语句,实际上视图从表中取数据。只是给我们的感觉好像直接从表中取得一样。表可以建立各种触发器,可以建立索引,可以建立主健,约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。表和视图可以更新,但是视图的更新受到约束。比如,GROUP BY 和表连接生成的视图不能更新表是实实在在的保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。
联系:可以理解为视图的数据都是从表中取出来,视图就是你定下的一个框框而已,内容都是在表中。

24、1NF 有哪些缺点?

  1. 数据冗余太大(每一个系的系主任名字重复出现)
  2. 更新异常(某个系更换系主任之后,必须将该系学生有关的每一个元组)
  3. 插入异常(如果一个系刚成立,尚无学生,就无法将老师存入到数据库中)
  4. 删除异常(如果学生都毕业了,在删除学生时,把这个系的系主任的所有信息都删除了)

25、数据字典通常包含五个部分

  1. 数据项
  2. 数据结构
  3. 数据流
  4. 数据存储
  5. 处理过程

26、数据库中视图的优点

① 简化用户操作;
② 使用户能以多种角度看待统一数据;
③ 对重构数据库提供了一定程度的逻辑独立性;
④ 对机密数据提供安全保护;
⑤ 可以更清晰的表达查询。

26.1、在做数据库开发中使用视图的优点有:

  1. 可以访问表中列的子集。在表中有些列是比较敏感的数据不想用户看到的,如用户密码,员工工资等,用视图可以隐藏这些列。
  2. 可以访问表中行的子集。有时不想让用户看到与 TA 无关的数据时,可以在 where 条件中过滤,如企业中子公司的员工只能看到 TA 所在子公司的同事资料,而不想其它子公司员工资料也显示出来,用过滤后查询出来的数据集组成视图。
  3. 可以重命名列名。在表中有些列名定义没有代表意义,如列“abc”,为了让用户看到列名就可以知该列是什么数据,可以在组建视图时重命名列名。
  4. 可以快速访问两表或多表连接所组成的数据。有时要访问表间连接所组成的数据集,可以把查询出来的数据集定义成视图,可以帮助快速访问所需的数据。
  5. 可以快速读取用聚合函数运算所返回的数据集。有时用户要读取经过用聚合函数复杂运算后的结果集,每次读取都是很耗时,这时可以把这运算后的数据集组成视图,就可以避免每次读取都要运算的消耗。总的来讲,使用视图在提高安全性的同时也加快查询的速度。

27、 数据库的三要素

数据模型是一组严格定义的概念的集合,这些概念精确地描述了系统的静态特征(数据结构)、动态特征(数据操作)和完整性约束条件,这就是数据模型的三要素。

28、 数据库索引

目的:提供多种存储路径,加快查找速度。建立索引需要考虑的问题:1。没有查询、统计的需要则不建 2。数据增删改频繁,系统会花费许多时间来维护索引,从而降低了查询效率。

29、哪些视图是可以更新、哪些是不可以更新的,请举例说明、

行列子集视图可以更新;
① 由两个以上基本表导出的视图,不可以更新;
② 字段来自于字段表达式或常数的视图,不允许(Insert、Update),但是可以 Delete;
③ 字段来自聚集函数的视图不可以更新;
④ 定义中含有 Group By 字句的视图,不可以更新;
⑤ 定义中含有 DISTINCT 字句的视图,不可以更新;
⑥ 定义中有嵌套查询,并且内层查询的 From 字句中涉及的表也是导出该视图的基本表
的视图,不可以更新;
⑦ 不允许更新的视图上定义的视图也不允许更新。

30、日志文件的定义与作用。

日志文件是用来记录事务对数据库的更新操作的文件。
作用:在数据库恢复中起着重要的作用。并协助后备副本进行介质故障恢复。
日志文件主要包含:事务标识、操作的类型、操作对象、更新前数据的旧值、更新后数据的新值。

31、数据库完整性与安全性的区别?

完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出造成的无效操作和错误结果, 而后者是防止数据库被恶意的破坏和非法的存取。当然,完整性和安全性是密切相关的。特别是从系统实现的方法来看,某一种机制常常既可以用于安全保护亦可用于完整性保证。

32、数据库有哪几种备份策略,大概的操作

完全备份、事务日志备份、差异备份、文件备份。

33、DBMS 控制管理功能

① 数据库定义和创建;
② 数据组织、存储和管理;
③ 数据存取;
④ 数据库事务管理和运行管理;
⑤ 数据库的建立和维护。

34、数据库采用什么机制来保证数据库并发操作的正确性?

并发控制:封锁、时间戳、乐观控制法。

35、数据库安全系统和计算机安全系统的人关系

安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统,网络系统的安全性是紧密联系,相互支持的。

36、函数模板和类模板的区别

– 实例化不同。

37、数据库管理系统的完整性要完成的功能

– 防止不合语意的数据,防止无效操作和错误结果

38. 数据库的两种独立性

物理独立性指的是应用程序与数据存放在相互独立的磁盘地址,内模式与模式映象保证了其物理独立特性;
逻辑独立性指的数据与程序逻辑结构上的独立特性,数据或应用程序的逻辑结构发生变化性都不影响对方,外模式与模式映身保证了其逻辑独立性。
逻辑数据独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。

例:增加一个字段,应用程序不用改变

是指当数据库的模式发生改变时,只需要改变存在于外模式和概念模式之间的映射转换,无需改变外模式或应用程序。

物理数据独立性指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。

例:本来是一行行存放数据,现在是一列列存放数据,但应用程序可以不变 或者 本来是用B树建索引 后来使用hash建索引

是指当数据库的内模式发生改变时,系统只要改变概念模式和内模式之间的映射转换,而不必改变模式,从而不需要更改外模式。

39、 DBMS 的控制操作有哪些

①数据的安全性保护;②数据的完整性检查;③并发控制;④数据库恢复。

40、什么是数据库控制语言,试举例说明

DCL 是用来设置或更改数据库用户角色权限的语句,主要包括 GRANT(授权)、DENY
(拒绝)、REVOKE(删除)三类。

41、数据库两级模式的作用?

三模式→①外模式/模式映像;②模式/内模式映像;
保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

42、笛卡尔积

在数学中,两个集合 X 和 Y 的笛卡儿积(Cartesian product),又称直积,表示为 X × Y,是其第一个对象是 X 的成员而第二个对象是 Y 的一个成员的所有可能的有序对。

43、数据库中 primary key 约束和 unique 约束有什么区别?

  • 主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。
  • 唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。

区别:一个表可以定义多个唯一约束,但只能定义一个主键约束;空值的列上可以定义唯一约束,不能定义主键约束。

相关推荐
程序员的必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!   套餐中一共包含2门MySQL数据库必学的核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识的人;  2)对MySQL掌握程度薄弱的人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好的MySQL内功,工作中遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底的问题问到怀疑人生的应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效的管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL的最佳性能的优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作中的代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我的课程中进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料的打包下载。
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页