Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai.

Slides:



Advertisements
Presentazioni simili
Principale limitazione di AR e SQL-92: interrogazioni ricorsive
Advertisements

Structured Query Language
SQL applicato a SQL Server
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Sistemi per il recupero delle informazioni
Biglietti e Ritardi: schema E/R
1 Modello Relazionale : valori nulli Un valore nullo è diverso da ogni altro valore: t4[CODDOC]t5[CODDOC] nullMeccanicaC5 D2Analisi 1C2 D1Fisica 2C3 nullStoriaC6.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica MOMIS: servizi di wrapping.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
1 SQL come linguaggio di definizione di dati Eugenio Di Sciascio.
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER LINSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti.
SQL.
SQL Dati i seguenti schemi relazionali:
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
1 IT FOR BUSINESS AND FINANCE ACCESS INTRODUCTION.
La Normalizzazione. 27 January, slide 2 Le nuove tecnologie Software Tabelle, unicità e chiavi Ciascuna riga di una tabella deve esere unica Ci.
Istruzione SELECT (versione base)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
Maurizio Lenzerini Domenico Lembo Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2003/2004 Prima Esercitazione.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 81 Ricerca e visualizzazione delle informazioni Gestione, ricerca, navigazione: accesso alle.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Memento Chi seguirà il modulo di e-learning?
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Progettazione di un database
L’algebra relazionale
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
sql: esempi di linguaggio sql nell'implementazione mysql
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
Realizzato da Roberto Savino
SQL.
BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),
Pippo.
Esercitazione 7.
SQL (IV) Data Definition Language/ Data Manipulation Language.
Database Esercizi > Progettazione Fisica > SQL
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
SQL (III) Data Definition Language/ Data Manipulation Language.
1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL: Amministrazione e Viste.
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
Tipo Documento: unità didattica 2 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Approfondimenti SQL.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Gaetano Anastasi Beatrice Miotti Lorenzo Guerriero Monica Pellegrinelli Massimiliano Sartor Giorgio Macauda SQLite Esempi di utilizzo della libreria in.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Condizioni decisionali e costrutto if. 2 Operatori relazionali e logici = Maggiore, maggiore uguale ==, != Uguale a, diverso.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Transcript della presentazione:

Esercizi

Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai corsi (identificati da un codice) tenuti dai professori. Disegnare gli schemi ER che descrivono le seguenti situazioni: 1) I professori possono insegnare lo stesso corso in più semestri ed ogni corso (per semestre) deve essere registrato prof corso ins semestre cf num cod

Progettazione ER 2) I professori possono insegnare lo stesso corso in più semestri e solo il più recente semestre deve essere registrato prof corso ins cf sem cod

Progettazione ER 3) Ogni professore insegna in qualche corso prof cf sem cod (1,N)

Progettazione ER 4) Ogni professore insegna un solo corso prof corso cf sem cod (1,1)

Progettazione ER 5) Ogni professore insegna in un corso solo ed ogni corso deve essere tenuto da almeno un professore prof corso ins cf sem cod (1,1) (1,N)

SQL Si consideri il seguente schema relazionale: Emp(eid:integer, ename:char, age:integer, salary:real) Works(eid:integer, did:integer, pct_time:integer) Dept(did:integer, dname:char, budget:real, managerid:integer)

SQL Dare un esempio di chiave esterna che coinvolge la relazione Dept L’attributo did in Works si riferisce all’attributo did in Dept

SQL Si scrivano le istruzioni SQL per definire le relazioni Emp, Works e Dept Create table Emp (eid integer, ename char(10), age integer, salary real, primary key (eid))

SQL create table Works (eid integer, did integer, pct_time integer, primary key (eid, did), foreign key (did) references Dept, foreign key (eid) references Emp, on delete cascade)

SQL Create table Dept (did integer, budget real, managerid integer, primary key (did), foreign key (managerid) references Emp.eid, on delete set null)

SQL Definire Dept in modo che ogni dipartimento abbia un manager Create table Dept (did integer, budget real, managerid integer not null, primary key (did), foreign key (managerid) references Emp, on delete set null)

SQL In riferimento agli schemi di relazione appena definiti, si esprima in SQL la seguente interrogazione: “Trovare i nomi e l’età di tutti gli impiegati che lavorano nel dipartimento 2” Select E.ename, E.age From Emp E, works W Where E.eid=W.eid and W.did=2

SQL In riferimento agli schemi di relazione appena definiti, si esprima in SQL la seguente interrogazione: “Trovare i nomi e l’età di tutti gli impiegati che lavorano sia nel dipartimento Hardware che nel dipartimento Software” Select E.ename, E.age From Emp E, works W1, Works W2 Where E.eid=W1.eid and W1.did=‘Hardware’ and E.eid=W2.eid and W2.did=‘Software’

SQL si considerino i seguenti schemi di relazione piloti(id:int, nome:char, stipendio:int,età:int) aerei(id:int, capienza:int, autonomia:int) partenze(pilota:int, aereo:int, data:date) si esprima in SQL la seguente interrogazione: “Trovare i nomi dei piloti che partono entro il 25 aprile ‘04”

SQL soluzione select piloti.nome from piloti, partenze where partenze.pilota=piloti.id and partenze.data<=24/4/04

SQL In riferimento agli schemi relazionali definiti nella slide precedente, si esprima in SQL la seguente interrogazione: “Trovare tutti gli identificativi degli aerei con capienza maggiore di 100 che partono il 17 maggio ‘04”

SQL soluzione: select aerei.id from aerei, partenze where aerei.id=partenze.aereo and aerei.capienza>100 and partenze.data=17/5/04

SQL sempre in riferimento agli stessi schemi relazionali, esprimere in SQL la seguente interrogazione: “Trovare tutti i nomi dei piloti che partono dopo il 17 maggio ’04 con un aereo avente capienza maggiore di 100 posti”

SQL soluzione: select piloti.nome from piloti, aerei, partenze where piloti.id=partenze.pilota and aerei.id=partenze.aereo and partenze.data>17/5/04 and aerei.capienza>100

SQL Trovare l’età media dei piloti che pilotano aerei che partono entro il 25 aprile ’04 select avg(piloti.età) as etàmedia from piloti, partenze where piloti.id=partenze.pilota and partenze.data<25/4/04

Progettazione ER Si considerino le seguenti informazioni riguardanti un DB universitario: i professori sono univocamente identificati dal codice fiscale, inoltre posseggono un nome, età, grado ed attività di ricerca i progetti sono identificati da un numero, inoltre posseggono uno sponsor, data d’inizio, data di fine e budget gli studenti laureati sono univocamente identificati dal codice fiscale, nome, età e corso di studi inoltre…

Progettazione ER Ogni progetto è gestito da un professore Ad ogni progetto lavorano uno o più professori I professori possono gestire e\o lavorare a più progetti Ad ogni progetto lavorano uno o più studenti Quando uno studente lavora ad un progetto, un professore supervisiona lo studente E poi…

Progettazione ER I dipartimenti sono identificati da un numero, inoltre hanno un nome ed un ufficio principale Ogni dipartimento è gestito da un professore I professori lavorano in uno o più dipartimenti e, per ogni dip., viene registrata la percentuale di tempo di lavoro Gli studenti hanno un dipartimento di appartenenza Ogni studente ha uno studente più anziano che lo aiuta nella scelta dei corsi

Progettazione ER inizio sponsor fine pid età grado budget cf ricerca lavoro prog prof (1,N) (1,1) gestione lavoro gest Lavoro Prog. (1,1) super aiuto pct (1,1) dip (1,1) studente Appart. nome Uff. N° nome cf età corso

SQL Si consideri il seguente schema di database: Studente(snum, nome, età, anno) Classe(nome, aula, ora, pid) Iscritto(snum, nome) Professore(pid, nome)

SQL trovare nome ed età degli studenti iscritti al corso di paleontologia Select S.nome, S.età From studente S, iscritto I Where S.snum=I.snum and I.nome=‘paleontologia’

SQL In alternativa: Select studente.nome, studente.età From studente S Where S.snum in (select I.snum from I where I.nome=‘paleontologia’)

SQL Trovare i nomi di tutti gli studenti del primo anno iscritti ad un corso tenuto dal prof. Rossi Select distinct S.nome From studente S, corso C, iscritto I, professore P Where S.snum=I.snum and I.nome=C.nome and C.pid=P.pid and P.nome=‘Rossi’ and S.anno=1

SQL Oppure… Select distinct S.nome From studente S Where S.anno=1 and S.snum in (select I.snum from iscritto I where I.nome in (select C.nome from corso C where C.pid in (select P.pid from professore P where P.nome = ‘Rossi’)))

SQL Trovare l’età media degli studenti, suddivisi per anno Select anno, avg(età) From studente S Group by anno

SQL Trovare gli studenti che non sono iscritti ad alcun corso Select S.nome From studente S Where S.snum not in (select I.snum from iscritto I)

SQL Trovare l’età degli studenti piu’ anziani che sono iscritti al secondo anno oppure che seguono un corso tenuto dal prof. Rossi Select max(S.age) From studente S Where S.anno=2 or S.snum in (select I.snum from iscritto I, corso C, Professore P where I.nome=C.nome and C.pid=P.pid and P.nome=‘Rossi’)

Progettazione ER Progettare lo schema concettuale di un db che contenga informazioni relative a impiegati (identificati da un codice ed aventi un salario ed un numero di telefono), dipartimenti (identificati da un codice ed aventi un nome ed un budget) e figli degli impiegati (aventi un nome ed età). Gli impiegati lavorano nei dipartimenti. Ogni dipartimento è gestito da un impiegato. Ogni bambino è univocamente determinato dal nome e dal codice del genitore.

Progettazione ER cd num nome sal tel budget direz dip impiegato lavoro figlio nome bambino età