Skip to content

Commit

Permalink
12月14日
Browse files Browse the repository at this point in the history
  • Loading branch information
Derek Gao authored and Derek Gao committed Dec 14, 2019
1 parent c4e84ac commit 93005f8
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 23 deletions.
Binary file added Database/img/2019-12-12-18-33-37.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Database/img/2019-12-12-18-37-20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Database/img/2019-12-12-18-38-06.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Database/img/2019-12-12-18-40-57.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Database/img/2019-12-12-20-37-07.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 28 additions & 23 deletions Database/数据库设计.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,10 @@


### Armstrong's Axioms(Armstrong公理)
+ 由已知的一些函数依赖,可以推导出另外一些函数依赖。这就需要定义一些推导规则。
+ **【Rule1 自反规则】:If Y$\subset$X,then X$\rightarrow$Y**
+ **【Rule2 传递规则】:If X$\rightarrow$Y and Y$\rightarrow$Z, then X$\rightarrow$Z**
+ **【Rule3 增广规则】:If X$\rightarrow$Y, then XZ$\rightarrow$YZ**
+ 下面是由Armstrong公理可得到的推论
+ **【Rule4 合并规则】:If X$\rightarrow$Y and X$\rightarrow$Z, then X$\rightarrow$YZ**
+ **【Rule5 分解规则】:If X$\rightarrow$YZ,then X$\rightarrow$Y and X$\rightarrow$Z**
+ **【Rule6 伪传递规则】:If X$\rightarrow$Y, and WY$\rightarrow$Z, then XW$\rightarrow$Z**
Expand All @@ -116,14 +116,23 @@

### 平凡函数依赖,完全函数依赖和部分函数依赖
+ 平凡函数依赖:如果Y$\subset$X,那么依赖X$\rightarrow$Y为平凡函数依赖
+ 部分函数依赖:函数依赖FD:X$\rightarrow$Y是部分函数依赖,如果存在另一个W,使得W$\subset$X ans W$\rightarrow$Y(可理解为去除X中的水分)
+ 部分函数依赖:函数依赖FD:X$\rightarrow$Y是部分函数依赖,如果存在另一个W,使得W$\subset$X and W$\rightarrow$Y(可理解为去除X中的水分)
+ 非部分函数依赖即为完全函数依赖。

> 一个例子:找出表格中的所有函数依赖
> ![](img/2019-12-12-18-33-37.png)
>> 第一,首先找到左右均为单元素的函数依赖。首先观察到所有元组在属性B上取值均相同,因此可以快速判断右边为B的函数依赖一定成立。观察到所有元组在属性D上的取值都不相同,因此所有左边为D的函数依赖一定成立。其余单元素函数依赖顺次判断即可
>> ![](img/2019-12-12-18-37-20.png)
>> ![](img/2019-12-12-18-38-06.png)
>> ![](img/2019-12-12-18-40-57.png)
>> 最后,为什么没有考虑右边为多个属性的函数依赖?因为这些函数依赖可通过上述函数依赖推导获得
### 函数依赖集F的闭包
+ $F^+=${根据F中已有的函数依赖,利用Armstrong公理系统能够推到得到的所有函数依赖}
+ $F^+=${根据F中的函数依赖,利用Armstrong公理系统能够推到得到的所有函数依赖}
+ 具体计算过程如下
+ F中的每一个函数依赖都是其闭包F+的成员
+ 利用自反规则推导得到的所有平凡函数依赖,也都是闭包F+的成员
+ 对于利用自反规则推导得到的所有平凡函数依赖,也都是闭包F+的成员
+ 如果函数依赖f1,f2,...,fk(k≥1)是闭包F+的成员,且利用Armstrong公理系统能够从f1,f2,...,fk推导得到函数依赖f,则函数依赖f也是闭包F+的成员
+ 重复步骤上述步骤,直至F+中不再有新的函数依赖加入
+ 例子:
Expand All @@ -135,6 +144,10 @@
### 函数依赖集F的覆盖
+ 如果函数依赖集F**覆盖**函数依赖集G,意味着G$\subseteq$F$^+$,也就是G中的函数依赖可被F中的函数依赖推导出来

### 属性集的闭包
+ 给定表格中的的属性集$X$和T上的函数依赖集$F$,定义属性集$X$在函数依赖集$F$下的闭包为$X^+/X_F^+$:最大的满足$X\rightarrow Y\in F^+$的属性集
![](img/2019-12-12-20-37-07.png)

### 最小覆盖
+ 如果M是给定的函数依赖集F的最小覆盖,则
+ M没有冗余的函数依赖:我们无法找到M的真子集H使得H也覆盖F
Expand All @@ -143,7 +156,7 @@
![](img/2019-11-28-01-37-02.png)

### 正则化方法
+ 将一个表分解成两个或更多表的过程即为正则化
+ 将一个表分解成两个或更多表的过程即为**关系分解**
![](img/2019-12-02-15-55-08.png)
#### 无损分解
+ 设表$T$分解得到的表为$\{T_1, T_2, ..., T_k\}$
Expand All @@ -162,14 +175,13 @@
#### 依赖保持性
+ 对于一个给定的表T和它的数据库模式,令$\{T_1, T_2, ..., T_k\}$为T的一种无损分解
+ 则FD:$X\rightarrow Y$在T的分解中被保持,如果存在某个$T_i$使得$X\cup Y\subset Head(T_i)$.
+ 进一步可推导出在子关系模式$T_i$上所存在的函数依赖集为$F_i=\{X\rightarrow Y|F|=X\rightarrow Y, X\cup Y\subset Head(T_i)\}$

### 关键字与主属性
#### superkey
+ 【Theorem】:X为superkey等价于X能够函数决定T中的其他所有属性
+ 即$X\rightarrow Head(T)$ or $X^+_F=Head(T)$
+ 如果X进一步是完全函数决定,则X是一个关键字
+ 关键字的计算也有优化方法
![](img/2019-12-05-01-25-53.png)

#### 寻找候选关键字
```python
Expand Down Expand Up @@ -206,22 +218,15 @@ for each attribute A in K:

#### 满足3NF的关系分解算法
![](img/2019-12-05-02-10-35.png)
+ 或者也可以使用下述等价过程
+ 为最小覆盖中的每个函数依赖$X\rightarrow Y$建立一个子关系模式$R(X\cup Y, X\rightarrow Y)$
+ 合并属性具有包含关系的子关系模式
+ 最后,判断是否有关键字被包含在任意子关系模式中。如果没有,添加一个关键字中的属性构成的关系模式

#### 模式分解的一般算法
#### 范式分解的一般算法
+ 首先计算F的最小覆盖,从中寻找不满足范式M要求的函数依赖
+ 选择一个不符合要求的函数依赖并作如下分解
+ $R_1(X\cup Y, {X\rightarrow Y})$
+ $R_2(Heading(R)-Y, F_2)$
+ $F_2={A\rightarrow B|A\rightarrow B\in F^+}$
+ $R_2$仍有可能不满足范式M的要求,重复上述步骤即可。
+ 合并具有相同关键字的子关系模式

#### 一个例子
+ ![](img/2019-12-05-01-47-13.png)
+ ![](img/2019-12-05-01-47-24.png)


---
## 数据库设计样例
+ 题目:
![](img/2019-12-05-00-12-09.png)
+ $R_1(X_F^+, F_1)$
+ $R_2(Heading(R)-X_F^++X, F2)$
+ 其中,$F_1$为推导出$X_F^+$所使用的函数依赖,$F_2=F-F_1$。如果$F_2$中包含$Heading(R)-X_F^++X$中不存在的属性,则使用传递/伪传递公理将其消除。
+ 然后对子关系模式$F_2$递归上述步骤
Binary file added Database/数据库设计.pptx
Binary file not shown.
Binary file added ics/prac/img/2019-12-13-14-23-21.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ics/prac/img/2019-12-13-14-42-48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ics/prac/img/2019-12-13-14-43-27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions ics/prac/中断.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# 中断机制 CTE
## 框架代码中断机制
### 中断入口汇编源码
![](img/2019-12-13-14-23-21.png)

## 使用中断机制实现进程切换
+ ![](img/2019-12-13-14-43-27.png)
+ 在中断到来时,将当前进程的上下文保存到内存中,然后将另一个进程2的上下文加载到中断机制前的处理器中;这样最后pop的时候就进入到进程2的处理过程中

## c语言汇编代码
![](img/2019-12-13-14-42-48.png)
Empty file added ics/prac/虚拟存储.md
Empty file.

0 comments on commit 93005f8

Please sign in to comment.