@C. Batini 2006-2007 1 Corso di Architetture della Informazione Anno Accademico 2009-2010 4.2 Il reverse engineering di schemi C. Batini N.B. Dispensa.

Slides:



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

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Progettazione concettuale
8-XML e basi di dati in Internet
Una Introduzione alle Basi di Dati
Query OQL e XQUERY a confronto
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Relazioni Relazione: Associazione o legame logico esistente tra due o più entità Socio Prenota Campo.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Sistemi per lelaborazione dellinformazione Maria Teresa Pazienza DISP - Dipartimento di Informatica, Sistemi e Produzione aa
L’uso dei database in azienda
Very Small Databases (VSDB) C. Bolchini F. A. Schreiber L. Tanca Politecnico di Milano.
La Normalizzazione. 27 January, slide 2 Le nuove tecnologie Software Tabelle, unicità e chiavi Ciascuna riga di una tabella deve esere unica Ci.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
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.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
L’ingegneria del software
Progettare un database
Introduzione a Oracle 9i
Corso di Basi di Dati Progettazione di Basi di Dati
Sistemi di Elaborazione delle Informazioni Mod.I.
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
FASTVID RENTALS: BUSINESS MODELING 1. Business Modeling One of the major problems with most business engineering efforts, is that the software engineering.
SQL.
DATABASE Introduzione
SQL (IV) Data Definition Language/ Data Manipulation Language.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Un problema multi impianto Un’azienda dispone di due fabbriche A e B. Ciascuna fabbrica produce due prodotti: standard e deluxe Ogni fabbrica, A e B, gestisce.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Progettazione di una base di dati relazionale Terza forma normale.
Vincoli interrelazionali
Indicizzazione di documenti semistrutturati Sistemi informativi – AA D’Este Laura.
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
4/18/ :18 AM.
Database Progettazione Logica
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Sistemi di Elaborazione delle Informazioni
SUMMARY Quadripoles and equivalent circuits RIEPILOGO Quadripoli e circuiti equivalenti RIEPILOGO Quadripoli e circuiti equivalenti.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
RIEPILOGO Transistor JFET
Eprogram informatica V anno.
Approfondimenti SQL.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Buon giorno, ragazzi oggi è il quattro aprile duemilasedici.
Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Architetture della Informazione Anno accademico C. Batini 5
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
A.A Architetture di data integration
Progettazione concettuale
Transcript della presentazione:

@C. Batini Corso di Architetture della Informazione Anno Accademico Il reverse engineering di schemi C. Batini N.B. Dispensa di approfondimento non in programma

@C. Batini Introduzione

@C. Batini Questo grafico e’ del 1962 Rsappresenta i flussi informativi tra Pubbliche Amministrazioni

@C. Batini Fonte Marbach-Rizzi op.cit. da D.Natale, Storia dell'informatica in Italia, Sogei, 2005

@C. Batini L’architettura nel 1988 fonte G. Rivieccio, Anagrafe Tributaria, FrancoAngeli, 1995.

@C. Batini Struttura tipica di un sistema monolitico di prima generazione Mainframe File system  Base Dati Terminale 3270

@C. Batini La struttura della informazione e’ rappresentata nel programma DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMo. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01AMMINISTRAZIONE. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-AMMINISTRAZIONE. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-AMMINPIC X(3).

@C. Batini Organizzazione della programmazione In realta’ i dati sono locali alle applicazioni … Ogni programmatore utilizza i tipi di dati che gli servono ….

@C. Batini Per cui, funzionalita’ ANAGRAFE DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMo. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80).

@C. Batini Funzionalita’ RESIDENZA DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMo. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01PERSONA-AMMINISTRAZIONE. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-AMMINPIC X(3).

@C. Batini Funzionalita’ AMMINISTRAZIONE 01AMMINISTRAZIONE. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80).

@C. Batini Le prime metodologie di sviluppo software 1. Parti dai requisiti utente 2. Decomponi i requisiti in funzionalita’ omogenee 3. Per ogni funzionalita’ individua i dati elaborati dalla funzionalita’ 4. Rappresenta i dati per mezzo di una rappresentazione DBMS (DATA DIVISION COBOL, gerarchica, reticolare, relazionale)

@C. Batini Quindi … Le metodologie sono soprattutto per il disegno delle applicazioni, le applicazioni vengono (talvolta) documentate, i dati si documentano se avanza tempo, cosa che non succede mai. Conseguenza  dati locali alle applicazioni, dati documentati dentro le applicazioni, dati con formati e valori eterogenei, dati con semantica invisibile.

@C. Batini Il reverse engineering E’ la attivita’ che permette di rappresentare ogni base di dati (chiamata anche nel seguito legacy data) per mezzo di uno schema descritto nello stesso linguaggio Come linguaggio comune si utilizza un modello concettuale: –Un modello a oggetti –Il modello Entita’ Relazione –Un modello ontologico Noi useremo il modello Entita’ Relazione

@C. Batini Understanding legacy data Typical data reverse engineering process: –From implementation structures –To conceptual design Usually … –Documentation is non-existing or obsolete (not updated) –Designers are gone Knowledge is missing

@C. Batini Il reverse engineering Il reverse engineering è l’attività di traduzione e rappresentazione di uno schema logico di DBMS in un modello concettuale Reverse Engineering Schema nel modello di input Schema in un modello concettuale

@C. Batini Il reverse engineering Intiutitivamente le metodologie per il RE dipendono dal modello dello schema in input Reverse Engineering Schema nel modello Di input Schema in un modello concettuale (supponiamo ER con generalizzazioni) Modello di rappresentazione

@C. Batini Strategie per il RE Considereremo tre casi relativi al modello di input: –Modello relazionale –Input costituito da moduli o schermate di acquisizione dati. –XML –Linguaggio COBOL negli approfondimenti

@C. Batini Una metodologia generale per il reverse engineering 1. Estrai conoscenza dalla documentazione disponibile 2. Analizza le astrazioni utilizzate nel modello in input per rappresentare entita’, relazioni, generalizzazioni 3. Per ogni struttura, trasformala in una corrispondente struttura nel modello ER 4. Individua e Risolvi eventuali ridondanze di rappresentazione.

@C. Batini Astrazioni Aggregazione (o Part-Of) – l’oggetto astratto ha come parti componenti gli oggetti da astrarre –Es. nel modello Entita’ Relazione la relazione Esame tra le entita’ [Studente, Corso] e’ una astrazione di aggregazione delle due entita’ -Es. nel modello Entita’ Relazione la entita’ -Impiegato (Matricola, Cognome, Eta’) e’ aggregazione dei tre attributi -Es. nel modello relazionale la relazione Impiegato (Matricola, Cognome, Eta’) e’ aggregazione dei tre attributi Generalizzazione (o Is-A) – l’oggetto astratto corrisponde a un superisieme dell’ oggetto (oggetti) da astrarre. –Es. nel modello Entita’ Relazione l’entita’ Persona e’ generalizzazione delle entita’ Donna e Uomo.

@C. Batini Reverse engineering dal modello relazionale

@C. Batini Relational databases The existing relational schema is usually not normalized Information on –primary keys, –candidate keys, –foreign keys, –functional dependencies, –other constraints, –derivation rules, … may be missing (more often than you beleive). … and is essential for the reverse engineering process

@C. Batini Extract knowledge Where to find knowledge

@C. Batini Where to find … Primary keys / Candidate keys –often defined in the schema –check Select Distinct in SQL queries –or mine the DB, that is find correlations among attributes Foreign keys –check domain compatibility from the schema –check join conditions in SQL queries –check values in the DB Dependencies (functional, referential integrity) –Mine the DB

@C. Batini Example Person ( P#, name, address ) Employee ( E#, position, salary) Firstnames ( P#, firstname ) EmpDept ( E#, department ) Department (Name, location, boss, budget )

@C. Batini Foreign keys? Person ( P#, name, address ) Firstnames ( P#, firstname ) Employee ( E#, position, salary ) EmpDept ( E#, department ) Department ( name, location, boss, budget ) Finding foreign keys –Firstnames.P#  Person.P# - Person.P#  Firstnames.P# –EmpDept.E#  Employee.E# –EmpDept.department  Department.name –Department.boss  Employee.E# –Employee.E#  Person.P#

@C. Batini Further Semantic Enrichment Goals: ensure better understanding of the schemas Completing existing descriptions with : – meta-data for each representation external keys – thesauri semantic definitions – explicit representation rules Example : if a road crosses a river, a bridge exists – quality indicators

@C. Batini Enrichment Examples Add information on how the schema maps to the real world – add a definition of "Employee" as "those persons who have an employment contract with the enterprise” – add a definition of "salary" in "Employee" as "the gross salary amount, before any deductions" Add information on the description of the real world –"salary" in "Employee" is expressed in Euros

@C. Batini Esempio Consideriamo inizialmente una relazione in Boyce Codd NF, in cui cioe’ tutte le dipendenze funzionali sono dipendenze di chiave. Codice FiscaleData di nascitaCitta’ nascitaStipendio CVFFFS3707/06/1965Roma Lavoratore dipendente Viene naturale la traduzione Lavoratore dipendente CF Data nascita Citta’ nascita Stipendio

@C. Batini In termini di astrazioni Codice FiscaleData di nascitaCitta’ nascitaStipendio CVFFFS3707/06/1965Roma Lavoratore dipendente Aggregazione1 2. Traduzione della Aggregazione nel Modello ER Entita’ LD su Attributi CF, DataN, Citta’N, Stipendio Lavoratore dipendente CF Data nascita Citta’ nascita Stipendio 3

@C. Batini Esempio di generalizzazione (omessi gli attributi) Siano date le relazioni Codice FiscaleData di nascitaCitta’ nascitaTipo GNNFRTK06/11/1963MilanoDirigente CVFFFS3707/06/1965RomaImpiegato Dipendente Codice FiscaleStipendioStraordinari max CVFFFS ore Impiegato Codice FiscaleRetribuzione annuaPremio max. GNNFRTK Dirigente DipendenteImpiegatoDirigente

@C. Batini Esempio di generalizzazione (omessi gli attributi) Se la generalizzazione e’ completa allora … Codice FiscaleData di nascitaCitta’ nascitaTipo GNNFRTK06/11/1963MilanoDirigente CVFFFS3707/06/1965RomaImpiegato Dipendente Codice FiscaleStipendioStraordinari max CVFFFS ore Impiegato Codice FiscaleRetribuzione annuaPremio max. GNNFRTK Dirigente DipendenteImpiegatoDirigente

@C. Batini Esempio di generalizzazione (omessi gli attributi) L’indizio che ci ha portato a questa scelta e’ nell’attributo Tipo Codice FiscaleData di nascitaCitta’ nascita Tipo GNNFRTK06/11/1963MilanoDirigente CVFFFS3707/06/1965RomaImpiegato Dipendente Codice FiscaleStipendioStraordinari max CVFFFS ore Impiegato Codice FiscaleRetribuzione annuaPremio max. GNNFRTK Dirigente DipendenteImpiegatoDirigente

@C. Batini Vediamo ore tre casi particolarmente significativi Relazione normalizzata Boyce Codd Relazione non in forma normale di BC Tre relazioni normalizzate, con identificatori I1, I2, I1 I2

@C. Batini Relazione in forma normale di BC 1. Relazione normalizzata R(A1, A2, …, An) Traduzione  entita’ E(A1, A2, …, An) con identificatore A1

@C. Batini Relazione non in forma normale di BC 1. Relazione R(A1, A2, …, An) Dipende dalla struttura delle dipendenze che fanno perdere la normalizzazione Caso R(A1, A2, …, An) Es. Localizz (Comune, Prov, Regione) A1  A2 e A2  A3 A1 A2 A3 (1,1) (1,n)

@C. Batini Tre relazioni normalizzate R1(A1, A2, …, An), R2(An+1, An+2, …, An+m) R3(A1, An+1, …, Ak) Traduzione Due entita’ ER1(A1, A2, …, An), ER2(An+1, An+2, …, An+m) e una relazione ER3(A1, An+1, …, Ak)

@C. Batini Tre relazioni con legame di generalizzazione 2. Tre relazioni normalizzate R1(A1, A2, …, An), R2(A1, An+1, …, An+m) R3(A1, An+m+1, …, Ak) in cui i valori del dominio di A2 sono [R2, R3] Esempio Persona (…, Sesso, …) Uomo(…) Donna(..) Traduzione  Tre entita’ su cui e’ definita una relazione di generalizzazione R1(A1, A2, …, An) R2(A1, An+1, …, An+m) ISA R1 R3(A1, An+m+1, …, Ak) ISA R1

@C. Batini Esempio di reverse engineering – modello relazionale Persona Dipendente Città Relazione Persona (Codice Fiscale, Nome, Cognome, Citta’ di Nascita) Relazione Dipendente (Codice Fiscale, Nome, Cognome, Citta’ di Nascita, Dipartimento, Stipendio) Relazione Citta’ (Citta’, Regione)

@C. Batini Reverse engineering da modulistica/Fogli Excel

@C. Batini Esempio tabella a due entrate Reddito Mese/ Anno Gennaio Febbraio … … … Anno Mese di Reddito Anno Mese Valore reddito oppure

@C. Batini Rappresentazioni e corrispondenti trasformazioni 1. Rappresentazione: Tabella a due entrate, cioe’ con righe e colonne Tipica trasformazione  Relazione binaria, oppure Entita’

@C. Batini Esempio modulistica: l’utente riempia i seguenti campi …. NomeCognomeCodice Fiscale Anno nascita Sesso Riempire solo per nati dopo il 31 dicembre 2000 Nome Padre Nome Madre Luogo Nasc.CAPRegione Persona Giovane

@C. Batini Rappresentazioni e corrispondenti trasformazioni 2. Insieme di campi C1, C2,.., Cn da riempire opzionalmente Tipica trasformazione  Entita’ ISA di altra entita’ definita precedentemente, definita sugli attributi C1, C2,.., Cn

@C. Batini Esempio modulistica: l’utente riempia i seguenti campi …. NomeCognomeCodice Fiscale Anno nascita Sesso Residenze pregresse Citta’CAPViaNumero Civico Regione

@C. Batini Esempio modulistica: l’utente riempia i seguenti campi …. NomeCognomeCodice Fiscale Anno nascita Sesso Residenze pregresse Citta’CAPViaNumero Civico Regione Persona Residenza Ha risieduto

@C. Batini Rappresentazioni e corrispondenti trasformazioni 3. Insieme di campi da riempire piu’ volte Tipica trasformazione  Entita’ in relazione molti a molti con altra entita’ definita precedentemente.

@C. Batini Reverse engineering from XML to Entity Relationship

@C. Batini XML - Extensible Markup Language The Extensible Markup Language (XML) is a general- purpose markup language ( It is classified as an extensible language because it allows its users to define their own tags. XML (eXtensible Markup Language) is one of the premier formats for data representation and interchange. Its primary purpose is to facilitate the sharing of structured data across different information systems, particularly via the Internet.

@C. Batini XML and ER XML as a logical database model has some special differences which makes the (standard) ER model unsuitable for the conceptual modeling of XML data [8]. The main differences are: –Hierarchical structure –Irregular structure –Ordering on siblings These features cannot be properly modeled in the ER model.

@C. Batini Traduzione in Entita’

@C. Batini Nel seguito … XER e’ un linguaggio intermedio tra XML ed ER, in cui si usano strutture Entita’ Relazione in diretta corrispondenza con le strutture XML

@C. Batini Traduzione in Entita’ XER Entity: The XER entity is the basic conceptual object in XER. A XER entity is represented using a rectangle with a title area showing the name of the entity and the body showing the attributes. XER attributes are properties of entities that are usually atomic, potentially optional or multi-valued. Attributes are shown in the model by placing the names of the attributes in the body of the entity. –Attributes are ordered by default, and the ordering in the diagram is top-to-bottom. Multi-valued attributes are allowed, showing the multiplicity in parentheses.

@C. Batini XER Relationships – Example

@C. Batini XER Relationships XER Relationships: Relationships, which denote a connection between two or more entities, are introduced in XER when a complex entity contains a complex element as one of its sub- elements. –Relationships can be one-to-one, one-to-many or many-to-many. The cardinality of relationships is equivalent to the minOccurs and maxOccurs tags present in the XML schema. –In a XER diagram, a relationship is shown with a diamond as in the ER model. Relationships may or may not be named, and labels along the connectors indicate participation constraints for a relationship and the connecting entity.

@C. Batini XER Generalizations - Example

@C. Batini XER Generalizations XER Generalizations: The term “generalization” refers to the concept of having an entity that can have different sub-entities (with an IS A relationship). In XER, a generalization is represented using a covering rectangle containing the specialized XER entities

@C. Batini Appendice 1: Esempio di traduzione ER esteso (XER)  XML

@C. Batini A Complete XER Diagram

@C. Batini Conceptual XML C-XML is a conceptual model consisting of object sets, relationship sets, and constraints over these object and relationship sets C-XML is “Model-equivalent” with XML Schema: “Model-equivalent” is a term which describes a system where a high-level model and a low-level execution system have a one-to-one correspondence between features.

@C. Batini Description of C-XML Graphically a C-XML model instance M is an augmented hypergraph whose: –vertices and edges are respectively the object sets and relationship sets of M, and whose augmentations consist of decorations that represent constraints. –boxes represent object sets – dashed if lexical and not dashed if nonlexical because their objects are represented by object identifiers. –With each object set we can associate a data frame (as we call it) to provide a rich description of its value set and other properties. A data frame lets us specify, for example, that OrderDate is of type Date or that ItemNr values must satisfy the value pattern “[A-Z]{3}-\d{7}”.

@C. Batini Description of C-XML –Arrowheads on lines specify functional constraints. In the example (see next slide) an Item has a Price and a Description and is in a one-to-one correspondence with ItemNr and that an Item in an Order has one Qty and one SalePrice. –Triangles denote generalization/specialization hierarchies. We can constrain ISA hierarchies by partition (…), union (…), or mutual exclusion (…) among specializations. –Any object-set/relationship-set connection may have a role, but a role is simply a shorthand for an object set that denotes the subset consisting of the objects that actually participate in the connection.

@C. Batini C-XML Example 44: 45: 46: 47: 48:... 49: 50: 51: 52: 53: 54: 55: Generalization

@C. Batini C-XML Example 56: 57: 58: 59: 60:... 79: 80: Attributes

@C. Batini C-XML Example 11: Cardinality

@C. Batini C-XML Example 35: 36: 37: 38:... 60: 61: 62:... 74: 75:... 77: 78: Primary Key

@C. Batini C-XML and XML Schema Artifact of XML Schema Artifact of XML nesting n-ary relationship decomposition

@C. Batini XQuery and C-XQuery Consider conceptual path “Item//OrderID”

@C. Batini Bibliography 1.A. Badia. Conceptual Modeling for Semistructured Data. In Proceedings of the 3rd International Conference on Web Information Systems Engineering Workshops (WISE 2002 Workshops), p Singapore, December M. Mani. EReX: A Conceptual Model for XML. In Proceedings of the Second International XML Database Symposium (XSym 2004), p Toronto, Canada, August M. Mani, D. Lee, R.R.Muntz. Semantic Data Modeling Using XML Schemas. In Proceedings of the 20th International Conference on Conceptual Modeling (ER 2001), p Yokohama, Japan, November A. Sengupta, S. Mohan, R. Doshi. XER - Extensible Entity Relationship Modeling. In Proceedings of the XML 2003 Conference, p Philadelphia, USA, December G. Psaila. ERX: A Conceptual Model for XML Documents. In Proceedings of the 2000 ACM Symposium on Applied Computing, p Como, Italy, March D.W. Embley, S.W. Liddle, R. Al-Kamha. Enterprise Modeling with Conceptual XML. In Proceedings of the 23rd International Conference on Conceptual Modeling (ER 2004), p Shanghai, China, November G. Dobbie, W. Xiaoying, T.W. Ling, M.L. Lee. ORA-SS: An Object-Relationship-Attribute Model for Semi-Structured Data. Technical Report, Department of Computer Science, National University of Singapore. December Martin Nečaský, Conceptual Modeling for XML: A Survey, In: Václav Snášel, Karel Richta, Jaroslav Pokorný (Ed.), Proceedings of the DATESO 2006 Annual International Workshop on Databases, Texts, Specifications, and Objects, Desná — Černá Říčka, Czech Republic, April 2006, ISBN

@C. Batini Appendice 2 Reverse engineering da linguaggio Cobol

@C. Batini Esempio di reverse engineering - linguaggio Cobol DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01AMMINISTRAZIONE. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-AMMINISTRAZIONE. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-AMMINPIC X(3).

@C. Batini Es. reverse engineering da linguaggio Cobol DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01NASCITA. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-NASCITA. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-AMMINPIC X(3).

@C. Batini Es. linguaggio Cobol DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01NASCITA. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-NASCITA. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-NASCITAPIC X(3). Persona Codice Cognome UomoDonna

@C. Batini Es. linguaggio Cobol DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01NASCITA. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-NASCITA. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-NASCITAPIC X(3). Persona Codice Cognome UomoDonna Regione Codice Nome

@C. Batini Es. linguaggio Cobol (anni 50’) DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01NASCITA. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-NASCITA. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-NASCITAPIC X(3). Persona Codice Cognome UomoDonna Provincia Codice Nome in Regione Codice Nome

@C. Batini Es. linguaggio Cobol (anni 50’) DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01NASCITA. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-NASCITA. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-NASCITAPIC X(3). Persona Codice Cognome UomoDonna Comune Codice Nome Provincia Codice Nome in Regione Codice Nome

@C. Batini Es. linguaggio Cobol DATA DIVISION. WORKING-STORAGE SECTION. 01PERSONA. 05UOMO. 10COD-UOMOPIC X(5). 10DESC-UOMOPIC X(80). 05DONNAREDEFINESUOMO. 10TIPO-RECORDPIC X. 10COD-DONNAPIC 9(5). 10DESC-DONNAPIC X(80). 01NASCITA. 05REGIONE. 10COD-REGIONEPIC X(3). 10COD-DUMMYPIC X(6). 10DES-REGIONEPIC X(80). 05PROVINCIAREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-DUMMY2PIC X(3). 10DES-PROVINCIAPIC X(80). 05COMUNEREDEFINESREGIONE. 10COD-REGIONEPIC X(3). 10COD-PROVINCIAPIC X(3). 10COD-COMUNEPIC X(3). 10DES-COMUNEPIC X(80). 01PERSONA-NASCITA. 05LEGAME. 10COD-PERSONAPIC X(5). 10COD-NASCITAPIC X(3). Persona Codice Cognome UomoDonna Comune Codice Nome nato Provincia Codice Nome in Regione Codice Nome

@C. Batini Regola generale Anche in Cobol occorre trovare traccia nelle strutture linguistiche delle astrazioni presenti. Vediamo alcuni casi 1. Campo composto (Esempio di aggregazione) 02 DATA_DI_EMISSIONE 03 ANNO_DI_EMISSIONE 03 MESE_DI_EMISSIONE 03 GIORNO_DI_EMISSIONE E’ tradotto in un attributo DATA composto di GIORNO, MESE, ANNO.

@C. Batini Clausola REDEFINES Vediamo il caso 01 EMPLOYEE –02 CODEPIC X(7) –02 JOB_TYPEPIC X –02 DATA-OF-WORKER 03 WEEK_HOURS –02 DATA_OF_SECRETARY REDEFINES DATA_OF_WORKER 03 LEVEL PIC 9 –04 TELEPHONE PIC 9(7) Qui la clausola REDEFINES esprime la presenza di una generalizzazione come nell’esempio di alcune trasparenze fa’, in questo caso tra EMPLOYEE e WORKER, SECRETARY.

@C. Batini Visti i “trucchi” che permette il Cobol, le possibi rappresentazioni e corrispondenti trasformazioni sono molte…… 01 REPORT_DI_CAPITOLO –02 CODEPIC 9(4) –02 DESCRIPTION PIC X(30) –02 CENTRO_DI_COSTO 9(3) –02 DIVISIONE9(2) –02 RESPONSIBLE X(30) Se il codice e’ traAllora il record si riferisce a 1000 e 9999Un Capitolo di bilancio 100 e 999Un Centro di costo 1 e 99Una Divisione Con ulteriore specifica del significato dei campi:

@C. Batini Per ulteriori approfondimenti C. Batini et al. Conceptual Database Design, Benjamin and Cummings, 1992 In biblioteca