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.
|