首页 > 数据库 >数据库的范式

数据库的范式

时间:2022-10-06 16:00:30浏览次数:39  
标签:存在 依赖 范式 -- 数据库 依赖于 属性

范式

第一范式

每一列都是不可分割的原子数据项

存在的问题
1.存在非常严重的数据冗余(重复)。
2.数据添加存在问题。
3.数据删除存在问题。

 

第二范式

在1NF的基础上,非码属性必须完全依赖于候选码。

  • 在1NF基础上,消除主属性对主码的部分函数依赖

几个概念

  1. 函数依赖:A-->B,如果通过A的属性(属性组)的值,可以确定唯一B属性的值,则称B依赖于A。

    • 例如:学号 -->姓名,(学号,课程名称)-->分数

  2. 完全函数依赖:A-->B,如果A是一个属性组,则B属性值的确定需要依赖于A属性组中所有的属性值。

    • 例如:(学号,课程名称)-->分数

  3. 部分函数依赖:A-->B,如果A是一个属性组,则B属性值的确定只需要依赖于A属性组中某一些值即可。

    • 例如:(学号,课程名称)-->姓名

  4. 传递函数依赖:A -- > B, B -- > C,如果通过A属性(属性组)的值,可以确定唯一B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称 C 传递依赖于A

    • 例如:学号 -- > 系名,系名 -- > 系主任。

  5. 码:如果在一张表中,一个属性或属性组,被其他所有属性完全依赖,则称这个属性(属性组)为该表的码。

    • 例如:该表中码为:(学号,课程名称)

  6. 主属性:码属性组中的所有属性。

  7. 非主属性:除过码属性组的属性。

存在的问题
1.存在非常严重的数据冗余(重复)。
2.数据添加存在问题。
3.数据删除存在问题。

 

第三范式

在2NF的基础上,任何非主属性不依赖于其他非主属性。

  • 在2NF基础上消除传递依赖

存在的问题
1.存在非常严重的数据冗余(重复)。
2.数据添加存在问题。
3.数据删除存在问题。

标签:存在,依赖,范式,--,数据库,依赖于,属性
From: https://www.cnblogs.com/Lvrain/p/16757780.html

相关文章

  • 面向对象范式和面向过程范式的不同之处
    面向对象范式和面向过程范式的不同之处面向过程在面向对象的程序设计中,数据和数据上的操作是分离的,而且这种做法要求传递数据给方法。面向对象的范式重点在于设计方法......
  • 数据库—数据管理技术的发展过程
    一、人工管理阶段(20世纪50年代中之前)1、产生背景应用背景科学计算硬件背景无直接存取存储设备软件背景没有操作系统处理方式批处理2、特点数据的管理者:用......
  • Ubuntu mariadb数据库安装
    1、安装数据库服务器和客户端sudoapt-getinstallmariadb-servermariadb-client2、安装Mariadb信息查询sudoaptinstalllibmariadb-dev-compat3、makefil......
  • Seal-Report: 开放式数据库报表工具
    SealReport是.Net的一个基于Apache2.0开源工具,完全用C#语言编写,最新的6.6版本采用.NET6,github:https://github.com/ariacom/Seal-Report。SealReport提供了一个完......
  • 使用docker安装mysql数据库并数据挂载
    下面是关于:单机版的mysql安装部署+数据挂载。1、首先安装docker,以及docer的基本配置包括镜像加速等,相关教程前面有讲过,可以参考docker安装部署和卸载_咛果果的博客-......
  • 我最喜爱的数据库客户端
    数据库客户端,我主要使用的是heidisql,一个小巧的mysql数据库客户端,使用delphi语言写成.它小巧,开启速度快,简约而不简单,页面虽不花哨,甚至有一点点的简陋过时,但是功能......
  • .mkp和.Elbie勒索加密数据库可恢复
    最近有朋友咨询了两种win机器文件加密的oracle数据库,通过判断均可修复然后正常open库.DBF.[5D00A5FE].[[email protected]].mkp,可以实现数据文件数据0丢失,和强制拉库......
  • 怎么解决postgres数据库锁死问题?
    使用了很多的其他方法,亲测此种方法有效解决死锁问题。1.您可以使用pg_terminate_backend通过查询终止打开的连接:PostgresVersion>=9.2SELECTpg_terminate_backen......
  • 数据库—数据库系统概述
    一、数据库的地位      数据库技术产生于六十年代末,是数据管理的有效技术,是计算机科学的最重要分支。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算......
  • MySQL数据库的各种安装方式【Windows,Linux,Docker】一次都告诉你
      MySQL数据库是作为程序员来说必备的一个组件,而安装相对来说又是非常繁琐的,所以本文就给大家整理下MySQL的各种安装操作。官网下载地址:​​https://dev.mysql.com/downlo......