• 关系规范化(数据库)


    由于网络上关于关系规范化的内容一般都是关于范式的,函数依赖和码的概念提及的比较少,所以就写了这篇文章
    前提:学习完第二章关系数据库

    前提

    首先举个 栗子 例子
    [例1]建立一个描述是学校教务的数据库,该数据库涉及的对象包括学生的学号(Sno)、所在系(Sdept)、系主任名称(Mname)、课程号(Cno)和成绩(Grade)。
    假设用一个单一的关系模式Student来表示,则该关系模式的属性集合为
          U={Sno,Sdept,Mname,Cno,Grade}
    现实世界的已知事实(语义)告诉我们:
    ①一个系有若干个学生,但一个学生只属于一个系。
    ②一个系只有一名负责人。
    ③一个学生可以选修多门课程,每门课程有若干学生选修。
    ④每个学生学习每一门课程有一个成绩。

    谈论函数依赖之前先提一下数据依赖的概念,
    数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间值的相等与否体现数据间相关联系。
    它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现

    数据依赖中最重要的是函数依赖多值依赖

    函数依赖

    定义:设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,
    则称X函数确定Y或Y函数依赖于X,记作X->Y
    用例1来解释这段定义:
    在学校教务数据库中,一个学生的学号只对应一个系。故当“学号”值确定时,学生所在系的属性值也就确定了。
    属性之间的这种关系类似于数学中的 y = f (x) 自变量x确定了,对应的函数值y也就唯一的确定了
    Sno = f(Sdept),即Sdept函数决定Sno或者说Sdept函数依赖于Sno,记作Sno->Sdept

    下面介绍一些术语和记号

    • X->Y,但y不属于X,则称X->Y是非平凡的函数依赖
    • X->Y,但y属于X,则称X->Y是平凡的函数依赖
    • 若X->Y,则称X为这个函数依赖的决定属性组,也称为决定因素
    • 若X->Y,Y->X,则记作X<-->Y
  • 相关阅读:
    MySQL主从复制原理
    MySQL调优
    apache禁止php解析--安全
    apache禁止指定的user_agent访问
    python---日常练习
    字符、字节的概念和区别;编码概念
    Django模型初识
    git安装
    Django--Hello
    fillder---断言/打断点,更改提交数据
  • 原文地址:https://www.cnblogs.com/georgejiuu/p/13828427.html
Copyright © 2020-2023  润新知