Sunteți pe pagina 1din 11

Baza de date (BD/DB)

Reprezint o colecie de date organizate pentru a facilita cutarea i regsirea rapid cu


ajutorul calculatorului.
Este un ansamblu structurat de date, nregistrat pe suporturi accesibile calculatorului pentru
a satisface simultan cerinele mai multor utilizatori ntr-un mod selectiv i n timp util.
Este structurat astfel nct s faciliteze diverse operaii cu datele:

stocarea, introducerea (insert)

regsirea, interogarea dup diverse criterii (query)

modificarea, actualizarea (update)

tergerea (delete)

Avantaje ale bazelor de date


Controlul centralizat al datelor
Vitez mare de regsire i actualizare a informaiilor
Sunt compacte comparativ cu documentele scrise
Flexibilitate n ceea ce privete modificarea structurii
Redundan sczut partajarea datelor
Meninerea integritii datelor securitate, politici de acces
Independena datelor de suportul hardware
Clasificarea bazelor de date
Dup modelul de date

baze de date relaionale

baze de date obiectuale

baze de date obiect-relaional

baze de date ierarhice

baze de date reea

Dup numrul de utilizatori

baze de date monoutilizator

baze de date multiutilizator

Dup numrul de sisteme de calcul unde este stocat

baze de date centralizate

baze de date distribuite

Baza de date relaionale


Se bazeaz pe noiunea de relaie matematic
Are o reprezentare uor de neles, sub forma unui tabel bidimensional ce conine informaii
despre o mulime de entiti

fiecare linie din tabel reprezint o entitate

fiecare coloan reprezint un atribut al entitii

Relaiile ntre entiti se transpun n asocieri ntre tabele prin intermediul egalitilor unor
atribute comune.
Pentru interaciunea cu bazele de date relaionale se utilizeaz un limbaj de manipulare a
datelor (LMD):

de ex. SQL (Structured Query Language).

Baza de date nregistrri, cmpuri


O baz de date reprezint o serie de nregistrri
nregistrare

o entitate specific, component elementar a unei baze de date

cuprinde cmpuri sau elemente de date

pot conine informaii numerice, text sau reprezentri grafice

Cmpuri

descriu principalele atribute ale unei entiti

Organizarea datelor ntr-o baz de date


Structura bazei de date poate fi reprezentat pe niveluri
tipul datelor
legturi ntre date
restricii aplicate datelor

Sistem de gestiune a bazelor de date (SGBD/DBMS)


Este un ansmablu de programe care permit utilizatorului s interacioneze cu o baz de date.
Diveri utilizatori sau categorii de utilizatori au asociate drepturi de acces specifice:

dreptul de a efectua doar operaiile specifice activitii sale i doar pe acea poriune a
bazei de date care ste necesar pentru aceasta

Exemple:

Oracle, MySQL, Microsoft SQL, Microsoft Access, Visual FoxPro, SQLite, etc.

Funciile unui SGBD


Descrierea datelor
Utilizarea datelor
Integritatea datelor
Confidenialitatea datelor
Accesul concurent la date
Sigurana n funcionare

Limbajul SQL
Este unul din cele mai puternice limbaje structurate pentru interogarea bazelor de date relaionale.
Face parte din categoria limbajelor de aplicaii

Este un limbaj neprocedural i declarativ:


descrie ce date vrea s obin
nu stabilete modalitile prin care se ajunge la datele respective
Instruciunile SQL
Instruciuni de definire a datelor
permit descrierea structurii bazei de date
Instruciuni de manipulare a datelor
adugare, tergere, modificare date
Instruciuni de selecie a datelor
permit consultarea bazei de date
Instruciuni de procesare a datelor
Instruciuni de control al cursorului
Instruciuni privind controlul accesului la date
Instruciuni de definire a datelor
Creare baz de date

CREATE DATABASE nume_db


tergere baz de date
DROP DATABASE nume_db
Creare tabel
CREATE TABLE nume_tabel
(camp1 tip_data1 [NOT NULL],
camp2 tip_data2 [NOT NULL], ...)
Modificare tabel
ALTER TABLE nume_tabel ADD nume_camp tip_data
tergere tabel

DROP TABLE nume_tabel


Instruciuni de selecie a datelor (1)
Cereri de interogare simpl

SELECT [domeniu] lista_selectieFROM nume_tabel1, nume_tabel2, [WHERE


criteriu_selectie][ORDER BY campuri_criteriu [ASC|DESC]]
Cererideinterogarecomplexe
cereri agregat (grupri)
asocieri (JOIN)
combinrile (UNION)
Instruciuni de selecie a datelor (2)
Agregri
permit gruparea nregistrrilor care au cmpuri cu aceeai valoare
pot folosi una din urmtoarele funcii de grup: COUNT, SUM, AVG, MIN, MAX

SELECT [domeniu] functie_agregat(numa_camp) AS alias, [lista_selectie]FROM


nume_tabel1, nume_tabel2, GROUP BY camp_de_grupare[HAVING criteriu_de_grupare]
[ORDER BY campuri_criteriu [ASC|DESC]]
Instruciuni de selecie a datelor (3)
Asocierile(JOIN)
date din tabele diferite pot fi grupate prin producerea tuturor combinaiilor posibile
exist mai multe categorii de jonciuni
CROSS (ncruciat) rar folosit
Echivalent (cea mai folosit)
folosete clauza WHERE asociat cu egalitatea dorit
Neechivalent (rar folosit)
Folosete clauza WHERE cu orice alt operator de comparare diferit de cel de egalitate
Instruciuni de selecie a datelor (4)
Asocierile(JOIN)

dup modul de asociere a nregistrrilor din tabele, jonciunile pot fi:


interne INNER JOIN
externe
de stnga LEFT OUTER JOIN
de dreapta RIGHT OUTER JOIN
Instruciuni de selecie a datelor (5)
Combinrile(UNION)
permit afiarea rezultatelor mai multor interogri SELECT n acelai timp, cu o serie de restricii:
numrul de cmpuri din fiecare instruciune SELECT trebuie s fie acelai
secvena de nume din fiecare list decmpuri trebuie s corespund
se poate utiliza doar o singur dat clauza ORDER BY
Instruciuni pentru manipularea datelor
Adugareadenregistrri

INSERT INTO nume_tabel (camp1, camp2, ) VALUES (valoare1, valoare2, ...)


tergerea de nregistrri

DELETE FROM nume_tabel[WHERE criteriu_stergere]


Modificri de nregistrri

UPDATE nume_tabel SET nume_camp1=valoare_1[, nume_camp2=valoare2, ] [WHERE


criteriu_actualizare]

Curs 8
Cuprins
Java i bazele de date
accesul la baze de date folosind JDBCTM
caracteristici
arhitectur
API
JDBC API
Este destinat accesului la orice tip de date tabelare, n special la acele date stocate ntr-o baz de
date relaional.
Ajut la realizarea de aplicaii Java care gestioneaz urmtoarele activiti:
conectarea la o surs de date (de ex. o baz de date)
transmiterea ctre baza de date a unor instruciuni SQL pentru interogri, actualizri, tergeri de
date, etc.
recuperarea i procesarea rezultatelor obinute de la baza de date
Exemplu de utilizare JDBC API
public void connectToAndQueryDatabase(String username, String password) {
Connection con = DriverManager.getConnection(
"jdbc:myDriver:myDatabase",
username, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
}

Componente JDBC
JDBC API
parte a platformei Java ce include pachetele java.sqli javax.sql
JDBC DriverManager
o clas care definete obiectele care pot conecta aplicaiile Java la un driver JDBC
dei este destul de simplu, reprezint coloana vertebral a arhitectruii JDBC
JDBC Test Suite
ajut la verificarea funcionrii programelor
JDBC-ODBC Bridge
baze de date centralizate
baze de date distribuite

Arhitectura JDBC
JDBC API implementeaz urmtoarele dou modele de acces la baza de date:
two-tier (pe dou niveluri)
three-tier (pe trei niveluri)
Procesarea instruciunilor SQL cu ajutorul JDBC
Paii necesari procesrii instruciunilor SQL sunt urmtorii:
stabilirea conexiunii
crearea instruciunilor
executarea interogrilor
procesarea rezultatelor
nchiderea conexiunii

Stabilirea unei conexiuni


O conexiune este reprezentat de un obiect din clasa Connection.
Legarea aplicaiei la o surs de date se poate face folosind:
clasa DriverManager

permite conectarea aplicaiei la o surs de date, specificat prinURL-ul bazei de date


interfaa DataSource
este preferat deoarece permite ca anumite detalii privind sursa de date s fie transparente pentru
aplicaia Java
Stabilirea unei conexiuni -exemplu
Connectionconn=null;
PropertiesconnectionProps=newProperties();
connectionProps.put("user",this.userName);
connectionProps.put("password",this.password);
conn=DriverManager.getConnection(
"jdbc:"+this.dbms+"://"+
this.serverName+
":"+this.portNumber+"/",
connectionProps);
Exemple de URL pentru stabilirea unei conexiuni
MySQLjdbc:mysql://localhost:3306/test.db
Java DBjdbc:derby:testdb;create=true
SQLitejdbc:sqlite:test.db
Crearea instruciunilor
PentrureprezentareainstruciunilorSQLsefoloseteinterfaaStatement.
PentrucreareaunuiobiectStatementsefoloseteoconexiune(unobiectConnection):Statement stmt =
conn.createStatement();
Existtreitipurideinstruciuni:
simple(Statement) pentru instruciuni SQL fr parametri
extinse (PreparedStatement) pentru a pregri instruciunile SQL care ar putea conine parametri
de intrare
apelabile (CallableStatement) pentru a executa proceduri stocate ce pot conine att parametri de
intrare ct i de ieire

Executarea interogrilor

SefaceapelndunadinmetodeleexecutealeobiectuluiStatement:
execute
returneaz true dac primul obiect returnat de interogarea SQL este un ResultSet
se folosete dac interogarea returmneaz unul saiu mai multe obiecte ResultSet
executeQuery
returneaz un obiect ResultSet
executeUpdate
returneaz un ntreg reprezentnd numrul de linii afectate de instruciunea SQL (INSERT,
DELETE sau UPDATE
Executarea interogrilor -exemple
Interogrideselecie
ResultSetrs=stmt.executeQuery(SELECT*FROMfacultati;);
Interogrideactualizare
stmt.executeUpdate(DELETEFROMfacultatiWHEREcodF='FAN';);
Procesarea rezultatelor obinute
ObiectulResultSetobinutnurmauneiinterogriesteostructurdedatecepermiteaccesareaacestoraprin
intermediulunuicursor.
cursorul este un pointer (indicator) ctre una din liniile (nregistrrile) returnate n ResultSet.
Procesarea rezultatelor -exemplu
Stringquery="selectCOF_NAME,SUP_ID,PRICE,SALES,TOTALCOFFEES";
stmt=con.createStatement();
ResultSetrs=stmt.executeQuery(query);
while(rs.next()){
StringcoffeeName=rs.getString("COF_NAME");
intsupplierID=rs.getInt("SUP_ID");
floatprice=rs.getFloat("PRICE");
intsales=rs.getInt("SALES");
inttotal=rs.getInt("TOTAL");
System.out.println(coffeeName+"\t"+supplierID+);

nchiderea conexiunii
DupncetareautilizriiobiectelorConnection,StatementiResultSetseapeleazmetodaclosecareelibe
reazresurselecareaufostutilizate.rs.close();stmt.close();conn.close();

S-ar putea să vă placă și