Sunteți pe pagina 1din 47

BAZE DE DATE IN C#

BAZE DE DATE IN C#

Ce este o baza de date?


BAZE DE DATE IN C#

Ce este o baza de date?


• In sens larg, un sistem proiectat pentru a oferi un mecanism organizat, capabil sa
stocheze, sa actualizeze si sa regaseasca informatia.
• Exemplu: o biblioteca
• Notiunea de ”baza de date” este des vehiculata, prin ea intelegandu-se o mare
cantitate de date, de informatii, un mod de stocare electronica a informatiilor.
• Exemple:
• Cartea cu numere de telefon, totalitatea foilor de observatie dintr-un spital, carnetele
de note ale studentilor.
BAZE DE DATE IN C#

Ce este un Sistem de Gestiune a bazelor de date?


BAZE DE DATE IN C#

Ce este un Sistem de Gestiune a bazelor de date?

• Baza de date este o colectie organizata de informatii

• Pentru ca aceasta sa poata fi actualizata, modificata, utilizata in obtinerea de


rapoarte si statistici, se afla sub controlul unui program. Intreg acest ansamblu
poarta numele de SGBD.

• In practica, prin bd se intelege de multe ori si softul aferent, iar prin SGBD un
sistem integrat in care putem construi si interoga baze de date.
BAZE DE DATE IN C#

Sistem de Gestiune a bazelor de date

• Un SGBD :
• este ansamblul software interpus între utilizatori şi baza de date

• este un interpretor de cereri de acces sau regăsire de date în baza de date

• execută cererea

• returnează rezultatul.
BAZE DE DATE IN C#

Sistem de Gestiune a bazelor de date


• SGBD este un sistem de programe care facilitează procesul definirii, construcţei,
organizării şi manipulării datelor pentru diverse aplicaţii. Utilizatorul are acces la
SGBD prin intermediul unei interfeţe (aplicaţie) cu ajutorul căreia stabilesc
parametrii interogării şi se primeşte răspuns; întreg ansamblul este prezentat in
figura 1:

Aplicatie SGBD Baza de


date

Fig.1 Sistemul de gestiune a bazelor de date


BAZE DE DATE IN C#

Sistem de Gestiune a bazelor de date


UTIIZATORI
UTILIZARE

SGBD trebuie să asigure:


• definirea – crearea bazei de date;
MANIPULARRE DESCRIERE ADMINISTRARE • introducerea (adăugarea)
datelor în baza de date;
• modificarea structurii sau a unor
date deja existente în baza de date;
• ştergerea datelor din baza de
date;
• consultarea bazei de date –
Fig.2 Sistemul de gestiune a bazelor de date interogare/extragerea datelor.
BAZE DE DATE IN C#

O baza de date trebuie sa asigure:

• Abstractizarea datelor – bd fiind un model al realitatii


• Integrarea datelor – bd este un ansamblu de colectii de date intercorelate
• Integritatea datelor – corectitudinea datelor incarcate si manipulate a.i. sa se respecte
restrictiile de integritate
• Securitatea datelor – limitarea accesului la bd
• Partajarea datelor – date pot fi accesate de mai multi utilizatori, chiar in acelasi timp
• Independenta datelor – organizarea datelor sa fie transparenta pentru utilizatori,
modificarile in bd sa nu afecteze programele de aplicatii.
BAZE DE DATE IN C#

Tipuri de baze de date:


• O clasificare a bazelor de date dupa modul de organizare:
• Baze de date ierarhice
• Baze de date in retea
• Baze de date distribuite
• Modele primitive
• Baze de date relationale
BAZE DE DATE IN C#

Tipuri de baze de date:


• Bd ierarhice - legăturile dintre date sunt ordonate unic,
accesul se face numai prin vârful ierarhiei, un
subordonat nu poate avea decât un singur superior
direct şi nu se poate ajunge la el decât pe o singură
cale;
BAZE DE DATE IN C#

Tipuri de baze de date:


• O clasificare a bazelor de date dupa modul de organizare:
• Baze de date ierarhice
• Baze de date in retea
• Baze de date distribuite
• Modele primitive
• Baze de date relationale
BAZE DE DATE IN C#

Tipuri de baze de date:


• Bd in retea – datele sunt reprezentate ca într-o
mulţime de ierarhii, în care un membru al ei poate
avea oricâţi superiori, iar la un subordonat se poate
ajunge pe mai multe căi;
BAZE DE DATE IN C#

Tipuri de baze de date:


• O clasificare a bazelor de date dupa modul de organizare:
• Baze de date ierarhice
• Baze de date in retea
• Baze de date distribuite
• Modele primitive
• Baze de date relationale
BAZE DE DATE IN C#

Tipuri de baze de date:


• Bd distribuite - sunt rezultatul integrării tehnologiei
bazelor de date cu cea a reţelelor de calculatoare.
Sunt baze de date logic integrate, dar fizic distribuite pe
mai multe sisteme de calcul.
BAZE DE DATE IN C#

Tipuri de baze de date:


• O clasificare a bazelor de date dupa modul de organizare:
• Baze de date ierarhice
• Baze de date in retea
• Baze de date distribuite
• Modele primitive
• Baze de date relationale
BAZE DE DATE IN C#

Tipuri de baze de date:


• Modele primitive - datele sunt organizate la nivel logic
în fişiere, structura de bază este înregistrarea, mai multe
înregistrări fiind grupate în structuri de tip fişier;
BAZE DE DATE IN C#

Tipuri de baze de date:


• O clasificare a bazelor de date dupa modul de organizare:
• Baze de date ierarhice
• Baze de date in retea
• Baze de date distribuite
• Modele primitive
• Baze de date relationale
BAZE DE DATE IN C#

Tipuri de baze de date:


• Bd relationale - structura de bază a datelor este aceea de relaţie – tabelă,
limbajul SQL (Structured Query Language) este specializat în comenzi de
manipulare la nivel de tabelă. Termenul relaţional a fost introdus de un
cercetător al firmei IBM, dr. E. F. Codd, în 1969, cel care a enunţat cele 13
reguli de bază necesare pentru definerea unei baze de date relaţionale.
Baza de date relaţională reprezintă o mulţime structurată de date, accesibile
prin calculator, care pot satisface în timp minim şi într-o manieră selectivă mai
mulţi utilizatori. Această mulţime de date modelează un sistem sau un proces
din lumea reală şi serveşte ca suport unei aplicaţii informatice;
BAZE DE DATE IN C#

Baze de date relationale


• Cele mai importante obiective:
• Partiţionarea semnifică faptul că aceleaşi date trebuie să poată fi folosite în moduri diferite
de către diferiţi utilizatori;
• Deschiderea se referă la faptul că datele trebuie să fie uşor adaptabile la schimbările care
pot apărea (actualizarea structurii, tipuri noi de date etc.);
• Eficienţa are în vedere stocarea şi prelucrarea datelor, care trebuie să se facă la costuri cât
mai scăzute, costuri care să fie inferioare beneficiilor obţinute;
• Reutilizarea înseamnă faptul că fondul de date existent trebuie să poată fi reutilizat în diferite
aplicaţii informatice;
• Regăsirea este o actvitate frecventă pe bazele de date şi de aceea cererile de regăsire
trebuie să poată fi adresate uşor de către toate categoriile de utilizatori, după diferite criterii;
BAZE DE DATE IN C#

Baze de date relationale

• Cele mai importante obiective:


• Accesul înseamnă modul de localizare a datelor şi acest lucru trebuie să poată fi realizat
prin diferite moduri de acces, rapid şi uşor;
• Modularizarea presupune faptul că realizarea BDR trebuie să se poată face modular pentru
generalitate şi posibilitatea lucrului în echipă;
• Protecţia bazei de date trebuie asigurată sub ambele aspecte: securitatea şi integritatea
datelor;
• Redundanţa se asigură în limite acceptabile prin implementarea unui model de date pentru
baze de date şi prin utilizarea unei tehnici de proiectare a BDR. Se asigură astfel, o redundanţă
minimă şi controlată;
• Independenţa datelor faţă de programe trebuie asigurată atât la nivel logic cât şi fizic.
BAZE DE DATE IN C#

Normalizare si relatii

• O baza de date normalizata nu contine date redundante


• Pe langa structurarea tabelelor, stabilirea relatiilor este importanta la proiectarea unei
baze de date.
• Exista 3 tipuri fundamentale de relatii intre tabele:
• Relatii 1:1
• Relatii 1:n
• Relatii n:n
BAZE DE DATE IN C#

Normalizare si relatii
• Relatii intre tabele:
• Relatii 1:1 O relaţie de tipul 1 la 1 apare în cazul în care unei linii dintr-un tabel îi
corespunde o singură linie în tabelul cu care acesta este în legătură
• Relatii 1:n O relaţie de tipul 1 la n apare în cazul în care unei linii dintr-un tabel îi corespund
mai multe linii în tabelul cu care acesta este în legătură.
• Relatii n:n O relaţie de tipul n la n apare în cazul în care într-o relație bidirecțională fiecărei
linii dintr-un table îi corespund mai multe linii în tabelul cu care acesta este în legătură.
• Ex. Un scriitor poate fi autor la mai multe cărţi iar o carte poate avea mai mulţi autori
BAZE DE DATE IN C#

Clase pentru baze de date in C#


• ADO.NET este o tehnologie introdusa de Microsoft utilizata pentru accesul la baze de date.
Aceasta dispune de 7 clase de baza:
• DbConnection
• DbCommand
• DbDataReader
• DbDataAdapter
• DataTable
• Data Relation
• DataSet
BAZE DE DATE IN C#

Clasa DbConnection

• Furnizeaza actiuni la bd
• Obiectul DbConnection precizeaza o serie de informatii
precum: locatia bd, numele utilizatorului, parola si numele bd
• Pentru a conecta şi deconecta programul de la baza de
date, clasa DbConnection expune metodele Open() şi
Close().
BAZE DE DATE IN C#

Clase pentru baze de date in C#


• ADO.NET este o tehnologie introdusa de Microsoft utilizata pentru accesul la baze de date.
Aceasta dispune de 7 clase de baza:
• DbConnection
• DbCommand
• DbDataReader
• DbDataAdapter
• DataTable
• Data Relation
• DataSet
BAZE DE DATE IN C#

Clasa DbCommand

• Implementeaza metode de interactiune primara cu bd


• Obiectele DbCommand vor putea executa interogări SQL, proceduri
stocate, etc
• Prin executarea unei comenzi prin intermediul DbCommand, avem 3
optiuni:
• Metoda DbCommand.ExecuteNonQuery() – nu returneaza nici un rezultat
• Metoda DbCommand.Scalar() – returneaza un singur rezultat
• Metoda DbCommand.ExecuteReader() – returneaza date reprezentative pe mai multe
randuri
BAZE DE DATE IN C#

Clase pentru baze de date in C#


• ADO.NET este o tehnologie introdusa de Microsoft utilizata pentru accesul la baze de date.
Aceasta dispune de 7 clase de baza:
• DbConnection
• DbCommand
• DbDataReader
• DbDataAdapter
• DataTable
• Data Relation
• DataSet
BAZE DE DATE IN C#

Clasa DbDataReader

• permite citirea datelor dintr-un set de rezultate


• Clasa expune un număr relativ mare de proprietăţi şi metode
care permit examinarea liniei curent citite.
• Exemplu :
• DbDataReader.FieldCount va conţine numărul de coloane din linia citită;
• DbDataReader.Read() permite citirea primei linii dintr-un set de date;
• DbDataRead.HasRows verificam dacă setul de date rezultat are mai multe
linii.
BAZE DE DATE IN C#

Clase pentru baze de date in C#


• ADO.NET este o tehnologie introdusa de Microsoft utilizata pentru accesul la baze de date.
Aceasta dispune de 7 clase de baza:
• DbConnection
• DbCommand
• DbDataReader
• DbDataAdapter
• DataTable
• Data Relation
• DataSet
BAZE DE DATE IN C#

Clasa DbDataAdapter

• permite interschimbarea datelor între cursoare (data set) şi baza de date


• pune la dispoziţia pogramatorului cele 4 comenzi de bază pentru lucrul cu baze de
date: Select (SelectCommand – regasirea datelor), Insert (InsertCommand –
adaugarea datelor), Update (UpdateCommand – editarea datelor) şi Delete
(DeteleCommand – stergerea datelor).
• Clasa DbDataAdapter expune un set de metode:
• DbDataAdapter.Fill() - realizează încărcarea obiectului
• DbDataAdapter.Update() - realizează transmiterea înspre baza de date
BAZE DE DATE IN C#

Clase pentru baze de date in C#


• ADO.NET este o tehnologie introdusa de Microsoft utilizata pentru accesul la baze de date.
Aceasta dispune de 7 clase de baza:
• DbConnection
• DbCommand
• DbDataReader
• DbDataAdapter
• DataTable
• Data Relation
• DataSet
BAZE DE DATE IN C#

Clasa DataTable

• stocarea tabelelor de date


• Obiectele DataTable expun de o serie de evenimente:
• DataRow – Clasa DataRow este utilizată pentru a stoca date dintr-o
linie a obiectului DataTable
• DataColumn – Clasa DataColumn stochează toate informaţiile
necesare pentru definirea completă a unei coloane dintr-un obiect
DataTable.
• Constraint – Clasa Constraint stochează toate informaţiile care nu sunt
conţinute în coloane.
BAZE DE DATE IN C#

Clasa Data Relation

• implementează relaţii între tabele.


• Mai multe obiecte DataRelation pot fi grupate împreună
într-un obiect DataRelationCollection.
BAZE DE DATE IN C#

Clase pentru baze de date in C#


• ADO.NET este o tehnologie introdusa de Microsoft utilizata pentru accesul la baze de date.
Aceasta dispune de 7 clase de baza:
• DbConnection
• DbCommand
• DbDataReader
• DbDataAdapter
• DataTable
• Data Relation
• DataSet
BAZE DE DATE IN C#

Clasa DataSet

• Utilizata pentru manipularea datelor.


• o colecţie de obiecte DataTable şi DataRelation
BAZE DE DATE IN C#

IMPLEMENTAREA UNOR EXEMLPLE

• Vom crea o baza de date ralationala utilizand Visual Studio, care va


contine doua tabele numite: Universitati si Facultati.
• Vom alege un sablon de tip Windows Form Application.
BAZE DE DATE IN C#
BAZE DE DATE IN C#
BAZE DE DATE IN C#
BAZE DE DATE IN C#
BAZE DE DATE IN C#

IMPLEMENTAREA UNOR EXEMLPLE

• Vom crea doua tabele de


forma:

• Universitati ->

• Facultati ->
BAZE DE DATE IN C#
BAZE DE DATE IN C#
BAZE DE DATE IN C#

Pentru a realiza conexiunea dintre aplicatie si BD trebuie sa ne cream un obiect de tip


SqlConnection, dupa care sa specificam calea cu ajutorul obiectului creat.
Pentru a putea utiliza clasele specifice bazei de date trebuie sa adaugam clauza :

using System.Data.SqlClient ;

SqlConnection myCon=new SqlConnection ( ) ;

myCon . ConnectionString=" Data Source =.\\SQLEXPRESS; AttachDbFilename


=| DataDirectory | \ \ Database1 . mdf ; I n t e g r a t e d S e c u r i t y=True ; User
I n s t a n c e=True " ;

myCon . ConnectionString=@ " Data Source =.\SQLEXPRESS; AttachDbFilename


=| DataDirectory | \ Database1 . mdf ; I n t e g r a t e d S e c u r i t y=True ; User
I n s t a n c e=True " ;
BAZE DE DATE IN C#

IMPLEMENTAREA UNOR EXEMLPLE

Să se creeze o aplicație care să preia din


baza de date, lista Universitatilor, și să se
afiseze (în listBox).

Pentru fiecare Universitate selectată, se va


afișa orașul și Facultatea.
IMPLEMENTAREA UNOR EXEMLPLE

• În continuare, vom extinde


aplicația precedentă, astfel
încat să se poată efectua
operații de inserare, ștergere și
update.

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