Complementi di basi di dati Progetti ModelGen - MIDST P. Atzeni, P. Cappellari, G. Gianforme 15 marzo 2007.

Slides:



Advertisements
Presentazioni simili
La gioia di…. essere AIMC Aimc Sicilia 2007.
Advertisements

Qual è la differenza e quando li usiamo?
LItalia nel quadro economico internazionale Fedele De Novellis Firenze, 26 novembre
Teoria e Tecniche del Riconoscimento
Maurizio tiriticcoCompetenze Europa le competenze nel contesto europeo spunti di riflessione a cura di Maurizio Tiriticco.
Impiegati NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Supervisione ImpiegatoCapo 5998.
Algebra e calcolo relazionale (parte 2)
Relaunching eLene Who are we now and which are our interests.
EBRCN General Meeting, Paris, 28-29/11/20021 WP4 Analysis of non-EBRCN databases and network services of interest to BRCs Current status Paolo Romano Questa.
LE AZIENDE FEMMINILI Iniziativa Comunitaria Equal Imprenditorialità femminile nella Provincia di Pesaro-Urbino Luigina Mancini Pesaro, 16 febbraio 2007.
Università degli Studi di Cassino e del Lazio Meridionale Dipartimenti di Scienze Umane, Sociali e della Salute Lingua Inglese a.a (Dott. Saverio.
Each student will be able to ask an adult or stranger: What do you like to do? and What dont you like to …?
1.E un algoritmo ricorsivo: Tutti le istanze di oggetti raggiungibili da un oggetto persistente diventano anchessi persistenti.
La legislazione vigente
Fancello Monica & Manca Francesca A.A LA NUOVA POLITICA DI COESIONE LA NUOVA POLITICA DI COESIONE periodo di programmazione II°
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
Raffaele Cirullo Head of New Media Seconda Giornata italiana della statistica Aziende e bigdata.
Via Garibaldi Torino - Tel. 011/ Fax 011/ mail: - Convegno del Il progetto Comunicazione Unica.
HDM Information Design notation v.4. HDM Information Design.
C Consiglio Nazionale delle Ricerche - Pisa Iit Istituto per lInformatica e la Telematica Reasoning about Secure Interoperation using Soft Constraints.
Biometry to enhance smart card security (MOC using TOC protocol)
M.Desimoni, F.Formica, L.Bondi
La barca, le vele gli strumenti
IL PROGETTO MAITRE Conferenza Finale, Firenze Centro Studi CISL.
08/11/20071 Il consenso condizionato: le riserve I Art. 2, par. 1, lett. d) CDV definisce la riserva come una dichiarazione unilaterale, comunque formulata.
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Complementi di basi di dati Progetti ModelGen - MIDST P. Atzeni, P. Cappellari, G. Gianforme 12 marzo 2007.
Basi di dati: esercitazione Paolo Atzeni 15/05/2008.
Metodi di simulazione numerica in Chimica Fisica Dario Bressanini Universita degli Studi dellInsubria III anno della Laurea triennale in Scienze Chimiche.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
Magnetochimica AA Marco Ruzzi Marina Brustolon
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Players: 3 to 10, or teams. Aim of the game: find a name, starting with a specific letter, for each category. You need: internet connection laptop.
Giornata ERASMUS MiUR Ministero dellUniversità e della Ricerca GIORNATA NAZIONALE ERASMUS Roma luglio 2007 Ultime dallEuropa … (Daniela Giacobazzi)
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
1 Attivita di ricerca Carlo Batini. 2 Aree Come costruire ed esprimere il contenuto informativo integrato di sistemi informativi complessi basati.
A cura di L.Pagani - novembre FACOLTA DI SCIENZE MFN FOCUS SULLA RIFORMA: I REQUISITI DM 31/10/07 n. 544.
Alcuni, qualche, un po’ di
Guardate le seguenti due frasi:
Reggio Emilia 5 maggio L audioprotesista e le indicazioni mediche discutibili.
La valutazione: problemi e prospettive
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
ISTITUTO MOLINARI INDUSTRIE DE NORA OHIO, USA
Preposizioni preposizioni utili a di in su da at / to / in of / from / by in / to / at / by on / in from / by / to /at.
Each meeting was an opportunity to pause; to listen and to find God in the quiet. Ogni incontro si è presentato come un'opportunità per ascoltare, riflettere.
Corso Di Programmazione Grafica aa2006/2007
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
LA SODDISFAZIONE DEGLI UTENTI DEI SERVIZI CATASTALI Sintesi dei risultati dell’indagine del 2007 Roma, ottobre 2007.
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Basi di dati Esercizi su ALGEBRA RELAZIONALE 17/10/2013 Paolo Atzeni 1.
Saluti ed espressioni Greetings in Italian.
Italian 1 -- Capitolo 2 -- Strutture
Prof. G.PassianteCorso di Economia dell’innovazione - A.A. 2012/13 The Process Handbook: A Tool for Business Process Redesign.
Dynamic SQL.
Esercizi su ALGEBRA RELAZIONALE
Ratifica dei trattati internazionali - Italia Art. 87 Costituzione “Il Presidente della Repubblica…ratifica i trattati internazionali, previa, quando occorra,
5^BLS Regione Friuli Venezia Giulia Liceo Scientifico “Albert Einstein”
Buon giorno Io sono Professoressa Kachmar. Buon giorno Io sono Professoressa Kachmar.
LA SODDISFAZIONE DEGLI UTENTI DI SISTER Sintesi dei risultati dell’indagine del 2007 per l’Agenzia Roma, ottobre 2007.
Lifelong Learning Programme (LLP)
Policlinico Universitario Agostino Gemelli ©2007
Progetto Lauree Scientifiche-Matematica in Sicilia Seminario Regionale Progetto Lauree Scientifiche Palermo, 4 Giugno 2007.
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
A. A – 2008 Basi di dati 1 Corso Prof
X. Specifications (IV).
Progettazione concettuale
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Transcript della presentazione:

Complementi di basi di dati Progetti ModelGen - MIDST P. Atzeni, P. Cappellari, G. Gianforme 15 marzo 2007

P. Atzeni15 marzo Datalog Un linguaggio di programmazione logica per basi di dati derivato dal Prolog Utilizza predicati di due tipi: –estensionali: relazioni della base di dati –intensionali: corrispondono alle viste Il linguaggio è basato su regole utilizzate per "definire" i predicati estensionali

P. Atzeni15 marzo Datalog in ModelGen-MIDST In ModelGen-MIDST usiamo Datalog per materializzare i risultati delle traduzioni: –le regole generano i costrutti tradotti –La distinzione fra predicati intensionali e estensionali è leggermente diversa dal normale Utilizziamo unestensione importante: generazione di OID con funzioni di Skolem

P. Atzeni15 marzo Datalog, sintassi Regole: testa corpo –testa è un predicato atomico (intensionale) –corpo è una lista (congiunzione) di predicati atomici Le interrogazioni sono specificate per mezzo di predicati atomici (convenzionalmente preceduti da "?") Vediamo ora anche le interrogazioni, anche se per i progetti ci interessano poco (ci interessa definire dati derivati)

P. Atzeni15 marzo Esempi Impiegati NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Supervisione ImpiegatoCapo

P. Atzeni15 marzo Esempio -1 Trovare matricola, nome, età e stipendio degli impiegati che hanno 30 anni SEL Età=30 (Impiegati) { Matricola: m, Nome: n, Età: e, Stipendio: s | Impiegati(Matricola: m, Nome: n, Età: e, Stipendio: s) s = 30 } ? Impiegati(Matricola: m, Nome: n, Età: 30, Stipendio: s)

P. Atzeni15 marzo Esempio 0a Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40 SEL Stipendio>40 (Impiegati) { Matricola: m, Nome: n, Età: e, Stipendio: s | Impiegati(Matricola: m, Nome: n, Età: e, Stipendio: s) s > 40 } Serve un predicato intensionale ImpRicchi(Matricola: m, Nome: n, Età: e, Stipendio: s) Impiegati(Matricola: m, Nome: n, Età: e, Stipendio: s), s >40 ? ImpRicchi(Matricola: m, Nome: n, Età: e, Stipendio: s)

P. Atzeni15 marzo Esempio 0b Trovare matricola, nome ed età di tutti gli impiegati PROJ Matricola, Nome, Età (Impiegati) { Matricola: m, Nome: n, Età: e | Impiegati(Matricola: m, Nome: n, Età: e, Stipendio: s)} InfoPubbliche(Matricola: m, Nome: n, Età: e) Impiegati(Matricola: m, Nome: n, Età: e, Stipendio: s) ? InfoPubbliche(Matricola: m, Nome: n, Età: e)

P. Atzeni15 marzo Esempio 2 Trovare le matricole dei capi degli impiegati che guadagnano più di 40 PROJ Capo (Supervisione JOIN Impiegato=Matricola (SEL Stipendio>40 (Impiegati))) { Capo: c | Supervisione(Capo:c,Impiegato:m) Impiegati(Matricola: m, Nome: n, Età: e, Stipendio: s) s > 40 } CapiDeiRicchi (Capo:c) ImpRicchi(Matricola: m, Nome: n, Età: e, Stipendio: s), Supervisione (Capo:c,Impiegato:m) ? CapiDeiRicchi (Capo:c)

P. Atzeni15 marzo Esempio 5 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 40 PROJ Capo (Supervisione) - PROJ Capo (Supervisione JOIN Impiegato=Matricola (SEL Stipendio 40 (Impiegati))) serve la negazione CapiDiNonRicchi (Capo:c) Supervisione (Capo:c,Impiegato:m), Impiegati (Matricola: m, Nome: n, Età: e, Stipendio: s), s 40 CapiSoloDiRicchi (Matricola: c, Nome: n) Impiegati (Matricola: c, Nome: n, Età: e, Stipendio: s), Supervisione (Capo:c,Impiegato:m), not CapiDiNonRicchi (Capo:c) ? CapiSoloDiRicchi (Matricola: c, Nome: n)

P. Atzeni15 marzo Esempio 6 Per ogni impiegato, trovare tutti i superiori. Serve la ricorsione Superiore (Impiegato: i, SuperCapo: c) Supervisione (Impiegato: i, Capo: c) Superiore (Impiegato: i, SuperCapo: c) Supervisione (Impiegato: i, Capo: c'), Superiore (Impiegato: c', SuperCapo: c)

P. Atzeni15 marzo Datalog, semantica La definizione della semantica delle regole ricorsive è delicata (in particolare con la negazione) Potere espressivo: –Datalog non ricorsivo senza negazione è equivalente al calcolo senza negazione e senza quantificatore universale –Datalog non ricorsivo con negazione è equivalente al calcolo e all'algebra –Datalog ricorsivo senza negazione e calcolo sono incomparabili –Datalog ricorsivo con negazione è più espressivo di calcolo e algebra

P. Atzeni15 marzo Datalog with OID invention Datalog (informally): –a logic programming language with no function symbols and predicates that correspond to relations in a database –we use a non-positional notation Datalog with OID invention: –an extension of Datalog that uses Skolem functions to generate new identifiers when needed Skolem functions: –injective functions that generate "new" values (value that do not appear anywhere else); so different Skolem functions have disjoint ranges

P. Atzeni15 marzo Esercizio Traduzione da ER a relazionale, completando quanto accennato nei lucidi seguenti Per questa volta ancora sulla carta, per ragionare sui concetti

P. Atzeni15 marzo A basic translation From (a simple) binary ER model to the relational model –a table for each entity –a column (in the table for E) for each attribute of an entity E –for each M:N relationship a table for the relationship columns … –for each 1:N and 1:1 relationship: a column for each attribute of the identifier …

P. Atzeni15 marzo A basic translation application Departments NameAddress Employees EmpNo Name Affiliation Departments 1,1 0,N Name Address Employees EmpNoNameAffiliation

P. Atzeni15 marzo A basic translation (in supermodel terms) From (a simple) binary ER model to the relational model –an aggregation of lexicals for each abstract –a component of the aggregation for each attribute of abstract –for each M:N aggregation of abstracts … … From (a simple) binary ER model to the relational model –a table for each entity –a column (in the table for E) for each attribute of an entity E –for each M:N relationship a table for the relationship columns … –for each 1:N and 1:1 relationship: a column for each attribute of the identifier …

P. Atzeni15 marzo Schemas in our dictionary SM-Abstract OIDSchemaName 3011Employees 3021Departments 2013Clerks 2023Offices SM-AttributeOfAbstract OIDSchemaNameisIdentisNullableTypeAbstrOID 4011EmpNoTFInt NameFFText NameTFChar AddressFFText CodeTFInt201 ………………… Employees Departments EmpNo Name Address

P. Atzeni15 marzo "An aggregation of lexicals for each abstract" SM_AggregationOfLexicals( OID: #aggregationOID_1(OID), Name: n) SM_Abstract ( OID: OID, Name: n ) ; the value for the attribute Name is copied (by using variable n) the value for OID is "invented": a new value for the function #aggregationOID_1(OID) for each different value of OID, so a different value for each value of SM_Abstract.OID the materialization of the Skolem function describes the mapping

P. Atzeni15 marzo "A component of the aggregation for each attribute of abstract" SM_ComponentOfAggregation… ( OID: #componentOID_1(attOID), Name: name, AggrOID: #aggregationOID_1(absOID), IsNullable: isNullable, IsKey: isIdent, Type : type ) SM_AttributeOfAbstract( OID: attOID, Name: name, AbstractOID: absOID, IsIdent: isIdent, IsNullable: isNullable, Type : type ) ; Skolem functions –are functions –are injective –have disjoint ranges the first function "generates" a new value the second "reuses" the value generated by the first rule

P. Atzeni15 marzo "An aggregation of lexicals for each abstract" SM_AggregationOfLexicals( OID: #aggregationOID_1(OID), Name: name) SM_Abstract ( OID: OID, Name: name ) ;

P. Atzeni15 marzo "An aggregation of lexicals for each abstract" SM_AggregationOfLexicals( OID: #aggregationOID_1(OID), Name: n) SM_Abstract ( OID: OID, Name: n ) ; the value for the attribute Name is copied (by using variable n) the value for OID is "invented": a new value for the function #aggregationOID_1(OID) for each different value of OID, so a different value for each value of SM_Abstract.OID

P. Atzeni15 marzo "An aggregation of lexicals for each abstract" SM-Abstract OIDSchemaName 3011Employees 3021Departments ……… SM-AttributeOfAbstract OIDSchemaNameisIdentisNullableTypeAbstrOID 4011EmpNoTFInt NameFFText301 ………………… Employees EmpNo Name 11 Departments1002 Employees1001 SM_AggregationOfLexicals( OID: #aggregationOID_1(OID), Name: n) SM_Abstract ( OID: OID, Name: n ) ; … …… 1001 SM-AggregationOfLexicals SchemaNameOID SM-aggregationOID_1_SK absOIDOID 301 Employees

P. Atzeni15 marzo "A component of the aggregation for each attribute of abstract" SM_ComponentOfAggregation… ( OID: #componentOID_1(attOID), Name: name, AggrOID: #aggregationOID_1(absOID), IsNullable: isNullable, IsKey: isIdent, Type : type ) SM_AttributeOfAbstract( OID: attOID, Name: name, AbstractOID: absOID, IsIdent: isIdent, IsNullable: isNullable, Type : type ) ; Skolem functions –are functions –are injective –have disjoint ranges the first function "generates" a new value the second "reuses" the value generated by the first rule

P. Atzeni15 marzo A component of the aggregation for each attribute of abstract" SM-Abstract OIDSchemaName 3011Employees 3021Departments ……… Employees EmpNo Name 11 Departments1002 Employees1001 … …… 1001 SM-AggregationOfLexicals SchemaNameOID SM-aggregationOID_1_SK absOIDOID 301 SM_ComponentOfAggregation… ( OID: #componentOID_1(attOID), Name: name, AggrOID: #aggregationOID_1(absOID), IsNullable: isNullable, IsKey: isIdent, Type : type ) SM_AttributeOfAbstract( OID: attOID, Name: name, AbstractOID: absOID, IsIdent: isIdent, IsNullable: isNullable, Type : type ) ; SM-componentOID_1_SK absOIDOID Employees EmpNoName SM-AttributeOfAbstract OIDSchemaNameisIdentisNullableTypeAbstrOID 4011EmpNoTFInt NameFFText301 ………………… SM-ComponentOfAggregationOfLexicals SchemaTypeAggrOIDisNullableisIdentNameOID Text1001FFName IntFTEmpNo