Unitatea-5 Python
Unitatea-5 Python
PROGRAMARE ÎN PYTHON
Course Code: CS721PE
C. RAJEEV
Asist. prof.
CSE,
MRECW.
UNITATEA-5
UNITATE – V
Programarea bazelor de date: Introducere, Baza de date Python
Python suportă diverse baze de date precum MySQL, Oracle, Sybase, PostgreSQL, etc.
Python suportă, de asemenea, Limbajul de Definiț ie a Datelor (DDL), Limbajul de Manipulare a Datelor
Pentru programarea bazelor de date, Python DB API este un modul utilizat pe scară largă care oferă o
Standardul Python pentru interfeț ele de baze de date este Python DB-API.
Datele sunt peste tot, iar aplicaț iile software le folosesc. Datele sunt fie în memorie, fie în fiș iere sau
baze de date.
Python are legături pentru multe sisteme de baze de date, inclusiv MySQL, PostgreSQL, Oracle,
SQLite a fost creat în anul 2000 ș i este unul dintre numeroasele sisteme de gestionare din
baza de date zoo.
SQL:
SQL este un limbaj de programare de specialitate destinat gestionării datelor păstrate în
o baze de date.
Comenzile ș i interogările bazei de date sunt date unei baze de date prin SQL.
Cele mai multe baze de date sunt configurate să fie insensibile la majuscule, în special comenzile bazei de date.
Stilul acceptat este de a folosi majuscule pentru cuvintele cheie din baza de date.
Cele mai multe programe din linia de comandă necesită un punct ș i virgulă final ( ; ) pentru a termina o SQL
declaraț ie.
Iată câteva exemple de comenzi SQL.
1. Crearea unei baze de date
acordă permisiuni unor utilizatori specifici (sau tuturor acestora) astfel încât să poată efectua
FOLOSIT test;
Dacă te-ai conectat la un sistem de baze de date fără să alegi care bază de date vrei să foloseș ti, aceasta
Declaraț ia simplă permite specificarea uneia cu care să efectuezi operaț iuni de bază de date.
3.Ș tergerea unei baze de date
Această declaraț ie simplă elimină toate tabelele ș i datele din baza de date ș i le ș terge din
sistemul.
[Link] unui Tabel
CREAȚI TABELA utilizatori (login VARCHAR(8), uid INT, prid INT);
Această declaraț ie creează un nou tabel cu o coloană de tip string login ș i o pereche de câmpuri întregi uid
ș i mândru.
5. Ș tergerea unei Tabele
Ș terge tabelul utilizatori;
Această afirmaț ie simplă ș terge un tabel de bază de date împreună cu toate datele sale.
6. Inserarea unei rânduri
Puteț i insera un nou rând într-o bază de date cu instrucț iunea INSERT. Specificaț i tabelul.
ș i valorile care intră în fiecare câmp. Pentru exemplul nostru, ș irul 'leanna' intră în
câmp de conectare, ș i 311 ș i 1 pentru uid ș i prid, respectiv.
coloană care se schimbă ș i oferă orice criterii pentru determinarea căror rânduri ar trebui
schimbare.
În primul exemplu, toț i utilizatorii cu un "ID de proiect" sau prid de 2 vor fi mutaț i în proiect
Pentru a ș terge un rând dintr-un tabel, foloseș te comanda DELETE FROM, dând tabelul pe care vrei să-l ș tergi
row-urile din, ș i orice criterii opț ionale. Fără aceasta, aș a cum este în al doilea exemplu, toate row-urile vor fi
ș ters.
Beneficiile Python pentru programarea bazelor de date
Programarea în Python este fără îndoială mai eficientă ș i mai rapidă comparativ cu altele.
limbi.
Python este cunoscut pentru portabilitatea sa.
API-ul DB oferă un standard minim pentru lucrul cu baze de date folosind Python
structuri ș i sintaxă oriunde este posibil.
Această API include următoarele -
[Link] modulului API.
[Link]ț inerea unei conexiuni cu baza de date.
3. Emiterea instrucț iunilor SQL ș i a procedurilor stocate.
4. Închiderea conexiunii
Baze de date ș i Python:
Putem accesa baze de date rela ț ionale din Python, fie direct printr-o bază de date
interfaț ă, sau printr-un ORM.
Modul de accesare a unei baze de date din Python este printr-un adaptor.
Un adaptor este, în esenț ă, un modul Python care îț i permite să interacț ionezi cu o relaț ională
biblioteca de client a bazei de date, de obicei în C.
Figura ilustrează straturile implicate în scrierea unei aplicaț ii de bază de date Python, cu
ș i fără un ORM.
ORM-urile pot simplifica o aplicaț ie gestionând toate detaliile specifice bazei de date.
Interfaț a Programatorului de Aplicaț ii pentru Baze de Date (DB-API) Python:
Ce este DB-API?
API-ul este o specificaț ie care stabileș te un set de obiecte necesare ș i acces la baza de date
mecanisme pentru a oferi acces consistent prin diferitele adaptoare de baze de date ș i
sisteme de baze de date subiacente.
DB-API este o specificaț ie pentru o interfaț ă comună cu bazele de date relaț ionale.
În „vechile zile”, aveam un scenariu cu multe baze de date ș i multe persoane
implementând propriile adaptoare de bază de date. Era o roată care era reinventată
din nou ș i din nou. Aceste baze de date ș i adaptoare au fost implementate în momente diferite
de diferite persoane fără nicio consistenț ă a funcț ionalităț ii.
A fost înfiin ț ată un grup de interes special (SIG) pentru conectivitatea bazelor de date Python, ș i
în cele din urmă, a fost creat o API ... versiunea 1.0 a theDB-API.
API-ul oferă o interfaț ă coerentă pentru o varietate de baze de date relaț ionale, ș i
portarea codului între diferite baze de date este mult mai simplă, necesitând de obicei doar
tweaking several lines of code. The current version of the specification isversion 2.0.
Atributele modulului
Un modul conform DBAPI trebuie să definească atributele globale.
1: Minim de siguranț ă în privinț a firelor: firele pot împărtăș i modulul, dar nu conexiunile.
2: Moderat sigur pentru fire: firele pot împărtă ș i modulul ș i conexiunile, dar nu
cursori.
3: Complet thread-safe: firele pot împărtăș i modulul, conexiunile ș i cursurile.
[Link]
API-ul suportă o varietate de modalităț i de a indica modul în care parametrii ar trebui să fie integraț i
într-o instrucț iune SQL care este trimisă în cele din urmă serverului pentru execuț ie.
Această argument este doar un ș ir care specifică forma de substituț ie a ș irului pe care o vei
folosiț i atunci când construiț i rânduri pentru o interogare sau o comandă.
II. Atribut(e) Func ț ional(e):
[Link]()
Funcț ia connect() accesul la baza de date este disponibil prin Conexiune
obiecte.
Un modul conform trebuie să implementeze o funcț ie connect(), care creează ș i returnează
un obiect Connection.
Atributele funcț iei connect()
Parametru Description
utilizator Nume utilizator
parolă Parolă
Gazdă Nume gazdă
bază de date Numele bazei de date
Putem transmite informa ț ii de conexiune la bază de date ca un ș ir cu mai mul ț i parametrii (DSN)
sau parametrii individuali transmi ș i ca argumente pozi ț ionale sau, mai probabil, argumente cu cuvinte cheie.
Iată un exemplu de utilizare a connect() din PEP 249 (Propunerea de Îmbunătăț ire Python):
connect(dsn='myhost:MYDB',user='guido',password='234$')
Utilizarea DSN versus parametrii individuali se bazează în principal pe sistemul pe care îl aveț i.
conectându-se la.
De exemplu, dacă foloseș ti o API precum ODBC sau JDBC, probabil că foloseș ti un DSN,
în timp ce dacă lucrezi direct cu o bază de date, atunci este mai probabil să emiț i separat
parametrii de conectare.
Un alt motiv pentru aceasta este că majoritatea adaptoarelor de bază de date nu au implementat suport pentru
DSN.
Mai jos sunt câteva exemple de apeluri non-DSN connect(). Re ț ineț i că nu toate adaptoarele au
2. Eroare:
Excepț ia care este clasa de bază a tuturor celorlalte excepț ii de eroare. O putem folosi pentru a
4. DatabaseError:
Excepț ie generată pentru erorile legate de baza de date
5. DataError:
Excepț ie generată pentru erori care sunt cauzate de probleme cu datele procesate precum
divizare prin zero, valoare numerică în afara intervalului, etc.
6. OperationalError: Eroare în timpul execuț iei operaț iunii de bază de date
Cursorul permite utilizatorului să emită comenzi în baza de date ș i să recupereze rândurile rezultate din interogări.
Un obiect cursor DB-API Python funcț ionează ca un cursor pentru tine, chiar dacă cursorele nu sunt
Aceasta îț i menț ine codul Python consistent când schimbi între sistemele de baze de date care
Odată ce aț i creat un cursor, puteț i executa o interogare sau o comandă (sau multiple interogări)
ș i comenzi) ș i să recupereze una sau mai multe rânduri din setul de rezultate.
În Python, obiectele cursor au atribute ș i metode de date.
Atributele obiectului Cursor:
Atributul obiectului Description
Connection Conexiunea care a creat acest cursor (opț ional)
ultimarowid ID-ul rândului modificat ultima dată (opț ional; dacă ID-urile rândurilor nu sunt)
număr de rânduri Numărul de rânduri pe care ultima execuț ie*() le-a produs sau a afectat
apelează funcț ia(func[, args]) Appelaț i o procedură stocată
Ca programator care scrie pentru DB-API-ul Python, parametrii pe care îi trimiteț i către o bază de date
sunt date ca ș iruri, dar baza de date poate necesita să le convertească într-o varietate de diferite,
tipuri de date acceptate care sunt corecte pentru orice interogare particulară.
Trebuie avut grijă să se furnizeze datele de intrare în baza de date în formatul aș teptat.
DB-API isto create constructors that build special objects that can easily be converted
la obiectele de bază de date corespunzătoare.
Tipuri de obiecte ș i constructori:
Modificări ale API-ului între versiuni
Mai multe schimbări importante au fost făcute atunci când API-ul DB a fost revizuit de la versiunea 1.0
● Atribute noi adăugate pentru a oferi o legătură mai bună cu baza de date
Pentru PostgreSQL - sunt disponibile trei adaptoare Python, adică psycopg, PyPgSQL ș i PyGreSQL
Pentru SQLite --- doar un adaptor Python, adică sqlite3
Manageri Obiect-Relationali (ORM-uri):
Un mapper relaț ional de obiecte mapează un sistem de baze de date relaț ionale la obiecte
Un mapper obiect-relaț ional (ORM) este o bibliotecă de cod care automatizează transferul de
datele stocate în tabelele bazelor de date relaț ionale în obiecte care sunt mai des utilizate
in application code.
ORM-ul este independent de sistemul de baze de date relaț ionale care este utilizat. Din interiorul
Relational– Această parte reprezintă baza de date RDBMS pe care o foloseș ti, cum ar fi – MySQL, Oracle
Cartografiere – Această parte finală reprezintă puntea ș i conexiunea între cele două părț i anterioare
scrie cod Python în loc de SQL pentru a crea, citi, actualiza ș i ș terge date ș i scheme
baza lor de date.
Dezvoltatorii pot folosi limbajul de programare cu care se simt confortabil pentru a lucra cu un
bază de date în loc să scrieț i instrucț iuni SQL sau proceduri stocate.
De exemplu, fără un ORM, un programator ar scrie următoarea declaraț ie SQL pentru a
recuperaț i fiecare rând din tabelul UTILIZATORI unde coloana cod poș tal este 94107:
users = [Link](zip_code=94107)
Capacitatea de a scrie cod Python în loc de SQL poate accelera dezvoltarea aplicaț iilor web,
mai ales la începutul unui proiect.
Clasa Python == Tabel SQL
Instanț a Clasei == Rând în Tabel
Cele mai cunoscute ORM-uri Python de astăzi sunt:
1. SQLAlchemy
2. Peewee
3. ORM-ul Django
4. PonyORM
5. SQLObject
6. Tortoise ORM
Cel mai adesea, această bibliotecă este utilizată ca un instrument de mapare obiect-relaț ie (ORM) care
traduce clasele Python în tabele în baze de date relaț ionale ș i converteș te automat funcț ia
apele la instrucț iunile SQL.
SQLAlchemy oferă o interfaț ă standard care permite dezvoltatorilor să creeze aplicaț ii independente de baza de date.