SlideShare uma empresa Scribd logo
1 de 34
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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ă
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
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
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
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
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
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)
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
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)
08/01/14
1
…..
nume_coloana tip de data (lungime))]
20 Crearea unui tabel index
CREATEA INDEX numeindex ON
nume_tabela ( coloana[, coloana])
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
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
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]}
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
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
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

Mais conteúdo relacionado

Destaque

Planificare tic st-naturii- 11
Planificare tic st-naturii- 11Planificare tic st-naturii- 11
Planificare tic st-naturii- 11profadeinfo41
 
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]Claudia
 
Instruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1aInstruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1aCella Buciuman
 
Baze+de+date 1
Baze+de+date 1Baze+de+date 1
Baze+de+date 1Claudia
 
Initiere operare pc
Initiere operare pcInitiere operare pc
Initiere operare pcELENA NITA
 
baze-de-date-access-laborator-de-ioan-mocian
baze-de-date-access-laborator-de-ioan-mocianbaze-de-date-access-laborator-de-ioan-mocian
baze-de-date-access-laborator-de-ioan-mocianCristina Timofte
 
Modulul 4 ecdl
Modulul 4 ecdlModulul 4 ecdl
Modulul 4 ecdlELENA NITA
 
Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...
Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...
Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...George Brebenel
 
Ghid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetuluiGhid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetuluiEla Iliesi
 
Modulul 7 web
Modulul 7   webModulul 7   web
Modulul 7 web08alesa
 
Modulul 4 exel
Modulul 4   exelModulul 4   exel
Modulul 4 exel08alesa
 

Destaque (15)

Planificare tic st-naturii- 11
Planificare tic st-naturii- 11Planificare tic st-naturii- 11
Planificare tic st-naturii- 11
 
Lectie excel
Lectie excelLectie excel
Lectie excel
 
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
 
Instruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1aInstruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1a
 
Baze+de+date 1
Baze+de+date 1Baze+de+date 1
Baze+de+date 1
 
Carte C 2003
Carte C 2003Carte C 2003
Carte C 2003
 
Manual microsoft excel
Manual microsoft excelManual microsoft excel
Manual microsoft excel
 
Initiere operare pc
Initiere operare pcInitiere operare pc
Initiere operare pc
 
baze-de-date-access-laborator-de-ioan-mocian
baze-de-date-access-laborator-de-ioan-mocianbaze-de-date-access-laborator-de-ioan-mocian
baze-de-date-access-laborator-de-ioan-mocian
 
Modulul 4 ecdl
Modulul 4 ecdlModulul 4 ecdl
Modulul 4 ecdl
 
Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...
Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...
Suport cls10-tic-cap01-01-baze de date în microsoft access 2007 - operatii el...
 
Windows Word Excel
Windows Word ExcelWindows Word Excel
Windows Word Excel
 
Ghid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetuluiGhid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetului
 
Modulul 7 web
Modulul 7   webModulul 7   web
Modulul 7 web
 
Modulul 4 exel
Modulul 4   exelModulul 4   exel
Modulul 4 exel
 

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

Informatica aplicata
Informatica aplicataInformatica aplicata
Informatica aplicataElena Negotei
 
Curs 1 concepte de baza pachete software
Curs 1  concepte de baza pachete softwareCurs 1  concepte de baza pachete software
Curs 1 concepte de baza pachete softwareJora18
 
1 Sistem Hardware
1 Sistem Hardware1 Sistem Hardware
1 Sistem Hardwareclcziprok
 
Modulul 1 it
Modulul 1   itModulul 1   it
Modulul 1 it08alesa
 
2 Software Retele
2 Software Retele2 Software Retele
2 Software Reteleclcziprok
 
Sisteme operare-cl5
Sisteme operare-cl5Sisteme operare-cl5
Sisteme operare-cl5Stefi Kovacs
 
Sisteme de Operare: Introducere
Sisteme de Operare: IntroducereSisteme de Operare: Introducere
Sisteme de Operare: IntroducereAlexandru Radovici
 
Spearhead_prezentare companie
Spearhead_prezentare companieSpearhead_prezentare companie
Spearhead_prezentare companieMarius Pana
 
Initiere operare validare_introducere_date_total
Initiere operare validare_introducere_date_totalInitiere operare validare_introducere_date_total
Initiere operare validare_introducere_date_totalshokima
 
Simatic step 7 v5 prog
Simatic step 7 v5 progSimatic step 7 v5 prog
Simatic step 7 v5 progMARIUS scutaru
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdlELENA NITA
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdlELENA NITA
 
Web Applications - Security and Scalability Checklist - DefCamp 2012
Web Applications - Security and Scalability Checklist - DefCamp 2012Web Applications - Security and Scalability Checklist - DefCamp 2012
Web Applications - Security and Scalability Checklist - DefCamp 2012DefCamp
 
Cum ne ajută "norii" să optimizăm costurile?
Cum ne ajută "norii" să optimizăm costurile?Cum ne ajută "norii" să optimizăm costurile?
Cum ne ajută "norii" să optimizăm costurile?Andrei Dumitrascu
 
Documenta DMS (www.documenta.ro)
Documenta DMS (www.documenta.ro)Documenta DMS (www.documenta.ro)
Documenta DMS (www.documenta.ro)intrasoft_ro
 

Semelhante a 'Documents.tips curs baze-de-date-5642553eddb8c.doc' (20)

Informatica aplicata
Informatica aplicataInformatica aplicata
Informatica aplicata
 
Curs 1 concepte de baza pachete software
Curs 1  concepte de baza pachete softwareCurs 1  concepte de baza pachete software
Curs 1 concepte de baza pachete software
 
1 Sistem Hardware
1 Sistem Hardware1 Sistem Hardware
1 Sistem Hardware
 
Modulul 1 it
Modulul 1   itModulul 1   it
Modulul 1 it
 
2 Software Retele
2 Software Retele2 Software Retele
2 Software Retele
 
Curs2
Curs2Curs2
Curs2
 
Sisteme operare-cl5
Sisteme operare-cl5Sisteme operare-cl5
Sisteme operare-cl5
 
Sisteme de Operare: Introducere
Sisteme de Operare: IntroducereSisteme de Operare: Introducere
Sisteme de Operare: Introducere
 
Spearhead_prezentare companie
Spearhead_prezentare companieSpearhead_prezentare companie
Spearhead_prezentare companie
 
Initiere operare validare_introducere_date_total
Initiere operare validare_introducere_date_totalInitiere operare validare_introducere_date_total
Initiere operare validare_introducere_date_total
 
Simatic step 7 v5 prog
Simatic step 7 v5 progSimatic step 7 v5 prog
Simatic step 7 v5 prog
 
Simatic step 7 v5
Simatic step 7 v5Simatic step 7 v5
Simatic step 7 v5
 
Unit inv a 9 a tic
Unit inv a 9 a ticUnit inv a 9 a tic
Unit inv a 9 a tic
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdl
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdl
 
Cloudforum
CloudforumCloudforum
Cloudforum
 
Web Applications - Security and Scalability Checklist - DefCamp 2012
Web Applications - Security and Scalability Checklist - DefCamp 2012Web Applications - Security and Scalability Checklist - DefCamp 2012
Web Applications - Security and Scalability Checklist - DefCamp 2012
 
Cum ne ajută "norii" să optimizăm costurile?
Cum ne ajută "norii" să optimizăm costurile?Cum ne ajută "norii" să optimizăm costurile?
Cum ne ajută "norii" să optimizăm costurile?
 
Documenta DMS (www.documenta.ro)
Documenta DMS (www.documenta.ro)Documenta DMS (www.documenta.ro)
Documenta DMS (www.documenta.ro)
 
Cap01
Cap01Cap01
Cap01
 

'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