数据库管理系统中的规范化

时间:2016-11-16 02:37:10

标签: database rdbms database-normalization

我在数据库中有关系:

@TargetApi(VERSION_CODES.LOLLIPOP)
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
    if (dependency instanceof RelativeLayout) {
        RelativeLayout bottomSheet = (RelativeLayout) parent.findViewById(R.id.bottom_sheet);
        int bottomSheetHeight = (bottomSheet.getTop() - child.getBottom());
        ViewCompat.offsetTopAndBottom(child, bottomSheetHeight);
    }
    super.onDependentViewChanged(parent, child, dependency);
    return false;
}

我被要求规范化关系Emp_project(SSN,PNum,Hours,Ename,PName,Plocs)

我如何将其标准化?

1 个答案:

答案 0 :(得分:1)

关系具​​有关联的 set 和关联的 set 行。每行每列有一个值

有时候,“标准化”用于表示(1)“将每个关系分解为较小的关系,这些关系是其投影并加入其中”。这与更高的NF(正常形式)比1NF标准化。这涉及FD(功能依赖性),JD(连接依赖性)和规范化理论。也许假设有一些先前的“NF”。也许随后会加入一些“1NF”。但分解只需要关系

有时“规范化”用于表示(2)“从具有关系值列的关系转换为不具有关系值的关系”。 (这是它的原始含义。)无处不在“规范化”(wrongly & vaguely)用于表示(3)“从具有多个部分的某些类型的列的关系转换为与{{{3}的关系3}}”。不受欢迎的列被称为“非columns with the types of the parts”,“复合”等。(这是对(2)的误解。)在(1)开发之后,这些“归一化”的用法变成“放入1NF”

有时“关系”意味着一种关系。有时它(可原谅地)意味着没有关系值列的关系。有时它(错误地)意味着没有“非原子”列的关系。有时“0NF”意味着“不是关系”。有时“0NF”意味着“是一种关系”。有时“1NF”意味着“是一种关系”。

有时“规范化”(错误地)用于表示(4)“从非关系转换为关系”,即“0NF”或“只是关系”和/或“1NF”。 (并且通常关于非关系数据结构在关系方面的含义没有被解释。所以“规范化”实际上并没有被定义。)有时候(3)的表示就像每行每列有多个值一样,但这不可能,因为按定义的关系每行每列有一个值,因此他们对它们是否在(3)或(4)中感到困惑。

有时“规范化”(错误地)用于表示(5)“从某个列的关系转换为一个范围内每个值的一个附加列转换为只有一个附加列的关系但是将原始的每一行替换为每个删除列的一行“。有时(4)或(5)(错误地)被称为“摆脱重复的群体”。 (这是一种关系前的非关系概念。)有时“规范化”(错误地)用于表示(6)“从具有特定值的列的关系转换为与列的关系id以及将id与这些值相关联的一些关系“。

那么,你是什么意思,“正常化”?在这个问题中,其中一列Plocs似乎是“项目位置”。所以也许在规范3中使用“normalize”,也许还有其他一些。你必须看看你所教的 以及参考你得到了什么。