Skip to main content

Vodnik za razumevanje odvisnosti od baz podatkov

Anonim

Odvisnost je omejitev, ki velja ali opredeljuje razmerje med atributi. Pojavljajo se v zbirki podatkov, kadar informacije, shranjene v isti tabeli zbirke podatkov, edinstveno določajo druge podatke, shranjene v isti tabeli. To lahko opisate tudi kot razmerje, kjer je poznavanje vrednosti enega atributa (ali nabora atributov) dovolj, da vam pove vrednost drugega atributa (ali niza atributov) v isti tabeli.

Odvisnosti baze podatkov pogosto zmede tako študente kot tudi baze podatkov strokovnjake. Na srečo niso tako zapleteni, kot se morda zdijo. Najbolje jih je razložiti z nekaj primeri. Tukaj bomo preučili skupne vrste odvisnosti od baze podatkov.

Odvisnosti od baze podatkov in funkcionalne odvisnosti

Če rečemo, da obstaja odvisnost med atributi v tabeli, je enaka dejstvu, da obstaja funkcijska odvisnost med temi atributi. Če obstaja odvisnost v bazi podatkov, tako da je atribut B odvisen od atributa A, bi to napisali kot:

A -> B

Na primer, v tabeli s seznami značilnosti zaposlenih, vključno s številko socialnega zavarovanja (SSN) in imenom, lahko rečemo, da je ime odvisno od SSN (ali SSN -> ime), ker je ime delavca mogoče enolično določiti iz SSN. Vendar obratna izjava (ime -> SSN) ni res, ker ima več kot en zaposleni isto ime, vendar vedno imajo različne SSN.

Trivialne funkcionalne odvisnosti

Trivialna funkcionalna odvisnost se pojavi, ko opisujete funkcionalno odvisnost atributa na zbirki atributov, ki vključuje izvorni atribut. Na primer, {A, B} -> B je trivialna funkcionalna odvisnost, kot je {ime, SSN} -> SSN. Ta vrsta funkcionalne odvisnosti se imenuje trivialna, ker jo je mogoče izpeljati iz zdravega razumevanja. Očitno je, da če že poznate vrednost B, potem je vrednost B lahko enolično določena s tem znanjem.

Polne funkcionalne odvisnosti

Popolna funkcionalna odvisnost se zgodi, ko že izpolnjujete zahteve za funkcionalno odvisnost, in nabor atributov na levi strani stavka funkcionalne odvisnosti ni več mogoče zmanjšati. Na primer, {SSN, age} -> ime je funkcijska odvisnost, vendar ni polna funkcionalna odvisnost, ker lahko odstranite starost z leve strani stavka, ne da bi vplivali na odvisnost.

Prehodne odvisnosti

Tranzicijske odvisnosti se pojavijo, ko je posredno razmerje, ki povzroča funkcionalno odvisnost. Na primer, A -> C je tranzitivna odvisnost, če je resnična le zato, ker sta oba A -> B in B -> C resnična.

Večvalentne odvisnosti

Večvalentne odvisnosti se pojavijo, če prisotnost ene ali več vrstic v tabeli pomeni prisotnost ene ali več vrstic v isti tabeli. Predstavljajte si na primer avtomobilsko podjetje, ki proizvaja veliko modelov avtomobila, vendar vedno naredi rdeče in modre barve vsakega modela. Če imate izdelano mizo, ki vsebuje ime modela, barvo in leto vsakega avtomobila, obstaja večvalentna odvisnost v tej tabeli. Če obstaja vrsta za določeno ime modela in leto v modri barvi, mora biti tudi podobna vrstica, ki ustreza rdeči različici istega avtomobila.

Pomen odvisnosti

Odvisnosti baz podatkov so pomembne za razumevanje, saj zagotavljajo osnovne gradnike, ki se uporabljajo pri normalizaciji baz podatkov, procesu učinkovite organizacije podatkov v bazo podatkov. Na primer:

  • Če je tabela v drugi normalni obliki (2NF), v tabeli, ki je funkcionalno odvisna od podmnožice ključa kandidata, ne sme biti nobenega primera nonprime atributa.
  • Za tabelo mora biti v tretji normalni obliki (3NF), mora vsak atribut brezprimera imeti neprehodno funkcionalno odvisnost od vsakega ključa kandidata.
  • Za tabelo mora biti v Boyce-Codd Normal Formu (BCNF), mora biti vsaka funkcionalna odvisnost (razen trivialnih odvisnosti) na superkeyju.
  • Za tabelo mora biti v četrti normalni obliki (4NF), ne sme imeti večvalentnih odvisnosti.