Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

DB - Modello relazionale dei dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Basi di dati: il modello relazionale
Una Introduzione alle Basi di Dati
Sistemi per Basi di Dati: Introduzione
Semantica delle Informazioni
Basi di Dati prof. A. Longheu
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Gestione Dati & Archivi
Il modello relazionale: strutture e vincoli
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Base di dati Insieme organizzato di dati utilizzati per lo svolgimento delle attività di un ente, azienda, ufficio, persona Es.: elenchi telefonici, elenco.
ESEMPI DI ARCHIVI DI DATI
Microsoft Office: Access OpenOffice: Base
L’uso dei database in azienda
Introduzione ai Sistemi Informativi e alle Basi di dati
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Basi di dati Università Degli Studi Parthenope di Napoli
Appunti informatica- prof. Orlando De Pietro
MODELLO RELAZIONALE.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Modello E-R Generalizzazioni
Programma del Corso Dati e DBMS DBMS relazionali SQL
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Modello E-R Generalizzazioni
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Gestione dell’Informazione: Aspetti Introduttivi
Basi di dati Claudia Raibulet
Corso di Informatica - Basi di Dati Introduzione alle basi di dati Gabriella Pasi
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Basi di Dati Barbara Catania Aspetti Introduttivi.
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
Basi di Dati e Sistemi Informativi
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
DB- Sistemi Informativi
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
I DATABASE.
Introduzione alle basi di dati
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
Introduzione alle basi di dati
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione Programma del Corso.
Introduzione ai database parte seconda
Basi di dati: introduzione parte prima Ernesto Damiani.
PROGETTAZIONE DI BASE DI DATI Metodologie e modelli.
Informatica Introduzione alle basi di dati Lezione 1 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il modello relazionale
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Transcript della presentazione:

Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO e MANIFESTO)

Schemi In ogni base di dati si possono distinguere: lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale) nell’esempio, le intestazioni delle tabelle le istanze, cioè i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale) nell’esempio, il “contenuto” di ciascuna tabella

Schemi Lo schema di una base di dati è la parte dichiarativa ed invariante della base di dati e ne definisce la struttura. Nel modello relazionale lo schema di una relazione è paragonabile alla definizione del prototipo di una funzione in C. INSEGNAMENTO(Corso,Titolare) è lo schema della relazione INSEGNAMENTO. Le effettive n-ple di attributi appartenenti alla relazione sono dette istanze della relazione. Basi di dati Cagnoni è una istanza di INSEGNAMENTO.

Schemi Gli schemi possono operare a diversi livelli di astrazione Schema logico descrive l’intera base di dati mediante il modello logico adottato dal DBMS (reticolare, gerarchico, relazionale) Schema interno implementa lo schema logico per mezzo di strutture fisiche di memorizzazione (file sequenziali con o senza indici)

Schemi Schema esterno descrive una porzione della base di dati attraverso il modello logico, riflettendo il punto di vista di un utente. Generalmente è realizzato per mezzo di viste, relazioni derivate da quelle che costituiscono lo schema logico. Es. (i soli corsi di Ingegneria Informatica)

Architettura standard (ANSI/SPARC) a tre livelli per DBMS utente utente utente utente utente BD Schema logico Schema esterno Schema interno

Indipendenza dei dati Permette agli utenti di operare a livello astratto, indipendentemente dai dettagli realizzativi del DBMS Indipendenza fisica Consente di mantenere inalterata la struttura logica dei dati al variare dalla realizzazione fisica del sistema. Consente di utilizzare basi di dati su piattaforme diverse, o di distribuire una base di dati su più macchine. Indipendenza logica Rende indipendente lo schema esterno da quello logico, consentendo di inserire nuove viste senza alterarlo, o di alterarlo mantenendo inalterate le viste definite in precedenza.

Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione dei dati Utilizzati per l’interrogazione e l’aggiornamento dei contenuti della base di dati Alcuni linguaggi specializzati (es. SQL) presentano le caratteristiche di entrambi i tipi di linguaggio.

Accesso alla base di dati Linguaggi testuali interattivi Comandi inclusi in estensioni di linguaggi tradizionali Comandi inclusi in linguaggi di sviluppo ad hoc Interfacce grafiche amichevoli

SQL, un linguaggio interattivo SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano="Terra" Corso Aula Reti N3 Sistemi Piano Terra

SQL immerso in linguaggio ad alto livello write('nome della citta''?'); readln(citta); EXEC SQL DECLARE P CURSOR FOR SELECT NOME, REDDITO FROM PERSONE WHERE CITTA = :citta ; EXEC SQL OPEN P ; EXEC SQL FETCH P INTO :nome, :reddito ; while SQLCODE = 0 do begin write('nome della persona:', nome, 'aumento?'); readln(aumento); EXEC SQL UPDATE PERSONE SET REDDITO = REDDITO + :aumento WHERE CURRENT OF P EXEC SQL FETCH P INTO :nome, :reddito end; EXEC SQL CLOSE CURSOR P

Interazione non testuale (in Access)

Utenti e progettisti Amministratore della base di dati responsabile della progettazione controllo e manutenzione della base di dati Progettisti e programmatori realizzano i programmi che accedono alla base di dati Utenti utenti finali accedono alla base di dati frequentemente e attraverso procedure predefinite utenti casuali interrogano o aggiornano la base di dati con procedure e modalità variabili utilizzando i linguaggi forniti dal DBMS

Vantaggi dei DBMS Disponibilità dei dati a tutta una comunità Modello unificato e preciso della realtà di interesse Controllo centralizzato dei dati Condivisione Indipendenza dei dati

Svantaggi dei DBMS Prodotti costosi, complessi, che richiedono investimenti in hardware, software, personale. Forniscono un numero elevato di servizi, in modo integrato e difficilmente scorporabile se le esigenze dell’utente sono inferiori alle caratteristiche offerte

Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd Finalizzato alla realizzazione dell’indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni) con una rappresentazione dei dati di tipo tabellare Attualmente è il modello più utilizzato

Modello relazionale Teorizzato per separare il più possibile il livello logico dal livello fisico della descrizione dei dati Rigoroso modello matematico permette un elevato grado di astrazione Rappresentazione semplice ed intuitiva Le relazioni ed i risultati delle operazioni su di esse sono facilmente rappresentabili ed interpretabili dagli utenti.

Relazione: tre accezioni relazione matematica: come nella teoria degli insiemi relazione (dall’inglese relationship) che rappresenta una classe di fatti, nel modello Entity-Relationship; tradotto anche con associazione o correlazione relazione secondo il modello relazionale dei dati

Relazioni - Prodotto Cartesiano Dati due insiemi D1 e D2 si definisce Prodotto Cartesiano di D1 e D2, e si indica con D1 X D2, l’insieme di tutte le possibili coppie ordinate (v1, v2) tali che v1 sia un elemento di D1 e v2 sia un elemento di D2 . Es. Dati gli insiemi A = {cubo, cono} e B={rosso, verde, blu} il loro prodotto cartesiano è {(cubo,rosso),(cono,rosso),(cubo,verde), (cono,verde),(cubo,blu),(cono,blu)}

Relazioni Una relazione matematica su due insiemi D1 e D2 è un sottoinsieme di D1 X D2. NOTA: a livello formale gli insiemi possono essere infiniti, a livello pratico non possiamo però considerare relazioni infinite. Es. dati gli insiemi visti, una possibile relazione è {(cubo,rosso),(cono,rosso),(cubo,blu)} o, in forma tabellare,

Stringa x Stringa x Intero x Intero Relazioni Le definizioni viste per 2 insiemi possono essere generalizzate a n insiemi. Ogni riga della tabella sarà allora una n-pla ordinata di elementi. n è detto grado del prodotto cartesiano e quindi della relazione. Il numero di elementi della relazione è detto cardinalità della relazione. Un insieme può apparire più volte in una relazione. Es. La relazione Risultati Partite di Calcio è un sottoinsieme del prodotto cartesiano Stringa x Stringa x Intero x Intero

Relazioni Osservazioni Non esiste ordinamento fra le n-ple, per la natura insiemistica della relazione Non possono esistere 2 righe uguali (insiemi) Ogni n-pla è internamente ordinata: l’ i-esimo valore proviene dall’ i-esimo dominio (struttura posizionale) Quindi se si scambiano due righe, la relazione non cambia se si scambiano 2 colonne può cambiare o perdere consistenza

Relazioni La rigidezza dell’ordinamento delle relazioni matematiche spesso non è pratica. In informatica si tende ad utilizzare rappresentazioni non posizionali dei dati, utilizzando l’ordinamento solo quando ha utilità pratica (es. parametri di funzioni, elementi di vettori, matrici). Si utilizzano i tipi strutturati (record) nei casi in cui si debbano raccogliere dati di natura differente in una stessa entità logica. Una relazione è un insieme di record omogenei, cioè definiti sugli stessi campi. Come ogni campo di un record è associato ad un nome, così si associa ad ogni colonna della relazione un attributo.

Relazioni Esempio di relazione con attributi Ogni attributo ha un suo dominio su cui è definito. Ogni riga è detta convenzionalmente tupla (n-pla). Quindi una tupla è un insieme di valori, uno per attributo, ordinati secondo lo schema della relazione e definiti ciascuno su un proprio dominio. Una relazione è una serie di tuple definite sul dominio della relazione (insieme ordinato dei domini dei singoli attributi).

Relazioni Notazione Se t è una tupla definita sul dominio X della relazione e A è uno dei domini di X t[A] (o t.A) è il valore di t relativo al dominio A Es. (relazione Partite) se t è la prima tupla della relazione t.Casa = Parma

Basi di dati e Relazioni Consideriamo il seguente schema di basi di dati: Studenti (Matricola, Cognome, Nome, DataNascita) Corsi (Codice, Titolo, Docente) Esami (Studente, Voto, Corso) Studenti contiene dati su un insieme di studenti Corsi contiene dati su un insieme di corsi Esami contiene dati su un insieme di esami e fa riferimento alle altre due attraverso i numeri di matricola e il nome del corso. Quindi Matricola e Studente, come anche Corso e Titolo, sono definiti sullo stesso dominio e possono (in alcuni casi devono) assumere gli stessi valori.

Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 3456 Maria 01/02/1978 9283 Verdi Luisa 12/11/1979 studenti esami Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01 Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Verdi corsi

Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 3456 Maria 01/02/1978 9283 Verdi Luisa 12/11/1979 studenti esami Studente Voto Corso 30 24 28 26 Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Verdi corsi

Basi di dati e Relazioni Il modello relazionale è basato su valori. I riferimenti fra dati in relazioni diverse avvengono attraverso i valori dei domini corrispondenti che appaiono nelle tuple. Gli altri modelli (gerarchico, reticolare) utilizzano puntatori per le corrispondenze e sono detti basati su record e puntatori.

Basi di dati e Relazioni Vantaggi dell’approccio per valori Si inseriscono nella base di dati solo valori significativi per l’applicazione (i puntatori sono dati aggiuntivi relativi alla sola implementazione). Il trasferimento dei dati da un ambiente ad un altro è più semplice (i puntatori hanno validità solo locale) la rappresentazione logica dei dati non fa riferimento a quella fisica e quindi si ottiene l’indipendenza dei dati

Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A1, A2, … , An} Corsi (Codice, NomeCorso, Docente) Uno schema di base di dati è un insieme di schemi di relazione con nomi diversi R = {R1(X1), R2(X2), …, Rn(Xn)} Una relazione su uno schema R(X) è un insieme r di tuple su X. Una base di dati su uno schema R = {R1(X1), R2(X2), …, Rn(Xn)} è un insieme di relazioni r = {r1, r2, …, rn} dove ogni ri è una relazione sullo schema Ri(Xi)