Lezione 3. Il modello relazionale
|
|
- Amedeo Cavaliere
- 5 anni fa
- Visualizzazioni
Transcript
1 Lezione 3 Il modello relazionale Pag.1
2 Perché studiare il Modello Relazionale? E un modello dati vicino alla logica di funzionamento del DBMS È il modello più largamente usato Produttori: IBM, Microsoft, Oracle, Sybase, etc. Sistemi proprietari nei modelli più vecchi ad esempio IMS dell IBM vs. standardizzazione: Data Definition Language (DDL) standard all interno del SQL (Structured Query Language) Pag.2
3 Basi di dati relazionali: definizioni Base di dati relazionale: basato sul concetto di relazione Relazione: consiste di due parti: schema: specifica il nome della relazione, più il nome e il tipo (appartenenza a un dominio) di ciascuna colonna ad esempio: Studenti(sid:string, nome:string, login:string, età:integer, media:real) istanza: una tabella, con righe (tuple o record) e colonne. #tuple = cardinalità, #campi = grado/arità, le tuple devono essere distinte (non esisteranno due tuple uguali) Pag.3
4 Esempio di istanza della relazione Studenti sid nome login età Media Mauro 19 19, Lucilla 21 27, Marcello 18 26,3 Cardinalità = 3, grado = 5, tutte le righe sono distinte Devono essere anche distinte tutte le colonne nell istanza di una relazione? Pag.4
5 Basi di dati relazionali: definizioni (2) Base di dati relazionale = collezione di relazioni (schema + istanza) con nomi di relazione distinti Schema di base di dati relazione = collezione degli schemi delle relazioni partecipanti Istanza di base di dati = insieme di istanze di relazione Pag.5
6 Vincoli di integrità (VI) VI: condizione che deve essere vera per qualunque istanza della base di dati; ad esempio vincoli di dominio I VI sono specificati quando si definisce lo schema I VI sono controllati quando si modificano le relazioni Una istanza legale di una relazione è una istanza che soddisfa tutti i VI specificati I DBMS non dovrebbero permettere istanze illegali Se il DBMS controlla i VI, i dati memorizzati sono più fedeli al significato nel mondo reale Si evitano anche gli errori di inserimento! Pag.6
7 Vincoli di chiave primaria Un insieme di campi è una chiave per una relazione se: due tuple distinte non possono avere gli stessi valori in tutti i campi chiave, e ciò non è vero per qualunque sottoinsieme della chiave La condizione 2 è falsa? Si ha una superchiave Se c è più di una chiave per una relazione (chiavi candidate), il DBA sceglie una delle chiavi come chiave primaria. Ad esempio, sid è una chiave per Studenti (che si può dire di nome?). L insieme {sid, login} è una superchiave Pag.7
8 Chiavi primarie e candidate Sono possibili molte chiavi candidate, una delle quali viene scelta come chiave primaria La chiave primaria è intuitivamente la chiave di accesso alla tabella (potrò far riferimento altrove alle informazioni della tabella facendo riferimento solo alla chiave) Usato a sproposito, un VI può impedire la memorizzazione di istanze della base di dati che si presentano nella pratica! Esempio: Per un dato studente e un dato corso, c è una singola classe Gli studenti possono seguire solo un corso, e ricevere un singolo voto per quel corso; inoltre, nessuna coppia di studenti in un corso riceve lo stesso voto Pag.8
9 Il modello relazionale e SQL Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce vincoli di integrità (VI) Consente di definire nuovi domini Linguaggio di aggiornamento Inserisce/cancella/modifica (aggiorna) tuple Interagisce strettamente con i VI Controllo di accesso: Può garantire/revocare il diritto di accesso e di manipolazione delle tabelle (relazioni/viste) Pag.9
10 Relazioni, chiavi primarie, chiavi candidate in SQL Il costrutto SQL per creare una relazione è CREATE TABLE Per ciascuna colonna dello schema deve essere indicato: Il nome e il dominio E possibile per default che campi di un istanza possano essere non valorizzati (valore null), NOT NULL inibisce questa possibilità Chiave di una relazione: insieme minimo di campi tale che in ogni istanza legale due tuple distinte siano diverse nei valori dei campi chiave. Eventualmente molte chiavi candidate (specificate usando UNIQUE), una delle quali viene scelta come chiave primaria (costrutto PRIMARY KEY) I campi della chiave primaria non possono contenere valori null CREATE TABLE Studenti (sid INTEGER, nome CHAR(20), login CHAR(20), eta INTEGER, media REAL) CREATE TABLE Studenti (sid INTEGER, nome CHAR(20) NOT NULL, login CHAR(20) UNIQUE, eta INTEGER, media REAL, PRIMARY KEY (sid)) Pag.10
11 Distruzione e modifica di relazioni DROP TABLE Studenti Distrugge la relazione Studenti. Le informazioni sullo schema e le tuple vengono cancellate ALTER TABLE Studenti ADD COLUMN muppet_preferito:char(20) Lo schema di Studente viene modificato con l aggiunta di un nuovo campo; ogni tupla nell istanza corrente viene estesa con un valore null nel nuovo campo. Pag.11
12 Inserimento di nuovi record Inserimento di un singolo record: INSERT INTO Velisti (vid, vnome, esperienza, età) VALUES (12, Emanuele, 5, 21.0) Selezione di record: SELECT * FROM Velisti V WHERE esperienza >= 5 SELECT V.vid, V.nome FROM Velisti V WHERE V.eta < 18 Inserimento di più record: INSERT INTO Velisti (vid, vnome, esperienza, età) SELECT S.vid, S.nome, null, S.età FROM Studenti S WHERE S.età >= 18 Un comando INSERT che causa una violazione di un VI viene rifiutato Pag.12
13 Cancellazione di record Si possono cancellare tutte le tuple che soddifano una condizione in una clausola WHERE: DELETE FROM Velisti V WHEREV.esperienza IS NULL L esempio cancella tutti i velisti inesperti Pag.13
14 Modifica di record Per modificare i campi di tuple esistenti si usa il comando UPDATE La clausola WHERE viene applicata per prima e determina i campi da modificare. La clausola SET determina i nuovi valori Se il campo da modificare è usato anche per determinare il nuovo valore, il valore usato nella WHERE è il vecchio. UPDATE Velisti V SET V.esperienza = V.esperienza 1 WHERE V.esperienza < 15 vid vnome esperienza età 22 dustin lubber rusty rusty UPDATE Velisti V SET V.esperienza = V.esperienza 1 WHERE V.esperienza >= 8 vid vnome esperienza età 22 dustin lubber rusty rusty Pag.14
15 Chiavi esterne, integrità referenziale Chiave esterna: insieme di campi in una relazione che viene usato per riferirsi a una tupla in un altra relazione (deve corrispondere alla chiave primaria della seconda relazione). Simile a un puntatore logico Se tutti i vincoli di chiave esterna sono garantiti, si raggiunge l integrità referenziale, cioè nessuna referenza irrisolta Pag.15
16 Chiavi esterne (esempio) Iscrizioni (relazione referenziante) cid A112 B213 C123 Studid Voto cid Titolo C123 Marketing con la Pimpa B213 Fondamenti di sushi Z921 Aramaico for dummies A112 Basi di dati Corsi (relazione referenziata) sid nome Media Mauro 19, Matilde Null Lucilla 27, Michele 21, Marcello 26,3 Studenti (relazione referenziata) Pag.16
17 Chiavi esterne in SQL Chiave esterna: insieme di campi in una relazione R che viene usato per far riferimento a tuple in un altra relazione S. I campi dovrebbero essere una chiave (idealmente primaria) di S Nelle tuple di R, i valori dei campi devono essere uguali ai valori di qualche tupla di S, oppure essere null CREATE TABLE Studenti (sid INTEGER, nome CHAR(10), media real, PRIMARY KEY (sid)) CREATE TABLE Corsi (cid CHAR(4), titolo CHAR(20), PRIMARY KEY (cid)) CREATE TABLE Iscritti (cid CHAR(4), studid INTEGER, voto INTEGER, PRIMARY KEY (cid, studid), FOREIGN KEY (cid) REFERENCES Corsi(cid), FOREIGN KEY (studid) REFERENCES Studenti(sid)) Pag.17
18 CONSTRAINT, DEFERRED, IMMEDIATE Il costrutto CONSTRAINT associa a un vincolo una stringa che verrà riportata dal DBMS assieme al messaggio di errore nel caso in cui il vincolo venga violato. La coppia di attributi DEFERRED/IMMEDIATE consente nel caso in cui le attività sul DB siano transazioni di attendere il completamento della transazione (commit) per verificare violazioni di integrità e, in tal caso, riportare il DB a una situazione di integrità (rollback). CREATE TABLE Iscritti (cid CHAR(4), studid INTEGER, voto INTEGER, PRIMARY KEY (cid, studid), CONSTRAINT e_corso FOREIGN KEY (cid) REFERENCES Corsi(cid), CONSTRAINT e_stud FOREIGN KEY (studid) REFERENCES Studenti(sid)) Pag.18
19 Garantire l integrità referenziale Consideriamo Studenti e Iscritti; sid in Iscritti è una chiave esterna che si riferisce a Studenti Che cosa si dovrebbe fare se viene inserita in Iscritti una tupla con un ID studente che non esiste? (Rifiutarla!) Che cosa si dovrebbe fare se viene cancellata una tupla di Studenti? Cancellare anche le tuple di Iscritti che vi fanno riferimento Non permettere la cancellazione di tuple di Studenti cui si fa riferimento da Iscritti Impostare a un sid predefinito il sid delle tuple di Iscritti che puntano a Studenti (In SQL, anche: impostare al valore speciale null, che denota sconosciuto, o inapplicabile, il sid delle tuple di Iscritti che si riferiscono a Studenti) Analogo se la chiave primaria nelle tuple di Studenti viene aggiornata Pag.19
20 Integrità referenziale in SQL/92 SQL/92 supporta tutte le 4 opzioni sulle cancellazioni e sugli aggiornamenti Il valore predefinito è NO ACTION (la cancellazione/la modifica vengono rifiutate) CASCADE (cancella anche tutte le tuple che fanno riferimento alla tupla cancellata) SET NULL / SET DEFAULT (imposta al valore nullo o ad un valore di default il valore della chiave esterna delle tuple che fanno riferimento alla tupla cancellata) CREATE TABLE Iscritti (cid CHAR(4), studid INTEGER, voto INTEGER, PRIMARY KEY (cid, studid), CONSTRAINT ChiaveCorso FOREIGN KEY (cid) REFERENCES Corsi(cid), CONSTRAINT ChiaveStud FOREIGN KEY (studid) REFERENCES Studenti(sid) ON DELETE CASCADE) Pag.20
21 Da dove vengono i VI? I VI sono basati sulla semantica dell organizzazione del mondo reale che viene descritta nelle relazioni della base di dati Possiamo controllare l istanza di una base di dati per vedere se un VI viene violato, ma non possiamo MAI inferire che un VI è vero solo esaminando un istanza Un VI è una asserzione su tutte le possibili istanze! Analizzando l esempio si può scoprire che nome non è una chiave, ma è necessario ci sia un asserzione per stabilire che sid è una chiave VI su chiavi e su chiavi esterne sono i più comuni; sono supportati anche VI più generali Pag.21
22 Vincoli generali Utili quando sono coinvolti VI più generali delle chiavi Per es. vincolo CHECK su campo CREATE TABLE Velisti (vid INTEGER, vnome CHAR(10), esperienza INTEGER CHECK (esperienza >= 1 AND esperienza <= 10), età REAL, PRIMARY KEY (vid)) Pag.22
23 Viste Una vista non è che una relazione, ma ne viene memorizzata la definizione, piuttosto che l insieme di tuple CREATE VIEW VelistiAttivi (nome, età, giorno) AS SELECT V.vnome, V.età, P.giorno FROM Velisti V, Prenota P WHERE V.nome = P.vnome AND V.età > 6 Le viste possono essere cancellate usando il comando DROP VIEW Come gestire DROP TABLE se c è una vista su quella tabella o vincoli di chiave esterna? Aggiungo RESTRICT se voglio che non venga eseguita Aggiungo CASCADE se voglio distruggere anche tutte le viste e i vincoli di integrità collegati Pag.23
24 Viste e sicurezza Le viste possono essere usate per presentare le informazioni necessarie (o un loro riassunto), nascondendo al contempo i dettagli della/e relazione/i sottostante/i Data VelistiAttivi, ma non Velisti o Prenota, possiamo trovare i velisti che hanno una prenotazione, ma non i bid delle barche che sono state prenotate. I comandi GRANT/REVOKE possono essere usati per controllare l accesso alle relazioni e alle viste Insieme all abilità di definire le viste, questo fornisce un meccanismo di controllo di accesso molto potente Pag.24
25 Linguaggi di Interrogazione Relazionali Uno dei punti di forza del modello relazionale: supporta un semplice ma potente linguaggio di interrogazione dei dati. Le interrogazioni possono essere scritte in maniera intuitiva, e il DBMS è responsabile di una valutazione efficiente Fattore chiave: semantica precisa per le interrogazioni relazionali -> algebra relazionale e linguaggio formale (SQL DML) Permette all ottimizzatore di riordinare estensivamente le operazioni, garantendo che la risposta non cambi Pag.25
26 Modello relazionale: sommario Una rappresentazione tabellare dei dati Semplice e intuitivo, attualmente il più usato Il DBA può specificare vincoli di integrità basati sulla semantica dell applicazione. Il DBMS controlla eventuali violazioni Due VI importanti: chiavi primarie e chiavi esterne Inoltre abbiamo sempre vincoli di dominio E relativamente semplice rappresentare un DB con i costrutti del modello a partire dalla suo schema ER Esistono linguaggi di interrogazione potenti e naturali Pag.26
27 Dove andiamo da qui? Come traduciamo schemi del modello ER in schemi relazionali? Come possiamo migliorare la qualità della nostra traduzione? Quali sono i formalismi per interrogare efficacemente e in modo semanticamente preciso la base di dati? Algebra relazionale SQL DML Come utilizziamo tutto questo per scrivere programmi? Cosa c è dentro al cofano? Pag.27
SQL: DDL, VI, Aggiornamenti e Viste
SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce
DettagliLABORATORIO di INFORMATICA
Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab
DettagliIL MODELLO RELAZIONALE
Basi di dati 1 IL MODELLO RELAZIONALE (CAPITOLO 2) Codd 1970 Indipendenza dei dati Distinzione nella descrizione dei dati tra livello fisico e livello logico Vendors IBM,Informix,Microsoft,Oracle,Sybase
DettagliSQL: Definizione e Manipolazione di Relazioni. Capitolo 2
SQL: Definizione e Manipolazione di Relazioni Capitolo 2 1 Sintassi della Creazione di uno Schema Relazionale CREATE TABLE ( [NOT NULL] [UNIQUE] [],...,...,
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al
DettagliTipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata
Domini Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata numeric [(Precisione [,Scala])] decimal [(Precisione [,Scala])] integer smallint Precisione specifica il numero di
DettagliLaboratorio di Basi di Dati e Multimedia
Laboratorio di Basi di Dati e Multimedia Laurea in Informatica Multimediale - A.A. 2006/07 Docente: Alessandra Di Pierro Email: dipierro@sci.univr.it Lezione 2 Vincoli intrarelazionali Proprietà che devono
DettagliSQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione
DettagliPRODOTTO CARTESIANO Caso Generale
PRODOTTO CARTESIANO Caso Generale Vincoli di integrità dei dati Un database non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti,
DettagliSQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:
SQL SQL (pronunciato anche come l inglese sequel): acronimo di Structured Query Language (linguaggio di interrogazione strutturato) Linguaggio completo che presenta anche proprietà di: DDL (Data Definition
DettagliVincoli. Chiavi esterne Vincoli locali e globali Triggers Leggere Cap 2 Riguzzi et al. Sistemi Informativi
Vincoli Chiavi esterne Vincoli locali e globali Triggers Leggere Cap 2 Riguzzi et al. Sistemi Informativi Lucidi derivati da quelli di Jeffrey D. Ullman 1 Vincoli e Triggers Un vincolo e una relazione
DettagliCorso di Basi di Dati
Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ 1 Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare
DettagliLezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1
Lezione 7 SQL (II) Pag.1 Ancora sugli operatori di confronto tra insiemi Abbiamo già visto IN, EXISTS e UNIQUE. Possiamo anche usare NOT IN, NOT EXISTS e NOT UNIQUE Disponibili anche: op ANY, op ALL Trovare
DettagliIL MODELLO RELAZIONALE (CAP 2) R. Basili, aa. 2011/2012
1 IL MODELLO RELAZIONALE (CAP 2) R. Basili, aa. 2011/2012 IL MODELLO RELAZIONALE (CAPITOLO 2) Cood 1970 Indipendenza dei dati Distinzione nella descrizione dei dati tra livello fisico e livello logico
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliUniversita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2
Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida
DettagliIL MODELLO RELAZIONALE (CAPITOLO 2)
Basi di dati 1 IL MODELLO RELAZIONALE (CAPITOLO 2) Codd 1970 Indipendenza dei dati Distinzione nella descrizione dei dati tra livello fisico e livello logico Vendors IBM,Informix,Microsoft,Oracle,Sybase
DettagliLezione 6 SQL Basi di dati bis Docente Mauro Minenna Pag.1
Lezione 6 SQL Pag.1 Istanze di esempio vid vnome esperienza età 22 Dustin 7 45.0 29 Brutus 1 33.0 31 Lubber 8 55.5 32 Andy 8 25.5 58 Rusty 10 35.0 64 Horatio 7 35.0 71 Zorba 10 16.0 74 Horatio 9 35.0 85
DettagliStringhe di caratteri
Domini primitivi In SQL sono disponibili alcune famiglie di domini elementari attraverso le quali è possibile definire i domini di appartenenza dei campi. Stringhe di caratteri CHARACTER [VARYING] [(NumeroCaratteri)]
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Settima parte Interrogazione di una
DettagliIl Modello Relazionale
Il Modello Relazionale (Capitolo 2) Cood 1970 Indipendenza dei dati Distinzione nella descrizione dei dati tra livello fisico e livello logico Vendors IBM,Informix,Microsoft,Oracle,Sybase 1 Progettazione
DettagliInformatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:
Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno 2012 Cognome e nome: Matricola: Parte prima Domanda 1 Domanda 2 Domanda 3 Totale Istruzioni: È vietato portare
DettagliIl linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL
: fondamenti Linguaggio per gestire le basi di dati relazionali Structured Query Language SQL possiede istruzioni per definire lo schema di una base di dati relazionale leggere e scrivere i dati definire
DettagliCorso di Basi di Dati
Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati
DettagliIL MODELLO RELAZIONALE
IL MODELLO RELAZIONALE Origine del Modello Relazionale 2 Proposto nel 1970 da Ted Codd (Centro Ricerche IBM) Dagli anni 80 è il modello di riferimento per i DBMS Oracle, IBM, MicrosoF, MySQL, PostgreSQL,
DettagliSQL. Dott.ssa Elisa Quintarelli
Corso Basi di Dati Dott.ssa Elisa Quintarelli SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali È un linguaggio con varie funzionalità:
DettagliIl linguaggio SQL. Il linguaggio SQL
Il linguaggio SQL 1 Il linguaggio SQL 2 il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è
DettagliIl linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL
Il linguaggio SQL 1 Il linguaggio SQL 2 il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è
DettagliSQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali
SQL Linguaggio di interrogazione per basi di dati relazionali SQL Structured Query Language Linguaggio di interrogazione per basi di dati relazionali. Permette di comunicare con diversi sistemi tramite
DettagliCreazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2007 Politecnico di Torino 1 Creazione di
DettagliLinguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti Gestione delle tabelle Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati Creazione di una tabella
DettagliD B M G. Linguaggio SQL: fondamenti. Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati Creazione di una tabella (1/3) Si utilizza
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati Creazione di una tabella (1/3) Si utilizza
DettagliCorso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste
Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check
DettagliDDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)
o o o o o DDL (Data Definition Language): consente di creare e modificare schemi di database; DML (Data Manipulation Language): consente di inserire, modificare e gestire i dati memorizzati; DQL (Data
DettagliCapitolo 4. SQL: il linguaggio di interrogazione. Originato da SEQUEL-XRM e System-R ( ) dell IBM
Capitolo 4 SQL: il linguaggio di interrogazione SQL Originato da SEQUEL-XRM e System-R (1974-1977) dell IBM Significato originario Structured Query Language Standard de facto Attuale standard ANSI/ISO
DettagliManuale SQL. Manuale SQL - 1 -
Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,
DettagliCorso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati
Corso di Basi di Dati 7. Esercitazioni in SQL: Definizione e manipolazione dei dati A.A. 2016 2017 Collegarsi a MySQL, caricare e salvare basi di dati Per collegarsi a mysql, aprire un terminale e inserire
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2007 Politecnico di Torino 1 Creazione di
DettagliPrincipi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento
Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare e strutturare i dati
DettagliIl linguaggio SQL: DDL di base
Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS
DettagliIL MODELLO RELAZIONALE. Patrizio Dazzi a.a
IL MODELLO RELAZIONALE Patrizio Dazzi a.a. 2017-2018 COMUNICAZIONE AI MIEI CARI STUDENTI! La mail che mandate per la Mailing List deve avere come Oggetto/Subject [BDD-INFUMA-2017-18] e come contenuto:
Dettagliinsert into Dipartimento(NomeDip, Città) values('produzione','torino') insert into ProdottiMilanesi (select codice, descrizione from Prodotto
Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una form per consentire agli utenti di inserire dati. L'ordinamento degli attributi (se
DettagliLezione 1. Introduzione ai sistemi di basi di dati
Lezione 1 Introduzione ai sistemi di basi di dati Pag.1 Testi consigliati Sistemi di Basi di Dati, di Raghu Ramakrishnan e Johannes Gehrke, McGraw Hill, 2004 (http://www.ateneonline.it/rama) Database Management
DettagliALGEBRA RELAZIONALE. Linguaggi di interrogazione relazionale
ALGEBRA RELAZIONALE Linguaggi di interrogazione relazionale! Linguaggi di interrogazione (LI) permettono la manipolazione e il reperimento di dati da una base di dati! Il modello relazionale supporta LI
DettagliCorso di Basi di Dati A.A. 2015/2016
Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 - Esercizi Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 06/04/2016 Esercizio 1 Dare
DettagliCorso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati
Corso di Basi di Dati 7. Esercitazioni in SQL: Definizione e manipolazione dei dati A.A. 2016 2017 Collegarsi a MySQL, caricare e salvare basi di dati Per collegarsi a mysql, aprire un terminale e inserire
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti
DettagliPrincipi di Progettazione del Software a.a Il linguaggio SQL. Linguaggi per DBMS
Principi di Progettazione del Software a.a. 2017-2018 Ing. Università del Salento Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare e strutturare i dati
DettagliD B M G 2. Linguaggio SQL: fondamenti. Istruzioni di aggiornamento. Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE
Linguaggio SQL: fondamenti DB M B G Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE D B M G 2 DB M B G (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple D B M G 4 (2/3)
DettagliInterrogazioni nidificate
Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,
DettagliSISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
DettagliMattia Fazzi: 14/05/2019
Mattia Fazzi: mattia.fazzi@student.unife.it 14/05/2019 SQL Linguaggio utilizzato per definire i dati nel database. Definire i vincoli. Possibilità di creare, modificare e eliminare le tabelle. CREATE TABLE
DettagliInserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52)
Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una maschera (form) per consentire agli utenti di inserire dati. L'ordinamento degli attributi
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DettagliLezione 5. Algebra relazionale
Lezione 5 Algebra relazionale Pag.1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale
DettagliInterpretazione delle query nidificate
Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi
DettagliVincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1
Vincoli, procedure e regole attive in SQL SQL: vincoli, trigger 1 Qualità dei dati Qualità dei dati: correttezza, completezza, attualità In molte applicazioni reali i dati sono di scarsa qualità (5% -
DettagliAspetti avanzati nella definizione degli schemi DDL2 1
Aspetti avanzati nella definizione degli schemi DDL2 1 Aspetti avanzati del DDL Creazione di indici Modifica degli schemi Gestione di viste Autorizzazioni d'accesso Vincoli di integrità Procedure e regole
DettagliElena Baralis 2007 Politecnico di Torino 1
Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple
DettagliSQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe
SQL SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe Operazioni di aggiornamento Abbiamo visto come creare tabelle e come interrogarle. Vedremo ora come popolarle
DettagliElena Baralis 2013 Politecnico di Torino 1
Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti D B M G 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple D B M G 4 (2/3) INSERT inserimento
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è
DettagliInterrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor
Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è
DettagliIl linguaggio SQL costrutti DDL.
Il linguaggio SQL costrutti DDL foglia@iet.unipi.it Sommario Costrutti per la creazione dello schema Costrutti per la creazione delle tabelle Costrutti per la modifica dello schema modifica/cancellazione
DettagliSQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi francesca.lisi@uniba.it
DettagliProgettazione concettuale usando il modello Entità-Relazione (ER)
Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità
DettagliLezione 4. Dallo schema ER al relazionale
Lezione 4 Dallo schema ER al relazionale Pag.1 Insieme di entità ER e tabelle relazionali CREATE TABLE ( CHAR(15), CHAR(20), INTEGER, PRIMARY KEY ()) Pag.2 Traduzione di relazioni ER (segue) dal r rid
DettagliAlgebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
Algebra Relazionale 1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale supporta LI semplici
DettagliModello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.
Modello Relazionale Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970. } modello dei dati insieme di strutture dati e regole logico ) strutture disponibili
DettagliAtzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia
DettagliLezione 5. Il Modello dei Dati Relazionale Vincoli sui Database Relazionali
Lezione 5 Il Modello dei Dati Relazionale Vincoli sui Database Relazionali 1 Sommario Concetti del Modello Relazionale Vincoli del Modello Relazionale e degli Schemi di Database Relazionali Operazioni
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle
DettagliViste come strumenti di programmazione
Viste come strumenti di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: PROJ Impiegato ((Afferenza JOIN Direzione) JOIN REN ImpR,RepR Impiegato,Reparto ( SEL Impiegato='Rossi'
DettagliLezione 8. Metadati, Viste e Trigger
Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli
DettagliSQL DDL. Create database. Alter database. Drop database
SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi
DettagliCorso di Informatica Linguaggio SQL prima parte
Corso di Informatica Linguaggio SQL prima parte Anno Accademico 2018-2019 Linguaggio SQL (Structured Query Language) 2 Il linguaggio SQL Un linguaggio per DBMS (DataBase Management System) deve permettere
DettagliEquivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E))
Equivalenza di espressioni Due espressioni sono equivalenti se: E 1 R E 2 se E 1 (r = E 2 (r per ogni istanza r di R (equivalenza dipendente dallo schema E 1 E 2 se E 1 R E 2 per ogni schema R (equivalenza
DettagliBasi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m
Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare alcune informazioni relative a Twitter. TWEET
DettagliCap. 7 -Trigger e loro uso
1 SOMMARIO 2 Introduzione... 3 Definizione standard di trigger... 10 Cap. 7 -Trigger e loro uso Uso dei trigger e integrità referenziale... 18 Comportamento attivo delle BD Si realizza disponendo di un
DettagliElena Baralis 2007 Politecnico di Torino D B M G M BG. Gestione delle tabelle. Linguaggio SQL: fondamenti. Creazione di una tabella (1/3)
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella izionario dei dati Integrità dei dati Creazione di una tabella (1/3) Si utilizza
DettagliLinguaggio SQL: costrutti avanzati D B M G
Linguaggio SQL: costrutti avanzati D B M G Controllo dell accesso Sicurezza dei dati Risorse e privilegi Gestione dei privilegi in SQL Gestione dei ruoli in SQL D B M G 2 Sicurezza dei dati Protezione
DettagliLinguaggio SQL: costrutti avanzati Controllo dell accesso
Linguaggio SQL: costrutti avanzati D B M G Sicurezza dei dati Risorse e privilegi Gestione dei privilegi in SQL Gestione dei ruoli in SQL D B M G 2 Pag. 1 1 D B M G Sicurezza dei dati Protezione dei dati
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 3 - Aggiornamento dati 1 Prerequisiti Conoscenza tipi di dato in SQL Creare e gestire tabelle e indici 2 1 Introduzione In questa Unità descriviamo la parte di
DettagliSQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto
SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati
DettagliSQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
DettagliInterrogazioni nidificate
Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)
DettagliDichiarazione degli schemi in SQL DDL 1
Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 6 Raffaella Gentilini 1 / 40 Sommario 1 Viste 2 3 2 / 40 Viste Viste le viste sono tabelle virtuali corrispondono al risultato di una query (SELECT) valutata
Dettagli8 SQL : Check, Asserzioni,Viste
Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2011/2012 8 SQL : Check, Asserzioni,Viste
DettagliA.Veneziani Vincoli di integrità e vincoli di integrità referenziale
A.Veneziani Vincoli di integrità e vincoli di integrità referenziale A cosa servono In genere in un DB i campi che definiscono le associazioni tra tabelle possono essere lasciati liberi di assumere qualsivoglia
DettagliSQL. Lezione 1. Docente: Alberto Belussi
LaboratoriodiBasidiDatieWeb Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è
DettagliArchivi e Basi di Dati. lezione 07 1
Archivi e Basi di Dati lezione 07 Memoria persistente e suo utilizzo Bisogna organizzare i dati in modo da garantire inserimento cancellazione modifica e ricerca su grandi quantita di dati lezione 07 2
DettagliModello relazionale e algebra relazionale
Modello relazionale e algebra relazionale DB M B G Modello relazionale Introduzione Definizioni Riferimenti tra relazioni Assenza di valore Vincoli d integrità Chiave primaria Vincoli di tupla e di dominio
DettagliLinguaggio SQL: fondamenti
Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE 2 2007 Politecnico di Torino 1 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 2007 Politecnico di Torino 2 (2/3)
DettagliSQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
DettagliAppunti dalle lezioni. Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale.
SQl come DDL Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 2 Appunti dalle lezioni SQL come DDL Sistemi
Dettagli