Istituto Tecnico Industriale "Enrico Fermi"

Help On Chat

[Ritorna all'elenco sessioni]

Chat del 12 Maggio 2019 dalle 19:44:38 alle 20:09:55

Stefano Salvi
Nessuno di 4ITel?
Andrea POTITO
Io si, buonasera prof
Stefano Salvi
Solo soletto? Buona sera!
Andrea POTITO
per il momento sì, credo che arriveranno
Stefano Salvi
Mah... Alle otto finamo... Domande?
Andrea POTITO
L\'altra volta in verifica nell\'esercizio in cui c\'erano i vincoli relazionali che non avevo scritto, lei mi scrisse "cascade? deny? null?", cosa intedeva?
Stefano Salvi
La "plolicy" in caso di cancellazione. Quello che scrivi dopo il "references tabella (campi)"
Andrea POTITO
ma viene applicato su tutta l\'entità o su un singolo attributo?
Stefano Salvi
Viene applicato alla singola relazione.
Paolo BIGLIERI
Sera, quando devo indicare la chiave esterna di una tabella in una relazione faccio una didascalia in fianco alle tabelle dove indico qual è?
Stefano Salvi
Per esempio, se cancelli un elemento che sta dalla parte dell\'1\' in un \'1 a n\' e la policy è cascade, allora vengono anche cancellati insieme tutti i record dalla parte dell\' \'n\' che fanno riferimento a quel record.
Andrea POTITO
Ah ok ho capito, grazie
Stefano Salvi
Biglieri: dipende da cosa stai scrivendo. Se stai facendo un diagramma E/R, alora si, sotto la freccia magari fai una didascalia. Se stai facendo SQL, allora hai muna sintassi da usare.
Andrea POTITO
e la sintassi sarebbe "foreign key"?
Riccardo MIRANDOLA
Buona sera prof
Stefano Salvi
Dipende come la metti. Se la metti sulla riga della chiave esterna è solo references. Se è in fondo alla definizione della tabella, è foreign key <nome attributo> references <nome tabella>(<nome attributo>) dove se la chiave è composita il "<nome attributo>" è u\'elenco di nomi.
Riccardo MIRANDOLA
Una domanda. Una relazione in prima forma normale deve anche avere gli attributi non ripetuti nelle varie tuple?
Stefano Salvi
Mirandola: di fatto si, nel momento in cui deve avere una chiave primaria che per definizione è "non ripetiuta".
Lorenzo PIRRI
Buona sera prof scusi il ritardo io ho una domanda...nella scorsa chat lei come esempio di funzioni di SQL ha messo cascade, deny e null ma con deny intende restrict?
Con restric intendo che non posso cancellare da padre se ho dei figli
Stefano Salvi
Pirri: si. la parola giusta è "restrict" (non me le ricordo mai e le cerco sempre nell\'help.. ;->
Riccardo MIRANDOLA
Ottimo. Un altra cosa, nella seconda f. N tutti gli attributi non chiave devono dipendere dall intera chiave o solo quelli che dipendono da parte di essa?
Stefano Salvi
Pirri: più precisamente, che la cancellazione FALLISCE (da errore) se il padre ha dei figli.
Lorenzo PIRRI
Ok grazie..ho un\'altra domanda...quale sarebbe la spiegazione teorica di query?
Stefano Salvi
Mirandola: se tutti devono dipendere dall\'ìintera chiave, non ci possono essere attributi che dipendano solo da parte della chiave.
Riccardo MIRANDOLA
E per quanto riguarda gli attributi che dipendono da altri attributi non chiave?
Stefano Salvi
Pirri: non capisco bene cos aintendi. "Query" è genericamente una istruzione SQL (spesso si parla di "query" anche per la ceazione di tabella o per la midifica di un dato). In modo più corretto "query" è una "richiesta" di dati presenti nel DB.
Mirandola: di quelli se ne occupa la terza forma normael.
Andrea POTITO
per cambiare un dato in una tabella con il QL devo usare update, ma qual è la forma scritta giusta?
Riccardo MIRANDOLA
Ok ho capito. Un ultima cosa, non ho capito bene il vincolo "foreign key" in sql, dove andrebbe inserito? E quali campi devo inserirci?
Stefano Salvi
Potito: In realtà per CAMBIARE jun dato presente nel Database (per esempio modificare un prezzo di un articolo) non uso il QL ma il DML (Data Maniupulation Language). In particolare scriverai UPDATE tabella SET campo=valore WHERE <codizione che indica quali righe cambiare>
Andrea POTITO
ok, grazie mille
cosa si intende con opzionalità nelle relazioni?
Stefano Salvi
Mirandola: se in una tabella hai una chiave esterna, in fondo alla definizione della tabella, prima della tonda di chiusura, scrivi "FOREIGN KEY campo_chiave_esterna REFERENCES tabella (campo_chiave_primaria_di_tabella)" dove le parole in maiuscolo sono parole chiave e quelle in minuscolo vanno sostiutite con i nomei giusti
Riccardo MIRANDOLA
Ottimo. Grazie mille prof, buona serata
Stefano Salvi
Potito: che la chiave esterna può essere "null" se un "figlio" non ha "padre" (naturalmente per le 1 a n).
Andrea POTITO
sia nelle relazioni 1-1 che 1-N deve per forza esserci una chiave esterna=
Lorenzo PIRRI
Ah prof mi scusi se ho una chiave esterna che non è primaria posso adottargli il vincolo di nullità?
Andrea POTITO
?
Stefano Salvi
Potito: nelle relazioni 1-1 e 1-n ho sempre una chiave esterna in una delle due tabelle. Nelle n-n ho una tbella separata, composta da chiavi esterne.
Andrea POTITO
grazie
Stefano Salvi
Pirri: non sempre (anche nememno molto spesso) una chiave esterna in una tabella è parte della chiave primaria. La chiave esterna in una tabella "punta" SEMPRE alla chiavi primaria dell\'altra tabella.
Lorenzo PIRRI
Ahn ho capito grazie
Stefano Salvi
Cena?
Andrea POTITO
va bene grazie prof, buona serata
Lorenzo PIRRI
Io non ho più domande quindi grazie mille e buona serata
Stefano Salvi
Allora, buona cena, buon riposo ed in bocca al lupo.

[Ritorna all'elenco sessioni]