Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
UNIVERSITATEA POLITEHNICA DIN BUCUREŞTI FACULTATEA DE ELECTROTEHNICĂ
CEZAR FLUERAŞU
MMAANNAAGGEEMMEENNTTUULL DDAATTEELLOORR ŞŞII AALL CCUUNNOOŞŞTTIINNŢŢEELLOORR
Note de curs
Bucureşti - 2003
PLANUL CURSULUI
1. Managementul datelor. Sisteme de gestiune a bazelor de date.
2. Managementul documentelor. Limbajul XML şi aplicaţii ale sale.
Managementul datelor şi al cunoştinţelor
CF 1 16/02/03
PARTEA I-A. 1 MANAGEMENTUL DATELOR.
SISTEME DE GESTIUNE A BAZELOR DE DATE.
1.1 CE ESTE O BAZĂ DE DATE.
Colecţie structurată de date.
EXEMPLU: Agendă telefonică (în EXCEL sau programe similare) Numele şi prenumele Telefon Adresa TABELĂ Ionescu Ion 123 45 67 Polizu 12
Ionescu Vasile 456 12 32 Spl. Independenţei 313 Înregistrări
Georgescu Petre 214 56 12 Bd. Muncii 142 (records)
.......
Câmpuri (fields)
Bază de date elementară (“flat file database”):
- Compusă dintr-o singură tabelă (tablă)
Managementul datelor şi al cunoştinţelor
CF 2 16/02/03
1.2 BAZE DE DATE RELAŢIONALE..
Compuse din mai multe tabele (table), legate între ele prin relaţii.
CONTRA-EXEMPLU: Bibliografie (mai mult sau mai putin ipotetică):
1) Ionescu I, Operating Systems, IEEE Transactions on Computers, 4, 2000 2) Ionescu I, Sisteme de operare avansate, NET Report, 5, 2002 3) Popescu V, Real Time operating Systems, IEEE Trans. On Computers, 5, 2002 4) Vasilescu V, Arhitectura sistemelor de calcul, TEORA, 2003 5) Ionescu Ion, Sisteme cu microprocesoare, Politehnica Press, 2003 6) Georgescu P, Sisteme multiprocesor, NET Report, 7, 2002
Prezentarea sub forma de tabelă unică: (s-a adăugat şi adresa de email a autorilor)
No Numele email Titlul Unde Anul Nr1 Ionescu I [email protected] Operating
Systems IEEE Transactions on Computers
2000 4
2 Ionescu I [email protected] Sisteme de operare avansate
NET Report 2002 5
3 Popescu V [email protected] Real Time operating Systems
IEEE Trans. On Computers
2002 5
4 Vasilescu V [email protected] Arhitectura sistemelor de calcul
TEORA 2003
5 Ionescu Ion [email protected] Sisteme cu microprocesoare
Politehnica Press
2003
6 Georgescu P [email protected] Sisteme multiprocesor
NET Report 2002 7
Probleme:
Repetarea unor informaţii în mai multe înregistrări Risipă de spaţiu, Risc de inconsistenţă a datelor (aceeaşi informaţie prezentată în moduri diferite)
Gestiune dificilă (unele modificări trebuie efectuate în toate înregistrările) Structură rigidă, dificil de adaptat unor situaţii noi
Managementul datelor şi al cunoştinţelor
CF 3 16/02/03
Exemplu: 1) Ionescu I, Operating Systems, IEEE Transactions on Computers, 4, 2000 2) Ionescu I, Sisteme de operare avansate, NET Report, 5, 2002 3) Popescu V, Real Time operating Systems, IEEE Trans. On Computers, 5, 2002 4) Vasilescu V, Arhitectura sistemelor de calcul, TEORA, 2003 5) Ionescu Ion, Sisteme cu microprocesoare, Politehnica Press, 2003 6) Georgescu P, Sisteme multiprocesor, NET Report, 7, 2002 7) Ionescu I, Popescu P, Arhitecturi Paralele, Politehnica Press, 2003
Riscul de alterare a informaţiilor la operaţii de:
Înserarea unei noi înregistrări, Modificare, Ştergere (ex: daca se şterge înregistrarea 6, se pierde adresa de email a autorului, care era prezent o singură dată în tabelă).
SOLUŢIE: Împărţirea informaţiilor în mai multe tabele, legate între ele prin relaţii: No Numele email Titlul Anul Nr Unde 1 Ionescu I [email protected] Operating Systems 2000 4 IEEE
Transactions on Computers
2 Ionescu I [email protected] Sisteme de operare avansate
2002 5 NET Report
3 Popescu V [email protected] Real Time operating Systems
2002 5 IEEE Trans. On Computers
4 Vasilescu V [email protected] Arhitectura sistemelor de calcul
2003 TEORA
5 Ionescu Ion [email protected] Sisteme cu microprocesoare
2003 Politehnica Press
6 Georgescu P [email protected] Sisteme multiprocesor
2002 7 NET Report
7 Ionescu I, Popescu P
Arhitecturi paralele 2003 Politehnica Press
Informaţii referitoare la: Autori Lucrare Publicaţie Se vor împărţi în mai multe tabele (table): PERSOANE LUCRARI PUBLICATIA
Managementul datelor şi al cunoştinţelor
CF 4 16/02/03
STRUCTURA BAZEI DE DATE: TABELA PUBLICATII: PubNo PubNume PubOras Carte ...etc.....
1 IEEE Transactions on Computers NY 2 NET Report Bucuresti 3 TEORA Bucuresti 4 POLITEHNICA Press Bucurest 5 Microsoft Press Redmond 6 The Linux Journal Helsinki
TABELA LUCRARI: LucrNo LucrTitlu Anul No LucrRezum LucrKwd PubNo
1 Operating Systems 2000 4 nncyn, lm Unix, DOS 1
2 Sisteme de operare avansate 2002 5 cn cyc Unix 2
3 Real Time operating Systems 2002 5 ........... QMS, Lin 1
4 Arhitectura sistemelor de calcul 2003 3
5 Sisteme cu microprocesoare 2003 Intel, 4
6 Sisteme multiprocesor 2002 7 2
7 Arhitecturi paralele 2003 4
8 Windows in the best 2002 8 Win bla bla money, ... 5
9 LINUX is better 2002 9 Tux Tux, ... 6
TABELA AUTORI LucrNo PersNo AutorNo
1 1 1 2 1 2 3 3 3 4 6 4 5 1 5 6 4 6 7 1 7 7 3 8 8 2 9 9 5 10
TABELA PERSOANE: PersNo PersNume PersPrenume PersMail ....alte câmpuri...
1 IONESCU Ion [email protected]
2 GATES Bill
3 POPESCU Vasile [email protected]
4 GEORGESCU Petre [email protected]
5 TORVALDS Linus 6 VASILESCU Victor [email protected]
Managementul datelor şi al cunoştinţelor
CF 5 16/02/03
MODELUL DATELOR:
RELATII INTRE TABELE:
Cardinalitate: PUBLICATII (1) LUCRARI (n)
O lucrare apare într-o singură publicaţie O publicaţie poate conţine oricâte lucrări
LUCRARI (1) AUTORI (n) Fiecare înregistrare din tabela AUTORI se referă la o singură
lucrare (dacă aceeaşi persoană are mai multe lucrări, acestea apar în înregistrări distincte)
O lucrare poate avea mai mulţi autori. AUTORI (n) PERSOANE (1)
O pesoană poate fi autorul mai multor lucrări Fiecare înregistrare din tabela AUTORI se referă la o anumită
persoană.
Integritate referenţială: Fiecare referinţă dintr-o tabelă către alta să corespundă unei
întegistrări existente . Exemplu: LUCRARI.PubNo PUBLICATII.PubNo Integritatea referenţială poate fi distrusă în urma unor operaţii de ştergere / modificare.
Managementul datelor şi al cunoştinţelor
CF 6 16/02/03
1.3 SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD).
STRUCTURA UNUI SGBD:
• „MOTORUL” bazei de date („Database Engine”).
Realizează operaţiile de gestionare a informaţiilor stocate în baza de date:
• Structura bazei de date: Crearea / modificarea / ştergerea tablelor Crearea / modificarea / ştergerea indecşilor
• Operaţii asupra datelor: Înserarea datelor Modificarea datelor Ştergerea datelor Controlul integrităţii referenţiale Căutări, interogări
• DATELE („Data Store”) Aici sunt stocate datele din BD. Modelul datelor este stocat împreună cu datele !!!
• INTERFAŢA („User Interface”)
Asigură interfaţa între utilizator şi motorul bazei de date.
Interfeţe tip „linie de comandă” Interfeţe grafice.
Managementul datelor şi al cunoştinţelor
CF 7 16/02/03
TIPURI DE SGBD:
• BAZE DE DATE „MONOLITICE”:
Motorul bazei de date şi interfaţa se află pe acelaşi sistem de calcul. În principal, baze de date de talie şi performanţe reduse.
• BAZE DE DATE „CLIENT – SERVER”:
CLIENT
Cereri
Rezultate SERVER
Clientul poate fi :
Clent „greu un program „dedicat” (specific bazei de date)” Client „uşor” un browser (Internet Explorer, Netscape), care
interacţionează cu baza de date prin intermediul unei interfeţe software (ASP, Java, JavaScript, VBScript, PHP, etc...)
Trebuie făcută distincţia între:
Modelul Client-Server Modelul cu acces la distanţă
Managementul datelor şi al cunoştinţelor
CF 8 16/02/03
EXEMPLE DE SGBD:
• BAZE DE DATE „CLIENT – SERVER”: ORACLE IBM – DB2 INFORMIX MS SQL - SERVER ... şi altele ...
• BAZE DE DATE „MONOLITICE”: Windows:
MS Access Fox Pro MySQL ... şi altele ...
Linux: (în general, Open Source) MySQL PostgreSQL ... şi altele ...
Notă: toate aceste baze de date pot fi accesate prin intermediul unor clienţi uşori, comportându-se în unele situaţii ca baze de date „client-server”.
Managementul datelor şi al cunoştinţelor
CF 9 16/02/03
1.3.1 Conţinutul unui SGBD.
1.3.1.1 „Motorul” SGBD (Database Engine).
Realizează operaţiunile asupra datelor din BD: Crearea structurilor de date (table, indecşi, etc) Definirea unor reguli de integritate a datelor. Gestiunea „procedurilor stocate” (dacă baza de date o permite). Operaţiuni asupra datelor:
Interogare (Selecţie). Adăugare. Modificare. Ştergere.
Interpretarea comenzilor primite.
Gestiunea şi execuţia codului scris într-un limbaj de programare (universal sau specific).
1.3.1.2 Datele stocate (Data Store).
Structuri de date: Tabele („Table”)
Sunt structurile fundamentale de stocare a datelor. Conţin efectiv datele, în una sau mai multe table.
Indecşi. Structuri ajutătoare, care sporesc performanţele în operaţiile de
căutare / sortare. „Vederi” („View”) Proceduri stocate („stored procedures”). Operaţiuni („Query”) Etc...
1.3.1.3 Interfaţa cu utilizatorii (User Interface).
Ecrane. Asigură un cadru comod pentru operaţiile asupra datelor din BD.
Ecrane in mod „text” Ecrane grafice (gen Windows).
Repoarte. Situaţii tipărite, pentru prezentarea datelor după diverse puncte de
vedere. Module de cod.
Proceduri auxiliare, scrise într-un limbaj de programare proprietar sau standardizat (ex: SQL, limbaje de „generaţia a patra”, etc...)
Etc...
Managementul datelor şi al cunoştinţelor
CF 10 16/02/03
1.3.2 Table.
Componenta fundamentală a unui SGBD.
1.3.2.1 Structura unei table.
Exemplu: PersNo PersNume PersPrenume PersMail etc
1 IONESCU Ion [email protected]
2 GATES Bill
3 POPESCU Vasile [email protected] Înregistrări 4 GEORGESCU Petre [email protected]
5 TORVALDS Linus 6 VASILESCU Victor [email protected]
Câmpuri
Tipuri de câmpuri (dependent de tipul BD): Numerice:
• Seriale (autoNumber) • Intregi (Integer) • Întregi lungi (Long Integer) • Reale (Real, Float, Single, ...) • Zecimale (Decimal) • Monetare (Currency)
Text: (Text, Char(n), ...) Obiecte Diverse alte tipuri, în funcţiune de implementare...
Observaţii:
Nu pot exista două înregistrări identice – fiecare înregistrare este unică !!! (se poate evita, incluzând un câmp SERIAL / AutoNumber, care identifică în mod unic o înregistrare)
Valorile din coloane sunt de acelaşi tip. Ordinea coloanelor nu este semnificativă. Ordinea liniilor nu este semnificativă.
1.3.3 Indecşi.
Structuri auxiliare ataşate unor câmpuri sau grupuri de câmpuri, cu scopul de a:
Accelera operaţiile de căutare Accelera operaţiile de sortare.
Cheie primară:
Index principal, care asigură unicitatea unei înregistrări.
Managementul datelor şi al cunoştinţelor
CF 11 16/02/03
Inconveniente: Operaţiile de adăugare / modificare pot fi încetinite. Creşte volumul bazei de date. Pot perturba accesul concurent la o tablă, în sisteme cu mai mulţi
utilizatori („Multi User”)
Tipuri de indecşi: Indecşi pe un singur câmp Indecşi pe mai multe câmpuri.
Indecşi unici:
Nu este permis ca două înregistrări să conţină acceaşi valoare a indexului (indiferent de numărul de câmpuri al indexului)
Ce câmpuri trebuie indexate:
În general, câmpurile de legatură cu alte table. Cheia primară a unei table.
Exemplu: tabla AUTORI (v. mai jos):
Tabela Campul Tip Descriere AUTORI Autorii lucrarilor (legatura intre LUCRARI si PERSOANE) AutorNo Counter Contor intern LucrNo Long Publicatia: Legatura la PUBLICATII->PubNo PersNo Long Autorul: Legatura la PERSOANE->PersNo Index PrKey Unique Fields LUCRARIAUTORI No LucrNo PERSOANEAUTORI No PersNo PrimaryKey Yes Yes AutorNo
PrimaryKey: Cheia primară (un contor, care asigură unicitatea valorii ->
index unic) LUCRARIAUTORI: legătura cu înregistrarea corespunzătoare din tabla
LUCRARI (nu este index unic, pot exista mai multe înregistrări din tabla LUCRARI care se referă la o aceeaşi publicaţie)
PERSOANEAUTORI: legătura cu înregistrarea corespunzătoare din tabla PERSOANE (nu este index unic, pot exista mai multe înregistrări din tabla PERSOANE care se referă la o aceeaşi publicaţie)
Managementul datelor şi al cunoştinţelor
CF 12 16/02/03
1.3.4 Exemplu de bază de date.
Structura bazei de date: MDC_ExBiblio.mdb Tabela Campul Tip Descriere AUTORI Autorii lucrarilor (legatura intre LUCRARI si PERSOANE) AutorNo Counter Contor intern LucrNo Long Publicatia: Legatura la PUBLICATII->PubNo PersNo Long Autorul: Legatura la PERSOANE->PersNo
Index PrKey Unique Fields
LUCRARIAUTORI No LucrNo PERSOANEAUTORI No PersNo PrimaryKey Yes Yes AutorNo
LUCRARI Lucrarile din bibliografie LucrNo Counter Nr. serial al lucrarii (contor intern) LucrTitlu Text(50) Titlul lucrarii Anul Integer Anul aparitiei Nr Integer pt. reviste: numarul din an; pt. carti: ramane blanc LucrRezumat Memo Rezumatul lucrarii LucrKwd Text(50) Cuvinte - cheie PubNo Long Legatura la tabla PUBLICATII->PubNo PubEtc Text(5) ... alte informatii .....
Index PrKey Unique Fields
PrimaryKey Yes Yes LucrNo PUBLICATIILUCRARI No PubNo
PERSOANE Tabela de persoane (autori) PersNo Counter Nr. serial al persoanei (contor intern) PersNume Text(20) Numele persoanei PersPrenume Text(20) Prenumele persoanei PersMail Text(20) Adresa de e_mail PersEtc Text(5) .... alte eventuale informatii ...
Index PrKey Unique Fields
PrimaryKey Yes Yes PersNo
PUBLICATII Tabela de publicatii PubNo Counter Nr. publicatiei (contor intern) PubNume Text(50) Denumirea publicatiei / editurii PubOras Text(20) Orasul unde apare PubCarte Yes/No Yes=carte, No=revista PubEtc Text(5) ... alte campuri ....;
Index PrKey Unique Fields
PrimaryKey Yes Yes PubNo
Managementul datelor şi al cunoştinţelor
CF 13 16/02/03
1.4 O ABORDARE FORMALĂ. Entităţi:
Reprezentarea simplificată a unui obiect sau a unui concept. Se face abstracţie de elementele care nu sunt relevante în cadrul
reprezentării.
Instanţă: Un reprezentant particular al unei entităţi.
Domeniu:
Descrierea unei mulţimi de valori autorizate. Relaţii:
Produsul cartezian al n domenii D = D1 x D2 x ................ x Dn e constituit de „tuple” < a1, a2, ...................., an> astfel încât: ai ∈ Di , i=1, n
Tablă (tabelă):
Reprezentarea „bidimensională” a unei relaţii:
PersNo PersNume PersPrenume PersMail etc 1 IONESCU Ion [email protected]
2 GATES Bill
3 POPESCU Vasile [email protected] Instanţă 4 GEORGESCU Petre [email protected]
5 TORVALDS Linus 6 VASILESCU Victor [email protected]
a1 a2 an
Atribute Schema unei relaţii:
R (A1, A2 , . . . . , An) Relaţie compusă din atributele Ai Exemple: PUBLICAŢII (PubNo, PubNume, PubOras, ...) PERSOANE (PersNo, PersNume, PersPrenume, PersMail, PersEtc)
Managementul datelor şi al cunoştinţelor
CF 14 16/02/03
Convenţie: Cheia primară a fost reprezentată cu caractere subliniate:
Baze de date relaţionale:
Reuniunea unui număr finit de relaţii Observaţii relative la terminologie:
Termen formal Termen uzual (engleză) Termen uzual (română) relaţie table tablă (tabelă) atribut field câmp tuplu record înregistrare
Modelul Entităţi – Asociaţii (relaţii) (v. baza de date MDC_ExBiblio.mdb):
PersNoPersNumePersPrenume....LucrNo
PERSOANE ScriuLucrNuLucrTitlu....PersId
LUCRARIApar In
PubNuPubNume...LucrNo
PUBLICATII
0,n 1,n 0,1 1,n
Persoanele SCRIU Lucrari Lucrarile APAR IN Publicatii
Entităţi:
PERSOANE (PersNo, PersNume, PersPrenume) LUCRARI (LucrNo, LucrTitlu) PUBLICATII (PubNo, PubNuşe)
Cardinalităţi minime şi maxime :
Numărul minim (maxim ) de instanţe ale entităţii de sosire asociate cu entitatea de plecare ( se scriu de partea entităţii de plecare )
PersNoPersNumePersPrenume....
PERSOANE Scriu
LucrNuLucrTitlu....
LUCRARI0,n 1,n
Persoanele SCRIU Lucrari
O persoană poate scrie între 0 şi un număr oarecare (n) de lucrări.(dacă se includ printre persoane şi cele care nu scriu nimic; dacă nu, cardinalităţile se schimbă în (1,n) ).
O lucrare poate fi scrisă de o singură persoană (1) sau de mai multe (n)
Managementul datelor şi al cunoştinţelor
CF 15 16/02/03
LucrNuLucrTitlu....
LUCRARI Apar In
PubNuPubNume...
PUBLICATII0,1 1,n
Lucrarile APAR IN Publicatii
O lucrare poate să nu apară deloc (0) sau să apară într-o singură publicaţie.
Se poate modifica în (1,1) dacă se consideră lucrări numai cele publicate;
Excepţia, în general de neacceptat, a unei lucrări publicate în mai multe publicaţii, nu este luată în considerare în modelul de mai sus.
O publicaţie conţine cel puţin o lucrare (1), dar poate conţine mai multe (n).
Dependenţă funcţională
Două mulţimi X şi Z sunt în dependentă funcţională dacă o valoare x∈X
determină una şi numai una din valorile y∈Y, pentru orice x∈X. | ,X Y x X y Y x X⇒ ∈ ⇒ ∈ ∀ ∈
O dependenţă funcţională elementară cuprinde un minim de atribute în
partea stângă. Chei (Keys):
Ansamblu de atribute care determină în mod unic o relaţie ( permit identificarea univocă a unei instanţe )
R ( A1 , A2, ..., Ak , ........, An)
Exemplu: PERSOANE (PersNo, PersNume, ....)
Orice relaţie trebuie să posede o cheie.
Alt exemplu: codul numeric personal (CNP): CNP = S AA LL ZZ NNNNNN
S = sexul (1/2) AA = anul naşterii (00-99, secolul ??? ) LL = luna ZZ = ziua NNNNNN=număr (există, teoretic, riscul unor valori dedublate)
Managementul datelor şi al cunoştinţelor
CF 16 16/02/03
Normalizare: Descompunerea ansamblului de atribute ale sistemului modelat, astfel încât:
Să nu existe pierderi de informaţie Relaţiile semantice care sunt construite să rămână coerente.
Date pentru exemplificare (v. baza de date MDC_ExComenzi.mdb): Comenzi-V0:
ComNo ComData ComFurn FurnAdr ComArt 1 1/12/2002 HP Stirbei Vodă 95, Buc, Ro DJ3325, DJ5550 2 2/12/2002 FLAM G. Enescu 36, Buc, Ro 2*DJ5550, D145 3 1/02/2003 DC Stirbei Voda 60, Buc, Ro 2*D145, PSC2100 4 1/03/2003 HP Stirbei Vodă 95, Buc, Ro 2*DJ3325, DJ3420, PSC2210 5 2/03/2003 HPUS 10 Main Str, LA, USA PSC2100, D145
Forme normale - CODD – 1970 1) Prima formă normală (FN1)
O relaţie este în FN1 dacă toate atributele care o compun sunt de tip atomic. (toate tablele sunt compuse din câmpuri elementare) Exemplu: Tabla Comenzi-V0 nu este în FN1: ComNo ComData ComFurn FurnAdr ComArt
1 1/12/2002 HP Stirbei Vodă 95, Buc, Ro DJ3325, DJ5550 2 2/12/2002 FLAM G. Enescu 36, Buc, Ro 2*DJ5550, D145 3 1/02/2003 DC Stirbei Voda 60, Buc, Ro 2*D145, PSC2100 4 1/03/2003 HP Stirbei Vodă 95, Buc, Ro 2*DJ3325, DJ3420, PSC2210 5 2/03/2003 HPUS 10 Main Str, LA, USA PSC2100, D145 Este un agregat Este o listă va fi descompus în
câmpuri elementare: va fi transferată în înregistrări separate:
Rezultă : Comenzi-FN1 ComNo ComData ComFurn FurnStr FornLoc FurnTara ComArt ComCant
1 1/12/2002 HP St.Voda 95 Buc Ro DJ3325 1 1 1/12/2002 HP St.Voda 95 Buc Ro DJ5550 1 2 2/12/2002 FLAM G.Enescu36 Buc Ro DJ5550 2 2 2/12/2002 FLAM G.Enescu36 Buc Ro D145 1 3 1/02/2003 DC St.Voda 60 Buc Ro D145 2 3 1/02/2003 DC St.Voda 60 Buc Ro PSC2100 1 4 1/03/2003 HP St.Voda 95 Buc Ro DJ3325 2 4 1/03/2003 HP St.Voda 95 Buc Ro DJ3420 1 4 1/03/2003 HP St.Voda 95 Buc Ro PSC2210 1 5 2/03/2003 HPUS 10 Main St. LA USA PSC2100 1 5 2/03/2003 HPUS 10 Main St. LA USQ D145 1
Comenzi-FN1(ComNo, ComArt, ComData, ComFurn, FurnStr, FurnLoc, FurnTara, ComCant)
Managementul datelor şi al cunoştinţelor
CF 17 16/02/03
2) A doua formă normală (FN2)
O relaţie este în FN2 dacă ea este în FN1 şi dacă nici un atribut din cheie nu este determinat de un subansamblu de atribute din cheie. (cheia să nu conţină redondanţe) Exemplu: Tabla Comenzi-FN1 nu este în FN2:
ComNo este o parte a cheii, iar ComFurn, FurnStr, FurnLoc, FurnTara depind numai de ea.
Soluţia: se separă datele în două table: Comenzi-FN2 ComNo ComData ComFurn FurnStr FornLoc FurnTara
1 1/12/2002 HP St.Voda 95 Buc Ro 1 1/12/2002 HP St.Voda 95 Buc Ro 2 2/12/2002 FLAM G.Enescu36 Buc Ro 2 2/12/2002 FLAM G.Enescu36 Buc Ro 3 1/02/2003 DC St.Voda 60 Buc Ro 3 1/02/2003 DC St.Voda 60 Buc Ro 4 1/03/2003 HP St.Voda 95 Buc Ro 4 1/03/2003 HP St.Voda 95 Buc Ro 4 1/03/2003 HP St.Voda 95 Buc Ro 5 2/03/2003 HPUS 10 Main St. LA USA 5 2/03/2003 HPUS 10 Main St. LA USQ
Articole ComNo ComArt ComCant
1 DJ3325 1 1 DJ5550 1 2 DJ5550 2 2 D145 1 3 D145 2 3 PSC2100 1 4 DJ3325 2 4 DJ3420 1 4 PSC2210 1 5 PSC2100 1 5 D145 1
Comenzi-FN2(ComNo , ComData, ComFurn, FurnStr, FurnLoc, FurnTara) Articole (ComNo, ComArt , ComCant )
Unde Articole.ComNo este o cheie străină (foreign key) de legătură cu tabla Comenzi,
Managementul datelor şi al cunoştinţelor
CF 18 16/02/03
3) A treia formă normală (FN3)
O relaţie este în FN3 dacă ea este în FN2 şi dacă nici un atribut care nu aparţine cheii nu depinde de altul care nu aparţine nici el cheii.
Exemplu: Tabla Comenzi-FN2 nu este în FN3 :
Soluţia: se separă tabla Comenzi-FN2 în două table: Furnizori: FurnCod FurnStr FornLoc FurnTara FurnNume HP St.Voda 95 Buc Ro Hewlett-Packard Romania FLAM G.Enescu36 Buc Ro Flamingo Computers DC St.Voda 60 Buc Ro Depozitul de calculatoare HPUS 10 Main St. LA USQ Hewlett-Packard
Comenzi: ComNo ComData ComFurn
1 1/12/2002 HP 1 1/12/2002 HP 2 2/12/2002 FLAM 2 2/12/2002 FLAM 3 1/02/2003 DC 3 1/02/2003 DC 4 1/03/2003 HP 4 1/03/2003 HP 4 1/03/2003 HP 5 2/03/2003 HPUS 5 2/03/2003 HPUS
Articole ComNo ComArt ComCant
1 DJ3325 1 1 DJ5550 1 2 DJ5550 2 2 D145 1 3 D145 2 3 PSC2100 1 4 DJ3325 2 4 DJ3420 1 4 PSC2210 1 5 PSC2100 1 5 D145 1
ComData
ComFurn
FurnStr FurnLoc FurnTara
ComNo
Managementul datelor şi al cunoştinţelor
CF 19 16/02/03
Furnizori (FurnCod, FurnStr, FurnLoc, FurnTata, FurnNume) Comenzi(ComNo , ComData, ComFurn) Articole (ComNo, ComArt , ComCant )
Un furnizor poate avea mai multe comenzi
O comandă poate cuprinde mai mulşte articole Un articol apare o singură dată într-o comandă.
Managementul datelor şi al cunoştinţelor
CF 20 16/02/03
De la modelul „entităţi – relaţii” la „modelul relaţional”:
Reguli de tranziţie: R1. Se creează o relaţie (R) (adică o tablă) pentru fiecare entitate, în care sunt
incluse toate atributele entităţii. R2. Două entităţi E1 şi E2 care sunt legate printr-o asociaţie (1,1) se traduc în două
relaţii R1 şi R2 (adică în două table T1 şi T2), în care se includ: • Atributele relaţiilor respective, • Se adaugă în E2 cheia lui E1 („cheie străină”, „foreign key”)
R3. Două entităţi E1 şi E2 care sunt legate printr-o asociaţie (n,m) se traduc în • două relaţii R1 şi R2 (adică în două table T1 şi T2), care înglobează
atributele din R1 şi R2 • o relaţie R12 (adică o nouă tablă) care include cheile din R1 şi R2 (v.
exemplu tablei AUTORI de mai sus).
Rezultat: (v. mai sus baza de date MDC_ExBiblio.mdb):
Managementul datelor şi al cunoştinţelor
CF 21 16/02/03
1.5 Algebra relaţiilor.
=> Date selecţionate
RESTRICŢIE (SELECŢIE):
Selectarea acelor înregistrări care satisfac anumite criterii de selecţie;
PROIECŢIE Selectarea anumitor câmpuri din toare înregistrările.
PRODUS CARTEZIAN: Concatenarea tuturor tuplelor (înregistrărilor) din prima tablă cu toate înregistrările din cea de a doua tablă.
JOIN Combinarea între produsul cartezian şi restricţie. Operatorul (=) poate fi înlocuit de ( > < >= <= )
a b c
1 2
=>
a 1 a 2 b 1 b 2 c 1 c 2
1 a 2 b 1 c 3 d
1 u 2 v 3 w 4 x
=>
1 a 1 u 2 b 2 v 1 c 1 u 3 d 3 w
Managementul datelor şi al cunoştinţelor
CF 22 16/02/03
UNIUNE Reunirea într-o singură tablă a tuturor înregistrărilor din două table (de structuri compatibile).
=>
INTERSECŢIA Extragerea înregistrărilor comune din două table (de structuri compatibile).
=>
DIFERENŢA Extragerea înregistrărilor dintr-o tablă care nu se găsesc în cea de a doua tablă (de structuri compatibile)
DIVIZIUNEA Care sunt înregistrările din prima tablă asociate (prin intermediul a două câmpuri cu domeniile de definiţie comune) cu toate înregistrările din a doua tablă.
=>
a 1 d 2 a 3 b 1 c 2 a 2
1 2 3
=>
a
Managementul datelor şi al cunoştinţelor
CF 23 16/02/03
1.6 SQL - limbajul sistemelor de gestiune a bazelor de date. SQL = S(tructured) Q(uery) L(anguage)
= Limbaj structurat de interogare (a bazelor de date).
Standard care precizează sintaxa instrucţiunilor prin care se pot executa operaţiuni asupra datelor dintr-o bază de date.
Exemplu:
SELECT LUCRARI.LucrTitlu, LUCRARI.Anul FROM PERSOANE INNER JOIN (LUCRARI INNER JOIN AUTORI ON LUCRARI.LucrNo = AUTORI.LucrNo) ON PERSOANE.PersNo = AUTORI.PersNo WHERE (((PERSOANE.PersNume)="IONESCU") AND ((PERSOANE.PersPrenume)="Ion")) ORDER BY LUCRARI.Anul;
Categorii de instrucţiuni SQL:
Instrucţiuni de selectare (extragere) a datelor dintr-o bază de date: SELECT ....
Instrucţiuni de modificare a datelor: INSERT ... UPDATE ... DELETE ...
Instrucţiuni de definire a structurilor de date: CREATE DATABASE ... CREATE TABLE ... CREATE INDEX ... ...
1.6.1 Instrucţiunea SELECT.
Permite extragerea unor date, care răspund unor criterii de selecţie. Nu modifică datele.
Analiza unei instrucţiuni SELECT tipice:
SELECT LUCRARI.LucrTitlu, LUCRARI.Anul Clauza SELECT - ce se va selecta
FROM PERSOANE Clauza FROM - de unde
INNER JOIN Clauze de legătură între table (LUCRARI INNER JOIN AUTORI ON LUCRARI.LucrNo = AUTORI.LucrNo) ON PERSOANE.PersNo = AUTORI.PersNo WHERE (((PERSOANE.PersNume)="IONESCU") Criterii de selecţie. AND ((PERSOANE.PersPrenume)="Ion")) ORDER BY LUCRARI.Anul; Criterii de ordonare.
Managementul datelor şi al cunoştinţelor
CF 24 16/02/03
Sintaxa :
SELECT DISTINCT DISTINCTROW TOP n câmpuri AS xxx FROM tablă, ... INNER JOIN LEFT JOIN RIGHT JOIN tablă ON xxx = yyy WHERE xxx OP yyy [GROUP BY] xxx [HAVING] xxx OP yyy ORDER BY xxx
NNNN= opţionale OP = (< > <= >= <> BETWEEN LIKE IN .NOT IN...)
Funcţiuni - agregat:
COUNT( ..) SUM (...) MIN (...) MAX(...) AVG (...) StDev( ), StDevP(..), Var (...), VarP (...)
Managementul datelor şi al cunoştinţelor
CF 25 16/02/03
1.6.2 Instrucţiuni de modificare a datelor.
1.6.2.1 Instrucţiunea INSERT INSERT INTO <nume tabla>
[(lista coloane insert)] [VALUES (lista valori de inserat)
<lista coloane insert> := <nume coloana> [, <nume coloana] <lista valori de inserat>:= <InsValoare> [,<InsValoare>] <InsValoare> := <valoare> | NULL
Exemplu:
INSERT INTO ArticoleLista ( ArtCod ) SELECT DISTINCT Articole.CodArt FROM Articole;
INSERT INTO ArticoleLista ( ArtCod ) VALUES („”IBM”);
1.6.2.2 Instrucţiunea UPDATE UPDATE <nume tabla>
SET <clauza update> WHERE <clauza where>
<clauza update>=<coloana = valoare>[,<coloana=valoare>]
Exemplu: UPDATE Comenzi SET (ComFurn = „”HPUS”) WHERE (ComNo=4);
1.6.2.3 Instrucţiunea DELETE DELETE FROM <nume tabla>
WHERE <clauza>
Exemplu: DELETE FROM Comenzi WHERE (ComNo=4);
Managementul datelor şi al cunoştinţelor
CF 26 16/02/03
1.6.3 Instrucţiuni de definire a structurilor de date.
1.6.3.1 Instrucţiunea CREATE TABLE. CREATE TABLE <nume tabla>
(<element> [,<element>]) <element>:= NumeColoana Tip [ <clauze> ]
Exemplu:
CREATE TABLE Produse ( Cod Text(20) NOT NULL, Nume Text(50)) CONSTRAINT [Index1] Primary Key (Cod);
1.6.4 Create Index
CREATE [ UNIQUE ] INDEX index ON table (field [ASC|DESC][, field [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
1.6.5 Tranzacţii.
Grup de instrucţiuni care trebuie executqte în totalitate, sau, în caz de eroare, trebuie abandonate în totalitate.
BEGIN TRANS
Instructiuni (modificarile inca nu se transmit in baza de date)
... COMMIT TRANS (daca e OK, se inregistreaza
in baza de date toate operatiunile executate)
ROLLBACK (daca au aparut erori, se revine
La valorile initiale)
Man
agem
entu
l dat
elor
şi a
l cun
oştinţe
lor
CF
27
16/0
2/03
1.7
SQL şi
alg
ebra
relaţio
nală
. (v
. baz
a de
dat
e M
DC
_ExC
omen
zi.m
db):
OPE
RAŢI
A
Inst
rucţ
iune
a SQ
L R
EZU
LTA
TUL
RES
TRICŢI
A (S
ELEC
ŢIA
) C
omen
zi:
Com
No
Com
Dat
a C
omFu
rn1
1/12
/200
2 H
P
1 1/
12/2
002
HP
2
2/12
/200
2 FL
AM
2
2/12
/200
2 FL
AM
3
1/02
/200
3 D
C
3 1/
02/2
003
DC
4
1/03
/200
3 H
P
4 1/
03/2
003
HP
4
1/03
/200
3 H
P
5 2/
03/2
003
HPU
S
5 2/
03/2
003
HPU
S
Car
e su
nt c
omen
zile
făcu
te la
HP
: SE
LEC
T C
omen
zi.*
FRO
M C
omen
zi
WH
ERE
(((C
omen
zi.C
omFu
rn)=
"HP
"));
PRO
IEC
TIA
C
omen
zi:
Com
No
Com
Dat
a C
omFu
rn1
1/12
/200
2 H
P
1 1/
12/2
002
HP
2
2/12
/200
2 FL
AM
2
2/12
/200
2 FL
AM
3
1/02
/200
3 D
C
3 1/
02/2
003
DC
4
1/03
/200
3 H
P
4 1/
03/2
003
HP
4
1/03
/200
3 H
P
5 2/
03/2
003
HPU
S
5 2/
03/2
003
HPU
S
Car
e su
nt c
omen
zile
şi f
urni
zorii
re
spec
tivi:
SELE
CT
Com
enzi
.Com
No,
C
omen
zi.C
omFu
rn
FRO
M C
omen
zi;
Man
agem
entu
l dat
elor
şi a
l cun
oştinţe
lor
CF
28
16/0
2/03
PRO
DU
S C
AR
TEZI
AN
C
omen
zi:
Com
No
Com
Dat
a C
omFu
rn1
1/12
/200
2 H
P
1 1/
12/2
002
HP
2
2/12
/200
2 FL
AM
2
2/12
/200
2 FL
AM
3
1/02
/200
3 D
C
3 1/
02/2
003
DC
4
1/03
/200
3 H
P
4 1/
03/2
003
HP
4
1/03
/200
3 H
P
5 2/
03/2
003
HPU
S
5 2/
03/2
003
HPU
S
Fu
rniz
ori:
Furn
Cod
Fu
rnSt
r Fo
rnLo
cH
P S
t.Vod
a 95
B
uc
FLA
M
G.E
nesc
u36
Buc
D
C
St.V
oda
60
Buc
H
PUS
10 M
ain
St.
LA
SELE
CT
Com
enzi
.Com
No,
Com
enzi
.Com
Dat
a,
C
omen
zi.C
omFu
rn,
Fu
rniz
ori.F
urnS
tr,
Fu
rniz
ori.F
urnL
oc
FRO
M C
omen
zi, F
urni
zori;
Man
agem
entu
l dat
elor
şi a
l cun
oştinţe
lor
CF
29
16/0
2/03
JOIN
Com
enzi
: C
omN
o C
omD
ata
Com
Furn
1 1/
12/2
002
HP
1
1/12
/200
2 H
P
2 2/
12/2
002
FLA
M
2 2/
12/2
002
FLA
M
3 1/
02/2
003
DC
3
1/02
/200
3 D
C
4 1/
03/2
003
HP
4
1/03
/200
3 H
P
4 1/
03/2
003
HP
5
2/03
/200
3 H
PUS
5
2/03
/200
3 H
PUS
Furn
izor
i: Fu
rnC
od
Furn
Str
Forn
Loc
HP
St.V
oda
95
Buc
FL
AM
G
.Ene
scu3
6 B
uc
DC
S
t.Vod
a 60
B
uc
HPU
S 10
Mai
n St
. LA
Com
enzi
le la
div
erşi
i fur
nizo
ri:
* V
aria
nta
1:
SELE
CT
Com
enzi
.Com
No,
Com
enzi
.Com
Dat
a,
C
omen
zi.C
omFu
rn,
Fu
rniz
ori.F
urnS
tr,
Fu
rniz
ori.F
urnL
oc,
Fu
rniz
ori.F
urnT
ara
FRO
M C
omen
zi, F
urni
zori
WH
ERE
(((C
omen
zi.C
omFu
rn)=
[Fur
nizo
ri].[F
urnC
od]))
; V
aria
nta
2 (c
u JO
IN):
SELE
CT
Com
enzi
.Com
No,
omen
zi.C
omD
ata,
Furn
izor
i.Fur
nStr,
Furn
izor
i.Fur
nLoc
,
Furn
izor
i.Fur
nTar
a FR
OM
C
omen
zi IN
NER
JO
IN F
urni
zori
ON
C
omen
zi.C
omFu
rn =
Fu
rniz
ori.F
urnC
od;
Man
agem
entu
l dat
elor
şi a
l cun
oştinţe
lor
CF
30
16/0
2/03
UN
IUN
E Com
enzi
2002
C
omen
zi20
03
Toat
e co
men
zile
din
ani
i 200
2 şi
20
03:
SELE
CT
* FR
OM
Com
enzi
2002
U
NIO
N
SELE
CT
* FR
OM
Com
enzi
2003
;
INTE
RSE
CŢI
A
Com
enzi
: (de
la s
ediu
l prin
cipa
l) C
omN
o C
omD
ata
Com
Furn
1 1/
12/2
002
HP
1
1/12
/200
2 H
P
2 2/
12/2
002
FLA
M
2 2/
12/2
002
FLA
M
3 1/
02/2
003
DC
3
1/02
/200
3 D
C
4 1/
03/2
003
HP
4
1/03
/200
3 H
P
4 1/
03/2
003
HP
5
2/03
/200
3 H
PUS
5
2/03
/200
3 H
PUS
Com
enzi
: (al
tă s
ucur
sală
)
Car
e su
nt c
omen
zile
car
e au
fost
fă
cute
şi d
e al
tă s
ucur
sală
: SE
LEC
T C
omen
zi.C
omN
o,
C
omen
zi.C
omD
ata,
Com
enzi
.Com
Furn
FR
OM
Com
enzi
W
HER
E
(((E
xist
s
(SEL
ECT
Com
enzi
.Com
No,
Com
enzi
.Com
Dat
a,
C
omen
zi.C
omFu
rn
FRO
M C
omen
ziAl
taSu
curs
ala
WH
ERE
Com
enzi
.Com
No=
C
omen
ziA
ltaS
ucur
sala
.Com
No)
)
<>Fa
lse)
);
Man
agem
entu
l dat
elor
şi a
l cun
oştinţe
lor
CF
31
16/0
2/03
DIF
EREN
ŢA
Com
enzi
: (de
la s
ediu
l prin
cipa
l) C
omN
o C
omD
ata
Com
Furn
1 1/
12/2
002
HP
1
1/12
/200
2 H
P
2 2/
12/2
002
FLA
M
2 2/
12/2
002
FLA
M
3 1/
02/2
003
DC
3
1/02
/200
3 D
C
4 1/
03/2
003
HP
4
1/03
/200
3 H
P
4 1/
03/2
003
HP
5
2/03
/200
3 H
PUS
5
2/03
/200
3 H
PUS
Com
enzi
: (al
tă s
ucur
sală
)
Car
e su
nt c
omen
zile
car
e nu
au
fost
făcu
te d
ecât
de
la s
ediu
l pr
inci
pal:
SELE
CT
Com
enzi
.Com
No,
Com
enzi
.Com
Dat
a,
C
omen
zi.C
omFu
rn
FRO
M C
omen
zi
WH
ERE
((
(Not
Exi
sts
(S
ELEC
T C
omen
zi.C
omN
o,
C
omen
zi.C
omD
ata,
Com
enzi
.Com
Furn
FR
OM
Com
enzi
Alta
Sucu
rsal
a W
HER
E C
omen
zi.C
omN
o=
Com
enzi
Alta
Suc
ursa
la.C
omN
o))
<>
Fals
e));
Man
agem
entu
l dat
elor
şi a
l cun
oştinţe
lor
CF
32
16/0
2/03
DIV
IZIU
NEA
A
rtic
ole:
A
rtic
oleL
ista
(toat
e ar
t. co
man
date
, fă
ră re
petiţ
ie ):
Car
e su
nt c
omen
zile
car
e cu
prin
d to
ate
artic
olel
e co
man
date
: SE
LEC
T D
ISTI
NC
T
A1.C
omN
o FR
OM
Arti
cole
AS
A1
WH
ERE
((
(Exi
sts
(S
ELEC
T A
rtCod
FRO
M A
rtico
leLi
sta
WH
ERE
N
OT
EXIS
TS
(S
ELEC
T *
FRO
M A
rtico
le A
S A2
WH
ERE
A
1.C
omN
o=A
2.C
omN
o
A
ND
Arti
cole
List
a.A
rtCod
=A2.
Cod
Art
)))=
Fals
e));
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 33 16/02/03
1.8 INIŢIERE ÎN ACCESS.
MS JET Motorul bazei de date
Visual C++
Visual BASIC
ACCESS
ODBC
ORACLE
SQL Server
INFORMIX
WORD
EXCEL
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 34 16/02/03
OBIECTE DE BAZĂ
ACCESS JET
Table
Query (interogări)
Formulare (ecrane)
Reporturi
Macro
Module
Acces la date
Interfaţa
Programare
TABLE
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 35 16/02/03
TABLE
BAZA de DATE principală
TABLE interne
Ecrane
BAZA de DATE ataşată
TABLE ataşate
Query
BAZĂ de DATE SQL
TABLE ataşate
Repoarte
MACRO COD
BIBLIOTECI nume.MDA
nume.MDB
DLL
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 36 16/02/03
TABLE - TIPURI DE CÂMPURI ACCESS Echiv. SQL AutoNumber SERIAL (nu sub ODBC) Text(n) CHAR(n) Number Byte Integer INTEGER LongInteger LONG Single REAL, FLOAT Double FLOAT Currency MONEY, DECIMAL Yes/No INTEGER Memo --- Objet OLE --- INDEX INDEX LINK ---
QUERY (interogări)
TIPURI SQL SELECTION SELECT *** FROM xxx UPDATE UPDATE xxx SET *** (modificări) APPEND INSERT INTO xxx (adăugiri) MAKE TABLE SELECT *** FROM *** INTO xxx (creare) DELETE DELETE *** FROM xxx (ştergere) CROSSTAB TRANSFORM *** SELECT *** PIVOT *** (anal. încrucişată) (nu şi în SQL standard ) UNION SELECT *** UNION SELECT *** PASS-THROUGH sintaxa bazei SQL client
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 37 16/02/03
Construcţia unei interogări (Query). Construcţia vizuală (Access): Codul SQL echivalent: Selecţie :
SELECT LUCRARI.LucrTitlu, LUCRARI.Anul FROM PERSOANE INNER JOIN
(LUCRARI INNER JOIN AUTORI
ON LUCRARI.LucrNo = AUTORI.LucrNo)
ON PERSOANE.PersNo = AUTORI.PersNo WHERE (((PERSOANE.PersNume)="IONESCU") AND ((PERSOANE.PersPrenume)="Ion")) ORDER BY LUCRARI.Anul;
Rezultatul interogării:
Selecţie + funcţii agregat :
SELECT LUCRARI.Anul, Count(LUCRARI.LucrTitlu) AS NrLucrariAnual FROM PERSOANE INNER JOIN (LUCRARI INNER JOIN AUTORI ON LUCRARI.LucrNo = AUTORI.LucrNo) ON PERSOANE.PersNo = AUTORI.PersNo WHERE (((PERSOANE.PersNume)="IONESCU") AND ((PERSOANE.PersPrenume)="Ion")) GROUP BY LUCRARI.Anul ORDER BY LUCRARI.Anul;
Rezultatul interogării:
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 38 16/02/03
Optimizări:
WHERE expresie simplă optimizabilă :
(câmp indexat) OP expresie OP : < > <= >= <> BETWEEN LIKE IN ..
expresie optimizabilă: expresieSimplă AND expresieSimplă expresieSimplă OR expresieSimplă
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 39 16/02/03
Queryuri CROSSTAB ( analiză încrucişată):
TRANSFORM Count(LUCRARI.LucrNo) AS CountOfLucrNo SELECT PUBLICATII.PubNume FROM PUBLICATII INNER JOIN LUCRARI ON PUBLICATII.PubNo = LUCRARI.PubNo GROUP BY PUBLICATII.PubNume PIVOT LUCRARI.Anul;
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 40 16/02/03
ECRANE (.formulare )
Elementul principal al interfeţei cu utilizatorul. Tip FIŞĂ:
Tip LISTĂ CONTINUĂ:
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 41 16/02/03
Formulare (ecrane) – Exemple de tipuri de câmpuri :
Proprietăţile obiectelor :
Sursa ecranului :
Tabelă : ex. PERSOANE
Query înregistrat Instrucţiune SQL:
ex: SELECT * FROM PERSOANE WHERE PersNume LIKE "I*" Câmpuri:
Legate Independente
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 42 16/02/03
EVENIMENTE.
PROGRAM SUB WINDOWS.
START
Înregistrează fereastra programului
//Bucla principală a programului: Cât timp (While) sosesc mesaje pentru mine
Tratează mesajul
End While END
Select case case ... default Fin Select
NUCLEUL WINDOWS
Aplicaţie
Aplicaţie
Evenimente: …
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 43 16/02/03
EVENIMENTE IN ECRANE
Deschiderea unui ecran
Deschidere (Open)
Înainte de afişarea ecranului
Încărcare (Load)
Înregistrările sunt afişate
Redimensionare (Resize)
Când se afişează prima oară, sau se redimensionează ecranul
Activare (Activate)
Ecranul devine fereastra activă
Continuare (Current)
Se trece la altă înregistrare
Evenimente ataşate controalelor:
Intrare
(Enter)
Se accesează controlul, dar acesta încă nu e activ.
Focalizare (Get Focus)
Controlul devine cel activ.
NOTĂ: Numai evenimentele principale sunt prezentate !!
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 44 16/02/03
Evenimente legate de înregistrări (record) :
Înainte de modificare
(Before Update)
Înainte de salvarea înregistrării (după ce s-au făcut modificări)
După modificare (After Update)
După salvarea înregistrării.
Închiderea unui ecran :
Descărcare
(Unload)
Înregistrările sunt eliberate, ecranul este încă afişat.
Desactivare (Desactivate)
Ecranul se închide, sau pierde controlul atunci când se selectează alt ecran.
Închidere (Close)
Ecranul dispare.
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 45 16/02/03
ELEMENTE FUNDAMENTALE de Access Basic.
Cod:
Evenimenţial (ataşat formularelor / repoartelor ) Module globale.
Proceduri: SUB nomSub (...)
...... END SUB
Funcţiuni: Function nomFunc ( ... ) [AS type] ...... nomFunc = valoare
END Function Obiecte: Variabile:
Variabile simple : DIM VarInt AS Integer DIM VarString AS String DIM VarStringN AS String * N DIM VarLong AS Long DIM VarSingle AS Single DIM VarDbl AS Double DIM VarMon AS Currency DIM VarGeneric AS Variant DIM VarObj AS OBJECT
Tablouri: DIM Tablou (N) AS tip DIM Tablou (10 TO 20 ) AS tip
Variabile de acces la date DIM Db AS Database DIM Ws AS Workspace DIM Td AS Tabledef DIM Rs AS Recordset DIM Qd AS Querydef DIM Ct AS Container DIM Doc AS Document
Variabile Obiect ale Access:
DIM Frm AS Form DIM Rep AS Report
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 46 16/02/03
Tipuri definite: TYPE TipNou X AS TipPredefinit Y AS TipPredefinit ... END TYPE DIM VarDeTipNou AS TipNou
Constante: CONST Const = Valoare
Validitatea (eng: scope) şi vizibilitatea variabilelor:
GLOBAL VarGlobala DIM VarLocalaInModul DIM X FUNCTION Fct( ) DIM VarLocalaInFunctie STATIC VarStatica DIM X '=> Ascunde precedentul X END FUNCTION
Alt modul de cod
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 47 16/02/03
STRUCTURI DE CONTROL
Instrucţiuni condiţionale:
IF condiţie THEN Instrucţiune IF condiţie THEN
Acţiuni când condiţia este adevărată END IF IF condiţie THEN
Acţiuni când condiţia este adevărată ELSE
Acţiuni când condiţia este falsă END IF IIF (condiţie, CeFacDacăEadevărat, CeFacDacăEfals)
Bucle: FOR variabilă = ValInit TO ValFin [STEP pas]
instrucţiuni NEXT variabilă WHILE condiţie
instrucţiuni WEND DO { WHILE | UNTIL } condiţie
instrucţiuni [EXIT DO]
LOOP DO
instrucţiuni [EXIT DO]
LOOP { WHILE | UNTIL } condiţie SELECT Case expresie
CASE val [ , val]: instrucţiuni CASE val1 TO val2: instrucţiuni CASE IS exprRel: instrucţiuni CASE ELSE: instrucţiuni
END SELECT
Managementul datelor şi al cunoştinţelor
16.02.200316.02.2003CF 48 16/02/03
1.9 STUDIU DE CAZ.