数据库系统第六章【关系数据理论】(B站视频)

B站视频链接

https://www.bilibili.com/video/BV13J411J7Vu

一、前言

二、规范化

函数依赖



三种分类

需要共同满足的条件

如何确定函数依赖?

平凡函数依赖vs非平凡函数依赖

完全函数依赖vs部分函数依赖



完全函数依赖

  表达一种无冗余的依赖关系,设U{A1,A2,…,An}是属性集合,R(U)为某关系表,x,y是U上的子集,x'是x的任意真子集,若有x->y成立且x'->y总不成立,则称y完全函数依赖于x。显然,此时x中无任何多余属性。

部分函数依赖

  表达一种冗余的依赖关系,设U{A1,A2,…,An}是属性集合,R(U)为某关系表,x,y是U上的子集,x'是x的真子集,若有x->y且x'->y,则称y部分函数依赖于x。记做x->py,显然,此时x中存在多余属性,例如,设x(学生编号,学生性别),x'(学生编号),y(学生姓名),则有x决定y,x'决定y,此时y部分函数依赖于x。

传递函数依赖

码是一个或多个属性的集合。

码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。

超码

性质:如果K是超码,那么所有包含K的集合也是超码。 

性质:候选码是最小超码,它们的任意真子集都不能成为超码。

候选码:多个集合,一个候选码是一个集合,其中的一个元素称为主属性

主属性和非主属性

外码

范式



逐渐严格

1NF

每一列都是不可划分的(原子性),不能表中有表

例子中的属性说明:Sno:学号;Cno:课程编号;Sdept:系名;Sloc:学生住处

2NF

目的:解决部分函数依赖

数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖

简单描述:一个表只描述一件事情

完全依赖概念:即非主属性不能依赖于主键的部分属性,必须依赖于主键的所有属性。

3NF

目的:解决传递函数依赖

第三范式就是不存在非主属性对候选关键字的传递函数依赖

简单描述:要求一个数据库表中不包含已在其它表中已包含的非主关键字信息

BCNF(BC范式)

修正的第三范式

不存在主属性对任一候选关键字段的部分函数依赖

例子

定义

性质

小结

总结

规范化步骤

基本思想

数据库系统第六章【关系数据理论】(B站视频)的更多相关文章

  1. 第六章 大数据,6.3 突破传统,4k大屏的沉浸式体验(作者: 彦川、小丛)

    6.3 突破传统,4k大屏的沉浸式体验 前言 能够在 4K 的页面上表演,对设计师和前端开发来说,即是机会也是挑战,我们可以有更大的空间设计宏观的场景,炫酷的转场,让观众感受影院式视觉体验,但是,又必 ...

  2. apue学习笔记(第六章 系统数据文件和信息)

    UNIX系统的正常运作需要使用大量与系统有关的数据文件,例如,口令文件/etc/passwd和组文件/etc/group就是经常被多个程序频繁使用的两个文件. 口令文件 UNIX系统口令文件包含如下字 ...

  3. UNIX系统高级编程——第六章-系统数据文件和信息-总结

    口令文件: /* The passwd structure. */ struct passwd { char *pw_name; /* Username. */ char *pw_passwd; /* ...

  4. 第六章 DQL 数据查询语言

    一.select 简单查询命令 #1.查询表中所有的数据 mysql> select * from test.student; #2.查看所有数据之前,先查看数据量 mysql> sele ...

  5. 精通Web Analytics 2.0 (8) 第六章:使用定性数据解答”为什么“的谜团

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第六章:使用定性数据解答"为什么"的谜团 当我走进一家超市,我不希望员工会认出我或重新为我布置商店. 然而, ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片——多对多关系(上篇)

    在这章中,我们将学习如何创建一个管理图片的新实体,如何使用HTML表单上传图片文件,并使用多对多关系将它们和产品关联起来,如何将图片存储在文件系统中.在这章中,我们还会学习更加复杂的异常处理,如何向模 ...

  7. Laxcus大数据管理系统2.0(8)- 第六章 网络通信

    第六章 网络通信 Laxcus大数据管理系统网络建立在TCP/IP网络之上,从2.0版本开始,同时支持IPv4和IPv6两种网络地址.网络通信是Laxcus体系里最基础和重要的一环,为了能够利用有限的 ...

  8. Knockout应用开发指南 第六章:加载或保存JSON数据

    原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...

  9. CentOS6安装各种大数据软件 第六章:HBase分布式集群的配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

随机推荐

  1. day23:单继承&多继承&菱形继承&__init__魔术方法

    1.单继承 1.1 关于继承的一些基本概念 1.2 子类可以调用父类的公有成员 1.3 子类无法调用父类的私有成员 1.4 子类可以改写父类的方法 2.多继承 2.1 多继承的基本语法 2.2 sup ...

  2. Docker 快速搭建 LDAP

    Docker 快速搭建 LDAP 步骤 # 拉取镜像 docker pull osixia/openldap:1.3.0 # 创建并进入映射目录 mkdir -p /usr/local/ldap &a ...

  3. Markdown上手

    Markdown 学习日记 标题 二级标题 两个#+空格 快捷键:Ctrl + 2 三级标题 三个#+空格 快捷键:Ctrl + 3 最多支持六级标题 字体 加粗 文字 两个 *+文字+两个 * 快捷 ...

  4. 02树莓派4B—C语言编程——PWM

    01树莓派直接输出PWM波 —— 硬件PWM程序  (推荐使用) #include <stdio.h> #include <wiringPi.h> #include <s ...

  5. RoBERTa:一个调到最优参的BERT

    RoBERTa: A Robustly Optimized BERT Pretraining Approach. Yinhan Liu, Myle Ott, Naman Goyal, et al. 2 ...

  6. Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  7. hdfs常用api(java)

    1.下载文件到本地 public class HdfsUrlTest { static{ //注册url 让java程序识别hdfs的url URL.setURLStreamHandlerFactor ...

  8. GridBagConstraints详解

    名称 作用 默认值 常量 位置 gridx 行(x)的第一个单元格 0并且为非负数 RELATIVE(相对的) 紧跟前一个组件的后面 gridy 列(y)的第一个单元格 0并且为非负数 RELATIV ...

  9. java中Math的常用方法整理

    public class Demo{ public static void main(String args[]){ /** *Math.sqrt()//计算平方根 *Math.cbrt()//计算立 ...

  10. JavaScript学习系列博客_20_JavaScript 作用域

    作用域 - 作用域指一个变量的作用的范围 - 在JS中一共有两种作用域 1.全局作用域 - 直接编写在script标签中的JS代码,都在全局作用域- 全局作用域在页面打开时创建,在页面关闭时销毁 - ...