Notiunea de cheie primara Relaţionarea tabelelor Proiectarea unei baze de date.    Cheia primara identifică în mod unic o înregistrare a tabelei. Poate fi : cheie.

Download Report

Transcript Notiunea de cheie primara Relaţionarea tabelelor Proiectarea unei baze de date.    Cheia primara identifică în mod unic o înregistrare a tabelei. Poate fi : cheie.

Notiunea de cheie primara
Relaţionarea tabelelor
Proiectarea unei baze de date.



Cheia primara identifică în mod unic o
înregistrare a tabelei.
Poate fi :
cheie simplă -formată
dintr-o singură coloană
cheie compusă (multiplă)formată din mai multe coloane
Într-un tabel pot exista mai multe
coloane (sau set de coloane) ce pot
conţine valori unice. Aceste coloane sunt
chei candidat
Stabilirea cheii primare se poate face
prin douã modalitãti, dupã cum
urmeazã:
1. se selecteazã câmpul cod_cl;
2. a) se selecteazã butonul cheie din
bara de instrumente Database;
b) se activeazã opþiunea Primary Key
din meniul Edit.
1. Se selectează câmpul
2. Selectaţi fie simbolul
iconic - cheie,
din trusa standard, fie
opţiunea
Primary Key din meniul
Edit



Între două tabele dintr-o
bază de date există o
relaţie atunci când unul sau
mai multe câmpuri cheie
dintr-un tabel se potrivesc
cu unul sau mai multe
câmpuri cheie din celălalt
tabel.
Tabelul părinte
(Departments) este tabelul
care conţine cheia
principală iar tabelele copil
sunt tabelele corelate
(Employees)
Pentru a implementa
relaţiile dintre tabele se
folosesc cheile externe
Cheie externa
Cheie principala

1. Relaţia One to One (unu la unu) - fiecărei înregistrări
din tabelul părinte îi corespunde exact o singură
înregistrare din tabelul copil.

2. Relaţia One to Many (unu la mai mulţi) - fiecărei
înregistrări din tabelul părinte îi corespunde mai mult
de o înregistrare în tabelul copil.

3. Relaţia Many to Many (mai mulţi la mai mulţi) –
fiecărei înregistrări din tabelul părinte îi corespunde
mai mult de o înregistrare în tabelul copil iar fiecărei
înregistrări din tabelul copil îi poate corespunde mai
mult de o înregistrare în tabelul părinte.
1 ANALIZATI OBIECTIVUl URMARIT
 Ce informaţii veţi stoca?
 Cine le va folosi?
 De ce fel de ieşiri aveţi nevoie?
 Atunci când proiectaţi o bază de date trebuie să urmaţi
o serie de paşi:
2. Determinaţi scopul bazei de date.
Acest lucru vă ajută să stabiliţi ce fel
de date vreţi să stocaţi în baza de date
pe care o veţi crea (ex. gestiunea
personalului, evidenţa stocurilor).
3. Determinaţi tabelele de care aveţi nevoie.
Odată ce aveţi un scop clar stabilit,puteţi împărţi
informaţiile în subiecte separate, ca se exemplu
„Angajaţi”, „Clienţi”, sau „Comenzi”. Fiecare
subiect va fi un tabel în baza de date. Numele
tabelului trebuie să fie sugestiv pentru
informaţiile pe care le va conţine.
4. Determinaţi câmpurile de care o să
aveţi nevoie în tabele.
 Hotărâţi
ce fel de informaţii vor fi stocate
în cadrul tabelelor.
 Fiecare categorie de informaţii dintr-un
tabel poartă denumirea de câmp (field) şi
fiecare câmp va fi afişat pe o coloană în
tabel.
 De exemplu, un tabel cu denumirea
Angajaţi poate să aibă următoarele
câmpuri: Nume, Prenume, Data angajării,
Salar_brut, Impozit.
4. Determinaţi relaţiile dintre tabele.
Analizaţi cu atenţie tabelele şi stabiliţi
legăturile care există între datele conţinute
în tabele diferite. În cazul în care nu puteţi
stabili relaţii între tabele, introduceţi tabele
sau câmpuri de legătură.
5. Îmbunătăţirea proiectului.
 Analizaţi proiectul pentru a găsi eventuale erori.
 Creaţi tabelele şi adăugaţi câteva înregistrări de probă.
Vedeţi dacă puteţi obţine din tabele rezultatele de care
aveţi nevoie, faceţi modificări dacă este nevoie.
 Pentru a parcurge etapele de mai sus puteţi folosi o tablă
de scris sau hârtie şi creion pentru că veţi face multe
modificări până veţi ajunge la o formă de proiectare
acceptabilă.
 Experimentaţi modelul proiectat, introduceţi date de test,
creaţi formulare şi rapoarte de probă. Asiguraţi-vă că
datele sunt stocate în mod corespunzător în baza de date
şi că puteţi obţine toate informaţiile şi situaţiile finale
dorite. Este mult mai dificil să modificaţi
tabelele,formularele, rapoartele după ce au fost introduse
date reale.
Cititi cu atentie enuntul de mai jos!
Este rezumatul unui interviu solicitat unui client care doreste
sa ii proiectati o baza de date pentru a-si usura munca.
“Sunt directorul unei firme care furnizeaza diverse cursuri de
instruire in domeniul IT. Noi furnizam mai multe cursuri,
fiecare are un cod, un nume si o durata in ore. Java
Programming(ID=1), cu durata de 1 an si Programarea in C
(ID=2) cu durata de doi ani sunt doua dintre cele mai
populare cursuri. Un instructor poate preda mai multe
cursuri. Maria Dinu si Mihai Ionescu sunt doi dintre cei
mai buni profesori. Pastram pentru fiecare instructor
numele si numarul de telefon. Un curs este sustinut doar
de un singur instructor. Noi creem cursul iar apoi angajam
instructorul. Studentii pot participa la mai multe cursuri
in acelasi timp, si multi dintre ei o si fac. Dana Tudor de
la firma CompNet a participat pana acum la toate cursurile
noastre! Pentru fiecare student, noi retinem numele si
numarul de telefon. Unii dintre studenti sau instructori,
nu doresc insa sa ne dea numerele lor de telefon.”
 Care
credeti ca este scopul bazei de date?
Raspuns:
Gestiunea personalului ( instructori),a
clientiilor(studenti) si a serviciilor oferite de
firma(cursuri)
 Determinati
 Tabelele
tabelele de care aveti nevoie!
sunt:
Instructori
Cursuri
Studenti
 Determinati
campurile fiecarui tabel
Raspuns:
 Tabela Instructori va avea campurile
Id_inst, Nume si Numar de telefon
 Tabela Cursuri va avea campurile Id_curs,
Nume, Durata
 Tabela Studenti va avea campurile Id_st,
Nume si Numar de telefon
 Stabiliti
intre ce tabele exista relatii
 Raspuns:
 Intre
tabelul Cursuri si Instructori ( Un
instructor poate tine mai multe cursuri iar
un curs poate fi tinut de un singur
instructor)
 Intra tabela Cursuri si Studenti (Un
student poate participa la mai multe
cursuri iar la un curs pot participa mai
multi studenti)
Creati tabelele si adaugati cateva inregistrari de proba
INSTRUCTORI
ID_inst
Nume
1
Maria Dinu
2
Mihai Ionescu
Numar_telefon
CURSURI
STUDENTI
Id_st
Nume
10
Dana
Tudor
Numar_telefon
ID_curs
NUME
DURATA
(ANI)
1
Java programming
1
2
Programarea in C
2
 Reduceti relatia de tip M-M dintre tabelele Cursuri si Studenti la 2
relatii de tip 1-M
 Raspuns: se insereaza o noua tabela (tabela de intersectie) numita
CursuriStudenti
Studenti
Id_st
Nume
10
Dana Tudor
Cursuri
Numar_telefon
ID_curs
NUME
DURATA
(ANI)
1
Java
programming
1
2
Programarea
in C
2
CursuriStudenti
Id_cs
Id_st
ID_curs
1
10
1
2
10
2
Rezultatul implementarii cu ajutorul Access:
 Se
poate crea un raport cu studentii care
frecventeaza cursurile tinute de doamna
Maria Dinu?
 Raspuns:
 DA!
Din tabela Cursuri se pot extrage cursurile
tinute de d-na Dinu, iar apoi, din tabela
Studenti, se vor extrage studentii care
participa la aceste cursuri
La biroul de internari a unui spital se retin urmatoarele date:
 Date despre pacienti, date despre medici si o evidenta a
internarilor facute.
 Despre un pacient trebuie sa se cunosca: cnp, nume,
prenume, data nastere, adresa, ocupatie, stare
civila(casatori/necasatorit).
 Despre un medic trebuie sa se stie: numarul lui de
identificare in spital, nume, prenume, specializarea, nr
telefon.
 Cand se face internarea, sunt obligatoriu retinute data
internarii , diagnosticul si salonul pacientului!
 Stiind ca un medic poate trata mai multi pacienti si ca un
pacient nu poate fi internat decat o data sa se proiecteze
o baza de date pentru biroul internari din care sa extrageti
urmatoarele rapoarte:
- Pacientii internati in ziua x?
- Pacientii unui anumit medic?
- Afisati toti pacientii cu diagnosticul “gripa”
- Afisati toti pacientii din salonul 2