Introducere în bazele de date
prefață
Cu ceva timp în urmă am discutat o serie de Thunder interesant, în opinia, domeniile noastre de informații, care din anumite motive încă nu primesc o acoperire de pe forum. Una dintre aceste zone - un sistem de management de baze de date (SGBD).
De la deschiderea unui subiect martor nu ar dori să înceapă a decis să articole care pune in lumina acestui subiect. Primul (și, sperăm, nu ultimul) este oferit cititorilor.
În ceea ce privește stilul de prezentare, am nota următoarele. Nu am stabilit pentru a face un instantaneu al stării actuale a bazei de date. In schimb, a existat o încercare de a arăta un scurt fundal pentru dezvoltarea de metode și mijloace de prelucrare a datelor, care, ca urmare a condus la un SGBD. De multe ori, pentru a înțelege de ce este un astfel de obiect, mult mai ușor, urmărirea evoluției sale. Prin urmare, la început este o scurtă trecere în revistă istorică a evenimentelor, fiecare dintre care, în opinia mea, a jucat un rol, chiar dacă în mod indirect, în aspectul SGBD. În primul rând, în opinia mea, este doar interesant. În al doilea rând, baza de date nu a apărut de nicăieri. Aspectul lor - rezultatul inevitabil al rezolvarea problemelor, care variază în funcție de calculatoare.
Îmi cer scuze în avans pentru cei care consideră devin plictisitoare și uninformative. Planul meu nu a fost scris un articol enciclopedie scurtă (cred în ele, și deci nu există nici o lipsă). Mai degrabă, este - procesul de generalizare, din care o parte a curs ochii mei.
O parte din materialul prezentat se bazează pe experiența mea personală și experiența trase din această hotărâre (cred, nu departe de a fi perfectă). Asa ca voi fi bucuros la orice critici constructive, adăugiri și corecturi (pe fond).
introducere
Din cele mai vechi timpuri, omenirea a stat înainte de sarcina care a necesitat volume de calcule în continuă creștere. Bineînțeles, în timp, cele mai multe dintre ele pentru a găsi soluții. Chiar și în cele mai vechi timpuri, unele domenii ale matematicii au fost dezvoltate, astfel încât o persoană educată în acei ani nivelul de cunoștințe este greu inferior absolvent școlar curent.
Apariția proprietății pe teren a luat o modalitate de a calcula suprafața de teren care a dus la nașterea geometriei. Realizările de Euclid, Pitagora și alți oameni de știință greci în acest domeniu sunt bine cunoscute.
Dezvoltarea comerțului a ridicat, de asemenea, noi provocări. În plus față de tratamentul de bunuri și sume de bani, și au existat probleme mai complexe. Comercianții a trebuit să ia o călătorii tot mai lungi, iar pentru acest lucru a luat mijloace de navigație. Astronomii din antichitate surprinzător cu pricepere făcut față cu această sarcină. Bineînțeles, toate în cele din urmă reduse la calcul și mai exacte acestea sunt, cu atât mai mult cu succes vom rezolva problema imediat.
Nu este un secret faptul că capacitatea de calcul de cele mai multe dintre noi sunt foarte limitate. Chiar și pliat în vedere costul de câteva achiziții mici și se calculează valoarea depozitului nu este ușor, și numai în calcularea orbitei unei planete sau stele coordonate și nu se poate vorbi. Prin urmare, odată cu dezvoltarea teoriei cele mai strălucite minți și a luptat cu privire la problema de automatizare a calculelor. Dar apoi, din păcate, progresul a fost mult mai lent.
Mai mult de o mie de ani, singurul asistent persoanei în calcule au fost diferite soiuri de cont. Puțin sa schimbat, și au ajuns la timpul nostru.
Genius Pascal, Leibniz, Babbage și alții au încercat să construiască o mașină pentru calcule automate. Din păcate, tehnica timpului permis doar pentru a construi un dispozitiv mecanic. mașini de calculat mecanice au fost prea lente, costisitoare și nesigure pentru utilizare în masă, atât de mult răspândirea nu este primit. Cu excepția, poate, a fost bună mașină de modă veche adăugare poreclit. care nu cu mult timp în urmă el a slujit cu credință în calitate de funcționari. Dar a devenit disponibil relativ recent (mașini adăugarea, producția industrială a fost început în 1822).
Încercările de a folosi componentele electrice în mașini de calcul făcut perfecte, și dispozitive electromecanice specializate au fost încununate de succes în unele aplicații (de exemplu, tabulators Hollerith de prelucrare a datelor statistice sunt utilizate cu succes la recensãmântul din Statele Unite ale Americii).
Cu toate acestea, într-adevăr universale dispozitive de calcul automate - calculatoare - capabile să creeze numai pe baza de componente electronice. Pentru aspectul lor necesare două condiții principale: prezența componentelor respective și conceptul unui program memorat. Și apoi, și un altul a apărut abia în anii '40 ai secolului XX.
Prima utilizare a primelor calculatoare
Majoritatea lucrărilor privind dezvoltarea calculatoarelor a fost făcută prin ordin al armatei și banii lor. Firește, printre problemele care trebuie rezolvate pe primul computer, a predominat calculele pentru militari, și anume, tabele, calcule de calcul tunurile gama de preluare, traiectorii de rachete, reacție în lanț de simulare de fisiune nucleară, calcule aerodinamice, etc.
Impune restricții privind natura sarcinii și caracteristicile arhitecturale ale calculatoarelor din acei ani: În cazul în care circuitele lămpii dat o viteză relativ mare (zeci la sute de mii de operații pe secundă), dispozitivele de stocare au capacitate extrem de scăzută în unități de zeci de cuvinte k, și performanțe limitate. Ei fac fie linii de întârziere de mercur (mic container) sau pe tuburile catodice (capacitate mai mare, la un preț ridicat - aproximativ 1.000 $ - și fiabilitate scăzută - durată de viață de aproximativ o lună, ceea ce este extrem ridică costul utilizării calculatoarelor cu o mulțime de RAM) .
Detalii despre dispozitive periferice este, de asemenea, izbitoare. A fost foarte popular și dispozitiv cu viteză perfolentochnye card I / O. Au existat, de asemenea, o bandă magnetică și tobe magnetice. Toate aceste medii de stocare, cu excepția ultimei opțiune, face ca posibilitatea de a secvenței de prelucrare a datelor, dar acestea nu au fost adecvate pentru prelevarea de probe le în ordine aleatorie. Aceleași tobe magnetice au o capacitate prea mică, deși oferind acces aleator la date.
Apariția calculatoarelor comerciale
Evenimentul major care influențează dezvoltarea în continuare a calculatoarelor a fost inventarea RAM pe miezuri de ferită. Această memorie a fost destul de compact și fiabil, la un cost redus. Destul de o lungă perioadă de timp a fost folosit în calculatoare până când a fost înlocuit cu memorie mai practic semiconductoare.
Acesta și o serie de alte constatări a făcut posibilă pentru a reduce semnificativ costurile de calculatoare și le-a pus pe o bază de producție de serie. Calculatoarele au început să iasă din pereții universității și laboratoarele militare. Prin urmare, cercul schimbat treptat sarcinile lor.
Aproximativ în același timp, există discuri magnetice în care informațiile sunt înregistrate în inele concentrice - piese. Capete magnetice pot fi poziționate în mod arbitrar la orice unitate specială de cale, în care într-un timp relativ scurt (zeci de milisecunde). În această calitate drive-uri a crescut rapid de la câteva sute de megaocteți.
Toate acestea au deschis calea pentru utilizarea calculatoarelor în gestionarea sarcinilor și a sistemelor de informații care nu sunt limitate la calcul.
Organizarea datelor pe un suport extern
prelucrare a datelor non-numeric necesar să acorde mai multă atenție la structurarea informațiilor stocate. Evoluția datelor de structurare uite aproximativ după cum urmează.
flat files
Cel mai simplu mod de a stoca informații, probabil, sunt fișiere plate. Practic, oricare dintre sistemele de operare utilizate în prezent suportă fișiere plate, cu excepția, probabil, a unor sisteme de operare specializate pentru controlere embedded.
Plat File - un set numit de date pe un suport extern. OS în sine este nici o structură a fișierului plat nu acordă, și tratează-l pur și simplu ca o colecție de octeți. Secvența de separare țintă de octeți în câmpul de înregistrare și alocarea acolo se află în întregime pe cererea.
Operații de bază de acces la fișiere plate - deschiderea de citire / scriere, aproape, de poziționare la începutul fișierului / sfârșitul fișierului / citire octet specificat / scrie un număr specificat de octeți de la poziția curentă.
Alte sisteme de operare, cum ar fi, familia UNIX sau MS Windows NT, oferă o mult mai multe instrumente avansate pentru accesul la fișiere. Cu toate acestea, toate au dezavantaje comune:- plat fișier OS - doar o secvență de octeți. Prin urmare, toate ipotezele cu privire la structura înregistrărilor fișier face aplicația. Eroare în codul sau tratamentul greșit la dosar greșit va duce la consecințe imprevizibile.
Aceste deficiențe au încercat să depășească suportul fișierelor secvențiale indexate.
În cazul în care cititorul are o idee despre cea mai simplă bază de date, lucrul cu .dbf cum ar fi fișiere, se poate spune că fișierele I-II se aseamănă la distanță .dbf.
La crearea fișierului I-II este creat așa-numitul indice, care este utilizat pentru acces rapid la înregistrările câmpului cheie. Trebuie remarcat faptul că împarte un fișier în înregistrări și menține indicele sistemului de operare în sine, nu sistemul de rulare, care este configurat cu un program de aplicație
După cum sugerează și numele, cu fișiere I-II pot lucra în două moduri. În primul rând, înregistrarea poate fi citită secvențial, una după alta. În al doilea rând, puteți găsi imediat intrarea dorită pe câmpul cheie, sistemul de operare utilizează indexul pentru a accelera de căutare.
Și P-fișiere - un mare pas înainte în comparație cu fișierul plat. Cu toate acestea, ele nu sunt fără dezavantaje:- Un singur fișier poate fi stocat pentru un singur tip de entitate. Crearea unui model complex de date va duce la piling sus o cantitate mare de fișiere care nu au legătură nimic (din păcate, un rezultat normal al dezvoltării naturale a proiectului, realizat pe baza .dbf).
Sisteme de management al bazelor de date (DBMS)
Dezavantajele fișierului tradițional, a împiedicat dezvoltarea în continuare a sistemelor informatice. Nu a fost nevoie de instrumente, sarcini mai potrivite. Aceste mijloace au fost DBMS.
În crearea bazei de date a implicat o multime de companii, bine-cunoscute și nu foarte mult. Fiecare producător are propriul punct de vedere asupra a ceea ce ar trebui să fie produsul ideal. Rezultatul a fost un set de baze de date, a avut nimic de-a face unul cu celălalt. Cel puțin una idei de dezvoltare Baze de date obținute, împrumutat de la unul de altul, în timp ce alții au murit.
Destul de repede sa dovedit că, în ciuda diferențelor dintre sistemele exterioare, marea majoritate dintre ele pot fi atribuite la trei tipuri: ierarhic, rețea și baze de date relaționale. Să luăm în considerare pe scurt caracteristicile fiecărei specii.
bază de date ierarhică
Baza de date ierarhică este destul de simplu model de date care poate fi imaginat ca un copac - un grafic aciclic direcționat de formă specială.
Arborele este format din noduri, fiecare dintre acestea, cu excepția unuia, are un singur nod părinte și multiple (inclusiv audio) filială.
Partea superioară a avea nici un părinte se numește rădăcina copacului. Tops care nu au filiale, numite frunze. Vârfurile rămase sunt ramuri.
baze de date ierarhice sunt cele mai potrivite pentru structurile de modelare sunt de natură ierarhică. În Exemplele includ unități militare sau mecanisme complexe, compuse din unități mai simple, care, la rândul lor, pot fi, de asemenea, supuse descompunerii.
Cu toate acestea, există un număr semnificativ de structuri care nu sunt reductibile la o ierarhie simplă. De exemplu, arborele genealogic bine-cunoscut, care nu este de fapt un copac în sens strict, deoarece cei mai mulți oameni au doi părinți. Pe structuri mai complexe și nu poate vorbi.
baze de date ierarhizate a trecut rapid de vârf de popularitate, care este responsabil pentru ușurința de utilizare și un aspect timpuriu pe piață, în cazul în care principalii concurenți nu au fost încă coapte pentru uz comercial. Apoi, numeroase neajunsuri le-a făcut necompetitive, și este în prezent modelul ierarhic este doar de interes istoric.
bază de date de rețea
La fel ca modelul de rețea ierarhică poate fi, de asemenea, gândit ca un grafic direcționat. Dar, în acest caz, graficul poate conține cicluri, și anume, nod poate avea mai multe părinți.
Această structură este mult mai flexibilă și mai expresivă decât cea anterioară și este potrivit pentru simularea unei clase mult mai largă de probleme. În acest model nodurile reprezintă esența și nervurile de legătură le - relația dintre ele.
baze de date de rețea au avut succes mult mai mare și lung a dominat piata de baze de date. În nici o mică măsură a contribuit la succesul activității lor viguroase Baza de date Task Group Comitetul (DBTG) privind limbaje de programare Conferința privind sistemele de date Limbi (CODASYL). Această organizație este caietul de sarcini bine concepute ale modelului de rețea și arhitectura sa, care a creat o serie de produse comerciale de succes, nu cel de care are loc o dată COBOL foarte popular.
Baze de date relaționale
Sistemele de gestiune a bazei de date sunt în prezent cele mai comune. Punerea lor în aplicare există la toate mai mult sau mai puțin potrivite pentru această platformă (de la PC-uri la mainframe-uri), pentru toate sistemele de operare și toate aplicațiile - de la produse de bază destinate pentru efectuarea de fișiere de card pentru uz personal, la sisteme complexe multi-utilizator distribuite.
În ciuda acestui soi pestriță, aceste baze de date sunt baza unui cadru comun - un model de date relațional, dezvoltat de Codd în '70 ai secolului XX. La suprafață, acest model este destul de simplu: baza de date este la fel de simplu ca un set de tabele aferente. Dar în spatele simplitatea externă se află un formalism puternic, dar elegant matematic de algebra relațională, care, la rândul său, se bazează pe o serie de discipline matematice, printre ele - logica calculul predicatelor, teoria mulțimilor:
rol important în succesul bazelor de date relaționale și piese de limbaj SQL concepute special pentru interogarea bazelor de date relaționale. Aceasta este o destul de simplu și în același limbaj expresiv timp, cu ajutorul căruia se pot efectua interogări destul de sofisticate pentru baza de date.
Desigur, de asemenea precedent a SGBD Data Definition Language (DDL) și limbaj de manipulare a datelor (LMD). SQL combină ambele funcții. Dar caracteristica cea mai atractivă, în special pentru utilizatorii neprofesioniști în programare este că se poate construi pe baza subset SQL neprocedural de interogări. Acest lucru înseamnă că, în formularea de interogare specifică ce ar trebui să fie incluse în rezultat, dar nu și cum să-l. Există, totuși, și elementele procedurale ale limbajului, cum ar fi organizarea de ramificare și bucle, dar utilizarea lor este adesea evitată. În aceeași bază de date cu programator de rețea a trebuit să utilizeze proceduri de navigație, fiind distras în timp ce pe rezolvarea problemei.
epilog
Această revizuire a fost conceput ca o parte introducerea unei serii mici de articole dedicate SGBD moderne și programarea lor. El nu a făcut în nici un fel pretinde a fi completă și / sau adâncimea întrebare de cercetare, singurul său scop - pentru a da cititorului o idee de ce SGBD dominat până în prezent în sistemele de informații, și calea evolutivă pe care au trebuit să meargă.
Alte articole în cazul în care acestea sunt destinate să vadă lumina, va fi dedicată aspectelor specifice ale unei baze de date relaționale.