Documente Academic
Documente Profesional
Documente Cultură
,*
-.
; '
'-
; : . ' V.:.
John V. Petersen
'' * r '.'':
* s
' '
Cuprins
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
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
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
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
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 .
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.
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.
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.
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 !
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.
10
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 .
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.
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.
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
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.
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
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
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
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 .
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 .
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
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.
20
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 /
21
) 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
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
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 .
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.
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
O ik rll _*J . CustomerlD ErntoyeelD OiaertJate Pejjret'as . ShpedOate S W pY ia Freight ttUnne$ : ShAdeiS StvpOty fiepon S h Pota:ox [
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
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).
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:
''tName MT'at
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!
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
= -
-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
Soups
ProdjOJD ProductN am e SuppterlD Category QuantityPerUnft U ratPiice UmtslnStock Um tsCnO rder Recrdeftevol Discontinued
Order CustcmerlD E/rtc yelD OraarDate .:RequredOate : ShippedDate jh w Freight Shftflas ShpAddress NpGty hfcRegtM i ShpPostaKoc^J
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
'
Constitucin 2222
Berguvsvagen
Comidas preparadas
K rr
Chop-suey Chinese Consolidated Holdings Drachenblut Delikate en Du monde entiar
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,
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.
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,
Tab-ul Lookup--------
Proprietile__ cmpului
A Hej rjm canb3 te &tccxi a*, n d d i . ras fer h8>o ted narr
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.
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
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
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
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 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
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.
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.
34
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
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.
FIGURA 2.15
Interogarea Products by Category n vizualizarea Design.
C a t e g o r y D I
DsscrlpBan
Piodjcts
loducls <>YM
36
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
'\
, _ ; ,
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.
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.
.....
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.
[ 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.
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(.
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.
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
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...-.
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.
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
46
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.
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 .
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
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.
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.
50
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 .
51
B 22 2 j JS 2 a
Sl w bt | Companytam ContactName ContactTitle . Address C*y Rsgton
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
ay
Region
s h p p o iu c c c ^ j
* 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.
52
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.
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.
53
]
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
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 .
54
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 .
!1 1 s~
|Hornai...... J ' a
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.
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.
~. *
I
T-xJ: 0,-
L jrC K N oitr
| :
. >?; | . - '
* M *
0 * * *
'
><
CuSorret 0
Pagei/i
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 | ;.
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 .
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
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
. ]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 *
............................
. Mm:' Rady
DATE
Teii: f Covclot
U/
lCorwcloi
tt X &
] j 3
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.
3 j i r3
b I!lamal j t
l . ' * M ' -A Ft H
^ - i1
trtr,
xijU iL!,
SI
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
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
- ^
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.
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 .
-<
=3
1 C - O -
i - - /
k . ' ! & . :
[::_ j
Dzobast uei LiiteiiciitiL. ; OrderlD (FK) (IEJ
|Pev 0
r~ Pir- Statut; i RW
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.
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 ?
* = '
. . . ^
: * A
'A ' 4 *
":rrrrrr:.
ZEI
1
.
|p e v
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
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
|r
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
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
'|1 * , * F II
; TNamai"
: : A *
^~| ' *
- * - .
1 &>-/
iV .
ciientip
>
<
Dat3base ta upport
Pev: 3
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
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.
*liS j*
.J J *
o ;x t i 1 ) !( , } os _ J ?
Hi
jRev. 3
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.
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
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.
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!
cheie p rim a r ;
72
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 .
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
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 .
74
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 .
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 .
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
76
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
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.
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
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
fiopi. J.-FI
; ! );
A* * ' '
|nm al
&
B.
, Customer jc u s to m e rc a te g o ry I
'
Category
? ill
st tu
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
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 .
[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
81
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.
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 .
84
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.
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.
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);
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:
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 !
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
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
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 ;
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
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.
92
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
1 -
|VVokCaIe*Jiy
Descuotion
fimployeiGass
|R ev. 5
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 .
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
|Rev: 5
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
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
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.
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
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.
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.
100
DATE
FIGURA
In te rfa a M icro so ft Access Database Design.
jete. ShowM e
- 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
--- 1
Atributele cmpului
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.
.
[ [ [ 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
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
; f i t :
....................
'
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
1 03
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
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
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
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.
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
DATE
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 .
107
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
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.
DATE
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
109
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
Fl N am e
Datatype
^ *
Form at
--- - -
;
Increment Y )NoDup*aei( | : . - < * - ycu'iie bet fisfc< . Freu toi h t cr.ccooicr-i.
>.
Tabelul 5.1
N um e
110
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
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.
111
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
112
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 .
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
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:
! ~
| I
OeatcNew. |
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 .
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
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,
% : '
B ;aer;
Tables. ' _ 0> Report
< '
U cd .:
Nam Mp: .
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
F e
aient C Jw nt LongInteger
'3sntType
:
II"' ,
!file r...............................
C A r TO LUL
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
- '
: ,
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
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.
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.
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
"
CK Q ariztM TiNam e Addrs
rtico Mjmber E -n -K 5
FHd 0
1 Cspian . :0 ' Ato8f0l nfc Indtxea Unfode
0 0
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.
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
r~ r~i r~ ~r~: r
Setrile valide pentru proprietatea Required sunt stocate ntr-o list derulant.
T abelul 6 .1
C m pul
126
Tabelul 6.1
Cm pul
(continuare)
V alo a re Yes Yes Yes No
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.
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.
rfow Help
: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
128
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.
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
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
.*iS 2L l
Email
Recwd
:!
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.
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
. ) Text
Destnotion pmkyt.ey Fieldpr 5p yt>pe B-Eu*iM, l-Inckvldu^l FnSNme 1 1 Nam e ' <atrit 5
: Cod
,-
fi . ' .
. ,'
' ) (
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.
133
MliIH uiiiltidl | J
L.islH.iin
1 6igan 2onN
A<Hik1
*City
St.it
ZJ,3ol 22
P hon<f
--
.i i ___I
1 I___ v :
134
Tabelul 6.2
Cm pul
@@@@@-@@@@ @@@-@@@-@@@@
@;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.
135
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
DATE
______________
'
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
'
- " '
' < *
: )
'
a : n
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 .
138
& 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 .
o o l
a | b *
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
) n*<
Y(CjpkteiO(
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
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
) Dupfcat O K(
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.
141
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.
FieldHaine CkentlO OentType Ftsarrie lastNaoe Crgarcationfian AMre i M fsfZ plode P hon.
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
______________
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;
142
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 .
(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.)
143
r\.T '
j lookup
O O
ti* I
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
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]
[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.
145
____
lL-..g.Z:l
Help
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.
148
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 .
A P iT O L U L ?
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:
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.
150
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.
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: ___
C'wte ftew.. j
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
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.
a Ckrnt able
(AuloNumb
~ - ;,
ori H.L-'-.lI
I *I * 1 :
s msmm&
Tille
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 ' '
.........
! 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
F IG U R A 7 .3 Access are capacitatea de a afia sim u lta n nreg istrrile p rin te i copil.
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
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
, ^ : ]
,,'
? !*
! ; 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
154
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.
'
~ 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
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).
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
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.
161
162
Fereastra SQL
Objects
& a ji
C A P IT O L U L
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:
0 tUe in Designviw Osa( tat* t yJrg C r by rtsrrnj Custt m s
Key,
164
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.
- iC l x , '
: .Dgri b- UOTQ''
11
iiil
C i-
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.
166
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 :
Ffc * _ _ _
...........
*r> ktgn C ro quay > Cresie guwy by usng M srd
j orgiinizarioniuiiif j Mam tine Software, Inc Acs Tomato Company j N/A N'A N-'A
ftecor- I! l i
167
t. a
& a
lii.nn
iil.HH Smith rubble Ace Tomata Company N/A N/A ! ;Main Line Software. Inc| HA
Ptcad: 1 I i i
G roiCS
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:
168
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
ggl
OWf-U
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.
mmp
up.,::. m
My D v >
h e S
mm
jjS^vi w~
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:
.........
170
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.
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.
-'"~ ..'
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
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 -
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.
SELECT lastname + ", " + firstname As Client From Client Where ClientType = "I" Order By lastname
173
feste Designww re quefy by > jng weard client IRubble, Betly Smith, John S''*,!
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.
SELECT state,city,lastname + ", " + firstname As Client From Client Where ClientType = "I" Order By state,city,lastname
174
FIG U R A
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.
sn ?
p. ' ii 1 1:
VVjshiiiglon Paoli
;- 7
CAPITOLUL
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.
* -
<
state
< ' rr
OtimU
'
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
8 .1 7
Uniuni SQL
La stn ga La dre ap ta
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 ' * ' *
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
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.
CM Yi
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.
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 ' --
\ .
m r r.aMnfn c i
o r. tiJe fetid .t * FP
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:
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
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.
182
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.
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
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
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 .
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
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
188
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.
< '
''
.
? , !
' .
mm
SiSII
HM
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
nseit 'maf
Iacii Jr** .
< 0 I li
____I
!> ' l -l
190
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.
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
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
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
194
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.
-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.
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.
IS IIS S ii
.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
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.
.*! !*I
' \
- n SI
--- -----------
31.
. . ....... .
-a g jiu i
Patent Infringement Patent Infringement Patent Infringement Smith Divorce Smith Divorce
Employee
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;
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
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
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 :
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
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
.. . .... ..... .
: '
mmm
. ; -: :
204
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.
- ' : '
total Oivotcij
Iul! :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:
205
..............
'
asscrrrv- -
W MMM i i l i l i la p
v i m
"1..ri..........;.
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
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
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
.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 .
208
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.
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.
209
Mii
Record: EntoyeeCa 3 El EfrpoyCI
TfiwEntfyiM 0 ! E U WrKw v
!Joax
: r !nan? i * ]) K#oh/
plsasssptcifv a Ija I
BBB
L i-'
1' --
| ' " ,I
tia ^ d
(AjjlofJ'jTQ
----
%
tWtMhcKVm'
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.
211
n t
.. :
.''-
loNumb r(
r~ Z T
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
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*
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
213
.......
W jM
W ,
* * S i V * ! r ~
- C*!*e l !
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
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
sL
" : In.i C a ID Empto.c D I Client:
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
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.
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,
219
<3smm
<
j ' ' .
*
. - . ' : * - . '
: g e a C T !
- |' Both, j
'
Jr
hfc
E lDaiath .
-to i x
query view Jy by
' Table;
220
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.
. e v ... . i: j
Ctgcts
______
OotUD FirN am e jM.dcfaIV.al J
*Vo u c h
'
......
^ < 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.
.! 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
222
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
&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.
;ord: H l 1
a U U
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
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
UM
-. * :
<
: -
Wwwirtoori'f--
225
-lO l *li
:rsafe queY vwi Irea( W W yby ur g
___ ___________
- ........
226
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
'
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
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
1 *1 | |
Cancel _G rO JW _
f - r r - ;
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 .
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
D a o d
;S la ti
H jbbin=
Tufriel
Record: u | 11
I >!>?! of
230
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.
:?
231
ESSgZZSSammM,:.
SBBBaw
[Ewfm/eeJ
0:
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
232
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
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.
'
. < * .
laonUD |Qen7ype
'
.lo lx lj
|
OrtxMrHme Pent :>a-Type
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
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 .
i?*
238
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.
..
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.
240
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.
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.
' $ informatori the your yauwan query or modfy qusryi Crajpt 5 nthe vwwWormsaon.
Ksctay on*rOikirqMhthequwy?
ir
'
242
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 |
X : 7
'
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 .
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 &
&
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.
-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
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:
244
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 !
?-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.
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
CerceT
tB *H j at> ) E h g i
ferm^d
246
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.
ln t 1
w tatttl* doyou |
>
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.
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
::<:
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.
a a j .
Main Street
Ai Philadelphia G roups
248
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.
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
6777215
.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
250
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
. . . . . . . . . .
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 :
j0es*anVi9~
- -- -
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 ,
251
)! 5
-
* '
* IOJ ) hppan > 0 . . 0 j Ev . 0 .. . .. - ype. . . . . . . : ]. . . . . . : , ... Hyprh* , Em bddc
'
.' -<* .
'
... .. : . .,
:Aiways ; . . 1.75
PcrsCok
!'
' - ,
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
.
'
*; -
\ u .
;
1 JW .V iW W
..,. e .' 0 tv tr c * h ~
- . .. . PKtie . . . . . . . . . . . . . . . ) ' Hypstfefc! '........
SSKSM:
5 ..
~
:|0 | Arrow) 6 | UpAi'> w(Btj
b g g rt ?
rsw vA iP w ui
FwsCobf,
;Com m and
Rrg ^ v ,:
s s u
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,
C are*
<6**
BH
jCO m tnaryJ&Atori W eatd
dt View Jnsert
I o W o w
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.
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.
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:
_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
Ia
t ' r^ Z T : r
JHLil
j c f t i g j . - :.'
N/A 100 Boulder Avenue Rubble Ci x l ! -
?iii
999S9-
>'lM
R pe FindWhat;
Lockin: Matefc
jbxtvidudOnn jwhcisReid ~
3 3
M o w [
255
'-
" .
! itilndow tjelp
9
Ota M iO -
! :.,:
Fermat j r-i Even j oher I -- OoE;t -.- 0 ....... ' On Ck* . . . . . . . . . . . . . . [Evw* OnCWCk :... . . . . . . . . . . . 1 . . . . . . . . . . Of>McusM o . . .... . OnMaine . . . . . . . > . . . , . , . . . . .
..
... ......
- I I1
Oo KeyPie s s . . . . . . . . . . .
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 ; '
snmmmsammmm
i-lrs ycco*
limdAdd C jTw an:?B.jtK ~
'
:>wUdd_Click C liefc:
pewgnView
256
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.
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
Departments) Description
.fia H S S j_____
" : r B
~-n- [ |
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
&
*
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
S s h w
Fotm
'
9 ''
Oblica IJ CreasfomnDsri1 w ' ' - ; 1 fonr.yusinq wcad
. . . . . . . . . . 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.
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
Ctrctl |
gwigr-ir D a ta
.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
-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
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.
!
Il " miin 1 ~ F Creis7 0-.n i f o r mby. hefona? Crus
;:
'
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
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
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
1 3 3 0
.^ ~ i
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 "[
SfleiiHS ci y
g la ix lj .ftern'
262
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 .
264
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.
FIGURA 12.1
A p lic a ia Report Designer d in Access.
Raport
*!E U *!
Obiect 40 Oeste rawxt Designview lJ Crea report hy uSngw d
J O I* ] PaeHexiq
*P e te i
G roupt
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 .
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
FIGURA 12.2
n tru c t interogarea C lie n tL istin g u tilizea z clauza
U n io n ,
Obgct*
/ 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
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
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.
_===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
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.
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
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
G roups
liM akm kM
Control from Detail
fceportwuarrf
270
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.
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 - :!
271
SBSSSBiE
:Bepert Hcajer
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
272
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.
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.
273
. . .
Compand3
!
Tahona .
Create fomi i
you8<(he tomm*nd 00 ) ?
*& * *
& I *
ou I
I I
f*
jj^nBian.6i<KipWganl
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
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
T .- a-Hl3 * Cowm
.I
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.
K 'S
P i O S f f l : %
sa :is Cy
:: E m ployBBForm
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
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!
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
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 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
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
281
C heie e x te rn la ta b e lu l C o u rt
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
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 EmployeeClass
T a b e lu l E m ployee: u n u la m u li.
c
GLOSAR
286
A NEXE
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 :
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.
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 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.
GLOSAR
289
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 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.
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).
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.
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
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.
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
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.
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 .
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.