luni, 7 octombrie 2019

ELABORAREA Si GESTiUNEA BAZELOR DE DATE

ELABORAREA Si GESTiUNEA BAZELOR DE DATE După studierea acestui capitol, veţi fi capabili să: • descrieţi etapele de elaborare a unei baze de date; • explicaţi rolul persoanelor antrenate în elaborarea bazelor de date; • descrieţi structura şi funcţiile sistemelor de gestiune a bazelor de date; • recunoaşteţi structura tabelelor unei baze de date relaţionale; • identificaţi tipul relaţiei dintre două tabele; • alegeţi sau să creaţi o cheie primară pentru un tabel; • aplicaţi unele principii de proiectare a bazelor de date la elaborarea modelului conceptual al bazei. 7.1. Elaborarea unei baze de date 7.1.1. aspecte generale Un sistem de bază de date reprezintă un sistem de organizare şi de prelucrare a bazei de date şi este format din baza de date propriu-zisă şi dintr-un ansamblu de programe prin care se asigură gestionarea şi prelucrarea complexă a datelor. Prin proiectarea sau elaborarea unei baze de date se subînţelege crearea sistemului acestei baze de date. Proiectarea unei baze de date constă, de regulă, din următoarele etape: 1. Etapa de analiză. Se analizează domeniul de date şi se depistează cerinţele tuturor categoriilor de utilizatori către sistemul de bază de date, precum şi operaţiile pe care le va gestiona acest sistem. În urma acestei analize se proiectează modelul conceptual al bazei de date. De asemenea, se stabileşte structura interfeţei principale a sistemului de bază de date şi a celor auxiliare. 2. Etapa de programare. Se creează componentele logice (programele): interfaţa principală, aplicaţiile de introducere/actualizare/prelucrare a datelor, cele de interogare a bazei de date şi de extragere a informaţiilor. 3. Punerea în funcţiune şi exploatarea sistemului de bază de date. Baza de date se completează cu date (înregistrări). În continuare se realizează operaţii de actualizare, de consultare şi de întreţinere ulterioară (inclusiv dezvoltare) a sistemului de bază de date. Elaborarea şi întreţinerea unei baze de date se realizează, în genere, de un grup de persoane: a d m in istra to ri (care stabilesc structura iniţială a bazei de date, modul de memorare a datelor la nivel fizic; acordă utilizatorilor drepturi de acces la baza de date, asigură securitatea datelor, modifică structura şi dezvoltă baza de date), p ro g ra m a to ri (care scriu programele în limbaje de programare), pro iecta n ţi (care realizează designul interfeţelor bazei de date) etc. 68 O b se rv a ţie : Există sisteme computerizate moderne, numite Sisteme de Gestiune a Bazelor de Date (SGBD), care au fost elaborate special pentru a crea sisteme de bază de date. Mai detaliat aceste SGBD-uri vor fi examinate în paragraful următor. 7.1.2. Proiectarea entităţilor unei baze de date relaţionale .> .> În capitolul precedent am menţionat că entităţile unei baze de date relaţionale sînt tabelele în care se păstrează înregistrări de date (rînduri de date). Capul de tabel (sau antetul tabelului) defineşte structura tabelului. Prin crearea unui tabel se subînţelege, de fapt, definirea capului de tabel, adică descrierea cîmpurilor (a coloanelor) tabelului. Exem plu: Considerăm o bază de date, denumită Liceu, în care sînt stocate informaţii despre un liceu. Tabelul Elevi al acestei baze de date păstrează informaţii despre elevii liceului: Tabelul Elevi Cod_elev Nume_elev Pren_elev Cod_clasa Data_elev Foto_elev Telefon Gen_elev e001 Bacinschi Sabina c01 28.09.1993 Package 29-82-54 F e002 Belobrov Andreea c01 18.10.1993 Package 44-26-48 F e003 Brîncă Carmen c01 20.03.1993 Package 67-46-64 F La descrierea fiecărui cîmp al unui tabel se specifică num ele şi tipu l cîmpului. a) Num ele cîmpului trebuie să fie unic în cadrul tabelului. Datele unui cîmp sînt omogene; b) Tipul cîm pu lu i defineşte tipul valorilor cîmpului (numeric, şir de caractere, text mare, dată calendaristică, logic, imagine etc.). Astfel, primul cîmp are numele C od_elev şi tipul Şir de caractere, iar al cincilea cîmp - numele D a ta _ elev şi tipul D a tă calen daristică. Fiecare valoare din cîmpul Cod_elev al tabelului Elevi corespunde unei singure înregistrări. Cîmpul ale cărui valori identifică fiecare înregistrare a tabelului se numeşte cheie p rim a ră . Evident, un cîmp este cheie primară doar dacă valorile lui nu sînt nule şi nu se repetă. Se recomandă ca fiecare tabel al unei baze de date să conţină un cîmp-cheie primară. Uneori, rolul cheii primare îi poate reveni cîtorva cîmpuri (dacă acestea împreună identifică univoc rîndurile tabelului). Dacă valorile unui cîmp se repetă, atunci acest cîmp se numeşte ch eie secu n dară. Astfel, cîmpul C od_elev este cheie primară, iar C od_clasa - cheie secundară ale tabelului E levi. De regulă, fiecare tabel al unei baze de date relaţionale se află într-o legătură cu cel puţin un alt tabel al aceleiaşi baze. Există trei tipuri de relaţii între tabele: a) unu la u n u; b) unu la m u lţi; c) m u lţi la m ulţi. Într-o relaţie de tipul u n u la u n u (se notează 1:1), fiecărei înregistrări a unui tabel îi poate corespunde cel mult o înregistrare a celuilalt tabel şi invers. Acest tip de relaţie se obţine atunci cînd un tabel, avînd prea multe cîmpuri, este divizat în două tabele. În acest caz cîmpurile primare ale tabelelor vor avea date identice. De exemplu, între tabelele E levi şi A drese_elevi a fost creată o relaţie de tipul unu la unu. Observăm că ambele tabele au acelaşi cîmp-cheie primară C od_elev cu date identice. 69 Tabelul Adrese_Elevi Cod_elev Loc_elev Strada_elev Nr_casa_elev Ap_elev e001 Chişinău Mihail Sadoveanu 40 23 e002 Stăuceni Viei 9 Schematic această relaţie este reprezentată în fig u ra 7.1. În cazul relaţiei u n u la m u lţi (se notează 1:~ sau 1:M), fiecărei înregistrări a unui tabel îi pot corespunde cîteva înregistrări ale celuilalt tabel, iar fiecărei înegistrări din tabelul al doilea îi poate corespunde cel mult o înregistrare a primului tabel. Pentru a stabili o astfel de relaţie, primul tabel trebuie să conţină o cheie primară, iar cel de-al doilea - o cheie secundară de tip compatibil cu tipul cheii primare a primului tabel. De exemplu, tabelul Clase se află în relaţia unu la m u lţi cu tabelul Elevi, deoarece fiecărei clase „îi corespund cîţiva” elevi, iar fiecare elev „aparţine” unei singure clase. Tabelul Clase Cod_clasa Anul_de_studii Nume_clasa Cod_profil c01 10 A p1 c02 10 B p1 c03 10 C p2 c04 10 D p2 Cheia primară C od_clasa a tabelului C lase este „compatibilă” cu cheia secundară C od_clasa a tabelului E levi. Schematic această relaţie este reprezentată în figu ra 7.2. E le v i A d r e s e _ e le v i S? C o d _ e le v i i y C o d _ e le v N u m e _ e le v L o c .e le v P re n _e le v S tra d a _ e le v C o d .c la s a N r_ ca sa _ e le v D ata _ e le v A p _ e le v F o to .e le v T e le fo n G e n_ e le v Fig. 7.1 Fig. 7.2 O bservaţie: Cheia secundară în cazul relaţiei unu la mulţi se mai numeşte cheie străină. y y > > Într-o relaţie m u lţi la m u lţi (se notează ~:~ sau M:M), fiecărei înregistrări a unui tabel îi pot corespunde cîteva înregistrări ale celuilalt tabel şi invers. De exemplu, tabelele C lase şi D iscipline se află în relaţia m u lţi la m u lţi, deoarece în fiecare clasă se predau mai multe discipline şi fiecare disciplină poate fi predată în cîteva clase. Tabelul Discipline Tabelul Prof_dis_clasa Cod_repart Cod_clasa Cod_dis Cod_prof r001 c01 d01 prof01 r002 c01 d02 prof01 r003 c01 d03 prof02 r004 c01 d05 prof04 Cod_disciplina Nume_disciplina d01 Matematica d02 Informatica d03 Chimia d04 Fizica 70 Relaţia m ulţi la m ulţi dintre două tabele se poate stabili prin două relaţii de tipul unu la mulţi. Fiecare dintre cele două tabele se leagă într-o relaţie unu la m ulţi cu un al treilea tabel. De exemplu, relaţia m u lţi la m u lţi dintre tabelele Clase şi D isciplin e se realizează prin tabelul P rof_dis_clasa (fig. 7.3). D is c ip lin e P ro f _ d is _ c la s a C la s e ^ Cod_dis Nume_disciplina \ S? Cod_repart Cod_clasa Cod_dis Cod_prof Nr_ore_saptamina i <30 / ^ Cod_clasa Anul_de_studii Nume_clasa Cod_profil Fig. 7.3 O b se rv a ţie : Prima înregistrare din tabelul P rof_dis_clasa informează că în clasa c01 (adică în clasa a 10-a A) disciplina d01 (adică M a tem a tica ) este predată de profesorul prof01 (datele despre acest profesor se păstrează în tabelul Profesori, p. 74). 7.1.3. Principii de proiectare Proiectînd o bază de date relaţională, programatorii definesc tabelele astfel, încît ele să respecte anumite principii (de exemplu, să fie aduse la aşa-numitele fo r m e n orm ale). • Unul dintre aceste principii presupune că datele cîmpurilor tabelelor trebuie să fie date elementare (vezi paragraful 6.1 al capitolului 6). Din aceste considerente, adresa unui elev sau a unui profesor se păstrează în cîteva cîmpuri. Este evident că prelucrarea înregistrărilor ar fi fost mai dificilă dacă adresa era stocată într-un singur cîmp. • Pentru ca actualizarea înregistrărilor din tabele să fie optimală (de exemplu, să fie mai rapidă), se recomandă excluderea multiplă a repetărilor valorilor fiecărui cîmp (excepţie făcînd cazul cîmpurilor legate cu chei primare ale altui tabel) prin descompunerea tabelului respectiv în cîteva tabele. De exemplu, datele despre profesori şi despre disciplinele pe care ei le predau în clase sînt stocate în patru tabele: Profesori, D isciplin e, C lase şi Prof_dis_clase. Aşa cum între aceste tabele există relaţii, pentru a modifica în toate înregistrările numele unui profesor, este suficient să efectuăm schimbarea numelui doar în tabelul Profesori. Întrebări si exerciţii o Numiţi etapele de proiectare a unei baze de date. © Care sînt entităţile unei baze de date relaţionale? © Explicaţi principiile de proiectare a unei baze de date relaţionale. © prin ce se deosebeşte relaţia M :M de relaţia 1 : M? © Examinaţi tabelul Elevial bazei de date Liceuşi stabiliţi tipul valorilor fiecărui cîmp al acestui tabel. © Alegeţi o cheie primară pentru tabelul: a) Clasa_12 cu cîmpurile Numâr_de_ordinel Nume_elev, Prenume_elev, Telefon_elev; b) Angajaţi cu cîm purile Nume_angajat, Prenume_angajat, Vîrsta_angajat, Gen_angajat, Numâr_buletin_de_identitate_angajat; c) Parcare_auto cu cîmpurile Marca_auto, Numâr_de_înmatriculare_auto, Foto_auto, Nume_ proprietar_auto; d) Ţâri cu cîmpurile Nume_ţarâ, Suprafaţâ_ţarâ, Capitalâ_ţarâ, Numâr_locuitori_ţarâ. 71 o Ce tip de relaţie se poate stabili între tabelele: a) Vinuri şi Producâtori_de_vinuri; b) Cârti şi Autori; c) Poezii şi Autori; d) Specialităţi şi Universităţi? © Proiectaţi tabelele bazei de date care va conţine informaţii: a) dintr-o agendă de telefoane; b) despre cărţile bibliotecii personale; c) despre automobile; d) despre marile personalităţi ale ţării noastre. 7.2. Sisteme de gestiune a bazelor de date (SGBD) 7.2.1. Concepte generale despre sisteme de gestiune a bazelor de date Un sistem de gestiune a bazelor de date este un ansamblu de programe care permit construirea bazelor de date, introducerea şi actualizarea datelor, asigurarea controlului de acces al acestor date, gestionarea informaţiilor din baza de date, precum şi crearea aplicaţiilor cu baze de date. Un SGBD exercită următoarele funcţii: a) defineşte b a za de date, în sensul că descrie tipurile şi structurile de date, relaţiile dintre ele şi modalităţile de accesare a informaţiilor din bază; b) a ctu a lizea ză b a za de date, adică permite inserarea, redactarea şi ştergerea datelor; c) execută interogări către b a za de date, în urma cărora informaţiile se sortează sau se filtrează după anumite criterii formulate de utilizatori; d) creează d a te n o i, care se obţin în baza efectuării unor calcule, inclusiv a totalizărilor; e) creează rapoarte simple şi complexe sub formă de tabele, grafice, diagrame etc.; f) asigură în treţin erea b a zei de date, care presupune repararea bazei în cazul unor defecţiuni, compactarea (sau defragmentarea) ei, precum şi crearea copiilor de siguranţă atît pentru date, cît şi pentru obiectele bazei; g) p ro te je a ză b a za de date de accesul care nu este autorizat şi stabileşte această autorizare pentru acces complet sau partajat. • Software-ul SGBD este format din: a) D icţio n a ru l de date (D a ta D ic tio n a ry ), care conţine o descriere a structurii datelor folosite în baza de date; b) L im baju l de interogare (Q u ery L anguage), care asigură accesul la informaţiile din baza de date. Cel mai răspîndit limbaj de interogare (folosit în diferite SGBD) este limbajul SQL (S tru ctu red Q u ery Language). • Hardware-ul SGBD poate fi format: a) din tr-u n singur calculator sau b) din tr-o reţea de calculatoare, în care pe calculatorul principal (serverul) se află programele-componente din SGBD care administrează şi controlează accesul către baza de date, iar pe celelalte calculatoare - programele destinate utilizatorilor. Cele mai răspîndite SGBD sînt Microsoft Office Access, Oracle, FoxPro, Paradox, dBase, Microsoft SQL Server etc. 72 7.2.2. Sistemul de gestiune a bazelor de date Microsoft Office Access Microsoft Office Access (în continuare vom spune doar Access) este un sistem de gestiune a bazelor de date relaţionale care funcţionează în mediul Windows. Prima sa versiune a fost lansată în anul 1993. Cu ajutorul lui pot fi create baze de date complexe, avînd pentru acest scop tot instrumentarul necesar. Comparativ cu alte SGBD-uri, este comod şi simplu în utilizare. Pentru crearea interogărilor, formularelor, rapoartelor şi a altor produse de baze de date, Access pune la îndemîna programatorilor şi utilizatorilor un set de programe de asistenţă, care automatizează diferite etape de lucru. Sistemul Access poate fi lansat în cîteva moduri: - executînd un dublu-clic pe referinţa Access de pe suprafaţa de lucru Windows; - selectînd opţiunea Microsoft Office Access cu ajutorul meniului Start; - executînd un dublu-clic pe pictograma oricărui fişier cu extensia .mdb. Fiind lansat Access, putem crea o bază de date, selectînd File ^ N ew ^ B lancdatabase... Apare fereastra File N e w D atabase. În caseta File n a m e : scriem numele bazei de date pe care dorim să o creăm. Cu ajutorul listei derulante Save in selectăm catalogul în care vom păstra această bază de date. În interiorul ferestrei Access apare fereastra bazei de date cu numele ei. Suprafeţele de lucru ale variatelor versiuni ale sistemului Access nu sînt total diferite. Fiecare dintre aceste suprafeţe are următoarele elemente de bază: a) bara de titlu Access; b) bara cu meniuri (File, E dit, View , Insert, Tools, W in dow , H elp) a ferestrei Access; c) bara cu instrumente Access; d) fereastra bazei de date cu opţiuni (sau file) pentru crearea şi gestionarea celor şapte clase de obiecte Access (Tables - tabele, Q ueries - interogări, Form s - formulare, R eports - rapoarte, Pages - pagini, M acros - macroinstrucţiuni, M odu les - module cu instrucţiuni în limbajul V isual B asic fo r A pplication s). Obiectele bazei de date se pot accesa prin intermediul pictogramelor corespunzătoare lor, amplasate pe bara O bjects a ferestrei bazei de date; e) bara cu meniuri a ferestrei de date (O pen , D esign, N ew ). În continuare vom explica cum se elaborează şi se gestionează cu Access o bază de date. Vom crea şi vom prelucra baza de date Liceu, care va păstra informaţii despre elevii şi profesorii unui liceu. 7.2.3. Structura bazei de date Liceu Baza de date Liceu va fi formată din 8 tabele legate între ele (fig. 7.4). Prezentăm structura celor 8 tabele. Atragem atenţia că aici sînt arătate doar cîteva înregistrări ale fiecăruia din tabelele 2 -8 . Tabelul 1. Profiluri Tabelul 2. Discipline Cod_profil Nume_profil pi Real p2 Umanist Cod_dis Nume_disciplina d01 Matematica d02 Informatica 73 Fig. 7.4 Tabelul 3. Profesori Cod_ prof Nume_ prof Pren_ prof Data_prof Foto_ prof Salariu CV_prof Casatorit Gen_ prof Telefon Diriginte prof01 Albu Ion 01.03.1968 Package 3500 Grad... Yes M 64-41-72 C02 prof02 Moraru Vasile 11.05.1973 Package 3000 S-a năs... No M 29-10-16 Tabelul 4. Adrese_prof Cod_prof Loc_prof Strada_prof Nr_casa_prof Ap_prof prof01 Cricova Vinului 89 prof02 Chisinău Grenoble 81 77 Tabelul 5. Clase Cod_clasa Anul_de_studii Nume_clasa Cod_profil c01 10 A p1 c02 10 B p 1 Tabelul 6. Elevi Cod_elev Nume_elev Pren_elev Cod_clasa Data_elev Foto_elev Telefon Gen_elev e001 Bacinschi Sabina c01 28.09.1998 Package 29-82-54 F e002 Belobrov Andreea c01 18.10.1998 Package 44-26-48 F Tabelul 7. Adrese_elevi Cod_elev Loc_elev Strada_elev Nr_casa_elev Ap_elev e001 Chişinău Mihail Sadoveanu 40 23 e002 Stăuceni Viei 9 74 Tabelul 8. Prof_dis_clasa Cod_repart Cod_clasa Cod_dis Cod_prof r001 c01 d01 prof01 r002 c01 d02 prof01 O b se rv a ţie : Tabelele bazei de date Liceu pot fi descărcate de pe adresa www.bd.ust.md. Întrebări si exerciţii j t O Descrieţi structura unui sistem de gestiune a bazelor de date. © Explicaţi funcţiile sistemelor de gestiune a bazelor de date. © Cum poate fi lansat SGBD Access? © Examinaţi suprafaţa de lucru a SGBD Access şi caracterizaţi clasele de obiecte Access. © observaţi înregistrările din tabelele bazei de date Liceu şi stabiliţi: a) profilul clasei în care învaţă eleva Sabina Bacinschi; b) numele profesorului care predă Informatica în clasa a 10-a a ; c) denumirea unei discipline predate de profesorul ion Albu; d) adresa dirigintelui clasei a 10-a A. Test de evaluare 1. Care dintre următoarele valori sînt date elementare în limbajul pascal: a) şirul de caractere 'informatica'; b) constanta caracterială 'E'; c) valoarea logică false; d) vectorul Vcu elemente de tip byte; e) constanta Pi; f) numărul 32 109? 2. Stabiliţi tipul bazei de date, ale cărei entităţi sînt legate între ele ca-n imagine: Entitatea 1 --------- Entitatea 2 --------- Entitatea 3 --------- Entitatea 4 Argumentaţi răspunsul. 3. Descrieţi structura tabelului în care pot fi păstrate informaţii despre notele obţinute la Matematică de elevii clasei a 12-a pe parcursul unui semestru. 4. Alegeţi o cheie primară pentru tabelul: a) Lista clasei a 12-a cu cîmpurile Număr_de ordine, Nume, Prenume, Data_naşterii, Gen; b) Pagini_Web cu cîmpurile Nume_pagină, Adresa_pagină, Limba_pagină, Autor_pagină; c) Filme cu cîmpurile Nume_film, Autor_film, Gen_film, Durata_film. 5. Determinaţi tipul de relaţie între tabelele: a) Mărci_auto şi Proprietari_auto; b) Profesori şi Elevi; c) Copii şi Mame; d) Ţări şi Capitale; e) Canale_TV şi Filme. 6. a) proiectaţi tabelele bazei de date Agenda elevului în care se vor stoca informaţii din agenda unui elev. b) Ce tipuri de relaţii există între tabelele proi

Niciun comentariu:

Trimiteți un comentariu