Che materia stai cercando?

Riassunti esame Basi di dati e sistemi informativi - Luca Allulli (SQL)

Riassunti di basi di dati e sistemi informativi per l’esame del prof. Allulli corso di Lingue nella società dell'informazione dell’università degli studi di roma Tor vergata che comprendono riassunti delle dispense, esempi pratici e ricerche personali. Argomenti: Base di dati, Sql, Proporzione, Insiemi, Interrogazioni e Sintassi su Sqlite, chiave esterna, join, vincoli di... Vedi di più

Esame di Basi di dati e sistemi informativi docente Prof. L. Allulli

Anteprima

ESTRATTO DOCUMENTO

stesso schema ma diversa istanza (es.rubrica telefonica mia e del

mio vicino di casa)

In SQL quando si crea una nuova tabella di ogni attributo si

descrive il dominio: Codice fiscale (not null) perchè non può essere

omesso.

Principali domini:

Stringhe:

Sequenza di caratteri (lettere numeri simboli spazi) si utilizza

• CHAR (esattamente quel numero di caratteri) o VARCHAR (se

può variare).

Numeri interi: INTEGER (1000) SMALLINT (50) BIGINT

• (300000000)

Numeri virgola mobile: REAL (14.5649) DOUBLE PRECISION

• 14.456746864575

Tempo: TIME('06:30:00') DATE ('2015-04-03') TIME STAMP

• (ENTRAMBI CON SPAZIO TRA I DUE)

BOOLEANO : BOOLEAN (TRUE OR FALSE)

Es: Rubrica telefonica

Amici: CF (CHAR), COGNOME,NOME (VARCHAR),

INDIRIZZO(VARCHAR)

Studenti: MATRICOLA (usiamo un varchar perché integer non

avrebbe rappresentato gli 0) COGNOME NOME (varchar) DATA DI

NASCITA (date).

Corsi:

nome corso: varchar , cognome docente: varchar, crediti: real (in

modo da rappresentare anche i frazionari), anno : integer, lodi:

boolean.

Per creare tabella su SQL l'ordine è : Nome tabella nome attributo

dominio vincoli

VINCOLI DI INTEGRITA': Proprietà che ogni instanza della base di

dati per essere valida deve verificare. Possono essere

interrelazionali : quando la verifica coinvolge diverse relazioni;

Intrarelazionali: un'unica relazione.

Parliamo degli INTRARELAZIONALI:

Vincoli di tupla: vincoli di valore come not null oppure Vincoli di

chiave (permette di individuare una tupla di una relazione ed essa

soltanto, non si possono inserire tuple duplicate)

Chiave primaria: Presente in ogni relazione, i suoi attributi non

ammettono valori nulli. Si indica sottolineando gli attributi che ne

fanno parte.

Not null: non ammette valori nulli

Unique: è una chiave

Primary key: chiave primaria (implica gli altri due)

Interrogazioni: Segreteria studenti vuole per ogni studente che

ha sostenuto almeno 10 esami determinare il num matricola,

cognome e voti minimo e massimo conseguiti. Ci dobbiamo servire

dell'algebra relazionale: ha come oggetto la manipolazione di

relazioni della base di dati.

Operatori che ricevono in input delle relazioni e ne producono altre

come relazioni

Addizione (funzione che trasforma una coppia di numeri in un

numero)

La selezione: operatore dell'algebra relazionale .

Data una relazione R e una condizione C restituisce le tuple

di R che soddisfano C. Consente di cercare le tuple di interesse

in una relazione. Esempio C1 Nome =Ugo.

Applichiamola alla relazione studenti:

T1 Giuseppe = Ugo FALSA

T2 Pina = Ugo FALSA

T3 Ugo= Ugo VERA la condizione è soddisfatta solo dalla tupla T3

Pertanto la selezione di STUDENTI con la condizione C1 è la

seguente relazione con un'unica tupla:

01 FANTOZZI UGO 1990...

L'operatore si indica con SIGMA s, la selezione di una condizione si

indica con sc ®

Esercizio: scrivere una condizione C2 che non selezioni alcuna

tupla della relazione Studenti quindi sc2= 0 C1 Data di

nascita = 1998

scorso = basi di dati and voto >= 25 (ESAMI) 001

La proiezione: Per scartare dal risultato di un'interrogazione gli

attributi che non interessano, si indica con P.

Esempio relazione STUDENTI proiettata su COGNOME e NOME

P cognome,nome (studenti)

Garibaldi giuseppe,

Pinozzi Pina

Fantozzi Ugo

Esempio: cercare l'indirizzo di Barbara Cani (docenti)

Prima cosa cerchiamo tutti gli indirizzi di tutti gli amici che di

cognome si chiamano Cani e di nome Barbara con l'interrogazione:

R1=sNome=Barbara and Cognome=Cani (docenti )

BARBARA CANI CORSOMANO BBRCN 0887729

Ora proiettiamo R1 sull'unico attributo che ci interessa :

Risultato: Pindirizzo (R1)

Corso Mano

Possiamo combinare le due per evitare i due passaggi:

Risultato = Pindirizzo (sNome=Barbara and Cognome=Cani

(docenti ) )

Esercizio: Num matricola e data di esame di basi di dati voto

almeno 25

R1= s CORSO = BASI DI DATI AND VOTO >= 25 (ESAMI)

OO1 BASI DI DATI DATA 30 1 LODE

RISULTATO: P NUMERO MATRICOLA AND DATA (R1)

001 2015…

In SQL :

Per le interrogazioni : SELECT esempio:

Select (lista attributi) PROIEZIONE (pi greco)

from (lista tabelle)

where (condizione) SELEZIONE

Esempio: riferimento tabella DOCENTI, determinare cognome e

nome

Select cognome,nome

from docenti

in algebra : P cognome and nome (docenti)

Determinare cognome e nome degli amici il cui cognome è rossi

Select cognome, nome

from docenti

where cognome = 'Rossi '

in algebra: Pcognome,nome ( scognome=Cani (DOCENTI)

Se invece voglio tutti i dati basta mettere *

Select *

from Docenti

where cognome = 'Rossi'

Selezionare num matricola studenti voto almeno 25

P num matricola (svoto >= 25 (ESAMI)

Select num matricola

from esami

where voto <= 25 (voto è un numero non stringa,senza apici)

Selezionare num matricola studenti basi di dati almeno 25

Select num matricola

From esami

where corso = basi di dati

and voto >= 25

ALTER TABLE= PER AGGIUNGERE COLONNE

CONDIZIONI:

Per dire selezionare dove il corso non è where corso is not 'basi di

dati'

Per dire che non è nullo : 'is not null'

Per indicare fascia temporale: where data_nascita >= '1992-01-01'

and data_nascita < '2012-06-30'

L'operatore like: Consente di esprimere una condizione che è vera

quando una stringa soddisfa un determinato pattern.

STRINGA LIKE PATTERN

Ad esempio: Select cognome,nome

from amici

where nome LIKE ''M___O' o 'M%'

Il simbolo _ è un jolly che sostituisce un singolo carattere. Il %

invece sostituisce una sottostringa con un numero qualsiasi di

caratteri anche 0.

Per richiedere l'ordine del risultato bisogna aggiungere la clausola

ORDER BY : Esempio ordinare le tuple della relazione amici in

ordine alfabetico

Select *

From amici

Order by cognome,nome

oppure dal voto peggiore al migliore: order by desc oppure asc

La ridenominazione: Si indica con rho ( r ) e opera su una relazione

R.

Relazione con tuple dello stesso valore ma nomi degli attributi

diversi.

Ad esempio STUDENTS

CF, MATR, SURNAME,NAME,DATE,ADDRESS

Operatori insiemistici:

Con riferimento alle relazioni Amici e Studenti determinare il nome

degli studenti che sono anche amici: Prima di tutto 2 insiemi

NOMI AMICI= Pcognome,nome (amici)

NomI STUDENTI= Pcognome,nome (studenti)

ora intersezione:

NOMIAMICISTUDENTI: NOMIAMICIÇNOMESTUDENTI

Invece determinare persone frequentano l'università docenti e

studenti

COGNOMISTUDENTI= Pcognome (studenti)

COGNOMIDOCENTI= PcognomeDocente (docenti)

con Rho rinomino cognomeDocente con COGNOMIDOCENTIOK

E unisco: COGNOMISTUDENTI U COGNOMIDOCENTIOK

In SQL uso:

UNION,INTERSECT,EXCEPT

Es. cognome e nome degli studenti che sono anche amici

Select cognome,nome

from Amici

intersect

select cognome,nome

from studenti

Per selezionare invece cognomi di docenti e studenti

Select cognome

from docenti

UNION

Select cognome

From studenti

Invece i cognomi di studenti che non siano cognomi di docenti:

except

Manipolazione di dati: Cancellazione di righe

DELETE FROM

WHERE (Se è omessa si cancella tutta la tabella) meglio prima fare

select

Aggiornamento di righe: Update

Set indirizzo = 'Via dei ciclamini'

where 'cognome' = 'bianchi '

and nome = 'ugo'

Oppure se voglio aumentare voto di esami:

Update esami

set voto = voto + 1

where voto <30

(Domini= char,varchar...)

Il modello relazionale consente di rappresentare domini articolati

attraverso basi di dati composte da numerose relazioni : i dati

possono essere ripartiti in diverse relazioni ma il modello

relazionale consente di mantenere comunque la base di dati

coerente e all'occorrenza riunire i dati.

Prendiamo in considerazione di nuovo : Rubrica telefonica

Amici (CF, COGNOME,NOME,DATA N )

TELEFONI (CF,NUMERO)

Non c'è un legame esplicito, ogni relazione ha senso

indipendentemente dall'altra. Sarà l'utente a creare un legame

logico.

Es: Il num di telefono della tupla Tt appartiene all'amico della tupla

Ta della relazione amici, il cui codice fiscale è uguale al codice

fiscale di Tt.

Tt(CF) = Ta (CF)

Quindi i legami logici sono stabiliti sulle uguaglianze dei valori

delle tuple.

Chiediamoci se il ruolo dei due CF è lo stesso: in Amici è una

chiave primaria, in telefono non lo è di per sè, anche perchè il

telefono non è un attributo elementare di un amico (può averne

tanti o nessuno) il CF non serve per identificare un telefono, ma

l'amico che lo possiede. Quindi nella prima CF per identificare le

tuple della relazione stessa, nella seconda per fare riferimento alle

tuple di una relazione esterna.

Altro esempio: SEGRETERIA STUDENTI

STUDENTI ( MATRICOLA,COGNOME,NOME,DATA NASCITA)

CORSI (NOMECORSO,COGNOMEDOCENTE,CREDITI,ANNO )

ESAMI (STUDENTE,CORSO,DATA,VOTO,LODE)

Studenti e corsi non hanno un legame diretto, studenti e esami

invece si:

Il numero di matricola dello studente che ha sostenuto l'esame:

presente in studenti come "matricola" e in esami come "studente".

Quindi le due tuple Ts e Te sono collegate se :

Ts(Matricola) = Te (Studente)

Anche qui in Studenti "matricola" è la chiave primaria che

identifica ogni studente, "studente"non è chiave primaria,usata per

far sì che ogni esame punti (si rappresenta con la freccia) allo

studente che lo ha sostenuto .

Anche ESAMI e CORSI sono legati: Ogni esame è relativo a un

corso: Corso di esami punta a Nomecorso di corsi quindi

Te(corso) = Tc (Nomecorso)

Esercizio : Registro Automobilistico :

Automobili (Targa,Marca,Modello,Proprietario)

Persone (Cf, cognome,nome)

Ta di automobili e Tp di persone sono collegate perchè :

Proprietario punta sul CF, o sul cognome e nome

Quindi le chiavi esterne: Quindi spesso legami tra due relazioni R e

S sono stabiliti dall'uguaglianza dei valori di un attributo Ar di R e

di un attributo As di S. Uno dei due , As, è la chiave primaria della

relazione S, e l'altro Ar assume i valori che fanno riferimento ai

valori della chiave primaria di S. Quindi Ar è chiave esterna della

relazione R(relazione interna) verso la relazione S(Relazione

esterna).

Studenti ha una chiave primaria che è Matricola e nessuna chiave

esterna

Corsi ha una chiave primaria che è nomecorso e nessuna esterna

Esami ha una chiave primaria: coppia studente,corso e due chiavi

esterne: studente (fa riferimento alla relazione studenti) e corso (fa

CHIAVE ESTERNA

riferimento alla relazione corsi). In genere una

è composta da tanti attributi quanti la chiave primaria della

relazione esterna.

Esempio: Si vogliono rappresentare le prove di un esame,con nome

e voto. Creiamo relazione PROVE che dovrà contenere nome della

prova,voto ma anche riferimento all'esame a cui appartiene la

prova,quindi chiave esterna verso esami. Esami però è

caratterizzata da due attributi: studente,corso come chiave

primaria quindi anche la chiave esterna di prove dovrà avere una

coppia di attributi : studenteesame e corsoesame

Prove: (Nomeprova,Voto, Studenteesame,corsoesame)

chiave esterna: studenteesame,corsoesame

VINCOLO DI INTEGRITA' REFERENZIALE: I valori della chiave

esterna devono corrispondere a quelli della chiave primaria, non

può far riferimento ad una tupla che non esiste,non avrebbe

senso,sarebbe inconsistente. Impongono quindi la consistenza della

base di dati rispetto alle chiavi esterne, si indicano con la freccia.

E' un vincolo interrelazionale.

REGISTRO AUTOMOBILISTICO:

AUTOMOBILI: Targa,marca,modello,proprietario

Persone: cf,cognome,nome

vincoli di chiave e vincoli d'integrità

targa chiave primaria

cf chiave primaria

L'attributo proprietario è una chiave esterna verso la chiave

primaria CF di persone .

UFFICIO TIROCNI DI UN'UNIVERSITA':

Corsi di laurea: Nome, id_corso

Studenti: Matr,cogn,nome,id_corso, email

Telefonistudenti: numero,matr

Enti: nome,indirizzo, cognome,nome referente, codice

telefoni enti: numero, nome

email: email,nome

Tirocini: nome,codicente,datainizio,durata, numero

partecipazione:matr,votazione, numtirocinio

Quindi Codicecorso di Studenti punta verso Corso di CorsiLaurea

MatricolaStudente di Telefonistudenti punta verso matricola di

Studenti

Matrstudente di Partecipazione punta verso matricola di studenti

e numtirocinio di partecipazione punta verso numero di tirocini

codice ente di tirocini punta verso codice di enti .

Altro esempio: Lavanderia di un grande albergo:

Clienti: nome,cognome,numstanza, idcliente

Tipoligieabito:descrizione,prezzolavaggio

Ordini: orarioconsegna,orarioriconsegna, numabiti, cliente

(esterna),idordine

Abiti: tipologia(descrizione esterna), id_abito, note,

orariofinelavaggio, ordine(chiaveesternaverso orario ricons di

ordine)

Definizione dei vincoli in SQL: deve essere definito nel momento

della creazione della tabella interna.

Uso la seguente sintassi:

FOREIGN KEY (A1,A2..) REFERENCES S (B1,B2..)

Esempio: RUBRICA TELEFONICA: Vincolo dall'attributo codice

fiscale di telefoni all'attributo codice fiscale di amici :

Create table telefoni (

codice_fiscale char(16),

numero VARCHAR (25)


PAGINE

19

PESO

39.43 KB

PUBBLICATO

4 mesi fa


DESCRIZIONE APPUNTO

Riassunti di basi di dati e sistemi informativi per l’esame del prof. Allulli corso di Lingue nella società dell'informazione dell’università degli studi di roma Tor vergata che comprendono riassunti delle dispense, esempi pratici e ricerche personali. Argomenti: Base di dati, Sql, Proporzione, Insiemi, Interrogazioni e Sintassi su Sqlite, chiave esterna, join, vincoli di integrità.


DETTAGLI
Corso di laurea: Corso di laurea in lingue nella società dell'informazione
SSD:
A.A.: 2016-2017

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher tuttigliappunti96 di informazioni apprese con la frequenza delle lezioni di Basi di dati e sistemi informativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Tor Vergata - Uniroma2 o del prof Allulli Luca.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in lingue nella società dell'informazione

Linguaggi di Programmazione a Oggetti (JAVA) - teoria
Appunto
Informatica personale Riassunto
Appunto