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 |
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 |
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