0 Aspetti relazionali ad oggetti di SQL:1999. 1 Utilizzo di un DBMS zTre classi di applicazioni: yapplicazioni gestionali yapplicazioni navigazionali.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
SQL applicato a SQL Server
Stored Procedure Function Trigger
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
0 Basi di Dati Relazionali ad Oggetti. 1 RDBMS: panorama attuale Gestiscono e manipolano dati semplici (tabellari) Hanno un linguaggio di interrogazione.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Basi di dati attive Dispongono di un sottosistema integrato per definire e gestire regole di produzione (regole attive) Regole di tipo: Evento-Condizione-Azione.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Frontespizio Economia Monetaria Anno Accademico
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai.
Dipartimento di Ricerca Sociale - Università del Piemonte Orientale 1 Castelli Aperti giugno 2005 Castello di Camino (AL) IL PUBBLICO DI CASTELLI.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
eliana minicozzi linguaggi1a.a lezione2
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Basi di dati attive Paolo Atzeni.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
1ROL - Richieste On Line Ente pubblico 5ROL - Richieste On Line.
Implementare un modello di dati
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
sql: esempi di linguaggio sql nell'implementazione mysql
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
SQL.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
ODMG. L’ODMG L’Object Data Management Group è un consorzio di produttori di ODBMS che ha proposto uno standard per: il modello a oggetti il linguaggio.
1 Microsoft Access Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica per laurea triennale.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
MySQL Database Management System
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: –Gestione di vincoli di integrità: Per fallimento Per modifica.
0 Basi di Dati Relazionali ad Oggetti. 1 RDBMS: panorama attuale Gestiscono e manipolano dati semplici (tabellari) Hanno un linguaggio di interrogazione.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Basi di Dati attive. Sistemi Informativi DEE - Politecnico di Bari E. TinelliBasi di dati attive2 Definizione Una base di dati si dice attiva quando dispone.
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:

0 Aspetti relazionali ad oggetti di SQL:1999

1 Utilizzo di un DBMS zTre classi di applicazioni: yapplicazioni gestionali yapplicazioni navigazionali yapplicazioni multimediali

2 ORDBMS: caratteristiche generali zNuovi tipi di dato ytesti, immagini, audio/video, dati geografici, ecc. ytipi di dato user-defined ymetodi per modellare le operazioni sui tipi definiti dall'utente zInterrogazioni per contenuto su dati multimediali zTrigger & stored procedure

3 Estensione del sistema di tipi zTipi semplici zTipi complessi: yADT yrow types zTipi riferimento zTipi collezione

4 Tipi semplici zI tipi semplici (o distinct type) sono la forma più semplice di estensione del sistema dei tipi fornita da un ORDBMS zConsentono agli utenti di creare nuovi tipi di dati, basati su un solo tipo primitivo zSono usati per definire tipi di dati che richiedono operazioni diverse rispetto al tipo primitivo su cui sono definiti

5 Tipi complessi zUn tipo complesso, o strutturato,include uno o più attributi zAnaloghi alle struct del C o ai record del Pascal z possono essere usati come: ytipi di una colonna in una relazione (ADT) ytipi di una tabella (row types)

6 Abstract data types CREATE TYPE t_indirizzo( numero_civicoINTEGER, viaVARCHAR(50), cittàCHAR(20), statoCHAR(2), capINTEGER); t_indirizzo è un tipo complesso i cui attributi hanno tipi predefinitii

7 Abstract data types zGli ADT possono essere usati come tipi di una colonna di una relazione: CREATE TABLE Impiegati ( imp# id_impiegato, nome CHAR(20), curriculum TEXT, indirizzo t_indirizzo);

8 Abstract data types zGli ADT possono anche essere annidati zSugli ADT possono essere definiti metodi come parte della definizione del tipo zGli ADT sono totalmente incapsulati zLa loro manipolazione può avvenire solo mediante apposite funzioni automaticamente create dal DBMS al momento della creazione dellADT

9 Row types zUn tipo complesso può anche essere usato come tipo di una intera tabella (row type) zLe righe della tabella sono istanze del tipo complesso mentre le colonne coincidono con gli attributi del tipo complesso

10 Row types zPermettono di definire un insieme di tabelle che condividono la stessa struttura zPermettono di modellare in modo intuitivo le associazioni tra dati in tabelle diverse zConsentono di definire gerarchie di tabelle

11 Esempio (relazionale) Impiegati prj# Progetti prj# SM Oracle …. imp#... nome

12 Row types zIn un ORDBMS ho due opzioni in più: ydefinire un ADT t_progetto e usare questo come tipo di una colonna della relazione Impiegati (ridondanza dei dati perché lo stesso progetto può essere memorizzato molte volte in Impiegati) ydefinire una tabella basata su un nuovo tipo complesso e riferire le colonne istanza di questo nuovo tipo

13 Esempio CREATE TYPE t_progetto( prj#INTEGER, nomeVARCHAR(20), descrizioneVARCHAR(50), budgetINTEGER); CREATE TABLE Progetti OF t_progetto;

14 Tipi riferimento zI row type possono essere combinati con i tipi riferimento (REF type) zPermettono di rappresentare facilmente le associazioni tra istanze di tipi zTali tipi permettono ad una colonna di riferire una tupla in un'altra relazione zUna tupla in una relazione viene identificata tramite il suo OID

15 Esempio CREATE TABLE Progetti OF t_progetto (prog_refREF(t_progetto)); prog_ref prj#nome descrizione budget xxxx 433DB2 ORDBMS 20,000,000 Riferimento univoco creato automaticamente dal DBMS

16 Esempio CREATE TABLE Impiegati( imp#id_impiegato, nomeVARCHAR(50), indirizzot_indirizzo, assegnamentoREF(t_progetto) SCOPE Progetti); Più impiegati possono riferire lo stesso progetto Un impiegato è assegnato al massimo ad un progetto

17 Tipi collezione zSet zBag zList zArray

18 Esempio CREATE TABLE Impiegati( imp#id_impiegato, nomeVARCHAR(50), competenzeSET(VARCHAR(20)), titolo_di_studioVARCHAR(30));

19 Esempio CREATE TYPE t_impiegato( imp#id_impiegato, nomeVARCHAR(30), indirizzot_indirizzo, managerREF(t_impiegato), progettiSET(REF(t_progetto)), figliLIST(REF(t_persona)), hobbySET(VARCHAR(20))); CREATE TABLE Impiegati2 OF t_impiegato;

20 Ereditarietà zPossibilità di definire relazioni di supertipo/sottotipo zLereditarietà consente di specializzare i tipi esistenti a seconda delle esigenze dellapplicazione zUn sottotipo eredita gli attributi e i metodi dei suoi supertipi

21 Ereditarietà zSi possono distinguere due tipi di ereditarietà yereditarietà di tipi yereditarietà di tabelle

22 Ereditarietà di tipi CREATE TYPE t_persona( nomeCHAR(20), idINTEGER, data_di_nascitaDATE, indirizzot_indirizzo); CREATE TYPE t_insegnante( stipendioDECIMAL(8,2), dipartimentoREF t_dipartimento, corsi_insegnatiTABLE OF REF t_corso) UNDER t_persona;

23 Ereditarietà di tipi CREATE TYPE t_studente( corsi_seguiti TABLE OF REF t_corso) UNDER t_persona; persona insegnante studente

24 Ereditarietà di tabelle zCome visto in precedenza i row type possono essere usati come tipi di tabelle zI row type possono essere organizzati in gerarchie di ereditarietà zLa gerarchia definita sui row type impone anche una gerarchia sulle tabelle definite con questi tipi

25 Esempio zCREATE TABLE Persone OF t_persona; zCREATE TABLE Insegnanti of t_insegnante UNDER Persone; zCREATE TABLE Studenti OF t_studente UNDER Persone; zE stata creata una gerarchia tra le tabelle Persone, Insegnanti e Studenti zLa gerarchia influenza i risultati delle interrogazioni

26 Large Objects (LOBs) zFacilitano la memorizzazione di dati multimediali (documenti, immagini, audio, ecc.) zPossono contenere fino a 4GB di dati (di solito i RDBMS non vanno oltre 2-32KB) zIl DBMS non associa nessuna interpretazione a questi dati

27 LOB zSi distinguono in: yBLOB (Binary Large Object) yCLOB (Character Large Object) zSono fisicamente memorizzati esternamente alle tabelle ma internamente al DB (comportamento transazionale)

28 LOB CREATE TABLE Pazienti( idINTEGER, etàINTEGER, cartella_clinica CLOB(1M), radiografiaBLOB(10M));

29 Metodi zI metodi sono funzioni definite dallutente associate ai tipi zPossono essere scritti in linguaggi proprietari del DBMS o in 3GL zLa sintassi varia notevolmente a seconda del DBMS utilizzato

30 Metodi CREATE TYPE t_persona( nomeCHAR(20), idINTEGER, data_di_nascitaDATE, indirizzot_indirizzo) MEMBER FUNCTION età(t_persona) RETURNS INTEGER;

31 Trigger zI trigger sono delle regole attive (scritte in SQL) che possono essere associate alle tabelle zI trigger vengono automaticamente attivati al verificarsi di una certa condizione zLa loro attivazione comporta una serie di operazioni nel DB (inserimenti in tabelle, ecc.)

32 Trigger zStruttura generale: ON WHERE DO

33 Trigger zEvento: INSERT, DELETE, UPDATE zCondizione: una qualsiasi condizione espressa in SQL (anche sottointerrogazioni) zAzione: una qualsiasi istruzione SQL zTempo di attivazione: BEFORE o AFTER levento che ha causato lattivazione del trigger

34 Esempio zSi vuole definire un trigger che faccia in modo che ogni richiesta di rimborso per spese di viaggio contenga il codice del conto da cui tale rimborso deve essere effettuato zSi supponga di avere due tabelle: ySpese(id_imp,id_dip,id_prg,inizio_viaggio,fin e_viaggio,totale,n_conto) yConti(n_conto,id_dip,id_prg)

35 Esempio CREATE TRIGGER Codice_Conto BEFORE INSERT on Spese REFERENCING NEW AS N FOR EACH ROW WHEN(N.n_conto IS NULL) SET N.n_conto = (SELECT n_conto FROM Conti WHERE id_dip = N.id_dip AND id_prg = N.id_prg)

36 Trigger zConsentono di specificare facilmente vincoli e controlli zUn loro uso massiccio può però penalizzare le prestazioni zCatene infinite di trigger

37 Stored Procedure zSono procedure memorizzate persistentemente nello schema del DB zPossono essere invocate da molteplici applicazioni zMigliorano le prestazioni in quanto riducono la comunicazione tra client (applicazione) e DBMS (server)

38 Stored Procedure zPossono essere scritte in un linguaggio di programmazione (Java,C++,ecc.) o in unestensione procedurale del linguaggio SQL (Oracle PL/SQL,Sybase Transact/SQL, Informix 4GL,) zIl maggiore svantaggio delle stored procedure è la mancanza di standardizzazione