Functionele afhankelijkheid in DBMS: wat is, typen en voorbeelden

Wat is functionele afhankelijkheid?

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

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

Voorbeeld:

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

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

Kernbegrippen

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

kernbegrippen Beschrijving
Axioma Axioma's zijn een reeks gevolgtrekkingsregels 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 door dezelfde primaire sleutel worden bepaald, u moet overwegen deze in twee verschillende tabellen op te splitsen.
Afhankelijk Het wordt weergegeven op de rechterkant van het functionele afhankelijkheidsdiagram.
determinant Het wordt weergegeven aan de linkerkant van het functionele afhankelijkheidsdiagram.
Unie Het suggereert dat als twee tabellen gescheiden zijn en de PK hetzelfde is, je zou moeten overwegen om ze te plaatsen. samen

Regels voor 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.
  • Augmentatieregel: Als x -> y geldt, en c is een attribuut ingesteld, dan geldt ook ac -> bc. Dat betekent het toevoegen van attributen die de fundamentele afhankelijkheden niet veranderen.
  • Transitiviteitsregel: 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 functioneel genoemd en bepaalt y.

Soorten functionele afhankelijkheden in DBMS

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

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

Meerwaardige afhankelijkheid in DBMS

Multivalued dependency treedt op in de situatie waarin er meerdere onafhankelijke multivalued attributen in één tabel staan. Een multivalued dependency is een complete beperking tussen twee sets attributen in een relatie. Het vereist dat bepaalde tupels aanwezig zijn in een relatie. Bekijk het volgende Multivalued Dependency Example om het te begrijpen.

Voorbeeld:

Auto model Maf_jaar Kleur
H001 2017 Metalen
H001 2017 Groen
H005 2018 Metalen
H005 2018 Blue
H010 2015 Metalen
H033 2012 Gray

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

Deze afhankelijkheid kan als volgt worden weergegeven:

automodel -> maf_jaar

auto_model-> kleur

Triviale functionele afhankelijkheid in DBMS

De triviale afhankelijkheid is een reeks attributen die triviaal worden genoemd als de reeks attributen in dat attribuut is opgenomen.

Dus X -> Y is een triviale functionele afhankelijkheid als Y een subset van X is. Laten we het begrijpen met een triviaal functioneel afhankelijkheidsvoorbeeld.

Bijvoorbeeld:

Emp_id Werk_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, ook bekend als een niet-triviale afhankelijkheid, treedt op wanneer A->B waar is en B geen subset van A is. Als attribuut B in een relatie geen subset is van attribuut A, wordt het beschouwd als een niet-triviale afhankelijkheid. afhankelijkheid.

Bedrijf CEO Leeftijd
Microsoft Satya Nadella 51
Kopen Google Reviews Sundar Pichai 46
Appel Tim Cook 57

Voorbeeld:

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

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

Transitieve afhankelijkheid in DBMS

Een Transitive Dependency is een type functionele afhankelijkheid die optreedt wanneer "t" indirect wordt gevormd door twee functionele afhankelijkheden. Laten we het begrijpen met het volgende Transitive Dependency Example.

Voorbeeld:

Bedrijf CEO Leeftijd
Microsoft Satya Nadella 51
Kopen Google Reviews Sundar Pichai 46
Alibaba Jack Ma 54

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

{CEO } -> {Leeftijd} Als we de CEO kennen, kennen we de leeftijd

Daarom volgens de regel van transitieve afhankelijkheid:

{Bedrijf} -> {Leeftijd} zou moeten gelden, dat is logisch, want als we de bedrijfsnaam kennen, kunnen we ook zijn leeftijd weten.

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

Wat is normalisatie?

Normalisatie is een methode voor het organiseren van de gegevens in de database, waarmee u gegevensredundantie, invoeg-, update- en verwijderingsafwijkingen 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 op meerdere locaties herhaald databank
  • Het helpt u de kwaliteit van de gegevens in de database te behouden
  • Het helpt u bij het definiëren van betekenissen en beperkingen van databases
  • Het helpt je slechte ontwerpen te identificeren
  • Het helpt u de feiten over het databaseontwerp te vinden

Samenvatting

  • Er is sprake van functionele afhankelijkheid wanneer één attribuut een ander attribuut in a bepaalt DBMS-systeem.
  • Axioma, Decomposition, Dependent, Determinant, Union zijn sleutelbegrippen voor functionele afhankelijkheid
  • Vier soorten functionele afhankelijkheid zijn 1) Meerwaardig 2) Triviaal 3) Niet-triviaal 4) Transitief
  • Meerwaardige afhankelijkheid doet zich voor in de situatie waarin er meerdere onafhankelijke meerwaardige attributen in één tabel voorkomen
  • De triviale afhankelijkheid treedt op wanneer een reeks attributen die triviaal worden genoemd als de reeks attributen in dat attribuut is opgenomen
  • Niet-triviale afhankelijkheid treedt op wanneer A->B waar is en B geen deelverzameling van A is
  • Een transitieve 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