locuri de muncă informatice

Astăzi vom vorbi în detaliu despre tabele in Access.

Să ne amintim că știm deja despre tabele.
1. Identificarea (Cheia)
Toate intrările din tabele sunt numerotate. În acest scop, un domeniu special (este mai bine pentru a face primul apel și ID-ul). Tipul de acest domeniu - contor. Counter fiecare înregistrare nouă oferă automat un nou număr de serie. Acest număr nu poate fi șters, nu puteți schimba (încercați doar!).






Dacă sunt eliminate din intrarea de tabel (de exemplu, Id-ul = 12 - un catelus Teddy, când a căzut bolnav și nu a putut să participe la expoziție), apoi, dacă se recuperează, și îl veți adăuga Teddy în tabel, Id-ul va avea altele pe 1 mai mult decât ultima înregistrare din tabel.
Acest lucru este de a se asigura că identificatorii într-un tabel, în orice caz, nu se potrivește. În caz contrar, ele vor înceta să mai fie un identificator!
Ca urmare, este imposibil să se potrivească cu numărul identificatorii de apartamente, câini expoziție nomerki; Intrările sortate după Id-ul nu trebuie neapărat să meargă în ordine alfabetică, după data și ora ascendent. Cu alte cuvinte, Id-ul transporta nici un sens semnificativ. Ei au nevoie doar de a stabili legături între înregistrările din tabele.

2. Standarde Naming
Denumirile de tabele și câmpuri din tabele (și numele de interogări, formulare, rapoarte și macro-uri), scrise în limba engleză, fără spații (prin dog_age subliniere sau fiecare cuvânt cu literă DogAge). Înainte de numele tabelului este plasat prefixul tb ... Astfel, intrările devin lizibile (de exemplu, tbDog.BirthDate), și nu există probleme cu chirilic codare.
Trebuie să spun că accesul nu este permis să scrie în numele și spații chirilice. Pentru nume cu spații nu sunt „răspândite“, le intră automat în paranteze pătrate, ca acest lucru :. [Dog Show] [Informații importante 1]. Dar se pare numele percepției vizuale neprofesionistă și dificile.

3. Legăturile dintre tabele
Există două tipuri de bază de relații între tabele: a „unu-la-mulți“ și „multi-la-multe“. Amintiți-vă exemplul lecția anterioară?

Proprietarii de caini, rase de caini

Există doar un singur proprietar al fiecărui câine, dar un proprietar poate avea mai multe câini

fiecare judecător ridică evaluarea mai multor câini, iar fiecare câine primește evaluarea mai multor judecători

Tabelul (tbDog) creează un câmp suplimentar PersonId și scrie proprietarului fiecărui câine Id

crearea unor tabele suplimentare tbMark (estimare) și afișează în perechi: Ce estimare a pus un astfel de judecător un astfel de câine

Ilustrație pentru comunicare "one-to-many":

Cum de a face un tabel în acces

Ilustrație pentru comunicare „multi-la-multe“:

Cum de a face un tabel în acces

4. Mod de proiectare
Având în vedere de proiectare, ne punem numele și tipurile de câmpuri. Sunt necesare Tipurile de câmpuri pentru a putea accesa la interogările aplicate în mod corect funcțiile încorporate (precum și în Excel). Nu uitați, Exemplul 2 + 3 = 5, în cazul în care numărul și # 147, # 2 148; + 147 # 3 # 148; = # 147; # 148;, 23, dacă această linie. Un alt exemplu: o caracteristică integrată pentru variabilele temporare Luna (12.04.05) = 4 nu ar fi îndeplinită dacă data a fost înregistrată linie.

În mod independent există acest tip de ca Lookup Wizard. De fapt, el nu este un tip. Maestrul permite cel mai simplu tip de conexiune între cele două tabele, „unu-la-multe“. Cu alte cuvinte, ea permite să înlocuiască o valoare de masă de la o alta. Substituțiile expertul convenabil, de exemplu, în valorile de substituție tbDog de un roci de masă. Se va arăta în felul următor:

Cum de a face un tabel în acces

Aceasta este chiar în celula maestru al tabelului se introduce un mic liste derulante din care puteți alege valoarea dorită. Este important să se înțeleagă că, în acest caz, legătura dintre tabele este stabilită prin ID-ul. Doar maestru ascunde partea tehnică a lucrurilor.

De asemenea, în ultima lecție avem un pic afectează drepturile de proiectare schemele bazelor de date. Astăzi ne vom concentra asupra lor mai mult și să dea definiție mai stricte.

La proiectarea acestor circuite care trebuie respectate trei reguli:

Regula 1: Forma normală 1

Conform formei normale 1 în fiecare celulă este cea mai mică unitate de informație.

Nu puteți înregistra valori multiple, separate prin virgulă. Dacă în mod logic, apare această soluție, atunci avem de-a face cu comunicarea „multi-la-mulți“, și în conformitate cu normele ar trebui să înceapă un tabel separat (ca în cazul estimărilor câini).







Care este motivul pentru care această cerință?
Răspunsul este simplu: faptul că tabelul procesa cererea!
Este mult mai ușor de a specifica o condiție de căutare tbMark.Exterior> 5 decât să caute într-o linie lungă # 147; 5, 4, 6 „intrarea în ea substringul dorită și apoi prinde eroarea.

Același lucru se aplică valorilor compuse lungi, de exemplu, Lang. În cazul în care numele, prenumele și patronimicul sunt înregistrate în celule individuale, folosim cu ușurință interogări poate afișa în funcție de sarcina:

  • numele, prenumele și patronimicul,
  • Numai numele,
  • ultimele inițiale nume,
  • nume de mijloc, etc.

Cu solicitări nu poate fi dificil de a face o selecție a acelor cititori care expiră în această săptămână, în cazul în care data de întoarcere este scris într-o singură celulă:

De asemenea, nu va fi dificil de a alege dintr-o bază de date a tuturor locuitorilor din Moscova:

Excepțiile sunt acele bucăți de informații, care, evident, nu doriți să căutați. Deci, în ultimul exemplu, nu are sens pentru a face numărul apartamentului într-un domeniu separat, deoarece este puțin probabil ca cineva va trebui să afișeze toate disponibile în baza de date a rezidenților din apartament 50.

În plus față de 1NF ar trebui să spun un punct mai important: după cum știți deja, Access vă permite să creați interogări și calcule: data nașterii pentru a determina vârsta numele și patronimicul face inițialele, etc. Prin urmare, numai datele originale (data, costul per unitate de mărfuri) trebuie indicată în celulele de masă, și nu scrie pentru cei care pot fi calculate cu ajutorul funcțiilor.

Regula 2: stocarea locală

În conformitate cu principiul de stocare a datelor la nivel local în cazul în care valoarea în orice domeniu se repetă în mod regulat, acestea ar trebui să stea într-un tabel separat, și în domeniu pentru a le pune un link.

Amintiți-vă exemplul rocile? Tabelul cu câinii repetă în mod regulat numele pietre. Nu este de a scrie de douăzeci de ori „Cocker Spaniel“, vom crea un tabel separat cu roci și masa indică doar Id câini rasa. (Apropo, ce fel de relație nu va fi?)

Astfel,
a) vom te va salva de la locul de muncă inutile (nu este nevoie pentru a umple o mulțime de ori același lucru);
b) dacă doriți să efectuați modificări, suficient pentru a edita un singur câmp, mai degrabă decât de câteva zeci sau chiar sute de înregistrări.

Această regulă nu corespunde în mod necesar cu un singur caz: în cazul în care repetarea, dar acestea nu sunt regulate. De exemplu, nu are sens pentru a crea un tabel separat cu prenumele, numele și patronimicul, deși se întâmplă ca acestea să fie repetate.

Regula 3: ASOCIATIA DE MESE

Am vorbit mult despre ceea ce trebuie să împartă masa în câteva (pentru a se conforma cu primele două principii: 1NF și stocarea la nivel local). Acum este timpul să vorbim despre când să combine mai multe tabele într-o singură.

Dacă traducem primele două principii în limba obișnuită, puteți (cu unele grosieră) spune: o entitate - un singur tabel. Tabel pentru câini, masa pentru proprietari, tabelul de evaluare, o masă pentru roci, etc.

Cu toate acestea, există cazuri în care ar trebui să fie făcute mai multe entități într-un singur tabel! Care sunt aceste cazuri? Acest lucru atunci când mai multe entități sunt date schemă aproape identice (setul de câmpuri în tabel).
De exemplu, în spectacol câinii noștri sunt implicate nu numai proprietarii de câini, dar, de asemenea, membri ai consiliului consultativ (judecătorul). Ai putea crea un tabel separat pentru judecători tbExpert, dar este mai convenabil să scrie și ei, și proprietarii într-un singur tabel tbPerson (introdus pentru a distinge doar un câmp suplimentar IsExpert).

Cum de a face un tabel în acces

Astfel, nu numai că a crea tabele suplimentare, dar, de asemenea, salvați-vă de a trebui să scrie unele cereri suplimentare (de exemplu, o cerere care a numele, prenumele și numele patronimic face cu inițialele). O astfel de cerere ar trebui să fie duplicat pentru fiecare dintre tabele.

Deci, al treilea principiu este formulat după cum urmează:

În cazul în care mai multe entități au circuite de date aproape identice, acestea ar trebui să fie combinate într-un singur tabel.

Nu vă fie teamă că masa va fi pe ea prea mult timp. Baze de date funcționează bine cu mese foarte lungi (m-am lucrat cu baza de date în Access, care a fost puțin mai mult de 1 milion de înregistrări, în timp ce accesul se descurcă cu ea!) Elevii de diferite grupuri, cursuri și departamente, produse de diferite tipuri, carti de diferite genuri - toate dintre ele pot și ar trebui să fie combinate într-un tabel (tbStudent, tbGoods, respectiv tbBook), cu un domeniu special (poyami) -labels: artist, gen, etc.

Lista din nou de design principii:

1. 1NF: în fiecare celulă este cea mai mică unitate de informație.
2. Stocarea locală: în cazul în care valorile dintr-un anumit domeniu, care se repetă în mod regulat, acestea ar trebui să stea într-un tabel separat, și în link-ul de post.
3. Combinarea tabelelor în cazul în care mai multe entități sunt scheme de date aproape identice, acestea trebuie să fie combinate într-un singur tabel.

Și nu uita regulile despre care am vorbit mai devreme:

1. În fiecare tabel primul câmp - tipul ID contor.
2. Reguli de denumire: în limba engleză, fără spații (fiecare cuvânt cu majusculă), + tb prefix ...
3. Două tipuri de relații: unul la mai mulți (câmpul-a crea link), multe-la-multe (crearea unui tabel suplimentar).

Acum am ajuns la practica.

Sarcina 1 Selectați oricare trei din cele cinci propuse următoarele sarcini și să facă pe listele de date schema bazei de date. Schemele trage pe hârtie (nu neapărat să le facă în Access) și să aducă de-a lungul pe cont propriu.

1. Hollywood
filme iconice Hollywood.

  1. avem două entități: oameni tbPerson și filme tbFilm;
  2. tbPerson enumerate în Tabelul actori și regizori;
  3. fiecare film poate fi doar un singur director, dar un director poate trage mai multe filme;
  4. fiecare film trage mai mulți actori, iar un actor poate acționa în mai multe filme.

2. Revista cool
profesor de matematică la școală pentru a oferi studenților mărci pentru activitatea lor în clasă. Fiecare lecție se concentrează pe un nou subiect.

3. Operator Mobil
Operatorul de telefonie mobilă menține o bază de date cu informații despre abonații săi.

4. Ecvestru Club
Iubitorii de cai sunt înregistrate pe clase într-o școală de echitație. În funcție de nivelul lor de formare, acestea se pot angaja în pe anumite cai. Caii privat, fiecare are proprietarul de drept.

Rețeaua 5. auto
mașini străine sunt vândute în rețeaua de dealeri.

Cum de a face un tabel în acces


Sarcina 2 Examinați tipurile de câmpuri în Access și instalarea corespunzătoare: