DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

Documenti analoghi
Elena Baralis 2007 Politecnico di Torino 1

Basi di dati Introduzione

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

ARCHITETTURA DI UN DBMS

Basi di dati D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Basi di dati Basi di dati per bioinformatica

Informatica per le Scienze Umane. Introduzione al corso: programma

Sistema azienda. Sistema azienda (o sistema della organizzazione) uno o più obiettivi, o fini istituzionali

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

SISTEMI INFORMATIVI E DATABASE

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

Pag Politecnico di Torino 1

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Componenti di un DBMS

Liceo Scientifico V. Volterra Fabriano. Informatica Basi di dati Anno C Scienze Applicate Prof. Amedeo De Amicis

Progettazione di basi di dati

Basi di Dati. Prof.ssa Rosalba Giugno

DB e DBMS. Corso di Fondamenti di Informatica (PEU-Z) Dott.ssa Rossella Aiello

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Cap. 1-I 1 I sistemi informatici

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Sommario. Introduzione... 13

SISTEMA INFORMATIVO E SISTEMA INFORMATICO. Sistema informativo e sistema informatico

Corso di Sistemi di Elaborazione delle informazioni

Cap. 1-I 1 I sistemi informatici

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

SISTEMI OPERATIVI, RETI, INTERNET

DBMS. Alice Pavarani

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

I modelli logici dei dati

SQL Esercitazione (database e tabelle) Ing. Cosimo Orlacchio

Metodologie e modelli di progetto

Bibliografia e strumenti. Obiettivi del corso. Comunicazione docente

2011 Politecnico di Torino 1

Basi di Dati Concetti Introduttivi

MODELLO e RAPPRESENTAZIONE

Modulo 2 Data Base - Modello Relazionale

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Capitolo 5. Soluzione: Soluzione in C:

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012. Basi di dati

I database. Introduzione alla teoria delle basi di dati

Corso di Sviluppi dell Informatica e della Telematica a.a (ultima edizione v.o. 509)

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Interrogazioni nidificate

Informatica Documentale

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale

Le basi di dati. Le basi di dati. dalla teoria all'utilizzo di tutti i giorni. Alessandro Tanasi

Linee di programmazione

Basi di dati. Basi di dati = database

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Le Basi di Dati Attive

Basi di Dati: Corso di laboratorio

Sistema operativo. Interazione con il SO

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Capitolo 6 Le infrastrutture SoftWare

PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALEDI INFORMATICA

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE TERZA

Informatica e Bioinformatica: Basi di Dati

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

Aspetto comune: organizzazione di grandi quantità di dati permanenti da rendere accessibili in modo interattivo o da programmi.

Basi di dati Modelli e linguaggi di interrogazione

Laboratorio Progettazione Web

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

Il PROCESSO UNIFICATO

ITI M. FARADAY Programmazione modulare a.s

D B M G Il linguaggio HTML

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

Interrogazioni nidificate

Strutture dati e loro organizzazione. Gabriella Trucco

Basi di dati. Basi di dati. Basi di dati. Basi di dati (Database, DB) Basi di dati (Database, DB) Basi di dati (Database, DB)

Ciclo di vita di un sistema informativo

Basi di Dati. Corso di Informatica. Memorizzazione dei Dati. Accesso ai Dati. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE TRIENNIO: TERZA DISCIPLINA: INFORMATICA

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

PHP e MySQL. Scripting server-side per accesso a DB MySQL

LO SVOLGIMENTO DEL TEMA DI INFORMATICA

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Esempio di database relazionale con l utilizzo del prodotto MySQL

RELAZIONI E BASI DI DATI

Il modello relazionale

Corso Programmazione Java Standard

@2011 Politecnico di Torino 1

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

Transcript:

DBMS Un DBMS deve garantire: Affidabilità Privatezza dei dati Efficienza Efficacia

DBMS Affidabilità Un DBMS deve garantire di poter mantenere intatto il suo contenuto, anche in caso di malfunzionamento. L integrità dei dati è affidata a procedure di backup (salvataggio) e recovery (recupero) dei dati, o alla loro duplicazione nei casi più critici.

DBMS Privatezza dei dati Ogni utente, abilitato a utilizzare la base di dati attraverso una procedura di riconoscimento, può accedere ad insiemi limitati di dati e compiere solo certe operazioni su di essi.

DBMS Efficienza Un DBMS deve operare e fornire risposte agli utenti in tempi accettabili, utilizzando una quantità il più possibile limitata di risorse. L efficienza dipende essenzialmente dalle tecniche utilizzate per l implementazione del DBMS e dalla buona progettazione della base di dati. Si misura (come in tutti i sistemi informatici) in termini di tempo di esecuzione (tempo di risposta) e spazio di memoria (principale e secondaria) occupato.

DBMS Efficacia Capacità di un DBMS di rendere produttive le attività degli utenti, cioè di consentire la realizzazione di basi di dati che risolvano in modo efficace i problemi degli utenti. Concetto generico, qualitativo e non legato a specifiche funzionalità del DBMS. Non esistono criteri oggettivi per valutarla.

Modelli dei dati Un modello di dati è costituito dai concetti sulla base dei quali i dati sono strutturati e codificati. Ogni modello di dati fornisce meccanismi di strutturazione dati, analoghi ai costruttori di tipo dei linguaggi di programmazione. I modelli concettuali descrivono la realtà mediante concetti astratti, ma soggetti a precise regole. Non sono finalizzati alla rappresentazione dei dati, ma ai concetti del mondo reale di cui i dati sono istanze. Si usano in fase di progettazione. Nel corso useremo i diagrammi Entità/Relazione

Modelli dei dati Esempio (molto semplice) di diagramma Entità/Relazione, modello di tipo concettuale. Studente (0,N) Esame (0,N) Insegnamento Si esprimono i concetti che devono essere rappresentati dai dati come concetti indipendenti (entità) e relazioni logiche che li collegano (relazioni) e che esistono solo in presenza delle entità.

Modelli dei dati I DBMS si differenziano in base al modello logico che utilizzano. I modelli logici, seppure astratti, riflettono la struttura con cui i dati sono organizzati. Relazionale Il più diffuso, basato su un modello tabellare dei dati Gerarchico Utilizzato nei primi DBMS (anni 60), tuttora utilizzato, basato su strutture ad albero Reticolare Estensione del modello gerarchico, basato su grafi A oggetti Estensione del modello relazionale basato sui paradigmi OOP. XML (semistrutturato) Deriva dal modello gerarchico, ma è più flessibile

Modello Relazionale E un modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO e MANIFESTO) Corso Titolare CdL Materia Anno Basi di Dati e Web Cagnoni IET-I Basi di Dati e Web 3 Fondamenti di Informatica Tomaiuolo IET Fondamenti di Informatica 1 Ingegneria Del Software Poggi IET-I Ingegneria del Software 3

Schemi In ogni base di dati si possono distinguere: Lo schema, sostanzialmente invariante nel tempo. Ne descrive la struttura (aspetto intensionale) Nell esempio, le tabelle e le «intestazioni» delle tabelle Le istanze, cioè i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale) Nell esempio, i singoli dati contenuti in 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 definita su due attributi (campi del record identificati da una etichetta che ne descrive il significato). Le n-ple di attributi appartenenti alla relazione, a ciascuno dei quali deve essere assegnato un valore, sono dette istanze della relazione. (Basi di dati, Cagnoni) è una istanza di INSEGNAMENTO.

Schemi Gli schemi possono operare a diversi livelli di astrazione Schema interno (o schema fisico) implementa lo schema logico mediante strutture fisiche di memorizzazione Schema logico descrive la struttura dell intera base di dati mediante il modello logico adottato dal DBMS (reticolare, gerarchico, relazionale)

Schemi Schema esterno descrive la struttura di una porzione della base di dati attraverso il modello logico, dal punto di vista di una classe di utenti. Generalmente realizzato mediante viste, relazioni derivate da quelle che costituiscono lo schema logico. Es. (i soli corsi del curriculum Ingegneria Informatica) CdL Materia Anno IET-I IET-I Basi di Dati e Web Ingegneria del Software 3 3

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

Progettazione di una base di dati I diversi tipi di modello riflettono le diverse fasi della progettazione: date le specifiche del problema da risolvere Progettazione concettuale (specifiche schema concettuale) Definisce quali concetti rappresentare, sia dal punto di vista della loro descrizione che da quello delle relazioni logiche che esistono fra di essi Progettazione logica (schema concettuale schema logico) Definisce come rappresentare i concetti introdotti a livello concettuale in forma di strutture dati Progettazione fisica (schema logico schema fisico) Definisce come allocare e gestire fisicamente i dati all interno del calcolatore

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

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.

SQL, un linguaggio interattivo SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano = "Terra" Corsi Corso Sistemi Aula N3 Nome N3 Piano Terra Aule Reti N2 N2 Terra Corso Sistemi Reti Aula Nome N3 N2 N3 Piano Terra 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

while($row) { print '<tr>'; foreach($row as $value) { print "<td>$value</td>";} print '</tr>'; $row = mysql_fetch_assoc($res);} print '</table>';?> </body> </html> PHP embedded in codice HTML <html> <body> <?php $user="root"; $password=""; $host="127.0.0.1"; $database="prova"; mysql_connect($host,$user,$password); @mysql_select_db($database) or die("unable to select database"); $query="select * from utenti"; $res=mysql_query($query); mysql_close(); $row = mysql_fetch_assoc($res); print '<table><tr>'; foreach($row as $name => $value) { print "<th>$name</th>";} print '</tr>'; Connessione a mysql tramite API PHP

Interazione non testuale (in Access) Realizza l approccio detto Query by Example