Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Anúncio
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
Próximos SlideShares
Introducere baza de-dateIntroducere baza de-date
Carregando em ... 3
1 de 34
Anúncio

Mais conteúdo relacionado

Anúncio

'Documents.tips curs baze-de-date-5642553eddb8c.doc'

  1. 08/01/14 1 1 Introducere in baze de date 2 Cuprins •  Cateva definitii; •  Exemple de sisteme de gestiune a bazelor de date; •  Ciclul de viata a unui produs informatic; •  Tehnici de comunicare •  Domeniul informatiei 3 Cateva definitii •  Aplicaţie (application): un sistem care oferă o mulţime de servicii pentru rezolvarea unor probleme ale utilizatorilor (ESI) •  Produs soft (software product): set complet de programe, proceduri de operare, documentaţia şi datele aferente, destinate a fi livrate utilizatorului (ISO 9000-3) •  Program (program, computer program): o mulţime de instrucţiuni, executate de un calculator şi destinate rezolvării unei anumite probleme. 4 Cateva definitii •  Sistem (system): reprezentarea a ceva ce este identificabil, evoluează şi acţionează asupra unui mediu, în concordanţă cu un anumit obiectiv impus de mediu (Euromethod Dictionary); o colecţie de componente organizate pentru a îndeplini o funcţie specifică sau o mulţime de funcţii specifice (IEEE Std 610.12-1990) •  Sistem informaţional (information system): aspect al unei organizaţii care produce, foloseşte şi distribuie informaţie. El include resursele umane, tehnice şi financiare ale organizaţiei. Prin excelenţă, este un sistem uman care poate conţine un subsistem informatic care automatizează anumite elemente ale sistemului informaţional (Euromethod Concepts Manual 2 - Deliverable Model, 1994) 5 Cateva definitii
  2. 2 08/01/14 •  Soft de aplicaţie (application software): soft destinat să acopere nevoi specifice ale utilizatorului; de exemplu soft pentru evidenţa studenţilor, salarii sau controlul proceselor (IEEE Std 610.12-1990) •  Baza de date: – O baza de date este o lista organizata de informatii continand in mod uzual siruri de caractere, numere sau alte tipuri de informatii – O multime organizata de date. 6 Cateva definitii •  Sistem de gestiune a bazelor de date(SGBD): componenta specifica a calculatorului gazda, care inglobeaza functii de organizare, memorare si regasire a datelor folosind formate de memorare specifice 7 Exemple de SGBD-uri •  xBase ( Dbase, Fox Pro, Visual Fox) •  Access •  Oracle •  Sybase •  Informix •  Etc. 8 Clase de programe Clasificări ale programelor •  după funcţionalitate generală: • soft de bază şi soft aplicativ •  după domeniul de aplicare • aplicaţii de gestiune, aplicaţii pentru calcule ştiinţifice, aplicaţii de CAD/CAM (Computer Aided Design - Computer Aided Manufacturing), aplicaţii multimedia, aplicaţii bazate pe Internet, etc. •  după tipul prelucrărilor efectuate •  după tipul şi intensitatea legăturilor cu mediul extern 9 Clase de programe (continuare)
  3. 3 08/01/14 Clasificări ale programelor - tipuri majore de prelucrare • prelucrare batch (pe loturi): aceeaşi transformare efectuată o singură dată pentru un set de date de intrare • prelucrare continuă, on-line: transformarea datelor de intrare se execută de fiecare dată când se modifică acestea • prelucrare distribuită: transformarea datelor implică folosirea de sisteme multiprocesor sau de reţele distribuite de calculatoare, locale sau dispuse pe o arie geografică largă; este caracterizată de latenţă în comunicaţie 10 Clase de programe (continuare) Clasificări ale programelor după tipul şi intensitatea legăturilor cu mediul extern •  aplicaţii cu interfaţă interactivă: menu-driven applications; utilizatorul selectează o opţiune dintr-un meniu •  aplicaţii de simulare dinamică: simulează obiecte evolutive din lumea reală simularea traficului într-o intersecţie; simulatoare de zbor •  aplicaţii în timp real: modelează sisteme dominate de restricţii severe de timp supravegherea şi controlul unui reactor nuclear; pilot automat •  programe de gestiune a tranzacţiilor: memorare, actualizare şi regăsire de date, inclusiv acces concurent din diverse locaţii fizice sistemul integrat de gestiune al unei firme (compartimente diferite, baze de date generale, acces concurent din toate compartimentele, drepturi de acces bine precizate, etc.). 11 Clase de programe (continuare) Clasificări ale aplicaţiilor de gestiune (Flaaten, 1989) •  sisteme de gestiune a tranzacţiilor (transaction processing systems, TPS) •  sisteme informatice pentru management (management information systems) •  sisteme de sprijin pentru decizii (decision support systems)
  4. 4 08/01/14 •  sisteme de automatizare a biroului (office automation systems) •  sisteme departamentale (departamental systems) •  sisteme expert (expert systems) •  sisteme informatice pentru conducere (executive information systems, EIS) 12 Clase de programe (continuare) Sisteme de gestiune a tranzacţiilor – calcul de salarii, facturare – ieri - sisteme batch - operatori introducere date – azi - sisteme on-line - funcţionari specializaţi, care trebuie să ia decizii – baza de date este actualizată continuu – sistem integrat de prelucrare a tranzacţiilor, bază de date integrată 13 Clase de programe (continuare) Sisteme informatice pentru management – buget, contabilitate – ieri - sisteme batch - rapoarte voluminoase – căutarea manuală a informaţiei – azi - sisteme on-line - rapoarte la cerere, interogări personalizate –suporturi diferite pentru rapoarte: hârtie, fişier pe suport magnetic, ce se poate transmite celor interesaţi prin reţeaua de comunicaţie – datele se preiau în bună măsură de la sistemele de gestiune a tranzacţiilor – de obicei preluarea nu se face on-line, ci la intervale prestabilite de timp 14 Clase de programe (continuare) Sisteme de sprijin pentru decizii – derivate din sistemele informatice pentru management – oferă analize variate ale aceloraşi date, fără efort de
  5. 5 08/01/14 programare – prezentare tabelară sau grafică a datelor – efectuează corelaţii şi analize de tendinţe – conţin instrumente de modelare pentru – decizii tactice (datele se preiau din sistemele informatice pentru management) – decizii strategice (datele se preiau din sistemele informatice pentru conducere 15 Clase de programe (continuare) Sisteme de automatizare a biroului – iniţial: instrumente de prelucrare a documentelor, • materializare a metafora desktop-ului (biroului de lucru) pe sistemele cu interfaţă grafică moderne – conţin conţin instrumente de comunicare între posturile de lucru • ajută la estomparea diferenţei dintre prelucrarea tranzacţiilor (efectuată de funcţionari) şi prelucrările specifice muncii de secretariat. – includ: • procesoare de texte • procesoare de tabele • instrumente de comunicare, mesagerie, poştă electronică • instrumente de navigare în Internet. 16 Clase de programe (continuare) Sisteme departamentale – de regulă o mixtură între sisteme de prelucrare a tranzacţiilor, sisteme de sprijin pentru decizii şi sisteme de automatizare a biroului – domeniul de acţiune: un singur departament al unei organizaţii (sau o filială a acesteia aflată la distanţă faţă de sediul central) – sunt conectate la sistemele organizaţiei, însă au şi funcţiuni specifice • de obicei când departamentul are cerinţe de prelucrare şi
  6. 6 08/01/14 memorare a datelor care nu sunt incluse în sistemul informaţional al organizaţiei, nefiind specifice acesteia în ansamblul său. – tendinţa modernă: integrarea sistemelor departamentale în intranetul organizaţiei – exemplu: sistemul laboratorului unui spital. 17 Clase de programe (continuare) Sisteme expert – (de obicei) sisteme bazate pe reguli care ajută utilizatorii nespecialişti să efectueze activităţi (să obţină expertiză) în domenii în care n-au pregătirea necesară. – tehnologia folosită: inteligenţa artificială – scopul: răspândirea cunoştinţelor deţinute de un număr mic de experţi – schemă de reprezentare a cunoştinţelor –bază de cunoştinţe dotată cu un motor de inferenţă –cunoştinţele se reprezintă prin fapte, reguli, aserţiuni. – domenii predilecte de aplicare: –medicina, –configurarea hard a calculatoarelor, – analiza compuşilor chimici, etc. 18 Clase de programe (continuare) Sisteme informatice pentru conducere – destinate conducerii executive a organizaţiei (vârfului piramidei ierarhice). –oferă acces conducătorilor la – baze de date externe organizaţiei (despre ramura industrială respectivă, competiţie, preţuri, inovaţii tehnice) – baze de date interne organizaţiei (la nivel de informaţie de sinteză). – informaţia este prezentată într-o manieră sintetică – tablou de bord –tabele
  7. 7 08/01/14 – grafice 19 Ciclul de viaţă a unui program Ciclu de viaţă – naştere • apare ideea (necesitatea) realizării programului şi se aprobă dezvoltarea lui – creştere • dezvoltarea – maturitate • instalarea • exploatarea curentă • întreţinerea – bătrâneţe (vârsta a III-a) • exploatare cu probleme – moarte • scoaterea din exploatare 20 Ciclul de viaţă a unui program (cont.) Fazele ciclului de viaţă – definiţia (munca de echipa - informatician si client) • începe când este formulată problema de rezolvat • pune accentul pe CE face programul – CE informaţie se prelucrează – CE funcţii sau performanţe trebuie să aibă sistemul – CE interfeţe cu alte sisteme – CE restricţii de proiectare există – CE criterii de validare sunt necesare – dezvoltarea ( sarcina programatorul) • pune accentul pe CUM trebuie făcut programul – testarea (munca de echipa - informatician si client) – exploatarea (client - asistat de informatician) • întreţinere 21 Ciclul de viaţă a unui program (cont.)
  8. 8 08/01/14 Paşii fazei de definiţie •  analiza de sistem (ingineria de sistem) – stabileşte rolul pe care-l joacă programul în ansamblul sistemului informaţional al organizaţiei. •  planificarea proiectului – analiza riscurilor, estimarea costurilor şi alocarea resurselor necesare pentru dezvoltare, definirea sarcinilor de lucru şi a orarului de derulare al proiectului. •  analiza cerinţelor – definirea detaliată a informaţei care se prelucrează, specificarea clară a funcţiilor pe care trebuie să le execute programul şi precizarea restricţiilor impuse asupra acestuia. 22 Modelul cascadă
  9. 9 08/01/14 23 Modelul V 24 Prototipizarea 25 Prototipizarea (cont) Avantaje – implicarea utilizatorului în aproape toate activităţile – o mai bună comunicare între analist şi utilizator – scopul creării prototipului este completarea analizei cerinţelor – existenţa mediilor vizuale sprijină prototipizarea • se pot realiza prototipuri complet funcţionale şi eficiente Dezavantaje – utilizatorul percepe prototipul ca fiind produsul final • realizarea prototipului se face cu anumite compromisuri de implementare (mediu de implementare, algoritmi, simplificarea funcţionalităţii) • etapa (6) pleacă de multe ori de la zero 26 Dezvoltarea iterativă şi incrementală (modelul spirală,Boehm)
  10. 10 08/01/14 27 Dezvoltarea iterativă şi incrementală (modelul spirală, Boehm) Avantaje – abordare evoluţionistă • ajută la înţelegerea riscurilor şi la identificarea modalităţilor de ţinere sub control a acestora • prototipizarea este folosită ca mecanism de reducere a riscurilor • ciclul clasic de viaţă este încorporat într-un cadru iterativ, care reflectă mai bine lumea reală Dezavantaje – analiza riscurilor este activitatea critică • atenţie acordată riscurilor tehnice în toate etapele proiectului • dacă un risc major nu este descoperit 28 Analiza Etape (sarcini) •  (1) recunoaşterea problemei •  (2) evaluarea şi sinteza •  (3) modelarea •  (4) specificarea •  (5) revizuirea 29 Tehnici de comunicare Procesul de comunicare – părţi: • clientul - are o problemă care trebuie rezolvată prin folosirea calculatorului • analistul - încearcă să înceapă rezolvarea cererii clientului – scop • colectarea de informaţii despre sistemul existent şi despre ceea ce se doreşte a se pune în locul lui
  11. 11 08/01/14 Tehnici de comunicare – (1) interviul – (2) modelul propus de Weinberg – (3) tehnica FAST – (4) alte tehnici de comunicare şi colectare de informaţii 30 Tehnici de comunicare (cont) (1) interviul – încercare sistematică de a colecta informaţie de la o persoană – paşi - derulare • (i) pregătirea – familiarizare cu domeniul problemei, organizaţiei, proiectului • (ii) planificarea şi orarul – listă de întrebări, persoane, data, ora, locul • (iii) începutul şi terminarea – prima (ultima) impresie contează, atmosferă relaxată – prezentare (început), rezumat (sfârşit) • (iv) desfăşurarea propriu-zisă a interviului • (v) (eventuale) interviuri ulterioare pentru clarificări 31 Tehnici de comunicare (cont) (2) modelul propus de Gause-Weinberg - structurarea întrebărilor pe care analistul le pune clientului în trei grupuri – primul grup de întrebări: fără legătură cu contextul problemei de rezolvat • scopuri: –înţelegerea în mare a problemei, oamenilor, naturii dorite a soluţiei –obţinerea justificării continuării colaborării cu clientul • sunt axate pe client, obiectivele generale şi beneficiile pe care le poate aduce soluţia: –(i) ce este în spatele acestei comenzi pentru noul program?
  12. 12 08/01/14 –(ii) cine va folosi programul? –(iii) care va fi beneficiul economic al unei soluţii bune? –(iv) exista alternative de rezolvare a problemei? – al doilea grup de întrebări • scopuri – o mai bună înţelegere a problemei de către analist – permit clientului să formuleze percepţiile sale asupra soluţiei • exemple –(i) cum aţi caracteriza o buna ieşire? –(ii) ce dificultăţi ar întâmpina (ar produce) o asemenea soluţie? –(iii) poţi să-mi araţi mediul în care ar fi folosită soluţia? –(iv) există anumite aspecte particulare privind performanţele sau restricţiile care ar putea afecta modul de abordare a rezolvării? – al treilea grup - metaîntrebări se referă la beneficiile întâlnirii client-analist: –(i) sunteţi persoana potrivită sa răspundeţi la aceste întrebări? –(ii) răspunsurile dumneavoastră sunt oficiale? –(iii) întrebările mele au fost pertinente faţă de dificultăţile care le aveţi? –(iv) am pus prea multe întrebări? –(v) mai aveţi pe cineva aici care mi-ar putea da informaţie suplimentară? –(vi) mai e cineva de cine ar trebui să vă întreb? 32 Tehnici de comunicare (cont) (3) tehnica FAST - Facilitated Application Specification Techniques, Zahniser, 1990 •  abordare în echipă a colectării cerinţelor, din care fac parte analişti şi clienţi ce vor lucra împreună la – (1) identificarea problemelor de rezolvat – (2) propunerea elementelor soluţiei
  13. 13 08/01/14 – (3) negocierea diverselor alternative de rezolvare – (4) specificarea unui set preliminar de cerinţe. •  întâlnirea FAST – se desfăşoară pe teren neutru – regulile de pregătire şi de participare sunt stabilite în prealabil şi sunt aduse la cunoştinţa tuturor participanţilor – atmosferă degajată, constructivă – elemente • (i) o agenda de desfăşurare • (ii) un moderator (facilitator) poate fi client, dezvoltator sau cineva neutru • (iii) un mecanism de definire (foi de lucru, cartele, table, etc). – scenariu tipic - momente importante: • (a) întâlnirile iniţiale, • (b) pregătirea întâlnirii şi • (c) desfăşurarea propriu-zisă a acesteia. 33 Tehnici de comunicare (cont) (4) alte tehnici de comunicare şi colectare de informaţii •  chestionarele – folosite împreună cu interviurile (înainte de planificarea acestora) sau independent, fără a se recurge la interviuri – sunt utile atunci când intervievatul este prea departe – se combină de obicei cu discuţii prin telefon şi cu schimb de scrisori (mesaje) •  observaţia directă – are ca obiect sistemul existent, punând accentul pe • funcţionarea acestuia, • rolurile îndeplinite de diverşi actori în sistem, • punctele bune şi rele ale sale – are avantajul contactului direct cu realitatea •  tehnica eşantionării – se foloseşte când numărul de oameni care trebuie intervievaţi (chestionaţi, observaţi) este prea mare
  14. 08/01/14 1 – se selectează un eşantion, folosind metodele consacrate din statistică – trebuie acordată atenţie reprezentativităţii eşantionului 34 Domeniul informaţiei Domeniul informaţiei - puncte de vedere – (a) fluxul informaţional – (b) conţinutul informaţiei – (c) structura informaţiei Fluxul informaţional caracterizează • circulaţia informaţiei în sistem • maniera în care se modifică datele • controlul la fiecare mutare a lor în sistem: 35 Domeniul informaţiei Conţinutul informaţiei – se referă la semantica informaţiei, grupând-o în tipuri de entităţi – este definit de datele individuale şi elementele de control care formează împreună un element mai mare (complex) de informaţie - entitate sau tip de entitate 36 Domeniul informaţiei (cont) Structura informaţiei – defineşte organizarea internă a elementelor de date (atribute) şi de control dintr-un tip de entitate – structura ilustrează • (i) legăturile unui entati cu alte entitati, • (ii) câte structuri diferite există (toată informaţia este conţinută într-o singură structură sau există structuri distincte? Termenul de structură a datelor (structură de date) este folosit la proiectare şi implementare.
  15. 08/01/14 2 1 Proiectarea logica a datelor 2 Cuprins •  Modelul entitate – relatie, •  Modelarea conceptuala a datelor; •  Modele logice de date; •  Caracteristicile unui model de date corect 3 Paşi în modelarea datelor •  Modelarea datelor - puncte de vedere (a) aria de cuprindere a modelului • model de date al organizaţiei • model de date al unei arii de activitate a organizaţiei • model de date al unei aplicaţii (b) nivelul de abstractizare a modelului • model conceptual de date: foloseşte numai elemente din domeniul problemei • model logic de date: foloseşte şi elemente din domeniul soluţiei • model fizic de date 4 Paşi în modelarea datelor Modelarea datelor - puncte de vedere (c) etapa din ciclul de dezvoltare în care se elaborează modelul • ingineria de sistem- modele conceptuale –modelul de date al organizaţiei –modelul de date al ariei de activitate • analiză - modele conceptuale –modelul de date al contextului aplicaţiei –modelul conceptual de date al aplicaţiei • proiectare –logică - modelul logic de date al aplicaţiei
  16. 3 08/01/14 – fizică - modelul fizic de date al aplicaţiei 5 Tipuri de modele •  Dupa modul de organizare – modelul entitate - relatie – modelul orientat obiect 6 Modelul entitate-relaţie •  Construcţii folosite (concepte, termeni) –  entitate: persoane, locuri, obiecte, evenimente, concepte din mediul utilizatorului pentru care organizaţia doreşte să deţină date – atribut: • proprietate sau caracteristică a unui tip de entitate care prezintă interes • toate instantele unui tip de entitate E au aceleaşi atribute • valorile unui atribut diferă de la o instanţă a lui E la alta –  relatie •  Se reprezintă grafic prin diagrama entitate-relaţie 7 Atribute •  Clasificarea atributelor unui tip de entitate – atribut cheie: identifică o instanţă a entităţii – atribut non-cheie •  Tipuri de atribute cheie – cheie candidat: identifică unic o instanţă a entităţii – cheie primară: cheia candidat ca identificator pentru tipul de entitate – cheie surogat: atribut artificial pe post de cheie primară •  Stabilirea cheii primare CP a unei entităţi E – (i) cheia candidat a lui E care nu-şi modifică valoarea pe toată durata de viaţă a oricărei instanţe – (ii) pentru orice instanţă a lui E, atributele lui CP au valori valide şi non-nule – (iii) dacă CP are prea multe atribute, se înlocuieşte cu o cheie surogat
  17. 4 08/01/14 8 Relaţie •  Gradul unei relaţii – numărul de tipuri de entităţi care participă în relaţie – clasificarea relaţiilor după gradul lor: • unare sau recursive (de gradul 1) • binare (de gradul 2) • ternare (de gradul 3) •  Cardinalitatea unei relaţii – de la entitatea A la entitatea B: numărul de instanţe ale entităţii B asociate unei instanţe a entităţii A – de la entitatea B la entitatea A: numărul de instanţe ale entităţii A asociate unei instanţe a entităţii B 9 Model conceptual de date •  Identificarea şi definirea elementelor din domeniul problemei pentru care trebuie memorate date •  Identificarea şi definirea relaţiilor dintre acestea 10 Modelarea conceptuală a datelor folosind modelul E-R (1) modelarea entităţilor şi relaţiilor – entitate părinte – entitate dependentă (slabă) (2) modelarea atributelor cu valori multiple – se transformă în entităţi noi (3) modelarea datelor dependente de timp – atribute ce se modifică în timp 11 Modelarea logica a datelor Are ca scop producerea unui model adecvat pentru implementare, bazat pe modelul conceptual, insa: •  mai detaliat •  mai precis •  mai bine structurat •  fara entitati redundante
  18. 08/01/14 Clase de modele logice de date12 5 •  ad-hoc – fiecare aplicaţie are propriul său model de date •  ierarhic – succesul sistemului soft pentru misiunile APOLLO (IBM + NASA) – structura arborescenta •  reţea – generalizare a modelului ierarhic – CODASYL - standard neacceptat •  relaţional – algebra relaţiilor – SQL - nivel înalt, neprocedural •  orientat pe obiecte – anii 90 – aplicaţii specifice CAD, GIS 13 Modelul relaţional Caracteristici – reprezintă datele în tabele (relaţii) bidimensionale –  corespunde entităţii din modelul E-R –coloane - atribute – linii - instanţe –celule - intersecţii de linii şi coloane – defineşte • structura datelor - modul de organizare a datelor în tabele • operaţiile de manipulare a datelor - ce operaţii se folosesc pentru a • integritatea datelor - precizează regulile specifice aplicaţiei care întreţin consistenţa datelor, la operaţiile de manipulare
  19. 08/01/14 6 14 Modelul relaţional (cont) . Proprietăţile relaţiilor – (1) atomicitatea celulelor: atributul aferent coloanei • nu poate avea mai multe valori • nu poate fi grup repetitiv (valoarea sa nu se descompune) – (2) omogenitatea coloanelor • o coloană corespunde unui atribut – (3) unicitatea liniilor • nu există două linii identice • este asigurată de un subset de coloane, care formează cheia primară – toate coloanele ce formează cheia primară trebuie să aibă valori valide – (4) ordinea nedefinită a coloanelor • fiecare coloană este identificată prin numele său, nu prin poziţia din relaţie – (5) ordinea nedefinită a liniilor • fiecare linie este identificată prin cheia primară, nu prin poziţia sa în tabel 15 Relaţii bine structurate şi slab structurate Definiţii informale – relaţie bine structurată • conţine o cantitate minimă de redundanţă • inserarea, modificarea şi ştergerea de linii în/din relaţie se fac fără erori şi fără a produce inconsistenţă – relaţie slab structurată • nu este bine structurată 16 Relaţii bine structurate şi slab structurate Definiţii – inconsistenţă a unei relaţii: linii diferite ce corespund aceluiaşi student au valori diferite pentru atributele cu valoare unică
  20. 08/01/14 1 – operaţie de actualizare a unei relaţii: inserarea unei linii noi, modificarea unei linii existente şi ştergerea unei linii existente – anomalie: eroare şi/sau inconsistenţă produsă prin operaţiile de actualizare a unei relaţii 17 Tipuri de anomalii •  de inserare • regulă de inserare: toate coloanele care formează cheia primară trebuie completate •  de ştergere • regulă de ştergere: ştergerea unei linii dintr-o relaţie nu trebuie să producă pierdere colaterală de informaţie •  de modificare • regulă de conservare a consistenţei: atributele ce depind de o parte a cheii primare (subcheie) trebuie să aibă aceeaşi valoare în toate liniile cu subcheia respectivă 18 Ciclul de viață al bazelor de date rela ionaleț 1 Proiectarea fizica a datelor 2 Proiectarea fizica a datelor Obiectiv implementarea bazelor de date sub forma unei mulţimi de înregistrări, fişiere, indecşi şi alte structuri de date care: – asigure cerinţele de performanţă dorite – să conserve integritatea BD – să asigure securitatea şi recuperabilitatea informaţiei Elementele cunoscute (datele de intrare) sunt: – (a) structura logică a datelor • exprimată prin modelul logic de date – (b) cerinţele de prelucrare ale utilizatorilor
  21. 08/01/14 2 – (c) caracteristicile hard şi soft ale mediului 3 Cerinţele de prelucrare ale utilizatorilor – identificate la analiza cerinţelor – se referă la • (i) dimensiunea şi frecvenţa de utilizare a BD • (ii) timpi de răspuns • (iii) securitate • (iv) salvări • (v) recuperare din situaţii de eroare • (vi) arhivare Caracteristicile hard şi soft ale mediului în care se face implementarea • maşina fizică • sistemul de operare • SGBD-ul ales • softul de comunicaţie 4 Componentele proiectului fizic de BD
  22. 3 08/01/14 – (1) analiza volumului şi utilizării datelor – (2) strategia de distribuire a datelor – (3) organizarea fişierelor – (4) indexarea – (5) constrângerile de integritate 5 Analiza volumului şi utilizării datelor Scop: estimarea – dimensiunii (volumului) datelor – sabloanelor de utilizare a bazei de date Estimările de volum servesc la – selectarea perifericelor de stocare – estimarea costurilor de stocare Şabloanele de utilizare servesc la – stabilirea organizării fişierelor şi a metodelor de acces – planificarea folosirii indecşilor – planificarea strategiei de distribuire a datelor 6 Analiza volumului şi utilizării datelor (cont)  Analiza volumului  Estimările de volum se obţin prin consultarea utilizatorilor  Analiza utilizării datelor Sarcini: – (a) identificarea tranzacţiilor şi prelucrărilor majore asupra bazelor de date – (b) elaborarea hărţii tranzacţiei şi a formularului de încărcare pentru fiecare tranzacţie Paşi – identificarea tranzacţiilor – pentru fiecare tranzacţie şi proces se determină • modalităţile de accesare a BD • frecvenţa de utilizare a tranzacţiei/procesului • se elaborează formularul de analiză a tranzacţiei
  23. 4 08/01/14 7 Strategia de distribuire a datelor Strategii de distribuire a datelor – după strategia de distribuire • centralizată • partiţionată • replicată • hibridă • client-server – BD memorată pe mai multe calculatoare • BD distribuită: BD logică este distribuită fizic pe mai multe calculatoare, conectate în reţea • BD descentralizată: BD logică este distribuită fizic pe mai multe calculatoare neconectate între ele Strategia centralizată – BD pe un singur calculator – avantaje • simplificarea implementării – dezavantaje • date inaccesibile utilizatorilor aflaţi la distanţă • costuri de comunicare mari • aplicaţiile client nu funcţionează când BD nu este operaţională 8 Strategia de distribuire a datelor (cont) Strategia partiţionată – BD este împărţită în partiţii disjuncte numite fragmente – fiecare fragment este memorat într-o locaţie (calculator) – avantaje • datele sunt mai aproape de utilizatorii locali –criteriul de partiţionare – dezavantaje
  24. 5 08/01/14 • costuri de comunicare mari pentru datele din altă locaţie Strategia cu replicare – o copie completă a BD (numită replică) este memorată în fiecare locaţie (calculator) – avantaje • minimizarea timpului de accesare – dezavantaje • problema sincronizării replicilor – o actualizare dintr-o locaţie trebuie operată în toate replicile) 9 Strategia de distribuire a datelor (cont) Strategia hibridă – combinaţie între strategia partiţionată şi cea cu replicare – BD este împărţită îm • fragmente critice: se memorează în mai multe locaţii • fragmente non-critice: se memorează într-o singură locaţie – avantaje • problema sincronizării are complexitate mai mică – dezavantaje • sincronizarea fragmentelor critice Strategia client-server – reţea de calculatoare: maşini • servere – de fişiere (BD): servicii de accesare a datelor – de aplicaţii: logica aplicaţiei • clienţi: prezentarea datelor, interacţiunea cu utilizatorul – avantaje • maşini specializate • separarea funcţionalităţii • întreţinere uşoară – dezavantaje
  25. 6 08/01/14 • comunicarea între maşini - costuri • încărcarea maşinilor 10 Organizarea fişierelor Definitie: Tehnică de aranjare fizică a înregistrărilor unui fişier aflat în memoria externă Organizarea secvenţială – înregistrările din fişier se memorează în ordinea valorii cheii primare Organizarea indexată – înregistrările din fişier se memorează secvenţial sau nesecvenţial – fiecare înregistrare are o poziţie bine determinată în fişier, –sistemul de gestiune a fişierelor dispune de o instrucţiune de poziţionare, – la deschiderea fişierului f se creează un index care permite localizarea unei înregistrări după valoarea cheii primare – indexul este o tabelă sau o altă structură de date care este folosită pentru determinarea locaţiei (înregistrării) unei linii din fişier (tabela de înregistrări) care satisface anumite condiţii 11 Organizare indexată •  secvenţial indexată (index-sequential) – înregistrările sunt memorate în fişier secvenţial, în ordinea valorii cheii primare – indexul se numeşte index simplu sau index bloc •  nesecvenţial indexată (index-nonsequential) – fişierul se mai numeşte fişier master (master file) – înregistrările din fişierul master nu sunt memorate în ordinea valorii cheii primare – indexul se numeşte index inversat şi este o tabelă ordonată de perechi de forma (val_cheie, recn), criteriul de ordonare fiind val_cheie •  selectivă (selective, random)
  26. 7 08/01/14 – adresa fiecărei înregistrări din fişierul master se determină pe baza unui algoritm de dispersare (hashing), care foloseşte o funcţie de dispersare (hashing function) – funcţia de dispersare converteşte valoarea cheii la o poziţie de înregistrare din fişierul master 12 Index •  Indexare după cheia primară – tabela T va conţine valori distincte pentru fiecare val_cheie •  Indexare după atributele non-cheie – tabela T conţine perechi de forma (valoare_atribut, recn) – tabela T este ordonată după valoare_atribut •  Organizarea tabelei de index – structură liniară şi ordonată după val_cheie:listă liniară ordonată, tablou ordonat – structură arborescentă, B-arbore 13 Criterii folosite la analiza şi stabilirea modului de organizare a unui fişier (i) accesul rapid în regăsirea informaţiei din fişier (ii) puterea sporită de prelucrare a tranzacţiilor (iii) folosirea eficientă a suportului (iv) protecţia la incidente sau pierderi de date (v) minimizarea nevoii de reorganizare (vi) adaptarea la creşterea volumului fişierului (vii) protecţia datelor din fişier faţă de accesul neautorizat 14 Cazurile in care se recomanda creerea unui fisier index •  Este cheie primara, cheie straina sau cheie surogat •  Coloana respectiva este utilizata frecvent in interogari •  Coloana contine un interval mare de valori •  Coloana contine un numar mare de valori nule
  27. 8 08/01/14 15 Reguli in definirea unui tabel •  Numele tabelei si numele coloanelor trebuie sa inceapa cu litera si sa aiba lungimea maxima de 30 •  Numele poate contine numai A-Z, a-z, 0-9,_. •  Numele tabelului trebuie sa fie unui in cadrul bazei de date pe care o creati •  Numele nu poate fi un cuvant rezervat •  Nu se face deosebire intre literele mici si mari 16 Componentele unui table 17 Tipuri de date intr-o baza de date •  Numeric - pentru numere cu virgula fixa si mobila •  Caracter - pentru siruri de caracter de lungime fixa minim 1 maxim 255 caractere intr-un sir •  Logic ( Boolean )- are valoarea True sau False •  Date - se foloseste pentru memorarea datelor caracteristice •  Time ( DateTime) - se foloseste pentru stocarea datelor de formatul timp respectiv format combinat data timp •  Blob (Memo)- se foloseste pentru stocarea sirurilor de caractere de lungime variabila, posibil mai mari de 255 sau pentru stocarea de imagini 18 Limbajul SQL  A fost produs de catre ANSI in 1986 ca limbaj standard de manipulare a datelor.  Din 1987 nici un SGBD relational nu poate fi comercializat fara o interfata SQL  1992 revizuirea limbajului SQL de catre ANSI  SGBD-urile actuale inglobeaza limbajul SQL(92), acesta fiind imbogatit cu functii da catre unii producatori 19 Crearea unui tabel CREATE TABLE numele tabelului [( nume_coloana tip de data (lungime), nume_coloana tip de data (lungime)
  28. 08/01/14 1 ….. nume_coloana tip de data (lungime))] 20 Crearea unui tabel index CREATEA INDEX numeindex ON nume_tabela ( coloana[, coloana])
  29. 08/01/14 2 1 Operatii asupra bazelor de date cu ajutorul limbajul SQL 2 Algebra relationala ! A fost introdusa de Codd ( ‘anii 70) ca o multime de operatii formale actionand asupra unor relatii si producand ca rezultat alte relatii. ! Operatori algebrei relationale: ◦ SELECT ◦ UNION ◦ PROJECT ◦ INTERSEC ◦ DIVISION ◦ JOIN 3 Limbajul SQL ! A fost produs de catre ANSI in 1986 ca limbaj standard de manipulare a datelor. ! Din 1987 nici un SGBD relational nu poate fi comercializat fara o interfata SQL ! 1992 revizuirea limbajului SQL de catre ANSI ! SGBD-urile actuale inglobeaza limbajul SQL(92), acesta fiind imbogatit cu functii da catre unii producatori 4 Crearea unui tabel
  30. 08/01/14 3 CREATE TABLE numele_tabelului [( nume_camp tip_de_data (lungime), nume_ camp tip_de_data (lungime), ….. nume_ camp tip_de_data (lungime)] 5 Crearea unui tabel index CREATEA INDEX numeindex ON nume_tabela ( camp[, camp]) 6 Manipularea unei baze de date
  31. 4 08/01/14 ! INSERT ! UPDATE ! DELETE 7 Inserarea unei inregistrari intr-o tabela INSERT INTO numetabela [(numecamp[,numecamp])] VALUES (valoare[, valoare]) Inserarea unei multimi de inregistrari dintr-o tabela in alta INSERT INTO numetabela [(numecamp[,numecamp])] SELECT [(numecamp[,numecamp])] FROM numetabela 8 Modificarea unei inregistrari dintr-o tabela sau a unei multimi de inregistrari UPDATE numetabela SET numecamp= valoare[,numecamp = valoare] [WHERE conditie] Se modifica doar valorile aferente atributelor numecamp din inregistrarile care indeplinesc clauza WHERE 9 Stergerea unei inregistrari dintr-o tabela sau a unei multimi de inregistrari DELETE FROM numetabela [WHERE conditie] Se sterge doar inregistrarile care indeplinesc clauza WHERE 10 Interogarea unei tabele SELECT [DISTINCT] {*|[numecamp, [numecamp]} FROM numetabela[, numetabela] [WHERE conditie] [GROUP BY numecamp] [ORDER BY numecamp] 11 Interogare simpla SELECT [DISTINCT] {*|[numecamp, [numecamp]}
  32. 5 08/01/14 FROM numetabela SELECT - identifica campurile de selectie FROM - identifica tabela (sau tabelele) DISTINCT - elimina duplicatele 12 Selectie conform unei conditii SELECT [DISTINCT] {*|[numecamp, [numecamp]} FROM numetabela [WHERE conditie] [ORDER BY numecamp] Conditia - este o expresie booleana care poate avea urmatorii operanzi: <,>,=,<>, AND, OR, NOT, IN ORDER BY- specifica ordinea tabelului rezultat 13 Functii SQL 1 ! Tipul caracter ◦ LOWER ◦ UPPER ◦ INITCAP ◦ CONCAT ( || ) ◦ SUBSTR ◦ INSTR ◦ LPAD 2 ! Numerice ◦ ROUND ◦ TRUNC ◦ MOD ! Pentru tipul data ◦ SYSDATE ◦ ADD_MONTH ◦ NEXT_DAY ◦ LAST_DAY
  33. 6 08/01/14 14 Interogarea mai multor tabele !Equijoin WHERE tabel1.camp=tabel2.camp Tabelul rezultat va contine inregistrari din ambele pentru care atributele de join au valori egale ! Outerjoin WHERE tabel1.camp(+)=tabel2.camp sau WHERE tabel1.camp=tabel2.camp(+) Tabelul rezultat va contine inregistrari din tabela anexata cu operatorul (+), care nu apar in urma unei operatii equijoin 15 Interogarea mai multor tabele(cont) !Self join Se foloseste in cazul in care avem nevoie de join al unei tabele cu ea insasi. !Nonjoin Fiecare inregistrare dintr-un tabel cu fiecare inregistrare din celalalt tabel ( produs cartezian) 16 Functii de grup ! AVG !COUNT !MAX !MIN !SUM
  34. 7 08/01/14 17 SELECT imbricat SELECT [DISTINCT] {*|[numecamp, [numecamp]} FROM numetabela WHERE expresie operator ( SELECT [DISTINCT] {*|[numecamp, [numecamp]} FROM numetabela) 18 SELECT imbricat(cont) Obs: !  O subinterogarea trebuie inclusa intre paranteze !  Selectul imbricat este obligatoriu operand de dreapta in conditia WHERE !  nu se poate folosi clauza ORDER BY intr-un select imbricat !  Exista subinterogari simple ( cu o singura inregistrare rezultata) sau subinterogari. Operatorii posibili sunt: ◦ simple: =,<,>, <> ◦ multiple: ANY, IN, ALL =ANY <=> IN
Anúncio