数据库复习题
简答题解释 DB、DBMS、DBS 三个概念
DB 指数据库,所谓数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型描述、组织和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为用户共享。
DBMS 指 数据库管理系统是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。
DBS 数据库系统包括和数据库有关的整个系统,一般由数据库、数据库管理系统、应用程序、数据库管理员和用户等构成。
简述视图的作用视图是从一个或几个基本表或视图导出的表,他与基本表不同,是一个虚表。数据库中只存放视图的定义,不存放视图对应的数据。视图是一个窗口,用户通过它就可以看到数据库中自己感兴趣的数据及其变化。
简要说明什么是 BC 范式如果关系模式 R 属于 1NF,且对所有的函数依赖 X-》Y,决定因素 X 都包含了 R 的候选码,则称 R 属于 BC 番薯,简称 BCNF
xv6的安装启动
xv6 是 MIT 所做的教学用操作系统,在 cs 学生中久负盛名,本文将介绍如何如何一步一步在 centos 上编译安装 xv6
前提
Linux 系统,本文使用的是 centos8、
至少 10g 的磁盘空间,编译依赖会占用较多磁盘空间
因 MIT 将 xv6 的基础架构从 x86,切换到 riscv,因此我们也需要 clone riscv 版 xv6 的代码,安装 riscv 的工具链
安装依赖依赖目录
riscv 工具链
qemu
xv6-riscv
其他依赖
安装 riscv 工具链
此处参考:https://blog.csdn.net/qq_35990574/article/details/110006307
安装前置依赖yum install autoconf automake python3 libmpc-devel mpfr-devel gmp-devel gawk bison flex texinfo patchutils gcc gcc-c++ zlib-devel expat-devel
clone 源码git clo ...
关系数据库设计理论
关系数据库设计理论
基本概念函数依赖定义设 R(U)是属性集 U 上的一个关系模式,X,Y 是 U 的子集。对于 R(U)上的任何一个可能的关系 r,如果 r 中不存在两个元组,他们在 x 上的属性值相同,而在 y 上的属性值不同,则称 X 函数决定 Y 或 Y 依赖 X。
不存在一个 X 有多个 Y,跟数学的函数概念一样
函数依赖只 R 的所有关系均要满足的约束条件
若 X->Y,则称 X 为这个函数依赖的决定因素
X->Y 且 Y->X 则 X<–>Y
平凡函数依赖定义设 R(U)是属性集 U 上的一个关系模式 X,Y 是 U 的子集,如果 X->Y,并且 Y 包含于 X,则称 X->Y 是平凡函数依赖
很显然,对于任一关系模式,平凡函数依赖都是必然存在的。
非平凡函数依赖定义设 R(U)是属性集 U 上的一个关系模式 X,Y 是 U 的子集,如果 X->Y,并且 Y 不包含于 X,则称 X->Y 是非平凡函数依赖
完全函数依赖&部分函数依赖定义在 R(U)中,如果 X->Y,并且对于 X 的任何一 ...
搭建博客小记
博客
技术选择
我的个人笔记都做在语雀上,语雀具有非常优秀的编辑器体验,我不舍得放弃,但是我也想搭建自己的个人博客,于是查询到了 yuque-hexo 和 hexo
服务器 Centos
反向代理 nginx
服务器的购买与部署阿里云开发者成长计划
https://developer.aliyun.com/plan/grow-up
腾讯云学生机
https://cloud.tencent.com/act/campus
这个我就不赘述了,服务器教程非常多
当然,如果觉得服务器麻烦,也可以将 hexo 部署在 giteePages,githubPages 这样的免费页面上,我选择服务器,是因为 Linux 服务器具有更高的可玩性
hexo 的安装
hexo 官方文档:https://hexo.io/zh-cn/docs/
node.js 的安装在 root 用户下(Centos)
curl -fsSL https://rpm.nodesource.com/setup_16.x | bash -
node.js 测试node -v
npm -v
如果都能够打印出版本号 ...
Mirai-QQ机器人折腾小记
有许多自动化的需求,想用 qq 机器人来实现,奈何时间不够,这次折腾一下,机器人核心 core 选择了 Mirai 机器人
Mirai 机器人的安装mirai 的架构主要是 mirai core(核心及后端),Mirai Console(前端控制面板及插件)
mirai console仔细思考自己的需求,还是依靠 mirai console 来完成工作
https://github.com/mamoe/mirai/blob/dev/docs/UserManual.mdmirai 仓库及用户文档如上
启动器的下载地址如下,根据自己的机器选择系统及 cpu 位数
https://github.com/iTXTech/mcl-installer/releases
这里我们依据文档,下载对应的脚本,脚本会自动帮我们完成 mcl 以及相关依赖的安装。安装好的文件目录主要是这些
mcl 的启动
cd 进入刚刚的目录下
运行 ./mcl
mirai console 将会启动
当出现以下提示时,代表启动成功,这其中有可能会遇到报错,我遇到的报错有下面几种
启动报错NoSuchM ...
Servlet Filter
什么是 FilterFilter 可以拦截请求和响应,在请求到达 Servlet 程序前,进行预处理,如鉴权,修改 Http 请求头,拦截返回,加入自己的逻辑
Filter 如何实现拦截
当客户端发生请求后,在 HttpServletRequest 到达 Servlet 之前,过滤器拦截客户的 HttpServletRequest 。
根据需要检查 HttpServletRequest ,也可以修改 HttpServletRequest 头和数据。
在过滤器中调用 doFilter 方法,对请求放行。请求到达 Servlet 后,对请求进行处理并产生 HttpServletResponse 发送给客户端。
在 HttpServletResponse 到达客户端之前,过滤器拦截 HttpServletResponse 。
根据需要检查 HttpServletResponse ,可以修改 HttpServletResponse 头和数据。
最后,HttpServletResponse 到达客户端。
生命周期方法
init()方法:初始化参数,在创建 Filter 时自动调用。当我们需要设 ...
Servlet基础
什么是 Servlet
Servlet 是一个接口规范,其规定了 web 服务器在接收到请求时应该怎么做处理,Servlet 不管具体实现,由各类 web 服务器负责实现,目前最流行的服务器软件为 Tomcat
第一个 servlet 程序创建 servlet 项目idea 下
servlet 简单程序import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
//@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {//servlet类需要继承HttpServlet类
private String message;
public void init() {
message = "Hello World!";
}
public void d ...
Spring第六篇-事务
什么是事务
事务是数据库的概念,事务代表了一组数据库操作,数据库操作要么全部成功,要么全部失败。
事务有几个特征
原子性
一致性
隔离性
持久性
具体事务可以看我之前的数据库文章03 | 事务
Spring 事务操作事务的配置<!-- 开启组件扫描-->
<context:component-scan base-package="springDemo"></context:component-scan>
<!-- 注入datasource-->
<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
<property name="url" value="jdbc:mysql://localhost:3306/hello"></property>
<property name="username" value="root"></property>
...
Spring第五篇 jdbcTemplate
jdbc 是什么jdbc 是 Java 的数据库连接框架,通过 jdbc 提供的抽象,jdbc 通过接口的方式,规范了各个数据库的行为,各个数据库 dbms 写对应的数据库驱动,来对接 jdbc,从而 jdbc 拥有操作各个数据库的能力
jdbcTemplate 是什么jdbcTemplate 是 spring 推出的 jdbc 框架,通过依赖注入的方式,完成数据库连接的管理
jdbcTemplate 依赖导入修改 pom.xml 文件<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
< ...