Functionele afhankelijkheid in DBMS: wat is, typen en voorbeelden

Inhoudsopgave:

Anonim

Wat is functionele afhankelijkheid?

Functionele afhankelijkheid (FD) is een beperking die de relatie van het ene kenmerk tot het andere kenmerk in een databasebeheersysteem (DBMS) bepaalt. Functionele afhankelijkheid helpt om de kwaliteit van de gegevens in de database te behouden. Het speelt een cruciale rol om het verschil te vinden tussen goed en slecht databaseontwerp.

Een functionele afhankelijkheid wordt aangegeven met een pijl "→". De functionele afhankelijkheid van X op Y wordt weergegeven door X → Y. Laten we functionele afhankelijkheid in DBMS met een voorbeeld begrijpen.

Voorbeeld:

Werknemersnummer Naam werknemer Salaris stad
1 Dana 50000 San Francisco
2 Francis 38000 Londen
3 Andrew 25000 Tokio

Als we in dit voorbeeld de waarde van het werknemersnummer kennen, kunnen we de naam van de werknemer, de stad, het salaris, enz. Krijgen. Hiermee kunnen we zeggen dat de stad, de naam van de werknemer en het salaris functioneel afhankelijk zijn van het nummer van de werknemer.

In deze tutorial leer je:

  • Sleutelbegrippen
  • Regels van functionele afhankelijkheden
  • Typen functionele afhankelijkheden in DBMS
  • Meerwaardige afhankelijkheid in DBMS
  • Trivial Functionele afhankelijkheid in DBMS
  • Niet triviale functionele afhankelijkheid in DBMS
  • Overgankelijke afhankelijkheid in DBMS
  • Wat is normalisatie?
  • Voordelen van functionele afhankelijkheid

Sleutelbegrippen

Hier zijn enkele belangrijke termen voor functionele afhankelijkheid in de database:

Sleutelbegrippen Omschrijving
Axioma Axioma's is een reeks inferentieregels die worden gebruikt om alle functionele afhankelijkheden van een relationele database af te leiden.
Ontleding Het is een regel die suggereert dat als u een tabel heeft die twee entiteiten lijkt te bevatten die worden bepaald door dezelfde primaire sleutel, u zou moeten overwegen ze op te splitsen in twee verschillende tabellen.
Afhankelijk Het wordt aan de rechterkant van het functionele afhankelijkheidsdiagram weergegeven.
Bepalend Het wordt weergegeven aan de linkerkant van het functionele afhankelijkheidsdiagram.
Unie Het suggereert dat als twee tafels gescheiden zijn en de PK hetzelfde is, je zou moeten overwegen om ze te plaatsen. samen

Regels van functionele afhankelijkheden

Hieronder staan ​​de drie belangrijkste regels voor functionele afhankelijkheid in de database:

  • Reflexieve regel -. Als X een set attributen is en Y is_subset_van X, dan heeft X de waarde Y.
  • Vergrotingsregel: als x -> y geldt, en c is attribuutset, dan geldt ac -> bc ook. Dat is het toevoegen van attributen die de basisafhankelijkheden niet veranderen.
  • Overgangsregel: Deze regel lijkt sterk op de transitieve regel in de algebra als x -> y geldt en y -> z geldt, dan geldt x -> z ook. X -> y wordt genoemd als functioneel dat y bepaalt.

Typen functionele afhankelijkheden in DBMS

Er zijn hoofdzakelijk vier soorten functionele afhankelijkheid in DBMS. Hieronder volgen de typen functionele afhankelijkheden in DBMS:

  • Meerwaardige afhankelijkheid
  • Triviale functionele afhankelijkheid
  • Niet-triviale functionele afhankelijkheid
  • Overgankelijke afhankelijkheid

Meerwaardige afhankelijkheid in DBMS

Meerwaardige afhankelijkheid treedt op in de situatie waarin er meerdere onafhankelijke meerwaardige attributen in een enkele tabel zijn. Een afhankelijkheid met meerdere waarden is een volledige beperking tussen twee sets attributen in een relatie. Het vereist dat bepaalde tuples aanwezig zijn in een relatie. Beschouw het volgende voorbeeld van meerwaardige afhankelijkheid om het te begrijpen.

Voorbeeld:

Auto model Maf_jaar Kleur
H001 2017 Metalen
H001 2017 Groen
H005 2018 Metalen
H005 2018 Blauw
H010 2015 Metalen
H033 2012 Grijs

In dit voorbeeld zijn maf_year en color onafhankelijk van elkaar maar wel afhankelijk van car_model. In dit voorbeeld wordt gezegd dat deze twee kolommen meerdere waarden hebben, afhankelijk van car_model.

Deze afhankelijkheid kan als volgt worden weergegeven:

auto_model -> maf_jaar

car_model-> kleur

Triviale functionele afhankelijkheid in DBMS

De Trivial-afhankelijkheid is een set attributen die triviaal wordt genoemd als de set attributen in dat attribuut is opgenomen.

Dus X -> Y is een triviale functionele afhankelijkheid als Y een subset is van X. Laten we het begrijpen met een Trivial Functional Dependency-voorbeeld.

Bijvoorbeeld:

Emp_id Emp_naam
AS555 Harry
AS811 George
AS999 Kevin

Beschouw deze tabel met twee kolommen Emp_id en Emp_name.

{Emp_id, Emp_name} -> Emp_id is een triviale functionele afhankelijkheid aangezien Emp_id een subset is van {Emp_id, Emp_name}.

Niet-triviale functionele afhankelijkheid in DBMS

Functionele afhankelijkheid die ook bekend staat als een niet-triviale afhankelijkheid treedt op wanneer A-> B waar is waar B geen subset is van A.In een relatie, als attribuut B geen subset is van attribuut A, wordt het beschouwd als een niet-triviale afhankelijkheid.

Bedrijf Directeur Leeftijd
Microsoft Satya Nadella 51
Google Sundar Pichai 46
appel Tim kookt 57

Voorbeeld:

(Bedrijf} -> {CEO} (als we het bedrijf kennen, kennen we de naam van de CEO)

Maar CEO is geen onderdeel van het bedrijf, en daarom is het een niet-triviale functionele afhankelijkheid.

Overgankelijke afhankelijkheid in DBMS

Een transitieve afhankelijkheid is een soort functionele afhankelijkheid die optreedt wanneer t indirect wordt gevormd door twee functionele afhankelijkheden. Laten we het begrijpen met het volgende voorbeeld van transitieve afhankelijkheid.

Voorbeeld:

Bedrijf Directeur Leeftijd
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Company} -> {CEO} (als we het bedrijf kennen, kennen we de naam van de CEO)

{CEO} -> {Age} Als we de CEO kennen, kennen we de Age

Daarom volgens de regel van de regel van transitieve afhankelijkheid:

{Company} -> {Age} zou moeten gelden, dat is logisch, want als we de bedrijfsnaam kennen, kunnen we zijn leeftijd kennen.

Opmerking: u moet onthouden dat transitieve afhankelijkheid alleen kan voorkomen in een relatie van drie of meer attributen.

Wat is normalisatie?

Normalisatie is een methode om de gegevens in de database te ordenen, waardoor u gegevensredundantie, invoegen, bijwerken en verwijderen kunt voorkomen. Het is een proces waarbij de relatieschema's worden geanalyseerd op basis van hun verschillende functionele afhankelijkheden en primaire sleutel.

Normalisatie is inherent aan de relationele databasetheorie. Het kan tot gevolg hebben dat dezelfde gegevens in de database worden gedupliceerd, wat kan resulteren in het maken van extra tabellen.

Voordelen van functionele afhankelijkheid

  • Functionele afhankelijkheid vermijdt gegevensredundantie. Daarom worden dezelfde gegevens niet herhaald op meerdere locaties in die database
  • Het helpt u om de kwaliteit van de gegevens in de database te behouden
  • Het helpt u de betekenissen en beperkingen van databases te definiëren
  • Het helpt u om slechte ontwerpen te identificeren
  • Het helpt u om de feiten over het databaseontwerp te vinden

Overzicht

  • Functionele afhankelijkheid is wanneer een kenmerk een ander kenmerk in een DBMS-systeem bepaalt.
  • Axioma, Decomposition, Dependent, Determinant, Union zijn sleutelbegrippen voor functionele afhankelijkheid
  • Vier soorten functionele afhankelijkheid zijn 1) Meerwaardig 2) Triviaal 3) Niet-triviaal 4) Overgankelijk
  • Meerwaardige afhankelijkheid treedt op in de situatie waarin er meerdere onafhankelijke meerwaardige attributen in een enkele tabel zijn
  • De Trivial-afhankelijkheid treedt op wanneer een set attributen die triviaal worden genoemd als de set attributen in dat attribuut is opgenomen
  • Niet-triviale afhankelijkheid treedt op wanneer A-> B waar is en B geen subset van A is
  • Een transitief is een soort functionele afhankelijkheid die optreedt wanneer deze indirect wordt gevormd door twee functionele afhankelijkheden
  • Normalisatie is een methode om de gegevens in de database te ordenen, waardoor u gegevensredundantie kunt voorkomen