Funktsionaalsed sõltuvused ja relatsiooniandmebaasid. Andmete normaliseerimine

Tavaliste vormide meetod

Õpetaja

Täisnimi Peaks Palk Kogemused Nadb Kaf Teema Grupp VidZan
Ivanov I.M. Rev. DBMS Laboratoorium
Ivanov I.M. Rev. Teavitada Laboratoorium
Petrov M.I. Vanemõpetaja DBMS Loeng
Petrov M.I. Vanemõpetaja Graafika Laboratoorium
Sidorov N.G. Rev. Teavitada Loeng
Sidorov N.G. Rev. Graafika Loeng
Egorov V.V. Rev. PC Loeng

Riis. 6.4. Esmane suhtumine ÕPETAJA

Kaudne koondamine avaldub kõigi õpetajate samades palkades ja sama staaži eest samades palgalisades. Kui palk muutub 500 rubla. kuni 510 rubla, siis tuleb seda väärtust muuta kõigil õpetajatel. Kui Sidorov välja jätta, muutub andmebaas ebajärjekindlaks. See on näide suhte redigeerimise anomaaliast, millel on kaudne liiasus.

Üleliigsuse kõrvaldamine seisneb suhete normaliseerimises.

Tavavormi meetod on klassikaline meetod relatsiooniandmebaaside kujundamiseks. See põhineb suhte atribuutide vahelise sõltuvuse põhikontseptsioonil.

Atribuut B funktsionaalselt sõltuv atribuudist A, kui iga A väärtus vastab täpselt ühele B väärtusele. Matemaatiliselt tähistatakse B funktsionaalset sõltuvust A-st tähisega A ® B. See tähendab, et kõigis sama atribuudi väärtusega korteežides ATTRIBUT SAMA VÄÄRTUS ON KA B-l. Atribuudid A ja B võivad olla kombineeritud – koosneda kahest või enamast atribuudist. Seoses õpetajaga on funktsionaalsed sõltuvused järgmised: täisnimi ® osakond, täisnimi ® kohustus, kohustus ® palk jne.

Funktsionaalne vastastikune sõltuvus. Kui esineb vormi A ® B ja B ® A funktsionaalne sõltuvus, siis A ja B vahel on üks-ühele vastavus ehk funktsionaalne vastastikune sõltuvus. Matemaatiliselt tähistatakse vastastikust sõltuvust kui A "B või B" A.

Näide. Atribuut N (passi seeria ja number) on funktsionaalselt sõltuv täisnime atribuudiga (perenimi, eesnimi ja isanimi), kui eeldatakse, et kahe inimese perekonnanimede, eesnimede ja isanimede täielik kokkulangemine on välistatud .

Osaline funktsionaalne sõltuvus Nimetatakse mittevõtmeatribuudi sõltuvust liitvõtme osast. Õpetaja seoses on võti liit ja koosneb atribuutidest Full Name, Subject ja Group. Kõik mittevõtmeatribuudid sõltuvad funktsionaalselt võtmest erineva sõltuvusastmega. Näiteks atribuut Position on funktsionaalselt sõltuv atribuudist Full Name, mis on võtme osa, st. sõltub osaliselt võtmest.

Täielik funktsionaalne sõltuvus - Mittevõtmeatribuudi sõltuvus kogu liitvõtmest. Näiteks atribuut ViewZan sõltub funktsionaalselt täielikult liitvõtmest.

Atribuut C sõltub atribuudist A transitiivselt (olemas transitiivne sõltuvus ), kui atribuutide A, B, C puhul on tingimused A ® B ja B ® C täidetud, kuid pöördvõrdeline seos puudub. Näites on atribuudid ühendatud transitiivse sõltuvusega:

Täisnimi ® Ametinimetus ® Palk

Seoses R-ga atribuut B oleneb palju atribuudist A, kui iga A väärtus vastab B väärtuste komplektile, mis ei ole seotud R muude atribuutidega. Mitmeväärtuslikud sõltuvused võivad olla üks-mitmele (1:M), mitu-ühele (M) :1) või mitu-ühele paljudele” (M:M), tähistatakse vastavalt: A Þ B, A Ü B ja A Û B.

Vaadeldavas näites on atribuutide Täisnimi Û Õppeaine vahel mitme väärtusega M:M seos (üks õpetaja võib õpetada mitut ainet ja ühte ainet mitu õpetajat).

Kuna anomaaliate põhjuseks on atribuutidevaheline sõltuvus, püütakse selliseid seoseid jagada mitmeks suhteks. Selle tulemusena moodustub seotud seoste (tabelite) kogum seostega kujul 1:1, 1:M, M:1 ja M:M. Tabelitevahelised seosed peegeldavad sõltuvusi erinevate seoste atribuutide vahel.

Vastastikku sõltumatud atribuudid. Kaht või enamat atribuuti peetakse üksteisest sõltumatuks, kui ükski atribuutidest ei sõltu funktsionaalselt teistest atribuutidest. Matemaatiliselt tähistatakse atribuudi A sõltuvuse puudumist atribuudist B kui A Ø® B. Kui toimuvad A Ø® B ja B Ø® A, siis on vastastikune sõltumatus tähistatud A Ø = B.

Atribuutide vaheliste sõltuvuste tuvastamine. Atribuutide vaheliste sõltuvuste tuvastamine on vajalik andmebaasi kujundamiseks tavavormide meetodil.

Näide. Olgu seos R antud skeemiga R(A1, A2, A3) kujul:

A1 A2 A3

Eelnevalt on teada, et on olemas funktsionaalsed sõltuvused:

A1®A2 ja A2®A3.

Analüüsist on selge, et suhetes on ka sõltuvusi:

A1®A3, A1A2®A3, A1A2A3®A1A2, A1A2®A2A3 jne.

Seoses puudub atribuudi A1 funktsionaalne sõltuvus atribuudist A2 ja atribuudist A3, s.t.

A2 Ø® A1, A3 Ø® A1.

A1 sõltuvuse puudumine A2-st on seletatav asjaoluga, et atribuudi A2 (21) sama väärtus vastab atribuudi A1 erinevatele väärtustele (12 ja 17).

Kõik relatsioonis olevad funktsionaalsed sõltuvused on funktsionaalsete sõltuvuste täielik komplekt , mida tähistame F + . Funktsionaalsete sõltuvuste täielikku komplekti saab järeldada 8 järeldusaksioomi põhjal: peegeldus, lõpetamine, transitiivsus, laiendus, jätkumine, pseudotransitiivsus, ühinemine ja lagunemine.

Õpetaja seose jaoks saate tuletada järgmised funktsionaalsed sõltuvused:

Täisnimi ® Palk

Täisnimi ® Kohustus

Täisnimi ® Kogemus

Täisnimi ® Nadb

Täisnimi ® Kaf

Kogemused ® Nadb

Kohustus ® Palk

Palk ® Kohustus

TÄISNIMI. Teema Rühm ® Palk

Riis. 6.5. Atribuutide vahelised sõltuvused.

Eeldatakse, et ühes rühmas saab üks õpetaja läbi viia üht tüüpi tundi (loenguid või laboratoorseid töid). Täisnimi – ainulaadne. On olemas sõltuvus Full Name ® Kogemus, kuid vastupidine väide ei vasta tõele, sest Mitmel õpetajal on sama kogemus. Muude sõltuvuste osas on põhjendused sarnased. Ametikoha ja palga vahel luuakse üks-ühele suhe.

Üks õpetaja ühes rühmas erinevates ainetes võib läbi viia erinevat tüüpi tunde. Ametitüübi määratlus on seotud täisnime, teema ja rühma märkimisega. Tõepoolest, Petrov M.I. 256. rühmas peab loenguid ja viib läbi laboritunde, kuid peab loenguid DBMS-ist ja laboratoorseid töid graafikast.

Atribuutide Nimi, Teema ja Grupp vahelisi sõltuvusi ei kuvata, kuna need moodustavad liitvõtme ja neid ei võeta relatsiooni (tabeli) normaliseerimisprotsessis arvesse.

Tavalised vormid. Andmebaaside kujundamise protsess normaalvormide abil on iteratiivne ja seisneb suhete järjestikuses ülekandmises esimeselt normaalvormilt kõrgemat järku normaalvormidele. Iga järgnev vorm piirab teatud tüüpi funktsionaalset sõltuvust, kõrvaldab vastavad anomaaliad andmebaasisuhetega seotud toimingute tegemisel ja säilitab eelmiste vormide omadused.

Eristatakse järgmist normaalvormide jada:

° Esimene normaalvorm (1NF);

° Teine normaalvorm (2NF);

° Kolmas normaalvorm (3NF);

° Tugevdatud kolmas normaalvorm ehk Boyce-Coddi normaalvorm (BCNF);

° Neljas normaalvorm (4NF);

° Viies normaalvorm (5NF).

Esimene normaalne vorm Seos on 1NF-s, kui kõik selle atribuudid on lihtsad (ühe väärtusega). Algne seos on konstrueeritud nii, et see on 1NF-is.

Seose teisendamine järgmisele normaalkujule toimub "kadudeta lagunemise" meetodil, s.o. päringud (andmete valim tingimuste järgi) algsele seosele ja lagunemise tulemusena saadud seostele peaksid andma sama tulemuse.

Dekomponeerimismeetodi põhioperatsioon on projektsioonioperatsioon.

Näide. Olgu seosel R(A,B,C,D,E,...) funktsionaalne sõltuvus C ® D. Relatsiooni R lagunemine kaheks uueks seoseks R1(A, B,C,E,...) ja R2(C,D) kõrvaldab atribuutide funktsionaalse sõltuvuse ja kannab seose R üle järgmisele normaalvormile. Seos R2 on relatsiooni R projektsioon atribuutidele C ja D.

Algsel seosel Õpetaja on liitvõti Täisnimi, teema, rühm ja on 1NF-is. Atribuudid Kogemus, Nadb, Kohvik, Töö, Palk sõltuvad funktsionaalselt osast liitvõtmest - atribuudist Täisnimi. See osaline sõltuvus toob kaasa andmete otsese ja kaudse liiasuse, mis tekitab probleeme andmete redigeerimisega. Osa liiasusest kõrvaldatakse, teisendades suhte 2NF-ks.

Teine normaalne vorm. Seos on 2NF-is, kui see on 1NF-is ja iga võtmevaba atribuut on funktsionaalselt täielikult sõltuv primaarvõtmest (komposiitvõtmest).

Osalise sõltuvuse kõrvaldamiseks on vaja kasutada projektsioonioperatsiooni, laiendades algse seose mitmeks suhteks järgmiselt:

° Konstrueerida projektsioon ilma primaarvõtmest osaliselt sõltuvate atribuutideta;

° Koostage projektsioonid liitprimaarvõtme osadele ja nendest osadest sõltuvatele atribuutidele.

Tõlgime õpetaja seose 2NF-i. Selle tulemusena saame kaks seost R1 ja R2.

R1

Täisnimi Teema Grupp VidZan
Ivanov I.M. DBMS Laboratoorium
Ivanov I.M. Teavitada Laboratoorium
Petrov M.I. DBMS Loeng
Petrov M.I. Graafika Laboratoorium
Sidorov N.G. Teavitada Loeng
Sidorov N.G. Graafika Loeng
Egorov V.V. PC Loeng

Riis. 6.6. Andmebaasi seosed ÕPETAJA 2 SF-s

Seoses R1 on primaarvõti liitvõti Täisnimi, teema, rühm, R2 suhtes on võti TÄISNIMI. Selle tulemusena kaob õpetajate andmete ilmne liiasus. R2-s on endiselt andmete kaudne dubleerimine.

Edasiseks täiustamiseks teisendame suhted 3NF-i.

Loeng 3. Üldmõisted ja definitsioonid. Funktsioonide klassifikatsioon. Funktsiooni piirang. Lõpmatult väikesed ja lõpmatult suured funktsioonid. Põhiteoreemid lõpmata väikeste funktsioonide kohta.

Funktsioon

Erinevate ülesannete lahendamisel tuleb enamasti tegeleda konstantsete ja muutuvate suurustega.

Definitsioon

Konstantne suurus on suurus, mis säilitab sama väärtuse kas üldiselt või antud protsessis: viimasel juhul nimetatakse seda parameetriks.

Muutuv suurus on suurus, mis võib omandada erinevaid arvväärtusi.

Funktsiooni mõiste

Erinevate nähtuste uurimisel käsitleme tavaliselt muutuvate suuruste kogumit, mis on omavahel seotud nii, et mõne suuruse (sõltumatute muutujate) väärtused määravad täielikult teiste (sõltuvate muutujate ja funktsioonide) väärtused.

Definitsioon

Muutuvat suurust y nimetatakse muutuva suuruse x (ühe väärtusega) funktsiooniks, kui need on omavahel seotud nii, et iga vaadeldav x väärtus vastab suuruse y ühele täpselt määratletud väärtusele (sõnastatud autor N. I. Lobatševski).

Määramine y=f(x) (1)

x– sõltumatu muutuja või argument;

y– sõltuv muutuja (funktsioon);

f– funktsioonile iseloomulik.

Sõltumatu muutuja kõigi väärtuste kogumit, mille jaoks funktsioon on määratletud, nimetatakse selle funktsiooni määratluspiirkonnaks või olemasolu domeeniks. Funktsiooni määratluspiirkond võib olla: segment, poolintervall, intervall või kogu arvtelg.

Iga raadiuse väärtus vastab ringi pindala väärtusele. Pindala on raadiuse funktsioon, mis on määratletud lõpmatu intervalliga

2. Funktsioon (2). Funktsioon määratletud aadressil

Funktsiooni käitumise visualiseerimiseks koostage funktsioonigraafik.

Definitsioon

Funktsioonigraafik y=f(x) nimetatakse punktide kogumiks M(x,y) lennuk OXY, mille koordinaadid on seotud selle funktsionaalse sõltuvusega. Või on funktsiooni graafik sirge, mille võrrand on funktsiooni defineeriv võrrand.

Näiteks funktsiooni (2) graafik on raadiusega 2 poolring, mille keskpunkt on alguspunktis.

Kõige lihtsamad funktsionaalsed sõltuvused

Vaatame mõnda lihtsat funktsionaalset sõltuvust

  1. Otsene funktsionaalne sõltuvus

Definitsioon

Kaht muutujat nimetatakse otseselt proportsionaalseks, kui kui üks neist muutub teatud suhtega, muutub teine ​​samas suhtes.

y=kx, Kus k– proportsionaalsuskoefitsient.

Funktsiooni graafik

  1. Lineaarne sõltuvus

Definitsioon

Kaks muutuvat suurust on seotud lineaarse seosega, kui , kus on mõned konstantsed suurused.

Funktsiooni graafik

  1. Pöördvõrdeline suhe

Definitsioon

Kaht muutujat nimetatakse pöördvõrdeliseks, kui kui üks neist muutub mingis suhtes, muutub teine ​​vastupidises suhtes.

  1. Ruutsõltuvus

Ruutsõltuvus on lihtsaimal juhul kujul , kus k on mingi konstantne väärtus. Funktsiooni graafik on parabool.

  1. Sinusoidaalne sõltuvus.

Perioodiliste nähtuste uurimisel mängib olulist rolli sinusoidaalne sõltuvus

- funktsiooni nimetatakse harmooniliseks.

A- amplituud;

Sagedus;

Esialgne faas.

Funktsioon on perioodiline perioodiga. Funktsiooni väärtused punktides x Ja x+T, mis erinevad periooditi, on samad.

Funktsiooni saab taandada vormile , Kus. Siit saame, et harmooniline graafik on deformeerunud sinusoid amplituudiga A ja perioodiga T, mis on nihutatud piki OX telge summa võrra

T

Funktsiooni määramise meetodid

Tavaliselt kasutatakse funktsiooni määramiseks kolme võimalust: analüütiline, tabel ja graafiline.

  1. Funktsiooni määramise analüütiline meetod

Kui funktsiooni väljendatakse valemiga, siis määratakse see analüütiliselt.

Näiteks

Kui funktsioon y=f(x) on antud valemiga, siis selle tunnus f tähistab toimingute kogumit, mis tuleb argumendi väärtusel teatud järjekorras sooritada x et saada vastav funktsiooni väärtus.

Näide . Argumendi väärtusega tehakse kolm toimingut.

  1. Funktsiooni määramise tabelimeetod

See meetod määrab muutujate vahelise vastavuse tabeli abil. Teades funktsiooni analüütilist avaldist, saame seda funktsiooni tabeli abil esitada meile huvipakkuvate argumentide väärtuste jaoks.

Kas tabelifunktsiooni määramiselt on võimalik liikuda analüütilisele avaldisele?

Pange tähele, et tabel ei anna kõiki funktsiooni väärtusi ja funktsiooni vaheväärtusi saab leida ainult ligikaudselt. See on nn interpoleerimine funktsioonid. Seetõttu on üldiselt tabeliandmete abil võimatu funktsioonile täpset analüütilist avaldist leida. Siiski on alati võimalik koostada valem ja rohkem kui üks, mis tabelis oleva argumendi väärtuste korral annab funktsiooni vastavad tabeliväärtused. Sellist valemit nimetatakse interpoleerimiseks.

  1. Graafiline viis funktsiooni määramiseks

Analüütilised ja tabelimeetodid ei anna funktsioonist selget ettekujutust.

Funktsiooni määramise graafilisel meetodil seda puudust ei ole. y=f(x), kui vastavus argumendi vahel x ja funktsioon y määrata ajakava abil.

Implitsiitse funktsiooni mõiste

Funktsiooni nimetatakse eksplitsiitseks, kui see on antud valemiga, mille parempoolne külg ei sisalda sõltuvat muutujat.

Funktsioon y argumendist x nimetatakse kaudseks, kui see on võrrandiga antud

F(x,y)=0(1) sõltuva muutuja osas lahendamata.

Pöördfunktsiooni mõiste

Olgu funktsioon antud y=f(x)(1). Argumendi x väärtuste täpsustamisel saame funktsiooni väärtused y.

See on võimalik, arvestades y argument ja X– funktsioon, seatud väärtused y ja saada väärtusi x. Sel juhul määrab võrrand (1). x, kui kaudne funktsioon y. Seda viimast funktsiooni nimetatakse tagurpidi seoses selle funktsiooniga y.

Eeldades, et võrrand (1) on lahendatud suhtes x, saame pöördfunktsiooni selgesõnalise avaldise

(2), kus funktsioon kõigi kehtivate väärtuste jaoks y rahuldab tingimust

Relatsiooniandmebaas sisaldab nii struktuurset kui ka semantilist teavet. Andmebaasi struktuuri määrab selles sisalduvate seoste arv ja tüüp ning üks-mitmele seosed, mis eksisteerivad nende suhete korteeži vahel. Semantiline osa kirjeldab funktsionaalsete sõltuvuste kogumit, mis eksisteerib nende seoste atribuutide vahel. Määratleme funktsionaalse sõltuvuse.

Definitsioon: Kui on antud mingi seose kaks atribuuti X ja Y, siis öeldakse, et Y sõltub funktsionaalselt X-st, kui igal ajahetkel vastab iga X väärtus täpselt Y ühele väärtusele. Funktsionaalne sõltuvus on tähistatud X -> Y. Pange tähele, et X ja Y võivad esindada mitte ainult üksikuid atribuute, vaid ka rühmi, mis koosnevad ühe seose mitmest atribuudist. Võime öelda, et funktsionaalsed sõltuvused on üks-mitmele suhted, mis eksisteerivad suhtes.

    2. normaalvormi (2NF) seos. Täieliku funktsionaalse sõltuvuse ja 2NF määramine. Suhete omadused 2NF-is. Algoritm 2NF-i vähendamiseks. Heathi teoreem. Näited.

Kontseptsioontäielik funktsionaalne sõltuvus.

Definitsioon: võtmevaba atribuut täielikult funktsionaalselt sõltuv liitvõtmest, kui see on funktsionaalselt sõltuv kogu võtmest kui tervikust, kuid ei sõltu funktsionaalselt ühestki selle koostisosast.

Definitsioon: liigne funktsionaalne sõltuvus- sõltuvus, mis sisaldab teavet, mida on võimalik saada teiste andmebaasis saadaolevate sõltuvuste põhjal.

2NF - teine ​​normaalne vorm.

Teise normaalkuju definitsioon: seos on sees 2NF, kui see on 1NF-is ja iga võtmevaba atribuut on funktsionaalselt võtmest täielikult sõltuv.

Andmebaasi skeemi, millel ei ole üleliigseid funktsionaalseid sõltuvusi, peetakse õigeks. Vastasel juhul peate kasutama olemasolevate suhete kogumi lagunemise (lagundamise) protseduuri. Sel juhul sisaldab genereeritud hulk suuremat hulka seoseid, mis on esialgse hulga seoste projektsioonid. (Projekteerimisoperatsiooni kirjeldatakse relatsioonialgebra osas.) Pööratavat samm-sammult protsessi, mille käigus asendatakse antud suhete komplekt mõne teise skeemiga, kõrvaldades üleliigsed funktsionaalsed sõltuvused, nimetatakse normaliseerimiseks.

Pööratavustingimus eeldab, et dekompositsioon säilitaks ahelate samaväärsuse ühe ahela asendamisel teisega, s.t. tekkivates suhetes:

1) varem puuduvaid kortereid ei tohiks ilmuda;

2) uue skeemi seosed peavad rahuldama algset funktsionaalsete sõltuvuste kogumit.

Heathi teoreem

Olgu seos antud.

Kui r rahuldab funktsionaalset sõltuvust, siis on see võrdne tema projektsiooni ja

    3. normaalvormi (3NF) seos. Transitiivse sõltuvuse ja 3NF definitsioon. 3NF-i redutseerimise algoritm. Boyce-Coddi normaalvorm (BCNF) BCNF-iks redutseerimise definitsioon ja algoritm. Seoste omadused 3NF-is ja NFBC-s. Näited.

Teabe vastu oli alati piisav dünaamiline huvi. Programmeerimiskeelte, relatsiooniandmebaaside ja infotehnoloogiate areng on radikaalselt muutnud huvipakkuvat sisu ja struktuuri. Välja on kujunenud teatav range ideede süsteem. Formaliseerimine, täppismatemaatika ja binaarsed seosed on muutunud edukaks ja kiiresti arenevaks teadmiste ja kogemuste valdkonnaks.

Looduslik teabemaailm ei ole oma dünaamikat muutnud ning on sisu ja struktuuri arendades tõusnud uutesse kõrgustesse. Sellel on siledad kujud ja looduses pole midagi "ristkülikukujuline". Teave muidugi sobib vormistamiseks, kuid sellel on dünaamika; muutuvad mitte ainult andmed ja nende töötlemise algoritmid, vaid muutuvad ka ülesanded ise ja nende rakendusalad.

Teave > vormistamine >> andmed

Info muutub infostruktuuriks, andmebaasiks...) nii nagu programmeerija seda näeb. Selle visiooni õigsust ei garanteeri, kuid kui tema programm probleemi lahendab, siis on andmed esitatud võimalikult asjakohaselt.

Küsimus, kui õigesti info vormistati, on aja küsimus. Seni on dünaamika (isekohandumine muutuvate kasutustingimustega) mõiste vaid programmeerimise unistus.

Funktsionaalne sõltuvus: “õige lahendus = programm (programmeerija)” ja tingimus: “järjepidev ülesande täitmine” kehtivad enamasti, kuid ainult koos. Kuid see pole matemaatiline alus, mida andmebaaside loomisel kasutatakse.

Otsene väide: teabe loomulik ja pidev dünaamika ja probleemide lahendamise algoritmid on alati reaalsed. Ja need on binaarsuhted + range matemaatika + täpsed formaalsed konstruktsioonid, + ...

ja andmebaasid

Andmete säilitamine on pikka aega olnud ebaoluline: olgu selleks RAM või väline seade. Riistvarakomponent on saavutanud ühtlase arengutempo ja tagab suurtes kogustes hea kvaliteedi.

Peamised salvestusvalikud, mis erinevad andmete kasutamise võimaluste poolest:

  • failid;
  • Andmebaas.

Esimene jääb programmeerija hooleks (mida kirja panna, mis formaadis, kuidas teha, kuidas lugeda...), teine ​​toob kohe kaasa lihtsa funktsionaalse sõltuvuse mõistmise vajaduse.

Info otsimise ja kirjutamise kiirus failidega töötamisel (mõistliku suurusega, mitte astronoomiline) on väga kiire, kuid andmebaasiga sarnaste toimingute kiirus võib mõnikord olla märgatavalt aeglane.

Isiklik kogemus ja kollektiivne tarkus

Ajaloo jooksul on püütud neid piire ületada, kuid tänapäevani on ülim relatsiooniandmebaasid. Kogunenud on suur teoreetiline potentsiaal, rakenduspraktika lai ja arendajad kõrge kvalifikatsiooniga.

Andmebaasi arendajad panevad programmeerijale peale funktsionaalse sõltuvuse kontseptsiooni, isegi kui ta ei kavatse kasutada rikkalikku matemaatilist ja loogilist kogemust keerukate infostruktuuride, nendega töötamise protsesside, teabe otsimise ja salvestamise koostamisel.

Isegi kõige lihtsamal juhul sõltub programmeerija andmebaasi loogikast, millega ta valib töötada. Puudub soov järgida kaanoneid, saate faile kasutada, saate palju faile ja palju isiklikku kogemust. Kulutatakse palju isiklikku aega ja probleem laheneb pika aja jooksul.

Ükskõik kui keerulised näited funktsionaalsest sõltuvusest ka ei tunduks, pole sugugi vaja sukelduda tähenduse ja loogika sügavustesse. Sageli tuleb tõdeda, et kollektiivne mõistus on suutnud luua suurepäraseid erineva suuruse ja funktsionaalsusega andmebaase:

  • tahke Oracle;
  • nõudlik MS SQL Server;
  • populaarne MySQL.

Suurepärased hea mainega relatsiooniandmebaasid, mida on lihtne kasutada, kiire ja õigetes kätes. Nende kasutamine säästab aega ja välistab vajaduse kirjutada täiendavaid abikoodi lehti.

Programmeerimine ja andmefunktsioonid

Programmeerimisel on pikka aega olnud haigus, et kirjutatakse pidevalt midagi ümber, korratakse eelkäijate töid, et midagi muutunud info, ülesande või selle kasutustingimustega kuidagi kohandada.

Funktsionaalse sõltuvusega on see, et nii nagu programmeerimises, võib viga olla väga kulukas. Ülesanne on harva lihtne. Tavaliselt saadakse teabe vormistamise käigus andmete kompleksne esitus. Tavaliselt eraldatakse nende elemendid, seejärel seotakse need võtmete abil teatud seosteks, seejärel kohandatakse tabelite, päringute moodustamise algoritme ja teabe hankimise algoritme.

Sageli on kodeeringuga sidumine väga oluline. Kõik andmebaasid ei paku mobiilseid lahendusi, sageli võib kohata seda, kuidas täiuslikult konfigureeritud MySQL, millel põhineb kümmekond andmebaasi, mis töötab ideaalselt ja stabiilselt, sunnib arendajat üheteistkümnenda andmebaasi juba olemasolevatega sarnaseks muutma.

Mõnikord piirab jagatud hostimine PHP funktsionaalsust ja see mõjutab andmebaasi juurdepääsu programmeerimist.

Kaasaegses programmeerimises on vastutus programmi algoritmi eest samaväärne vastutusega andmemudeli loomise eest. Kõik peaks toimima, kuid te ei tohiks alati teooria džunglisse sukelduda.

DB: lihtne andmete sõltuvus

Esiteks on andmebaasi mõiste nii andmebaas, nii haldussüsteem (näiteks MySQL) kui ka teatud infostruktuur, mis kajastab ülesande andmeid ja nendevahelisi seoseid. Üks MySQL-i andmebaas "mahutab" nii palju teabestruktuure, kui soovite erinevate rakendusvaldkondade jaoks. Üks Oracle'i andmebaas suudab toetada suurettevõtte või panga infoprotsesse, kontrollida turvaküsimusi ja andmete terviklikkust kõrgeimal tasemel, paiknedes paljudel erinevatel vahemaadel asuvatel arvutitel, erinevates instrumentaalkeskkondades.

On üldtunnustatud, et suhe on suhtemudelis põhiline. Elementaarrelatsioon on veergude kogum nimedega ja rida väärtustega. Klassikaline "ristkülik"(tabel) - lihtne ja tõhus edusammude saavutamine. Andmebaasi keerukus ja funktsionaalsed sõltuvused saavad alguse siis, kui "ristkülikud" hakkavad omavahel suhteid looma.

Iga tabeli iga veeru nimi peab olema ülesande kontekstis kordumatu. Samad andmed ei saa olla kahes tabelis. Teadke mõistete tähendust:

  • "määratlege üksused";
  • "liigne kaotamine";
  • "suhete parandamine";
  • "Autentsuse tagamiseks."

Elementaarne vajadus andmebaasi kasutamiseks ja konkreetse ülesande jaoks andmemudeli koostamiseks.

Nende põhimõtete rikkumine tähendab algoritmi madalat efektiivsust, aeglast andmeproovi võtmist, andmete kadumist ja muid probleeme.

Funktsionaalne sõltuvus: loogika ja tähendus

Te ei pea lugema seoste kortereid, seda, et funktsioon on vastavus argumentide komplekti ja väärtuste komplekti vahel ning funktsioon ei ole ainult valem või graafik, vaid seda saab määrata väärtuste kogum - tabel.

See ei ole vajalik, kuid see ei tee haiget, kui mõelda funktsionaalsele sõltuvusele järgmiselt:

F(x1, x2, …, xN) = (y1, y2, …, yN).

Kuid on hädavajalik mõista, et sisend on tabel ja väljund on samuti tabel või konkreetne lahendus. Tavaliselt loob funktsionaalne sõltuvus suhete loogika tabelite, päringute, õiguste, päästikute, salvestatud protseduuride ja muude andmebaasi aspektide (komponentide) vahel.

Tavaliselt teisendatakse tabelid üksteiseks ja seejärel tulemuseks. Kuid funktsionaalse sõltuvuse kasutamine ei piirdu ainult selle ideega. Programmeerija ise ehitab ise üles andmepildi esituse, infostruktuuri... vahet pole, kuidas seda nimetada, aga kui see töötab konkreetsel andmebaasil, siis tuleb see üles ehitada vastavalt selle loogikale, arvestada sellega. tähendus ja kasutatava keele dialekt, tavaliselt SQL.

Võib väita, et andmebaasi funktsionaalsete sõltuvuste omadused on kättesaadavad kasutatava SQL-keele dialekti kaudu. Kuid palju olulisem on mõista: pärast kõiki arengueesmärke ei säilinud palju andmebaase, kuid andmebaasides on palju selle keele dialekte ja sisemiste struktuuride tunnuseid.

Vanast heast Excelist

Kui arvuti näitas end positiivsest küljest, jagunes maailm koheselt programmeerijateks ja kasutajateks. Reeglina kasutavad esimesed:

  • PHP, Perl, JavaScript, C++, Delphi.
  • MySQL, Oracle, Visual FoxPro.
  • Sõna.
  • Excel.

Mõned kasutajad saavad Wordis iseseisvalt andmebaase luua (ilma programmeerijate abita) - see on tõeline jama.

Kasutajakogemus Excelis andmebaaside loomisel on praktiline ja huvitav. Oluline on see, et Excel ise oleks funktsionaalne, värviline ja praktiline.

Tabeli idee määratles funktsionaalse sõltuvuse mõiste selgelt ja juurdepääsetavalt, kuid igal andmebaasil on nüansid. Igal neist on oma nägu, kuid kõik, alates Excelist kuni Oracle'ini, manipuleerivad lihtsate ruutudega, st tabelitega.

Kui mõelda, et Excel ei ole üldse andmebaas, vaid paljud kasutajad (mitte programmeerijad) kasutavad seda just nii ning Oracle on suure arendajate meeskonna kõige keerulisem ja võimsaim saavutus andmebaaside vallas, siis on loomulik tunnistavad, et andmebaas on konkreetse programmeerija (meeskonna) esitus konkreetse probleemi ja selle lahenduse kohta.

Mis on funktsionaalne sõltuvus, millega, kus, miks... on ilmne ainult autorile või nende meeskonnale.

Selle kohta, kuhu suhtelised suhted arenevad

Teaduse ja tehnika areng on väga valus protseduur ja mõnikord julm. Kui mäletate, kuidas andmebaasid said alguse, mis on *.dbf, kuidas nad küberneetikat häbimärgistasid, seejärel armusid nad arvutiteadusesse ja hakkasid riigi tasandil kõrgtehnoloogiate liikumisele takistusi looma, saab selgeks, miks relatsiooniandmebaasid nii on visa ja tubli. Miks klassikaline programmeerimisstiil elab veel tänapäevalgi ja objektorienteeritud programmeerimist lihtsalt hinnatakse, kuid see ei valitse veel.

Ükskõik kui ilus funktsionaalne sõltuvus matemaatika kontekstis:

See ei ole binaarne suhe, õigemini, see on põhjust ümber mõelda idee luua seosed paljude atribuutide vahel, uurides "üks-mitmele", "mitu-ühele", "paljudele". -paljud" või "paljud üldiselt ja mõned eriti" suhted.

Saate pakkuda väga erinevaid suhtevõimalusi. See on loogikaga matemaatika ja see on range! Info on oma matemaatika, eriline. Selles saab formaalsusest rääkida vaid väga suure miinusega.

Saate vormistada personaliosakonna töö, kirjutada automatiseeritud juhtimissüsteemi õlitootmiseks või piima, leiva tootmiseks, teha valiku Google'i, Yandexi või Rambleri tohutus andmebaasis, kuid tulemus on alati staatiline ja sama. igal ajahetkel!

Kui funktsionaalne sõltuvus = range loogika ja matemaatika = andmebaaside alus, siis millisest dünaamikast saab rääkida? Iga lahendus on formaalne, mis tahes formaalne andmemudel + range algoritm = täpne ja ühemõtteline lahendus. Iga programmi teave ja ulatus muutuvad alati.

Otsingumootori valik samale otsingufraasile ei saa olla sama ka tunni või paari pärast ja kindlasti ülepäeviti – kui otsingufraas kuulub infovaldkonda, kus on palju saite, ressursse, teadmisi jm. elemendid muutuvad pidevalt.

Isegi kui programm on puhtalt matemaatiline ja selle andmebaas isegi ei mõtle dünaamikale, kõik on alati jooned. Ja nööril on pikkust. Ja see ei saa olla lõputu. See ei saa olla isegi muutuja, vaid tingimuslik muutuja. Muuhulgas paneb igasugune andmebaas oma matemaatilise ja binaarse bürokraatliku aparaadiga peale palju formaalsusi ja see tähendab info valimimise ja töötlemise kiirust + kvaliteeti.

Ja kui andmebaasis on teatud väljad numbrid, eriti reaalsed, siis lisatakse järgmised piirangud: numbrite mahutavus, tähe “e” olemasolu, esitusvorming - ühesõnaga, igal pool ja alati on meil oluline andmebaasi funktsionaalse sõltuvuse omadused: tinglikult muutuva pikkusega stringid, millel on palju binaarseid formaalsusi ja rangeid matemaatilisi piiranguid.

Kui muudate tooni ja kuulate dünaamika pulssi, saab kõik objektideks maalida. Esialgu on tabeli veeru nimi objekt, nimede loend on samuti objekt, lühidalt öeldes on tabel päiseobjekt ja selles päises olevate veergude nimed. Ja mütsi ei pruugi üldse olla...

Kuid tabelis võib olla ridu. Ja stringis võivad olla väärtused. Ja miks peaks neid alati olema sama arv? Täielik ruudukujuline laud- see on konkreetne asi ja enamikul juhtudel privaatne.

Kui esitate kõik andmebaasis olevad konstruktsioonid objektidena, siis võib-olla ei pea te rangeid binaarsuhteid looma. Sellel on loomulik ja tegelik tähendus, kasvõi juba seetõttu, et see peegeldab objektiivse (kindlasti mitte matemaatilise) loogika kohaselt teabe dünaamikat ja keskkonda, milles probleemid eksisteerivad.

Atribuut B funktsionaalselt sõltuv atribuudist A, kui iga A väärtus vastab täpselt ühele B väärtusele.

Määramine: A → B. See tähendab, et atribuudi A sama väärtusega korteežides on ka atribuudil B sama väärtus.

Kui on olemas vormi A→B ja B→A funktsionaalne sõltuvus, siis A ja B vahel on üks-ühele kirjavahetus, või funktsionaalne sõltuvus. KOHTA

Määramine: A↔B või B↔A.

Kui seos on 1NF-s, siis kõik võtmeta atribuudid sõltuvad funktsionaalselt võtmest erineva sõltuvusastmega.

Osaline sõltuvus(osaline funktsionaalne sõltuvus) – võtmevälise atribuudi sõltuvus liitvõtme osast.

Täielik funktsionaalne sõltuvus– mittevõtmeatribuudi sõltuvus kogu liitvõtmest.

Transitiivne sõltuvus

Atribuut C sõltub atribuudist A transitiivselt(olemas transitiivne sõltuvus), kui atribuudi A, B, C tingimused A→B ja B→C on täidetud, siis pöördseost pole.

Mitmekordne sõltuvus

Seoses R-ga atribuut B oleneb palju atribuudist A, kui iga A väärtus vastab B väärtuste komplektile, mis ei ole seotud R muude atribuutidega.

Nimetused: A=>B, A<=B, A<=>B.

Vastastikku sõltumatud atribuudid

Kutsutakse kahte või enamat atribuuti vastastikku sõltumatud, kui ükski neist atribuutidest ei sõltu funktsionaalselt teistest atribuutidest.

Nimetused: A →B, A=B.

Tavalised vormid:

    Esimene normaalne vorm(1NF). Seos on 1NF-s, kui kõik selle atribuudid on lihtsad (ühe väärtusega).

    Teine normaalne vorm(2NF). Seos on 2NF-is, kui see on 1NF-is ja iga võtmevaba atribuut on funktsionaalselt sõltuv primaarvõtmest (liitvõtmest).

    Kolmas tavavorm(3NF). Relatsioon on 3NF-is siis ja ainult siis, kui kõik seose atribuudid on üksteisest sõltumatud ja täielikult primaarvõtmest sõltuvad.

    Tavaline Boyce-Coddi vorm(NFBC). Seos on BCNF-is, kui see on 3NF-is ja võtmeteta atribuutidel puuduvad võtmesõltuvused (liitvõtmeatribuudid).

    Neljas tavavorm(4NF). Relatsioon on 4NF-is siis ja ainult siis, kui on olemas mitmeväärtuslik sõltuvus A=>B ja kõik teised seose atribuudid sõltuvad funktsionaalselt A-st.

    Viies normaalvorm(5NF). Seos on 5NF-is, kui see on 4NF-is ja rahuldab oma projektsioonide suhtes ühenduse sõltuvusi.

    Kuues normaalvorm(6NF). Seos on 6NF-is siis ja ainult siis, kui seda ei saa ilma kadudeta edasi lagundada.

    Andmete järjepidevuse ja terviklikkuse tagamine andmebaasis

Vastus :

Terviklikkus on andmebaasi omadus, mis tähendab, et see sisaldab täielikku, järjepidevat ja adekvaatselt kajastavat teavet ainevaldkonna kohta.

Seal on:

    Füüsiline terviklikkus– andmetele füüsilise juurdepääsu olemasolu ja asjaolu, et andmed ei lähe kaduma.

    Loogiline terviklikkus– loogikavigade puudumine andmebaasis, mis hõlmavad andmebaasi või selle objektide struktuuri rikkumist, objektidevaheliste loodud ühenduste kustutamist või muutmist jne.

Andmebaasi terviklikkuse säilitamine hõlmab järgmist:

    Terviklikkuse kontroll (seire)

    Taastamine andmebaasis ebakõlade tuvastamise korral.

Integraalne olek määratakse kasutades terviklikkuse piirangud(tingimused, millele andmed peavad vastama). Kaks terviklikkuse piirangute tüüp:

    Suhte atribuutide väärtuste piiramine. Näiteks: NULL väärtuste lubamatuse nõue, atribuutide dubleerivate väärtuste lubamatus, atribuutide väärtuste antud vahemikku kuulumise kontroll.

    Struktuursed piirangud suhetele. Määratleb nõuded olemi terviklikkus ja viiteterviklikkus.

Nõue üksuste terviklikkus on see mis tahes relatsiooni korteež peab erinema selle relatsiooni mis tahes muust korteežist Teisisõnu, mis tahes seos peab olema esmane võti.

Nõue referentsiaalne terviklikkus on see, et iga võõrvõtme väärtuse jaoks ematabelis peab alamtabelis olema rida sama primaarvõtme väärtusega.

    Olemi-suhte meetod

Vastus :

Olemi-suhte meetod(ER-diagrammi meetod) on meetod, mis põhineb diagrammide kasutamisel, mida nimetatakse vastavalt ER-eksemplarideks ja ER-tüüpi diagrammideks.

Põhimõisted

Essents– see on objekt, mille kohta teave salvestatakse andmebaasi.

Atribuut on üksuse omand.

Olemi võti on atribuut (atribuutide kogum), mida kasutatakse olemi eksemplari tuvastamiseks.

Ühendus üksuste vahel on nende olemite atribuutide vaheline sõltuvus.

Graafika, mida kasutatakse selguse ja disaini hõlbustamiseks:

    DiagrammER-koopiaid;

    DiagrammER-tüüp või ER- diagramm.

ER diagrammide analüüsi põhjal kujundatakse kujundatud andmebaasi seosed. See võtab arvesse olemite ja nende kuuluvusklassi vahelise seose astet.

Ühenduse aste– see on olemitevahelise suhte tunnus (1:1, 1:M; M:1; M:M).

Liikmeklassüksused võivad olla: kohustuslik Ja valikuline.

Nõutud– kui kõnealuses suhtes osalevad tingimata kõik üksuse eksemplarid.

Valikuline– kõik instantsid ei osale kõnealuses ühenduses.

    Andmebaasi kavandamise etapid

Vastus :

I. Kontseptuaalne disain– andmenõuete kogumine, analüüs ja redigeerimine.

Sihtmärk: kontseptuaalse andmemudeli loomine, mis põhineb kasutaja arusaamal ainevaldkonnast.

Protseduurid:

    Olemite määratlemine ja dokumenteerimine;

    Olemite vaheliste suhete määramine ja dokumenteerimine;

    Domeenimudeli loomine;

    Atribuutide väärtuste määramine;

    Olemite esmaste võtmete määratlemine.

II. Loogiline disain– kontseptuaalse mudeli alusel luuakse andmestruktuur.

Sihtmärk: valitud andmemudelil põhineva kontseptuaalse mudeli teisendamine loogiliseks mudeliks, mis ei sõltu DBMS-i funktsioonidest, mida hiljem kasutatakse andmebaasi füüsiliseks rakendamiseks.

Protseduurid:

    Andmemudeli valimine;

    Tabelite komplekti määratlemine ja dokumenteerimine;

    Tabelite normaliseerimine;

    Määrake andmete terviklikkuse säilitamise nõuded ja dokumenteerige need.

III. Füüsiline disain– andmetunnuste ja juurdepääsumeetodite kindlaksmääramine.

Eesmärk: andmebaasi konkreetse teostuse kirjeldus, paigutamine arvuti välismällu.

Protseduurid:

    Andmebaasi tabelite kujundamine;

    Andmebaasi füüsilise korralduse kavandamine;

    Andmebaasi kaitsestrateegia väljatöötamine.

    Andmebaasi elutsükkel

Vastus :

Andmebaasi elutsükkel on andmebaasisüsteemide kavandamise, juurutamise ja hooldamise protsess.

Andmebaasi elutsükli etapid:

    Analüüs– ainevaldkonna analüüs ja sellele esitatavate nõuete väljaselgitamine, süsteemi asjakohasuse hindamine.

    Disain– loogilise andmebaasistruktuuri loomine, programmimudelite funktsionaalne kirjeldus ja infopäringud.

    Rakendamine– andmebaasi tarkvaraarendus, testimine.

    Ärakasutamine Ja saatel.

Andmebaasi elutsükli etapid:

    Eelplaneerimine– andmebaasi planeerimine, andmebaasi strateegilise arendusplaani elluviimine (millisi rakendusi kasutatakse, milliseid funktsioone nad täidavad, millised failid on iga rakendusega seotud ning millised uued failid ja rakendused on arendusprotsessis).

    Teostatavuse kontroll– tehnoloogilise, operatiivse ja majandusliku teostatavuse kontrollimine.

    Nõuete määratlemine– andmekogu eesmärgi valik, andmekogu teabenõuete väljaselgitamine, nõuded seadmetele ja tarkvarale, kasutajanõuete määramine.

    Kontseptuaalne disain– kontseptuaalse diagrammi koostamine.

    Rakendamine– kontseptuaalse mudeli viimine funktsionaalsesse andmebaasi.

    Vajaliku DBMS-i valimine ja ostmine.

    Kontseptuaalse mudeli teisendamine loogiliseks ja füüsiliseks mudeliks.

    Infomudeli põhjal koostatakse konkreetse DBMS-i andmeskeem.

    Määratakse kindlaks, millised rakendusprotsessid tuleb rakendada salvestatud protseduuridena.

    Rakendage andmete terviklikkuse tagamiseks loodud piiranguid.

    Disaini käivitajad.

    Töötage välja indekseerimis- ja klastrite strateegia, hinnake tabeli suurusi, klastreid ja indekseid.

    Määrake kasutaja juurdepääsutasemed, töötage välja ja rakendage turvareegleid.

    Töötage välja andmebaasi võrgutopoloogia.

    Andmesõnastiku koostamine.

    Andmebaasi täitmine.

    Rakendustarkvara loomine, juhtimiskontroll.

    Kasutaja koolitus.

    Andmebaasi skeemi hindamine ja täiustamine.

    Suhete loomise reeglid

Vastus :

Moodustamise reeglid suhted põhinevad järgmiste asjaolude arvestamisel:

    üksuste vahelise seose aste (1:1, 1:M, M:1, M:M);

    Olemi eksemplaride liikmelisuse klass (nõutav ja valikuline).