数据库系统第六章【关系数据理论】(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. 如何从appstore下架自己家的app

    本文主要讲如何下架appstore上边的app,我看了好多百度的,但是大部分说的都是14年左右的 ,我这边说一下最新的 1.用开发者帐号登陆到iTunes Connect 2.在iTunes Conn ...

  2. Nexus2 上传文件

    通过管理界面上传 上传文件 hello-nexus.jar 登录 nexus2 选择第三方库 填写文件信息,完成文件上传 在索引页刷新,可以看到上传的文件 服务器上,文件的存放路径是 sonatype ...

  3. MATLAB通过ODBC连接数据库方法

    MATLAB通过ODBC连接数据库方法 1.首先创建数据库,我在这里用到的是MySQL 8.0 2.建立ODBC数据源,参考链接: https://www.cnblogs.com/benpao1314 ...

  4. 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧

    说起嵩山,我就想起乔峰,想起慕容复,以及他们两位老爹在少林寺大战的场景.当然了,最令我印象深刻的就是那位默默无闻,却一鸣惊人的扫地僧啊.这次,阿里出品的嵩山版 Java 开发手册的封面就有一个扫地僧, ...

  5. DB2 创建存储过程保存:XX 后面找到异常标记 "END-OF-STATEMENT"。

    存储过程最后一行加结束符@: 然后执行:db2 -td@ -vf /home/WGJ/proc_data_calculate.sql [slsadmin@localhost /]$ db2 -td@ ...

  6. MySQL 连接查询汇总

    MYSQL-连接查询: # 连接查询:把多张表进行记录的连接(按照某个条件进行数据的拼接) # 分类 1,内链接 2,外连接 # 左外 # 右外 3,自然连接 4,交叉连接 MYSQL-内链接 : # ...

  7. Linux中C++提示‘close’ was not declared

    C++socket编程时关闭socket和epoll时出现‘close’ was not declared,是程序头文件缺失导致的.缺失头文件#include <unistd.h>

  8. 剑指Offer顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  9. CentOS7基于ss5搭建Socks5代理服务器

    简介 环境 节点名 IP 软件版本 硬件 网络 说明 falcon-binary 172.19.0.6 list 里面都有 2C4G Nat,内网 测试环境 部署 准备编译环境和依赖 #安装编译环境和 ...

  10. 36 个JS 面试题

    1.JS中let和const有什么用? 在现代js中,let&const是创建变量的不同方式. 在早期的js中,咱们使用var关键字来创建变量. let&const关键字是在ES6版本 ...