mercoledì 25 novembre 2009

COMPITI

Ecco i copiti da lei ass.
perfavore se può controlli il 9... che molto probabilmente è sbagliato...





ESERCIZIO 13 pag233


Materiali (Codice, Descrizione, Fornitore, Prezzo, IndirizzoFornitore, Quantità, PosizioneInMagazzino, Acciaio, NomeAcciaio, ResistenzaAcciaio, NomeFornitore)


Dipendenze

Acciaio -->(NomeAcciaio, ResistenzaAcciaio) //2rN

NomeAcciaio --> ResistenzaAcciaio //3rN

Acciaio --> ResistenzaAcciaio (transitiva) //3rN


Fornitore
--> (IndirizzoFornitore, NomeFornitore) //2rN




Tabelle


Acciaio(Acciaio, NomeAcciaio) //2rN e 3fN

TipoAcciao(NomeAcciaio, ResistenzaAcciaio) //3fN

Fornitore (Fornitore, IndirizzoFornitore, NomeFornitore) //2rN

Materiali(Codice, Descrizione, Prezzo, IndirizzoFornitore,

Quantità, PosizioneInMagazzino, Acciaio, Fornitore) //2rN






ESERCIZIO 12 pag233


Scrivo la tabella di base:

Libro (CodiceDelLibro, NomeAutore, TitoloLibro, NomeEditore, IndirizzoEditore, Prezzo, AnnoEdizione)

Determino la chiave primaria:

Libro (CodiceDelLibro, NomeAutore, TitoloLibro, NomeEditore, IndirizzoEditore, Prezzo, AnnoEdizione)

Normalizzazione:


1fN:

Non vi sono dati ripetuti.

2fN:

Trovo dipendenze:

IndirizzoEditore --> nomeEditore

//siccome l’indirizzo può avere solo un editore, quindi solo quel nome, ed l’indirizzo è un dato univoco, mentre possono esistere editori con nomi uguali

3fN:

non ci sono dipendenze transitive


tabelle finali


Editore(IndirizzoEditore, nomeEditore)

Libro (CodiceDelLibro, NomeAutore, TitoloLibro, Prezzo, Anno Edizione, IndirizzoEditore)





Esercizio 11 pag233


//////////////

Tabella 1:


Esami1(Corso, Matricola, Data, Voto, NomeCorso)


Dipendenze:


(Matricola, Corso) --> Voto

Corso --> NomeCorso


Tabelle:


Corso(Corso, NomeCorso)

Matricola(Matricola, Corso, Voto)

Esami1(Corso, Matricola, Data)

///////////////

Tabella 2:


Esami2(Corso, Matricola, Data, VotoInCifre, VotoInLettere)

Dipendenze:


( Matricola, Corso )-->(VotoInCifre, VotoInLettere)


Proprietà transitiva:


VotoInCifre --> VotoInLettere

VotoInLettere --> VotoInCifre

( Matricola, Corso ) --> VotoInLettere

( Matricola, Corso ) --> VotoInCifre

Per togliere la 3° forma normale, siccome VotoInCifre e VotoInLettere possono essere sia determinanti che determinate, scelgo come determinante VotoInCifre

Tebelle :


Matricola(Matricola, Corso, VotoInCifre)

VotoCifre(VotoInCifre, VotoInLettere)

Esami2(Corso, Matricola, Data)






ESERCIZIO 10 pag233



Anagrafica (Nome, Cognome, Matricola, Nascita, Indirizzo, CodiceDipartimento, NomeDipartimento, IndirizzoDipartimento, Stipendio)


Dipendenze:



CodiceDipartimento --> (NomeDipartimento, IndirizzoDipartimento)


Tabelle:



Dipartimento(codiceDipartimento, NomeDipartimento, IndirizzoDipartimento)

Anagrafica (Matricola , Nome, Cognome, Nascita, Indirizzo, CodiceDipartimento)




ESERCIZIO 9 pag233



Tabella1(NomeStudente, DataDiNascitaStudente, indirizzoStudente, numeroTelefonicoStudente, viaStudente, numeroCivicoStudente, cittaResidenzaStudente, cittaDiNascitaStudente, VotoMateria1, VotoMateria2, VotoMateria3, VotoMateria4, VotoMateria5, VotoMateria6, VotoMateria7, VotoMateria8, VotoMateria9)


Tabella:


Tabella1(NomeStudente, DataDiNascitaStudente, indirizzoStudente, numeroTelefonicoStudente, viaStudente, numeroCivicoStudente, cittaResidenzaStudente, cittaDiNascitaStudente, VotoMateria1, VotoMateria2, VotoMateria3, VotoMateria4, VotoMateria5, VotoMateria6, VotoMateria7, VotoMateria8, VotoMateria9)

1,2 Normalizazione


Studente(NomeStudente, DataDiNascitaStudente, indirizzoStudente, numeroTelefonicoStudente, viaStudente, numeroCivicoStudente, cittaResidenzaStudente, cittaDiNascitaStudente, Materia_id )

Materia(id, VotoMateria1, VotoMateria2, VotoMateria3, VotoMateria4, VotoMateria5, VotoMateria6, VotoMateria7, VotoMateria8, VotoMateria9)

Oppure:


Tabella:

abbiamo 2 entità materia e voti: quindi 2 tabelle

associate Molti a Molti

Studente(NomeStudente, DataDiNascitaStudente, indirizzoStudente, numeroTelefonicoStudente, viaStudente, numeroCivicoStudente, cittaResidenzaStudente, cittaDiNascitaStudente)


Materia(nomeMateria,votoMateria)




Associazioni:


Valutato(nomeMateria, NomeStudente, DataDiNascitaStudente, indirizzoStudente, numeroCivicoStudente )



Studente(NomeStudente, DataDiNascitaStudente, indirizzoStudente, numeroTelefonicoStudente, viaStudente, numeroCivicoStudente, cittaResidenzaStudente, cittaDiNascitaStudente)



Materia(nomeMateria,votoMateria)

sabato 21 novembre 2009

ENGINE 3D openGL

da ormai un paio di settimane sto lavorando ad un progetto, un ENGINE3D!!

poi spiegherò cosa è un engine 3D ma per il momento... posto solo un immagine


E' scritto in c++ ed usa le librerie openGL e win32!

domenica 15 novembre 2009

concetti di base r. d.b. versione immagine

Per un aspetto migliore ho preferito stampare la mia versione word:

concetti di base per la realizzazione di un data base:

----------------------------------------------------------------------------------------------
Tabella è definita RELAZIONALE IN FOMRA 1nF (prima forma normale/lizzata)
quando rispetta le seguenti caratteristiche:

1° Le righe devono contenere le istanze dell’entità
2° Le colonne devono contenere gli attributi dell’entità
3° Non è importante l’orine delle righe
4° Non è importante l’ordine delle colonne
5° Tutte le celle devono contenere dati del medesimo tipo (omogenei)
6° Non possono esistere due righe uguali
7° Ogni cella deve contenere un solo valore
8° Ogni colonna deve avere un nome univoco

----------------------------------------------------------------------------------------------
Le regole di derivazione

1) la prima regola di derivazione dice che:

ad ogni entità corrisponde una tabella
ad ogni riga corrisponde un istanza dell'entità
ad ogni colonna corrisponde un attributo dell'entità
la chiave primaria è una o più colonne

2) la seconda regola di derivazione dice:

la relazione 1 a M (uno a molti) si risolve mettendo la chiave esterna,
cioè la chiave primaria della tabella che corrisponde all'1,
nella tabella appartenente al ruolo di molti.

3) la terza regola di derivazione dice che:

nella associazione M a N (molti a molti)
si ha una tabella associativa formata da chiavi esterne delle entità(/tabelle) associate,
che insieme formano la sua chiave primaria della tabella associativa.

4) la quarta regola di derivazione dice:

la relazione tra un entità forte ed un entità debole si risolve mettendo la chiave esterna,
cioè la chiave primaria della tabella/entità forte,
nella tabella/entità debole, ed insieme della chiave debole di quest’ultima entità
formano la chiave primaria della tabella dell'entità debole.

----------------------------------------------------------------------------------------------
In più:

CHIAVE ESTERNA-->è il dato che ci permette di risalire l'istanza di un altra tabella a cui è associata

Casi speciali:
Nella associazione 1 a 1, la chiave esterna va messa in una tabella, a libera scelta
Nella associazione 1(non tutti) a 1(tutti) la chiave esterna va su quella che ha tutte le istanza associate
Nella associazione 1(tutti) a 1(tutti) la chiave esterna va messa in una tabella, a libera scelta


----------------------------------------------------------------------------------------------
La Normalizzazione in breve:
Dopo aver trasformato il proprio schema concettuale in un database vero e proprio utilizzando le regole di derivazione, si passa ad normalizzare questo database:
Per normalizzazione si intende: Scovare le dipendenze funzionali, e trasitive, tra i vari attributi, e creare per esse delle tabelle separate.

----------------------------------------------------------------------------------------------
DIPENDENZA FUNZIONALE:
quando una variabile/attributo, dipende da un'altro attributo, e ne può determinare il valore.
(Tra gli attributi quindi vie è qualche tipo di relazione)

nomeOggetto-->coloreOggetto

il determinante è l’attributo che si trova a sinistra.
Si possono avare più determinanti, e più valori determinati:

(nomePersona; CognomePersona)-->codiceFiscale
nome Persona, cognome Persona determinano il codice Fiscale
(ed il codiceFiscale ha una dipendenza funzionale con nomePersona, cognome Persona)

nomeOggetto-->(coloreOggetto; formaOggetto)
nomeOggetto determina coloreOggetto e formaOggetto
(ed il coloreOggetto e formaOggetto hanno una dipendenza funzionale con nomeOggetto)

----------------------------------------------------------------------------------------------
DIPENDENZA TRANSITIVA: quando una variabile determina un'altra ed quando questultima ne determina un'altra ancora (e cosi via)

a-->b
b ha una dipendenza funzionale con a

b-->c
c ha una dipendenza funzionale con b

a-->b-->c
c ha una dipendenza funzionale con b che a sua volta ha una dipendenza funzionale con a
----------------------------------------------------------------------------------------------




----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
Esempio:


Ipotizziamo che ci sia solo un autore per disco (per semplificare)

----------------------------------------------------------------------------------------------
(prima parte) (prima regola)

Casadiscografica( nome ; amministratore)
Discho( nome; nomeAutore; cognomeAutore; numeroTracce)

----------------------------------------------------------------------------------------------
Poi: (derivazione seconda parte) (seconda regola)

Casadiscografica( nome; amministratore)
Discho( nome; nomeAutore; cognomeAutore; numeroTracce; nome_Casadiscografica)

----------------------------------------------------------------------------------------------
Normalizzata:

C’è una relazione funzionale:
nomeAutore-->cognomeAutore

per essa creiamo una tabella a parte:
Autore( id; nomeAutore, cognomeAutore)

n.b. il determinante (nomeAutore), o anche cognomeAutore, o la chiave composta tra i due, non è consigliata come chiave primari siccome ci potrebbero essere casi di omonimia.

E la relazioniamo con la tabella Discho
(di fatto abbiamo una sorta di relazione 1 a 1, totale da entrambe le tabelle/entità
(anche se in realtà non è proprio cosi, però ricordiamo che inizialmente abbiamo ipotizzato un solo autore per disco ))

Risultato:
Casadiscografica( nome; amministratore)
Autore( id; nomeAutore, cognomeAutore)
Discho( nome; numeroTracce; id_Autore; nome_Casadiscografica)
----------------------------------------------------------------------------------------------

mercoledì 21 ottobre 2009

COMPITI

Ecco l'esercizi datici da lei prof .: