Introducere în limbajul de interogare structurat - SQL. Clasele principale de subd. Structuri de bază ale memoriei

Structura unei baze de date relaționale.

Tipuri de baze de date.

Caracteristicile de bază ale SGBD.

Conceptul unei baze de date, DBMS.

Plan

TERMENI: bază de date, sistem de management al bazei de date (DBMS),

bază de date relațională, înregistrare bază de date, câmp bază de date, câmp cheie bază de date, tabel bază de date, interogare bază de date, formular bază de date, raport bază de date, macro bază de date, modul bază de date.

Unul dintre principalele domenii de utilizare a computerului în modern societate informaţională este stocarea și prelucrarea unor cantități mari de informații.

Bază de date (DB ) este un depozit sistematizat de informații dintr-un anumit domeniu care poate fi accesat de diverși utilizatori pentru a vă rezolva problemele.

Mai jos este un exemplu de unul dintre cele mai comune sisteme de gestionare a bazelor de date - Microsoft Access parte a popularului Pachetul Microsoft Office - ne vom familiariza cu tipurile de date de bază, cum să creăm baze de date și tehnici de lucru cu bazele de date.

Bază de date- o colecție organizată de date destinate stocării pe termen lung memorie externa Calculatoare și aplicații permanente. Pentru a stoca baza de date, poate fi utilizat fie un computer, fie mai multe computere interconectate.

Dacă diferite părți ale unei baze de date sunt stocate pe mai multe computere interconectate printr-o rețea, atunci o astfel de bază de date este apelată bază distribuită date.

Sistemul de gestionare a bazelor de date(SGBD ) - Acest software, care vă permite să creați o bază de date, să actualizați informațiile stocate în ea și să oferiți acces convenabil la aceasta pentru vizualizare și căutare.

În prezent, SGBD-urile sunt cele mai utilizate Microsoft Access, FoxPro, dBase. SGBD-urile sunt împărțite în funcție de mod de organizare baze de date pe reţea, ierarhicȘi SGBD relațional.

Principalele caracteristici ale DBMS:

ü Actualizarea, completarea și extinderea bazei de date.

ü Fiabilitate ridicată stocarea informațiilor.

ü Ieșirea completă și informaţii de încredere la cereri.

ü Instrumente de securitate a informațiilor în baza de date.

Există baze de date faptice și documentare.

Bazele de date faptice conțin informatie scurta despre obiectele descrise, prezentate într-un format strict definit. Baza de date a bibliotecii stochează informații bibliografice despre fiecare carte: anul apariției, autor, titlu etc. Baza de date a departamentului de resurse umane al instituției stochează datele personale ale angajaților: nume complet, e, o, anul și locul nașterii etc. Baza de date a actelor legislative din domeniul dreptului penal, de exemplu, va cuprinde textele de legi; DB de muzică modernă - teste și note de cântece, informații generale despre compozitori, poeți, interpreți, înregistrări sonoreși clipuri video. În consecință, baza de date documentară conține informații extinse despre tipuri diferite: text, sunet, multimedia.

Pentru a stoca baza de date, poate fi utilizat fie un computer, fie mai multe computere interconectate.

Dacă diferite părți ale unei baze de date sunt stocate pe mai multe computere interconectate printr-o rețea, atunci o astfel de bază de date este apelată baza de date distribuita.

Cunoscut trei tipuri principale organizarea datelor în DBși legăturile dintre ele:

· ierarhic (sub formă de arbore),

· reţea,

· relaționale .

Într-o bază de date ierarhică există o ordonare a elementelor în înregistrare, un element este considerat principal, restul sunt subordonate. Căutarea oricărui element de date într-un astfel de sistem poate fi consumatoare de timp din cauza necesității de a parcurge secvenţial mai multe niveluri ierarhice.

Exemplu: O bază de date ierarhică este formată dintr-un director de fișiere stocate pe disc.

Aceeași bază de date este arborele genealogic.

Baza de date a rețelei Este mai flexibil; este posibil să se instaleze conexiuni orizontale pe lângă conexiunile verticale.

Baze de date relaționale(din limba engleză relația - „relație”) sunt numite baze de date care conțin informații sub formă de tabele dreptunghiulare. Conform acestei abordări, un astfel de tabel se numește relație. Fiecare rând de masă conţine informație despre un lucru obiect separat domeniu descris în baza de date , și toată lumea coloană – anumite caracteristici (proprietăți, atribute) aceste obiecte . Relațional baza de date este în esență bidimensională masa. Există patru tipuri principale de câmpuri utilizate într-o bază de date relațională:

· Numeric,

· Simbolice (cuvinte, texte, coduri etc.),

· Data (date calendaristice sub forma „zi/lună/an”),

· Logic (ia două valori: „da” - „nu” sau „adevărat” - „fals”).

Fereastra bazei de date conține următoarele elemente:

ü Butoane: "CREA", "DESCHIS", "CONSTRUCTOR" etc. Butoanele deschid un obiect într-o anumită fereastră sau mod.

ü Butoanele obiect. (Copii de selecție a obiectelor, etichete.) "Masa", "Formă" etc. Butoanele de obiecte afișează o listă de obiecte care pot fi deschise sau închise.

ü Lista de obiecte. Afișează o listă de obiecte selectate de utilizator. În versiunea noastră, lista este încă goală.

Obiectele principale ale bazei de date:

· Masa este un obiect conceput pentru a stoca date sub formă de înregistrări (rânduri) și câmpuri (coloane). De obicei, fiecare tabel este folosit pentru a stoca informații despre o problemă specifică.

· Formă este un obiect Microsoft Access conceput în principal pentru introducerea datelor. Formularul poate conține controale care sunt utilizate pentru introducerea, afișarea și modificarea datelor în câmpurile tabelului.

· Cerere – un obiect care vă permite să obțineți datele necesare dintr-unul sau mai multe tabele.

· Raport – obiect de bază Date Microsoft Acces, conceput pentru imprimarea datelor.

· Macro-uri – automatizarea acțiunilor standard.

· Module – automatizează operațiuni complexe care nu pot fi descrise de macrocomenzi.

Funcții DBMS.

Funcțiile DBMS vin în mare și nivel scăzut.

Funcții nivel inalt:

1. Definirea datelor – folosind această funcție, se determină ce informații vor fi stocate în baza de date (tipul, proprietățile datelor și modul în care acestea vor fi legate între ele).

2. Procesarea datelor. Informațiile pot fi prelucrate căi diferite: eșantionarea, filtrarea, sortarea, combinarea unei informații cu alta, calcularea totalurilor.

3. Management de date. Această funcție specifică cui este permis să vizualizeze, să corecteze sau să adauge date. informație nouă, precum și definirea regulilor de acces colectiv.

Funcții de nivel scăzut:

1. Gestionarea datelor din memoria externă;

2. Gestionarea tamponului memorie cu acces aleator;

3. Managementul tranzacțiilor;

4. Introducerea unui jurnal de modificări în baza de date;

5. Asigurarea integritatii si securitatii bazei de date.

Tranzacţie este o secvență indivizibilă de operații care este monitorizată de SGBD de la început până la finalizare și în care, dacă o operație nu este finalizată, întreaga secvență este anulată.

Jurnal DBMS – o bază de date specială sau o parte din baza de date principală, inaccesibile utilizatoruluiși folosit pentru a înregistra informații despre toate modificările din baza de date.

Introducere în jurnalul DBMS este conceput pentru a asigura o stocare fiabilă în baza de date în prezența defecțiunilor și defecțiunilor hardware, precum și a erorilor în software.

Integritatea bazei de date este o proprietate a unei baze de date, ceea ce înseamnă că conține o bază de date completă, consecventă și adecvată domeniul subiectului informație.

Clasificarea SGBD.

SGBD-urile pot fi clasificate:

1. După tipul de program:

A. Servere de baze de date (de exemplu MS SQL Server, InterBase (Borland)) – sunt destinate organizării centrelor de prelucrare a datelor în rețele de calculatoare și implementării funcțiilor de gestionare a bazelor de date solicitate de programele client folosind instrucțiuni SQL (adică programe care răspund solicitărilor);

b. Clienți baze de date – programe care solicită date. PFDBMS poate fi folosit ca programe client, foi de calcul, procesoare de text, programe E-mail;

c. Baze de date complet funcționale (MS Access, MS Fox Pro) – un program care are o interfață dezvoltată care vă permite să creați și să modificați tabele, să introduceți date, să creați și să formatați interogări, să dezvoltați rapoarte și să le imprimați.

2. Conform modelului de date DBMS (precum și baza de date):

A. Ierarhic – bazată pe o structură arborescentă pentru stocarea informațiilor și care amintește de un sistem de fișiere computerizat; principalul dezavantaj este incapacitatea de a implementa o relație multi-la-mulți;

b. Reţea – care le-a înlocuit pe cele ierarhice și nu a durat mult deoarece principalul dezavantaj a fost dificultatea dezvoltării aplicațiilor serioase. Principala diferență dintre o rețea și una ierarhică este că într-o structură ierarhică „descendentul-record” are un singur strămoș, dar într-un descendent de rețea poate avea orice număr de strămoși;

c. Relațional – ale căror date sunt plasate în tabele între care există anumite conexiuni;

d. Orientat pe obiecte – stochează date sub formă de obiecte și principalul avantaj atunci când lucrezi cu ele este că pot fi aplicate în mod obiectiv asupra lor – abordare orientată;

e. Hibrid, adică obiect-relațional – combina capacitățile bazelor de date relaționale și orientate pe obiecte. Un exemplu de astfel de bază de date este Oracle (anterior era relațională).

3. În funcție de locația părților individuale ale SGBD, acestea se disting:

A. local – ale căror toate părțile sunt situate pe un singur computer;

b. reţea.

Rețelele includ:

- cu organizare file-server;

Cu această organizare, toate datele sunt localizate pe un singur computer, care se numește server de fișiere și care este conectat la rețea. La cautare informatie necesaraÎntregul fișier este transferat, inclusiv o mulțime de informații redundante. Și numai atunci când se creează o copie locală este găsită înregistrarea necesară.

- cu o organizatie client-server;

Serverul bazei de date primește o solicitare de la client și caută datele intrarea dorităși îl transferă clientului. O cerere către server este formată într-un limbaj structurat interogări SQL De aceea, serverele de baze de date sunt numite servere SQL.

- SGBD distribuit conțin câteva zeci și sute de servere situate pe o suprafață mare.

Prevederi de bază ale modelului bazei de date relaționale.

Baza de date relațională este o bază de date în care toate datele sunt organizate sub formă de tabele, iar toate operațiunile asupra acestor date sunt reduse la operațiuni pe tabele.

Caracteristicile bazelor de date relaționale:

1. Datele sunt stocate în tabele formate din coloane și rânduri;

2. La intersecția fiecărei coloane și rând există o singură valoare;

3. Fiecare coloană - câmp are propriul nume, care servește ca nume - atribut, iar toate valorile dintr-o coloană au același tip;

4. Coloanele sunt situate în într-o anumită ordine, care este specificat la crearea tabelului, spre deosebire de rândurile, care sunt aranjate în ordine aleatorie. Tabelul poate să nu aibă un singur rând, dar trebuie să aibă cel puțin o coloană.

Terminologie bază relațională date:

Element de bază de date relaționale Formular de prezentare
1. Baza de date Set de mese
2. Schema bazei de date Set de anteturi de tabel
3. Atitudine Masa
4. Diagrama relațiilor Rând antet coloană tabel
5. Esența Descrierea proprietăților obiectului
6. Atribut Antetul coloanei
7. Domeniul O multime de valori acceptabile atribut
8. Cheie primară Identificator unic, care identifică în mod unic fiecare intrare din tabel
9. Tipul de date Tipul valorilor elementului din tabel
10. Cortege șir (înregistrare)
11. Cardinalitatea Numărul de rânduri din tabel
12. Gradul de relație Numărul de câmpuri
13. Corpul relației Set de tupluri de relație

La proiectarea unei baze de date relaționale, datele sunt plasate în mai multe tabele. Relațiile se stabilesc între tabele folosind chei. La conectarea tabelelor, se disting un tabel principal și unul suplimentar (subordonat).

Există următoarele tipuri de relații între tabele:

1. Relație 1:1 (unu la unu) înseamnă că fiecare înregistrare din tabelul principal corespunde unei înregistrări în masă suplimentară invers, fiecare înregistrare din tabelul secundar corespunde unei înregistrări din tabelul principal.

2. Tipul de comunicare 1:M (unu la mai mulți) înseamnă că fiecare înregistrare din tabelul principal corespunde mai multor înregistrări din tabelul suplimentar și, invers, fiecare înregistrare din tabelul suplimentar corespunde unei singure înregistrări din tabelul principal.

3. Tipul de relație M:1 (mai multe la unul) înseamnă că una sau mai multe înregistrări din tabelul principal corespund unei singure înregistrări din tabelul secundar.

4. Relația M:M (mulți la mulți) – aceasta este atunci când mai multe înregistrări ale tabelului principal corespund mai multor înregistrări ale tabelului suplimentar și invers.

5. Componentele de bază ale MS Access.

Principalele componente (obiecte) ale MS Access sunt:

1. Tabele;

3. Formulare;

4. Rapoarte;

5. Macrocomenzi:

Module

Masa este un obiect conceput pentru a stoca date sub formă de înregistrări (rânduri) și câmpuri (coloane). Fiecare câmp conține o parte diferită a unei înregistrări și fiecare tabel este utilizat pentru a stoca informații despre o problemă specifică.

Cerere – o întrebare despre datele stocate în tabele sau instrucțiuni pentru selectarea înregistrărilor care urmează să fie modificate.

Formă este un obiect în care puteți plasa controale destinate introducerii, afișarii și modificării datelor în câmpurile tabelului.

Raport este un obiect care vă permite să vă imaginați definit de utilizator informatii in într-o anumită formă, vizualizați-l și imprimați-l.

Macro – una sau mai multe macrocomenzi care pot fi folosite pentru automatizare sarcina specifica. O macrocomandă este elementul de bază al unei macrocomenzi; autoinstruire, care poate fi combinat cu alte macrocomenzi pentru a automatiza o sarcină.

Modul – un set de descrieri, instrucțiuni și proceduri stocate sub un singur nume. MS Access are trei tipuri de module: modul formular, modul raport și modul general. Modulele formular și raport conțin program local pentru formulare și rapoarte.

6. Tabele în MS Access.

MS Access are următoarele metode pentru a crea tabele:

1. Modul de masă;

2. Constructor;

3. Expert tabel;

4. Importul tabele;

5. Comunicarea cu tabelele.

ÎN modul de masă Datele sunt introduse într-un tabel gol. Pentru introducerea datelor este furnizat un tabel cu 30 de câmpuri. După salvarea acestuia, MS Access decide însuși ce tip de date să atribuie fiecărui câmp.

Constructor oferă posibilitatea de a crea în mod independent câmpuri, de a selecta tipuri de date pentru câmpuri, de dimensiunile câmpurilor și de a seta proprietățile câmpului.

Pentru a defini un câmp în mod Constructor sunt intrebati:

1. Numele domeniului , care în fiecare tabel trebuie să aibă nume unic, care este o combinație de litere, cifre, spații și caractere speciale, cu exceptia " .!” “ " Lungimea maximă a numelui este de 64 de caractere.

2. Tip de date definește tipul și intervalul de valori valide, precum și cantitatea de memorie alocată pentru acest câmp.

Tipuri de date MS Access

Tip de date Descriere
Text Text și numere, cum ar fi nume și adrese, numere de telefon, coduri poștale(până la 255 de caractere).
Câmp de memorare Text lungși numere, cum ar fi comentarii și explicații (până la 64.000 de caractere).
Numeric Un tip de date general pentru date numerice care permite calcule matematice, excluzând calculele monetare.
Data Ora Valori date și ore. Utilizatorul poate alege formulare standard sau poate crea un format personalizat.
Monetar Valori monetare. Pentru calculele monetare, nu se recomandă utilizarea unor tipuri de date numerice, deoarece ele pot fi rotunjite în calcule. Valorile valutare sunt întotdeauna afișate cu numărul specificat de zecimale.
Tejghea Numere secvențiale atribuite automat. Numerotarea începe de la 1. Câmpul contor este convenabil pentru crearea unei chei. Acest câmp este compatibil cu câmpul tip numeric, pentru care proprietatea Size este setată la Long Integer.
Logic Valori „Da/Nu”, „Adevărat/Fals”, „Pornit/Oprit”, una dintre cele două valori posibile.
Câmp obiect OLE Obiecte create în alte programe care acceptă protocolul OLE.

3. Cele mai importante proprietăți ale câmpului:

- Dimensiunea campului specifică dimensiunea maximă a datelor stocate în câmp.

- Format câmp este un format pentru afișarea unui anumit tip de date și stabilește regulile de prezentare a datelor atunci când le afișează pe ecran sau le imprimă.

- Semnătura câmpului setează textul care este afișat în tabele, formulare și rapoarte.

- Condiție de valoare vă permite să controlați introducerea, stabilește restricții asupra valorilor introduse, dacă sunt încălcate condițiile, interzice introducerea și afișează textul specificat de proprietatea Mesaj de eroare;

- Mesaj de eroare setează textul mesajului afișat pe ecran atunci când restricțiile specificate de Condiția de valoare sunt încălcate.

Tip control– o proprietate care este setată în fila Înlocuire din fereastra de proiectare a tabelului. Această proprietate determină dacă câmpul va fi afișat în tabel și sub ce formă - ca câmp sau casetă combinată.

Cheie unică (primară). tabelele pot fi simple sau complexe, incluzând mai multe câmpuri.

Pentru a defini o cheie, selectați câmpurile care alcătuiesc cheia și faceți clic pe butonul din bara de instrumente câmp cheie sau comanda este executată Câmp de editare/cheie.


©2015-2019 site
Toate drepturile aparțin autorilor lor. Acest site nu pretinde autor, dar oferă o utilizare gratuită.
Data creării paginii: 2016-02-16

SGBD relațional – un SGBD care gestionează baze de date relaționale.

Modelul relațional se concentrează pe organizarea datelor sub formă de tabele bidimensionale. Fiecare tabel relațional este o matrice bidimensională și are următoarele proprietăți:

    Fiecare element de tabel este un element de date.

    toate celulele dintr-o coloană de tabel sunt omogene, adică toate elementele din coloană sunt de același tip (numerice, caractere etc.)

    fiecare coloană are un nume unic

    Nu există rânduri identice în tabel

    ordinea rândurilor și coloanelor poate fi arbitrară

Un rând de tabel se numește înregistrare, o coloană este un câmp.

Cheia primară este un set minim de atribute, care este un subset al antetului unei relații date, a cărei valoare compusă definește în mod unic tuplul relației. În practică, termenul cheie primară se referă la un câmp sau un grup de câmpuri dintr-un tabel al bazei de date a cărui valoare (sau combinație de valori) este utilizată ca identificator unic pentru o înregistrare din acel tabel. În teoria relațională, un tabel este o colecție neordonată de înregistrări. Singura modalitate de a identifica o anumită înregistrare în acest tabel este de a specifica un set de valori pentru unul sau mai multe câmpuri care sunt unice pentru acea înregistrare. De aici provine conceptul de cheie primară - un set de câmpuri de tabel, al căror set de valori este definit pentru orice înregistrare (rând) din acest tabel și este diferit pentru oricare două înregistrări.

Cheia externă este un câmp de tabel conceput pentru a stoca valoarea cheii primare a altui tabel pentru a organiza o relație între aceste tabele.

Fie tabelele A și B. Tabelul A conține câmpurile a, b, c, d, din care câmpul a este cheia primară. Tabelul B conține câmpurile x, y, z. Câmpul y conține valoarea câmpului a a uneia dintre înregistrările din tabelul A. În acest caz, câmpul y se numește o cheie externă a tabelului A din tabelul B.

Această interogare SQL va returna toate perechile de înregistrări asociate din tabelele A și B:

selectați * din A, B unde A.a = B.y;

O cheie străină dintr-un tabel se poate referi și la tabelul în sine. În astfel de cazuri vorbim despre o cheie străină recursivă. Necesar pentru implementarea unei structuri de date arborescente într-un tabel relațional.

SGBD-urile suportă controlul automat al integrității referențiale pe cheile externe.

Tipuri de relații de tabel

Există trei tipuri de relații de masă.

Conexiune cu o relație unu-la-mulți. Este cel mai des folosit tip de relație între tabele. Într-o astfel de relație, fiecare înregistrare din tabelul A poate avea mai multe înregistrări în tabelul B, iar o înregistrare din tabelul B nu poate avea mai mult de o înregistrare corespunzătoare în tabelul A. De exemplu, mai mulți angajați pot lucra într-un singur departament, dar niciun angajat nu poate lucrează în mai multe departamente deodată. Notație acceptată (1 – ∞).

Relație de la mulți la mulți. În această relație, o înregistrare din tabelul A poate corespunde mai multor înregistrări din tabelul B, iar o înregistrare din tabelul B poate corespunde mai multor înregistrări din tabelul A. Această schemă poate fi implementată doar folosind un al treilea tabel (de legătură), cheia de care constă din cel puțin două câmpuri, care sunt câmpuri cheie străină în tabelele A și B. De exemplu, relația dintre tabelele Inspectori și Frontier Crossers este definită printr-o relație multi-la-mulți. Un declarant poate fi consultat de mai mulți inspectori, în timp ce inspectorul poate deservi mai multe persoane. O astfel de relație este definită prin crearea a două relații cu o relație unu-la-mai mulți pentru tabelul Inspector_Declarant, care trebuie să aibă câmpurile Inspector Key și Declarant Key.

Într-o relație unu-la-unu, o înregistrare din tabelul A poate avea cel mult o înregistrare înrudită în tabelul B și invers. Acest tip de relație nu este folosit foarte des, deoarece astfel de date pot fi plasate într-un singur tabel. O relație unu-la-unu este folosită pentru a partiționa tabele foarte largi sau pentru a separa o parte a unui tabel din motive de securitate.

Cu acest articol începem o nouă serie dedicată bazelor de date, tehnologiilor moderne de accesare și prelucrare a datelor. Pe parcursul acestui ciclu, intenționăm să luăm în considerare cele mai populare sisteme de gestionare a bazelor de date desktop și server (DBMS), mecanismele de acces la date (OLD DB, ADO, BDE etc.) și utilitățile pentru lucrul cu bazele de date (instrumente de administrare, generatoare de rapoarte, instrumente grafice). prezentarea datelor). În plus, intenționăm să acordăm atenție metodelor de publicare a datelor pe Internet, precum și metodelor populare de procesare și stocare a datelor precum OLAP ( Analitică on-line Procesare) și crearea de depozite de date (Data Warehousing).

În acest articol ne vom uita la conceptele și principiile de bază care stau la baza sistemelor de gestionare a bazelor de date. Vom discuta despre modelul de date relaționale, conceptul de integritate referențială și principiile normalizării datelor, precum și instrumentele de proiectare a datelor. Apoi vom explica ce sunt SGBD-urile, ce obiecte pot fi conținute în bazele de date și cum se fac interogările împotriva acestor obiecte.

Concepte de bază de date relaționale

Să începem cu conceptele de bază ale SGBD și scurta introducereîn teoria bazelor de date relaționale - cea mai populară metodă de stocare a datelor în prezent.

Model de date relaționale

Model relațional date a fost propus de Dr. E.F. Codd, un renumit cercetător de baze de date, în 1969, pe când era angajat IBM. Conceptele de bază ale acestui model au fost publicate pentru prima dată în 1970. „A Relational Model of Data for Large Shared Data Banks”, CACM, 1970, 13 N 6).

O bază de date relațională este un depozit de date care conține un set de tabele bidimensionale. Se numește un set de instrumente pentru gestionarea unei astfel de stocări sistem de management al bazelor de date relaționale (RDBMS). Un RDBMS poate conține utilitare, aplicații, servicii, biblioteci, instrumente de creare a aplicațiilor și alte componente.

Orice tabel de bază de date relațională este format din linii(numit si înregistrări) Și coloane(numit si câmpuri). În această serie vom folosi ambele perechi de termeni.

Rândurile tabelului conțin informații despre faptele prezentate în acesta (sau documente, sau persoane, într-un cuvânt - despre obiecte de același tip). La intersecția unei coloane și a unui rând se află valorile specifice ale datelor conținute în tabel.

Datele din tabele respectă următoarele principii:

  1. Fiecare valoare conținută la intersecția unui rând și a unei coloane trebuie să fie atomic(adică nu împărțit în mai multe valori).
  2. Valorile datelor din aceeași coloană trebuie să aparțină aceluiași tip disponibil pentru utilizare într-un anumit SGBD.
  3. Fiecare înregistrare din tabel este unică, adică nu există două înregistrări în tabel cu un set complet de valori potrivit pentru câmpurile sale.
  4. Fiecare câmp are un nume unic.
  5. Secvența câmpurilor din tabel nu este importantă.
  6. Secvența de intrări este, de asemenea, lipsită de importanță.

În ciuda faptului că rândurile de tabel sunt considerate neordonate, orice sistem de gestionare a bazei de date vă permite să sortați rândurile și coloanele în selecții din acesta în modul în care utilizatorul are nevoie.

Deoarece secvența coloanelor dintr-un tabel nu este importantă, acestea sunt menționate după nume, iar aceste nume sunt unice pentru un anumit tabel (dar nu trebuie să fie unice pentru întreaga bază de date).

Deci acum știm că bazele de date relaționale sunt formate din tabele. Pentru a ilustra unele prevederi teoretice iar pentru a crea exemple trebuie să selectăm o bază de date. Pentru a nu „reinventa roata”, vom folosi baza de date NorthWind inclusă în pachet Microsoft SQL Server și Microsoft Access.

Acum să ne uităm la relațiile dintre tabele.

Chei și conexiuni

Să aruncăm o privire la un fragment din tabelul Clienți din baza de date NorthWind (am eliminat câmpuri care nu sunt esențiale pentru a ilustra relațiile dintre tabele).

Deoarece rândurile dintr-un tabel sunt neordonate, avem nevoie de o coloană (sau un set de coloane) pentru a identifica în mod unic fiecare rând. O astfel de coloană (sau set de coloane) este numită cheia principala (cheia principala). Cheia primară a oricărui tabel trebuie să conțină valori unice non-vide pentru fiecare rând.

Dacă cheia primară are mai multe coloane, este apelată cheie primară compusă (cheie primară compusă).

O bază de date tipică constă de obicei din mai multe tabele înrudite. Fragment din tabelul Comenzi.

Câmpul CustomerID din acest tabel conține ID-ul clientului care a plasat comanda. Dacă dorim să știm numele companiei care a plasat comanda, trebuie să căutăm aceeași valoare ID client în câmpul CustomerID din tabelul Customers și să citim valoarea câmpului CompanyName din rândul găsit. Cu alte cuvinte, trebuie să conectăm două tabele, Clienți și Comenzi, folosind câmpul CustomerID. O coloană care indică o înregistrare dintr-un alt tabel cu care este asociată prin această intrare, numit cheie externă (cheie externă). După cum puteți vedea, în cazul tabelului Comenzi, cheia externă este coloana CustomerID (Fig. 1).

Cu alte cuvinte, o cheie străină este o coloană sau un set de coloane ale căror valori se potrivesc cu valorile existente ale cheii primare a altui tabel.

Această relație între tabele se numește comunicare (relaţie). O relație între două tabele se stabilește prin atribuirea valorilor cheii externe ale unui tabel valorilor cheii primare ale celuilalt.

Dacă fiecare client din tabelul Clienți poate plasa o singură comandă, se spune că cele două tabele sunt legate de unu la unu (relație unu-la-unu). Dacă fiecare client din tabelul Clienți poate plasa zero, una sau mai multe comenzi, se spune că cele două tabele sunt legate prin unu-la-multi (relație unu-la-mulți) sau raport maestru-detaliu. Relații similare între tabele sunt folosite cel mai des. În acest caz, tabelul care conține cheia externă este apelat tabel de detaliuși este apelat un tabel care conține o cheie primară care definește valorile posibile ale unei chei străine masa principală.

Se numește un grup de tabele înrudite sistem Bază de date ( schema bazei de date). Informațiile despre tabele, coloanele acestora (nume, tipul de date, lungimea câmpului), cheile primare și externe, precum și alte obiecte de bază de date sunt numite metadate (metadate).

Orice manipulare a datelor din bazele de date, cum ar fi selectarea, inserarea, ștergerea, actualizarea datelor, modificarea sau selectarea metadatelor se numește cerere la baza de date ( interogare). De obicei, interogările sunt formulate într-un anumit limbaj, care poate fi fie standard pentru diferite SGBD, fie dependente de un anumit SGBD.

Integritate referenţială

Am spus deja mai sus că cheia primară a oricărui tabel trebuie să conțină valori unice non-vide pentru un anumit tabel. Această afirmație este una dintre reguli integritate referenţială (integritate referenţială). Unele (dar nu toate) SGBD-uri pot controla unicitatea cheilor primare. Dacă DBMS controlează unicitatea cheilor primare, atunci dacă încercați să atribuiți o valoare unei chei primare care există deja într-o altă înregistrare, DBMS va genera un mesaj de diagnosticare, care conține de obicei expresia încălcarea cheii primare. Acest mesaj poate fi transmis ulterior aplicației prin care utilizatorul final manipulează datele.

Dacă două tabele sunt legate prin relație maestru-detaliu, cheie externă detaliu- tabelul ar trebui să conțină numai acele valori care există deja printre valorile cheii primare maestru- Mese. Dacă corectitudinea valorilor cheilor străine nu este controlată de SGBD, putem vorbi despre o încălcare a integrității referențiale. În acest caz, dacă ștergem o înregistrare din tabelul Clienți care are cel puțin una asociată detaliu- intrare în tabelul Comenzi, aceasta va duce la tabelul Comenzi care conține înregistrări ale comenzilor plasate de cineva necunoscut. Dacă DBMS controlează corectitudinea valorilor cheilor străine, atunci când încercați să atribuiți o valoare unei chei străine care nu se află printre valorile cheilor primare ale tabelului principal sau când ștergeți sau modificați înregistrările din tabelul principal, conducând la o încălcare a integrității referențiale, DBMS va genera un mesaj de diagnosticare, care conține de obicei expresia încălcarea cheii străine, care poate fi transmis ulterior aplicației utilizator.

Majoritatea SGBD-urilor moderne, cum ar fi Microsoft Access 97, Microsoft Access 2000 și Microsoft SQL Server 7.0, sunt capabile să monitorizeze conformitatea cu regulile de integritate referențială, dacă sunt descrise în baza de date. În acest scop, se folosesc SGBD similare diverse obiecte baze de date (vom discuta despre acestea puțin mai târziu). În acest caz, toate încercările de a încălca regulile de integritate referenţială vor fi suprimate odată cu generarea simultană de mesaje de diagnosticare sau excepţii ( excepții la baza de date).

Introducere în normalizarea datelor

Procesul de proiectare a datelor este definirea metadatelor în conformitate cu obiectivele sistemului informațional în care va fi utilizată viitoarea bază de date. Detalii despre cum să analizați un domeniu și să creați diagrame entitate-relație ( ERD - diagrame entitate-relație) și modelele de date depășesc domeniul de aplicare al acestui ciclu. Cei interesați de aceste probleme se pot referi, de exemplu, la cartea lui K. J. Date „Introduction to Database Systems” (Dialectics, Kyiv, 1998).

În acest articol vom discuta doar unul dintre principiile de bază ale proiectării datelor - principiul normalizare.

Normalizare este procesul de reorganizare a datelor prin eliminarea grupurilor repetate și a altor contradicții în stocarea datelor pentru a aduce tabelele într-o formă care să permită editarea consecventă și corectă a datelor.

Teoria normalizării se bazează pe conceptul de forme normale. Se spune că masa se află în asta forma normala, dacă satisface un anumit set cerințe. În teorie există cinci forme normale, dar în practică sunt folosite de obicei doar primele trei. În plus, primele două forme normale sunt în esență pași intermediari pentru a aduce baza de date în a treia formă normală.

Prima formă normală

Să ilustrăm procesul de normalizare cu un exemplu folosind date din baza de date NorthWind. Să presupunem că înregistrăm toate produsele comandate în tabelul următor. Structura acestui tabel este următoarea (Fig. 2).

Pentru ca un tabel să respecte prima formă normală, toate valorile câmpului său trebuie să fie atomice și

toate înregistrările sunt unice. Prin urmare, orice tabel relațional, inclusiv tabelul OrderedProducts, prin definiție, este deja în prima formă normală.

Cu toate acestea, acest tabel conține date redundante, de exemplu, aceleași informații despre client sunt repetate în înregistrare pentru fiecare produs comandat. Redundanța datelor are ca rezultat anomalii de modificare probleme de date erori care apar la adăugarea, modificarea sau ștergerea înregistrărilor. De exemplu, la editarea datelor din tabelul OrderedProducts, pot apărea următoarele probleme:

  • Adresa unui anumit client poate fi inclusă în baza de date numai atunci când clientul a comandat cel puțin un produs.
  • Când ștergeți o înregistrare a unui produs comandat, informațiile despre comandă în sine și despre clientul care a plasat-o sunt șterse simultan.
  • Daca, Doamne fereste, clientul isi schimba adresa, toate inregistrarile despre produsele pe care le-a comandat vor trebui actualizate.

Unele dintre aceste probleme pot fi rezolvate prin alinierea bazei de date a doua formă normală.

A doua formă normală

Se spune că există un tabel relațional a doua formă normală, dacă este în prima formă normală și câmpurile sale non-cheie complet dependent din întreaga cheie primară.

Tabelul OrderedProducts este în prima formă normală, dar nu în a doua formă normală, deoarece câmpurile CustomerID, Address și OrderDate depind doar de câmpul OrderID, care face parte din cheia primară compusă (OrderID, ProductID).

Pentru a trece de la prima formă normală la a doua formă normală, trebuie să urmați acești pași:

  1. Determinați în ce părți poate fi împărțită cheia primară, astfel încât unele dintre câmpurile non-cheie să depindă de una dintre aceste părți ( aceste părți nu trebuie să fie formate dintr-o singură coloană!).
  2. Crea masa noua pentru fiecare astfel de parte a cheii și grupul de câmpuri care depind de ea și mutați-le în acest tabel. O parte a fostei chei primare va deveni cheia primară a noului tabel.
  3. Eliminați câmpurile din tabelul sursă care au fost mutate în alte tabele, cu excepția celor care vor deveni chei străine.

De exemplu, pentru a aduce tabelul OrderedProducts la a doua formă normală, trebuie să mutați câmpurile CustomerID, Address și OrderDate într-un nou tabel (să-l numim OrdersInfo), iar câmpul OrderID va deveni cheia primară a noului tabel (Fig. . 3).

Ca rezultat, noile tabele vor arăta astfel. Cu toate acestea, tabelele care sunt în a doua formă normală, dar nu în a treia formă normală, conțin încă anomalii de modificare a datelor. Iată-le, de exemplu, pentru tabelul OrdersInfo:

  • Adresa unui anumit client poate fi inclusă în baza de date numai atunci când clientul a comandat cel puțin un produs.
  • Ștergerea unei intrări de comandă din tabelul OrdersInfo va duce la ștergerea intrării pentru client însuși.
  • Dacă clientul a schimbat adresa, mai multe înregistrări vor trebui actualizate (deși, de regulă, sunt mai puține decât în ​​cazul precedent).

Aceste anomalii pot fi eliminate prin trecerea la a treia formă normală.

A treia formă normală

Se spune că se află un tabel relațional a treia formă normală, dacă este în a doua formă normală și toate câmpurile sale non-cheie depind doar de cheia primară.

Tabelul OrderDetails este deja în a treia formă normală. Câmpul Cantitate non-cheie depinde în întregime de cheia primară compusă (OrderID, ProductID). Cu toate acestea, tabelul OrdersInfo nu este în a treia formă normală, deoarece conține o dependență între câmpurile care nu sunt cheie (se numește dependenta tranzitiva- dependenta tranzitiva) - câmpul Adresă depinde de câmpul CustomerID.

Pentru a trece de la a doua formă normală la a treia formă normală, trebuie să urmați acești pași:

  • Definiți toate câmpurile (sau grupurile de câmpuri) de care depind alte câmpuri.
  • Creați un nou tabel pentru fiecare astfel de câmp (sau grup de câmpuri) și grupul de câmpuri care depind de acesta și mutați-le în acest tabel. Câmpul (sau grupul de câmpuri) de care depind toate celelalte câmpuri mutate va deveni cheia primară a noului tabel.
  • Îndepărtați câmpurile mutate din tabelul original, lăsând doar cele care vor deveni chei străine.

Pentru a aduce tabelul OrdersInfo la a treia formă normală, creați un nou tabel Customers și mutați câmpurile CustomerID și Address în el. Vom elimina câmpul Address din tabelul sursă și vom părăsi câmpul CustomerID - acum este o cheie străină (Fig. 4).

Deci, după aducerea tabelului inițial la a treia formă normală, au existat trei tabele - Clienți, Comenzi și Detalii comandă.

Beneficiile normalizării

Normalizarea elimină redundanța datelor, ceea ce vă permite să reduceți cantitatea de date stocate și să scăpați de anomaliile de modificare a datelor descrise mai sus. De exemplu, după reducerea bazei de date discutate mai sus la a treia formă normală, sunt evidente următoarele îmbunătățiri:

  • Informațiile despre adresa clientului pot fi stocate într-o bază de date, chiar dacă este doar potential client, care nu a plasat încă nicio comandă.
  • Puteți șterge informații despre un produs comandat fără teama de a șterge informațiile despre clienți și despre comandă.

Modificarea adresei unui client sau a datei de înregistrare a comenzii necesită acum doar modificarea unei înregistrări.

Cum sunt concepute bazele de date

De obicei, SGBD-urile moderne conțin instrumente care vă permit să creați tabele și chei. Există, de asemenea, utilități furnizate separat de SGBD (și chiar deservire mai multe SGBD-uri diferite simultan) care vă permit să creați tabele, chei și relații.

O altă modalitate de a crea tabele, chei și relații într-o bază de date este să scrieți un așa-numit script DDL (DDL - Data Definition Language; vom vorbi despre asta puțin mai târziu).

În cele din urmă, există o altă modalitate care devine din ce în ce mai populară - utilizarea unor instrumente speciale numite instrumente CASE (CASE înseamnă Computer-Aided System Engineering). Există mai multe tipuri de instrumente CASE, dar cele mai frecvent utilizate instrumente pentru crearea bazelor de date sunt diagramele entitate-relație (diagramele E/R). Cu ajutorul acestor instrumente, așa-numitele logic un model de date care descrie fapte și obiecte care urmează să fie înregistrate în el (în astfel de modele, prototipurile de tabel sunt numite entități, iar câmpurile sunt numite atributele lor). După stabilirea relațiilor între entități, definirea atributelor și efectuarea normalizării, o așa-numită fizic un model de date pentru un anumit SGBD, în care sunt definite toate tabelele, câmpurile și alte obiecte de bază de date. Puteți genera apoi fie baza de date în sine, fie un script DDL pentru ao crea.

Lista celor mai populare instrumente CASE în prezent.

Tabele și câmpuri

Tabelele sunt acceptate de toate SGBD-urile relaționale, iar câmpurile lor pot stoca date de diferite tipuri. Cele mai comune tipuri de date.

Indici

Puțin mai sus am vorbit despre rolul cheilor primare și externe. În majoritatea SGBD-urilor relaționale, cheile sunt implementate folosind obiecte numite indexuri, care pot fi definite ca o listă de numere de înregistrare care indică în ce ordine le sunt furnizate.

Știm deja că înregistrările din tabelele relaționale sunt neordonate. Cu toate acestea, orice înregistrare la un anumit moment în timp are o locație fizică foarte specifică în fișierul bazei de date, deși aceasta se poate schimba în timpul procesului de editare a datelor sau ca urmare a „activităților interne” ale DBMS în sine.

Să presupunem că, la un moment dat, înregistrările din tabelul Clienți au fost stocate în această ordine.

Să presupunem că trebuie să obținem aceste date ordonate în câmpul CustomerID. Omitând detaliile tehnice, putem spune că indexul de pe acest câmp este succesiunea numerelor de înregistrare în conformitate cu care acestea trebuie afișate, adică:

1,6,4,2,5,3

Dacă dorim să sortăm înregistrările după câmpul Adresă, succesiunea numerelor înregistrărilor va fi diferită:

5,4,1,6,2,3

Stocarea indexurilor necesită mult mai puțin spațiu decât stocarea versiunilor sortate diferit ale tabelului în sine.

Dacă trebuie să găsim date despre clienții al căror ID client începe cu caracterele „BO”, putem folosi indexul pentru a găsi locația acestor înregistrări (în în acest caz, 2 și 5 (evident, în index numerele acestor înregistrări sunt consecutive), apoi citiți exact a doua și a cincea înregistrare, în loc să scanați întregul tabel. Astfel, utilizarea indicilor reduce timpul de recuperare a datelor.

Am spus deja că locația fizică a înregistrărilor se poate modifica în timpul procesului de editare a datelor de către utilizatori, precum și ca urmare a manipulărilor cu fișierele bazei de date efectuate de SGBD în sine (de exemplu, comprimarea datelor, colectarea gunoiului etc. ). Dacă apar modificări corespunzătoare în index, acesta este numit sprijinitși astfel de indici sunt utilizați în majoritatea SGBD-urilor moderne. Implementarea unor astfel de indici duce la faptul că orice modificare a datelor dintr-un tabel implică o modificare a indicilor asociați cu acesta, iar acest lucru crește timpul necesar SGBD pentru a efectua astfel de operațiuni. Prin urmare, atunci când utilizați astfel de SGBD, ar trebui să creați numai acei indecși care sunt cu adevărat necesari și să vă ghidați după ce interogări vor fi întâlnite cel mai des.

Restricții și reguli

Cele mai multe SGBD-uri server moderne conțin obiecte speciale numite restricții(constrângeri), sau reguli(reguli). Aceste obiecte conțin informații despre restricțiile impuse unor posibile valori de câmp. De exemplu, folosind un astfel de obiect puteți seta valoarea maximă sau minimă pentru a acestui domeniu, iar după aceea SGBD nu vă va permite să salvați o înregistrare în baza de date care nu îndeplinește această condiție.

Pe lângă constrângerile asociate cu setarea intervalului de modificări ale datelor, există și constrângeri de referință (de exemplu, o relație master-detaliu între tabelele Clienți și Comenzi poate fi implementată ca o constrângere care necesită ca valoarea câmpului CustomerId (străin cheie) în tabelul Comenzi să fie egal cu una dintre valorile existente ale câmpului CustomerId din tabelul Clienți.

Rețineți că nu toate SGBD-urile acceptă restricții. În acest caz, puteți fie să utilizați alte obiecte (de exemplu, declanșatoare) pentru a implementa funcționalități similare de reguli, fie să stocați aceste reguli în aplicații client care funcționează cu această bază de date.

Reprezentare

Aproape toate SGBD-urile relaționale acceptă vederi. Acest obiect reprezintă masă virtuală, furnizând date din unul sau mai multe tabele reale. În realitate, nu conține date, ci doar descrie sursa acestora.

Adesea, astfel de obiecte sunt create pentru a stoca interogări complexe în baze de date. De fapt, vizualizarea este o interogare stocată.

Crearea vizualizărilor în majoritatea SGBD-urilor moderne se realizează prin instrumente vizuale speciale care vă permit să afișați tabelele necesare pe ecran, să stabiliți conexiuni între ele, să selectați câmpurile afișate, să introduceți restricții asupra înregistrărilor etc.

Adesea, aceste obiecte sunt folosite pentru a asigura securitatea datelor, de exemplu, permițând vizualizarea datelor prin ele fără a oferi acces direct la tabele. În plus, unele obiecte de vizualizare pot returna date diferite în funcție, de exemplu, de numele de utilizator, ceea ce îi permite să primească doar datele care îl interesează.

Declanșatoare și proceduri stocate

Declanșatoarele și procedurile stocate, acceptate în majoritatea SGBD-urilor de server moderne, sunt utilizate pentru a stoca codul executabil.

O procedură stocată este un tip special de procedură care este executată de un server de baze de date. Procedurile stocate sunt scrise într-un limbaj procedural care depinde de SGBD specific. Se pot apela reciproc, pot citi și modifica datele din tabele și pot fi apelați dintr-o aplicație client care rulează baza de date.

Procedurile stocate sunt utilizate de obicei pentru a efectua sarcini frecvente (de exemplu, reconcilierea unui bilanţ). Ele pot avea argumente, valori returnate, coduri de eroare și uneori seturi de rânduri și coloane (acest set de date este uneori numit set de date). Cu toate acestea, ultimul tip de proceduri nu este acceptat de toate SGBD-urile.

Declanșatoarele conțin și cod executabil, dar spre deosebire de proceduri, acestea nu pot fi apelate dintr-o aplicație client sau dintr-o procedură stocată. Un declanșator este întotdeauna asociat cu un anumit tabel și este executat atunci când evenimentul la care este asociat (de exemplu, inserarea, ștergerea sau actualizarea unei înregistrări) are loc în timpul editării acelui tabel.

În majoritatea SGBD-urilor care acceptă declanșatoare, puteți defini mai multe declanșatoare care se execută atunci când are loc același eveniment și puteți determina ordinea de execuție.

Obiecte pentru generarea cheilor primare

Foarte des, cheile primare sunt generate chiar de DBMS. Acest lucru este mai convenabil decât generarea lor în aplicație client, deoarece în munca cu mai mulți utilizatori, generarea cheilor folosind un SGBD este singura modalitate de a evita duplicarea cheilor și de a obține valorile consecvente ale acestora.

Diferite SGBD folosesc obiecte diferite pentru a genera chei. Unele dintre aceste obiecte stochează un număr întreg și regulile prin care este generată următoarea valoare, de obicei realizate folosind declanșatoare. Astfel de obiecte sunt suportate, de exemplu, în Oracle (caz în care sunt numite secvențe) și în IB Database (caz în care sunt numite generatoare).

Unele SGB-uri suport tipuri speciale câmpuri pentru cheile primare. La adăugarea înregistrărilor, astfel de câmpuri sunt completate automat cu valori secvențiale (de obicei numere întregi). În cazul Microsoft Access și Microsoft SQL Server, astfel de câmpuri se numesc câmpuri de identitate, iar în cazul Corel Paradox, se numesc câmpuri Autoincrement.

Utilizatori și roluri

Prevenirea accesului neautorizat la date este o problemă serioasă care poate fi rezolvată în diferite moduri. Cel mai simplu este protecție cu parolă fie întregul tabel, fie unele dintre câmpurile acestuia (acest mecanism este acceptat, de exemplu, în Corel Paradox).

În prezent, o altă metodă de protejare a datelor este mai populară - crearea unei liste de utilizatori cu nume de utilizator și parole. În acest caz, orice obiect al bazei de date este deținut de un anumit utilizator și acel utilizator acordă permisiunea altor utilizatori să citească sau să modifice datele din acel obiect sau să modifice obiectul în sine. Această metodă este utilizată în toate serverele și unele SGBD-uri desktop (de exemplu, Microsoft Access).

Unele SGBD-uri, în principal cele de server, acceptă nu numai o listă de utilizatori, dar și roluri. Un rol este un set de privilegii. Dacă un anumit utilizator primește unul sau mai multe roluri și, împreună cu acestea, toate privilegiile definite pentru acest rol.

Interogări baze de date

Modificarea și selectarea datelor, schimbarea metadatelor și alte operațiuni sunt efectuate folosind interogări. Majoritatea SGBD-urilor moderne (și unele instrumente de dezvoltare a aplicațiilor) conțin instrumente pentru generarea unor astfel de interogări.

O modalitate de a manipula datele se numește „interogări prin exemplu” (QBE). QBE este un instrument pentru legarea vizuală a tabelelor și selectarea câmpurilor de afișat în rezultatul interogării.

În majoritatea SGBD-urilor (cu excepția unora dintre cele desktop), construcția vizuală a unei interogări folosind QBE duce la generarea de text de interogare folosind un limbaj de interogare special SQL (Structured Query Language). De asemenea, puteți scrie o solicitare direct la Limbajul SQL.

Cursore

Adesea, rezultatul unei interogări este un set de rânduri și coloane (set de date). Spre deosebire de un tabel relațional, rândurile dintr-un astfel de set sunt ordonate, iar ordinea lor este determinată de interogarea inițială (și uneori de prezența indicilor). Prin urmare, putem defini rândul curent într-un astfel de set și un pointer către acesta, care se numește cursor.

Majoritatea SGBD-urilor moderne acceptă așa-numitele cursore bidirecționale, care vă permit să navigați prin setul de date rezultat atât înainte, cât și înapoi. Cu toate acestea, unele SGBD-uri acceptă doar cursore unidirecționale, care permit doar navigarea înainte printr-un set de date.

Limbajul SQL

Structured Query Language (SQL) este un limbaj non-procedural folosit pentru a formula interogări baze de date în majoritatea SGBD-urilor moderne și este în prezent un standard industrial.

Natura non-procedurală a limbajului înseamnă că poate indica ce trebuie făcut cu baza de date, dar nu poate descrie algoritmul pentru acest proces. Toți algoritmii pentru procesarea interogărilor SQL sunt generați de DBMS însuși și nu depind de utilizator. Limbajul SQL constă dintr-un set de instrucțiuni care pot fi împărțite în mai multe categorii:

  • Limbajul de definire a datelor (DDL) - un limbaj de definire a datelor care vă permite să creați, să ștergeți și să modificați obiecte din bazele de date
  • Limbajul de manipulare a datelor (DML) - un limbaj de gestionare a datelor care vă permite să modificați, să adăugați și să ștergeți date din obiectele bazei de date existente
  • Limbaje de control al datelor (DCL) - limba folosită pentru a controla privilegiile utilizatorului
  • Transaction Control Language (TCL) - un limbaj pentru gestionarea modificărilor efectuate de grupuri de operatori
  • Cursor Control Language (CCL) - instrucțiuni pentru definirea unui cursor, pregătirea instrucțiunilor SQL pentru execuție și alte operațiuni.

Vă vom spune mai multe despre limbajul SQL într-unul dintre următoarele articole din această serie.

Funcții definite de utilizator

Unele SGBD-uri permit utilizarea funcțiilor definite de utilizator (UDF-User-Defined Functions). Aceste funcții sunt de obicei stocate în biblioteci externe și trebuie înregistrate în baza de date înainte de a putea fi utilizate în interogări, declanșatoare și proceduri stocate.

Deoarece funcțiile definite de utilizator sunt conținute în biblioteci, acestea pot fi create folosind orice instrument de dezvoltare care vă permite să creați biblioteci pentru platforma pe care rulează DBMS.

Tranzacții

O Tranzacție este un grup de operațiuni pe date care sunt fie efectuate împreună, fie anulate împreună.

Angajarea unei tranzacții înseamnă că toate operațiunile incluse în tranzacție au fost finalizate cu succes și rezultatul muncii lor a fost salvat în baza de date.

Rollback-ul unei tranzacții înseamnă că toate operațiunile deja finalizate care au făcut parte din tranzacție sunt anulate și toate obiectele bazei de date afectate de aceste operațiuni sunt readuse la starea lor inițială. Pentru a implementa capacitatea de a anula tranzacțiile, multe SGBD acceptă scrierea în fișiere jurnal, care vă permit să restaurați datele originale în timpul unei derulări.

O tranzacție poate consta din mai multe tranzacții imbricate.

Unele SGBD acceptă comiterea în două faze, un proces care permite efectuarea tranzacțiilor pe mai multe baze de date aparținând aceluiași SGBD.

Pentru a suporta tranzacții distribuite (adică tranzacții pe baze de date gestionate de diferite SGBD), există mijloace speciale, numite monitoare de tranzacții.

Concluzie

În acest articol, am discutat despre conceptele de bază ale construirii SGBD-urilor relaționale, principiile de bază ale proiectării datelor și am vorbit, de asemenea, despre ce obiecte pot fi create în baze de date.

În următorul articol vom prezenta cititorilor noștri cele mai populare SGBD-uri desktop: dBase, Paradox, Access, Visual FoxPro, Funcționează și discută caracteristicile lor principale.

ComputerPress 3"2000

Schița lecției

Subiect: Baze de date. Obiectele principale ale bazei de date. SGBD.

Scopul lecției:

  • 1. Cognitiv - prezentați elevilor:
    • definirea unei baze de date și DBMS,
    • principalele lor tipuri (modele),
    • interfața programului Ms ACCESS,
    • obiectele bazei de date principale,
    • diferite moduri de a crea tabele.
  • 2. Dezvoltare
    • Învață să construiești analogii, să evidențiezi punctele principale, să pui și să rezolvi probleme.
  • 3. Educativ
    • Cultivați acuratețea, atenția, politețea și disciplina.

Planul lecției:

  • 1. Actualizarea cunoștințelor de bază.
  • 2. Lansarea programelor pentru execuție;
  • 3. Introducerea datelor în tabel.
  • 2. Definirea bazei de date și SGBD.
  • 3. Tipuri de SGBD.
  • 4. SGBD relațional. Tabel, înregistrare, câmp.
  • 5. Muncă independentă pe computer.
  • 6. Consolidarea materialului nou.
  • 7. Rezumatul lecției.
  • 1 Definirea bazei de date și a SGBD

    O bază de date (DB) este o colecție de date interconectate care este stocată în memoria externă a unui computer și este organizată după anumite reguli care implică principii generale descrierea, stocarea și prelucrarea datelor. Informațiile care sunt stocate într-o bază de date, de regulă, se referă la un anumit domeniu. De exemplu, bazele de date:

    • colecția de cărți din bibliotecă,
    • personalul întreprinderii,
    • acte legislative de drept penal,
    • muzica modernă.

    Bazele de date sunt împărțite în faptice și documentare. Bazele de date factuale conțin informații scurte despre obiecte, prezentate într-un format precis definit (1-3), de exemplu, Autor, titlu, anul publicării... Bazele de date documentare conțin informații de diverse tipuri: text, audio, grafic, multimedia (4 , 5). De exemplu, o bază de date muzicală modernă poate conține versuri și note ale cântecelor, fotografii ale autorilor, înregistrări audio și clipuri video. Baza de date în sine conține doar informații – „Depozitul de informații” – și nu poate servi cererile utilizatorilor pentru căutarea și procesarea informațiilor. Utilizatorul este deservit de SISTEMUL DE GESTIUNE A BAZEI DE DATE. DBMS este un software care vă permite să creați o bază de date, să actualizați și să completați informații și să oferiți acces flexibil la informații. SGBD creează un mediu specific pentru ca utilizatorul să lucreze pe ecranul computerului (interfață) și are anumite moduri sistem de lucru și comandă. Pe baza DBMS sunt create și funcționează sistemele de recuperare a informațiilor (WWW).

    3. Tipuri de SGBD

    Există 3 moduri cunoscute de organizare a informațiilor într-o bază de date și conexiuni între ele:

    • Ierarhic (sub formă de copac),
    • Reţea,
    • Relațional.

    Ierarhic. Există o subordonare strictă a elementelor: unul este principalul, restul sunt subordonate. De exemplu, un sistem de directoare pe un disc. O bază de date de rețea este mai flexibilă: nu există un element principal clar definit și este posibil să se stabilească conexiuni orizontale. De exemplu, organizarea informațiilor pe Internet (WWW). Cele mai comune sunt bazele de date relaționale.

    4. SGBD relațional. Tabel, înregistrare, câmp.

    O bază de date relațională este o bază de date care conține informații organizate sub forma unui tabel dreptunghiular. Fiecare rând al tabelului conține informații despre un anumit obiect al bazei de date (carte, angajat, produs), iar fiecare coloană conține o caracteristică specifică a acestui obiect (nume, titlu, preț). Rândurile unui astfel de tabel se numesc înregistrări, coloanele se numesc câmpuri. Fiecare înregistrare trebuie să difere de cealaltă prin valoarea a cel puțin unui câmp, care se numește cheie. Un câmp cheie este un câmp sau un grup de câmpuri care identifică în mod unic o înregistrare. De exemplu, numărul personalului angajatului, codul produsului, numărul mașinii. Tabel_Nr.Nume complet Data nașterii Data primirii Funcția Salariu 001< Иванов И.И. 12.05.65 1.02.80 директор 1000 002 Петров П.П. 30.10.75 2.03.95 бугалтер 500 003 Сидоров С.С 4.01.81 4.06.00 исполнитель 100 Каждое поле имеет свой формат и тип. Реальные БД состоят, как правило, из нескольких таблиц, связанных между собой каким-нибудь полем и, при запросе к такой БД можно использовать информацию из разных таблиц. Obiectele principale ale bazei de date:

    • Tabelele sunt principalele obiecte ale bazei de date în care sunt stocate informații
    • Interogări – concepute pentru a selecta datele dorite dintr-unul sau mai multe tabele interconectate.
    • Formulare – concepute pentru introducerea, vizualizarea și editarea datelor interconectate într-o formă convenabilă.
    • Rapoarte – generarea datelor într-o formă convenabilă pentru vizualizare și, dacă este necesar, tipărire.

    5. Lucru independent pe computer

    Pe unitate de rețea, în folderul „SARCINI DB”, deschideți prezentarea „Baze de date și DBMS”, citiți-o și răspundeți în scris la întrebări:

    • 1. Care este scopul principal al bazei de date?
    • 2. După ce criterii sunt clasificate bazele de date? Indicați criteriul și, respectiv, tipurile acestui criteriu.
    • 3. Ce este un câmp cheie dintr-o bază de date?
    • 4. Care este elementul principal al bazei de date?
    • 5. Ce operațiuni pot fi efectuate folosind un SGBD cu o bază de date?
    • 6. Tipuri de date de bază în tabelele SGBD.

    6. Rezumatul lecției

    În această lecție, v-ați familiarizat cu bazele de date, scopul acestora, domeniile de aplicare, tipurile și modelele SGBD.

    Partea practică

    Crearea bazei de date. Introducerea și formatarea datelor

    • 1. Porniți computerul. Descărcați ACCESS DBMS. Mai întâi trebuie să creați o nouă bază de date.
    • 2. Hai să o facem următoarea secvență acțiune: în meniul Fișier, selectați comanda Nou. Nume fișier: skaz.mdb. BINE. Caseta de dialog „Bază de date” apare în fața ta.
    • 3. Citiți cu atenție scopul butoanelor de pe bara de instrumente, deplasând încet cursorul mouse-ului peste butoane.
    • 4. După aceasta, creați un tabel efectuând următoarea secvență de acțiuni: Table/Create/New Table.

    Crearea unui tabel, adică determinarea câmpurilor incluse în tabel, se face prin completarea unui tabel special: Câmp Tip de date Descriere

    • 5. Completați acest tabel introducând următoarele date:

    Câmp Tip de date Descriere Nr. Contor Caracter Text Profesie Text Caracteristici speciale Text Erou Logic Erou pozitiv sau negativ

    • 6. Câmpul Nr. este opțional, îl introducem pentru a determina câmpul cheie, deoarece orice tabel trebuie să aibă o cheie.
    • 7. Tabelul creat trebuie salvat, dându-i un nume folosind comenzile: File/Save as..., Table name: “Character”, OK.
    • 8. Introduceți informații în tabelul Tabel/Personaj/Deschidere și introduceți datele în modul obișnuit, de exemplu:

    Nr. Personaj Profesia erou cu caracteristici speciale

    • 1 Pinocchio lemn de om nas lung Da
    • 2 Papa Carlo râșnitorul de orgă Da
    • 3 Karabas Barabas director al teatrului de păpuși barbă lungă care ajunge până la podea Nr
    • 4 Fox Alice Fraud șchioapă pe un picior Nr
    • 5 Pisica Basilio Escrocul este orb la ambii ochi Nu
    • 6 Artista de teatru Malvina fata cu parul albastru Da
    • 7 Farmacist Duremar miros caracteristic de noroi Nr
    • 8 Tortila deținătorul țestoasei cheie de aur Da
    • 9. Folosind mouse-ul, evidențiați:
      • a) intrarea 5,
      • b) intrarea 3,
      • c) de la a treia la a șaptea intrare. Deselectați-l.
      • d) Selectați toate intrările. Deselectați-l.
      • e) Selectați câmpul „Personaj”.
      • f) Selectați următoarele câmpuri: „Profesie”, „Caracteristici speciale” și „Erou” în același timp și deselectați-le.
      • g) Selectați toate câmpurile. Acest lucru se poate face folosind mouse-ul sau din meniul Editare, selectați comanda Selectare toate înregistrările.
    • 10. Deselectați selecția.
    • 11. Evidențiați:
      • a) În câmpul „Caracteristici speciale”, marcați a șasea intrare.
      • b) În câmpul „Personaj”, selectați a patra până la a șasea intrare.
      • c) Fără a elibera butonul mouse-ului, marcați aceleași intrări în câmpurile „Funcții speciale” și „Erou”.
    • 12. Deselectați selecția.
    • 13. Selectați întregul tabel.
    • 14. Deselectați selecția.
    • 15. Schimbați lățimea fiecărei coloane astfel încât lățimea coloanelor să fie minimă, dar tot textul să fie vizibil.

    Acest lucru se poate face folosind mouse-ul, extinzând coloanele sau după cum urmează. Selectați coloana dorită și faceți clic butonul corect mouse, în meniul contextual selectați comanda „Column Width”; În fereastra care se deschide, faceți clic pe butonul Potrivire la lățimea datelor. Faceți același lucru cu toate câmpurile. Înălțimea liniei poate fi modificată în același mod folosind mouse-ul sau în meniul Format cu comanda Line Height. Mai mult, este suficient să editați o linie, înălțimea liniilor rămase se modifică automat.

    • 16. Schimbați înălțimea liniei în orice fel și faceți-o egală cu 30.
    • 17. Schimbați fontul tabelului în Arial Cyr, dimensiunea fontului 14, bold.

    Puteți schimba fontul după cum urmează: mutați cursorul mouse-ului în afara tabelului și faceți clic pe butonul stâng al mouse-ului, selectați Font în meniul contextual sau selectați comanda Font în meniul Editare din bara de instrumente.

    • 18. Schimbați fontul textului în Times New Roman Cyr, dimensiunea fontului 10.
    • 19. Modificați lățimea marginilor.
      • a) Faceți coloana „Personaj” cu o lățime de 20.
      • b) Coloana „Caracteristici speciale” are 25 de lățime.

    Puteți vedea că textul din aceste câmpuri este imprimat pe două rânduri.

    • 20. Reglați lățimea coloanelor astfel încât textul să se potrivească complet.
    • 21. Sortați tabelul după câmpul „Personaj” în ordine alfabetică inversă.

    Se poate face așa. Evidențiați câmpul Caracter și faceți clic pe butonul Sortare descendentă din bara de instrumente.

    • 22. Readuceți tabelul la starea inițială.