Baze de date.docx
-
Author
diana-hang -
Category
Documents
-
view
239 -
download
1
Embed Size (px)
Transcript of Baze de date.docx

INTRODUCEEA IN BAZE DE DATE 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.
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)
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.
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 specific
Exemple de SGBD: - xBase (Dbase, Fox Pro, Visual Fox)
-Access
-Oracle
- Sybase
-Informix
CLASE DE PROGRAE
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
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
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.).
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)
sisteme de automatizare a biroului (office automation systems)
sisteme departamentale (departamental systems)
sisteme expert (expert systems)

sisteme informatice pentru conducere (executive information systems, EIS)
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 integrate
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
Sisteme de sprijin pentru decizii
derivate din sistemele informatice pentru management
oferă analize variate ale aceloraşi date, fără efort de 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
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.
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 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.
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.
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
grafice
Ciclu de viaţă a unu program:
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
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
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

MODELUL CASCADA:
Analiza cerintelor
verificare
specificatii
proiectare
implementare
testare
integrare
testare
mentenanta
Actualizare cerinte
verificare
verificare
verificare
MODELUL V:
Definirea cerintelor
Proiectarea functionala
Proiectarea tehnica
Specificare componente
Test de acceptare
Testarea sistemului
Testarea pentru integrare
Testarea componentelor
Generare cod

PROTOTIPIZAREA:
Colectarea cerinţelor şi rafinarea lor
Proiectare rapidă
Construirea prototipului
Evaluarea prototipului de către client
Rafinarea prototipului
Realizarea
produsului
Start
Stop
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
Dezvoltarea iterativă şi incrementală (modelul spirală, Boehm)

Planificare Analiza riscurilor
InginerieEvaluarea clientului
Colectarea cerinţeloriniţiale şi planificareaproiectului
Planificare bazatăpe comentariileclientului
Evaluarea clientului
Analiză de riscbazată pe cerinţeleiniţiale
Analiză de riscbazată pe reacţiaclientului
Decizie go, no-go
Spre un sistemcomplet
Prototipul iniţialUrmătorul prototip
Produsul final
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
Analiza Etape (sarcini)
(1) recunoaşterea problemei
(2) evaluarea şi sinteza
(3) modelarea
(4) specificarea

(5) revizuirea
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
Tehnici de comunicare
(1) interviul
(2) modelul propus de Weinberg
(3) tehnica FAST
(4) alte tehnici de comunicare şi colectare de informaţii
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
(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?
(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?
DOMENIUL INFORMATIEI
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:
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
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.
PROIECTAREA LOGICA A DATELOR 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
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
fizică - modelul fizic de date al aplicaţiei
TIPURI DE MODELE:
Dupa modul de organizare
modelul entitate - relatie
modelul orientat obiect
MODELUL ENTITATE-RELATIE
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
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
REALTIE
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
MODEL CONCEPTUAL DE DATE
Identificarea şi definirea elementelor din domeniul problemei pentru care trebuie memorate date
Identificarea şi definirea relaţiilor dintre acestea
Identificarea şi definirea elementelor din domeniul problemei pentru care trebuie memorate date

Identificarea şi definirea relaţiilor dintre acestea
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
Clase de modele logice de date
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
Modelul relational 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
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 table
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ă
Definiţii
inconsistenţă a unei relaţii: linii diferite ce corespund aceluiaşi student au valori diferite pentru atributele cu valoare unică
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
Tipri 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 respective
Ciclul de viață al bazelor de date relaționale
Stabilirea cerintelor informationaleDeterminarea
cerintelor
Modelare conceptuala
Transformarea in tabele
Normalizare
Integrarea vederilor
mentenanta
implementare
denormalizare
Selectare indecsi
Proiectarea logica
Proiectarea fizica
vedere unica
vedere multipla
implementare
restrictii speciale
altfel
renuntare
altfe
l

PROIECTAREA FIZICA A DATELOR Obiectivimplementarea 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
(c) caracteristicile hard şi soft ale mediului
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
Componentele proiectului fizic de BD

(1) analiza volumului şi utilizării datelor
(2) strategia de distribuire a datelor
(3) organizarea fişierelor
(4) indexarea
(5) constrângerile de integritate
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
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
Pasi
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

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ă
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
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)
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
comunicarea între maşini - costuri
încărcarea maşinilor

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
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)
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
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
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
Cazurile in care se recomanda creerea unui fisier indexEste 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
Reguli in definirea unui table: 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

Componentele unui table
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
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
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
Crearea unui table : CREATE TABLE numele tabelului
[( nume_coloana tip de data (lungime),
nume_coloana tip de data (lungime),
…..
nume_coloana tip de data (lungime))]

Crearea unui tabel index:CREATEA INDEX numeindex ON
nume_tabela ( coloana[, coloana])
Algebra relationalaA 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
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
Manipularea unei baze de date

INSERT
UPDATE
DELETE
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
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
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
Interogarea unei tabele
SELECT [DISTINCT] {*|[numecamp, [numecamp]}
FROM numetabela[, numetabela]
[WHERE conditie]
[GROUP BY numecamp]
[ORDER BY numecamp]
Interogare simpla
SELECT [DISTINCT] {*|[numecamp, [numecamp]}

FROM numetabela
SELECT - identifica campurile de selectie
FROM - identifica tabela (sau tabelele)
DISTINCT - elimina duplicatele
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
Functii SQL:
Tipul character
LOWER
UPPER
INITCAP
CONCAT ( || )
SUBSTR
INSTR
LPAD
Numerice
ROUND
TRUNC
MOD
Pentru tipul data
SYSDATE

ADD_MONTH
NEXT_DAY
LAST_DAY
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
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)
Functii de grup: AVG
COUNT
MAX
MIN
SUM

Clauza Group By din forma generala SELECT se foloseste in acest caz ( nu este obligatorie)
SELECT imbricat
SELECT [DISTINCT] {*|[numecamp, [numecamp]}
FROM numetabela
WHERE expresie operator
( SELECT [DISTINCT] {*|[numecamp, [numecamp]}
FROM numetabela)
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