RDBMS: panorama attuale. RDBMS: panorama attuale



Похожие документы
Introduzione ai Sistemi di Gestione di Basi di Dati XML

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Corso sul linguaggio SQL

Gestione delle tabelle

Tipi MULTISET: accesso

DBMS (Data Base Management System)

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

SQL - Tipi di dato Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

DATABASE.

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Laboratorio di Basi di Dati e Web

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Linee di evoluzione dei Database

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Lezione V. Aula Multimediale - sabato 29/03/2008

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Lezione 9. Applicazioni tradizionali

Dati relazionali e XML

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Facoltà di Farmacia - Corso di Informatica

Progettazione di Basi di Dati

Sistemi informativi secondo prospettive combinate

User Tools: DataBase Manager

Laboratorio di Basi di Dati

Volumi di riferimento

Al giorno d oggi, i sistemi per la gestione di database

Base di dati e sistemi informativi

Database. Si ringrazia Marco Bertini per le slides

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

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Informatica per le discipline umanistiche 2 lezione 10

Organizzazione degli archivi

Linguaggio SQL. Structured Query Language

Definizione di domini

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Le Basi di Dati. Le Basi di Dati

Introduzione all Information Retrieval

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

I database relazionali (Access)

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Sistemi per la gestione di database: MySQL ( )

Access. P a r t e p r i m a

SQL/OLAP. Estensioni OLAP in SQL

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Capitolo 13. Interrogare una base di dati

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

1. BASI DI DATI: GENERALITÀ

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Lezione 8. Metadati, Viste e Trigger

SQL. Alcune note sulla definizione dei dati

Corso di Informatica (Basi di Dati)

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Informatica I per la. Fisica

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Caratteristiche principali. Contesti di utilizzo

Introduzione. Dicom in Oracle 11g: gestione e vantaggi

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Lezione 1. Introduzione e Modellazione Concettuale

XML e Sistemi per la Gestione di Basi di Dati Relazionali

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Introduzione ai database relazionali

Strumenti di modellazione. Gabriella Trucco

Architettura MVC-2: i JavaBeans

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di Dati e Microsoft Access

Sistemi centralizzati e distribuiti

19. LA PROGRAMMAZIONE LATO SERVER

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

L architettura di un DBMS

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

Creare diagrammi di Gantt con Visio 2003

Concetto di Funzione e Procedura METODI in Java

Unità 2.1 Comandi sui database

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

Il database management system Access

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

Modellazione dei dati in UML

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Il linguaggio SQL: DDL di base

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Транскрипт:

RDBMS: panorama attuale Gestiscono e manipolano dati semplici (tabellari) Hanno un linguaggio di interrogazione (SQL) semplice, dichiarativo e standard Tool consolidati per lo sviluppo di applicazioni (Oracle Developer, Sybase Power Builder, Microsoft Visual Basic) 1 RDBMS: panorama attuale Portabili su diverse piattaforme Esempi di RDBMS: Oracle, Postgre, Microsoft SQL Server, IBM DB2 Buone prestazioni Affidabilità, gestione transazioni Basati su una architettura client-server supportano efficientemente un gran numero di utenti Forniscono meccanismi di controllo dell accesso 2

RDBMS Il mercato dei DBMS relazionali ha raggiunto i 13 miliardi di dollari nel 2004, e si aspetta di arrivare intorno ai 20 miliardi di dollari nel 2008 (IDC 2005) 3 RDBMS: problemi Prevalentemente connessi alle caratteristiche intrinseche del modello relazionale: SQL-92 fornisce solo un insieme limitato di tipi di dato le tabelle hanno una struttura flat e non forniscono un buon supporto per strutture annidate, quali insiemi ed array non è possibile definire relazioni di specializzazione/generalizzazione tra gli oggetti di un database 4

RDBMS: problemi Le associazioni tra entità vengono modellate per valore e questo nel caso di associazioni complesse può richiedere la creazione di parecchie tabelle/colonne fittizie 5 RDBMS: problemi R1(A1, A2, A3, A4) R2(B1, B2, B3, B4) Un associazione n-n tra R1 e R2 richiede la creazione della seguente relazione: RA(A1, A2, B1, B2, B3) Oppure si inserisce un codice in R1 e R2, ma viene sempre creata una nuova relazione R1(A, A1, A2, A3, A4) R2(B, B1, B2, B3, B4) RA(A,B) 6

RDBMS: problemi Gli RDBMS non sfruttano gli approcci objectoriented per la progettazione e realizzazione di software che oggi stanno diventando pressochè uno standard UML 7 OODBMS: panorama attuale Permettono di modellare direttamente oggetti complessi e le loro associazioni Object-orientation sempre più diffuso in ambito software engineering e programmazione: unicità del paradigma Buone prestazioni per applicazioni navigazionali Limitato supporto per concorrenza, parallelismo e distribuzione 8

OODBMS: problemi Il progetto del database è strettamente legato al progetto delle applicazioni Mancanza di un modello dei dati e di un linguaggio di query standard pienamente accettati Mancanza di un linguaggio di query dichiarativo (SQLlike) Semplici modelli transazionali Limitate funzionalità di controllo dell accesso Coprono un mercato di nicchia che richiede accessi navigazionali efficienti (disegno di chip, ecc.) 9 RDBMS vs. OODBMS RDBMS forniscono un supporto efficiente ed efficace per applicazioni che manipolano dati semplici OODBMS forniscono un supporto efficiente per alcune classi di applicazioni su dati complessi, ma senza molti degli aspetti positivi dei RDBMS 10

Il modello relazionale ad oggetti I DBMS relazionali ad oggetti (object-relational) nascono dall esigenza di assicurare le funzionalità dei RDBMS rispetto alla gestione di dati tradizionali, estendendo il modello dei dati con la possibilità di gestire dati complessi tipica degli OODBMS 11 ORDBMS: caratteristiche generali Nuovi tipi di dato: testi, immagini, audio/video, dati geografici, ecc. tipi di dato user-defined tipi collezione Metodi per modellare le operazioni sui tipi definiti dall'utente (es. Java, C) Nuovi modi per modellare le associazioni La filosofia per la gestione dei dati è però ancora quella relazionale: Tutti gli accessi ai dati avvengono tramite SQL Tutti le entità di interesse sono modellate tramite tabelle 12

ORDBMS: panorama attuale Oggi quasi tutti i principali produttori di RDBMS (Oracle, Informix, DB2,..) hanno esteso i loro DBMS con caratteristiche object-relational Tali estensioni presuppongono anche una estensione del linguaggio SQL Molti ORDBMS commerciali supportano Funzionalità dello standard, ma non sempre la sintassi Funzionalità aggiuntive non previste dallo standard Le caratteristiche object-relational sono state introdotte nello standard SQL-99 (conosciuto anche come SQL-3) 13 SQL-2003 e SQL-99: confronto Rispetto a SQL-99, SQL-2003 supporta le seguente nuove caratteristiche relazionali ad oggetti: Specifica object/relational più chiara Più tipi collezione (oltre a set e array anche multiset) 14

Versioni dello standard SQL anno Nome(alias) Descrizione 1986 SQL-86 (SQL-87) Primo standard pubblicato da ANSI e ratificato da ISO nel 1987 1989 SQL-89 Revisione minimale 1992 SQL-92(SQL2) Revisione sostanziale 1999 SQL:1999 (SQL3) Vengono aggiunti: espressioni regolari, interrogazioni ricorsive, triggers, tipi non scalari e alcune caratteristiche object-oriented (le ultime due molto controverse e non completamente supportate) 15 2003 SQL:2003 (SQL:200n) Trattamento di documenti XML, sequenze standard e colonne con valori autogenerati (comprese colonneidentità), completamento caratteristiche O-O Nel seguito Discutere le caratteristiche object-relational dello standard SQL-2003 introdurremo le caratteristiche relazionali ad oggetti di Oracle 16

Il sistema dei tipi in SQL-2003 17 Tipi in SQL-2003 TIPI Definiti dagli utenti PREDEFINITI (built-in) CONSTRUCTED Tipi semplici ADT (abstract data type) ARRAY COLLECTION MULTISET REF (riferimento) ROW (record) 18

Tipi predefiniti 19 In SQL-2003 i tipi predefiniti sono: numerici (NUMERIC, DECIMAL, SMALLINT, INTEGER, BIGINT, FLOAT, REAL, DOUBLE PRECISION) carattere (CHARACTER, CHARACTER VARYING) temporali (DATE, TIME, TIMESTAMP, INTERVAL) booleani (BOOLEAN) non strutturati (CHARACTER LARGE OBJECT, BINARY LARGE OBJECT) I tipi BIT, BIT VARYING presenti in SQL-1999 vengono rimossi dal nuovo standard perché nessun DBMS li supporta effettivamente Tipi predefiniti Per ogni tipo built-in esistono un insieme finito e predefinito di operazioni che su di esso possono essere eseguite Queste limitazioni rendono spesso difficile la rappresentazione di dati reali 20

Tipi definiti dagli utenti: Tipi semplici I tipi semplici (o distinct type) sono la forma più semplice di estensione del sistema dei tipi fornita da un ORDBMS Consentono agli utenti di creare nuovi tipi di dati, basati su un solo tipo (built-in o userdefined) Esempio: type euro decimal(8,2) 21 Tipi semplici SQL-2003 consente di definire tipi semplici basati solo su tipi built-in CREATE TYPE <name> AS <built-in type> FINAL Vedremo in seguito il significato della clausola FINAL 22

Esempio CREATE TYPE id_impiegato AS INTEGER FINAL; CREATE TABLE Impiegati( id id_impiegato, nome VARCHAR(50), età INTEGER, id_manager id_impiegato); 23 Tipi semplici Sono usati per definire tipi di dati che richiedono operazioni diverse rispetto al tipo su cui sono definiti I tipi semplici sono considerati dal DBMS totalmente distinti dal tipo su cui si basano I valori del tipo semplice non sono direttamente confrontabili con quelli del tipo su cui si basano (strong typing) 24

Esempio Si consideri il tipo id_impiegato basato sul tipo intero CREATE TYPE id_impiegato AS INTEGER FINAL; Come il tipo intero, id_impiegato è utilizzato per memorizzare valori numerici ma il DBMS tratterà i due tipi come tipi distinti 25 Per i due tipi possono essere definite operazioni diverse (ad esempio la somma di due identificatori non ha senso, mentre potrebbe essere utile una operazione di confronto) Tipi semplici I valori dei tipi semplici sono considerati come distinti dai valori del tipo di base Non è fornito alcun meccanismo di ereditarietà e subtyping per i tipi semplici Confronti con il tipo base o con altri tipi semplici definiti sullo stesso tipo base richiedono operazioni di cast 26

Esempio - assegnazione SELECT nome FROM Impiegati WHERE id_manager = 123; errore 27 Esempio - confronto CREATE TYPE Euro AS Decimal(8,2) FINAL; CREATE TYPE Dollaro_USA AS Decimal(8,2) FINAL; CREATE TABLE Vendite_Europee( n_cliente INTEGER, n_ordine INTEGER, totale Euro); CREATE TABLE Vendite_USA( n_cliente INTEGER, n_ordine INTEGER, totale Dollaro_USA); 28

Esempio: confronto SELECT n_cliente,n_ordine FROM Vendite_Europee ERP, Vendite_USA USA WHERE ERP.n_ordine = USA.n_ordine AND ERP.totale > USA.totale; errore!!! 29 Tipi semplici: casting L ORDBMS crea automaticamente due funzione di casting quando un nuovo tipo semplice viene creato Il DBMS definisce due funzioni di casting per ogni nuovo tipo semplice: una per passare dal tipo semplice al tipo built-in una per passare dal tipo built-in al tipo semplice 30 Tale funzione puo comunque essere successivamente modificata dall utente

Tipi semplici: casting in SQL-2003 CREATE CAST (<source type> AS <target type>) WITH <segnatura funzione> [AS ASSIGNMENT] <source type>: tipo input <target type>: tipo output almeno uno tra <source type> e <target type> deve essere un tipo definito dall utente l altro può essere un tipo qualunque 31 Tipi semplici: casting in SQL-2003 <segnatura funzione> è la segnatura di una qualunque funzione la funzione deve essere definita come segue: FUNCTION <name> (<source type>) RETURNS <target type> codice... 32

Tipi semplici: casting in SQL-2003 Se la clausola AS ASSIGNMENT è specificata, il casting è invocato implicitamente quando necessario per ogni coppia di tipi può esistere una sola funzione di casting definita dall utente Le funzioni di casting per i tipi semplici vengano create automaticamento dal sistema con la clausola AS ASSIGNMENT 33 Tipi semplici: casting in SQL-2003 La funzione di casting può essere invocata: esplicitamente CAST(<source type> as <target type>) implicitamente, senza invocare la funzione CAST la stessa funzione può essere invocata per casting su tipi built-in (esempio: integer in real) 34

Esempio SELECT nome FROM Impiegati WHERE id_manager = CAST(123 AS id_impiegato); SELECT nome FROM Impiegati WHERE id_manager = 123; 35 Esempio SELECT n_cliente,n_ordine FROM Vendite_Europee ERP, Vendite_USA USA WHERE ERP.n_ordine = USA.n_ordine AND CAST(ERP.totale AS Decimal(8,2) > CAST(USA.totale AS Decimal(8,2)); 36

Esempio - alternativa Per passare da Euro a Dollaro_USA posso anche definire una nuova funzione di cast CREATE FUNCTION f(e Euro) RETURNS Dollaro_USA BEGIN DECLARE g DECIMAL(8,2); SET g = e; RETURN g; END; 37 CREATE CAST(Euro AS Dollaro_USA) WITH FUNCTION f(euro); E corretto? SELECT n_cliente,n_ordine FROM Vendite_Europee ERP, Vendite_USA USA WHERE ERP.n_ordine = USA.n_ordine AND ERP.totale > USA.totale; e corretta solo se la funzione di cast e definita cn la clausola AS ASSIGNMENT 38