DBMS中的依赖关系类型

DBMS中的依赖关系类型

DBMS中的依赖关系是两个或多个属性之间的关系。在DBMS中有以下类型的依赖关系:

  • 功能依赖
  • 完全功能依赖
  • 传递依赖
  • 多值依赖
  • 部分依赖

让我们从功能依赖开始:

功能依赖

如果一个表中存储的信息能够唯一确定同一表中的另一个信息,则称之为功能依赖。将其视为同一关系的两个属性之间的关联。

如果P功能决定Q,则

P – > Q

让我们看一个例子 –

< Employee>

EmpID EmpName EmpAge
E01 Amit 28
E02 Rohit 31

在上表中, EmpName 对于 EmpID 是功能依赖的,因为对于给定的 EmpID 值, EmpName 只能取一个值:

EmpID – > EmpName

下面显示相同的内容−

DBMS中的依赖关系类型

全功能依赖

如果一个属性在另一个属性上是功能依赖的,并且不依赖于其任何子集,则称其为全功能依赖。

例如,属性Q在属性P上是功能依赖的,并且不依赖于P的任何子集。

让我们看一个例子−

<ProjectCost>

ProjectID ProjectCost
001 1000
002 5000

<EmployeeProject>

EmpID ProjectID Days (在项目上花费的天数)
E099 001 320
E056 002 190

上述关系表明:

EmpID, ProjectID, ProjectCost – > Days

然而,它不是完全的功能依赖。

而子集 {EmpID, ProjectID} 可以轻松地确定员工在项目上花费的天数。

这概括并给出了我们的完全功能依赖关系 –

{员工ID,项目ID} – > (天数)

传递依赖性

当间接关系导致功能依赖时,称之为 传递依赖性 。

如果 P -> Q 和 Q -> R 成立,则 P -> R 是一种传递依赖性。

多值依赖性

当表中的一行或多行的存在意味着表中的一行或多行的情况时,就会出现 多值依赖性 。

如果一个表具有属性 P、Q 和 R,则 Q 和 R 是 P 的多值事实。

用双箭头表示 –

- >->

就我们的例子而言:

P- >->QQ->->R

在上面的情况下,如果Q和R是独立属性,则存在多值依赖关系。

部分依赖

部分依赖 发生在非主属性在候选键的一部分上功能依赖的情况下。

第二范式 (2NF) 消除了部分依赖。让我们看一个例子−

<StudentProject>

StudentID ProjectNo StudentName ProjectName
S01 199 Katie Geo Location
S02 120 Ollie Cluster Exploration

在上面的表格中,我们有一个部分依赖;让我们看看是如何的−

主键属性是 学生ID项目编号

如上所述,非主属性即 学生姓名项目名称 应该依赖于候选键的一部分,从而成为部分依赖。

学生姓名 可以通过 学生ID 来确定,这使得关系是部分依赖的。

项目名称 可以通过 项目ID 来确定,这也使得关系是部分依赖的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程