数据库相关笔记③
数据库相关笔记①数据库相关笔记②数据库相关笔记③数据库相关笔记④
Integrity Constraints (ICs) 完整性约束
完整性约束是数据库中的一种机制,用于确保数据的准确性和一致性。这些约束可以在创建表或之后的任何时间定义。主要有以下几种类型的完整性约束:
主键约束(Primary Key Constraint):确保列(或列组合)具有唯一的值,并且每个表中的每一行都有一个主键值。
唯一约束(Unique Constraint):确保列(或列组合)的所有值都是唯一的。
外键约束(Foreign Key Constraint):确保引用另一个表的数据的完整性。
非空约束(Not Null Constraint):确保列不能有 NULL 值。
检查约束(Check Constraint):确保列中的值满足指定的条件。
优点
数据一致性:完整性约束确保了数据库中的数据满足预定义的规则,从而保证了数据的一致性。
数据准确性:通过防止无效数据输入到数据库,完整性约束提高了数据的准确性。
避免冗余:主键和唯一约束避免了数据的冗余,提高了数据的效率。
引用完整性:外键约束保证了在 ...
数据库相关笔记②
数据库相关笔记①数据库相关笔记②数据库相关笔记③数据库相关笔记④
SQL
Introduction to SQL
SQL is a declarative language which means that you use it to describe what data you are interested in, but not how it should be retrieved. The database system uses a variety of algorithms internally to produce the query result. With declarative languages such as SQL, you do not need to worry about these implementation details.
Query
Your task is to write an SQL query. Your query must output the name and age of all students in the Student t ...
数据库相关笔记①
数据库相关笔记①数据库相关笔记②数据库相关笔记③数据库相关笔记④
Relational Algebra(RA)关系代数
关系代数(Relational Algebra,RA)是一种用于查询和操作关系数据库的理论语言。它主要包括一组操作符,如选择(Selection),投影(Projection),并集(Union),交集(Intersection),差集(Difference),笛卡尔积(Cartesian Product),重命名(Rename)等,这些操作符可以用于操作数据库中的表(也称为关系)。
关系代数是关系数据库理论的基础,SQL 等查询语言的设计就是基于关系代数的理论。
关系代数的主要优点是它提供了一种形式化的方法来表示数据库操作,这对于理解和优化查询非常有用。
投影(Projection,π)操作
投影操作用于从表中提取我们需要的列。
投影操作会删除不在投影列表(projectionlist)中的列,并且移除结果中的重复行。
投影操作完成后,结果集的属性(attribute)将与投影列表中的属性一致。
假设我们有一个学生表,其结构如下:
学生 ID
姓名
年龄
性别 ...
计组相关笔记④
什么计组学到最后变成计网了!??
计组相关笔记①计组相关笔记②计组相关笔记③计组相关笔记④
计算机与网络组织
互联网
互联网的定义
互联网是连接了数百万台计算设备的网络,这些设备包括:
主机:运行网络应用程序的终端系统
通信链路:光纤、铜线、无线电、卫星,其传输速率(比特/秒)定义了带宽
分组交换机:转发数据包(数据块),例如路由器和交换机
互联网的组成
互联网可以被视为“网络的网络”,由互连的 ISP 组成。互联网中的所有通信活动都由协议管理,例如 TCP,IP,HTTP,Skype,802.11 等。这些协议控制消息的发送和接收。
互联网的标准
互联网的标准通常以 RFC(请求评论)的形式发布,并由 IETF(互联网工程任务组)进行维护。
互联网作为服务的基础设施
互联网提供了各种服务的基础设施,包括网络、VoIP、电子邮件、游戏、电子商务、社交网络等。它还提供了应用程序的编程接口,使应用程序能够通过连接到互联网来发送和接收消息。
协议
什么是协议?
协议定义了网络实体之间发送和接收消息的格式、顺序以及消息传输和接收时采取的操作。这不仅包括人类协议,如“现在几点了?”或“我有 ...
计组相关笔记③
W7-W9 的内容
计组相关笔记①计组相关笔记②计组相关笔记③计组相关笔记④
Memory
ROM (只读存储器)
ROM,全称为只读存储器(Read-Only Memory),是一种非易失性的存储设备,这意味着即使在断电的情况下,ROM 中的数据也不会丢失。ROM 中的数据在制造时就被写入,并且在使用过程中不能被修改。ROM 常用于存储固定的程序,如计算机的 BIOS。
RAM (随机存取存储器)
RAM,全称为随机存取存储器(Random Access Memory),是一种易失性的存储设备,这意味着在断电的情况下,RAM 中的数据会丢失。与 ROM 不同,RAM 中的数据可以在任何时候被读取和写入。RAM 是计算机的主要工作区域,用于存储操作系统、应用程序和当前工作的数据。
SRAM (静态随机存取存储器)
SRAM,全称为静态随机存取存储器(Static Random Access Memory),也是 RAM 的一种类型。与 DRAM 不同,SRAM 的每个存储单元由六个晶体管组成,不需要定期刷新。因此,SRAM 的速度比 DRAM 快,但是成本更高,容量更小。SRAM 常 ...
计组相关笔记②
W5-W6 指令
计组相关笔记①计组相关笔记②计组相关笔记③计组相关笔记④
VSC 微指令
Binary
Instruction
Meaning
RTL
0000
Jns X
store the PC at address X and jump to X + 1
MBR ← PCMAR ← XM[MAR] ← MBRMBR ← XAC ← 1AC ← AC + MBRPC ← AC
0001
Load X
Load contents of address X into AC.
MAR ← XMBR ← M[MAR]AC ← MBR
0010
Store X
Store the contents of AC at address X.
MAR ← XMBR ← ACM[MAR] ← MBR
0011
Add X
Add the contents of address X to AC.
MAR ← XMBR ← M[MAR] AC ← AC + MBR
0100
Subt X
Subtract the contents of address X from ...
计组相关笔记①
W1-W5
计组相关笔记①计组相关笔记②计组相关笔记③计组相关笔记④
进制转换
各种各样的进制互相转化啦
repeated subtraction
division remainder
注意除余法是倒着来
原码反码补码
第一位是符号位 正数 0 负数 1
正数的原码反码补码都一样!
正数的原码反码补码都一样!
正数的原码反码补码都一样!
signed magnitude 原码:转化成二进制
one’s complement 反码:正数的反码和原码一样 负数的反码是原码除了第一位以外 所有的位反转
two’s complement 补码:正数的补码和原码一样 负数的补码是在反码的基础上+1
浮点表示法
在作业中,我们通常使用 14 位来表示浮点数,记住 158 就可以了。
如果你看到"with a bias of 16",这是指我们在表示指数时使用了偏移量。偏移量是一个大约在可表示的指数范围中间的数。我们从指数中减去偏移量来确定其真实值。在我们的例子中,我们有一个 5 位的指数,我们使用 16 作为我们的偏移量。这被称为超过 16 的表示法。
也就是说, ...
VS Code 快捷键
ctrl + enter 行中换行
alt + up / down 上下移行
shift + alt + up / down 上下复制
ctrl + left / right 跳单词(跳块)
ctrl + delete / backspace 删单词(删块)
ctrl + l 多按几次 选单行,继续按选多行
shift + delete 删一行
ctrl + j 下栏
ctrl + b 左栏
ctrl + ` 终端
alt + LButton 多位编辑
ctrl + / 注释
ctrl + [/] 缩进
ctrl + +/- ui缩放
ctrl + 0 定位文件
ctrl shift p 命令
ctrl p 在文件夹内搜索文件
f2 重命名变量
删除github中的提交历史记录
切换分支
git checkout --orphan latest_branch
暂存文件
git add -A
提交更改
git commit -am "commit message"
删除原始分支
git branch -D main
重命名分支
git branch -m main
强制更新
git push -f origin main
关于Matplotlib工具
导入依赖
import matplotlib.pyplot as plt # Ignore warningsimport warningswarnings.filterwarnings('ignore')
Line chart
x_data = np.linspace(0, 5, 100) # Sample datay_data = x_data**2plt.plot(x_data,y_data)plt.ylabel('responding variable')plt.xlabel('independent variable')plt.show()
Bar chart
fig, ax = plt.subplots() #to plot on same axesstudents = ['Alex', 'Jake', 'Brenda', 'Liz']height = [175, 190, 165, 158]bar_labels = ['r ...