Functionele afhankelijkheid in DBMS: typen met voorbeelden

โšก Slimme samenvatting

Functionele afhankelijkheid is een beperking die bepaalt hoe het ene attribuut zich verhoudt tot het andere in een databasebeheersysteem (DBMS). Het vormt de basis voor normalisatie door bepalende factoren en afhankelijkheden te identificeren en wordt geclassificeerd in meerwaardige, triviale, niet-triviale en transitieve afhankelijkheden.

  • โžก๏ธ Kernidee: Bij X โ†’ Y bepaalt de determinant X de waarde van de afhankelijke Y, die met een pijl wordt aangegeven.
  • ???? ๏ธ Sleutelbegrippen: Determinant, afhankelijke, axioma, decompositie en unie beschrijven hoe afhankelijkheden worden benoemd en gemanipuleerd.
  • ๐Ÿ“ Armstrongs axioma's: Reflexiviteit, augmentatie en transitiviteit leiden tot elke afhankelijkheid die een verzameling logischerwijs impliceert.
  • ๐Ÿ”€ Vier typen: Meerwaardige, triviale, niet-triviale en transitieve afhankelijkheden beschrijven elk een aparte attribuutrelatie.
  • ๐Ÿงน Normalisatielink: Afhankelijkheden leiden tot normalisatie, waardoor redundantie en afwijkingen in updates worden geรซlimineerd.
  • ๐Ÿ”‘ Sluiting: De attribuutafsluiting onthult kandidaatsleutels en of er sprake is van een afhankelijkheid.
  • โœ… Voordeel: Goede afhankelijkheden duiden op een goed ontwerp en onderscheiden kwalitatief goede schema's van slechte.

Functionele afhankelijkheid in DBMS

Wat is functionele afhankelijkheid?

Functionele afhankelijkheid (FD) Functionele afhankelijkheid is een beperking die de relatie tussen twee attributen in een databasemanagementsysteem (DBMS) bepaalt. Het helpt de kwaliteit van de gegevens in de database te waarborgen en speelt een cruciale rol bij het onderscheiden van een goed en een slecht databaseontwerp.

Een functionele afhankelijkheid wordt aangegeven met een pijl โ€œโ†’โ€. De functionele afhankelijkheid van Y van X wordt weergegeven door X โ†’ Y. Laten we functionele afhankelijkheid begrijpen aan de hand van een voorbeeld.

Voorbeeld:

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

In dit voorbeeld kunnen we, als we het werknemersnummer kennen, de naam, de plaats, het salaris, enzovoort van de werknemer achterhalen. Hieruit kunnen we concluderen dat de plaats, de naam en het salaris functioneel afhankelijk zijn van het werknemersnummer.

kernbegrippen

Hieronder volgen enkele belangrijke termen voor functionele afhankelijkheid in een database:

kernbegrippen Beschrijving
Axiom Axioma's zijn een reeks inferentieregels die worden gebruikt om alle functionele afhankelijkheden in een relationele database af te leiden.
Ontleding Een regel die suggereert dat als je een tabel hebt die twee entiteiten lijkt te bevatten die worden bepaald door dezelfde primaire sleutel, je zou moeten overwegen om deze op te splitsen in twee afzonderlijke tabellen.
Afhankelijk Het wordt weergegeven aan de rechterkant van het functionele afhankelijkheidsdiagram.
determinant Het wordt aan de linkerkant van het functionele afhankelijkheidsdiagram weergegeven.
Unie Het suggereert dat als twee tabellen gescheiden zijn en de primaire sleutel hetzelfde is, je zou moeten overwegen om ze samen te voegen.

Regels van functionele afhankelijkheden (Armstrongs axioma's)

Hieronder staan โ€‹โ€‹de drie belangrijkste regels voor functionele afhankelijkheid in een database. Ze staan โ€‹โ€‹bekend als de axioma's van Armstrong, en elke andere inferentieregel kan daaruit worden afgeleid.

  • Reflexieve regel: Als X een verzameling attributen is en Y een deelverzameling van X, dan geldt X โ†’ Y.
  • Uitbreidingsregel: Als X โ†’ Y geldt en C een verzameling attributen is, dan geldt XC โ†’ YC ook. Het toevoegen van attributen verandert de basisafhankelijkheid niet.
  • Transitiviteitsregel: Vergelijkbaar met de transitieve regel in de algebra: als X โ†’ Y geldt en Y โ†’ Z geldt, dan geldt X โ†’ Z ook.

Hieruit zijn nog drie regels afgeleid die in de praktijk constant worden toegepast:

  • Unieregel: Als X โ†’ Y en X โ†’ Z, dan is X โ†’ YZ.
  • Ontledingsregel: Als X โ†’ YZ, dan is X โ†’ Y en X โ†’ Z.
  • Pseudo-transitiviteitsregel: Als X โ†’ Y en WY โ†’ Z, dan is WX โ†’ Z.

Door deze regels herhaaldelijk toe te passen op een reeks afhankelijkheden, ontstaat het volgende resultaat. sluitingDe volledige set van afhankelijkheden die daar logischerwijs uit voortvloeien. De afsluiting van een attributenset is ook de manier waarop kandidaatsleutels worden gevonden, wat direct verband houdt met de studie van DBMS-sleutels.

Soorten functionele afhankelijkheden in DBMS

In databasesystemen bestaan โ€‹โ€‹hoofdzakelijk vier soorten functionele afhankelijkheden:

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

Meerwaardige afhankelijkheid in DBMS

Een meerwaardige afhankelijkheid treedt op wanneer er meerdere onafhankelijke meerwaardige attributen in รฉรฉn tabel voorkomen. Een meerwaardige afhankelijkheid is een volledige beperking tussen twee sets attributen in een relatie, die vereist dat bepaalde tuples aanwezig zijn. Neem het volgende voorbeeld.

Voorbeeld:

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

In dit voorbeeld zijn Maf_year en Color onafhankelijk van elkaar, maar afhankelijk van Car_model. Deze twee kolommen worden multivalue-afhankelijk van Car_model genoemd. Dit wordt als volgt weergegeven:

auto_model โ†’ maf_jaar

auto_model โ†’ kleur

Triviale functionele afhankelijkheid in DBMS

Een triviale afhankelijkheid is een verzameling attributen die triviaal wordt genoemd als de verzameling attributen in dat attribuut is opgenomen. Dus, X โ†’ Y is een triviale functionele afhankelijkheid als Y een subset van X is. Beschouw het onderstaande voorbeeld.

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

Een niet-triviale afhankelijkheid treedt op wanneer A โ†’ B waar is en B geen deelverzameling van A is. Als attribuut B geen deelverzameling is van attribuut A, wordt de afhankelijkheid als niet-triviaal beschouwd.

Over ons CEO Leeftijd
Microsoft Satya Nadella 51
Google 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 subset van het bedrijf, en daarom is er sprake van een niet-triviale functionele afhankelijkheid.

Transitieve afhankelijkheid in DBMS

Een transitieve afhankelijkheid is een type functionele afhankelijkheid dat optreedt wanneer een eigenschap indirect wordt bepaald door twee functionele afhankelijkheden. Neem het onderstaande voorbeeld.

Over ons CEO Leeftijd
Microsoft Satya Nadella 51
Google 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).

Volgens de regel van transitieve afhankelijkheid zou daarom {Bedrijf} โ†’ {Leeftijd} moeten gelden, wat logisch is, want als we de bedrijfsnaam weten, kunnen we de leeftijd achterhalen.

Let op: transitieve afhankelijkheid kan alleen voorkomen in een relatie met drie of meer attributen.

Wat is normalisatie?

Normalisatie is een methode om gegevens in een database te ordenen, waarmee redundantie en fouten bij het invoegen, bijwerken en verwijderen van gegevens worden 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 theorie van relationele databases. Het kan ertoe leiden dat gegevens over meerdere tabellen worden verdeeld, zodat elk gegeven slechts รฉรฉn keer wordt opgeslagen. Het volledige proces wordt beschreven in de handleiding. databasenormalisatie, wat direct voortbouwt op de bovenstaande afhankelijkheidstypen.

Voordelen van functionele afhankelijkheid

  • Functionele afhankelijkheid voorkomt redundantie van gegevens, waardoor dezelfde gegevens niet op meerdere plaatsen in het systeem voorkomen. databank.
  • Het helpt je de kwaliteit van de gegevens in de database te waarborgen.
  • Het helpt je de betekenis en beperkingen van databases te definiรซren.
  • Het helpt je slechte ontwerpen te herkennen.
  • Het helpt je de feiten over het databaseontwerp te achterhalen.

Veelgestelde vragen

De bepalende factor is het kenmerk links van de pijl dat de waarde vastlegt. De afhankelijke factor is het kenmerk rechts waarvan de waarde wordt bepaald. In X โ†’ Y bepaalt X Y.

Een functionele afhankelijkheid legt รฉรฉn enkele waarde vast voor de afhankelijke variabele. Een meerwaardige afhankelijkheid staat een reeks onafhankelijke waarden toe, vandaar dat deze een eigen attribuut nodig heeft en leidt tot de vierde normale vorm.

Bereken de afsluiting van een attribuutverzameling met behulp van de afhankelijkheden. Als de afsluiting alle attributen van de relatie bevat, is die verzameling een supersleutel; de minimale dergelijke verzameling is een kandidaatsleutel.

Ja. Algoritmen voor het opsporen van afhankelijkheden, waarvan sommige door AI worden ondersteund, scannen een dataset en stellen mogelijke afhankelijkheden voor. Een ontwerper moet deze bevestigen, omdat een patroon dat in de voorbeeldgegevens klopt, niet per se in de regel hoeft op te gaan.

Het slaat een feit op over een niet-sleutelkenmerk, dus het bijwerken ervan brengt het risico op anomalieรซn met zich mee. Het verwijderen van transitieve afhankelijkheden is precies wat de derde normale vorm vereist, die elk feit op รฉรฉn plek bewaart.

Vat dit bericht samen met: