Sunteți pe pagina 1din 297

g fQ :

,*

-.

; '

'-

; : . ' V.:.

', ' ' '

John V. Petersen
'' * r '.'':

* s
' '

Cuprins

Introducere ..................... ............................... .......... ............................................. .

P artea I Baze de d ate - elem en te g e n e ra le ................... ...................................5


1. Introducere n bazele de date........................................................................................ 7 2. Anatomia unei baze de d a te ....................................................................................... 19

P artea a ll-a Proiectarea i construirea primei baze de date ................... 43


3. Introducere n proiectarea bazelor de date.................................................................45 4. Continuare: introducere n normalizare..................................................................... 69 5. Construirea bazei de date n Access........................................................................... 95

P artea a ll-a n tre in e rea bazei de d ate ................. .....................................1 1 9


6. Meninerea integritii prin reguli de validare........................................................ 121 7. Bazele integritii refereniale................................................................................... 147

P artea a IV-a Extragerea inform aiilor din baza de date introducere n SQL ..... .............................................................. 157
8. SQL - elemente generale......................................................................................... 159 9. SQL - dincolo de generaliti................................................................................... 187 10. Includerea interogrilor SQL n baza de date....................................................... 217

P artea a V-a Funcionarea bazei de date - construirea unei aplicaii sim ple pentru baze de date n A ccess ..... ............. ................. .235
11. Construirea componentelor interfeei cu utilizatorul............................................ 237 12. Obinerea unor rezultate utile: introducere n crearea i prezentarea rapoartelor.... 263

Anexe ...................... ........... ....................... .......... ........................................ .......... 277 A. Structura bazei de d ate T E B ...... ..................................... ................. . 277 B. Reguli de in te g rita te referen ial n T E B .................. ........................ 283 C. G lo sar.............................................................. .............................................. 285 D. Periodice n domeniul bazelor de date .............................................. 295 E. Resuse Web .......... ......................................................... ............ ............... 298 F. In d e x .......... ......................................... ........................................................... 299

Index
A
a doua form normal, 73-78 a treia form normal, 79-80 a patra form normal, 81-82 a cincea form normal, 81-82 caseta de dialog iniial, 21 lansare, 20-22 site web, 20 tabel, 26 Compression, 30 vedere (Datasheet), 151

Access, 11
Butoane, Open/View,27 fereastra principal a bazei de date,22 baza de date Northwlnd Traders, 20-26 interogri, 31 normalizare, 70 fereastra SQL, 161 clauza As, 198 clauza Distinct, 178 clauza From, 192-193 clauza Group By, 188-189, 196,202 clauza Having, 206 clauza Join, 193 Union, 184-185 clauza m e re , 170-171, 204-206,212-214 clu zaO rderB y, 172-173,202 com binarea datelor din cmpuri, 167-169 com binarea m ai m ultor tabele, 176 declaraia Delete, 213-214 declaraia Insert, 210-211 declaraia Select, 164-165 declaraia Top n Select, 169-170 declaraia Update, 212 declaraii param etrizate, ?.07-208 funcia AvgO, 204 funcia Count(), 190-191,195 funcia Sum(), 196-197 funcii de agregare, 190 funciile 'iM ax(), $ 211 limitarea rezultatelor, 181 ordine de sortare compus, 173-175 redenumirea cmpurilor, 166, 198 returnareadatelordinm aim ultetabele,179-181 selectarea anum itor cmpuri, 165 uniuni externe complete, 182-184 uniuni externe la stnga, 180-181 uniuni interne, 177-178 uniuni la dreapta, 182-184

Access D atabase Designer


aplicaii wizard Im port Table, 107 Link Table, 107 Table, 106 baze de date, creare, 103-112 butonul Primary Key, 107 casete de dialog Save As, 108 ShowTable, 112-113 cmpuri, creare, 107-112 coloane, creare, 106-108 componente, 99-102 meniul Relationships, 112-114 meniul Tools, , 116 tabele, creare/saivare, 106-107 vederi Datasheet, 106 Design, 106, 107

Access Database Relationship Builder


butonul Create New,114 casete de dialog Create New Relationships, 114 Documented 116 Edit Relationships, 114, 150-151 New Relationships, 114 casete de validare Enforce Referential Integrity, 114 Referential Integrity, 115

Access Query Designer, 218


cmpuri introducere, 220 sortare dup mai multe cmpuri, 226 coloane, eliminare, 223 criterii de selecie, introducere, 221

300

ANEXE
Contact, 87-88 Court, 89 Department, 86 Employee, 85-86 EmployeeClass, 86 Invoice, 91 TimeEntryDetail, 89-91 Access Database Designer, 96-112 Access, 11, 20-22 definire, 8 ,1 2 denormalizare, 83 modelel de tip picior de cioar, 59 tabelul Case, 88 tabelul Client, 86 tabelul Contact, 87-88 tabelul Court, 89 tabelul Department, 86 proiectare, 63 elemente eseniale, 93 instrumente, 51 cmp, 8 ,1 2 dezvoltare, 116 formular, 39 goal, 103-104 importare, 61 Input Mask Wizard, 134 integritate, 122,148-154 tabelul Employee, 85-86 tabelul EmployeeClass, 86 tabelul Invoices, 91 model, 51 a cincea form normal, 81-82 a doua form normal, 73-78 a patra form normal, 81-82 a treia form normal, 79-80 creare, 52-61 diagram de tip picior de cioar, 61 ErW in (Com puter Associates), 52 forma norm al Boyce-Codd, 71 normalizare, 12 normalizare, 71-78 prim a form normal, 72-73 TEB (Time Entry and Billing), 84-85, 96 VADBE (Visible Analyst Database Engineer), 52 vederea Relationships, 51 Visio, 51-52 xCase (Resolution), 51-52 cerine, determinare, 47-48 obiecte, modificarea numelor, 108 rnduri, 8 raport, 36

funcii/grupuri agregate, 230-231 interogri crearea interogrilor avansate, 228-229 param etrizate, 232-233 salvare, 2 2 7 ordine de sortare, introducere, 225 actualizri in cascad (restricii de integritate referenial), 150,153-154 administrator al bazei de date, 17 analist al bazei de date, 18

ANSI (A m erican N ational Standards In stitu te), 160


ANSI-SQL, 92,160 aplicaia wizard Import Table (Access Database Designer), 106 aplicaia wizard Input Mask, 134 aplicaia wizard Link Table (Access Database Designer), 107 aplicaia wizard Map Database, 61-62 aplicaii de proiectare (Access Database Designer), 99-112 aplicaii wizard Command Button, 274 Create Database W izard (Visio), 60,96-97 Database Wizard (Visio), 61 Form Wizard adugarea butoanelor personalizate, 2 4 9 ,2 5 2 crearea form ularului BusinessClient, 246 crearea formularului IndividualClient, 244,253-254 crearea form ularului pentru angajai, 256-257 modificarea layout-ului, 248 Import Table (Access Database Designer), 106 Input Mask, 134 Link Table (Access Database Designer), 107 Map Database Wizard, 62 Query Wizard, 240-242 Report Wizard, 267-269 Table W izard (Access Database Designer), 106

bara de instrumente Design Symbol, 54-56,63 baza de date Northwlnd Traders, 20-26 formulare, 39 interogri, 31 normalizare, 70 rapoarte, 37 baza de date TEB (Time Entry and Billing) model, 84-85, 96 tabele Case, 88 Client, 86

INDEX
relaii, 22-25,112 relaional, 13-16 reguli (la nivel de cmp), 122 A llow Zero Length, 127-129 Default Value, 138 Format, 128-134 Input Mask, 134-138 proprieti la nivel de cmp, 123 Required, 124-128 Validation Rule, 139-140 Validation Text, 141-142 'eguli (la nivel de rnd), 143 proprieti la nivel de rnd, 143 Validation Rule, 144 Validation Text, 144-145 form a titlului, 63 SQL (Structured Query Language), 160-163 tabele, 8 ,12, 26 tabelul TimeEntryDetail, 89-91 tabelul W orkCategory, 90-91 TEB (Time Entry and Billing), 62-66 utilizare, 9-10 baz de date fizic, creare, 96-99 baz de date liber, creare, 103-104 baze de date relaionale, 13-16 Bound Column (tab-ul Lookup), 41 BusinessClient formular, 246 interogare, 242 butoane Create (Access Database Designer), 104 Create New (Access Database Relationship Builder), 114 personalizate, introducere, 249, 252 Primary Key, 107 vederea Relationship, 22 View, 2 7 ,3 3 ,4 1 butonul Open, 27,31 butonul Relationship View, 22 butonul View, 27,33,41 butonul Create (Access Database Designer), 104 butonul Create New (Access Database Relationship Builder), 114 butonul Primary Key, 107

301

caractere (Unicode Compression), 30 caseta de dialog a ferestrei principale a bazei de date (Access), 22 caseta de dialog Define Entity, 56

caseta de dialog Create New Relationships (Access Database Relationship Builder), 114 caseta de dialog Documenter (Access Database Relationship Builder), 116 caseta de dialog Edit Relationships (Access Database Relationship Builder), 114,150-151 caseta de dialog File New Database (Access Database Designer), 104 caseta de dialog Save As (Access Database Designer), 108 caseta de dialog Show Table (Access Database Designer), 112-113 caseta de dialog Startup (Access), 21 caseta de dialog New Relationships (Access Database Relationship Builder), 114 caseta de dialog New Table, 106-107 caseta de validare Enforce Referential Integrity (Access Database Relationship Builder), 114 caseta de validare Referential Integrity (Access Database Relationship Builder), 115 casete de dialog Create New Relationships (Access Database Relationship Builder), 114 Define Entity, 56 Documenter (Access Database Relationship Builder), 116 Edit Relationships (Access Database Relationship Builder), 114,150-151 fereastra principal a bazei de date, 22 New Relationships (Access Database Relationship Builder), 114 New Table, 106-107 Save As (Access Database Designer), 108 Show Table (Access Database Designer), 112-113 Startup, 21 casete de instrumente caseta de instrumente Design Symbol, 63 Design Symbol (Visio), 54-56 casete de validare Enforce Referential Integrity (Access Database Relationship Builder), 114 Referential Integrity (Access Database Relationship Builder), 115 campurl, 8 atribute, 12 cheie primara, 107 combinarea datelor (SQL), 167-169 creare, 107-112 definire, 12 introducere, 220 multlpla, sortare, 226 proprietatl, 29-30

302

ANEXE
creare, 106 eliminare, 223 introducere, 108 combinarea cmpurilor de date (SQL), 167-169 Command Button Wizard, 274 creare, 265-269 crearea bazelor de date fizice, 96-99 bazelor de date, 59,103-112 cmpurilor, 107-112 coloanelor, 106 entitilor (Visio), 55-56 form ularelor de tip meniu principal, 258,261 formularului pentru clieni, 239 adugarea butoanelor personalizate, 2 4 9 ,2t form ularului BusinessClient, 246 form ularului IndividualClient, 244 ,25 3-2 54 formularului pentru angajai, 256-257 interogrii BusinessClient, 242 interogrii IndividualClient, 240 modificarea layout-ului, 248 modelului unei baze de date, 52-61 rapoartelor, 265-271 relaiilor, 112-114 tabelelor, 106 Create Database Wizard (Visio), 60,96-97

redenum ire(SQ L), 166, 198 selectare (SQL), 165 valori nule, 14 cerine (baze de date), determinare, 47-49

multivalorlce, 76 primare, 13,24,75-76,107 . surogat (false), 76 Update Foreign Keys, 59 chei cu semnificaie. Vezi chei multivalorlce chei fr semnificaie. Vezi chei surogat (false) chei multivalorice, 76 chel primare compuse, 76 chei surogat (false), 76 cheie primar, 13,2 4 ,75-76,107 cheie extern (strin), 59 clauza As redenumirea cmpurilor, 166 SQL (Structured Query Language), 198 clauza Distinct (SQL), 178 clauza Where (SQL), 170-171,204-206,212-214 clauza )oin (SQL), 193 clauza From (SQL), 192-193 clauza Group By (SQL), 188-189,196,202 clauza Having (SQL), 206 clauza Union (SQL), 184-185 clauze (SQL) As, 198 From, 192-193 Group By, 188-189,196, 202 Having, 206 Join, 193 Order By, 202 Where, 204-206,212-214 clauza Qrder By (SQL), 172-173,202 Client formular, 239 form ular/interogare Business/Client, 2 4 2 ,2 4 6 butoane personalizate, 2 4 9 ,2 5 2 form ular/interogare IndividualClient, 240,244, 253-254 layout, modificare, 248 raport cu lista clienilor creare, 265-269 modificare, 271 clipboard (n Windows), 55 Codd, E.F.,13,18 Column Count (tab-ul Lookup), 39 Column Heads (tab-ul Lookup), 39 Column Widths (tab-ul Lookup), 39 coloane, 8

concatenare, 167 dicionar, 14 formular de introducere a datelor, 167-169 im punerea regulilor de validare, 122 normalizare, 12 DBA (Database Administrator). Vezi administra tor al bazei de date DBMS (database management system), 10-11 DCL (Data Control Language), 160-163 DDL (Data Definition Language), 160-163 DML (Data Manipulation Language), 160-163 decizii tactice, determinarea cerinelor bazei de decizii strategice, determinarea cerinelor bazei declaraia Select (SQL), 164-165 declaraii (fereastra SQL) Delete, 213-214 Insert, 210-211 parametrizate, 207-208 Update, 212

INDEX
declaraia Delete (SQL), 213-214 declaraia Insert (SQL), 210-211 declaraia Update (SQL), 212 declaraia Top n Select (SQL), 169-170 declaraii parametrizate SQL (Structured Query Language), 207-208 denormalizare, 83 Designer (Visio), 52-53 dezvoltarea documentaiei bazei de date, 116 diagrame de tip picior de cioar, 61 ERD (entity relationship diagram), 70 fiiere .vsd (Visio), 97 Display Control (tab-ul Lookup), 40 documente (ale firmei). Vezi formulare/ documente ale firmei From, 192-193 Group By, 188-18 9,1 96,2 02 Having, 206 Join, 193 O rder By, 202 Where, 204 ,2 0 6 ,2 1 2 -2 1 4 declaraia Top n Select, 169-170 declarai Delete, 213-214 Insert, 210-211 parametrizate, 207-208 Select, 164-165 Update, 212

303

)
A vg (),2 04 Count(), 190-191,195 de agregare, 190 M inQ iM ax(), 205,211 Sum(), 196-197 limitarea rezultatelor, 181 ordine de sortare compus, 173, 176 operaii de creare, actualizare i te rg e re ,16 sublimbaje DCL (Data Control Language), 160-163 DDL (Data Definition Language), 160-163 DML (Data Manipulation Language), 160-163 tabele combinare, 176 reurnarea datelor, 173-181 uniuni com piet externe, 182-184 externe la stnga, 180-181 interne, 177-178 la dreapta, 182-184 uniuni complet externe, 182-184 ferestre combinarea datelor, 167-169 redenumire, 166 reurnarea datelor, 179-181 clauza Union, 184-185 clauza Where, 170-171 declaraia Select, 169-170 declaraia Update, 212 selectare, 165 clauza O rder By, 172-173 declaraia Insert, 210-211 declaraia Select, 164-165 declaraii parametrizate, 207-208 funcia Sum(), 196-197 funciile Min() i Max(), 205,211 limitarea rezultatelor, 181 redenumirea cmpurilor, i9 8

editarea textului, 63 elemente ale raportului (formular de tip meniu principal), 272-274 elemente eseniale pentru proiectare, elemente eseniale (proiectarea bazei de date), 93 entiti, 8 baza de date TEB (Time Entry and Billing), 62 caseta de dialog Define Entity, 56 conectare, 56 creare (Visio), 55-56 ERD (entity relationship diagram), 52,55,6 0 ,7 0 ErWin (Computer Associates), 52 existent, 49

F
fereastra Designer (Access Database Designer),
fe re a s tra M ain

Database (Access Database Designer), 100-101 fereastra SQL (Structured Query Language) ANSi-SQL. 9 2,160 campuri com binarea datelor, 167-169 redenumire, 166, 198 selectare, 165 clauza Distinct, 178 clauza Order By, 182-173 clauza Union, 184-185 clauza Where, 170-171 ciauze $, 198

304

ANEXE
formularele/documentele unei firme, determinarea cerinelor unei baze de date, 48 formularul Product, 40 formularul Products (vederea Design), 41 funciile Min() i Max() (SQL), 205,211 funcia AvgQ (SQL), 204 funcia CountQ (SQL), 190-191,195 funcia Sum() (SQL), 196-197 funcii de agregare (SQL), 190 formularul IndividualClient, 244, 253-254 layout, modificare, 248

uniuni com plet externe, 182-184 uniuni externe la stnga, 180-181 uniuni interne, 177-178 uniuni la dreapta, 182-184 SQL clauza As, 198 clauza Distinct, 178 clauza From, 192-193 clauza Group By, 188 -189,196,202 clauza Having, 206 clauza Join, 193 clauza O rder By, 202 clauza Where, 204-206,212-214 com binarea tabelelor, 176 declaraia Delete, 213-214 funcia AvgQ, 204 funcia CountQ, 190-191,195 funcii de agregare, 190 ordini com puse de sortare, 173-175 ferestre ale funciilor (SQL) Count(), 190-191,195 de agregare, 190 fiiere diagram a .vsd (Visio), 97 TEB.MDB, 105 fiiere cu diagrame .vsd (Visio), 97 fiierul TEB.LDB, 105 fiierul TEB.MDB, 105 Form Wizard butoane personalizate, 249, 252 form ular pentru angajai, 256-257 form ularul BusinessClient, 246 forma normal Boyce-Codd, 71 forme (titlul bazei de date), 63 formular de tip meniu principal, 258,261,272-274 formular pentru angajai, creare, 256-257 formulare ale firmei. Vezi form ulare/docum ente ale firmei baza de date Northwind Traders, 39 butoane personalizate, 249, 252 de tip meniu principal creare, 258,261 elemente ale raportului, adugare, 2 7 2 ,2 7 4 form ularul Products, 40-41 introducerea datelor, 39 layout, modificare, 248 pentru clieni, creare, 239 form ular pentru angajai, 256-257 form ularul BusinessClient, 246 form ularul IndividualClient, 244,253-254 nterogarea BusinessClient, 242 interogarea IndividualClient, 240

grup de discuii (Microsoft Support), 20

identificarea entitilor (baza de date TEB), 62-63 importarea bazelor de date, 61 impunerea integritii refereniale, 150 IndividualClient formular, 244,253-254 Interogare, 240 integritate (a bazei de date) impunerea regulilor de validare a datelor, 122 referenial, 122,148 impunere, 150 introducerea restricionat a datelor, 152 meninere, 148-149 restricii, actualizri n cascad, 150, 153-154 restricii, tergeri n cascad, 150, 153 tergeri restricionate, 151 integritate referenial, 122,148 impunere, 150 meninere, 148-149 restricii actualizri n cascad, 150, 153-154 privind introducerea datelor, 152 tergeri n cascad, 150, 153 privind tergerile, 151 interviuri, determinarea cerinelor unei baze de date, 47-48 interogri, 31 Access Query Designer, 218 adugarea cmpurilor, 219-220 adugarea criteriilor de selecie, 221 adugarea ordinii de sortare, 225 crearea interogrilor avansate, 228-229 eliminarea coloanelor, 223 im plem entare funciilor/grupurilor de agregare, 230-231

INDEX
interogri param etrizate, 232-233 salvarea interogrilor, 227 sortarea m ai m ultor cmpuri, 226 BusinessClient, 242 fereastra SQL (Structured Query Language) clauza As, 198 clauza From, 192-193 clauza Group By, 188-189, 196,202 clauza Having, 206 clauza Join, clauza O rder By, 202 clauza Where, 204-206,212-214 declaraia 214-213 , declaraia Insert, 210-211 declaraia 212 funcia AvgO, 204 funcia Count(), 190-191,195 funcia Sum(), 196-197 funcii de agregare, 190 funciile Min() i Max(), 205, 211 IndividualClient, 240 lista alfabetic a produselor, 35 lista Current Products, 31-33 multltabel, 35 Products by Category, 37 salvare, 227 structur, 31 Interogri multabel,35 interogarea Current Product List, 31-33 interogarea Products By Category, 35,37 interogri avansate, creare, 228-229 introducerea butoanelor personalizate, 249, 252 coloanelor, 108 elementelor rapoartelor, form ulare de tip meniu principal, 272-274 introducerea datelor, restricii (integritate referenial), 152 instrumente de proiectare, baze de date, 51 instrumente, proiectarea bazei de date, 51 nregistrri, 8,12 orfane, 183 tergere, 151 nregistrri orfane, 183 nelegerea bazelor de date, 8

305

DCL (Data Control Language), 160-163 DDL (Data Definition Language), 160-163 DML (Data Manipulation Language), 160-163 limbaje de programare limbaj de programare ($160 ( Limit To List (tab-ui Lookup), 41 linii, relatii, 66 List Rows (tab-ul Lookup), 41 List Width ( - Lookup), 41

M
mti (Input Mask), 30 meniul Tools (Access Database Designer), 112,116 meniul Relationshlps (Access Database Designer), 112-114 meniul Shape (Vislo), 59 metoda automat de creare a bazelor de date (modelul bazei de date TEB), 96-99 modificarea numelor obiectelor bazelor de date, 108 meninerea integritii refereniale, 148-149 metadate. Vezi dicionar de date metode, crearea bazelor de date, 96-99 meniuri Relationships (Access Database Designer), 112-114 Shape (Visio), 59 Tools (Access Database Designer), 112-116 Microsoft Developer NetWork Knowledge Base. Vezi MSDN KB (Microsoft Developer Network Knowledge Base) Microsoft Office Pro Magazine, 20 model, al bazei de date baze de date relaionale, 13 creare, 52-61 diagram picior de cioar, 61 ErWin (Computer Associates), 52 normalizare, 71, 73-82 TEB (Time Entry and Biliing), 62-66, 84-85,96 VADBE (Visible Analyst Database Engineer), 52 vederea Relationshlps, 51 Visio, 51-52 xCase (Resolution), 51-52 modificare layout-ului formularului, 248 raportul ClientListing, 271

lansarea programului Access, 20-22 layout, modificarea formularelor, 248 limbaje (SQL) ANSI (American National Standards Institute), 160

normalizare, a cincea form normal, 81-82 a doua form normal, 73-78 a patra form normal, 81-82

306

ANEXE
FieldName, 29 Format, 30 Indexed, 30 ! Mask, 30 la nivel d e r m p , 123 Allow Zero Length, 127-129 Default Value, 138 , 128-134 Input Mask, 134-138 Required, 124-128 Validation Rule, 139-140 Validation Text, 141-142 la nivel de rnd, 143 Validation Rule, 144 Validation Text, 144-145 R e tire d , 30 Validation Rule, 30 Validation Text, 30 proprit la nivel de cmp, 123 Allow Zero Length, 127-129 Default Value, 138 Format, 128-134 Input Mask, 134-138 Re ured, 124-128 Validation Rule, 139-140 Validation Text, 141-142 Products by Category, 38 proprieti la nivel de rnd, 143-145

a treia form normal, 79-80 baza de date Northwind Traders, 70 bazelor de date, 12 datelor, 12 form a normal Boyce-Codd, 71 modelul bazei de date TEB (Time Entry and Billing), 84-85 prima form normal, 72-73 tabelelor, 12 nume, obiecte ale bazei de date, 108

O
operaiuni de creare actualizare i tergere, 160 ordine de sortare, 225 ordine de sortare compus (SQL), 173-175

p
picior de cioar diagrame, 61 modelul bazei de date, 59 plctograma Database (Access Database Designer), 104 pictograma bazei de date (Access Database Designer), 104 prima form normal, 72-73 profesiuni n domeniul bazelor de date, 17-18 profesiuni n domeniul bazelor de date, 17-18 programator de aplicaii pentru baze de date, 17 proiectarea bazelor de date, 63 proprietatea Allow Zero Length, 30,127-129 proprietatea Caption, 30 proprietatea DataType, 29 proprietatea Default Value, 30,138 proprietatea Description, 30 proprietatea FieldName, 29 proprietatea Field Size, 30 proprietatea Format, 30,128-134 proprietatea Indexed, 30 proprietatea Input Mask, 30,134-13 proprietatea Required, 30,124-128 proprietatea Validation Rule, 30,139-140,144 proprietatea Validation Text, 30,141-145 proprieti Allow Zero Length, 30 Caption, 30 DataType, 29 Default Value, 30 Description, 30 Field Size, 30

Query Wizard interogarea BusinessClient, 242 Interogarea IndividualClient, 240

R
rapoarte, 36 raportul CilentListing, 271 raportul Products by Category, 38 rnduri, 8,12 RDBMS (Relational Database Management System), 122 redenumirea cmpurilor (fereastra SQL), 166,198 reguli baze de date relaionale, 13-16 Impunerea regulilor de validare a datelor, 122 proprieti la nivel de cmp, 122 A llow Zero Length, 127 Default Value, 138 Format, 128-134 Input Mask, 134-138

INDEX
proprieti la nivel de cmp, 123 Required, 124-128 Validation Rule, 139-140 Validation Text, 141-142 proprieti la nivel de rnd, 143 Validation Rule, 144 Validation Text, 144-145 Relational Model Data Large Shared Data Banks, A(Codd, E. F.), 13

307

relaii
Access Database Relationship Builder, 114 baza de date TEB (Time Entry and Billing), 62-63 baze de date, 22-24 creare, 112-114 muli la muli, 23-25 simboluri, 56 unu la muli, 23,112 unu la unu, 23 vederi, 22 reiaii unu la muli, 23,112 relaii unu la unu, 23 relaii mu>i la muli, 23-25 Report Wizard, 267.269 restricii (integritate referenial), 150,153-154 rezultate, limitare (SQL), 181 Row Source (tab-ui Lookup), 41 Row Source Type (tab-ul Lookup), 40

xCase (Resolution), 51-52 suprafaa de proiectare (Visio), 52-53 SQL (Structured Query Language), 160 sortarea dup mai multe cmpuri, 226 Structured Query Language. Vezi SQL (Struc tured Query Language) structuri interogri, 31 tabele Case, 88 Contact, 87-88 Employee, 86 Invoice, 91 TimeEntryDetaii, 90 WorkCategory, 91 tergerea nregistrrilor, 151 tergeri n cascad (restricii de integritate referenial), 150,153 tergeri restricionate (integritate referenial), 151 tergeri restricionate (Integritate referenial), 152

tabel printe, 23 tabele, 8,26 caseta de dialog New Table, 106-107 Client, 86 combinare (SQL), 176 Contact, 87-88 copil, 23 Court, 89 creare, 106 de rezolvare a relaiilor muli la muli, 85 definire, 12 Department, 86 Employee, 85-86 EmployeeClass, 86 interogri multitabel, 35 Invoice, 91 jonciune, 24 normalizare, 12 printe, 23 proprietatea FieldName, 29 relaii Access Database Relationship Builder, 114 creare, 112-114 returnarea datelor (SQ L),179-181 rnduri, 12 salvare, 107 vizualizarea Table Datalist, 39 TimeEntryDetaii, 89-91

salvarea interogrilor, 227 tabelelor, 107 simboluri Design Symbol Toolbox (Visio), 54-56 relaii, 56 sisteme de administrare a bazelor de date relaionale. Vezi RDBMS (Relaional Database Management System) sistem de administrare a bazelor de date. Vezi DBMS site-ul web Microsoft Knowledge Base, 20 site-ul web MSDN KB (Microsoft Developer NetWork Knowledge Base), 105 site-uri web Access, 20 ErWin (Com puter Associates), 52 Microsoft Knowledge Base, 20 MSDN KB (Microsoft Developer NetWork Knowledge Base), 105 VADBE (Visible Analyst Database Engineer), 52 Visio, 51

308

ANEXE
uniuni interne (SQL), 177-178 uniuni la dreapta (SQL), 182-184 Update Foreign Keys, 59 utilizarea bazelor de date, 9-10 VADBE (Visible Analyst Database Engineer), 52 validare. Vezi reguli valori nule, 14 vizualizarea Relationships, 51 vizualizri, 15 Dataiist, 27, 30, 37 Datasheet (Access Database Designer), 27,106,151 Design (Access Database Designer), 27,106-107 form ularul Products, 41 raportul Products by Category, 38 Print Preview, 38 relaie, 22 Relationships, 51 Table Dataiist, 39 Visible Analyst Database Engineer. Vezi VADBE (Visible Analyst Database Engineer) Visio, 51-52 caseta de instrumente Design Symbol, 55-56 Create Database Wizard, 60, 96-97 Design Surface, 52-53 Designer, 52-53 fiiere cu diagrame, 97 Map Database Wizard, 61 meniul Shape, 59 site-ul Visio, 51 vizualizarea Dataiist, 27,30,37 vizualizarea Datasheet, 27,106,151 vizualizarea Design, 27 formularul Products, 41 raportul Products by Category, 38 vizualizarea Design (Access Database Designer), vizualizarea Print Preview (raportul Products by Category), 38 vizualizarea Table Dataiist, 39

vederea Relationshlps, 51 vederi, 15 W orkCategory, 90-91 tabele copil, 23 tabele de jonciune, 24 tabele resolver (muli la muli), 85 tabelul Case, 88 tabelul Client, 86 tabelul Contact, 87-88 tabelul Court, 89 tabelul TimeEntryDetail, 89-91 tabelul Department, 86 tabelul Employee, 85-86 tabelul EmployeeClass, 86 tabelul Invoice, 91 tabelul WorkCategory, 90-91 Table Designer (tab-ul Lookup), 40 Table Wizard (Access Database Designer), 106 tab-ul Attributes, 56 tab-ul Databases (Access Database Designer), 103 tab-ul General, 56,103-104 tab-ul Lookup, 28,40-41

; !, , 6
Databases (Access Database Designer), 103 General, 56 General (Access Database Designer), 103-104 Lookup, 28, 40-41 tasta F2, evidenierea textului, 63 editare, 63 evideniere, 63 text evideniat, 63 tipul de date AutoNumber, 29 tipul de date Currency, 29 tipul de date Date/Time, 29 tipul de date Memo, 29 tipul de date Number, 29 tipul de date Yes/No, 29 tipul de date Text, 29

xCase (Resolution), 51-52 Unicode Compression, 30 uniuni (SQL) complet externe, 182-184 declaraii, 176 externe la stnga, 180-181 interne, 177-178 ia dreapta, 182-184 uniuni complet externe (SQL), 182-184 uniuni externe la stnga (SQL), 180-181

vi

Despre autor
J o h n V. Petersen este preedintele i fo n d a to ru l firm e i de a p lic a ii softw are i de sig n p e n tru baze de da te M a in L in e S oftw are, In c ., c u s e d iu l n P e n n sylva n ia . P la tfo rm e le pe care lu c re a z M LS I s u n t V is u a l FoxPro, V is u a l B asic, Access, S Q L Server i n o u a p la tfo rm de la M icro so ft, V is u a l S tu d io .N E T . J o h n a o b in u t u n M B A la H a u b School o f B u siness n c a d ru l St. Jo se p h s U n iv e rs iy n 1993. n prezent, J o h n este 2 L la R utgers U n iv e rs ity S chool o f Law . J o h n a s u s in u t c o n fe rin e la m u lte e venim ente d in d o m e n iu , p rin tre care M ic ro s o ft D eveloper D ays i M ic ro s o ft T ech-E d. Este a u to ru l m a i m u lto r c ri i a rtic o le n d o m e n iu i a l m a i m u lto r d e z v o lt ri de a p lic a ii i p ro ie c te de baze de date. E l a p r im it n a n u l 1996 p re m iu l M o s t V a lu a b le P ro fessio na l (cel m a i v a lo ro s p ro fe sio n ist), a c o rd a t de M ic ro s o ft.

D edicaie
F iilo r m ei, K a rl i K e ith . S u n t m n d ru de to t ceea ce fa c e i i tiu c v e i re a liz a a m n d o i lu c r u r i grozave. V iu b e s c fo a rte m u lt. S o ie i m ele, E velyn . i m u lu m e s c d in n o u p e n tru to a t dragostea i to t s p r ijin u l pe care m i le -a i d r u it de-a lu n g u l a n ilo r, m a i ales a cu m , n p e rsp e ctiva u n u i n o u n c e p u t a l m e u n c a rie ra ju r id ic .

M ulum iri
i m u lu m e s c n p r im u l r n d lu i J e n n y W a tso n p e n tru c m i-a p ro p u s acest p ro ie c t. In iia l, acesta a a v u t o m u lim e de n c e p u tu ri i o p r ir i d in cauza p r o g ra m u lu i m e u n c rc a t. J e n n y a c re z u t n d o u lu c r u r i: n p ro ie c t i n fa p tu l c l v o i re a liz a eu. i m u lu m e s c , J e n n y , p e n tru r b d a re i a ju to r! U n a u to r este fo a rte no ro cos c n d lu c re a z c u u n e d ito r de dezvoltare p re c u m M a u re e n M c D a n ie l. O ri de cte o ri am a v u t o n tre b a re sa u m p re o cu p a ceva, M a u re e n a fo st m e re u aproape, gata s -m i dea r s p u n s u l co re c t i n d ru m rile necesare. i m u lu m e s c , M a u re e n , p e n tru c d a to r it ie acest p ro ie c t a d e v e n it a m z a n t i p lin de s a tis fa c ii. A m a v u t i p riv ile g iu l s m b u c u r de p rie te n ia i a ju to r u l lu i J im B o o th i a m fo s t n c n ta t c a a c c e p ta t s fie e d ito ru l te h n ic a l acestei c ri. J im este u n u l d in tre cei m a i in te lig e n i o a m e n i pe care i cunosc, ia r ca rte a a b e n e fic ia t d in p lin de e xp e rie n a , n e le p c iu n e a i a ju to r u l lu i. A scrie o c a rte este u n lu c r u im p o rta n t. N ecesit m u lt tim p i, n tr-o a n u m it m s u r , s a c rific ii. n tim p ce am s c ris aceast carte, n afar

v ii de fa p tu l c tr e b u ia s in p a s u l c u cei d o i f ii a i m e i fo a rte a c tiv i, s -m i v d s o ia c n d i c n d i s c o n d u c o firm de c o n s u lta n softw are, am u tiliz a t p u in u l tim p lib e r pe care l aveam p e n tru a s tu d ia d re p tu l la R u tg e rs U n iv e rs ity S cho ol o f L aw - cam den. P e n tru c a m p u tu t s in p a s u l c u aceste o b lig a ii, tre b u ie s m u lu m e s c : m a i n t i colegei m ele de fa c u lta te S te p h a n ie M eade, fiin d c m -a to t b tu t la cap s -m i nd e p lin e sc n d a to ririle legate de fa culta te, apoi profesoarei B e th H illm a n , fiin d c a s u fla t v ia a s u p ra C o n s titu ie i S U A i m i-a de sch is o c h ii a s u p ra p r in c ip iilo r pe care le a p r S U A p r in s is te m u l lo r le g is la tiv , n c u ra j rile vo a s tre a u f c u t ca n to a rc e rile m ele de la fa c u lta te la ora 22 :3 0 s fie m u lt m a i su p o rta b ile . n al tre ile a r n d , tre b u ie s m u lu m e s c p ro fe s o ru lu i m e u de c o re s p o n d e n o fic ia l , B ria n Foley, p e n tru c d a to rit lu i a m d e v e n it u n s c r iito r m a i b u n . n s f rs it. i m u lu m e s c c e lu i m a i b u n p rie te n a l m e u , Rod Paddock. N u p o t e x p rim a p r in c u v in te ce m u lt a u n s e m n a t p rie te n ia i s p r ijin u l t u d e -a lu n g u l a n ilo r. R m n n d fid e l filo z o fie i tale, m a i p u in n s e a m n m a i m u lt , cred c a sta e to t ce tre b u ie s s p u n .

Spunei-ne prerea dum neavoastr!


n c a lita te de c itito r a l c rii, dumneavoastr s u n te i cel m a i im p o rta n t c r itic i c o m e n ta to r a l ei. V p re u im o p in iile i d o rim s tim ce e bine, ce a i d o ri s m a i p u b lic m , cu alte c u v in te d o rim s ne m p rt ii c t de poate de m u lt d in e x p e rie n a d u m n e a v o a s tr . Ca e d ito r a s o c ia t la Q ue, m b u c u r de orice c o m e n ta rii. P u te i expedia u n fax, u n e -m a il s a u m i p u te i scrie c h ia r m ie p e n tru a m in fo rm a ce v -a p l c u t i ce n u la aceast c a rte - p re c u m i ce a p u te a face p e n tru a o m b u n t i.

V rog s nu uitai c nu v pot ajuta n privina problemelor tehnice legate de subiectul crii, i asta din cauza volumului imens de mesaje pe care le primesc, motiv care mface i s nu pot rspunde tuturor acestor mesaje.
A tu n c i c n d m i s c rie i, n u u it a i s n u m e le i a u to ru l c r ii la care v re fe rii, d a r i n u m e le , adresa i te le fo n u l sa u fa x u l d u m n e a vo a str . V o i c iti cu a te n ie to a te c o m e n ta riile i le v o i face c u n o s c u te a u to r ilo r i e d ito rilo r Fax: E -m a il: A dresa: care a u lu c r a t la c rile respective. 3 1 7 -5 8 1 -4 6 6 6 fe e d b a ck@ q u e pu blish in g.com D e an M ille r E d ito r a s o c ia t 201 W e st 103rd S tre e t In d ia n a p o lis , IN 4 6 2 9 0 U SA

INTRODUCERE
C re d e i sa u n u , p ia a n u ofer pre a m u lt u n e i persoane care dorete o ca rte fu n d a m e n ta l i u o r de c it it despre baze de date. C nd m i-a fo s t p ro p u s acest p ro ie c t m i-a m sp us: T re b u ie s existe o m u lim e de c ri pe p ia care e x p lic n o iu n ile fu n d a m e n ta le ale b a ze lo r de date p e n tru n c e p to ri. Spre s u rp rin d e re a m ea, am g s it fo a rte p u in e i a tu n c i m i-a m d a t seam a c aceast c a rte tre b u ie scris. Partea cea m a i grea n o rice m u n c este s n cep i. D u p ce a i p o r n it pe u n d ru m , i, poate, cel m a i im p o r ta n t lu c r u este s fie d r u m u l cel b u n , re s tu l este u o r. S c o p u l acestei c ri este de a v o rie n ta n d ire c ia co re ct c n d v n c e p e i d r u m u l n lu m e a te h n o lo g ie i b a ze lo r de date. D o rin a a u to r u lu i a fo s t s realizeze o ca rte agnostic , n u n m o d special d e s tin a t u n u i p ro g ra m a n u m e p e n tru baze de date. D ei exem plele date se folosesc de A ccess, conceptele b a ze lo r de date p re ze n ta te se a p lic o ric re i baze de date re la io n a le . De ce a m ales Access ca p la tfo rm p e n tru pre ze n ta re a co n cep te lo r? D in d o u m o tive. In p r im u l r n d , Access este de departe s is te m u l p e n ru baze de d a te p e rso na le cel m a i u o r de u tiliz a t i n v a t. A p o i s u n t anse fo a rte m a ri s ave i M ic ro s o ft O ffice. n consecin , p ro b a b il c d e in e i deja o v e rs iu n e de M ic ro s o ft Access. D ei Access 2 0 0 0 a fo s t fo lo s it p e n tru re a liz a re a acestei c ri, a lte v e rs iu n i (Access 97, sau u ltim a v e rs iu n e , Access XP) a r tre b u i s fu n c io n e z e la fel de b ine.

Cui i se adreseaz cartea?


A ceast c a rte le este d e s tin a t celo r care a u a u z it de baze de date d a r n u tiu ce s u n t acestea, ce c o n in s a u c u m s le c o n s tru ia s c . E ste s c ris p e n tru a a ju ta o rice p e rso a n care tre b u ie s lucreze p rim a oar c u o baz de date. A ce ast n e ce sita te poate f i o o b lig a ie de s e rv ic iu sa u o d o rin p e rso n a l de m b u n t ire a n iv e lu lu i de a p titu d in i i c u n o tin e . In d ife re n t de m o d u l n care a i a ju n s pe p u n c tu l s v ncepei d ru m u l n acest dom eniu, dac s u n te i n c e p to r tre b u ie s p o r n ii c u p a s u l 0, ia r aceast ca rte este exact ce v tre b u ie !

Cum este organizat c a rtea


C artea este a lc tu it d in c in c i p ri. A ceast s tru c tu r v p o a rt de-a lu n g u l e v o lu ie i c o n ce pte lo r, a n a lize i, p ro ie c t rii, c o n s tr u ir ii i, n fin a l, im p le m e n t r ii b a ze lo r de date.

Partea I - Baze de date - elem ente generale


n a in te de a m erge pe d o u p icio a re , o ric in e m erge de-a b u ile a . Ce este o baz de date? C are s u n t tip u r ile de baze de date i c u m s u n t ele u tiliz a te azi n afaceri? A ceste aspecte i m u lte a ltele s u n t e x p lo ra te n p a rte a I.

P artea a ll-a - Proiectarea i construirea prim ei baze de date


D u p ce a m p re z e n ta t aspectele te o re tice legate de bazele de date, este tim p u l s tre c e m la trea b . P rim u l pas n c o n s tru ire a u n e i baze de date c o n st n a n a liz a u n o r p ro b le m e de a fa ceri i p ro ie c ta re a u n e i baze de date p e n tru a le rezolva. P artea a ll- a v cluzete p a ii de la d e s ig n u l conceptu a l la c o n s tru ire a efe ctiv a u n e i baze d a date.

P artea a lll-a - n trein erea bazei de date


D u p ce a i c o n s tru it baza de date, ea tre b u ie n tre in u t . Ce an u m e m e n in e o baz de date n b u n sta re de fu n c io n a re ? baz de date este la fei de b u n ca i d a te le pe care le co n in e . P artea a IlI- a tra te a z conceptele cu a c t o r u l c ro ra v p u te i a s ig u ra c n baza de date s u n t stocat n u m a i date valide .

P artea a IV-a - Extragerea inform aiilor din baza de date - introducere n SQL
n acest p u n c t ti i ce este o baz de date, c u m s p ro ie c ta i, s c o n s tr u ii i s n tr e ^ n e i o baz de date. P artea a rv-a re vine la s c o p u l in iia l: p u n e re a la lu c r u a u n e i baze de date. T o tu l ncepe de la m o d u l n care s u n t extrase in fo rm a iile d in ea. A ceast ca rte e x p lic lim b a ju l ba ze lo r de date: S Q L (S tru c tu re d Q u e ry Language).

Partea a -^ - Funcionarea bazei de date - construirea unei aplicaii sim ple pentru baze de date n Access
P artea a V -a p u n e lu c r u r ile cap la cap, a r t n d u -v c u m s p re z e n ta i baza de date u tiliz a to r ilo r fin a li. n tr - u n a n u m it m o m e n t, o a m e n ii v o r tre b u i s in te ra c io n e z e c u baza d u m n e a v o a s tr de date. A ceast p a rte tra te a z aspecte p re c u m fo rm u la re le p e n tru in tro d u c e re a d a te lo r i ra p o a rte le n c o n te x tu l u n e i a p lic a ii s im p le p e n tru baze de date d in Access.

Convenii utilizate n aceast c a rte


s tr u c t u r a este c o n c e p u t p e n tru a v a ju ta s n e le g e i i s v n s u ii ct m a i m u lte in fo rm a ii. La n c e p u tu l fie c ru i c a p ito l v e i gsi u n re z u m a t, s u b fo rm a u n e i lis te c o n in n d sub ie cte le tra ta te n el. n p lu s , v e i g si m a i m u lte p ic to g ra m e de-a lu n g u l c rii. Ele v a tra g a te n ia sp re in fo r m a ii m a i d e ta lia te , s fa tu r i spre a v face m u n c a m a i p ro d u c tiv sau a te n io n a i p e n tru a v a ju ta s e v ita i p o te n ia le le problem e. Ia t care s u n t aceste p ictog ra m e:

IN TR O D U C ER E

Notele ofer informaii suplimentare despre subiectul tratat ntr-o anumit seciune. Putei sri peste eie, nvnd numai conceptele cheie prezen tate. Indiciile v ofer o imagine asupra a ceea ce se ntmpl aici. nvnd o parte din informaiile de fundal despre o anumit sarcin, vei nelege mai bine conceptul prezentat. Indiciile vor face i ca eforturile dumnea voastr de dezvoltare s fie mai uoare si mai eficiente. Atenionrile sunt menite s salveze situatia! n orice mediu de dezvoltare a aplicaiilor sunt 100 de lucruri care ar putea merge prost. Mai ales n situatiile n care ati putea ajunge s muncii foarte mult si s v ndeprtat de calea cea dreapt , vei gsi o atenionare care v ajut s evitai acest lucru.

BAZE DE DATE ELEMENTE GENERALE

INTRODUCERE N BAZELE DE DATE


in acest capitol:
Ce este o baz de date? C u m s u n t u tiliz a te bazele de date Sistem e tip ic e de m a n a g e m e n t al ba ze lo r de date u tiliz a te azi T e rm e n i cheie n bazele de date M o d e lu l re la io n a l: p re ze nta re general P ro fe s iu n i n d o m e n iu S > R ezum at

PARTEA I - BAZE DE DATE - ELE M E N TE G ENERALE Drumul de 1000 de li ncepe cu primul li.
- V e c h i p ro v e rb ch in e z C a p ito lu l tra te a z elem entele eseniale ale bazelor de date re la io n a le , m o d u l lo r de u tiliz a re i te rm e n ii cheie. E x is t m a i m u lte tip u r i de baze de date, p re c u m reea, ie ra rh ic e i o rie n ta te obiect. S u b ie c tu l de in te re s n aceast ca rte l re p re z in t bazele de d a te re la io n a le , care s u n t, de d eparte, tip u l cel m a i p o p u la r de baze de da te u tiliz a t astzi. C a ra c te ris tic ile a c e s tu i tip de baze de d a te s u n t p re ze n ta te n d e c u rs u l a c e s tu i ca p ito l. C nd n c e p e i s tu d iu l ba ze lo r de date s -a r p u te a s a fla i c, dei te h n o lo g ia a f c u t bazele de date m a i p u te rn ic e ca o ric n d , n esen, acestea e x ist de m a i m u lt tim p d e c t c o m pu terele . A ce st lu c r u s -a r p u te a s v s u rp rin d , d a r d u p ce v e i nelege ce s u n t de fa p t bazele de date, v e i nelege i de ce lu c r u rile s ta u astfel. n tr u c t a i ales aceast carte, v o i p re s u p u n e c s tu d iu l b a ze lo r de da te este ceva n o u p e n tru d u m n e a v o a s tr i c s tu d iu l ba ze lo r de date n u v este fa m ilia r. C el m a i b u n s fa t pe care vi-1 p o t o fe ri n acest m o m e n t este s v le g a i c e n tu ra de s ig u ra n , s re s p ira i adnc, s f i i p re g tit s v d is tr a i i s n v a i m u lte lu c r u r i n o i i u tile !

Ce este o baz de date?


Cele m a i b u n e d e fin iii s u n t acelea care n e cesit c t m a i p u in e c u v in te . n ca zu l ba z e lo r de date, d e fin iia cea m a i co n cis poate fi re d u s la u n s in g u r c u v n t: colecie. O baz de date este o colecie de date corelate. Cele tre i elem ente e se n ia le ale u n e i baze de date s u n t: Tabelele C oloanele H L in iile (r n d u rile )

Tabelele, n u m ite i entiti, re p re z in t elem entele de baz ale in fo rm a iilo r pe care d o r ii s le u r m r ii. A a s u n t, de e xem plu, c lie n ii u n e i firm e de s e rv ic ii, com enzile, fa c tu rile p ro d u s e lo r v n d u te . R ezult, deci, c o baz de date tip ic p e n tru o firm c o n in e tab ele p e n tru c lie n i, com enzi, fa c tu ri. Coloanele, n u m ite i cmpuri, re p re z in t a trib u te le u n u i tabel. C o n s id e ra i ta b e lu l c u c lie n ii u n e i firm e . C u m a i descrie o e n tita te c lie n t? A trib u te p re c u m n u m e le p re n u m e le , adresa, o ra u l, c o d u l p o ta l, te le fo n u l etc. s u n t in fo rm a ii care tre b u ie stocate. Liniile (rndurile), n u m ite i nregistrri, re p re z in t datele p ro p riu -z is e . n tim p ce c m p u rile d e s c riu ce tip de date s u n t stocate, n lin iile ta b e le i s u n t stocate datele.
Sistem ele m o d e m e de m a n a ge m e n t al bazelor de date a d m in istre a z a n s a m b lu l de tabele, lin ii i coloane. C u v n tu l moderne d in p ro p o z iia a n te rio a r sugereaz c a u e x is ta t sa u e x is t baze de date n e m o d e m e ? R s p u n s u l este a firm a tiv . G n d ii-v la b ib lio r a ftu r ile c u fa c tu r i d in d e p a rta m e n tu l de c o n ta b ilita te a firm e i d u m n e a v o a s tr . Acestea p o t fi c o n sid e ra te ca n i te

C A P IT O L U L 1 INTRODUCERE N BAZELE DE DATE tabele, n care c m p u rile de da te d in fa c tu ra o b i n u it p o t fi co n sid e ra te coloane, ia r fiecare fa c tu r p oate f i co n sid e a t u n r n d a l ta b e lu lu i. De asemenea, g n d ii-v la v e c h iu l s is te m c u fie de ca talog pe care b ib lio te c ile l u tiliz a u {n R o m n ia este n c u tiliz a t n m u lte b ib lio te c i -n .t.). F iecare fi c o n in e aceleai elem ente: t i t l u l c rii, a u to ru l, a n u l a p a riie i, e d itu ra etc. E ste u o r de v z u t c fiele form eaz ta b e lu l, elem entele c o n in u te de :iacare fi s u n t coloanele i fiecare fi este o lin ie de date. D ife re n a e se n ia l n tre bazele de date m o d e m e i s tr m o ii lo r b a z a i pe d o cu m e n te este p o s ib ilita te a de re gsire a d a te lo r. n tr - u n s is te m m o d e rn de baze de date, g sire a t u t u r o r c rilo r p u b lic a te n a n u l 2 0 0 0 este sim p l : s c rie i o in te ro g a re , p u n n d c o m p u te ru lu i o n tre b a re . S u n t anse s p r im ii r s p u n s u l n m a i p u in de o secund. n sistem ele vechi, bazate pe d o c u m ente, acest lu c r u a r f i d u r a t cteva m in u te , cteva ore sa u poate cteva zile. n esen, tabelele, coloanele i lin iile s u n t c r m iz ile p e n tru o baz de date re la io n a l . A tu n c i c n d c o n s tr u ii o baz de date, tabelele, lin iile i coloanele in te r v in im e d ia t n d is c u ie . O baz de d a te p e n tru o firm poate co n in e peste 100 de tabele. F iecare ta b e l poate avea u n u l sau 100 de c m p u ri. N u m ru l o p tim a l acestora poate fi d e te rm in a t p r in te h n ic i corecte de design, care s u n t d is c u ta te n aceast carte. D e i bazele de date s u n t in te re sa n te , m o d u l lo r de u tiliz a re este, poate, i m a i in te re s a n t.

U tilizarea bazelor de date


D ac s u n te i ca m a jo rita te a o a m e n ilo r, i d u m n e a v o a s tr p r im ii c a n tit i im p o rta n te de c o re s p o n d e n n e s o lic ita t (junk maiI). Se pa re c im e d ia t ce :fe r ii c u iv a in fo r m a ii despre d u m n e a v o a s tr , n c e p e i s p r im ii a s tfe l de mesaje - fie pe c ile tra d iio n a le , fie pe c i e lectronice. D a c a i c u m p ra t :eva de la fir m a X , v e i p r im i in fo r m a ii i despre fir m a Y , care o fer p ro d u s e i s e rvicii asem nto are. n tre b a re a d u m n e a v o a s tr a r p u te a fi: De u n d e au tiu t s -m i t r im it aceste in fo rm a ii? sa u D e u n d e a u tiu t c am c u m p ra t p ro d u s u l re sp e ctiv? . R s p u n s u l are d o u aspecte. M a i n t i, e x is t in fo rm a ii despre d u m n e a voastr pe care le -a i fu r n iz a t d ire c t sau in d ire c t. A poi, firm e le a u a s im ila t ceste in fo r m a ii n baze de date. O ric n d c u m p ra i ceva fo lo s in d o ca rte de c re d it, o fe rii c u iv a in fo r m a ii despre d u m n e a v o a s tr i despre o a m e n ii :a d u m n e a v o a s tr . D u m n e a v o a s tr p r im i i lu n a r u n ra p o rt c u p rin z n d c u m p r tu rile lu n ii n ch e ia te . D atele p riv in d aceste c u m p r tu ri, p re c u m i cele ale a lto r m ilio a n e de in d iv iz i care folosesc c ri de c re d it s u n t stocate in baze de date. 5e poate s p u n e c la baza c o n s tru c ie i ba ze lo r de date st tra n s fo rm a re a datelor d is p a ra te n in fo rm a ii. In lu m e a a fa c e rilo r de azi, i m a i ales n a rk e tin g , s c o p u l b a z e lo r de date este i el d u b lu . M a i n t i, firm e le doresc s tie despre d u m n e a v o a s tr c t m a i m u lt p o s ib il. A p o i, n acest fe l a fl ce an u m e v d o rii. i a stfe l re v e n im la e x e m p lu l a n te rio r c u ca rte a de c re d it.

10

PARTEA I - BAZE DE DATE - ELE M E N TE G ENERALE

n acest proces, firm e le i p o t d ire c io n a e fo rtu rile de m a rk e tin g . Care este re z u lta tu l fin a l? C a i c o s u m a to r, este m a i p ro b a b il s c u m p ra i dect s v in d e i. i c u i tre b u ie s m u lu m e a s c firm e le p e n tru creterea v n z rilo r? B azelor de date, desigu r! A i c u m p ra t v re o d a t ceva de pe A m azon.com ? La n ce p u t, datele au fo st u tiliz a te in c id e n ta l pe s ite -u l A m azon. T o tu i, c u trecerea tim p u lu i, o d a t ce s-a u a d u n a t datele i e xperiena , datele au d e venit o p a rte in te g ra n t a s ite -u lu i. Azi, c n d in tr a i pe acest site - p re s u p u n n d , desigur, c v -a i a b o n a t - v s u n t oferite to t fe lu l de su g e s tii p riv in d produsele. A m azon s to cheaz datele oferite de c u m p r tu rile pe care le -a i f c u t n tr-o baz de date i le u tiliz e a z p e n tru a a n tic ip a ce a lte p ro du se a i fi in te re s a t s c u m p ra i. V a lo a re a p re d ic tiv a d a te lo r este, p ro b a b il, b e n e fic iu l cel m a i im p o rta n t al s to c rii d a te lo r n baze de date. C o m p a n iile folosesc bazele de date p e n tru a a fla e v o lu ia a fa c e rilo r i a a n tic ip a tra ie c to ria lo r v iito a re . A n a liz n d datele, co m p a n iile p o t lu a m s u ri corective dac s u n t detectate problem e. A spectele pre ze n ta te a n te rio r n u re p re z in t deloc o lis t e x h a u s tiv a m o d u r ilo r de u tiliz a re a u n e i baze de date. N u a i v z u t dect p a rte a a is b e rg u lu i de d e a s u p ra apei. Z iln ic s u n t d e scope rite n o i c i de u tiliz a re a da te lo r. P rin te h n o lo g ia m o d e rn , bazele de date v p u n la d is p o z iie m ilio a n e de bytes (octei) s im u lta n s u b fo rm de in fo r m a ii. D a c d a tele a r tr e b u i s fie co m p ila te m a n u a l, a r fi nevoie de ore, zile, s p t m n i, lu n i sa u poate c h ia r an i! A cest b e n e fic iu este e x tre m de im p o rta n t, deoarece, a tu n c i cnd datele a tin g o a n u m it v rs t , va lo a re a lo r devine egal c u zero. M u lte sistem e de a d m in is tra re a b a ze lo r de date s u n t fo lo site azi. S e ciu n e a u rm to a re le descrie pe cele m a i p o p u la re .

Sistem e tip ice de adm inistrare a bazelor de date


M u lte sistem e de a d m in is tra re a b a ze lo r de date s u n t fo lo site azi. P rin tre cele m a i p o p u la re s u n t:
11 M ic ro s o ft Access

E M ic ro s o ft S Q L S erver
Si M S D E (M ic ro s o ft D a ta Engine)

O racle IB M D B 2 M ic ro s o ft Access este u n u l d in tre cele d o u p ro g ra m e im p o rta n te p e n tru baze de da te o fe rite de M ic ro s o ft. Access este o p la tfo rm p e n tru baze de date o rie n ta t spre reele i b iro u . D ei are foa rte m u lte fu n c ii, este lim ita t a t t de c a n tita te a de d a te pe care le poate stoca, d a r i de n u m r u l de u tiliz a to r i pe care i poate se rvi s im u lta n . n general, d im e n s iu n e a m a x im a u n e i baze de date n Access este de 2 m ilio a n e de bytes (2 gigabytes). M arele a v a n ta j pe care l ofer Access este u u r in a de u tiliz a re . A cesta este m o tiv u l p e n tru care a m ales Access p e n tru a ilu s tr a exem plele d in carte.

CAPITOLUL 1 INTRODUCERE N BAZELE DE DATE

11

Pe de a lt p a rte , e x is t p ro d u s e p re c u m M ic ro s o ft S Q L Server, O racle i D B 2. Aceste siste m e de a d m in is tra re a b a ze lo r de date p o t stoca m ilia rd e de b y te s (terabytes). M a i m u lt, aceste sistem e p o t se rvi m ii de u tiliz a to r i s im u lta n . Cele m a i m a ri s ite -u ri i a p lic a ii p e n tru baze de date folosesc pro d u se de acest tip . Deoarece aceast ca rte i p ro p u n e s fie o in tro d u c e re n bazele de date, p ro du se le p re c u m SQ L S erver i O racle i depesc scopul. C itii anexele, p e n tru in fo r m a ii despre re su rse de s tu d iu m a i avansate. E ste im p o r ta n t s re in e i c, dei ca rte a folosete M ic ro s o ft Access p e n tru a ilu s tr a fu n c io n a re a ba ze lo r de date, d u m n e a v o a s tr v e i cu n o a te toate fu n c iile acestora. S c o p u l acestei c ri este de a v n v a ce s u n t bazele de date i c u m s le fo lo s ii. n esen, to a te bazele de date fu n c io n e a z d u p aceleai p r in c ip ii teoretice. D u p ce v e i cu n o a te elem entele de baz p re zentate n c a rte , v v a fi re la tiv u o r s fa c e i tra n s fe ru l de c u n o s tin te la p la tfo rm e m a i avansate, p re c u m S Q L Server, O racle, sa u D B 2. P n a cu m , aceste p la tfo rm e a u fo s t d e n u m ite sistem e de a d m in is tra re a bezelor de d ate (database management system - DBMS). M a i p re cis ele s u n t sistem e de a d m in is tra re a b aze lor de date re la io n a le . C o n s tru c ia tu tu r o r s is te m e lo r m e n io n a te are la baz m o d e lu l re la io n a l. nelege re a ba ze lo r de date are la baz d o u etape im p o rta n te : c u n o a te re a c to rva te rm e n i de baz i ne leg e re a p r in c ip iilo r cheie ale m o d e lu lu i re la io n a l. Aceste etape fac o b ie c tu l u rm to a re lo r d o u s e c iu n i.

Term eni cheie n bazele de date


U n g lo s a r c o m p le t cu te rm e n i d in bazele de d ate poate fi g s it n anexa C a acestei c ri. C u r is c u l re d u n d a n e i, este cel m a i b in e s v fa m ilia riz a i cu cei m a i o b i n u ii i m a i im p o r ta n i te rm e n i pe care n u i v e i n t ln i n u m a i n aceast carte, c i n orice a c tiv ita te care are le g tu r cu bazele de date pe care o v e i d e sf ura.

Baz de d ate
O baz de da te a fo s t d e fin it a n te rio r n acest c a p ito l ca fiin d o colecie de elem ente n ru d ite de date. M a i p re cis, o baz de date este o colecie de tabele sa u e n tit i n r u d ite de date. De e x e m p lu o baz de date o b i n u it p e n tru o firm a r p u te a f i a lc tu it d in tabelele: c lie n t, com anda, p ro d u s u l co m a n d a t. T oa te aceste tabe le s u n t n ru d ite u n u l cu a ltu l n tr - u n a n u m it m od. In acest e xe m p lu , c lie n ii d a u com enzi, ia r c om enzile c o n in pro d u se . C h ia r d a c fiecare ta b e l este sep arat, ele a lc tu ie s c m p re u n baza de date.

Tabele i e n tit i
U n ta b e l re p re z in t ceva despre firm . T abelele s u n t n u m ite i e n tit i. D ac d o r ii s g s ii s a u s s to c a i in fo r m a ii despre ceva, s u n t anse ca acel ceva s f fo s t d e fin it ca ta b e l. U n u l d in tre p r im ii p a i n c o n s tru ire a u n e i baze de d a te p re s u p u n e d e fin ire a ta b e le lo r d in care este fo rm a t .

12

PARTEA I BAZE DE DATE - E LE M E N TE GENERALE

Cmpuri, coloane i atribute


A a c u m o baz de d a te este a lc tu it d in tabele, tabelele s u n t fo rm a te d in c m p u ri. C m p u rile s u n t n u m ite coloane sau atribute. In fu n ie de co n te xt, v a fi fo lo s it u n u l s a u a ltu l d in tre a ce ti te rm e n i. N u v l s a i d e ru ta t de fo lo sire a m a i m u lto r c u v in te , deoarece cm p, coloan i a tr ib u t n se a m n to a te a celai lu c ru . O b u n m e to d de a nelege ce s u n t c m p u rile este s v g n d ii la ele ca d e s c rip to ri a i ta b e le lo r. De e xem plu, c u m a r p u te a fi d e scris e n tita te a c lie n t? E xe m p le p o triv ite de c m p u ri a r f i n u m e le de fa m ilie , p re n u m e le , o ra u l, s ta tu l, c o d u l p o ta l, n u m ru l de te le fo n etc.

Norm alizarea
C nd c re a i o b az de date, d e fin ire a ta b e le lo r i a c m p u rilo r n u este s u fi cie n t . N u m ru l i s tr u c tu r a o p tim a ta b e le lo r s u n t d e te rm in a te p r in tr - u n proces n u m it normalizare. P rocesul de n o rm a liz a re p re s u p u n e crearea a n u m e ro a s e ta b ele m ic i n loc de a crea m a i p u in e tabele m o n o litic e . U n u l d in tre s c o p u rile p rin c ip a le ale n o rm a liz rii este re d u ce re a re d u n d a n e i d a te lo r. S u b ie c tu l n o rm a liz rii este d is c u ta t n c a p ito lu l 4.

Rnduri i nregistrri
F iecare ta b e l d in tr - o b az de d ate c o n in e zero sa u m a i m u lte r n d u ri. R n d u rile s u n t n u m ite i nregistrri. De e xem plu, fiecare c lie n t a l u n e i firm e are o n re g is tra re s e p a ra t n ta b e lu l c u date despre c lie n i. De aceea fiecare c o m a n d a u n u i a n u m it c lie n t re p re z in t u n r n d n ta b e lu l care c o n in e da te despre com enzi.

Cheie prim ar
O expresie care id e n tific u n ic o n re g is tra re d in tre toate celelalte se n u m ete cheie primar. S u b ie c tu l c h e ilo r i in d e x u rilo r este tr a ta t n c a p ito lu l 3.

Modelul bazei de date relaionale: prezentare general


In a n u l 1970, d r. E. F. Codd, cercet to r la IB M , a p u b lic a t u n a rtic o l in titu la t A Relaional Model of Data for Large Shared Data Banks (u n m o d e l re la io n a l de date p e n tru bazele de date p a rta ja te de m u li u tiliz a to ri). n acest a rtic o l, dr. C odd a p ro p u s o n o u te o rie a re p re z e n t rii ba ze lo r de date a crei n a tu r era n m o d e s e n ia l m a te m a tic . T e o ria a p ro p u s i n o i m odele m a te m a tic e p e n t r u a c c e s a re a i m a n ip u la r e a u n e i b a z e de d a te . R ecunoscnd une le d in tre d ific u lt ile care p o t fi n t ln ite , a u to ru l a fo rm u la t re g u lile p e n tru n o rm a liz a re a u n e i baze de date. Aceste re g u li s u n t d is c u ta te n c a p ito lu l 4. n seciunea a n te rio a r a u fo st a m in tite cteva sistem e re la io n a le de baze de date d is p o n ib ile azi pe pia. Folosirea c u v n tu lu i re la io n a l n tr-u n astfel de context l-a d e ra nja t pe a u to ru l a rtico lu lu i. Preocuparea lu i era confuzia existent

C A P IT O L U L 1 INTRODUCERE N BAZELE DE DATE

13

n tre ideea c datele a r p u te a fi reprezentate n tabele n ru d ite i te o ria sa p riv in d bazele de date relaionale. De aceea, el a creat n a n u l 1988 cele 12 reguli faimoase ale teoriei bazelor de date relaionale. Cele 12 reguli s u n t cuprinse n lis ta u rm toa re : a t t ca form u lare, d a r i ca explicare a n e le s u lu i lor. Unele concepte cu care n u s u n te i nc fa m ilia riz a t a r p u te a f i m e n io n a te n aceste re g u li i exp licaii. U nde este posibil, s u n t in d ica te i trim ite ri la lo cu rile unde s u n t tra ta te aceste subiecte n carte. Iat aceste reguli: 1. T oate in fo rm a iile d in tr-o baz de date re la io n a l s u n t re p re ze n ta te e x p lic it la n iv e l log ic i e xact n tr - u n s in g u r m o d - p r in v a lo ri n tabele. Toate datele dintr-o baz de date sunt continute n tabele. Valorile din tabele sunt reprezentate sub form de coloane (cmpuri). 2. F iecare e le m e n t de d ate (valoare atom ic) d in tr-o b az de date re la io n a l este logic a cce sib il ca re z u lta t a l u n e i c o m b in a ii n tre n u m e le ta b e lu lu i, ch e ia p rim a r i n u m e le coloanei. Datele dintr-un tabel nu sunt sub forma unui ir continuu de date, ci datele pot fi accesate preciznd coloana din care fac parte. De exemplu, putei referi numrul comenzii din tabelul cu comenzi ca orders.ordernumber. cu alte cuvinte, nu este necesar s cutai ntr-un ir de caractere pentru ______ _ _____ a localiza numrul comenzii. 3. V a lo rile n u le (dife rite de s p a iu l n e co m p le ta t sa u de u n ir de caractere blanc) s u n t acceptate n tr -u n D BM S re la io n a l, p e n tru a rep re zen ta in fo rm a iile lip s i s itu a iile n care n u p o t fi date in fo rm a ii n m o d siste m a tic, in d ife re n t de tip u l datelor. Valorile nule pot fi la nceput un concept greu de neles. Gndii-v la un cmp gol ntr-o nregistrare pentru un client. Cmpul este necompletat, sau valoarea sa nu este cunoscut? Valorile nule indic o situaie n care valoarea este necunoscut, spre deosebire de cazul n care cmpul este necompletat. Gndii-v la valorile nule ca avnd semnificaia Nu tiu. 4. D escrierea bazei de date este reprezentat la n ive l logic n acelai m o d ca p e n tru datele o b i n u ite , deci u tiliz a to rii a u to riz a i p o t s aplice acelai lim b a j re la io n a l p e n tru a de te rm in a s tru c tu rile de date care se a p lic p e n tru datele o b in u ite .

n procesul construirii unei baze de date, veti defini elemente ca tabele, cmpuri, indexuri i aa mai departe. Numele tabelelor, cmpurilor, indexu rilor etc. sunt date care descriu alte date, numite metadate. In lumea bazelor de date, metadatele sunt numite i dicionare de date. Diciona rele de date pentru adevratele baze de date relaionale sunt stocate n tabele de date similare tabelelor de date pe care le definii. Mai mult, acelai limbaj pe care l folosii la extragerea datelor din tabelele pe care le proiectai poate fi folosit n tabelele pe care sistemul le definete pentru stocarea dicionarelor de date.

14

PARTEA I - BAZE DE DATE - ELE M E N TE G ENERALE


5. U n s is te m re la io n a l accept m a i m u lte lim b a je i d ife rite m o d u r i de u tiliz a re la te rm in a l. T o tu i, tre b u ie s existe cel p u in u n lim b a j n care s fie e x p rim a te n d e c la ra ii, cu o s in ta x b in e d e fin it , ir u r ile de c a ra ctere i care este c o m p re h e n siv n accepta re a u rm to a re lo r: IB D e fin iii ale d a te lo r D e fin iii ale v iz u a liz rilo r M a n ip u la re a d a te lo r C o n d iii (re s tric ii) de in te g rita te A u to riz ri Aceast regul se refer la capacitatea unei baze de date de a suporta limbaje care v permit s lucrai, s vedei, s manipulai, s controlai accesul si s protejat datele. Desi nu este declarat clar, cel mai popular limbaj pentru a realiza toate aceste sarcini este SQL (Structured Query Language). Detalii despre ce este SQL i cum poate fi implementat vei gsi n partea a patra a crii. 6. Toate v iz u a liz rile care, n teorie, s u n t a ctu a liza b ile p o t fi a c tu a liz a te de sistem . Aceast regul nseamn c un DBMS relaional are ncorporat capaci tatea de a modifica datele. In produse precum SQL Server i Oracle pot fi stabilite sarcini precum actualizarea datelor i ntreinerea bazei de date la anumite intervale de timp. 7. C a p a cita te a de a d m in is tra re a u n e i r e la ii de baz sa u a u n e ia d e riv a te ca u n s in g u r o p e ra n d se a p lic n u n u m a i p e n tru re g sire a d a te lo r, d a r i p e n tru in tro d u c e re a , a c tu a liz a re a i terg e re a d a te lo r.

O vizualizare poate fi considerat ca o fereastr prin care pot fi privite datele i se poate lucra cu ele. Ea poate fi format din coloane ale unuia sau mai multor tabele. Deoarece o vizualizare este o entitate unic, alctuit din unul sau mai multe tabele, este necesar numai o operaie pentru a regsi, introduce, actualiza sau terge date din unul sau mai multe tabele simultan. 8. P rogram ele p e n tru a p lic a ii i a c tiv it ile de la te rm in a l r m n se p arate lo gic o ric n d se p ro d u c m o d ific ri n re p re z e n t rile de stocare sa u m etodele de acces.

Utilizatorul nu trebuie s aib cunotine de specialitate n legtur cu locul de stocare fizic a datelor sau cu platforma pe care acestea sunt stocate. Cu alte cuvinte, utilizatorul nu are nevoie s stie dac datele sunt stocate pe Unix sau pe Windows 2000 Server. n legtur cu locul de stocare a datelor, utilizatorul nu trebuie s cunoasc dect numele serverului. Iar serverul se poate afla n camera alturat sau la 4000 de kilometri distan. Acest aspect va fi rezolvat de reea, nu de utilizator sau de baza de date.

C A P IT O L U L i

INTRODUCERE N BAZELE DE DATE

15

P rogram ele p e n tru a p lic a ii i a c tiv it ile de la te rm in a l r m n separate log ic cn d s u n t efectuate m o d ific ri de orice fel legate de p s tra re a in fo r m a iilo r , care p e rm it se p a ra re a , a s u p ra ta b e le lo r de baz. Programelor pentru aplicaii nu ar trebui s li se solicite s cunoasc modificrile efectuate asupra structurilor de date. De exemplu, dac sunt adugate noi coloane n tabel, programul cu care lucreaz acel tabel ar trebui s poat lucra neafectat. 10. R e s tric iile de in te g rita te specifice u n e i a n u m ite baze de date re la io n a le tr e b u ie s p o a t fi d e fin ite n t r - u n s u b lim b a j r e la io n a l i s to c a b ile n ca ta lo g , n u n p ro g ra m u l p e n tru a p lic a ii. Meninerea integritii datelor este probabil una dintre cele mai importante funcii ntr-o baz de date relaional. Ca s fie relaional, un sistem de baze de date trebuie s poat s ofere aceste servicii. De aceea, o baz de date nu se poate baza pe programe disparate pentru a menine integri tatea datelor. Dac un cmp poate accepta numai anumite valori sau dac datele dintr-un tabel nu pot fi terse n cazul n care exist alte date, acest lucru trebuie s poat fi definit ntr-o baz de date. Partea a treia a crii trateaz meninerea integritii datelor ntr-o baz de date. 11. U n D B M S re la io n a l indepedence). in d e p e n d e n d is tr ib u it [distribution

O baz de date care respect modelul relaional poate fi divizat sau partitionat de-a lungul mai multor locaii fizice. n concluzie, o baz de date poate fi gzduit pe mai multe computere ntr-un mediu cu mai multe servere. Indiferent dac o baz de date se afl pe unul sau mai multe servere, programul sau utilizatorul final nu ar trebui s observe diferena. 12. D ac u n s is te m re la io n a l are u n lim b a j de n iv e l sczut, acesta ' n u p oate f i u tiliz a t p e n tru a s u b m in a sau trece peste re g u lile de in te g rita te i re s tric iile e x p rim a te n lim b a ju l re la io n a l de n iv e l n a lt. Limbajele de nivel sczut au tendina s lucreze la o singur nregistrare o dat, pe cnd limbajele de nivel nalt sunt bazate pe seturi (pot lucra cu mai multe nregistrri o dat). Regula 12 stabilete de fapt c limbajele de nivel sczut i cele de nivel nalt trebuie s respecte aceleai reguli. n m od iro n ic , n ic i u n u l d in tre sistem ele de baze de date existente n u respect toate cele 12 re g u li. De aceea, p r in d e fin iie , u n siste m de baze de date care este n u m it re la io n a l n u este de fa p t re la io n a l. S -a r p u te a s s p u n e i: i ce dac? A ce sta este d e m o n s tra ie a fa p tu lu i c re g u lile s u n t f c u te p e n tru a fi n c lc a te . A ceasta este o o b servaie b u n . nelegerea p o s ib ilit ilo r i a m o d u lu i de lu c r u c u o baz de d ate re la io n a l s u n t m u lt m a i im p o rta n te

16

PARTEA I - BAZE DE DATE - E LE M E N TE G ENERALE

de c t nelege re a c o m p le x it ilo r te o rie i re la io n a le . D ei sco p u l acestei c ri l re p re z in t aspectele p ra c tic e ale b a z e lo r de date, nelegerea o rig in ilo r m o d e lu lu i bazei de d a te re la io n a le poate fi u til . De aceea v -a m o fe rit pre ze n ta re a c e lo r 12 re g u li ale Iu i Codd. n anexa E p u te i gsi tr im ite r i la c rile n care e x is t in fo r m a ii a vansate i p u te i n v a m a i m u lte despre te o ria re la io n a l .

Cariere n domeniul bazelor de date


Poate v n tre b a i: C u aceste c u n o tin e despre bazele de date pe care le v o i o b in e , ce fe l de s lu jb v o i o b in e ? . Deoarece a i ales aceast carte, este p ro b a b il s fie adev ra te d o u lu c r u r i: F a p tu l c s tu d ia i bazele de date are le g tu r cu ca rie ra dum neavoastr. F a p tu l c s tu d ia i bazele de date este e x p lic a t de m o tive personale. In d ife re n t dac in te re s u l dum ne avo a str p e n tru bazele de date este de n a tu r p e rs o n a l s a u p ro fe s io n a l , aceast ca rte v v a o fe ri u n p u n c t de p o rn ire pe calea cea b u n . Poate c n c e rc a i s v c a lific a i n tr-o n o u m eserie. D a r c h ia r dac n u c u ta i u n a lt s e rv ic iu , d u p c itire a c rii, s -a r p u te a s c p ta i o m a i m a re c u rio z ita te p e n tru u n s e rv ic iu n acest d o m e n iu . Ia t o lis t c u s c u rte d e s c rie ri ale p o s tu r ilo r d in d o m e n iu l ba ze lo r de date.

Adm inistrator de baze de date


U n a d m in is tra to r de baze de date (database administrator - DBA) este de ob ice i cel care a d m in is tre a z in tra re a d a te lo r n tr-o firm . In m o d n o rm a l, acest lu c r u n e c e s it ca m o d ific rile s tr u c tu r ilo r de date, stocarea u n o r n o i p ro c e d u ri .a .m .d . s fie c o n tro la te de a d m in is tra to r. A ce sta se a s ig u r c bazele d a date ale firm e i s u n t m e n in u te c o re s p u n z to r i fu n c io n e a z o p tim . n tim p , pe m s u r ce o baz de date crete i se m a tu rize a z , im p le m e n ta re a c u re n t a acesteia tre b u ie reanalizat . A d m in is tra to ru l bazei de da te jo a c u n ro l c e n tra l n acest proces. C nd este dezvolta t o n o u a p lic a ie p e n tru o firm , d e z v o lta to ru l a p lic a ie i se c o n s u lt c u a d m in is tr a to r u l p e n tru a a fla d e ta liile te h n ic e ale bazei de date. D ei d e z v o lta to ru l bazei de date a r p u te a d o ri s -i a d u c o m o d ific a re , p ro b a b il c i a lte a p lic a ii folosesc aceeai baz de date. A d m in is tra to ru l tre b u ie s se a s ig u re c m o d ific a re a s o lic ita t de o a n u m it a p lic a ie este c o m p a tib il c u a lte a p lic a ii. D a c n u este c o m p a tib il , a d m in is tra to ru l tre b u ie s p ro p u n s o lu ii a lte rn a tiv e .

Program ator de ap licaii pentru baze de date


Poate c s u n te i u n p ro g ra m a to r c u exp erien , d a r n u a i m a i lu c r a t cu date p n acum C u a b ilit ile s u p lim e n ta re p e n tru baze de date n arse n a l, v e i fi g ata s a ta c a i lu m e a n dezvoltare a a p lic a iilo r p e n tru baze de date. S pre deosebire de celelalte tip u r i de a p lic a ii softw are, a p lic a iile p e n tru baze de date a u u n im p a c t d ire c t a s u p ra o p e ra iu n ilo r u n e i firm e .

CAPITOLUL 1 INTRODUCERE N BAZELE DE DATE

17

Ca s d e z v o lta i o a p lic a ie p e n tru baze de date d e s tin a t u n e i firm e , tre b u ie m a i n t i s n e le g e i a c tiv ita te a acesteia. A cest lu c r u este to ta l d ife rit de dezvoltarea u n u i u t ilit a r care tra te a z u n a n u m it aspect a l a c tiv it ii firm e i. A p lic a iile p e n tru baze de date tin d s se ocupe de n tre a g a a c tiv ita te a u n e i firm e sa u de u n n tre g se g m e nt a l acestei a c tiv it i. D a c a ve i e xp e rie n n d e zvolta re a a p lic a iilo r bazate pe u tilita r e , a p lic a iile p e n tru baze de date v o r aduce la n c e p u t cteva n o i provocri. Aceste n o i pro vo c ri exist deoarece ce rin e le s u n t altele. O n tre b a re pe care este p o s ib il s o p u n e i n acest m o m e n t este n ce m o d d ife r c e rin e le ? . G n d iti-v la u r m to r u l lu c ru : pro g ra m e le bazate pe u tilita r e care n d e p lin e s c u n s in g u r scop a u te n d in a de a f i lim ita te . M o d u l n care ele fac a st zi ceva va fi acelai s i m ine. Bazele de date, pe de a lt p a rte , cresc o d a t c u firm a . M a i m u lt, pe m s u r ce m e d iu l de a fa ce ri se s c h im b , c e rin e le u n e i a p lic a ii p e n tru baze de date se s c h im b i ele. N ecesitatea de a re g si n o i in fo rm a ii, s o lic ita re a u n o r n o i ra p o a rte etc. (n tr-o m s u r m a i m ic sau m a i m are) n e cesit m o d ific ri a s u p ra s tr u c tu r ii b azei de date. S -a m a i s p u s c o a p lic a ie p e n tru baze de date n u este n ic io d a t te rm in a t , deoarece o firm se s c h im b n c o n tin u u .

Analist pentru baze de date


Poate c n u d o r ii s d e z v o lta i program e, c i m a i degrab s u n te i o persoan care nelege b in e firm a i date le legate de aceasta. U n p o s t cheie n acest am a lg a m este cel de a n a lis t a l b azei de date. A n a li tii s u n t p la n ific a to ri cheie n de sig n u l u n e i baze de date. Este im p o rta n t de observat c dezvoltarea a p lic a iilo r i p ro ie c ta re a lo r s u n t lu c r u r i d ife rite . P rim u l i cel m a i im p o r ta n t pa s n d e zvo ltarea u n e i a p lic a ii p e n tru baze de date este p ro ie c ta re a ei. N u se poate face n im ic altce va n a in te de acest pas.

Rezumat
n acest c a p ito l a u fo s t p re ze n ta te elem entele de baz despre bazele de date. S re c a p itu m : o baz de da te este o colecie de e n tit i n ru d ite . Aceste e n tit i, n u m ite i tabele, s u n t a lc tu ite d in c m p u ri, care m a i s u n t n u m ite i a trib u te . U n ta b e l poate c o n in e zero sa u m a i m u lte r n d u r i de date. Ceea ce este o baz de date d in p u n c t de vedere te h n ic n u este n ic i pe departe a t t de in te re s a n t ca lu c r u r ile pe care le poate face aceasta. D atele s u n t sngele d t to r de v ia a l u n e i firm e . T oate lu c r u r ile pe care o firm dorete s le tie p o t fi n m a g a zin a te n date. P e n tru a nelege a c tiv ita te a u n e i firm e tre b u ie m a i n t i s n e le g e i datele despre ea. In d ife re n t dac datele s u n t s u p o r tu l u n e i c a m p a n ii de m a rk e tin g sa u a l s e rv ic iilo r p e n tru c lie n i, date le jo a c u n ro l im p o rta n t. Azi, cele m a l p o p u la re baze de date u tiliz a te n firm e a u la baz m o d e lu l re la io n a l d e zvo lta t de d r. E. F. Codd. C h ia r dac d e n u m ire a sistem de adm i nistrare a b azelor de date relaionale (relaional database m anagem ent system) este c u p rin z to a re , n ic i u n a stfe l de siste m a fla t azi pe p ia n u respect toate cele 12 re g u li ale lu i Codd. D is tin c ia poate fi de n a tu r se m a n tic ,

18

PARTEA I - BAZE DE DATE - E LE M E N TE G ENERALE

d a r este to tu i u til p e n tru a nelege fu n d a m e n tu l pe care s u n t c o n s tru ite bazele de d a te re la io n a le . n tr u c t bazele de date s u n t sngele d t to r de v ia a l u n e i firm e , e xist m u lte ca rie re in te re s a n te asociate b aze lor de date. T re i d in tre acestea a d m in is tra to r a l bazei de date, p ro g a m a to r de a p lic a ii p e n tru baze de date i a n a lis t a l b azei de date - a u fo s t decrise pe s c u r t n acest ca p ito l. A c u m , c t i i n m a re ce este o baz de date, s u n te i gata p e n tru p a s u l u rm to r: v v e i m u r d r i m in ile p ro ie c t n d i c o n s tru in d p rim a baz de date.

ANATOMIA UNEI BAZE DE DATE


n acest capitol:
O in tro d u c e re n M ic ro s o ft Access B aza de date N o rth w in d T ra d e rs R e zu m a t

20

PARTEA I - BAZE DE DATE E LE M E N TE G ENERALE

C a p ito lu l 1 a fo s t d e d ic a t asp ecte lo r te o re tice despre bazele de date. A cest c a p ito l i celelalte ale acestei p ri a u ca s u b ie c t aspectele p ra ctice ale bazelor de date. Bazele de date s u n t e n tit i ta n g ib ile , pe care le p u te i vedea i cu care p u te i lu c ra . D ei te o ria este im p o rta n t i u til , n u e x ist m e to d m a i b u n de n v a re d ec t e x a m in a re a u n e i baze de date reale, in sp e cta re a c o n in u tu lu i ei i nelege rea m o d u lu i n care a fo s t c o n s tru it . A cest c a p ito l exa m in ea z baza de d ate N o rth w in d T ra d e rs, care este liv ra t m p re u n c u M ic ro s o ft Access. P e n tru a e xp lo a ta la m a x im acest c a p ito l i re s tu l c rii, a r tr e b u i s a ve i p ro g ra m u l Access in s ta la t pe c o m p u te ru l d u m n e a v o a s tr . V ru g m s re ve d e i c e rin e le p riv ito a re la so ftw a re d in se c iu n e a in tr o d u c tiv p e n tru d e ta lii despre m o d u l n care p u te i o b in e i in s ta la Access. A cest c a p ito l n u i p ro p u n e s fie o trecere n re v is t c u p rin z to a re a n tr e g u lu i p ro g ra m Access. M a i c u r n d , s c o p u l c a p ito lu lu i este de a fi u n g h id ra p id despre fu n c io n a re a p ro g ra m u lu i Access i de a v n v a s f i i p ro d u c tiv n acest m e d iu de lu c ru . M u lte d in tre sursele de s tu d iu d is p o n ib ile azi v p o t n v a to a te a m n u n te le despre M ic ro s o ft Access. n a in te de a m erge m a i dep arte, a r tre b u i s v a s ig u ra i c a i n e le s b in e cele d is c u ta te n a cest c a p ito l. Cteva dintre resursele populare de unde puteti afla informaii despre Microsoft Access sunt: H S ite -u l o fic ia l al M ic ro s o ft Access, h t t p : / / w w w . m ic r o s o f t . c o m / o f f i c e . a c c e s s G ru p u l de d is c u ii o fic ia l p e n tru s u p o rt Access la adresa h t t p : / c o m m u n i t i e s . m i c r o s o f t . c o m /n e w s g ro u p s / d e f a u l t . a s p ? ic p = g s s & s lc id = u s S ite -u l o fic ia l M ic ro s o ft K now ledge Base, la h t t p : / / w w w . m ic r o s o f t . com /K B /

Introducere n Microsoft Access


Access, care face p a rte d in s u ita M ic ro s o ft O ffice, este u n p ro d u s c o m p le t p e n tru baze de date. In a fa r de fa p tu l c este co m p le t, este fo a rte u o r de u tiliz a t. P rim u l pas n acest proces este la n s a re a lu i. F ig u ra 2.1 ilu s tre a z o p iu n ile d in m e n iu necesare p e n tru lansare. D u p la n s a re a p ro g ra m u lu i Access, v e i vedea o caset de d ia lo g care v in v it s c re a i o n o u b az de date, s la n s a i u n w iz a rd d in Access, sa u s d e s c h id e i o baz de d a te e x is te n t (vedei fig u ra 2.2).

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE


FIGURA 2.1
Putei la nsa Access selectnd S tart, Programs, M icro so ft Access d in m e n iu l p rin cip a l.
My Document

21

Accessories Microsoft Visual studio 6,0

) Microsoft Exce jw l Microsoft Word Windows Update New Office Document Open Office Document WinZip Smart Labei QuickBooksPro Snaglt Microsoft SQL Server 7.0 Symantec pcAnywhere Adobe Aaoba 4.0 f f l Visio Professional and Tedirtcal Create databases and programs to track and manage your [information by using Microsoft Access.

ICQ
. Palm Desktop PocketMirrof

Documents Settings Search

Shot Down.

FIGURA 2.2
D up lansarea p ro g ra m u lu i Access apare caseta de dialog in iia l , care v pe rm ite s creai sau s de schidei o baz de date.
Create new datbase using Biank Access database

?*

| c

Access database w izard pages, and projects

an existing file

0 K

C a n c e l I

n acest caz, v e i deschide u n fi ie r e x is te n t e xe cu t n d c lic pe o p iu n e a co re spu nz toa re , a p o i pe OK. A p o i, d e s c h id e i fi ie ru l \ P ro g ra m F i Ie s \ M ic r o s o f t A c c e s s \O ffic e \S a m p le s \N o r th w in d .m d b . E x te n s ia im p lic it p e n tru u n fi ie r Access este M D B .

PARTEA I - BAZE DE DATE - E LE M E N TE GENERALE


D u p ce a i d esch is baza de date N o rth w in d T ra d e rs, este a fi a t fo r m u la ru l p rin c ip a l a l b a ze i de da te - care ofer acces la to a te co m ponen tele bazei de date - v e d e i fig u ra 2.3.

FIGURA 2.3
Caseta de dialog p rin c ip a l a bazei de date ofer acces la toate com ponentele bazei de date, in c lu s iv tabele, in te ro g ri, fo rm u la re i rapoarte.

Access v ofer i posbiiitatea de a scrie pagini Web, macrocomenzi i module de cod. Dei vei vedea referine la acestea n diferite ilustraii, ele depesc scopul acestei cri. Pentru mai multe informaii despre ele, citii nota de la nceputul capitolului privind sursele populare de informare pentru Access. lat o recapitulare despre lansarea Microsoft Access: 1. Selectai Start, Programs, Microsoft Access.

2. Din caseta de dialog iniial, alegei s creai sau selectai o baz de date existent.

Baza de date Northwind Traders


F ig u ra 2 .3 p re z in t fo r m u la r u l p r in c ip a l p e n tru o baz de date d in Access. D in acest fo rm u la r, p u te i vedea d ife rite le obiecte d in baza de date, precum i date le c o n in u te de aceasta.

R elaiile din baza de date


P e n tru a nelege s c o p u rile u n e i baze de date, v a tre b u i s v e d e i re la iile d in tr e d ife rite le e n t it i ale ace ste ia. F ig u ra 2 .4 p re z in t v iz u a liz a re a c o n in n d re la iile d in tr-o baz de date. P e n tru a avea acces la aceast vizualizare, v a tre b u i s e xe cuta i clic pe b u to n u l R e lationsh ip V iew (prezentai i el n fig u ra 2.4).

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE


Formularul principal al baze de date
FIGURA 2.4
Vizualizarea re la iilo r v ofer po sib ilita te a de a vedea toate tabelele d in tr-o baz de date, precum si m od ul n care su n t acestea '.egate.
Objects ifi] CreatelatHein D egn view ig] Createableby using wfcard J Createtabie by nterng data Categoriei 13 El !customer; Em obyees 0 El Order Detals Orders 3 ( El frodxts El Shipper Suppers 3 }nic/H tep ShowM e

23

Butonul Relationships

CunpanyNam ICcrtacName Certa::* . Address |Re^on .7 .1 tsO nO r er CegorylD Ct 5orvNam e Description Picture

(C n fc rK

ProductlD *Price IQuantity J C .scount

EwfayedD L aNarre FirstN am e THeOfCo'jrt BrthDat rfesOate Address

O ik rll _*J . CustomerlD ErntoyeelD OiaertJate Pejjret'as . ShpedOate S W pY ia Freight ttUnne$ : ShAdeiS StvpOty fiepon S h Pota:ox [

CirJimrl ( lorrcjuyham ContactNam e : CcrtactTitie Addr Cy Re>on_

C cnpany*am e

Vizualizarea Relationship

D ac s tu d ia i d ia g ra m a bazei de date ilu s tr a t n fig u ra 2.4, s c o p u l bazei de date N o rth w in d T ra d e rs d e vin e c la r. D a c p r iv i i d in p a rte a d re a p t a d ia g ra m e i, ta b e lu l C u s to m e rs (c lie n i) este c o n e c ta t c u ta b e lu l O rd e rs com enzi). L n g ta b e lu l C u s to m e rs este n u m r u l 1, ia r l n g ta b e lu l O r ders este s im b o lu l in fin it u lu i, care a ra t ca u n 8 aezat pe o riz o n ta l . O astfel de re la ie este n u m it unu la m uli (one-to-many). C u a lte cu v in te , u n c lie n t p oa te d a zero s a u m a i m u lte com enzi. D ac p r iv ii re la ia n sens invers, o c o m a n d poate fi d a t d o a r de u n c lie n t. n aest caz, ta b e lu l C u s to m e rs este c o n s id e ra t printe (parent), ia r ta b e lu l O rd e rs este c o n s id e ra t copil (child). Cele tre i t ip u r i de re la ii pe care le v e i n t ln i c n d lu c r a i c u bazele de date s u n t u rm to a re le : U nu la unu (o n e -to -o n e ) - O n re g is tra re d in ta b e lu l p rin te este n r u d it n u m a i c u o n re g is ta re d in ta b e lu l copil. U nu la m u li (o n e -to -m a n y ) - O n re g is tra re d in ta b e lu l p rin te este n r u d it c u zero sa u m a i m u lte n re g is tr ri d in ta b e lu l copil. M u li la m u li (m a n y -to -m a n y ) - M a i m u lte n re g is tr ri d in ta b e lu l p rin te s u n t n r u d ite c u m a i m u lte n re g is tr ri d in ta b e lu l co p il. R e la iile de a cest tip s u n t de fa p t sp a rte n m a i m u lte r e la ii u n u la m u li. A ce st tip de re la ii este e x p lic a t n n o ta u rm to a re .

24

PARTEA I - BAZE DE DATE - E LE M E N TE G ENERALE

F u n c io n a re a r e la iilo r este fo a rte s im p l . D ac p r iv ii to a te tabelele d in fig u ra 2 .4 , v e i o bserva c u n e le c m p u ri s u n t scrise c u lite re n g ro a te (bold). C o m b in a ia acestor t ip u r i a lc tuie te cheia p rim a r . R e lu n d concep tele d is c u ta te n c a p ito lu l 1, o cheie primar este id e n tific a to ru l u n ic a l u n u i r n d s a u a l u n u i ta b e l. In c a z u l ta b e lu lu i C u sto m e rs, cheia p rim a r sau id e n tific a to ru l u n ic este c m p u l C u s to m e rID (id e n tific a to ru l c lie n tu lu i). D ac v e i p r iv i la fig u ra 2 .7 , v e i vedea c fiecare r n d care co respund e u n u i c lie n t a re o a lt v a lo a re n c m p u l C u s to m e rID . A ceeai v a lo a re C u s to m e rID este p re lu a t n ta b e lu l O rd ers. Ia t c u m o baz de date tie care n re g is tra re c o p il a p a rin e u n e i a n u m ite n re g is tr ri p rin te . C o n tin u n d s v d e p la s a i spre st n g a n fig u ra 2 .4 , v e i vedea c ta b e lu l O rders este i c o p il i p rin te . E ste c o p il p e n tru ta b e lu l C u sto m e rs i p rin te p e n tru ta b e lu l O rd e r D ta ils (in fo rm a ii p riv in d co m a n d a ). D in p e rsp e ctiva ta b e lu lu i C u s to m e rs , ta b e lu l O rd e r D ta ils este nepot. P ro p o z iiile u rm to a re s in te tiz e a z re la iile c o n in u te n b a za de d a te N o rth w in d T ra d e rs: U n c lie n t poate e m ite zero s a u m a i m u lte com enzi, ia r o c o m a n d poate f i e m is n u m a i de u n c lie n t. U n c r u (tra n sp o rta to r) poate tra n s p o rta u n a sau m a i m u lte com enzi, d a r o c o m a n d poate fi tra n s p o rta t de u n s in g u r cru.
11 U n a n g a ja t poate p re lu a zero sa u m a i m u lte com enzi, d a r o co m a n d

poate fi p re lu a t n u m a i de u n angaja t. S e x a m in m re la ia d in tre tabelele O rd e rs i Em ployee (angajai). A a c u m este p ro ie c ta t baza de date, o c o m a n d poate fi p re lu a t n u m a i de c tre u n an g a ja t. C u m a r f i dac o c o m a n d a r p u te a fi p re lu a t de m a i m u li a n g a ja i? P oate c fir m a fo lo se te e ch ip e de a n g a ja i p e n tru a p re lu a com enzile. n acest caz, d e s ig n u l c u re n t a l bazei de date n u respect aceast c e rin . A ic i in te rv in e c o n c e p tu l de re la ie m u li la m u li. S p re s u p u n e m c a r f i nevoie de m a i m u li a n g a ja i p e n tru a p re lu a o com and . D ac e x a m in m re la iile c u re n te , ta b e lu l E m ployee este p rin te , ia r ta b e lu l O rd e rs este co p il. tii d eja c e x is t u n c m p E m ployeeID n ta b e lu l O rd e rs i n acest c m p poate f i s to c a t o va lo a re u n ic . C u m poate f i r e a liz a t a c e s t lu c r u ? R s p u n s u l c o n s t n a d u g a re a u n u i ta b e l s u p lim e n ta r n u m it E m p lo y e e O rd e rs . F ig u r a 2 .5 p r e z in t o v e rs iu n e m o d ific a t a b azei de date N o rth w in d T ra d e rs. P e n tru a n d e p lin i aceast s a rcin , deoarece m o d e lu l re la io n a l n u poate accepta d ire c t o re la ie m u li la m u li, aceast re la ie este in d ire c t s u p o rta t fo lo s in d d o u r e la ii u n u la m u li. T a b e lu l in te rm e d ia r este n u m it ta b e l de jo n c iu n e {junction table).

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE


FIGURA 2.5
Relaiile m u li la m u li s u n t suportate p rin crearea u n u i tabel in te rm e diar, n u m it tabel de jo n c iu n e .
loc dow jep ShowMe

25

tJj Cieatetable PeS E ] Crea tableby uM KT] Createtabtoby ert E S Categorisi E D Custom ers E rr.ptoyeeQ tder 0 IU Em ptoyeiS El Order tXa E O Orders Produrts 3 G D Shippers pi:

. SuvfarD CwnpenYttarf C xia . 1N am e . CcrtactTile ddress Oty R egion

''tName MT'at

Catego'yfJame C aioKn Picture


P e n tru a c o n tin u a exem plificarea , s p re s u p u n e m c n p re lu a re a u n e i a n u m ite co m en zi s u n t im p lic a i d o i a n g a ja i. In acest caz, v o r aprea d o u n re g is tr ri n ta b e lu l de jo n c iu n e . D in p e rs p e c tiva co m enzii, v e i vedea doi a n g a ja i im p lic a i n p re lu a re a acesteia. D in p e rsp e ctiva u n u i a n g a ja t, v e i vedea toa te com enzile n p re lu a re a c ro ra a fo s t im p lic a t a n g a ja tu l respectiv, n acest s c e n a riu , aceeai c o m a n d poate fi a so cia t c u m a i m u li a n g a ja i. Pe s c u rt, u rm to a re le fraze d e s c riu esena re la ie i m u li la m u li: O c o m a n d p o a te c o n in e u n a s a u m a i m u lte in fo r m a ii, d a r o in fo rm a ie despre com ezi p oate a p a rin e u n e i s in g u re com enzi. U n p ro d u s p oate a p rea n zero sa u m a i m u lte in fo r m a ii despre com enzi, d a r o in fo rm a ie despre co m en zi poate c o n in e u n s in g u r p ro d u s. U n fu r n iz o r poate liv ra zero sa u m a i m u lte pro d u se , d a r u n p ro d u s poate f i liv r a t de u n s in g u r fu rn iz o r. C a te g o riile p o t fi a lc tu ite d in zero s a u m a i m u lte p ro d u se , d a r u n p ro d u s p oate a p a rin e u n e i s in g u re ca teg orii. Dar dac un produs ar putea aparine mai muitor categorii? Dac v gndit c o relaie muli la muli poate fi mascat printr-un tabel de jonciune, suntei pe calea cea bun i nseamn c nvai repede!

PARTEA I - BAZE DE DATE - ELE M E N TE G ENERALE


D ac revedem re la iile d in N o rth w in d T ra d e rs , este c la r c s c o p u l bazei de date este de a s u p o rta o p e ra ia de in tro d u c e re a co m e n zilo r. n a fa r de in tro d u c e re a co m e n zilo r, m a i este s u p o rta t i u n s is te m de a d m in is tra re a in v e n ta r u lu i de baz. A a c u m a m m e n io n a t n c a p ito lu l i , dac n e le g e i datele i s tru c tu ra lo r p u te i o b in e o perspectiv im e d ia t in iia l a a c tiv it ii u n e i firm e .

Prezentare general a com ponentelor unei baze de date


S e c iu n ile u rm to a re d e s c riu com ponen tele p rin c ip a le ale u n e i baze de date n Access. A cestea s u n t tabele, in te ro g ri, ra p o a rte i fo rm u la re . Fiecare c o m p o n e n t p rin c ip a l are v a ria te su b co m p o n e n te , ia r a ic i vo m pre ze n ta d o a r o in tro d u c e re n aceste elem ente. In ca p ito le le u rm to a re v o r fi p re z e n ta te m a i m u lte d e ta lii, pe m s u r ce v e i ncepe s lu c r a i c u aceste com ponente.

Tabelele
S p re s u p u n e m , de e xe m p lu , c d o r ii s v e d e i c o n in u tu l ta b e lu lu i C ustom ers. C u m a i p u te a re a liza acest lu c ru ? E foarte s im p lu , d ac p a rc u rg e i p a ii u r m to r i (vedei fig u ra 2.6): 1. S e le c ta i ta b e lu l C u s to m e rs cu u n c lic de m ouse. 2. D u p selectare, e x e c u ta i c lic pe b u to n u l O pen de pe b a ra de in s t r u m en te.
Butonul Open
FIGURA 2.6
P ute i vedea datele co n in u te n tr-u n tabel dac deschidei ta b e lu l.
jp l xi

Insert Xoob indow *Ip ShowMe j u a a y i t s, - J-Ife

= -

-Ini xl
Objects

f Create tabic InDesignview 0 Sfj Create table by using ttard I i ] Createtable by enter Categories 3 I Custom ers Enttoyees

Order D etails Products S' * '

Soups

jCcnipanytJerr CcrtartName ]CcfitactTitle . IAddress City (Region

ProdjOJD ProductN am e SuppterlD Category QuantityPerUnft U ratPiice UmtslnStock Um tsCnO rder Recrdeftevol Discontinued

Order) ProductlD Urstprt Quart/ Otscourt

Category!) CategcryName Description Plctixe

EnptoyeelD LastN am e FrstName RleOfCourt BrthDate HreDate Address

Order CustcmerlD E/rtc yelD OraarDate .:RequredOate : ShippedDate jh w Freight Shftflas ShpAddress NpGty hfcRegtM i ShpPostaKoc^J

CutmerD Cr.ct rf.an ContactNam e ContactTitfe Address City

M O D jCom panyNam e (Phone

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE

27

F ig u ra 2 .7 p re z in t c o n in u tu l ta b e lu lu i C u sto m ers. A ceast viz u a liz a re se n u m e te D a ta s h e e t (foaie de date). D e n u m ire a este fire a sc , deoarece seam n c u o foaie de c a lc u l d in Excel.

FIGURA 2.7
n vizualizarea Datasheet datele pot fi vzute, m odificate sau erse.
CHOPS CONSH DRACD DUMON

'

: Trujillo Emparedados onio Moreno Taquera Berglunds Order Administrator

Constitucin 2222

Berguvsvagen

Comidas preparadas

K rr
Chop-suey Chinese Consolidated Holdings Drachenblut Delikate en Du monde entiar

LaurenceLebihar, EhWbelh Lincoln

sr

'O I- : FRANK

FISSA Fabrica Inter Salchichas S A Folies gourmandes Folk oehfiHB Frank enversand France restauration Franchi S.p.A.

Diego Boel

Oros, 92 C/Moralza.zal,

GALEO GODOS GOURL

Cocina Tpica iei Lanchonetes

HILARIN-Abastos

Cnd vedei datele n vizualizarea Datasheet, este important s observai c avei n fa o redare direct (live view) a datelor. Aceasta nseamn c datele pot fi modificate sau terse. Nu uitai, fii atent la tastele pe care le apsai cnd vizualizai datele.

Care este s tr u c tu r a u n u i tabe l? V a m in tii d is c u ia d in c a p itlo u l 1, dspre tabele? T abe'ele s u n t fo rm a te d in u n a sa u m a i m u lte coloane. C u m poate fi v iz u a liz a t s tr u c tu r a u n u i ta b e l n Access? F ig u ra 2 .7 i p a ii u rm to r i v p o t e x p lic a acest lu c ru : 1. G s i b u to n u l V iew , u lt im u l d in st n g a pe b a ra de in s tru m e n te (vedei fig u ra 2.8). 2. E x e c u ta i c lic pe b u to n u l V iew . V a fi a fi a t v iz u a liz a re a D esign. 3. E x e c u ta i d in n o u c lic pe b u to n u l View ; va fi afiat vizu a liza re a D a ta iis t (lis ta date lor). A ceasta re p re z in t o a lt m o d a lita te de a p ro ie c ta u n ta b e l, d a r n u este la fel de u t il ca v iz u a liz a re a D esign.

PARTEA I - BAZE DE DATE - E LE M E N TE G ENERALE


FIGURA 2.8
Dac executai clic pe b u to n u l View, p u te i s trecei de la vizualizarea Design la vizualizarea D a ta list n tr-u n tabel. D etaliile p riv in d coloa nele, ca num ele coloanei, tip u l de date co n i n u te i des crierea datelor pot fi vzute n vizualizarea Design.
Numele cmpului Tipul datelor Descrierea cmpului

rio howM s

* 'A
C ofi&r>-Nrr Ccnatfme Contiittfe Address cy R 0 o n PostalCode Country Phons :Urtqus.fiv*<hariK coderbasad.o custom er rw*iw,

tree or post-offic* b e Stste c provnes.

Tab-ul Lookup--------

Proprietile__ cmpului

A Hej rjm canb3 te &tccxi a*, n d d i . ras fer h8>o ted narr

jpeapvteM. F6 - S w itd . pones. El - Hdp

Este important s fii foarte atent cnd vizualizai datele dintr-un tabel. Pe msur ce derulai n sus i n jos lista cmpurilor, este foarte uor s modificai din greeal atributele unui cmp. Nu uitai - fii atent ce taste apsai cnd vizualizai structura tabelului! Scopul i utilizarea tab-ului lookup sunt discutate mai detaliat n seciunea referitoare la formulare din acest capitol. Tab-urile Lookup ofer o cale prietenoas fa de utilizator pentru asocierea datelor din tabele nrudite.

P roprieti
n v iz u a liz a re a D esign, dac d e ru la i n su s i n jo s lis ta c m p u rilo r, p u te i vedea p ro p rie t ile e xtin s e ale fie c ru i cm p. n a fa r de n u m e , tip u l de date i d e scrierea acestora, a lte a trib u te ale c m p u rilo r - ca, m rim e , fo r m a t, m a sc de in tra re i legend - p o t fi v iz u a liza te . Aceste a trib u te e xtin se p o t f i v iz u a liz a te n p a rte a d in s t n g a jo s a fig u r ii 2.7.

C A P IT O L U L 2 ANATOMIA UNEI BAZE DE DATE

29

FieldName (numele cmpului) P ro p rie ta te a F ieldN am e precizeaz n u m e le u n u i c m p a l ta b e lu lu i. N u m ele u n u i c m p poate avea lu n g im e a m a x im de 6 4 de c a ra cte re i poate c o n in e o rice c o m b in a ie de lite re , n u m e re , s p a ii i c a ra cte re speciale. C aracterele n e p e rm ise s u n t p u n c tu l, s e m n u l e x c la m rii, a c c e n tu l i paranteze le. C re d e i sa u n u , g h ilim e le le d u b le s u n t perm ise n n u m e le u n u i cm p , d a r este n d o ie ln ic c aceast p o s ib ilita te a r p utea fi c o n s id e ra t u til de cineva. De re gu l , v e i fo lo si lite re le a lfa b e tu lu i, cifrele de la 0 la 9 i c a ra c te ru l u n d e rs c o re (lin ie jos).
Dei poate c ai inclus spaii n numele cmpului, ele v pot face mai multe probleme dect merit. De exemplu, numele firmei Northwind Traders din tabelul Northwind Customers. Dac utilizai spaii, va trebui s referii cmpul sub forma (c u s to m e rs .n um e le f i r m e i ] . Altfel, dac nu folosii spaii, cmpul poate fi referit astfel: c u s to m e r s . n u m e le f ir m e i. Folo sirea spaiilor tinde s complice lururile n loc s le simplifice, deci evitai spaiile n numele cmpurilor.

DataType (tipul datelor) P ro p rie ta te a D a ta T y p e sp e cific tip u l de date c o n in u te n c m p u l respe ctiv. T ip u rile s ta n d a rd de date s u n t pre ze n ta te n ta b e lu l 2.1

Tabelul 2.1
T ip u l de date T e xt M emo N um ber D a te /T im e C u rre n c y A u to n u m b e r Y e s/N o

Tipurile standard de date suportate de Access


D escriere D ate de tip c a ra c te r D ate de tip c a ra c te r D ate n u m e ric e D ate de tip d a t c a le n d a ris tic i o r D ate m o n e ta re D ate n u m e ric e cu a u to in c re m e n ta re D ate logice de tip T ru e /F a ls e (a d e v ra t/fa ls ) D im e n s iu n e a m a x im 2 5 5 bytes 64 K 8 bytes 8 bytes 8 bytes 4 bytes 1 b it

Access suport i alte tipuri de date, inclusiv OLE Object i Hyperlink. Pentru mai multe informaii despre aceste tipuri de date, consultai sursele de documentare despre Access.

30

PARTEA I - BAZE DE DATE - E LE M E N TE G ENERALE

D e s r ip tio n (d e s c rie re ) P ro p rie ta te a D e s c rip tio n v p e rm ite s o fe r ii in fo rm a ii d e s c rip tiv e despre c m p u l respectiv. O descriere poate avea cel m u lt 2 5 5 de caractere. F ie ld S ize (d im e n s iu n e a c m p u lu i) P ro p rie ta te a F ie ld Size v p e rm ite s s p e c ific a i d e im e n s iu n e a m a x im a d a te lo r stocate n acel cm p. V e d e i ta b e lu l 2.1 p e n tru v a lo rile m a x im e ale d im e n s iu n ilo r c m p u rilo r. F o rm a t (fo rm a t) P roprieta te a F o rm a t controleaz m o d u l de afiare a datelor. A c e a s t p ro p rie ta te v p e rm ite s s t a b ili i m o d u l n ca re a p a r d a te le n u m e ric e , m o n e ta re , de tip te x t i cele de tip d a t c a le n d a ris tic s a u or. In p u t M ask (m as c de in tra re ) P ro prieta tea In p u t M a sk ofer u n m e ca n ism p e n tru in tro d u c e re a m a i u o a r a d a te lo r. De exe m p lu , p e n tru u n n u m r de telefo n, o m a sc de t ip u l (____)- (_____ ) u u re a z in tro d u c e re a d ife rite lo r co m p o n e n te ale n u m r u lu i de telefon. Access ofer u n p ro g ra m w iz a rd p e n tru a crea v a lo rile p e n tru aceast p ro p rie ta te . C aption (le g en d a) P ro p rie ta te a C a p tio n d e te rm in c o n in u tu l d e s c rip tiv al u n e i e tic h e te fo lo s ite n t r - u n fo r m u la r sa u ra p o rt care c o n in e c m p u l respectiv. P ro p rie ta te a C a p tio n precizeaz i c o n in u tu l t it lu lu i u n e i coloane p e n tru u n c m p n v iz u a liz a re a D a ta lis t. (Vedei fig u ra 2 .7 p e n tru o pre ze n ta re a v iz u a liz rii D a ta lis t.) D e fa u lt Value (v a lo a re im p lic it ) P ro p rie ta te a D e fa u lt V a lu e sp e cific v a lo a re a in tro d u s a u to m a t n c m p c nd este cre a t o n o u n re g is tra re . De exe m p lu , u n c m p c u date n u m e ric e poate avea va lo a re a im p lic it 0, ia r u n c m p c u d ate c a le n d a ris tic e poate avea d a ta c u re n t ca va lo a re im p lic it . V alid atio n R u le (reg u l de valid are) P ro p rie ta te a V a lid a tio n R ule specific o co n d iie pe care tre b u ie s o ndeplin easc valoarea in tro d u s . De exem plu, o valo are n u m e ric tre b u ie s fie >=0. R egulile de v a lid a re a ju t la p s tra re a in te g r it ii d a te lo r. V a lid a tio n T e xt (te x t de v a lid a re ) P ro p rie ta te a V a lid a tio n T e x t sp e cific m e s a ju l s u b fo rm de te x t a fi a t p e n tru u tiliz a to r u l care n u re sp e ct re g u la de va lid a re . D im e n s iu n e a m a x im a p ro p rie t ii este de 2 5 5 de caractere. R sq u ired (necesar) P ro p rie ta te a R equired specific dac va loarea u n e i date este necesar n tr - u n cm p. A llo w Z e ro Length (accep t lungim ea zero ) P roprietatea A llo w Zero Length sp e cific dac este p e rm is in tro d u c e re a u n u i ir de ca ra cte re c u lu n g im e zero. A cea st p ro p rie ta te poate fi a p lic a t c m p u rilo r cu date de tip te xt, m em o i h y p e rlin k . In d e x e d (in d e x a t) P ro p rie ta te a Indexed sp ecific dac este cre a t u n in d e x p e n tru c m p u l re spe ctiv. Pot f i create d o u t ip u r i de in d e x. U n u l p e rm ite in tro d u c e ri d u p lic a te , ia r c e l la lt n u accept d u p lic a te le .

Compresia Unicode
Access s u p o rt re p re ze n ta re a U n icod e a ca ra cte re lo r, ceea ce n se a m n c acestea s u n t re p re ze n ta te p r in d o i b i i n lo c de u n u l. D a to rit re p re z e n t rii

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE

31

pe d o i b i i p o t fi s u p o rta te m a i m u lte p a g in i de cod a lim b a ju lu i. Pe de a lt p a rte , n re p re z e n ta re a pe u n b it este s u p o rta t o s in g u r p a g in de cod i e xist c e rin e m a i m ic i p r iv in d sto carea pe disc.

Interogri
In te ro g rile o fer o cale de v iz u a liz a re a d a te lo r. De cele m a i m u lte o ri, va tre b u i s u tiliz a i i s in te ra c io n a i c u datele n a lt m a n ie r d e c t cea n care le s to c a i. F ig u ra 2 .9 p re z in t in te ro g rile d e fin ite n baza de date N o rth w in d T ra d e rs .

FIGURA 2.9
pen o )* :

O m are varietate de in te ro g ri s u n t definite n baza de date N o rth w in d Traders.

O b le a s [Create query Design view I ^ j Create query by using weard E J J tp D ]p Category Silei for 19 7 Current Product let Custom ers and Supoer5 by City Em ployeeSiles by Coiriry Invoees ] Invocsfifcer ] Cider Detail Extended ) Cdet Sc*als ] Orders>y Product Salesfor 3 [ 1997 p Products AboveAverage P rice J Productsby Category[ QuarterlyOrders B JartertyOrdersby Product tP 5^le by Category ] S atesby Year TenMost Expensive Products

Cea m a i b u n cale de a prezenta in te ro g rile este u n exem plu sim p lu . C e rin a este o lis t a lfa b e tic a p ro d u s e lo r active. P e n tru o a s tfe l de in te ro g a re , ave i nevoie n u m a i de d o u in fo rm a ii: id e n tific a to ru l p ro d u s u lu i (p ro d u c t ID] i n u m e le p ro d u s u lu i. In te ro g a re a C u rre n t P ro d u c t L is t (lis ta p ro d u s e lo r cu re n te ) n d e p lin e te aceste c e rin e . P aii n e ce sa ri p e n tru v iz u a liz a re a c o in u t u lu i u n e i in te r o g r i s u n t e x a c t a c e ia i ca p e n tr u v iz u a liz a re a c o n in u tu lu i u n u i ta b el: 1. S e le c ta i in te ro g a re a C u rre n t P ro d u c t L is t e xe cu t n d c lic pe ea. 2. D u p selectare, exe cu ta i c lic pe b u to n u l Open d in b a ra de in s tru m e n te . F ig u ra 2 .1 0 p re z in t re z u lta te le la n s rii in te ro g rii C u rre n t P ro d u c t List. U n a d in tre n tre b rile d u m n e a v o a s tr a r p u te a fi: Care este s tru c tu ra u n e i in te ro g ri? . S tr u c tu r a u n e i in te ro g ri este d e riv a t d in s tr u c tu r a ta b e le lo r care fu rn iz e a z in fo r m a iile p e n tr u in te ro g a re . P a ii n e c e s a ri p e n tru viz u a liz a re a s t r u c tu r ii u n e i in te ro g ri s u n t aceiai ca p e n tru u n tabel: 1. E x e c u ta i c lic pe b u to n u l V iew . V e i trece a stfe l n v iz u a liz a re a D esign. 2. E x e c u ta i d in n o u c lic pe b u to n u l View ; v e i trece a stfel n viz u a liz a re a D a ta lis t. S tru c tu r a in te ro g rii C u rre n t P ro d u c t L is t este p re ze n ta t n fig u ra 2.11.

32

PARTEA i - BAZE
Butonul View
* trt Farmat ccrds

DATE - E LEM EN TE GENERALE

FIGURA 2.10
Interogarea C u rre n t P rod uct L is t ofer o lis t alfabetic a p ro d u se lo r active.

hdow b ip ShcwMe

* J i l j ] - iJ I *

Product ID ! Product Name ........ Aniseed Syrup Boston Crab Meal 40 SO Camembert Pierrot Carnarvon Tigers 18 ........ Chai 1 .................................... Chang 2 Chartreuse verte 39 Chef Anton' Cajun Seasoning Chocolade 48 Escaigots de Bourgogne 58 Fito Mix 52 Fletemysost 71 Geitost 33 Genen Shouyu 15 Gnocchi di noma Alice 56 31Gorgonzola Telino Grandma's Boysenberry Spread 6 ......Gravad lax 37 Gudbrsndscalsost 69 Gula Malacca 44 Gumbr Gummibrchen 26 Gustafs Knckebrd 22 Ikurs 10 Inlagd Sill .36 Ipoh Coffee 43 41Jacks New England Clam Chowder Konbu 13 Lakkalikdri 76 ...... Laughing Lumbegack Lager 67 Longlife Tofu 74 Louisiana Fiery Hot Pepper Sauce 65 Louisiana Hot Spiced Okra 68 Manjimup Dned Apples 51 Mascarpone Fabio 32 Record; h I./'H > |n |> | of 9 N um ber eutansHcal^ atsgncd to newpcoAirt.________

Cmp
FIGURA 2.11
S tru c tu ra u n e i in te ro g ri specific tabelele i coloanele u tiliza te , ordinea de sortare i c rite riu l de selecie.

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE

33

n in te ro g a re a C u rre n t P ro d u c t L is t s u n t u tiliz a te tre i c m p u ri, d a r n u m a i dou s u n t afiate n s e tu l de re zu ltate . A l tre ile a cm p, D is c o n tin u e d (discon tin u u ) , este u tiliz a t n u m a i n s c o p u l s ta b ilir ii c rite riilo r. n acest caz, s u n t selectate n u m a i n re g is tr rile a c ro r va loa re D is c o n tin u e d este no. U n u l d in tre cele d o u c m p u ri afiate, P ro d u c t N am e (num ele p ro d u s u lu i) este i el a fi a t i fo lo s it ca baz de s o rta re . n acest caz, s e tu l de re z u lta te este o rd o n a t d u p n u m e le p ro d u s u lu i n o rd in e asce n d e n t (cresctoare). In te ro g rile care c o n in date d in m a i m u lte tabele n u s u n t s u b s ta n ia l dife rite de cele care c o n in d a te d in tr - u n s in g u r ta b e l. U n e xe m p lu s im p lu n acest sens este in te ro g a re a A lp h a b e tic a l L is t o f P ro d u cts (lis ta a lfa b e tic a p ro duselor). In aceast in te ro g a re , datele d in tabelele p ro d u s e lo r i c a te g o riilo r s u n t c o m b in a te p e n tru a fo rm a u n s in g u r set de re z u lta te (vedei fig u ra
2 . 12 ).

FIGURA 2 .12
Tabelele d in interogrile m u ltita b e l s u n t a u to m a t n ru d ite , pe baza re la iilo r de finite n baza de date.

S e tu l de re z u lta te a l in te ro g rii A lp h a b e tic a l L is t o f P ro d u c ts este p re z e n ta t n fig u ra 2.13 .

34

PARTEA I - BAZE DE DATE - ELE M E N TE G ENERALE


f t f lx 6 Farrri . ! .

FIGURA 2.13
R e zu lta tu l u n e i in te ro g ri m u ltita b e l (cu date d in m ai m u lte tabele) ap ar sub form a u n u i tabel.

* M

-* *

Product Name Supplier Product ID _r * > .................B.Cha Exotic Liquids......................................... Chang 2 V;... ..... . . .. 3 Aniseed Syrup............................... Exotic Liquid New Orleans Cajun Delights Chef Alton's Cajun Seasoning 4 __ Grandma Kelly's Homestead Grandma's Boysenberry Spread 6 Uncle Bob's Grganic Dried Pea 7^ Grandma Kelly's Homestead Northwoods Cranberry Sauce Grandma Kelly's Homestead okyo Traders? ikura 10 Cooperativa de Guesos la s Cabras 1 Gueso Cabrales Cooperativa de ' Cabras Queso Manchego La Pa 12 toia Mayumi's Konbu 13 Mayumi's Tofu 14 Mayumi's GenenShouyu 15 .Pavlova, Ltd Pavlova 16 .Pavlova, Ltd Carnaivon Tigers 19 .Specialty Biscuits, Ltd Teatime Chocolate Biscuits 19 .Specialty Biscuits, Ltd Sir Rodney's Marmalade 20 Sir Rodneys Scon 21: ....... .Spaciaily Biscuits. Ltd PB KnSckebrd AB Gustsfs Knackebrod 22 PB Knekebrd AB Tunnbriid 23 __ Hell Suwaran GmbH & Co KG .NuNuCa Nufi-Naugat-Creme 25 Hel Swaren GmbH & Co KG Gumbi 25 r Gummibrchn Heli Swaren GmbH Co. KG Schoggi Schokolade 27 Nord-Cst-Fisch Handelsgesellschaft mbH Nord-Ost Matjeshering 30 Formaggi Foil.n s.r.l Gorgonzola Telino 31 Foimaggi .s.r.l Mascarpone Fabioli 32 Norske Meierier 3B Geitost : Breweries Sasquatch Ale 34 Bigfoot Breweries 35 $ 'Stout SvenskSjCfodaAB 3S Irilsgd Sill SvenskSjofdaAB Giavad la 37* Auxjoyeux ecclesiasliques CSlsde.... ................. Au*joyeu <ecclesiastiques Chartreuse verte 39 New England Seafood Cannery B 40 ston Crab Meat Jack's New England Clam Chowder 41 New England Seafood Cannery '

. Category I Quantity Per Unit I Unit Price I Units In Stock 1UtT* $18.00 Beverages ; boxes 10 bags ozbotlas 24-12 $19.00 Beverages $10.00 j 12 - 550 ml bottles Condiments $22.00 Boz jars- 40 Condiments $25.00 Condiments . : . . ............ $30.00 .. 12- 1 lbpkgs. Produce $40.00 12 - 12 0jars Condiments $3 . 00 ml jars 200 - 12 Seafood $21.00 Dairy Products kg pkg 1. $38 00 Dairy Products 500gpkgs - 10 kg box 2 : Seafood $3 ICUgpkgs- 40 ; Produce $ 5.50 Condiments ml bottles 250 - 24; $17.45 32 - 5 boses Confections kg pkg 16. Seafood S9.20 bones X 12 pieces Confections $31.00 30 boes Confections 24pkg . ( 4p i cs Confections $2100 Grains/Cereals > 9 00 Grains/Cereals .., $14 0 ; 20 - 450 glasses Confection 100 - 250 bags Confections 1100 - 100 pieces Confection 10 ^ glasses Seafood $1250 Dairy Products g pkg 100- 12 $32.00 g pkgs 200 - 24 Dairy Products $2.50 Daiiy Products JI4.G bottles 02 12 . 24 Beveiages 24 - 1 bottles Beverages $1. 250gjais - 24 Seafood $26. g pkg 500 - 112 Seafood ; cl bottles 12-75 Beveiages $16.00 cc per bottle 750 Beveiages $1. Seafood $9,65 Seafood

1 .

Bwotd: H I ' jV ' ' u r ^ > i H 69:: fijnibq sot'orriatic a iiyjiaimed ta nevv(*odJct.

Rapoarte
In fi d in tr - o baz de date n u s u n t pre a u tile dac n u p o t accesate i fo lc s ite in tr - o m a n ie r p rie te n o a s fa de u tiliz a to r. C nd v i:n b a rc a i n p ro c e s u l d e z v o lt rii a p lic a iilo r p e n tru baze de date, n m o d in v a ria b il v e i fi fi n tre b a t ce ra p o a rte p o t fi generate. n baza de date N o rth w in d T ra d e rs s u n t d e fin ite m a i m u lte ra p o a rte (vedei fig u ra 2.14).

FIGURA 2.14
Rapoartele d e finite in baza de date N o rth w in d Traders.

- r s r t 0 0 ;

- if ljx

- *!*

' report by U 5 ng word : L i ol P roduc > Em ployee by Ccuntiy tfivixe Product by Ce90ry SssbyC90> y 1 by ' '<

fcy* ' * Sisi Totals by Am our Surrawry of S le ' Sumiiksy of S afe by Y eat

C APITO LU L 2 ANATOMIA UNEI BAZE DE DATE

35

P e n tru a e x p lic a fu n c io n a re a ra p o a rte lo r, s c o n s id e r m in te ro g a re a P roducts b y C ategory (produse c la s ific a te pe categorii). A ceast in te ro g a re este s im ila r c e lo r e xa m in a te n s e c iu n e a a n te rio a r i este p re z e n ta t n :!g u ra 2.15 . In te ro g a re a P ro d u c ts b y C a te g o ry a fi e a z in fo r m a iile p re z e n ta te n ta b e lu l 2.2.

Tabelul 2.2 Structura interogrii Products by Category


N um ele c m p u lu i C ategory N am e P ro d u c t N am e Q u a n tity p e r U n it U n its in S to c k D is c o n tin u e d T a b e lu l Categories P ro du cts P ro du cts P ro du cts P ro d ucts <>Yes S o r ta r e /c r ite r ii A sce n d in g A sce n d in g

R e z u lta tu l in te ro g rii P ro d u c ts b y C ategory este p re z e n ta t n fig u ra 2.16.

FIGURA 2.15
Interogarea Products by Category n vizualizarea Design.

p Ffe vw uery oofa v&Mknv Help Show

C a t e g o r y D I
DsscrlpBan

ProduiiName SjppID CegyID

Table -;: :: Sat; Ascendro :Show Crierii

Piodjcts

loducls <>YM

Sortare dup categorie i numele produsului

Criteriul legat de valoarea cmpului Discontinued

36

PARTEA I - BAZE DE DATE - ELE M E N TE G ENERALE


w ; i ref cw howM o

FIGURA 2.16
interogarea P roducts by Category vizualizarea D a ta list.

Category Name Beverages Beverages Beverages Beverages Beverages Beverages Beverages Beverages Beverages Beverages Condiments Condiments Condiment Condiments Condiments Condiments Condiments Condiments Condiments Condiments Condiments Confections Confections Confections Confections Confections Confections Confections Confections Confections Confections Confections Confections Confections

Product Name f Quantity Per "linii Chai bones 20 bags Chang 2 4 -I2 0Z bottles Chartreuse verts 7 per bottie c^te de Blaye 12 75 cl bottles Ipoh Coffee 16 500 g tins Lakkalikri ml Laughing LumbeQack Lager 24 -12 oz bottles Outback Lager 24 - 355 ml bottles Rhonbiau Wostetbier 34. D.s baillas Sasquatch Ale 24 12 oz bottles Steeleye Stout 24 -12 O Z bottles Aniseed Syrup 12-550 ml bottles Chef Anton Cajun Seasoning 3 - 0 GenenShouyu 25Qml bottle- 24 Grandmas Boysenberry spread 12 - Gula Malacca 2 0 -2 kg bags Louisiana Fiery Hot Pepper Ssucs 32 -8o z bottles Louisiana spiced Okra 24 8 oz;j* ......... Northwocds Cianbeiry Sauce 12ojai - 12 Original Frankfurter grne Soe 12boes Sirop dersble 24- 500 ml bottles Vegie-spread 15- 625 g jars . Chocolads lOpkgs. Gumbar Gummibrchen 100-250gbags Maxilaku 24 - 50gpkgs. NuNuCa NuC-Nougat-Cieme 20 - 4 0 glasses Pavfova 32 - 500 g boes Schoggi Schokolade 100 -100 pieces Scottish 10 boxes X 3 pieces Sir Rodneys Marmalade 30 gift boxes Sit Rodneys Scones 24 pkgs. X 4 pieces Tarte au sucre 48 pies Teatime ( 10 bones *12 pieces Valkoinen suklaa 12 100 g bars Zaansekoeken 10 4 0 boxes

$ ^ 39 17 B9 17 17: . 5 125. 111 53: 39 130 2?, 76 4; ! : 32 113 24 15 15 10 76 49 b 40 3 17 2S 65 36

'\

, _ ; ,

ftamcffccd category.

A r tr e b u i s v fie c la r a c u m c t de u tile s u n t in te ro g rile . V iz u a liz a re D a ta lis t n u este, to tu i, p re a u t il p e n tru u tiliz a to r u l fin a l, ia r a ic i in te rv i ra p o a rte le . F o lo s in d u n r a p o r t p u te i re a liz a o aezare n p a g in ca i uu re a z v izu a liza re a d a te lo r i care este m a i u til u tiliz a to ru lu i. Interogri] a d u n la u n lo c datele d in u n u l sa u m a i m u lte tabele, ia r ra p o a rte le ofer u n fo rm a t u t i l p e n tru v iz u a liz a re a d a te lo r. F ig u ra 2 .1 7 d e m o n stre a z c u i u n ra p o rt poate n s u fle i o in te ro ga re .

FIGURA 2.17
R a p o rtu l P roducts by C ategoiy n vizu alizare a P rin Preview.

|. -

0 5hcwM

* '-

Products Category
- 2

? / Bvrages
Product Name: Chat Chang Chartreuse verte CtedeBUye Ipoh Coffee Lakkaliko Laughing Lumbetjack Lager Out back Lager Rhinbru Klosterbler Sasquatch Ale Steeleye stoul Number of Products: Units In Stock: ^ 1? 69 1? 17 57 S2 125

Category: Condiments
Product Name: Aniseed Syrup Chef Anion' Cajun Seasoning Units In Stock:

P a g - J j

sisal

C A P IT Q L y i.

ANATOMIA UNEI BAZE DE DATE

37

S tru c tu ra u n u i ra p o rt este ceva m a i c o m p lic a t d ect a u n u i ta b e l sa u a Linei in te ro g ri. F ig u ra 2 .1 8 p re zin t ra p o rtu l P ro d u ct s b y C ategoiy n viz u a liia re a D esign. D e ta liile despre c o n s tru ire a ra p o a rte lo r s u n t d is c u ta te n c a p ito lu l 12.

FIGURA 2.18
Raportul Products b y ;ategoiy rfzualizarea Design .

Fgrmat 0 0 Sha M

- '

' - .
;!' ; :

'

4 Resort Heady

Product!
*PaeHeadet

<
:

*FvrmaUDaleO ; ,.::.

Category: CategoryName
Pro.iiKLl < :| ihilts In Stork.

.....

* C'.&yjryftvr. Eootw NimittrofProdnc: i " PaqgFOotw

Silii
..

- "

Formulare
LJltimele obiecte ale b a z e lo r de date d in Access pe care le tre ce m n re v is t in aceast p re ze nta re general s u n t fo rm u la re le . A i v z u t u n d e s u n t stocate la te le (tabelele), m o d u l n care datele p o t fi c o m b in a te n tr - u n fo m a t u t il interogrile) i m o d u l n care datele p o t f i pre ze n ta te n tr - u n fo rm a t u t il ra p o a rte le ). D a r c u m p o t f i in tro d u s e datele n baza de date? Pot i i in tro d u s e in d o u m o d u ri: I I F o lo s in d v iz u a liz a re a T able D a ta lis t (vedei fig u ra 2.6); I F o lo s in d in tro d u c e re a d a te lo r n fo rm u la re . Dei p u te i in tro d u c e , m o d ific a i terge datele n vizu a liza re a D a ta lis t, acest u cru n u este fo a rte u til. F o rm u la re le p e n tru in tro d u c e re a d a te lo r ofer o cale p rie te n o a s de in te ra c iu n e c u datele fa de u tiliz a to r. C a i n ca zu l ra p o a rte lo r, s tr u c tu r a fo rm u la re lo r poate f i fo a rte com plex. D e i aspectele im p o rta n te s u n t p re z e n ta te n a cest c a p ito l, d e ta liile despre c o n s tru ire a fo rm u la re lo r s u n t e xp lic a te n c a p ito lu l 11.

Figura 2.19 prezint formularele definite n baza de date Northwind Traders.

P A R T E A - BAZE BE ATE - ELE M E N TE G ENERALE


FIGURA 2.19
F orm ularele de finite n baza de date N o rth w ln d Traders.
-[ Create in Design ' $aes by Year Dialog Silles Reports Dialog startup 5cJir5

[ Create by using weard s 0Labels Dialog Customer Orders 5 0 Customer Orcters Sub orm2 Customer Phone list Customer Employees )Employees (page tieak Main Switchboard Orders cders Subform Product List Products JSiterly^ 0 Quarterly Subform

T a b e lu l P ro d u c ts a fo s t i v a fi d is c u ta t n m a i m u lte contexte. F o rm u la ru l P ro d u c ts o fe r o b u n ilu s tr a r e a fu n c io n r ii fo rm u la re lo r , d a r i a a v a n ta je lo r a cestora (vedei fig u ra 2.20). S ne a m in tim re la iile n care este im p lic a t ta b e lu l P ro d ucts: U n p ro d u s a p a rin e u n e i categorii. U n p ro d u s este liv r a t de u n fu rn iz o r.

FIGURA 2.20
F o rm u la ru l Products ofer o m o d a lita te de in tro d u ce re a da telo r prietenoas fa de u tiliz a to r p e n tru u n a n u m it produs.

D oarece ta b e lu l P ro d u c ts este im p lic a t n d o u re la ii, e x is t d o u c u t ri ( lookup) p e n tru ace st ta b e l. A cestea se re fe r la c m p u rile S u p p lie rlD (id e n tific a to ru l fu rn iz o ru lu i) i C a te g o iy lD (id e n tific a to ru l ca te g o rie i). D ac v a m in tii cele d is c u ta te la n c e p u tu l c a p ito lu lu i aceste c m p u ri c u cheie e xte rn t r im it la tabelele S u p p lie r (furnizor) i C ategory (categorie), respectiv. In fo r m a ii despre m o d u l n care aceste date v o r fi afiate n tr - u n fo rm u la r p o t f i g site n t a b - u l L o o k u p d in T ab le D esigner. T a b -u l L o o k u p p e n tru c m p u l S u p p lie rlD d in ta b e lu l P ro d u c ts este p re z e n ta t n fig u ra 2.21.

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE


FIGURA 2.21
yWw> *WrMoft ' t

39

rab-ul

Lookup ofer n fo rm a ii i :om ponente ale interfeei cu u tiliz a to ru l p e n tru sup ortul co n s tru c ie i fo rm u la ru lu i.
1 P tw JuctH am e S upcerID i C gyyID LM tPike UntolnSio. lA T fcsO nO iocf C -Tt AjtoMjvCer Hjlfcif ^ Gxrency Hjitoct

Httber sutcMti/ wUgnedte p oduct. Um eitry 5udt*) stH s. 5 n* tttry a n Cstcguie) *. eg., Z-t-iO 'jnt , !terboWi(.

M nnn to nur d ininstotk m eans*m krosr ova4r

Tab-ul Lookup

~ t~ ~ \
CttfJayCcrtrd AowSouw BoundCouro Cokjin C e-jr Ccnr.H-ad CctmV,V*h UWTolK * > C om boB o tate/ ry S E L E C TD I5T IJC T R O W[&*petC , )C o n

*j p T C X tV

Proprietile cmpului

< !*r cai be > -jn > ). tv ->j ci, -rtn I11 '* aii VU.

Ccsyi viB W . F6* Swdi pants, f i H a fc > .

C u t rile s u n t m a i u o r de fo lo s it, deoarece u tiliz a to r ii p o t lu c r a m a i b in e :u d e s c rie ri n loc de v a lo ri cheie n u m e ric e lip s ite de neles. Folosind c m p u l S u p p lie rlD ca exe m p lu , n c o n tin u a re s u n t pre ze n ta te h fo rm a iile o fe rite de ta b - u l L o o kup : D is p la y C o n tro l (c o n tr o lu l a fi a t) - E le m e n tu l de in te r fa cu u tiliz a to r u l (caset c o m b in a t , caset de tip lis t s a u caset de text) fo lo s it p e n tru a a fia cuta re a. R o w S o u rce Type (tip u l de rn d s u rs ) - O c u ta re i poate extrage datele d in tr - o in te ro g a re , d in v a lo ri s ta tic e sa u d in c m p u rile u n u i a lt tabel. In a cest caz, c m p u rile S u p p lie rlD i co m p a n yn a m e (num ele firm e i) s u n t in te ro g a te d in ta b e lu l cu fu rn iz o ri ca s u rs de date p e n tru c u ta re . R o w S o u rce (rn d u l surs) - Interog a re a , lis ta s ta tic sau lis ta de c m p u ri fo lo s it p e n tru a p o p u la c uta re a. B o u n d C olum n (c o lo an a de le g tu r ) - V a l o a r e a , coloane i n s c ris n c m p u l re s p e c tiv . I n a c e s t caz, v a lo a re a S u p p lie r lD d in ta b e lu l S u p p lie r este n s c ris n c m p u l S u p p lie rlD d in ta b e lu l P ro d u cts. C m p u l S u p p lie rlD este p r im u l cm p d in interogare; de aceea, coloana de le g tu r p e n tru c u ta re este se ta t la 1. C olum n C o u n t (n u m ru l de co lo an e) - S pecific n u m r u l de coloane care v o r fi afiate. C olum n H e a d s (titlu rile c o lo a n e lo r) - S p ecific d ac s u n t afiate tit lu r ile coloane lor. C olum n W id th s (l im e a c o lo a n e lo r) - S p e cific l im e a fie c re i coloane. n a cest caz, p rim a coloan, S u p p lie rlD , are l im e a 0 i de aceea n u este a fia t . S in g u ra co lo an a fi a t este co lo a n a 2, C om p a n y N am e (n um ele firm e i).

40

P A R T E A - BAZE DE DATE - E L E M E N T E G ENERALE


L is t R ow s (r n d u ri n lis t ) - S p e cific n u m r u l m a x im de r n d u r i care v o r fi afiate. S L is t W id th (l im e a lis te i) - S pe cific l im e a p o r iu n ii d in lis t d e s tin a t u n e i casete c o m b in a te i a u n e i casete de tip lis t . L im it To L is t (lim it a lis te i) - D a c este s e ta t pe yes (da), n u m a i v a lo rile care a p a r n lis t p o t fi in tro d u s e .

T recerea de la o v iz u a liz a re la a lta n tr - u n fo rm u la r este s im ila r c u cea d in tabele, in te ro g ri i ra p o a rte : e x e c u ta i c lic pe b u to n u l V ie w p e n tru a trece de la v iz u a liz a re a D esign la v iz u a liz a re a F o rm i invers. F ig u ra 2 .2 2 p re z in t s tr u c tu r a f o r m u la r u lu i P roducts.
FIGURA 2 .22
F o rm u la ru l P roducts n vizu alizare a Design.

' '

''.'

I...-.

! u i* t in 'S t ock:'i ;ui'InSi U n On Old ..' ; _Uf0n0fdij >Discontinued: p

..R e w d tL e v e i:^ Reoideri.eve:i.

Rezum at
In co n clu zie , a i v z u t p n a c u m cele m a i im p o rta n te elem ente d in tr-o baz de d a te Access, i a num e:

M In te ro g ri
R apoarte

M F o rm u la re
D atele s u n t s tocate n tabele, ia r re la iile definesc m o d u l de asociere a d ife rite lo r tabele. In te ro g rile c o m b in tabelele i re la iile d in tre ele p e n tru a face d ate le u tile , n tim p ce ra p o a rte le a d u c datele la v ia . n s f r it, fo rm u la re le p e rm it u tiliz a to r ilo r s in te ra c io n e ze c u datele. E xa m in n d o baz de date d in Access, p u te i vedea p ro d u s u l fin it, i p ro b a b il, v e i nelege m o d u l c u m fu n c io n e a z m p re u n to a te elem entele. A cest c a p ito l v ofer o p riv ire general a s u p ra p d u rii a r t n d u -v ra p id copacii. D ac n e le g e i im a g in e a de a n s a m b lu , v v a fi m u lt m a l u o r s n e le g e i d e ta liile care v o r p re ze n ta te n celelalte capitole.

CAPITOLUL 2 ANATOMIA UNEI BAZE DE DATE

41

A c u m c a i n e le s ce este o baz de date i c u m s u n t bazele de date im p le m e n ta te n Access, este tim p u l s a p lic a i aceste c u n o tin e p rin crearea u n e i baze de d ate p ro p rii. U rm to a re le tre i c a p ito le a u ca scop p ro ie c ta re a i c o n s tru ire a u n e i baze de date cu d ate te m p o ra le i p e n tru fa c tu ra re . Pe m s u r ce s u n te i c o n d u s n p ro c e s u l de p ro ie c ta re i c o n s tru ire a bazei de date T im e E n tr y a n d B illin g , n u u it a i baza de date N o rth w in d T ra d e rs, deoarece v e i a p lic a aceleai p r in c ip ii - s in g u ra d ife re n este p ro b le m a pe care o re zo lva i.

PARTEA A

ROIECTAREA SI 30NSTRUIREA 3RIMEI BAZE DE DATE

INTRODUCERE IN PROIECTAREA BAZELQR E DATE


n acest capitol:
P ro ie c tu l d u m n e a v o a s tr : baza de da te T im e E n try and ^ 1 D e te rm in a i c e rin e le p riv in d baza de date In tro d u c e re n m od e la re a ba ze lo r de date M o d e lu l b azei de date T im e E n try a n d B illin g - R e zu m a t

46

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

P artea I v -a o fe rit e lem entele fu n d a m e n ta le p e n tru a nelege ce este o baz de date i c u m este ea im p le m e n ta t n M ic ro s o ft Access. n p a rte a a doua, n ce p n d c u a cest c a p ito l, ne v o m c o n c e n tra e fo rtu rile s a p lic m ceea ce a m n v a t n p a rte a I. n a in te de a p u te a c o n s tru i o baz de date, v a tre b u i m a i n t i s o p ro ie c ta i. n a in te de a p u te a s o p ro ie c ta i, va tre b u i s n e le g e i p ro b le m a e con o m ic pe care o a ve i de rezolvat. U n e o ri, p ro c e s u l de p ro ie c ta re i c o n s tru ire a u n e i baze de date este s im p lu ; a lte o ri, acest proces p oate fi o a d e v ra t provocare. P rin tre fa c to rii care p o t d e te rm in a d ific u lta te a sa s u n t: M o d u l n care a i n e les a c tiv ita te a firm e i. A p titu d in ile d u m n e a v o a s tr a n a litic e . N u m ru l de baze de date pe care le -a i m a i dezvoltat. C a n tita te a de r b d a re pe care o a ve i la disp o ziie . D in tre to a te aceste a p titu d in i, r b d a re a este p ro b a b il cea m a i im p o rta n t i m a i g re u de o b in u t. n tim p , v e i cu n o a te b in e a c tiv ita te a firm e i, v v e i d e zvolta c a p a c ita te a a n a litic i v e i c o n s tru i d e stu le baze de date. Bazele de date n u s u n t n ic io d a t c o m p le t d ezvoltate de la p rim a n cercare. La s f r itu l celei d e-a gou a n c e rc ri, s c o p u l d u m n e a v o a s tr v a fi aproape n d e p lin it. C u p u in n o ro c, to tu l v a fi g ata la a l tre ile a atac. M a i m u lt dect p ro b a b il este, to tu i, c v o r f i necesare p a tr u n c e rc ri p e n tru a re a liz a u n p ro ie c t in iia l so lid . N u m a i dac avei r b d a re s a ju n g e i la s f r itu l fiecrei n c e rc ri, v v e i p u te a n d e p lin i s c o p u l de a p ro ie c ta o baz de date solid. S u b ie c tu l p ro ie c t rii u n e i baze de date p oate fi fo a rte a luneco s n tr -o lu m e a te o riilo r com plexe. T e o riile p riv in d p ro ie cta re a p a r s n u se aplice n lu m e a b a ze lo r de da te - n u este adevrat. La n c e p u tu l u n e i c r i in tro d u c tiv e n bazele de date, to tu i, a p ro x im a tiv d o u tre im i d in ele s u n t in u tile . A cest c a p ito l i p a rte a a Il- a s u n t o c o m b in a ie fo rm a t d in te o rie (o treim e) i m u n c grea (dou tre im i). V o m n v a f c n d . S tre c e m la treab !

Proiectul dum neavoastr: o baz de date cu elem en te tem porale i de factu rare
S p re s u p u n e m c a i fo s t a n g a ja t de firm a de a vo c a tu r Dewey, C heatem , a n d H ow e p e n tru a c o n s tru i o baz de date c u elem ente te m p o ra le i de fa c tu ra re . In a fa r de cteva b a n c u ri despre a vocai (p re cu m D e ce re c h in ii n u m n n c avocai? D in s o lid a rita te p ro fe s io n a l .) n u tii p re a m u lte d e ta lii despre a c tiv ita te a d in tr - o firm de a vo ca tu r . Pe baza n u m e lu i bazei de date, tii, to tu i, d o u lu c r u r i: M S is te m u l p re s u p u n e colectarea de date tem porale. S is te m u l p re s u p u n e crearea fa c tu rilo r.

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE

47

A cest lu c r u a r p u te a p re a e x tre m de s im p lu , d a r u n e o ri a r p u te a fi to t ce a ve i p e n tru n c e p u t. A a c u m v e i n v a , o b in e re a u n e i in fo rm a ii poate duce la o b in e re a a n c u n a , d o u sau m a i m u lte in fo rm a ii s u p lim e n ta re .a .m .d . Poate c in fo rm a iile cele m a i im p o rta n te pe care le p u te i d e in e la n c e p u tu l u n u i p ro ie c t s u n t lo c u l i m o d u l n care v e i gsi in fo rm a iile necesare p e n tru c o n s tru ire a u n e i baze de date. A cest s u b ie c t face o b ie c tu l s e c iu n ii u rm to a re .

D eterm inai cerin ele unei baze de date


C u m v e i p ro c e d a p e n tru a decide ce c e rin e tre b u ie s n d e p lin e a sc baza de date? E le m e n tu l cheie p e n tru a decide a cest lu c r u este re p re z e n ta t de fa p tu l c t ii u n d e s g s ii in fo rm a iile . n c iu d a m a rilo r d ife re n e d in tre firm e i d e p a rta m e n te le a cestora, s u rse le de in fo r m a ii s u n t aceleai. Pe m s u r ce v e i dezvolta d ife rite sistem e de baze de date, v e i vedea c procesul de a d u n a re a d a te lo r p r iv in d c e rin e le care tre b u ie n d e p lin ite este fo a rte repetabil. P rin tre m u lte le surse de in fo rm a re n acest sens, cele m a i o b i n u ite s u n t in te rv iu rile , fo rm u la re le fo lo s ite de firm i sistem ele existente.

Interviurile
C u to a te siste m e le de c a lc u l u tiliz a te azi de firm e , to t o a m e n ii s u n t cei care ia u d e c iz ii i fac lu c r u r ile s se n t m p le . N u tre b u ie s s u b e s tim a i r o lu l c o m u n ic rii i - p oate m a i im p o rta n t - n u s u b e s tim a i ne ce sita te a de a a s c u lta ce a u de s p u s a n g a ja ii u n e i firm e . Poate c a ce ti o a m e n i n u p o t v o rb i n te rm e n ii te h n ic i a i b a ze lo r de date, d ar, d in n o u , a ic i in te rv e n ii d u m n e a v o a s tr - p e n tru a a d u n a i tra d u c e aceste in fo rm a ii. P rin in te rm e d iu l in te rv iu rilo r, v e i p u te a s n v a i c u m c irc u l in fo rm a iile d in tr-o firm . V e i n v a i pe care a n u m e elem ente de date se bazeaz o a m e n ii i ce d e c iz ii ia u p o rn in d de la ele. Sunteti pe cale s reconstituit un puzzle. Cnd luti interviurile, nu v iimitati numai la personalul de nivel superior si la angajaii urmtorului nivel ierarhic. Fiecare nivel al organizaiei contribuie cu cte o pies la acest puzzle. Fiecare este la fel de impor tant, pentru c, fr toate piesele nu vei putea niciodat avea imaginea complet asupra organizaiei, deci nici asupra cerinelor pe care trebuie s le ndeplineasc baza de date pe care o construii.

48

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE

NECESITI STRATEGICE VERSUS NECESITI TACTICE


Deciziile pe care le ia o firm sunt de dou tipuri: 1 Strategice; S Tactice.

Deciziile strategice sunt acelea care se refer la aspecte precum adoptarea unei anumite linii de afaceri, nceperea sau terminarea unei anumite linii de produse etc. Deciziile strategice afecteaz firma ca ntreg. Din punct de vedere temporal, orizontul planificrii strategice este de obicei mai mare de ase luni i poate implica perioade de pn la cinci ani. Este posibil s cunoatei planurile companiei pentru trei, patru sau cinci ani, iar dac vi se cere s proiectai o baz de date pentru firm, trebui s cunotei planurile ei strategice. Este probabil ca baza de date s trebuiasc s susin aceste planuri, furniznd informaii pentru iuarea deciziilor.
n timp ce deciziile strategice sunt pe termen lung, deciziile tactice sunt pe termen scurt si sunt mai detaliate. Deciziile strategice se concentreaz pe ceea ce o firm dorete s fac; n contrast, deciziile tactice se concentreaz pe modul n care aceste lucruri vor fi realizate. De exemplu, o decizie strategic ar putea fi creterea operaiilor n urmtorii doi ani. Pentru a alimenta aceast cretere, ar fi necesar o cretere de 10% a veniturilor firmei. Deciziile tactice care susin aceast strategie ar putea fi: Creterea timpului de plat a datoriilor pe termen scurt de ia 30 la 60 de zile; Solicitarea plii facturilor de ctre cliceni n 10 zile n loc de 30 de zile; Gsirea unor noi resurse de finanare bancar. Poate v ntrebai ce legtur au toate acestea cu dezvoltarea bazei de date. Totul! Datele sunt sngele dttor de via al unei firme! Fr date, o companie nu poate lua decizii. Pentru a lua deciziile tactice despre care am vorbit anterior, o baz de date trebuie s ofere datele solicitate ntr-un format utilizabil. Prin interviuri, poi afla multe despre ceea ce o firm dorete s realizeze i, ntre timp, vei afla care sunt cerinele pe care trebuie s le ndeplineasc baza de date.

Form ulare i docum ente ale firm ei


In te r v iu r ile p o t o fe ri in fo r m a ii de n iv e l n a lt i o rie n ta te s p re d e ta lii. E x a m in a re a i a n a liza re a fo rm u la re lo r firm e i este p u n c tu l de n c e p u t p e n tru a p tru n d e n cele m a i m ic i d e ta lii. Ia t cteva exem ple de fo rm u la re ale u n e i firm e : F a c tu ri; R apoarte; D o c u m e n te de expediere a m rfii; Fie de p o n ta j; S o nd a je p riv in d s e rv ic iile fa de c lie n i; O rice t ip de h r tii fo lo s ite de a n g a ja ii firm e i.

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE

49

Pe p a rc u rs u l in te r v iu lu i, p o i descop e ri c este e xtre m de im p o r ta n t p e n tru com panie s stocheze in fo rm a ii despre u tiliz a to ri. P rin analiza i exam inarea fo rm u la re lo r i d o c u m e n te lo r firm e i, p o i d escope ri in fo rm a iile specifice despre c lie n i care tre b u ie colectate. A lt e xe m p lu s u n t fo ile de p o n ta j. n p ro ie c tu l c u re n t, baza de date p riv in d e v o lu ia n tim p s i fa c tu ra re a , s tii c tre b u ie s u rm re ti d e s tu l de d e ta lia t e v o lu ia n tim p a lu c r u r ilo r . O foaie de p o n ta j tip ic a r p u te a c o n in e u rm to a re ie in fo rm a ii: N u m e le a n g a ja tu lu i; D ata ; O ra la care ncepe lu c r u l; O ra la care te rm in lu c r u l; A c tiv ita te a d e sf u ra t ; P ro ie c tu l; C lie n tu l. E x a m in n d a ce s t e x e m p lu p r iv in d fo ile de p o n ta j, d e vin e m a i c la r ce in fo rm a ii tre b u ie s c o n in baza de date. C a p ito lu l 4 se concentreaz a s u p ra m o d u lu i de o rg an izare a in fo rm a iilo r. n acest p u n c t, ceea ce este im p o r ta n t este lo c u l n care g s ii in fo rm a iile . Este momentul s v oprii i s respirai adnc. Este important s vedei cum funcioneaz mpreun interviurile i formularele firmei. Este o reea fr asemnare. ntr-o anumit msur, interviurile pot oferi informaii si despre detalii. Totui cea mai mare parte dintre detalii este oferit de analiza formularelor i documentelor firmei.

S istem ele existe n te


E ste fo a rte p ro b a b il ca s c o p u l p r o ie c tu lu i d u m n e a v o a s tr s fie n lo c u ire a u n u i sis te m e x is te n t. Poate c de zvoltarea firm e i depete c a p a c it ile s is te m u lu i e x is te n t. S a u p o ate c d e s ig n u l b azei de d a te e x is te n te n u n d e p lin e te c e rin e le to t m a i m a ri ale firm e i. P e n tru a nelege ce rin e le de design ale bazei de date, v a tre b u i s n e le g e i s is te m u l c u re n t. M a i im p o r ta n t, tre b u i s n ele ge i care s u n t n e a ju n s u rile acestuia. D ac n u cu n o a te i i n u n e le g e i p ro b le m e le legate de s is te m u l e x iste n t, p ro b a b ilita te a de a p e rp e tu a aceste p ro o b le m e i n n o u l s is te m crete d ra m a tic . Din multe puncte de vedere, componentele interfetei cu utilizatorul ale unui sistem existent pot fi considerate documentele si formularele firmei. De exemplu, poate c nu exist fizic bucata de hrtie care conine foaia de pontaj, ci probabil c angajaii introduc informaiile respective folosind un ecran special. Ca dezvoltator al bazei de date, va trebui s stiti c nu exist o linie de demarcaie clar ntre sursele disparate de informaii. Mai mult, nu exist nici o ordine stabilit de trecere n revist a diferitelor elemente. n final, este foarte posibil s trebuiasc s revizitezi aceleai surse de informaii. De exemplu, dup ce ati analizat un anumit docu ment, va trebui s revenii la intervievarea angajailor pentru a obine alte clarificri privind cerinele asupra bazei de date.

50

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

V amintii mantra rbdrii? Procesul de colectare a cerinelor privind baza de date ar putea s v par nesfrit. Unii oameni cred c sistemele informatice si bazele de date nu sunt niciodat complete, deoarece mediul de afaceri evolueaz si se schimb n continuu. ntr-un anumit moment vei fi adunat destule informaii pentru a realiza designul iniial al bazei de date, dar numai realizarea designulul iniial nu nseamn c ati ncheiat procesul de colectare a informaiilor privind cerinele asupra acesteia. Nu uitati, va trebui s repetat procesul de dou, trei sau patru ori nainte de a obine primul design al bazei de date. Pe msur ce acumulai experien, v vei familiariza cu toate aceste lucruri.
n a cest p u n c t, t ii u n d e p u te i gsi su rsele de in fo rm a ii p e n tru ce rin e le a s u p ra bazei de date. A c u m n tre b a re a este c u m s a lc tu ie ti u n design in iia l. R s p u n s u l este u n m o d e l a l bazei de date. P rocesul de creare a p r im u lu i d u m n e a v o a s tr m o d e l a l u n e i baze de date este sc o p u l s e c iu n ii u rm to a re .

Introducere n m odelarea bazelor de date


Se s p u n e c o im a g in e face c t o m ie de c u v in te . N ic ie ri n u este m a i a d e v ra t aceast z ic a l ca n lu m e a m o d e l rii b a ze lo r de date. A a c u m a i v z u t, bazele de da te s u n t m a i m u lt de ct g r u p u r i de tabele. Bazele de date g rupeaz e n tit i n ru d ite ale firm e i. P u n e i-v n tre b a re a ce este m a i u o r de re a liz a t: o lis t s ta tic a n u m e lo r de tabe le s a u o d ia g ra m care p re z in t tabelele i re la iile d in tre ele? In d ife re n t dac s u n te i sau n u o p e rso a n cu a p titu d in i te h n ic e , este m a i u o r de lu c r a t cu d iagram ele. D ia g ra m e le p e r m it o a m e n ilo r s n ele a g m a i u o r pro b le m e le i conceptele d ific ile . S co n sid e r m de exem plu, p la n u rile u n e i c l d iri. P rivin d u -le , p u te i nelege ra p id s c o p u l i s tr u c tu r a c l d irii. P la n u rile realizeaz m u lt m a i m u lt dect a r p u te a c u v in te le s spere c v o r re a liza vreo da t. n tr - u n a n u m it sens, u n m o d e l a l bazei de d ate este ca u n p la n a l acesteia. S co p u l acestei s e c iu n i este de a v o rie n ta pe calea c re rii p r im u lu i d u m n e a v o a s tr m o d e l a l u n e i baze de date.

Cum a ra t un model al bazei de date?


In c a p ito lu l 2 am f c u t o in tro d u c e re n p r im u l m o d e l a l u n e i baze de date. P e n tru a re c a p itu la , fig u ra 3.1 ilu s tre a z m o d e lu l bazei de date N o rth w in d T ra d e rs d in Access.

INTRODUCERE N PROIECTAREA BAZELOR DE DATE


FIGURA 3 .1
V izu alizare a R e lationships v pe rm ite s vedei toate tabelele d in tr-o baz de date i re la iile d in tre ele.
Objects

51

B 22 2 j JS 2 a
Sl w bt | Companytam ContactName ContactTitle . Address C*y Rsgton

table Design view

Groups CategoryID CategoryName Dsscrlpton Picture

ProductlD OrdcrID FroductNams ProductID tjppterID UmfPrtce Category Quantity ^ uartityPefUni : Lk-JtPrKe UnsInSock UnisOnOtder Reordertevel Discontinued

F te > f

OrderiD Customer D I EmployeeID OrderCate T-i.-ed: 5h>pedDae SNpVla ShlpName ShiipAddress 5hpCy ShipP.egion

CustomerID CompanyNam ContactName CortactTiUe Address

ay
Region

s h p p o iu c c c ^ j

ShipperID CompanyNarne Phone

[ordertd EmpbyedD LastNam fitstfJame

* Date d ie a t -

D ac p r iv ii fig u ra 3 .1 , v e i nelege im e d ia t s c o p u l bazei de date. C a p ito lu l 2 a s tu d ia t acest scop, e x a m in n d m o d e lu l. A c u m v o m face o in tro d u c e re n co m p o n e n te le m o d e lu lu i u n e i baze de date.

CTEVA C U VIN TE DESPRE INSTRUMENTELE DE PROIECTARE A BAZELOR DE DATE


Instrumentele de proiectare a bazelor de date pot fi pur i simplu creionul i hrtia. Ele pot fi i foarte complexe, nct s cheltuii pe ele cteva sute de dolari sau cteva mii de dolari. Sam Snead, unul dintre cei mai mari juctori de golf ai timpului, relateaz cum a realizat lovitutura de 76 puncte pe un teren dificil n cartea sa, The Game/Love. Lecia pe care o primim de aici nu se refer la instrumentul pe care l folosim, ci la eficiena cu care l folosim. Un desen realizat cu creionul pe un petec de htie poate fi la fel de bun precum unul realizat cu un instrument care cost mii de dolari. Bine, poate c am exagerat puin. Totui, nu trebuie s facei o ipotec pentru a v procura un instrument bun de proiectare a bazei de date. Pe pia exist dou astfel de instrumente relativ convenabile: Microsoft Visio- De la preluarea de ctre Microsoft, Visio a devenit parte a suitei Microsoft Office. Pentru mai multe informaii, intrai pe site-ul Microsoft Visio Web, la h t t p : / / w w w .m ic ro s o ft. c o m / o f f i c e / v i s i o / . Resolutior xCase - acesta este un instrument complet pentru proiectarea bazelor de date care funcioneaz cu SQL Server, Access, Sybase, Informix, DB2 i multe alte baze de date existente pepia. Pentru mai multe informaii, intrai pe site-ul Resolution xCase, la h t t p : / /www. x c a s e . com.

52

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE

Desigur, dac avei nevoie de instrumente foarte specalizate, poate vei fi interesat de: Computer Associates ErWin-Inform aii la h t t p / / c a . c o m /p ro d u c ts / a im / e r w in . htm. Visible Analist DB Engineer- Informaii la h t t p : / /www. v i s i b l e . com/ d a ta a p p /d a p p p ro d s /v a d b e .htm . n scopul de a ilustra modelarea bazelor de date si noiunile nrudite acestei teme, aceast carte va utiliza Microsoft Visio.

C rearea primului model


S facem u n pas n a p o i i s ncepem c u u n p ro ie c t g ata re a liz a t p e n tru a v p u te a fa m ilia riz a c u crearea m o d e lu lu i g ra fic a l bazei de date. n aceast s itu a ie ip o te tic a i id e n tific a t u rm to a re le e n tit i: C lie n i:

11 C om enzi;
E le m e n te ale c o m en zilo r.

Toate conceptele din aceast seciune pot fi utilizate cu instrumente simple precum creionul i hrtia. Instrumentele de proiectare grafic automat uureaz o parte din munc, cum ar fi faptul c se asigur c sunt create chei externe n tabelele copil i descifreaz dac este vorba despre o relaie unu la unu sau unu la muli. Unele Instrumente automatizate pot chiar realiza scripturi care creeaz automat definiii ale bazei de date pornind de Ia model. Mai mult, unele instrumente sunt suficient de inteli gente pentru a sincroniza modelul i baza de date ori de cte ori este modificat modelul. Toate aceste funcii sunt drgue, dar nici una dintre ele nu este crucial cnd este vorba de aplicarea conceptelor de modelare i a notaiilor. Nu uitai, important este violonistul, nu vioara!
C nd la n s a i V is io , s u n te i n t m p in a t de o caset de d ia lo g care v in v it s alegei te m p la te -u l ( a blo nu l) de desen p o tr iv it (vedei fig u ra 3.2). D u p ce a i s e le c ta t fo ld e ru l D atabase, v e i vedea ase te m p la te -u ri (vedei fig u ra 3.3). P e n tru acest m odel, s e le c ta i te m p la te -u l C row s F o o t ERD.VST. D ac v a m in tii cele d is c u ta te la n c e p u tu l a c e stu i c a p ito l, a c ro n im u l ERD v in e de la E n tity R e la tio n s h ip D ia gram . D u p ce a i de sch is a b lo n u l, p u te i u tiliz a im e d ia t V is io D esign S urface. V is io D e s ig n e r este p re z e n ta t n fig u ra 3.4.

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE


FIGURA
V isio poate crea m u lte t ip u r i de desene tehnice, in c lu s iv diagram e ale m odelelor de baze de date.
Loc : r ^ Sokjfion j J v i [ ) * ' ! | O industrial Process Orseme Diagram CU Maps C j Mechanical Enginsering Q j Network Diagram u3 Software Diagram O Visio Extras ( filar. fcowiig.YST _ JAEC J Annotation_ j BlockDiagram_ Business Diagram] _ : JDatabase__ _ j Electrical and Electronic Fac ]1_ * * Management JjFiowcKart

53

SFen Cercei Help

]
j (

FIGURA 3.3
Visio conine cin ci m odele de proiecte ale bazei de date. Cel m a i com un d in tre acestea este Crow s Foot ERD.

p f7 r, .... ........ 3 .a d B
l j Badwan.V5

j Map Database Wizard.VST Object Role Modeling.VST

I I ^ H 1

; Open..... V - Original : ; COV r ReadOn ! F* name: ]Dow ' Foot ERDVST ) Template ('.vst

Ftei o'type:

Description........ .....- ........... ........ ........ j Crow's Foot ERD: Use Ihs Crow', loo pacbstion language foi eritily-r , s(cmhip dagrarr.s, data modeing r relaiiaial data models, conceptual data mods, tetafonal data ystems. and dal a base dasgn !.

Bara standard

Suprafaa de desen

FIGURA 3 .4
V isio Design Surface este la n sa t sub fo rm a u n e i pa g in i albe. A vei la dispoziie m u lte bare de in s tru m e n te p e n tru a crea a b so lu t orice tip de fo rm sau orice c o n tro l cu orice a trib u te .

Caseta de instrumente Design Symbol

54

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

P o rn in d de la o s u p ra fa de desen lib e r , s u n te i gata s c re a i p r im u l g ra fic . P ro c e s u l im p lic tra g e re a s im b o lu r ilo r de desen d in caseta de in s tru m e n te D e sig n S y m b o l n s u p ra fa a de desen. In acest proces v e i p a rc u rg e p a ii u rm to ri: 1. P la s a i o e n tita te pe s u p ra fa a de desen. 2. A d u g a i a trib u te acestei e n tit i (num e, c m p u ri i chei). 3. S p e c ific a i re la iile n tre e n tit i. P e n tru a nelege p r im ii do i pai, p r iv ii fig u ra 3.5. A ceasta p re z in t e n tita te a C u s to m e r c u u n c m p d e fin it. V o r m a i f i i a lte c m p u ri, d e sig u r. O rd in e a n care tre b u ie in tro d u s e c m p u rile i e n tit ie n care v o r fi in tro d u s e acestea s u n t d is c u ta te n c a p ito lu l 4.

FIGURA 3.5
E n tita te a C u sto m er are dou a trib u te : num ele e n tit ii i c m p u l cheie p rim a r .

Ins Fwmat Tools Sh p Wndsw Hefp

!1 1 s~
|Hornai...... J ' a

T w rjisa----- |fy 5r~-


\jner. -------- Horn l Dow's Feat ERP 3 JL ' r S

b/

a o o x a I
g 1

h j j ^
{

0]

Pagi/i

Statu?: jRMdy

S ne oprim puin pentru a relua nite concepte importante. Dei subietul alegerii cmpurilor si a entittiior n care acestea trebuie incluse este abordat abia n capitolul urmtor, unele cmpuri trebuie deja adugate chiar n acest proces. Rolul acestor cmpuri este de a susine diferitele relaii dintre entiti. Este vorba despre cmpurile cheie primar i cheie extern (strin). Aceste concepte au fost introduse n capitolul 1 i exemplificate n capitolul 2. Dac trebuie s revedei rapid aceste noiuni, este mai bine s o facei acum, nainte de a trece mai departe.

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE


D u p ce a i v z u t c u m a ra t e n tit ile n V isio, s e xa m in m cteva m om ente n o ta ia u n e i e n tit i (vedei fig u ra 3.5). T ip u l d ia g ra m e i create este Entity Relationship Diagram ( ERD) - d ia g ra m a re la iilo r n tre e n tit i. O e n tita te d in ERD este a lc tu it d in tr - u n d re p tu n g h i, n u m e le e n tit ii i lis ta c m p u rilo r. D u p c u m vedei, n u este nevoie de u n design sp e cia l p e n tru a crea diagram ele . A a c u m vo m a r ta n cele ce u rm eaz, to tu i, in s tru m e n te le de d e sig n fac m u n c a m u lt m a i u o a r . C rearea e n tit ilo r n V is io este fo a rte s im p l . P aii u rm to ri v ghideaz p r in p ro c e s u l c re rii e n tit ilo r O rd e rs i O rd e r Lin e Item s: 1. S e le c ta i s im b o lu l e n tit ii d in caseta de in s tru m e n te D esign S ym bol. 2. in n d a p s a t b u to n u l s t n g a l m o u s e -u lu i, tra g e i s im b o lu l pe s u p ra fa a de desen. 3. D up poziionarea sa pe suprafaa de desen, eliberai b u to n u l m ouse-ului. V a f i c re a t a s tfe l o n o u e n tita te . 4. S e le cta i e n tita te a n o u crea t d in s u p ra fa a de desen i a p sa i C trl+ C p e n tru a co p ia e n tita te a n W in d o w s C lip b o a rd . 5. A p s a i C trl+ V p e n tru a lip i o n o u e n tita te pe s u p ra fa a de desen. A ce asta v a a r ta ca n fig u ra 3.6, d u p ce a i a ra n ja t e n tit ile .

F I G U R A 3 .6 Cele dou e n tit i libere d in su p ra fa a de desen re p re zin t e n tit ile Orders i O rder Line Item s, respectiv.

H View Insert Fwm TocJi Shspe W refcw Hete

~. *
I

T-xJ: 0,-
L jrC K N oitr

| :

. >?; | . - '

* M *

0 * * *

'

><

CuSorret 0

Pagei/i

PARTEA A - A - PRO IECTAREA P R IM E I BAZE

DATE

6. S e le c ta i e n tita te a d in m ijlo c , e x e c u ta i c lic d re a p ta i s e le c ta i A d d A ttr ib u te s d in m e n iu l p o p -u p . D e n u m ii e n tita te a O rd e rs i e x e c u ta i c lic pe OK. F ig u ra 3 .7 p re z in t p r im u l ta b d in caseta de d ia lo g D efine E n tity .

FIGURA 3.7
T a b -u l G eneral d in caseta de dialog Define E n tity v pe rm ite s spe cifica i num ele e n tit ii i dife rite a trib u te de afiare n diagram .
S T.: foB iow N arnc QOov/tFootEBO ^ | "' " 0 * : B~Dcw..'. "( A y a o X tt <!

. 1 '

GenMl H arne | ;.

how ShowBiimstykey on< how $ keys

or.

Cncd

&<*

7. R epetai p a s u l 6 p e n tru ce alalt en tita te , d e n u m in d -o O rd e rL in e lte m s. 8. Revenind entitatea Orders, repetai p a s u l 6, selectnd ta b -u l A ttrib u te s d in caseta de d ia lo g D efin e E n tity . . E x e c u ta i clic pe b u to n u l New p e n tru a crea u n n o u cm p. D enum ii-1 O rd e rID , s p e c ific n d c acesta este ch e ia p rim a r i s p e c ific a i tip u l de date ca In teg er. F ig u ra 3 .8 p re z in t c u m va a r ta caseta de dialog. . R e pe tai p a s u l 9 p e n tru e n tita te a O rd e rL in e lte m s, a dug nd u n cm p n u m it O rd e rL in e lte m ID . D ia g ra m a v a a r ta ca n fig u ra 3.9. A b ia a cu m incepe d is tra c ia c u adevrat i a bia a cu m iese n e ^ d e n pu te re a u n u i in s tr u m e n t de p ro ie c ta re a u to m a t . D u p ce a i cre a t e n tit ile i ch e ile p rim a re asociate lo r, p o t f i create re la iile d in tre e n tit i. C rearea re la iilo r, ca i a e n tit ilo r, este fo a rte s im p l dac u r m a i p a ii: 1. S e le c ta i s im b o lu l r e la iilo r d in caseta de in s tru m e n te D esign S ym bol. 2. T ra g e i s im b o lu l I'elaei pe s u p ra fa a de desen. D u p p lasarea pe S U p ra fa , v e i vedea lin ia re la ie i. n a in te de a lsa lin ia , a s ig u ra i-v c e ^ re m ita te a ei d in stnga a ting e u n u l d in tre m arcajele a lb a stre d in e n tita te a C u stom er. D ac a i e fe ctu at corect o p e raiun ea, e x tre m ita te a st n g v a roie c n d selectai lin ia re la ie i (vedei fig u ra 3 .1 .

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE


FIGURA 3.8
T a b -u l E n tity d in caseta de dialog Defne E n tity v pe rm ite s precizai c m p u rile i a trib u te le corespunztoare lo r p e n tru orice entitate.

57

3* '*
a 0 H ]& ? '

. ft !. <
3 IV

~
s 1 " : " " 'T ' j t f g y ^

& 6 >?' . ^ 2 - 4 : c z j d !

Tw
aDoWiFocilERD

3 j5T J 1 '* * * :i * ; ; : A * ' A . X

Lt e] - o E Do wf g ,

CuslomalD

: A tn b u to *i ra s ---------1
DefineABiWe................... aw

I_ _ _ J

a wi [

...............

M *n * :j5 3 5 D ----- P P . v iy ^ IM H B3 lZ l
P Si .p T ~ DafJiVje: j .v j

0^

Canal

Hat

Hwyt m Q .75 n,

tvtjc = 0

S-Li .

FIGURA 3.9
M od elul ERD cu tre i e n tit i, flecare avnd de fin it o cheie p rim a r .

J H* * s H

ireert fwma Too.s Sh** wnjo net O S I - r < < * v / - o


o

. ]ifl.x i i a . a . p o 5 T 3 ?<

L # W j------- N c n i v .

] JL = . ? - 2 - * * 1

j Na.mil

- Q X < g

Jk 3 L

H t 1?

: a W a K A i h y *

Dotat | cuttonttr a*toifIO | | jo>dtrt jOnleflD| J |c*d |rLmefflt | OtdLinelemlD i

............................

..........................'; ' - . Pai} J/l

. Mm:' Rady

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE


FIGURA 3.10
P en tru ca sarcinile autom ate s funcioneze corect, este im p o rta n t ca flecare cap t al lin ie i re la ie i s a tin g u n m arcaj a lb a s tru a ta at e n tit tii.
Fe B* View Insert Fotim Too 5hp Vrindcw Hlp

DATE

L n e 'f r S l7 . " a . i g'.V:


CtowFoolERD

Teii: f Covclot

U/
lCorwcloi

tt X &

] j 3

a A j:P 'M ' < 4 a j a ei &i

B@ 1
&** i:*-'1

Ricvnrtt * rtUiontr

ta

.. I
Cticno

P aoe 1/1

Statut: ; Raafr

3. P a su l u r m to r este de a ataa e n tita te a O rders la c a p tu l d in d re a p ta a l lin ie i re la ie i. E x e c u ta i c lic pe el i tragei-1 spre u n u l d in tre m a rca je le a lb a s tre ale e n tit ii. D ia g ra m a v a a r ta p re c u m cea d in fig u ra 3 .1 1 . p e n tru ca ea s fie c la r , a fo s t m rit la a p ro x im a tiv 150%.

FIGURA 3.11
L in ia relaie i conecteaz a cu m e n tit ile C u sto m er i O rders.

Ed View In format Too hac VATdow hp

O X t j X Q , <3. |i5 ' [


Te>j. j floimal j " } 11 1 Nwncl *j An

3 j i r3

b I!lamal j t

l . ' * M ' -A Ft H

^ - i1

trtr,

xijU iL!,

SI

CAPITOLUL 3 INTRODUCEREN PROIECTAREA BAZELOR DE DATE


4. Repetai p a s u l 3 p e n tru o relaie n tre e n tit ile O rders i O rderLineltem . S -a r p u te a s v n tre b a i u n d e este a u to m a tiza re a . P n la u rm , d u m n e a v o a s tr a i f c u t to a t tre ab a . A te p ta re a a lu a t s f r it: a c u m v e i vedea re z u lta te le m u n c ii d u m n e a v o a s tr n d rjite ! D in m e n iu l Shape, s e le c ta i U p d a te F o re ign Keys. V o il ! Pe baza re la iilo r, in s tr u m e n tu l a t iu t ce ch ei s tr in e tre b u ie d e fin ite . De e xem plu, p e n tru ca e n tita te a O rd e r s s u p o rte o cheie s tr in de la C u s to m e rlD , tre b u ie d e fin it u n cm p C u s to m e rlD . A a c u m v e i vedea n c a p ito lu l u rm to r, este o p io n a l s p s tra i u n e le c m p u ri n am bele e n tit i, d a r c m p u rile de la acest n iv e l n u s u n t o p io n a le . De aceea d is c u t m a ic i despre aceste c m p u ri. M a i s im p lu fo rm u la t, dac n u avei c m p u ri cheie extern, n u p u te i avea re la ii. De fa p t, re la iile s u n t esena u n e i baze de date re la io n a le . D ac a i p a rc u rs co re ct p a ii, d ia g ra m a d u m n e a v o a s tr va a r ta ca n fig u ra 3.12.

FIGURA 3.12
M od elul bazei de date este com plet acum , co n in n d e n tit i, chei externe si re la ii.

FI E i W ew ir* F(r Tools Shee W r3c Help D g B & & T e*l: | Une: } Hamei > : ] 2 JL * * * *2 ' - ' : il I Noimei i o >, x a x e , ^ f5 r J v *

; * * > = :
a V / A % 3

a a

a
S5 j Eff

. E l 5 : Cray UJI'IMWR -: n:

ia

] orders

OrderUneltems

- OraerlD JJ OrderlD ^, .................. OraerLineitemlD ------------------------OrderlD(FK ( IE( ' urderl jCustomerlD (FK) (IE)

! ________

i
Pige 1/1 Statu: RevK

Totui, de ce se numete crowsfoot (piciorul ciorii)? Figura 3.13 explic de ce modelul are acest nume aparent demodat.

60

PARTEA A ll-A PRO IECTAREA P R IM E I BAZE


Ed vww ;- ) fumtl Tads

DATE

FIGURA 3.13
P icio ru l de cioar ilustrea z pa rte a la m u li" a un e i re la ii. O lin ie s im p l ilu stre a z pa rte a u n u a relaiei.

D 2
Text |NonMl

* Halp


A n o X 0

; ; '

'
-

. * 11

'

\;
IDoWs Fool ERD

- = * *

* ' : -

Orders
- ^

CustomerlD (FK) (IE)

Piciorul de cioar ilustreaz partea la muli a unei relaii

0 linie simpl ilustreaz partea unu a relaiei

C re a re a unei b aze de d a te re a le din m odelul logic al bazei de date


U n in s tr u m e n t a u to m a t n u este de p re a m a re folos dac n u poate s u p o rta u n m o d e l lo g ic a l bazei de date - a d ic p la n u l u n e i baze de date - i crearea u n e i baze de da te reale. Ia t de ce p ro ie c ta re a i im p le m e n ta re a ba ze lo r de date se realizeaz m p re un . L u c r n d cu modelele, avei o ans de a vizualiza conceptele i id e ile n a in te de im p le m e n ta re . A cest proces este de departe m u lt m a i e fic ie n t d e ct u tiliz a re u n u ia de t ip u l n ce rca re i e roare (pe o baz de date real, p e n tru a vedea d ac lu c r u r ile m e rg bine). V is io i a lte in s tru m e n te p e n tru p ro ie c ta re a b azelor de date a u fa c ilit i de creare a b a z e lo r de da te reale (fizice) d in m odele logice ale ba ze lo r de date. In ca zu l p ro g ra m u lu i V is io , e xist ca p a cita te a de a crea o baz de date n Access, ia r p ro c e s u l este s im p lu , deoarece este a ju ta t de o a p lic a ie w iza rd . S e le cta i T ools, M acro, D atabase, C reate D a tabase W iz a rd p e n tru a la n s a a p lic a ia w iz a rd de creare a bazei de date.

Asigurai-v c nu exist erori ERD. De exemplu, o relaie care nu este conectat duce la o eroare ERD. Dac modelul conine erori, baza de date rezultat va avea aceleai erori. nainte de a crea baza de date lansnd Create Database Wizard pornind de la model, asigurai-v c ai actualizat cheile externe.

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE

61

D u p p a rc u rg e re a p a ilo r d in C reate D atabase W iza rd , v e i o b in e o n o u baz de date n Access. D ife rite le a trib u te d e fin ite n m o d e l s u n t p re lu a te de baza de d ate fizic . F ig u ra 3 .1 4 ilu s tre a z re z u lta te le r u l r ii a p lic a ie i w iz a rd C reate D atabase.

FIGURA 3.14
Create D a ta base W izard a u tiliz a t m od elul creat n acest cap itol p e n tru a c o n stru i aceast baz de date n Access.
Objects j []Create taUe mDesign view ][ Create table by using weard 5?) Create table by enteting data E3 Customer m Ordertjneltems S3 Orders

- i P l .xj

C rearea unui model logic al bazei de date pornind de la o baz de date fizic
Ce z ic e i de s itu a ia in ve rs , c n d a ve i la d is p o z iie baza de date fizic, d a r n u a v e i u n m o d e l? D in fe ric ire , V is io are c a p a c ita te a de a e fe ctu a i o p e ra iu n e a in ve rs , de a crea m o d e lu l lo gic p o rn in d de la baza de date. P e n tru a im p o rta o baz de date, p a rc u rg e i p a ii: 1. D in m e n iu l File, s e le c ta i New, D atabase, M ap D atabase W iza rd . 2. In d ic a i lo c a ia bazei de date pe care a i c reat-o a n te rio r. 3. A le g e i to a te e n tit ile p e n tru m apare. 4. C re a i o d ia g ra m C ro w s F oot i l s a i o p iu n e a L a y o u t aa c u m este. 5. S electai prezentarea tu tu r o r a trib u te lo r i a ch e ilo r strine. L sa i cele la lte a trib u te aa c u m s u n t. 6. D a i u n t i t l u i o descriere p e n tru d ia g ra m a bazei de date. 7. E x e c u ta i c lic pe b u to n u l F in is h . F ig u ra 3 .1 5 p re z in t m o d u l c u m v a r ta m o d e lu l re z u lta t n V isio .

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE


FIGURA 3.15
M ap Database W izard, c itin d o baz de date existent, a creat acest m odel a l bazei de date.
fe Et vvm Irwrt fam * IoJ Sh*> ww H elp 3 Q o Aiul U 'C p t z J B / 0 x t t J. & > , > f m iJ ?

-<

=3

1 C - O -

i - - /

k . ' ! & . :

[::_ j
Dzobast uei LiiteiiciitiL. ; OrderlD (FK) (IEJ

Order Entry Database Model

Edit Date 7/28/2001 12:54:41 PM

This database was created in Chapter

Microsoft Access Filename: Drawing

|Pev 0

Creator Administrator Company. Company

r~ Pir- Statut; i RW

M odelarea logic a bazei de date Tim e Entry and Billing


A c u m , d u p ce a i n e le s ce este m o de la re a b azelor de date, p u te i u tiliz a te h n ic ile n v a te p e n tru p ro ie c tu l c u re n t - baza de date T im e E n try a nd B illin g . D esigur, p r in in te rv iu ri i analiza do cu m ente lor i fo rm u la re lo r firm e i, a i id e n tific a t u rm to a re le e n tit i: C lie n i: A n g a ja i:

M C a z u ri:
M F a c tu ri; D e ta lii p riv in d e v o lu ia n tim p . n c u rs u l a n a lize i, a i id e n tific a t u rm to a re le re la ii: U n c lie n t are u n u l sa u m a i m u lte ca z u ri; U n c lie n t are u n a s a u m a i m u lte fa c tu ri; O fa c tu r este a lc tu it d in u n u l sau m a i m u lte d e ta lii.

M T im p u l este c o n to riz a t n fiecare caz.


A n g a ja ii a loc tim p fie c ru i caz.

CAPITOLUL INTRODUCERE N PROIECTAREA BAZELOR DE DATE

63

F ig u ra 3 .1 6 p re z in t m o d e lu l bazei de d a te n acest p u n c t a l p ro c e s u lu i de dezvoltare. A a c u m v e i vedea n c u r n d , e x is t deja cteva a s p e rit i care tre b u ie netezite.

FIGURA 3.16
V ersiun ea 1 a bazei de date Tim e E n try and B illin g este a lc tu it d in cin ci e n tit ti.

Fk lnsert

'
Terf 7i~ Homni . Lris.' j

00 Wrcfcw H elp

-js a k ?

* = '

. . . ^

- . S .* --:& ' ' a%'

: * A

'A ' 4 *

":rrrrrr:.

ZEI

1
.

C-3-;e:D Clieriao (F k)(IE ) Empioyee ' EmoioveelD

CaseID (FIO (IE) Emplcr.'eelO (FK) (IE) invoiceiD (FK) (IE)

7/2S/20D1 1;d8:27PM Datad3 etosupport

TargetDB Access Filenams tdbDBVvsd

|p e v

Creator: John V Petersen Compsny Mar ' . m c

P a y ljl

Statut: Ready

Editarea textulu i
A i o b se rv a t fo rm a d in d ia g ra m a d in fig u ra 3 .1 6 care c o n in e in fo rm a ii d e s c rip tiv e despre g ra fic? F o rm a este n u m it t it lu l bazei de date i este lo c a liz a t n caseta de in s tru m e n te D esig n S ym bol. D u p ce a i p la s a t t i t lu l bazei de d a te pe s u p ra fa a de desen, fiecare b lo c de te x t poate fi e d ita t dac p a rc u rg e i p a ii: 1. E x e c u ta i c lic pe caseta c u t it l u l b azei de date; va f i se le cta t n tre a g a fo rm . U n m a rc a j v erde de selecie v a n c o n ju ra c o n tu ru l fo rm e i. 2. n a cest p u n c t, p u te i selecta fiecare d re p tu n g h i c o n in u t n fo rm a cu t it lu l bazei de date. Pe m s u r ce se le cta i fiecare d re p tu n g h i, c o n tu ru l s u este m a rc a t c u gri. 3. A p s a i ta s ta F2. V a fi selectat te x tu l, ceea ce v pe rm ite s-l m o d ifica i.

Rafinarea designului
P n a cu m , p ro ie c tu l a ra t b in e . D a r este oare com plet? D a t fiin d c este p rim a sa v a ria n t , este foarte p ro b a b il c n u . A i observat c re la ia n u m ru l c in c i are u n a ste risc? D ei, p e n tru n c e p u t, aceast re la ie poate c n u pare a m b ig u , este. S e x a m in m ceva m a i b in e re la ia A n g a ja ii aloc tim p fie c ru i caz.".

64

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

S zicem c n tim p u l in te r v iu r ilo r a i d e sco p e rit c u n u i a n g a ja t i este a tr ib u it u n caz n a in te ca el s aloce tim p c a z u lu i. D e s ig n u l c u re n t a l bazei de date c o n in e o re la ie d ire c t n tre c a z u ri i a n g a ja i? N u, d a r c o n in e o re la ie in d ire c t . D in e n tita te a Case, p u te i gsi a n g a ja i care a u a lo ca t tim p c a z u lu i d a c tre c e i p r in e n tita te a T im e E n try D e ta il. C t tim p to i a n g a ja ii im p lic a i n tr - u n caz a u a lo c a t tim p c a z u lu i, p u te i a fla a n g a ja ii care s u n t im p lic a i n caz. D a r, pe de a lt p a rte , dac ave i nevoie de o lis t c u a n g a ja ii care s u n t im p lic a i n tr - u n caz i t i i c u n ii d in tre ei n u i-a u a lo ca t n c tim p (n u s -a u o c u p a t n c de cazu l respectiv). Pe s c u rt, n seam n c a ve i g h in io n ! E ste im p o rta n t de s u b lin ia t c re la iile d in tre e n tit i tre b u ie s fie su p o rta te in d ife re n t dac e x is t in s ta n ie ri specifice ale d a telor. C u alte c u v in te , c h ia r dac u n a n g a ja t n u a a lo c a t n c tim p u n u i caz care i-a fo s t a tr ib u it, el tre b u ie s a p a r n tr-o lis t a a n g a ja ilo r care lu cre a z la ca zu l respectiv. F ig u ra 3 .1 7 p re z in t d e s ig n u l ra fin a t.

FIGURA 3.17
V ersiun ea 2 a m o d e lu lu i bazei de date Tim e E n try and B illin g s u p o rt o re la ie direct n tre an ga jai i cazuri.

_ He _& 1rs Took Shap Wirden H elp A Te* Ine: j- ~ M aml ' : 1 = jlp. B j _ _ _ 0 . , . , : a O X

-*

F* f

[jOcuv'iFooiERO

1C

Trw sod E4ny0 a tatiasEtosu^

I Edit Date 7/26/2001 21: : 1 PM

Target DE: Aece5S Filename: tdtD Bi.v d

|r

Creator John V. Petersen Mmi LineSoftware, kx

r~ p jjg i/F ~ * statut: Ready

A i v z u t i a lt p ro b le m ? Fe baza a c e s tu i m ode], c n d este v o rb a despre asocierea a n g a ja ilo r c u ca z u rile , avei u rm to a re a pro b le m : de fiecare d a t c n d u n u i a n g a ja t i este a t r ib u it u n n o u caz, tre b u ie cre a t o n o u n re g is tra re p e n tru acel an g a ja t. A ce st lu c r u are ca re z u lta t n re g is tr ri d u b le ale a n g a ja ilo r. A stfe l, n u va trece m u lt tim p i baza de date va fi a g lo m e ra i c u o m u lim e de date re d u n d a n te . C nd va tre b u i s c re a i ra p o a rte s a u in te ro g ri, v a fi fo a rte d ific il. Ce s -a r n t m p la dac u n a n g a ja t i s c h im b n u m e le i lu c re a z la 10 ca zu ri? V a tre b u i s m o d ific a i 10

1 INTRODUCEREN PROIECTAREA BAZELOR E DATE


n re g is tr ri ale a n g a ja ilo r. tii d e stu le despre bazele de date re la io n a le ca s n e le g e i c ace st s c e n a riu este in a c c e p ta b il. U n u l d in tre s c o p u rile p rin c ip a le ale b a z e lo r de date este s a s ig u re c o n s is te n a da te lo r, re d u c n d re d u n d a n a acestora. i a tu n c i, c u m v e i rezolva pro b le m a ? V a m in tii c n d a m d is c u ta t despre re la iile u n u la m u li n c a p ito lu l 2? E ste e xa ct s itu a ia n care ne a fl m acu m . A n g a ja ilo r li se p o t a tr ib u i u n u l sa u m a i m u lte c a z u ri, ia r la u n caz p o t lu c ra u n u l sau m a i m u li an g a ja i. A i v z u t n c a p ito lu l 2 c spargerea u n e i r e la ii m u li la m u li n d o u r e la ii u n u la m u l i redreseaz s itu a tia . n acest caz, p e n tru a rezolva p ro b le m a , v a fi a d u g a t m o d e lu lu i u n n o u ta b e l in te rm e d ia r, n u m it ta b e l de jo n c iu n e (jonction table). Tabelele de jo n c iu n e s u n t n u m ite i tabele de rezolvare a r e la iilo r m u li la m u l i {many-to-many resolver tables) - d a r d e n u m ire a n u este n ic i pe d e p a rte a t t de im p o rta n t ca r o lu l acestora. T abelele de jo n c iu n e v p e rm it s fa c ilita i c o n s is te n a d a te lo r, re d u c n d re d u n d a n a acestora. F ig u ra 3 .1 8 p re z in t v e rs iu n e a 3 a m o d e lu lu i bazei de date, care c o n in e n o u l ta b e l de jo n c iu n e i re la iile m o d ific a te n tre e n tit ile Case i Em pioyee.

FIGURA 3.18
V ersiun ea 3 a m o d e lu lu i bazei de date Tim e E n tiy and B illin g su p o rt o re la ie m u li la m u li n tre ca zu ri si angajai.

- M i
Wi ndcw Hdc o

X t

?;|' _ |

j N o m a l In i Hoim al aCiow'FooiERD

' | n ' '

'|1 * , * F II

; TNamai"

: : A *

^~| ' *

- * - .

1 &>-/

iV .

ciientip

t ~ " ' " ' CHca3elD

jC lle n tlP (F t< )(IE )

IWDice Invoiceio ciipn nriiF K w iF i CllentlD(FKj(IE)

>

<

jEditDate 7/28/2001 4.37:22 PM

Dat3base ta upport

Target DB. Access Fiiename tdbDB2 vsd

Pev: 3

Creator. John V. Petersen LrS'ftv-Vi,Ir

Pge 1/1

sttu iRftxty

M a i tre b u ie n c s m u n c ii n a in te ca p r im u l design a l bazei de date s fie c o n s id e ra t co m p le t. Pe m s u r ce c o n tin u a i analiza, v e i vedea c u n u i caz i p o t fi a s o c ia i m u l i c lie n i. D a to rit acestei s ita u ii, n u este s u fie n t asocierea u n e i n re g is tr ri T im e E n try D e ta il cu u n caz, u n a n g a ja t i o fa ctu r . D ei este a d e v ra t c n re g is tra re a T im e E n try D e ta il tre b u ie s co re s p u n d

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

u n u i caz, u n e i fa c tu r i i u n u i a n g a ja t - d in cauz c m a i m u li c lie n i p o t fi a s o c ia i u n u i caz - e n tita te a T im e E n try D e ta il tre b u ie s a ib C lie n tID ca i cheie e xte rn . V e d e i fig u ra 3 .1 9 care c o n in e p rim a v e rs iu n e c o m p le t a bazei de d a te T im e E n t iy a n d B illin g .

FIGURA 3.19
V ersiun ea 4 a m o d e lu lu i bazei de date T im e E n tiy and B illin g este p rim a sch i com plet.

Fie J V -vj IniSrt Fomwt leali hsp- V-trfjrf

*liS j*
.J J *

o ;x t i 1 ) !( , } os _ J ?

Hi

ClienlO ClientCaselD (FK) )

> Database to support

lE d rtD il 7B/2G01 452*6 FM

Target OB: Accsss Filename: IdbDB .vsd

jRev. 3

Creator John . Petersen

P ag 1/1

Statu: !Ready

Rezum at
In tr - u n s c e n a riu real, v e i descoperi c s u n t necesare m a i m u lte ite r a ii p e n tru a o b in e d e s ig n u l in iia l. T im p u l necesar p e n tru a re a liza u n p ro ie c t u t il depinde de c t de a m n u n it este a n a liza d um neavo astr i de frecvena c u care c e re i in fo r m a ii de la u tiliz a to r ii bazei de date. D in tre toate s ursele de in fo rm a ii d isp on ib ile , s o lic it rile de rapoarte a r p u te a fi cele m a i valoroase, deoarece p u te i p a rc u rg e adesea p ro c e s u l in v e rs re a liz rii a cestora p e n tru a d e te rm in a e n tit ile pe baza c ro ra tre b u ie realizate. D e sig u r, a lte surse de in fo r m a ii - in te r v iu r ile i sistem ele e xiste n te - s u n t i ele im p o rta n te . n s itu a ii d ife rite , v p u te i baza pe su rse d ife rite . R e z u lta tu l m u n c ii d u m n e a v o a s tr de a n a liz c u lm in e a z s u b fo rm a m o d e lu lu i bazei de date. Cea m a i c o m u n i s im p l cale de a nelege te h n ic a m o d e l rii este E n tity R e la tio n s h ip D ia g ra m (ERD). In s tru m e n te p re c u m p ro g ra m u l V is io a u to m a tize a z p ro c e s u l c re rii m o d e le lo r logice ale bazelor de date i c re rii b azelor de date fizice d u p m odele. E R D -u rile s u n t a lc tu ite d in e n tit i, a trib u te le e n tit ilo r i re la iile d in tre e n tit i.

CAPITOLUL 3 INTRODUCERE N PROIECTAREA BAZELOR DE DATE

67

D ac e xist u n s fa t cheie, acesta a r fi N u v n g ro p a i prea repede n d e ta lii . D ac v o c u p a i de copaci, fe rii-v de p d u re . A cest c a p ito l n u a in tr a t p re a m u lt n d e ta lii p riv in d c m p u rile c u in fo r m a ii d in fiecare e n tita te . De ce? P e n tru c acest lu c r u n u este a b s o lu t necesar n re a liza re a u n u i p ro ie c t in iia l so lid a l bazei de date. De fa p t in tra re a p re a ra p id n d e ta lii poate fi u n o bsta col. Se v o r m o d ific a e n tit ile pe m s u ra d e fin irii c m p u rilo r d in ele? Cel m a i p ro b a b il, da. D a r acest lu c r u este n re g u l ; to tu l face p a rte d im p ro c e s u l de design. V a m in tii m a n tra r b d rii? D a r re c la m a lu i P a u l M asson: N u vo m vin d e v in u l n a in te de m o m e n tu l p o tr iv it ? n c a p ito lu l u rm to r, v e i trece cu p ro ie c tu l p r in etapa u rm to a re a de zvo lt rii sale - p ro c e s u l de n o rm a liz a re . La s f r itu l c a p ito lu lu i 4, d e s ig n u l bazei de date T im e E n tr y a n d B illin g va fi com plet.

4
PROIECTAREA UNEI :BAZE DE DATE INTRODUCERE N NORMALIZARE
:n acest capitol
?H Ce n s e a m n n o rm a liz a re a u n e i baze de date H P a ii n e ce sa ri p e n tru n o rm a liz a re D e n o rm a liz a re a d a te lo r - ce ro s t are s n c lc m re g u lile ? l J N o rm a liz a re a a p lic a t - revedere a T E B i i R e zu m a t

70

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

n u ltim u l c a p ito l am f c u t o in tro d u c e re n conceptele de baz ale p ro ie c t rii ba ze lo r de date. n acest c a p ito l vo m c o n s o lid a a p titu d in ile d o b n d ite n cel precedent. D ac v r e a m in tii u n a d in tre re g u lile de baz ale c rii, este nevoie de m a i m u lte ite r a ii p e n tru a o b in e u n design o p tim a l bazei de date. D u p ce a u fo s t create p rim e le tabele, p a s u l u r m to r p re s u p u n e co m p le ta re a ace stora c u coloane. In acest m o m e n t, sin g u re le le coloane care e xist s u n t cheile p rim a re i cele externe necesare p e n tru a s u p o rta re la iile d in tre tabele. n acest p u n c t, n tre b a re a este Ce coloane tre b u ie in c lu s e n tabele? . U nele d in tre coloanele pe care tre b u ie s le in c lu d e i s u n t logice; altele n u s u n t. A a c u m v e i vedea, in c lu d e re a u n e i coloane poate d e te rm in a crearea u n o r n o i tabele. D ac v g n d ii c a u fo s t create to a te tabelele necesare p e n tru b aza de date T im e E n tiy a n d B illin g (TEB), v e i avea o s u rp riz ! P rocesul d e te rm in rii coloanelor necesare n tr - u n ta b e l se n u m e te normalizare. P ro ce su l de n o rm a liz a re este s c o p u l a c e s tu i c a p ito l, ia r la s f r itu l s u p ro ie c ta re a bazei de date T E B va fi com plet.

Ce nseamn normalizarea unei baze de date?


N orm alizarea u n e i baze de date poate fi caracte rizat cel m a i b in e ca pro ce su l o rg a n iz rii acesteia. A c u m c tim ce nseam n, s re ve n im la de ce. S co p u l n o rm a liz r ii este re d u c e re a p ro b le m e lo r de c o n s is te n a d a te lo r, p r in re d u ce re a re d u n d a n e i. Pare d e ru ta n t? C o n s e p tu l de n o rm a liz a re p oate fi n e le s m a i u o r p r in in te rm e d iu l u n u i e xe m p lu s im p lu . P e n tru a aceasta, s re v e n im la b aza de date N o rth w in d T ra d e rs d in Access. F ig u ra 4.1 p re z in t E R D -u l (E n tiy R e la tio n s h ip D iagram ) p e n tru baza de date N o rth w in d T ra d e rs care a fo s t in tro d u s n c a p ito lu l 2. O bservai re la ia d in tre tabelele C u s to m e rs i O rders. Ca re c a p itu la re a fu n c io n rii re la iilo r n tr-o baz de date, cheia p rim a r a ta b e lu lu i p rin te este p re lu a t n ta b e lu l co p il ca i cheie e xtern . In acest caz, c m p u l C u sto m e rID este p re lu a t n ta b e lu l O rd ers. Ia t c u m n re g is tr rile de com enzi de la u n a n u m it c lie n t p o t f i asociate a cestuia. A tu n c i, de ce n u am p re lu a i alte c m p u ri d in ta b e lu l C u sto m e rs? A a c u m v e i vedea m a i t rz iu , u n e o ri v e i alege s p re lu a i a lte c m p u ri d in ta b e lu l p rin te n ta b e lu l co pil. Ca re g u l general, to tu i, n u v e i d o ri s fa c e i a c e s t lu c r u . D e e x e m p lu , d a c v e i d e cid e s p r e lu a i c m p u l C om panyN am e n ta b e lu l O rd e rs i se va m o d ific a n u m e le firm e i? V a tre b u i s a c tu a liz a a c tu a liz a i i ta b e lu l C u sto m e rs i ta b e lu l O rders, p re c u m i o ric e a lt ta b e l c a re m a i c o n in e c m p u l C o m p a n yN a m e . C o n tin u n d e x e m p lu l, ce s -a r n t m p la dac d ife rite le a p a riii ale a ce stu i c m p n u a r fi a ctu a liza te s im u lta n ? Care ve rsiu n e va re flecta cel m a i corect n u m e le firm e i? D ac v i se v a cere s p re g tii u n ra p o rt care tre b u ie s c o n in acest cm p, ce ta b e l v e i fo lo s i ca s u rs ?

CAPITOLUL 4 PROIECTAREA UNEI BAZE E DATE.


FIGURA 4.
D iagram a de re la ii n tre e n tit i p e n tru baza de date N o rth w in d Traders p re zin t re la ia d in tre c lie n i si

71

Este d e s tu l de c la r c e xistn d d oar o a p a riie a e le m e n tu lu i de date respectiv, n u m a i r m n e n im ic de in te rp re ta t i de g h ic it. C nd a c tu a liz a i c m p u l C om panyN a m e n ta b e lu l C ustorne rs, p u te i f i s ig u r c to a te ra p o a rte le care se bazeaz pe acest c m p v o r fi corecte i a ctu a le . De ce? P e n tru c re s p e c tiv u l c m p n u este p re lu a t n m od re d u n d a n t n baza de date, i, ca re z u lta t, este a s ig u ra t c o n s is te n a d a te lo r. A celai concept poate fi re v zu t i n m o d e lu l de d ate d in fig u ra 4 . 1 . 0 c o n s is te n m a i m are p r in e lim in a re a re d u n d a n e lo r - acesta este s c o p u l n o rm a liz rii!

Paii de norm alizare a modelului de date


A a c u m re a liz a re a u n u i de sign o p tim a l b azei de date este u n proces cu m a i m u l i p ai, fel este i p ro ce su l de n o rm a liza re . V e i d o ri s n o rm a liz a i p n la a tre ia fo rm n o rm a l , cel p u in . F oarte p o s ib il, v e i d o ri s fa ce i n c u n pas n o rm a liz n d p n la fo rm a B oyce-C odd. Form ele a p a tra i a cincea n o rm a le e xist , d a r u tiliz a re a lo r este m u lt m a i ra r . P e n tru s c o p u ri in fo rm a io n a le , i acestea s u n t descrise pe s c u rt la s f r itu l acestei se ciu n i. P e n tru a ilu s tr a p ro c e s u l de n o rm a liz a re , c o n s id e ra i u rm to a re a lis t de date n e n o rm a liz a te : I d e n t if ic a t o r i c lie n tu lu i (C u sto m e r 1 n N u m e le c lie n tu lu i (C u sto m e r Nam e]; * T i p u l c lie n tu lu i (C u sto m e r Type); N u m e de c o n ta c t (C o n ta ct Name) - u n u la m u li;
-

cheie p rim a r ;

M N u m e le ca te g o rie i (C ategory Name} - u n u la m u li.


D ac a i lu c r a t v re o d a t c u date p ro v e n in d d in tr-o s u rs n e re la io n a l , acest s c e n a riu v poate f i fa m ilia r. n acest e xem plu, lu n g im e a n re g is tr rii

72

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

u n u i c lie n t este v a ria b il , deoarece fiecare c lie n t poate avea u n a sa u m a i m u lte in fo r m a ii de c o n ta c t i poate face p a rte d in m a i m u lte ca te g o rii. N u u ita i c to tu l este n fo rm b ru t , ia r in fo rm a iile p ro d u se de e fo rtu rile d u m n e a v o a s tr de a n a liz s u n t nerelaio n ale . Toate a trib u te le pe care le -a i id e n tific a t p e n tru o e n tita te d a t s u n t g ru p a te p ro b a b il n tr-o s tr u c tu r p la t . A ic i in te rv in e p ro c e s u l de n o rm a liz a re - de a o rg a n iza a trib u te le . S ncepem p r in a lu a s tru c tu ra a n te rio a r i a o aduce la p rim a fo rm n o rm a l .

Prima form normal: eliminarea grupurilor care se repet


P rim a fo r m n o r m a l (first normal form, pe s c u r t IN F ) p r e s u p u n e n d e p rta re a g r u p u r ilo r care se repet. R m ne s r s p u n d e m la n tre b a re a Ce s u n t g ru p u rile care se repet? . E x e m p lu l a n te rio r are d o u g ru p u ri: in fo r m a ii de c o n ta c t i categoria. N u u ita i, p e n tru fiecare c lie n t p o t e x is ta m a i m u lte in fo r m a ii de c o n ta c t i m a i m u lte categorii. P e n tru fiecare g ru p ce se repet pe care l n t ln im , g ru p u l este m u ta t n tr -u n ta b e l se p arat. In a cest caz, v e i avea n fin a l d o u tabele care c o n in datele p riv in d in fo rm a iile de c o n ta c t i categoria. S c h ia u rm to a re p re z in t n o u a s tr u c tu r i e n tit ile sale: E T a b e lu l C u sto m e r: Id e n tific a to ru l c lie n tu lu i; N um e le c lie n tu lu i; T ip u l c lie n tu lu i; i T a b e lu l c u in fo r m a ii de c o n ta c t: Id e n tific a to ru l c o n ta c tu lu i; Id e n tific a to ru l c lie n tu lu i; B N u m e de co n ta ct. T a b e lu l p riv in d categoria: Id e n tific a to ru l categoriei; Id e n tific a to ru l c lie n tu lu i;

M N u m e le categoriei.
A a c u m p oate a i g h ic it, ta b e lu l C u s to m e r este p rin te p e n tru tabelele C o n ta c t i C ateg o iy. Cele d o u r e la ii s u n t u n u la m u li. C u a lte cu v in te , fiecare c lie n t poate avea u n u l s a u m a i m u lte c o n ta cte i poate fi a so cia t cu u n a sa u m a i m u lte c a teg o rii. D a r care este c heia p rim a r p e n tru fiecare ta b e l? G n d ii-v la a s ta cteva m in u te . P ro ble m a c h e ii p rim a re este s tr n s le g a t de a d o u a fo rm n o rm a l , s u b ie c tu l s e c iu n ii u rm to a re . n ca pitolele a n te rio a re , c h eia p rim a r a fo s t n to td e a u n a fo rm a t d in tr - u n s in g u r cm p. D ei acesta a fo s t c a z u l ta b e lu lu i C u sto m e r, se poate s p u n e a celai lu c r u i

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

73

despre ta be le le C o n ta c t i C a teg oiy? R s p u n s u l n u este a t t de tra n a n t c u m s -a r prea. G n d ii-v n c o n tin u a re la acest s u b ie c t - l v o m re lu a n se c iu n e a u rm to a re . n a in te de a tre ce m a i departe, este im p o rta n t s ve d e i b e n e fic iile care d e riv d in m u ta re a in fo r m a iilo r de c o n ta c t i categoriei n tabele separate. Im a g in a i-v c t de d ific il a r fi s a rc in a a d m in is tr rii in fo rm a iilo r de c o n ta c t dac acestea a r fi stoca te n ta b e lu l C u sto m e r. D ac u n c lie n t a r p u te a avea u n s in g u r n u m e de c o n ta c t, a r p u te a fi u n a rg u m e n t fa p tu l c datele p re c u m n u m e , n u m r de te le fo n i aa m a i de parte a r p u te a fi stocate n ta b e lu l C u s to m e r. P n la u rm , n acest caz, avem de a face c u u n n u m r f in it de coloane. D a r dac cin e va a r s o lic ita o m b u n t ire a b azei de date care im p lic s u p o r tu l m a i m u lto r in fo r m a ii de c o n ta c t p e n tru u n s in g u r c lie n t? A v e i d o u v a ria n te : A d u g a i alte coloane n ta b e lu l C u s to m e r p e n tru a s u p o rta contactele m u ltip le ; Sfi A d u g a i u n ta b e l c o p il care p e rm ite o rice n u m r de contacte. E v id e n t, v a ria n ta a d o u a este m a i u oa r , m a i fle x ib il i m a i econom icoas d in p u n c tu l de vedere a l c o s tu rilo r. P e n tru v a ria n ta 1, d e s ig n u l bazei de date a r p u te a s se m o d ific e n c o n tin u a re o ri de cte o r i u n a n u m it c lie n t va avea m a i m u ie c o n ta cte de ct coloanele d in ta b e lu l C u sto m e r. D ac este v re u n lu c r u care poate s c h im b a d e s tin u l u n e i a p lic a ii p e n tru baze de date, acesta este c o n tin u a s c h im b a re a s tr u c tu r ii i m o d e lu lu i acesteia. U n m o d e l s o lid i s ta b il a l b azei de date este fu n d a m e n tu l pe care se s p rijin toate celelalte. D u p d ezvoltarea u n e i a p lic a ii, m o d ific a re a s tr u c tu r ii bazei de d ate poate fi fo a rte s c u m p i cronofag. n tre a g a a p lic a ie tre b u ie s fie te s ta t a m n u n it p e n tru a e lim in a p o s ib ilita te a in tro d u c e rii u n o r defecte ca re z u lta t a l m o d ific rii s tr u c tu r ii acesteia. Rezolvarea acestor aspecte n c de la n c e p u t e vit a p a riia m u lto r p roblem e care a r p u te a aprea m a i t rz iu . D iversele fo rm e n o rm a le s u n t n cascad. C u a lte cu v in te , n a in te de a a ta ca a d o u a fo rm n o rm a l , v a tre b u i s a p lic a i p rim a fo rm n o rm a l . A cest lu c r u este v a la b il i p e n tru u rm to a re le fo rm e n o rm a le . i c u m p rim a fo rm n o rm a l este re a liz a t , s tre ce m la a d o u a fo rm n o rm a l , care p re s u p u n e e lim in a re a d a te lo r re d u n d a n te . C u m v o r f i afectate tabelele de acest lu c ru ? V e i gsi r s p u n s u l n s e c iu n e a u rm to a re .

A doua form normal: elim inarea datelor redundante


P e n tru a a d u ce ta b e le le la a d o u a fo rm n o rm a l , tre b u ie s a n a liz a i c m p u rile n ra p o r t c u c h e ia p rim a r . P ro ble m a c h e ilo r p rim a re a fo s t d is c u ta t n s e c iu n e a a n te rio a r . C heia p rim a r a ta b e le lo r C o n ta c t i C ategory este m u ltiv a lo ric , a d ic n u avei u n s in g u r cm p care s id e n tific e n m o d u n ic o n re g is tra re . P e n tru ta b e lu l C ategory, ch e ia p rim a r este o c o m b in a ie a c m p u rilo r C ateg oiy ID i C u s to m e r ID . M u li c lie n i p o t u tiliz a aceeai categorie, ia r u n c lie n t poate face p a rte d in m a i m u lte categorii.

74

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

T o tu i, u n c lie n t n u p oate face p a rte de m a i m u lte o ri d in aceeai categorie. A c e s ta p a re s fie u n lu c r u lo g ic. D a to r it ace ste i re g u li, c o m b in a ia c m p u rilo r C a te g o iy ID i C u s to m e r ID id e n tific n m o d u n ic o n re g is tra re d in ta b e lu l C ateg o iy. S re v e n im la ta b e lu l C o n ta ct. A a c u m v e i vedea, acest s c e n a riu p re z in t o s itu a ie a m b ig u . C m p u l C o n ta c t ID id e n tific o n re g is tra re n m od u n ic ? A r p u te a s id e n tific e u n ic n re g is tra re a ; d a r la fel de b in e , a r p u te a s n -o fac. Ce prere a ve i de a cest r s p u n s ? R s p u n s u l d e p ind e de co n te xt. T a b e lu l C o n ta c t se re fe r n u m a i la date le de c o n ta c t? S au m a i co re ct a r f i s fie d e n u m it C u s to m e r C o n ta c ts (date de c o n ta c t despre c lie n i)? D in n o u , r s p u n s u l d e p in d e de c o n te x t. Poate fi u n c o n ta c t a so c ia t m a i m u lto r c lie n i? S au este a s o cia t u n u i s in g u r c lie n t? A n a liz a i e fo rtu rile de p ro ie c ta re pe care le fa c e i a r p u te a d a r s p u n s u l la aceste n tre b ri. U n e o ri, c o rp o ra iile m a ri p o t s a p a r de m a i m u lte o ri n tabelele cu c lie n i. E ste fo a rte p o s ib il ca o p e rso a n de c o n ta c t s fie a socia t m a i m u lto r n re g is tr ri ale c lie n ilo r, de aceea este fo a rte im p o r ta n t ca a n a liz a i e fo rtu rile d u m n e a v o a s tr de p ro ie c ta re s descopere to a te d e ta liile ca acesta. D u p im p le m e n ta re a u n u i siste m , co re cta re a u n e i g re e li poate fi fo a rte d ific il .

CT COST CORECTAREA UNEI GREELI?


Dac este vorba despre o baz de date de 1 dolar, corectarea ct mai rapid a unei greeli poate costa 1 dolar. Ct mai rapid posibil nseamn ntimpul prcesului de analiz, design i modelare a bazei de date. Dup crearea bazei de date costul corectrii aceeleiai greeli este de 10 dolari. Dup ce sistemul a nceput faza de testare beta, greeala cost 100 de dolari. Dac greeala trece neobservat la testarea beta i intr n producie repararea ei va costa 1000 de dolari. Dac v gndii mai bine, este logic s fie aa. Dup intrarea n faza de testare beta, dac este descoperit o greeal, trebuie s o luai de la nceput. Imaginai-v c aplicaia dumneavoastr este instalat n cteva sute de locaii. Costul de a redis tribui programul i de a actualiza baza de date poate fi imens. Ideea care se desprinde de aici este c, pe msur ce trecei prin diferite stadii de dezvoltare, costul reparrii defectelor se mrete de cte 10 ori. Cu ct analiza i proiectarea pe care le realizai sunt mai eficiente, cu att este mai probabil s nu depii bugetul stabilit i s livrai aplicaia la timp sau n avans.

P e n tru s co p u l de a e xem plifica, s p re s u p u n e m c u n c o n ta c t poate fi asociat u n u i s in g u r c lie n t. G n d in d u -n e la acest lu c ru , ta b e lu l C o n ta c t se a fl n a d o u a fo rm n o rm a l , deoarece a trib u te le n u d e p in d de o cheie m u ltiv a lo ric , a d ic n u m e le de c o n ta c t d e p ind e n u m a i de id e n tific a to ru l c o n ta c tu lu i. n acest caz, c m p u l C o n ta c t ID id e n tific n m o d u n ic n re g is tra re a u n u i co n ta ct. De asem enea, n u e x is t date re d u n d a n te . D a r ta b e lu l C a te g o iy este n a d o u a fo rm n o rm a l ? De d a ta a s ta r s p u n s u l este n u .

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

75

n tim p ce u n c o n ta c t este sp e cific u n u i c lie n t, o categorie este u n ob ie ct in d e p e n d e n t. P e n tru a e xe m p lifica s p re s u p u n e m c avem categoriile m e d i cal, m a rk e tin g i fin a n c ia r. U n c lie n t poate a p a rin e i categoriei m a rk e tin g i c a te g o rie i fin a n c ia r. Fiecare d in tre aceste c a te g o rii poate f i a so cia t cu m a i m u l i c lie n i. Ia t , de e xe m p lu , datele u rm to a re , care a r p u te a s se gseasc n ta b e lu l C ategory: C ategory ID 1 2 3 2 S u n t d o u n tre b ri: C are este c h e ia p rim a r ? C u s to m e r ID 1 1 2 2 C ategoria M e d ica l M a rk e tin g F in a n c ia r M a rk e tin g

W O categorie d e p in d e in te g ra l sau p a ria l de cheia p rim a r ?


n a cest caz, ch e ia p rim a r este m u ltiv a lo ric , ea c o m b in n d c m p u rile C ategory ID i C u s to m e r ID . C ategoria d e pind e p a ria l, n u in te g ra l, de cheia p rim a r . D a c e x is t u n c m p care n u d e p ind e in te g ra l de cheia p rim a r , a tu n c i ta b e lu l n u este n a d o u a fo rm n o rm a l . P e n tru a aduce acest ta b e l n a d o u a fo rm n o rm a l , ca te g o riile tre b u ie p lasate n tr - u n ta b e l separat. A ce a sta m re te n u m r u l de ta b e le de la tr e i la p a tru . In c o n tin u a re p re ze n t m n o u a s tr u c tu r a ta b e lu lu i Category: T a b e lu l C ategory: C ategory ID (id e n tific a to ru l categoriei): C ategory N am e (nu m e le categoriei). M a i jo s este p re z e n ta t s tr u c tu r a n o u lu i ta b e l C u s to m e r C ategory: M T a b e lu l C u s to m e r C ategory: C u s to m e r C ategory ID (id e n tific a to ru l categoriei c lie n tu lu i) - cheie p rim a r : C u s to m e r ID (id e n tific a to ru l c lie n tu lu i): C a teg ory ID (id e n tific a to ru l categoriei).

CHEI PRIMARE l CHEI PRIMARE SUROGAT


Avei nevoie de un cmp Customer Category ID n tabelul Customer Category? Rspunsul este nu. Combinaia cmpurilor Customer ID i Category ID va servi ca i cheie primar multivaloric. Acest tip de cheie primar mai este numit i cheie primar compus. Intr-un tabel precum Customer Category, care are numai rolul de tabel de rezolvare a relaiei muli la muli, o cheie compus este o alternativ per fect acceptabil. Este foarte puin probabil ca tabelul Customer Category s se

76

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

comporte ca printe, deci cheia primar probabil nu va fi preluat ntr-un tabel copil. Dac alegei s pstrai o cheie primar univaloric sau multivaloric este o chestiune de preferin personal. Includerea cmpului este o problem de consisten i preferin pentru o anumit metodologie. Cele dou metodologii n chestiune implic utilizarea sau neutilizarea cheilor surogat. Exist dou curente de idei privind cheile primare. Unul dintre ele susine c acestea ar trebui produse n ordine secvenial; altul susine c ele ar trebui s fie combinaii ale cmpurilor existente. Cheile surogat sunt produse n ordine secvenial, folosind un dispozitiv de incrementare. In Access este utilizat n acest scop tipul de cmp autonumeric (autonumber). Uneori, cheile surogat sunt numite chei fr semnificaie, deoarece din valoarea acestora nu sunt obinute informaii privind nregistrrile pe care le identific. Cellalt tip de chei, cheile multivalorice, este alctuit dintr-o combinaie a cmpurilor existente. Uneori, cheia este o combinaie ntre numele clientului+adresa+ora+stat. Este valabil orice informaie care identific n mod unic o nregistrare. Este uor de vzut c aceste chei multivalorice nu au semnificaie. Cnd vedei valoarea unei chei, vedei imediat datele descrise de nregistrarea pe care cheia o identific. Care metod este corect? Ambele au calitile lor. Dintre cele dou, cheile surogat reprezint probabil o abordare mai bun. Pentru a analiza de ce sunt o abordare mai bun, va trebui s nelegei scopul unei chei primare. O cheie primar servete la identificarea unic a unei nregistrri. Cheile primare sunt preluate n datele copil cu scopul de a lega nregistrrile copil de cele printe. Ce este mai uor, preluarea unei singure valori de tip single integersau a unui ir care poate conine peste 100 de caractere? Ce se va ntmpla dac se modific numele firmei, adresa sau orice alt component a cheii primare? Nu se va schimba numai cheia primar, ci i cea preluat ca i cheie extern n tabelele copil trebuie s se schimbe. Problemele de ntreinere pe care le ridic cheile multivalorice depesc orice avantaj pe care acestea l-ar putea avea. Scopul unei chei primare este dublu: de a identifica n mod unic o nregistrare i de a servi drept adeziv ntre tabelele nrudite. Valoarea sa ar trebui s nu se schimbe. Cheile primare stau n fundal i menin ordinea. n anumite privine, ele sunt similare arbitrilor de fotbal. In meciurile frumoase, nu observai arbitrul. Utilizatorii primari nu ar trebui s vad, s cunoasc sau s controleze nfiarea cheilor primare. Cunoscnd toate acestea, sunt cheile primare singura caie de a identifica unic nregistrrile? Rspunsul este negativ. S lum n considerare cmpul cu numrul clientului. Doi clieni nu pot avea acelai numr. Altfel, de ce ar mai exista numrul clientului. Adesea, companiile au o metod sistematic de a numerota clienii. O parte a numrului poate da informaii despre client, cum ar fi numele su. n acest caz numrul clientului nu ar trebui s fie cheie primar, deoarece depinde de caracteristicile din nregistrarea cientului. Nu uitai, dac se modific un aspect de

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

77

care depinde numrul clientului, trebuie modificat i acest numr. Desigur, nu exist nici un motiv pentru care cheia primar nu ar putea avea i un al treilea rol, cum ar fi cel de numr al clientului. Dac aa stau lucrurile, utilizatorii nu ar trebui s aib controlul asupra valorii efective a acestuia.

In c o n tin u a re v o m p re ze n ta m o d u l c u m a p a r n i te date n ta b e lu l C ategory: C ategory ID 1 2 3 C ategoiyN am e M e dical M a rk e tin g F in a n c ia r

Ia t c u m a r p u te a s a p a r n i te d ate n ta b e lu l C u s to m e r C ategory: C u s to m e rC a te g o iy ID 1 2 3 4 C u s to m e r ID 1 1 2 2 2 1 2 C ategory ID 1

n a in te de a adu ce ta be le le la a d o u a fo rm n o rm a l , c o n s id e ra i s c e n a riu l m o d ific rii d e s c rie rii u n e i c a te g orii. n c a z u l d a te lo r re d u n d a n te v o r f i nece sare m u lte a c tu a liz ri. D u p a d u ce re a la a d o u a fo rm n o rm a l , descrierea u n e i c a te g o rii e x is t n tr - o s in g u r lo caie . D u p m o d ific a re a u n e i s in g u re date, to a te ra p o a rte le care o c o n in v o r fi a c tu a liz a te a u to m a t. C t despre ra p o a rte , s p re s u p u n e m c n a in te de a d ucerea la a d o u a fo rm n o rm a l tre b u ie s c re a i u n ra p o rt care afieaz c m p u l C ategory Nam e. Ce v e i u tiliz a ca s u rs p e n tru acest cm p? D u p aducerea la a doua fo rm no rm a l , r s p u n s u l este m u lt m a i clar. S a ru n c m o p riv ire a s u p ra ta b e lu lu i C u sto m e r. D ac e x a m in m c m p u l C u s to m e r Type, se p are c m a i e x is t u n g ru p care se repet. Ia t c u m a p a r datele n a cest tab el: C u so m e r ID 1 2 3 4 C u s to m e r N am e Ace T o m a to PM H R u tg e rs L a w M ic ro s o ft C u s to m e r ype B usiness H o s p ita l S chool B u sin e ss

78

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

P e n tru a a p lic a a d o u a fo rm n o rm a l , tre b u ie cre a t u n n o u ta b e l C u s to m e r Type. Ia t care v a fi s tr u c tu r a a c e s tu i tabel. C u s to m e r Typ e ID 1 2 3 C u s to m e r Type D e s c rip tio n B usin ess H o s p ita l S chool

D u p crearea n o u lu i ta b e l C u s to m e r Type, tre b u ie m o d ific a t ta b e lu l C u s to m e r, p e n tru a p u te a fi s ta b ilit o le g tu r n tre cele d o u tabele. Ia t care v a f i s tr u c tu r a n o u lu i ta b e l C ustom er: C u s to m e r ID 1 2 3 4 C u s to m e r N am e Ace T o m a to PM H R u tg e rs L aw M ic ro s o ft C u s to m e r typ e 1 2 3 1

F ig u ra 4 .2 p re z in t n o u l m o d e l de date p ro d u s p r in n o rm a liz a re .

FIGURA 4.2
Tabelele d in acest m odel de date s u n t aduse la a d o ua form no rm al .

Ar? V - / c O Xti O ?
Teii:

N o m ia l
Notmal

' ' V| I 't Aii


' *

fiopi. J.-FI

; ! );

A* * ' '

|nm al

1 ' 0 E ' : : - - < | :

&

B.
, Customer jc u s to m e rc a te g o ry I

'

C ustom erlD [custom erN am e jCustom erTypeiP (FK) (IE )

(contact !Contact ID ContactName JCustomerlD (FK) (IE )

Custom erType iC ustom erTvoelD C ustom erTypeNam e

Category

? ill

st tu

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

79

A tre ia form norm al: elim inarea coloanelor care nu depind de chei
A i n c e p u t c u o s in g u r s tr u c tu r p la t . P e n tru a trece la p rim a fo rm n o rm a l , g ru p u r ile care se re p e ta u a u fo s t m u ta te n tabele separate. A u re z u lta t tr e i n o i tabele: C o n ta c t, C ategory i C u s to m e r Type. P a su l u rm to r este de a d u ce tab elele la a tre ia fo rm n o rm a l . P e n tru a ilu s tr a acest proces, tre b u ie s fie a d u g ate n ta b e lu l C u s to m e r u n e le d in tre c m p u rile n o u create: H C u s to m e r ID ;

W C u s to m e r Name;
S C u s to m e r Type ID ; C ity (o ra u l); S ta te (s ta tu l); ZIP Code (co d u l potal). T a b e lu l C u s to m e r este n p rim a fo rm n o rm a l deoarece n u e x ist g r u p u r i care se re p e t i este n a d o u a fo rm n o rm a l deoarece n u e x is t ch e i m u ltiv a lo ric e . In acest caz, e x is t o s in g u r cheie p rim a r s u ro g a t. Se p u n e p ro b le m a d ac ta b e lu l este n a tre ia fo rm n o rm a l . P e n tru aceasta, a r tre b u i ca o rice c m p care d e p ind e de o rice a ltceva n a fa r de c h e ia p rim a r s fie m u ta t n a lt ta b e l. T a b e lu l n care este m u ta t c m p u l poate fi u n u l e x is te n t s a u u n u l n o u . C m p u rile p re c u m o ra u l, s ta tu l i c o d u l p o ta l d e p in d de c h eia p rim a r ? R s p u n s u l este n u . Aceste elem ente s u n t co m p le t in d e p e n d e n te de c h e ia p rim a r C u s to m e r ID . S e x a m in m ra p id re la ia d in tre ora, s ta t i cod p o ta l. C o d u l p o ta l este sp e cific u n e i lo c a lit i i u n u i s ta t (este v o rb a despre lo c a lit ile i statele d in S U A - n . t r . ) . de e xe m plu , 19301 este c o d u l p e n tru Paoli, P e n nsylvan ia. E x is t , to tu i, i P aoli, O k la h o m a . N u u ita i c s c o p u l n o rm a liz rii este re d u ce re a d a te lo r re d u n d a n te . V a tre b u i s d e fin ii n u m a i u n s in g u r ele m e n t de da te i s -l r e u tiliz a i d u p n e c e s it i. G n d ii-v c u n m a re ora p re c u m P h ila d e lp h ia are s u te de c o d u ri potale. Pe m s u r ce s tu d ia i p ro b le m a , devine c la r c este necesar u n n o u tabel. In acest caz v e i crea u n n o u ta b e l p e n tru s ta t, ora i c o d u l p otal. Ia t care v a fi s tru c tu ra a cestuia: T a b e lu l S tate: S ta te ID (id e n tific a to ru l s ta tu lu i); M S ta te N am e (n um e le s ta tu lu i).

80

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE


T a b e lu l C ity: C ity ID (id e n tific a to ru l o ra u lu i);

DATE

M C ity N am e (n um e le o ra u lu i).
T a b e lu l C ity S ta te ZIP: ZIP Code (cod u l potal); C ity ID (id e n tific a to ru l o ra u lu i); S ta te ID (id e n tific a to ru l s ta tu lu i) . C u m s u n te i s ig u r de u n ic ita te a c o d u lu i p o ta l, l p u te i u tiliz a ca i cheie p rim a r . F ig u ra 4 .3 a ra t c u m apare m o d e lu l de date d u p a p lic a re a celei de a tre ia fo rm e n o rm a le ta b e lu lu i C u sto m e r. A a c u m v e i vedea cnd va fi d is c u ta t s u b ie c tu l d e n o rm a liz rii, adu ce re a ta b e lu lu i C u s to m e r la a tre ia fo rm n o rm a l s -a r p u te a s n u a d u c re z u lta te optim e.

FIGURA 4.3
Tabelele d in acest model de date s u n t aduse la a tre ia fo rm no rm al .

Ett V sv> Irswt Porm al Tcols Ship WMcw Hdp

[1 2
; m o Q f s5T [ V?

Lrat(
aCicwtFooi

N onr.al

zi

= * *S * - t : *C ]Hamal zezzz: ZK

3 " H i * 3* -

' < S ; -

n general, n u v e i tre ce m a i d e p a rte de a tre ia fo rm n o rm a l . A r tre b u i s n u u it a i n s c e x is t i a p a tra i a cincea fo rm n o rm a l . U tiliz a re a lo r este ra r , to tu i. n s c o p u l c o m p le titu d in ii se c iu n e a u rm to a re p re z in t pe s c u rt i aceste fo rm e n o rm a le .

CAPITOLUL

PROIECTAREA UNEI BAZE DE DATE.

81

A p atra i a cincea form norm al


In m a jo rita te a c a z u rilo r, n u v e i trece m a i d e pa rte de a tre ia fo rm n o rm a l . A s ta n u n s e a m n c povestea n o rm a liz rii s-a te rm in a t. E x is t i a p a tra i a c in c e a fo rm n o rm a l . A p a tr a fo rm n o rm a l iz o le a z r e la iile in d e p e n d e n te m u ltip le . D a r ce n s e a m n asta? S u n t o m u lim e de c u v in te , d a r c o n c e p tu l n u este gre u de neles. S ncepem cu a p a tra fo rm n o rm a l . Pe m s u r ce e fe c tu a i a n aliza, d e te rm in a i c a te g o riile de c lie n i care se nca d re a z n a n u m ite in te rv a le ale v o lu m u lu i de v n z ri. tiin d ceea ce tii despre n o rm a liz a re , d e c id e i s c re a i u n ta b e l de d e fin ire a in te rv a le lo r cu v o lu m e de v n z ri i ap o i s le g a i acest ta b e l de ta b e lu l C u s to m e r C ategoiy. Ia t n c o n tin u a re s tru c tu ra re v iz u it a tabelelo r afectate de aceast m o d ifica re : T a b e lu l C u s to m e r C ategoiy:

M C u s to m e r C a te g o iy ID - cheie p rim a r ;
C u s to m e r ID ;
E C a te g o iy ID ;

M Sales R ange ID (in d e n tific a to ru l in te r v a lu lu i de v nzri). T a b e lu l Sales R ange (in te rva le le v n z rilo r): Sales Range ID (identificatorul in te rv a lu lu i de vnzri) - cheie prim ar; Sales R ange D e s c rip tio n (descrierea in te r v a lu lu i de v nzri). Se p u n e n tre b a re a dac exist re la ii reale n tre tabelele C u sto m e r C ategory i Sales Range. Cel m a i p ro b a b il, r s p u n s u l este n u . C lie n tu l are v n z ri, d a r, in te rv a le le n care se n ca d re a z v n z rile s u n t asociate u n u i c lie n t ca n i te ca te g o rii. P e n tru a d u ce re a la a p a tra fo rm n o rm a l , c m p u l Sales Range ID tre b u ie s fie m u ta t n ta b e lu l C u sto m e r. n c a zu l ip o te tic c u re n t, tabelele C ustom er, C ontact, C ategoiy i C ustom er C ategoiy satisfac c o n d iiile celei de a p a tra fo rm e n o rm a le . C o n ce p tu l d in a cince a fo rm n o rm a l este ceva m a i greu de neles. A ceasta p re s u p u n e d iv iz a re a ta b e le lo r aduse la a p a tra fo rm n o rm a l n s c o p u l re d u c e rii n u m r u lu i de r n d u r i care tre b u ie in tro d u s e , m o d ific a te sa u terse n tim p u l d iv e rs e lo r o p e ra ii de a c tu a liz a re . Se p u n e n tre b a re a d ac este m a i u o a r n tre in e re a c to rv a r n d u r i de date n p lu s sa u n tre in e re a u n u i ta b e l s u p lim e n ta r. D ac c h ia r n u a ve i nevoie de u n n o u tabel, m a i b in e e v ita i crearea lu i. P e n tru a ilu s tr a aducerea la a cincea fo rm n o rm a l , vo m co n s id e ra e xem plu) u rm to r.

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

ATE

S adug m u n ta be l Salesperson (ageni de vnzri) n baza de date ipotetie la care lu c ra i. B aza de date poate n re g is tra categoriile asociate u n u i client. In p lu s ea n re g is tre a z i a g e n tu l de v n z ri c ru ia i-a fo s t a tr ib u it o a n u m it co m b in a ie de categorii de clie n i. U rm area este c tre b u ie s exisiste u n ta b e l c a te ^ r ii- d e - c lie ^ i- a g e n t- d e - v n z r i p e n tru a s u s in e asocierea n tre cele tr e i e n tit i. n tr u c t e x is t o re la ie re a l n tre ca te g o rii i a g e n ii de v n z ri, a cest n o u ta b e l se a fl n a p a tra fo rm n o rm a l . A c u m , s p re s u p u n e m c este p u s n a p lic a re o n o u re g u l : d u p ce u n u i a g ent de v n z ri i este a so c ia t o c o m b in a ie de c a te g o rii de c lie n i, acesta are acces la a lte c a te g o rii c u care c lie n tu l a r p u te a f i asociat. D ac u n c lie n t este a so c ia t c u tr e i a g e n i de v n z ri, de fiecare d a t c n d l- a i a so cia t c u o n o u categorie, tre b u ie s a d u g a i tre i n re g is tr ri n ta b e lu l catego!'i-d e c lie n i-a g e n t-d e -v n z ri - cte u n a p e n tru fiecare agent. Aceeai s itu a ie a r aprea n c a z u l n care c lie n tu l a r fi a so c ia t c u tre i ca te g o rii i a r in te rv e n i o m o d ific a re n p e rs o n a lu l de v n z ri. n a cest caz, v a tr e b u i s a c tu a liz a i tre i n re g is tr ri. A c in cea fo rm n o rm a l p re s u p u n e d iv iz a re a ta b e lu lu i p e n tru a re d u c e n u m r u l de n re g is tr ri. P e n tru a n d e p lin i a cest scop, v o r fi create tabelele C u s to m e r S alesperson i C u s to m e r C ategory. A ceast e x p lic a ie p re s u p u n e c ta b e lu l C u s to m e r C ategory n u e xista. A n a liz a ne conduce, m a i degrab, d ire c t la u n ta b e l C u s to m e r C a teg ory S alesperson. F ig u ra 4 .4 p re z in t m o d e lu l de date i n o ile e n tit i care se a il n a cince a fo rm n o rm a l .

FIG^RA 4.4
Tabelele d in acesf m odel de date s u n t n a cincea fo rm no rm al .

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

N orm alizarea: ctev a idei finale


Pe m s u r ce c tig a i e x p e rie n n d e z v o lta re a b a z e lo r de date, v e i descope ri c n o rm a liz a re a d evine u n proces m a i m u lt im p lic it d e c t u n u l e x p lic it. C u a lte c u v in te , n tim p ce o rg a n iz a i i m o d e la i in fo rm a iile d o b n d ite a n te rio r, v e i crea im e d ia t tabele care se a fl n a tre ia fo rm n o rm a l c t vre m e fo lo s ii ch ei s u ro g a t u n iv a lo ric e . D ac a ve i o re la ie m u li la m u li, aa c u m este c a z u l n tre c lie n i i c a te g o rii v a tre b u i s fa ce i u n pas n p lu s i s tre c e i la a p a tra fo rm n o rm a l . C t tim p ta b e lu l care jo a c ro l de jo n c iu n e - ta b e lu l C u sto m e r C ategory n acest caz -c o n in e n u m a i m in im u l de date necesare p e n tru a s u s in e re la ia m u li la m u li, n u va tre b u i s v fa c e i g r iji p e n tru trecerea la a p a tra fo rm n o rm a l , deoarece ta b e lu l respect d eja c o n d iiile necesare p e n tru aceast form . n fin a l, dac n u tre b u ie s v fa c e i g r iji p e n tru a p a tra fo rm n o rm a l , n u va tre b u i s v facei g r iji n ic i p e n tru a cincea fo rm n orm al. D in nou, ta b e lu l va respecta i c o n d iiile necesare p e n tru aceast fo rm . S -a r m a i p u te a s p u n e i c n u tre b u ie s v fa c e i g r iji p e n tru a p a tra i a cincea fo rm n o rm a l , deoarece ele n u s u n t a p lica te n general. C t vrem e a i a ju n s la a tre ia fo rm n o rm a l , ia r ana liza i d e s ig n u l bazei de date au fo st realizate cu m in u io z ita te , ansele d u m n e a v o a s tr de succes s u n t fo a rte m a ri!

Denorm alizarea dalelo r ce rost are s nclcm regulile?


S lu m n c o n s id e ra re tabelele p e n tru ora, s ta t i c o d u l-p o ta l-o ra -s ta t. Pe de o p a rte , aceste tab ele se a fl n a tre ia fo rm n o rm a l . Pe de a lt p a rte , de fiecare d a t c n d tre b u ie s s c rie i o in te ro g a re p e n tru a extrage date despre c lie n i, va tre b u i s r e u n ii date d in p a tru tabele. O ri de cte o ri n o rm a liz a i datele, v a tre b u i s p u n e i n b a la n d o u elem ente c o n tra d ic to rii: sc o p u l de a re d u ce re d u n d a n a d a te lo r i m u n c a s u p lim e n ta r pe care tre b u ie s o d e s f u ra i c n d va tre b u i s e x tra g e i in fo r m a ii d in baza de date. n m a jo rita te a c a z u rilo r, elem ente p re c u m o ra u l, s ta tu l i c o d u l po ta l s u n t p re lu a te re d u n d a n t n tabele. G n d ii-v la s itu a ia cnd n ce rca i s a tr ib u i i u n o ra u n u i c lie n t, d a r o ra u l n u a fo s t d e fin it n ta b e lu l cu orae. V a tr e b u i s a c tu a liz a i m a i n t i acest tabel. A c u m , ceea ce s -a r fi re a liz a t p r in tr - o s in g u r o peraie, n e ce sit d o u o p e ra ii. A s ta n u n se a m n c n u a r e x is ta u n m o tiv n te m e ia t d in p u n c tu l de vedere a l firm e i de a separa in fo rm a iile despre ora, s ta t i cod p o ta l n m a i m u lte tabele. n acest caz, are ro s t s n c lc a i re g u lile i s d e n o rm a liz a i baza de date. D a r este im p o rta n t s u r m a i re g u lile p e n tru d enorm alizare. n acelai tim p , este im p o r ta n t s re c u n o a te i s itu a iile n care este necesar s n c lc a i re g u lile . D a c n u le re s p e c ta i a s ig u ra i-v c a ve i u n m o tiv serios p e n tru a face a cest lu c ru . R educerea c o m p le x it ii in te ro g rilo r i m b u n t ire a p e rfo rm a n e lo r a ce sto ra s u n t m o tiv e n te m e ia te p e n tru a face acest lu c ru . F iin d c n c lc a re a re g u lilo r tre b u ie s fie o excepie i n u s itu a ia n o rm a l . De aceea dac o bservai c d e n o rm a liza i n co n tin u a re , facei o pauz p e n tru

84

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE

a v g n d i la ceea ce face i. E x is t p o s ib ilita te a s a p lic a i n m o d e ro n a t c o n c e p tu l d e n o rm a liz rii.

A plicarea norm alizrii recapitulare a bazei de date TEB i rafinarea designului su


D u p ce a i n e le s b in e n o rm a liz a re a , este m o m e n tu l s a p lic a i conceptele sale n p ro ie c tu l c u re n t, b aza de da te T im e E n tiy a n d B illin g (n o ta t TEB). P e n tru a re c a p itu la , a u fo s t d e ja id e n tific a te u rm to a re le tabele: Case (cazuri); C lie n t (clie n i); C lie n tC a se (c a z u ri-c lie n i); I I E m ployee (angajai); In vo ice (fa c tu ri); B T im e E n try D e ta il (d e ta lii p r iv in d tim p u l alocat). F ig u ra 4 .5 p re z in t re la iile d in tre e n tit i.

FIGURA 4.5
V ersiun ea 4 a m o d e lu lu i bazei de date TEB rep rezin t p rim a sch i com plet a m o d e lu lu i bazei de date.

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

Id en tificarea noilor coloane i tab ele


A a c u m b n u ii, p ro b a b il, v o r fi necesare n o i tabele. n a in te de a face acest pas, tabe lele e x is te n te tre b u ie c o m p le ta te c u coloane. D a r p n s tre ce m m a i d e p a rte , este im p o r ta n t s re in e m c n u a u fo s t e x a m in a te to a te aspectele p riv in d datele de p o nta j. M o d e lu l cu care lu c ra i co nine in fo rm a iile de baz necesare p e n tru a e x e m p lific a i a p re d a conceptele despre baze de date tra ta te n a ceast carte. S c o n s tru im a c u m m o d e lu l de date n c e p u t n c a p ito lu l 3.

Tabelele Em ployeeCase i ClientCase


D ac v m a i a m in tii, E m ployeeC ase i C lientC ase s u n t tabele de jo n c iu n e p e n tru re la ii m u l i la m u li. U n u i c lie n t i se p o t a tr ib u i m a i m u l i a n g a ja i. In p lu s , u n u i a n g a ja t i se p o t re p a rtiz a m a i m u lte ca zu ri. A ce la i tip de re la ie e x is t n tre c lie n i i ca z u ri. D a to rit n a tu r ii a cestor tabele, ele n u ne ce sit coloane s u p lim e n ta re .

Tabelul Employee
S ncep em c u ta b e lu l E m ployee. Ce fe l de in fo r m a ii tre b u ie stocate n el? S u n t necesare cel p u in u rm to a re le date: E m ployee ID (id e n tific a to ru l a n g a ja tu lu i); 1 F ir s t N am e (prenum ele); ' M id d le in iia l (in iia la c e lu i de-a l d o ilea num e); L a s t n am e (n um e le de fa m ilie); S o cia l S e c u rity N u m b e r ( n u m ru l a s ig u r rii sociale); S iA d d re s s 1 (adresa 1); 1 A d d re s s 2 (adresa 2); 3 C ity , S tate, ZIP Code (ora, s ta t, cod potal); B H om e P hone a n d W o rk E x te n s io n (te le fo n u l de acas i in te r io r u l de la s e rv ic iu ). n p lu s fa de cele d in lis ta de m a i sus, m a i s u n t necesare cteva in fo rm a ii. U n a d in tre ele este cla s ific a re a a n g a ja tu lu i. In firm a de a vo c a tu r e x ist p a rte n e ri, a s o c ia i, ju r i t i, secretare i p e rs o n a l a d m in is tra tiv . O ric n d v c o n fru n ta i c u u n e le m e n t de cla s ific a re , p u te i p a ria c va f i necesar u n n o u ta b e l. V a m in tii d is c u ia despre a tre ia fo rm n o rm a l ? C la sifica re a u n u i angaja t poate fi u n elem ent generic care n u depinde de cheia Em ployeelD. D ac v g n d ii la acest lu c ru , tre b u ie s a d u g a i u n n o u ta b e l E m p lo ye e C la s s ific a tio n , m p re u n c u ch e ia e x te rn E m p lo y e e C la s s ific a tio n ID n ta b e lu l E m ployee.

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

F irm e le de a v o c a tu r a u de o bicei m u lte d e p a rta m e n te . De e xe m p lu , a r p u te a avea u n u l s a u to a te d e p a rta m e n te le u rm to a re : im p o zite , a n titru s t, lit ig ii civ ile , p ro p rie ta te in te le c tu a l , a s ig u r ri i m u n ic ip a lita te , p e n tru a n u m i n u m a i cteva. Pare a i i u n n o u e le m e n t de cla sifica re , n u ? V e i adug a u n n o u ta b e l n baza de date, n u m it D e p a rtm e n t. n p lu s , v a tre b u i s a d u g a i n ta b e lu l E m ployee u n cm p n u m it D e p a rtm e n tID .

A / sfat\

S ne amintim c tabelul Employee are urmtoarea structura: H Employee ID (identificatorul angajatului) - cheie primar; Department ID (identificatorul departamentului) - cheie extern de la tabelul Department; Employee Class ID (identificatorul clasei angajatului) - cheie extern de la tabelul Employee Class; B First Name (prenumele); Middle Iniial (iniiala celui de-al doilea nume); M Last Name (numele de familie); Social Security Number (numrul asigurrii sociale); H Address 1 (adresa 1); I I Address 2 (adresa 2);

a City, State, ZIP Code (oraul, statul, codul potal);


Home Phone and Work Extension (telefonul de acas i interiorul de la serviciu);

M E-mail Address (adresa de e-mail).


n conjuncie cu noile chei externe, la modelul de date au fost adugate urmtoarele tabele:

M Department;
EmployeeClass; n afar de cmpul DepartmentID, tabelul Department mai conine i un cmp numit Description (descriere).

Tabelul Cilent
T a b e lu l C lie n t este d e s tu l de s im p lu . n el tre b u ie stocate u rm to a re le elem ente de date:

M C lie n tID (id e n tific a to ru l c lie n tu lu i) - cheie p rim a r ;


C lie n t ype (tip u l c lie n tu lu i) - firm s a u p e rso a n fizic; N F ir s t N am e (prenum ele); M id d le I n iia l (in iia la c e lu i d e -a l d o ilea n u m e );

CA PITO LUL < PROIECTAREA UNEI BAZE DE DATE.


L a s t N am e (n um ele de fa m ilie); S O rg a n iz a tio n N am e (n um e le o rg a niza ie i); A d d re ss 1 (adresa 1); S A d d re s s 2 (adresa 2); C ity , S tate, ZIP Code (o ra u l, s ta tu l, c o d u l potal); Phone (te le fo n u l); E -m a il A d d re ss (adresa de e -m a il).

87

T re b u ie d is c u ta te cteva elem ente. M a i n t i, p e n tru t ip u lu i c lie n tu lu i este necesar u n a lt ta b e l p e n tru a s toca d ife rite le t ip u r i de c lie n i pe care firm a i re p re z in t ? n a cest caz. r s p u n s u l este negativ. n tim p ce v d e s f u ra i analiza, a i a fla t c e x is t n u m a i d o u tip u r i de c lie n i: firm e i persoane fizice. A tu n c i fiecare n re g is tra re a u n u i c lie n t va avea u n c m p n u m it C lie n t ype (tip u l c lie n tu lu i) care v a c o n in e fie lite ra B de la b u s in e s s , fie lite ra I de la in d iv id u a l . n tr - u n astfel de caz, n u e xist u n b e n e fic iu p ra c tic d in crearea u n u i a lt tab el. D a r co n ta cte le ? N u este n ic i o n d o ia l c n c a z u l c lie n ilo r care s u n t firm e va tre b u i s o fe rii conta cte . n tre b a re a u rm to a re este dac p o t e x is ta co n ta cte m u ltip le p e n tru fiecare c lie n t. Cel m a i p ro b a b il, r s p u n s u l este da. V e i avea nevoie de in fo rm a ii de c o n ta c t despre m a i m u li d in tre a n g a ja ii firm e i c lie n t. n co n clu zie , dac v g n d ii c v a tre b u i s d e fin ii u n ta b e l d e n u m it C o n ta c t ( in fo rm a ii de c o n ta c t), s u n te i pe calea cea b u n !

Structura tabelului Contact este simpl:

B ContactID (identificatorul contactului) - cheie primar;


First Name (prenumele); Middle Iniial (iniiala celui de-al doilea nume); Last Name (numele de familie); Title (titlul); Phone (telefonul); Extension (interiorul); * E-mail Address (adresa de e-mail). Ce legtur are cmpul Title cu necesitatea unui nou tabel pentru cutare? Titlurile posturilor sunt elemente generice. In acelai timp, ele pot varia de la firm la firm, lat de ce trebuie s decidei dac vei stoca informaiile ntr-un tabel sau le vei lega datele cu un alt tabel i o cheie extern. Avantajul de a avea titluri predefinite stocate ntr-un tabel este consistena datelor. De exemplu, ai putea controla variaiile de tipul CEO sau C.E.O. n acelai timp, probabil c vor exista numai cteva titluri. Cnd v n dreptai atenia spre construirea interfeei cu utilizatorul, vi se vor prezenta

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

nite tehnici pentru respectarea standardelor care vor permite variaiile. In concluzie puteti s creai sau s nu creai un tabel separat cu titlul postului. Dac nu vei crea un tabel separat, titlul va fi stocat n nregistrarea contactului.

Tabelul Case
T a b e lu l Case stocheaz in fo rm a iile de baz despre u n caz, in c lu s iv tit lu l, ju d e c to ru l, tr ib u n a lu l, d e p a rta m e n tu l, d a ta nceperii, d a ta p ro c e s u lu i, d a ta n e le g e rii i o b s e rv a ii. E ste necesar u n ta b e l se p a ra t p e n tru ju d e c to r i trib u n a l? C el m a i p ro b a b il, r s p u n s u l este da. F irm a dorete s tie ce c a z u ri a u m a i fo s t p re zid a te de u n a n u m it ju d e c to r. n p lu s , firm a va d o ri s tie d e ta lii p r iv in d c a z u rile care a u fo s t ju d e c a te n a n u m ite trib u n a le . D ac lu m ca e x e m p lu o ra u l P h ila d e lp h ia , acolo e x ist tr ib u n a l de sta t, m u n ic ip a l i fed eral. n aceast cla s ific a re e x is t m u lte tip u r i de trib u n a le n care p oate fi ju d e c a t u n caz. B in e n e le s, firm a dorete s tie ce c a z u ri s u n t ju d e c a te n ce trib u n a le .

Cazurile judecate de tribunale au un anumit calendar. n realitate, vom asocia tabelului Case un tabel copil pentru a ine evidena diferitelor elemente care depind de timp, cum sunt depoziiile, moiunile de dinainte de proces, rspunsurile, audierile n faa judectorului, discuiile pentru nelegeri i aa mai departe. Tabelul copil se va comporta ca un me mento, pentru a anuna utilizatorii despre apropierea unor termene sau prezentri n faa instanei. Deoarece aceste elemente nu sunt direct nrudite cu contorizarea timpului i cu factura, ele vor fi ignorate.
T a b e lu l Case are u rm to a re a s tru c tu r : CaseID (id e n tific a to ru l c a z u lu i) - cheie p rim a r ; D e p a rtm e n tID (id e n tific a to ru l d e p a rta m e n tu lu i) - cheie s tr in de la ta b e lu l D e p a rtm e n t; H C o u rtID (id e n tific a to ru l trib u n a lu lu i) - cheie s tr in de la ta b e lu l C ourt; J u d g e ID (id e n tific a to ru l ju d e c to ru lu i) - cheie s tr in de la ta b e lu l Ju d ge ; i i D o c k e tn u m b e r (n u m ru l p ro c e s u lu i pe rol); T itle (titlu l); N otes (observaii); S ta rt D a te (d a ta n cep erii); T r ia l D a te (data p ro c e s u lu i); S e ttle m e n t D ate (data n e le g e rii). Fiecare caz tre b u ie s fie a t r ib u it u n u i d e p a rta m e n t. De exe m p lu , u n litig iu p r iv in d u n p a te n t a r tre b u i s fie a t r ib u it d e p a rta m e n tu lu i P ro p rie ta te

C A P IT O L U L

PROIECTAREA UNEI BAZE DE DATE.

In te le c tu a l . n ce fe l a ju t acest lu c ru ? C nd v in e m o m e n tu l de a a tr ib u i a n g a ja ilo r u n caz, n u v e i d o ri s fa c e i n u m a i acest lu c ru . M a i c u r n d v e ti d o ri s a t r ib u ii c a z u l n u m a i u n o r a n g a ja i care fac p a rte d in d e p a rta m e n tu l respectiv. A a c u m tii, u n a n g a ja t tre b u ie s a p a rin u n u i d e p a rta m e n t. A a c u m v e i vedea m a i t rz iu , org a n iza re a d a te lo r n acest m od v p e rm ite s f ilt r a i lis ta a n g a ja ilo r. A s tfe l s u n t e vita te g reelile, ca de e x e m p lu a tr ib u ir e a u n u i l i t i g i u p r iv in d p r o p r ie ta te a in te le c tu a l u n u i a v o c a t s p e c ia liz a t n im p o z ite . M a i t rz iu n aceast ca rte v o m face o in tro d u c e re n re g u lile d in tr - o fir m i in te g rita te a d a te lo r. A a c u m v e i vedea i c u m p ro b a b il a i v z u t deja, u n d esig n s o lid a l b azei de date m b u n t e te c a p a c ita te a de a n t r i re g u lile firm e i i in te g rita te a d a telor. N o u l ta b e l C o u rt c o n in e u n cm p n u m it C o u rtID (id e n tific a to ru l t r ib u n a lu lu i) i u n u l n u m it D e s c rip tio n (descriere). T a b e lu l J u d g e c o n in e u n cm p n u m it J u d g e ID (id e n tific a to ru l ju d e c to ru lu i), p re c u m i u n c m p n u m it C o u rtID (id e n tific a to ru l tr ib u n a lu lu i) p e n tru a re a liza le g tu ra c u ta b e lu l C o u rt. In p lu s , s u n t stocate: p re n u m e le , in iia la c e lu i d e -a l d o ile a n u m e , n u m e le de fa m ilie i o b s e rv a iile despre ju d e c to r. C h ia r dac n u v d a i seam a, ap are a s tfe l o p ro b le m in te re s a n t . T a b e lu l Case are le g tu ri i cu ta b e lu l C o u rt i c u ta b e lu l Judge. T a b e lu l Ju d g e co n in e o le g tu r cu ta b e lu l C o u rt, d e ci ju d e c to ru lu i i se a trib u ie u n trib u n a l. D ac ju d e c to ru l are deja o le g tu r c u t r ib u n a lu l, de ce este nevoie de cte o le g tu r la ta b e lu l Case i de la ta b e lu l C o u rt i de la ta b e lu l Ju d g e ? P e n tru c este fo a rte p o s ib il ca a ltu i ju d e c to r s -i fie re p a rtiz a t c a z u l d u m n e a v o a s tr . De asem enea, aceste le g tu ri m u ltip le s u n t u tile n re a liza re a ra p o a rte lo r. T a b e lu l T im e E n tr y D e ta il S re v e n im a c u m la ta b e lu l T im e E n tr y D e ta il. In t im p u l a n a liz e i, a i d e te rm in a t d eja c o n re g is tra re d in a cest ta b e l va face le g tu ra c u o n re g is tra re d in ta b e lu l In vo ice la m o m e n tu l fa c tu r rii. Fiecare n re g is tra re d in ta b e lu l T im e E n try D e ta il tre b u ie s a ib o le g tu r c u o c o m b in a ie a n g a ja t-c a z -c lie n t. N u u it a i c u n caz poate im p lic a m a i m u li c lie n i. De aceea, n u este s u fic ie n t s re a liz a i d o a r o le g tu r la u n caz. P roblem a a le g e rii c lie n ilo r c ro ra l i se v o r n to c m i fa c tu r i va i i fo a rte d ific il . Ce date m a i tre b u ie stocate n ta b e lu l T im e E n try D e ta il? D ac a i co m p le ta t v re o d a t o foaie de p o n ta j, p ro b a b il g h ic ii care s u n t cele m a i im p o rta n te u n fo rm a ii. E le m e n te p re c u m a c tiv ita te a , d a ta , n u m r u l de ore i ta r ifu l o ra r s u n t u n b u n p u n c t de p o rn ire . In a cest c o n te x t, t a r if u l o ra r este cel d in fa c tu ra n to c m it c lie n tu lu i, n u cel p l t it a n g a ja ilo r. P lata a n g a ja ilo r depete s c o p u l acestei baze de date. M a i e x is t cteva p roblem e p riv in d ta r ifu l o ra r, deci s ne o p rim p u in p e n tru a le d is c u ta . C u m v a p l ti u n c lie n t p e n tru s e rv ic iile care i se ofer? D e p in d e de n a tu ra a c tiv it ilo r . De e x e m p lu , p e n tr u a c t iv it i a d m in is tr a tiv e , c u m a r fi fo to co p ie re a d o c u m e n te lo r, c lie n tu l a r p u te a p l ti 50 $ pe or. D ac la u n caz lu c re a z u n ju r is t , a tu n c i c lie n tu l a r p u te a fi ta x a t c u 100 $ pe or, ia r dac u n a vo ca t re p re z in t c lie n tu l n in s ta n , c lie n tu l a r p u te a fi ta x a t cu

90

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE

1500 $ pe or. n p reze nt, in fo rm a iile p r iv in d p re u rile o b i n u ite p e n tru diversele a c tiv it i n u s u n t stocate n baza de date. n ta b e lu l T im e E n tiy D e ta il este s to c a t u n t a r if de fa c tu ra re . P e n tru a a s ig u ra c o n s is te n a i a c u ra te e a d a te lo r, ra ta o b i n u it tre b u ie s fie s to c a t undeva . n tre b a re a este un de. Ce a i zice de ta b e lu l Em ployee? U n a n g a ja t poate avea m a i m u lte t ip u r i de a c tiv it i? R s p u n s u l este da. U n avocat p le d a n t poate d is c u ta la te le fo n cu c lie n tu l, p oate aprea n in s ta n s a u p oate lu a o depoziie. Fiecare d in tre aceste a c tiv it i a re d ife rite ta rife orare. Pe b aza acestei c e rin e , ta r ifu l o b i n u it dep ind e de a c tiv ita te a desfurat. i a tu n c i, categoria de a c tiv ita te este sto c a t n p re z e n t n baza de date? R s p u n s u l este negativ. De aceea, este n e c e s a r u n n o u ta b e l, n u m it W o rk C a te g o ry (ca te g o ria a c tiv it ii). D e ta liile d in n o u l ta b e l W o rk C a te g o ry v o r fi d is c u ta te pe s c u rt, da r, n a in te de a tre ce m a i departe, v e d e i c u m p ro c e s u l de a n a liz a u n u i ta b e l poate duce la crea re a de n o i c m p u ri i tabele? T a b e lu l T im e E n tiy D e ta il are s tr u c tu r a u rm to a re : T im e E n tiy D e ta ilID (id e n tific a to ru l d e ta liilo r de p o n ta j) - cheie p rim a r ;

M In v o ic e ID (id e n tific a to ru l fa c tu rii) - cheie s tr in de la ta b e lu l Invoice;


C aseID (id e n tific a to ru l c a z u lu i) - cheie s tr in de la ta b e lu l Case; E m p lo ye e ID (id e n tific a to ru l a n g a ja tu lu i) - cheie s tr in de la ta b e lu l Em ployee; C lie n tID (id e n tific a to ru l c lie n tu lu i) - cheie s tr in de la ta b e lu l C lie n t; 0 D e s c rip tio n (descriere);
If H o u rs (n u m ru l de ore);

Rate ( ta r ifu l orar); H W o rk D a te (data d e s f u r rii a c tiv it ii) ; E W o rk C ateg ory (categoria a c tiv it ii) . n a c e s t m o m e n t se p u n e n tr e b a r e a d a c n r e g is tr r ile d in ta b e lu l T im e E n tiy D e ta il v o r in d ic a spre n re g is tr ri n ru d ite d in ta b e lu l W o rkC a te g o ry sa u d a c in fo r m a iile v o r f i p re lu a te n n re g is tr rile d in ta b e lu l T im e E n t iy D e t a il. n a c e s t caz, tr e b u ie ca n r e g is tr r ile d in ta b e lu l T im e E n tiy D e ta il s fie independente de m o d ific rile d in ta b e lu l W orkC ategory. De exem plu, ce s -a r n t m p la dac, o a n u m it a c tiv ita te este fa c tu ra t cu 100 $ pe or, ia r peste tre i s p t m n i p re u l a c e lu ia i se rviciu crete la 120 $ pe or? D a c e xist o le g tu r , la v izu a liza re a d e ta liilo r n re g is tr rii d in ta b e lu l T im e E n tiy D e ta il v e i vedea n o u l tarif. Acest scenariu n u este fu n cio n a l. M a i m u lt ta r ifu l d in ta b e lu l W o rk C a te g o iy este u n u l o b i n u it. T a rifu l poate fi m o d ific a t d u p in tro d u c e re a n n re g is tra re a d in ta b e lu l T im e E n tiy D e ta il. D in a ce st m o tiv , ta r if u l a c tu a l tre b u ie s to c a t n n re g is tr rile ta b e lu lu i T im e E n tiy D e ta il. n tr u c t descrierea categoriei a c tiv it ii se poate m o d ifica , i aceasta v a fi p re lu a t n n re g is tr rile ta b e lu lu i T im e E n tiy D e ta il. C u m v e i t i c a fo s t fa c t u r a t o a n u m it n r e g is tr a r e d in ta b e lu l T im e E n tiy D e ta il? Poate v g n d ii c este ne ce sar u n c m p p e n tru a in d ic a acest lu c r u . A ic i in te rv in e c m p u l In vo ice ID . E l are ro l d u b lu . M a i n t i, la

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

91

crearea u n e i n o i n re g is tr ri n ta b e lu l T im e E n tiy D e ta il, acest c m p are v a lo a re a im p lic it 0. A p o i, d u p fa c tu ra re , n o u l c m p In v o ic e ID este c o m p le ta t c u o valoare. De aceea, valoa re a 0 d in c m p u l InvoiceID n ta b e lu l T im e E n tiy D e ta il a ra t c n u a fo s t fa c tu ra t s e rv ic iu l respectiv. A s tfe l v e i ti dac a fo s t s a u n u n to c m it fa c tu ra . N o u l ta b e l W o rk C a te g o iy are s tr u c tu r a u rm to a re : W o rk C a te g o ry lD (id e n tific a to ru l c a te go riei a c tiv it ii) - cheie p rim a r ; D e s c rip tio n (descriere); D e fa u ltR a te ( ta rifu l o b i n u it). D ac p r iv i i u ltim a v e rs iu n e a m o d e lu lu i bazei de date d in fig u ra 4 .6, n u v e i vedea o re la ie care s im p lic e ta b e lu l W o rk C a te g o iy. n acest s c e n a riu , ta b e lu l W o rk C a te g o iy are ro l de a b lo n (template). C u alte cu v in te , d u p u tiliz a re a d a te lo r d in tr - o n re g is tra re a ta b e lu lu i W o rk C a te g o iy p e n tru c o m p le ta re a d a te lo r n ta b e lu l T im e E n try D e ta il, n u m a i este necesar o re fe rin la ta b e lu l W o rk C a te g o iy . N ecesitatea c re rii i n t r ir ii re la iilo r este fo a rte im p o rta n t . A ceste concepte s u n t d is c u ta te n c a p ito lu l 7. E ste d e s tu l s s p u n e m , d eocam dat, c n a n u m ite c a z u ri, u n e le ta b e le e xist p e n tru a o fe ri u n p u n c t de p o rn ire o p e ra iilo r de in tro d u c e re a d a te lo r n a lte tabele. N u u ita i, d u p ce u n u tiliz a to r alege u n tip de a c tiv ita te , ta r ifu l acesteia se p oate s c h im b a .

Tabelul Invoice
In fin a l, d a r n u m a i p u in im p o rta n t, vo m d is c u ta despre ta b e lu l Invoice. A cesta este fo a rte s im p lu i are s tru c tu ra : B In v o ic e ID (id e n tific a to ru l fa c tu rii) - cheie p rim a r ; B C lie n tID (id e n tific a to ru l c lie n tu lu i) - cheie e xtern de la ta b e lu l C lient; Invoce N u m b e r (n u m ru l fa c tu rii); In v o ic e D a te (data fa c tu rii). n acest c o n te x t, ta b e lu l Invo ice n u este d e c t u n adeziv p e n tru a u n i m a i m u lte n re g is tr ri d in ta b e lu l T im e E n try D e ta il. E x is t u n elem ent d in ta b e lu l Invoice care 1face u n ic - c m p u l Invoice N u m b e r. n acest context, n u m ru l u n e i fa c tu r i este p a r ia l s ta tic i p a r ia l secvenial. De e xe m p lu fa c tu ra 150 d in a n u l 2 0 0 1 a r p u te a avea n u m r u l 2 0 0 1 -1 5 0 . n aceast s itu a ie are p re fix u l s ta tic ia r re s tu l este secvenial. C u m este p ro d u s n u m ru l u n e i fa c tu ri? n tr u c t ne a fl m n c n faza de m odelare, n u ne v o m p re o cu p a de acest aspect.

R ecapitulare a modelului bazei de d ate


C ategoric, este m o m e n tu l s lu a i o p auz! F ig u ra 4 .6 p re z in t u ltim a v e rs iu n e a m o d e lu lu i b azei de d a te T im e E n tiy a n d B illin g (TEB). A cesta este fo a rte d ife r it i m a i e x p a n s iv de c t cel re a liz a t n c a p ito lu l 3. Se sp u n e c o im a g in e va lo re a z m a i m u lt de c t o m ie de cu v in te . F ig u ra 4 .6 ofer o

92

PARTEA A ll-A PRO IECTAREA P R IM E I BAZE

DATE

b u n ne leg e re a fu n c iilo r pe care b aza de date T E B le v a s u p o rta . E ste im p o rta n t s o b s e rv a i c n u e x is t n c o baz de date fizic. n re a lita te , v e i p re ze n ta acest m o d e l u tiliz a to r ilo r p r im a r i a i s is te m u lu i p e n tru a v a s ig u ra c a u fo s t n d e p lin ite ce rin e le lo r. D in p e rspectiva b u g e tu lu i, acesta este m o m e n tu l n care d o r ii s se siza i o rice eventua le d is fu n c io n a lit i. D ac am co m p a ra o a p lic a ie c u o c o n s tru c ie , a tu n c i baza de date a r fi fu n d a ia . D a c fu n d a ia este u bred , c o n s tru c ia se v a p r b u i. N u v e i p u te a ncepe c o n s tru c ia n a in te de a tu r n a fu n d a ia i n a in te ca ea s se fi u s c a t. D a c v g r b ii, n u v a te a p t lu c r u r i b u n e . In p ro c e s u l de dezvoltare, a cesta este m o m e n tu l n care tre b u ie s v a s ig u ra i c fu n d a ia a p lic a ie i d u m n e a v o a s tr s-a u sca t.

FIGURA 4.6
U ltim a versiun e a bazei de date Tim e E n try and B illin g a fost com pletat cu n o i coloane i tabele i a pa rcu rs procesul de no rm alizare .

t ^ ' .... 1
.- , J I "liCj SfO V { ClientIO (FK'j (E( jCaseID fFK Q E) j

]juge UlldgilD Fi'slName

JCouit f )CouHID Oescnpiion Oescnptcn

EmpiayeeOase jCaselO (FK( f lEmployeelD fFK) (Ej JE)______ -----

iw^wo j : z ................................ ..... .

1 -

|VVokCaIe*Jiy

Descuotion

|EM Dte: &6/2C0111220 M l Database lo support Time Entty and Ik Furetons

fimployeiGass

fEnuilovee'ClasiCi i 1 ' U'esc.riptiwi

Target DB: Accex Filename. IdbDBSvsd

|R ev. 5

Creator John V. Petersen

PUNEI NTREBRI l IMPLICAI UTILIZATORII!


O metod prin care putei stabili c proiectul dumneavoastr este solid este s punei ntrebri bazei de date i s stabilii dac v poate oferi rspunsuri. De exemplu, punei ntrebarea Se poate determina care avocai lucreaz la un anumit caz?, apoi vedei dac baza de date poate rspunde la aceast ntrebare. In acest caz, poate. In analiza designului, vedei o legtur ntre cazuri i angajai. Mai mult angajaii sunt grupai pe categorii n tabelul EmployeeClass. Evident, dac punei o ntrebare la care baza de date nu poate rspunde, designul acesteia nu este complet.

CAPITOLUL 4 PROIECTAREA UNEI BAZE DE DATE.

93

Aa cum bnuii, probabil, observarea acestor lipsuri acum, n faza de modelare, este mult economicoas. Existena lipsurilor poate fi determinat prin instinct, nu numai logic. In mod sigur, tiina nu poate rspunde tuturor ntrebrilor. Dac nu tii prea bine ce ntrebri s punei, aflai ce doresc s tie utilizatorii sistemului. Nu uitai s solicitai ntrebri de la utilizatorii aflai pe toate treptele ierarhice. V mai amintii discuia noastr anterioar despre nevoile tactice i nevoile strategice ale unei firme? Utilizatorii vor aprecia n mod sigur faptul c au fost implicai n acest proces. Cu ct ai implicat mai muli utilizatori, cu att este mai probabil ca acetia s preia i s accepte sistemul.

Rezum at
In acest c a p ito l, a i fo s t in tro d u s n concepetele n o rm a liz rii i ale im p a c tu lu i acesteia a s u p ra d e s ig n u lu i b azei de date. In m a jo rita te a s itu a iilo r, o baz de d a te tre b u ie s se afle n u m a i n a tre ia fo rm n o rm a l . n u n e le s itu a ii, to tu i, este n e cesa r a d u ce re a la a p a tra i a cincea fo rm n o rm a l . Pe m s u r ce p a rc u rg e i p ro c e s u l de n o rm a liz a re , v e i p u te a s ta b ili ce coloane tre b u ie in c lu s e n ce tabele. E ste aproape s ig u r c e fo rtu rile d u m n e a v o a s tr de n o rm a liza re v v o r conduce la crearea u n o r tabele la care n u v g n dise r i n e fo rtu rile in iia le de p ro ie c ta re . A cest c a p ito l i cel p re ce d e n t a u s c h ia t o h a rt i u n c a d ru p e n tru e fe ctua re a a n a liz e i i p ro ie c t rii bazei de date. A n a liz a i p ro ie c ta re a bazei de date p o t f i com plexe, deci s c o p u l acestor d o u c a p ito le a fo s t de a s u b lin ia s im p lita te a i b u n u l s im . R e c a p itu l n d , ia t c a d ru l pe care l-a m creat: A d u n a i in fo r m a ii despre c e rin e le pe care tre b u ie s le n d e p lin e a sc baza de date, fo lo s in d in te rv iu rile , d o cu m e n te le firm e i i sistem ele existen te. D in aceste in fo rm a ii, id e n tific a i aspectele im p o rta n te pe care tre b u ie s le u rm re a s c b aza d u m n e a v o a s tr de date. A ceste aspecte v o r lu a fo rm a ta b e le lo r. D u p id e n tific a re a ta b e le lo r im p o rta n te , id e n tific a i re la iile d in tre ele. D in a cest proces p o t re z u lta n o i tabele. I I D u p ce a i p u s la p u n c t elem entele p rim a re , a ve i u n c a d ru pe care p u te i c o n s tru i. U tiliz a re a n o rm a liz rii i a in fo rm a iilo r a d u n a te a n te rio r, este p o s ib il s v c o n d u c la id e n tific a re a de n o i c m p u ri de d ate i tabele. n fin a l. n tre b a ti m o d e lu l bazei de date ceea ce firm a dorete s afle. A ce s t p roces d e te rm in c o m p le titu d in e a m o d e lu lu i. D ac m o d e lu l n u p oate r s p u n d e la o n tre b a re , v a tre b u i s re p e ta i u n ii sa u to i p a ii pre ce d en i. A ic i se n c h e ie s tu d iu l a n a liz a i i p ro ie c t rii u n e i baze de date n sens fo r m a l. A c u m v o m trece la aspecte m u lt m a i ta n g ib ile : c o n s tru ire a i p u n e re a n fu n c iu n e a b azei de date. C a p ito lu l 5 v a s is t n p ro c e s u l c o n s tr u ir ii n Access a b azei de d a te T im e E n tiy a n d B illin g (TEB).

5
a .

CONSTRUIREA BAZEI DE DATE IN ACCESS


In acest capitol:
G en erarea a u to m a t a bazei de date d in m o d e lu l TE B ; O s c u rt re c a p itu la re a u t ilit a r u lu i Access D atabase D es ig ne r; C rearea bazei de date fo lo s in d u t ilit a r u l Access D atabase D esigner; R e z u m a t

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

A c u m , d u p ce a i n c h e ia t m o d e lu l bazei de date, este m o m e n tu l s c re a i baza de d a te fizic . E x is t d o u m etode p e n tru a crea o baz de date. C u p rim a m e tod , v e i crea a u to m a t baza de d ate d in d ia g ra m a V is io . A d o u a m e to d p re s u p u n e crearea a u to m a t a t u t u r o r ta b e le lo r, c m p u rilo r i re la iilo r. C h ia r d a c alegei m e to d a a u to m a t , to t va tre b u i s c o n fig u ra i m a n u a l cteva a trib u te de c m p u rilo r. A cesta este m o tiv u l p e n tru care acest c a p ito l se v a c o n c e n tra a s u p ra m e to d e i m a n u a le . C a p ito lu l va ncepe c u m e to d a m a n u a l , p e n tru c a z u l n care alegei aceast cale. F ig u ra 5.1 ilu s tre a z p u n c tu l d u m n e a v o a s tr de p o rn ire , m o d e lu l bazei de date T im e E n try a n d B illin g (TEB), pe care a i crea t-o n c a p ito lu l 4.

FIGURA 5.1
M od elul bazei de date T im e E n try and B illin g .
* FirstName Middlelnitial LasIName Oigani 3lir.t'jarri AJdre 52 jCiientCase xyl-ClientCaseD ; JCIientlD (FK) (B ; jCaselD (FK) (E) ! j Court "CourtID O Description StartDe TnalDaU Ssuisir.er.!' Department (FK CourtID (FK( ) Judge (FK) (IE( I j Eir] 1 ploy eCase .----- --------- : ----- . jWorkCategay J j.WorkCateqoi t Placrri ' l EmcloveeCaseD' 1 Casel > ( jEmployeeID (FkJ ( ' 7

Date G/260M1 \22XAM Tm E ntry * ^ Oaljts !^ Database to support Time Entry and B> ng Functions

EmpoyeeCfes

EmcioyeeClassO i Descriptor DsfauHRaie

Targst DB: .Ac Filename tdbDBSvsd

|Rev: 5

Creator. John . Pstsisan C w ncany.M ar Ln* rftvirt. kt

G enerarea autom at a bazei de date din modelul TEB


In c a p ito lu l 3 a m p re z e n ta t o in tro d u c e re n a p lic a ia w iz a rd C reate D a ta base d in V is io . A ce asta citete o d ia g ra m c u re la ii n tre e n tit i d in V is io i a d a u g tab ele n tr-o baz de d ate e x is te n t sau creeaz o n o u baz de date. P e n tru d e ta lii despre fu n c io n a re a fu n c iilo r d in V is io , o p rii-v p u in i re v e n ii la c a p ito lu l 3. n p a ii u rm to ri vo m re c a p itu la pe s c u rt m o d u l de u tiliz a re a a p lic a ie i w iz a rd . D u p ce d e s c h id e i m o d e lu l bazei de date n V isio , d in m e n iu l Tools, alegei D atabase D esignX C reate D atabase W iz a rd . F ig u ra 5.2 p re z in t caseta de d ia lo g a a p lic a ie i w iz a rd .

CAPITOLUL CONSTRUIREA BAZEI E DATE N ACCES


FIGURA 5.2
E c ra n u l de deschidere al a p lica ie i w izard Create Database.
Therea*e D a *a bse Wizardcreate* able lor Microsoft Ac ? . database baed on a entity relationship Vagram,

97

* )able an ei.ing database . Create a new database The wiiard waks only with shapes: trom the IQEFIXot ' * tenc. heJp drawing IDEF1X or ' enli*y idatioruhip diagrams, chooie Template Help ) the Viio Help menu,

11

Next >

Cancel

F ig u ra 5.3 p re z in t p a s u l 2 a l a p lic a ie i, care v cere s s p e c ific a i n u m e le fi ie r u lu i c u d ia g ra m e d in V is io (.vsd) pe care l v e i u tiliz a p e n tru crearea bazei de date.

FIGURA 5.3
Pasul 2 a l a p lica ie i w izard v so licit num ele fi ie ru lu i d in V isio pe care l ve i folosi.
t\b oUe begimei guide databaie 0 *\dbdb5.vsd Bjowse I Cck Next to e.the weaid * . ytyjf diagram la eriOfi. *wirard locaie: error, youl be 5 * ' *ea he weard and fix* .hem Potential :include ; Uncornecled relatiorohip En*i hour primary derived

| |r

Cancel

n tre p a ii 2 i 3, V is io v a c it i fi ie ru l. n p a s u l 3 v e i in d ic a p ro g ra m u lu i V is io lo c a ia n care v a fi c re a t n o u l fi ie r c u baza de date. n acest caz, d e n u m ii fi ie r u l T E B .M D B (vedei fig u ra 5.4).

FIGURA 5.4
Pasul 3 al a p lica ie i v so licit n um ele bazei de date care va fi creat.
6 name and : | D:VboMe Begtnn *Guiae \|| Ch

II you open an a:ling dalaba e. *he vveard add he

Hsxt>

Cancel

La u ltim u l pas, este a fia t lis ta ta b e le lo r care v o r fi create. D u p ce exe cu ta i clic pe b u to n u l F in is h , v a fi cre a t n o u a baz de date. F ig u ra 5 .5 p re z in t acest pas.

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE


FIGURA 5.5
La u ltim u l pas este a fia t lis ta tab ele lor care v o r f i create.
Cfck Fmisfi to have ihe Deal Databan Wirard sale o mocHy the fdowing table:

DATE

zi
Mwe rJo | < 6ad<: Friiir, | Lj-icd J

D u p crearea bazei de date, executai d u b lu c lic pe p icto g ra m a d in fig u ra 5.6. V a fi la n s a t p ro g ra m u l A ccess i v a fi d e schis n o u a baz de date T im e E n try a n d B illin g .

FIGURA 5.6
P ictogram a n o ii baz de date, a fia t n W indow s E xplorer.
'A * j_J D**/ Beyrro Io C '*-*' II\0stef 5

C h a p te r

*ko: r'. O o.uftyrf.'s r. nv>

II oble^lijlptelOW*^)

F ig u ra 5.7 p re z in t s is te m u l bazei de date T im e E n try a n d B illin g n Access. D ia g ra m a r e la iilo r a ra t la n c e p u t fo a rte d ezordon at. n cteva m in u te , dac m u ta i t itlu r ile , p u te i face p u in cu r e n ie . A c u m , d u p ce a i sc p a t de dezordine, toa te re la iile specificate n d ia gram a d in V isio se afl n a ctu a la baz de date.

C A P IT O L U L 5 CONSTRUIREA BAZEI DE DATE N ACCES


FIGURA 5.7
R elaiile d e fin ite n V isio s u n t create n fi ie ru l cu baza de date d in Access.

od

5 dp

ObKK . C>NtotJffbyusngvdzrd 0 b y

|
* Tt N otes rtDV.i

rl
| ;


pefoiujn ihours *

IIM n D 1 , )

FustN m 0-

.;'

.:

Pe de o p a rte , aceast m e to d de a crea baze de date n Access este fo a rte ra p id i e fic ie n t . Pe de a lt p a rte , n u v e i nelege c u m s u n t create de fa p t aceste elem ente dac n u c u n o a te i p ro ce su l. Pn la u rm , aceasta este m e to d a p r in care v e i crea v e rs iu n ile in iia le ale ba ze lo r d u m n e a v o a s tr de date. n tr u c t aceast ca rte p re z in t d e ta liile c o n s tru irii i lu c r u lu i cu bazele de date, re s tu l c a p ito lu lu i se v a c o n c e n tra pe m etodele m a n u a le de creare a ta b e le lo r, co lo a n e lo r i re la iilo r.

O scurt recapitulare a programului Access Database Designer


n c a p ito lu l 2, a m f c u t o in tro d u c e re n Access D atabase D esigner. n acest c a p ito l v e i lu c r a cu acest p ro g ra m . n a in te de a trece m a i departe, s a n a liz m p u in s ita u ia , u tiliz n d ca e x e m p lu baza de date N o rth w in d T ra d e rs. F ig u ra 5 .8 p re z in t p rin c ip a le le co m p o n e n te d in Access D atabase D esigner. S e c iu n ile u rm to a re s chie az i d e s c riu pe s c u rt com ponen tele p rin c ip a le ale d e s ig n u lu i b azei de date c u care v e i lu c r a n acest c a p ito l.

100

PARTEA A I I - A - PRO IECTAREA P R IM E I BAZE


Butonul Open Object Butonul Delete Object , Table Designer

DATE

Butonul Design Object

FIGURA
In te rfa a M icro so ft Access Database Design.

jete. ShowM e

s p * 'k e > s g n ffiN ;


Objects *Create abiA f MM.m'W Creata tablebyusingwizard Create tableby entering data Categories Cus c ross Errployees Order Deta Orders Products Shppers Suppkeis

- iO l *I F>-c ContartNam e ContactTe Adiess City PostsCode Country P hone Descnpticri Uriquefiye-charactei code based on customer nam e.

;a r a riY f l a n e
Street or pos-ofKe box. province. nurfeer r<i*jes country code P ho Phorerurfcer nckjdes country ccoe

R e ^ o n .

I lookup I . FwIdS Form at InputMask Caption Def * V elue VadaConRiJe Vakdston Te Requed AJbwZeroLength Indexed

HULL ~L::.y<w y f ' i <: KtasfciK. h ijir n PressF; h: hp full narres,

Ves (fio C (cates)

k'-ixiir'i jri *tew. F6- Switchpan

Butonul New Database Object Tipuri de obiecte din

Fereastra principal a bazei de date i de date Butonul View Options

--- 1

Atributele cmpului

Fereastra principal a bazei de date


n fig u ra 5.8 s u n t afiate d o u ferestre. n st ng a se a fl fe re a stra p rin c ip a l a bazei de date, care ofer acces la to a te obiectele d in tr-o baz de date. n de a p ta se a fl u t ilit a r u l de p ro ie c ta re a ta b e le lo r (table designei), despre care v o m d is c u ta m a i t rz iu n acest c a p ito l. F e re a stra p rin c ip a l a bazei de date este i ea d iv iz a t n d o u p a n o u ri v e rtic a le . P a n o u l d in st n g a co n in e d ife rite obiecte i v p e rm ite s s e le c ta i obiecte de d ife rite tip u r i. L is ta in c lu d e tabele, in te ro g ri, fo rm u la re , ra p o a rte , p a g in i, m a c ro in s tru c iu n i i m o d u le . C nd s e le c ta i u n a lt o b ie c t n p a n o u l d in stnga, c o n in u tu l p a n o u lu i d in d re a p ta se m o d ific p e n tru a p re z e n ta obiectele de tip u l respectiv. A cest c a p ito l se va c o n c e n tra pe p r im u l tip de obiecte, tabelele. C elelalte tip u r i de obiecte v o r fi d is c u ta te n ca p ito le le u rm to a re . n p a rte a de su s a fe re s tre i p rin c ip a le a bazei de date se a fl o b a r de in s tru m e n te a lc tu it d in tre i s e c iu n i. B a ra de o p e ra ii (operations) fu n c io neaz n c o n te x tu l o b ie c tu lu i c u re n t selectat. D ac p riv im spre d re a p ta , p rim a s e c iu n e a b a re i de in s tru m e n te are tre i o p iu n i: O pen (deschidere), D esign (proiectare) i N ew (obiect nou).

CAPtTC&UL CONSTRUIREA BAZEI DE DATE N ACCES

101

E fe c tu l b u to n u lu i O pen este de ru la re (lansare) a o b ie c tu lu i selectat. n ca zu l u n u i ta b e l, aceasta n s e a m n n a vig a re a p r in datele ace stu ia . F ig u ra 5.9 p re z in t datele d in ta b e lu l N o rth w in d C u sto m ers.

FIGURA 5.9
B u to n u l Open d in fereastra p rin c ip a l a bazei de date rulea z ob ie ctu l selectat.

td* W W insei Farm s 5 00

.
[ [ [ n w.-7w ' C rea* > bv n irj Caeoofies cdr* hpper ,

G roups

" ] c u s io iiig iio } ~ ~Conlac1 H.inie flfa s t Alfteds Futterlrste Mana Anders _ AMATR Ana Tiujillo Emparedados y helados AnaI TrujiHo _ * ANTON Antonio Moreno Taquera Antonio Moreno _ * AROUT Aiound the Hom Thomss Hardy _ BERGS Berglund nsbbkp -Chrstina Brgl'jnd _ BLAUS Blsuer See Delikae sen Hanna Moos BLONP Blcndel pe * _ Fiednque( _ * BOUD Boildo Comidas pieparads Martin $ _ * BONAP Bon app' Laurerics Lebihar ' BQTTM ! Elisbeth Lincoln BSBEV B* _ Eeveiages 'Victona Ashivorth _ CACTU Comida pao llevar Patncio Simpson _ CENTC comercial Macteurna Fianeisca Ch<ng CHOPS _ '. < Chine YngWafiy COMMI ',umrcio Mmeiro Pedro Aiorac _ 0 *. Coi ct dtfl Ho dina Crown Ig^KSSaSje a R B a ^ _ * ORACC ' <. <' s*en 0 <' | ^ | | OlJM' iN Janme Labrune * - : E^lerrConnectioi Ann D<*on * Handei " ^ * ' ^^^ ' * _',-' ... $. 0

u El

Ssle Owner Siles Repr Order . ^' .' Sale? Repr ;Marketing M Owner Owner Accounting Sales Repr Sales Agent Owner Sales Assoc Sale Repre Order Admin ' Sale Agent Sales Msnac Mcndl f/terketingA Ana Cru Accounting

. ; . ; ; . II

' '

u*ue l.vt^.*argTcode

orcuctw I

B u to n u l D esign plaseaz o b ie c tu l c u re n t s e le cta t n m o d u l D esign. E x e c u ta re a u n u i d u b lu c lic pe o b ie c t n p a n o u l d in d re a p ta are acelai efect. F ig u ra 5 .8 p re z in t ta b e lu l c u c lie n i n m o d u l design. C om ponentele u t ilit a r u lu i T a b le D e s ig n e r s u n t d is c u ta te pe la rg n c a p ito lu l 2. B u to n u l N ew creeaz u n o b ie c t n o u , pe baza t ip u lu i s e lecta t n p a n o u l d in s t n g a al fe re s tre i p rin c ip a le a b azei de date. D ac e x e c u ta i c lic pe b u to n u l New, este a fi a t caseta de d ia lo g N ew Table. F ig u ra 5 .1 0 p re z in t d ife rite le o p iu n i d is p o n ib ile a tu n c i cnd c re a i u n tabel. A a c u m v e i vedea, Access are m u lte a p lic a ii w iza rd , care v ghideaz pas cu pa s p e n tru n d e p lin ire a m u lto r s a rc in i u zuale. A d o u a s e c iu n e a fe re s tre i p rin c ip a le a bazei de d ate c o n in e o s in g u r o p iu n e , care terge o b ie c tu l c u re n t selectat. A tre ia s e c iu n e c o n in e p a tru o p iu n i, care controleaz a spe ctu l p a n o u lu i d in d re a p ta a l ferestrei p rin c ip a le a bazei de date. Cele p a tru o p iu n i s u n t: Large Icons (pictogram e m a ri), S m a ll Ic o n s (p icto g ra m e m ic i), L is t (list) i D e ta ils (detalii). F ig u ra 5.11 p re z in t n iv e lu l de d e ta lie re a o b ie c te lo r pe care le p u te i vedea.

102

PARTEA A 11-A - PRO IECTAREA P R IM E I BAZE

DATE

FIGURA 5.10
Caseta de dialog New Table p re z in t m ai m u lte m etode de creare a u n u i tabel.

FIGURA 5.11
D e ta liile de vizualizare p e n tru flecare obiect a l bazei de date co n in descrierea, data u ltim e i m o d ific ri, data cre rii i tip u l.
.

iq l *l

2 {Create table in[> e n view J C reatetawe by usingWard35

S [CroatetiMe byer<errj data


Cateaies 1 @ S E/rt/ OrdwD atais 1 Crders 0 S3 Prodjcts 0 U ppers J Sufws C a ** ci NoithwWproduct. 11/30/19964:53:0... 7/22/200! 8:29:03P M Custom ers' nam es, adresses, and pboneruitors. Endoyees' *, ie , and perscr.9 rformatun. 11)301996 :52:5... Dfais onproduc, ouanoti, andpicesfor eachorder inthe Crdtrs table, 11/30/19984:53:1... 8/20/203 2:03:20P M C ustom er nam e, order date. a n e * fretft chaigefor eadiorder. P M *xt rr, Si5, price, m3ir * n tod . 7/23/2001 12:34:3... 5ht*rs'rwnesandcfonenuni. 8/ 0/P M012:03:20 S uppers'narnts, a >*l l sse5, phor* rurtiers, andhperr*sto hom e pages./24/19 5:592... 9/13/1995 10 9/13/199510:51 9/15/199510:5 9/13/199510:51 9/13/159510:51 9/13/199510:51 9/13/199510:51 9/13/199510:51

; f i t :

....................

'

<-v _ .____ v _ __ _ _ _ - .. ' ; * '. : i

Fereastra Designer
S ne n d re p t m a c u m a te n ia a s u p ra celei de a d o u a fere stre p rezentate n fig u ra 5.8, fereastra Designer. n Access exist m a i m u lte u tilita re de design. A cestea s u n t d e stin a te tabelelo r, in te ro g rilo r, fo rm u la re lo r, ra p o a rte lo r, p a g in ilo r w eb, m a c ro in s tru c iu n ilo r i m o d u le lo r. U tilita r u l T ab le D esigner a fo s t p re z e n ta t n c a p ito lu l 2 i va re prezenta s u b ie c tu l a ce stu i ca p ito l. V o m pre z e n ta i alte u tilita r e cnd v o m d is c u ta despre tip u r ile respective de obiecte. A c u m , d u p ce c u n o a te m n m a re s itu a ia , s tre ce m la crearea bazei de date T im e E n try a n d B illin g .

CAPITOLUL

CONSTRUIREA BAZEI E ATE N ACCES

1 03

C rearea bazei de date folosind utilitarul Design


A ceast s e c iu n e v v a e x p lic a pas c u pas c u m s c re a i tabelele, clauele i re la iile . C a p ito lu l 2 v -a p re z e n ta t in s tru m e n te le de p ro ie c ta re a b a ze lo r de date d in Access. A c u m v e i vedea i v e i e xp e rim e n ta fu n c io n a re a acestor in s tru m e n te n t r - 0 s itu a ie real. P rocesul va incepe cu crearea u n e i baze de date f r c o n in u t. D u p crearea ei, v e i crea tabelele. n fiecare tabel, ve i d e fin i coloanele, a trib u te le fie c re i coloane i cheia p rim a r . D u p ce c o n s tru ii baza de date, v e i d e fin i re la iile d in tre tabele. Ia r d u p n d e p lin ire a a ce sto r s a rc in i, v e i avea la d is p o z iie elem entele eseniale ale bazei de date T im e E n tr y a n d B illin g . A tu n c i v e i f i g a ta de a trece la p a s u l u rm to r, p u n e re a n fu n c iu n e a b azei de date.

C rearea bazei de date


C rearea bazei de d ate este cel m a i u o r d in tre pai. D in m e n iu l File, se le cta i New. Se d eschide caseta de d ia lo g New, care c o n in e d o u ta b -u ri. G eneral i D a taba se s (vedei fig u ra 5.12). n ta b -u l G eneral, p u te i crea o b az de date f r c o n in u t. A cesta v ofer i p o s ib ilita te a de a crea o baz de date p o rn in d de la u n te m p la te (ablon) - v e d e i fig u ra 5 .1 3 . C u c t v e i dezvolta m a i m u lte baze de date, v e i d escope ri c acestea se m p a rt n fu n c ie de d ife rite le t ip u r i de a c tiv it i ale firm e i. Bazele de date d in tr-o a n u m it categorie a u m u lte n s u ir i com une.

FIGURA 5.12
T a b -u l G eneral d in caseta de dialog New v ofer p o sib ilita te a de a crea o baz de date ia r c o n in u t.

104

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE

FIGURA 5.13
T a b -u l Databases d in caseta de dialog New v ofer po sib ilita te a de a crea o baz de date pe baza u n u i m odel (template) pr d finit.

' ' D in - G eneral, s e le c ta i p ic to g ra m a D atabase i s e le c ta i b u to n u l OK. V a fi caseta de dialog F ile New D atabase, specificnd lo c a ia i nu m e le n o ii baze de d a te (vedei fig u ra 5.14).
FIGURA 5.14
2vsh: ; [ Chspter 5 ? *

Caseta de dialog File New Database ofer p o sib ilita te a de a specifica lo ca ia i num ele n o u lu i fi ie r cu baza de date.

;X

Cj

!
Fie name: jtsb.rndb

0
Csncsl

mmmmm type Microsoft *) ' .mdb(

n caseta de d ia lo g F ile N ew D atabase, d e n u m ii baza de date T E B .M D B i e x e c u ta i c lic pe b u to n u l C reate. F ig u ra 5 .15 p re z in t baza de date f r c o n in u t pe care to c m a i a i creat-o.
FIGURA 5.15
ia r c o n in u t, p re g tit p e n tru crearea n o ilo r tabele, coloane i re la ii.

CAPITOLUL

CONSTRUIREA BAZEI E DATE N ACCES

105

Poate ai observat c atunci cnd de$chidei baza de date TEB, reprezentat de fiierul teb.mdb, apare fiierul teb.ldb. Figura 5.16 prezint acest fiier. El faciliteaz accesul mai multor utilizatori (accesul mult^tilizator) la baza de date. Dei nu suntei familiarizat cu conceptul de multiutilizator, merit s v oprii acum puin pentru a atinge subiectul. Gndii-v la cazul n care un utilizator lucreaz cu datele, iar altul dorete s le editeze. Cum rezolv baza de date aceast problem? Aici intervine fiierul Idb. El conine informaii despre nregistrrile blocate i utilizatorii care le pot debloca. Pentru mai multe informaii despre fiierele Idb, consultai Microsoft Developer NetWork Knowledge Base (MSDN KB). Dac nu cunoatei MSDN i baza sa de informaii, categoric va trebui s devin o parte important a arsenalului dumneavoastr. Site-ul web MSDN poate fi accesat la h t t p : / /m sdn .m ic r o s o f t . com. Baza de informaii poate fi accesat la h t t p : / / s e a r c h . s u p p o rt .m ic r o s o f t . c o m /k b /. Identificatorul specific al articolului despre fiierele Idb este Q208778.

Fiierul cu baza de date din Access

FIGURA
Problemele de u tiliz a re m u ltip l s u n t a d m in is tra te cu u n fi ie r de blocare, care are acelai nu m e ca si baza de date.

D u p cre area b azei de date, este m o m e n tu l s c re a i tabelele i coloanele p e n tru b aza de d a te T im e E n tr y a n d B illin g .

106

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

C rearea tab elelo r i coloanelor


C rearea ta b e le lo r i co lo a n e lo r n Access este fo a rte s im p l . P rim u l pas este de a crea u n n o u ta be l. P e n tru aceasta, d u p ca a i s electat tip u l de obiecte T ables n p a n o u l d in stn ga , a p s a i b u to n u l N ew d in b a ra de in s tru m e n te a fe re s tre i p rin c ip a le a b azei de date. R evedei fig u ra 5.8 p e n tru d e ta lii despre fe re a s tra p rin c ip a l a bazei de date. D u p ce e xe cu ta i clic pe b u to n u l New, v e i n t ln i caseta de d ia lo g N ew T able (revedei fig u ra 5.10). n acest caz, v e i cre a u n ta b e l n v iz u a liz a re a D esign. M a i m u lt ca s ig u r, v e i u tiliz a v iz u a liz a re a D e sig n a proape to t tim p u l. A v e i la d is p o z iie m a i m u ie tabele noi.

V izualizarea D atasheet
D in tre to a te o p iu n ile aceasta este cea m a i p u in u til . D ac v place s c re a i tabelele i, n acelai tim p , s in tro d u c e i datele, aceast a b o rd a re v v a plcea. V e i ncepe c u ceva a s e m n to r u n e i fo i de date, c o n in n d 10 coloane. P u te i re d e n u m i c m p u rile d ac e x e c u ta i c lic c u b u to n u l d re p t al m o u s e -u lu i pe n u m e le c m p u lu i i s c rie i n o u l n u m e . N u a ve i c o n tro lu l a s u p ra a lto r a trib u te ale c m p u rilo r, c u m a r fi t ip u l de date, m a sc de in tra re , descriere i aa m a i departe. P e ntru a obine c o n tro lu l a s u p ra acestor elem ente, tre b u ie s tre c e i n v iz u a liz a re a Design.

Vederea Design
V izu a liza re a Design, preze nta t n fig u ra 5.8, este m etoda preferat de pro ie c ta re a ta b e le lo r. V iz u a liz a re a este d iv iz a t n d o u p ri. P artea de su s este fo rm a t d in in fo rm a iile de baz despre cm p. Partea de jo s co n in e a trib u te le d e ta lia te despre c m p u l s e le cta t c u re n t n p a rte a de su s a v iz u a liz rii.

Table Wizard
D ac v a m in tii, p u te i crea o baz de date p o rn in d de la u n m odel pre d e fin it. C h ia r dac n u aleg ei aceast cale p e n tru crearea bazei de date, to t a ve i acces la abloan ele ta b e le lo r p r in a p lic a ia T able W iza rd . A p lic a iile w iz a rd s u n t u tile , d a r to t m a i este nevoie s n v a i i s n e le g e i fu n c io n a re a a ce sto r elem ente de baz. Pe m s u r ce c tig a i m a i m u lt e xp e rie n , v e i descop e ri c a p lic a iile w iz a rd lu n g e s c tim p u l de efectuare a u n e i o p e ra ii. A a c u m v e i vedea fo a rte repede, la fel ca to a te re g u lile , n ic i aceasta p riv in d a p lic a iile w iz a rd n u este a b s o lu t .

A plicaia w izard Im port Table


A ce a st a p lic a ie v ghid ea z p r in p ro c e s u l de p re lu a re a d e fin iie i u n u i ta b e l d in tr - o s u rs e xte rn , c u m a r fi o a lt baz de date d in Access sa u o a lt baz de da te o rie n ta t o b ie c t i u tiliz a re a sa ca baz p e n tru u n n o u ta b e l n baza d u m n e a v o a s tr de date d in Access. n acest sce n a riu , a p lic a ia w iz a rd realizea z u o r ceea ce a ltfe l a r fi o s a rc in com plex. n a s tfe l de ca z u ri, a p lic a iile w iz a rd se dovedesc fo a rte u tile .

C A P IT O L U L 5 CONSTRUIREA BAZEI DE DATE N ACCES

107

A p licaia w izard Link Table


A p lic a ia w iz a rd L in k T able este asem ntoare cu T able W izard, c u o s in g u r excepie n o ta b il . D e fin iia ta b e lu lu i pe care l c re a i n Access face le g tu ra c u o s u rs e x te rn de date. De fa p t, aceast s u rs e x te rn stocheaz datele. C o n tin u n d lu c r u l la n o u l ta b e l, n caseta de d ia lo g N ew ta b le , se le c ta i v iz u a liz a re a D esig n i e x e c u ta i c lic pe b u to n u l OK. V a a p rea p ro ie c tu l u n u i ta b e l lib e r, n care p u te i crea c m p u ri (vedei fig u ra 5.17).

FIGURA 5 .17
Ia t cu m apare p ro ie c tu l u n u l tabel n o u creat.

FwMwSni

I"

ataTp

S .... ... "---7


< [ Lookjp I

A f l j netne t- ud ta har 3 is !, ii<uinj spaces. ies for h ! t tr fsc nanei.

N u p u te i sa lva u n ta b e l dac n u a i c re a t cel p u in u n cm p. O rice ta b e l tre b u ie s a ib o cheie p rim a r . P rim u l c m p pe care l v e i crea v a fi cheia p rim a r . R eve nin d la m o d e lu l b azei de date, c m p u l cheie p rim a r p e n tru ta b e lu l C lie n t se n u m e te C lie n tID . F ig u ra 5 .1 8 p re z in t c m p u l n o u creat. C rearea u n u i c m p este u oa r . U rm a i p a ii: 1. S c rie i n u m e le c m p u lu i n co lo a n a F ie ld N am e (ClientID). 2. A tr ib u i i u n c m p de date n coloana D a ta Type (AutoNumber). 3. S c rie i o d escriere n co lo a n a D e s c rip tio n (P rim a ry Key fie ld fo r C lie n t ta b le - n u este o b lig a to riu ca te x tu l s c ris n aceast coloan s fie n lim b a englez, n. tr.). T ip u l de d a te AutoNumber este u tiliz a t p e n tru cheile p rim a re . Access in e e vid e n a u r m to r u lu i id e n tific a to r s e cve n ia l care va fi u tiliz a t p e n tru n o ile n re g is tr ri. M a i este ceva de f c u t. T re b u ie s d e se m n a i c m p u l C lie n tID ca fiin d cheie p rim a r . P e n tru a sta, este s u fic ie n t s a p s a i b u to n u l P rim a ry Key, p re z e n ta t n fig u ra 5.18. O bse va i in d ic a to ru l P rim a iy Key, care apare n s t n g a n u m e lu i c m p u lu i.

PARTEA A ll-A P R O I E C T A R E A P R IM E I BAZE


Indicatorul Primary Key Butonul Primary Key Tipul de date AutoNumber FIGURA 5.18
n a in te da a salva u n tabel, tre b u ie s crea i cel p u in u n cm p i s d e fin ii cheia p rim a r .

DATE

N sunt permise valori duplicate

D u p ce a i s e ta t ch e ia p rim a r , este b in e s s a lv a i im e d ia t ta b e lu l. P u te i tace ace st lu c r u e x e c u t n d c lic pe b u to n u l Save de pe b a ra p rin c ip a l de in s tru m e n te d in Access sau d in m e n iu l Pile p u te i selecta $ave. rice m etod a i alege, v a a p re a caseta de dia lo g Save A s (vedei fig u ra 5.19). n acest caz, d e n u m ii ta b e lu l c lie n t i a p s a i b u to n u l OK. F ig u ra 5 .2 0 p re z in t n o u l ta b e l C lie n t, care a c u m face p a rte d in baza de d a te T E B .

1 . ^ Indiciul

ar dac dorii s modificai numele noului obiect? Modificarea numelor obiectelor este uoar. Prima regul este c obiectul poate fi de$chis cnd 1 modificai numele. Cnd suntei gata, selectai obiectul n fereastra principal a bazei de date i executai clic cu butonul drept al mouse-ului. Figura 5.21 prezint meniul dependent de context care apare (numit meniu contextual, meniu instantaneu sau meniu pop-up). Selectai Rename. Cursorul va fi poziionat ia nceputul numelui, oferindu-v posibilitatea de a scrie un nume nou. Altfel, putei selecta obiectul n fereastra principal a bazei de date, apoi s executai un clic pe numele su.

C A P IT O L U L
FIGURA 5.19
Caseta de dialog Save As v pe rm ite s spe cifica i num ele n o u lu i obiect a l bazei de date.
S a ve A s TeWiName: jc ie n tj

CONSTRUIREA BAZEI E ATE N ACCES


; : . , Cancel j J jJ S i

109

Noul tabel al bazei de dae, denumit Client

FIGURA 5.20
D u p salvarea u n u i obiect al bazei de date,' acesta apare im e d ia t n fereastra p rin c ip a l a bazei de date.

i n se rt 00

I; ;< .' '


a j Cre h Design vww O by uang 0 by eotwnj

Fl N am e

Datatype

^ *
Form at

--- - -

;
Increment Y )NoDup*aei( | : . - < * - ycu'iie bet fisfc< . Freu toi h t cr.ccooicr-i.

>.

' ' - - - '

Numele tabelului este prezentat n fereastra de proiectare

D u p ce a i n v a t s c re a i u n cm p, ceea ce v e i face este re p e ta re a p ro c e s u lu i. T a b e lu l 5.1 p re z in t d e ta liile specifice fie c ru i cm p.

Tabelul 5.1
N um e

Informaii despre cmpurile tabelului Client


T ip A u to N u m b e r Num ber Text Text D im e n s iu n e LI* LI 30 D escriere Cheie p rim a r a ta b e lu lu i C lie n t C heie s tr in de la ta b e lu l C lie n tT y p e P renum ele In iia la c e lu i de -a l do ile a n u m e

ClientID ClientType FirstName Middlelnitial

110

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE DE DATE

Tabelul 5.1
N um e LastName

(continuare)
T ip T e xt T e xt Text T e xt T e xt T e xt T e xt T e xt T e xt D im e n s iu n e 30 50 50 50 30 2 9 10 50 D escriere N um ele de fa m ilie N um ele o rg a n iz a ie i A d re sa 1 A d re sa 2 O ra u l S ta tu l C o d u l p o ta l N u m ru l de te le fo n A d re sa de e -m a il

Organi za t i onName Address1 Address2 City State ZipCode Phone Email

*LI este prescurtarea de la Long Integer.


FIGURA 5.21
Dac exe cutai clic dreapta pe orice obiect al bazei de date, v a aprea u n m e n iu dependent de context, co n in n d o p iu n i corespunztoare o b ie ctu lu i.
X
Create table in Design view Create table by jsmg : srd Create table by entering data

Q p e n
M Design View Q l Pm Preview Cu 3 opy ...Save As ...Export Sen dd ta roup ...Create Shortcut f dete Rename ) ?Eroperties To

Cnd introducei informaii despre cmpuri, vei vedea un set de atribute ale acestora (de exemplu, dac este obligatorie completarea unui cmp sau dac poate fi lsat necompletat). Nu v preocupai acum de setrile pentru aceste proprietti suplimentare. In capitolele urmtoare vom realiza o prezentare introductiv a acestor proprietti si atunci veti nva care este rolul lor. n acest moment, v veti ocupa numai de proprietile: Nume; Tip; Descriere; Dimensiune.
D u p cre area c m p u rilo r m e n io n a te a n te rio r, c o m p a ra i ta b e lu l d u m n e a v o a s tr c u cel d in fig u ra 5.22.

CAPITOLUL 5 CONSTRUIREA BAZEI DE DATE N ACCES


F IG U R A 5 .2 2 T a b e lu l C lie n t d in baza de date Tim e E n try and B illin g .

111

]J2 J E E 2 2 2 2 H E < fc 6 ira ii _


CteType.......... Fftffume Mdieln L 5 H m e C 9ne fcorilfne PrtMryFaidior Tabie Ftegn'eyto Cr* T >peTable

Oigtmatnri H arre Mi 1

^ * ....
. * pCo P honeWjrtiei E-miAddwi

LxutMa* C VddaxnRUe ! A l o w 2moU n g th tftd8d U nKodeCnor & M d J n n e:: : s a * ajqt oo:: t s , (. ' *

P e n tru a nelege m o d u l de c o n s tru ire a re la iilo r, va tre b u i s a ve i la d is p o z iie cel p u in d o u ta b e le . F o lo s in d in fo rm a iile d in ta b e lu l 5.2, c o n s tr u ii ta b e lu l C o n ta ct. P riv ii fig u ra 5.23 p e n tru a v e rific a ceea ce a i re a liza t. N u u it a i s e fe c tu a i p a ii u rm to ri: 1. E x e c u ta i c lic pe b u to n u l N ew p e n tru a crea u n ta b e l n o u . 2. C re a i c m p u l care va i i cheie p rim a r . 3. A t r ib u i i ch e ia p rim a r c m p u lu i pe care l- a i cre a t la p a s u l 2. 4. S a lv a i ta b e lu l n ba za de date.

Tabelul 5.2
N um e

Informaii despre cmpurile tabelului Contact


T ip A u to n u m b e r Num ber Text Text T e xt Text T e xt Text Text D im e n s iu n e LI LI 30 1 30 30 10 5 50 D escriere C heie p rim a r p e n tru ta b e lu l C lie n t Cheie s tr in de la ta b e lu l C lie n t P renum ele In iia la c e lu i de -a l do ile a n u m e N um ele de fa m ilie T itlu l N u m ru l de te le fo n In te rio ru l A d re sa de e -m a il

ContactID ClientID FirstName Middlelnitial LastName Title Phone Extension Email

112

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

n acest m o m e n t, p oate d o r ii s c re a i re s tu l bazei de date T E B . S tru c tu ra d e ta lia t a fie c ru i ta b e l este p re z e n ta t n ane xa A. o a lt v a ria n t este s a te p ta i p n la s f r itu l a c e s tu i c a p ito l, deoarece s e c iu n e a u rm to a re , a l c re i s u b ie c t s u n t re la iile , u tiliz e a z n u m a i tabelele C lie n t i C o n ta ct.

C rearea relaiilo r
A v n d la d isp o z iie d o u tabele, p u te i c o n s tru i o re la ie n tre tabelele C lie n t i C o n ta c t. D a c re ve d e i m o d e lu l, v e i observa c e x ist o re la ie u n u la m u l i (1:M ) n tre cele d o u tabele. A ceasta n s e a m n c p e n tru u n c lie n t p o t e x is ta m a i m u lte c o ntacte. D u p ce a i a fla t care s u n t c a ra c te ris tic ile re la ie i, p a s u l u r m to r este crearea re la ie i n baza de date d in Access. D in m e n iu l Tools, s e le c ta i R e la tio n s h ip s . F ig u ra 5 .2 4 p re z in t a p lic a ia de c o n s tru c ie a r e la iilo r i caseta de d ia lo g S h o w T able care apare. D ac n u apare a u to m a t caseta de d ia log S how Table, s e le ctai S how T able d in m e n iu l R e la tio n s h ip s .

CONSTRUIREA BAZEI DE DATE N ACCES


FIGURA 5.24
A p lic a ia de c o n s tru ire a re la iilo r n bazele de date d in Access.

113

TaUei jouertss

:...San..J

n caseta de d ia lo g S h o w T a b le d in fig u ra 5.24, a s ig u ra i-v c s u n t selectate tabelele C lie n t i C ontact. P u te i selecta o o p iu n e d in tr-o lis t in n d apsat ta sta S h ift n tim p ce e xe cu a ta i clic cu m o u s e -u l pe o p iune . D u p selectarea ta b e le lo r, e x e c u ta i c lic pe b u to n u l A dd . A p lic a ia de c o n s tru ire a r e la iilo r este a se m n to a re celei d in fig u ra 5.25.

F IG U R A 5 .2 5 A p lic a ia de c o n s tru ire a re la iilo r d in bazele de date n Access, care con ine tabelele C lie n t i C ontact.

114

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

D u p crearea ce lo r d o u tabele, p u te i executa clic pe b u to n u l Close a l case te i de d ia lo g S ho w Table. E x is t d o u m etode de creare a re la iilo r. P rim a im p lic tra gerea c m p u lu i cheie d in ta b e lu l p rin te i plasarea sa n c m p u l cheie s tr in d in ta b e lu l copil. n acest caz, c m p u l C lie n tID d in ta b e lu l C lie n t va fi tra s i p la s a t n c m p u l C lie n tID d in ta b e lu l C ontact. O p e ra ia tragere i p la sa re n u este greu de efectuat. T re b u ie d o a r s selectai c m p u l p rin te i, n tim p ce in e i a p sat b u to n u l st ng a l m o u s e -u lu i, s tra g e i p o in te ru l m o u s e -u lu i n c m p u l cheie s tr in a l ta b e lu lu i copil, ia r apoi s e lib e ra i b u to n u l m o u s e -u lu i. F ig u ra 5 .2 6 p re z in t caseta de d ialog E d it R e la tio n sh ip s, care apare d u p ce e lib e ra i b u to n u l m o u s e -u lu i.
F IG U R A 5 .2 6 Caseta de dialog E d it R e latio nsh ip s v pe rm ite s spe cifica i ca ra cte risticile u n e i re la ii n tre dou tabele.
Iabte/Quwy:

2 1 *1

f'.-.a '
r | ClientID

Eelated Table/Query:

! ~

Create Caocd ftftype

| I

r f~ Enforce Referential intgtf f i - ....

OeatcNew. |

O w ' T d i ' ; ? . ? ' ? - r


v i'.'. ! ' ' P Relationship Type: ; One-To-M-yiy

A d o u a m e to d p r in care p u te i crea o re la ie este de a selecta o p iu n e a E d it R e la tio n s h ip s d in m e n iu l R e la tio n s h ip . V a fi a fi a t aceeai caset de d ia log, E d it R e la tio n sh ip s, pe care a i v zu t-o i n fig u ra 5.26. S in g u ra d ife re n este c a c u m caseta de dia lo g este lib e r . V a tre b u i s e x e c u ta i c lic pe b u to n u l C reate N ow p e n tru a a fi a caseta de dia lo g Create N ew R e la tio n s h ip s (vedei fig u ra 5.27). D u p ce c o m p le ta i in fo rm a iile necesare n caseta de d ia lo g New R e la tio n s h ip s ca n fig u ra 5 .2 6 , caseta de d ia lo g E d it R e la tio n s h ip s va a r ta ca n fig u ra 5 .2 7 . C aseta de d ia lo g C reate N ew R e la tio n s h ip s n lo c u ie te o p e ra ia de tra g e re i p la s a re c u m o u s e -u l. O b se rv a i c, n fig u ra 5 .2 7 , caseta de d ia lo g E d it R e la tio n s h ip s tie c re la ia cre a t este u n u la m u li. n to td e a u n a c n d c m p u l a fla t n p a rte a d re a p t a u n e i r e la ii n u este cheie p rim a r , re la ia va fi c o n s id e ra t ca fiin d u n u la m u li. P asul u rm to r este de a b ifa caseta de v a lid a re E nforce R eferenial In te g rity . D e ta liile p r iv in d in te g rita te a re fe re n ia l (re fe re n ia l in te g rity - RI) v o r c o n s titu i s u b ie c tu l c a p ito lu lu i 7. P e n tru a v o fe ri o prezentare ra p id a in te g ri t ii re fe re n ia le , g n d ii-v la ea ca la o in d ic a ie d a t bazei de date p e n tru a d m in is tra re a r e la iilo r d in tre tabele. De exe m p lu , este p e rm is tergerea u n u i c lie n t f r a terge m a i n t i co n ta cte le sale? S au, dac te rg e i u n c o n ta c t p e n tru u n c lie n t, tre b u ie terse a u to m a t to a te co n ta cte le p e n tru c lie n tu l re sp e ctiv? U ltim u l aspe ct este c u n o s c u t su b n u m e le de te rg e ri n cascad. Toate aceste exem ple ilu stre a z in te g rita te a referenial, d a r subiec t u l are m a i m u lte faete. A ce ast s c u rt p rezentare a r tre b u i s v ofere o b u n ne le ge re p re lim in a r a m o tiv e lo r p e n tru care bazele de date s u p o rt in te g rita te a re fe re n ia l .

CAPITOLUL 5 CONSTRUIREA BAZEI DE DATE N ACCES


F IG U R A 5 .2 7 Caseta de dialog Create New R elationships v pe rm ite s spe cifica i m anual ca ra cte risticile u n e i re la ii.

115

1 (LMNams

.'- N am e

rafcte/Qotty;


;Create jjew .[

1 irw *

)'

> ' *]

p"r TTffQ

D u p ce b ifa i caseta de v a lid a re R e fe re n tia l In te g rity , e x e c u ta i c lic pe b u to n u l OK. F ig u ra 5 .2 8 p re z in t re la ia n o u creat. O b s e rv a i n u m r u l 1 a fla t la u n u l d in tre capetele re la ie i i s e m n u l in fin itu lu i, care se a m n cu u n o p t n to rs pe o riz o n ta l , la c a p tu l m u l i a l re la ie i.

F IG U R A 5 .2 8 Noua relaie u n u la m u li n tre tabelele C lie n t i C ontact n a p lic a ia de co n s tru ire a re la iilo r.
D a

y . .
11< ' * .

. .
' ' : 8 ... . . . . . . . ; :

,-...,' :"[

1 *1

116
?J Indiciul

PARTEA A ll-A - PRO IECTAREA P R IM E I BAZE

DATE

Oricare dou cmpuri implicate ntr-o relaie trebuie s aib acelai tip si aceeai lungime. Dac veti ncerca s creai o relaie ntre dou cmpuri cu tipuri i/sau dimensiuni diferite, Access va genera o eroare.

Una dintre cele mai importante sarcini n dezvoltarea bazelor de date este documentarea. La un moment dat, va trebui s facei modificri i/sau s pregtii noi membri ai echipei. Poate c avei o memorie bun, dar nimeni nu are o memorie destul de bun pentru a memora toate detaliile unui proiect. Singura cale de a evita capcanele n care putei cdea din cauza memoriei care joac feste este s documentai bine baza de date. Ca s fim cinstii, nimnui nu-i place s fac acest lucru. i, dei majori tatea directorilor i a clienilor dorete documentaii, nimnui nu-i place s plteasc pentru ele. Scopul este de a crea documente complete rapid i eficient. Aa cum probabil bnuii, Access ofer o soluie drgu pentru aceast problem. Din meniul Tools, selectai Analyze, Documenter. Figura 5.29 prezint caseta de dialog Documenter i rezultatul furnizat de utilitarul de docu mentare. Toate obiectele bazei de date pot fi documentate. Documen taia poate fi printat din Access sau exportat n Microsoft Word sau Excel,

F IG U R A 5 .2 9 U tilita r u l D o cu m e n te r realizeaz ra p id m u n c a de docum entare a bazei de date.

n <- ' 'ty byusng wizard [ Create by entering

% : '

B ;aer;
Tables. ' _ 0> Report

/ 0 07 9/1 /200 5:56:37P M

< '

U cd .:

Nam Mp: .

Uing binary Long binarydsa

A lO b is c tT y p e s

Contact
Prott bes

I 5
Caned Selecta DeaHettAI

I
I long integer >wZciotngh ributei: I ling Cete: rHidcfen: I um ' :GUID

R :ds e ,A g ta -ln rm t

lijm rW id th

Defat MaJk Prmay KeyRdfor a 'nt longbnaryd-Ks

:O rd in i P o s a o n ;p .e q u ire d S o o rc eF te id S C K jtC iT il: A b w icien g lh

F e
aient C Jw nt LongInteger

'3sntType

:
II"' ,

!file r...............................

C A r TO LUL

CONSTRUIREA BAZEI E DATE N ACCES

117

Rezum at
n acest c a p ito l, a m f c u t o in tro d u c e re n m o d u l de tra n s fo rm a re a u n u i m o d e l n baz de date. A u fo s t expuse d o u m etode. P rim a d in tre ele este o cale ra p id de c itire a m o d e lu lu i. A d o u a im p lic generarea m a n u a l a ta b e le lo r, c o lo a n e lo r i r e la iilo r . De a se m e nea , a fo s t p re z e n ta t i c o n s tru ire a r e la iilo r n Access. Pe v iito r, d u p ce v e i fi n e le s b in e d e ta liile , m e to d a a u to m a t v a fi m u lt m a i ra p id i m a i e ficie n t . P artea a I l- a a c r ii se n ch e ie c u acest c a p ito l, a l c ru i scop l re p re z in t fazele de p ro ie c ta re i c o n s tru ire a u n e i baze de date. n acest m o m e n t, baza de date c o n in e n u m a i elem entele eseniale. n p a rte a a III-a v e i trece la n iv e lu l u rm to r, care im p lic in te lig e n a de a s u s in e re g u lile firm e i i in te g rita te a b azei de date.

PARTEA

NTREINEREA 3AZEI E D ATENTRODUCERE N INTEGRITATEA 3 A Z E ^R E ATE

- '

: ,

6
MENINEREA INTEGRITATII PRIN REGULI DE VALIDARE
n acest ca p ito l:
I I O p re z e n ta re g en eral a fu n c io n rii re g u lilo r de v a lid a re n bazele de date Im p le m e n ta re a re g u lilo r la n iv e l de cm p Im p le m e n ta re a re g u lilo r la n iv e l de n re g is tra re R e zu m a t

122

PARTEA A III-A - N T R E IN E R E A BAZEI DE DATE

n c a p ito lu l 5 a i n c h e ia t p ro c e s u l de c o n s tru ire a e le m e n te lo r eseniale ale bazei de date T im e E n try a n d B illin g (TEB). A cestea s u n t tabelele, c m p u rile i re la iile i re p re z in t m in im u l n ecesar p e n tru stocarea d a te lo r. M a re a p ro b le m este a c u m m o d u l n care c o n tro la i ce a n u m e se stocheaz n baza de date? A r tr e b u i ca u tiliz a to r u l s p o a t in tro d u c e orice dorete? A r p u te a el s salveze n re g is tra re a despre u n c lie n t f r o adres c o m p le t a ace stu ia ? A r tr e b u i s existe n i te m etode de c o n tro l? D ac da, a tu n c i c u m v o r fi ele im p le m e n ta te ? A ceste n tre b ri fac p a rte d in s u b ie e tu l v a s t a l in te g r it ii b a z e lo r de date. M a jo rita te a siste m e lo r de a d m in is tra re a bazelor de date re la io n a le (RDBMS) a u c a p a c ita te a de a m e n in e in te g rita te a . In te g rita te a b a ze lo r de date este c la s ific a t n re g u li de v a lid a re a d a te lo r i in te g rita te re fe re n ia l . R egulile de va lid a re se o c u p de aspecte p re c u m fa p tu l c datele in tro d u s e n tr - u n cm p s u n t v a lid e (acceptabile) sa u fa p tu l c p o t fi salvate n fo rm a tu l n care s u n t in tro d u s e . De e xe m p lu , d ac u n u tiliz a to r n u a in tro d u s o ra u l u n u i clie n t, n re g is tra re a n u va p u te a fi salvat. A cest c a p ito l tra te a z m o d u l de d e fin ire a re g u lilo r la n iv e l de cm p i n re gistrare. In te g rita te a re fe re n ia l are ca o b ie c tiv m e n in e re a re la ie i logice d in tre tabele. De exe m p lu , este p e rm is terg erea n r e g is tr rii u n u i c lie n t dac e x ist o n re g is tra re cu in fo rm a ii de c o n ta c t despre el? In te g rita te a re fe re n ia l este d is c u ta t n d e ta liu n c a p ito lu l 7, ia r acest c a p ito l va ilu s tra aplicarea re g u lilo r de validare la n iv e l de c m p i n re g is tra re u tiliz n d ta b e lu l C lie n t d in baza de date TEB.

Prezentare general a regulilor de validare


Bazele de d a te s u p o rt re g u li de v a lid a re la d o u n iv e lu ri. P rim u l este re p re z e n ta t de c m p u ri. R e gu lile de v a lid a re la n iv e l de cm p m a i s u n t d e n u m ite v a lid ri la n iv e l de cm p. De e xe m plu, dac u tiliz a to r u l tre b u ie a v e rtiz a t im e d ia t ce a in tro d u s date n e va lid e n tr - u n cm p, v a fi fo lo s it o re g u l de v a lid a re la n iv e l de cm p. A i fo s t v re o d a t n s itu a ia de a n u p u te a p r s i u n cm p n a in te de a in tro d u c e n el date va lid e ? A ceasta este u n a d in tre s itu a iile c nd s u n t a p lica te re g u lile de v a lid a re la n iv e l de cm p. R egulile de v a lid a re la n iv e l de c m p s u n t c ritic a te adesea deoarece a u te n d in a de a n tre ru p e flu x u l de lu c ru . E ste s u p r to r s to t f i i n tr e r u p t de m e s ^ e de e roare n a in te de a sa lva n re g is tra re a . A cest lu c r u ne cond uce la n tre b a re a fu n d a m e n ta l d ac re g u lile de v a lid a re la n iv e l de cm p m a i s u n t de v re u n folo s n a b se n a u n e i n c e rc ri de sa lvare a n re g is tr rii. De ce n u s n u v e rific m v a lo rile tu t u r o r c m p u rilo r o s in g u r d a t , la salvarea n re g is tr rii? A ceast n tre b a re ne con duce la c o n c e p tu l de re g u li la n iv e l de n re g is tra re . U neori, s itu a ia u n u i cm p depinde de s itu a ia u n u ia sau m a i m u lto r c m puri. In acest c o n te x t n u se a p lic re g u lile de v a lid a re la n ive l de cm p. P u te i n u m a i s v e rific a i s itu a ia tu tu r o r c m p u rilo r n a in te de a salva nregistrarea.

CAPITGLIJL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE

123

Adeseori, d e zvo ltato rii de baze de date se bazeaz exclusiv pe re g u li de validare la n ive l de n re g is tra re . De e xem plu, re g u lile de va lid a re care a ltfe l s -a r ap lica la n iv e l de cm p s u n t im p le m e n ta te ca p a rte a schem ei generale de re g u li la n ive l de n re g is tra re . P e n tru a oferi m a i m u lt c la rita te , se ciu n e a u rm to a re v a im p le m e n ta conceptele de va lid a re la n iv e l de cm p i de n re g istra re . Poate c v ntrebai cui i aparine responsabilitatea de a se asigura c n baza de date sunt introduse date valide? In mod tradiional, aceasta este treaba aplicaiilor software. De exemplu, pentru a asigura introducerea adresei complete, care conine adresa, oraul, statul i codul potal, era utilizat sistemul software de ordonare a intrrilor. Cndva, bazele de date erau numai instrumente de stocare. Probabil c n trecut aceasta nu era o problem, fiindc o baz de date era accesat de o singur aplicaie. Astzi ns, bazele de date sunt construite pentru a fi accesibile pentru mai multe aplicaii. Ce s-ar ntmpla dac o aplicaie ar omite o regul de validare important? Ultima redut pentru aprarea integritii este chiar baza de date. Dac v amintii cele discutate n capitolul 1 i cele 12 reguli ale lui Codd, regula 5 formuleaz ideea c o baz de date relaional trebuie s suporte un limbaj care faciliteaz integritatea datelor. Doar fiindc o baz de date respect regula 5 a lui Codd, nu nsemn neaprat c trebuie s utilizai aceste funcii ale bazei de date. Dac, totui, suntei preocupat de aplicarea celor mai bune practici, este recomandabil s determinai regulile eseniale pentru integritatea bazei de date i s implementat aceste reguli. In consecin, indiferent de aplicaia utilizat pentru a interactiona cu baza de date, aceasta din urmsi va purta singur de grij, iar dumneavoastr vei fi sigur de integritatea datelor.

Im plem entarea validrii Ea nivel de cm p


n a in te de a in tr a n d e ta liile im p le m e n t rii v a lid rii la n ive l de cm p, tre b u ie s e fe ctu m u n s tu d iu a s u p ra p ro p rie t ilo r re le va n te ale u n u i cm p care s u p o rt v a lid a re a . n c a p ito lu l 2 a m re a liz a t o s c u rt p re ze n ta re a acestor p ro p rie t i. n acest c a p ito l v e i vedea c u m fu n c io n a re a ace sto r p ro p rie t i a ju t la s u s u n e re a in te g r it ii datelo r.

Proprieti ale cm purilor


F ig u ra 6.1 p re z in t d ife rite le p ro p rie t i ale c m p u lu i C lie n tID d in ta b e lu l C lie n t. n fu n c ie de m o d u l n care d o r ii s c o n fig u ra i re g u lile , este p o s ib il s u tiliz a i u n e le d in tre aceste p ro p rie t i sau c h ia r pe toate, deoarece, n fu n c ie de t ip u l de d ate ale c m p u lu i, u n e le p ro p rie t i n u p o t fi u tiliz a te . De exe m p lu , p ro p rie ta te a A llo w Zero L e n g th (p erm ite lu n g im e a zero) poate fi a p lic a t n u m a i u n u i c m p cu date de tip te x t, ia r p ro p rie ta te a D e cim a l Places (n u m ru l de zecim ale) poate fi a p lic a t n u m a i u n u i cm p n u m e ric . In c a z u l c m p u rilo r A u to n u m b e r, p ro p rie ta te a R e quired (o b lig a to riu ) n u se ap lic , deoarece u tiliz a to r u l n u are c o n tro lu l a s u p ra d a te lo r stocate.

PARTEA A iil-A - NTREINEREA BAZE


F IG U R A 6.1 Access su p o rt o varietate de p ro p rie t i ale c m p u rilo r p e n tru a su sin e va lida rea i in te g rita te a d a te lo r .
: 'lM rt

124

0 5
T D a taT y p g
f nn&y y Fieldfc-i C hai-acteFiski lo spsofy /pa of rfsnt: B-Busn

. ........ itartTyps 1 00 81 City . 2 <

"
CK Q ariztM TiNam e Addrs

rtico Mjmber E -n -K 5

FHd 0


1 Cspian . :0 ' Ato8f0l nfc Indtxea Unfode

- < ' sn - < . f;rs I

0 0

A ceast s e c iu n e v a p re ze n ta m o d u l de s ta b ilire a re g u lilo r la n iv e l de cm p p e n tru ta b e lu l C lie n t d in baza de date TEB .

P roprietatea Required
D ac este o b lig a to rie in tro d u c e re a u n e i v a lo ri n tr - u n cm p, p ro p rie ta te a R e q u ire d este s e ta t pe Yes (da). F ig u ra 6.2 p re z in t m o d u l de setare a acestei v a lo ri. A ce ast p ro p rie ta te este de tip boolean, a d ic poate accepta n u m a i d o u v a lo ri: Yes (da) sa u No (nu). U n e o ri v a lo rile p o t f i T ru e (adevrat) / False (fals), s a u 1 / 0 . 0 v a ria b il b oo lea n este ca u n c o m u ta to r - este fie p o rn it, fie o p rit. Pentru a inversa valoarea proprietii Required, trebuie doar s selectai valoarea cu mouse-ui i s executai dublu clic. O alt metod este s executai clic pe sgeata cu vrful n jos, apoi s selectai valoarea dorit din lista derulant care apare. B u n u l s im i re z u lta te le e fo rtu rilo r d u m n e a v o a s tr de a n a liz i p ro ie c ta re v v o r in d ic a adesea dac este o b lig a to rie co m p le ta re a v a lo rii u n u i cm p. n c a z u lu i ta b e lu lu i C lie n t, co m p le ta re a c m p u rilo r ClientType, Addressl, City, State, ZIP i Phone este o b lig a to rie . D a r c m p u l Address2? N u v a fi nevoie de a d o u a ad re s p e n tru to i c lie n ii. A ce la i lu c r u este v a la b il i p e n tru a d re sa de Email; n u to i c lie n ii a u aa ceva. Ce p re re a v e i despre c m p u rile FirstName, Middlelnitial, LastName i OrganizationName? Aceste c m p u ri s u n t o p ro b le m d e lic a t . U n ii c lie n i s u n t persoane fizice, a lii s u n t firm e . D a c u n c lie n t este p e rso a n fizic, p e n tru care va lo a re a c m p u lu i ClientType este I (de la in d iv id u a l - n .tr.), a tu n c i v a lo rile c m p u rilo r FirstName i LastName s u n t o b lig a to rii.

CAPITOLUL6 MENINEREA INTEGRITII PRIN REGUUDEVAL1DARE

125

C o m p le ta re a c m p u lu i Middlelnitial n u este ob lig a to rie , deoarece n u to i o a m e n ii a u d o u n u m e . D ac este vo rb a despre o , a tu n c i va lo a re a ~ ClientType este B , deci va lo a re a c m p u lu i OrganizationName este o b lig a to rie . D u p c u m v e d e i, n u ltim e le c a z u ri, o b lig a tiv ita te a u n o r c m p u ri d e p in d e de v a lo rile a lto r c m p u ri. A ic i in te rv in re g u lile de v a lid a re la n iv e l de n re g is tra re , ia r aceast s itu a ie va f i d is c u ta t n s e c iu n e a u rm to a re . P e n tru a re c a p itu la , ta b e lu l 6.1 p re z in t set rile p ro p rie t ii R equired p e n tru ta b e lu l C lie n t.
F IG U R A 6 .2 P roprietatea R equired specific dac este obligatorie in tro d u ce re a da telo r n tr-u n a n u m it cmp.
OsoUD. F5tftom e 0 $ * .. ........... : N urrfcer M tfggw liw a it. 0

'

Pimary Key F*w force* Tsbl Foreign y 0 Jype T aW e FrstNam MddtelniBal

- - - - - - -

-.101 x l

< P one

. .:

cps n

Zero 0 Indexed

n-*g".. . .................... ~ ..................

r~ r~i r~ ~r~: r

Setrile valide pentru proprietatea Required sunt stocate ntr-o list derulant.

T abelul 6 .1
C m pul

S etrile p ro p rietii R equired p e n tru cm p u rile d in ta b elu l C lient


V aloai Yes No No No No Yes No Yes

ClientID ClientType FirstName Middlelnitial LastName OrganizationName Addressl Address2 City

126

PARTEA A III-A - N T R E IN E R E A B A ZEI DE DATE

Tabelul 6.1
Cm pul

(continuare)
V alo a re Yes Yes Yes No

State ZipCode Phone Email

A c u m , d u p ce a i se ta t co re s p u n z to r p ro p ie ta te a R equired, este m o m e n tu l s vedei care este e fe ctu l su a s u p ra d a te lo r in tro d u s e . D ac v m a i a m in tii d in u ltim e le d o u ca p ito le , tabele p o t f i v iz u a liz a te n d o u m o d u ri. P rim u l este m o d u l (vizualizarea) D esign, c u care a i lu c r a t in te n s . A l do ile a este v iz u a liz a re a D a ta sh ee t, p re z e n ta t n c a p ito lu l 2, care se c o m p o rt ca o foaie de date. In acest m o d de v iz u a liz a re p u te i p riv i, m o d ific a i terge datele d in tr-u n a n u m it tabel. F ig u ra 6.3 p re z in t m o d u l de trecere de la vizu a liza re a D esign la v iz u a liz a re a D atashee t. T re b u ie d o a r s e x e c u ta i c lic pe b u to n u l V ie w de pe b a ra p rin c ip a l de in s tru m e n te d in Access i s se le c ta i v iz u a li zarea d o rit . C n d v a fla i n v iz u a liz a re a D atashee t, in t r a i n c m p u l FirstName i s c rie i-v p re n u m e le . V e i observa c, d u p ce n c e p e i s s c rie i, c m p u l ClientID este c o m p le ta t c u o n o u valoare. F ig u ra 6.4 p re z in t n f i a re a pe care a r tr e b u i s o a ib e c ra n u l d u m n e a v o a str . D u p ce a i in tro d u s o va lo a re n c m p u l FirstName, n c e rc a i s ie ii d in n re g is tra re ap s n d ta s ta cu sgeata n jo s . C nd n c e rc a i s p r s ii o n re g is tra re , Access v e rific dac s u n t n d e p lin ite to a te re g u lile de va lid a re s ta b ilite . D a c re g u lile s u n t n d e p lin ite , n re g is tra re a este salvat. D ac re g u lile n u s u n t n d e p lin ite , este g e n e ra t u n m esaj de eroare (vedei fig u ra 6.5), care v in fo rm e a z c s-a p ro d u s o excepie. A a c u m ve d e i, n u se poate spu ne c acesta este u n m esaj prietenos fa de u tiliz a to r. Spre s f r itu l acestei s e c iu n i v e i n v a te h n ic i s u p lim e n ta re de a ofe ri u tiliz a to r ilo r bazei de date m esaje m a i in tu itiv e i m a i prietenoa se. n acest m o m e n t, dac e x e c u ta i c lic pe b u to n u l O K p e n tru a scpa de caseta de d ia lo g i a p o i a p s a i ta s ta Escape, n o u a n re g is tra re pe care a i d o rit s o c re a i va fi tears. In d ife re n t c t de m u lt v v e i s tr d u i, Access n u v v a p e rm ite s tre c e i peste re g u lile de v a lid a re in s titu ite ! S ne c o n c e n tr m a c u m a te n ia a s u p ra p ro p rie t ii A llo w Zero L e n g th , care este fo a rte a p ro p ia t de p ro p rie ta te a R equired.

CAPITOLUL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE


F IG U R A 6 .3 B u to n u l V iew v p e rm ite s tre ce i de la vizu alizare a Design la vizu alizare a D atasheet i invers.
JWf rfiwr I .'* *nv

127

ISJ3S
iienill) 4 .11ni 1yin t-iiMNoiin

- ' ' S S

"- I f "* 2
City

J
Si.il 1

F IG U R A 6 .4 Im e d ia t ce in tro d u c e i date n tr-o nreg istrare nou, cm p ul cu tip u l de date AutoNumber este com pletat cu o n o u valoare.

V kvi Insert Fam geds

rfow Help

______ -!3 *!*;


ClienilP )utoNumb [ c i i entTyp<

MHfl HBi |jj

:f~~~ r firgNirr.

F IG U R A 6 .5 N u v i se perm ite salvarea n re g is tr rii dac n u s u n t n d e p lin ite reg ulile de validare.

..
L : . i . l ...s * ...i

P roprietatea Allow Zero Length


A ceast p ro p rie ta te v i se va p re a c o n fu z la n c e p u t, deoarece este necesar s d e o s e b ii n tre ir u l v id i u n ir de lu n g im e zero.

128

PARTEA A III-A - N T R E IN E R E A BAZEI DE DATE


irul vid poate fi un concept dificil de neles. Gnditi-v la un cmp liber din nregistrarea unui client. Este el liber cu adevrat sau valoarea sa nu este cunoscut? irul vid indic situatia cnd valoarea nu este cunoscut, spre deosebire de cea n care valoarea nu este completat.

C o m b in a ia de v a lo ri n tre p ro p rie t ile R eq u ire d i A llo w Zero L e n g th in f lu eneaz fu n c io n a re a v a lid rii. Cel m a i b u n p u n c t de s ta r t este acela n care p ro p rie ta te a R e q u ire d este se ta t pe Yes. n acest caz, ir u l v id n u v a fi n ic io d a t a cce ptat. N u u ita i c el c o re sp un d e v a lo rii n e cu n o scu te . F a p tu l c este o b lig a to rie in tro d u c e re a v a lo rii u n u i c m p e lim in p o s ib ilita te a ca ea s fie n e c u n o s c u t . A tu n c i, dac n u este p e rm is ir u l v id , c u m s ta u lu c r u r ile c u u n ir de lu n g im e zero? U n ir de lu n g im e zero, spre deosebire de u n u l v id , este o va lo a re c u n o s c u t , ia r n c a z u l o b lig a tiv it ii c o m p le t rii u n u i c m p este p e rm is c m p u l de lu n g im e zero. D ac este ca zu l, v e i d o ri s s e ta i pe Yes p ro p rie ta te a A llo w Zero L ength . S re v e n im la c a z u l c n d p ro p rie ta te a R e qu ire d este se ta t pe No. U n cm p a c ru i co m p le ta re n u este o b lig a to rie poate accepta n to td e a u n a u n ir vid . Se p u n e n tre b a re a dac v i se p e rm ite s in tro d u c e i u n ir de lu n g im e zero. R e ven im a s tfe l la n ecesita te a c u n o a te rii d ife re n e i n tre ir u l v id i cel de lu n g im e zero. S c o n s id e r m , de e xe m p lu, o adres de e -m a il. D ac n acest c m p n u este n im ic , a tu n c i c lie n tu l n u are adres de e -m a il sau adresa lu i n u este c u n o s c u t ? V o m d is c u ta m a i t rz iu n aceast s e c iu n e p ro p rie ta te a F o rm a t (form at). A ceasta ofer o m e to d de a c o n tro la m o d u l de a fia re a ir u lu i v id . D ac d o rii, este p o s ib il ca ir u l v id s a p a r ca u n ir gol. Ceea ce vede u tiliz a to r u l n u este n ic i pe d e p a rte la fel de im p o rta n t ca d ife re n a n tre u n ir v id i u n u l lib e r. P e n tru u n u tiliz a to r, ele n u s u n t d ife rite . P e n tru d u m n e a v o a s tr , d e z v o lta to ru l bazei de date, ele s u n t fo a rte d ife rite . S ne o p rim p u in p e n tru a e x a m in a lis ta c m p u rilo r, n s c o p u l de a vedea care a r tr e b u i s fie set rile . C m p u l ClientType poate fi n u m a i B s a u I . P rin d e fin iie , co m p le ta re a sa este o b lig a to rie , ia r c u m n u s u n t p o s ib ile dect d o u v a lo ri, n u tre b u ie s fie perm is u n ir de lun gim e zero. D a r cm p urile FirstName, Middlelnitial, LastName i OrganizationName? A r avea ro s t s fie a cce p ta t u n ir lib e r ca va lo a re p e n tru LastName? Cel m a i p ro b a b il, r s p u n s u l este n u . Aceste c m p u ri fie v o r c o n in e o valoare, fie n u . D a c v g n d ii p u in , u n ir cu lu n g im e a zero n u va fi a c c e p ta b il aproape n ic io d a t . De aceea, n ta b e lu l C lie n t, p ro p rie ta te a A llo w Zero L e n g th v a fi se ta t pe No p e n tru to a te c m p u rile . In s itu a ia c n d v e i n c e rc a s in tro d u c e i u n cm p de lu n g im e zero, Access l va n lo c u i a u to m a t c u u n ir vid . Orict ai ncerca, nu vei gsi pe tastatur tasta corespunztoare irului vid! Dac un cmp are proprietatea Allow Zero Length setat pe irul vid, adic dac este acceptat irul nul, trebuie doar s tergei toate caracterele din acel cmp. Aceasta va indica programului Access c trebuie s nlocuiasc valoarea cmpului cu irul nul. Imediat ce introducei un cmp, toate caracterele vor fi evideniate. Trebuie doar s apsai bara de spaiu i toate caracterele vor fi terse.

CAPITOLUL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE P roprietatea Form at

129

A a c u m b n u ii, p ro b a b il, to a te aceste p ro p rie t i s u n t legate u n a de a lta n tr-o a n u m it m s u r . A a c u m p ro p rie ta te a A llo w Zero Le n g th are le g tu r cu p ro p rie ta te a R equ ire d, p ro p rie ta te a F o rm a t are le g tu r c u A llo w Zero L e n g th . E a are d o u r o lu r i. M a i n t i, c o n tro le a z m o d u l de a fi a re a c m p u rilo r, a p o i co n tro le a z m o d u l de a fiare a ir u lu i v id . In d ife re n t de m o d u l de stocare a d atelo r, p ro p rie ta te a F o rm a t poate m o d ific a n f i a re a d a te lo r. De exe m p lu, dac toa te caracterele c m p u lu i F irstN a m e s u n t in tro d u s e c u lite re m ic i, p ro p rie ta te a F o rm a t poate fo ra a fia re a ca ra cte re lo r c u m a ju s c u le , l r a afecta m o d u l n care s u n t m em orate datele. A ceast p ro p rie ta te este fo a rte com plex, c u m u lte s e t ri care d e p in d de tip u l d a te lo r cu care lu c ra i. Aceast carte are dou scopuri: mai nti, s v nvee cum s proiectat! bazele de date, apoi s v nvee ct se poate de muite despre Access. Documentaia ajuttoare pe care o conine acest program este destul de bun, dar informaiile nu au o valoare prea mare. Prezentarea modului de funcionare a aplicaiilor, pe de alt parte, are o valoare incredibil. Dup prezentare, putei trece ia experimentarea diferitelor setri. tiind aceasta, dac dorii s v extindei cunotinele despre o anumit proprietate sau aplicaie, trebuie doar s o selectai i s apsai tasta F1. De exemplu, figura 6.6 prezint informaiile din Help despre proprietatea Format. Ironia este c sistemul Help este una dintre funciile cele mai valoroase i totui mai puin utilizate ale aplicaiilor software.

FIG U R A Dac ap sa i ta sta F I cnd c u rs o ru l este p o z iio n a t pe o a n u m it pro p rie ta te va afia m e n iu l Help p e n tru acea p ro prie tate.

; .
F o rm a t P roperty
S t i Also Exan'ipl Applies Til can use the F o rm a t property to customize the num ber dates, tim es, and te x t are displayed and printed. For example, if you've created Price text box, you can set its F o rm a t property to C u rre n c y and it D ecim alP la ces property to 2 o r Auto. If you enter 43 2 1 .6 7 8 in the control, the number would be displayed 1.68 4,3 . You can use one of th e predefined form at or you can create a custom fo rm at by using form atting symbols. S e ttin g The F o rm a t property uses different settings fo r different types. information about settings fo r specific data type, see one of the following topics:


Yes/No Pate Type

Njmbfer..and..Crrei?.cy..P.9ta.1!sfc

For a control, you can set this property in the control' property sheet. For a field, you can set this property in table Design view (in the Field Properties section) or in Design view of the Query window (in the Field Properties property sheet). You can also use a macro o r V;;uai

P ro p rie ta te a F o rm a t este fo arte u til cnd tre b u ie afiate c m p u ri cu fo rm a ta re special. D o u tip u r i de a stfe l de c m p u ri s u n t cele care c o n in n u m e re de te le fo n i c o d u ri potale. F ig u ra 6 .7 p re z in t setarea p ro p rie t ii F o rm a t p e n tru c m p u l ZipC ode.

130

PARTEA A III-A - N T R E IN E R E A BAZEI DE DATE

F IG U R A 6 .7 Setarea @@@@@-@@@@ a p ro p rie t ii F o rm a t asigur afiarea c o d u lu i potal cu cin ci caractere, o lin iu , apoi p a tru caractere.
OenUP cerType RrstNsme M ddlelnial Latfna OrgafiiaiionNaiite Addresl Addru ZipC ode Prore E m ai AjC^4jTtil

O ggriptiaft Jfit a Chvacler Feldto specfy type of eter*: B -B usne-ss I-lndvidual 1 fi* N arn .

Fieldftopertfes; G en al ! Lootup ?HSce Format : Input M ask O rfault Vdue Validation Te*t : Length 1es(DU p>;a.::) ' .LJricodeCompt e sion :ifoimk. PrwcP ,-

S e x a m in m a c u m fu n c io n a re a p ro p rie t ii F o rm a t. R e ve n ii n vederea D a ta sh e e t i tre c e i n ZipCode, a p o i in tro d u c e i 1 9301 1234, d a r n u tre c e i n c la c m p u l u rm to r. F ig u ra 6 .8 p re z in t m o d u l n care va a r ta vederea D atasheet.

F IG U R A 6 .8
rrnat cuds pols i i H elp

C t tim p v a fla i n c m p u l respectiv, p ro p rie ta te a F o rm a t n u are

!Client: Table Miil<tlelniilal~f~ LastH.

Oiij.iiilz.ilIniiHl Aii jiessl Phone ' - 1

.*iS 2L l
Email

Recwd

:!

MENINEREA INTEGRITII PRIN REGULI DE VALIDARE

131

T re c e i a c u m n c m p u l Phone Number. F ig u ra 6 .9 p re z in t e fe c tu l p ro p rie t ii F o rm a t. D u p ce p r s ii u n cm p, Access v a respecta afiarea s ta b ilit p r in p ro p rie ta te a F o rm a t. N u u it a i s a p s a i ta s ta Escape p e n tru a scpa de date, a s tfe l n c t s p u te i re v e n i la m o d u l D esign. N u u ita i, a n u m ite re g u li de v a lid a re v v o r m p ie d ic a s s a lv a i datele.

F IG U R A 6 .9 Proprietatea F o rm a t va avea efect d u p ce ie ii d in cmp.

W ew nsert Pgfraat Record oali rricw lp

Client Table <dme | Oiganli<illotiN| AdJtegst Aiiilress2 fnt& | Zip Code 19301-1234 [

-S I

'

' ':'.pi:

l <!>!

Access nu v va permite s lsai datele n stare incert. De exemplu, dac n timp ce introduceti date v decidei s treceti n vizualizarea Design sau s treceti la o nou nregistrare, va trebui mai nti s terminat introducerea datelor din nregistrarea curent. Pentru asta, avei la dispoziie dou opiuni. Fie veti salva datele, ceea ce nseamn c trebuie s introduceti valori n cmpuri pn sunt ndeplinite condiiile de integri tate, fie veti renuna la date. O variant de mijloc nu exist n aceast situaie. Acest concept va fi important la crearea formularelor pentru intro ducerea datelor, pentru a ntretine datele. Dac utilizatorul se afl ntr-o sesiune de introducere a datelor si decide s nchid formularul, va trebui s aleag ntre introducerea complet si renunarea la date. Aceasta este esena integritii datelor, faptul c nu pot fi stocate date incomplete.

S ne n d re p t m a c u m a te n ia c tre a d o u a fu n c ie a p ro p rie t ii F o rm a t, c o n tro lu l a fi a rii ir u lu i vid . n ca zul c m p u rilo r de te xt, p ro p rie ta te a F o rm a t este a lc tu it d in d o u s e c iu n i. P rim a se o cu p de m o d u l de a fiare a d a te lo r. A d o u a in d ic m o d u l de a fiare a ir u lu i vid . P e n tru baza de date T E B , v a fi fo lo s it va lo a re a N /A p e n tru a fia rea ir u lu i vid . C a ra c te ru l p u n c t i v irg u l (;) se pa r s e c iu n ile p ro p rie t ii F o rm a t (vedei fig u ra 6.10).

132

PARTEA A III-A - N T R E IN E R E A B AZEI E DATE


. $ jeip ..

F IG U R A 6 .1 0 A d o ua seciune a p ro p rie t ii F o rm a t p e n tru u n cm p de te x t controleaz m o d u l de afiare a iru lu i vid.

iwaro < . ............ CkentTyp RrKNni L5)ftnv V E rna

. ) Text

Destnotion pmkyt.ey Fieldpr 5p yt>pe B-Eu*iM, l-Inckvldu^l FnSNme 1 1 Nam e ' <atrit 5

F tdProprie | 0 Field Ce Form Cspikn ' VaWifKfiert. . Wow z0 Length Corcii

: Cod

,-

fi . ' .

. ,'

' ) (

Desavi. P6ftwtehw5. FlHefe~

S re v e n im la v iz u a liz a re a D a ta she e t, n c m p u l zipCode. O b s e rv a i c acest c m p c o n in e va lo a re a N /A . D a r n u v g r b ii! C o m p le ta re a c m p u lu i ZipCode este o b lig a to rie , d e ci n u p oate accepta ir u l v id . i a tu n c i? R s p u n s u l este fo a rte s im p lu . La crearea u n e i n o i n re g is tr ri, c u e xce p ia c a z u lu i c n d este d e fin it o a n u m it va lo a re im p lic it , ia r despre acest c o n ce p t v o m d is c u ta m a i t rz iu n aceast s e ciu n e , va lo a re a im p lic it a u n u i c m p este ir u l v id . C m p u l a te a p t lite ra lm e n te s in tro d u c e i o va lo a re in iia l . D eoarece c o m p le ta re a c m p u lu i ZipCode este o b lig a to rie , n u v e i p u te a salva n re g is tra re a dac a cest cm p c o n in e ir u l v id . F ig u ra 6.11 a ra t c u m v a a p rea in iia l c m p u l ZipCode. E ste p ro p rie ta te a F o rm a t s u fic ie n t p e n tru a a s ig u ra in te g rita te a d a te lo r? R s p u n s u l este, categoric, n u . F ig u ra 6.12 ilu s tre a z acest lu c ru . N u u ita i, p ro p rie ta te a F o rm a t co n tro le a z m o d u l de a fiare a d a te lo r, n u m o d u l n care s u n t in tro d u s e . P e n tru a c o n tro la acest aspect, va tre b u i s s tu d ia i p ro p rie ta te a In p u t M a s k (m asc de in tra re ). n p ra c tic , n u va tre b u i s c o n tro la ti m o d u l de a fia re a ir u lu i v id n c m p u l ZipCode, deoarece c o m p le ta re a a c e s tu ia este o b lig a to rie . N u u ita i, ir u l v id n u p oate f i s to c a t n c m p u rile a c ro r co m p le ta re este o b lig a to rie . Im a g in e a a n te rio a r ca re u t iliz a c m p u l ZipCode a a v u t n u m a i scop d e m o n s tra tiv . T a b e lu l 6.2 c o n in e s e t rile p e n tru fiecare c m p a l ta b e lu lu i C lie n t care n e c e s it o setare p e n tru p ro p rie ta te a F o rm a t.

MENINEREA INTEGRITII PRIN REGULI DE VALIDARE


FIG URA 6.11 n absenta un e i v a lo ri im p licite , c m p u rile un e i no i n re g is tr ri au valoarea in iia l n u l .
h a * * ii * < s l.

133

MliIH uiiiltidl | J

L.islH.iin

1 6igan 2onN

A<Hik1

*City

St.it

ZJ,3ol 22

P hon<f

--.j f e * 151 Emoii f . t

--

.i i ___I

1 I___ v :

F IG U R A 6 .1 2 P roprietatea F o rm a t n u poate m piedica in tro d u ce re a u n o r caractere nevalide n tr-u n cm p.

134

PARTEA A III-A - N T R E IN E R E A BAZEI DE DATE

Tabelul 6.2
Cm pul

Setrile proprietii Format pentru cmpurile tabelului Client


V aloa re @;N / A @;N /A @;N /A @;N /A @;N /A

FirstName Middlelnitial LastName OrganizationName Addressl Address2 ZipCode Phone Email

@@@@@-@@@@ @@@-@@@-@@@@
@;N /A

P r o p r ie ta te a In p u t M a s k P ro p rie ta te a I n p u t M a s k (m asc de in tra re ) realizeaz ceea ce p ro p rie ta te a F o rm a t n u poate. P ro b lem a este de a c o n tro la ce caractere s u n t in tro d u s e n tr - u n c m p i n ce m o d. P ro p rie ta te a In p u t M a s k p oate fi c o n fig u ra t m a n u a l sa u g e n e ra t c u o a p lic a ie w iz a rd . F ig u ra 6 .1 3 p re z in t a p lic a ia w iz a rd I n p u t M a sk. T a b e lu l 6 .3 c o n in e s e t rile p e n tru c m p u rile ta b e lu lu i C lie n t care n e c e s it c o n fig u ra re a p ro p rie t ii I n p u t M ask.
F ig u ra 6 .1 3 A p lic a ia w izard In p u t M ask genereaz ra p id o valoare p e n tru p ro p rie ta te a In p u t Mask.

Dac executai clic pe acest buton, va fi lansat aplicaia wizard Input Mask.

Putei testa n mod interactiv proprietatea Input Mask.

SJiFITOL JL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE

135

Tabelul 6 .3 S etrile p ro p rietii In p u t M ask p e n tru cm p u rile ta b elu lu i C lient


Cm pul ZipC ode Phone V a loa re 0 0 0 0 0 -9 9 9 9 ; (999) 0 0 0 -0 0 0 0

M asca de in tr a r e p e n tru c m p u l ZipCode este 0 0 0 0 0 -9 9 9 9 . E a re p re z in t u n m o d e l pe care tre b u ie s -l respecte toa te datele in tro d u s e . In acest caz, prim e le c in c i caractere tre b u ie s fie cifre de la 0 la 9. U ltim e le p a tru caractere tre b u ie s fie c ifre de la 0 la 9 sa u s p a iu . De ce este p e rm is fo lo sire a s p a iu lu i n p a rte a p lu s 4 a c o d u lu i p o ta l? D a r poate n u t i i ce re p re z in t p a rte a p lu s 4 a c o d u lu i po tal. Ca i p ro p rie ta te a F o rm a t, p ro p rie ta te a In p u t M a s k este a lc tu it d in d o u p ri. In ace st e xe m p lu , m a sca de in tr a r e a c o d u lu i p o ta l este 0 0 0 0 0 9 9 9 9 ; P rim a seciune este c h ia r m asca de in tra re . A doua seciune specific dac este p re z e n ta t a fia re a a c tu a l , in c lu s iv caracterele m o d e lu lu i, sau dac s u n t sto ca te date le eseniale. In acest caz, dac a d o u a s e c iu n e a r fi fo s t se ta t pe 0, la in tro d u c e re a d a te lo r 1 9 3 0 1 -1 3 4 4 , Access a r fi n c e rc a t s mem oreze 10 caractere n c m p u l ZipCode. In acest caz, al zecelea caracter a r fi lin iu a care sep ar cele d o u p r i ale c o d u lu i po ta l. D ac l s a i n e c o m p le ta t a d o u a se c iu n e , n u v o r fi m e m o ra te caractere ale m o d e lu lu i, ia r n acest caz, datele m o m o ra te n c m p u l ZipCode s u n t 1 9 3 0 1 1 3 4 4 . S etarea acestei s e c iu n i este fo a rte im p o rta n t , deoarece, n acest e xe m p lu c m p u l ZipCode are lu n g im e a de 9 caractere, ia r dac a r fi m e m o ra te ca ra cte re le m o d e lu lu i, c o d u l p o ta l a r fi tru n c h ia t, ceea ce n s e a m n c dac in tro d u c e i 1 9 3 0 1 -1 3 4 4 , v a fi m e m o ra t de fa p t 1 9 3 0 1 -1 3 4 . U ltim a s e c iu n e s p e c ific n lo c u ito r u l (placeholder) p e n tru s p a iu la in tro d u c e re a d a te lo r. n acest caz este fo lo s it c a ra c te ru l u n d e rs c o re (bara jo s), d a r el poate fi o rice c a ra c te r n lo c u ito r. A p lic a ia w iz a rd In p u t M a s k c u p rin d e tre i pai. Fiecare pa s c o re sp u n d e u n e i s e c iu n i. In m a jo rita te a s itu a iilo r , v e i l sa n e s c h im b a te s e t rile im p lic ite pe care v i le ofer a p lic a ia . F ig u ra 6 .1 4 p re z in t m o d u l c u m v a a prea p ro p rie ta te a In p u t M a s k d u p n c h id e re a a p lic a ie i w iza rd . Pe m s u r ce v e i nelege m a i b in e fu n c io n a re a p ro p rie t ii In p u t M a s k , v e i in tro d u c e c h ia r d u m n e a v o a s tr m tile de in tra re , n loc de a fo lo s i a p lic a ia w iz a rd . A c u m , d u p ce a ve i u n a d in tre m tile de in tra re la d e g e tu l m ic , m e rg e i m a i d e p a rte i s e ta i c m p u l Phone Number. F ig u ra 6 .1 5 p re z in t m o d u l n care v o r aprea re z ulta te le . O b serva i s e m n u l e x cla m rii care precede m asca de in tra r e p e n tru c m p u l Phone Number? A cest lu c r u d e te rm in a fiarea c a ra c te re lo r de la d re a p ta la stnga.

136

PARTEA A lll-A N T R E IN E R E A BAZEI


nsrt Jjoob Mhdow

DATE

F IG U R A 6 .1 4 A vei de ales n tre u tilizare a u n e i a p lic a ii w izard i setarea m a n u a l a p ro p rie t ii.

______________
'
Field W am e CienID C nTy .... . . ......... .. I ' 0 MnZ une ZipC ode Phxie

' *' -,
I

:'.

D atai Type

........
0 < <) !N am e Address 1 Address ; ZpCOd

y .... ............
-

^ ^ j
'

- .;. Ba<r. ' J e y -xrti n th M

- " '
' < *

: )

'

a : n

F IG U R A 6 .1 5 C a racteru l ! d e term in afiarea caracterelor de la d re ap ta la stnga.

CAPITOLUL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE

137

Cnd salvai tabelul, vei observa probabil c s-a schimbat proprietatea Input Mask pentru cmpurile ZipCode i Phone. Masca de intrare pentru cmpul ZipCode s-a transformat n 00000\-9999;;_, iar pentru Phone s-a transform at n l\(999) 000\-0000;;_. Caracterul \ face s fie afiate caracterele de dup el ca i caractere literale. In majoritatea situaiilor, nu trebuie s v facei probleme privind modul de stocare a acestei informaii n Access.

S ne o p rim cteva m o m e n te p e n tru a e fe ctua o testare, re v e n in d la vederea D atasheet. I n tr a i n c m p u l ZipCode i s c rie i 19301, ap o i tre c e i n c m p u l Phone. F ig u ra 6 .1 6 p re z in t p ro b le m a care apare. S o lu ia a c e s te i p ro b le m e este fo a rte s im p l . C a ra c te ru l ! fu n c io n e a z o a re cu m a ltfe l dect p e n tru p ro p rie ta te a F o rm a t. C nd la n c e p u tu l p ro p rie t ii F o rm a t apare c a ra c te ru l !, datele s u n t a lin ia te la stnga. De aceea, dac m o d ific a i p ro p rie ta te a F o rm a t n !@@@@@-@@@@, datele v o r fi afiate c o re s p u n z to r c n d n u este in tro d u s p a rte a p lu s 4 a c o d u lu i p o ta l (vedei fig u ra 6.17).

F IG U R A 6 .1 6
Fie * In Farm g*ord Xo yxtow .

Este im p o rta n t s v a s ig u ra i c a i corelat p ro p rie t ile F o rm a t i In p u t M ask.


M 6SH Miil<llelnili.il 1 L.iaNdine Aildm*A? | Clly SM ! Email

ft-) yrnr* Hjrrtt

138

PARTEA A III-A - N T R E IN E R E A B AZEI DE DATE

F IG U R A 6 .1 7 C a racteru l ! d in p ro p rie ta te a F o rm a t d e te rm in afiarea cara cte relor a lin ia te la stnga. Q B


i"T i' * " n 1 /" 1

& t\i

gg

....................... ..

..... .................................... :".

>. '

'-. l i

n c o n tin u a re , n c e rc a i s in tro d u c e i u n n u m r de telefon in co m p le t. F ig u ra 6 .1 8 p re z in t e xce p ia g e n erat de Access. V i se va s o lic ita s in tro d u c e i datele co n fo rm s p e c ific a iilo r m tii de in tra re .

F IG U R A 6 .1 8 Access v so licit s in tro d u c e i datele conform sp e c ific a iilo r m tii de in tra re .


^ !\) Whe ( "inpu 000\-mask 0000; J The value you eriered t.n t appropriate for . pecfied fer tb fteld

o o l

a | b *

P roprietatea Default Value


P ro p rie ta te a D e fa u lt V a lu e (valoarea im p lic it ) face ceea ce in d ic i n u m e le ei - sp e cific va lo a re a care este in tro d u s a u to m a t n tr - u n c m p la crearea u n e i n o i n re g is tr ri. P e n tru c m p u l ClientType este sp e cifica t va lo a re a im p lic it I (de la In d iv id u a l = persoan fizic), p e n tru c s-a a ju n s la concluzia c m a jo rita te a c lie n ilo r s u n t persoane fizice. F ig u ra 6 .1 9 p re z in t setarea p ro p rie t ii D e fa u lt V a lu e p e n tru c m p u l ClientType. A cesta este s in g u ru l p e n tru care este se ta t o va lo a re im p lic it .

CAPITOLUL 8 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE


F IG U R A 6 .1 9 Proprietatea D e fa u lt V alue v pe rm ite s spe cifica i o valoare in iia l a c m p u lu i cnd este creat o n o u nregistrare.
> *

139

, .; - . ;' _' .-
L _ Cl-sntTflje Prinary Field Clef 1 1 Field) sperfy tj-pe 0 . :E -& J9T, 1 -1 )- N am e MJdle Initial LsNeme OfgaraionNsme Address............. $ .

' : _ _ Address

G eneral 0 0 Field Sue Input Hs > Cspbar Defauk V alue

. .f'akdatwnTe p.iquked Alow Zer o Length Indexed UnicodeC om pression

) n*<

Y(CjpkteiO(

I Peai ve*. F-^ntchpi. Fl-Hefr.

P r o p r ie ta te a V a lid a tio n R u le S u b ie c tu l d is c u ie i se n d re a p t a c u m sp re u n a d in tre cele m a i im p o rta n te fu n c ii d in Access i d in orice p ro d u s p e n tru baze de date n ge n e ra l c a p a cita te a de a s p e cifica re g u li de v a lid a re . R egulile p o t fi fo rm u la te la n ive l de c m p s a u de n re g istra re . P rim u l tip de re g u li pe care l vo m prezenta este cel la n iv e l de cm p. D ac v a m in tii, c m p u l ClientType poate avea n u m a i d o u v a lo ri: I s a u B. n acest m o m e n t, n u e x ist o cale de a im p u n e aceast re g u l . D e i este s p e c ific a t va lo a re a im p lic it I, n im ic n u v poate o p r i s in tr o d u c e i o ric e v a lo a re n a ce s t c m p . D a c v d e p la s a i la p ro p rie ta te a V a lid a tio n R ule, v e i vedea u n m ic b u to n . A cesta lanseaz o a p lic a ie de c o n s tru ire a e x p re s iilo r (E xpression Bu.ild.er), pe care o p u te i u tiliz a p e n tru a fo rm u la re g u la . A lte rn a tiv a a r f i s in tro d u c e i m a n u a l re g u la , e v it n d a p lic a ia E x p re s s io n B u ild e r. Expresiile pe care le poate utiliza Expression Builder pot fi complexe. Acest capitol trateaz numai regulile simple. Dac nu suntei familiarizat cu logica boolean, este recomandabil s v oprii puin pentru a studia documentaia Help pentru reguli de validare.

F ig u ra 6 .2 0 p re z in t setarea p ro p rie t ii V a lid a tio n R ule p e n tru c m p u l C lientT yp e. Logica este s im p l - va lo a re a a c e s tu ia poate fi B sa u I.

140

PARTEA A III-A - N T R E IN E R E A BAZEI

DATE

F IG U R A 6 .2 0 Proprietatea V a lid a tio n Rule p e n tru cm p ul C lientType s o licit ca valoarea in tro d u s s fie B sau I.
:FfeW W am e: AuWNunte pimary Keyfield for Clent Tabte Charact F 1 ld spectfy of den FsNam ....... M iddle Initial Last N am e OrganijatiooNarre Address 1 Addr City ZiCods Phcne Nxnber E-maiAdd CCfCbon pdr.iduol

C^.T:atonNarw

ZipC ode

FW dPiOfi t ; > Genefsl lookup fteWSue Form a JnpuMsk Caption Dsfault Vj Y adan Rufe VadSooTex RsqiirBd : Ak>wZeroLength lndeed

Cent Tvpe . : :) * vi * x cn:ti& the .

) Dupfcat O K(

r s S r i view. F6 Switch panes. FI - H.

S ne o p rim p u in p e n tru a te s ta re g ula , re v e n in d n viz u a liz a re a D atasheet, n c e rc a i s in tro d u c e i o va lo a re d ife rit de B sa u I i s p r s ii c m p u l. F ig u ra 6.21 p re z in t e xce p ia g e n erat de Access.

F IG U R A 6.21 Cnd este nc lcat o reg ul de validare, Access genereaz o excepie i apare o caset de dialog care inform eaz u tiliz a to ru l despre acest lu c ru .
le ' " Or = T ' et for 'Client.GentType'. Enter a value that

E ste p u in s p u s c acest m esaj n u este p rie te n o s fa de u tiliz a to r. P e n tru a rezolva aceast p ro b le m , s re v e n im la p ro p rie ta te a V a lid a tio n T e x t (text de va lid a re ). T a b e lu l 6 .4 p re z in t re g u lile la n iv e l p e n tru fiecare cm p care tre b u ie s fie setat.

CAPITOLUL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE

141

T abelul 6 .4 S etrile p ro p rietii V alidation Rule p e n tru cm p u rile ta b elu lu i C lient


Cm pul V aloarea = B o r I Is n o t N u ll Is n o t N u ll Is n o t N u ll Is n o t N u ll Is n o t N u ll

ClientType Addressl City State ZipCode Phone

P r o p r ie ta te a V a lid a tio n T e x t P ro p rie ta te a V a lid a tio n T e x t (te xt de valida re ) este fo a rte s im p l . T re b u ie d o a r s p re c iz a i te x tu l care va i i a fi a t c n d este n c lc a t o re g u l de v a lid a re (vedei fig u ra 6.22). A c u m re v e n ii la vederea D a ta s h e e t i in tro d u c e i o va lo a re n e v a lid n c m p u l ClientType. F ig u ra 6.23 p re zin t m e sa ju l de eroare d ire ct care apare.

F IG U R A 6 .2 2 Proprietatea V a lid a tio n T ext precizeaz te x tu l care tre b u ie s fie a fia t cnd u n u tiliz a to r ncalc o regul de validare.

irnert Iosii oda jefe

FieldHaine CkentlO OentType Ftsarrie lastNaoe Crgarcationfian AMre i M fsfZ plode P hon.

I CwtaTyp Autof*jrrer T e-A

Oeioirtion PirnarvKey Fieldfor Citent Table 1Character Fieldto specifytyp* i f ckent. FrstNsme MdAMiaj Lax N am e Organijatnn N aine Address 1 Addiess2 I-Iridiyidual

______________

PtiT< M xnbcr E-mal Addess

-* -------------------------------enerel b field Size

F WdPrcperttes

sr
OefaJ-VjIue dationRule' Vatdation Tt Required Alow Zerc length Indexed UnicodeComprMston

Clint Type ysu snr The Cent Type m ust be I ) Cup:ate* Or( ct *bv the v3d9onrufe. Pres PI for help;

I Peagnyiew. F6Switch pym. FI Bei.

142

PARTEA A III-A - N T R E IN E R E A BAZEI


*J
f \ The Client Type must be B or I .

DATE

F IG U R A 6 .2 3 D u p ce spe cifica i te x tu l de validare, Access l va folosi n caseta de valida re care inform eaz despre nclcarea u n e i re g u li de validare.

n a in te de a c o n tin u a , s d m u n a lt e x e m p lu de re g u l de v a lid a re / te x t de v a lid a re . F ig u ra 6 .2 4 p re z in t m e s a ju l de eroare pe care l v a vedea u tiliz a to ru l dac las c m p u l A d d re s s l necom pletat. D in n o u , m e s a ju l a fia t n u este deloc p rie te n o s.
F IG U R A 6 .2 4 A cesta este m e sa ju l de eroare im p lic it generat de Access cnd l sa i ne com p letat u n cm p a c ru i valoare este necesar.
b<suse equed pfOcw ty fa his f d to Trj .

*
b > D J

F ig u ra 6 .2 5 p re z in t re g u la de v a lid a re te x tu l de v a lid a re p e n tru c m p u l A d d re s s l. R egula precizeaz c n u este a c c e p ta t ir u l v id , ia r te x tu l ofer u tiliz a to r u lu i u n m esaj p rie te n o s . F ig u ra 6 .2 6 p re z in t caseta de dia lo g care apa re c n d u tiliz a to r u l la s n e c o m p le ta t c m p u l A d d re ss 1 i n ce a rc s prseasc n re g is tra re a c u re n t . T a b e lu l 6.5 co n in e se t rile p ro p rie t ii V a lid a tio n T e x t p e n tru fiecare d in tre c m p u rile care n e ce sit acest lu c ru .

T abelul 6 .5 S etrile p ro p rietii V alidation T ext p e n tru ta b elu l C lient


C m pul C lientT yp e A ddress 1 C ity S tate ZipC ode Phone V aloa re a T h e C lie n tT y p e m u s t be B o r I. Y o u m u s t sp ecify a n address. Y ou m u s t sp ecify a city. Y ou m u s t sp e cify a state. Y ou m u s t sp ecify a ZIP Code. Y ou m u s t sp e cify a p h o n e n u m b e r,

(Valoarea proprietii Validation Text, adic mesajul de eroare pe care l va vedea utilizatorul la nclcarea unei reguli de validare, nu trebuie neaprat s fie n limba englez; de altfel, un text n limba romn ar fi mai prietenos pentru utilizatorul romn - n. tr.)

CAPITOLUL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE


F IG U R A 6 .2 5 Regula de va lid a re p e n tru c m p u l
A d d re s s l
C lieritID OwnlTypa Fi*Nime ' t-Wdilmba * OtgncalinNami Addressi Address t-<l>urr yFifOfof ttte I< ' '<' f lo pe4y !yp* -i w . ftjor. l UxKnu 8

143

r\.T '

precizeaz c acest cm p n u poate fi l sat necom pletat.

>9^cjon N sm e > .. ZpCod fticne MjT.ber E-naJ Addes

Stat* ZipCode P none E tna

j lookup

Youmust specify anaddress gired Alow Zero Leoglh lnded U m codeCorrt>riswn

F IG U R A 6 .2 6 P roprietatea V a lid a tio n T ext ofer u n te x t prietenos fa de u tiliz a to r.


You must specify an adifrsss

O O

ti* I

Im plem entarea validrii la nivel de nregistrare


C nd n c e rc a i s s a lv a i o n re g is tra re , Access v e rific m a i n t i d ac s u n t s a tis f c u te re g u lile de v a lid a re . A i v z u t acest lu c r u i n exem plele a n te rio a re . D a c s u n t s a tis f c u te re g u lile de v a lid a re la n iv e l de cm p, Access v e rific n d e p lin ire a re g u lilo r la n iv e l de n re g is tra re , u n e o ri d e n u m ite re g u li de v a lid a re la n iv e l de tabel. R egulile la n iv e l de ta b e l s u n t u tile cnd tre b u ie s c o m p a ra i m a i m u lte c m p u ri p e n tru a d e te rm in a dac s u n t n d e p lin ite sa u n u a n u m ite c o n d iii. Logica re g u lilo r de v a lid a re la n iv e l de ta b e l este adesea m u lt m a i com ple x, deoarece tre b u ie v e rific a te m a i m u lte c m p u ri. A cest co n c e p t v a fi m a i b in e ilu s tr a t p r in in te rm e d iu l u n u i e xem plu.

Proprieti la nivel de cm p
D ac v a m in tii, tre b u ie spe cificate n u m e le i p re n u m e le c lie n tu lu i care este pe rs o a n fizic, re s p e c tiv n u m e le firm e i. F ig u ra 6 .2 7 p re z in t , la care a ve i acces d ac a p s a i b u to n u l P rop erties, de pe b a ra de in s tru m e n te M a in Access. C aseta de d ia lo g T a ble P ro p ertie s v p e rm ite s s p e c ific a i

144

PARTEA A III-A - N T R E IN E R E A BAZEI

DATE

m a i m u lte p r o p rie t i la n iv e l de ta b e l, in c lu s iv p ro p rie t i n r u d ite c u v a li darea. D u p c u m ve d e i, u n ta b e l, ca i u n cm p, are o p ro p rie ta te V a lid a tio n R ule i u n a V a lid a tio n Text.
F IG U R A 6 .2 7 Caseta de dialog Table Properties v pe rm ite s spe cifica i p ro p rie t ile V a lid a tio n Rule i V a lid a tio n T ext p e n tru u n tabel.
Generl J Description....................... Valdation R ule.................. F ilte r...................... .. Order B y . . ................... Subdatasheet Mar ne. . . . ([FirstName] Is Not Null And [LastNan Either th e First and Last Name Or Ore

[Auto]

lin k Master R e id s .......... Subdatasheet H eight. . . .0" Subdatasheet Expanded. No

P roprietatea Validation Rule


C o n tin u n d e xe m p lific a re a , re g u la de v a lid a re u rm to a re v v a a s ig u ra c p e n tru o ric e c lie n t s u n t p re cizate n u m e le i p re n u m e le , re s p e c tiv n u m e le firm e i, d u p caz:

[FirstName] Is Not Nuli And [LastName] Is Not Nuli) Or ([OrganizationName] Is Not Nuli)
M e rg e i m a i d e p a rte i s p e c ific a i v a lo rile p e n tru Addressl, City, State, ZipCode i Phone, l s n d n eco m p le ta te c m p u rile FirstName, LastName i OrganizationName. F ig u ra 6 .2 8 p re z in t caseta de d ia lo g c u m e s a ju l de eroare pe care l v a vedea u tiliz a to r u l. V e i u tiliz a p ro p rie ta te a V a lid a tio n T e x t p e n tru a rezolva aceast pro b le m .

F IG U R A 6 .2 8

by the validation rule ']FirstName] Is Not Null Arid [lastNarne] Is Not Ndl) O D p Enter n a d ep lin ire a for this field can accept[Or* a mofo values are fohibed J Is Not Null)' set foru 'Ctent'. value that the expression { . tu tu r o r re g u lilo r la n ivel de cm p, Access va testa reg ula la nive l de rn d.

Prop rietatea Validation Text


A a c u m a i v z u t deja, p ro p rie ta te a V a lid a tio n T e x t v p rm ite s c re a i m esaje p rie te n o a se fa de u tiliz a to r. n a cest caz c o n fig u ra i p ro p rie ta te a V a lid a tio n T e x t a stfe l: tre b u ie sp ecificate fie n u m e le i p re n u m e le c lie n tu lu i (dac este p e rs o a n fiz ic ), fie n u m e le firm e i. M e rg e i m a i d eparte i re p e ta i te s tu l a n te rio r. F ig u ra 6 .2 9 p re z in t m e s a ju l p rie te n o s fa de u tiliz a to r care apa re (n u u ita i, m e s a ju l d e p ind e de te x tu l in tro d u s , care n u tre b u ie n e a p ra t s fie n lim b a englez - n .tr.).

CAPITOLUL 6 MENINEREA INTEGRITII PRIN REGULI DE VALIDARE


F IG U R A 6 .2 9 Proprietatea V a lid a tio n T ext p e n tru u n tabel ofer u n mesaj prietenos fa de u tiliz a to r.
Either the First and Last Name Or Organization Name must be specifted

145

____

lL-..g.Z:l

Help

D u p ce in tro d u c e i n u m e le i p re n u m e le sa u n u m e le firm e i, ia r celelalte re g u li s u n t s a tis f c u te , v e i p u te a s tre c e i la o n o u n re g is tra re , s a lv n d n re g is tra re a c u re n t .

Rezum at
S n u cre d e i c o baz de date va m p ie d ic a n to td e a u n a u tiliz a to r u l s in tro d u c da te n e va lid e . P e n tru a m e n in e in te g rita te a bazei de date, fie a p lic a ia p e n tru baze de date, fie c h ia r baza de date tre b u ie s fie d o ta te cu lo g ica necesar p e n tru v a lid a re a d a te lo r. D ac in tro d u c e i logica de v a lid a re n b aza de date, v e i f i n to td e a u n a a s ig u ra t p riv in d in te g rita te a d a te lo r, deoarece, la u r m a u rm e i, to a te a p lic a iile tre b u ie s u tilize ze b aza de date p e n tru a s a lv a datele. A a c u m a i v z u t, e xis t d o u n iv e lu ri de v a lid a re : la n iv e l de c m p i la n iv e l de n re g is tra re (sau r n d ). V a lid a re a la n iv e l de n re g is tra re m a i este d e n u m it v a lid a re la n iv e l de tabel. C nd s a lv a i datele, baza de d a te v a v e rific a m a i n t i d ac s u n t n d e p lin ite re g u lile la n iv e l de cm p. D a c ele s u n t n d e p lin ite , v o r f i v e rific a te a p o i re g u lile la n iv e l de n re g is tra re . D ac i acestea s u n t n d e p lin ite , s u n te i la u n pas de a p u te a salva datele. D u p c u m v e i vedea n c a p ito lu l u rm to r, n c n u a i s c p a t de p ro b le m e . C o n c e p tu l de in te g rita te a d a te lo r se e x tin d e la re la iile d in tre e n tit i. A ce st lu c r u este n u m it in teg ritate re feren ia l i ne v o m o c u p a de el n c a p ito lu l u rm to r.

BAZELE INTEGRITII REFERENIALE


n acest ca p ito l:
Ce este in te g rita te a re fe re n ia l ? Im p o rta n a m e n in e rii in te g r it ii re fe re n a le M F u n c io n a re a in te g r it ii re fe re n ia le R e zu m a t

148

PARTEA A III-A - N T R E IN E R E A B AZEI DE DATE

C a p ito lu l a n te rio r v -a pre zen tat co n ce ptu l de validare a datelor. R ecapitulnd, v a lid a re a d a te lo r, fie la n iv e l de c m p sau de n re g is tra re , are ca scop s se asig u re c n baza de date s u n t salvate n u m a i date valide. V a lid a re a d a te lo r se o c u p de ta b e lu l n care s u n t d e fin ite re g u lile . C u a lte c u v in te , re g u lile de v a lid a re p e n tru ta b e lu l C lie n t a u ca o b ie c t im p a c tu l n o ilo r date a s u p ra a c e s tu i ta b e l. Im p a c tu l n o ilo r date despre c lie n i a s u p ra ta b e lu lu i C o n ta c t depete s c o p u l re g u lilo r de v a lid a re . n tim p ce re g u lile de v a lid a re se o cu p de p ro b le m e le d in in te r io r u l u n u i tabel, re g u lile de in te g rita te referenia l ( referenial integrity - RI) se o c u p de p ro b le m e le d in tre tabele. De e xe m p lu , este p e rm is tergerea u n e i a n u m ite n re g is tr ri? D ac da, ce se va n t m p la c u datele d in tab ele n ru d ite ? E ste p e rm is crearea de date n tr - u n ta b e l co p il? N u se p oate r s p u n d e la aceste n tre b ri n c o n te x tu l u n u i s in g u r tabel. Problem ele pe care le rid ic aceste n tre b ri i r s p u n s u rile lo r s u n t d is c u ta te n acest cap itol. A ne xa B c o n in e o lis t d e ta lia t a re g u lilo r de in te g rita te re fe re n ia l p e n tru baza de date T im e E n t iy a n d B illin g .

Ce este in teg ritatea referenial?


In te g rita te a re fe re n ia l (referenial integrity - RI) este u n sistem care a sig u r m e n in e re a v a lid it ii r e la iilo r d in tre tabele. G n d ii-v la e x e m p lu l cla sic a l c o m e n z ilo r i a l d e ta liilo r despre acestea. F o lo s in d ceea ce a i n v a t p n a c u m , t i i d e ja c aceasta este o re la ie u n u la m u li i c aceast re la ie este fa c ilita t de p re lu a re a c h e ii p rim a re d in com enzi n d e ta lii despre com enzi. C o n c lu z ia logic a a ce stu i lu c r u este c, dac n u e xist o com and, n u poate e x is ta u n d e ta liu despre aceasta. Se p u n e n tre b a re a C u m p o t fi im p u s e re g u lile d in tre ta be le ? R s p u n s u l c o n st n crearea a ceea ce se n u m e te restricii pentru integritatea referenial (RI constraints). D ei bazele de date ca cele d in A ccess a u ca p a c ita te a de a s u p o rta in te g rita te a re fe re n ia l , tre b u ie s e c h ip a i baza de d a te c u tiin a de a u tiliz a aceast c a p a c i tate.

Im portana m eninerii integritii refereniale


M e n in e re a in te g r it ii re fe re n ia le este im p o rta n t , d in aceleai m o tiv e pe care le -a m p re z e n ta t n c a p ito lu l a n te rio r, la v a lid a re a d a te lo r. C a p a cita te a u n e i baze de date de a o fe ri in fo r m a ii corecte este d ire c t le gat de c a lita te a d a te lo r. C a p a c ita te a de a o fe ri in fo r m a ii corecte este d ire c t le g a t i de ca lita te a re la iilo r d in tre tabele. Im p o rta n a m e n in e rii in te g rit ii refereniale va fi fo a rte c la r n c a p ito lu l u rm to r, cn d v o m p re ze n ta lim b a ju l SQ L (S tru c tu re d Q u e ry Lang u ag e). P n a tu n c i, s e ciu n e a u rm to a re v a se rvi ca s c u rt p re ze n ta re p e n tru ce u rm eaz.

A P iT O L U L ?

BAZELE INTEGRITII REFERENIALE

149

S c o n s id e r m e x e m p lu l ip o te tic s im p lu a l c lie n ilo r i t ip u r ilo r acestora. U n a n u m it tip de c lie n t p oate c a ra c te riz a u n u l sa u m a i c lie n i. De aceea, ch e ia p rim a r a t ip u lu i de c lie n t este p re lu a t d in ta b e lu l c u date despre c lie n i. E ste v o rb a despre o re la ie s im p l de tip u n u la m u l i i a r tre b u i ca p n a c u m s f i i fa m ilia r iz a t c u a cest con cept. C o n tin u n d e x e m p lu l ip o te tic , s p re s u p u n e m c d o r ii s c re a i u n e xtra s c u date g ru p a te d u p tip u l de c lie n t. C u a lte c u v in te , e x tra s u l va c o n in e d escrierea t ip u lu i de c lie n t i d a te le selectate despre acesta. P e n tru a re a liza acest e xtras, a ve i nevoie de in fo r m a ii i d in ta b e lu l despre c lie n i i d in ta b e lu l cu date despre t ip u l c lie n ilo r. A a c u m v e i vedea n c a p ito lu l u rm to r, care tra te a z lim b a ju l SQ L, p e n tru a re a liza acest lu c r u tre b u ie s a p lic a i o te h n ic d e n u m it re a liz a re a u n e i le g tu ri sau a u n e i u n iu n i (/oin) n tre cele d o u tabele. n tre b a re a pe care o v e i p u n e este C u m p o t re a liz a o le g tu r n tre d o u tabe le ? . R s p u n s u l este re p re z e n ta t de re la ia d in tre tabele. N u u ita i c tabele le c o n in o in fo rm a ie co m u n : id e n tific a to ru l t ip u lu i de c lie n t. A ceasta este le g tu ra c e ru t p e n tru u n iu n e , ia r u n iu n e a v v a p e rm ite s c o m b in a i d ate le d in tab ele d ife rite . Ce s -a r n t m p la dac a r fi p e rm is ru p e re a le g tu rii? S lu m n c o n s id e ra re u rm to a re le n tre b ri:

M E ste p o s ib il s a tr ib u i i u n u i c lie n t u n tip in e x is te n t?


11 E ste p o s ib il s te rg e i u n tip de c lie n t care a fo s t a tr ib u it cel p u in

u n u i c lie n t? A ceste n tre b ri a u u n e lem e nt co m u n : o le g tu r ru p t . C o n se cin a ru p e r ii le g tu rii este p ie rd e re a d a te lo r. M a i p re cis, o rice c lie n t c ru ia i se a trib u ie u n tip in e x is te n t v a fi o m is d in e x tra s u l de date. S ne g n d im ce -a r fi dac v i s -a r p e rm ite s te rg e i u n t ip de c lie n t care a fo s t a tr ib u it de ja cel p u in u n u i c lie n t. D a c te rg e rile n u s u n t re s tric io n a te , ris c a i s c o m p ro m ite i in te g rita te a re la ie i. R e s tric iile p riv in d in te g rita te a re fe re n ia l v a p r exact de a cest tip de s itu a ii. Cel m a i b u n in d ic a to r a l in te g r it ii bazei de date este c a lita te a i a c u ra te e a in fo rm a iilo r pe care le p ro d u ce . C onceptele p re ze n ta te n aceast s e c iu n e v o r d eve ni m a i clare n c a p ito lu l u rm to r, c n d v e i s tu d ia lim b a ju l SQL.

Funcionarea integritii refereniale


E x is t p a tr u t ip u r i de r e s tr ic ii p riv in d in te g rita te a re fe re n ia l . Acestea s u n t: tergerile re s tric io n a te , in tro d u c e re a re s tric io n a t a datelor, tergerile n cascad i a c tu a liz rile n cascad. N um ele fie c ru i tip de r e s tric ii descrie c u a cu ra te e fu n c ia respe ctiv. S e ciu n e a u rm to a re p re z in t aceste p a tru t ip u r i de r e s tr ic ii p r iv in d in te g rita te a re fe re n ia l , p re c u m i m o d u l n care p o t fi a p lic a te . Fiecare tip v a f i e x e m p lific a t n c o n te x tu l ta b e le lo r C lie n t i C o n ta c t d in b aza de date T im e E n try a n d B illin g .

150

PARTEA A III-A - N T R E IN E R E A BAZEI DE DATE

S tabilirea regulilor de in teg ritate referenial


n a in te de a vedea c u m fu n c io n e a z re s tric iile , baza de date tre b u ie s fie e c h ip a t c u c a p a c ita te a de a s u p o rta in te g rita te a re fe re n ia l . n c a p ito lu l 5 a i c re a t r e la ii n tre tabelele d in b aza de date T im e E n try a n d B illin g . D e fin ire a r e la iilo r d in tre aceste tabele este p r im u l pas p e n tru a d a bazei de d ate c a p a c ita te a de a im p u n e in te g rita te a re fe re n ia l . A p a re caseta de d ia log E d it R e la tio n s h ip s , care v p e rm ite s s p e c ific a i m o d u l n care v o r fi im p u s e r e s tr ic iile p r iv in d in te g rita te a re fe re n ia l (vedei fig u ra 7.1).

F IG U R A 7.1 Caseta de dialog E d it Relationships v pe rm ite s spe cifica i m o d u l n care s u n t im p use re s tric iile p riv in d in te g rita te a referenial.

' &atior< hpi

tj Oeatf tat in O egnview I [Crea) at by i&fig wim d 8 ['O by . S 3 Case Oert 13 P ChertCas * C o 0 Cout 3 H Department~ ! E'fpbyee 3 H 3 ErtctoyeeCase ErrployeeCla 13 !Invoice 33 * E3 Jud E3 Trr ntryOita e^yy

CfcnUD CtenrType FirNi l-dd elr>'.jal lastNsme OrganeationNime Address ZoCede Phone Tte)Qjy: ___

ContadlD FitName LasNam e Title Belated Table;jefy: ] cortxi * IOi-rtlD Cancei

P' Wot Peinwitnl lrgry Cade Update P .U*d *

C'wte ftew.. j

C ase* Dele Relates kecvds

K T V 7

R aioni>0 Tj

; Coe-To-Many

*R eady

D ac d o r ii s im p u n e i in te g rita te a re fe re n ia l , va tre b u i s a c tiv a i (s b ifa i) o p iu n e a E n fo rc e R e fe re n ia l In te g rity . F ig u ra 7.1 p re z in t caseta de v a lid a re p r in care p u te i a c tiv a aceast o p iu n e . D u p a c tiv a re a ei, m a i p u te i a ctiva , o p io n a l, d o u t ip u r i de r e s tric ii. A cestea s u n t a c tu a liz rile n cascad i te rg e rile n cascad. Ce im p lic a ie va avea acest lu c r u a s u p ra c e lo rla lte d o u t ip u r i de re s tric ii? S in g u ru l tip care n u este o p io n a l este cel a l te rg e rilo r re s tric io n a te . N u v a avea sens v re o d a t s p e rm ite i e x is te n a u n e i n r e g is tr r i c o p il c a re re fe r la o n r e g is tr a re p r in te in e x is te n t . te rg e rile re s tric io n a te p o t fi co n sid e ra te o p u s u l te rg e rilo r n cascad, n re g is tr rile p rin te se p o t a fla n u n a sau d o u s itu a ii. M a i n t i, dac n c e rc a i s te rg e i o n re g is tra re p rin te , a tu n c i va tre b u i s te rg e i i n re g is tr rile c o p il c o re s p u n z to a re . A ltfe l, v e i fi n s itu a ia de a avea n re g is tr ri c o p il care re fe r n re g is tr ri p rin te in e x is te n te . n a l d oilea r n d , d a c n c e rc a i s te rg e i o n re g is tra re p rin te care are n re g is tr ri

CAPITOLUL 7 BAZELE INTEGRITII REFERENIALE

151

co p il, n u v i se va p e rm ite a cest lu c ru . D ac d o rii s te rg e i n re g is tra re a p rin te , v a tr e b u i s te rg e i m a i n t i n re g is tr rile co p il. A a c u m p u te i vedea, te rg e rile re s tric io n a te i te rg e rile n cascad se e x c lu d re ciproc.

tergerile restricio n ate


A cest tip de r e s tr ic ii n s e a m n c o n re g is tra re p rin te n u p oate f i tears dac e xis t u n a s a u m a i m u lte n re g is tr ri cop il. P e n tru a s u p o rta tergerile re s tric io n a te , caseta de v a lid a re Cascade D elete Related R ecords d in caseta de d ia lo g E d it R e la tio n s h ip s tre b u ie s fie n u fie b ifa t . F ig u ra 7 .2 p re z in t n re g is tr rile d in tabelele C lie n t i C o n ta c t care s u n t u tiliz a te p e n tru a de m o n s tra fu n c io n a re a in te g r it ii re fe re n ia le . F ig u ra 7 .3 p re z in t c a p a c i ta te a p ro g ra m u lu i Access de a p rezenta (afia) s im u lta n n re g istra re a p rin te i n re g is tr rile co pil.

F IG U R A 7 .2 Tabelele C lie n t l C o n ta ct n vizu alizare a D atasheet.

a Ckrnt able

(AuloNumb

~ - ;,

ori H.L-'-.lI

I *I * 1 :

s msmm&
Tille

A.l.liew 1 Ac Tomitu Compiny 123 Main Sliftfl N'A N/A N/A

m s m i
Cnll>cHD I AutoNumbet) ClienlID |

i l l SE
HmH.una MiiUllalnlli.il | LaslN.une \
Plmne

',"}y ,
I

>!: 1 I 11

f i ' '

. ' iS " . '

.........

! i i i

i.

D ac v a m in tii, n v iz u a liz a re a D a ta sh e e t p u te i efe ctu a orice o p e ra ie cu date. P e n tru a terge o n re g is tra re , tre b u ie d o a r s s e le cta i n tre g u l r n d , e xecutn d c lic pe m a rc a ju l n re g is tr rii d in e xtre m ita te a stng a v iz u a liz rii D a tashee t. n tr u c t s u n t a c tiv a te te rg e rile re s tric io n a te , c n d n c e rc a i s te rg e i o n re g is tra re d in ta b e lu l C lie n t n r u d it cu u n a d in ta b e lu l C o n ta ct, Access genereaz o caset de d ia lo g c u u n m esaj de eroare, p re z e n ta t n fig u ra 7.4.

152

PARTEA A lll-A - N T R E IN E R E A BAZEI DE DATE


Dac executai clic pe +/-, putei expanda/contracta afiarea datelor copil.

F IG U R A 7 .3 Access are capacitatea de a afia sim u lta n nreg istrrile p rin te i copil.

Eocotd* Ioofe ]gncbfir

i a ? .
m =

: % 'il 1 '
S i :# H M M | Addtss | Addiess2 Ace Tomalo Company 123 Main Street N/A I Phon | Extensin Email | .................. : n/a ... j V< * ' < 1 3 ) *1 City Philadelphia

TT

1.** a t i m f l T I Client Typ FiistNam Middlaliihial LastName N/A N/A N/A 58 f3 TW 1 ContactlD | FiretName MIddlilnItlal | LastNam* | 5 John 1Smith m 1*1 (AutoNumbiir/ N/A N/A N/A (AutoNumbert 1

rgaiilzatlsnNanis

.......

N/A

Racon* t<< l l

> I> l*l cf

I [i CKaraar wiid'to spatfy typ cf diftnt: 8-8utipgg, l-*ntfcvk*j<

F IG U R A 7 .4 Access genereaz o caset de dialog cu u n mesaj de eroare la nclcarea tergerilor restricionate.

Introducerea restricio n at a datelor


In tro d u c e re a re s tric io n a t a d a te lo r n s e a m n c o n re g is tra re c o p il n u poate re fe ri u n p rin te in e x is te n t. n re g is tr rile c o p il care re fe r u n p rin te in e x is te n t s u n t d e n u m ite i n re g is tr ri orfan e. In tro d u c e re a re s tric io n a t a d a te lo r este o b lig a to rie p e n tru in te g rita te a re fe re n ia l . F ig u ra 7 .5 p re z in t caseta de d ialo g cu m e s a ju l de eroare, generat de Access la n c lc a re a in tr o d u c e r ii re s tric io n a te a d a te lor.
F IG U R A 7 .5 Access genereaz o caset de dialog cu u n mesaj de eroare la nclcarea in tro du cerii restricionate a datelor.
. i canrot addor diaog*a re w d twcajssarelated recrrd raqjred tatJe,dtant',

CAPITOLUL 7 BAZELE INTEGRITII REFERENIALE

153

tergerile n cascad
te rg e rile n cascad n s e a m n c, d ac este te a rs o n re g is tra re p rin te , a tu n c i to a te n re g is tr rile c o p il s u n t terse a u to m a t. F ig u ra 7 .6 p re z in t o p iu n ile care tre b u ie co n fig u ra te p e n tru a a ctiva acest tip de re s tric ii p riv in d in te g rita te a re fe re n ia l . C nd v e i n c e rc a s te rg e i o n re g is tra re p rin te , Access v a genera o caset de d ia lo g care v in fo rm e a z c v o r fi terse i n re g is tr rile n ru d ite dac v e i c o n tin u a o p e ra iu n e a de tergere (vedei fig u ra 7.7).
F IG U R A 7 .6 B ifare a o p iu n ii Cascade Delete Related Records duce la activarea te rg e rilo r n cascad.

~7

*<< 1Cl-fitD L3iN.yn? :


, ^ : ]

,,'

? !*
! ; jI C ancel

; ; . ; - '| ::.

' > ;> ' : ' - *

F IG U R A 7.7 n a in te de tergerea n re g is tr rilo r n ru d ite , Access genereaz o caset de dialog p e n tru ca u tiliz a to ru l s confirm e c o n tin u a re a operaiei.
you want delete'these records?

iC.gZl

A ctu alizrile n cascad


A c tu a liz rile n cascad n s e a m n c dac se m o d ific c heia p rim a r a u n e i n re g is tr ri p rin te , este a c tu a liz a t i cheia e xte rn a tu tu r o r n re g is tr rilo r co p il. P e n tru a a c tiv a aceast re s tric ie p r iv in d in te g rita te a re fe re n ia l , tre b u ie s b ifa i caseta de v a lid a re Cascade U p d a te R elated Records. F ig u ra 7 .8 p re z in t seta re a necesar p e n tru a ctiv a re a o p iu n ii c u a cest n u m e .

154

PARTEA A III-A - N T R E IN E R E A BAZEI DE ATE

F IG U R A 7 .8 P rin bifa rea casetei de valida re C a scid e U pdate Related Records v e i activa actu alizarea n cascad a n re g is tr rilo r.

| ' '" "


CfcntID

'

Bwd Tab*/j ry:

~ 3 ~ ~
^ . Jonlrt* j

? .

MabanshipTytw!

1 1 ' . :
OnTo-Mny

D ac v a m in tii, n p ro ie c tu l bazei de date T E B s u n t u tiliz a te ch e i p rim a re su ro g a t. A cestea n u c o n in in fo r m a ii s e m n ific a tiv e despre n re g is tr rile pe care le in d e n tific n m od u n ic . Ele se deosebesc de cheile s e m n ific a tiv e p r in fa p tu l c p o t fi a lc tu ite d in d o u sa u m a i m u lte c m p u ri. De e xem plu, o cheie p rim a r poate fi a lc tu it d in c o m b in a ia n tre n u m e le de fa m ile , p re n u m e , ora i s ta t. A c tu a liz rile n cascad rezolv s itu a ia n care se m o d ific u n a sau m a i m u lte com ponente ale cheii. N u u ita i, p e n tru a su p o rta in te g rita te a re fe re n ia l i re la iile d in tre tabele, ch e ia p rim a r a p rin te lu i tre b u ie s fie p re lu a t n to a te n re g is tr rile co p il, a ltfe l s is te m u l n u va fu n c io n a . A v a n ta ju l c h e ilo r s u ro g a t este, evident, fa p tu l c n u tre b u ie s v fa ce i p ro b le m e d ac se m o d ific ch e ia p rim a r . n consecin , n u tre b u ie s v p re o cu p e n e ce sita te a a c tu a liz rilo r n cascad sa u a c o m p le x it ii s u p lim e n ta re . D a c d o r ii s re c a p itu la i aspectele d is c u ta te despre cele d o u t ip u r i de c h e i p rim a re , o p rii-v p u in i r e c itii c a p ito lu l 4.

Rezum at
In acest c a p ito l a m p re z e n ta t u n u l d in tre conceptele cele m a i im p o rta n te p riv in d bazele de date - in te g rita te a refere nia l . Cele p a tru tip u r i de re s tric ii p riv in d in te g rita te a re fe re n ia l d is c u ta te n acest c a p ito l s u n t: te rg e rile re s tric io n a te , in tro d u c e re a re s tric io n a t a d a te lo r, te rg e rile n cascad i a c tu a liz rile n cascad. In te g rita te a re fe re n ia l , care com pleteaz re g u lile de in te g rita te la n iv e l de cm p i la n iv e l de n re g is tra re , re p re z in t u n in s tr u m e n t pe care a r tr e b u i s -l u tiliz a i p e n tru a a s ig u ra c a lita te a d a te lo r

CAPITOLUL 7 BAZELE INTEGRITII REFERENIALE

155

d in tr-o baz de date. Ideea c o a p lic a ie este la fel de b u n ca i baza de date c u care lu c re a z a fo s t e n u n a t de m a i m u lte o ri n aceast carte. C o n tin u n d p u in aceast idee, c a lita te a u n e i baze de date este aceeai cu a d a te lo r pe care le stocheaz i a in fo r m a iilo r pe care le poate oferi. Partea a IlI- a a c r ii se n cheie c u acest ca p ito l. R e c a p itu l n d , p a rte a I a p re z e n ta t conceptele e se nia le ale b a ze lo r de date. P artea a Il-a v -a g h id a t n p ro c e s u l p ro ie c t rii i c o n s tr u ir ii u n e i baze de date. P artea a IlI-a a tr a ta t n tre in e re a bazei de d ate p r in in te rm e d iu l re g u lilo r de v a lid a re i a l in te g r it ii re fe re n ia le . P artea a IV -a are ca scop extragerea in fo r m a iilo r d in tr-o b az de date fo lo s in d lim b a ju l S Q L (S tru c tu re d Q u e ry Language).

PI EXTRAGEREA NFORMAIILOR DIN BAZA DE }A T E NTRODUCERE N SQL

IV

' - ' -

I ii

8
SQL - ELEMENTE , GENERALE
n acest ca pito l:
P rezentare g eneral a lim b a ju lu i S Q L D e c la ra ia Select R e z u ltate le p rim e i f iltr r i: u tiliz a re a cla u ze i Where P rim a o rganizare a re z u lta te lo r: u tiliz a re a clauzei Order By H C o m b in a re a m a i m u lto r tabele: u tiliz a re a d e c la ra ie i Join C om bin area m a i m u lto r s e tu ri de rezultate: u tiliz a re a clauzei

Union
R e zu m a t

160

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

S c o p u l p rim e i ju m t i a acestei c ri a fo s t p ro ie cta re a i c o n s tru ire a bazei de date. A d o u a ju m ta te , care ncepe c u acest c a p ito l, se co ncentrea z a s u p ra fu n c io n rii acesteia. N u u ita i, va lo a re a bazei de date se m so a r p r in u tilita te a in fo rm a iilo r care p o t fi extrase d in ea. A cest c a p ito l i c a p ito lu l u rm to r p re z in t u n n o u lim b a j, n u m it SQL (Stru.ctu.red Query Language). S Q L este u n lim b a j in d e p e n d e n t de bazele de date care p e rm ite in te ro g a re a d a te lo r i e fe ctu a re a o p e ra iilo r n u m ite pe s c u r t CRUD (Create, Update and Delete - creare, a c tu a liz a re i tergere). n tr u c t lim b a ju l n u d e p in d e de bazele de date, c o n s tru c iile sale, pe care le v e i n v a , s u n t a p lic a b ile p e n tru S Q L Server, O racle, In fo rm ix , Sybase i D B 2, p e n tru a m e n io n a n u m a i cteva a p lic a ii p e n tru baze de date.

Prezentare general a limbajului SQL


La fel c u m p e n tru lim b a je le de p ro g ra m a re p re c u m B asic, C, C++, J a v a i Pascal e x is t m a i m u lte v e rs iu n i, aa i p e n tru S Q L e x is t m a i m u lte v e r s iu n i. U lt im a d in tr e ele este n u m it A N S I-S Q L 1 9 9 2 . ANSI este p re s c u rta re a de la American National Standard Institute. U ltim a v e rs iu n e s ta n d a rd a lim b a ju lu i S Q L a fo s t c o d ific a t n 1992. U n s ta n d a rd n u este dect o specificare p e n tru m o d u l de fu n c io n a re al u n u i obiect. D ac p ro d u s u l p e n tru baze de d ate c u care lu c r a i s u p o rt s ta n d a rd u l ANSI, p u te i f i s ig u r c v o r fi s u p o rta te elem entele e seniale ale lim b a ju lu i. A ceasta n u n se a m n c o a n u m it baz de da te tre b u ie s s u p o rte to a te p rile s ta n d a rd u lu i, ci m a i degrab, de e xe m p lu , c d e c la ra ia S elect d in O racle va fu n c io n a la fel ca i n S Q L S erver. V e rs iu n ile a n u m ito r p ro d u s e p e n tru baze de date se e x tin d adesea d in c o lo de s ta n d a rd . De e xe m p lu , lim b a ju l S Q L p e n tru server este d e n u m it T-SQL, ia r p e n tru O racle este d e n u m it PL/SQL. Fiecare d in tre acestea este n u m it su p e rs e t a l s ta n d a rd u lu i ANSI. C u a lte cu v in te , v e rs iu n ile T -S Q L i P L / SQ L ale s ta n d a rd u lu i A N S I n u s u p o rt n u m a i s ta n d a rd u l A N S I-92, c i i c o n s tru c iile lim b a ju lu i specifice bazei de date. V e rs iu n e a de S Q L p e n tru Access re s p e c t n d ea p ro ap e s ta n d a rd u l A N SI. De fa p t, S Q L este fo rm a t d in tre i s u b lim b a je : D D L - D a ta D e fin itio n Language (lim b a ju l de d e fin ire a datelor); D M L - D a ta M a n ip u la tio n Language (lim b a ju l de m a n ip u la re a datelor); D C L - D a ta C o n tro l Language (lim b a ju l de c o n tro l a l datelor). A ce st c a p ito l i cel care u rm e a z se v o r co n c e n tra a s u p ra s u b lim b a ju lu i D M L, cel pe care, p ro b a b il, l v e i fo lo s i cel m a i des. S u b lim b a ju l D M L este a lc tu it d in com enzile Select, Insert, Update i Delete. A ce st c a p ito l va s tu d ia n u m a i c o m a n d a Select i clauzele asociate ei, ia r c a p ito lu l u rm to r va s tu d ia u tiliz a re a a v a n s a t a c o m e n z ilo r Select, Insert, Update i Delete. C t despre D D L, n m a jo rita te a c a z u rilo r v e i u tiliz a in s tru m e n te le grafice p e n tru crearea ta b e le lo r i coloanelor. Access n u s u p o rt s u b lim b a ju l

C P IT o l u l 6 SQL - ELEMENTE GENERALE

161

DCL. C u to a te acestea s u b lim b a je le D D L i D C L v o r fi p re ze n ta te pe s c u rt n se c iu n e a u rm to a re .

Lucrul in teractiv cu SQL n Access


U nele p ro d u s e p e n tru baze de date a u o fe re a str care p e rm ite u tiliz a to r u lu i s scrie n m o d in te ra c tiv co m en zi n SQL. A ccess are i el o a s tfe l de fe re a str . T o tu i, p e n tru a o fo lo si, tre b u ie s d e p ii cteva obstacole. n m a jo rita te a c a z u rilo r, v e i u tiliz a fe re a s tra S Q L n Access p e n tru a crea in te ro g ri S Q L Select. A a c u m v e i vedea, e x is t n S Q L c o n s tru c ii care v p e rm it s d e fin ii i obiecte ale bazei de date. D e i fe re a s tra SQ L d in Access n u a fo s t p ro ie c ta t n acest scop, ea s u p o rt fu n c iile D a ta D e fin itio n L a n guage d in SQL. P e n tru a avea acces la fe re a s tra S Q L d in Access, p a rc u rg e i p a ii u rm to ri: 1. L a n s a i p ro g ra m u l Access i alegei crearea u n e i n o i baze de date. 2. n fe re a s tra p rin c ip a l a b azei de date, d in lis ta O bjects, se le cta i Q u e rie s . L is ta O b je c ts se a fl n p a n o u l d in s t n g a a l fe re s tre i p rin c ip a le a bazei de date. 3. n p a n o u l d in dreapta, selectai o p iu n e a p e n tru crearea u n e i in te ro g ri n v iz u a liz a re a D esign. 4. n c h id e i caseta de d ia lo g S ho w T able, care v p e rm ite s a d u g a i tabele n in te ro g a re a Select. N u e x is t tabele, p e n tru c baza de date este goal! 5. D u p ce n c h id e i caseta de d ia lo g S h o w T able, alegei d in b a ra de in s tru m e n te v iz u a liz a re a SQL. A ceasta este p rim a o p iu n e d in stnga, e tic h e ta t SQL. 6. D u p ce p a rc u rg e i acest pas, fe re a s tra de p ro ie c ta re a n re g is tr rii v a d isp re a , a p o i va apre a fe re a s tra Select Q u e iy . P e n tru a r u la o a n u m it n re g is tra re , tre b u ie s e x e c u ta i c lic pe b u to n u l R u n Q uery, de pe b a re de in s tru m e n te Q uery. A ce st b u to n este re p re z e n ta t su b fo rm a u n u i s e m n de e xclam a ie. F ig u ra 8.1 p re z in t re z u lta te le pe care a r tr e b u i s le o b in e i. Pe p a r c u r s u l a c e s tu i c a p ito l, v e i n t ln i s e r ii de p a i ca re n c e p c u d eschide re a u n e i fe re s tre SQL. P e n tru aceasta v e i u rm a p a ii d e s c ri i m a i sus. n m a jo rita te a c a z u rilo r, vei n c h id e sesiu n e a de in te ro g a re f r a salva in te ro g a re a . A c e s t lu c r u este v a la b il m a i c u seam p e n tru com enzile d in D D L. V o r f i sa lvate n s u n e le d in tre com enzile lim b a ju lu i D M L. n orice caz, dac d o r ii s s a lv a i vreo c o m a n d SQL, p u te i face acest lu c ru e xe cu t n d c lic pe b u to n u l Save de pe b a ra p rin c ip a l de in s tru m e n te d in Access.

162

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


Butonul Run Query
* Query Ie View ni os ndo to

F IG U R A 8.1 Fereastra SQL v p e rm ite s d a i com enzi SQL n Access n m od in te ra ctiv.

Fereastra SQL

Objects

.[ Designview Oeate quefy j Create *lery by using wuerd

& a ji

Sublim bajele DDL i DCL din SQL


Access axe u n s u p o rt lim ita t fa de s u b lim b a ju l D D L, i n u s u p o rt s u b lim b a ju l D CL. Bazele de d a te c u m s u n t cele d in SQ L Server, O racle i D B 2, p e n tru a n u m i d o a r cteva, s u p o rt to ta l am bele s u b lim b a je . D C L v p e rm ite s o fe rii a n u m ito r u tiliz a to r i v a ria te p e rm is iu n i, ca de e xe m p lu S elect, In s e rt, U p d a te i Delete. Ia t u n e xe m p lu de d e cla ra ie S Q L care o fe r u tiliz a to r u lu i n u m it B ob p e rm is iu n e a de selectare a ta b e lu lu i C ustom e rs:

Grant select On Customers To Bob


n aceast s itu a ie , c nd B ob se conecteaz la baza de date, i se p e rm ite s execute u rm to a re a d e c la ra ie SQL:

Select * From Customers


D e i Access s u p o rt i ofer u tiliz a to r u lu i in te rfe e s p ecializate p e n tru a s u p o rta o a s tfe l de s che m de s e c u rita te , m e to d a de c o n tro l i d e fin ire a p e rm is iu n ilo r de s e c u rita te n u a fo s t im p le m e n ta t p r in s u b lim b a ju l DCL. D e ta liile p r iv in d im p le m e n ta re a fu n c iilo r de s e c u rita te n Access depesc s c o p u l acestei c ri.

C A P IT O L U L

SQ L-ELEM ENTE GENERALE

163

P e n tru a o b in e m a i m u lte in fo r m a ii despre im p le m e n ta re a s e c u rit ii n Access, c o n s u lta i fi ie r u l H elp. S u b lim b a ju l D D L a c io ne a z a s u p ra ta b e le lo r i coloane lor. P u te i a d ug a m o d ific a s a u r e n u n a la d e fin iia u n u i tab el. Ca i n c a z u l ta b e le lo r, p u te i aduga, m o d ific a sau re n u n a i la d e fin iia u n e i coloane. Ca i n ca zu l s u b lim b a ju lu i DCL, bazele de date d in S Q L S erver, O racle i D B 2 ofer s u p o rt d e p lin p e n tru D D L. S pre deosebire de s u b lim b a ju l D C L, Access s u p o rt lim ita t s u b lim b a ju l D D L. R u l n d c o d u l u rm to r n fe re a s tra SQL, v e i crea u n ta b e l n u m it C u stom e rs:

Create Table Customers


D e sig u r, c n d c re a i tabele, c re a i n acelai tim p i coloane. C o d u l u rm to r creeaz u n ta b e l n u m it C u sto m e rs, care c o n in e d o u c m p u ri, custid i name:

Create Table Customers (custid counter Primary Key,name text(40))


A a c u m a ra t i c o d u l, c m p u l custid este de tip A u to N u m b e r i are ro l de cheie p rim a r . C m p u l name are tip u l text, c u lu n g im e a de 40 de caractere. F ig u ra 8 .2 p re z in t re z u lta te le r u l r ii d e c la ra ie i C reate T able. In a fa ra e fe c tu rii a c e s to r o p e ra ii, p u te i m o d ific a i s tr u c tu ra ta b e lu lu i. C o d u l u rm to r m o d ific lu n g im e a c m p u lu i name d in 4 0 n 50 de caractere:

Alter Table Customers Alter name text(50)

F IG U RA 8 .2 Access ofer s u p o rt lim ita t p e n tru s u b lim b a ju l D D L d in SQL.

Ee Edt lneit lot*' Jrvjow (


0 tUe in Designviw Osa( tat* t yJrg C r by rtsrrnj Custt m s

Key,

Lochjp . M d S lii NswVaiue * Form CacO cn

long lreger Intiement ;> '< ' .0 ,: < ; . .

DcayivieM. Fe-Swtch panai. Fl-hip.

164

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

Access ofer s u p o rt lim ita t s u b lim b a ju lu i D D L i n p riv in a d e fin irii re la iilo r d in tre ta b e le i a re g u lilo r de v a lid a re la n iv e l de c m p i la n iv e l de n re g is tra re . D a to rit a c e s tu i s u p o rt lim ita t i m o d u lu i n care a fo s t p ro ie c ta t p ro g ra m u l Access, este fo a rte p ro b a b il c v e i u tiliz a in s tru m e n te le grafice p e n tru n tre in e re a ta b e le lo r i coloane lor. In acest s ta d iu , to t ce conteaz este s t i i ce este D D L i c p o s ib ilit ile sale s u n t lim ita te n Access, d a r n u i n a lte p ro g ra m e p e n tru baze de date. D u p aceast s c u rt p re ze nta re a lim b a ju lu i S Q L i a s u b lim b a je lo r sale, v o m trece la s u b lim b a ju l D M L (D ata M a n ip u la tio n Language), pe care l v e i u tiliz a n m a jo rita te a s itu a iilo r c nd lu c r a i n SQL. D M L este a lc tu it d in com enzile S e le c t , I n s e r t , U p d a te iD e le t e . U nele d in tre aceste com enzi a u clauze a d iio n a le care le in flu e n e a z fu n c io n a re a . S p u n e m la lu c r u baza de d ate T E B !

D eclaraia S e le c t
D e c la ra ia S e le c t este, d in tre toa te d e c la ra iile SQL, cea pe care o v e i u tiliz a n m a jo rita te a c a z u rilo r. In te ro g rile a u s o p u l u n ic de a extrage in fo r m a ii d in b a z a de date. P e n tru a n d e p lin i acest scop, v e i u tiliz a d e c la ra ia S e le c t . F ig u ra 8 .3 p re z in t o d e c la ra ie S e le c t fo a rte sim p l .

F IG U R A 8 .3 S im b o lu l * d in tr-o declaraie S e le c t este m etoda de a in d ic a pe s c u rt ta z e i de date c tre b u ie s retum e ze toate c m p u rile d in tr- u n tabel.

... . 4 inseit * Hfc

- iC l x , '

: .Dgri b- UOTQ''

11

iiil

' ' . - '

C i-

SQ L-ELEM ENTE GENERALE

165

C nd r u la i o declaraie n fereastra SQL, ferea stra este n lo c u it c u v iz u a liz a rea D a tash ee t. D a c v a m in tii d is c u iile a n te rio a re , c n d d e s c h id e i u n ta b e l p e n tru a p r iv i datele d in el, acesta este p re z e n ta t n v iz u a liz a re a D atashee t. C nd d e s c h id e i ta b e lu l C lie n t p e n tru a p r iv i datele, este ca i c u m a i e m ite d e c la ra ia S Q L Select * From Client. F ig u ra 8 .4 p re z in t re z u lta te le care v o r fi afiate.

F IG U R A 8 .4 Cnd deschidei u n tabel, v e i obine vizu alizare a D atasheet cu rezultatele u n e i in te rog ri.

Fii atent cnd modificai datele ntr-o nregistrare din vizualizarea Datasheet. In funcie de circumstane, acest lucru va duce la modificarea datelor stocate n tabele. Dac utilizai instrumentele de proiectare grafic a inte rogrilor, rezultatele pot fi marcate cu statutul read-only (numai citire). Proiectarea interogrilor este discutat detaliat n capitolul 10.

S electarea unor anum ite cmpuri


n m a jo rita te a c a z u rilo r, n u v e i d o ri s s e le c ta i to a te c m p u rile d in tr - u n ta b e l, c i n u m a i cteva d in tre ele. De e xe m p lu , C lie n tID n u are se m n ific a ie n a fa ra b azei de date. In tr - u n ra p o rt s im p lu care p re z in t o lis t c u c lie n i, estre p o s ib il ca elem ente p re c u m n u m r u l de te le fo n sau adresa de e -m a il s n u fie necesare. In loc s s c rie i s im b o lu l*, p u te i scrie c m p u rile respec tive, n o rd in e a n care d o r ii ca ele s a p a r n s e tu l de re zu lta te .

166

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

P e n tru a e x e m p lific a , s p re s u p u n e m c d o r ii s a d u n a i in fo rm a ii despre n u m e le de fa m ilie i p re n u m e le c lie n tu lu i sa u despre n u m e le firm e i, d u p caz. U rm to a re a d e c la ra ie Select n S Q L v a rezolva p ro b le m a :

SELECT firstname, lastname, organizationname FROM Client;


F ig u ra 8 .5 p re z in t re z u lta te le acestei in te ro g ri.

F IG U R A 8 .5 Intero grile S e le c t n SQL v p e rm it s colectai in fo rm a ii d in a n u m ite coloane.

Ffc * _ _ _

inft Fjrm*t cor loofc Vxtow t cp _ _

...........
*r> ktgn C ro quay > Cresie guwy by usng M srd

filename S A etty hr. 'A

j l.itln.ini N'A N/A rubble Smith N'A

j orgiinizarioniuiiif j Mam tine Software, Inc Acs Tomato Company j N/A N'A N-'A

ftecor- I! l i

Redenum irea cm purilor folosind clauza As


P u te i alege c m p u rile in c lu s e n in te ro g a re i o rd in e a acestora, d a r p u te i i s a tr ib u ii alte n u m e c m p u rilo r selectate. V e i realiza acest lu c r u fo losind c la u z a A s. P r iv ii c u a te n ie u rm to a re a d e c la ra ie Select n SQL:

SELECT firstname As fname, lastname As lname, organizationname As org From Client


F ig u ra 8 .6 p re z in t re z u lta te le acestei in te ro g ri.

CAPITOLUL 8 SQ L-ELEM ENTE GENERALE


FIGURA 8.6
C lauza A s v pe rm ite s re d e n u m ii u n cm p n rezultatele in te ro g rii.
jd* nrt Rordi ools Am tew * a f f i ; : 1 1 \ * 3 3 ' > -

167

t. a

& a

lii.nn

iil.HH Smith rubble Ace Tomata Company N/A N/A ! ;Main Line Software. Inc| HA

! E E c r a a r s v r '-* John )W tP t* >i a Betty


Obiact < este > inO j ;reatqufv >'/'

Ptcad: 1 I i i

G roiCS

'.V A ' Frg N w

Com binarea cm purilor de date


U n e o ri v e i d o ri s c o m b in a i date d in m a i m u lte c m p u ri i s re tu r n a i datele resp ective n t r - u n s in g u r c m p d in s e tu l de re z u lta te . De e xem plu, n lo c de a r e tu r n a n u m e le de fa m ilie i p re n u m e le n c m p u ri separate, d o r ii ca aceste d ate s fie c o m b in a te n tr - u n s in g u r c m p d e n u m it name (num e). D e c la ra ia Select n S Q L care u rm e a z realizeaz acest o b iectiv:

SELECT firstname + " " + lastname As name, organizationname As org From Client
F ig u ra 8 .7 p re z in t re z u lta te le acestei in te ro g ri. E x is t i u n ris c n c o m b in a re a d a te lo r, n u m it adesea concatenare. D atele pe care le c o n c a te n a i tre b u ie s a ib acelai tip . De obicei, v e i c o m b in a d a te de t ip te x t. D a te le de tip n u m e ric i cele de t ip d a te /tim e (d a ta c a le n d a ris tic /o ra ) s u n t a d u n a te a ritm e tic d ac este u tiliz a t o p e ra to ru l +. D ac d o r ii s c o n c a te n a i datele de aceste tip u r i, n u s le a d u n a i a ritm e tic , tre b u ie s le c o n v e r tii la t ip u l de d a te te x t, a p o i s c o m b in a i da te le c o n ve rtite . P e n tru a ilu s tr a d ife re n a , p r iv ii u r m to ru l cod SQL:

SELECT 1+2+3 as combinedfield FROM Client;

168

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


nert P rm r Record loo W indow t P

FIGURA 8.7
Datele d in d ife rite c m p u ri ale u n u i tabel p o t fi com binate p e n tru a form a u n s in g u r cm p n setu l de rezultate.

2pn

a Creat Q uefy D esign Oete query by using m srd

ggl

OWf-U

John Smith Betty rubble

Ace Tomato Compar N/A H/A Main Line Softwaie. N/A

S -'ojp

Record; H j - . i I

t)ataihyiew~

F ig u ra 8 .8 p re z in t re z u lta te le acestei in te ro g ri. D u p c u m ve d e i, p u te i re fe ri n u n u m a i c m p u rile a ctu a le n tr-o declaraie Select, d a r i date sta tice de tip n u m e ric , d a t c a le n d a ris tic sau te x t {aceste v a lo ri sta tice s u n t n u m ite lite ra le ). In fu n c ie de m o to ru l p e n tru baze de d ate pe care l u tiliz a i, p u te i re fe ri orice fu n c ie pe care m o to ru l p e n tru baze de date o nelege.

F IG U R A 8 .8 n tr-o declaraie S e l e c t p o t fi u tiliz a te datele statice de tip nu m eric, dat cale n d a ristic i text.

-iiS l < Jnsert 'na Record 1 v J v

mmp

up.,::. m
My D v >

h e S

mm
jjS^vi w~

CAPITOLUL .* SQ L-ELEM ENTE GENERALE

169

n acest caz, n u m e re le 1, 2 i 3 s u n t a d u n a te a ritm e tic . M o tiv u l p e n tru care ve d e i 4 n re g is tr ri, fiecare c u valoa re a 6, este c p e n tru fiecare n re g is tra re este re tu r a n t a lt n re g is tra re n s e tu l de re z u lta te . Pe de a lt p a rte , d ac d o r ii ca va lo a re a r e tu m a t s fie 123, tre b u ie s c o n v e rtii to a te elem entele n te x t, ap o i s c o m b in a i v a lo rile de tip te xt. D e sig u r, a i p u te a s s e le c ta i fo a rte u o r ir u l 123 ; d a r a s tfe l n u a ve i a n sa de a vedea c u m p o t fi c o n v e rtite n te x t v a lo rile n u m e ric e ! C o d u l u rm to r v d uce la re z u lta te le do rite:

SELECT Str(1)+Str(2)+Str(3) as combinedfield FROM Client;


F ig u ra 8.9 p re z in t re z u lta te le in te ro g rii.
F IG U R A 8 .9 P en tru com binarea d a telo r p o t fi u tllz a te fu n c iile d in tr-o baz de date, cu m este fu n c ia S t r ( ) .

.........

Declaraiile de tip Top n S e le c t


U ltim u l s u b ie c t pe care l vo m d is c u ta despre d e c la ra ia Select este cel al d e c la ra iilo r de tip Top n Select. Acestea m a i s u n t n u m ite i in te ro g ri de tip Top n. De m u lte o r i v e i d o ri s a fla i n u m a i p rim a n re g is tra re , p rim e le 10 s a u p rim e le 100 de n re g is tr ri d in t r - u n set de re z u lta te . U tiliz n d e x e m p lu l p re ce de n t, n care n u m r u l de r n d u r i d in s e tu l de re z u lta te d e p in d e de n u m r u l de r n d u r i d in ta b e lu l de baz, o in te ro g a re de tip Top n poate c o n tro la n u m r u l de r n d u r i d in s e tu l de re zu la te . C o d u l u rm to r fo re a z s e tu l de re z u lta te s a ib u n s in g u r r n d :

SELECT Top 1 Str(1)+Str(2)+Str(3) as combinedfield FROM Client;

Figura 8.10 prezint rezultatele acestei interogri.

170

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


view r<t F-iini 3

F IG U R A 8 .1 0 O interogare de tip T o p n controleaz n u m ru l de r n d u ri care ap ar n se tu l de rezu ltate.

Dei dorii s fie afiate numai primele 10 nregistrri, este foarte posibil s fie returnate mai mult de 10. lat un exemplu: dorii s fie afiate primele 10 produse, n funcie de pre. Mai mult, al zecelea produs are preul 10$, dar exist 5 produse care au acelai pre. Cte nregistrri vor fi returnate? Vei obine cel puin 10 nregistrri. A zecea dintre ele este primul produs cu preul de 10$. Totui, deoarece mai exist 4 produse care au preul de 10$, i acestea vor fi returnate. In aceast situaie ipotetic sunt returnate 14 nregistrri. Care este concluzia? Interogrile de tip T o p n pot returna mai mult de n rnduri dac exist mai multe nregistrri cu aceeai valoare a expresiei dup care se face ordonarea ( o r d e r b y ) . D u p ce a i n v a t c u m s e x tra g e i i s m a n ip u la i datele, p a s u l u rm to r este filtra re a i o rg a n iza re a lo r. In te ro g rile de tip T o p n s u n t m e ca n ism e de filtra re . T o tu i, re s tric ia T o p n este a p lic a t dup a p lic a re a f ilt r u lu i sp e c ific a t n c la u z a w h e r e . F iltra re a i o rg a n iza re a d a te lo r v o r fi tra ta te n u rm to a re le d o u s e c iu n i.

R ezu ltatele primei filtrri: utilizarea clauzei W h e re


n p ra c tic , v e i u tiliz a n to td e a u n a u n f ilt r u n in te ro g rile d u m n e a vo a str . V o m e x tin d e u n e le d in tre exem plele a n te rio a re c la s ific n d u -le d u p u n a n u m it t ip de c lie n t. D a c v a m in tii, c lie n ii p o t fi persoane fizice sau firm e . C m p u l C lie n t y p e a ra t ce tip c o re sp u n d e fie c ru i c lie n t. P e n tru a ilu s tr a fu n c io n a re a c lau zei W h e r e , s extrag em datele c u p re n u m e le i n u m e le de fa m ilie p e n tru c lie n ii p ersoane fizice.

SQ L-ELEM ENTE GENERALE

171

SELECT lastname + ", " + firstname As Client From Client Where ClientType = "I"
A u m a i fo s t f c u te cteva m o d ific ri. A i o b se rva t c o rd in e a n tre p re n u m e i n u m e le de fa m ilie a fo s t in v e rs a t i c a u fo s t separate de v irg u l ? F u n c io n a re a c la u z e i where este d e s tu l de s im p l . P u te i u tiliz a u n u l sau m a i m u lte c r ite rii. F ig u ra 8.11 p re z in t re z u lta te le in te ro g rii.

F IG U R A C lauza w here v p e rm ite s exclude datele nerelevante.

-'"~ ..'

b*p

* ' *.

" ' . ' - ' ' . ' ,'


>

*V 0

'" '

_________

> r y

-,


>!>!>! ci

I ' l l

''

S e x tin d e m a cest e xe m p lu , p re s u p u n n d c d o r ii s e x tra g e i to i c lie n ii p ersoane fizice a l c ro r n u m e de fa m ilie ncepe cu S. C o d a i u rm to r rezolv acest lu c ru :

SELECT lastname + ", " + firstname As Client From Client Where ClientType = "I" And lastname Like "S*"
A cest e xe m p lu n e ce s it s tu d ie re a a te n t a c to rv a aspecte. M a i n t i, aa c u m am p re c iz a t a n te rio r, p u te i c o m b in a m a i m u lte c rite rii n clauza Where. A poi, o b s e d a i u tiliz a re a e u v n tu lu i Like n acest caz. n a cest e xem plu, d o r ii s e x tra g e i to i c lie n ii persoane fizice a l c ro r n u m e de fa m ilie ncepe cu lite ra s. V e i sp u n e c, n acest caz, c rite riile s u n t slabe. De obicei, m p re u n c u o p e ra to ru l de com pa ra ie Like este u tiliz a t u n c a ra cte r w ild ca rd . In Access, acesta are fo rm a u n u i u n u i a sterisc (*). In S Q L S e rve r, ' ^ ld c a r d este s e m n u l p ro c e n te lo r (%). D ac a i f i fo lo s it s e m n u l egal, Access

172

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

a r fi c u ta t n re g is tr rile p e n tru care n u m e le de fa m ilie este S*. F ig u ra 8 .1 2 p re z in t re z u lta te le in te ro g rii cu c r ite r ii m u ltip le , n care apare i s e m n u l w ild c a rd .
F IG U R A 8 .1 2 U tilizare a c rite riilo r w ild c a rd perm ite cutarea du p c rite rii slabe.
iia a E g g g a a

* vw

* r -

::IV laecord: i< Y : 1! 1 > |n |> * io M |

BSliMSSSi

V o m m a i d is c u ta despre c la u z a where n acest c a p ito l. C la u za Where are u tiliz r i im p o rta n te n u n iu n e a ta b e le lo r i v o m reveni la ea n a lt s e c iu n e a a c e s tu i c a p ito l.

Prima organizare a rezultatelor: utilizarea clauzei Order By


La fel c u m u tiliz a i n to td e a u n a clauza where p e n tru a filtr a date nerelevante, v e i u tiliz a c la u z a Order By p e n tru s o rta re a d a te lo r d in s e tu l de re z u lta te . M a i m u lt, pe baza c m p u rilo r pe care le alegei p e n tru a s o rta datele, v e i d o ri s le s o rta i asce nd e n t, d e sce n d en t sau d u p u n c rite r iu c o m b in a t. Toate aceste o p e ra ii v o r fi efectuate p r in in te rm e d iu l cla u ze i Order By. P e n tru a ilu s tr a fu n c io n a re a ei, p r iv ii co d u l u rm to r:

SELECT lastname + ", " + firstname As Client From Client Where ClientType = "I" Order By lastname

Figura 8.13 prezint rezultatele acestei interogri.

SQL - ELEMENTE GENERALE


FIGURA 8.13
Clauza O r d e r B y v perm ite s o rd on ai datele d in s e tu l de rezultate.
* Y / )! f maf ool '*' .

173

feste Designww re quefy by > jng weard client IRubble, Betly Smith, John S''*,!

Record l< j ^J|

1 * |n | t ,

w m

vr

n m o d im p lic it, in d ife re n t de c m p u l pe care l alegei, s o rta re a se face n o rd in e cresc to a re (ascendent). D ac d o r ii s s o rta i re z u lta te le n o rd in e descresctoare (descendent) tre b u ie s s o lic ita i e x p lic it acest lu c ru . n a far de c a lific a tiv u l p e n tru o rd in e descendent, c o d u l u rm to r este id e n tic cu cel preceden t:

SELECT lastname + ", " + firstname As Client From Client Where ClientType = "I" Order By lastname Dese
F ig u ra 8 .1 4 p re z in t re z u lta te le acestei in te ro g ri.

S ortarea dup mai m ulte criterii


S p re s u p u n e m c d o r ii s re a liz a i o lis t c u c lie n ii persoane fizice. n care s u n t p re z e n ta te n u m e le , o ra u l i s ta tu l fie c ru i c lie n t. n p lu s , d o r ii s s o rta i d a te le d u p s ta t, ora i n u m e le de fa m ilie . De obicei, a tu n c i c n d s o rta i d u p m a i m u lte c m p u ri, o rd in e a n care a p a r acestea n lis ta de selecie v a f i aceeai cu o rd in e a n care v o r f i so rta te : acest lu c r u n u este n s o b lig a to riu . D a r re z u lta te le s u n t m a i u o r de c itit. C o d u l u r m to r are ca re z u lta t a fi a re a s ta tu lu i, o ra u lu i i a u n e i c o m b in a ii n tre p re n u m e i n u m e le de fa m ilie . n p lu s , re z u lta te le s u n t s o rta te d u p sta t, ora i n u m e le de fa m ilie :

SELECT state,city,lastname + ", " + firstname As Client From Client Where ClientType = "I" Order By state,city,lastname

Figura 8.15 prezint rezultatele acestei interogri.

174
FIG U R A

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

F olo sin d c a lific a tiv u l D e se , p u te i specifica dac d o rii o sortare ascendent sau una descendent.

F IG U R A 8 .1 5 P u te ti sorta setu l de rezu ltate d u p m a i m u lte c m p u ri.

.m Pr<K Jook wyJot

sn ?

p. ' ii 1 1:

I j J GW quly r vw j : ti& 't by J

VVjshiiiglon Paoli

;- 7

CAPITOLUL

SQL-ELEM ENTE GENERALE

175

D u p c u m ved e i, n u tre b u ie n e a p ra t s alegei u n a n u m it c m p p e n tru ca el s fie u tiliz a t n tr - o s o rta re . n aceast s itu a ie c m p u l lastname n u apare ca a ta re n s e tu l de re z u lta te . In s ch im b , el a fo s t c o m b in a t c u c m p u l f irstname. C u to a te acestea, p u te i s o rta d u p acest cm p, c t vrem e el este d is p o n ib il n ta b e lu l de baz. n m a jo rita te a s itu a iilo r , to tu i, datele u tiliz a te p e n tru s o rta re v o r f i d is p o n ib ile n s e tu l de re z u lta te , fie n c m p u l co re s p u n z to r, fie c o m b in a te c u datele d in a lt cm p. S e x tin d e m e x e m p lu l p re ce d en t, alegnd s s o rt m d u p s ta t, d u p ora n o r d in e d e s c re s c to a re , a p o i d u p n u m e le de fa m ilie n o r d in e descresctoa re. C o d u l u rm to r realizeaz a cest scop: SELECT state,city,lastname + ", " + firstname As Client From Client Where ClientType = "I" Order By state,city D e s e ,lastname Dese F ig u ra 8 .1 6 p re z in t re z u lta te le acestei in te ro g ri.

F IG U R A 8 .1 6 n c a d ru l fie c ru i cm p d u p care efectuai sortarea, p u te i alege i sortarea descendent.

* -

<

state

< ' rr
OtimU

'

Bearock Eedrock Washington Paoli

client 'Rubble. Bettyf Flintstone, Wilma Ssabcm, Sam Smith. John

1 1 <1 <*1 *
Croups

-- ** p to h e tv ie w '

WjSiKMS

D u p c u m ve d e i, p r im u l c r ite r iu de s o rta re este s ta tu l. T o tu i, d ac v e i co m p a ra fig u rile 8 .1 5 i 8 .1 6 v e i vedea c B e tty R u b b le i W ilm a F lin s to n e a u s c h im b a t lo c u rile n s e tu l de re z u lta te . N u u ita i c s o rt rile d u p ora i n u m e le de fa m ilie se fac descend ent. D a r dac W ilm a F lin s to n e lo c u ia n C opper F a lls? n tr u c t s o rta re a se face m a i n t i d u p s ta t, a p o i d u p ora i n fin a l d u p n u m e le de fa m ilie , n acest caz W ilm a F lin s to n e a r aprea d in n o u n s e tu l de re z u lta te n a in te de B e tty R u b ble. E ste u n b u n e x e rc iiu s v ju c a i p u in c u u n set m ic de date, s le m o d ific a i, ap o i s r u la i d in n o u d ife rite le in te ro g ri p e n tru a vedea care s u n t efectele.

176

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

Com binarea mai m ultor tabele: utilizarea d eclaraiei J o i n


n m a jo rita te a s itu a iilo r v e i d o ri s e x tra g e i date d in m a i m u lte tabele. De e xe m p lu , este p o s ib il s v i se s o lic ite crearea u n e i lis te cu c lie n ii persoane ju r id ic e (firm e) i c o n ta cte le co re sp u n z to a re acestora. A cesta este c a d ru l de baz care v a f i fo lo s it p e n tru a in tro d u c e c o n c e p tu l de u n iu n e a tabelelo r. E x is t p a tr u t ip u r i de u n iu n e : in te rn (inner, e x te rn la st n g a [left outer), e x te rn la d re a p ta (right outer) i c o m p le t e x te rn (full outer). F ig u ra 8 .1 7 ofer o ilu s tra re g ra fic a fu n c io n rii, n re la ie cu tabelele u n ite , a d ife rite lo r t ip u r i de u n iu n e . Pe p a rc u rs u l acestei d is c u ii v e i re ve n i m e re u la fig u ra 8.17. P e n tru a e x e m p lific a fu n c io n a re a t ip u r ilo r de u n iu n e , v o m fo lo si tabelele C lie n t i C o n ta ct.
f ig u r a

8 .1 7

Uniuni SQL
La stn ga La dre ap ta

E xist p a tru t ip u r i de u n iu n e n tre tabele: in te rn , la stnga, la dreapta i com plet.

C o m ple t

Scurt observaie privind terminologia despre uniunea tabelelor Pentru tipurile de uniune extern la stnga, extern la dreapta si complet extern utilizarea cuvntului extern este adesea omis; dac cineva spune uniune la stnga, se subnelege c este vorba despre uniune extern la stnga. Utilizarea cuvntului extern este o chestiune de preferine. Dumneavoastr trebuie s tii numai c, indiferent de sursa de informare utilizat, uniunile la dreapta, la stnga sau complet sunt identice, respectiv, cu uniunile extern la dreapta, extern la stnga, complet extern.
n a in te de a trece m a i departe, s p re c iz m care este in te ro g a re a de baz pe care o v o m u tiliz a . n acest c o n te x t v o r fi lu a i n co n sid e ra re n u m a i c lie n ii persoane ju r id ic e . P e n tru a vedea c u ce n ce p e i, in te ro g a re a u rm to a re poate fi u tiliz a t p e n tru a selecta to i c lie n ii persoane ju rid ic e : SELECT organizationname From Client Where ClientType = "B" Order By organizationname

Figura 8.18 prezint lista clienilor persoane juridice (firme), de la care vei pomi.

C !
FIGURA 8.18
L ista com pleta a c lie n tilo r care s u n t firm e d in ta b e lu l C lient.
ie & W ' * ' *

SQL-ELEM ENTE GENERALE

177

' ........ ' ' ' .

'

. ' . ; '

:'

A c u m , d u p ce a i re a liz a t lis ta co m p le t a c lie n ilo r p ersoane ju r id ic e i a ve i la d is p o z iie o in te ro g a re de baz cu care p u te i lu c ra , p u te m d is c u ta despre u n iu n e a ta b e le lo r n SQL.

Uniunile interne
R e v e n in d la f ig u r a 8 .1 7 , p u te i vedea c o u n iu n e in te r n re p re z in t in te rs e c ia n tre u n ta b e l p rin te i u n ta b e l co p il. Care este in te rs e c ia n acest caz? D a c v a m in tii re la ia d in tre tabelele C lie n t i C o n ta ct, c m p u l cheie p rim a r clientid d in ta b e lu l C lie n t este p re lu a t ca i cheie e x te rn n ta b e lu l C o n ta c t. D in p u n c t de vedere s in ta c tic , cla u za Join apare d u p c la u za From. C o d u l u r m to r ilu s tre a z u tiliz a re a clauzei Join: SELECT organizationname From Client Inner Join Contact On (contact.ciientid=client.clientid) Where ClientType = "B" Order By organizationname E x is t i a lt m e to d p e n tru re a liza re a u n iu n ii n tre tabele. n loc de a fo lo s i s in ta x a d in b lo c u l a n te rio r de in s tr u c iu n i, p u te i u tiliz a s in ta x a u rm to a re : SELECT organizationname From Client,Contact Where ClientType = "B" And contact.clientia=client.clientid Order By organizationname

178

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

E ste im p o r ta n t s re in e i c a tu n c i cn d in c lu d e i u n iu n e a n clauzele F ro m i W here, este s u b n e le a s u n iu n e a in te rn . D a c d o r ii s re a liz a i u n a lt t ip de u n iu n e , tre b u ie n e a p ra t s fo lo s ii c la u za J o in . A lte rn a tiv a a n te rio a r a fo s t p re z e n ta t n u m a i ca e xe m plu . T oate exem plele de cod d in aceast c a rte v o r u tiliz a c la u z a J o in . F ig u ra 8 .1 9 p re z in t e fe c tu l in tro d u c e rii c la u ze i Join. O b se rva i c n s e tu l de re z u lta te n u a u fo s t re tu m a te alte c m p u ri.
FIGURA 8.19 S etul de re zu lta te o b in u t d u p realizarea u n iu n ii n tre tabelele C lie n t i C ontact.
V 'l; fte d U ' a
Insert Famat Bsords IM V few tC ^

-JaJ*.

s a ?

?. ' *

? .

-*

A r tre b u i s o b s e rv a i u o r d o u aspecte. M a i n t i, Ace T o m a to C o m p a n y apare de d o u o ri. A po i, firm a B o b s H ouse o f P ancakes a d is p ru t d in lis t . M o tiv u l d u b le i a p a r iii a firm e i Ace T o m a to este acela c p e n tru ea e xist d o u co n ta cte , ia r m o tiv u l d is p a riie i firm e i B o b s H ouse o f P ancakes este fa p tu l c p e n tru ea n u este d e fin it n ic i u n c o n ta ct. N u u ita i, o u n iu n e in te rn este r e z u lta tu l in te rs e c ie i a d o u tabele. C u a lte c u v in te , o u n iu n e in te rn v a r e tu m a da te d ac i n u m a i dac datele d in ta b e lu l p rin te (d in stnga) a u n re g is tr ri corespo nd e n te n ta b e lu l c o p il (d in dreapta). n acest e xe m p lu , dac id e n tific a to ru l c lie n tu lu i d in ta b e lu l C lie n t se regsete n n r e g is tr r ile d in ta b e lu l C o n ta c t, n r e g is tr r ile c o re s p o n d e n te s u n t c o n d a m n a te s e x is te . In c a z u l firm e i Ace T o m a to C om pany, n lis t a p a r d o u n re g is tr ri corespondente, deoarece e xist d o u n re g is tr ri n ta b e lu l C ontact.

Utilizarea clauzei Distinct pentru eliminarea datelor redundante


Ce a i zice d a c v i s -a r s o lic ita o lis t c o n in n d n u m a i acele firm e care au date de c o n ta c t? C ategoric, tre b u ie s re a liz a i o u n iu n e in te rn , p e n tru a

CM Yi

SQL - ELEMENTE GENERALE

179

e lim in a d in lis t c lie n ii despre care n u a ve i date de co n ta ct. n acelai tim p , d o r ii ca fiecare c lie n t s a p a r n lis t o s in g u r dat. n se c iu n e a a n te rio a r a u fo s t p re ze n ta te in te ro g rile T o p n. T o tu i, n acest caz, o a s tfe l de in te ro g a re n u va fi u til . Ceea ce d o r ii este o a lt lis t (vedei fig u ra 8.20) i, d in fe ric ire , u r m to r u l b lo c de in s tr u c iu n i S Q L v ofer s o lu ia pe rfe ct : SELECT Distinct organizationname From Client Inner Join Contact On (contact.clientid=client.clientid) Where ClientType = "B" Order By organizationname

FIGURA 8.20
Clauza D i s t i n c t face ca fiecare r n d d in s e tu l de rezu ltate s fie u n ic.

Returnarea datelor din mai multe tabele


C o n tin u n d e x e m p lu l p re ce d en t, s extrag em a c u m p re n u m e le i n u m e le de fa m ilie d in ta b e lu l C o n ta c t. U rm to ru l b lo c de in s tr u c iu n i pa re s realizeze a cest o b ie ctiv: SELECT organizationname,firstname,lastname From Client Inner Join Contact On (contact.clientid = client.clientid) Where ClientType = "B" Order By organizationname

Figura 8.21 arat ce se ntmpl dac ncercai s rulai acest cod.

180

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE e is s s fc *nsert Quy Ioc gndow . *>
-------- ---------------------------------- ......................... .......:

FIGURA 8.21 Dac num ele coloanelor d in clauzele F ro m i J o i n apar n cel p u tin dou tabele, tre b u ie s precizai tabelele d in care s u n t pre lu ate p e n tru a rezolva am biguitatea.

S 3 B :

. v :

'

---------

? ! Q .

-------- --------- ...... ; ....... .......................................... ...... ------ _

BSESmS
2pn ^ ' -)*[ ivr < ' : H 1fi ' ent -'LS ' --

\ .

jw j Oe* e t quev D egn view Oeste quy by wi srd

m r r.aMnfn c i

o r. tiJe fetid .t * FP

d ir , iy -JJ SJl atwrrrt

I "* I \

D ac v m a i a m in tii, c m p u rile firs tn a m e i la s tn a m e e x is t i n ta b e lu l C lie n t i n ta b e lu l C o n ta c t. D a c n u in d ic a i b azei de date ce ta b e l tre b u ie u tiliz a t ca s u rs , b aza de date tre b u ie s rezolve s in g u r a m b ig u ita te a . Deoarece bazele de date n u p o t rezolva aceste a m b ig u it i, v e i o b in e u n m esaj de eroare c u m este cel d in fig u ra 8.21. P e n tru a rezolva a m b ig u it ile , tre b u ie s p re c iz a i ta b e lu l d o rit. C o d u l u r m to r re z o lv a ce a st p ro b le m , ia r fig u ra 8 .2 2 p re z in t re z u lta te le o b in u te . SELECTorganizationname, contact.firstname, contact.lastname From Client Inner Join Contact On (contact.clientid = client.clientid) Where ClientType ="B" Order By organizationname

Uniuni e x te rn e ia stnga
n tr - o u n iu n e in te rn , n re g is tr rile core spo nd ente se a fl de o p a rte i de a lta a u n iu n ii. D a r d ac d o r ii s v e d e i n re g is tr rile d in ta b e lu l d in st n g a (ta b e lu l p rin te ), in d ife re n t dac p e n tru ele exist n re g is tr ri corespondente n ta b e lu l d in d re a p ta (ta b e lu l copil)? O b in e re a ace sto r date este u o a r dac u tiliz a i o u n iu n e e x te rn la stnga. Adesea, uniunea extern la stnga este d e n u m it , s c u rt, uniune la stnga. U rm to ru l cod p re z in t u tiliz a re a u n iu n ii la stnga:

C A P IT O L ! : SQL-ELEM ENTE GENERALE

181

SELECT organizationname, contact.firstname, contact.lastname From Client Left Outer Join On (contact.clientid = client.clientid) Where ClientType="B" Order By organizationname F ig u ra 8 .2 3 p re z in t re z u lta te le acestei in te ro g ri.

FIGURA 8.22 Cnd u n i i tabelele, p u te i extrage date d in m a i m u lte tabele n acelai set de rezultate.

yw Iruer

Recwds T o c v/rthn jdp

B M
< :r
1 oi 1;.i'loniiiiine ! Si CfMe Ofit n ]view by wlvd A Tomato Company Ma| r. Lin Sofiwai . Inc. firstn.inie John John I lastiimne Jones Smith Petersen

Rxord; l< I 1

H1 1ef > 1

Crapciton \trre

n ca zu l firm e i B o b s H ouse o f P ancakes, orice c m p care a r c o re sp u n d e n ta b e lu l C o n ta c t are va lo a re n u l . De ce? Deoarece n u e x is t o n re g is tra re cu d ate de c o n ta c t p e n tru B o b s H ouse o f Pancakes. P u te i c o n s id e ra c v a lo rile n u le s u n t n lo c u ito r i (placeholder) p e n tru datele care a r f i fo s t acolo dac a r fi e x is ta t o n re g is tra re cu date de c o n ta c t despre c lie n tu l respectiv.

Lim itarea rezu ltatelo r la nregistrrile fr corespondent n tabelul din dreapta


D a r dac tre b u ie s e fe c tu a i u n iu n e a la st n g a in ve rs , a d ic s e x tra g e i n u m a i c lie n ii care n u a u o n re g istra re corespondent n ta b e lu l d in dreapta? V e i fo lo s i to t o u n iu n e la s t n g a p e n tru a vedea to a te n re g is tr rile d in ta b e lu l C lie n t; p e n tru a o b in e r e z u lta tu l d o rit, v a tre b u i s a d u g a i c r ite r ii n cla u za Where, ca s e xtra g e i n u m a i n re g is tr rile a l c ro r cm p C o n ta ctID este c o n s id e ra t n u l. N u m a i n re g is tr rile c lie n ilo r care n u au n re g is tr ri corespond ente c u date de c o n ta c t v o r satisface aceste c rite rii. C o d u l u rm to r n d e p lin e te aceast m is iu n e :

182

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

SELECT organizationname From Client Left Outer Join On (contact.clientid = client.clientid) Where ClientType="B" And Contact.Contactld Is Null Order By organizationname F ig u ra 8 .2 4 p re z in t re z u lta te le acestei in te ro g ri.

FIGURA 8.23
O u n iu n e extern la stnga extrage toate n re g istr rile d in pa rte a stng a in te ro g rii, in d ife re n t dac exist n re g is tr ri corespondente lo r n ta b e lu l d in pa rte a dreapt.

Edt View insert r'-m * Pecad loo jttndow je p

WWr. ,, f - ' tie*

V rU E

ffij ireale query InDesign v tew j E|J Create query by using wteard

.as2 !!
oiaHi^tonomg Ace Tmalo Company obs Ho,? *o Pancakes si n bn Software. Inc M'A. f ' flitlnoiue Joe John John | !.mn.ii Jones Smith Peteisen

ii

Uniuni externe la dreapta i uniuni complet externe


U n iu n ile externe la d re a p ta i u n iu n ile co m p le t externe s u n t d iscu ta te m p re u n n a ceast ca rte deoarece este p u in p ro b a b il s le u tiliz a i. Access n u s u p o rt u n iu n ile co m p le t externe, d a r p e n tru a realiza o prezentare com plet vo m d is c u ta despre am bele t ip u r i de u n iu n e n aceast se ciu n e . U n iu n ile la s t n g a s u n t u tile deoarece p e rm it e x is te n a u n u i p rin te cu zero co p ii. O u n iu n e la d re a p ta re p re z in t s c e n a riu l in ve rs, a d ic u n co p il f r p rin te . D a c v a m in tii d is c u ia despre in te g rita te re fe re n ia l d in c a p ito lu l 7, p e rs p e c tiv a e x is te n e i u n e i n re g is tr ri c o p il f r o n re g is tra re p rin te co re s p u n z to a re e ra o v io la re a in te g r it ii re fe re n ia le .

SQL-ELEM ENTE GENERALE


FIGURA 8.24
n p lu s fa de realizarea u n iu n ii la stnga, p u te i i s extragei n u m a i acele n re g is tr ri care n u au cores p o n d e n t n ta b e lu l din dreapta.

183

Primul lucru pe care l veti nva despre reguli este c, ia un moment dat, vei ntlni situaii n care acestea sunt nclcate. n viat, foarte puine reguli sunt imuabile. Pot exista situaii cnd avei o nregistrare copil fr nregistrare printe. Gndii-v la situaia unei facturi achitate cu numerar. Tot ce v intereseaz este s vindei ceva cuiva. Nu v intereseaz cine este cumprtorul (clientul) i nici nu avei timp s nregistrat informaiile despre el. Vor fi alte situatii cnd exact acelai sistem de baze de date trebuie s nregistreze informaiile despre client. n acest exemplu, v confruntai cu o situaie hibrid. O soluie simpl ar fi crearea unui client care pltete cu numerar i asocierea tututrorfacturilor achitate n numerar cu acest client. Dei soluia s-ar putea dovedi funcional, acest pas suplimentar ar putea prea inacceptabil. i atunci, poate c abordarea cea mai bun ar fi s permitei existena unor facturi indiferent de existena nregistrrilor printe. Problemele de proiectare a bazelor de date pentru astfel de situaii depesc ns scopul acestei cri. Este suficient s tii c exist situaii cnd nclcarea regulilor are sens, iar limbajul SQL are capacitatea s rezolve aceste situaii.

n re g is tr rile de a cest tip se n u m e s c orfane. D a c n tr -o baz de date este im p u s in te g rita te a re fe re n ia l , va fi im p o s ib il s in tro d u c e i c o p ii f r p rin i. T o tu i, e xist c a z u ri cnd re la iile p rin te -c o p il s u n t d o a r sem antice. C u a lte c u v in te r e la ia e x is t d o a r c u n u m e le d a c n u este im p u s in te g rita te a re fe re n ia l . C o d u l u rm to r p re z in t u tiliz a re a u n iu n ii e xterne la d re a p ta : SELECT organizationname, contact.firstname, contact.lastname From Client

184

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


Right Outer Join Contact Qn (contact.clientid=client.clientid) Where ClientType = "B" Order By organizationname

F ig u ra 8 .2 5 p re z in t re z u lta te le acestei in te ro g ri. D u p c u m v e d e i firm a B o b s H ou se o f P ancakes a d is p ru t d in n o u d in lis t . N u u ita i, s c o p u l u n e i u n iu n i la d re a p ta este de a extrage n re g is tr ri d in ta b e lu l d in d re apta, in d ife re n t d a c e x is t n re g is tr ri c o re sp on d ente n ta b e lu l d in stnga. F ie c a re n r e g is tr a r e d in t a b e lu l d in d re a p ta , ta b e lu l C o n ta c t, a re o n re g is tra re co re s p o n d e n t n ta b e lu l d in stnga, ta b e lu l C lie n t. N ic i u n a d in tre aceste n re g is tr ri n u c o re sp u n d e firm e i B o b s H ouse o f Pancakes.

FIGURA 8.25 O u n iu n e extern la d reapta selecteaz n re g is tr rile d in ta b e lu l copil, in d ife re n t dac exist n re g is tr ri corespunztoare n ta b e lu l p rin te .

O u n iu n e c o m p le t e x te rn c o m b in u n iu n ile externe la d re a p ta i la stnga. S u n t selectate to a te datele, d in am bele tabele, in d ife re n t dac e x is t date corespo nd e n te lo r n ta b e lu l c e lla lt. D ei m u lte baze de date, ca de exe m p lu S Q L Server, O ra cle i D B 2 s u p o rt u n iu n ile c o m p le t externe, Access n u s u p o rt a cest tip de u n iu n e . D a r c h ia r dac Access a r f i s u p o rta t acest tip de u n iu n e , s itu a iile n care s u n t necesare u n iu n ile c o m p le t e xte rn e a r fi re la tiv ra re .

Com binarea mai m ultor seturi de rezultate: utilizarea clauzei Union


C om b in a re a m a i m u lto r s e tu ri de re z u lta te este u n su b ie ct d e s tu l de avansat. T o tu i, e fe c tu l c la u z e i Union este u o r de ne les. C la u za Union v p e rm ite

CAPITOLUL 8 SQL-ELEMENTE GENERALE

185

s c o m b in a i d o u d e c la ra ii Select n tr - u n s in g u r set de re z u lta te i v e i avea nevoie de aceast c la u z de m u lte o ri. C o n s id e ra i s itu a ia n care tre b u ie s re a liz a i o lis t c o n s o lid a t a c lie n ilo r. La n c e p u t, tre a b a poate p re a s im p l , d a r n re a lita te n u este. D e c la ra ia Select a fo s t p re z e n ta t a n te rio r n acest c a p ito l, ia r exem plele de lin ii de cod a u fo s t p reze ntate te h n ic ile care v p e rm it s e x tra g e i date despre c lie n i d in ta b e lu l C lie n t. n c a z u l c lie n ilo r persoane fizice, n u m e le c lie n tu lu i este m e m o ra t n c m p u rile firs tn a m e i lastnam e. n cazul firm e lo r, n u m e le este s to c a t n c m p u l o rg a n iz a tio n n a m e . C rearea u n u i e x tra s cu to a te aceste tre i c m p u ri n u este d ific il . D a r dac v i se cere s re a liz a i u n e x tra s c u n u m a i d o u c m p u ri? P rim u l c m p tre b u ie s fie tip u l c lie n tu lu i, care a ra t dac acesta este p e rso an fiz ic sa u ju r id ic (firm ). A l diolea cm p se n u m e te clientname i m em oreaz n u m e le c lie n tu lu i. D u p c u m tii, n u e x is t u n c m p c u acest n u m e . tii i c, u tiliz n d cla u za As, p u te i re d e n u m i u o r u n c m p d in s e tu l de re zu lta te . T o tu i, v re vin e s a rc in a de a re u n i datele d in c m p u rile firs tn a m e i la stn a m e , p re c u m i cele d in c m p u l o rg enizatio nnam e n tr - u n s in g u r cm p cu nu m e le c lie n tu lu i. A c u m , c n d t i i date le p ro b le m e i, s tre ce m la rezolvarea ei. U rm to r b lo c de in s tr u c iu n i d uce la re z u lta te le do rite: SELECT clienttype, lastname + ", " + firstname As client From Client Where ClientType = "I" Union SELECT clienttype, organizationname As Client From Client Where ClientType = "B" Order By ClientType F ig u ra 8 .2 6 p re z in t re z u lta te le acestei in te ro g ri. N ecesitatea c la u z e i U n io n este d a t de fa p tu l c to a te re z u lta te le selectate tre b u ie s a ib acelai n u m r de c m p u ri, ia r datele d in acelai cm p tre b u ie s a ib a cela i tip . N u u ita i, e x is t u n s in g u r set de re z u lta te . P rim a in te ro g a re v a d e fin i s tr u c tu r a s e tu lu i de re z u lta te , ia r d u p acest m o m e n t to a te n re g is tr rile selectate tre b u ie s a ib acelai n u m r de c m p u ri. In p lu s , datele a c e lu ia i c m p tre b u ie s fie to a te de acelai tip . n a cest caz, d ei a l d o ile a cm p d ife r n cele d o u in te ro g ri p r in fa p tu l c n p rim a s u n t selectate n u m e le i p re n u m e le c lie n ilo r persoane fizice, ia r n a d o u a s u n t selectate n u m e le firm e lo r, am bele s u n t c m p u ri de tip te xt. In fin a l, n tr u c t p rim a in te ro g a re d icte az s tr u c tu r a s e tu lu i de re z u lta te , n u m a i este necesar clauza A s d u p c m p u l organ iza tio nnam e n a d o u a interogare. De fa p t, a d o u a c la u z A s este ig n o ra t . T o tu i, p e n tru consecven, este o idee b u n s e tic h e ta i c o re s p u n z to r c m p u rile .

186

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

FIGURA 8.26 C lauza U n io n v perm ite s c o m b in a i n tr-u n s in g u r set de rezu ltate datee d in m ai m u lte d e cla ra ii S e le c t.

Rezum at
A cest c a p ito l v -a o fe rit o p re ze nta re ge neral a lim b a ju lu i S Q L i a u n e ia d in tre cele m a i u tiliz a te p ri ale acestu i lim b a j, de cla ra ia Select. A i n v a t c u m s u tiliz a i co m a n d a S Q L Select p e n tru a extrage date d in tabelele u n e i baze de date. C la u z a From sp e cific ta b e lu l de baz care s u p o rt in te ro g a re a . C la u za where ofer u n m e c a n is m p e n tru filtra re a d a te lo r d in s e tu l de re z u lta te . In te ro g rile de tip Top n i cla u za Distinct re p re z in t alte in s tru m e n te p e n tru a re str n g e datele d in s e tu l de re z u lta te . C lauza Join v p e rm ite s e x tra g e i date d in m a i m u lte tabele. Pe l n g to a te acestea, a i n v a t i s fo lo s ii cla u za Union p e n tru a c o m b in a datele d in m a i m u lte in te ro g ri n tr - u n s in g u r set de re z u lta te . n p lu s , a i fo lo s it clauza As p e n tru a specifica n u m e le c m p u lu i d in s e tu l de rezultate. Aceast clauz este fo arte u til m a i ales cnd c o m b in a i datele d in m a i m u lte c m p u ri n tr - u n s in g u r c m p d in s e tu l de re z u lta te . D u p ce a i n e le s elem entele de baz ale lim b a ju lu i SQL, p u te i trece la n i te fu n c ii S Q L m a i avansate.

9
SQL-DINCOLO DE GENERALITI
In acest capitol:
8A d o u a organizare a re z u lta te lo r: u tiliz a re a clauzei Group By 3 U tiliz a re a fu n c iilo r a vansate El A d o u a filtra re a re z u lta te lo r: u tiliz a re a cla u ze i Having

2A tre ia filtra re a re z u lta te lo r: crearea d e c la ra iilo r SQ L p a ra


m e triz a te 11 M o d ific a re a d a te lo r fo lo s in d d e c la ra iile Insert, Update i Delete R e zu m a t

188

PARTEA A1V-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

n c a p ito lu l a n te rio r, am p re z e n ta t o in tro d u c e re n u n u l d in tre cele m a i p u te rn ic e p ro g ra m e existe n te - SQL. SQ L este lim b a ju l ba ze lo r de date. D ac a ve i de g n d s d e z v o lta i baze de date, v a tre b u i s n v a i i s n e le g e i a cest p ro g ra m . n c a p ito lu l a n te rio r a i n v a t s s e le c ta i i s o rg a n iz a i da te le d in m a i m u lte tabele. n acest c a p ito l, v e i face u n pas n a in te , n v n d s a greg ai (to ta liza i) i s s u m a riz a i datele. n c a p ito lu l a n te rio r, a i n v a t s re a liz a i o lis t a c lie n ilo r, o rg a n iz a i pe tip u r i. D a r dac tre b u ie s re a liz a i o in te ro g a re care p ro du ce o lis t cu tip u rile c lie n ilo r i n u m r u l de c lie n i de fiecare tip ? A c e s t tip de in te ro g a re v cere s c a lc u la i n u m r u l de c lie n i de fiecare tip . SQ L poate rezolva i aceast p ro b le m . A ce st tip de o p e ra ii de agregare, ca i o p e ra iile de m a n ip u la re a d a te lo r c u m s u n t includ erea , a ctu a llizarea i tergerea datelor re p re zin t scopul a c e s tu i c a p ito l.

A doua organizare a rezultatelor: utilizarea clauzei Group By


P rim u l pas p e n tru agreagarea d a te lo r p re s u p u n e u tiliz a re a cla u ze i Group By. Aceasta este u n m e can ism de sum arizare a datelor. P e n tru exem plificare, s co n s id e r m in te ro ga re a: Select clienttype From Client Order By clienttype F ig u ra 9.1 p re z in t re z u lta te le acestci in te ro g ri.
F IG U R A 9.1 O lis t sim p l cu tip u rile de c lie n i care apar n ta b e lu l C lient.

< '

''

.
? , !

' .

mm
SiSII

HM

C A P ITO LU L 9 SQL - DINCOLO DE GENERALITI

189

Aceste re z u lta te n u s u n t te r ib il de u tile , n u - i aa? T o tu i, e x ist u n e le in fo r m a ii u tile care p o t f i observate f r p re a m u lt efort. D in aceste re z u lta te , p u te i vedea c e x is t n u m a i d o u tip u r i de c lie n i - B i I (firm e i persoane fizice). i dac v e i aloca ceva tim p p e n tru a n u m ra m a n u a l d ife rite le n re g is tr ri, v e i vedea c p rin tre c lie n i se a fl tre i firm e i p a tru persoane fizice. D e i este b in e s d e in e i aceste in fo rm a ii, n u este nevoie de u n e fo rt pre a m a re p e n tru a le ob in e . U n u l d in tre a va n ta je le pe care le ofer o baz de date este fa p tu l c p u te i o rg an iza datele p e n tru a o b in e ra p id a stfe l de in fo rm a ii. V a lo a re a d a te lo r d e p ind e de tim p . C u c t datele s u n t m a i vechi, c u a t t va lo a re a lo r este m a i m ic . D a c cineva dorete s to ta liza ze i s sum arizeze datele m a n u a l, p ro b a b il c a tu n c i c nd va te rm in a , datele v o r fi depite. i e x is t n to td e a u n a ris c u l e ro rilo r de n u m ra re . A ic i in te rv in e cla u za Group By. C la u za G ro u p B y v p e rm ite s s u m a riz a i datele. A ceast o p e ra iu n e este p rim u l pas p e n tru agregarea i sub to ta liza re a datelor. U rm to a re a interogare p re z in t c la u z a G ro u p B y, ia r fig u ra 9.2 p re z in t re z u lta te le ei: Select clienttype From client Group By clienttype Order By clienttype

F IG U R A 9 .2 Clauza Group By ofer p o sib ilita te a de a sum a riza datele.

nseit 'maf

Iacii Jr** .

< 0 I li

____I

!> ' l -l

F ridto ccJv tip of dwot: B-ftgro, I-ird.riml

190

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

In te ro g a re a p re ce d e n t este e c h iv a le n t d in p u n c t de vedere fu n c io n a l cu u rm to a re a : Select Distinct clienttype From Client Order By clienttype De aceea, p e n tru a o rg a n iz a c la r n re g is tr rile , cla u za Group By este a d o u a m e to d de s u m a riz a re a d a te lo r pe care a i n v a t-o n SQL. D ife re n a e se n ia l n tre clauzele Distinct i Group By este c u ltim a v p e rm ite s a g re g a i i s s u b to ta liz a i datele. U rm to a re a s e c iu n e are ca s u b ie c t agregarea d a te lo r.

U tilizarea funciilor de agregare


V o r fi fo a rte ra re c a z u rile cn d v e i u tiliz a clau za Group By f r a fo lo s i u n a d in tre fu n c iile de agregare d in SQL. Cele c in c i fu n c ii de agregare d in S Q L s u n t Count ( ) ,Sum ( ) , Avg ( ) , Min () i Max ( ) . N um ele lo r d e s c riu d e s tu l de b in e ceea ce fac. De exe m p lu , fu n c ia Count () to ta lize a z n u m r u l de n r e g is tr r i, fu n c ia Sum () c a lc u le a z t o t a lu l m a te m a tic a l v a lo r ilo r c m p u rilo r, ia r Avg () calculeaz m e dia a ritm e tic a va lo rilo r. n u rm to a re le tr e i s e c iu n i v o r f i p re z e n ta te d e ta lii d esp re fu n c io n a re a f u n c iilo r de agregare.

Funcia Count ( )
F u n c ia Count () n u m r n re g is tr rile d in fiecare g ru p . n acest caz, e xist d o u g r u p u ri, u n u l p e n tru firm e i u n u l p e n tru persoane fizice. n tre b a re a la care n c e rc a i s r s p u n d e i este C i c lie n i de fiecare tip are firm a ? . C o d u l u r m to r ilu s tre a z fu n c io n a re a fu n c ie i Count (), ia r fig u ra 9 .3 p re z in t re z u lta te le o b in u te : Select clienttype,count(*) As count From client Group By clienttype Order By Count(*) Dese

CAPITOLUL 9 SQL - DINCOLO DE GENERALITI


FIG URA 9.3 F u n c ia de agregare C o u n t() v p e rm ite s d e te rm in a i n u m ru l de n re g is tr ri d in flecare grup.
Fe_ di *w njert Fyimt/Recard* lool / tew (Islp

191

: B i a 1 - , e !

M - > .

Esacsassas se
fct "* 8 *gn S WI <'. ' 8a < ifif
. " | CIlBnlTyp j colini 1

O ric n d v e i fo lo s i u n a d in tre fu n c iile de agregare d in SQL, v e i u tiliz a cla u za As p e n tru a s p e cifica n u m e le co lo an e i n s e tu l de re z u lta te . A ltfe l, este p o s ib il ca m o to r u l bazei de date s -i aloce u n n u m e care n u este a t t de d e s c rip tiv p re c u m cel pe care l- a i alege d u m n e a vo a str . n p lu s , re z u l ta te le s u n t n u m e re le de n re g is tr ri, afiate n o rd in e descresctoare. in n d c o n t i de ceea ce a i n v a t n c a p ito lu l a n te rio r, poate v e i d o ri s f ilt r a i s e tu l de re z u lta te fo lo s in d cla u za Where. C o d u l u rm to r este id e n tic c e lu i d in e x e m p lu l pre ced e n t, c u o s in g u r excepie. In acest caz, s u n t n u m ra i d o a r c lie n ii d in s ta tu l C a lifo rn ia : Select clienttype,count(* As count From client Where state = 'CA' Group By clienttype Order By Count(*) Dese F ig u ra 9 .4 p re z in t re z u lta te le care apar. D u p c u m vedei, e xist d o i c lie n i d in s ta tu l C a lifo rn ia , a m b ii fiin d persoane fizice.

192

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

F IG U R A 9 .4 n com binaie cu clauza Where, p u te i s agregai i s filtr a i datele n acelai tim p .

Operaiuni avansate: m etodologia prin care datele pot fi puse la un loc


S ne o p rim cteva c lip e p e n tru a e x a m in a p u te re a lim b a ju lu i S Q L p r in in te rm e d iu l u n u i e x e m p lu m a i c o m p lic a t. V i s-a c e ru t s e x tra g e i d in baza de date in fo rm a iile u rm to a re : 6 L is ta c a z u rilo r i a a n g a ja ilo r care lu cre a z la ele L is ta c a z u rilo r i n u m r u l de a n g a ja i care lu cre a z la ele L is ta c a z u rilo r i n u m r u l de t ip u r i de a n g a ja i care lu c re a z la ele O ric n d v c o n fr u n ta i c u o s o lic ita re de extragere a d a te lo r, p r im u l pas a r tr e b u i s fie id e n tific a re a ta b e le lo r necesare. E x a m in n d cele tre i ce rin e , o b s e rv a i c s u n t necesare cel p u in tre i tabele: Case Employee II EmployeeClass D ac v a m in tii, n u e xis t o re la ie d ire c t n tre tabelele Case i Employee. La u n caz p o t lu c r a m a i m u l i a n g a ja i, ia r u n a n g a ja t poate lu c ra la m a i m u lte c a z u ri. A fo s t n ecesar u n ta b e l care rezolv re la ia m u li la m u li, n u m it EmployeeCase. De aceea, v a i i nevoie de u n a l p a tru le a ta b e l. F ig u ra 9 .5 p re z in t o p a rte d in d ia g ra m a bazei de date T E B care c o n in e tabelele necesare i re la iile d in tre ele.

C A P ITO LU L 9 SQ L-DINCO LO DE GENERALITI


FIG URA 9.5 Ide ntificare a tabelelor necesare i a re la iilo r d in tre acestea este p rim u l pas n co n stru ire a u n e i d e cla ra ii SQL.

193

C u fig u ra 9 .5 n m in te , p u te i d e te rm in a clauzele From i Join: FROM (EmployeeClass INNER JOIN Employee ON EmployeeClass .EmployeeClassID = Employee. EmployeeClassID) INNER JOIN (Case INNER JOIN EmployeeCase ON Case.CaselD = EmployeeCase.CaselD) ON Employee.EmployeelD = EmployeeCase.EmployeelD P a su l u rm to r p re s u p u n e d e te rm in a re a c m p u rilo r de date care tre b u ie re tu m a te n s e tu l de re zu lta te . Pe baza in fo rm a iilo r solicitate, v o r fi necesare u rm to a re le c m p u ri: B 3 c a s e .title

M employee .f irstname i employee .lastname


employeeclass.description n a fa ra c m p u rilo r specificate, va tre b u ie s m a i d e te rm in a i i: N u m ru l de a n g a ja i N u m ru l tip u r ilo r de a n g a ja i S a b o rd m m a i n t i p rim a in te ro g a re : lis ta c a z u rilo r i a a n g a ja ilo r care lu cre a z la ele. A ce a st in te ro g a re v a s e rvi ca fu n d a ie p e n tru in te ro g rile u rm to a re , care v o r agrega i s u m a riz a datele. C o d u l u rm to r v a fu rn iz a lis ta ce ru t :

194

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

Select Case.Title, EmployeeClass.Description, Employee.FirstName, Employee.LastName From (EmployeeClass Inner Join Employee ON EmployeeClass.EmployeeClassID = Employee.EmployeeClassID) Inner Join(Case Inner Join EmployeeCase On Case.CaselD = EmployeeCase.EmployeeCaselD) On Employee.EmployeeID=EmployeeCase.EmployeelD Order By Case.Title, EmployeeClass.Description, Employee.Lastname; F ig u ra 9 .6 p re z in t re z u lta tu l in te ro g rii.

F IG U R A 9 .6 S etu l de rezu ltate conine date d in tabelele


C ase, E m p lo y e e C la s s i E m p lo y e e .

V ew nseft Fsrreat Sord loch (Jndw tlee

-1 I X| Attorney-Associate Attorney-Associate Attorney-Partner Paralegal Attoiney-Associats; Paralegal Mary Sts'en Stuart L.islHamt Jones Kardon Holmes :Little Heartless

I Patent Infringement Patent Infringement Patent Infringement Smith Divorce Smith Divorce

Jell

"II

< |n| |6

1 .-.; ..........................

! IS Wm 1 1 1 *i i l l1

E ste im p o r ta n t s o b s e rv a i c s in g u ru l scop a l ta b e lu lu i EmloyeeCase este s fa c ilite z e u n iu n e a n tre tabelele Employee i Case. D ac n u a r fi e x is ta t a cest ta b e l in te rm e d ia r, n u a r fi fo s t p o s ib il s a s o c ia i m a i m u lte c a z u ri cu m a i m u l i a n g a ja i. A vnd la dispoziie interogarea de baz, s trecem la interogarea u rm to a re o lis t c u c a z u rile i n u m r u l de a n g a ja i care lu cre a z la ele. n tr u c t n u v p re o c u p n u m e le a ce sto r a n g a ja i, ta b e lu l Employee poate f i e xclu s d in in te ro g a re . D a c s in g u ra in fo rm a ie de in te re s este n u m r u l a n g a ja ilo r, aceasta v a fi fu rn iz a t de ta b e lu l EmployeeCase. n p lu s , n acest caz p u te i r e n u n a i la ta b e lu l EmployeeClass.

CAPITOLUL 9 SQ L-DINCO LO DE GENERALITT!

195

D ac a g re g a i datele, a u to m a t n s e a m n c este necesar cla u za Group By. P e n tru aceast in te ro g a re este necesar o lis t c u ca zu rile i n u m ru l anga ja ilo r care lu c re a z la fiecare caz. D e ci re z u lta te le tre b u ie s fie g ru p a te d u p c a z u ri, ia r u r m to r u l cod n d e p lin e te aceast fu n c ie : Select Case.Title, Count(employeecase.employeecaseid) As employees From Case Inner Join EmployeeCase On Case.CaseID = EmployeeCase.CaseID Group By case.title Order By Case.Title F ig u ra 9.7 p re z in t re z u lta te le care apar.

F IG U R A 9 .7 Acest set de rezu ltate con ine n u m ru l de an g a ja i g ru p a i pe cazuri.

.S./.S dt 'i*Ni Inseil Farmat ec'. Ido Indo dp

IPateul lnfrinqement| Smith Dr/orce

IS IIS S ii

S S & B j" " "I

.s 1 1

.Dstashc;t V iew

U rm to a re a in te ro g a re o ia pe cea p rece de n t i m a i p a rcu rg e u n n ive l. n in te ro g a re a p re ce d e n t a i fo s t in te re s a t de n u m r u l a n g a ja ilo r. In aceast in te ro g a re , v e i n u m ra tip u r ile de a n g a ja i d in to ta lu l a n g a ja ilo r care lu c re a z la fie ca re caz. De e xem p lu, la ca zu l n e re s p e c t rii d r e p tu lu i de p ro p rie ta te a s u p ra p a te n tu lu i, lu cre a z p a tru a n g a ja i. Care este d is trib u ia c e lo r p a tr u a n g a ja i n a cest caz? A ce a sta este n tre b a re a la care v e i r s p u n d e a ici. C o d u l u r m to r n d e p lin e te aceast fu n c ie : Select Case.Title, EmployeeClass.Description, Count(EmployeeCase.Employeeid) As Employees

196

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

From (EmployeeClass Inner Join Employee ON EmployeeClass.EmployeeClassID = Employee.EmployeeClassID) Inner Join(Case Inner Join EmployeeCase On Case.CaselD = EmployeeCase.CaselD) On Employee.EmployeelD = EmployeeCase. EmployeelD Group By C a s e .Title,EmployeeClass.Description Order By C a s e .Title,EmployeeClass.Description F ig u ra 9 .8 p re z in t re z u lta te le care apar.

F IG U R A 9 .8 S etu l de rezu ltate conine n u m ru l de tip u r i de an g a ja i g ru p a i dup


case. t i t l e i e m p lo y e e c la s s . d e s c r ip tio n .

I: Fte & > Visw Jnser FqimI: - H d Ol 7


Becds looli Jri<*

.*! !*I
' \

- n SI

--- -----------

31.

. . ....... .
-a g jiu i

Patent Infringement Patent Infringement Patent Infringement Smith Divorce Smith Divorce

Desc11 pIio n Attorney-Associate Altomey-Partner Paralegal Attorney-Associate P3talec

Employee

Record: l< I <I I

Pe m s u r ce fo ra i m a i adnc n date, ve i avea m a i m u lte c m p u ri n clauza Group By. In aceast interog are , dei n u s u n t re tu m a te n u m e le a n g a ja ilo r, ta b e lu l Employee a fo s t necesar p e n tru a r e tu m a tip u l a n g a ja ilo r. C u alte cu v in te , p e n tru a trece de la ta b e lu l Case la ta b e lu l EmployeeClass, s u n t necesare tab e lele EmployeeCase i Employee p e n tru a fa c ilita u n iu n e a .

Funcia Sum ( )
Deseori, va tre b u i s a d u n a i datele d in d ife rite n re g is tr ri n loc s n u m ra i n re g is tr rile . A ic i in te rv in e fu n c ia de agregare Sum (). D in fe ric ire , a i re zo lva t d eja o m a re p a rte d in p ro ble m e le d ific ile n s e c iu n e a a n te rio a r . A celeai concepte de la fu n c ia Count () se a p lic i p e n tru fu n c ia Sum ().

C A P IT O L U L 9 SQ L-DINCO LO DE GENERALITI

197

P e n tru a ilu s tr a fu n c io n a re a fu n c ie i Sum ( ) , s c o n sid e r m u rm to a re le ce rin e : L is ta c a z u rilo r, a n g a ja ilo r, o re lo r i ta rife lo r a p licate: l i L is ta c a z u rilo r, to ta lu l o re lo r i ta rife lo r a p lica te g ru p a te pe a n g a ja i; L is ta c a z u rilo r, to ta lu l o re lo r i ta rife lo r a p lic a te g ru p a te pe t ip u r i de a n g a ja i; S L is ta c a z u rilo r, to ta lu l o re lo r i ta rife lo r a p lica te g ru p a te pe ca zu ri;

1L is ta c a z u rilo r, to ta lu l o re lo r i ta rife lo r a p lica te g ru p a te pe ca te g o rii


de a c tiv it i; A p lic n d m e to d o lo g ia n v a t n s e c iu n e a precedent, p r im u l pas este id e n tific a re a ta b e le lo r necesare p e n tru a r s p u n d e acestor ce rin e . De la n ce p u t, tii c avei tabelele Employee i Case. Poate credei c este necesar i ta b e lu l EmployeeCase. D u p c u m v e i vedea, ta b e lu l EmployeeCase n u este necesar p e n tru aceste in te ro g ri. n p lu s v a tre b u i s m a i u tiliz a i i tabelele EmployeeClass i WorkCategory. In fin a l, p e n tru a o b in e orele i tarifele, v este necesar ta b e lu l TimeEntryDetail. T a b e lu l TimeEntryDetail se o cu p de u n iu n e a n tre tabelele Employee i Case. F ig u ra 9.9 p re z in t p a rte a re le v a n t p e n tru acest set de in te ro g ri a d ia g ra m e i bazei de date TEB.

F IG U R A 9 .9
T a b e le le n e ce sare p e n tr u a extra g e in fo r m a ii d e sp re o rele de m unc si ta rife le a p lic a te , g ru p a te d u p a n g a ja i, c a z u ri, c a te g o rii de a c tiv it i i clase de a n g a ja i.

( ge"*

Io* W m ilo. !

]j Sy . . .

r- - > b

)wwJ>legDiTD t (Number t | lnD ae Kiem en Oeprtm enHO SurUD firstJim LaitName Addt l Ads i State ZipCods H cflePtxjr , /l i tension E m 4Addre C'efi-atfti&ritlO Dnpo>eda5s!l

Fr j

910! Xj|

U n iu n ile p re ze n ta te n fig u ra 9 .9 s u n t fa c ilita te de u rm to ru l cod SQL: FROM WorkCategory INNER JOIN ((EmployeeClass INNER JOIN Employee ON EmployeeClass.EmployeeClassID = Employee.EmployeeClassID)

198

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

INNER JOIN([Case] INNER JOIN TimeEntryDetail ON Case.CaseID = TimeEntryDetail.CaseID) ON Employee.EmployeelD = TimeEntryDetail.EmployeelD) ON WorkCategory.WorkCategorylD = TimeEntryDetail .WorkCategory

Pn acum, ai nvat c, pe msur ce crete numrul de tabele nece sare pentru o interogare, cu att este mai complex clauza Join. Nu v facei probleme! In capitolul urmtor, vei vedea cum pot fi create grafic nregistrrile. Aplicaia Access Query Designer ofer o interfa priete noas fa de utilizator. In culise, este construit pentru dumneavoastr codul SQL. Scopul acestui capitol si al celui precedent este prezentarea limbajului SQL, independent de o anumit aplicaie de proiectare a inte rogrilor. Nu uitai, este posibil s v aflai ntr-un mediu n care trebuie s creai manual declaraiile SQL!
P rim a in te ro g a re pe care tre b u ie s o c re a i este lis ta b r u t a d a te lo r care v o r f i agregate i s u m a riz a te p r in in te ro g rile u rm to a re . Aceste date s u n t fu rn iz a te de c o d u l S Q L u rm to r: SELECT employee.firstname + ' ' + employee.lastname As employee, EmployeeClass.Description As employeeclass, Case.Title, WorkCategory.Description AS workcategory, TimeEntryDetail.Description AS workdescription, TimeEntryDetail.Hours, TimeEntryDetail.Rate, (timeentrydetail.hours*timeentrydetail.rate) AS total FROM WorkCategory INNER JOIN ((EmployeeClass INNER JOIN Employee ON EmployeeClass.EmployeeClassID = Employee.EmployeeClassID) INNER JOIN ([Case] INNER JOIN TimeEntryDetail ON Case.Case.ID = TimeEntryDetail.CaselD) ON Employee.EmployeelD = TimeEntryDetail.EmployeelD) ON WorkCategory.WorkCategorylD = TimeEntryDetail.WorkCategory

Privii cu atenie cmpul total. Interogarea returneaz cmpurile cu num rul de ore i tarifele aplicate din tabelul TimeEntryDetail. n plus, este returnat i un cmp care nmulete numrul de ore cu tariful aplicat. Clauza As v ajut s evitai ambiguitatea. Cmpul Description din tabelele EmployeeClass, WorkCategory i Time EntryDetail face parte din setul de rezultate. Pentru a elimina ambiguitile, este utilizat clauza As pentru a da cmpului din setul de rezultate un nume mai descriptiv.

C A PITO LU L

S Q L-D IN C O LO DE GENERALITI

199

F ig u ra 9 .1 0 p re z in t s e tu l de re z u lta te n e p re lu c ra t.

FIGURA 9.10
L ista b ru t a da telo r sum arizeaz g ru p u rile de angajai, cazuri, tip u r i de a c tiv it i i clase de angajai.

Fms wd

SSISS
einiiloyae j *iri|iloeclss | M aiyj0f $ ! 7 Allorr A iCite I Oliver Holme Allorney-Partner . Heartless Attorney-Associate Sally Starr ;Paralegal > -.0'" < . >* 4 ." . fu t0 5.' Paient lnfiifq mer,l : 0 .Ilfir.ni of opposrnq party Paient Infrinrj'rneri :Court AppMrsnce Filed Ruis 37 amotion to compel discovery Smith Divorce Client :.ail Phoned 1 discuss settlement offer Smith Divorce Research Researched new state divorce lav.

R eco. : 1 >

:C-Jtl;wtView

' --.-

Este Im portau s o bserva i e n u s u n t riece at~e toate tabelele p e n tru fiecare in te ro g a re . C nd in t r a i n d e ta lii, a tu n c i v e i avea nevoie de m a i m u lte .tabele p e n tru a s u p o rta u n n iv e l m a i m a re de g ra n u la rita te a d e ta liilo r F ig u ra 9 .1 0 p re z in t cea m a i m a re c a n tita te de d e ta lii. A c u m v e i ineepe c l to ria de 10 de p a i (aluzie la p ro v e rb u l c h in e z o 0 0 de .depi ncepe cu primul pas. - n. tra d .) i v e i lu c ra in d e p e n d e n t rim a in te ro g a re p re s u p u n e s u m a riz a re a d a te lo r d u p ? .. -C o d u l u r :m to r rezolv a cest lu c r u , SELECT employee.firstname+' '+employee.lastname AS employee Sum (timeentrydetail. hours*timeentrydetail.rate) AS total FROM Employee = INNER JOIN TimeEntryDetail ON Employee.EmployeelD TimeEntryDetail.EmployeelD GROUP BY employee.irstname + ' ' employee.iastname Order By Sum(timeentrydetail.hours*timeentrydetail.rate) Desc

200

PARTEA A I V A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

F ig u ra 9.11 p re z in t s e tu l de re z u lta te ale in te ro g rii.


F IG U R A 9.11 A cest set de rezu ltate totalizeaz n u m ru l de ore n m u lit cu ta rifu l a p lica t i sum arizeaz du p angajai.

Ce a i zice de s u m a riz a re pe baza categ oriei de a c tiv ita te ? C a te g o riile de a c tiv it i e x is t n d o u contexte. M a i n t i, ele e xist n m o d in d e p e n d e n t. A p o i, ele e x is t n fu n c ie de a n g a ja i. C u a lte cu v in te , p u te i s u m a riz a datele n u m a i pe b aza c a te g o riilo r de a c tiv it i sa u pe baza c a te g o riilo r de a c tiv it i i de a n g a ja i. C o d u l u rm to r sum a rizeaz datele pe baza a d o u categorii: SELECT WorkCategory.Description AS workcategory, Sum(timeentrydetail.hours*timeentrydetail.rate) AS total FROM Workcategory INNER JOIN TimeEntryDetail ON Workcategory. WorkCategorylD = TimeEntryDetail.Workcategory GROUP BY WorkCategory.Description ORDER BY Sum(timeentrydetail.hours*timeentrydetail. rate) Dese F ig u ra 9.12 p re z in t re z u lta te le acestei in te ro g ri. F ig u rile 9.11 i 9.12 p re z in t d o u p u n c te de vedere a s u p ra a ce lo ra i date. F ig u ra 9.11 p re z in t datele s u m a iiz a te d u p angajai, ia r fig u ra 9.12 p re z in t datele s u m a riz a te d u p ca te g o ria de a c tiv ita te . C a p a cita te a de a diseca, r s u c i i s u m a riz a datele n acest m o d este acea valoare pe care o furn ize a z o rg a n iz a ie i lim b a ju l S Q L i baza de date. Ce a i zice de o co m b in a ie n tre aceste d o u in te ro g ri - u n s u m a r a l a c tiv it ii d u p ca te g o riile de a c tiv it i i d u p a n g a ja i? A ce st lu c r u n e ce sit d o u n ive le de g ru p a re . A a c u m am m e n io n a t deja, c u c t s u n t fu rn iz a te m a i m u lte d e ta lii, cu a t t m a i m u lte ta b e le v o r fi necesare n in te ro g a re . C o d u l u r m to r re a lize a z aceast in te ro g a re m a i d e ta lia t :

CAPITOLUL 9 SQ L-DINCO LO DE GENERALITI


FIG URA 9.12 S etul de rezu ltate totalizeaz n u m ru l de ore n m u lit cu ta r ifu l i sum arizeaz datele dup categoriile de a c tiv it ti.
- . Insert F fflT O S t Recofds Tods M ndc ..

201

../TT

.. ......

^ h ....

'JuA

^
Tim onryC<stl W c rCiego<y

HSW

B -----jH H il

SELECT WorkCategory.Description AS workcategory, e mployee.firstname+' '+employee.lastname AS employee, Sum(timeentrydetail.hours*timeentrydetail.rate) AS total FROM Workcategory INNER JOIN (Employee INNER JOIN TimeEntryDetail ON Employee.EmployeelD = TimeEntryDetail.EmployeelD) ON Workcategory .WorkcategoryID = TimeEntryDetail .Workcategory GROUP BY workcategory.description,employee.firstname+' '--employee.lastname ORDER BY workcategory.description,Sum (timeentrydetail.hours*timeentrydetail.rate) Desc F ig u ra 9 .1 3 p re z in t re z u lta te le acestei in te ro g ri. S ne o p rim p u in p e n tru a diseca o p a rte d in date. F ig u ra 9 .1 2 a ra t c a c tiv it ile legate de cercetare a u fo s t ta x a te c u 1375 $. F ig u ra 9 .1 3 a ra t c S a lly S ta r a g e n e ra t 1000 $, ia r M a ry Jo ne s a generat 3 7 5 $ p r in a c tiv it i de cercetare. D ac p r iv im fig u ra 9 .1 1 , vedem c M a ty Jo n e s a g e n e ra t u n v e n it de 1125 $. C u m a u fo s t d is tr ib u ii c e ila li 7 5 0 $ pe care M a ry i-a c tig a t? F ig u ra 9 .1 3 a ra t c re s tu l s u m e i a fo s t o b in u t p r in a c tiv it i de lu a re a d e p o z iiilo r.

202

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


e d t |r5 irt F < mat Rwd $ Mndow

F IG U R A 9 .1 3 A cest set de rezu ltate totalizeaz n u m ru l de ore n m u lit cu ta r ifu l i le sum arizeaz d u p categoriile de a c tiv it i i du p angajai.

mm
I Cal ............. Mark Heartless Appearance Oliver Holmes

r-C l

! '1 I
TnwEnriCI \Vorw C atey>ry

g [ 1x|| b-atMScWView

mm

mM1

P n a cu m , a r i i t r e b u it s o b se rv a i c e x is t u n m o d e l care se repet. N iv e lu l de d e ta lie re de care a ve i nevoie este d ire c t legat de n u m r u l de ta b e le n e ce s a re , de n u m r u l c m p u r ilo r d in s e tu l de re z u lta te i de c o n in u tu l c la u z e i Group By. P e n tru a fu rn iz a u n a rg u m e n t i m a i so lid , s c o n s id e r m u n se t de re z u lta te care su m arizea z d u p caz. C o d u l u rm to r este fo a rte a s e m n to r c e lu i p re ce d e n t care c su m a rize a z d u p categoria de a c tiv ita te i c u cel care sum a rize a z d u p a n gaja i: SELECT C a s e .T i t l e , Sum(timeentrydetail.hours*timeentrydetail.rate) AS total FROM Case INNER JOIN TimeEntryDetail ON Case.CaseID = TimeEntryDetail.CaseID GROUP BY Case.Title ORDER BY Sum(timeentrydetail.hours*timeentrydetail.rate) Dese F ig u ra 9 .1 4 p re z in t re z u lta te le acestei in te ro g ri. A c u m , v i se p a re c o m p lic a t s s u m a riz a i m a i d e p a rte aceast in te ro g a re d u p a n g a ja i i d u p c a te g o riile de a c tiv it i? P rocesul n u este c o m p lic a t: tre b u ie n u m a i s in tro d u c e i ta b e lu l c o re s p u n z to r i s re a liz a i u n iu n e a c u in te ro g a re a , s in tro d u c e i c m p u rile s u p lim e n ta re la lis ta de selecie i, n fin a l, s in tro d u c e i c m p u rile n clauzele Order By i Group By. D a r dac d o r ii n u m a i s d e te rm in a i to ta lu l general al v e n itu rilo r generate? D eoarece n u s u n t necesare d e ta lii, v a te p ta i ca d e c la ra ia S Q L s fie fo a rte s im p l . Ia t c o d u l - ju d e c a i i d u m n e a vo a str !

SQ L-DINCO LO DE GENERALITI
FIG URA 9.14 S etu l de rezu ltate totalizeaz n u m ru l de ore n m u lit cu ta r ifu l i sum arizeaz datele dup cazuri.
* r. ;

203

<

< - ..,''
1 < Worfcutegarv

'

. :' .

sills

SELECT

S u m (timeentrydetail.hours*timeentrydetail.rate) AS total FROM TimeEntryDetail

F ig u ra 9 .1 5 p re z in t re z u lta te le acestei in te ro g ri.

F IG U R A 9 .1 5 S etul de rezu ltate furnizeaz to ta lu l general al n u m ru lu i de ore n m u lit cu ta rifu l.

insen Ferm Picwds _ :

.. . .... ..... .

: '

mmm

. ; -: :

204

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

D oarece este c a lc u la t to ta lu l d a te lo r d in n tre g ta b e lu l, n u s u n t necesare clauzele Order By i Group By. n s f r it, d a c e ra i p re o c u p a t de s u m a riz a re a d a te lo r p e n tru u n s in g u r a n g a ja t, p e n tru u n s in g u r caz, p e n tru o categorie de a c tiv it i .am .d.? T re b u ie n u m a i s in tro d u c e i c la u za Where p e n tru a filt r a datele d in s e tu l de re z u lta te . C o d u l u r m to r extrage datele de s u m a riz a re p e n tru c a zu l de d iv o r S m ith : SELECT Case.Title, Sum(timeentrydetail. hours*timeentrydetail.rate) AS total FROM Case INNER JOIN TimeEntryDetail ON Case. CaseID=TimeEntryDetail. Caseid WHERE c a s e .title="Smith Divorce" GROUP BY Case.Title ORDER BY Sum(timeentrydetail . hours*timeentrydetail.rate) Dese F ig u ra 9 .1 6 p re z in t re z u lta te le acestei in te ro g ri.

F IG U R A 9 .16 S etul de rezu ltate furnizeaz u n to ta l al v e n itu rilo r o b in u te n tr-u n a n u m it caz folo sin d clauza
W here.

V ew Insert FgrmM Picordi

- ' : '

total Oivotcij

Iul! :v

*....vw . ?*! v_______

.- -

Funcia Avg ( )
F u n c ia Avg (), aa c u m sugereaz i n u m e le ei (aug este p re s c u rta re a de la average = m edie), c a lcule az o m edie p o rn in d de la exp re sia in tro d u s n a rg u m e n tu l ei. C o d u l u rm to r este u n e xe m p lu s im p lu de u tiliz a re a acestei fu n c ii:

CAPITOLUL 9 SQL - DINCOLO DE GENERALITI


SELECT Avg(defaultrate) As AverageRate From Employeeclass F ig u ra 9 .1 7 p re z in t re z u lta te le acestei in te ro g ri.

205

F IG U R A 9 .1 7 F u n c ia Avg ) calculeaz m edia expresiei d in a rg u m e n t .

..............
'

asscrrrv- -

W MMM i i l i l i la p

v i m

"1..ri..........;.

F ig u ra 9 .1 7 p re z in t t a r if u l m e d iu a p lic a t de tip u r ile de a n g a ja i a i firm e i.

Funciile M in ( ) i Max ( )
D a r dac s c o p u l d u m n e a v o a s tr a r f i d e te rm in a re a v a lo rilo r m in im i m a x im ale u n u i a n u m it c m p d in tr - u n tab el? A ic i in te rv in fu n c iile de agregare Min () i Max (). C o d u l u rm to r ilu s tre a z fu n c io n a re a acestor fu n c ii: Select Min(defaultrate) As minrate, Max(defaultrate) As maxrate From employeeclass F ig u ra 9 .1 8 p re z in t re z u lta te le acestei in te ro g ri.

206

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


t*e Vmv [nsft Forros Too >r*k .

FIG U R A 9 .1 8 F u n c iile M in () i Max () re tu m e a z va lo rile m in im , respectiv m a xim ale expresiei d in argum ent.

.............

mimte

inaxr

BriJ: I I 1

HR

QCJK

A doua filtrare a rezultatelor: utilizarea clauzei H a v in g


Adesea, v a tre b u i s filtr a i re z u lta te le pe baza d a te lo r agregate. De exem plu, poate d o r ii s ve d e i n u m a i n re g is tr rile n care u n a n g a ja t a ge n e ra t m a i m u lt de 1000 $. C o d u l u rm to r u tiliz e a z cla u za H a v in g p e n tru a o b in e re z u lta te le d o rite : SELECT employee.firstname+' '+employee.lastname AS employee, Sum (timeentrydetail .hours*timeentrydetail.rate) AS total FROM Employee INNER JOIN TimeEntryDetail ON Employee.EmployeelD = TimeEntryDetail.EmployeelD GROUP BY employee.firstname+' '+employee.lastname Having Sum (timeentrydetail . hours*timeentrydetail.rate) >1000 Order By Sum (timeentrydetail .hours*timeentrydetail .rate) Dese F ig u ra 9 .1 9 p re z in t re z u lta te le acestei in te ro g ri. C lauza Having fu n c io n e a z pe baza d a te lo r agregate. D ac a i fi n c e rc a t s u tiliz a i cla u za where, S Q L a r fi generat o eroare. Pe de a lt p a rte , fo lo sin d c la u z a Where, ca de e x e m p lu , W h e r e t i m e e n t r y d e t a i l .hours * timeentrydetail.rate > 1000, c r ite r iu l a r fi fo s t a p lic a t n u m a i p e n tru n re g is tr rile d in ta b e lu l TimeEntryDetail. O rice n re g is tra re care n u depete p ra g u l de 1000 $ a r fi fo s t ig n o ra t . n acest caz, d o rii m a i n t i s a g re g a i to a te n re g is tr rile p r iv in d tim p u l necesar c a z u rilo r, a p o i s a p lic a i c r ite r iu l de filtra re .

C A P IY C .U L S
F IG U R A 9 .1 9 C lauza H a v in g v p e rm ite s f ilt r a i se tu l de rezu ltate pe baza d a te lo r agregate.
in dt '> Jnsert Fa'm s* wd

SQ L-DINCO LO DE GENERALITI

207

I Mary Jones

Record: i<i < 11 Giouo

.Pafjhett View

*r Indiciu]

Dac dorit s fie aplicat criteriul fiecrei surse de nregistrri, utilizai clauza where. Dac dorii s aplicai criteriul de filtrare rezultatelor obtinute prin agregare, utilizai clauza Having .

A tre ia filtrare a rezultatelor: crearea declaraiilo r SQL p aram etrizate


n e x e m p lu l p re ce de n t, d e c la ra ia S Q L a a v u t ca scop s re tu rn e z e date s u m a riz a te n u m a i p e n tru c a z u l de d iv o r S m ith . Adesea, v e i d o ri s l s a i u tiliz a to ru l s specifice cazul. P roblem a aceasta apare n dou a rii im p o rta n te d in d e zvo lta re a a p lic a iilo r p e n tru baze de date. E v id e n t, este o p ro b le m p e n tru baza de date. E ste i o p ro b le m p e n tru d e z v o lta re a in te r fe e i c u u tiliz a t o r u l. P ro b le m e le p r iv in d in te r fa a c u u tiliz a to r u l s u n t d is c u ta te n p a rte a a cin ce a a c rii. P roblem ele p riv in d m o d u l n care b a za de d a te se c o n fru n t c u aceste d e c la ra ii d in a m ic e n S Q L v o r f i d is c u ta te acu m . D e c la ra iile S Q L care s o lic it u t iliz a to r u lu i in tro d u c e re a de date se n u m e sc in te ro g ri p a ra m e triz a te . D e fin iia d e c la ra ie i S Q L c o n in e u n p la c e h o ld e r n lo c u l u n e i v a lo ri sta tic e . P e n tru a ilu s tr a acest lu c ru , s co n s id e r m c o d u l u rm to r:

208

PARTEAAIV-A-EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

SELECT Case.Title, Sum(timeentrydetail.hours*timeentrydetail.rate) AS total FROM Case INNER JOIN TimeEntryDetail ON Case.CaseID=TimeEntryDetail.CaseID WHERE c a s e .title=[introduceti numele unui caz] GROUP BY Case.Title ORDER BY Sum(timeentrydetail.hours*timeentrydetail.rate) Dese F ig u ra 9 .2 0 a ra t ce se n t m p l la e xecu tarea acestei in te ro g ri. V a aprea o caset de d ia lo g care v p e rm ite s s p e c ific a i n u m e le c a z u lu i.

F IG U R A 9 .2 0 In tero grile pa ram e trizate p e rm it u tiliz a to ru lu i s specifice c rite riu l n a in te de execuie.

Ee vw lrwt 2 Loc .

e *B

. '

- "-.
;

------------------------------ *

'

--------------------------------

a ,
a C 4e 0

if

> 1 1

F ig u ra 9 .2 1 p re z in t re z u lta te le in te ro g rii d u p ce u tiliz a to r u l a in tro d u s o valoare. in c a p ito lu l a n te rio r v -a fo s t p re z e n ta t c a ra c te ru l w ild e a rd *, u tiliz a t n Access. In te ro g rile p a ra m e triz a te p o t fo lo s i i ele acest ca ra cte r. S in g u ra d ife re n este c, n lo c u l o p e ra to ru lu i =, tre b u ie s fo lo s ii o p e ra to ru l Like. F ig u ra 9 .2 2 p re z in t o in te ro g a re p a ra m e triz a t care im p le m e n te a z o c u ta re w ild e a rd , ia r fig u ra 9 .2 3 p re z in t re z u lta te le in te ro g rii.

CP?'fLUL 9 SQL - DINCOLO DE GENERALITT!


FIG U R A 9.21 A cest set de rezu ltate a fo st generat de o interogare pa ram e trizat.

209

Mii
Record: EntoyeeCa 3 El EfrpoyCI

TfiwEntfyiM 0 ! E U WrKw v

F IG U R A 9 .2 2 O pe ra torul L ik e i ca ra cte ru l w ild c a rd p o t fi u tiliz a te n in te rog rile param etrizate.

!Joax

: r !nan? i * ]) K#oh/

plsasssptcifv a Ija I

1* * < fttryO<a Wri.:igorv

BBB

L i-'

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


FIGURA 9.2
Rezultatele in te ro g rii pa ram e trizate n care a fost u tiliz a t c a ra cte ru l w ild c a rd p e n tru a efectua o cutare a n u m e lo r de tip u l S*.
is , **Smfe *: '* W . .J _________ I Icnaib-C^) WarKategay fe * View ;ren fqrmai Peto Isol r *

1' --


| ' " ,I

" i-* " : : 'Z


E in p lo y M lD jf lulH.iine Stvih Small S; !tbins j5 < u ..lS *iiri y| A . liliw l j n ilin n ' :3 Ma S-re: Aci W s itlb t 55 ioen Ws > 1 ' i ) *i Luni Oly

tia ^ d
(AjjlofJ'jTQ

----

%
tWtMhcKVm'

M odificarea datelor folosind d eclaraiile

Insert, Update i Delete


Prezentarea in tro d u c tiv a lim b a ju lu i S Q L este aproape n ch e ia t . S ingurele elem ente r m a se n e d is c u ta te s u n t acele p o r iu n i ale lim b a ju lu i D a ta M a n ip u la tio n Language (DML) care v p e rm it s a d u g a i, s m o d ific a i i s te rg e i datele. D e c la ra iile S Q L care fa c ilite a z aceste o p e ra iu n i s u n t Insert, Update i Delete. A ce ast s e c iu n e p re z in t o s c u rt in tro d u c e re n aceste c o m p o n e n te S Q L D M L. A a c u m v e i vedea, d e c la ra iile Insert, Update i Delete s u n t fo a rte s im p le i u o r de neles.

D eclaraia I n s e r t
D e c la ra ia Insert este a lc tu it d in tre i p ri. P rim a d in tre ele desem neaz ta b e lu l c u care lu c r a i. A d o u a este o lis t de c m p u ri. A tre ia p a rte este o lis t de date. C o d u l u r m to r a ra t c u m a r fu n c io n a o d e c la ra ie In s e rt n ta b e lu l D e p a rtm e n t: Insert Into Department (Description) Values ("Criminal L a w " ) F ig u ra 9 .2 4 p re z in t m o d u l n care este e xe cu ta t aceast in te ro g a re n Access.

CAPITOLUL SQ L-DINCO LO DE GENERALITI


FIG URA 9 .24 P rin executarea declaraiei SQL I n s e r t , a fost in tro d u s d e p a rta m e n tu l C rim in a l Law.
OepafTnienilO ] 4> 8 1 Properly EiWKcnm 2 iw Ajiiaiiitt 3 Comnietcial 4

211

n t
.. :

.''-

; > <ettnr~ ' ( Vakjn *

loNumb r(

r~ Z T

Unele bazy de date accept urmtoarea declaraie:


Insert Int Department Values ("Criminal L a w ")

Cu alte cuvinte, unele baze de date v permit s omitei list explicit de cmpuri. Access, totui, necesit list de cmpuri. Omiterea acestei liste nu este idee bun, decarece tcei presupunerea c structura de baz a tabelului nu s-a mcdificat. Dac structura nu s-a modificat, este foarte posibil s obinei o eroare prin codul SQL. Explicitnd lista de cmpuri, codul dumneavoastr este mai lizibil i mai uor de ntreinut. Iar dac tabelul utilizeaz valorile implicite, trebuie numai s precizai cmpurile n care trebuie completat o valoare.

Dup ce introduceti n tabel o nou valoare, cum puteti determina valoarea cheli ei primare? Nu uitati, sistemul genereaz valoarea cheii. ntruct sunteti sigur c aceasta este valoarea maxim din tabel, funcia Max ( ) va rezolva problema:
Select Max(departmentid) As lastkey From department

212

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

F ig u ra 9 .2 5 p re z in t o s itu a ie n care n ta b e l s u n t in tro d u s e m a i m u lte v a lo ri. Se p u n e n u m a i p ro b le m a a fi rii t u t u r o r c m p u rilo r c u care lu c r a i i a v a lo rilo r coresp on d e nte acestora n c m p u ri.
F IG U R A 9 .2 5 D e clara ia SQL I n s e r t perm ite in tro d u ce re a m a i m u lto r v a lo ri n n o u l r n d E m ploye eC lass,

W*

r *. I2ue*y loo -^- tt

t . , ~]EmployeeClj f _____ soipllon 0 t Alltm ej Asociate L?ga 7 Secreta' < Paralegal 3 Alomy.Par1r>r Patent Attorney umber);

\ ' ....

,mliR.il

- ;D l x j l

, Wm H N 5ER TINTOEmptoyieOs ,-,r ' ) descrption defauKtste{ < Valu( Pen Atoiney'1, 300(

jiLdl

a-.

...:;.,-gqM i

D eclaraia U p d a te
D e c la ra ia U p d a te c o n in e d o u p r i im p o rta n te . P rim a p a rte desem neaz ta b e lu l c u care lu c ra i. A d o u a este o lis t a c m p u rilo r i a n o ilo r v a lo ri care tre b u ie in tro d u s e n ele. C o d u l u r m to r m rete cu 10 % va loarea t a r if u lu i im p lic it d in ta b e lu l EmployeeClass: Update EmployeeClass Set DefaultRate = DefaultRate * 1.10 F ig u ra 9 .2 6 p re z in t m o d u l n care este e x e cu ta t aceast in te ro g a re n Access. D e c la ra ia Update poate fi co m p le ta t cu o clau z Where. De exe m p lu , dac d o r ii s m r ii c u 10 % n u m a i ta rife le care depesc 500 $ , tre b u ie s s c rie i u n cod ca acesta: Update Employeeclass Set DefaultRate = DefaultRate * 1.10 Where DefaultRate>500

C A M T O LiJ , 2 SQ L-DINCO LO DE GENERALITI


FIG U RA 9.26
V-w Irsert 5ufy Vytow

213

Valorile t a r i f u l u i im p licit au f o s t modificate prin declaraia SQL Update.

.......

ligl.ilrH'! f t - . ' 0C l -r ' ' B ^ ' .-j r f f i

Ti7iipipye-:ijri _____ t)w ii|.lio n I Atlc'<ry-4 0ci(te P u .* ji J AilcfiiejPirtn

t f fm *f.? fe j& ffiT -r 3 165000 I J * ! h I s

W jM

W ,

* * S i V * ! r ~

, S & 9 h M 8 * S ,*- vis. T . i'fc ta v M ii

- C*!*e l !

_ _ ___ __ _ ____ 4. -.,... ^ Ti / :^ rl i/?

*O "Wree 3 -*:<* C t"v*oyct<.laa 3 ! ViJ . 3 ! ) ErtiiO n .Vcci''Vgx

D ac tre b u ie a c tu a liz a te v a lo rile d in m a i m u lte c m p u ri, tre b u ie n u m a i s s e p a ra i p r in v ir g u l n u m e le a ce stor c m p u ri i v a lo rile lo r d in lis ta s c ris n declaraie. P ro to tip u l u rm to r poate ilu s tr a m o d u l n care poate i i re a liza t aceast sa rc in : Update n u m e l e t a b e l u l u i Set <<campulx>> = n o u a valoare>>, c c c a m p u l y = n o u a valoare, c a m p u l z = n o u a valoare where c a m p = v a l o a r e

D eclaraia Delete
D e c la ra ia Delete are d o u p r i im p o rta n te . P rim a , ca i n ca zu l d e c la ra iilo r Insert i Update, este ta b e lu l cu care lu c ra i. A d o u a este cla u za Where p e n tru a s ta b ili r n d u rile care tre b u ie terse. C o d u l u rm to r va ncerca s te ra g to a te n re g is tr rile d in ta b e lu l Case: Delete From Case n tr u c t n u e x is t c la u z a where care s s ta b ile a sc datele care tre b u ie terse, S Q L p re s u p u n e c d o r ii s te rg e i to a te datele. A cest lu c r u este v a la b il i p e n tru d e c la ra ia update. In ca zul a c tu a liz rilo r, dac n u p re c iz a i datele care tre b u ie a c tu a liz a te , S Q L p re s u p u n e c d o rii s le a c tu a liz a i pe toate.

214

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

D in fe ric ire , e x is t u n m e c a n is m n c o rp o ra t care v a ju t s e v ita i co m p ro m ite re a in te g r it ii b azei de date. D ac v a m in tii, n c a p ito lu l 7 v -a fo st p re z e n ta t c o n c e p tu l in te g r it ii re fe re n ia le . A n e x a B , c o n in e o lis t a r e la iilo r d in baza de date. D espre ta b e lu l Case p u te m sp u n e c are o re la ie u n u la m u l i c u ta b e lu l TimeEntryDetail. n tr u c t n baza de date s u n t u tiliz a te te rg e rile re s tric io n a te , ia r p e n tru fiecare caz e x ist n re g is tr ri n ta b e lu l TimeEntryDetail, tergerea u n u i caz va fi im p o s ib il . F ig u ra 9 .2 7 a ra t ce se n t m p l dac n c e rc a i s te rg e i n re g is tr ri d in ta b e lu l Case.

FIGURA 9.27
Regulile de in te g rita te re fe re n ia l v m pie dic s tergei date, adic s com p ro m ite i in te g rita te a re fe re n ia l a bazei de date.

!rr-rr
M te a FromC
-!Di X I

D d tn D b Title StartDate Tnat'at * itSCTsrtL Department CoutUD JuijelD

sL
" : In.i C a ID Empto.c D I Client:

Qjery inDesign e (jjery by uing , ard

DocfceiHiimhe Title 5 001 150 Patent Infringement 7 Smith Divorce (AuloNumbei)

CaselD

2323222!
Microsoft Access can't delete 2 record() in tlie delete query due to key violation and 0 record() due to lock violations. Doyouwant to runttts action ? anyway Totgrore therwis) and un tha ouery, .ic Ys or an vpianatfcnof t* causes ct 'h i Mxkyris, c M b -

D ei caseta de d ia lo g d in fig u ra 9 .2 7 v n tre a b dac d o rii s c o n tin u a i, n re g is tr rile n u v o r f i terse. R egulile de in te g rita te re fe re n ia l c o n fig u ra te de d u m n e a v o a s tr p e n tru baza de date s u n t im u a b ile . C o d u l u r m to r ofer u n u lt im e xem p lu, care n corporea z cla u za Where n d e c la ra ia Delete: Delete From EmployeeClass Where EmployeeClassID = 5 D ac n cla sa de a n g a ja i pe care d o r ii s o te rg e i n u e x is t a n g a ja i, o p e ra ia de tergere v a re u i, deoarece in te g rita te a re fe re n ia l n u este n c lc a t n a cest caz.

CAPITOLUL 9

SQ L-DINCO LO DE GENERALITI

215

Rezum at
n acest c a p ito l, am e x tin s d is c u ia despre conceptele S Q L n v a te n c a p ito lu l 8. C a p ito lu l s-a c o n c e n tra t a s u p ra u n o r u tiliz r i avansate ale lim b a ju lu i SQL. V a tre b u i adesea s agregai datele fo lo s in d fu n c iile Sum (), Count () i Avg ( ) . In fu n c ie de g ra d u l necesar de g ra n u la rita te a da te lo r, v a tre b u i s n c o rp o ra i i cla u za Group By. In p lu s , fu n c iile Min () i Max {) ofer o cale s im p l de a extrage v a lo rile m in im i m a x im ale u n u i cm p d a t d in tr - u n ta be l. D u p agregarea d a te lo r, este fo a rte p o s ib il s d o rii s filt r a i s e tu l de re z u l ta te pe baza re z u lta te lo r ca lc u la te . A a c u m a i n v a t, clauza Where n u v va a ju ta n aceast s itu a ie , ia r n lo c u l ei v a tre b u i s u tiliz a i cla u za Having. C lau za Where acionea z a s u p ra d a te lo r s u rs n tim p u l e xe cu ie i in te ro g rii, ia r clau za Having acioneaz a su p ra s e tu lu i de re zu lta te o b in u te d u p te rm in a re a e xe c u ie i in te ro g rii. In fin a l, a i n v a t in te ro g rile p a ra m e triz a te i a lte co m en zi d in s u b lim b a ju l D M L d in SQL: Insert, Update i Delete. A cu m , c n d a i n e le s elem entele eseniale ale lim b a ju lu i SQL, p u te i u tiliz a in s tru m e n te le g rafice p e n tru in te ro g ri d in Access. S c o p u l a c e s tu i c a p ito l i a l c e lu i p re ce d e n t este s v a ju te s n e le g e i S Q L ca lim b a j, in d e p e n d e n t de im p le m e n ta re a sa n tr - u n caz p a rtic u la r. D u p ce a i neles lim b a ju l, este m u lt m a i u o a r a d o p ta re a in s tru m e n te lo r grafice care v a ju t s e v ita i c o m p le x ita te a c o d u rilo r SQL. De asem enea, pe m s u r ce fa c e i p ro grese pe calea d e z v o lt rii a p lic a iilo r p e n tru baze de date, v a tre b u i s re c u rg e i adesea la c o d u l S Q L in c lu s n a p lic a ii. M a i s im p lu spus, dac ave i de gnd s d e v e n ii d e z v o lta to r de a p lic a ii p e n tru baze de date sa u a d m in is tr a to r a l b a z e lo r de date, tre b u ie s c u n o a te i i s u tiliz a i lim b a ju l SQL!

10
INCLUDEREA INTEROGRILOR SQL IN BAZA DE DATE
In acest capitol:
P rezentare ge ne ra l a a p lic a ie i Q u e ry D e sig n e r d in Access C rearea in te ro g rilo r avansate R e z u m a t

218

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

n u ltim e le d o u capitole a i n v a t despre fu n c iile de baz s i fu n c iile a va n sate ale lim b a ju lu i SQ L (S tru c tu re d Q u e iy Language). n acest ca p ito l, ve i n v a c u m p u te i s s to c a i in te ro g ri n baza d u m n e a vo a str de date. S to carea in te ro g rilo r n baza de date are m u lte avantaje. U n u l d in tre ele este fa p tu l c p u te i re a liz a ceea ce se n u m e te in d e p e n d e n a p ro g ra m / date [program/data independence). Aceasta n sea m n c m o d ific rile n co d u l du m n e a v o a s tr de p ro g ra m n u p re s u p u n n e a p ra t m o d ific ri n baza de date i viceversa. O b u n p ro iecta re im p lic separarea c o d u lu i de p ro g ra m i a m e to d e lo r specifice de acces i m a n ip u la re a datelor. S copul acestei c ri c u p rin d e aspectul legat de date al problem ei, d a r aceasta n u nseam n c n u i se acord atenie i lim b a ju lu i de program are. D u p ce nelegei lim b a ju l SQL, v i se pare c este la fel cu orice a lt program . U ltim ele dou capitole v -a u preze nta t u tiliz a re a p ro p riu -z is a acestui lim b a j, in d e p e n dent de o im plem entare p a rticu la r n tr-o baz de date. Pe m su r ce v im p lica i m a i m u lt n dezvoltarea a p lic a iilo r p e n tru baze de date, ve i vedea c este im p o s ib il s sto ca i co d u l SQ L d ire c t n logica a p lica ie i dum neavoastr. n acest ca p ito l ve i afla c u m p u te i stoca d ire c t n tr-o baz de date co d u l SQL. In tim p ce in c lu d e re a c o d u lu i SQ L n logica a p lica ie i violeaz indepe ndena date / program , stocarea c o d u lu i SQ L n baza de date o ncurajeaz. Stocarea in te ro g rilo r n tr-o baz de date dep ind e de zonele specifice im p le m e n t rii u n e i baze de date. In acest c a p ito l, v e i n v a c u m v p e rm ite Access s s to c a i in te ro g rile . A lte p ro g ra m e p e n tru baze de date, ca SQ L Server i O racle a u m e to d o lo g ii p ro p rii.

O prezentare general a aplicaiei Query Designer din Access


C re d e i s a u n u , d a r a i lu c r a t d eja cu a p lic a ia Q u e ry D e sig n e r d in Access! C h ia r n c a p ito lu l 8, a i lu c r a t n v iz u a liz a re a SQ L a acestei a p lic a ii. C nd se le cta i Q u e rie s d in lis ta de obiecte a bazei de date, a p a r d o u o p iu n i n p a n o u l d in d re a p ta a l fe re s tre i p rin c ip a le a bazei de date. C nd o p ta i p e n tru crearea u n e i in te ro g ri n v iz u a liz a re a D esign, n p lu s fa de Q u e ry D e signer, apare o caset de d ia lo g care v in v it s s e le c ta i tabelele care v o r fi in tro d u s e n in te ro g a re . F ig u ra 10.1 p re z in t caseta de dia lo g S how Table.

Caseta cu list din caseta de dialog ShowTable funcioneaz ca orice alt caset cu list din Windows. Dac tineti apsat tasta Control (Ctrl) n timp ce selectat elementele, vor fi selectate toate elementele pe care ai executat Ctrl+clic. Dac selectat un element si tineti apsat tasta Shift cnd selectat alt element, vor fi selectate toate elementele cuprinse ntre cele dou pe care ai executat clic.
D u p se lectarea u n u i ta b e l, acesta apare n p a n o u l de su s a l a p lic a ie i Q u e iy D esigner. P e n tru a e xe m p lifica , s fo lo s im ta b e lu l C lie n t. D u p selec ta re a a c e s tu i ta b e l, el apare n p a n o u l de sus a l a p lic a ie i. T a b e lu l C lie n t este p re z e n ta t n fig u ra 10.2,

INCLUDEREA INTEROGRILOR SQLN BAZA DE DATE


FIG URA 10.1 A p lic a ia Q uery D esigner d in Access.

219

<3smm
<
j ' ' .

- 0.- Qjeiy n <


Itjeiy by <

*
. - . ' : * - . '

: g e a C T !

- |' Both, j

IDepatmeot Show entena.

'

F IG U R A 1 0 .2 A p lic a ia Q uery D esigner d in Access n vizu alizare a Design.

Jr

hfc

E lDaiath .

-to i x
query view Jy by


' Table;

220

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

Introducerea cm purilor selec tate


D u p in tro d u c e re a ta b e lu lu i n Q u e iy D esigner, p u te i selecta c m p u rile care v o r f i in c lu s e n s e tu l de re z u lta te . P e n tru a selecta u n cm p, tre b u ie d o a r s e x e c u ta i d u b lu c lic pe el n lis ta c m p u rilo r. A ltfe l, l p u te i trage d in lis ta de c m p u ri ale ta b e lu lu i, a fla t n p a n o u l de sus i l p u te i p la sa n tr-o coloan d in p a n o u l de jo s a l a plica ie i. O a tre ia m etod este selectarea u n e i coloane lib e re , a p o i selectarea c m p u lu i d in lis ta d e ru la n t . F ig u ra 10.3 p re z in t c m p u rile C lie n tID , C lie n tT yp e i O rg a n iza tio n N a m e d u p selectare. Pe m s u r ce c o n s tr u ii in te ro g a re a fo lo s in d a p lic a ia g ra fic , p u te i trece de la vizu a liz a re a D esign la v izu a liza re a SQL. A r tre b u i s f i i deja fa m ilia riz a t cu vederea SQ L, deoarece ea face p a rte d in a p lic a ia Q u e ry D e sig n e r i a i lu c r a t c u ea n ca p ito le le 8 i 9. F ig u ra 10.4 p re z in t v iz u a liz a re a S Q L a in te ro g rii.

FIGURA 10.3
C m p u rile C lien tID , C lientType i O rg a n iza tio n Name a u fost selectate p e n tru aceast interogare.

Se Insert Sueiy looii tfndow jefc

. e v ... . i: j

Ctgcts

Create quey Designvfcw

______
OotUD FirN am e jM.dcfaIV.al J

*Vo u c h

danUD Saw: Crfostiai

'

D u p ce a i s e le c ta t c m p u rile , p u te i r u la in te ro g a re a i v e i vedea s e tu l de re z u lta te . R e zu lta te le c u r nt< s u n t p reze ntate n fig u ra 10.5.

CAPITOLUL1C INCLUDEREA INTEROGRILOR SQL IN BAZA DE DATE


FIGURA 10
Trecerea la vizu alizare a SQL v pe rm ite s vedei codul
l '' f Qjtry loofe < > jt<

......
^ < r 5* < y ! i i - S lllt p lp B & :"> r i

f~ ~C tK f. | [ O a S e iM c -Y triO w g n v *
S E L E C TCr,t.ainID, Cin.a< ntTM, C!>tf.Orgifii:aionNime RO MCfert

gy

FIGURA 10.5
P u te i ru la in te ra c tiv interogarea n a p lica ia Q ue ry Designer p e n tm a vedea c o n in u tu l s e tu lu i de rezultate.

Infrt F&mat gCfdi Ioo ^ rt H .e <

.! U I G pen esitgnipilew ofc}pcs KT] Croataquwy D3 n vtew ]{ Create query by usirq J - J CliemlD OiflaniarioiiHaoie ;Ac Tomato Cornpany ;N/A N/A Ivlain Line Software, Inc

s_.

Apolisd Technoloaies

prnaryT:eYfidd ier Cter* fabte

Introducerea criteriului de selecie


D u p ce a i s e le cta t c m p u rile d o rite , p u te i filtr a s e tu l de re z u lta te fo lo sin d u n c rite riu de selecie. D ac p r iv ii fig u ra 10.5, este c la r c n re g is tr rile

222

PARTEA A IV-A - EXTRAGEREA INFGRMAIILOR DIN BAZA DE DATE

c lie n ilo r p ersoane fizice s u n t nerelevan te. F ig u ra 10.6 p re z in t c r ite r iu l de selecie n a p lic a ia de p ro ie c ta re grafic. FIGURA 10.6
C rite riu l de selecie a fost in tro d u s p e n tru ca interogarea s retum eze num ai n re g istr rile care ndeplinesc co n d iia C lie n tiy p e = "B .

* uery

He*}

j^a w ig n gaw

,!I *li

OenUD j CtentType FiritNjme M dIr*.al j J

&oup

:k n tlD
Show: Of.:

_ Ori.

rHntit

Ca i n ex m p lu l precedent, p u te i ru la in te ro g are a n m od in te ra c tiv p e n tru a vedea re z u lta te le . R e z u ltate le care respect c rite r iu l de selecie s u n t p re zentate n fig u ra 10.7.

FIGURA 10.7
S etu l de rezu ltate reflect in tro d u ce re a c rite riu lu i de selecie.

e * Jnjart FfTai crdi Xoo J H elp

- lC | x | ClltntID | ClUntTyp | Oiganli; Main Line Bob's Hau

;ord: H l 1

? ftmry r*f*U te r Clert

a U U

INCLUDEREA INTEROGRILOR SQLN BAZA DE DATE

223

n fin a l, tre c n d n v iz u a liz a re a SQL, p u te i vedea co d u l SQL. C o d u l cores p u n z to r acestei in te ro g ri este p re z e n ta t n fig u ra 10.8. FIGURA 10.8
Introd ucere a c rite riu lu i de selecie n a p lica ia grafic de proiectare duce la in tr o ducerea clauzei Where n codul

' nert Jjscy aos wmdow jeb

5J Creatawsry Dajn ytew Createquery by usng vteid 0

i aer*

p!

W S K m
Suprim area coloanelor
S in g u ru l scop a l c m p u lu i C lie n tT yp e este filtra re a s e tu lu i de re zu lta te . A fi a re a acestei coloane n s e tu l de re z u lta te n u este necesar. In tre p o r iu n ile S o rt i C rite ria ale p a n o u lu i de jo s a l a p lic a ie i de p ro ie cta re , v e i vedea o caset de v a lid a re p r in care p u te i s ta b ili dac o coloan este retu r n a t n s e tu l de re z u lta te . F ig u ra 10.9 v a ra t c u m p u te i s u p rim a co lo a n a C lie n tT y p e d in s e tu l de re z u lta te , ia r fig u ra ! .9 p re z in t s e tu l de re z u lta te m o d ific a t. F ig u ra 10.11 p re z in t c o d u l S Q L co re s p u n z to r acestei in te ro g ri. D u p c u m vedei, s u p rim a re a u n e i coloane n s e a m n d o a r tergerea c m p u lu i d in lis ta de selecie.

224

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE -------- - ?:

F IG U R A 1 0 .9 P ute i s ta b ili dac o coloan apare sau n u n s e tu l de rezultate.

UM

F I G U R A 1 0 .1 0 S etul de rezu ltate reflect tergerea c m p u lu i ClientType.


-

-. * :

<

: -


Wwwirtoori'f--

INCLUDEREA INTEROGRILOR SQL N BAZA DE DATE


FIG U RA 10.11 S u p rim a re a u n e i coloane nseam n do ar tergerea c m p u lu i d in lis ta de selecie.

225

Introducerea ordinii de sortare


S in g u ra s a rc in im p o rta n t pe care o m a i a ve i este s fu r n iz a i o rd in e a de s o rta re . F ig u ra 10.12 a ra t c t de u o r este s a p lic a i o o rd in e de so rta re d u p c m p u l O rg a n iz a tio n N a m e . F ig u ra 10.13 p re z in t s e tu l de re z u lta te , ia r fig u ra 1 0 .14 p re z in t c o d u l S Q L c o re sp u n z to r. FIGURA 10.12
P u te i specifica, in d ife re n t de c m p u l ales p e n tru sortare, dac sortarea este ascendent sau descendent.
G fO U P S

-lO l *li
:rsafe queY vwi Irea( W W yby ur g

q*enD_________CtanTyp________ OtaanatenHMne I ; Cler* _______O a n t _______Gnt ^ ^j Show: Oana:

___ ___________

- ........

226

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


vrw ] Pyro <

FIGURA 10.13
S etul de rezu ltate p re zin t sortarea ascendent d u p c m p u l O rgan iza tionName.

- OMBquiiyhCKanv*M ti
. Crae by uang w izard

ClimiilO

Orijjriiz.TlioiiHniric IAc Tomato Company Applied Tschnolagie ;Bob's Hausa of Pancakes Main Line SoftwaiP,

a d . ii I ' il

; } Il lo f

PnnUry KyFieMforCintTat>lc~

w B m

FIGURA 10.14
Specificarea o rd in ii de sortare n a p lica ia de proiectare gra fic duce la in tro du cerea clauzei O rder By n co d u l SQL.

6 *<!

Jso


CfriecU

'

query 1 Daikjr) ne w 3j Ocate t x r i by UVV{ :

isnt,o ntiD, FRO M C?n ))"H E R E((aen.CkinTypi-B ORCtR 9YCsrt.Org*toionNms;

S ortarea dup mai m ulte cm puri


F ig u ra 1 0.15 a ra t c t de u o a r este s o rta re a d u p m a i m u lte c m p u ri. A ce a sta n s e a m n n u m a i sp e cifica re a o r d in ii ascendente sa u descendente

CAPITOLUL 1 ' INCLUDEREAiNTEROGRILORSQLN BAZA DE DATE

227

p e n tru fiecare c m p s o rta t. P recedena s o rt rii fu n c io n e a z de la st n g a la d re a p ta . n aceast s itu a ie , s e tu l de re z u lta te va fi s o rta t m a i n t i d u p s ta t, a p o i d u p n u m e le o rg a n iz a ie i. P e n tru a s u p o rta aceast so rta re s u p lim e n ta r , a fo s t in tro d u s n in te ro g a re c m p u l State. FIGURA 10.15
S etul de rezu ltate este so rta t m a i n t i d u p stat, apoi du p num ele organizaiei. .1 0 1*I
i K gn ' < : .1D I XI

n s e rt jtty lo o *

] 2

j S p C c d e

fm
M 6: Show;

'

Salvarea interogrii
S alvarea in te ro g rii este u o a r . T re b u ie d o a r s e x e c u ta i c lic pe b u to n u l Save de pe b a ra de in s tru m e n te . F ig u ra 10.16 p re z in t u n m esaj care v p e rm ite s sp e c ific a i u n n u m e p e n tru interogare. D u p salvarea in te ro g rii, dac e x e c u ta i d u b lu c lic pe ea n fe re a s tra p rin c ip a l a bazei de date, aceasta v a f i ru la t .

228

PARTEA AIV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


*. Jrwert Query Tcos ^ndow be

FIGURA 10.16
Caseta de dialog Save As v perm ite s spe cifica i num ele in te rog rii.

8 p n M g ' t *
O bjects Createquery Dedgnvtew Cres queiy by usingward

- Ip I * l i

M S E ' :Query Nam ev !Business Client .... 1 '

1 *1 | |

Cancel _G rO JW _

- ti: Table : ort :Show Criteria:

f - r r - ;

Crearea interogrilor avansate


P n a c u m a i v z u t fu n c iile de baz ale a p lic a ie Q u e ry D e sig n e r d in Access. C rearea in te ro g rilo r avansate folo sind aceast ap lica ie este aproape la fe l de u o a r ca i crearea in te ro g rilo r o b i n u ite . S c o n sid e r m o lis t s im p l a a n g a ja ilo r, care c o n in e c m p u rile E m ployeeID , E m ployeeC lass, F irstN a m e i LastN am e. A a c u m t i i deja, descrierea c la s ific rii a n g a ja ilo r apare i n ta b e lu l Em ployeeC lass. Aceasta nse am n c inte ro g a re a necesit d o u tab ele i o d e c la ra ie de u n iu n e . n tr u c t re la ia este s to c a t n baza de date, n u tre b u ie s v a m in tii d e ta liile despre u n iu n e . C nd c re a i in te ro garea i in tro d u c e i tabelele E m ployee i E m ployeeC lass, u n iu n e a va aprea a u to m a t. F ig u ra 10.17 p re z in t aceast in te ro g a re n a p lic a ia de p ro ie cta re grafic , ia r fig u ra 10.18 p re z in t re z u lta te le in te ro g rii.

CAPITOLUL
FIGURA 10.17
U n iu n ile s u n t create au to m a t cnd n interogare s u n t in tro d u se tabele n ru d ite .

INCLUDEREA INTEROGRILOR SQL IN BAZA DE DATE

FIGURA 10.18
S etu l de rezultate conine date d in tabelele Em ployee i Em ployeeC lass.

d w T'jert

; ecrds

b j ftr.
EmployeelD !______Desai|>tion 13Aipmey-Assciaie 6 A l otrey-Asso ae 16Attomey-Assouji Atlctr 7y-As u ii ! Attomey-Assaciale 11 Atlomey-Associale 1 8AJIorn y-Partner AtlO'ney-Partns' Legal Sscielar 4

-! : J 'a .

...I 1 FlislHame : . Mart Mary Steven Derek :Jo* ; Oliver ilephsni iStuart

t I . jsiH.im Heartiessl Jones :Kardon Smalls Srnrth Holrnes . Meade

D a o d

Sal/ Nig?1 (AutoNumbet)

;S la ti

H jbbin=

Tufriel

Record: u | 11

I >!>?! of

F ig u ra 10.19 p re z in t c o d u l S Q L p e n tru in te ro g a re a care re tu m e a z lis ta a n g a ja ilo r.

230

PARTEA A IV-A - EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

FIGURA 10.19
V izualizarea SQL pre zin t cod ul corespunztor in te ro g rii care re tu m e a z lis ta a n ga jailor.

1 d i r u e r tQ u e r y o o lj v ia * lB- B 7 , : * ' ! ... !:

;f t ' '' ' -

:?

Im plem entarea funciilor i a gruprilor de agregare


U ltim u l s u b ie c t pe care l vo m abord a este re p re zenta t de fu n c iile i g ru p rile de agregare. P e n tru a e xe m p lifica , s p re s u p u n e m c tre b u ie s c re a i o in te ro g a re care realizeaz o lis t a c a z u rilo r i a n u m r u lu i de a n g a ja i care lu c re a z la fie care caz. De la n c e p u t, tii c tre b u ie s fo lo s ii tabelele Case i Em ployeeC ase. n tr u c t n u m e le a n g a ja ilo r n u p re z in t in te re s, ta b e lu l E m ployee n u este necesar. D in aceste d o u tabele, v e i avea nevoie de c m p u l T itle a l ta b e lu lu i Case i de fu n c ia de agregare CountO p e n tru a n u m ra a n g a ja ii care lu cre a z la fiecare caz. P e n tru a fa c ilita n u m ra re a , v a tre b u i s fo lo s ii o fu n c ie g ro u p b y p e n tr u c m p u l T itle . A p lic a ia Q u e iy D e sig n e r n u are ca p a c ita te a im p lic it de a in tro d u c e g ru p ri i fu n c ii de agregare. F ig u ra 10.20 p re z in t d o u aspecte. M a i n t i, p re z in t b u to n u l T o ta ls, de pe b a ra p rin c ip a l de in s tru m e n te . C n d e x e c u ta i c lic pe acest b u to n , n p a n o u l d in p a rte a de jo s a a p lic a ie i de p ro ie c ta re a in te ro g rilo r apare o n o u se ciu n e , n u m it Total A p o i, fig u ra 10.20 v p re z in t in te ro g a re a n Q u e ry D esigner.

INCLUDEREA INTEROGRILOR SQLN BAZA DE DATE


FIG URA 10.20 Aceast interogare im plem enteaz fu n c iile de agregare Count() i G roup By.
[flir t oofe

231

ESSgZZSSammM,:.

SBBBaw

[Ewfm/eeJ

0:

lEtrclovaci: EiTcton Erttoye-eCat* -

n se c iu n e a T o ta l d in Q u e ry D esigner, p u te i alege fu n c iile de agregare specifice pe care d o r ii s le im p le m e n ta i. F ig u ra 10.21 p re z in t s e tu l de re z u lta te , ia r fig u ra 10.22 p re z in t c o d u l S Q L c o re sp u n z to r.

FIGURA 10.21
Setul de rezu ltate ale in te ro g rii Case Em ployee C ount.

irwrt Loa

, ,

- l o i XI

Employes I Patent Infringemen i Sfiji hG ivorce

232

PARTEAAIV-A-EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE


.*
X . Nefr.fluay

FIGURA 10.22
C odul SQL corespunztor in te ro g rii Case Em ployee C ount.

'

':''

Wriow Hefc

< >
| .[ Dwlstjty'nDeignview C/ealequwy byging !ard r53 r.li*w I r.iirvt S E L E C TCais.Titl, ' '5 P .O M[Csie] IN N E R501NEmployesCMe ONC a e.CalD EmpfcyeeCaM.CM elO OUPBYCsse.T* O R D E RB YC5,

u^:

M l

T O

'7 7 7 7

ftgady

Interogri p aram etrizate


i in te ro g rile p a ra m e triz a te s u n t u o r de im p le m e n ta t. P e n tru a ilu s tr a acest lu c r u , s p re s u p u n e m c d o r ii s c re a i o lis t cu c lie n ii care s u n t firm e . D ife re n a cheie este c, a tu n c i c n d r u la i in te ro g a re a , u tiliz a to r u l este in v ita t s in tro d u c s ta tu l. F ig u ra 10.23 p re z in t aceast in te ro g a re n Q u e iy D esigner.

FIGURA 10.23
La ru la re a acestei in te rog ri, u tiliz a to ru l va in v ita t s in tro d u c o valoare p e n tru c m p u l State.

* a w insert Query look 0

'

. < * .
laonUD |Qen7ype

'
.lo lx lj

|
OrtxMrHme Pent :>a-Type

A P iT G im ii INCLUDEREA INTEROGRILOR SQLN BAZA DE DATE

233

F ig u ra 1 0.24 a ra t c u m u tiliz a to r u lu i i se s o lic it u n p a ra m e tru , ia r fig u ra 10.25 p re z in t re z u lta te le in te ro g rii. FIGURA 10.24
La ru la re a u n e i in te ro g ri param etrizate, u tiliz a to ru l este in v ita t s sprcifice o valoare p e n tru fiecare pa ra m e tru .

e W nTt Query

-Iblxj

. 1 :1 zi
Sac Show Cfterta: C "~ <

*ss

L l :.

FIGURA 10.25
S etu l de rezu ltate pre zin t c lie n ii care s u n t firm e d in s ta tu l New Jersey.

234

PARTEA AIV-A EXTRAGEREA INFORMAIILOR DIN BAZA DE DATE

Rezum at
S sp e r m c a i n v a t c in s tr u m e n tu l g ra fic de p ro ie c ta re a in te ro g rilo r este d o a r o e xtensie a lim b a ju lu i SQL, pe care deja l c u n o a te i. V e i vedea c este m a i u o r i m a i p ro d u c tiv s lu c r a i d ire c t c u c o d u l d e c t c u in s tr u m e n tu l de p ro ie c ta re s a u poate v i se v a p rea m a i u o r s p ro ie c ta i g ra fic in te ro g rile . C el m a i p ro b a b il, v e i vedea c n a n u m ite c a z u ri este m a i b in e s u tiliz a i c o d u l, ia r n a lte le s p ro ie c ta i g ra fic in te ro g rile . L u c ru l cel m a i im p o r ta n t este s n e le g e i m a i n t i c o d u l, ap o i s n e le g e i fu n c io n a re a in s tr u m e n tu lu i de p ro ie c ta re g ra fic a in te ro g rilo r. A ce sta este m o tiv u l p e n tru care a m s tr u c tu r a t a stfe l cap ito le le 8, 9 i 10. In d ife re n t dac lu c r a i c u in s tr u m e n tu l de p ro ie cta re g ra fic sa u n cod. to t n Q u e iy D e sig n e r lu c ra i. E ste im p o rta n t s o b se rva i c cele d o u ve d e ri ale a p lic a ie i Q u e ry D e s ig n e r re p re z in t d o u m o d u ri de v iz u a liz a re a aceleiai in te ro g ri. Deoarece lu c r a i n Q u e ry D esigner, in d ife re n t dac fo lo s ii c o d u l sa u p ro ie c ta re a g ra fic , p u te i stoca in te ro g a re a n baza de date. A cest c a p ito l ncheie a bord a re a p rim a r a acestei c ri. R e ca p itu l n d , pa rte a I a re a liz a t o p re ze n ta re in tro d u c tiv a b a ze lo r de date ia r p a rte a a Il- a v -a c l u z it n p ro c e s u l p ro ie c t rii i c re rii u n e i baze de date. P artea a IlI-a v -a p re z e n ta t m e ca n ism e le n tr e in e r ii u n e i baze de date, ia r p a rte a a IV -a a re a liz a t o p rezentare in tro d u c tiv n lim b a ju l SQL, pe care l v e i fo lo si p e n tru a extrage in fo r m a ii d in baza de date. P artea u rm to a re i u ltim a a c rii, p a rte a a V -a , v v a a r ta c u m p u te i c o n s tru i in te rfe e c u u tiliz a to r u l sim p le s i c u m p u te i n tre in e datele d in baza de date. n p lu s , v e i n v a i c u m s c o n s tr u ii ra p o a rte sim p le . n tim p u l d is c u ie i despre ra p o a rte , v e i vedea c u m s u n t u tiliz a te in te ro g rile pe care to c m a i le -a i c o n s tru it.

P R T E i .

UNCIONAREA AZEI E A T E ;ONSTRUIREA INEI APLICAII IMPLE p e n t r u AZE E DATE ^ACCESS

i?*

CONSTRUIREA COMPONENTELOR INTERFETEI CU UTILIZATORUL


In acest capitol:
P rezentare g en eral a a p lic a ie i F o rm D e sig n e r d in Access C rearea fo rm u la re lo r p e n tru a p lic a ia T E B C rearea u n u i fo rm u la r de tip m e n iu p rin c ip a l 18 R e zu m a t

238

PARTEA A V-A - F U N C IO N A R E A R AZEI DE DATE

P e n tru u n ii e itito ri, acest c a p ito l a r p u te a re p re ze n ta p a rte a a m u z a n t a c o n s tr u ir ii a p iic a iilo r p e n tru baze de date. C o n s tru ire a in te rfe e lo r c u 1 , d e n u m ite de o bicei n Access formulare, este o s a rc in in c re d ib il de u o a r . D ac n u v -a i ^ ' ilia r iz a t c u scrie re a c o d u rilo r de p ro g ra m , n u v fa c e i g riji! P u te i re a liz a 9 9 % d in ceea ce tre b u ie s fa ce i f r s s c rie i vreo lin ie de cod. Ia r dac tre b u ie s s c rie i c o d u ri, n u - i n in iic ! Ceea ce tre b u ie s s c rie i i lo c u l n care tre b u ie s s c rie i v o r fi c la r e xp lica te n a cest c a p ito l. A c e s t c a p ito l v a a d u c e la o la lt m a i m u lte co n ce p te care a u fo s t d e ja p re ze n ta te n (arfe. M a i p re cis, v a tre b u i s revedei cteva a trib u te ale c m p u rilo r i d e fin iii ale in te ro g rilo r stocate n baza de date. La s f r itu l c a p ito lu lu i, v e i nelege b in e c u m p o t fi c o m b in a te c o m p o n e n te le bazei de d ate i ale fo rc n u la re lo r p e n tru a o fe ri s o lu ii com plete.

Prezentare general a aplicaiei Form Designer din Access


C u m u lt tim p n u rm , n c a p ito lu l 2, a fo s t p re ze n ta t pe s c u rt a p lic a ia F o rm D esigner d in Access. T ot ce v -a m sp us a tu n c i a fo st c aceast a p lica ie e x is t i c v o m v o rb i d e ta lia t despre ea, m a i t rz u. n acest c a p ito l vo m re s p e c ta a cea st p ro m is iu n e . F ig u ra 11.1 p re z in t u n fo r m u la r n u m it In d iv id u a lC lie n ts .

..

fOL JL 11 CONSTRUIREA COMPONENTELOR INTERFEEI

239

A p lic a ia F o rm D e s ig n e r d in A ccess are d o u c o m p o n e n te p rin c ip a le : s u p ra fa a de p ro ie c ta re i caseta de in s tru m e n te . D in fe ric ire , cea m a i m a re p a rte d in m u n c a de creare a in te rfe e lo r c u u tiliz a to r u l poate fi e fe ctu a t fo lo s in d a p lic a ii w iz a rd . D in m o tiv e n te m e ia te , u tiliz a re a a ce sto r a p lic a ii este e v ita t aici. C nd tre b u ie s lu c r a i c u com ponentele eseniale ale bazei de date i s n e le g e i fu n c io n a re a g e neral a b a ze lo r de date, tre b u ie s a fla i ce se petrece n cu lis e . D ac lu c r a i c u fo rm u la re le , a p lic a iile w iz a rd v a ju t s n c e p e i, o c u p n d u -s e de p rile grele n lo c u l d u m n e a vo a str , n m u lte c a z u ri, d u m n e a v o a s tr in te rv e n ii d u p aceea, p e n tru a a ju s ta a n u m ite im p le m e n t ri. Pe m s u r ce v e i c o n s tru i fo rm u la re , v e i vedea c p ro c e d u ra este aceeai. C u a lte c u v in te , v e i u rm a aceiai p a i de baz, i anum e: 1. L a n s a i a p lic a ia F o rm W izard. 2. A le g e i u n ta b e l sa u o in te ro g a re pe care se bazeaz fo rm u la ru l. 3. A le g e i c m p u rile care v o r fi afiate n fo rm u la r. 4. A le g e i o aezare a e le m e n te lo r (layout) i u n s til. 5. S a lv a i fo rm u la ru l. 6. In tr a i n N ew F o rm D e fin itio n i fa c e i m ic i a ju s t ri.

Crearea form ularelor pentru ap licaia TEB


S e c iu n ile u rm to a re v v o r c l u z i p r in p ro c e s u l de c o n s tru ire a fo rm u la re lo r p e n tru a n tre in e datele despre c lie n i i a n g a ja i. n p lu s , v e i crea i u n fo rm u la r de tip m e n iu p r in c ip a l care va fi u tiliz a t p e n tru a la n s a alte fo rm u la re . V o m re a liz a d o u fo rm u la re p e n tru c lie n i: u n u l p e n tru firm e i a ltu l p e n tru c lie n i persoane fizice. P e n tru a c o n s tru i aceste fo rm u la re , tre b u ie create d o u in te ro g ri. Ca s re a liz a i fo r m u la r u l p e n tru a n g a ja i, v o r fi necesare d o u c u t ri. D a c v a m in tii, o rice a n g a ja t a p a rin e u n u i d e p a rta m e n t i i este a tr ib u it o cla sifica re . Poate v a m in tii i c a u fo st c o n fig u ra te d ife r ite a tr ib u te ale c m p u r ilo r p e n tr u a f a c ilita c re a re a fo rm u la re lo r. N u v te m e i de n ecesita te a de a re c iti pasaje a n te rio a re ale c rii, deoarece n tre g u l proces va fi re c a p itu la t n acest c a p ito l!

Form ularele pentru clieni


Poate v m a i a m in tii c e x is t d o u t ip u r i de c lie n i: persoane fizice i firm e . F iecare tip este d ife re n ia t fo lo s in d c m p u l C lientT vpe. P e n tru c lie n ii persoane fiz ic e s u n t c o m p le ta te c m p u rile c u p re n u m e le n u m e le de fa m ilie i in iia la . P e n tru c lie n ii care s u n t firm e , este c o m p le ta t c m p u l c u n u m e le o rg a n iz a ie i. C nd o fe rii u tiliz a to r ilo r o m e to d de in tro d u c e re a da te lo r, d o r ii s le fie c t m a i u o r p o s ib il. n acest caz, este logic s c re a i d o u in te rfe e d ife rite .

240

PARTEA A V-A - F U N C IO N A R E A B A ZEI DE DATE

Cea m a i s im p l cale de a c o n s tru i d o u in te rfe e d ife rite este s d e fin ii d o u in te ro g ri: u n a p e n tru c lie n ii persoane fizice, a lta p e n tru c lie n ii care s u n t firm e , n tr u c t t i i d eja s c o n s tr u ii in te ro g ri, m a n u a l sa u fo lo s in d a p lic a ia de creare g rafic, acest c a p ito l v va n v a c u m s u tiliz a i a p lic a ia Q u e ry W iz a rd p e n tru a d e fin i aceste in te ro g ri.

Interogarea IndividualClient
F ig u ra 11 .2 p re z in t la n s a re a p lic a ie i Q u e ry W iza rd . M o tiv u l u tiliz r ii in te ro g rilo r n a cest caz este fa p tu l c u n ta b e l are d o u r o lu ri. P e n tru a n d e p lin i aceste d o u r o lu r i, este lo gic s -l d iv iz a i n d o u p ri: c lie n ii p ersoane fizice i c lie n ii firm e .
FIGURA 1 1.2
A p lic a ia Q uery W izard poate fi la n sa t d in fereastra p rin c ip a l a bazei de date.
y t nit - ! '

: ' - 0 $

-in i xi
X : <

? . * '
'r 0 t UstnQ Cs-Eireoyee Irrlerfet-Car t sng Errtoy- lKr>j

M M , ,,,

F ig u ra 11.3 p re z in t p r im u l pas n d e fin ire a in te ro g rii, care p re s u p u n e alegerea u n u i ta b e l sau a u n e i a lte in te ro g ri. In acest caz, este u tiliz a t ta b e lu l C lie n t. n tr u c t aceast in te ro g are va im p lic a n u m a i c lie n ii persoane fizice, n u este n e ce sa r c m p u l O rg a n iza tio n N a m e n s e tu l de re z u lta te . De aceea, a cest c m p a fo s t om is. F ig u ra 11.4 p re z in t a l d o ile a pas a l a p lic a ie i Q u e ry W iza rd , care im p lic d e n u m ire a in te ro g rii i spe cifica re a d ac aceasta v a f i e x e c u ta t sa u va m a i fi m o d ific a t n a in te de execuie.

CAPITOL
FIGURA 11.3
Pasul 1 al a p lica ie i Q u e iy W izard v perm ite s d e fin ii c m p u rile care vo r f i in clu se n s e tu l de rezultate.

CONSTRUIREA COMPONENTELOR INTERFEEI

241

FIGURA 11.4
Pasul 2 al a p lica ie i Q uery W izard v pe rm ite s fu rn iz a i u n n u m e p e n tru interogare i s pre ciza i dac ea v a fi executat d ire ct sau va fi deschis p e n tru a fi m o d ifica t n a in te de salvare.

n ert loas '

Ob)Kts X < '

Whst U sdo ycu >wn for your qjtryJ !

' $ informatori the your yauwan query or modfy qusryi Crajpt 5 nthe vwwWormsaon.

Ksctay on*rOikirqMhthequwy?

ir

'

242

PARTEA A V-A - FU N C IO N A R E A BAZEI DE DATE

D u p ce e x e c u ta i c lic pe b u to n u l F in is h , in te ro g a re a v a fi sa lva t i va fi d e sch is o n o u in s ta n ie re a a p lic a ie i Q u e ry D esigner. E x is t d o i p a i s u p lim e n t a r i c a re tr e b u ie p a r c u r i n a in te de fin a liz a r e a in te r o g r ii In d iv id u a lC lie n t. M a i n t i, inte ro g a re a tre b u ie s o rta t d u p n u m e de fa m ilie i n o rd in e a scende nt. A p o i, tre b u ie in tro d u s n c m p u l C lie n tT yp e u n c rite r iu p e n tru a se re tu r n a n u m a i n re g is tr rile care n d e p lin e s c c o n d iia C lie n tT y p e = T . F ig u ra 11.5 p re z in t a p lic a ia Q u e ry D e sig n e r i aceste m o d ific ri s u p lim e n ta re .
FIGURA 11.5
La interogarea In d iv id u a lC lie n t, creat folo sin d a p lica ia Q ue ry W izard, au fo st adugate o ord in e de sortare i u n c rite riu .
|Fr |

Fie W ew nsart 5< < fy a V jtaC c*. < dp a r - < A .

X : 7

jCfcnUD _J jCHentlype iffcne MkHdnftW j j j )

'

OentTy

focady

. .

....

Interogarea BusinessClient
P aii n e ce sa ri p e n tru re a liz a re a in te ro g rii B u s in e s s C lie n t s u n t aproape aceiai cu cei necesari p e n tru crearea in te ro g rii In d iv id u a lC lie n t. O dife re n este fa p tu l c n lo c de p re n u m e , n u m e le de fa m ilie i in iia l apare u n cm p c u n u m e le o rg a n iz a ie i. M a i departe, o rd in e a de s o rta re a e lem entelo r d in acest c m p este a scende nt. A lt d ife re n se re fe r la c rite riu . n in te ro g a re a B u s in e s s C lie n t, v o r f i re tu rn a te n s e tu l de re z u lta te n u m a i n re g is tr rile care n de p lin esc c o n d iia C lientT ype = B . F ig u ra 11.6 p re zin t in te ro g a re a B u s in e s s C lie n t n a p lic a ia de p ro ie c ta re a in te ro g rilo r. F ig u ra 11.7 p re z in t a m bele in te ro g ri n a c iu n e . D u p ce a m te rm in a t cu in te ro g rile , p oate ncepe m u n c a de a d u n a re a c lie n ilo r p ersoane fizice i c lie n ilo r firm e .

CONSTRUIREA COMPONENTELOR INTERFEEI


FIGURA 11.6
Interogarea B usine ssC lient, com p le ta t cu o sortare i u n c rite riu n Q uery Designer.
I; w Insert *jefy ocis *iow jlp ! b l ^ g?

243

PPr.3-

J e n U D
|C ncType Hrtfclnilsl j

QnntlD TabS C nt

Cfcr*Tyoe Own I B 0

lorort

Ci r

aSinNani &

Addiessl Ctefit B ' "

Address Ctent " 0 " .......

&

w :

FIGURA 11.7
Intero grile care re tu m e a z c lie n ii persoane fizice i c lie n ii care s u n t firm e ofer dou m o d u ri de a p riv i ta b e lu l C lient.

l'iurrt Prm a Retcrd Iaos rtndtw

-a
-

m1 1
j Cilimt Type | OignizatlonHame j Aildieat 1 | Ac e famato Company Main Street 123 N/j Applied Technologic Penn Center Bob's House of Paneat 100 Dune Ayenut N/ Main Line Software. Inc. 119 Biddle Road;N/J (AuioNumbert I r-i/A n/ Cli*ntlD

Qpen Q rgo liiev X Otw

1 <

? J Crwte tjje
[?Create < je Business Ci B-jsnessC* ] ss-En* I fp Employee|- Ettayee-L j IndcvMuiKI I 1 (

la*]
Client Type Fin.iN.nne IM iiliilalnitia l Wilma Betty Sam John LdstNaina iplintslone Rubble: Seaborn Smith N/A

* :

Reccrd: <j l i

(AutoNumberl I

ecord:

j*twy'Ksy Faid tor citfti ftSk

244

PARTEA A V-A - FUNCIONAREA BAZEI DE DATE

Form ularul IndividualClient


D ac n u a i i i a v u t la d is p o z iie a p lic a ii w iz a rd care s se ocupe de p a rte a grea a c o n s tr u ir ii fo rm u la re lo r, aceast m u n c a r c o n s u m a m u lt tim p . D ei a i fi p u t u t s v b a z a i n u m a i pe ceea ce v ofer a p lic a ia w iz a rd , p e n tru a o b in e o in te rfa m a i fu n c io n a l i m a i p rie te n o a s fa de u tiliz a to r v e i d o ri s m o d ific a i fo r m u la r u l d u p ce l cre a i. V estea cea b u n este c i p e n tr u m u lt e d in t r e s a r c in ile pe c a re le v e i e x e c u ta d u p c re a re a fo r m u la r u lu i e x is t a p lic a ii w iz a rd ! F ig u ra 11.8 p re z in t p r im u l pas de u tiliz a re a a p lic a ie i F o rm W iza rd .
. _

FIGURA 11.8
Pasul 1 a l a p lica ie i F orm W izard v p e rm ite s alegei u n tabel sau o interogare i c m p u rile corespunztoare pe care se va baza fo rm u la ru l.

Q * Uj3 !

j 2Pn J X , ' :: 1 Ob)gcti 1 < ,IJ "oe> form'inOiOgr ] Create fermby fa rd

?-o
Sfiyjp

lT "
~

n a cest caz, la b aza fo r m u la r u lu i In d iv id u a lC lie n t st in te ro g a re a In d iv id u a lC lie n t. P e n tru to a te aceste fo rm u la re , v o m alege s u tiliz m to a te c m p u rile . F ig u ra 11.9 p re z in t p a s u l 2. n acest pas, p u te i alege aezarea elem entelo r ( layout) n fo rm u la r. In acest caz, v a fi selectat o p iu n e a im p lic it de aezare pe coloane. n p a s u l 3, p re z e n ta t n fig u ra 11.10, p u te i alege u n s til. Access c o n in e m a i m u lte s tilu r i. In aceste exem ple, v a f i u tiliz a t s tilu l B lends.

CONSTRUIREA COMPONENTELOR INTERFETEI


FIGURA
Pasul 2 al a p lica ie i Form W izard v pe rm ite s alegei o aezare a elem entelor d in fo rm u la r.

245

FIGURA 11.10
Pasul 3 al a p lica ie i Form W izard v p e rm ite s alegei u n s til p e n tru fo rm u la r.

Ete. fi a

'

. : -
0 Cwsgr fm Otate ferm by 0 -

Whs yewouMyoule?

aajpi

Labil Oala

Bkjprir* Expedieri InduttrM Inismabonal SarxiSofw sand>d 0 S unn

CerceT

tB *H j at> ) E h g i

ferm^d

246

PARTEA A V-A - FU N C IO N A R E A BAZEI DE DATE

n u lt im u l pas, p re z e n ta t n fig u ra 11.11, ca i n Q u e ry W iza rd , p u te i alege u n n u m e p e n tru fo rm u la r i p u te i sp ecifica dac fo r m u la r u l va fi r u la t d ire c t sa u v a m a i f i m o d ific a t n a in te de salvare. FIGURA 11.11
F o rm u la ru l B u sin e ssC lie n t se bazeaz pe interogarea B usine ssC lient.

' ': V' ' ; *' : '


O b je c ts I j j C r a te fc

ln t 1

s* & ' !X *. ' ' * .


3

w tatttl* doyou |

>

< > 2 ' " '* ' . '

Croup

"*
Carl

'formWgard

F ig u ra 1 1.12 p re z in t p ro d u s u l fin a liz a t. F o lo s in d b a ra de in s tru m e n te d in p a rte a d e jo s a fo rm u la ru lu i, p u te i trece la p rim a n re g is tra re , la n re g is tra re a p rece de n t, la n re g is tra re a u rm to a re s a u la u ltim a n re g is tra re . In p lu s , p u te i a d u g a n o i n re g is tr ri. Ce v lip se te este p o s ib ilita te a de a terge sa u a n u la m o d ific rile . A ce st lu c r u se d atoreaz fa p tu lu i c, d u p ce c re a i fo r m u la r u l, tre b u ie s a d u g a i u n set de b u to a n e care a d a u g fu n c io n a lita te n fo rm u la r. D e ta liile p r iv in d p ro c e s u l de adug are a b u to a n e lo r de co m a n d p e rs o n a liz a te v o r d is c u ta te m a i t rz iu , n c u rs u l acestei seciu n i.

Form ularul BusinessClient


P aii n e ce sa ri p e n tru crearea fo r m u la r u lu i B u s in e s s C lie n t s u n t aproape aceiai ca la cre area fo r m u la r u lu i In d i^ id u a lC lie n t. S in g u ra excepie este fa p tu l c, n acest caz, fo r m u la r u l se v a baza pe in te ro g a re a B u s in e s s C lie n t. F ig u ra 11.13 p re z in t fo r m u la r u l B u s in e s s C lie n t.

CONSTRUIREA COMPONENTELOR INTERFEEI


FIGURA 11.12
F o rm u la ru l creat de a p lic a ia w izard ofer capacitatea de a naviga p rin n re g is tr ri i p o s ib ilita te a de a crea no i n re g istr ri.
ndov.

247
- Ig lx l

;Bay
Anal

i p p S M H M
o p m * a x
QtxKU

IS U i
. Vi
PIhmh tiu.nl

CftB 1 >1>

Flintstone

U b li***
G rauen 4lllS 2

10 Boulder Avenue

Copper Falls ifll* R ec o r . !< j I l CA T . |.n|>| of

::<:

Ky for Cfcf* Tat*

FIGURA 11.13
F o rm u la ru l B u sin e ssC lie n t este bazat pe interogarea B usine ssC lient.

'tw mut Ptard J.x)i r*bw H e<

tjgCpan *' 3 ' Ob)Kt j &<te form DesignvvT Email

a a j .
Main Street

Indvi OfgaifiailiiN.Mi>e Ace Tomato Company

Ai Philadelphia G roups

fomyy KeyFieidTof Ceo( Tat

248

PARTEA A V-A - FU N C IO N A R E A BAZEI DE DATE

A c u m , d u p ce a i c re a t fo rm u la re , este tim p u l s m o d ific a i aezarea ele m e n te fo r i s in tro d u c e i cteva b u to a n e p e rso n a liza te p e n tru co m enzi p e n tru a c o m p le ta fu n c io n a lita te a acestora.

M odificarea aezrii elem entelor din form ulare


D ei a p lic a ia ^ z a r d face fo a rte m u lte in lo c u l d u m n e a vo a str , n u poate face tre a b a n p ro p o rie de 100 %. F ig u ra 11. p re z in t aezarea m o d ific a t a fo r m u la r u lu i In d iv id u a lC lie n t. Aezarea m o d ific a t are u n aspect m a i e c h ilib ra t i m a i p ro fe s io n a l. S c h im b rile n u se refer n u m a i la poziie. M a i , a fo s t te rs c m p u l C lle n tlD . N u este necesar ca u tiliz a to r u l s va d acest cm p, deoarece el este fo lo s it de baza de date. n a l doilea r n d , c m p u l C lie n t"fyp e a fo s t m u ta t n p a rte a de jo s a fo rm u la ru lu i, ia r p ro p rie ta te a v is ib le a fo s t s e ta t pe No. N u u it a i c n fiecare fo rm u la r p e n tru c lie n i fiecare c lie n t tre b u ie s a ib a celai t ip de valoare. De aceea, n u este nevoie ca u tiliz a to r u l s v a d acest lu c ru . T o tu i, c m p u l n u ofer s e r ic i i valoroase p e n tru n re g is tr rile n o i. V e i vedea de ce este im p o rta n t acest c m p n seciunea u rm to a re . n s f rit, unele d in tre etichetele cu te x t u tiliz a te p e n tru a descrie c m p u rile de in tra re a u fo s t fie m o d ifica te , fie p u r i s im p lu terse. P e n tru a terge u n e lem ent, tre b u ie d o a r s l se le c ta i cu m o u s e -u l i a p s a i ta s ta Delete. P e n tru a m o d ific a te x tu l u n e i etichete, e x e c u ta i c lic pe ea p e n tru a o selecta i m o d ific a i p ro p rie ta te a C a p tio n n caseta de p r o p rie t i p re z e n ta t n fig u ra 11.14.

FIGURA 11.14
V ersiun ea m o d ifica t a fo rm u la ru lu i In d iv id u a lC lie n t are u n aspect m a i e c h ilib ra t i m a i profesional.

1
FirsiNsm :.astNsms

:ZipCode :Phone

Data

----- . . . . . * , . . S i* Cota... . . 8 . Ccior FofeCoter...

6777215

C A P IT O LU L 11 CONSTRUIREA COMPONENTELOR INTERFETEI


F ig u r a 1 1 .1 5 p r e z in t a c e le a i m o d ific r i, d a r a p lic a te f o r m u la r u lu i B u s in e s s C lie n t.
FIGURA 11.15
V ersiun ea m o d ifica t a fo rm u la ru lu i B u sin e ssC lie n t are u n aspect m a i e c h ilib ra t i m a i pro fe sio nist.
OrasnaonNa.~ ;AdCjfeSSl &CUP Udd'ess 'ZlBCoae Pnooe .Eniil

'Asin nert Fjm* ooli Trr

.101x1

gs'
~ S Obje

&* ; X j V > S
I ~ 0 GoaleformnDragnvwvT frm by unmj ard 3 ..4 8u 3 ra>r.t I Data I Event I Olho. | Al ftxcB Ne* Page.............. N one NswftowOrW.............. Nene KeecTogettw................ Ho V W *..................... Yk Deiay When.................. Alwayj CsnGrow..................... Canihr**. .................... No BackCofar.................... -2H73633 SpedalEfet..................Fia

ijj

.......

.......... 2.2oer

Ci8nti

M 1 *U
J -1 _ \ a

Introducerea butoanelor de com and pentru navigarea prin nregistrri


Cele d o u fo rm u la re p e n tru c lie n i s u n t a proape com plete. U ltim u l pas p re s u p u n e in tro d u c e re a b u to a n e lo r p e rso na liza te care fa cilite a z navigarea p r in n re g is tr ri, in tro d u c e re a i tergerea n re g is tr rilo r. In p lu s , v a fi in tro d u s c a p a c ita te a de a salva i a n u la m o d ific rile , p re c u m i cea de a g si n re g is tr rile pe baza u n u i c r ite r iu de c u ta re . D in fe ric ire , e x is t a p lic a ii w iz a rd care p o t n d e p lin i aceste s a rc in i i p ra c tic , n u este necesar s s c rie i v re u n cod. A a c u m v e i vedea, v a fi n ecesar o lin ie de cod n b u to n u l A d d . F ig u ra 1 1.16 p re z in t fo r m u la r u l In d iv id u a lC lie n t n m o d u l D esign. Caseta de in s tru m e n te F o rm D esign, p re z e n ta t i ea n fig u ra 11.16, c o n in e o v a rie ta te de c o n tro a le care p o t fi in tro d u s e n fo rm u la r. A p lic a ia F o rm W iz a rd a u tiliz a t aceleai c o n tro a le c n d a u fo s t create p rim e le v e rs iu n i ale fo rm u la re lo r. P e n tru a in tro d u c e u n b u to n n fo rm u la r, tre b u ie d o a r s e x e c u ta i c lic pe p ic to g ra m a b u to n u lu i de co m a n d d in caseta de in s tru m e n te . F ig u ra 11.17 p re z in t c u m i s c h im b m o u s e -u l fo rm a .

250

PARTEA A V-A - FU N C IO N A R E A BA ZEI DE DATE


' Wreiow BB

FIGURA 11.16
Caseta de In stru m e n te d in Form Design co n in e o varietate de controale care p o t f i in tro d u se n tr-u n fo rm u la r.

' ' *
:FirstNam * ' :Address Adrei ';State :Phone

: ::: '

Fwm Ever. Caption. , . . . . . . . . . . . . ndMudlOent Oifauft . . . . . . . . . . . S ingle Form ViewsAiowwi. .. .... s V as ies < e

0. . . . . . . . . . . . . . . <lines. . . . . . . . . . . . Auto . . . . . . . . . . . . . ...... Bor 5 .. . . . . . . . . . . CaiiroiBox. . . . . . . . . . . .

. . . . . . . . . .

stil
jptiMtri-ftcw

FIGURA 11.17
Dac exe cutai clic pe u n elem ent d in caseta de in s tru m e n te , p o in te ru l m o u s e -u lu i i sch im b nfiarea, a ju t n d u -v s p la s a i o b ie ctu l pe s u p ra fa a de proiectare a fo rm u la ru lu i.

sert m a

c p a 'iM "*a iw x

-laixi
* 0 Eyan I j --/ , , . : . . ; . , E m bedded FirstName ;dssl *, ' LasiName O t Q yW hen . . . . . . . A lways

;Phori

S M ,

Emil . Clienl :

0.2 . . . . . . . . F a eC ck * ...:.; . . . . . . 10C K 0115 ... . . . . . . . . ? . . , , , . . . . . . . . Fonts r-ortWB . . . . . . . . . . . B old . . . . . . . . . . . . . FontUndlne . . . . . . . . . Ho . . . . . . . . . . . . . No

j0es*anVi9~

- -- -

D u p ce s e le c ta i u n lo c d in fo r m u la r n care d o r ii s a p a r o b ie c tu l, e x e c u ta i u n clic. F ig u ra 11.18 p re z in t p r im u l pas a l a p lic a ie i C o m m a n d B u tto n W iz a rd , care apare c n d o b ie c tu l este p la s a t n fo rm u la r.

CAPITOL ,
FIGURA 11.18
P rim u l pas al a p lica ie i C om m and B u tto n W izard v in v it s selectai tip u l de operaie executat cnd se execut clic pe b u to n ,

' CONSTRUIREA COMPONENTELOR INTERFEEI


|nft ' 0
V -S

251

)! 5
-

* '
* IOJ ) hppan > 0 . . 0 j Ev . 0 .. . .. - ype. . . . . . . : ]. . . . . . : , ... Hyprh* , Em bddc

'

.' -<* .

'" "" IW flM iB IZB M B B M I:


| ' . ' "'?

'

... .. : . .,

:Aiways ; . . 1.75

PcrsCok

!'

' - ,

D u p ce s e le c ta i o o pe ra ie, p a s u l 2, p re z e n ta t n fig u ra 11.19, v in v it s se le cta i b u to n u l care va aprea.

FIGURA 11.19
Pasul 2 al a p lica ie i C om m and B u tto n W izard v in v it s selectai b u to n u l care va aprea.

ffc * . 5 ; tn 0

1 0 1 x1
L
.

m n n ffrw riiC T m a rr;


- ' .

'

*; -

\ u .
;

1 JW .V iW W

..,. e .' 0 tv tr c * h ~
- . .. . PKtie . . . . . . . . . . . . . . . ) ' Hypstfefc! '........

SSKSM:

lyouwani '.ttor pictur an button? Tex, you ihe tsxt 0 . W S'jrS; 8

5 ..

~
:|0 | Arrow) 6 | UpAi'> w(Btj

b g g rt ?

rsw vA iP w ui

FwsCobf,

PARTEA A V-A - FUNCIONAREA BAZEI DE DATE


U ltim u l pa s a l a p lic a ie i w iz a rd , p re z e n ta t n fig u ra 11.20, v in v it s s p e c ific a i u n n u m e d e s c rip tiv p e n tru b u to n . C nd va sosi m o m e n tu l s in tro d u c e i cod s u p lim e n ta r p e n tru b u to n u l A d d , v e i vedea c t de im p o r ta n t este s s p e c ific a i n u m e le u n u i b u to n .
FIGURA 11.20
Pasul 3 al a p lica ie i C om m and B u tto n W izard v in v it s spe cifica i u n nu m e d e scrip tiv p e n tru ob ie ctu l b u to n de com and.

vW w nHt ?mai V<vk*v fc s p

;Com m and

Rrg ^ v ,:

s s u

AranogfJ w i h<yourefer the butwi later,

Fofiti I OB 1 Ev*: I Other j ! CapSon. , . . . . . . . . . . . Com m and2S Vfjre . . ypt-------- -Em bedded .. .. Transpirar*. , . . . . . . . . . ;No ......... Hyperiiri Address . . . . . . . . . hjpsrif SAtHms------ vtfe .......... . ; DsoyWhen. . . . . . . . . . , -Always ;0.1667* Width. . , . Haight fore Cab . DisplayHetetvajstc*feingthe ytton,

That's d he irf o rmetianthe *ard need 0 createyouf ccrcnr d bufe.

C are*

<6**

BH
jCO m tnaryJ&Atori W eatd

F ig u ra 1 1 .2 1 p r e z in t n f i a re a f o r m u la r u lu i In d iv id u a lC lie n t d u p a d ug a re a c e lo rla lte b u to a n e de navigare.


F IG U R A 1 1,21
F o rm u la ru l In d iv id u a lC lie n t cu bu toan ele de navigare personalizate.
Addr 1 :Address ;ZipCode Phons .Email ;CfcHlI'TvTf:

dt View Jnsert

I o W o w

CAPITOLUL 11 CONSTRUIREA COMPONENTELOR INTERFEEI

253

D u p crearea b u to a n e lo r de navigare, p a s u l u rm to r p re su p u n e in tro d u ce re a c a p a c it ilo r care p e rm it u tiliz a to r u lu i s creeze i s tearg n re g is tr ri, s salveze i s a nuleze m o d ific rile a s u p ra n re g is tr rilo r, ia r n fin a l s ca u te o a n u m it n re g is tra re d u p u n c r ite r iu de cutare.

Introducerea ca p acitilo r suplim entare n form ularul IndividualClient


In tro d u c e re a fu n c ie i de creare i teregere a n re g is tr rilo r, salvare i a n u la re a m o d ific rilo r a s u p ra n re g is tr rilo r, p re c u m i a fu n c ie i de c u ta re , este la fel de u o a r ca i in tro d u c e re a u n u i a lt tip de b u to n de com and. F u n c ia de c u ta re poate i i gsit n seciunea Record N avigation d in a p lic a ia C o m m a n d B u tto n W iz a rd . F u n c ia s u p lim e n ta r n aceast s e ciu n e se gsete n s e c iu n e a R ecord O p e ra tio n s. F ig u ra 11.22 p re z in t p r im u l pas p e n tru in tro d u c e re a u n e i n o i n re g is tr ri.

FIGURA 11.22
Seciunea Record O pera tio n s a a p lica ie i w izard ofer p o s ib ilita te a de a crea, aduga, terge, salva i a n u la n re g is tr rile in tr - u n fo rm u la r.

Ss gdt View Jnsert Pansat loots V *fcw eip C txnm nd29

*Petal :FlrstName Miaair LastName

Address'

Phone

.m a i
Coiiuu.ii.i>9

Wha action doyou want to happen whenhe button a pfased? . Difer CMqcnss ' : FormOperations I I Report O perations 'lAppkaon ars availablefor Mch cateffxy. Acitcfl:

" 'ir ii .. e Die ' C3teRetord


PrWRecord Save Record jndoRetord

_I

Iy i t >1

ecranndeuton Weatd

F ig u ra 1 1.23 p re z in t fo r m u la r u l In d iv id u a lC lie n t, c u fu n c iile s u p lim e n ta re pe care le n e ce s it u n fo rm u la r o b i n u it p e n tru in tro d u c e re a d a te lo r. D u p in tro d u c e re a tu tu r o r b u to a n e lo r m a i este necesar u n elem ent de perso n a liza re . D a c v m a i a m in tii, dei am p ro m is c n u p re a va fi nevoie s s c rie i cod, v a tr e b u i to tu i s in tro d u c e i o lin ie de cod p e n tru b u to n u l A dd (de in tro d u c e re a n re g is tr rilo r). A ceast s a rcin este n d e p lin it n seciunea u rm to a re .

254

PARTEA A V-A - F U N C IO N A R E A BAZEI DE DATE


gw n>ert Pamat gctords Iod Wrtdew Edp

FIG URA 11.23


F o rm u la ru l In d iv id u a lC lie n t, com p le ta t cu fu n c iile tip ice necesaire u n u i fo rm u la r de in tro d u ce re a datelor.

Ia

t ' r^ Z T : r

JHLil
j c f t i g j . - :.'
N/A 100 Boulder Avenue Rubble Ci x l ! -

?iii

Bedtock 213-555-1. Eiikill

999S9-

>'lM
R pe FindWhat;

Lockin: Matefc

jbxtvidudOnn jwhcisReid ~

3 3

M o w [

Introducerea codului personalizat pentru butonul Add


C o n tro a le le d in tr - u n fo rm u la r r s p u n d u n e i v a rie t i de evenim ente. E v e n i m e n te le tip ic e s u n t e xecu ta re a u n u i clic, e xecutarea u n u i d u b lu c lic i apsare a u n e i ta ste , p e n tru a e n u m e ra n u m a i cteva. D ac este a p sa t u n b u to n , are loc e v e n im e n tu l O n C lic k . P ro gram area n fu n c ie de evenim ente este b a z a t pe a ta a re a c o d u rilo r p e n tru diverse evenim ente ale s is te m u lu i. A p lic a ia C o m m a n d B u tto n W iz a rd se ocu p n lo c u l d u m n e a v o a s tr de cea m a i m a re p a rte a c o d u lu i. E x is t n s cteva c a z u ri c n d tre b u ie s in te rv e n i i d u p aceea, p e n tru a m ri fu n c io n a lita te a b u to n u lu i respectiv. n acest caz, c o d u l s u p lim e n ta r are ro lu l de a da c m p u lu i C lientType valoarea cores p u n z to a re . F ig u ra 1 1.24 p re z in t m o d u l de acces la p ro c e d u ra eve n im e n t u lu i O n C lic k d in fe re a s tra P roperty. Lng p ro c e d u ra e v e n im e n tu lu i O n C lic k d in fe re a stra P roperty, p re ze n ta t n fig u ra 11.24, v e i observa u n m ic b u to n c u o e lip s pe el. D u p ce v a s ig u ra i c este se le cta t b u to n u l A dd, dac e x e c u ta i c lic pe b u to n u l cu elipsa, v a a p re a o fe re a s tr V is u a l B asic Code E d itin g (p e n tru e d ita re a c o d u lu i n V is u a l B asic). A ceast fe re a s tr i c o d u l s u p lim e n ta r care tre b u ie in tro d u s s u n t p re ze n ta te n fig u ra 11.25.

CONSTRUIREA COMPONENTELOR INTERFEEI


FIGURA 11.24
P rocedurile p e n tru evenim ente corespunztoare co n tro a le lo r p o t fi accesate d in fereastra E vent a ferestrei Property.
*

255

'-

" .

! itilndow tjelp
9


Ota M iO -

'loCca* Pnwie >

! :.,:
Fermat j r-i Even j oher I -- OoE;t -.- 0 ....... ' On Ck* . . . . . . . . . . . . . . [Evw* OnCWCk :... . . . . . . . . . . . 1 . . . . . . . . . . Of>McusM o . . .... . OnMaine . . . . . . . > . . . , . , . . . . .

icit ... ...... . . . . . .

..

... ......

- I I1

Oo KeyPie s s . . . . . . . . . . .

H*cro or finctionUvt rrtfv^n :onO cl .;

FIGURA 11.25
C o du l su p lim e n ta r, in tro d u s p rin pro ce d u ra cm dAdd_C lickQ , a trib u ie c m p u lu i ClientType valoarea corespunztoare.

<

c.T T V t 0

M W O ; '

Ferm a Dae Ever other . . . . . . . . . . . . . . OnEnter . . . . . . . . . .. . . . * r On OnotFocut . . . . . . . . . .. . . . . . . O nOUl..... . . . . . . . . . . . (Evr 0

snmmmsammmm

i-lrs ycco*

)CNznuin (ACW^IAIN )teti (tefa H a* c

p 1 va ts 3u cm dAdd_'lck() On Eccor G oto Err_crnaal_Cilck jCma.GoToRec


limdAdd C jTw an:?B.jtK ~

: 0 1 ;onTorrype :-> '-U

'

:>wUdd_Click C liefc:

pewgnView

256

PARTEA A V-A - FU N C IO N A R E A BAZEI

DATE

A c u m n e le g e i de ce este im p o rta n t s d a i fie c ru i b u to n u n n u m e des c rip tiv ? D a c v -a i i i b a z a t pe n u m e le im p lic it fu rn iz a t de a p lic a ia C om m and B u tto n W iz a rd , v - a r fi fo s t fo a rte g re u s d ife re n ia i d ife rite le c o d u ri p e n tru p ro c e d u ri. n acest p u n c t, fo r m u la r u l In d iv id u a lC lie n t este com plet. P e n tru fo rm u la ru l B u s in e s s C lie n t v e i u rm a aceiai p a i pe care i- a i p a rc u rs p e n tru a p re g ti fo rm u la ru l In d iv id u a lC lie n t, c u excepia c o d u lu i pe rso n a liza t adug at p e n tru b u to n u l A d d. n c a z u l fo r m u la r u lu i B u s in e s s C lie n t, c m p u l C lie n tty p e va avea va lo a re a "B .

Formularul Employee
U lt im u l fo r m u la r d e s p re care v o m d is c u ta n a c e st c a p ito l sto ch e a z n re g is tr rile despre a n g a ja i. S pre deosebire de fo rm u la re le p e n tru c lie n i, fo r m u la r u l p e n tru a n g a ja i n u n e ce sit o in te ro g a re , c i v a a c io n a d ire c t a s u p ra ta b e lu lu i E m ployee. C a ra c te ris tic a in te re s a n t a a c e s tu i fo rm u la r n u este c o m p le x ita te a , deoarece, de fa p t, a cesta este fo a rte s im p lu , c i fe lu l n care d e riv u n e le d in tre n s u irile sale d in m e ta d a te le ta b e lu lu i E m ployee. Poate v a m in tii c n tr - o baz de d a te d in Access p o t f i stocate v a ria te c a ra c te ris tic i i m e ta d a te de"c u ta re . F ig u ra 1 1.26 p re z in t m e ta d a te le de c u ta re p e n tru c m p u l D e p a rtm e n tID .

FIGURA 11.26
C ontroalele afiate i m etadatele de cutare p o t fi stocate n m etadatele c m p u lu i.

* s a st
RrKNam e MarfcrJIla liiiane 3ouecu ? Stat ZipC ode Honwfhcr Workfxterwon E m ail Address DepartmenttD Em ploy eClsID

. AjtoN-nb*'

. . .

i i i .Qsfsma.

N um ber (*/iiber ted_ r_opors_ ;

iane iqofcup Oi*ay Control Row5ouce '/pe RowSO rcS BoundC > : : jnw mr>Crt* 0 . Cotuir ' Hsads Colum nW fc*hs . UrtRws Ut width Un Toi

;Com bo B oc............................. Table/Query .efect dexrtpcion,d partmentid from D e

Departments) Description

Department______ jOepa'trncnt_______ _______________ I ] Show: Crtteri-

.fia H S S j_____

" : r B

~-n- [ |

CAPITOLUL 11 CONSTRUIREA COMPONENTELOR INTERFEEI

257

F ig u ra 11.26 a ra t c p e n tru a afia datele de cutare d in ta b e lu l D e p a rtm e n t este u tiliz a t u n c o n tro l de tip caset c o m b in a t d e ru la n t . D atele d in ta b e lu l D e p a rtm e n t se gsesc n p ro p rie ta te a Row Source d in ta b -u l lo o ku p . P ro babil v a m in tii c n tre tabelele D e p a rtm e n t i E m ployee e x is t o re la ie u n u la m u li. C heia e x te rn a c p u lu i D e p a rtm e n tID , p re lu a t n ta b e lu l Em ployee, co re sp u n d e c h e ii p rim a re d in ta b e lu l D e p a rtm e n t. In acest m od, elem entele d in caseta c o m b in a t s u n t s in c ro n iz a te c o re s p u n z to r c u n re g is tr rile d in ta b e lu l Em ployee. A p lic a ia F o rm W iz a rd u tilize a z in fo rm a iile d in m etadate cnd c o n s tru ie te fo r m u la r u l E m ployee. F ig u ra 11.27 p re z in t fo rm u la ru l Em ployee, c o m p le ta t c u b u to a n e de c o m a n d p e rsonaliza te.

FIGURA 11.27.
M u lte d in tre ca ra cte risticile i controalele u n u i fo rm u la r deriv d in m etadatele bazei de date.

'

I x s

::

Keaton

500 Park Place

Devon I WlK Extension ile^t c6h.com ): , ,' Attorney-Partner 19333-

&
*

Properu
Environments! Lsw Antitrust Record: l< I < I I Family Law Criminal Law Maritime Law

* * <

D u p ce a i c re a t c teva fo rm u la re p e n tru date, v e i ncepe s v e d e i fo a rte m u lte elem ente c o m u n e n p ro c e s u l de c o n s tru ire a fo rm u la re lo r. C u alte c u v in te , d u p ce c o n s tr u ii cteva fo rm u la re , fo rm u la re le ncep s sem ene u n u l c u a ltu l! S in g u ru l tip de fo rm u la r despre care n u a m d is c u ta t p n a cu m este cel care stocheaz datele d in d o u sa u m a i m u lte tabele s im u lta n . Aceste t ip u r i de fo rm u la re a u u n n iv e l de c o m p le x ita te care depete sco p u rile acestei c ri. P e n tru a vedea u n a stfe l de fo rm u la r, p u te i deschide baza de da te N o rth w in d T ra de rs, care v este o fe rit m p re u n cu p ro g ra m u l Access. S e ciu n e a u rm to a re p re z in t c o n s tru ire a u n u i fo rm u la r care n u este b a za t pe date. M a i p re cis, v e i a lia c u m p u te i c o n s tru i u n fo rm u la r de tip m e n iu p rin c ip a l. n p lu s , v e i n v a c u m p u te i m a n e v ra d ife rite le p ro p rie t i ale fo r m u la ru lu i, pe care v e i d o ri s le u tiliz a i a t t n fo rm u la re le bazate pe date c t i n fo rm u la re le care n u s u n t bazate pe date.

258

PARTEA A V-A - FU N C IO N A R E A BAZEI DE DATE

C rearea unui form ular de tip meniu principal


F ig u ra 1 1.28 p re z in t o se siun e de creare a u n u i fo rm u la r, in iia t p r in deschide re a d ire c t a v iz u a liz rii D esign, n u a a p lic a ie i w iz a rd . D eoarece acest fo rm u la r n u se bazeaz pe date, n u s u n t necesare b u to a n e le de n a v i gare p r in n re g is tr ri care a p a r n m o d n o rm a l n p a rte a de jo s a fo rm u la ru lu i. E x is t a lte a trib u te pe care p oate d o r ii s le m a n ip u la i, c u m a r fi fa p tu l c este sau n u a c tiv a t b u to n u l m in /m a x , t ip u l de c h e n a r i legenda (explicaia) fo r m u la r u lu i, p e n tru a n u m i n u m a i cteva.
FIGURA 11.28
Fisa de p ro p rie t i a fo rm u la ru lu i v perm ite s m a n ip u la i dife rite a trib u te ale fo rm u la ru lu i.

S s h w
Fotm

'

9 ''
Oblica IJ CreasfomnDsri1 w ' ' - ; 1 fonr.yusinq wcad

: 1 ......................... TEBMsinMinu < . . . . . . . . . . . . Form . . . . . . . . . . . . 0o<h . . . . . . . . . . . . * ^ . . . . . . . . N o . . . . . N o


Crn Une . . . . . . . . . . N o

. . . . . . . . . . No biydr* styla. . . . . . . . . . D og Contrai Box... . . . . . . ;...-Ves MnHaxButtiy. . . . . . . N one doi B u ta n ....... .. Y es Wha*JhBuaen... . . . . . No whv........................ .i .75" . . . . . . . . . . . . . )( PictufSType. . . . . . . . . . . . EnMdd < .. . .. Clp PCureAjnrtn . . . . . . lienttr Tyng .. . . . . . . N o .

............ 2
. .

D u p co n fig u ra re a fo rm u la ru lu i, p u te i s in tro d u c e i b u to a n e le de com and care v o r la n s a fo rm u la re le create n a cest c a p ito l. V estea b u n este c a p lic a ia C o m m a n d B u tto n W iz a rd face a pro a p e to a t m u n c a n lo c u l d u m n e a vo a str . F ig u ra 11.29 p re z in t p r im u l pas p e n tru in tro d u c e re a u n u i b u to n care lanseaz u n fo rm u la r. F ig u ra 1 1.30 p re z in t a l d o ile a pas a l a p lic a ie i w iz a rd , care v s o lic it n u m e le fo r m u la r u lu i care va fi la n s a t.

C A P I1'4I.U L1i CONSTRUIREA COMPONENTELOR INTERFEEI


FIGURA 11.29
n pro cesu l de in tro d u ce re a u n u i b u to n care lanseaz u n fo rm u la r este u tiliz a t a p lica ia C om m and B u tto n W izard.

259

a.
^l c j*jj
iii* | X * < 5

i ggg^-ryT^. '

i Foimat | Dt Evan | | Pi .. . C onm andG <non) Em baddod ( Sondayou Mart ha' ww> the button i preiiad? Dff Kticoj e/t avaiablelot tagory. C e< 9 xt0s: Artxxii

Peta

CmvndO

|R ocodNavigat | py FotmFet [ReCMd Operatorii______ I Chit Form

B 2 2 k E 2 t^ 3 H II^ O I d :o r ~ F r .f BiB.'it OptfaBons


Appicatton M| >aneou

Ctrctl |

gwigr-ir D a ta

lOpenPage | PrinaF&-.n IPrtr Current Fom

.j

IButtonWaafd

FIGURA 11.30
A l doilea pas al ap lica ie i w iza rd so licit u tiliz a to ru lu i num ele fo rm u la ru lu i care va fi lansat. a a s a i * * ' * a - 0

< 1 5 w >'3 M 1 < 1


ObetK Create fcm r | !.[ Createtom b<

-jalKjl

] x

| I Fsrmst | osia | Evori | oth | Al at-SKr t j . , .............. C nfflB M TdD (none) fiicrdord fwm wcnid you Sa the coranandbutton to a*n |Bu!lnsClient ] lnKjuICIIent ! BMaiiManu

O etW

Cancd

<B .ad.

a e iV

Fnth

B E E 2 2 K

I (ComwndButton Wmd

260

PARTEA A V-A - FU N C IO N A R E A BAZEI

DATE

F ig u ra 11.31 p re z in t a l tre ile a pas a l a p lic a ie i w iza rd , care ofer p o s ib ilita te a ca fo r m u la r u l s fie d eschis p e n tru a gsi o a n u m it n re g is tra re sa u s fie de sch is p e n tru a a fi a to a te n re g is tr rile .

FIGURA 11.31
A l tre ile a pas al ap lica ie i w izard specific m o d u l n care va fi deschis fo rm u la ru l.

iJw lert arm a Tahcm a

!
Il " miin 1 ~ F Creis7 0-.n i f o r mby. hefona? Crus

- Dat Evant I Al - ; > -' , . . . . . . . . Conmard

;:

'

Emtaddcd

fo i >, . C P W 1 formnd dfcsiy atfhyee aiKcmct. Open(he and smjtk '' . ' jopen ir form andtow at the recofd.

Alway 1.0417-

-2H7W3MO NoffMl

............i

jj

F ig u ra 11.32 p re z in t a l p a tru le a pas a l a p lic a ie i w iz a rd , care v ofer ca p a cita te a de a s p e c ific a dac b u to n u l v a c o n in e te x t sa u o im a g in e .

FIGURA 11.32
A l p a tru le a pas a l a p lica ie i w izard specific asp ectul b u to n u lu i. t*


' Ccmn* TtcisY ;

roa tltxer ywc*n yp* text lwi*y If choosePWUB, you 1 3 lud pictureto 1 ; -. form

C ar*;

I'

,iT O L U i.1 1

CONSTRUIREA COMPONENTELOR INTERFEEI

261

F ig u ra 11.33 p re z in t a l c in c ile a pas a l a p lic a ie i w iz a rd , care ofer p o s ib i lita te a de a in tro d u c e u n n u m e d e s c rip tiv p e n tru b u to n .
FIGURA 11.33
A l cin cile a pas a l a p lica ie i w iza rd ofer p o sib ilita te a de a specifica u n n u m e d e scrip tiv p e n tru b u to n .

: - -
ConwwdO

l-omtc

doyou* ftsme butten? *O r. Encfcy

(vtrt I AI. .. . .... . . . . . . . (net*) . . . . . . . M&&V)

th( a << WoMirln to

' 0 Heb on rrta^ tn . 'Cwtri'

1 3 3 0

.^ ~ i

jC oBW vindButton W teard

F ig u ra 1 1.34 p re z in t fo r m u la r u l c o m p le t de tip m e n iu , p re c u m i cele tre i fo rm u la re create n acest c a p ito l.

FIGURA 11.34
F o rm u la ru l com plet de tip m e n iu p rin c ip a l i cele tre i fo rm u la re create n acest capitol.

firmst 8

| /. tir^kmefom I
*rGHOtrtfam ] -. j tr>Jvk)ujlO >< Farm "[

Joe Smith I11-1M11I ! Mam strae 3

SfleiiHS ci y

r Hi>it*Pimu MB * 0Boulder A V 0U8 Fiinlslone Main street 123

Copper Falls 13-555-131 Bun

g la ix lj .ftern'

262

PARTEA A V-A - FU N C IO N A R E A BAZEI DE DATE

Rezum at
n acest c a p ito l a i v z u t c t de s im p l este c o n s tru ire a u n u i fo rm u la r n Access. n tr u c t a p lic a iile w iz a rd p o t face aproape to a t m u n c a , n u tre b u ie s e xcelai n tr - u n lim b a j de p ro g ra m a re p e n tru a c o n s tru i o a p lic a ie p e n tru baze de date. De fa p t, a r tre b u i s v fie c la r c s u n te i pe calea cea b u n n c o n s tru ire a u n e i a p lic a ii p e n tru baze de date! U ltim u l pas a l acestei c l to rii in iia le este s o fe rii u t iliz a to r u lu i p o s ib ilita te a de a extrage in fo rm a ii fo lo s in d ra p o a rte le . n c a p ito lu l u rm to r vom d is c u ta despre ra p o a rte .

OBINEREA UNOR REZULTATE UTILE: INTRODUCERE IN CREAREA l PREZENTAREA RAPOARTELOR


n acest capitol:
P rezentare a a p lic a ie i R e p o rt D e sig n e r d in Access 11 C rearea ra p o a rte lo r p e n tru a p lic a ia T E B I I In tro d u c e re a e le m e n te lo r ra p o a rte lo r n fo r m u la ru l de tip m e n iu p rin c ip a l R e zu m a t

264

PARTEA A V-A - FU N C IO N A R E A BAZEI DE DATE

n aceast c a rte a m a firm a t c va lo area u n e i baze de date co n st n c a lita te a d a te lo r pe care le c o n in e i a in fo r m a iilo r pe care le poate oferi. P n a cu m , n ge neral, a i lu c r a t c u elem ente de date i n re g is tr ri in d iv id u a le . S in g u ra excepie a a p ru t c n d am p re z e n ta t in te ro g rile i lim b a ju l S Q L (S tru c tu re d Q u e ry Language). F o lo sin d in te ro g rile , p u te i colecta i agrega datele. Procesul de ru la re a in te ro g rilo r este adesea d e n u m it tra n s fo rm a re a d a te lo r n in fo r m a ii. Se m e n in e n s p ro b le m a m o d u lu i n care s u n t p re ze n ta te in fo rm a iile p e n tru u tiliz a to r. E a este re zo lva t p r in e x is te n a p o s ib ilit ii de ra p o rta re a d a te lo r d in a p lic a ie . R apoartele s u n t, p ro b a b il, c a ra c te ris tic a cea m a i im p o rta n t a u n e i baze de date, precedate n u m a i de c a lita te a bazei de date i a d a te lo r p ro p riu -z is e . In acest c a p ito l vo m prezenta a p lic a ia R e p o rt D e sig n e r d in Access i te h n ic ile de baz pe care tre b u ie s le n e le g e i p e n tru a crea ra p o a rte s im p le n Access.

Prezentare general a ap licaiei Report Designer din Access


Ca i n c a z u l fo rm u la re lo r, c u m u lt tim p n u rm , n c a p ito lu l 2, am p re z e n ta t pe s c u r t a p lic a ia R e p o rt D e s ig n e r d in Access. A c e s t c a p ito l n d e p lin e te p ro m is iu n e a de a v a r ta c u m s u tiliz a i aceast a p lica ie .

FIGURA 12.1
A p lic a ia Report Designer d in Access.
Raport

Jew riser rj-rae Joofs Vhdow Jep

*!E U *!
Obiect 40 Oeste rawxt Designview lJ Crea report hy uSngw d

J O I* ] PaeHexiq

*P e te i
G roupt

C A P IT O LU L 12 OBINEREA UNOR REZULTATE UTILE

265

Toate a p lic a iile de p ro ie c ta re a ra p o a rte lo r fu n c io n e a z , n lin ii generale, a se m n to r. M a jo rita te a a u o a b o rd a re de tip b e n zi (banded). C u a lte c u v in te , c n d p ro ie c ta i u n ra p o rt, a v e i la d is p o z iie n p a g in o b a n d p e n tru a n te t (header), p e n tru s u b s o l (footer) i b e n zi de d e ta lii. F ig u ra 12.1 p re z in t aceste tre i benzi. N u m ele b e n z ilo r re fle c t c u a cu ra te e c o n in u tu l lo r. A n te tu l p a g in ii c o n in e de o b ice i t it lu l r a p o r tu lu i i e tich e te care d e s c riu c o n in u tu l a ce stu ia . S u b s o lu l p a g in ii c o n in e de ob ice i n u m r u l p a g in ii i elem ente de date. B a n d a de d e ta lii, aa c u m sugereaz n u m e le ei, co n in e r a p o r tu l d e ta lia t. D u p c u m v e i vedea, b a n d a de d e ta lii p oate fi m p rit n a lte b e n z i de d e ta lii. N iv e lu l de d iv iz a re a u n e i b e n zi de d e ta lii d e p in d e de m o d u l de g ru p a re a d a te lo r. V o m d is c u ta n acest c a p ito l i despre m o d u l de g ru p a re n t r - u n ra p o rt. F ig u ra 12.1 p re z in t i caseta de in s tru m e n te p e n tru c o n tro a le , aceeai c u care a i lu c r a t c nd a i p ro ie c ta t i c o n s tru it fo rm u la re . D in fe ric ire , fiin d c A ccess este p lin de a p lic a ii w iz a rd , n gene r a l n u v a f i nevoie s in t r a i n d e ta liile n e p l c u te ale c o n s tr u irii u n u i ra p o rt de la zero. n a cest c a p ito l v o m u tiliz a fo a rte m u lt a p lic a ia R e p o rt W iza rd .

C rearea rapoartelor pentru a p licaia TEB


A cest c a p ito l v v a con d u ce p r in p ro c e s u l c re rii u n u i ra p o rt care p re z in t s ta c lie n ilo r. Ca i fo rm u la re le , ra p o a rte le p o t f i create u tiliz n d a p lic a iile w iz a rd . D a c este necesar, p u te i in tr a n a p lic a ia de p ro ie c ta re p e n tru a face m ic i a ju s t ri. A a cu m v e i a fla n c u r n d , d u p crearea u n u i ra p o rt fo lo s in d o a p lic a ie w iz a rd , v e i ti c u m s c re a i to a te ra p o a rte le . E x is t i ra p o a rte com plexe i, p ro b a b il, la u n m o m e n t d a t v a fi necesar s c re a i i a s tfe l de ra p o a rte . P e n tru exem ple de ra p o a rte com plexe, s tu d ia i b aza de d ate N o rth w in d T ra d e rs , care este liv ra t m p re u n c u p ro g ra m u l Access; o d is c u ie d e ta lia t d espre ra p o a rte le com plexe depete n s s c o p u l c rii. E ste im p o r ta n t s o b s e rv a i c m u n c a m a i d ific il co n s t n p ro ie cta re a in te ro g rilo r. U n ra p o rt n u este d ec t u n m e c a n is m de liv ra re a re z u lta te lo r. R apoarte le b in e p ro ie c ta te n u fac de c t u n lu c ru : fu rn iz e a z u n fo rm a t p e n tru a fi a re a e fic ie n t a d a te lo r.

Lista C lient
n a in te de c re a re a r a p o r tu lu i c u lis ta c lie n ilo r, va fi necesar o in te ro g a re pe care s se bazeze r a p o rtu l. n c a p ito lu l 8 am p re z e n ta t c o n s tru ire a u n e i in te ro g ri c u u n iu n e . O a stfe l de in te ro g a re c o m b in d o u d e c la ra ii S Q L n s c o p u l c re rii u n u i se t de re z u lta te . n tr u c t c lie n ii se m p a rt n firm e i persoane fizice, ia r p e n tru stoca re a n u m e lo r a ce stora s u n t u tiliz a te d ife rite c m p u ri n fu n c ie de t ip u l c lie n tu lu i, este necesar o in te ro g a re c u u n iu n e . F ig u ra 1 2 .2 p r e z in t a p lic a ia Q u e ry D e s ig n e r i d e fin iia in te r o g r ii C lie n tL is tin g .

266

PARTEA A V-A F U N C IO N A R E A BAZEI DE DATE


t<B gdit liwert utty Xoob Wryiaw jefr

FIGURA 12.2
n tru c t interogarea C lie n tL istin g u tilizea z clauza
U n io n ,

Obgct*

interogarea poate f l creat n u m a i folo sin d vizu alizare a SQL.

/ Design Create / by waerd BusnesiCfeot Cm -Employee S fcntUsan CenT erite,ter>me+,+hrKrafrieA5 dsn,sddr 551, 6 , / , , Promdterrt where lienttype '' T JNICNSelect Oenf ! , , , , Froment wheisctenttypa - ,

'

G roups

F ig u ra 12.3 p re z in t s e tu l de re z u lta te C lie n tL istin g . Poate v n tre b a i de ce s u n t re tu m a te n s e tu l de re z u lta te cu v in te le In d iv id u a l C lie n t i B usiness C lie n t , i n u c o d u rile c o resp un z to a re tip u r ilo r de c lie n i. P e n tru u tiliz a to r, c o d u l I s a u B p o a te s n u fie la fe l de in t u it iv ca i c u v in te le respective. N u u ita i, s c o p u l u n u i ra p o rt este de a fu rn iz a in fo rm a ii. U tiliz a to ru l n u tre b u ie s fie o b lig a t s g hiceasc s e m n ific a ia u n e i p re s c u rt ri.

FIGURA 12.3
S etu l de rezu ltate al

J n rt * > :% i l ii

. - ' :

interogrii
C lie n tL istin g .
objects

J I I Creete queryn Design Createauetyby usng<* B U S T Ckent Uibng BusnessC - Cou . iD U ij clien > G roups Basnet fl.iKine Business Client r.dMOual Client ndMdu! Clrt Individual Individual Ace Tomato Company Applied Technologies Bob'S Meuse of PancaWes Main Line SoSwsre Flinlsttne. Wilaia Rubble. Betty Seaborn Sam Smith. John 1 1 addr * 2 123 Main Street Penn Center Suite ? 100 Dune Ajren 119 Biddle Raa< 1 1 Boulder A 00 1600 Pennsylva SX Lancaster Apt ICO ! Philadelphia Philadelphia Avalon 1 Falls Bedrock Washington Paoli PA PA ;NJ PA CA CA DC PA

< i

foamhaetView

CAPITOLUL 12 OBINEREA UNOR REZULTATE UTILE

267

F ig u ra 12.4 p re z in t p r im u l pas a l a p lic a ie i R e p o rt W iza rd . Ca i n ca zu l a p lic a ie i F o rm W iz a rd , p r im u l pas s o lic it u tiliz a to r u lu i o in te ro g a re sau u n ta b e l pe care s se bazeze ra p o rtu l. La p r im u l pas, p u te i alege c m p u rile pe care d o r ii s le a fi a i.

FIGURA 12.4
P asul 1 al a p lica ie i Report W izard s o licit u tiliz a to ru lu i o interogare sau u n tabel pe care s se bazeze ra p o rtu l.

-* * .

i prrarrermBKgaasraig.

-'

.:

D u p ce a i s e le c ta t c m p u rile , p u te i trece la p a s u l 2. A ic i v e i s p e cifica m o d u l de g ru p a re a d a te lo r n ra p o rt (vedei fig u ra 12.5). n m o d im p lic it, u n ra p o rt n u c o n in e g ru p u ri. In c a z u l lis te i c lie n ilo r, datele v o r fi g ru p a te d u p tip u l c lie n ilo r. D ac v a m in tii, tre b u ie s v g n d ii la aceast g rupare c n d p ro ie c ta i in te ro g a re a . De aceea, datele d in in te ro g a re a C lie n tL is tin g s u n t o rd o n a te m a i n t i d u p tip u l c lie n ilo r. P a su l 3, p re z e n ta t n fig u ra 12.6, in v it u tiliz a to r u l s specifice m o d u l de so rta re a d a te lo r d in ra p o rt. D ac a i p ro ie c ta t co re ct in te ro g a re a , n u este nevoie s s p e c ific a i o a lt o rd in e de sortare.

268

PARTEA A V-A - FU N C IO N A R E A BAZEI


t t t
fie V V sw ln*rt To * - *s ip

DATE

FIGURA 12.5
Pasul 2 al a p lica ie i Report W izard cere u tiliz a to ru lu i s precizeze m o d u l de gru pa re a da telo r d in ra p o rt.

ra&ss ' ' s


]. re^ew elqn :New I < ! ObiecO nan to add raomj S3 Ccyou tew? cler, address!, address , city, state, zipcoda ]addles! address Ista apcode P r-qriy G roup

_===1

Sroupm;

Caned

Net >

Q rvsh

FIGURA 12.6
Pasul 3 al a p lica ie i R eport W izard cere u tiliz a to ru lu i s precizeze m o d u l de sortare a da telo r din ra p o rt.

fe
tfew nit cob P

QrevM i p n s .. H ; S H S i CreStl Wha a-t order do you*art (o- detal record 1 EJ Cresta' You can rt ocrcth by i to feu ascend or evtrAn) order,

ini

Z i J

~~~3 ^ 1
I--------------- J- 3
G roups

i (

Cm.

tW

|gportWd

CAPITOLUL 12 OBINEREA UNOR REZULTATE UTILE

269

P a su l 4 a l a p lic a ie i w iz a rd cere u tiliz a to r u lu i s precizeze m o d u l n care datele a p a r n ra p o rt, p re c u m i o rie n ta re a p a g in ii (vedei fig u ra 12.7).

FIGURA 12.7
Pasul 4 al a p lica ie i Report W izard cere u tiliz a to ru lu i s specifice m o d u l n care datele a p a r n ra p o rt i o rien ta rea pa ginii.

S insert lools yr>*w eip

O b je ra

Createi ] 2 Ho wo*! youfta lo ta/ out your report? Croate 13. layout " Orimuaoo ' Potrai ' Landscape

2 u fc 1
0yt*e2 fJM ao;U6ft I x* xx xxxxx X X X X X XXX xxxxx

* *
G roups

o jr > u ft2

F Adjusi the ffeMish jc Ifistdsfi at,

Can.

(jrt* \

)Report W art-

F ig u ra 12.8 p re z in t p a s u l 5, care cere u tiliz a to r u lu i s specifice u n s til a l ra p o r tu lu i. Access c o n in e m a i m u lte s t ilu r i p re d e fin ite de ra p o rt.

FIGURA 12.8
Pasul 5 al a p lica ie i Report W izard in v it u tiliz a to ru l s specifice s tilu l ra p o rtu lu i.

&hctow

* j Createi .What sty* waJd you 8?.. Create

Corporate Rxmsl Scit Gray

G roups

liM akm kM
Control from Detail

fceportwuarrf

270

PARTEA A V-A - FU N C IO N A R E A BAZEI

DATE

U ltim u l pas a l a p lic a ie i R eport W iza rd s o lic it u tiliz a to r u lu i u n n u m e p e n tru ra p o rt i n tre a b d ac r a p o r tu l v a f i p re v iz u a liz a t sau d eschis n a p lic a ia R e p o rt D e s ig n e r (vedei fig u ra 12.9).
FIGURA 12.9
U ltim u l pas al a p lic a ie i R eport W izard in v it u tiliz a to ru l s specifice u n nu m e p e n tru ra p o rt i l ntre a b dac ra p o rtu l va fi pre vizu a liza t sau m o d ifica t.

F ig u ra 1 2.10 p re z in t a s p e c tu l in i ia l a l r a p o rtu lu i. D u p c u m vedei, u n e le date s u n t tru n c h ia te . S e c iu n e a u rm to a re v a ra t c u m p u te i m o d ific a d e s ig n u l ra p o rtu lu i. 2 FIGURA


R a p o rtu l C lie n tL is tin g pro du s de a p lica ia R eport W izard.

p E W ffffiT ffU M l^g'PQC *'..;


ciienttvpe cient Business c adfrsssl address2 city
Parti Avalan Sute 1700 PMaaelphe PMadelpfia Pact Wasttnjfon BearocK Copper Falls

stats
PA M J PA PA 19301 08202 19101 191 19301 20500

MaHLIne Software, In 6 0 Road Bob's House of Pancak 100 tXne Avenue Apple [Technologies Penn Center Ace Tomato Company 123 Main street Smnti, John Seaborn, Sam Rubble. BeQy Flnwtone, Wilma 00 LancasterAvenue Apt 100 1600 PennsytvamaAv 100 Bajiaer Avenue 102 Bajider Avenue

life - :!

CAPITOLUL 12 OBINEREA UNOR REZULTATE UTILE

271

M odificarea raportului ClientListing n Report Designer


M o d ific a re a ra p o a rte lo r este asem n to a re m o d ific rii fo rm u la re lo r. C nd e x e c u ta i c lic pe fiecare e le m e n t d in a p lic a ia de p ro ie c ta re a ra p o a rte lo r, p u te i m a n e v ra d ife rite le a trib u te ale e le m e n tu lu i se le cta t n fe re a s tra Prop erty. A lte rn a tiv , p u te i lu c ra d ire c t cu o b ie ctu l p e n tru a -i m o d ifica d im e n s iu n ile i/s a u p o z iia . F ig u ra 12.11 p re z in t ra p o r tu l m o d ific a t n a p lic a ia de pro ie cta re .
FIGURA 12.11
Rapoartele p o t fi m od ifica te la fel ca i form ulare le.
Report

SBSSSBiE

:Bepert Hcajer

G lieut il s tinoR eiiort


Page Ha a der

W ra ssj.
* ctonttype Hctder: CJteriOype::::::::j::;

C a e td
iptod : Page Footei

Peport Footef

Format | Oth* j Al . . Cptk*v......... ,, Page Header ___ __ iPeges . . . . . Page foater Ai Pages GrpKespTogathor Per C olum n . .. . . . . , W h ; (none) . . . . . . :,,Peturs Em bedded - . . .. Pfcture Type -Pe 5 M ode .Pict*BAlgnfrant Centw Picturs . . . . . .,. .Pctus Pacps . . . . . . . . . WX& Gridv. . . . . . . . .

... C o r L i n

( * i o
> < ;
m ~ i |
S .z ja

F ig u ra 12.12 p re z in t a sp e ctu l m o d ific a t a l ra p o r tu lu i C lie n tL is tin g n m o d u l P rin Preview.

272

PARTEA A V-A - F U N C IO N A R E A B A Z E I DE DATE

FIGURA 12.12
R a p o rtu l m o d ifica t C lie n tL is tin g n m o d u l P rin Preview.

Client Llstbig Report


cfcent Cllwt Mam Une Software, Inc. Bob's Housa of Pancakes Appled T e chnologies Ace Tomsto Corrpany ln<tMdiial ale* Srrith, John Rubbie, Betty Fnts!cre. wiima 500 Lancaster Avenue 1600 Pennstfvania Avenue 100 BoulcterAV8nue 102 BoulderAvenua Apt 100 Paoli Washington BefrocK Copper Fals PA DC 19301 20500 119 BHdle Road 100 Dune Avenue 1 Psnn Center Sula 17 Psdi Avalon Phiadelphla Philadelphia PA M J PA PA 19301 08202 19101 19101 Address Adrese 2 City. State. ZipCode

p id j d i

<!<!: _J

Introducerea elem entelor din raport n form ularul de tip meniu principal
D u p ce c re a i u n ra p o rt, tre b u ie s d a i u tiliz a to r ilo r p o s ib ilita te a de a r u la ra p o rtu l. n a ce st c o n te x t, p u te i o fe ri acces la ra p o rt n fo r m u la r u l de tip m e n iu p rin c ip a l, pe care l- a i c re a t n c a p ito lu l precedent. F ig u ra 12.13 p re z in t p r im u l p a s p e n tr u in tro d u c e re a u n u i b u to n a l r a p o r tu lu i n fo r m u la r u l de tip m e n iu p rin c ip a l.
FIGURA 12.13
O p iu n ile p e n tru bu toan e ale ra p o a rte lo r se gsesc n seciunea R eport Operatio n s a ap lica ie i C om m and B u tto n W izard.

OBINEREA UNOR REZULTATE UTILE

273

P a su l 2 s o lic it n u m e le ra p o r tu lu i care v a fi r u la t la apsarea b u to n u lu i (vedei fig u ra 12.14).


FIGURA 12.14
Pasul 2 al a p lica ie i C om m and B u tto n W izard v so licit num ele ra p o rtu lu i care va fi r u la t la apsarea b u to n u lu i.

. . .
Compand3

!
Tahona .

Create fomi i

you8<(he tomm*nd 00 ) ?

*& * *
& I *

ou I

I I

f*

jj^nBian.6i<KipWganl

P a su l 3, p re z e n ta t n fig u ra 12.15, v s o lic it s p re c iz a i d ac pe b u to n va a prea u n te x t sa u o im a g in e .

FIGURA 12.15
Pasul 3 v s o licit s precizai dac pe b u to n va aprea u n te x t sau o im agine.

' < 1


rsato forminC* Dayou vtar ) or a wfcjre ? an i tvthee*tt 2 (fecay. iyt , vouhooext : , ; 'va E iW W fW " ; fot , : * .-. LtngSeoort | !

' *C M m n o '

C r*4.

[ ifrs t }

JcpmtnandBttanWeard

274

PARTEA A V-A - FU N C IO N A R E A BAZEI

DATE

U ltim u l pas a l a p lic a ie i w iz a rd in v it u tiliz a to r u l s fu rn ize ze u n n u m e d e s c rip tiv p e n tru b u to n (vedei fig u ra 12.16).
FIGURA 12.16
U ltim u l pas al a p lica ie i C om m and B u tto n W izard s o licit u n n u m e d e scrip tiv p e n tru b u to n .
C onm and3 .! 1 x| 1 : P*V :,a ' EjQ ~ Createformh | Vflia do you Cier Lstr for 3u .nes OoV hx : IrOJOia ) P ot A nwaningFu f refer to:the I

caomand Ih a fja lth e rfo fi button.

T .- a-Hl3 * Cowm

Oacisy Help on custoir&ingthe button.

.I

< s>rtnv k / ion Wgard

n fin a l, fig u ra 12.17 v p re z in t fo r m u la r u l de tip m e n iu p r in c ip a l care lanseaz r a p o r tu l C lie n tL is tin g n m o d u l Preview. D ac r u la i d in n o u a p li c a ia C o m m a n d B u tto n W iz a rd , v i se va p re a fo a rte s im p lu s in tro d u c e i u n b u to n a l c ru i efect este p rin ta re a re z u lta te lo r ra p o rtu lu i.

FIGURA 12.17
F o rm u la ru l de tip m e n iu p rin c ip a l are acu m si capacitatea de a la nsa ra p o rtu l C lie n tL is tin g n m o d u l P rin Preview.

) e lewis W indow ' *

K 'S

P i O S f f l : %

sa :is Cy

SSfWl 'X ;. > *3 < : S


I Objects | ] fO Create formh D egn view

:: E m ployBBForm

SnwssOsnt Foim | liyjyitlue) Oient Ferm j ;[.cit:itriiRort

I
Client Listing Report
Address Business Client Main Line Softwaf, Inc. Bob's Hous? of Pane* AppiedTethnologiBS Acs Tomato Company lniliviiiu.il Client Srrith, John

C A P IT O LU L 12 OBINEREA UNOR REZULTATE UTILE

275

Rezum at
C rearea ra p o a rte lo r, ca i a fo rm u la re lo r, este o s a rc in s im p l n Access. U tiliz n d a p lic a iile w iz a rd , n u s u n te i o b lig a t s s c rie i c o d u ri de p ro g ra m p e n tru a p ro d u c e re z u lta te valoroa se i u tile . G n d in d u -v la acest lu c ru , n u ncap e n d o ia l c d ac t i i s s c rie i c o d u ri de p ro g ra m a v e i o c a p a c i ta te m u lt m a i m a re de a crea com p o n e n te m a i fle x ib ile i m a i s o fis tic a te p e n tru a p lic a ii. A c u m d u p ce a i p a rc u rs aceast c arte, u r m to r u l pas lo g ic este s e x p lo ra i i a lte fu n c ii d in A ccess i s n v a i s p ro g ra m a i n V is u a l B asic. In d ife re n t ce v e i face, n u u ita i c to tu l p o rn e te de la o baz de date! Succes!

STRUCTURA BAZEI DE DATE TEB

278

ANEXE

Tabelul Case
N um ele c m p u lu i CaseID D o c k e tN u m b e r Notes S ta rtD a te T ria lD a te S e ttle m e n tD ate D e p a rtm e n tID C o u rtID J u d g e ID T ip u l de date A u to N u m b e r T e xt M em o D a te /T im e D a te /T im e D a te /T im e Num ber Num ber Num ber D escriere C heie p rim a r N u m ru l de ro l C m p p e n tru note n fo rm a t lib e r D a ta la care ncepe lu c r u l la caz D a ta p ro c e s u lu i D a ta n e le g e rii C heie e xte rn la ta b e lu l D e p a rtm e n t C heie e x te rn la ta b e lu l C o u rt C heie e x te rn la ta b e lu l Ju d g e

Tabelul Client
N um ele c m p u lu i C lie n tID C lientT yp e F irstN am e LastN am e M id d le ln itia l O rg a n iza tio n N a m e A d d re s s l A ddress2 C ity S tate ZipC ode Phone E m a il T ip u l de date A u to N u m b e r T e xt T ext T e xt T e xt T e xt T e xt T e xt Text T e xt T e xt Text T e xt D escriere C heie p rim a r T ip u l c lie n tu lu i (B p e n tru firm e , I p e n tru persoane fizice) P renum ele (dac C lientT ype = I) N u m ele de fa m ilie (dac C lie n tT yp e = I) In iia la (dac C lie n tT yp e - I) N u m ele firm e i (dac C lie n tT yp e = B) P rim a adres A d o u a adres O ra u l S ta tu l C o d u l p o ta l N u m ru l de te le fo n A d re sa de e -m a il

Tabelul ClientCase
N u m e le c m p u lu i C lientC ase ID C lie n tID CaseID T ip u l de date A u to N u m b e r Num ber Num ber D escriere C heie p rim a r C heie e x te rn la ta b e lu l C lie n t C heie e x te rn la ta b e lu l Case

ANEXA k

STRUCTURA BAZEI DE DATE TEB

279

Tabelul C ontact
N u m e le c m p u lu i C o n ta c tID F irstN a m e M id d le ln itia l LastN am e T itle Phone E x te n s io n E m a il C lie n tID T ip u l de d a te A u to N u m b e r Text T e xt Text T e xt T e xt T e xt T e xt Num ber D escriere C heie p rim a r P renum ele In iia la N um ele de fa m ilie F u n c ia N u m ru l de te le fo n In te r io ru l A d re sa de e -m a il C heie e xte rn la ta b e lu l C lie n t

Tabelul Court
N um ele c m p u lu i C o u rtID D e s c rip tio n T ip u l de date A u to N u m b e r Text D escriere C heie p rim a r N u m ele in s ta n e i

Tabelul Departm ent


N u m e le c m p u lu i D e p a rtm e n tID D e s c rip tio n T ip u l de date A u to N u m b e r T e xt D escriere C heie p rim a r N u m ele d e p a rta m e n tu lu i

Tabelul Employee
N um ele c m p u lu i E m ployeeID F irstN a m e M id d le ln itia l LastN am e S o c ia lS e c u rity A ddress 1 A ddress2 C ity S tate Z ipC ode T ip u l de date A u to N u m b e r T e xt T e xt T e xt T e xt T e xt T e xt T e xt T e xt T e xt D escriere C heie p rim a r P renum ele In iia la N u m ele de fa m ilie N u m ru l a s ig u r rii sociale P rim a adres A d o u a adres O ra u l S ta tu l C o d u l p o ta l

280

ANEXE
T e xt T e xt T e xt N um ber N um ber N u m ru l de te le fo n de acas In te r io ru l de la s e rv ic iu A d re sa de em a il C heie e x te rn la ta b e lu l D e p a rtm e n t C heie e xte rn la ta b e lu l Em ployeeC lass

H om ePhone W o rk E x te n s io n E m a il D e p a rtm e n tID E m ployeeC lassID

Tabelul Em ployeeCase
N um ele c m p u lu i Em ployeeC aseID CaseID E m ployeeID T ip u l de date A u to N u m b e r Num ber Num ber D escriere Cheie p rim a r C heie e xte rn la ta b e lu l Case C heie e x te rn la ta b e lu l E m ployee

Tabelul EmployeeClass
N um ele c m p u lu i E m ployeeC la ssID D e s c rip tio n D e fa u lt T ip u l de date A u to N u m b e r Text C u rre n c y D escriere C heie p rim a r N u m ele cla se i de a n g a ja i T a r ifu l im p lic it

Tabelul Invoice
N u m e le c m p u lu i InvoiceID In vo ice N u m b e r InvoiceR ate C lie n tID T ip u l de date A u to N u m b e r T e xt D ate /T im e N um ber D escriere C heie p rim a r N u m ru l fa c tu r ii D a ta fa c tu rii Cheie e xte rn la ta b e lu l C lie n t

Tabelul Judge
N u m e le c m p u lu i J u d g e ID F irstN a m e M id d le ln itia l T ip u l de date A u to N u m b e r Text Text D escriere C heie p rim a r P renum ele In iia la

A N E X A A STRUCTURA BAZEI DE DATE TEB


LastN am e Notes C o u rtID T e xt M em o Num ber N u m ele de fa m ilie Note ale u tiliz a to r u lu i

281

C heie e x te rn la ta b e lu l C o u rt

Tabelul Tim eEntryD etail


N um ele c m p u lu i T im e E n try D e ta il D e s c rip tio n H o u rs Rate W o rk D a te W o rkC a te g o ry InvoiceID CaseID E m ployeeID C lie n tID T ip u l de date A u to N u m b e r Text N um ber C u rre n c y D a te /T im e Num ber Num ber Num ber Num ber N um ber D escriere C heie p rim a r D e scrierea a c tiv it ii N u m ru l de ore alocate T a r ifu l pe or D a ta a c tiv it ii C heie e x te rn la ta b e lu l W o rkC a te g o ry C heie e x te rn la ta b e lu l Invoice C heie e x te rn la ta b e lu l Case C heie e xte rn la ta b e lu l Em ployee C heie e xte rn la ta b e lu l C lie n t

Tabelul W orkCategory
N u m e le c m p u lu i W o rk C a te g o ry lD D e s c rip tio n D e fa u ltR a te T ip u l de date A u to N u m b e r T e xt C u rre n c y D escriere C heie p rim a r Descrierea categoriei de a c tiv it i T a r ifu l im p lic it pe o r

REGULI DE INTEGRITATE REFERENIALA IN BAZA E DATE TEB

284

AN EXE

T o a te r e la iile im p le m e n te a z te rg e ri r e s tr ic io n a te i in tr o d u c e r e a r e s tr ic io n a t a d a te lo r. A c tu a liz rile r e s tric io n a te n u s u n t a p lic a b ile deoarece s u n t u tiliz a te ch ei p rim a re surogat. Paragrafele u rm to a re p re z in t fiecare ta b e l p rin te i tabelele c o p il c o re sp u n z to a re lu i.

Tabelul Case (cheie primar: caseid)


T a b e lu l E m ployee: m u l i la m u l i (p rin ta b e lu l de le g tu r Em ployeeCase); T a b e lu l C lie n t: m u l i la m u l i (p rin ta b e lu l de le g tu r C lientC ase); T a b e lu l T im e E n try D e ta il: u n u la m u li.

Tabelul C lient (cheie primar: clientid)


T a b e lu l C lientC ase: u n u la m u li (faciliteaz re la ia m u li la m u li a ta b e lu lu i Case); T a b e lu l C o n ta c t: u n u la m u li; T a b e lu l Invo ice: u n u la m u li; T a b e lu l T im e E n try D e ta il: u n u la m u li.

Tabelul Court (cheie primar: CourtID)


T a b e lu l Case: u n u la m u li; T a b e lu l J u d g e : u n u la m u li.

Tabelul D epartm ent (cheie primar: departmentid)


T a b e lu l Case: u n u la m u li; T a b e lu l E m ployee: u n u la m u li.

Tabelul Employee (cheie primar: employeeid)


T a b e lu l E m ployeeC ase: u n u la m u l i (faciliteaz re la ia m u l i la m u li a ta b e lu lu i Case); T a b e lu l T im e E n try D e ta il: u n u la m u li.

Tabelul EmployeeClass
T a b e lu l E m ployee: u n u la m u li.

Tabelul Invoice (cheie prim ar: InvoiceID)


T a b e lu l T im e E n try D e ta il: u n u la m u li.

c
GLOSAR

286

A NEXE

A doua form norm al


A d o u a fo rm n o rm a l izoleaz i m u t datele re d u n d a n te n tr - u n ta b e l separat.

A tre ia form norm al


A tre ia fo rm n o rm a l face ca to a te c m p u rile u n u i r n d s fie depen dente de ch e ia p rim a r .

A patra form norm al


A p a tra fo rm n o rm a l izoleaz re la iile m u ltip le in d e p e n d e n te . E ste foarte r a r u tiliz a t .

A cin cea form norm al


A cin ce a fo rm n o rm a l izoleaz re la iile m u ltip le n ru d ite se m a n tic. E ste fo a rte r a r u tiliz a t .

Adm inistrator al bazei de date


A d m in is tr a to r u l b azei de d ate r s p u n d e de a d m in is tra re a i o rganizare a u n u i sis te m de a d m in is tra re a b a ze lo r de date.

Alias
U n a lia s este o v a ria ie a n u m e lu i u n u i ta b e l n tr-o in te ro g a re SQ L. De exe m p lu , in te ro g a re a u rm to a re u tiliz e a z a lia s u l c n lo c u l n u m e lu i re a l al ta b e lu lu i C u s to m e rs :

SELECT C . CompanyName, * FROM Customers c;

A tribut
U n c m p /o c o loa n d in tr - u n tabel. O p ro p rie ta te a u n u i cm p, ca de e xe m p lu legenda, tip u l de date, d im e n s iu n e a .a .m .d .

ANEXA C GLOSAR

287

Auto-uniune
U n iu n e n care u n ta b e l este u n it c u el n s u i. U n e xe m p lu tip ic este o re la ie n tre ta be le le c u date despre a n g a ja i (Em ployee) i s u p e rio rii lo r ie r a r h ic i (S u p e rv is o r). T o i s u p e rio rii s u n t a n g a ja i. F ie c ru i a n g a ja t i co re sp u n d e u n c m p S u p e rv is o rID , care re fe r a lt cm p E m ployeelD .

Baz de date
O colecie de da te a d m in is tra te i o rg an iza te de u n s is te m de a d m in is tra re a b a ze lo r de date.

Blocaj (deadlock, deadly em brace)


S itu a ie n care d o u s a u m a i m u lte procese n u p o t c o n tin u a deoarece au nevoie de aceeai re su rs .

Blocare
U n d is p o z itiv de c o n tro l u tiliz a t p e n tru a o fe ri acces e x c lu s iv la o a n u m it re su rs , de o b ic e i o n re g is tra re .

Cmp
C m p u rile , n u m ite i coloane, s u n t elem entele de c o n s tru c ie ale u n u i tabel. De e xe m p lu , u n ta b e l tip ic cu date despre c lie n i este co m p u s d in c m p u ri p e n tru p re n u m e , n u m e le de fa m ilie , ora, s ta t i c o d u l p o ta l. U n cm p (n u m it i atribut) este o coloan a u n u i ta b e l i stocheaz u n e le m e n t a to m ic d e s c rip tiv despre o e n tita te .

Cheie
U n c m p u tiliz a t p e n tru a ccesul la o a n u m it n re g is tra re . P rin tre tip u rile de ch e i se n u m r ch eile p rim a re i cheile c a n d id a t.

Cheie candidat
U n c m p sa u u n g ru p de c m p u ri care id e n tific u n ic o n re g is tra re .

Cheie compus
U n tip de cheie p rim a r a lc tu it d in d o u sa u m a i m u lte c m p u ri d in tr - u n tabel.

ANEXE

Cheie extern (strin)


O cheie s to c a t n a lt ta b e l c u s c o p u l de a s u p o rta o re la ie . De exe m p lu , ch e ia p rim a r a ta b e lu lu i p e n tru c om enzi este p re lu a t ca i cheie e x te rn n ta b e lu l c u d ate despre com enzi.

Cheie prim ar
U n c m p s a u o c o m b in a ie de c m p u ri care id e n tific n m o d u n ic u n r n d de date. E x is t d o u t ip u r i de c h e i p rim a re : c h e i s u ro g a t i ch e i sim p le .

Cheie surogat
O cheie s u ro g a t este u n cm p c re a t p e n tru id e n tific a re a u n ic a u n u i r n d de date. De obicei, o cheie s u ro g a t este de tip u l n tre g c u a u to in c re m e n ta re . C e l la lt t ip de cheie (cheie p rim a r ) re p re z in t o cheie co m pus, a lc tu it d in d o u s a u m a i m u lte c m p u ri. A lte rn a tiv a la o cheie s u ro g a t este o cheie n a tu ra l (care are sens n a fa r de fa p tu l c este cheie p rim a r ). C heile n a tu ra le n u s u n t n e a p ra t com puse, c u m este ca zu l n u m r u lu i c lie n tu lu i, n u m r u l f a c tu r ii s a u n u m r u l com enzii, to a te acestea fiin d ch e i n a tu ra le , a lc tu ite d in tr - u n s in g u r cm p.

Concuren
Acces s im u lta n la aceleai d ate a l m a i m u lto r u tiliz a to ri.

Conflict
C o n flic tu l re s u rs e lo r are loc dac d o i s a u m a i m u li u tiliz a to r i n ce a rc s actualizeze s im u lta n acela i ele m e n t de date.

Copil
in ta u n e i re la ii. De e xe m p lu , n tr-o re la ie n tre com enzi i elem entele co m e n zii, elem entele co m e n z ii s u n t co p ii, deoarece s u n t in ta u n e i re la ii c u com enzile.

Data Definition Language (DDL)


S u b lim b a ju l D D L p e rm ite u tiliz a to r ilo r s creeze, s m o d ific e i s tearg d ife rite elem ente ale u n e i baze de date, ca tabele, coloane i v iz u a liz ri.

GLOSAR

289

D ata M anipulation Language (DML)


S u b lim b a ju l D M L p e rm ite u tiliz a to r ilo r s creeze, s actualizeze, s tearg i s in tero gh e ze elem entele de date d in tr-o baz de date.

Date
C o n in u tu l u n e i baze de date. E lem en tele de date d in tr-o baz de date p o t fi extrase, g ru p a te i s u m a riz a te p e n tru a p ro d u c e in fo rm a ii.

D ate care se repet


V a lo a re a u n u i c m p care apare de m a i m u lte o ri n tr - u n tabel. De exem plu, d e scrierea u n u i tip de c lie n t poate a p rea de m a i m u lte o ri. P ro ce su l de n o rm a liz are v a m u ta o s in g u r in s ta n a fie c re i d e s c rie ri n tr - u n ta b e l se p a ra t p e n tru a e lim in a datele care se re p e t i re d u n d a n e le asociate lor.

D ate redundante
D ate stocate n cel p u in d o u lo c u ri n tr-o baz de date. S co p u l n o rm a liz rii este e lim in a re a d a te lo r re d u n d a n te .

Denorm alizare
P ro ce su l in v e rs n o rm a liz rii.

Design conceptual al bazei de date


U n m o d e l c o n c e p tu a l a l b azei de date, in d e p e n d e n t de im p le m e n ta re a u n e i a n u m ite baze de date.

Designul (proiectarea) bazei de date


P ro ce su l de id e n tific a re a e n tit ilo r d in re a lita te i a r e la iilo r d in tre ele, u r m a t de tra n s fo rm a re a a cestora n tr - u n m o d e l a l bazei de date.

Diagram a relaiilor n tre e n tit i (Entity Relationship Diagram - ERD)


O te h n ic s p e c ia l de re a liz a re a d ia g ra m e lo r care p e rm ite p re ze n ta re a p r o ie c tu lu i b azei de d ate re la io n a le .

290

A NEXE

D icionar de date
D atele care d e s c riu s tr u c tu r a u n e i baze de date; d e n u m ite i metadate date care d e s c riu datele. De e xe m p lu , t ip u l i d im e n s iu n e a d a te lo r s u n t m e ta d a te care d e s c riu u n a n u m it c m p de date. C o le cia ace sto r date fo r m eaz d ic io n a r u l de date a l u n e i baze de date.

Domeniu
S etul v a lo rilo r posibile pe care le poate conine u n elem ent de date. De exem plu, u n cm p care c o n in e z iu a d in lu n poate avea v a lo ri de la 1 la 31.

E n titate
U n o b ie c t a l b azei de d a te c a p a b il s stocheze datele; m a i este n u m it i tabel. U n o b ie c t a l bazei de date care stocheaz date despre o p ersoan , u n loc, u n lu c r u s a u u n c o nce pt i este o rg a n iz a t s u b fo rm de r n d u r i (nregis tr ri) i coloane (c m p u ri).

Forma norm al Boyce-Codd


F o rm a n o rm a l B oyce-C odd este o extensie a celei de a tre ia fo rm e n o rm a le . U n ta b e l se a fl n fo rm a n o rm a l B oyce-C odd dac d e p e n d e n a fie c ru i e lem ent de date d in tr - u n ta b e l poate f i u r m r it cu o cheie c a n d id a t. P e n tru e x e m p lific a re , s c o n s id e r m s tr u c tu r a u rm to a re : S tu d e n t, P rofesor i D ecan. P rofesor d e pin d e de D ecan, d a r Profesor n u este cheie. P e n tru a trece la fo rm a n o rm a l B oyce-C odd, s tr u c tu r a tre b u ie d iv iz a t n dou: S tu d e n t, P rofesor i P rofesor, Decan.

Funcii de agregare
F u n c iile de agregare d in SQL, c u m s u n t Count () , Sum () , Avg (), Min ( ) i Max () o fer p o s ib ilita te a de a s u m a riz a date le la efectuarea u n e i in te ro g ri.

Independena datelor
O se p a ra ie n tr e m o d u l de s to c a re a d a te lo r i m o d u l de accesare i m a n ip u la re a acestora.

Index
U n e le m e n t a l bazei de date, u tiliz a t p e n tru a o p tim iz a a n u m ite c i de acces la date. De e xe m p lu , dac tre b u ie s accesai date despre c lie n i p o rn in d de la ora, tre b u ie s re a liz a i u n in d e x pe baza c m p u lu i cu date despre ora.

ANEXA C GLOSAR

291

In te g rita te referenial
R e s tric ii care s u s in re la iile d in tre tabele. De exe m p lu , n ca zu l c lie n ilo r i a l c o m e n z ilo r, u n u tiliz a to r v a fi m p ie d ic a t s tearg n re g is tra re a u n u i c lie n t dac e x is t n re g is tr ri n ru d ite c u com ezi date de el. M a i m u lt, u n u tiliz a to r v a f i m p ie d ic a t s creeze o n re g is tra re a u n e i co m e n zi p e n tru u n p rin te (n a cest caz, o n re g is tra re p e n tru u n c lie n t co re sp u n z to r) in e x is te n t.

Interogare
P rocesul de extra g ere a d a te lo r d in tr-o b az de date fo lo s in d com ezi a c ro r s in ta x p oate f i n e le a s de s is te m u l de a d m in is tra re a b a ze lo r de date. Cea m a i o b i n u it cale de in te ro g a re a d a te lo r este u tiliz a re a c o m e n zii S elect d in SQL.

nregistrare
U n g ru p de c m p u ri care fac p a rte d in ace la i tabel. n re g is tr rile m a i s u n t n u m ite i rnduri s a u tupluri. O n re g is tra re este u n r n d a l u n u i ta b e l i c o n in e to a te c m p u rile p e n tru o a n u m it in s ta n ie re a u n e i e n tit i.

M etad ate
D a te care d e s c riu a lte date. D atele c o n in u te n d ic io n a ru l de date (D ata D ic tio n a ry ) s u n t adesea d e n u m ite m e ta d a te care d e s c riu s tr u c tu r a bazei de date.

Modelul ierarhic al bazei de date


U n m o d e l a l b azei de date n care datele s u n t stocate ie ra rh ic . P e n tru a accesa d atele, tre b u ie s n c e p e i d in p a rte a s u p e rio a r a ie ra rh ie i i s p tru n d e i p n la e le m e n tu l de date d o rit. X M L este u n e xe m p lu de stocare ie ra rh ic a d a te lo r.

Modelul relaional al bazei de date


U n m o d e l a l b azei de d a te a lc tu it d in tab ele b id im e n s io n a le n ru d ite n tre ele. E. F. C odd a d e z v o lta t m o d e lu l re la io n a l a l bazei de date n a n u l 1970.

N orm alizare
P ro ce su l de o rg a n iza re a u n e i baze de date a stfe l n c t s fie e lim in a te datele re d u n d a n te .

292

ANEXE

Ordinea fizic a nregistrrilor


O rd in e a n re g is tr rilo r, aa c u m s u n t ele stocate pe h a rd disc.

Ordonare logic a nregistrrilor


O o rd o n a re a n r e g is tr rilo r b a z a t pe u n a n u m it in d e x.

Printe
S u rs a u n e i r e la ii. De e xe m p lu , n tr - o re la ie n tre co m enzi i elem ente ale co m e n z ilo r, ta b e lu l p e n tru com enzi este p rin te , deoarece este s u rs a u n e i r e la ii c u ta b e lu l p e n tru elem etele co m e nzilor.

Prima form norm al


P rim a fo rm n o rm a l n s e m n e lim in a re a g r u p u r ilo r care se repet.

Proiectul (designul) bazei de d ate fizice


R e z u la tu l im p le m e n t rii p ro ie c tu lu i c o n c e p tu a l al bazei de d ate n tr - u n a n u m it s is te m de a d m in is tra re a b a ze lo r de date.

Rnd
U n g ru p de c m p u ri care fac p a rte d in acelai tabel. M a i s u n t d e n u m ite nregistrri s a u tuplurt

R elaie m uli la m uli


O re la ie n tre d o u tabele, n care m a i m u lte n re g is tr ri d in tr - u n ta b e l p o t fi n ru d ite c u m a i m u lte n re g is tr ri d in c e l la lt ta b e l. P e n tru a fa c ilita o re la ie m u l i la m u li, tre b u ie u tiliz a t u n ta b e l in te rm e d ia r de le g tu r .

R elaie unu la m uli


O re la ie n tre d o u tab ele n care o n re g is tra re d in ta b e lu l p rin te este n r u d it c u m a i m u lte n re g is tr ri d in ta b e lu l co p il. De e xe m p lu , o n re g is tra re a u n u i c lie n t (d in ta b e lu l p rin te ) poate fi n ru d it cu m a i m u lte n re g is t r r i ale c o m e n z ilo r (n ta b e lu l copil).

ANEX C GLOSAR

293

R estricii de domeniu
R e s tric ii a s u p ra u n u i e le m e n t de date, im p u s e p e n tru ca n u m a i a n u m ite v a lo ri d in d o m e n iu s p o a t f i stocate. M a i s u n t n u m ite i reguli de validare

la nivel de coloan/cmp.

Sistem de adm inistrare a bazelor de date (D atabase M anagem ent System - DBMS)
S oftw are c u c a p a cita te a de d e fin ire i a d m in is tra re a bazelor de date. P rin tre sistem ele p o p u la re de a d m in is tra re a b a zelo r de date s u n t: S Q L Server, O racle i D B 2.

Structured Query Language (SQL)


S Q L este u n lim b a j in d e p e n d e n t p e n tru baze de date, u tiliz a t p e n tru a in te o rg a , a c tu a liz a , terge i m o d ific a datele.

Tabel
U n ta b e l este o re p re z e n ta re a u n e i e n tit i i este a lc tu it d in r n d u r i i coloane de date.

Tabel de legtur
U n ta b e l in te rm e d ia r u tiliz a t p e n tru a s u p o rta o re la ie m u li la m u li.

Tranzacie
U n se t de o p e ra ii care tre b u ie fie s reueasc in te g ra l fie s eueze. De exe m p lu , o o p e ra ie care a d a ug u n n o u c lie n t i o n o u co m a n d tre b u ie s reueasc in te g ra l s a u s eueze. D ac a r f i p o s ib il a dug area u n u i c lie n t ia r in tro d u c e re a u n e i co m en zi i/s a u adug area u n e i com enzi f r a d u g a re a u n u i c lie n t, a r f i a prea o v io la re a in te g r it ii bazei de date.

Tiiplu
U n g ru p de c m p u ri care fac p a rte d in acelai ta b e l. T u p lu rile m a i s u n t n u m ite i rnduri s a u nregistrri.

294

ANEXE

Uniune
O op e ra ie n S Q L care c o m b in date le d in d o u tabele n tr - u n s in g u r set de rezultate. O u n iu n e com b in n u m a i dou tabele; o interogare care necesit c o m b in a re a m a i m u lto r tabele u tiliz e a z u n iu n i m u ltip le (fiecare d in tre ele co m b in n d d o u tabele).

Uniune
O o p e ra iu n e n S Q L care u n e te d o u d e c la ra ii Select p e n tru a o b in e u n s in g u r set de re z u lta te .

Valoare nul (nuli value)


In d ic s itu a ia n care u n u tiliz a to r n u a a tr ib u it o v a lo a re u n u i e le m e n t de date. V a lo a re a n u l este d ife rit de 0 sau de u n ir vid . De e xe m p lu , dac n re g is tra re a despre u n c lie n t c o n in e o valoa re n u l n c m p u l p e n ti u sta t, aceasta n s e a m n c s ta tu l n u este c u n s c u t. G n d ii-v la v a lo a re a n u l ca la o co m p le ta re a c m p u lu i cu te x tu l N u tiu .

Vizualizare
U n o b ie c t a l bazei de da te care re p re z in t o colecie de date d in u n u l sa u m a i m u lte tabele. M a i este n u m it i interogare.

W ildcard
U n o p e ra to r w ild c a rd p e rm ite u tiliz a to r u lu i s gseasc date pe baza u n u i m odel. De e xe m p lu , n u m e le c lie n ilo r p o t fi co m p a ra te c u A * p e n tru a gsi to a te n re g is tr rile c u c lie n ii a l c ro r n u m e ncepe c u lite ra A.

PERIODICE DE SPECIALITATE

296

ANEXE

Ia t cteva re v is te in fo rm a tiv e p o p u la re , care a u ca s u b ie c t dezvoltarea b a ze lo r de date: K S Q L S e rve r M agazine (www. s q lm a g . corn); 1 O ra cle M agazine (www. o ra m a g . corn); I I D B 2 M agazine (www. db2 . mag); Sybase M agazine (www. s y b a s e . c o m /in c /s y b m a g ); El A c c e s s /V B /S Q L A d v is o r (www. a d v i s o r . co m /A cce ssV B S Q L A d viso r); Hi V is u a l S tu d io M agazine (www. d e v x . com); H In te llig e n t E n te rp ris e (w w w . i n t e l l i g e n t e n t e r p r i s e . com); 1 D M Re v ie w (www. d m re v ie w . com); H In s id e M ic ro s o ft Access (www. e le m e n tk j o u r n a ls . com); S m a rt Access (w w w .p in p u b .c o m /a c c e s s ); Bl D a ta b a se A d m in is tra to r N e w sle tte r (www. t d a n . com); D a ta b a se T re n d s (www. d a t a b a s e t r e n d s . com).

E
RESURSE PE WEB

298

ANEXE

Ia t cteva s ite - u r i w eb p o p u la re , a c ro r te m este dezvoltarea b a ze lo r de date: www. s q l s e r v e r c e n t r a l . com - O c o m u n ita te de dezvoltato ri S Q L Server i a d m in is tr a to r i de baze de date. H www. d e v x .com - D evx este u n s ite w eb in fo rm a tiv p e n tru dezvoltarea a p lic a iilo r, care este p ro p rie ta te a Faw cette P u b lic a tio n s . I I w w w .m s d n .m ic ro s o ft.c o m /n e w s g ro u p s - O fer acces la g ru p u rile de d is c u ii o n lin e p e n tru s u p o rt p eer-to-peer. 3 www. s q lm a g . com - V a ria n ta o n lin e a SQ L S erver M agazine. w w w . m ic r o s o f t . c o m /o f f i c e / a c c e s s / - S ite -u l w eb M ic ro s o ft Access. www. d a ta b a s e a n s w e rs .com - U n site in fo rm a tiv general, d r g u , despre a n a liz a i p ro ie c ta re a b aze lor de date, p re c u m i despre cele m a i b u n e m etode.

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