Documente Academic
Documente Profesional
Documente Cultură
Descriere
Acest proiect are ca si scop crearea unui model pentru a reprezenta cat mai
util datele ce se refera la gestiunea studentilor si activitatilor desfasurate de
acestia intr-o universitate.
Un student este inscris la o facultate (este identificata in mod unic prin
id_facultate, id_universitate, denumire, descriere, adresa, numar_telefon, email,
pagina_web). Facultatea face parte din cadrul unei universitati(identificata in
mod unic prin id_universitate, denumire, descriere, adresa, numar_telefon, email,
pagina_web) si apartine unui domeniu (identificat unic prin id_domeniu,
id_facultate, denumire, descriere).
Studentul (identificat in mod unic prin id_student, id_facultate ,id_grupa,
id_camera, id_promotie, id_forma_invatamant, id_forma_finantare,
id_program_studii, nume, prenume, telefon, email, adresa, cnp) face parte dintr-o
grupa( identificat unic prin id_grupa, nume), apartine unei promotii (identificata
unic prin id_promotie, an, descriere), urmeaza o forma de finantare
(id_forma_finantare, denumire ), o forma de invatamant (id_forma_invatamant,
denumire), dar si un program de studii (id_program_studii, denumire).
Studentul poate locui intr-o camera ( id_camera, id_camin, numar, etaj,
capacitate), iar camera face parte dintr-un camin (id_camin, nume, adresa,
numar_telefon, email).
Studentul poate participa la un curs (id_curs, denumire, descriere), sustinut
de un profesor (id_profesor, nume, prenume, cnp, email, adresa, numar_telefon).
Dupa terminarea cursului, studentul poate sustine un examen (id_examen,
id_sesiune, id_curs, id_curs, data_examen) in urma caruia obtine o nota(id_nota,
id_student, id_examen, valoare). Examenul face parte dintr-o
sesiune( id_sesiune, denumire, data_inceput, data_sfarsit).
Normalizarea
Normalizarea este procesul care presupune descompunerea unui tabel
relational alcatuit dintr-un set de atribute, in doua sau mai multe tabele care vor
forma baza de date, cu scopul de a elimina redundantele (memorarea repetata a
acelorasi date) si anomaliile care pot aparea in operatiile de adaugare, modificare
sau stergere de inregistrari.
Acest proces se fundamenteaza pe urmatoarele concepte: dependente
funtionale(poate fi simpla ~ dependenta functionala totala, dependenta functionala
partiala, dependenta functionala triviala~ sau multipla), dependente multivaloare
si forme normale. E.F. Codd, parintele modelului relational a definit initial trei
forme normale FN1, FN2, FN3. Apoi, forma normala Boyce-Codd, numita astfel
dupa numele celor doi specialisti in domeniu, s-a dorit a fi o forma generalizata a
FN2 si FN3. Aceste patru forme normale sunt asociate dependentelor functionale.
Formele normale 4 si 5 ( FN4 si FN5) sunt asociate in literatura de specialitate cu
numele cercetatorului Fagin si se bazeaza pe dependentele multivaloare.
Schema relationala
Schema relationala reprezinta multimea atributelor corespunzatoare
relatiilor. In cele ce urmeaza am reprezentat schema relationala asociata modelului
descris in acest proiect.
Camera ( id_camera#, id_camin, numar, etaj, capacitate)
Camin (id_camin#, nume, descriere, adresa, numar_telefon, email)
Curs (id_curs#, denumire, descriere)
Domeniu (id_domeniu#, id_facultate, denumire, descriere)
Examen(id_examen#, id_sesiune, id_curs, data_examen, sala_examen)
Facultate (id_facultate#, id_universitate, denumire, descriere, adresa, email,
numar_telefon, pagina_web)
Forma_finantare (id_forma_finantare#, denumire)
Forma_invatamant (id_forma_invatamant#, denumire)
Grupa (id_grupa#, nume)
Nota(id_nota#, id_student, id_examen, valoare)
Participa(id_participa#, id_student, id_curs)
Profesor (id_profesor#, nume, prenume, adresa, email, numar_telefon, CNP)
Program_studii(id_program_studii#, denumire)
Tip
Permite null
Observatii
id_camera
id_camin
numar
int
int
varchar(10)
nu
nu
nu
cheie primara
cheie straina catre tabelul Camin
-
etaj
varchar(10)
da
capacitate
varchar(3)
nu
Nume atribut
Tip
Permite null
Observatii
id_camin
nume
int
varchar(100)
nu
nu
cheie primara
-
descriere
varchar(100)
da
adresa
varchar(150)
nu
numar_telefon
email
varchar(20)
varchar(100)
da
da
Nume atribut
Tip
Permite null
Observatii
id_curs
int
nu
cheie primara
Camin
Curs
denumire
varchar(100)
nu
descriere
varchar(100)
da
Nume atribut
Tip
Permite null
Observatii
id_domeniu
id_facultate
int
int
nu
nu
cheie primara
cheie straina catre tabelul Facultate
denumire
varchar(100)
nu
descriere
varchar(100)
da
Nume atribut
Tip
Permite null
Observatii
id_examen
id_sesiune
int
int
nu
nu
cheie primara
cheie straina catre tabelul Sesiune
id_curs
int
nu
data_examen
varchar(10)
nu
sala_examen
varchar(10)
da
Nume atribut
Tip
Permite null
Observatii
id_facultate
id_universitate
int
int
nu
nu
denumire
varchar(100)
nu
cheie primara
cheie straina catre tabelul
Universitate
-
descriere
varchar(100)
da
adresa
varchar(150)
da
varchar(100)
da
numar_telefon
varchar(20)
nu
pagina_web
varchar(20)
da
Domeniu
Examen
Facultate
Forma_finantare
Nume atribut
Tip
Permite null
Observatii
id_forma_finantar
e
denumire
int
nu
cheie primara
varchar(100)
nu
Forma_invatamant
Nume atribut
Tip
id_forma_invatamant int
denumire
varchar(100)
Permite null
Observatii
nu
nu
cheie primara
-
Grupa
Nume atribut
Tip
Permite null
Observatii
id_grupa
nume
int
varchar(100)
nu
nu
cheie primara
-
Nota
Nume atribut
Tip
Permite null
Observatii
id_nota
id_student
int
int
nu
nu
cheie primara
cheie straina catre tabelul Student
id_examen
int
nu
valoare
varchar(10)
nu
Nume atribut
Tip
Permite null
Observatii
id_participa
id_student
int
int
nu
nu
cheie primara
cheie straina catre tabelul Student
id_curs
int
nu
Participa
Profesor
Nume atribut
Tip
Permite null
Observatii
id_profesor
nume
int
nu
varchar(100) nu
cheie primara
-
prenume
varchar(100) nu
adresa
varchar(150) da
varchar(100) da
numar_telefon
varchar(20)
da
CNP
varchar(20)
nu
Program_studii
Nume atribut
Tip
Permite null
id_program studii
denumire
int
nu
varchar(100) nu
Observatii
cheie primara
-
Promotie
Nume atribut
Tip
Permite null
Observatii
id_promotie
an
int
int
nu
nu
cheie primara
-
descriere
varchar(100) da
Nume atribut
Tip
Observatii
id_sesiune
denumire
int
nu
varchar(100) da
cheie primara
-
data_inceput
varchar(10)
nu
data_sfarsit
varchar(10)
nu
Sesiune
Student
Permite null
Nume atribut
Tip
Permite
null
Observatii
id_student
id_facultate
int
int
nu
nu
id_grupa
int
nu
id_camera
int
da
id_promotie
int
nu
id_forma_invatamant int
nu
id_forma_finantare
int
nu
id_program_studii
int
nu
nume
varchar(20)
nu
cheie primara
cheie straina catre tabelul
Facultate
cheie straina catre tabelul
Grupa
cheie straina catre tabelul
Camera
cheie straina catre tabelul
Promotie
cheie straina catre tabelul
Forma_invatamant
cheie straina catre tabelul
Forma_finantare
cheie straina catre tabelul
Program_studii
-
prenume
varchar(20)
nu
telefon
varchar(20)
da
varchar(20)
da
adresa
varchar(100)
da
CNP
varchar(20)
nu
Tine_curs
Nume atribut
Tip
Permite null
Observatii
id_tine_curs
id_curs
int
int
nu
nu
cheie primara
cheie straina catre tabelul Curs
id_profesor
int
nu
data_curs
varchar(10)
da
sala_curs
varchar(10)
da
Universitate
Nume atribut
Tip
Permite null
Observatii
id_universitate
denumire
int
nu
varchar(100) nu
cheie primara
-
descriere
varchar(100) da
adresa
varchar(150) nu
varchar(100) da
numar_telefon
varchar(20)
nu
pagina_web
varchar(20)
da
Relatii
Student_apartine_promotie
- leaga entitatea Student de entitatea Promotie
- un student trebuie sa apartina unei promotii, o promotie are cel putin un
student, cardinalitate minima 1:1
-un student apartine doar unei promotii, o promotie poate avea mai multi
student, cardinalitate maxima n:1
Student_apartine_grupa
- leaga entitatea Student de entitatea Grupa
- un student trebuie sa apartina unei grupe, o grupa are cel putin un
student, cardinalitate minima 1:1
- un student apartine doar unei grupe, o grupa poate avea mai multi
student, cardinalitate maxima n:1
Student_apartine_forma_invatamant
-leaga entitatea Student de entitatea Forma_invatamant
- un student trebuie sa apartina unei forme de invatamant, o forma de
invatamant poate sa nu fie urmata de niciun student: cardinalitate minima 1:0
- un student apartine doar unei forme de invatamant, o forma de invatamant
poate fi urmata de mai multi studenti, cardinalitate maxima n:1
Student_apartine_forma_finantare
- leaga entitatea Student de entitatea Forma_finantare
- un student trebuie sa apartina unei forme de finantare, o forma de
finantare poate sa nu fie urmata de niciun student, cardinalitate minima 1:0
- un student apartine doar unei forme de finantare, o forma de finantare
poate fi urmata de mai multi studenti, cardinalitate maxima n:1
Student_apartine_facultate
- leaga entitatea Student de entitatea Facultate
- un student trebuie sa apartina unei facultati, o facultate are cel putin un
studenti, cardinalitate minima 1:1
- un student apartine unei facultati, o facultate poate avea mai multi
studenti, cardinalitate maxima n:1
Student_are_camera
- leaga entitatea Student de entitatea Camera
- un student poate sa nu stea in nicio camera, o camera poate sa nu aiba
niciun student, cardinalitate minima 0:0
- un student poate sta doar intr-o camera, o camera poate avea mai multi
studenti, cardinalitate maxima n:1
Camera_apartine_camin
- leaga entitatea Camera de entitatea Camin
- o camera apartine unui camin, un camin are cel putin o camera,
cardinalitate minima 1:1
- o camera apartine unui singur camin, un camin poate avea mai multe
camera, cardinalitate maxima n:1
Facultate_apartine_universitate
-leaga entitatea Facultate de entitatea Universitate
- o facultate apartine unei universitati, o universitate are cel putin o
facultate, cardinalitate minima 1:1
- o facultate apartine unei singure universitati, o univeristate poate avea mai
multe facultati, cardinalitate maxima n:1
Facultate_are_domeniu
-leaga entitatea Facultate de entitatea Domeniu
- o facultate are un domeniu, un domeniu trebuie sa fie apartinut de o
facultate, cardinalitate minima 1:1
-o facultate poate avea mai multe domenii , un domeniu e apartinut de o
facultate, cardinalitate maxima 1:n
Student_participa_curs
-leaga entiatea Student de entitatea Curs
-un student trebuie sa participe la un curs, un curs este urmat de cel putin
un student, cardinalitate minima 1:1
-un student poate participa la mai multe cursuri, un curs poate fi urmat de
mai multi studenti, cardinaliate maxima m:n
-se creeaza tabelul asociativ Participa
Profesor_tine_curs
-leaga entitatea Profesor de entitatea Curs
-un profesor tine cel putin un curs, un curs e tinut de un profesor,
cardinaliate minima 1:1
-un profesor poate tine mai multe cursuri, un curs poate fi tinut de mai multi
porfesori, cardinalitate maxima m:n
-se creeaza tabelul asociativ Tine_curs
Curs_se_da_examen
-leaga entitatea Curs de entitatea Examen
-la un curs se da cel putin un examen, un examen apartine unui curs,
cardinalitate minima 1:1
-la un curs se pot da mai multe examene, un examen poate fi sustinut doar
pentru un singur curs, cardinalitate maxima 1:n
Examen_apartine_sesiune
- leaga entitatea Examen, de entitatea Sesiune
- un examen apartine unei sesiuni, intr- o sesiune se da cel putin un
examen, cardinalitate minima 1:1
- un examen poate fi dat decat intr-o sesiune, intr o sesiune se pot da mai
multe examene , cardinalitate maxima n:1
Examen_evaluat_cu_nota
- leaga entitatea Examen, de entitatea Nota
- un examen trebuie evaluat cu o nota, o nota apartine cel putin unui
examen, cardinalitate minima 1:1
- la un examen se pot lua mai multe note, nota nu poate fi data decat la un
examen anume, cardinalitate maxima 1:n
Student_ia_nota
- leaga entitatea Student de entitatea Nota
- un student poate sa nu aiba nicio nota, o nota trebuie sa apartina unui
student, cardinalitate minima 1:0
-un student poate lua mai multe note, o nota apartine unui singur student,
cardinalitate maxima 1:n
sala_examen VARCHAR(10),
PRIMARY KEY (id_examen),
CONSTRAINT fk_ExamenSes FOREIGN KEY (id_sesiune)
REFERENCES sesiune(id_sesiune),
CONSTRAINT fk_ExamenCurs FOREIGN KEY (id_curs)
REFERENCES curs(id_curs));
(
REFERENCES student(id_student),
CONSTRAINT fk_NotaExm FOREIGN KEY (id_examen)
REFERENCES examen(id_examen));