Në një bazë të dhënash relacionale, një varësi ndodh kur informacioni i ruajtur në të njëjtën tabelë të bazës së të dhënave përcakton në mënyrë unike informacione të tjera të ruajtura në të njëjtën tabelë. Një varësi me shumë vlera ndodh kur prania e një ose më shumë rreshtave në një tabelë nënkupton praninë e një ose më shumë rreshtave të tjerë në të njëjtën tabelë. E thënë ndryshe, dy atribute (ose kolona) në një tabelë janë të pavarura nga njëra-tjetra, por të dyja varen nga një atribut i tretë.
Një varësi me shumë vlera parandalon formën standarde të katërt normale të normalizimit. Bazat e të dhënave relacionale ndjekin pesë forma normale që përfaqësojnë udhëzime për dizajnimin e rekordit. Ato parandalojnë anomalitë e përditësimit dhe mospërputhjet në të dhëna. Forma e katërt normale merret me marrëdhëniet shumë-për-një në një bazë të dhënash.
Varësia funksionale kundrejt varësisë me shumë vlera
Për të kuptuar një varësi me shumë vlera, është e dobishme të rishikoni se çfarë është një varësi funksionale.
Nëse një atribut X përcakton në mënyrë unike një atribut Y, atëherë Y është funksionalisht i varur nga X. Kjo shkruhet si X -> Y. Për shembull, në tabelën Studentët më poshtë, Emri_Studenti përcakton Majorin:
Emri_Studenti | Major |
---|---|
Ravi | Historia e Artit |
Beth | Kimi |
Kjo varësi funksionale mund të shkruhet: Emri_Studenti -> Major. Çdo Student_Name përcakton saktësisht një Major dhe jo më shumë.
Nëse dëshironi që baza e të dhënave të gjurmojë gjithashtu sportet që marrin këta studentë, mund të mendoni se mënyra më e lehtë për ta bërë këtë është thjesht të shtoni një kolonë tjetër të titulluar Sport:
Emri_Studenti | Major | Sport |
---|---|---|
Ravi | Historia e Artit | Futboll |
Ravi | Historia e Artit | Volejboll |
Ravi | Historia e Artit | Tenis |
Beth | Kimi | Tenis |
Beth | Kimi | Futboll |
Problemi këtu është se Ravi dhe Beth luajnë disa sporte. Është e nevojshme të shtohet një rresht i ri për çdo sport shtesë.
Kjo tabelë ka prezantuar një varësi shumëvlerëshe sepse fusha kryesore dhe sporti janë të pavarura nga njëra-tjetra, por të dyja varen nga studenti. Ky është një shembull i thjeshtë dhe lehtësisht i identifikueshëm, por një varësi me shumë vlera mund të bëhet problem në një bazë të dhënash të madhe dhe komplekse.
Një varësi me shumë vlera shkruhet X ->-> Y. Në këtë rast:
. >
Sport
Kjo lexohet si "Emri_Studenti shumëpërcakton Majorin" dhe "Emri_Studentit shumëpërcakton Sportin."
Një varësi me shumë vlera kërkon gjithmonë të paktën tre atribute sepse përbëhet nga të paktën dy atribute që varen nga një i tretë.
varësia dhe normalizimi i shumëvlerësuar
Një tabelë me një varësi shumëvlerëshe shkel standardin e normalizimit të formës së katërt normale sepse krijon teprica të panevojshme dhe mund të kontribuojë në të dhëna jokonsistente. Për ta sjellë këtë deri në 4NF, është e nevojshme që ky informacion të ndahet në dy tabela.
Tabela më poshtë tani ka një varësi funksionale të Student_Name -> Major dhe nuk ka varësi shumëvlerëshe:
Emri_Studenti | Major |
---|---|
Ravi | Historia e Artit |
Ravi | Historia e Artit |
Ravi | Historia e Artit |
Beth | Kimi |
Beth | Kimi |
Ndërsa kjo tabelë ka gjithashtu një varësi të vetme funksionale të Student_Name -> Sport:
Emri_Studenti | Sport |
---|---|
Ravi | Futboll |
Ravi | Volejboll |
Ravi | Tenis |
Beth | Tenis |
Beth | Futboll |
Normalizimi shpesh realizohet duke thjeshtuar tabelat komplekse në mënyrë që ato të përmbajnë informacion në lidhje me një ide ose temë të vetme në vend që të përpiqeni të bëni një tabelë të vetme të përmbajë shumë informacione të ndryshme.