Modelul Matematic Elementar Al Datelor

11

Click here to load reader

description

bd

Transcript of Modelul Matematic Elementar Al Datelor

Proiect Baze de Date - Firma Transporturi

II.Modelul Matematic Elementar Al Datelor

In continuare vom prezenta modelul matematic al datelor, constrangerile ce se imoun asupra datelor precum si algoritmul complet al cheilor (incepem analiza de la doua atribute, fiind considerate intelese cele singulare).

MEDICI

Multimea medicilor de interes din Romania.

IDMed (( NAT(10),total

NumeMed ( char(64),total

Sex ( {M,F}

DataN ( DATA,total

Adresa ( char(255),total

CodMed (( NAT(10),total

Specializare (char(64),total

Telefon (NAT(14) ,total

K_NDAST: NumeMed*DataN*Adresa*Sex*Telefon cheie

Nu putem avea doi sau mai multi medici cu acelasi nume, data nasterii, adresa, sex,telefon.

Algoritm chei:

NumeMed*Sex cheie? NU

Putem avea doi medici cu nume si sex identice.

NumeMed*DataN cheie? NU

Putem avea doi medici cu nume si data de nasterii identice.

NumeMed*Adresa cheie? NU

Putem avea doi medici cu nume si adresa identice.

NumeMed*Telefon cheie? NU

Putem avea doi medici cu nume si telefon identice.

(exp: telefonul cabinetului)

NumeMed*Specializare cheie? NU

Putem avea doi medici cu nume si specializare identice.

Sex*DataN,Sex*Adresa,Sex*Telefon, Sex* Specializare chei? NU

Evident putem avea doi medici de acelasi sex, avand dasa

nasterii/adresa/telefon/ specializare identice.

DataN*Adresa, DataN* Specializare, DataN* Telefon chei? NU

Evident putem avea medici cu data nasterii si adresa/telefon/specializare

identice.

Adresa* Specializare, Adresa* Telefon chei? NU

Evident putem avea medici cu adresa si telefon/specializare

identice.

Specializare* Telefon cheie? NU

Mai multi medici pot avea aceiasi specializare si telefon identic.

NumeMed*Sex*DataN cheie? NU

Evident putem avea mai multi medici cu acelasi nume,sex si data nasterii.

NumeMed *Sex*Adresa, NumeMed *Sex*Specializare,

NumeMed *Sex*Telefon. Chei? NU

Evident putem avea mai multi medici cu acelasi nume,sex si

adresa/specializare/telefon (ex: tata-fiu).

NumeMed *DataN*Adresa, NumeMed *DataN*Specializare,

NumeMed *DataN* Telefon. Chei? NU

Putem avea mai multi medici cu acelasi nume,data nasterii si

adresa/specializare/telefon.

Nume*Adresa*Specializare, Nume*Adresa* Telefon. Chei? NU

Putem avea doi medici cu acelasi nume ,adresa si specializare/ telefon.

Nume* Specializare * Telefon cheie? NU

Putem avea doi medici cu nume specializare si telefon identice.

Sex*DataN*Adresa, Sex*DataN* Specializare, Sex*DataN* Telefon.

Chei? NU

Putem avea mai multi medici cu acelasi sex,data de nastere si

adresa/specializare/telefon.

DataN * Adresa * Specializare , DataN * Adresa * Telefon chei? NU

Putem avea mai multi medici cu data de nastere,adresa si

specializare/telefon identice.

Adresa * Specializare*Telefon cheie? NU

Putem avea mai multi medici cu adresa, specializare si telefon identice.

Nume*Sex*DataN*Adresa , Nume*Sex*DataN*Specializare, Nume*Sex*DataN*Telefon chei? NU

Putem avea mai multi medici cu nume,sex,dada de nastere si

adresa/specializare/telefon identice.

Nume*Sex*Adresa*Specializare, Nume*Sex*Adresa*Telefon chei? NU

Putem avea mai multi medici cu nume,sex,adresa si specializare/telefon

identice.

Nume*Sex* Specializare*Telefon cheie? NU

Putem avea mai multi medici cu nume ,sex,specializare,telefon identice.

Sex*DataN*Adresa*Specializare, Sex*DataN*Adresa*Telefon chei? NU

Putem avea medici cu sex,data de nastere,adresa si specializare/telefon

identice.

DataN * Adresa * Specializare*Telefon cheie? NU

Putem avea medici cu data nasterii,adresa,specializare si telefon identice.

Nume*Sex*DataN*Adresa* Specializare, Nume*Sex*DataN*Adresa* Telefon

Cheie? NU

Putem avea medici cu nume,sex,data nasterii,adresa si specializare/telefon

identice.

Nume*Sex*DataN*Adresa* Specializare*Telefon cheie? DA

Nu putem avea doi sau mai multi medici cu acelasi nume,sex,dada

nasterii,adresa,specializare si telefon.

CABINETE

Multimea cabinetelor de interes din Romania.

IDCab (( NAT(10),total

NumarCabinet (char(64),total

TipCabinet ( char(64),total

Firma ( char(64),total

K_NTF: NumarCabinet*TipCabinet*Firma cheie? DA

Nu putem avea un cabinet cu acelasi

numarcab,tipcab si aceiasi firma.

Algoritm chei:

NumarCabinet* TipCabinet cheie? NU

Putem avea doua cabinete cu acelasi numar si acelasi

tip de cabinet.

NumarCabinet*Firma cheie? NU

Putem avea pt aceiasi firma mai multe cabinete cu

acelasi nr.(exp: spitale diferite)

TipCabinet*Firma cheie? NU

Putem avea pt aceiasi firma mai multe cabinete de

acelasi tip.

NumarCabinet*TipCabinet*Firma cheie? DA

Nu putem avea un cabinet cu acelasi numarcab,tipcab si

aceiasi firma.

FIRME

Multimea firmelor de interes din Romania.

IDFirma (( NAT(10),total

Nume ((char(64),total

Adresa ( char(255),total

Telefon (NAT(14),total

Algoritm chei:

AdresaFirma*TelefonFirma cheie? Nu

Putem avea aceiasi adresa de firma si acelasi telefon pt

mai multe firme. (exp:2 firme facute de o familie)

PROGRAMARI

Multimea programarilor de interes dintr-un spital

IDProg (( NAT(10),total

CodMed ( NAT(10),total

CNPPac ( NAT(13),total

Data (DATA,total

Ora ( DATA,total

Medic: PROGRAMARI(MEDICI,total

Pacient: PROGRAMARI(PACIENTI,total

K_CDO: CodMed*Data*Ora cheie? Da

Nu putem avea medici care sa faca programari cu aceiasi

data si ora

K_DOM: Data*Ora*Medic cheie? DA

Nu putem avea mai multe programari cu data,ora si medic

identice.

Algoritm chei:

Medic cheie? NU

Un medic poate face mai multe programari.

Pacient cheie? NU

Un pacient poate avea mai multe programari.

CodMed*CNPPac, CodMed*Pacient chei? NU

Putem avea pt mai multi medici mai multe programari cu

acelasi pacient/CNPPac.

CodMed*Data , CodMed*Ora chei? NU

Putem avea programari mai multe cu aceiasi zi/ora pt un singur

medic.

CodMedic*Medic cheie? NU

Deoarece putem avea mai multe programari cu acelasi doctor

care are acelasi cod.

CNPPac*Data, CNPPac*Ora, CNPPac*Medic, CNPPac*Pac

chei? NU

Putem avea mai multe programari pt acelasi pacient la aceiasi

data/ora/medic.

Data*Ora cheie? NU

Deoarece in acelasi apital se pot face mai multe programarii cu

data si ora identice.

Data*Medic, Data*Pacient chei? NU

Putem avea mai multe programari cu data si medic/pacient

identice.(exp: un medic/pacient poate avea mai multe

programarii in aceiasi zi)

Ora*Medic,Ora*Pacient chei? NU

Un medic/pacient poate avea programarii la aceiasi ora(alta zi).

Medic*Pacient cheie? NU

Un medic poate fi si pacient.

CodMed*CNPPac*Data, CodMed*CNPPac*Ora, CodMed*CNPPac*Medic, CodMed*CNPPac*Pacient chei? NU

Putem avea programari cu codmedic,cnppacient si

data/ora/medic,pacient identice.

CodMed*Data*Ora cheie? Da

Nu putem avea medici care sa faca programari cu aceiasi data

si ora

CodMed*Data*Medic, CodMed*Data*Pacient chei? NU

Putem avea mai multe programari cu codmed,data si

medic/pacient identice.

CodMed*Ora*Medic,CodMed*Ora*Pacient chei? NU

Putem avea mai multe programari cu codmed,ora si

medic/pacient identice.

CNPPac*Data*Ora, CNPPac*Data*Medic, CNPPac*Data*Pacient

chei? NU

Putem avea mai multe programari cu cnppac,data si

ora/medic/pacient identice.

CNPPac*Medic*Pacient cheie? Nu

Putem avea mai multe programari cu cnppac,medic si pacient

identice.

Data*Ora*Medic cheie? DA

Nu putem avea mai multe programari cu data,ora si medic

identice.

Data*Ora*Pacient cheie? Nu

Putem avea mai multe programari cu data,ora si pacient

identice.

Ora*Medic*Pacient cheie? NU

Putem avea mai multe programari cu ora ,data si pacient

identice.

CNPPac*Data*Ora*Pacient cheie? NU

Putem avea mai multe programari cu cnppac,data,ora,pacient

identice.

PACIENTI

Multimea pacientilor de interes din Romania.

IDPac (( NAT(10),total

Nume (char(64),total

CNPPac (( NAT(13),total

DataN (DATA,total

Adresa ( char(255),total

TelefonPac (NAT(14),total

K_NDAT: Nume*DataN*Adresa*Telefon cheie? Da

Nu putem avea mai multi pacienti cu nume,data de

nastere,adresa si telefon identice

Algoritm chei:

Nume*DataN,Nume*Adresa,Nume*Telefon chei? NU

Putem avea doi pacienti cu nume si adresa/data

nasterii/telefon identice.

DataN*Adresa,DataN*Telefon chei? NU

Putem avea doi pacienti cu data nasterii si adresa/telefon

identice.

Adresa*Telefon cheie? NU

Putem avea mai multi pacienti cu aceiasi adresa si telefon.

Nume*DataN*Adresa*Telefon cheie? Da

Nu putem avea mai multi pacienti cu nume,data de

nastere,adresa si telefon identice

SPECIALIZARI

Multimea specializarilor de interes din medicina.

IdSpec (( NAT(10),total

Specializare((char(64),total

CABINETE_PRACTICA=(MEDICI, CABINETE)

Multimea cabinetelor de practica de interesdin Romania

IDCP (( NAT(10),total

Medic ( char(64),total

Cabinet ( char(64),total

Algoritm chei:

Medic*Cabinet cheie? NU

Putem avea doi medici care practica in acelasi cabinet.

CONSULTATII=(MEDICI, PACIENTI)

Multimea consultatiilor de interes dintr-un spital

IDCons (( NAT(10),total

Medic ( char(64),total

Pacient ( char(64),total

Algoritm chei:

Medic*Pacient cheie? NU

Putem avea mai multi medici care consulta mai multi pacienti.

SPECIALIZARI_MEDICI=(MEDICI, SPECIALIZARI)

Multimea specializarilor de interes al medicilor din

Romania .

IDSM (( NAT(10),total

Specializare (char(64),total

Medic (char(64),total

Algoritm chei:

Specializare*Medic cheie? NU

Putem avea medici cu mai multe specializari.