Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Progettazione di Database: Introduzione e Modelli Logici, Appunti di Elementi di Informatica

Appunti lezioni informatica documentale

Tipologia: Appunti

2018/2019

Caricato il 21/06/2019

Silviettabertins99
Silviettabertins99 🇮🇹

2 documenti

1 / 16

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Progettazione di data base.
Margherita Zorzi margherita.zorzi@univr.it
Libro: Basi di Dati-modelli e linguaggi di interrogazione (2018) Paolo Atzeni, Stefano
Ceri....McGraw-Hill
Esame 20 domande, sia domande aperte sia domande a risposta multipla
Orario lezione 9.20-11.50
Nozioni generali: dato, informazione, base di dati, DBMS, Sistemi informativi
Modelli logica dei dati: come organizzare i dati seguendo costrutti formali
Come “interrogare” (fare domande) ai database
Come progettare concettualmente i database
CAPITOLO 1: introduzione
Studio delle basi di Dati, ovvero insiemi organizzati di dati. Da un punto di vista informatico, le basi
di dati sono un supporto digitale su cui immagazzinare i dati, un software che permette di recuperare
i dati e una rete che ne permetta la condivisione.
Contenuti chiave:
Modelli per l’organizzazione dei dati
Linguaggi per l’utilizzo di dati
Metodologie di di basi di dati
Perché?
La comunicazione prevede lo scambio e quindi la trasmissione e il recupero di informazioni
Le informazioni devono essere conservate, aggiornate e gestite in modo efficiente
Parole chiave
Base di dati: insieme organizzato di dati utilizzati per il supporto allo svolgimento di attività (di un
ente, azienda, ufficio, persona)
Informatica: scienza del trattamento razziale specialmente per mezzo di macchine automatiche,
dell’informazione, considerata come supporto alla conoscenza umana e alla comunicazione
Due anime:
-metodologica
-Tecnologica
Sistema informativo
Componente di una organizzazione che gestisce le informazioni di interesse (cioè utilizzate per il
proseguimento degli scopi dell’organizzazione)
Ogni organizzazione ha un sistema informativo, eventualmente non esplicito nella tritura
Il sistema informativo è di supporto ad altri sottosistemi, e va quindi studiato nel contesto in cui è
inserito
Gestione delle informazioni
Raccolta, acquisizione
Archiviazione, conservazione
Elaborazione, trasformazione, produzione
Distribuzione, comunicazione, scambio
Sistemi informativi e automazione
Il concetto di “sistema informativo” è indipendente da qualsiasi automatizzazione: esistono
organizzazioni la cui ragion d’essere è la gestione di informazioni ( per esempio servizi anagrafici e
banche) e che operano da secoli.
di 1 16
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Progettazione di Database: Introduzione e Modelli Logici e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Progettazione di data base. Margherita Zorzi [email protected] Libro: Basi di Dati-modelli e linguaggi di interrogazione (2018) Paolo Atzeni, Stefano Ceri....McGraw-Hill Esame 20 domande, sia domande aperte sia domande a risposta multipla Orario lezione 9.20-11. Nozioni generali: dato, informazione, base di dati, DBMS, Sistemi informativi Modelli logica dei dati: come organizzare i dati seguendo costrutti formali Come “interrogare” (fare domande) ai database Come progettare concettualmente i database CAPITOLO 1: introduzione Studio delle basi di Dati, ovvero insiemi organizzati di dati. Da un punto di vista informatico, le basi di dati sono un supporto digitale su cui immagazzinare i dati, un software che permette di recuperare i dati e una rete che ne permetta la condivisione. Contenuti chiave:

  • Modelli per l’organizzazione dei dati
  • Linguaggi per l’utilizzo di dati
  • Metodologie di di basi di dati Perché?
  • La comunicazione prevede lo scambio e quindi la trasmissione e il recupero di informazioni
  • Le informazioni devono essere conservate, aggiornate e gestite in modo efficiente Parole chiave
  • Base di dati: insieme organizzato di dati utilizzati per il supporto allo svolgimento di attività (di un ente, azienda, ufficio, persona)
  • Informatica: scienza del trattamento razziale specialmente per mezzo di macchine automatiche, dell’informazione, considerata come supporto alla conoscenza umana e alla comunicazione Due anime:

- metodologica

- Tecnologica

Sistema informativo

  • Componente di una organizzazione che gestisce le informazioni di interesse (cioè utilizzate per il proseguimento degli scopi dell’organizzazione)
  • Ogni organizzazione ha un sistema informativo, eventualmente non esplicito nella tritura
  • Il sistema informativo è di supporto ad altri sottosistemi, e va quindi studiato nel contesto in cui è inserito Gestione delle informazioni
  • Raccolta, acquisizione
  • Archiviazione, conservazione
  • Elaborazione, trasformazione, produzione
  • Distribuzione, comunicazione, scambio Sistemi informativi e automazione Il concetto di “sistema informativo” è indipendente da qualsiasi automatizzazione: esistono organizzazioni la cui ragion d’essere è la gestione di informazioni ( per esempio servizi anagrafici e banche) e che operano da secoli.

Il sistema informatico è una porzione automatizzata del sistema informativo: parte del sistema informativo che gestisce informazioni con tecnologia informatica. Gestione delle informazioni Nelle attività umane, le informazioni vengono gestite in forme diverse:

- idee informali

- Linguaggio naturale (scritto o parlato, formale o colloquiale, in varie lingue)

- Disegno, grafici schemi

- Numeri e codici

E vari supporti

- mente umana., carta, dispositivi elettronici

Informazioni e dati Nei sistemi informatici (e non solo), le informazioni vengono rappresentate in modo essenziale, spartano: attraverso i dati Informazione: notizia, dosato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; (in informatica) elementi di informazione costituiti da simboli che debbano essere elaborati I dati sono spesso il risultato di forme di organizzazione e codifica delle informazioni Esempio: nei servizi anagrafici e nel riferimento a persone

- descrizioni discorsive

- Nome e cognome

- Estremi anagrafici

- Codice fiscale

Perché i dati?

  • La rappresentazione precisa di forme più ricche di informazione e conoscenza è difficile
  • I dati costituiscono spesso una risorsa strategica, perché più stabili nel tempo di altre componenti (processi, tecnologie, ruoli umani)

- ad esempio, i dati delle banche o delle anagrafi

Basi di dati (Accezione generica, metodologica)

  • Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona) (Accettazione specifica, metodologica e tecnologica)
  • Insieme di dati gestiti da un DBMS Sistema di gestione di basi di dati DataBase Management System (DBMS) Sistema che gestisce collezioni di dati:

- grandi

- Persistenti

- Condivise

Garantendo

- Privatezza

- Affidabilità

- Efficenza

- Efficacia

DBMS: prodotti software complessi disponibili sul mercato, esempi: DB2, Oracle, SQLServer; MySQL,PostgreSQL, Access, Base (LibreOffice) I DBMS

  • Privatezza: si possono definire meccanismi di autorizzazione
  • Schema intero (o fisico): rappresentazione dello schema logico per mezzo di strutture memorizzazione ( file; ad esempio, record con puntatori, ordinati in un certo modo) Linguaggi delle basi Permettono di definire basi di dati e di interrogarle Esistono molti linguaggi e interfacce

- linguaggi testuali interattivi ( SQL)

- Comandi immersi in un linguaggio ospite (Pascal, Java, C..)

- Comandi immersi in un linguaggio ad hoc con anche altre funzionalità ( ad es. per i grafici)

- Con interfaccia amichevoli (senza linguaggio testuale, es access, base di LibreOffice)

Una distinzione sui linguaggi (separazione fra i dati e programmi) Data manipulation language (DML); per l’interrogazione e l’aggiornamento di istanze e di basi di dati Data definition language (DDL); per la definizione di schemi (logici, esterni, fisici) e altre operazioni generali. CAPITOLO 2: Modello relazionale Tre modelli logici tradizionali

  • Gerarchico
  • Reticolare
  • Relazionale Più recenti
  • A oggetti
  • Basato su XML Caratteristiche
  • Gerarchico e reticolare: utilizzano riferimento espliciti (puntatori) fra record
  • Relazionale “è basato su valori”: anche i riferimenti fra dati in strutture (relazioni) diverse sono rappresentati per mezzo dei valori stessi. Il modello relazionale
  • Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati
  • Disponibile in DBMS reali nel 1981 (non è facile implementare l’indipendenza con efficenza e affidabilità)
  • Si basa sul concetto matematico di relazione (con una variante)
  • Le relazioni hanno naturale rappresentazione per mezzo di tabelle Vedremo:

- le strutture

- I vincoli di integrità

Relazione: Tre accezioni

  • Relazione matematica: come nella teoria degli insiemi
  • Relazione secondo il modello relazionale dei dati
  • Relazione che rappresenta una classe di fatti, nel modello Entity-Relationship; tradotto anche con associazione po correlazione Relazione matematica Prodotto cartesiano

Relazione matematica, proprietà Una relazione matematica è un insieme di n-uple ordinate Una relazione è un insieme:

- non c’è ordinamento fra le n-uple

- Le n-uple sono distinte

- Ciascuna n-uple è ordinata: L’ i-esimo valore proviene dall’ i-esimo dominio

Ciascuno dei domini ha due ruoli diversi, distinguibili attraverso la posizione:

- struttura è posizionale

- L’ordinamento non è una proprietà ottimale

Struttura non posizionale A ciascun dominio si associa un nome unico nella tabella (attributo), che ne descrive il ruolo (L’ordine delle colonne non conta) Tabelle e relazioni In una tabella che rappresenta una relazione

  • L’ordinamento tra le righe è irrilevante
  • L’ordinamento tra le colonne è irrilevante Una tabella rappresenta una relazione se
  • Le righe sono diverse fra loro
  • Le intestazioni delle colonne sono diverse tra loro
  • I vocabolari di ogni colonna sono fra loro omogenei Il modello è basato sui valori I riferimento fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple Struttura basata su valori: vantaggi
  • Indipendenza dalle strutture fisiche che possono cambiare dinamicamente
  • Si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione (i valori, cioè la rappresentazione logica dei dati)
  • l’utente finale vede gli stessi dati dei programmatori
  • I dati sono portabili più facilmente da un sistema ad un altro Alternativa: altri modelli (sia quelli “storici”, reticolare e gerarchico, sia quello a oggetti) prevedono espliciti, gestiti dal sistema. Definizioni importanti
  • Schema di relazione: un nome R con un insieme di attributi A1,...., An: R(A1,...,An)
  • Schema di base di dati: insieme di schemi di relazione R= {R1(X1)...,Rk(Xk)k} Definizioni, 2 Un ennupla (o Tupla) su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio di A. T(A) denota il valore della ennupla t sull’attributo A Relazioni sui singoli attributi A volte può avere senso, avere una relazione su un singolo attributo Strutture nidificate, riflessione
    • Abbiamo rappresentato veramente tutti gli aspetti delle ricevute?
    • Dipende da che cosa ci interessa
    • Sono possibili rappresentazioni diverse Informazione incompleta Il modello relazionale impone ai dati una struttura rigida
  • Le informazioni sono rappresentate per mezzo di ennuple
  • Solo alcuni formati di ennuple sono annessi: quelli che corrispondono agli schemi di relazione

Identificazione delle ennuple

- Non ci sono due ennuple con lo stesso valore

sull’attributo di matricola

- Non ci sono due ennuple uguali su tutti e tre gli

attributi, Cognome, nome e data di nascita Superchiave e chiave Definizione di superchiave : insieme di attributi che identificano univocamente le ennuple di una relazione (chiede all’esame) Formalmente:

  • Un insieme K di attributi è superchiave per r se r non contiene due ennuple distinte t1 e t2 con t1[K]=t2[K]
  • K è chiave per r se è una superchiave minimale per r (cioè non contiene un’altra superchiave) Una superchiave può anche contenere degli attributi di troppo. Da questa definizione una superchiave non è necessariamente una chiave, quindi non è minimale Vincoli, schemi e istanze
  • I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati
  • Interessano a livello di schema (con riferimento cioè a tutte le istanze)
  • Ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide,ammissibili) le istanze che soddisfano tutti i vincoli
  • Un’istanza può soddisfare altri vincoli (“per caso”) Importante: esistenza delle chiavi
  • Una relazione non può contenere ennuple distinte ma uguali
  • Ogni relazione ha come superchiave l’insieme degli attributi su cui è definita e quindi ha almeno una chiave
  • L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati
  • Le chiavi permettono di correlare i dati in relazioni diverse: ciò è fondamentale, perché sappiamo che il modello relazionale è basato su valori Chiavi e valori nulli In presenza di valori nulli, i valori della chiave non permettono:

- di identificare le ennuple

- Di realizzare facilmente i riferimenti da altre relazioni

- Esempio: ammette il valore NULL sull’attributo Marticola della

relazione STUDENTI, ci impedisce di identificare univocamente ogni studente. Come si risolve il problema? Chiave primaria definizione: chiave su cui non sono ammessi valori nulli. Vincoli interrelazionali: integrità referenziale

  • Informazioni in relazioni diverse sono correlate attraverso valori comuni
  • In particolare, valori delle chiavi
  • Le correlazioni debbono essere “coerenti” Vincolo di integrità referenziale: un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R1 e un’altra relazione R2 impone ai valori della chiave primaria di R

Vincoli di integrità referenziale fra:

  • L’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI
  • Gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO Esempio di vincoli multipli su più attributi Vincoli di integrità referenziale fra:
  • Gli attributi ProvA e NumeroA di INCIDENTI e la relazione AUTO
  • Gli attributi ProvB e NumeroB di INCIDENTI e la relazione Auto L’ordine degli attributi è significativo (per capire a quale componente della chiave primaria della seconda relazione si riferisce ciascun attributi coinvolto nel vincolo) Vincoli di integrità referenziale: commenti
  • Giocano un ruolo fondamentale nel concetto di “modello basato su valori”
  • In presenza di valori nulli i vincoli possono essere meno restrittivi
  • Sonno possibili meccanismi per il supporto alla loro gestione: “azioni” compensative a seguito di violazioni Azioni compensative Esempio: viene eliminata una ennupla causando una violazione Comportamento standard: rifiuto dell’operazione Azioni compensative: eliminazione in cascata o introduzione dei valori nulli CAPITOLO 3: Algebra relazionale Linguaggi di interrogazione per basi di dati relazioni
  • Dichiarativi: specificano le proprietà del risultato (“che cosa”)
  • Procedurali: specificano le modalità di generazione del risultato (“come”)
  • Contiene un sottoinsieme delle ennuple dell’operando, ovvero le ennuple soddisfano una condizione Selezione, sintassi e semantica
  • Sintassi: SEL condizione (operando). Condizione: espressione boleana (come quelle dei vinicoli di ennupla)
  • Semantica: il risultato contiene le ennuple dell’operando che soddisfano la condizione Da 69 a 87 non è da fare (libro) Proiezione: operatore monadico. Produce un risultato che:
  • Ha parte degli attributi dell’operando
  • Contiene ennuple cui contribuiscono tutte le ennuple dell’operando Proiezione: sintassi e semantica
  • Sintassi PROJ listaAttributi (operando)
  • Semantica: il risultato contiene le ennuple ottenute da tutte le ennuple dell’operando ristrette agli attributi nella lista Cardinalita delle proiezioni Una proiezione contiene Selezione e proiezione Operatori “ortogonali”
  • Selezione: decomposizione orizzontale
  • Proiezione: decomposizione verticale Cambiando selezione e proiezione possiamo estrarre interessanti informazioni da una relazione Non possiamo pero correlare informazioni presenti in relazioni diverse, ne informazioni in ennuple diverse di una stessa relazione Join Il join è l’operatore più interessante dell’algebra relazionale. Permette di correlare dati in relazioni diverse, confrontando i valori contenuti in esse (utilizzando quindi la caratteristica fondamentale del modello, quella di essere basata sui valori) Esistono due tipi di join:

- il join naturale

- Il theta-join

Join naturale: operatore binario (generalizzabile) Produce un risultato:

  • Sull’unione degli attributi degli operandi
  • Con ennuple costruite combinando degli operandi con valori uguali sugli attributi comuni Ogni ennupla contribuisce al risultato: join completo Una difficolta del Join naturale Alcune ennuple non contribuiscono al risultato: vengono “tagliate fuori” Caso particolare: prodotto cartesiano
  • Il prodotto cartesiano è un join naturale su relazioni senza attributi in comune
  • Contiene sempre un numero di ennuple pari al prodotto delle cardinali degli operandi (le ennuple sono tutte combinabili)
  • È utile? Di per se, concatena tulle non necessariamente correlate dal punto di vita semantico Theta-join
  • Il prodotto cartesiano, in pratica, ha senso (quasi) solo se seguito da selezione: SEL condizione (R1 JOIN R2)
  • L’operazione viene chiamata theta-join e indicata con R JOIN condizione R È un operatore derivato (è esprimibile per mezzo di altri operatori, ovvero prodotto cartesiano e selezione. Se Interrogazioni in algebra relazionale Un’interrogazione è una funzione che applicata a istanze della base dei di dati produce relazioni. Più precisamente dato uno schema R di base di dati per ogni istanza r di R l’interrogazione produce una relazione su un dato insieme di attributi X. In algebra relazionale le interrogazioni su una base di dati R vengono formulate con espressioni le cui variabili sono (nomi di) relazioni in R. CAP 4 SQL: concetti di base SQL Originariamente il nome era l’acronimo di “structured quei language”. SQL è un linguaggio con varie funzionalità: contiene DDL e DML. Ne esistono varie versioni. Cosa può fare SQL: - definizione^ dello schema di una base di dati - specificare^ delle interrogazioni sulla base di dati - modificare^ la base di dati Comandi di base in SQL: definizione di schemi di base di dati Le parentesi si usano per scopi diversi.
    • Le parentesi angolari “ <->” permettono di isolare un termine dalla sintassi
    • Le parentesi quadre “[-]” indicano un termine opzionale che può non comparire o comparire una sola volta
    • Le parentesi graffe “{-}” indicano che il termine può non comparire o essere ripetuto un numero arbitrario di volte
    • Le barre verticali “|-|” indiano che deve essere scelto uno dei termini separati dalle barre
    • Le parentesi tonde “(-)” non saranno simboli della grammatica ma parte di termini SQL

singolo attirato o su di un insieme. La

definizione implica una definizione di not null

per tutti gli attribuiti della chiave primaria

Nome varchar (20).

Cognome varchar (20).

Primary key (Cognome, Nome)

alternative: Matricola CHAR(6)PRIMARY KEY

oppure: Matricola CHAR(6)

PRIMARY KEY (Matricola)

- CHECK: (non lo fa non c’è in esame)

Vincoli interrelazionali (tra relazioni diverse):

- REFERENCE e FOREIGN KEY: permettono di

definire vincoli di integrità referenziale

- Di nuovo due sintassi - Per singoli attributi - Su più attributi - È possibile definire politiche di reazione alla violazione - CHECK

Vincoli interrelazionali:

I vincoli di integrità referenze erano un legame tra un attributo di una tabella (detta interna) e

valori di attributi di un’altra tabella (detta esterna). Il vincolo impone che per ogni riga della

tabella interna, il valore dell’attributo specificato, se diverso dal valore nullo, compaia tra le

righe della tabella esterna tra i valori del corrispondete attributo. La sintassi impone che

l’attributo cui di fa riferimento nella tabella esterna dia sofferto al vicolo UNIQUE (si chiede

che sia un identificatore, spesso è la chiave).

Se io decido che un’attributo offra un vincolo di integrità referenziale dopo la base devo dire

al sistema che esiste un legame, che è un attributo singolo e uso REFERENCES. Devo dirgli a

cosa punto (ad un’altra tabella) e devo dirgli a quale tabella è riferita, cioè sotto NomeDip.

Se è coinvolto un solo attributo, basta usare il costrutto sintattico references specificando

la tabella esterna e e il relativo attributo coinvolto. In alternativa, e necessariamente quando

il legame coinvolge più attributi, si usa il costrutto forgeign key alla fine della

definizione degli attributi, elencando gli attributi coinvolti e seguendo dalla definizione dei

corrispondenti attributi della tabella esterna, sempre grazie al references.

Il forgeign key mi fa affiggere un attributo. Poi il sistema sa che dentro ci sono dei vincoli,

e quindi fa tutti i suoi agganci. Dico che nome e cognome devono fare riferimento ad una

tabella esterna chiamata Anagrafica, quindi

lego gli attributi con la tabella esterna,

nell’ordine appunto Nome Cognome.

Esempio vincoli di integrità referenziale:

CREATE TABLE (all’esame l’esercizio non lo chiede)

Nel database che sto creando i datetable mi

creano un base di dati. Le relazione mi creano

“vigile”, devo dirgli in quale attributo andare a

cercare i valori. Si hanno tutti e 2 i tipi di

sintassi che devo utilizzare. Quando trovo

provincia e numero, devo trovare i dati relativi.

Devo usare il Forgeign Key, prima devo

raggrupparli (provincia e numero) e poi devo

dirgli a cosa punto (devo elencare 2 attributi). Se

ho più di 2 attributi devo stabilire un legame tra

coppie.

COMANDI DI BASE IN SQL CHE RIGUARDANO LE INTERROGAZIONI DI BdD:

La parte di SQL, dedicata alle dichiarazioni fa parte dei DML (amche se la sequenza DDL/

DML non è rigida). SQL esprime le dichiarazioni in modo dichiarativo (specifica l’obbiettivo

e non la procedura per ottenerlo, come l’algebra relazionale). Una parte dei DBMS, detta

query optimizer, traduce di fatto l’interrogazione SQL nel linguaggio procedurale interno del

sistema, che è nascosto dall’utente. SQL permette quindi di descrivere le interrogazioni in

modo astratto ed ad alto livello.

INT1: Nome editrici con sede a Torino

SELECT NomeE

FROM EDITRICE

WHERE Città = Torino OR

Città = Milano

Select-from-where

P 107

SQL e Algebra Relazionale