Remote DBA

Benvenuto, sei nel sito web di Stefano Fantin.

Lavoro

Stefano Fantin attualmente non lavora ed è in cerca di un lavoro sul database Oracle.

Potete contattarmi

mail: stefanofantin@icloud.com

cell. 3423546303

Chi Sono

Remote DBA

Stefano Fantin utilizza il database Oracle più’ di ogni altro database; il database Oracle non è un database normale, il database Oracle è un database particolarmente sofisticato.

Remote DBA MySQL

Stefano Fantin è preparatissimo come Remote DBA Mysql e ha studiato e lavorato su Mysql durante tutta “la storia” di MySql.

Remote DBA MySQL

Remote DBA Mysql 4.0: in beta da agosto 2002, rilasciata in produzione ad agosto 2003

Remote DBA Mysql 4.01: in beta da agosto 2003

Remote DBA Mysql 4.1: in beta da giugno 2004, rilascio in produzione ottobre 2004 : R-trees and B-trees, subqueries, prepared statements

Remote DBA Mysql 5.0: in beta da marzo 2005, rilascio in produzione 2005 : cursors, stored procedures, triggers, views, XA transactions;
Sun Microsystems compra MySQL AB nel 2008.

Remote DBA Mysql 5.1: rilascio in produzione 27 November 2008 : event scheduler, partitioning, plugin API, row-based replication, server log tables;
Oracle acquisisce Sun Microsystems il 27 January 2010.

Remote DBA MySQL Server 5.5 : in December 2010 presentava le seguenti caratteristiche:
storage engine InnoDB, Improved InnoDB I/O subsystem, Improved SMP support, Semisynchronous replication. SIGNAL and RESIGNAL statement in compliance with the SQL standard. Support for supplementary Unicode character sets utf16, utf32, and utf8mb4. New options for user-defined partitioning.

Remote DBA MySQL 5.6 annunciata in febbraio 2013 con le seguenti caratteristiche: query optimizer, higher transactional throughput in InnoDB, new NoSQL-style memcached APIs, improvements to partitioning for querying and managing very large tables, TIMESTAMP column type that correctly stores milliseconds, improvements to replication, and better performance monitoring by expanding the data available through the PERFORMANCE_SCHEMA. T

Remote DBA MySQL 5.7 : annunciata in ottobre 2015.

Remote DBA MySQL Server 8.0 – (Milestone Release) : annunciata 12 September 2016.

Remote DBA Experts.

Stefano Fantin è Remote DBA Experts perchè dedica:

  • tempo
  • denaro
  • competenze

per Remote DBA Experts.

 

Remote DBA Oracle

Stefano Fantin ha studi tecnici come Remote DBA Oracle:

Remote DBA Oracle 8i : webDB, outline, DBMS_REPAIR, logMiner, DROP column, LMT, TRIM function, MERGE partitions, HASH and COMPOSITE partitions
Remote DBA Oracle 9i : fast-start time-based recovery limit, Flashback Query, Resumable Space Allocation, Trial Recovery, Data Guard, online index rebuild, Online table redefinitions,SPFILE, External Tables, ASSM, Oracle RAC, OMF
Remote DBA Oracle 10g : Data Pump, AWR, ASH, ADDM, SQL Tuning Advisor, Oracle scheduler, Segment Shrink, Segment Advisor, BFT, Flash Recovery Area
Remote DBA Oracle 11g : DNFS, Online Patching, ASM Fast Mirror Resync, md_backup, md_restore, AWR baseline template, File Watcher, AMM, INCREMENTAL and PENDING statistics, Interval Partitioning
Remote DBA Database Oracle 12c : multitenant Container DataBase, CDB, PDB, ADO, Heat MAp, PGA Size Limit, DBMS_QOPATCH, Automatic Big Table Caching, In- Memory (IM) Column Store

Consulenza database Oracle:

– performance tuning : miglioramenti delle performance del database Oracle, elasticità:futura riduzione del rischio di basse performance,
scalabilità verticale o scalabilità orizzontale per progetti big data con database Oracle
– analisi database e design database
– backup DBA
– sicurezza del database Oracle : analisi delle vulnerabilità, conformità dei report di auditing
– monitoring database Oracle

Oracle Features Implementation:

– ASM (Automatic Storage Management)
– RMAN (Recovery Manager)
– TDE (Transparent Data Encryption)
– SPM (Sql Plan Management)
– Online Redefinition
– Partitioning
– Compression
– Resource Manager
– Flashback
– Streams
– Real Application Testing
– Gateway
– Advanced Security
– Secure Backup

 Remote DBA Experts.

Stefano Fantin è Remote DBA Experts perchè dedica:

  • tempo
  • denaro
  • competenze

per Remote DBA Experts.

 

Database consultant

I nostri clienti non cercano altre aziende perchè è difficile che commettiamo degli errori, sopratutto in ambito database.

Al contrario sono i clienti delle aziende nostre concorrenti che ci cercano e il motivo è perchè sono stati commessi degli errori.

Ci proponiamo con database consultant perchè crediamo nella trasformazione di:

  • Dato
    • Informazione
      • Conoscenza
        • Classificazione forte del pensiero elettronico

 

 

Remote DBA Postgresql

Il Ceo Stefano Fantin ha studiato il codice sorgente del DBMS Postgresql dalla versione 8 di Postgresql fino a Postgresql 9.5, è uscita la versione di Postgresql 9.6 .

REMOTE DBA POSTGRESQL:

Remote DBA Postgresql 8.0 : PITR, Tablespace, Windows Support, Savepoints
Remote DBA Postgresql 8.1 : Table partioning, Bitmap scans, Two-Phase commits, autovacuum
Remote DBA Postgresql 8.2 : Warm Standby, SQL 2003, Concurrent Index Builds, Gin indexes
Remote DBA Postgresql 8.3 : Hot updates, Asynchronous commit, XML, Fulltext search, Distribuited checkpoints
Remote DBA Postgresql 8.4 : Windows functions, CTEs, Database collations, Per-Column permission
Remote DBA Postgresql 9.0 : Hot Standby, Streaming Replication, Column Triggers, Conditional Triggers, hstore
Remote DBA Postgresql 9.1 : Synchronous Replication, Writable CTEs, Extension, Foreign Data Wrappers, Unlogged tables, Serialisable Snapshot Isolation, Column collations
Remote DBA Postgresql 9.2 : Cascading Replication, Index-Only scans, pg_stat_statements, Json, Ranges
Remote DBA Postgresql 9.3 : Writable Foreign Data Wrappers, Materialised Views, JSON functions and operators, LATERAL
Remote DBA Postgresql 9.4 : Logical replication, Replication slots, JSONB –> GIN (Generalized Inverted Index), scalability : Logical Decoding
Remote DBA Postgresql 9.5 : UPSERT, Row-level security, functionality for Big Data: BRIN index, algorithm called “keys abbreviated”,CUBE, ROLLUP, and GROUPING SET, TABLESAMPLE, Foreign Data Wrappers (FDW)Remote DBA Remote DBA Postgresql 9.6 : Scalabilità verticale tramite query parallele, Scalabilità orizzontale tramite replica sincrona e ‘postgres_fdw’, Miglior ricerca testuale con le frasi. Parallel Query : Parallel sequential scans, parallel joins, parallel aggregates. Transactions, VACUUM and the Visibility Map : pg_visibility extension for examining visibility maps, Frozen page data in visibility map for skipping vacuum on already-frozen data, User-defined expiration of snapshots to control table bloat. Performance and Monitoring :
Detailed wait information in pg_stat_activity, Index-only scans for partial indexes, Performance improvements for external sort operations. System Views and Administration : New system view pg_config, pg_blocking_pids, Functions pg_get_* to return NULL on invalid
objects, pg_notification_queue_usage to look at notify queue. Backups : pg_basebackup extended with replication slots, New API for hot physical backups. Other Features: Command progress reporting, Generic WAL facility, Trigonometric functions in degrees. Remote DBA Postgresql 10 : Logical replication, declarative table partitioning, improved query parallelism

Remote DBA Experts.

Stefano Fantin è Remote DBA Experts perchè dedica:

  • tempo
  • denaro
  • competenze

per Remote DBA Experts.

 

Database consultant

I nostri clienti non cercano altre aziende perchè è difficile che commettiamo degli errori, sopratutto in ambito database.

Al contrario sono i clienti delle aziende nostre concorrenti che ci cercano e il motivo è perchè sono stati commessi degli errori.

Ci proponiamo con database consultant perchè crediamo nella trasformazione di:

  • Dato
    • Informazione
      • Conoscenza
        • Classificazione forte del pensiero elettronico

 

 

 

Remote DBA.

Remote DBA Oracle. Remote DBA Postgresql.Remote DBA Experts. Database consultant. Database consultant : remote dba, remote dba oracle

Parole chiave : remote dba, remote dba oracle, remote dba postgresql, remote dba experts. Database consultant. Database consultant : remote dba, remote dba oracle.

Questa non è una pagina di Database Administrator DBA per tutti. In questa pagina troverai informazioni utili, non troverai immagini e video o altro materiale ad alto impatto grafico e a basso contenuto informativo.

Questa pagina DBA non è per tutti perché non posso essere per tutti coloro che vedendo una immagine e un video vanno incontro al loro destino.

Ho preferito non essere per tutti perché questa pagina è di valore e solo chi vuole valore nel DBA la leggerà fino in fondo, agli altri lasciamo la concorrenza con belle immagini e bei video. Ognuno ha la sorte che si merita.

 

Remote DBA

Stefano Fantin offre il servizio di Remote DBA, quindi remote database administrator, sopratutto in Italia sia nelle principali città italiane quali Milano, Roma, Torino, Bergamo e Brescia ma anche nei piccoli comuni italiani.

Stefano Fantin è attivo per il servizio di Remote DBA a livello internazionale in quanto è presente su Internet in oltre 50 nazioni, offrendo servizi di Remote DBA su standard americano ma designati da Italiani.

Remote DBA Oracle

Stefano Fantin ha studi tecnici come Remote DBA Oracle:

– Remote DBA Oracle 8i : webDB, outline, DBMS_REPAIR, logMiner, DROP column, LMT, TRIM function, MERGE partitions, HASH and COMPOSITE partitions
– Remote DBA Oracle 9i : fast-start time-based recovery limit, Flashback Query, Resumable Space Allocation, Trial Recovery, Data Guard, online index rebuild, Online table redefinitions,SPFILE, External Tables, ASSM, Oracle RAC, OMF
– Remote DBA Oracle 10g : Data Pump, AWR, ASH, ADDM, SQL Tuning Advisor, Oracle scheduler, Segment Shrink, Segment Advisor, BFT, Flash Recovery Area
– Remote DBA Oracle 11g : DNFS, Online Patching, ASM Fast Mirror Resync, md_backup, md_restore, AWR baseline template, File Watcher, AMM, INCREMENTAL and PENDING statistics, Interval Partitioning
– Remote DBA Database Oracle 12c : multitenant Container DataBase, CDB, PDB, ADO, Heat MAp, PGA Size Limit, DBMS_QOPATCH, Automatic Big Table Caching, In- Memory (IM) Column Store

Consulenza database Oracle:

– performance tuning : miglioramenti delle performance del database Oracle, elasticità:futura riduzione del rischio di basse performance,
scalabilità verticale o scalabilità orizzontale per progetti big data con database Oracle
– analisi database e design database
– backup DBA
– sicurezza del database Oracle : analisi delle vulnerabilità, conformità dei report di auditing
– monitoring database Oracle

Oracle Features Implementation:

– ASM (Automatic Storage Management)
– RMAN (Recovery Manager)
– TDE (Transparent Data Encryption)
– SPM (Sql Plan Management)
– Online Redefinition
– Partitioning
– Compression
– Resource Manager
– Flashback
– Streams
– Real Application Testing
– Gateway
– Advanced Security
– Secure Backup

Remote DBA Postgresql

Il Ceo Stefano Fantin ha studiato il codice sorgente del DBMS Postgresql dalla versione 8 di Postgresql fino a Postgresql 9.5, è uscita la versione di Postgresql 9.6 .

REMOTE DBA POSTGRESQL:

Remote DBA Postgresql 8.0 : PITR, Tablespace, Windows Support, Savepoints
Remote DBA Postgresql 8.1 : Table partioning, Bitmap scans, Two-Phase commits, autovacuum
Remote DBA Postgresql 8.2 : Warm Standby, SQL 2003, Concurrent Index Builds, Gin indexes
Remote DBA Postgresql 8.3 : Hot updates, Asynchronous commit, XML, Fulltext search, Distribuited checkpoints
Remote DBA Postgresql 8.4 : Windows functions, CTEs, Database collations, Per-Column permission
Remote DBA Postgresql 9.0 : Hot Standby, Streaming Replication, Column Triggers, Conditional Triggers, hstore
Remote DBA Postgresql 9.1 : Synchronous Replication, Writable CTEs, Extension, Foreign Data Wrappers, Unlogged tables, Serialisable Snapshot Isolation, Column collations
Remote DBA Postgresql 9.2 : Cascading Replication, Index-Only scans, pg_stat_statements, Json, Ranges
Remote DBA Postgresql 9.3 : Writable Foreign Data Wrappers, Materialised Views, JSON functions and operators, LATERAL
Remote DBA Postgresql 9.4 : Logical replication, Replication slots, JSONB –> GIN (Generalized Inverted Index), scalability : Logical Decoding
Remote DBA Postgresql 9.5 : UPSERT, Row-level security, functionality for Big Data: BRIN index, algorithm called “keys abbreviated”,CUBE, ROLLUP, and GROUPING SET, TABLESAMPLE, Foreign Data Wrappers (FDW)
Remote DBA Postgresql 9.6 : Scalabilità verticale tramite query parallele, Scalabilità orizzontale tramite replica sincrona e ‘postgres_fdw’, Miglior ricerca testuale con le frasi. Parallel Query : Parallel sequential scans, parallel joins, parallel aggregates.
Transactions, VACUUM and the Visibility Map : pg_visibility extension for examining visibility maps, Frozen page data in visibility map for skipping vacuum on already-frozen data, User-defined expiration of snapshots to control table bloat. Performance and Monitoring :
Detailed wait information in pg_stat_activity, Index-only scans for partial indexes, Performance improvements for external sort operations. System Views and Administration : New system view pg_config, pg_blocking_pids, Functions pg_get_* to return NULL on invalid
objects, pg_notification_queue_usage to look at notify queue. Backups : pg_basebackup extended with replication slots, New API for hot physical backups. Other Features: Command progress reporting, Generic WAL facility, Trigonometric functions in degrees. Remote DBA Postgresql 10 : Logical replication, declarative table partitioning, improved query parallelism

 

Remote DBA Experts.

Stefano Fantin è Remote DBA Experts perchè dedica:

  • tempo
  • denaro
  • competenze

per Remote DBA Experts.

 

Database consultant

I nostri clienti non cercano altre aziende perchè è difficile che commettiamo degli errori, sopratutto in ambito database.

Al contrario sono i clienti delle aziende nostre concorrenti che ci cercano e il motivo è perchè sono stati commessi degli errori.

Ci proponiamo con database consultant perchè crediamo nella trasformazione di:

  • Dato
    • Informazione
      • Conoscenza
        • Classificazione forte del pensiero elettronico

 

Remote DBA MySQL

Remote DBA Mysql 4.0: in beta da agosto 2002, rilasciata in produzione ad agosto 2003

Remote DBA Mysql 4.01: in beta da agosto 2003

Remote DBA Mysql 4.1: in beta da giugno 2004, rilascio in produzione ottobre 2004 : R-trees and B-trees, subqueries, prepared statements

Remote DBA Mysql 5.0: in beta da marzo 2005, rilascio in produzione 2005 : cursors, stored procedures, triggers, views, XA transactions;
Sun Microsystems compra MySQL AB nel 2008.

Remote DBA Mysql 5.1: rilascio in produzione 27 November 2008 : event scheduler, partitioning, plugin API, row-based replication, server log tables;
Oracle acquisisce Sun Microsystems il 27 January 2010.

Remote DBA MySQL Server 5.5 in December 2010 presentava le seguenti caratteristiche:
storage engine InnoDB, Improved InnoDB I/O subsystem, Improved SMP support, Semisynchronous replication. SIGNAL and RESIGNAL statement in compliance with the SQL standard. Support for supplementary Unicode character sets utf16, utf32, and utf8mb4. New options for user-defined partitioning.
Remote DBA MySQL 5.6 annunciata in febbraio 2013 con le seguenti caratteristiche: query optimizer, higher transactional throughput in InnoDB, new NoSQL-style memcached APIs, improvements to partitioning for querying and managing very large tables, TIMESTAMP column type that correctly stores milliseconds, improvements to replication, and better performance monitoring by expanding the data available through the PERFORMANCE_SCHEMA. T
Remote DBA MySQL 5.7 : annunciata in ottobre 2015.
Remote DBA MySQL Server 8.0 – (Milestone Release) : annunciata 12 September 2016.

IRON SEO | Realizzazione Siti Web | Posizionamento siti web | SEO | Ottimizzazione motori di ricerca | Realizzazione e-commerce | Posizionamento e-commerce | Stefano Fantin

Stefano Fantin ha realizzato il prodotto IRON SEO iniziato nel 2008 con il progetto universitario fatto per l’esame di TEXT MINING e portato avanti fino ad oggi.

La nostra visione è rappresentare le aziende quindi :

dato –> informazione –> conoscenza –> classificazione FORTE del pensiero elettronico

Grazie per visitare il sito internet e cosa più importante di tutte, che l’opinione altrui non offuschi le vostre menti, quindi grazie di cuore se credete nella nostra VISION, buona lettura!

Stefano Fantin è specializzato in siti internet semantici quindi legati alla SEO : search engine optimization tramite la soluzione tecnologica IRON SEO prodotta artigianalmente.

Come già detto crediamo nella classificazione forte del pensiero elettronico:

  • classificazione forte
    • pensiero elettronico
      • conoscenza
        • informazione
          • dato

 

Stefano Fantin è nato il 29/7/1981 a Sesto San Giovanni, Milano.

Si è diplomato come perito elettronico presso un istituto di Rho e poi ha scelto di fare il test d’ingresso per la facoltà di informatica presso l’Università degli Studi di Milano Bicocca.

Gli anni trascorsi in università sono stati gratificati da molte soddisfazioni.

Le esperienze lavorative spazio da grandi player italiani quali Reply a imprese di database quali D&T.

 

La rappresentanza tecnologica di Stefano Fantin è data dalla laurea specialistica, quindi di 5 anni, presso l’Università degli Studi di Milano Bicocca, nella facoltà di Computer Science, e vuole portare la QUALITA’ nell’informatica nelle organizzazione e quindi fa ricerca e commercializza i database sia con assistenza di Remote DBA che sulla Qualità del Dato : un dato non di qualità è un costo per l’azienda e l’informatica costa sempre meno.

Crediamo nella classificazione forte del pensiero elettronico, quindi:

  • dato
    • informazione
      • conoscenza
        • classificazione forte
          • pensiero elettronico

Grazie per credere in Stefano Fantin e nella nostra Vision.


Classificazione del pensiero elettronico:

– intelligenza artificiale -> il cervello elettronico è plasmato sull’architettura del calcolatore elettronico
La classica intelligenza artificiale si basa sul bit e sull’architettura del calcolatore.

– Stefano Fantin: fa ricerca nel pensiero elettronico ma non da come è formato il calcolatore ovvero la sua architettura bensi’ a livello computazionale pone enfasi sul calcolo matematico.
Le differenze sono diverse perchè l’intelligenza artificiale classica si basa su algoritmi che storicamente hanno due fonti, la prima l’architettura di Von Neuman e la seconda di Alan Turing, mentre Stefano Fantin è diverso perchè preferisce l’architettura di Zuse.
Stefano Fantin basandosi sui modelli di Zuse va contro gli algoritmi e il divide et impera perchè preferisce modelli decisionali per classificare il pensiero elettonico e ritiene il memristore una fonte importante per il modello di Zuse.
Il memristore è un componente elettronico che lo si può paragonare al teorema di Millman mentre gli altri componenti elettronici classici al principio di sovrapposizione degli effetti.
Oltre al memristore per essere effettivo nel modello di Zuse vi potrebbe essere l’evoluzione del bit classico che abbia anche uno stato intermedio ed anche questo è materia di studio della parte tecnologica di Stefano Fantin.
Lo stato intermedio richiede una evoluzione dei dispositivi elettronici basati su leggi fisiche del bit classico.
Quindi per classificare l’alfabeto serve l’albero della sintassi per plasmare la memoforma decidibile dalla classificazione del pensiero elettronico e il modello di Zuse è perfetto con il memristore e in futuro con uno stato intermedio.
Il check up del calcolo computazionale esiste perchè ha una unità di massa atomica e ciò è vero anche perchè la trasformazione dell’energia elettrica ha permesso ai dispositivi elettronici di essere dotati di una autonomia.
Stefano Fantin ritiene la teoria corpuscolare un’ottima soluzione di computazione per il check up di quello che progettualmente esiste dato dal ponte che collega quello che esiste con quello che vorremmo esista.
Stefano Fantin oltre a fare ricerca nell’architettura software di Iron SEO pone enfasi sulla legge di Moore e fa ricerca su bilanciamenti di come potrebbero essere i nuovi dispositivi, stimiamo gli aerei ma non pensiamo che il positrone alla base dell’effetto venturi venga designato e commercializzato a breve.

Vorrei sottolineare che già nel 2015 Google è stata una delle primissime aziende ad usare supercomputer con uno stato intermedio assieme alla NASA, vorrei sottolineare anche che Alphabet è una holding a cui fa capo Google e l’alfabeto è la base della trasformazione del dato in informazione e dell’informazione in conoscenza e della conoscenza nella classificazione forte del pensiero elettronico.

Il logo di Stefano Fantin come già detto espone la metafora del tachimetro ma può essere utilizzata come una breccia nei futuri dispositivi su file system o nell’ipertesto al posto della metafora delle finestre che è ancora usata nei dispositivi desktop e in parte nel mobile.


Classificazione del pensiero elettronico:

– intelligenza artificiale -> il cervello elettronico è plasmato sull’architettura del calcolatore elettronico
La classica intelligenza artificiale si basa sul bit e sull’architettura del calcolatore.

– Stefano Fantin: fa ricerca nel pensiero elettronico ma non da come è formato il calcolatore ovvero la sua architettura bensi’ a livello computazionale pone enfasi sul calcolo matematico.
Le differenze sono diverse perchè l’intelligenza artificiale classica si basa su algoritmi che storicamente hanno due fonti, la prima l’architettura di Von Neuman e la seconda di Alan Turing, mentre Stefano Fantin è diverso perchè preferisce l’architettura di Zuse.
Stefano Fantin basandosi sui modelli di Zuse va contro gli algoritmi e il divide et impera perchè preferisce modelli decisionali per classificare il pensiero elettonico.

Le architetture software fino a pochissimi anni fa, si basavano sull’integrazione : integrare significa METTERE DENTRO e quindi fare in modo che tutto sia dentro, basti pensare alla sicurezza informatica dove si cerca di essere il più integrati possibili ad esempio con i firewall a membrana. Stefano Fantin va contro questo tipo di architettura data da algoritmi e il loro divide et impera e ipotizza nella architettura del modello di Zuse che il software venga creato CONTINUAMENTE fuori e la sua discretizzazione è anche essa fatta da CATENE fuori.

La programmazione modulare è giusta, ma l’integrazione è opinabile.

La linearità del software è dovuta a molti fattori sui quali non sono d’accordo quali la portabilità, l’integrazione, gli algoritmi. Purtroppo la portabilità esiste ma ne sussegue che offra integrazione e vengano designati algoritmi, in molti magari penseranno che “ABBIAMO SEMPRE FATTO COSI’ ” però a livello di prestazioni in molti utenti di Microsoft Windows non è mai interessata avere un personal computer performante, ma se al posto di Windows averlo LINEARMENTE dipendente si utilizza una potenza allora le performance saranno sicuramente esponenziali.

I passaggi per le performance sono da lineare a esponenziali, da esponenziali a prodotto di potenze notevoli : se poi ci mettiamo uno stato intermedio bisogna ricercare il giusto bilanciamento di prodotti di potenza notevoli.

E’ già stato fatto un sistema operativo per email, chiamato IT’S ME ma è attualmente in fase di lavoro, l’obiettivo di IT’S ME : progetto italianissimo e Bicocchissimo (Università degli Studi di Milano Bicocca) è andare oltre la metafora del desktop e la prima beta pubblica usata da molti utenti era basata sulla metafora del calendario o in stile politico l’AGENDA DIGITALE .

I punti a favore del sistema operativo IT’S ME, distro basata su kernel linux, non c’è bisogno dei motori di ricerca in quanto l’architettura tutta fuori e a moduli permetterebbe tramite le VENUS della architettura della memoria NON LINEARE ma a curve (seno, coseno, …) di visualizzare quanto serve non più utilizzando i motori di ricerca con algoritmi sempre più integralmente affinati, ma tramite appunto le la metafora del calendario o agenda digitale data da curve / Venus.

Il progetto di sistema operativo IT’S ME guidato da Giorgio De Michelis, è potenzialmente più interessante di molti software commerciali ERP ovvero dei gestionali perchè pensate a un gestionale proprietario integrato tutto fuori che “parla” con IT’S ME … non voglio ingannarvi perchè il lavoro di portare fuori il gestionale in moduli tutti fuori è inversamente congruente all’entrata di mercato di IT’S ME.

Concludo traducendo una frase “curva” in dialetto : 100 persone hanno 100 teste, 100 persone hanno 200 chiappe. in dialetto : 100 cò, 100 crap, 100 kul, 200 ciap.

Cambiando argomento, vorrei comunicare che il prodotto IRON SEO 2017, è disponibile, per informazioni contattatemi a stefanofantin@icloud.com


 

Stefano Fantin offre il servizio di DBA, quindi database administrator, sopratutto in Italia sia nelle principali città italiane quali Milano, Roma, Torino, Napoli, Palermo, Rimini, Bergamo e Brescia ma anche nei piccoli comuni italiani.

Database consultant : dba – database administrator

I nostri clienti non cercano altre aziende perchè è difficile che commettiamo degli errori, sopratutto in ambito database.

Al contrario sono i clienti delle aziende nostre concorrenti che ci cercano e il motivo è perchè sono stati commessi degli errori.

Ci proponiamo come database consultant perchè crediamo nella trasformazione di:

  • Dato
    • Informazione
      • Conoscenza
        • Classificazione forte del pensiero elettronico

Facciamo ricerca sia tecnica quindi su tutte le tematiche tecniche del database che sulla trasformazione del dato in informazione e dell’informazione in conoscenza e della conoscenza in classificazione del pensiero elettronico.

Modello : DBA – Database Administrator

Stefano Fantin ha un modello collaudato per gestire il lavoro di Remote DBA, offre costi contenuti e alti standard di sicurezza informatica.

Stefano Fantin sopratutto offre un supporto per Remote DBA in grado di ridurre i tempi di intervento e sopratutto un ambiente competitivo perchè nella mischia emerge il migliore.

Stefano Fantin ha i propri collaboratori attivi per il remote DBA sia in orario diurno che in orario notturno, quindi :

  • monitoraggio remoto per database gestiti 24/7
    • monitoraggio remoto per database gestiti in orario diurno (remote DBA diurno)
    • monitoraggio remoto per database gestiti in orario notturno (remote DBA notturno)

Parole chiave : Stefano Fantin | database consultant in Italy, database provider in Milano and Bergamo, database consultant services in Milano,Bergamo,Roma, get database, database consultant services in Milano, buy database for any domain. | Database Consultant Stefano Fantin | Our services are designed for any business who wants access to expert database resources without needing someone at the office on a full time basis. | Database Consultants Stefano Fantin |  Stefano Fantin is a data-driven company specialising in providing business-critical customer management applications . #1 Database Consultants | Oracle Remote DBA and Postgresql experts, SQL Server Experts.

 Parole descrittive : Stefano Fantin | If you are looking for database of any category then you can contact database consultant in Italy who will provide any data as required by you for need of organization, database consultant is leading database provider in Milano and Bergamo . | Database consulting services. | Database Design | Database Health Check | Performance Tuning | Oracle | SQL Server | Couchbase | MongoDB | MySQL | Migration. | Database Consultant | Oracle | SQL Server | NoSQL . 24X7 SQL server and Oracle Remote DBA services. All database consulting and support services are provided by leading remote DBA experts : Stefano Fantin.

Dopo questa introduzione in lingua inglese, introduco in Stefano Fantin un valido partner di business per database.

Stefano Fantin crede nel computing e sopratutto ha come sua visione la classificazione forte del pensiero elettronico:

  • dato
    • informazione
      • conoscenza
        • classificazione forte
          • pensiero elettronico

Oltre a trattare i database in tutte le loro sfacettature, offriamo servizi SEO per offrire progetti di big data, perchè è vero che l’algoritmo di google è segreto, ma anche i dati di Google sono il suo valore dato da modelli decisionali.

Grazie per credere nella nostra vision.

 


Remote DBA

Stefano Fantin offre il servizio di Remote DBA, quindi remote database administrator, sopratutto in Italia sia nelle principali città italiane quali Milano, Roma, Torino, Bergamo e Brescia ma anche nei piccoli comuni italiani.

Stefano Fantin ha un modello collaudato per gestire il lavoro di Remote DBA, offre costi contenuti e alti standard di sicurezza informatica.

Stefano Fantin sopratutto offre un supporto per Remote DBA in grado di ridurre i tempi di intervento e sopratutto un ambiente competitivo perchè nella mischia emerge il migliore.

Stefano Fantin con il il proprio servizio qualificato di Remote DBA offre amministrazione e manutenzione dei database quali Oracle e Postgresql, offre quindi : troubleshooting, ottimizzazione del database e performance scalability, ma sopratutto un attento monitoraggio del database in modo proattivo.

Stefano Fantin ha i propri collaborativi attivi per il remote DBA sia in orario diurno che in orario notturno, quindi :

  • monitoraggio remoto per database gestiti 24/7
    • monitoraggio remoto per database gestiti in orario diurno (remote DBA diurno)
    • monitoraggio remoto per database gestiti in orario notturno (remote DBA notturno)

Stefano Fantin offre sessioni di training in aula e training on-the-job, ma sopratutto offre consulenza sia On-Site che consulenza da Remoto.

Stefano Fantin è molto attivo nel cloud e ha la propria soluzione di cloud DBA in quanto le aziende delocalizzano i propri dati tramite appunto il cloud ma serve integrazione dei dati tramite personale qualificato come quello di Stefano Fantin.

 

Nel mondo ci sono molte ottime aziende di Remote DBA, le quali hanno ottimo know how quindi faccio i complimenti alla concorrenza che lavora come Remote DBA services.

E’ difficile competere in America, Canada, Brasile, Russia, India, Cina, Giappone, Regno Unito, Svizzera, Francia e bisogna essere molto bravi come lavoro di Remote DBA.

Mi piacerebbe prendere l’aereo e partecipare a meetup nelle città americane, candesi, russe, indiane,brasiliane, cinesi e giapponesi per Remote DBA.

Io sono italiano ma penso che Zürich, Muenchen, Frankfurt,Berlin, London siano messe bene come DBA quindi Remote DBA Zürich, Muenchen, Frankfurt,Berlin, London. Anche se sono italiano c’è da dire che queste 5 città: Zürich, Muenchen, Frankfurt,Berlin, London competono in Europa e sono molto avanzate con la tecnologia. Anche Berlin è molto avanzata come Remote DBA Berlin quasi quanto i paesi nordici. La mia opinione su Milano perchè lavoro a Milano come Remote DBA Milano è che siamo messi bene, ma purtroppo in Italia le città non sono tutte come Milano e mi dispiace per i colleghi di DBA che lavorano in altre città.

Siccome c’è la globalizzazione il servizio di remote DBA è possibile richiederlo pur avendo attività nelle maggiori città americane quindi Remote DBA New York city, Los Angeles, Chicago, Houston, Filadelfia, Phoenix, San Antonio, San Diego, Dallas, San Jose, Indianapolis, San Francisco, Detroit, ElPaso, Seattle, Boston, Washington, Sacramento, Atlanta, Raleigh. Mi piacerebbe conoscere Remote DBA di New York city, Los Angeles, Chicago, Houston, Filadelfia, Phoenix, San Antonio, San Diego, Dallas, San Jose, Indianapolis, San Francisco, Detroit, ElPaso, Seattle, Boston, Washington, Sacramento, Atlanta, Raleigh e confrontare le mie idee sul lavoro di Remote DBA di queste città americane dove ricordo che gli americani hanno ottime aziende e un ottimo know how quindi faccio i complimenti ai lavoratori delle precedenti città perchè è difficile competere in America e bisogna essere molto bravi.

Mi piacerebbe prendere l’aereo e partecipare a meetup nelle città americane per Remote DBA. Mi piacerebbe lavorare come Remote DBA delle principali città del Canada sono molto bravi infatti hanno oltre un adeguato stipendio anche la possibilità di essere un tuttuno con i clienti del Canada cioè Remote DBA Toronto, Montréal, Calgary, Ottawa, Edomonton, Missisauga, Winnipeg, Vancouver.

 

Attualmente ci sono diversi tipi di database dal classico modello E/R cioè entità relazioni a quello NoSQL con partizionamento orizzontale al posto che verticale ma penso che remote DBA London, Glasgow, Sheffield, Liverpool, Manchester, Bristol, Leeds, Birmingham, siano molto preparati e riescono a risolvere moltissimi problemi tecnici quasi quanto il lavoro di Remote DBA su Bari, Catania, Venezia, Verona, Messina, Trieste, Taranto, Prato, Reggio Calabria, Perugia, Ravenna, Cagliari, Foggia, Rimini, Salerno, Ferrara, Sassari, Latina, Siracusa, Pescara, Vicenza, Bolzano, Novara, RHO, Lainate, Udine,Monza, Ancona.

Io mi chiamo Stefano Fantin e sono italiano, vivo in Italia e credo che si possa aumentare il lavoro e nel più specificio la QUALITA’ lavorativa in modo efficiente e sicuro cioè in remoto, quindi Remote DBA nelle seguenti regioni, ergo Remote DBA Valle d’Aosta, Piemonte,Liguria, Lombardia,Trentino Alto Adige,Veneto, Emilia Romagna, Toscana, Marche, Sardegna, Sicilia, Lazio, Puglia, Calabria. Ci possono essere anche i Remote DBA locali delle imprese locali quindi Remote DBA nelle seguenti regioni, ergo Remote DBA Valle d’Aosta, Piemonte,Liguria, Lombardia,Trentino Alto Adige,Veneto, Emilia Romagna, Toscana, Marche, Sardegna, Sicilia, Lazio, Puglia, Calabria ma la modalità remota permette di essere ovunque e comprendere la globalizzazione che è già avvenuta e siamo tutti globalizzati.

 

REMOTE DBA ORACLE.

Per il servizio di Remote DBA, la maggior parte dei dipendenti/collaboratori, utilizza sistemi operativi come BSD Unix o alla peggio Linux Red Hat. Alcuni software che utilizziamo per il servizio remoto sono: wireshark come analizzatore di traffico di rete, Symantec End Point Encryption, Endian Firewall, Snort come IDS/IPS , securitykiss come Tunnel, secureline vpn di Avast, è difficile ma se si dovesse utilizzare un client Windows per la connessione utilzziamo il software mobaxterm in modo da avere la potenza di Unix, in Windows.

 

Stefano Fantin ha studi tecnici come Remote DBA Oracle:

– Remote DBA Oracle 8i : webDB, outline, DBMS_REPAIR, logMiner, DROP column, LMT, TRIM function, MERGE partitions, HASH and COMPOSITE partitions
– Remote DBA Oracle 9i : fast-start time-based recovery limit, Flashback Query, Resumable Space Allocation, Trial Recovery, Data Guard, online index rebuild, Online table redefinitions,SPFILE, External Tables, ASSM, Oracle RAC, OMF
– Remote DBA Oracle 10g : Data Pump, AWR, ASH, ADDM, SQL Tuning Advisor, Oracle scheduler, Segment Shrink, Segment Advisor, BFT, Flash Recovery Area
– Remote DBA Oracle 11g : DNFS, Online Patching, ASM Fast Mirror Resync, md_backup, md_restore, AWR baseline template, File Watcher, AMM, INCREMENTAL and PENDING statistics, Interval Partitioning
– Remote DBA Database Oracle 12c : multitenant Container DataBase, CDB, PDB, ADO, Heat MAp, PGA Size Limit, DBMS_QOPATCH, Automatic Big Table Caching, In- Memory (IM) Column Store

 

Consulenza database Oracle:
– performance tuning : miglioramenti delle performance del database Oracle, elasticità:futura riduzione del rischio di basse performance,
scalabilità verticale o scalabilità orizzontale per progetti big data con database Oracle
– analisi database e design database
– backup DBA
– sicurezza del database Oracle : analisi delle vulnerabilità, conformità dei report di auditing
– monitoring database Oracle

 

Oracle Features Implementation:

– ASM (Automatic Storage Management)
– RMAN (Recovery Manager)
– TDE (Transparent Data Encryption)
– SPM (Sql Plan Management)
– Online Redefinition
– Partitioning
– Compression
– Resource Manager
– Flashback
– Streams
– Real Application Testing
– Gateway
– Advanced Security
– Secure Backup

 

Nel mondo ci sono molte ottime aziende di Remote DBA, le quali hanno ottimo know how quindi faccio i complimenti alla concorrenza che lavora come Remote DBA services.

E’ difficile competere in America, Canada, Brasile, Russia, India, Cina, Giappone, Regno Unito, Svizzera, Francia e bisogna essere molto bravi come lavoro di Remote DBA in particolare come Remote DBA Oracle, ma in Stefano Fantin ci sono eccellenti DBA Oracle non solo a Milano ma in tutta italia che possono lavorare da remoto in tutto il mondo. Grazie all’esperienza in D&T ho imparato molto sui database e ho fatto molta ricerca e sviluppo specializzandomi nei database di grandi dimensioni e più in particolare nei BIG DATA. Mi piacerebbe prendere l’aereo e partecipare a meetup nelle città americane, candesi, russe, indiane,brasiliane, cinesi e giapponesi per Remote DBA Oracle. Con la mia precedente esperienza mi sono documentato moltissimo sulla tecnologia Oracle sia in proprio quindi nel tempo libero che al lavoro e mi piace il lavoro di database administrator Oracle a Milano, quindi DBA Oracle a Milano. Mi piace il lavoro su Oracle nella business intelligence con ODI cioè Oracle Data Integrator e OWB cioè Oracle Warehuouse Builder. Mi piace il data warehouse e la qualità dei dati. Stimo moltissimo anche postgresql che è libero e si può studiare il suo codice sorgente. Mi piace anche la Apache con Hadoop e Cassandra e il big sql cioè Postgresql e Hadoop e Cassandra. Io sono italiano ma penso che Zürich, Muenchen, Frankfurt,Berlin, London siano messe bene come DBA Oracle quindi DBA Oracle Zürich, Muenchen, Frankfurt,Berlin, London. Anche se sono italiano c’è da dire che queste 5 città: Zürich, Muenchen, Frankfurt,Berlin, London competono in Europa e sono molto avanzate con la tecnologia. Anche Berlin è molto avanzata come Remote DBA Oracle Berlin quasi quanto i paesi nordici. La mia opinione su Milano perchè lavoro a Milano come DBA Oracle Milano è che siamo messi bene, ma purtroppo in Italia le città non sono tutte come Milano e mi dispiace per i colleghi di DBA che lavorano in altre città. Nelle principali città americane viene offerto il servizio di remote DBA Oracle su standard americani, Stefano Fantin è leader in Italia per il servizio di remote DBA Oracle 24h su 24 e 7 giorni su 7. Siccome c’è la globalizzazione il servizio di remote DBA Oracle è possibile richiederlo pur avendo attività nelle maggiori città americane quindi Remote DBA Oracle New York city, Los Angeles, Chicago, Houston, Filadelfia, Phoenix, San Antonio, San Diego, Dallas, San Jose, Indianapolis, San Francisco, Detroit, ElPaso, Seattle, Boston, Washington, Sacramento, Atlanta, Raleigh. Mi piacerebbe conoscere DBA Oracle New York city, Los Angeles, Chicago, Houston, Filadelfia, Phoenix, San Antonio, San Diego, Dallas, San Jose, Indianapolis, San Francisco, Detroit, ElPaso, Seattle, Boston, Washington, Sacramento, Atlanta, Raleigh e confrontare le mie idee sul database Oracle con i DBA Oracle di queste città americane dove ricordo che gli americani hanno ottime aziende e un ottimo know how quindi faccio i complimenti ai lavoratori delle precendenti città perchè è difficile competere in America e bisogna essere molto bravi ma alla D&T ci sono eccellenti DBA Oracle non solo a Milano ma in tutta italia che possono lavorare da remoto in tutto il mondo. Mi piacerebbe prendere l’aereo e partecipare a meetup nelle città americane per Remote DBA Oracle.

 

Mi piacerebbe confrontarmi anche con i DBA Oracle del Canada per magari imparare nuove conoscenze sulla bellissima tecnologia Oracle che mi affascina e che mi rende felice ogni giorno di lavorare come DBA Oracle Milano anche se i DBA delle principali città del Canada sono molto bravi infatti hanno oltre un adeguato stipendio anche la possibilità di essere un tuttuno con i clienti del Canada cioè DBA ORACLE Toronto, Montréal, Calgary, Ottawa, Edomonton, Missisauga, Winnipeg, Vancouver. Come ho più volte detto, il servizio di REMOTE DBA in Canada e nelle sue relative città cioè Remote DBA ORACLE Toronto, Montréal, Calgary, Ottawa, Edomonton, Missisauga, Winnipeg, Vancouver.  A me hanno insegnato a dare molta importanza alla sicurezza e alla privacy nelle basi di dati con auditing del database e la crittografia. La differenza è che magari in america o in canada o in altri stati le aziende di ict non investono adeguatamente nella sicurezza informatica per fare l’attività di remote DBA Oracle perchè la sicurezza è un processo di business e chi non investe in sicurezza e giusto che venga punito con attacchi mirati tramite apt. Vorrei sottolienare la professionalità di Stefano Fantin che gli ha insegnato la D&T per gli elevati standard di sicurezza adottati per il remote dba oracle e l’impegno da parte del personale aziendale alla tutela della privacy con la verifica dell’ampiezza della profilazione utente in app e sul web quindi con filtri cioè il filtraggio dell’informazione. Io come altro personale stiamo studiando su libri americani e articoli sul web e partecipando a eventi i computer quantistici che potrebbero essere utili nel mondo dei big data e l’architettura lambda perchè ripeto la sicurezza è un processo di business e l’unico modo per memorizzare le applicazioni a qbit è il database. Attualmente ci sono diversi tipi di database dal classico modello E/R cioè entità relazioni a quello NoSQL con partizionamento orizzontale al posto che verticale di Oracle Exadata che compete con il Nosql. Il precursore del mondo NoSQL è Google con la sua Big Table e il suo file system che non sono in vendita mentre è in vendita Hadoop che è composto dalla architettura lambda per i big data. Se avete un progetto di big data in italia mandatemi una mail a stefanofantin@icloud.com e contatterò l’azienda che è molto impegnata su questo fronte con investimenti importanti. Mi piace il Regno Unito e credo che ci sia una ripresa economica che partirà delle città con più popolazione perchè sono ricche e il database Oracle può essere sfruttato in modo innovativo quindi remote DBA Oracle London, Glasgow, Sheffield, Liverpool, Manchester, Bristol, Leeds, Birmingham, penso che il remote DBA Oracle se fatto lowcost può essere meglio di DBA ORACLE London, Glasgow, Sheffield, Liverpool, Manchester, Bristol, Leeds, Birmingham. Nel Regno Unito mi piace London e ho amici che vivono a London e ho conoscenze come remote DBA ORACLE London in quanto sono persone DBA ORACLE London. London è bellissima e la Oracle Corporation è la seconda azienda al mondo che vende software, quindi unire le due cose si ottiene un bel lavoro quello del remote DBA Oracle London e quello di andare in settimana a London per fare conoscere il made in Italy della azienda dove lavoro. Remote DBA Oracle London è veramente una cosa affascinante, perchè London è stupenda e Remote DBA Oracle London è il mio lavoro attuale che non voglio cambiare come non voglio cambiare azienda perchè mi trovo bene. Deutschland è il mio stato preferito perchè mi piace il suo cibo e le persone sono tutte socievoli. In Deutschland sono molto avanzati su tecnologia Oracle infatti su Google trovo moltissimo materiale in Tedesco per le mie attività di DBA Oracle Milano. Penso che DBA Oracle Berlin, Hamburg, Köln, München, Frankfurt, Dortmund, Stuttgart, Düsseldorf, Bremen, Hannover, Nürnberg, Leipzig, Dresden ci siano molte persone esperte in DBA Oracle ma il problema è in primo luogo la qualità del lavoro e in secondo luogo il fare risparmiare il denaro e Remote DBA Oracle è low cost per le seguenti città, quindi Remote DBA Oracle Berlin, Hamburg, Köln, München, Frankfurt, Dortmund, Stuttgart, Düsseldorf, Bremen, Hannover, Nürnberg, Leipzig, Dresden La spagna fa parte dell’euro e ha un buon PIL. Gli spagnoli sono molti bravi su tecnologia Oracle e in particolare su Java e sui database Oracle. Ci sono molti libri in spagnolo su amazon in merito alla tecnologia Oracle e sono fonti autorevoli, peccato che io lo spagnolo non lo conosco e lo capisco approssimativamente però mi farebbe piacere essere contattato da DBA Oracle Madrid, Barcelona, Siviglia, Valencia, Cordoba, Granada, Saragozza, Bilbao per cercare di comunicare in modo da scambiare le proprie conoscenze sui database relazionali e sui big data e l’architettura lambda e il mondo No SQL. Penso che la modalità remota se fatta in modo low cost permetta di portare benefici economici alle aziende e fare risparmiare denaro, non è difficile, basta fare una quotazione sul sito che ho esposto all’inizio, sono convinto che REMOTE DBA ORACLE Madrid, Barcelona, Siviglia, Valencia, Cordoba, Granada, Saragozza, Bilbao possano avere benefici dal know how italiano. Stimo gli Olandesi perchè hanno belle città e vivono bene, i clienti olandesi hanno DBA Oracle Amsterdam, Rotterdam, Keukenhof, Delft, Utrecht, Den Haag, Kinderdijk però oltre ad esserci la globalizzazione si può risparmiare in modalità remota quindi Remote DBA Oracle Amsterdam, Rotterdam, Keukenhof, Delft, Utrecht, Den Haag, Kinderdijk e si è low cost cioè low cost remote dba oracle in olanda, ricordo che il remote dba oracle è fatto in italia ma in remoto ci si collega in modo sicuro a tutte le città del mondo dove si hanno clienti. Gli emirati arabi sono un paese molto ricco e dove c’è ricchezza non può mancare la globalizzazione e le grandi industrie.

 

Per questi grandi clienti di sicuro ci saranno DBA ORACLE Dubai, Abu Dhabi, Ajman, Al Ain, Al Ghaf, Al Mirfa, Al Rahba, Diba Al Fujairah, Digdaga, Endurance City. Quello che vorrei fare capire è che nonostante l’enorme denaro degli sceicchi si può risparmiare denaro con la qualità del made in Italy di Stefano Fantin e il suo sito di remote dba, quindi remote DBA Oracle Dubai, Abu Dhabi, Ajman, Al Ain, Al Ghaf, Al Mirfa, Al Rahba, Diba Al Fujairah, Digdaga, Endurance City e si ottiene low cost database oracle in remote mode get your quote. Adoro lavorare per i russi e in particolare nelle città di Москва, Санкт-Петербург, nəvəsʲɪˈbʲirsk come дистанционное администратором баз данных Oracle, quindi remote dba oracle Москва, Санкт-Петербург, nəvəsʲɪˈbʲirsk. Mi piacerebbe anche fare come il calciatore Alessandro Del Piero che alla Juventus non trovava più spazio ed è andato in Australia. Io lavorerei in remoto per i clienti dell’australia e in particolare nelle città di Adelaide, Sydney, Perth, Brisbane, Hobart, Melbourne, Darwin, Canberra. Ci terrei tanto a fare apprezzare le mie competenze sul database Oracle e i miei concetti oltre a quella dei colleghi per lavorare come Remote DBA ORACLE Adelaide, Sydney, Perth, Brisbane, Hobart, Melbourne, Darwin, Canberra. Se volete contattarmi sono su facebook. Stimo moltissimo i paesi nordici perchè sono molto evoluti con tecnologia Oracle. Mi piacerebbe conoscere persone dei paesi nordici che lavorano come Remote DBA Oracle principalmente nelle città København, Stockholm, ˈhɛlsiŋki. Se qualche remote dba oracle dei paesi nordici è interessato a una conversazione allora mi può mandare una mail o chiedermi l’amicizia su facebook o contattarmi su linkedin. Il DBA lo si fa a Milano presso la sede di Stefano Fantin mentre il Remote DBA ORACLE è in tutto il mondo e Stefano Fantin grazie all’esperienza del CEO in D&T ha un sito web per questo lavoro che in seguito enuncerò. Credo nella ripresa economica dell’Italia e principalmente credo nelle seguenti città si può generare reddito con i database Oracle e la figura professionale del DBA ORACLE Bari, Catania, Venezia, Verona, Messina, Trieste, Taranto, Prato, Reggio Calabria, Perugia, Ravenna, Cagliari, Foggia, Rimini, Salerno, Ferrara, Sassari, Latina, Siracusa, Pescara, Vicenza, Bolzano, Novara, RHO, Lainate, Udine,Monza, Ancona . Credo personalmente che bisogna fare il low cost Remote DBA ORACLE Bari, Catania, Venezia, Verona, Messina, Trieste, Taranto, Prato, Reggio Calabria, Perugia, Ravenna, Cagliari, Foggia, Rimini, Salerno, Ferrara, Sassari, Latina, Siracusa, Pescara, Vicenza, Bolzano, Novara, RHO, Lainate, Udine, Monza, Ancona perchè l’essere low cost in Remote DBA Oracle è importante e Stefano Fantin riuscirebbe a portare reddito nei clienti di queste città italiane. Migliai di clienti in Italia hanno database Oracle ma quanti hanno un reddito e un ROI su ORACLE? Non è facile generare reddito e far risparmiare sui database Oracle ma io ci riesco perchè lavoro per una bellissima azienda. Io mi chiamo Stefano Fantin e sono italiano, vivo in Italia e credo che si possa aumentare il lavoro e nel più specificio la QUALITA’ lavorativa in modo efficiente e sicuro cioè in remoto, quindi Remote DBA Oracle nelle seguenti regioni, ergo Remote DBA Oracle Valle d’Aosta, Piemonte,Liguria, Lombardia,Trentino Alto Adige,Veneto, Emilia Romagna, Toscana, Marche, Sardegna, Sicilia, Lazio, Puglia, Calabria. Ci possono essere anche i DBA ORACLE locali delle imprese locali quindi DBA Oracle nelle seguenti regioni, ergo Remote DBA Oracle Valle d’Aosta, Piemonte,Liguria, Lombardia,Trentino Alto Adige,Veneto, Emilia Romagna, Toscana, Marche, Sardegna, Sicilia, Lazio, Puglia, Calabria ma la modalità remota permette di essere ovunque e comprendere la globalizzazione che è già avvenuta e siamo tutti globalizzati. L’unico servizio al mondo che permette una quota di remote dba Oracle lo offre l’azienda per la quale lavoro cioè Stefano Fantin.

 

Nelle principali città mondiali e con un alto PIL viene offerto da Stefano Fantin il servizio di remote DBA in particolare su Oracle, MySQL, Postgresql. Gli standard sono leader di settore e sono standard internzionali di pregiata qualità lavorativa. Stefano Fantin è leader in Italia per il servizio di remote DBA Oracle 24h su 24 e 7 giorni su 7. Stefano Fantin ritiene molto importante la Data Quality e investe constantemente in ricerca e sviluppo perchè vuole essere una azienda di valore perchè i dati non di valore sono un costo per l’azienda.

Stefano Fantin ha esperienza e passione per il database Oracle, con studi tecnici a partire dalla versione del database Oracle 8i, seguite da altri studi tecnici per la versione del database Oracle 9i, entrambe le versioni è molto difficile che siano in produzione, questo fa capire che la passione per la tecnologia di database Oracle è molto longeva. Attualmente la versione in produzione presso grandi banche è la versione del database Oracle 10g, ma certe aziende utilizzano la versione del database Oracle 11g. Entrambe le versioni del database Oracle grid cioè la 10g e la 11g vengono utilizzate per la maggior parte di banche che hanno software legacy, sopratutto Java o Cobol. Stefano Fantin cerca di portare innovazione ai suoi clienti cercando di proporre la versione del database Oracle 12c in quanto è veramente eccellente sotto ogni aspetto ed è il frutto di 2500 anni-uomo di sviluppo in cinque anni solari e 1,2 milioni di ore di test.

Le principali funzionalità introdotte nel database Oracle dal 1999 al 2016:
– Database Oracle 8i : webDB, outline, DBMS_REPAIR, logMiner, DROP column, LMT, TRIM function, MERGE partitions, HASH and COMPOSITE partitions
– Database Oracle 9i : fast-start time-based recovery limit, Flashback Query, Resumable Space Allocation, Trial Recovery, Data Guard, online index rebuild, Online table redefinitions,SPFILE, External Tables, ASSM, Oracle RAC, OMF
– Database Oracle 10g : Data Pump, AWR, ASH, ADDM, SQL Tuning Advisor, Oracle scheduler, Segment Shrink, Segment Advisor, BFT, Flash Recovery Area
– Database Oracle 11g : DNFS, Online Patching, ASM Fast Mirror Resync, md_backup, md_restore, AWR baseline template, File Watcher, AMM, INCREMENTAL and PENDING statistics, Interval Partitioning
– Database Oracle 12c : multitenant Container DataBase, CDB, PDB, ADO, Heat MAp, PGA Size Limit, DBMS_QOPATCH, Automatic Big Table Caching, In- Memory (IM) Column Store

Consulenza database Oracle:
– performance tuning : miglioramenti delle performance del database Oracle, elasticità:futura riduzione del rischio di basse performance,
scalabilità verticale o scalabilità orizzontale per progetti big data con database Oracle
– analisi database e design database
– backup DBA
– sicurezza del database Oracle : analisi delle vulnerabilità, conformità dei report di auditing
– monitoring database Oracle

Oracle Features Implementation:

– ASM (Automatic Storage Management)
– RMAN (Recovery Manager)
– TDE (Transparent Data Encryption)
– SPM (Sql Plan Management)
– Online Redefinition
– Partitioning
– Compression
– Resource Manager
– Flashback
– Streams
– Real Application Testing
– Gateway
– Advanced Security
– Secure Backup

 

REMOTE DBA POSTGRESQL.

Il Ceo Stefano Fantin ha studiato il codice sorgente del DBMS Postgresql dalla versione 8 di Postgresql fino a Postgresql 9.5, a breve uscirà la versione di Postgresql 9.6 .

 

I collaboratori di Stefano Fantin offrono consulenza sul DBMS Postgresql per:

Remote DBA Postgresql 8.0 : PITR, Tablespace, Windows Support, Savepoints
Remote DBA Postgresql 8.1 : Table partioning, Bitmap scans, Two-Phase commits, autovacuum
Remote DBA Postgresql 8.2 : Warm Standby, SQL 2003, Concurrent Index Builds, Gin indexes
Remote DBA Postgresql 8.3 : Hot updates, Asynchronous commit, XML, Fulltext search, Distribuited checkpoints
Remote DBA Postgresql 8.4 : Windows functions, CTEs, Database collations, Per-Column permission
Remote DBA Postgresql 9.0 : Hot Standby, Streaming Replication, Column Triggers, Conditional Triggers, hstore
Remote DBA Postgresql 9.1 : Synchronous Replication, Writable CTEs, Extension, Foreign Data Wrappers, Unlogged tables, Serialisable Snapshot Isolation, Column collations
Remote DBA Postgresql 9.2 : Cascading Replication, Index-Only scans, pg_stat_statements, Json, Ranges
Remote DBA Postgresql 9.3 : Writable Foreign Data Wrappers, Materialised Views, JSON functions and operators, LATERAL
Remote DBA Postgresql 9.4 : Logical replication, Replication slots, JSONB –> GIN (Generalized Inverted Index), scalability : Logical Decoding
Remote DBA Postgresql 9.5 : UPSERT, Row-level security, functionality for Big Data: BRIN index, algorithm called “keys abbreviated”,CUBE, ROLLUP, and GROUPING SET, TABLESAMPLE, Foreign Data Wrappers (FDW)

Remote DBA Postgresql 9.6 : Scalabilità verticale tramite query parallele, Scalabilità orizzontale tramite replica sincrona e
‘postgres_fdw’, Miglior ricerca testuale con le frasi. Parallel Query : Parallel sequential scans, parallel joins, parallel aggregates.
Transactions, VACUUM and the Visibility Map : pg_visibility extension for examining visibility maps, Frozen page data in visibility map
for skipping vacuum on already-frozen data, User-defined expiration of snapshots to control table bloat. Performance and Monitoring :
Detailed wait information in pg_stat_activity, Index-only scans for partial indexes, Performance improvements for external sort
operations. System Views and Administration : New system view pg_config, pg_blocking_pids, Functions pg_get_* to return NULL on invalid
objects, pg_notification_queue_usage to look at notify queue. Backups : pg_basebackup extended with replication slots, New API for hot physical backups. Other Features: Command progress reporting, Generic WAL facility, Trigonometric functions in degrees.

Remote DBA Postgresql 10 : Logical replication, declarative table partitioning, improved query parallelism

 

Sicurezza del database

I MECCANISMI DI PROTEZIONE DEL DB-SERVER

Le basi di dati sono solitamente memorizzate su potenti server denominati Db-Server, essi vanno prima di tutto salvaguardati da accessi fisici non autorizzati ma anche da eventi accidentali che determinino un’indisponibilità del componente fisico. Tali protezioni si dicono esterne al Db-Server.
Le protezioni interne al Db-Server, invece, riguardano tutti quei meccanismi messi in opera dai livelli dello stack tecnologico nel flusso informativo tra Server e client, si veda fig. 1.

Applicazione
DBMS
Sistema Operativo
Network
Hardware

Fig.1 – Stack tecnologico multilivello

A livello hardware, proteggere un Db-server, significa evitare crash o failure di componenti fondamentali quali CPU, memorie di massa, schede di rete. Un esempio diffuso è quello di fare il mirroring dei supporti di memorizzazione, attraverso politiche di ridondanza, note come RAID a vari livelli. Se un disco si rende indisponibile, il sistema informativo non deve crollare.

A livello network, s’introducono tecniche dette di firewalling, per filtrare e consentire l’utilizzo di porte specifiche ai soli soggetti autorizzati, ma anche la crittografia si può a buon merito considerare in tale livello.

A livello sistema operativo, è basilare effettuare un controllo dell’accesso che mantenga il sistema sicuro, un sistema operativo che riesca ad implementarlo si definisce Trusted.
Val la pena approfondire il discorso dei Trusted Operation Systems.

Un Trusted O.S. contiene un numero aggiuntivo di istruzioni proprie dei meccanismi di protezione dei dati e deve esser sottoposto a verifiche da parte di enti riconosciuti a livello mondiale, ad esempio i Common Criteria, che ne accertino la validità dei meccanismi messi in atto.
Un Trusted O.S. assicura meccanismi di protezione quali:

  • autenticazione forte, che va oltre la richiesta di nome utente e password, essa riguarda l’interrogazione su elementi noti solo al soggetto.
  • controllo dell’accesso di tipo mandatorio, che si vedrà più avanti.
  • protezione da riutilizzo, evitando che oggetti cancellati lascino delle tracce riutilizzabili.
  • totale mediazione, ogni accesso a qualsiasi oggetto, viene prima mediata dal sistema operativo per valutarne la permissibilità.
  • Audit, procedura con la quale il sistema operativo registra ogni operazione, azione ed evento occorso.
  • Trusted Path, le operazioni critiche, quali posson essere l’autenticazione, l’interrogazione di una base di dati, vengono eseguite attraverso un meccanismo che assicura all’utente che sta comunicando con il legittimo modulo di gestione del sistema operativo, proteggendolo da intercettazioni.
  • Intrusion Detection, ossia un processo (demone) che sfruttando le funzionalità di auditing, stabilisca e segnali all’amministratore del sistema quando si stia verificando un intrusione esterna o interna.

A livello DBMS, i meccanismi di sicurezza saranno più avanti analizzati e discussi in dettaglio.

A livello Applicativo, è possibile concedere all’utente finale solo una serie di operazioni permesse, e dare una visibilità particolareggiata della base di dati, attraverso, ad esempio, una vista.

La protezione di un Db-Server può esser ulteriormente assicurata da un livello aggiuntivo di interfacciamento soggetto/dato, vedi fig. 2, essa è attuata tramite l’Application Server. Ogni richiesta proveniente da un client autenticato, viene interpretata ed eseguita dal server dell’applicazione, il quale sarà l’unico autorizzato ad interrogare il Db-Server per restituire al cliente il risultato.

Così facendo, si potrà:

  • utilizzare macchine progettate per il compito preposto,
  • far colloquiare db-server con application server in modo dedicato e privato,
  • filtrare, sempre, le attività degli utenti, che non avranno comunque mai visibilità sul db-server.

 

ll controllo dell’accesso

Il controllo dell’accesso è quell’insieme di verifiche attuate sulle operazioni che si possono effettuare su una base di dati. Tali verifiche sono volte a controllare che tali operazioni siano state autorizzate, evitando modifiche o cancellazioni improprie.

Nel controllo dell’accesso vanno distinti due elementi: l’Oggetto, cioè il dato utile che si vuol ottenere dalla base di dati che può esser sotto forma di valore di un certo attributo, un record, un cursore, un’intera tabella, in ogni caso, indipendentemente dalla granularità ricercata, si può considerare come l’entità passiva che subisce l’accesso ed un Soggetto, cioè l’interessato al dato, che può esser un utente, l’application server che interroga il db-server, un programma, in ogni caso l’entità attiva che richiede di poter accedere alla base di dati [1]. L’accesso avviene in un certo “modo” dove con “modi di accesso” si intenderanno i privilegi, le operazioni di lettura, scrittura o entrambe, esecuzione, ma anche operatori astratti specifici di un oggetto. L’astrazione considerata non ne compromette il grado di sicurezza, essendo poi riconducibile alle operazioni base.

Tra oggetto, soggetto e modi di accesso, si articola il sistema per il controllo dell’accesso costituito da:

  • politiche di sicurezza:insieme di leggi e principi ad alto livello con cui l’organizzazione intende gestire la sicurezza della base di dati.
  • regole di autorizzazione: implementazione delle politiche di sicurezza in un linguaggio formale che ne rappresenta le specifiche.
  • reference monitor: meccanismo di controllo implementato via software o hardware (security kernel) che, analizzate le regole di autorizzazione, stabilisca se un soggetto possa accedere, ed in che modo, all’oggetto.

 

CONFRONTO TRA DB & OS NEL CONTROLLO DELL’ACCESSO

Le politiche elencate sono state descritte considerandole applicate ad una base di dati, ma sono altrettanto valide a livello di sistema operativo, dove, fondamentalmente, la gestione del dato diviene la gestione della risorsa. Tra i due ambiti, tuttavia, vi siano sostanziali diversità, che val la pena riassumere in tabella 1.

Base di dati Sistema Operativo
Numero elevato di oggetti da proteggere. Numero ristretto o comunque determinabile di oggetti da proteggere.
Diversi livelli di granularità dell’accesso. Unico livello di accesso rappresentato dalla risorsa.
Gli oggetti sono strutture logiche, come viste, ma possono coincidere con l’oggetto fisico. Gli oggetti sono per lo più fisici, device, files, network…
Diversi gradi di protezione a seconda della granularità. Unico grado di protezione della risorsa.
Considerazioni semantiche sul dato. Considerazioni esclusivamente fisiche sul dato.

Tabella 1 – Confronto tra DB e OS nel controllo dell’accesso.

Come si evince dalla tabella 1, la prima differenza si ha nella cardinalità degli oggetti da proteggere. La base di dati può esser costituita da molte tabelle contenenti svariati attributi e migliaia di tuple, ma anche viste su tabelle e viste su viste mentre un sistema operativo solitamente è costituito da un numero limitato, o comunque non nell’ordine di grandezza di una base di dati, di dispositivi fisici, directories e files. La base di dati permette di definire il controllo dell’accesso a livello di tabella, ma anche di vista, persino di tupla; il sistema operativo, invece, consente o nega l’accesso a tutta la risorsa. Inoltre un oggetto della base di dati è inteso come un contenitore logico di informazioni, che può coincidere con tutto il file o esserne solo un segmento, mentre un oggetto del sistema operativo è inteso come risorsa fisica.

Una ulteriore differenza si ha nella gradualità della protezione dell’oggetto: se è vero che una base di dati ha viste, tabelle e tuple, allora ad ogni livello è possibile definire un diverso grado di protezione. Il sistema operativo, invece, ha una risorsa base e per essa si può definire il grado di protezione. Infine, per quanto riguarda le considerazioni semantiche del dato, la vista ne è un esempio ed è in base ad esse che si applica un certo grado di protezione; in ambito sistema operativo la risorsa non viene considerata per i relativi contenuti.

 

ORACLE AUDITING

PROFILO UTENTE IN ORACLE:
Un problema comune nella sicurezza, è quello dell’impossibilità di raggiungere la perfezione assoluta e l’assenza totale di scenari imprevisti. Questo problema è causato, ad esempio, dal fatto che in sistemi multi-utente, qualcuno finisce sempre per avere dei privilegi che potrebbero andare a minare la sicurezza complessiva del sistema se usati in modo inopportuno. Se questi privilegi non possono essere rimossi poiché ciò andrebbe ad influire sul corretto utilizzo dell’utenza, tutto quello che si può fare è monitorarne le azioni e tenere traccia dell’uso che se ne sta facendo, in modo da potere essere in grado, in caso di imprevisti, di ricreare la ‘storia’ degli eventi che ha portato all’incidente specifico, in modo tale da poterlo risolvere. Magari non si può impedire completamente che le politiche di sicurezza vengano violate, ma se non altro, si può tenere traccia del fatto che sia stato fatto. E lo scopo dell’auditing è propriamente questo.
il ruolo del CobIT alla qualità e ai requisiti di sicurezza, andando a coprire le proprie 7 categorie: Efficacia, Efficienza, Confidenzialità, Integrità, Disponibilità, Conformità e Affidabilità delle informazioni. Queste categorie gettano le basi dei 34 punti di controllo del CobIT suddivisi poi nei 4 macro-aree: Pianificazione e Organizzazione, Acquisizione e Implementazione, Consegna e Supporto, e infine, Monitoraggio.
Gestione delle Identità (Identity Management):
Assicurarsi che gli utenti interni, esterni e temporanei, e la loro attività sui sistemi IT, siano identificabili univocamente. Permettere l’abilitazione degli utenti tramite meccanismi di autenticazione. Confermare che gli utenti accedano ai sistemi corretti e che i dati siano in linea con i definiti e documentati requisiti aziendali e che i requisiti di ogni ruolo siano allegati alle identità degli utenti relativi. Assicurare che i privilegi di accesso assegnati siano richiesti dalla gestione delle identità approvata e implementata dal responsabile della sicurezza dei sistemi. Mantenere le identità e i privilegi in un repository centralizzato. Impiegare misure tecnice e procedurali adeguate, per permettere l’identificazione degli utenti, l’implementazione delle autenticazioni e la gestione dei diritti di accesso.
Gestione degli Account Utente (User Account Management):
Realizzare la richiesta di implementazioni, problematiche, sospensioni, modifiche e chiusura degli account e dei relativi privilegi utente con un preciso set di procedure di gestione utenti. Includere una procedura di approvazione che indichi la data e l’owner del sistema che ha assegnato i privilegi. Queste procedure devono essere applicate per tutti gli utenti, compresi gli amministratori e gli utenti interni ed esterni, per situazioni normali o di emergenza. Eseguire regolarmente verifiche della gestione degli account e dei relativi privilegi.
Test di Sicurezza, Sorveglianza e Monitoraggio (Security Testing, Surveillance and Monitoring):
Monitorare e testare le implementazioni di sicurezza IT in maniera proattiva. La sicurezza nell’IT deve essere riconfermata in maniera regolare per assicurare che le linee guida per la sicurezza, approvate dall’azienda, siano ancora in vigore. Una funzione di salvataggio e monitoraggio delle informazioni deve essere abilitata per prevenire ed individuare attività anormali o unusuali con relativa reportistica immediata.

 

Protezione delle Tecnologie di Sicurezza (Protection of Security Technology): Assicurare che le tecnologie relative alla sicurezza siano resistenti al tampering intenzionale e
prevenire la divulgazione non necessaria dei documenti attinenti alla sicurezza.
Gestione della configurazione
Analisi dell’Integrità della Configurazione (Configuration Integrity Review):
Rivedere periodicamente i dati di configurazione per verificarne e confermarne l’integrità. Rivedere periodicamente le politiche di utilizzo del software installato per identificare software senza licenza o istanze in eccesso in base agli accordi contrattuali vigenti. Compilare report e correggere errori e deviazioni del caso.
Gestione dei Dati
Requisiti di Sicurezza per i Dati (Security Requirements for Data):
Definire ed implementare politiche e procedure per identificare e applicare i requisiti di sicurezza al ricevimento, al trattamento, alla conservazione e alla riproduzione dei dati, per venire in contro agli obiettivi di business, alle politiche di sicurezza aziendali e ai requisiti di regolamentarizzazione.
Obbiettivo di Controllo Applicativo AC2 – Raccolta e Inserimento dei Dati Sorgente
Stabilire che l’inserimento dei dati sia eseguito in maniera tempestiva da personale qualificato ed autorizzato. La correzione e il reinserimento di dati che erano stati inseriti erroneamente dovrebbero essere eseguiti senza compromettere i livelli di autorizzazione previsti originalmente dalla transazione. Conservare i dati originali, dove può essere prevista una ricostruzione, per un appropriata quantità di tempo.

 

AUDIT DI UN DATABASE ORACLE

Il termine audit nella terminologia IT serve ad indicare il monitoraggio e la memorizzazione delle azioni svolte in un dato sistema da un particolare utente. Nel nostro caso tratteremo soltanto le azioni che vengono svolte all’interno di un database.
– Standard Auditing
– Statement Auditing
– Privilege Auditing
– Object Auditing
– Network Auditing
– System User Activity Auditing
– Security-related Auditing
– Fine-Grained Auditing (FGA)

ORACLE,FIREWALL E DMZ

L’argomento è il rapporto fra Oracle, application server, firewall e DMZ.
La definizione secondo me più sensata è quella che si trova sulla wikipedia, secondo questa definizione la DMZ è una sottorete che si trova tra la LAN Aziendale e Internet. La peculiarità di una DMZ è che vi si può accedere sia da Internet che dalla LAN Aziendale, mentre dalla DMZ ci si può connettere verso Internet ma non ci si può connettere verso la LAN aziendale. Nella DMZ quindi si mettono solitamente i Server che devono dare dei servizi pubblici su Internet, come ad esempio la posta. Nel caso degli attacchi esterni riescano a compromettere i server che si trovano sulla DMZ, la sicurezza della LAN non viene compromessa per l’impossibilità di accedere dalla DMZ alla LAN.
Questa definizione di DMZ è molto restrittiva, più comunemente viene estesa, una descrizione molto chiara, più estesa di quella data sulla Wikipedia e più vicina a quanto mi è capitato di incontrare è questa. In questa spiegazione viene rilassato un vincolo: i server in DMZ (front-end) possono comunicare con dei server back-end che si trovano nella LAN Aziendale.
Firewall
Un firewall è un dispositivo che filtra secondo delle regole il traffico tra due reti, per una definizione più estesa e precisa rimando alla solita Wikipedia.
Non essendo io ne un sistemista, ne un esperto di reti, ma solo un DBA Oracle appassionato di sistemi Linux e reti non ho grandissime competenze per quel che riguarda la sicurezza delle reti. Non mi sono mai curato di approfondire il tema proprio perchè lo considero una tematica importante e complessa da richiedere notevoli competenze. Trovandomi però a confrontarmi sulla tematica e non avendo ben chiare alcune cose ho deciso di documentarmi almeno un po’ e scrivere questo post per raccogliere le mie idee.
Fino a ieri trovavo sensata la politica che interpreta la definizione più stretta di DMZ come data sulla Wikipedia. Quindi ritenevo del tutto logico, dovendo pubblicare su Internet un servizio fornito da un’applicazione a due livelli (two-tier, application server-database server), porre in DMZ sia l’application server che il database server. A proteggere la sicurezza del database server e dei dati in esso contenuti secondo me era sufficiente il fatto il che il firewall che protegge la DMZ da Internet bloccasse gli accessi diretti al database. E’ però vero che un attacco che prenda il controllo dell’application server forse può far si che venga preso anche il controllo del database server, cosa secondo me complicata ma probabilmente non impossibile.
Architetture DMZ a più livelli
Come ho già accennato, l’interpretazione più comune estende la definizione di DMZ permettendo l’apertura di alcuni canali (porte TCP/IP) tra la DMZ e la LAN. Quindi i seguaci di questa interpretazione estesa consigliano di lasciare in DMZ solo i server fornitori del servizio, ad esempio l’application server deve stare in DMZ e il database server nella LAN, in questo caso lo sfondamento dell’application server permette l’attacco verso il database server solo attraverso l’unico canale lasciato aperto nel firewall tra DMZ e LAN, il canale usato dall’application server per comunicare con il database server (Ciò non toglie che comunque i dati non sono al sicuro). Quindi con un ragionamento più statistico che altro si conclude che il database server in questo modo è più protetto; infatti se tale database server stesse nella DMZ avrebbe tutti i canali di comunicazione aperti verso l’application server (anche questo è opinabile, secondo me in questo caso è sufficente lasciare aperto solo un canale che permetta l’accesso alla macchina per la sua amministrazione, tale canale può essere quello usato da SSH, sulla cui robustezza e sicurezza io ho pochi dubbi).

Posso obbiettare però che se quell’unico canale lasciato aperto tra la DMZ e il database server è sufficente per sfondare il database server allora l’attacco ha raggiunto l’intera LAN aziendale.
Un’evoluzione dell’architettura prevede che in DMZ vi sia solo un front-end ai servizi, ad esempio un http server, che poi si occupa di comunicare con l’application server che si trova in LAN, o meglio in un’altra DMZ (e qui siamo alle architetture DMZ a più livelli) che si trova tra la DMZ di primo livello, esposta su Internet e la LAN. A questo punto, dico io, aggiungiamo ancora una DMZ in cui sta il database server. Quindi arriviamo a tre DMZ e quattro Firewall. Faccio notare che tali firewall vanno configurati.
A parte secondo me la paranoia che ha indotto il proliferare dei firewall e delle regole con cui questi lavorano nella mia esperienza ho riscontrato che mettere un firewall tra application server e database server oracle può creare problemi, soprattutto se il firewall è di tipo “attivo” (vedi stateful firewall). Una delle caratteristiche più simpatiche di questi moderni firewall è quella di abbattere le connessioni TCP/IP che non generano traffico per un certo intervallo di tempo. Vi è poi un problema notevole se il database Oracle si trova su piattaforma Windows o, indifferentemente dalla piattaforma usa connessioni condivise (Shared server).
Oracle e i firewall
Per quanto riguarda Oracle su Windows vi è un problema legato al porting di Oracle su Windows che ha trasformato l’archiettettura da multi processi a mono processo e multi thread.
Nell’architettura originaria, multi processi, con processi dedicati, quando un client chiede una connessione al database inoltra una richiesta via TCP/IP (normalmente) al Listener (solitamente, per default, in ascolto sulla porta 1521) il listener gestisce tale richiesta chiedendo al server la creazione di un processo (spawn, a basso livello si tratta di una chiamata di sistema in Unix chiamata fork), a tale processo viene passato l’identificatore del socket creato tra il client ed il listener, a questo punto il listener ha concluso il suo compito ed il client è connesso il database server.
Su Windows, con l’architettutura multithread la sequenza sopra descritta non è possibile in quanto pare non sia possibile creare un nuovo thread e passargli il descrittore del socket. Quindi Oracle usa il cosiddetto meccanismo di REDIRECT, cioè quando un client richiede una connessione al database al listener, questi chiede al server la creazione di un nuovo thread, questo si mette in ascolto su una porta TCP/IP libera a caso, a questo punto il listener manda al client un messaggio con l’indicazione di connettersi alla porta su cui sta in ascolto il nuovo thread creato. Questo meccanismo è ben spiegato nella nota Metalink numero 66382.1 intitolata “Firewalls, Windows NT and Redirections“. Nella stessa nota spiega che il range di porte su cui si mette in ascolto il nuovo thread non è definito, ciò rende impossibile configurare un firewall. Quindi nella stessa nota spiega come risolvere il problema usando la chiave di registro “USE_SHARED_SOCKET”. Questa configurazione è spiegata più in dettagli nella nota metalink numero 124140.1 intitolata “How to configure USE_SHARED_SOCKET on Windows NT/2000“. Un’altra nota a cui forse vale la pena dare un’occhiata e che ribadisce il meccanismo è la numero 68652.1 intitolata “Solving Firewall Problems on Windows”. Infine, rimando ad una nota più recente e completa, la numero 361284.1 intitolata “Port 1521 opened in firewall yet cannot connect to Oracle Server (ORA-12535,TNS-12203)“. In quest’ultima nota si spiega come dalla versione 10g Oracle abbia introdotto un meccanismo, chiamato “HAND OFF” che evita il problema nel caso si connessioni in modalità server condiviso (shared server). Infatti anche in questa modalità, nelle versioni precedenti, e su tutte le piattaforme, veniva usato il meccanismo di “REDIRECT” che rendeva problematico la connessione al database attraverso firewall. Fra l’altro tale meccanismo viene usato anche i RAC, per il connection load balancing.

Ancora un’altra nota a cui voglio rimandare, molto breve, è la numero 416236.1 intitolata “Which Ports Need To Be Open In The Firewall for Oracle DB Connections ?“
Il problema delle porte da aprire sul firewall quindi, stando alle note sopra citate sembra essere risolvibile, a questo punto però subentrano i famigerati, gia citati, firewall stateful. Come soluzione agli inconvenienti causati da questi firewall Oracle suggerisce, tramite la nota numero 257650.1 intitolata “Resolving Problems with Connection Idle Timeout” per la verità non molto recente, di attivare il cosiddetto DCD: “Dead Connection Detection”. Questo meccanismo si attiva settando il parametro SQLNET.EXPIRE_TIME sul file SQLNET.ORA del database server; non necessita del riavvio ne’ del listener ne’ dell’istanza, è subito attivo per le nuove connessioni. Il settaggio di tale parametro fa si che il server invii ogni n minuti (dove n è il valore settato per SQLNET.EXPIRE_TIME) un piccolo pacchetto TCP/IP (circa 20 byte) verso il client. Questo dovrebbe essere sufficente a far si che il firewall rilevi del traffico sulla connessione e non la stronchi. Fra l’altro questo meccanismo è stato implementato (e anche così chiamato) affinchè il server rilevi eventuali connessioni stroncate e pulisca le eventuali sessioni interessate. Il problema è che comunque su macchine windows per default il protocollo TCP/IP ha un timeout di due ore, il che significa che se la connessione TCP/IP tra un client ed il server per qualche motivo è stata stroncata, Oracle prima di due ore non è in grado di rendersene conto e fare pulizia. La cosa può essere particolarmente seccante nel caso in cui la sessione interessata dalla connessione stroncata detenga dei lock sul database. Si tratta di un situazione che mi è capitata presso un cliente e per questo la riporto.

 

PROFILAZIONE IN ORACLE

La conoscenza, intesa come insieme di informazioni, è la risorsa più importante di cui dispone un’azienda, un’organizzazione o il singolo utente. Se per un’azienda il know-how da luogo ad una vera e propria politica incentrata sulla ricerca e l’aggiornamento, non di meno in una organizzazione, le informazioni sono alla base della sua attività, se non un servizio offerto; per il singolo utente, il sapere rappresenta una delle maggiori virtù.

Le informazioni nel XXI secolo sono “digitali” e l’informatica è la scienza che ne studia il trattamento, quindi l’acquisizione, l’elaborazione, la trasmissione, l’archiviazione e la presentazione; l’insieme delle risorse atte al trattamento dell’informazione è definito un sistema informativo.

Definita l’informazione in [2] come variazione del patrimonio conoscitivo di un soggetto, è bene farne il distinguo con il dato, cioè la relativa registrazione su un supporto che ne garantisca la reperibilità e l’utilità. La differenza tra informazione e dato è basilare: se un’informazione la possiamo considerare una descrizione della realtà compiuta e completa, il dato ha bisogno di un contesto interpretativo per poterne apprezzare l’utilità. Tale contesto è detto sistema di gestione dei dati, DBMS (Data base management system).

Se da un lato è parso subito utile sviluppare tecniche di elaborazione e memorizzazione del dato in DBMS automatizzati, a causa di una sempre maggior crescita di dati “utili” e della necessità di un accesso veloce; dall’altro, solo con il tempo e con l’avvento dell’Internet e la facile trasmissibilità del dato, è stato riscontrato un nuovo e delicato aspetto, la protezione del dato.

Nel reale, ci appare scontato inibire l’utilizzo e l’accesso ai nostri beni, chiudiamo serrature ed installiamo antifurti, nel virtuale, dove con virtuale s’intenda un contesto artificiale, intangibile ma concreto, tali necessità vengono talvolta superficialmente trascurate. Prendiamo un’azienda, il cui sistema informativo contenga dati “sensibili” relativi ai brevetti, ai dipendenti, alla ricerca, ai prodotti, è innegabile che un intrusione, una modifica o un furto perpetrato alla base di dati sia un danno al patrimonio conoscitivo tanto quanto una violazione reale della proprietà.

 

E’ fondamentale, pertanto, studiare, testare e applicare tecniche di sicurezza volte a garantire l’information assurance per l’azienda e gli utenti.

GLI OBIETTIVI DELLA SICUREZZA

Gli obiettivi da perseguire per proteggere i dati sono:

  • Confidenzialità:i dati devono poter esser elaborati, cioè letti, scritti o eseguiti, dai soggetti autorizzati all’operazione, e negati agli altri. In tale contesto sono topici i metodi di riconoscimento dei soggetti (tramite password, smart card, firma digitale, biometria, enti certificatori..) e di permissibilità dell’azione richiesta, tramite meccanismi di controllo dell’accesso.
  • Integrità:i dati devono essere congrui all’originale e veritieri, deve esser pertanto evitata la modifica o la cancellazione non autorizzata degli stessi. In tale contesto, sono utilizzate tecniche di crittografia (RSA, IDEA, DES) atte a rendere inutilizzabili dati ottenuti da soggetti non autorizzati, cioè non in possesso della chiave di decriptazione.
  • Disponibilità:i dati devono esser utilizzabili, ciò significa che vanno resi disponibili in ogni momento ai soggetti in possesso delle autorizzazioni necessarie. In tale contesto vanno prevenuti attacchi DoS (Denial of Service) o Distributed DoS, hardware o network failure, crash del sistema.
  • Non Ripudio:i dati, oggetto di una spedizione, non devono esser ripudiati né dal mittente, né dal destinatario. In tale contesto sono utilizzate tecniche di firma digitale che diano valore legale ad un documento come se avesse una firma autografa.

La confidenzialità è definita secondo [a] come la prevenzione da divulgazione non autorizzata di informazione, secondo [b] come la restrizione dell’accesso all’informazione o ad una risorsa agli individui autorizzati, secondo [c] come il non verificarsi di divulgazione di informazione non autorizzata. E’ quindi necessario sviluppare delle tecniche di autenticazione per verificare l’identità del soggetto e stabilirne le autorizzazioni oltre ad implementare dei meccanismi di controllo dell’accesso alle informazioni ed alle risorse autorizzate per esso. Come si può immaginare questo è il primario obiettivo da perseguire per proteggere i propri dati e le tecniche ed i meccanismi messi in atto per ottemperare a tale necessità vanno analizzate, testate ed infine valutate attentamente.

_________________________
[a] ITSEC Scheme, 1991
[b] The Manual of Protective Security, 2002
[c] SQUALE Dependability Assessment Criteria, 1999
A livello di base di dati, l’autenticazione del soggetto avviene, solitamente, attraverso la verifica del nome utente e della password mentre il controllo dell’accesso fa uso di diversi meccanismi trattati in seguito.

L’integrità riguarda invece il contenuto del dato, soggetto a modifiche e cancellazioni. Essa è di vitale importanza soprattutto nei casi di trasmissione dell’informazione. Internet e la comunicazione senza filo hanno incrementato la diffusione delle informazioni drasticamente, evidenziando però quanto siano deboli ed insicuri i relativi metodi di trasmissione. Ad esempio, Internet usa il protocollo TCP/IP che ha permesso la standardizzazione delle reti mondiali, ma gestisce il dato (pacchetto) in modo totalmente trasparente, un hacker, qui inteso correttamente come “esperto di informatica”, potrebbe realizzare un software, lo sniffer, capace di “sentire” i pacchetti, leggerli, modificarli, reinviarli senza modificarne il mittente, e non è detto che lo faccia a fini economici o malefici. Pertanto è bene che il dato spedito e impacchettato dal protocollo contenga informazioni che siano incomprensibili ed inutilizzabili, se non al destinatario prescelto. La tecnica per rendere il dato inutile è la crittografia.

La disponibilità è, invece, l’obiettivo volto a garantire l’utilizzo del dato in ogni condizione mettendo in atto una serie di meccanismi che ne evitino l’indisponibilità. In tale contesto sono topiche le tecniche di load balancing, cioè di suddivisione, bilanciamento del carico su più sistemi diversi onde evitare che alcuni abbiamo delle richieste di esecuzione in coda mentre altri siano in attesa di richieste; tecniche di fault tolerance, cioè l’abilità di una sistema di continuare le normali operazioni nonostante si sia verificato un problema hw o sw; tecniche di disk mirroring e RAID, cioè l’utilizzo di più componenti di memoria di massa contenenti dati ridondanti onde evitare che la rottura di una di esse causi la perdita di dati. E’ infine altrettanto utile assicurare la continuità di alimentazione del sistema attraverso gruppi di continuità per superare eventuali blackout.

Il non ripudio è un obiettivo di maggior valenza in quegli ambiti in cui si effettuino spedizioni di dati contenenti transazioni commerciali, si pensi all’e-commmerce, o documenti con validità legale. E’ necessario in tali casi fornire la prova incontestabile di una spedizione o ricezione avvenuta con successo. Esso presenta alcune modalità di implementazione [19]. Un sistema che voglia perseguire tale obiettivo può fornire un servizio di non ripudio dell’approvazione, cioè fornire la prova di chi sia il responsabile dell’approvazione del contenuto dei messaggi; oppure un servizio di non ripudio della spedizione, cioè fornire la prova di chi abbia spedito il messaggio; un servizio di non ripudio dell’origine, che è una combinazione dei due precedenti; di sottomissione, cioè fornire la prova che un’autorità preposta al trasporto abbia accettato il messaggio per la trasmissione; di trasporto, cioè fornire la prova al mittente che l’autorità preposta al trasporto abbia consegnato il messaggio al ricevente indicato; di ricezione, cioè fornire la prova che il ricevente abbia ricevuto il messaggio; di conoscenza, cioè fornire la prova che il ricevente abbia riconosciuto il contenuto del messaggio ricevuto; infine il servizio di non ripudio della consegna, cioè una combinazione degli ultimi due servizi visti.

 

Remote DBA Oracle,MySQL,Postgresql.

Servizi Dedicati : PER LA SICUREZZA, IL NETWORKING E IL CLOUD

Mai come recentemente le problematiche relative alla sicurezza hanno ricevuto tanta attenzione da parte dei media:
attacchi informatici, perdite di dati sensibili, diffusioni di malware e violazioni della privacy o policy aziendali interne ricevono ampia visibilità. Conseguentemente vi è al giorno d’oggi una maggiore attenzione a tutti i livelli nei confronti della sicurezza informatica, o della sua mancanza.

Diviene quindi fondamentale un elevato grado di protezione dall’accesso non autorizzato, sia da parte di esterni malintenzionati che da personale interno non fidato o software compromesso. Sfortunatamente la continua evoluzione dei sistemi software rende impossibile l’esistenza di sistemi immuni da problematiche di sicurezza o compromissioni. Aggiornamenti o patch non sono sempre disponibili in modo puntuale, e anche quanto lo sono non sempre risolvono alla radice le mancanze di programmazione e di utilizzo.
E’ quindi necessario proteggere la propria infrastruttura tramite una una serie di tecniche e metodologie internazionalmente riconosciute
per limitare ed eventualmente annullare gli effetti nefasti un tentato attacco.

 

Stefano Fantin garantisce ai propri clienti i seguenti servizi:
Controllo e stesura del documento di Security Policy

Un sistema di sicurezza avanzato passa per la creazione di una sezione documentale che normi l’uso e la gestione delle risorse informatiche nonché i controlli attuati su di esse e le relative responsabilità, in un’ ottica di report per il management. La sicurezza
aziendale avanzata richiede una documentazione uniformata a metodologie internazionali, superiore al normale Documento Programmatico Sicurezza (DPS) che, pur
fondamentale, è sufficiente solo per gli obblighi di legge.

Network & Vulnerabily Assestment

Determinazione, sia attraverso controlli automatici che manuali, della reale topologia di rete ed individuazione dei dispositivi in essa
contenuti, nonché delle possibili vulnerabilità del software presente (lato server e lato client).
Offriamo un resoconto delle vulnerabilità riscontrate in ordine di gravità, fornendo le indicazioni e i consigli per una rapida correzione a livello software, hardware (IPS) o di topologia di rete.

Penetration Test

Esecuzione di attacchi simulati dall’esterno, aventi l’obiettivo di disturbare o compromettere le comunicazioni e i servizi erogati dalla rete sotto esame. Tali simulazioni vengono combinati con un accurato monitoraggio dei nodi della rete, sia tramite controlli manuali che attraverso l’uso di software di analisi, con l’obiettivo di evidenziare possibili vulnerabilità, note all’atto della verifica, che permettano un accesso non autorizzato ai servizi pubblicati.
Alla fine dell’analisi, offriamo un resoconto per ciascun nodo esaminato evidenziando le vulnerabilità riscontrate in ordine di gravità,
nonché i rispettivi correttivi software o le possibili tecniche per mitigare possibili attacchi futuri.

Analisi comportamento

Identificazione di possibili vulnerabilità di sicurezza e violazione di policy aziendali tramite l’analisi dell’utilizzo di software specifico per singolo utente interno alla rete. Come risultato di tale analisi elaboriamo infine un rapporto dettagliato finalizzato al miglioramento della sicurezza integrata in un’ottica di uso massiccio di applicazioni Enterprise 2.0 residenti all’esterno delle risorse aziendali.

Analisi post-attacco

Analisi dei sistemi attaccati e/o violati alla ricerca delle tracce residue dopo l’attacco. Stesura di un dettagliato resoconto di tutti i riscontri verificati nonché delle tecniche messe in atto per riparare ai tentativi di intrusione e alle possibili perdite di informazioni
sensibili.

 

Progettazione sicurezza integrata

Studio della rete preesistente e calcolo dei parametri progettuali di sicurezza, a livello perimetrale o di datacenter. Definizione di tipo e topologia per la nuova configurazione di rete con indicazione puntuale dei prodotti di sicurezza più adeguati alle reali
circostanze operative. Progettazione delle politiche di accesso per utenti, gruppi di utenti, applicazioni, porte e protocolli.

Analisi connessioni remote

Analisi dei software di accesso remoto con individuazione dei possibili miglioramenti a livello di sicurezza tramite l’implementazione di Virtual Private Network (VPN) e l’utilizzo di tecnologie leader del mercato come IPSEC v2 tunnel SSL.

Installazione e configurazione dispositivi

Installazione e configurazione di apparati di sicurezza secondo quanto previsto dal progetto integrato predefinito. Il comportamento di tali apparati viene attentamente verificato, sia tramite l’utilizzo di traffico simulato sia tramite l’inserimento di strumenti in linea,
minimizzando in tal modo il disservizio dovuto all’installazione.
Verifica e risoluzione immediata di eventuali problematiche legate alle specifiche configurazioni dei servizi erogati in coordinazione con il personale tecnico del Cliente.

Supporto e Troubleshooting

Servizio di gestione delle problematiche di sicurezza delle reti locali e geografiche nel caso di cambio di configurazione o nuove necessità.

Monitoraggio

Monitoraggio permanente degli apparati al fine di mantenere le caratteristiche e performance dichiarate e per intervenire immediatamente nel caso di eventi degni di particolare attenzione.

Gestione degli Aggiornamenti

Installazione degli update non appena dichiarati affidabili dai produttori e solo dopo un accurato test nei nostri laboratori così da minimizzare i rischi connessi alla sicurezza o la possibilità di malfunzionamenti.

 

Cloud Security

Le soluzioni cloud rese oggi largamente disponibili dal mercato permettono un facile accesso a numerose soluzione integrate per la gestione di grandi quantità di dati. Esse espongono allo stesso tempo a molti problemi di sicurezza indipendentemente dalla scelta del tipo di somministrazione del servizio (SaaS, PaaS e IaaS).
Stefano Fantin può implementare una corretta architettura di sicurezza, che comprenda diversi sistemi di controllo:
1) controlli preventivi, che rafforzino la resistenza del sistema contro gli attacchi e minimizzino le vulnerabilità, in particolare tramite tecnologie che limitino l’accesso al cloud ai soli utenti autorizzati, dopo appropriata autenticazione.
2) controlli di monitoraggio, che rilevino e reagiscano immediatamente agli incidenti già durante il loro svolgimento. Un monitoraggio automatico del sistema e della rete, inclusi sistemi IDS (intrusion detection system), è fondamentale per permettere un’immediata ed
efficace reazione agli attacchi.
3) controlli correttivi, intesi a limitare il danno di un incidente, come ad esempio il ripristino del sistema da backup.

Nella società dell’informazione attuale, sempre più il sistema informatico aziendale si integra con Internet a formare un sistema informativo globale a disposizione dell’azienda.

Poiché un accesso efficiente a tale sistema informativo è vitale per il successo di un’impresa, è quanto mai importante poter contare su un avanzato insieme di tecnologie di rete che ne garantiscano velocità, stabilità e sicurezza.

Stefano Fantin garantisce ai propri clienti un ampio ventaglio di soluzioni sistemistiche su cui potersi basare per la propria crescita:

Consulenza sistemistica: reti informatiche, server e storage, backup di dati

Dopo un attento studio delle effettive esigenze dell’utente, possiamo implementare, installare e gestire qualsiasi tipologia di rete informatica, sia locale (LAN) che geografica (WAN), al fine di garantire una veloce comunicazione intra ed extra aziendale.

Siamo anche in grado di installare, configurare e ottimizzare soluzioni server performanti ed affidabili per abilitare l’accesso ai servizi necessari in tutta la rete; la nostra offerta comprende in particolare server di posta, server web, server di backup e server applicativi.

A richiesta suggeriamo ed installiamo i sistemi di storage più adatti alla vostra realtà; le nostre soluzioni di storage non si limitano ad essere contenitori di dati, ma integrano strumenti avanzati per la gestione, la replica e per l’accesso controllato ai dati; attraverso di essi potrete quindi lavorare con continuità e sicurezza sui vostri dati sapendo che noi potremo prenderci cura della sicurezza dei vostri documenti sensibili.

La difesa del patrimonio delle informazioni è un passaggio fondamentale per ogni organizzazione;
la replica dei dati critici è quindi la modalità obbligata al fine di non dover affrontare costi rilevanti per la ricostruzione degli stessi. Inoltre per chi tratta dati sensibili un loro backup almeno settimanale è obbligatorio per legge.

Con le nostre soluzioni di backup dati (software, hardware e servizi su cloud) potrai avere la tranquillità che i tuoi dati sensibili verranno automaticamente archiviati e saranno facilmente recuperabili in velocità.

Forniamo soluzioni cloud e email

Un sistema di comunicazione e messaggistica efficiente è un elemento chiave per la competitività di un impresa. Con le nostre soluzioni (cloud o locali) le mail, i contatti, i calendari e i documenti saranno accessibili in qualsiasi momento, su qualsiasi dispositivo, a tutti i soggetti impegnati in azienda.

Inoltre tramite una selezione dei migliori prodotti presenti sul mercato, installiamo e configuriamo servizi di condivisione e sincronizzazione dei dati, al fine di ottimizzare i processi di comunicazione aziendali.

Implementiamo soluzioni wireless: wifi in azienda, hot spot wifi, reti hiperlan

Attraverso una rete wireless dipendenti e collaboratori possono accedere in tutta efficienza alle informazioni di cui necessitano: dati, posta elettronica, messaggistica. Diviene quindi fondamentale poter mettere a disposizione reti wireless veloci e sicure, che sappiano applicare automaticamente il profilo di accesso corretto alle risorse in funzione dell’utente che lo richiede, per permettere la miglior performance al proprio personale e tutelare allo stesso tempo i dati aziendali.

 

Con i nostri hot spot siamo in grado di progettare e realizzare reti wireless sicure, facilmente gestibili e scalabili, adatte alle esigenze aziendali odierne.

Laddove necessario utilizziamo apparati di connessione per costruire reti hiperlan che comprendano sedi distanti anche molti chilometri, o per portare l’accesso ad Internet dove non esiste la possibilità di utilizzare un provider. Attraverso tale tipo di reti diviene inoltre possibile offrire i più svariati servizi, dalla trasmissione dati, al VoIP, alla videosorveglianza IP.

Siamo esperti in virtualizzazione: virtualizzazione server, virtualizzazione desktop, virtualizzazione applicazioni

Con la crescita costante delle potenzialità hardware dei server, le tecniche di virtualizzazione sono diventate sempre più appetibili. Con un unico server che ospita più server virtuali diviene infatti possibile ospitare più servizi, offerti da più sistemi operativi minimizzando al contempo il costo d’acquisto, l’energia elettrica e la manutenzione hardware.

Abbiamo le competenze per realizzare singoli server che ospitano più sistemi o server ridondati con storage condiviso al fine di garantire alta affidabilità e scalabilità. Le nostre soluzioni sono inoltre progettate per essere completamente supervisionate da remoto.

Mediante opportuno software siamo in grado di migrare il vostro attuale server ad un’infrastruttura virtuale, sfruttando i benefici che ne conseguono: nuovo hardware, maggiori performance, possibilità di aumentare lo spazio su disco e la quantità di memoria disponibile con pochi click e, ovviamente, la possibilità di installare ulteriori sistemi operativi, e quindi nuovi servizi, sulla medesima macchina fisica.

Le tecniche di virtualizzazione si possono applicare con successo anche lato client, tramite la creazione di una Virtual Desktop Infrastructure (VDI). Gli utenti di una rete aziendale possono così accedere, tramite i propri dispositivi, ad ambienti operativi virtuali completi di applicazioni. Diviene quindi possibile sostituire interamente il parco macchine aziendale con thin client e godere di innumerevoli vantaggi nella gestione degli aggiornamenti, nella distribuzione di nuovo software e nell’utilizzo di diversi sistemi operativi.

Siamo in grado di offrire soluzioni complete per la virtualizzazione desktop, sia lato server che lato client.
“La sicurezza richiede adeguati investimenti per poter raggiungere gli obiettivi minimi di protezione dei beni e delle informazioni aziendali. L’ammontare degli investimenti in sicurezza non sempre comporta un proporzionale aumento dei livelli di sicurezza, ma è fondamentale che la sicurezza disponga sempre di un budget adeguato per svolgere il proprio ruolo. Chi non investe a sufficienza in sicurezza merita di restare vittima di un attacco informatico.”

 

REMOTE DBA

ARCHIVIO DATI CENTRALE : STORIA ED EVOLUZIONI

I due temi dominanti della corporate technology negli anni 90 sono stati i data warehouse e l’ERP. Per molto tempo queste due potenti correnti sono state parti della corporate IT senza mai avere intersezioni. Era quasi come se fossero materia ed anti-materia. Ma la crescita di entrambi i fenomeni ha portato inevitabilmente a una loro intersezione. Oggi le aziende stanno affrontando il problema di che cosa fare con ERP e data warehouse. Questo articolo illustrerà quali sono i problemi e come vengono affrontati dalle aziende .

 

ALL’INIZIO…

All’inizio c’era il data warehouse. Data warehouse è nato per contrastare il sistema applicativo di elaborazione delle transazioni. Nei primi tempi la memorizzazione dei dati era pensata per essere solo un contrappunto alle applicazioni di elaborazione delle transazioni. Ma al giorno d’oggi ci sono visioni molto più sofisticate di quello che può fare un data warehouse. Nel mondo odierno il data warehouse è inserito all’interno di una struttura che può essere chiamata Corporate Information Factory.

 

LA CORPORATE INFORMATION FACTORY (CIF)

La Corporate Information Factory ha dei componenti architetturali standard: un livello di trasformazione e di integrazione del codice che integra i dati mentre i dati si muovono dall’ambiente di applicazione verso l’ambiente del data warehouse dell’impresa; un data warehouse dell’azienda dove vengono memorizzati i dati storici dettagliati e integrati. Il data warehouse dell’azienda serve da fondamento sul quale possono essere costruite tutte le altre parti dell’ambiente del data warehouse; un operational data store (ODS). Un ODS è una struttura ibrida che contiene alcuni aspetti del data warehouse e altri aspetti di un ambiente OLTP; data marts, in cui i differenti reparti possono avere loro propria versione del data warehouse; un data warehouse di esplorazione in cui i “filosofi”(thinkers) dell’azienda possono presentare le loro queries di 72 ore senza effetto nocivo sul data warehouse; e una memoria near line, in cui dati vecchi e dati bulk detail possono essere memorizzati a buon mercato.

 

DOVE SI UNISCE L’ERP CON LA CORPORATE INFORMATION FACTORY

L’ERP si unisce con la Corporate Information Factory in due punti. Innanzitutto come un’applicazione di base (baseline) che fornisce i dati dell’applicazione al data warehouse. In questo caso i dati, generati come sottoprodotto di un processo di transazione, vengono integrati e caricati nel data warehouse dell’azienda. Il secondo punto di unione tra ERP e CIF e l’ODS. In effetti, in molti ambienti l’ERP è utilizzato come un ODS classico.

 

Nel caso in cui ERP è utilizzato come applicazione di base, lo stesso ERP può essere anche utilizzato nella CIF come ODS. In ogni caso, se l’ERP deve essere utilizzato in entrambi i ruoli, ci deve essere una netta distinzione tra le due entità. In altre parole, quando l’ERP svolge il ruolo di applicazione di base e di ODS, le due entità architetturali devono essere distinte. Se una singola implementazione di un ERP prova a svolgere entrambi i ruoli contemporaneamente ci saranno inevitabilmente dei problemi nella progettazione e nell’implementazione di tale struttura.

 

SEPARARE ODS E APPLICAZIONI DI BASE

Ci sono molte ragioni che portano alla divisione dei componenti architetturali. Forse la questione più eloquente per separare i diversi componenti di un’architettura è che ogni componente dell’architettura ha la propria vista. L’applicazione baseline serve per uno scopo differente di quello dell’ODS. Provare a sovrapporre una vista di applicazione baseline sul mondo di un ODS o viceversa non è un modo giusto di lavorare.

 

Di conseguenza, il primo problema di un ERP nella CIF è quello di verificare se c’è una distinzione fra le applicazioni baseline ed il ODS.

 

DATA MODELS NELLA CORPORATE INFORMATION FACTORY

Per realizzare una coesione fra i differenti componenti dell’architettura della CIF, ci deve essere un modello di dati. I modelli di dati servono da legame tra i vari componenti dell’architettura come ad esempio le applicazioni baseline e l’ODS. I modelli di dati diventano la “carta stradale intellettuale” per avere il giusto significato dai differenti componenti architettonici della CIF.

 

Andando di pari passo con questa nozione, l’idea è che ci dovrebbe essere un grande e unico modello di dati. Ovviamente ci deve essere un modello di dati per ciascuno dei componenti e inoltre ci deve essere un percorso sensato che collega i modelli differenti. Ogni componente dell’architettura – ODS, applicazioni baseline, data warehouse dell’azienda, e così via.. – necessita del proprio modello di dati. E quindi ci deve essere una definizione precisa di come questi modelli di dati si interfacciano a vicenda.

 

SPOSTARE I DATI DELL’ERP NEL DATA WAREHOUSE

Se l’origine dei dati è un’applicazione baseline e/o un ODS, quando l’ERP inserisce i dati nel data warehouse, tale inserimento deve avvenire al più basso livello di “granularity”. Ricapitolare o aggregare semplicemente i dati così come vengono fuori dall’applicazione baseline dell’ERP o dall’ODS dell’ERP non è la cosa giusta da fare. I dati dettagliati sono necessari nel data warehouse per costituire le basi del processo di DSS. Tali dati saranno rimodellati in molti modi dai data marts e dalle esplorazioni del data warehouse.

Lo spostamento dei dati dall’ambiente dell’applicazione baseline dell’ERP all’ambiente del data warehouse dell’azienda è fatto in un modo ragionevolmente disteso. Tale spostamento accade dopo che circa 24 ore dall’aggiornamento o dalla creazione nel ERP. Il fatto di avere un movimento “pigro” dei dati nel data warehouse dell’azienda permette ai dati provenienti dall’ERP di “depositarsi”. Una volta che i dati sono depositati nell’applicazione baseline, allora è possibile spostare in modo sicuro i dati dell’ERP nell’impresa. Un altro obiettivo raggiungibile grazie al movimento “pigro” dei dati è la chiara delimitazione fra processi operazionali e DSS. Con un movimento “veloce” dei dati la linea di demarcazione tra DSS e operazionale rimane vaga.

 

Il movimento dei dati dall’ODS dell’ERP al data warehouse dell’azienda viene fatto periodicamente, solitamente settimanalmente o mensilmente. In questo caso il movimento dei dati è basato sulla necessità di “pulire” i vecchi dati storici. Naturalmente, l’ODS contiene i dati che sono molto più recenti rispetto ai dati storici trovati nel data warehouse.

 

Lo spostamento dei dati nel data warehouse non è quasi mai fatto “all’ingrosso” (in a wholesaler manner). Copiare una tabella dall’ambiente ERP al data warehouse non ha senso. Un approccio molto più realistico è lo spostamento di unità selezionate dei dati. Solo i dati che sono cambiati dall’ultimo aggiornamento del data warehouse sono quelli che dovrebbero essere spostati nel data warehouse. Un modo per sapere quali dati sono stati modificati dall’ultimo aggiornamento è quello di guardare i timestamp dei dati trovati nell’ambiente ERP. Il progettista seleziona tutti i cambiamenti che si sono presentati dall’ultimo aggiornamento. Un altro approccio è quello di usare tecniche di acquisizione di cambiamento dati. Con queste tecniche vengono analizzati log e journal tapes in modo da determinare quali dati devono essere spostati dall’ambiente ERP a quello del data warehouse. Queste tecniche sono le migliori in quanto i log e i journal tapes possono essere letti dai file dell’ERP senza ulteriori effetti sulle altre risorse dell’ERP.

 

ALTRE COMPLICAZIONI

Uno dei problemi dell’ERP nella CIF è quello che accade ad altre fonti dell’applicazione o ai dati dell’ODS che devono contribuire al data warehouse ma non fanno parte dell’ambiente di ERP. Data la natura chiusa dell’ERP, specialmente SAP, il tentativo di integrare le chiavi dalle fonti esterne dei dati con i dati che vengono dall’ERP al momento di spostare i dati nel data warehouse, è una grande sfida. E quante sono esattamente le probabilità che i dati di applicazioni o ODS al di fuori dell’ambiente ERP saranno integrati nel data warehouse? Le probabilità sono effettivamente molto alte.

 

REPERIRE DATI STORICI DALL’ERP

Un altro problema con i dati dell’ERP è quello derivante dall’esigenza di avere dati storici all’interno del data warehouse. Solitamente il data warehouse ha bisogno di dati storici. E solitamente la tecnologia dell’ERP non memorizza questi dati storici, almeno non fino al punto in cui è necessario nel data warehouse. Quando una grande quantità di dati storici comincia ad aggiungersi nell’ambiente di ERP, tale ambiente deve essere ripulito. Per esempio si supponga che un data warehouse debba essere caricato con cinque anni di dati storici mentre l’ERP tiene al massimo sei mesi di questi dati. Finché la società è soddisfatta di raccogliere una serie di dati storici man mano che passa il tempo, allora non ci sono problemi nell’utilizzare l’ERP come sorgente per il data warehouse. Ma quando il data warehouse deve andare indietro nel tempo e prendere dei dati storici che non sono stati precedentemente raccolti e salvati dall’ERP, allora l’ambiente ERP diventa inefficiente.

 

ERP E METADATI

Un’altra considerazione da fare su ERP e data warehouse è quella sui metadati esistenti nell’ambiente ERP. Così come i metadati passano dall’ambiente ERP all’ambiente del data warehouse, i metadati devono essere spostati nello stesso modo. Inoltre, i metadati devono essere trasformati nel formato e nella struttura richiesti dall’infrastruttura del data warehouse. C’è una grande differenza tra metadati operazionali e metadati DSS. I metadati operazionali sono soprattutto per lo sviluppatore e per il programmatore. I metadato DSS sono principalmente per l’utente finale. I metadati esistenti nelle applicazioni ERP o negli ODS devono essere convertiti e questa conversione non è sempre facile e diretta.

 

SOURCING THE ERP DATA

Se l’ERP è usato come fornitore di dati per il data warehouse ci deve essere una solida interfaccia che sposta i dati dall’ambiente ERP all’ambiente data warehouse. L’interfaccia deve:

  • essere facile da usare
  • permettere l’accesso ai dati dell’ERP
  • prelevare il significato dei dati che stanno per essere spostati nel data warehouse
  • conoscere le limitazioni dell’ERP che potrebbero nascere nel momento in cui viene effettuato l’accesso ai dati dell’ERP:
  • integrità referenziale
  • relazioni gerarchiche
  • relazioni logiche implicite
  • convenzione dell’applicazione
  • tutte le strutture dei dati supportate dall’ERP, e così via…
  • essere efficiente nell’accesso ai dati, fornendo:
  • movimento diretto dei dati
  • acquisizione di cambiamento dati
  • essere di appoggio all’accesso tempestivo ai dati
  • capire il formato dei dati, e così via…

 

INTERFACCIARSI CON SAP

L’interfaccia può essere di due tipi, homegrown o commerciale. Alcune delle principali interfacce commerciali includono:

  • SAS
  • Prims Solutions
  • D2k, e così via…

 

TECNOLOGIE DI ERP MULTIPLI

Trattare l’ambiente ERP come se fosse un’unica tecnologia è un grosso errore. Ci sono molte tecnologie di ERP, ognuna con i suoi punti di forza. I vendor più conosciuti nel mercato sono:

  • SAP
  • Oracle Financials
  • PeopleSoft
  • JD Edwards
  • Baan

 

SAP

SAP è il software di ERP più grande e più completo. Le applicazioni di SAP comprendono molti tipi di applicazioni in molte aree. SAP ha la reputazione di essere:

  • molto grande
  • molto difficile e costoso da implementare
  • ha bisogno di molte persone e consulenti per essere implementato
  • necessita di persone specializzate per l’implementazione
  • ha bisogno di molto tempo per essere implementato

 

Inoltre SAP ha la reputazione di memorizzare i suoi dati molto attentamente, rendendo difficile accedere a questi da parte di una persona esterna all’area SAP. La forza di SAP è quella di essere capace di catturare e memorizzare una grande quantità di dati.

 

Recentemente SAP ha annunciato la sua intenzione di estendere le sue applicazioni ai data warehouse. Ci sono molti pro e contro nell’utilizzo di SAP come fornitore di data warehouse.

 

Un vantaggio è che SAP è già installato e che la maggior parte dei consulenti già conosce SAP.

Gli svantaggi di avere SAP come fornitore di data warehouse sono molti: SAP non ha esperienza nel mondo del data warehouse

Se SAP è il fornitore di data warehouse, è necessario “portare fuori” i dati da SAP al data warehouse. Dato un SAP’s track record of closed system, è improbabile che sia facile ottenere i da SAP in esso (???). Ci sono molti legacy environment che alimentano SAP, come IMS, VSAM, ADABAS, ORACLE, DB2, e così via.

SAP insiste in un approccio “not invented here”. SAP non vuole collaborare con altri fornitori per usare o creare il data warehouse. SAP insiste nel voler generare tutto il proprio software da solo. Sebbene SAP sia una compagnia grande e potente, il fatto di tentare di riscrivere la tecnologia di ELT, OLAP, amministrazione del sistema e persino il codice di base del dbms è semplicemente folle. Invece di assumere un atteggiamento di cooperazione con i fornitori di data warehouse di vecchia data, SAP ha seguito l’approccio che loro “ne sanno di più”. Questo atteggiamento frena il successo che SAP potrebbe avere nell’area dei data warehouse.

Il rifiuto di SAP nel permettere ai fornitori esterni di accedere prontamente e con garbo ai loro dati. L’essenza stessa dell’uso di un data warehouse è l’accesso facile ai dati. L’intera storia di SAP è basata sul rendere difficile l’accesso ai dati.

La mancanza di esperienza di SAP nel trattare grandi volumi di dati; nel campo dei data warehouse esistono volumi di dati mai visti da SAP e per gestire queste grandi quantità di dati occorre avere una tecnologia adatta. SAP apparentemente non è informata di questa barriera tecnologica che esiste per entrare nel campo dei data warehouse.

La corporate culture di SAP: SAP ha creato un business nell’ottenere i dati dal sistema. Ma per fare questo bisogna avere una mentalità differente. Traditionally, software companies that were good at getting data into an environment have not been good at getting data to go the other way. Se SAP riesce a fare questo tipo di switch sarà la prima azienda a farlo.

 

In breve, è lecito chiedersi se un’azienda dovrebbe selezionare SAP come fornitore di data warehouse. Ci sono rischi molto gravi da una parte e molte poche ricompense dall’altra. Ma c’è un altro motivo che scoraggia la scelta di SAP come fornitore di data warehouse. Perché ogni compagnia dovrebbe avere lo stesso data warehouse di tutte le altre compagnie? Il data warehouse è il cuore del vantaggio competitivo. Se ogni compagnia adottasse lo stesso data warehouse sarebbe difficile, anche se non impossibile, raggiungere un vantaggio competitivo. SAP sembra pensare che un data warehouse può essere visto come un biscotto e ciò è un ulteriore segnale della loro mentalità di applicazioni “get the data in”.

 

Nessun altro fornitore di ERP è dominante quanto SAP. Indubbiamente ci saranno aziende che seguiranno la strada di SAP per i loro data warehouse ma presumibilmente questi data warehouse SAP saranno grandi, costosi e richiederanno molto tempo per la loro creazione.

 

Questi ambienti includono tali attività quali “bank teller processing”, processi per le prenotazioni aeree, processi per le lamentele assicurative, e così via. Più performante era sistema di transazione, più ovvio era il bisogno di separazione tra processo operazionale e DSS (Decision Support System). Tuttavia, con sistemi di risorse umane e personali, non ci si trova mai di fronte a grossi volumi di transazioni. E, naturalmente, quando una persona è assunta oppure lascia la compagnia questo è un record di una transazione. Ma relativamente ad altri sistemi, i sistemi di risorse umane e personali semplicemente non hanno molte transazioni. Perciò, nei sistemi di risorse umane e personali non è del tutto ovvio che ci sia bisogno di un DataWarehouse. In molti modi questi sistemi rappresentano l’accorpamento di sistemi DSS.

 

Ma c’è un altro fattore che deve essere considerato se si ha a che fare con datawarehouse e con PeopleSoft. In molti ambienti, i dati delle risorse umane e personali sono secondari rispetto al business primario della società. La maggior parte delle società svolgono attività manifatturiere, di vendita, forniscono servizi e così via. I sistemi di risorse umane e personali sono di solito secondari (o di supporto) alla linea principale di business della società. Perciò, è equivoco e poco conveniente un data warehouse separato per il supporto alle risorse umane e personali.

 

PeopleSoft è molto diverso da SAP a questo riguardo. Con SAP, è obbligatorio che ci sia un data warehouse. Con PeopleSoft, non è poi così chiaro. Un datawarehouse è opzionale con PeopleSoft.

 

La cosa migliore che si possa dire per i dati PeopleSoft è che il data warehouse può essere usato al fine di archiviare i dati relativi a vecchie risorse umane e personali. Una seconda ragione per la quale una compagnia vorrebbe usare un data warehouse a discapito dell’ambiente PeopleSoft è di permettere l’accesso e l’accesso libero agli strumenti di analisi, ai dati di PeopleSoft. Ma oltre a queste ragioni, possono esserci casi in cui è preferibile non avere un datawarehouse per dati PeopleSoft.

 

In sintesi

Ci sono molti spunti che riguardano la costruzione di un data warehouse dentro ad un software ERP.

Alcuni di questi sono:

  • Ha senso avere un data warehouse che somiglia a qualsiasi altro nell’industria?
  • Quanto è flessibile un ERP data warehouse software?
  • Un ERP data warehouse software può gestire un volume di dati che si trova in una “data warehouse arena”?
  • Qual è la registrazione della traccia che il vendor ERP fa di fronte a facili e poco costosi, in termini di tempo, ai dati? (what is the ERP vendors track record on delivery of inexpensive, on time, easy to access data?)
  • Qual è la comprensione dell’architettura DSS e della “corporate information factory” da parte del vendor ERP?
  • I vendor ERP comprendono come ottenere dati all’interno dell’ambiente, ma comprendono anche come esportarli?
  • Quanto aperto è il venditore dell’ERP a strumenti di data warehousing?

Tutte queste considerazioni devono essere fatte nel determinare dove mettere il data warehouse che ospiterà i dati dell’ERP e altri dati. In generale, a meno ché non ci sia una ragione irresistibile per fare altrimenti, è raccomandato costruire data warehouse fuori dall’ambiente del vendor dell’ERP.

 

CAPITOLO 1

Overview of the BI Organization

Punti chiave:

I depositi delle informazioni funzionano in modo contrario rispetto all’architettura di business intelligence (BI):

La corporate culture e l’IT possono limitare il successo nella costruzione di organizzazioni di BI.

La tecnologia non è più il fattore che limita le organizzazioni di BI. Il problema per architetti e pianificatori di progetto non è se la tecnologia esiste, ma se possono implementare efficacemente la tecnologia disponibile.

 

Per molte aziende un data warehouse è poco più di un deposito passivo che distribuisce i dati agli utenti che ne necessitano. I dati sono estratti dai sistemi sorgenti e sono popolati in strutture target di data warehouse. I dati possono anche essere puliti con tutta la fortuna. Tuttavia nessun valore supplementare è aggiunto o raccolto dai dati durante questo processo.

 

Essenzialmente, il Dw passivo, nel migliore dei casi, fornisce soltanto i dati puliti e operativi agli associazioni di utenti. La creazione delle informazioni e la comprensione analitica dipendono

interamente dagli utenti. Giudicare se il DW (Data warehouse) sia un successo è soggettivo. Se giudichiamo il successo sulla capacità di raccogliere, integrare e pulire efficientemente i dati corporativi su una base prevedibile, allora sì, il DW è un successo.

D’altra parte, se guardiamo la raccolta, la consolidazione e lo sfruttamento delle informazioni l’organizzazione nell’insieme, allora il DW è un fallimento. Un DW fornisce poco o nessun valore delle informazioni. Di conseguenza gli utenti sono costretti ad arrangiarsi, creando cosi dei sili delle informazioni. Questo capitolo presenta una visione completa per ricapitolare l’ architettura di BI(Business Intelligence) dell’aziende. Cominciamo con una descrizione di BI e quindi ci muoveremo verso le discussioni sulla progettazione e sullo sviluppo delle informazioni, in contrasto con il semplice fornire i dati agli utenti. Le discussioni allora sono focalizzate sul calcolo del valore dei vostri sforzi di BI. Concludiamo con il definire come l’IBM richiama i requisiti architettonici di BI della vostra organizzazione.

 

Descrizione dell’architettura di organizzazione della BI

I potenti sistemi d’informazione transaction-oriented ora sono all’ordine del giorno in ogni grande impresa , in quanto livellano efficacemente il campo da giuoco per le società nel mondo. Rimanere competitivi, tuttavia, ora richiede sistemi analiticamente orientati a che può rivoluzionare l’abilità dell’azienda riscoprendo ed utilizzando le informazioni che già possiedono. Questi sistemi analitici derivano dalla comprensione dalla ricchezza dei dati disponibili. La BI può migliorare le prestazioni in tutte le informazioni dell’impresa. Le aziende possono migliorare i rapporti tra cliente e fornitori, migliorare il profitto dei prodotti e dei servizi, generare nuove e migliori offerte , controllare il rischio e fra molti altri guadagni tagliano le spese drasticamente . Con BI la vostra azienda finalmente incomincia ad usare le informazioni del cliente come bene competitivo grazie ad applicazioni che hanno obiettivi di mercato.

Avere i giusti mezzi di Business significa avere risposte definitive a domande di chiave come:

  • Quale dei nostri clienti ci fanno guadagnare di più, o ci mandano in perdita?
  • Dove vivono I nostri migliori clienti in relazione al negozio/magazzino che loro frequentano?
  • Quali dei nostri prodotti e servizi possono essere venduti più efficacemente e a chi?
  • Quali prodotti può essere venduto più efficacemente e a chi?
  • Quale campagna di vendita è più riuscita e perchè?
  • Quali canali di vendite sono più efficaci per quali prodotti?
  • Come possiamo migliorare i rapporti con nostri migliori clienti?

La maggior parte delle aziende hanno dati grezzi per rispondere a queste domande.

I sistemi operazionali generano ampie quantità di prodotto, di cliente e di dati di mercato dai punti di vendita, dalle prenotazioni, dal servizio di cliente e dai sistemi di supporto tecnico. La sfida è estrarre e sfruttare queste informazioni.

Molte aziende approfittano soltanto di piccole frazioni dei loro dati per le analisi strategiche.

I dati restanti, uniti spesso con i dati derivanti fonti esterne come i “government reports” , e altre informazioni comprate, sono una miniera d’oro che attende solo di essere esplorata, e i dati devono essere solo raffinati nel contesto informativo della vostra organizzazione.

Questa conoscenza può essere applicata in diversi modi, varianti dal progettare una strategia corporativa generale alla comunicazione personale con i fornitori, attraverso call center, fatturazioni, Internet ed altri punti. L’odierno ambiente di affari detta che il DW e le soluzioni relative della BI si evolvono oltre l’esecuzione di tradizionali strutture di dati quali i dati normalizzati a livello-atomico ed “star/cube farms”.

Ciò che è necessario per rimanere competitivi è una fusione di tradizionale e tecnologie avanzate in uno sforzo per sostenere un vasto paesaggio analitico.

Per concludere, l’ambiente generale deve migliorare la conoscenza dell’impresa nell’insieme, accertandosi che le azioni intraprese come conseguenza di analisi condotte tornino utili affinchè tutti si avvantaggino.

Per esempio, diciamo che classificate i vostri clienti nelle categorie di alto o basso rischio.

Se queste informazioni sono generate da un modello estraente o altri mezzi, deve essere messo nel Dw ed essere reso accessibile a chiunque, per mezzo di qualsiasi strumento di accesso, quali i rapporti statici, fogli elettronici, tabelle, o elaborazione analitica in linea (OLAP).

Tuttavia, attualmente, molte di questo tipo di informazioni rimangono nei sili di dati degli individui o reparti che generano l’analisi. L’organizzazione, nell’insieme, ha poca o nessuna visibilità per la comprensione. Soltanto mescolando questo tipo di contenuto informativo nel vostro Dw di impresa potete eliminare i sili delle informazioni ed elevare il vostro ambiente di Dw.

Ci sono due ostacoli importanti per lo sviluppo di un’organizzazione della BI.

In primo luogo, abbiamo il problema dell’organizzazione in se e della relativa disciplina.

Anche se non possiamo aiutare con cambiamenti di politica dell’organizzazione, possiamo aiutare a capire i componenti di un’organizzazione della BI, la relativa architettura e come la tecnologia dell’IBM facilita il relativo sviluppo.

La seconda barriera da superare è la mancanza di tecnologia integrata e la conoscenza di un metodo che richiama l’intero spazio della BI in contrasto con solo un piccolo componente.

L’IBM sta venendo in contro ai cambiamenti di tecnologia d’integrata. È vostra la responsabilità di fornire una progettazione cosciente. Questa architettura deve essere sviluppata con tecnologia scelta per integrazione senza vincoli, o per lo meno, con tecnologia che aderisce agli standard aperti. Inoltre, la vostra gestione dell’azienda deve assicurare che l’impresa di Bi è effettuata secondo il programma e non quello di permettere lo sviluppo dei sili delle informazioni che derivano da self-serving ordini del giorno, o obiettivi.

Questo non vuol dire che l’ambiente della BI non è sensibile a reagire ai diversi bisogni e requisiti di diversi utenti; invece, significa che l’implementazione di quei bisogni dell’individuo e dei requisiti è fatto a vantaggio di intera organizzazione della BI.

Una descrizione dell’architettura dell’organizzazione della BI può essere trovata alla pagina 9 nella figura 1.1.L’architettura dimostra una miscela ricca delle tecnologie e tecniche.

Dalla vista tradizionale, l’architettura include i seguenti componenti di warehouse

 

Strato atomico(Atomic Layer).

Ciò è il fondamento, il cuore dell’intero Dw e quindi della segnalazione strategica.

I dati memorizzati qui conserveranno l’integrità storica, rapporti di dati ed includono la metrica derivata, come pure l’essere puliti, integrati, e memorizzati usando i modelli estraenti.

Tutto l’uso successivo di questi dati e delle relative informazioni è derivato da questa struttura. Questa è un eccellente fonte per estrazione di dati e per report con query SQL strutturate

 

Deposito operativo di dati o segnalare base di dati(Operational data store (ODS) or reporting database.)

Questa è una struttura di dati specificamente progettata per le segnalazione tecniche.

I dati memorizzati e riportati sopra queste strutture possono infine propagarsi nel warehouse tramite la zona di organizzazione(staging area), dove potrebbe essere usata per segnalazione strategica.

 

Staging area.

Il primo stop per la maggior parte dei dati destinati all’ambiente di warehouse è la zona di organizzazione.

Qui i dati sono integrati, puliti e trasformati in dati utili che popoleranno la struttura del warehouse

 

Data marts.

Questa parte dell’architettura rappresenta la struttura di dati usata specificamente per OLAP. La presenza dei datamarts, se i dati sono memorizzati negli star schema che sovrappongono dati

multidimensionali in un ambiente relazionale, oppure negli schedari di dati riservati usati vicino la tecnologia specifica di OLAP, quale il server di DB2 OLAP, non è rilevante.

L’unico vincolo è che l’architettura facilita l’uso dei dati multidimensionali.

L’architettura comprende anche critiche tecnologie e tecniche di Bi che si distinguono come:

 

Analisi Spaziale(Spatial analysis)

Lo spazio è un bene inaspettato delle informazioni per l’analista ed è fondamentale per la risoluzione completa. Lo spazio può rappresentare le informazioni delle persone che vivono in una certa posizione, così come le informazioni circa dove quella posizione è fisicamente rispetto al resto del mondo.

Per effettuare questa analisi, dovete cominciare legando le vostre informazioni alle coordinate di latitudine e di longitudine. Ciò è indicato come “geocoding” e deve fare parte dell’estrazione, trasformazione, e del processo di caricamento (ETL) al livello atomico del vostro warehouse.

 

Data mining.

L’estrazione dei dati permette alle nostre aziende di far crescere il numero di clienti, di prevedere le tendenze di vendite e permettere la gestione dei rapporti con i clienti (CRM), tra altre iniziative della BI.

L’estrazione dei dati deve quindi essere integrata con le strutture di dati del Dwhouse e sostenuta da processi di warehouse per accertare sia l’uso efficace che efficiente del tecnologia e delle tecniche relative.

Come indicato nell’architettura della BI, il livello atomico del Dwhouse, così come i datamarts, è una eccellente sorgente di dati per l’estrazione. Quelle stesse strutture devono anche essere destinatari di risultati dell’estrazione per accertare la disponibilità ai più vasti pubblici.(broadest audience).

 

Agents.

Ci sono vari “agents” per esaminare il cliente per ogni punto come, i sistemi operativi dell’azienda e gli stessi dw. Questi agenti possono essere reti neurali avanzate addestrate ad apprendere sulle tendenze di ogni punto, come la richiesta futura del prodotto basata sulle promozioni di vendite, motori basati su regole per reagire ad un dato insieme di circostanze, o persino agenti semplici che segnalano le eccezioni ai “top executives”. Questi processi si presentano generalmente in tempo reale e, pertanto, devono essere accoppiati strettamente con il movimento degli stessi dati. Tutte queste strutture di dati, tecnologie e tecniche garantiscono che non passerete la notte a generare un’organizzazione della vostra BI.

Questa attività sarà sviluppata a passi incrementali, per piccoli punti.

Ogni passo è uno sforzo indipendente di progetto, ed è riferito come un iterazionenel vostro dw o iniziativa di BI. Le iterazioni possono includere l’implementazione di nuove tecnologie, per iniziare con le nuove tecniche, aggiungendo nuove strutture di dati , caricando i dati supplementari , o con l’espansione di analisi del vostro ambiente. Questo paragrafo è discusso più approfonditamente nel capitolo 3.

Oltre alle strutture tradizionali di Dw e strumenti di Bi ci sono altre funzioni della vostra organizzazione della BI per cui dovete progettare, come:

 

Punti di contatto del cliente(Customer touch points).

Come con tutta l’organizzazione moderna esiste un certo numero di punti di contatto del cliente che indicano come avere un esperienza positive per i vostri clienti. Ci sono i canali tradizionali quali i commercianti, i centralinisti, la posta diretta, multimedia e stampa pubblicitaria, così come i canali più attuali come email e web, i dati prodotti con qualche punto di contatto devono essere acquisiti, trasportati, puliti, trasformati ed poi popolati a strutture di dati della BI.

 

Basi di dati operative e associazioni di utenti (Operational databases and user communities).

Alla fine dei punti di contatto dei clienti si trovano le basi di dati dell’applicazione della ditta e delle comunità di utenti. I dati esistenti sono dati tradizionali che devono essere riuniti e fusi con i dati che fluiscono dai punti di contatto per soddisfare le necessarie informazioni.

 

Analisti. (Analysts)

Il beneficiario principale dell’ambiente della BI è l’analista. È lui che trae beneficio dall’estrazione attuale di dati operativi , integrati con diverse fonti di dati , aumentate con caratteristiche quale analisi geografiche (geocoding) e presentato in tecnologie di BI che permettono di estrarre, OLAP, avanzati reporting di SQL e analisi geografiche. L’interfaccia primaria per l’analista per l’ambiente di reporting è il portal della BI.

Tuttavia, l’analista non è l’unico a beneficiare dall’architettura della BI.

Dirigenti, vaste associazioni di utenti, e perfino i soci, i fornitori ed i clienti dovrebbero trovare dei benefici nella BI di impresa.

 

Back-feed loop.

L’architettura della BI è un ambiente di apprendimento. Un principio caratteristico dello sviluppo è permettere persistenti strutture di dati da aggiornare mediante tecnologia della BI usata e mediante azioni intrapese dell’utente. Un esempio è la valutazione del cliente(customer scoring).

Se il reparto di vendita effettua un modello estraente (mining model) dello scores del cliente come per usare un nuovo servizio, allora il reparto di vendita non dovrebbe essere l’unico gruppo beneficiario del servizio.

Invece, il modello estraente dovrebbe essere effettuato come parte naturale del data flow dentro l’impresa e lo scores del cliente dovrebbe diventare una parte integrata del contesto informativo del magazzino, visibile a tutti gli utenti. La Suite dell’IBM di Bi-bI-centric compreso DB2 UDB, DB2 OLAP Server comprende la maggior parte dei componenti importanti di tecnologia, definita nella figura 1.1.

Noi usiamo l’architettura come appare in questa figura del libro per darci un livello di continuità e dimostrare come ogni prodotto dell’IBM si adattano allo schema generale della BI.

 

Fornire Il Contenuto Informativo(Providing Information Content)

Progettare, sviluppare ed implementare il vostro ambiente di BI è un’operazione ardua. La progettazione deve abbracciare tanto gli attuali che i futuri requisiti di business. Il disegno dell’architettura deve essere completo per includere tutte le conclusioni trovate durante la fase di progettazione. L’esecuzione deve rimanere impegnata per un singolo scopo: sviluppare l’architettura della BI come presentata formalmente nel disegno e fondata sui requisiti di business.

È particolarmente difficile sostenere che la disciplina assicurerà il relativo successo.

Ciò è semplice perché non si sviluppa un ambiente della BI tutto d’un tratto, ma si effettua in piccoli passi col tempo.

Tuttavia, identificare i componenti della BI della vostra architettura è importante per due motivi: Guiderete tutte le successive decisioni tecniche di architettura.

Potrete progettare coscientemente un uso particolare di tecnologia anche se potreste non ottenere una ripetizione che ha bisogno della tecnologia per parecchi mesi.

Il capire sufficientemente i vostri requisiti di business influirà il tipo di prodotti che acquisirete per la vostra architettura.

La progettazione e lo sviluppo della vostra architettura assicurano che il vostro warehouse sia

non un evento aleatorio, ma piuttosto un “well-thought-out”, attentamente costruito ad opera d’arte come un mosaico di tecnologia mescolata.

 

Progettare il contenuto informativo

Tutta la progettazione iniziale deve mettere a fuoco e identificare i componenti principali della BI che saranno necessari all’ambiente generale in presente e in futuro.

Conoscere i requisiti di Business è importante.

Anche prima che tutta la progettazione convenzionale cominci, il pianificatore di progetto può spesso identificare uno o due componente subito.

L’equilibrio dei componenti che potrebbero essere necessari per la vostra architettura, tuttavia, non può essere trovato facilmente. Durante la fase di progettazione, la parte principale dell’architettura lega la sessione di sviluppo dell’applicazione (JAD) su una ricerca per identificare i requisiti di business.

A volte questi requisiti possono essere affidati a strumenti di interrogazioni e di reporting .

Per esempio, gli utenti dichiarano che se desiderano automatizzare attualmente un report devono generare manualmente integrando due rapporti attuali ed aggiungendo i calcoli derivati dalla combinazione dei dati.

Anche se questo requisito è semplice, definisce una certa funzionalità della caratteristica che voi dovete includere quando comprate strumenti di reporting per l’organizzazione.

Il progettista deve anche perseguire i requisiti supplementari per ottenere un’immagine completa. Gli utenti desiderano abbonarsi a questo report?

I sottoinsiemi del report sono generati e spediti via email ai vari utenti? Desiderano vedere questo report nel portale aziendale?

Tutti questi requisiti fanno parte della semplice necessità di sostituire un report manuale come richiesto dagli utenti. Il beneficio di questi tipi di requisiti è che ognuno, utenti ed i progettisti, hanno una conoscenza del concetto dei report.

Ci sono altri tipi di business , tuttavia, che dobbiamo programmare. Quando i requisiti di business sono dichiarati sotto forma di domande strategiche di Business, è facile per il progettista esperto discernere i requisiti di measure/fact e dimensionali.

Figura 1.2 illustra componenti di misura e dimensionali di un problema di Business.

Se gli utilizzatori di JAD non sanno come dichiarare i loro requisiti sotto forma di un problema di business, il progettista fornirà spesso degli esempi per saltare-avviare la sessione della raccolta dei requisiti.

L’esperto progettista può aiutare gli utenti a capire non soltanto il commercio strategico, ma anche come formarlo.

L”approccio della raccolta dei requisiti è discussa nel capitolo 3; per ora desideriamo soltanto indicare la necessità di progettare per tutti i tipi di requisiti della BI

 

Una problema strategico di Business è, non soltanto un requisito di Business, ma anche un indizio progettuale. Se dovete rispondere ad una domanda multidimensionale, allora dovete memorizzare, presentare i dati dimensionali, e se avete bisogno di memorizzare i dati multidimensionali, dovete decidere che tipo di tecnologia o tecnica state andando impiegare.

Implementate uno star schema a cubo riservato, o entrambi?

Come potete vedere, persino un semplice problema di business può influenzare in modo considerevole la progettazione. Però questi tipi di requisiti di business sono ordinari e beninteso, almeno dai progettisti e dai pianificatori con esperienza di progetto.

 

C’è stato dibattito sufficiente sulle tecnologie e sul supporto di OLAP, ed è disponibile una vasta gamma di soluzioni. Finora abbiamo accennato la necessità di riunire semplici reporting con i requisiti dimensionali di busineness, e come questi requisiti influenzano decisioni tecniche di architettura.

Ma che cosa sono i requisiti che non sono prontamente compresi dagli utenti o dal team di Dw ? Avrete mai bisogno dell’analisi spaziale(analysisi spatial)?

I modelli estraenti di dati saranno una parte necessaria del vostro futuro? Chi sa?

È importante notare che queste tipo di tecnologie non sono molto conosciute dalle comunità di utenti generali e membri del team di Dw, in parte, questo potrebbe accadere perché loro tipicamente sono trattate da alcuni tecnici esperti interni o di terze parti. È un caso limite dei problemi che questi tipi di tecnologie generano. Se gli utenti non possono descrivere i requisiti di business o inquadrarli in modo da fornire le linee guida ai progettisti, queste possono passare inosservate o,peggio, ignorate semplicemente.

Più problematico diventa quando il progettista e lo sviluppatore non possono riconoscere l’applicazione di una di queste avanzate ma critiche tecnologie.

Come spesso abbiamo sentito i Progettisti dicono, “bene, perchè non lo mettiamo da parte fino a che non otteniamo qust’altra cosa? “Sono realmente interessati alle priorità, o semplicemente evitano i requisiti che non capiscono? È molto probabilmente l’ultima ipotesi.

Diciamo che il vostro gruppo di vendita ha comunicato un requisito di affari ,come dichiarato nella figura 1.3, come potete vedere, il requisito è inquadrato sottoforma di un problema di business. La differenza fra questo problema e il tipico problema dimensionale è la distanza. In questo caso, il gruppo di vendita desidera conoscere, su una base mensile, le vendite totali dai prodotti, i magazzini e i clienti che vivono entro 5 miglia dal magazzino dove loro acquistano.

Tristemente, i progettisti o gli architetti possono semplicemente ignorare la componente spaziale dicendo, “abbiamo il cliente, il prodotto ed i dati del deposito. Teniamo fuori la distanza fino ad un’altra iterazione.

“Risposta sbagliata. Questo tipo di problema di business riguarda interamente la BI. Rappresenta una comprensione più profonda del nostro business e di un spazio analitico robusto per i nostri analisti. La BI è oltre l’interrogazione semplice o la segnalazione standard, o persino OLAP. Questo non vuol dire che queste tecnologie non sono importanti per la vostra BI,ma da solenon rappresentano l’ambiente della BI.

 

Progettare per il contesto di informazioni (Designing for Information Content)

Ora che abbiamo identificato i requisiti di Business che distinguono vari componenti fondamentali, si devono includere in un disegno architettonico generale. Alcuni dei componenti della BI fanno parte dei nostri sforzi iniziali, mentre alcuni non saranno implementati per parecchi mesi.

Tuttavia, tutti i requisiti conosciuti sono riflessi nel progetto cosi che quando dobbiamo implementare una tecnologia particolare, siamo preparati a farlo. Qualcosa del progetto rifletterà il pensiero tradizionale.

Per esempio, la figura 1.1, all’inizio del capitolo, mostra un data mart che mantiene i dati dimensionali.

Questo insieme di dati è usato per sostenere gli usi successivi di dati dimensionali guidati dalle problematiche di Business che abbiamo identificato. Poichè i documenti supplementari sono generati, come ad esempio lo sviluppo progettuale dei dati, noi inizieremo a formalizzare come i dati si propagano nell’ambiente.

Abbiamo accertato la necessità di rappresentare i dati in modo dimensionale, suddividendoli (secondo delle esigenze specifiche determinate) in data marts.

La prossima domanda a cui rispondere è: come saranno costruiti questi data marts?

Costruite le stelle per sostenere i cubi, o solo cubi, o solo le stelle? (o cubi giusti, o stelle giuste). Generate l’architettura per i data marts dipendenti che richiedono uno strato atomico per tutti i dati aquisiti? Permettete ai data marts indipendenti acquisire i dati direttamente dai sistemi operativi?

Che Tecnologia di cubi proverete a standardizzare?

Avete quantità voluminose dei dati richiesti per analisi dimensionale o avete bisogno dei cubi della vostra forza vendite nazionale su una base settimanale o su entrambe? Costruite un oggetto potente come DB2 OLAP Server per la finanza o i cubi di Cognos PowerPlay per la vostra organizzazione di vendite o entrambe? Queste sono le grandi decisioni architettoniche di disegno che avranno effetto sul vostro ambiente della BI da qui in avanti. Sì, avete accertato una necessità di OLAP. Ora come effettuerete quel tipo di tecnica e tecnologia?

 

Come alcune delle tecnologie più avanzate interessano i vostri disegni? Presupponiamo che avete accertato una necessità spaziale nella vostra organizzazione. Ora dovete richiamare le edizioni architettoniche di disegno anche se non pianificate di effettuare componenti spaziali per parecchi mesi. L’architetto deve progettare oggi basandosi su ciò che serve. Prevedere l’esigenza di analisi spaziale che genera, memorizza, effettua e fornisce l’accesso ai dati spaziali. Ciò a sua volta dovrebbe servire da vincolo per quanto riguarda il tipo di specifiche di tecnologia e di piattaforma del software potete attualmente considerare. Per esempio, il sistema di amministrazione della base di dati relazionale (RDBMS) che effettuate per il vostro strato atomico deve avere un’estensione spaziale robusta disponibile. Ciò accerterebbe le prestazioni massime quando usate la geometria e gli oggetti spaziali nelle vostre applicazioni analitiche. Se il vostro RDBMS non può maneggiare i dati (spazial-centric) internamente, quindi dovrete stabilire una base di dati (spaziale-centric) esterna. Ciò complica la gestione delle edizioni e compromette le vostre prestazioni generali, per non accennare i problemi supplementari generati per il vostro DBAs, poiché probabilmente hanno una minima comprensione delle basi di dati spaziali pure. D’altra parte, se il vostro motore di RDMBS maneggia tutti i componenti spaziali ed il relativo ottimizzatore è informato dei bisogni speciali (per esempio, indexing) degli oggetti spaziali, allora il vostro DBAs può trattare prontamente la gestione delle edizioni e potete elevare le prestazioni.

Inoltre, dovete regolare la staging area (area di scena) e lo strato d’ambiente atomico per includere la pulizia degli indirizzi (un elemento chiave ad analisi spaziale), così come il successivo salvataggio degli oggetti spaziali. Il susseguirsi delle edizioni di disegno continua ora che abbiamo introdotto la nozione di pulizia di indirizzo. Per una cosa, questa applicazione detterà il tipo di software necessario per il vostro sforzo di ETL.

Avete bisogno dei prodotti come Trillium per fornirgli un indirizzo pulito, o di un fornitore di ETL da voi prescelto per fornire quella funzionalità?

Per ora esso è importante che apprezzate il livello del disegno che deve essere completato prima che cominciate ad effettuare il vostro ambiente (warehouse). Gli esempi precedenti dovrebbero dimostrare la moltitudine di decisioni di disegno che devono seguire l’identificazione di tutto il requisito particolare di affari. Se fatte correttamente, queste decisioni di disegno promuovono l’interdipendenza fra le strutture fisiche del vostro ambiente, la selezione di tecnologia usata ed il flusso di propagazione del soddisfare di informazioni. Senza questa architettura convenzionale della BI, la vostra organizzazione sarà soggetta ad una miscela caotica di tecnologie esistenti, nel migliore dei casi, unite in modo non preciso per fornire una stabilità apparente.

 

Effettuare il soddisfare di informazioni

Portando il valore delle informazioni alla vostra organizzazione è un’operazione molto difficile. Senza una sufficiente comprensione ed esperienza, o progettazione e disegno adeguati, persino le squadre migliori fallirebbero. D’altra parte, se avete una grande intuizione e una progettazione dettagliata ma nessuna disciplina per l’esecuzione, avete appena sprecato i vostri soldi e il vostro tempo perché il vostro sforzo è destinato a fallire. Il messaggio dovrebbe essere chiaro: Se state mancando di una o più di queste competenze, comprensione/esperienza o progettazione/disegno o disciplina di implementazione,questo porterà a paralizzare o distruggere la costruzione dell’organizzazione della BI.

La vostra squadra sufficiente preparata? C’è qualcuno sulla vostra squadra della BI che capisce il vasto paesaggio analitico disponibile negli ambienti della BI, nelle tecniche e nelle tecnologie necessarie per effettuare quel paesaggio? C’è qualcuno sulla vostra squadra che può riconoscere la differenza di applicazione fra advanced static reporting e OLAP,o le differenze fra ROLAP e OLAP? Uno dei membri della vostra squadra riconosce chiaramente il modo di estrarre e come esso potrebbe avere effetto sul warehouse o come il warehouse può sostenere le prestazioni estraenti? Un membro della squadra capisce il valore dei dati spaziali o la tecnologia basata su agenti? Avete qualcuno che apprezzi l’applicazione unica degli attrezzi di ETL contro tecnologia del mediatore del messaggio? Se non l’avete, ottenetene uno. La BI è molto più grande di uno strato atomico normalizzato, di OLAP, degli schemi a stella e di un ODS.

Avere la comprensione e l’esperienza per riconoscere i requisiti della BI e le loro soluzioni è essenziale alla vostra capacità di formalizzare correttamente le esigenze degli utenti e di progettare ed effettuare le loro soluzioni. Se la vostra comunità di utenza ha difficoltà a descrivere i requisiti, è compito della squadra di warehouse fornire quella comprensione. Ma se la squadra di warehouse

non riconoscel’applicazione specifica della BI -per l’esempio, data mining- allora non è la cosa migliore che gli ambienti della BI si limitino spesso ad essere depositi passivi. Tuttavia, ignorare queste tecnologie non diminuisce la loro importanza e l’ effetto che hanno sulla nascita di possibilità di business intelligence della vostra organizzazione, come pure l’assetto informativo che progettate promuovere.

La progettazione deve comprendere la nozione del disegno, ed entrambi richiedono un individuo competente. In più, il progettare richiede una filosofia di werehouse di squadra e l’osservazione degli standards. Per esempio, se la vostra azienda ha stabilito una piattaforma standard o ha identificato un RDBMS particolare che si desidera standardizzare per tutta la piattaforma, è incombente che sulla squadra tutti aderiscano a quegli standard. Generalmente una squadra espone l’esigenza della normalizzazione (to user communites), ma la squadra in se è poco disposta a aderire agli standard stabiliti anche in altre aree nell’azienda o forse anche nelle società simili. Non solo questo è iporcrita, ma accerta l’impresa non è capace di sfruttare le risorse e investimenti esistenti. Non significa che non esistono situazioni che garantiscono una piattaforma o una tecnologia non standardizzata; tuttavia, gli sforzi del warehouse dovrebbero proteggere gelosamente gli standard dell’impresa fino a che i requisiti di business non dettino il contrario.

 

Il terzo componente chiave necessario per costruire una BI organization è la disciplina.

Dipende in totale, in uguale misura dagli individui e dall’ambiente.

Project planners, sponsor, architetti, e utenti devono apprezzare la disciplina necessaria a costruire l’assetto informativo della società.

I progettisti devono dirigere i loro sforzi di progetto in modo tale da completare altri sforzi necessari nella società.

Per esempio, supponiamo che la vostra società costruisca un applicazione ERP che ha un componente warehouse.

Quindi è la responsabilità dei progettisti ERP di collaborare con il team dell’ambiente di warehouse in modo da non competere o duplicare i lavori gia in iniziati.

La disciplina è anche un argomento che deve essere occupato dall’intera organizzazione ed è di solito stabilita e affidata a un livello esecutivo.

I dirigenti sono disposti ad aderire ad un approccio progettato? Un approccio che promette di creare contenuti di informazioni che alla fine porterà valore a tutte le aree dell’impresa, ma forse compromette singoli o departmental agendas? Ricordati il detto “Pensare a tutto è più importante di pensare a un’unica cosa”. Questo detto è vero per le organizzazioni BI.

Sfortunatamente molte warehouse concentrano i loro sforzi cercando di indirizzare e portare valore a un particolare reparto o a utenti specifici, con un piccolo riguardo all’organizzazione in generale. Supponete che il dirigente richieda assistenza al team di werehouse. Il team risponde con un lavoro durato 90 giorni che include non solo la consegna dei requisiti di notifica definiti dal dirigente ma assicura che tutti i dati base siano mischiati nel livello atomico prima di essere introdotto nella tecnologia di cubo proposta.

Questa aggiunta ingegneristica assicura che l’impresa di werehouse trarrà benefici dai dati necessari al dirigente.

Tuttavia, il dirigente ha parlato con ditte di consulenza esterne che hanno proposto una simile applicazione con consegna in meno di 4 settimane.

Assumendo che il team interno di werehouse sia competente, lo il dirigente ha una scelta. Chi può supportare la disciplina di ingegneria supplementare necessaria per coltivare il bene informativo impresa o può scegliere di realizzare la propria soluzione velocemente. L’ultimo sembra essere scelto veramente troppo spesso e serve solo per creare contenitori di informazioni di cui ne beneficiano in pochi o il singolo.

 

Obiettivi a Breve e Lunga scadenza

Gli architetti e i progettisti di progetto devono formalizzare una visione a lunga scadenza dell’architettura generale e piani per crescere in un’organizzazione BI. Questa combinazione di guadagno a breve scadenza e pianificazione a lunga scadenza rappresentano le due facce di sforzi BI. Il guadagno a breve scadenza è la sfaccettatura di BI che è associata a iterazioni del vostro warehouse.

È qui dove progettisti, architetti e sponsor si concentrano su soddisfare requisiti commerciali specifici. È a questo livello dove le strutture fisiche sono costruite, la tecnologia è acquistata e le tecniche sono implementate. Sono affatto fatte per affrontare requisiti specifici come definiti da particolare utente le comunità.

Tutto è svolto in con lo scopo di affrontare requisiti specifici definiti da una particolare comunità.

La pianificazione a lunga scadenza, tuttavia, è l’altra sfaccettatura di BI. È qui in cui i piani e i progetti hanno assicurato che fosse costruita una qualsiasi struttura fisica, le tecnologie selezionate e le tecniche realizzate fatte con un occhio verso l’impresa. È la pianificazione a lunga scadenza che fornisce la coesione necessaria per assicurare che i vantaggi di impresa derivino da tutti i guadagni a breve scadenza trovati.

 

Giustificare il vostro sforzo di BI

Un data warehouse da solo non ha nessun valore inerente. In altre parole, non c’è nessun valore inerente tra le tecnologie di warehouse e le tecniche implementative.

 

Il valore di qualsiasi sforzo di warehouse è trovato nelle azioni eseguite a seguito dell’ambiente di warehouse e del contenuto informativo coltivato nel tempo. Questo è un punto critico da capire prima che tentiate mai di stimare il valore di qualsiasi iniziativa di wherehouse.

Troppo spesso, architetti e progettisti tentano di applicare valore ai componenti fisici e tecnici di warehouse quando infatti il valore si fonda con i processi commerciali che sono incisi positivamente dal warehouse e dalle informazioni bene acquisite.

Qui giace la sfida per fondare la BI: Come giustifichi l’investimento? Se la stessa wherehouse non ha un valore intrinseco, i progettisti di progetto devono indagare, definire e formalizzare i vantaggi conseguiti da quegli individui che utilizzeranno il warehouse per migliorare processi commerciali specifici o il valore delle informazioni protette o entrambi.

Per complicare argomenti, qualsiasi processo commerciale interessato da sforzi di magazzino potrebbe fornire vantaggi “considerevoli” o “lievi”. I vantaggi considerevoli forniscono una metrica tangibile per misurare il ritorno dell’investimento (ROI) – ad esempio, girare l’inventario un tempo aggiuntivo durante un periodo specifico o per costo minore di trasporto per spedizione. È più difficile definire i lievi vantaggi, come l’ accesso migliorato alle informazioni , in termini di valore tangibile.

 

Collegare il vostro progetto per conoscere le richieste di Business

Troppo spesso, i progettisti di progetto tentano di collegare il valore della warehouse con obiettivi amorfi dell’impresa. Dichiarando che “il valore dei una warehouse è basato sulla nostra capacità di soddisfare richieste strategiche” apriamo in modo gradevole il discorso. Ma da solo non è sufficiente per determinare se l’investimento nel magazzino ha senso. È miglio collegare ripetizioni di warehouse con richieste commerciali specifiche e note.

 

Misurare il ROI

Calcolare ROI in un’impostazione di warehouse può essere particolarmente difficile. È particolarmente difficile se il vantaggio principale di una particolare ripetizione è qualcosa di non tangibile o facile da misurare. Uno studio ha trovato che gli utenti percepiscono i due principali vantaggi delle iniziative della BI:

  • Creare l’abilità per creare decisioni
  • Creare l’acceso alle informazioni

Questi vantaggi sono vantaggi morbidi (o lievi). È facile vedere come possiamo calcolare un ROI basato su un vantaggio duro (o maggiore) tipo la riduzione del costo del trasporto, ma come misuriamo la capacità di prendere decisioni migliori?

Questa è sicuramente una sfida per progettisti di progetto quando stanno tentando di convincere la società a investire in un particolare sforzo di warehouse. Le vendite crescenti o i costi che diminuiscono non sono più i temi centrali che guidano l’ambiente BI.

Invece, state cercando nelle richieste di business un accesso migliore alle informazioni in modo che un particolare reparto possa prendere decisioni più veloci. Questi sono conducenti strategici a cui capita di essere ugualmente importante per l’impresa ma sono più ambigui e più difficili da caratterizzare in una metrica tangibile. In questo caso, calcolare ROI può ingannare, se non irrilevante.

I progettisti di progetto devono essere in grado di dimostrare valore tangibile perché i dirigenti possano decidere se l’investimento in una particolare ripetizione vale. Tuttavia, non proporremo un nuovo metodo per il calcolo di ROI, né faremo qualche argomento pro o contro esso.

Sono disponibili molti articoli e libri che discutono i fondamenti per calcolare ROI. Ci sono delle special value propositions come valore sull’investimento (VOI), offerto da gruppi come Gartner, che potete ricercare. Invece, ci concentreremo su aspetti di nucleo di qualsiasi ROI o altre proposizioni di valore che dovete considerare.

Applicando ROI

 

Oltre all’argomento sui benefici “duri” contro i benefici “leggeri” associati agli sforzi di BI là ci sono altri problemi da considerare quando applichiamo ROI. Per esempio:

 

Attribuire troppi risparmi agli sforzi del DW che verrebbero comunque

Diciamo che la vostra società passava da un’architettura di mainframe a un ambiente distribuito UNIX. Quindi qualsiasi risparmio che può (o non può) essere realizzato da quello sforzo non dovrebbe essere attribuito esclusivamente, se a tutto (?), al warehouse.

Non rendere conto di tutto costa. E ce ne sono molte di cose da tener conto. Considerate la seguente lista:

  • Costo dell’avvio, tra cui la fattibilità.
  • Costo di hardware dedicato con relativo storage e comunicazioni
  • Costo del software, tra cui gestione dei dati ed estensioni client/server, software ETL, tecnologie DSS, strumenti di visualizzazione, applicazioni di programmazione e di flusso di lavoro e software di monitoraggio, .
  • Costo di progettazione di struttura dati, con la realizzazione, e l’ottimizzazione di
  • Costo di sviluppo software direttamente associato allo sforzo BI
  • Costo di supporto a domicilio, compreso ottimizzazione di prestazioni, compreso controllo di versione software e operazioni di help

 

Applicare “Big-Bang” ROI.

La realizzazione della warehouse come sforzo singolo e gigantesco è destinato a non riuscire, così anche calcola il ROI per un’iniziativa di larga impresa L’offerta è sorprendere, e che i progettisti continuino a fare tentativi deboli per stimare il valore dell’intero sforzo.

Perché i progettisti cercano di dare un valore monetario sull’iniziativa di impresa se è ampiamente saputo e accettato che stimare ripetizioni specifiche è difficile? Come è possibile? Non è possibile con poche eccezzioni. Non fatelo.

 

Ora che abbiamo stabilito che cosa non fare quando calcoliamo ROI, ci sono qui alcuni punti che ci aiuteranno nella definizione di un processo affidabile per stimare il valore dei vostri sforzi BI.

 

Ottenimento del consenso di ROI. Indipendentemente dalla vostra scelta di tecnica per stimare il valore dei vostri sforzi BI, deve essere concordata da tutte le parti, incluso i progettisti di progetto, gli sponsor e i dirigenti aziendali.

 

Riducete ROI in parti identificabili. Un passo necessario verso in ragionevole calcolo di un ROI è concentrare quel calcolo su un progetto specifico. Questo quindi vi permette di stimare un valore basato su requisiti commerciali specifici che vengono soddisfatti

 

Definite i costi. Come citati, numerosi costi devono essere considerati. Inoltre, i costi devono includere non solo quelli associati alla singola iterazione ma anche ai costi di associati all’assicurazione di conformità agli standard di impresa..

 

Definite vantaggi. Collegando chiaramente il ROI a requisiti commerciali specifici, dovremmo essere in grado di identificare i vantaggi che porteranno a soddisfare i requisiti.

 

Riducete i costi e i vantaggi in guadagni imminenti. È il modo migliore per basare le vostre valutazioni sul valore attuale netto (NPV) diversamente dal tentativo di predire valore futuro in guadagni futuri.

Tenete al minimo la tempistica di suddivisione del vostro ROI. E’ ben documentato nel lungo periodo in cui è stato usato nel vostro ROI.

 

Utilizzate più di una formula ROI. Ci sono numerosi metodi per la previsione del ROI e voi dovreste pianificare se utilizzarne uno o più, compreso il valore attuale netto, la velocità interna del ritorno (IRR) e il recupero.

 

Definire il processo ripetibile. Questo è determinante per calcolare ogni valore a lunga scadenza. Dovrebbe essere documentato un singolo processo ripetibile per tutte le sottosequenze di progetto a seguire.

 

I problemi elencati sono quelli più comuni definiti da esperti dell’ambiente di werehouse. L’insistenza da parte della gestione di far fornire un “Big-Bang” ROI disorienta parecchio. Se avviate tutti i vostri calcoli ROI riducendoli in parti identificabili e tangibili, avete una buona possibilità stimare una valutazione precisa ROI.

 

Domande riguardo ai benefici del ROI

Qualunque sono i vostri benefici, morbidi o duri, voi potete utilizzare alcune domande fondamentali per determinare il loro valore. Ad esempio utilizzando un sistema di scala semplice, da 1 a 10, voi potete rilevare l’impatto di qualsiasi sforzo utilizzando le seguenti domande:

 

  • Come valutereste la comprensione dei dati a seguito di questo progetto della vostra società?
  • Come stimereste i miglioramenti di processo a seguito di questo progetto?
  • Come misurereste l’impatto di nuove intuizioni e inferenze ora rese disponibili da questa iterazione
  • Quale è stato l’impatto di ambienti di computer nuovi e performanti a seguito di quello che si era imparato?

 

Se le risposte a queste domande sono poche, è possibile che l’impresa non valga l’investimento fatto. Le domande con un alto punteggio puntano a guadagni di valore significativi e dovrebbero servire come guide per ulteriore indagine.

Ad esempio, un alto punteggio per miglioramenti di processo dovrebbe portare i progettisti a esaminare come i processi sono stati migliorati. Potete trovare che alcuni o tutti i guadagni ottenuti sono tangibili e quindi un valore monetario può essere prontamente applicato.

 

Ottenere il massimo dalla prima iterazione del warehouse

Il risultato più grande del vostro sforzo di impresa è spesso nelle prime poche iterazioni. Questi primi sforzi tradizionalmente stabiliscono il più utile contenuto informativo per il pubblico e stabilisce l’aiuto alla fondazione di tecnologia per le successive applicazioni della BI.

Di solito ogni successiva sottosequenza di dati di progetto di warehouse portano sempre meno valore aggiuntivo all’impresa in generale. Questo è particolarmente vero se l’iterazione non aggiunge nuovi argomenti o non soddisfa le necessità di una nuova comunità di utenti.

Questa caratteristica di immagazzinare si applica anche alle pile crescenti di dati storici. Come gli sforzi successivi richiedono più dati e come più dati sono versati nel warehouse nel tempo, il più dei dati diventa meno attinente all’analisi utilizzata. Questi dati sono spesso chiamati dati assopiti ed è sempre costoso tenerli perché non vengono quasi mai utilizzati.

Cosa significa questo per gli sponsor di progetto? Essenzialmente, i primi sponsor condividono di più di quanto costa l’investimento. Questo è primario perché essi sono l’impeto per fondare lo strato di largo ambiente tecnologico e delle risorse del warehouse, compreso organico.

Ma questi primi passi portano il valore più alto e quindi i progettisti di progetto devono spesso giustificare l’investimento.

I progetti fatti dopo la vostra iniziativa BI possono avere costi inferiori ( comparati con la prima) e diretti, ma portano meno valore all’impresa.

E proprietari dell’organizzazione devono iniziare a considerare buttare l’accumulo di dati e di tecnologie meno rilevanti.

 

Data Mining : Estrazione Dati

Numerosi componenti architettonici richiedono variazioni di tecnologie e tecniche di data mining—

per esempio, i diversi “agenti” per l’esame dei punti di interesse del clienti, i sistemi operativi dell’azienda e per lo stesso dw. Questi agenti possono essere reti neurali avanzate addestrate alle tendenze del POT, quale la richiesta futura del prodotto basata sulle promozioni di vendite; motori basati sulle regole (rules-based) per reagire a un insieme dato di circostanze, ad esempio, diagnosi medica e raccomandazioni di trattamento; o persino agenti semplici col ruolo di riportare le eccezioni ai dirigenti superiori (top executives). Generalmente questi processi di estrazione dati si verificano in tempo reale; quindi, essi devono essere uniti completamente con il movimento dei dati stessi.

Online Analytic Processing Elaborazione Analitica Online

La capacità di affettare, spezzettare, arrotolare, trapanare giù (drill-down) ed effettuare l’analisi

cosa-se, è all’interno dell’ambito, dell’obiettivo della suite tecnologica IBM. Ad esempio, le funzioni di trattamento analitico online (OLAP) esistono per DB2 che porta l’analisi dimensionale nel motore del database stesso .

Le funzioni aggiungono l’utilità dimensionale a SQL mentre sfruttano tutti i benefici di essere una parte naturale di DB2. Un altro esempio di integrazione di OLAP è lo strumento di estrazione, DB2 OLAP Analizzatore Server. Questa tecnologia permette ai cubi del Server DB2 OLAP di essere rapidamente e automaticamente analizzati per individuare e riferire su valori dei dati insoliti o inattesi per tutto il cubo all’analista commerciale. E, infine, le funzioni del Centro di DW forniscono mezzi perché architetti controllino, tra le altre cose, il profilo di un cubo server DB2 OLAP come una parte naturale dei processi ETL.

Spatial Analysis Analisi Spaziale

Lo spazio rappresenta la metà delle ancore (conduzioni) analitiche necessarie per un panorama

analitico largo (il tempo rappresenta l’altra metà). Il livello atomico (atomic-level ) del magazzino, rappresentato nella Figura 1.1, include i fondamenti sia per tempo che per spazio. Le registrazioni dell’ora ancorano analisi per tempo e informazioni di indirizzo ancorano analisi da spazio. Le marcatura orarie (Timestamps) conducono l’analisi per tempo, e l’informazione di indirizzo conduce l’analisi per spazio. Il diagramma mostra geocoding–processo di conversione indirizzi a punti in una mappa o punti nello spazio cosicché i concetti come distanza e interno/esterno possano essere utilizzati nell’analisi–condotto a livello atomico e l’analisi spaziale che è messa a disposizione dell’analista. IBM fornisce estensioni spaziali, sviluppati con l’Istituto Ricerca Sistema Ambientale (ESRI), al database DB2 in modo che gli oggetti spaziali possano essere conservati come una parte normale del database relazionale. DB2 Spatial Extenders, forniscono anche tutte le estensioni SQL per sfruttare l’analisi spaziale. Ad esempio, le estensioni SQL da interrogare sulla

distanza fra indirizzi o se un punto è interno o esterno ad un’area poligonale definita, sono uno standard analitico con il Spatial Extender. Consultate il capitolo 16 per ulteriori informazioni.

 

Database-Resident Tools Strumenti Database-Resident

DB2 ha molte caratteristiche SQL BI-resident che assistono nell’azione di analisi. Questi includono:

  • Le funzioni di ricorsione per eseguire analisi, come “trovare tutti i possibili percorsi di volo da San Francisco a New York”.
  • Le funzioni analitiche per il ranking, funzioni cumulative, cubo e rollup per agevolare i compiti che normalmente si verificano solo con la tecnologia OLAP, sono ora una parte naturale del motore del database
  • La capacità di creare tabelle che contengano risultati

I venditori di database leader mischiano di più delle funzionalità BI nel database stesso.

I fornitori principali della base di dati stanno mescolando più delle funzionalità della BI nel database stesso.

Ciò fornisce le prestazioni migliori e più opzioni di esecuzione per le soluzioni della BI.

Le caratteristiche e le funzioni di DB2 V8 sono discusse dettagliatamente nei seguenti capitoli:

Technical Architecture and Data Management Foundations (Chapter 5)

  • DB2 Fondamenti della BI (BI Fundamentals) (Chapter 6)
  • DB2 Tabelle di query materializzate (Materialized Query Tables) (Chapter 7)
  • DB2 Funzioni OLAP (OLAP Functions) (Chapter 13)
  • DB2 Caratteristiche e funzioni potenziate di BI (Enhanced BI Features and Functions) (Chapter 15)

 

Simplified Data Delivery System

Sistema di consegna di dati semplificato

L’architettura rappresentata nella figura 1.1 include numerose strutture dati fisiche. Uno è il magazzino di dati operativo. Generalmente, un ODS è un oggetto orientato (subject oriented), integrato e corrente. Costruireste un ODS per sostenere, ad esempio, l’ufficio vendite. Le vendite ODS integrerebbero dati provenienti da numerosi sistemi diversi ma manterrebbe solo, ad esempio, le transazioni di oggi. L’ODS può essere aggiornato anche molte volte al giorno. Contemporaneamente, i processi spingono i dati integrati in altre applicazioni. Questa struttura è progettata specificatamente per integrare dati correnti e dinamici e sarebbe un candidato probabile a sostenere analisi in tempo reale, come fornire ad agenti di servizio clienti le informazioni di vendite correnti di un cliente estraendo informazioni di tendenza di vendite dal magazzino stesso. Un’altra struttura mostrata nella figura 1.1 è uno stato formale per il dw. Non solo questo è il luogo per l’esecuzione della necessaria integrazione, della qualità di dati, e della trasformazione dei dati di magazzino in arrivo, ma è anche un’area di deposito affidabile e provvisoria per dati replicati che potrebbero essere utilizzati in analisi in tempo reale. Se decidete di utilizzare un ODS o una zona di organizzazione (staging area), uno dei migliori strumenti per popolare queste strutture dati utilizzando diverse sorgenti operative è la query distribuita eterogenea di DB2. Questa capacità è consegnata dalla caratteristica opzionale di DB2 chiamata DB2 Relational Connect (solo query) e attraverso DB2 DataJoiner (un prodotto separato che consegna la domanda, l’inserto, l’aggiornamento e la possibilità di cancellazione a RDBMSs distribuito eterogeneo).

Questa tecnologia permette ad architetti di dati di legare dati di produzione con processi analitici. Non solo può la tecnologia adattarsi virtualmente a una qualunque delle richieste di replica che potrebbero presentarsi con l’analisi in tempo reale, ma esso possono anche collegare ad un’ampia varietà delle basi di dati più popolari, compreso DB2, Oracle, Sybase, assistente di SQL, Informix ed altri. DB2 DataJoiner può essere utilizzato per popolare una struttura dati formale come un ODS o anche una tabella permanente rappresentata nel magazzino progettata per ripristino rapido di aggiornamenti istantanei o per vendita. Naturalmente, queste stesse strutture dati possono essere popolate utilizzando un’altra tecnologia importante progettata per replica di dati, IBM DataPropagator Relational. (DataPropagator è un prodotto separato per sistemi centrali. DB2 UNIX, Linux, Windows e OS/2 includono servizi di replica di dati come una caratteristica standard).

Un altro metodo per lo spostamento di dati operativi intorno all’impresa è un integratore di applicazione di impresa altrimenti noto come message broker(mediatore del messaggio).Questa tecnologia unica permette controllo impareggiabile per centrare (targeting) e spostare dati intorno all’impresa. IBM ha il mediatore del messaggio più ampiamente usato, MQSeries, o una variazione del prodotto che comprende i requisiti di e-commerce, IBM WebSphere MQ.

Per più discussione su come sfruttare MQ per sostenere un magazzino e un ambiente BI, visitare sito Web del libro. Per ora, è sufficiente dire che questa tecnologia è un mezzo eccellente per catturare e trasformare (utilizzando MQSeries Integrator) dati operativi centrati (targeted) reclutati per soluzioni della BI. La tecnologia MQ è stata integrata e impacchettata in UDB V8, il che significa che le code dei messaggi possono ora essere gestite come se esse fossero tabelle DB2. Il concetto di saldatura dei messaggi in coda e dell’universo di database relazionale si dirige verso un ambiente potente di consegna di dati.

 

Zero-Latency Latenza nulla

L’obiettivo strategico finale per IBM è analisi di latenza nulla (zero-latency). Come definito da

Gartner, un sistema BI deve essere in grado di dedurre, assimilare e fornire informazioni per analisti su richiesta. La sfida, naturalmente, sta nel come mescolare dati correnti e in tempo reale con informazioni storiche necessarie, quali i dati relativi modello/di tendenza, o la comprensione estratta, come delineamento del cliente.

Tali informazioni includono, ad esempio, l’identificazione di clienti ad alto o basso rischio o quali prodotti i clienti acquisteranno molto probabilmente se essi hanno già del formaggio nei loro carrelli di acquisti.

Ottenere latenza nulla è effettivamente dipendente da due meccanismi fondamentali:

  • Unione completa dei dati che vengono analizzati con le tecniche stabilite e con gli strumenti realizzati dalla BI
  • Un sistema di consegna di dati efficiente per assicurare che l’analisi in tempo reale sia realmente disponibile

Questi prerequisiti per latenza nulla non sono differenti dai due obiettivi stabiliti da IBM e descritti precedentemente. L’accoppiamento stretto dei dati fa parte del programma di integrazione senza cuciture disposto dalla IBM. E creare un sistema di consegna di dati efficiente è completamente dipendente dalla tecnologia disponibile che semplifica il processo di consegna di dati. Di conseguenza, due dei tre obiettivi di IBM sono fondamentali a realizzare il terzo. IBM sta sviluppando coscientemente la sua tecnologia per assicurare che la latenza nulla sia una realtà per gli sforzi del magazzino.

 

Summary / Sintesi

L’organizzazione della BI fornisce una mappa di strada per realizzare il vostro ambiente

iterativamente. Deve essere regolato per riflettere le necessità dei vostri affari, sia attuali che futuri. Senza una visione architettonica larga, le ripetizioni di magazzino sono poco più che delle implementazioni casuali del magazzino centrale che fanno poco per creare un’impresa larga, informativa.

Il primo ostacolo per i responsabili di progetto è come giustificare gli investimenti necessari per lo sviluppo dell’organizzazione della BI. Benché il calcolo del ROI sia rimasto un sostegno principale per realizzazioni di magazzino, esso sta diventando più difficile da predire esattamente. Questo ha condotto ad altri metodi per la determinazione se state ottenendo il valore del vostro denaro. Il valore sull’ investmento2 (VOI), ad esempio, viene procacciato come una soluzione.

È incombente sugli architetti di dati e sui pianificatori di progetto generare e fornire deliberatamente informazioni alle associazioni di utenti e non dare semplicemente un servizio sui dati. C’è una differenza enorme fra i due. L’informazione è qualcosa che fa una differenza nei processi decisionali e nell’efficacia; relativamente, i dati sono blocchetti di costruzione per derivare quelle informazioni.

Anche se critico alla sorgente dati per indirizzare richieste commerciali, l’ambiente BI dovrebbero servire un ruolo più grande nella creazione di contenuto delle informazioni. Dobbiamo prendere le misure supplementari per pulire, integrare, trasformare o diversamente creare un contenuto di informazioni secondo cui gli utenti possano agire, e quindi dobbiamo assicurarci che quelle azioni e quelle decisioni, dove ragionevole, abbiano un riscontro nell’ambiente BI. Se releghiamo il magazzino a servire solo su dati, è assicurato che le associazioni di utenti creeranno il contenuto delle informazioni necessarie per agire. Questo assicura che la loro comunità sarà in grado di prendere decisioni migliori, ma l’impresa soffre della mancanza di conoscenza che essi hanno utilizzato. Dato che gli architetti e i pianificatori di progetto iniziano i progetti specifici nell’ambiente BI, essi rimangono responsabili all’impresa nell’insieme. Un esempio semplice di questa caratteristica a due facce delle iterazioni della BI è trovato nella sorgente dati. Tutti i dati ricevuti per richieste commerciali specifiche devono essere popolati nel primo strato atomico. Questo garantisce lo sviluppo del bene di informazioni aziendale, così come gestire, indirizzare le richieste specifiche di utente definite nella iterazione.

 

W h a t i s a D a t a W a r e h o u s e ?

Data warehouse è il cuore dell’architettura dei sistemi informative dal 1990 e supporta i processi informativi offrendo una solida piattaforma integrata di dati storici presi come base per successive analisi. I data warehouse offrono la facilità di integrazione in un mondo di sistemi applicativi non compatibili tra loro. Data warehouse si è evoluto fino a diventare una moda. Data warehouse organizza e memorizza i dati necessari per processi informativi e analitici sulla base di una lunga prospettiva storica temporale. Tutto ciò comporta un notevole e costante impegno nella costruzione e nel mantenimento del data warehouse.

Cos’è quindi un data warehouse? Un data warehouse è:

  • orientato ai soggetti
  • sistema integrato
  • tempo variante
  • non volatile ( non si cancella )

una collezione di dati usati in supporto a decisioni manageriali nella realizzazione dei processi.

I dati inseriti nel data warehouse derivano nella maggior parte dei casi da ambienti operazionali. Il data warehouse è realizzato da una unità di memorizzazione, fisicamente separata dal resto del sistema, che contiene dati precedentemente trasformati dalle applicazioni che operano sulle informazioni derivanti dall’ambiente operativo.

La definizione letterale di un data warehouse merita un’approfondita spiegazione poichè esistono importanti motivazioni e significati di fondo che descrivono le caratteristiche di una warehouse.

 

SUBJECT ORIENTATION ORIENTAMENTO TEMATICO

La prima caratteristica di un data warehouse è che è orientato ai maggior soggetti di un’impresa. La giuda dei processi attraverso i dati è in contrasto con il più classico metodo che prevede l’orientamento delle applicazioni verso i processi e le funzioni, metodo per la maggior parte condiviso dalla maggior parte dei meno recenti sistemi direzionali.

Il mondo operativo è progettato intorno ad applicazioni e a funzioni quali prestiti, risparmi, bankcard e la fiducia per un’istituzione finanziaria. Il mondo del dw è organizzato intorno a soggetti principali quali il cliente, il venditore, il prodotto e l’attività. L’allineamento intorno ad argomenti influisce sulla progettazione e sulla realizzazione dei dati trovati nel dw. In modo più rilevante, l’argomento principale influisce sulla parte più importante della struttura chiave.

Il mondo del applicazione è influenzato sia dal disegno del data base che dal disegno del processo (Process design). Il mondo del dw è concentrato esclusivamente sulla modellazione dei dati e sul disegno del database. Il disegno del processo (nella sua forma classica) non fa parte dell’ambiente del dw.

Le differenze fra la scelta di applicazione processo/funzione e scelta per subject si rivelano anche come differenze nel contenuto dei dati a livello dettagliato. I dati del dw non includono i dati che non saranno usati per il processo di DSS, mentre applicazioni operazionali orientate ai dati contengono i dati per soddisfare immediatamente i requisiti funzionale/elaborazione che possono o meno avere qualsiasi uso per l’analista di DSS.

Un altro modo importante in cui applicazioni operazionali orientate ai dati differiscono da dati di dw è nei rapporti dei dati. I dati operativi mantengono un rapporto continuo tra due o più tabelle basato su una regola commerciale che è attiva. I dati di dw attraversano uno spettro di tempo e i rapporti trovati nel dw sono molti. Molte regole commerciali ( e corrispondentemente, molti rapporti di dati ) sono rappresentate nel magazzino di dati tra due o più tabelle.

(Per una spiegazione dettagliata di come le relazioni tra i dati sono gestiti nel DW, facciamo riferimento al Tech Topic su quella questione.)

Da nessuna altra prospettiva che quella della differenza fondamentale tra una scelta di applicazione functional/process e una scelta subject, c’è una maggiore differenza tra i sistemi operativi e i dati ed il DW.

 

INTEGRATION INTEGRAZIONE

L’aspetto più importante dell’ambiente di dw è che i dati trovati all’interno del dw sono integrati facilmente. SEMPRE. SENZA ECCEZIONI. L’essenza stessa dell’ambiente del dw è che i dati contenuti nei limiti del magazzino sono integrati.

L’integrazione si rivela in molti modi differenti – nelle convenzioni identificate consistenti, nella misura di variabili consistenti, nelle strutture codificate consistenti, negli attributi fisici dei dati consistenti, e così via.

Nel corso degli anni i progettisti di diverse applicazioni hanno fatto possesso di molte decisioni su come un’applicazione dovrebbe essere sviluppata. Lo stile e le decisioni progettuali individualizzate delle applicazioni dei progettisti si rivelano in cento modi: nelle differenze di codifica, struttura chiave, caratteristiche fisiche, identificazione convenzioni, e così via. La capacità collettiva di molti progettisti di applicazione di generare le applicazioni contradditorie è leggendaria. La figura 3 espone alcune delle differenze più importanti nei modi in cui le applicazioni sono progettate.

 

Encoding: Codificare:

I progettisti di applicazioni hanno scelto la codifica del campo – sesso- in diversi modi. Un progettista rappresenta il sesso come una “m” e “f”. Un altro progettista rappresenta il sesso come un “1” e uno “0”. Un altro progettista rappresenta il sesso come una “x” e “y”. Un altro progettista rappresenta il sesso come “maschio” e “femmina”. Non importa molto come il sesso arriva nel DW. La “M” e la “F” sono probabilmente buone quanto tutta la rappresentazione.

Cosa importa è che da qualunque origine derivi il campo sesso, quel campo arriva nel DW in uno stato integrato consistente. Di conseguenza quando il campo è caricato nel DW da un’applicazione dove esso è stato rappresentato fuori nel formato “M” e “F”, i dati devono essere convertiti al formato del DW.

Measurement of Attributes: Misura degli Attributi:

I progettisti di applicazione hanno scelto di misurare la conduttura in una varietà di modi nel corso

degli anni. Un progettista memorizza i dati della conduttura in centimetri. Un altro progettista di applicazione memorizza i dati della conduttura in termini di pollici. Un altro progettista di applicazione memorizza i dati della conduttura in milione piedi cubi al secondo. E un altro progettista memorizza le informazioni della conduttura in termini di iarde. Qualunque sia la fonte, quando le informazioni della conduttura arrivano nel DW esse devono essere misurate nello stesso modo.

Secondo le indicazioni di figura 3 le questioni di integrazione interessano quasi ogni aspetto del progetto – le caratteristiche fisiche dei dati, il dilemma di avere più di una fonte dei dati, la questione di campioni identificati inconsistenti, formati dei dati inconsistenti, e così via.

Qualunque sia l’argomento di progettazione, il risultato è lo stesso – i dati devono essere memorizzati nel DW in una singolare e globalmente accettabile maniera anche quando i sistemi operativi di fondo memorizzano diversamente i dati.

Quando l’analista DSS guarda il DW, l’obbiettivo dell’analista dovrebbe essere lo sfruttamento dei dati che sono nel magazzino, piuttosto che sul domandarsi circa la credibilità o la consistenza dei dati.

 

TIME VARIANCY

Tutti i dati nel DW sono precisi in qualche momento in tempo. Questa caratteristica base dei dati nel DW è molto diversa dai dati trovati nell’ambiente operativo. I dati dell’ambiente operativo sono precisi come nel momento dell’accesso. In altre parole, nell’ambiente operativo quando si accede ad una unità dati, ci si attendete che rifletterà valori precisi come nel momento di accesso. Perché i dati nel DW siano precisi come in qualche momento nel tempo (cioè, non “proprio adesso”), si dice che i dati trovati nel DW sono “time variancy”.

Il time variancy di dati di DW si riferisce in numerosi modi.

Il modo più semplice è che i dati di un DW rappresentano dati su un lungo orizzonte di tempo – da cinque a dieci anni. L’orizzonte temporale rappresentato per l’ambiente operativo è molto più breve

  • dai valori correnti di oggi da fino a sessanta novanta

Le applicazioni che devono funzionare bene e devono essere disponibili per l’elaborazione delle transazioni devono portare la quantità minima di dati se esse ammettono qualsiasi grado di flessibilità. Quindi le applicazioni operative hanno un orizzonte temporale breve, come un argomento di progettazione di applicazioni audio.

Il secondo modo in cui ‘time variancy’ compare nel DW è nella struttura chiave. Ogni struttura chiave nel DW contiene, implicitamente o esplicitamente, un elemento di tempo, come giorno, settimana, mese, ecc. L’elemento di tempo è quasi sempre in fondo alla chiave concatenata trovata nel DW. In queste occasioni, l’elemento di tempo esisterà implicitamente, come il caso dove un intero file è duplicato alla fine del mese o del quarto.

Il terzo modo in cui time variancy viene visualizzato è che i dati del DW, appena correttamente registrati, non possono essere aggiornati. I dati del DW sono, per tutti gli scopi pratici, una lunga serie di snapshots(istantanea). Naturalmente se la snapshots è stata presa non correttamente, allora le snapshots possono essere modificate. Ma assumendo che le snapshots siano fatte correttamente, esse non vengono modificate appena fatte. In alcuni casi può essere immorale o anche non valido che le snapshots nel DW siano modificate. I dati operativi, essendo precisi come nel momento di accesso, possono essere aggiornati come si presenta la necessità.

 

NON VOLATILE

La quarta importante caratteristica del DW è che è non-volatile.

Gli aggiornamenti, inserimenti, cancellazioni e modifiche, sono fatte regolarmente per gli ambienti operazionali record per record. Ma la manipolazione di base dei dati che occorrono nel DW è molto più semplice. Ci sono solo due generi di operazioni che si verificano nel DW – il caricamento iniziale dei dati e l’accesso ai dati. Non c’è alcun aggiornamento dei dati (nel senso generale di aggiornamento) nel DW come normale operazione di elaborazione.

Ci sono alcune conseguenze molto potenti di questa differenza di base fra elaborazione operativa ed elaborazione del DW. Al livello di progettazione, la necessità di essere cauti sull’aggiornamento anomalo non è fattore nel DW, poiché l’aggiornamento di dati non è effettuato. Questo significa che a livello fisico di progettazione, possono essere prese delle libertà per ottimizzare l’accesso ai dati, in particolare nell’occuparsi degli argomenti di normalizzazione e di denormalizzazione fisica. Un’altra conseguenza della semplicità delle operazioni di DW è nella tecnologia sottostante utilizzata per eseguire l’ambiente di DW. Dovendo supportare aggiornamenti record per record in linea (così come è spesso il caso con elaborazione operativa) si richiede che la tecnologia abbia delle fondamenta molto complesse sotto una apparente semplicità.

La tecnologia che supporta copie di riserva e recupero, transazioni e integrità dei dati e la scoperta e il rimedio di condizione di stallo è abbastanza complessa e non necessaria per elaborazione di DW. Le caratteristiche di un DW, orientamento di progettazione, integrazione di dati all’interno del DW, time variancy e la semplicità di gestione dei dati, tutto induce ad un ambiente che è molto, molto diverso dall’ambiente operativo classico. La sorgente di quasi tutti i dati di DW sono l’ambiente operativo. È una tentazione pensare che ci sia una ridondanza massiccia di dati tra i due ambienti.

Infatti la prima impressione che molte persone hanno è quella di grande ridondanza di dati tra l’ambiente operativo e l’ambiente di DW. Una tale interpretazione è superficiale e dimostra una mancanza nel capire che cosa accade nel DW.

Infatti c’è un minimo di ridondanza di dati tra l’ambiente operativo ed i dati del DW. Consideriamo quanto segue:

  • I dati sono filtrati dato che si passa dall’ambiente operativo all’ambiente DW. Molti dati non passano mai fuori dall’ambiente operativo. Solo che i dati che sono necessari per l’elaborazione DSS trovano la loro direzione nell’ambiente
  • l’orizzonte temporale dei dati è molto diverso da un ambiente all’altro. I dati nell’ambiente operativo sono molto freschi. I dati nel DW sono molto più vecchi. Solo dalla prospettiva dell’orizzonte temporale, c’è la sovrapposizione molto piccola tra l’ambiente operativo e il DW.
  • Il DW contiene dati di riepilogo che non si trovano mai nell’ambiente
  • I dati subiscono una trasformazione fondamentale dal momento che passano al La figura 3 illustra che la maggior parte dei dati sono significativamente modificati a condizione di essere selezionati e spostati nel DW. Detto in altro modo, la maggior parte dei dati viene modificata fisicamente e radicalmente come viene spostata nel DW. Dal punto di vista dell’integrazione non sono gli stessi dati che risiedono nell’ambiente operativo.

Alla luce di questi fattori, la ridondanza di dati tra i due ambienti è un evento raro, che porta a meno dell’ 1% di ridondanza tra i due ambienti.

 

THE STRUCTURE OF THE WAREHOUSE

 

I DWs hanno una struttura distinta. Ci sono vari livelli riassuntivi e di dettaglio che demarcano i DWs.

I vari componenti di un DW sono:

  • Metadata
  • Dati di dettaglio correnti
  • Dati di dettaglio vecchi
  • Dati leggermente riassunti
  • Dati altamente riassunti

 

Di gran lunga la preoccupazione principale è per i dati di dettaglio correnti. È la preoccupazione principale perché:

  • I dati di dettaglio correnti riflettono gli avvenimenti più recenti, che sono sempre di grande interesse e
  • i dati di dettaglio correnti sono voluminosi perché è memorizzato al livello più basso di granularità e
  • i dati di dettaglio correnti sono memorizzati quasi sempre su memoria su disco, il quale è veloce ad accedere, ma caro e complesso da

 

I dati di dettaglio più vecchi sono dati che sono memorizzati su qualche memoria di massa. Ha accesso sporadicamente ed è memorizzato a un livello di dettaglio compatibile con dati dettagliati correnti. Mentre non è obbligatorio memorizzare su un supporto di memoria alternativo, a causa del grande volume di dati uniti con l’accesso sporadico dei dati, il supporto di memoria per dati di dettaglio più vecchi non è di solito memorizzato su disco.

I dati riassunti leggermente sono dati che sono distillati dal basso livello di dettaglio trovato al corrente livello di dettaglio. Questo livello del DW è memorizzato quasi sempre su memoria su disco. I problemi della progettazione che si presentano all’architetto dei dati nella costruzione di questo livello del DW sono:

  • Quale unità di tempo è la summarization fatta sopra
  • Quali contenuti, attributi riassumeranno leggermente il contenuto dei dati

 

Il livello successivo di dati trovati nel DW è quello dei dati altamente riassunti. I dati altamente riassunti sono compatti e facilmente accessibili. I dati altamente riassunti sono talvolta trovati nell’ambiente DW e in altri casi i dati altamente riassunti sono trovati fuori dalle pareti immediate della tecnologia che ospita il DW. (in ogni caso, i dati altamente riassunti fanno parte del DW indipendentemente da dove i dati sono alloggiati fisicamente).

Il componente finale del DW è quello dei metadata. Per molti aspetti i metadata siedono in una dimensione diversa rispetto ad altri dati del DW, perchè i metadata non contengono alcun dato direttamente preso dall’ambiente operativo. I metadata hanno un ruolo speciale e molto importante nel DW. I metadata sono utilizzati come:

  • una directory per aiutare l’analista DSS ad individuare il contenuto del DW,
  • una guida alla mappatura dei dati di come i dati sono stati trasformati dall’ambiente operativo all’ambiente di DW,
  • una guida agli algoritmi usati per la summarization tra i dati di dettaglio correnti e i dati leggermente riassunti, i dati altamente riassunti,

 

I metadata giocano un ruolo molto più importante nell’ambiente DW rispetto a quello che hanno mai avuto nell’ambiente operativo

 

OLD DETAIL STORAGE MEDIUM

Il nastro magnetico può essere utilizzato per conservare quel tipo di dati. Infatti c’è una larga varietà di strumenti di memorizzazione che dovrebbero essere considerati per la conservazione di vecchi dati di dettaglio.

 

A seconda del volume dei dati, la frequenza di accesso, il costo degli strumenti e il tipo di accesso, esso è completamente probabile che altri strumenti avranno bisogno del vecchio livello di dettaglio nel DW.

 

FLOW OF DATA

C’è un flusso normale e prevedibile dei dati all’interno del DW.

I dati entrano nel DW dall’ambiente operativo. (NOTA: ci sono alcune eccezioni molto interessanti a questa regola. Tuttavia, quasi tutti i dati entrano nel DW dall’ambiente operativo). Dato che i dati entrano nel DW dall’ambiente operativo, è trasformato come è stato descritto prima. A condizione di entrare nel DW, i dati entrano nel corrente livello di dettaglio, come mostrato. Risiede là ed è utilizzato finché uno dei tre eventi si verifica:

  • è purificato,
  • è riassunto, e/o
  • è

 

Il processo obsoleto dentro un DW sposta i dati di dettaglio correnti a dati di dettaglio vecchi, in base all’età di dati. Il processo summarization utilizza il dettaglio di dati per calcolare i dati leggermente riassunti e i livelli altamente riassunti dei dati. Ci sono alcune eccezioni al flusso mostrato (sarà discusso più tardi). Tuttavia, di solito, per la vasta maggioranza dei dati trovati all’interno di un DW, il flusso di dati è come rappresentato.

 

USING THE DATAWAREHOUSE

Non sorprendentemente i vari livelli di dati all’interno del DW non ricevono differenti livelli di utilizzo. Di regola, più è alto livello di summarization, più i dati sono utilizzati.

Molti usi si verificano nei dati altamente riassunti, mentre i vecchi dati di dettaglio sono utilizzati quasi mai. C’è una buona ragione nel spostare l’organizzazione al paradigma in utilizzo di risorsa. Più ha riassunto i dati, più rapido e più efficiente è per arrivare ai dati. Se un negozio trova che fa molti processi a livello di dettaglio dei DW, allora una grande quantità corrispondente di risorse di macchina viene consumato. È nei migliori interessi di ognuno processare come in un alto livello di summarization appena possibile.

Per molti negozi, l’analista DSS in un pre-ambiente DW ha utilizzato dati a livello di dettaglio. Per molti aspetti l’arrivo a dati dettagliati somiglia a una coperta di sicurezza, anche quando sono disponibili altri livelli di summarization. Una delle attività dell’architetto di dati è disabituare l’utente DSS da un utilizzo costante di dati al livello più basso di dettaglio. Ci sono due motivazioni a disposizione dell’architetto di dati:

  • installando un sistema chargeback, dove l’utente finale paga le risorse consumate e
  • che indicano che il tempo di risposta molto buono può essere ottenuto quando il comportamento con i dati è ad un alto livello di summarization, mentre il tempo di risposta povero deriva dal comportamento dei dati ad un basso livello di

 

OTHER CONSIDERATIONS

Ci sono alcune altre considerazioni di costruzione e gestione del DW.

La prima considerazione è quella sugli indici. I dati ai livelli più alti di summarization possono essere liberamente indicizzati, mentre i dati ai livelli inferiori di dettaglio sono così voluminosi che può essere indicizzato frugalmente. Dallo stesso token, i dati agli alti livelli di dettaglio possono essere relativamente ristrutturati facilmente, mentre il volume di dati ai livelli inferiori è così grande che i dati non possono essere ristrutturati facilmente. Di conseguenza, il modello dei dati e il lavoro formale fatto dalla progettazione pongono la fondazione per il DW applicata quasi esclusivamente al livello corrente di dettaglio. In altre parole, le attività di modellazione dei dati non si applicano ai livelli di summarization, in quasi ogni caso. Un’altra considerazione strutturale è quella della suddivisione dei dati di DW.

 

La partizione può essere fatta a due livelli – al livello di dbms ed al livello di applicazione. Nella divisione al livello dbms, il dbms è informato delle divisioni e le controlla di conseguenza. Nel caso di divisione a livello applicazione, soltanto il programmatore è informato delle divisioni e la responsabilità della loro amministrazione è lasciata a lui

Sotto al livello dbms, molto lavoro è fatto automaticamente. C’è molta inflessibilità connessa con l’amministrazione automatica delle divisioni. Nel caso delle divisione a livello applicazione dei dati del data warehouse, molto lavoro grava sul programmatore, ma il risultato finale è la flessibilità nell’amministrazione dei dati nel data warehouse

 

ALTRE ANOMALIE

Mentre i componenti del data warehouse funzionano come descritto per quasi tutti i dati, ci sono alcune eccezioni utili che devono essere discusse. Un’eccezione è quella dei dati sommari pubblici (public summary data). Questi sono dati sommari che sono stati calcolati fuori dal data warehouse ma sono usati dalla società. I dati sommari pubblici sono memorizzati e gestiti nel data warehouse, anche se come detto precedentemente sono calcolati fuori. I ragionieri lavorano per produrre trimestralmente tali dati come il reddito, le spese trimestrali, profitto trimestrale, e così via. Il lavoro fatto dai ragionieri è esterno al data warehouse. Tuttavia, i dati sono usati “internamente” alla società – dal marketing, dalle vendite, ecc.

Un’altra anomalia, di cui non si parlerà, è quella dei dati esterni.

Un altro eccezionale tipo di dati che si possono trovare in un data warehouse è quello dei permanent detail data. Questi provocano la necessità di memorizzare in modo permanente i dati ad un livello dettagliato per i motivi etici o legali. Se una società sta esponendo i relativi operai a sostanze pericolose c’ è un’esigenza di dati dettagliati e permanenti . Se una società produce un prodotto che coinvolge la sicurezza pubblica, quali parti di un aeroplano, c’è l’esigenza di dati dettagliati permanenti, così come se una società stipula contratti pericolosi.

La società non può permettersi di trascurare i particolari perché durante i prossimi anni, nel caso di una causa, di un richiamo, di un difetto di costruzione disputato, ecc. l’esposizione dell’azienda potrebbe essere grande. Di conseguenza c’è un tipo unico di dati conosciuti come permanent detail data.

 

SOMMARIO

Un data warehouse è un oggetto orientato, integrato, variante di tempo, una raccolta di dati non volatile a sostegno dei bisogni di decisione dell’amministrazione. Ciascuna delle funzioni salienti di un data warehouse ha le relative implicazioni. In più ci sono quattro livelli di dati del data warehouse:

  • Old detail
  • Current detail
  • Dati leggermente ricapitolati
  • Dati altamente ricapitolati

 

I metadati sono inoltre una parte importante del data warehouse.

 

ASTRATTO

Il concetto dell’immagazzinamento di dati recentemente ha ricevuto molte attenzioni ed è diventato una tendenza degli anni 90. Ciò è dovuto alla capacità di un data warehouse di sormontare le limitazioni dei sistemi di supporto dell’amministrazione quali i sistemi di ausilio decisionale (DSS) ed i sistemi d’informazione esecutivi (EIS).

Anche se il concetto del data warehouse sembra promettente, implementare i data warehouse può essere problematico a causa dei processi d’immagazzinamento su larga scala. Malgrado la complessità dei progetti d’immagazzinamento di dati, molti fornitori e consulenti che immagazzinano dati sostengono che l’immagazzinamento di dati attuali non comporta problemi.

Tuttavia, all’inizio di questo progetto di ricerca, quasi nessuna ricerca indipendente, rigorosa e sistematica era stata effettuata. Di conseguenza è difficile dire, che cosa realmente accade nell’industria quando si costruiscono data warehouse.

Questo studio ha esplorato la pratica d’immagazzinamento di dati contemporanei che punta a sviluppare una comprensione più ricca della pratica australiana. L’analisi della letteratura ha fornito il contesto ed il fondamento per lo studio empirico.

Ci sono un certo numero di risultati da questa ricerca. In primo luogo, questo studio ha rivelato le attività che si sono presentate durante lo sviluppo del data warehouse. In molte zone, i dati riuniti hanno confermato la pratica segnalata nella letteratura. In secondo luogo, le edizioni ed i problemi che possono avere effetto sullo sviluppo del data warehouse sono stati identificati da questo studio. Infine, benefici tratti dalle organizzazioni australiane connesse con l’uso dei data warehouse sono stati rivelati.

 

Capitolo 1

Contesto di ricerca

Il concetto del data warehousing ha ricevuto una diffusa esposizione e si è trasformato in una tendenza emergente negli anni 90 (McFadden 1996, TDWI 1996, Shah e Milstein 1997, Shanks ed altri. 1997, Eckerson 1998, Adelman e Oates 2000). Ciò può essere visto dal numero crescente di articoli sul data warehousing nelle pubblicazioni commerciali (Little e Gibson 1999). Molti articoli (vedere, per esempio, Fisher 1995, Hackathorn 1995, Morris 1995a, Bramblett e re 1996, Graham ed altri. 1996, Sakaguchi e Frolick 1996, Alvarez 1997, Brousell 1997, Clarke 1997, McCarthy 1997, O’ Donnell 1997, Edwards 1998, TDWI 1999) hanno segnalato notevoli benefici tratti dalle organizzazioni che implementano i data warehouse. Hanno sostenuto la loro teoria con la prova aneddotale delle implementazioni riuscite, l’alto ritorno sulle figure di investimento (ROI) e, anche, fornendo la guida di riferimento o le metodologie per lo sviluppo dei data warehouse (Shanks ed altri. 1997, Seddon e Benjamin 1998, poco e Gibson 1999). In un caso estremo, Graham ed altri. (1996) hanno segnalato un ritorno medio su un investimento triennale del 401%.

 

Gran parte della letteratura attuale, tuttavia, ha trascurato le complessità coinvolte nell’intraprendere tali progetti. I progetti di data warehouse sono normalmente complesso e su grande scala e quindi implicano un’alta probabilità di non riuscire se non sono controllati con attenzione (Shah e Milstein 1997, Eckerson 1997, Foley 1997b, Zimmer 1997, Bort 1998, Gibbs e Clymer 1998, Rao 1998). Essi richiedono i vasti importi sia di risorse umane che finanziarie e, tempo e sforzo per costruirli (Hill 1998, Crofts 1998). Il tempo tipico ed i mezzi finanziari necessari sono rispettivamente di circa due anni e di due o tre milioni di dollari (Braly 1995, Foley 1997b, Bort 1998, Humphries ed altri. 1999). Questi tempi e mezzi finanziari sono richiesti per controllare e consolidare molti aspetti differenti del data warehousing (Cafasso 1995, Hill 1998). A lato delle considerazioni hardware e software, altre funzioni, che variano dall’estrazione di dati ai processi di caricamento di dati, dalla capacità di memoria per gestire gli aggiornamenti e dai meta dati per la formazione degli utenti, devono essere considerati.

 

Ai tempi dell’inizio di questo progetto di ricerca, c’era pochissima ricerca accademica condotta nel campo del data warehousing, specialmente in Australia. Ciò era evidente dalla penuria di articoli pubblicati sul data warehousing da giornali o altre scritture accademiche del tempo. Molte delle scritture accademiche disponibili descrivevano l’esperienza statunitense. La mancanza di ricerca accademica nella zona sl data warehousing ha causato la richiesta di ricerca rigorosa e studi empirici (McFadden 1996, Shanks ed altri. 1997, Little e Gibson 1999). In particolare, gli studi di ricerca sul processo di implementazione dei data warehouse necessitano di essere effettuati per estendere la conoscenza generale riguardo l’implementazione dei data warehouse e serviranno come base per un futuro studio di ricerca (Shanks ed altri. 1997, Little e Gibson 1999).

 

Lo scopo di questo studio, quindi, è studiare che cosa realmente accade quando le organizzazioni effettuano ed usano i data warehouse in Australia. Specificamente, questo studio coinvolgerà un’analisi di un intero processo di sviluppo di un data warehouse, iniziando dall’iniziazione e progettazione attraverso il design e l’inplementazione e il successivo uso all’interno delle organizzazioni australiane. In più, lo studio inoltre contribuirà al la pratica attuale identificando le aree in cui la pratica può essere ulteriormente migliorata e le inefficienze e i rischi possono essere minimizzati o evitati. Inoltre, servirà da base per altri studi sui data warehouse in Australia e colmerà il gap attualmente esistente in letteratura.

 

Domande di ricerca

L’obiettivo di questa ricerca è studiare le attività coinvolte nell’implementazione dei data warehouse e il loro uso da parte delle organizzazioni australiane. In particolare, sono studiati gli elementi riguardo alla pianificazione di progetto, allo sviluppo, al funzionamento, all’uso ed ai rischi in questione. Quindi la domanda di questa ricerca è:

 

“Com’è la pratica attuale dei data warehouse in australia?”

 

Per rispondere efficacemente a questo problema, sono richieste un certo numero di domande sussidarie di ricerca. In particolare, tre sotto-domande sono state identificate dalla letteratura, che è presentata nel capitolo 2, per guidare questo progetto di ricerca:

Come sono implementati i data warehouse dalle organizzazioni australiane? Quali sono i problemi incontrati?

Quali sono i benefici sperimentati?

Nel rispondere a queste domande, è stato usato un disegno esplorativo di ricerca che impiega un’indagine. Come studio esplorativo, le risposte alle suddette domande non sono complete (Shanks ed altri. 1993, Denscombe 1998). In questo caso, è richiesta una triangolazione per migliorare le risposte a queste domande. Tuttavia, l’indagine fornirà un solido fondamento per futuri lavori che esaminano queste domande. Una dettagliata discussione sulla giustificazione del metodo di ricerca e sul design è presentata nel capitolo 3.

 

Struttura del progetto di ricerca

Questo progetto di ricerca è diviso in due parti: lo studio contestuale del concetto di datawarehousing e la ricerca empirica (si veda figura 1.1), ciascuno dei quali è discusso qui di seguito.

 

Parte I: Studio contestuale

La prima parte della ricerca è consistita nella riesaminazione della letteratura attuale sui vari tipi di data warehousing compresi i sistemi di ausilio decisionale (DSS), i sistemi d’informazione esecutivi (EIS), i case study di data warehouse ed i concetti di data warehouse. Inoltre, i risultati dei foum sui data warehouse e dei gruppi di incontro per esperti e professionisti condotti dal gruppo di ricerca Monash DSS, hanno contribuito a questa fase dello studio che è stato inteso per ottenere le informazioni sulla pratica dei data warehouse e per identificare i rischi coinvolti nella loro adozione. Durante questo periodo di studio contestuale, la comprensione dell’area del problema è stata stabilita per fornire la conoscenza di base per le successive investigazioni empiriche. Tuttavia, questo era un processo continuo durante lo svolgimento dello studio di ricerca.

 

Parte II: Ricerca empirica

Il concetto relativamente nuovo del data warehousing, specialmente in Australia, ha creato la necessità di eseguire un’indagine per ottenere una vasta immagine dell’esperienza di utilizzo. Questa parte è stata effettuata una volta che il dominio del problema fosse stato stabilito attraverso vasta revisione della letteratura. Il concetto di data-warehousing formato durante la fase di studio contestuale è stato usato come input per il questionario iniziale di questo studio. Dopo questo, il questionario è stato esaminato. Sei esperti di data warehouse hanno partecipato al test. Lo scopo del test del questionario iniziale era controllare la completezza e la precisione delle domande. Sulla base dei risultati del test, il questionario è stato modificato e la versione modificata è stata spedita ai partecipanti all’indagine. I questionari restituiti allora sono stati analizzati per i dati nelle tabelle, negli schemi ed in altri formati. I risultati di analisi di dati formano una fotografia istantanea della pratica del data warehousing in Australia.

 

PANORAMICA DEL DATA WAREHOUSING

Il concetto di data warehousing si è evoluto con i miglioramenti della tecnologia dei computer.

Esso è finalizzato a superare i problemi incontrati dai gruppi di supporto delle applicazioni come Decision Support System (DSS) e Executive Information System (EIS).

Nel passato il maggiore ostacolo di queste applicazioni è stata l’incapacità di queste applicazioni di fornire una base di dati necessaria per l’analisi.

Questo è principalmente causato dalla natura del lavoro della dirigenza. Gli interessi della dirigenza di una società variano costantemente a seconda dell’area trattata. Perciò i dati fondamentali per queste applicazioni devono essere in grado di cambiare rapidamente a seconda della parte da trattare.

Questo significa che i dati devono essere disponibili nella forma adeguata per le analisi richieste. Infatti i gruppi di supporto delle applicazioni trovarono molte difficoltà in passato a raccogliere ed integrare dati da complesse e diverse sorgenti.

Il resto di questa sezione presenta una panoramica del concetto di data warehousing e tratta di come il data warehouse può superare i problemi dei gruppi di supporto delle applicazioni.

Il termine “Data Warehouse” fu diffuso da William Inmon nel 1990. La sua spesso citata definizione vede il Data Warehouse come collezione di dati orientati al soggetto,integrati,non volatili,e variabili col tempo,in supporto alle decisioni dirigenziali.

Usando questa definizione Inmon mette in rilievo che i dati residenti in un data warehouse devono possedere le seguenti 4 caratteristiche:

  • Orientati al soggetto
  • Integrati
  • Non volatili
  • Variabili col tempo

 

Per Orientati al soggetto Inmon intende che i dati nel data warehouse nelle più grandi aree organizzative che sono state definite nel modello dati. Per esempio tutti i dati riguardanti i clienti sono contenuti nell’area soggetto CLIENTI. Allo stesso modo tutti i dati relativi ai prodotti sono contenuti nell’area soggetto PRODOTTI.

 

Per Integrati Inmon intende che i dati provenienti da differenti piattaforme,sistemi e locazioni sono combinate e immagazzinate in unico posto. Di conseguenza dati similari devono essere trasformati in formati consistenti in modo da essere aggiunti e comparati facilmente.

Per esempio il genere maschile e femminile sono rappresentati dalle lettere M e F in un sistema,e con 1 e 0 in un altro. Per integrarli nella maniera giusta,uno o tutti e due i formati devono essere trasformati in modo che i due formati siano uguali. In questo caso potremmo cambiare M in 1 e F in 0 o viceversa. Orientati al soggetto e Integrati indicano che il data warehouse è progettato per fornire una funzionale e trasversale visione dei dati da parte dell’azienda.

 

Per Non volatile intende che i dati nel data warehouse rimangono consistenti e l’aggiornamento dei dati non occorre. Invece,ogni cambiamento nei dati originali è aggiunto al database del data warehouse. Questo significa che lo storico dei dati è contenuto nel data warehouse.

 

Per Variabili col tempo Inmon indica che i dati nel data warehouse contengono sempre gli indicatori di tempo e i dati normalmente attraversano un certo orizzonte temporale. Per esempio un

data warehouse può contenere 5 anni di valori storici dei clienti dal 1993 al 1997. La disponibilità dello storico e di una serie temporale dei dati permette di analizzare dei trend.

 

Un data warehouse può raccogliere i suoi dati da dei sistemi OLTP;da origini dati esterne all’organizzazione e/o da altri speciali progetti di sistema di cattura dati.

I dati estratti possono passare attraverso un processo di pulizia,in questo caso i dati vengono trasformati ed integrati prima di essere immagazzinati nel database del data warehouse. Poi, i dati residenti dentro il database del data warehouse sono resi disponibili agli accessi degli utenti finali e agli strumenti di recupero. Usando questi strumenti l’utente finale può accedere alla vista integrata dell’organizzazione dei dati.

I dati residenti dentro il database del data warehouse sono immagazzinati sia dettagliatamente che in formati riassuntivi.

Il livello di riassunto può dipendere dalla natura dei dati. I dati dettagliati possono consistere in dati attuali e dati storici

I dati reali non sono inclusi nel data warehouse fino a quando i dati nel data warehouse vengono riaggiornati.

Oltre ad immagazzinare i dati stessi, un data warehouse può anche immagazzinare un differente tipo di dato chiamato METADATI che descrivono i dati residenti nel suo database.

Ci sono due tipi di metadati: metadati di sviluppo e metadati di analisi.

I metadati di sviluppo sono utilizzati per gestire ed automatizzare i processi di estrazione,pulizia,mappatura e caricamento dei dati nel data warehouse.

L’informazione contenuta nei metadati di sviluppo può contenere dettagli di sistemi operativi,dettagli degli elementi da estrarre,il modello dati del data warehouse e le regole aziendali per la conversione dei dati.

 

Il secondo tipo di metadati,conosciuti come metadati di analisi rende in grado l’utente finale di esplorare il contenuto del data warehouse per trovare i dati disponibili e il loro significato in termini chiari e non tecnici.

Perciò i metadati di analisi funzionano come un ponte tra il data warehouse e le applicazioni degli utenti finali. Questo metadata può contenere il modello aziendale, le descrizioni dei dati corrispondenti al modello aziendale,interrogazioni (queries) pre-definite e report, informazioni per gli accessi degli utenti e l’indice.

 

I metadati di analisi e sviluppo devono essere combinati in un unico integrato metadata di contenimento per funzionare correttamente.

 

Sfortunatamente molti degli strumenti esistenti hanno il proprio metadata e attualmente non ci sono degli standard esistenti che permettono agli strumenti di data warehousing di integrare questi metadati. Per rimediare a questa situazione molti commercianti dei principali strumenti di data warehousing hanno formato il Meta Data Council divenuto poi Meta Data Coalition.

Lo scopo di questa coalizione è di costruire un set di metadati standard che permette a differenti strumenti di data warehousing di convertire i metadati

I loro sforzi hanno avuto come esito quello della nascita del Meta Data Interchange Specification (MDIS) che permetterà lo scambio di informazioni tra gli archivi Microsoft e i relativi MDIS files.

 

L’esistenza di dati sia riassunti/indicizzati che dettagliati dà all’utente la possibilità di effettuare un DRILL DROWN (trapanamento) dai dati indicizzati a quelli dettagliati e viceversa.

L’esistenza di dati storici dettagliati permette la realizzazione di analisi di trend nel tempo. In aggiunta i metadati di analisi possono essere usati come directory del database del data warehouse per aiutare gli utenti finali a localizzare i dati necessari.

In confronto ai sistemi OLTP,con la loro capacità di supportare analisi di dati e reporting,il data warehouse è visto come un sistema più appropriato per processi di informazione come effettuare e rispondere a queries e produrre report. La prossima sezione evidenzierà le differenze dei due sistemi dettagliatamente.

 

DATA WAREHOUSE CONTRO SISTEMI OLTP

Molti dei sistemi di informazione all’interno delle organizzazioni hanno lo scopo di supportare le operazioni giornaliere. Questi sistemi conosciuti come SISTEMI OLTP, catturano le transazioni giornaliere continuamente aggiornate.

I dati all’interno di questi sistemi sono spesso modificati,aggiunti o cancellati. Per esempio un indirizzo di un cliente cambia appena egli si sposta da un luogo all’altro. In questo caso il nuovo indirizzo sarà registrato modificando il campo indirizzo del database.

L’obiettivo principale di questi sistemi è quello di ridurre i costi delle transazioni e allo stesso tempo di ridurre in tempi di elaborazione. Esempi di Sistemi OLTP includono azioni critiche come scritture contabili di ordini,libri paga,fatture,fabbricazione,servizi ai clienti.

 

A differenza dei sistemi OLTP,che sono stati creati per processi basati su transazioni ed eventi, i data warehouse sono stati creati per fornire supporto ai processi basati su analisi di dati e su processi di decisione.

Questo è normalmente ottenuto integrando i dati da vari sistemi OLTP ed esterni in un unico “contenitore” di dati,come discusso nella sezione precedente.

 

Monash Data Warehousing Process Model

Il process model per data warehouse Monashè stato sviluppato dai ricercatori del Monash DSS Research Group, è basato sulla letterature dei data warehouse, sull’esperienza nel supporto allo sviluppo di campi di sistemi, su discussioni con vendors di applicazioni per l’uso su data warehouse, su di un gruppo di esperti nell’uso di data warehouse.

Le fasi sono: Inizio, Pianificazione, Sviluppo, Operazioni e Spiegazioni. Il diagramma spiega la natura iterativa o evoluzionistica dello sviluppo di un data warehouse process usando frecce a doppio senso collocate tra le diverse fasi. In questo contesto “iterativo” e “evoluzionistico” significano che, ad ogni passo del processo, le attività di implementazione si possono sempre propagare all’indietro verso la fase precedente. Questo è dovuto alla natura del progetto di un data warehouse nel quale subentrano in ogni momento richieste addizionali da parte dell’utente finale. Per sempio, durante la fase di sviluppo di un processo di data warehouse, viene richiesta dall’utente finale una nuova dimensione o area di soggetto, che non faceva perte del piano originale, questa deve essere aggiunta al sistema. Questo causa un cambiamento nel progetto. Il risultato è che il team di progettazione deve cambiare i requisiti dei documenti creati finora durante la fase di progettazione. In molti casi, il corrente stato del progetto deve tornare indietro fino alla fase di progettazione dove deve essere aggiunta la nuova richiesta e documentarla. L’utente finale deve poter vedere la documentazione specifica revisionata e i cambiamenti che sono stati fatti nella fase di sviluppo. Alla fine di questo ciclo di sviluppo il progetto deve ottenere ottimi feedback da entrambi i team, quello di sviluppo e quello degli utilizzatori. I feedback sono poi riutilizzati per migliorare un progetto futuro.

 

Pianificazione della capacità

I dw tendono a essere molto grandi in dimensione e a crescere molto velocemente (Best 1995, Rudin 1997a) a seguito della quantità di dati storici che essi conservano dalla loro durata. La crescita può essere causata anche da dati aggiuntivi richiesti dagli utenti per aumentare il valore dei dati che essi hanno già. Di conseguenza, i requisiti di immagazzinamento per dati possono essere significativamente potenziati (Eckerson 1997). Così, è essenziale assicurare, conducendo una pianificazione della capacità, che il sistema per essere costruito può crescere con la crescita delle necessità(Best 1995, LaPlante 1996, Lang 1997, Eckerson 1997, Rudin 1997a, Foley 1997a).

Nella pianificazione per scalabilità del dw, uno deve conoscere la crescita attesa della dimensione del magazzino, i tipi di domande probabili da effettuare, e il numero di utenti finali sostenuti(Best 1995, Rudin 1997b, Foley 1997a). Costruire applicazioni scalabili richiede una combinazione di tecnologie server scalabili e tecniche di progettazione di applicazioni scalabili (Best 1995, Rudin 1997b. Entrambe sono necessarie nella creazione di un’applicazione estremamente scalabile. Le tecnologie server scalabili possono renderlo facile e vantaggioso per aggiungere deposito, memoria e CPU senza degradare le prestazioni (Lang 1997, Telephony 1997).

 

Ci sono due tecnologie server scalabili principali: elaborazione multipla simmetrica (SMP) ed elaborazione in maniera massiccia parallela (MPP) ) (IDC 1997, Humphries et al. 1999). Un server SMP normalmente ha più processori che condividono una memoria, sistema bus e altre risorse (IDC 1997, Humphries et al. 1999). Processori supplementari possono essere aggiunti per aumentare la sua potenza computazionale. Un altro metodo per aumentare la potenza computazionale del server SMP, è combinare numerose macchine SMP. Questa tecnica è nota come clustering (Humphries et al. 1999). Un server MPP, d’altra parte, ha più processori ognuno con una propria memoria, sistema bus e altre risorse (IDC 1997, Humphries et al. 1999). Ogni processore è chiamato nodo. Un aumento della potenza computazionale può essere ottenuto aggiungendo nodi supplementari ai server MPP (Humphries et al. 1999).

 

Una debolezza dei server SMP è che troppe operazioni input-output (I/O) possono congestionare il sistema bus (IDC 1997). Questo problema non si verifica all’interno dei server MPP poiché ogni processore ha il proprio sistema di bus. Tuttavia, le interconnessioni fra ogni nodo generalmente sono molto più lente del sistema bus dei SMP. Inoltre, i server MPP possono aggiungere un livello supplementare di complessità agli sviluppatori di applicazioni (IDC 1997). Così, la scelta tra server SMP e MPP può essere influenzata da molti fattori, tra cui la complessità delle domande, il rapporto prezzo/prestazioni, la capacità di trattamento richiesta, le applicazioni dw prevenute e l’aumento in dimensione dei database di dw e nel numero di utenti finali.

 

Numerose tecniche di progettazione di applicazione scalabile possono essere impiegate nella pianificazione della capacità. Uno utilizza vari periodi di notifica come giorni, settimane, mesi e anni. Avendo vari periodi di notifica, il database può essere diviso in pezzi raggruppati maneggevolmente (Inmon et al. 1997). Un’altra tecnica è utilizzare tabelle riepilogative che sono costruite riassumendo dati da dati dettagliati. Così, i dati riassunti sono più compatti del dettagliato, il quale richiede meno spazio di memoria. Quindi i dati di dettaglio possono essere archiviati in un’unità di memorizzazione meno cara, la quale salva ancora più deposito. Benché utilizzare tabelle riepilogative possa salvare spazio di memoria, essi richiedono molto sforzo per mantenerli aggiornati e in linea con le necessità commerciali. Tuttavia, questa tecnica è ampiamente utilizzata e spesso utilizzata insieme alla tecnica precedente(Best 1995, Inmon 1996a, Chauduri and Dayal

1997).

 

Defining Data Warehouse Technical Architectures Definizione delle tecniche di architetture di dw

Iniziali adottanti di data warehousing concepivano principalmente un’implementazione centralizzata del dw in cui tutti i dati, compreso i dati esterni, erano integrati in uno singolo,

deposito fisico (Inmon 1996a, Bresnahan 1996, Peacock 1998).

 

Il vantaggio principale di questo approccio è che gli utenti finali sono in grado di accedere alla vista su scala imprenditoriale (enterprise-wide view) dei dati organizzativi (Ovum 1998). Un altro vantaggio è che offre standardizzazione di dati attraverso l’organizzazione, che significa che c’è solo una versione o definizione per ogni terminologia utilizzata nel dw deposito (reposity) metadata (Flanagan and Safdie 1997, Ovum 1998). Lo svantaggio di questo approccio, d’altra parte, è che è caro e difficile da costruire (Flanagan and Safdie 1997, Ovum 1998, Inmon et al. 1998). Non molto dopo che l’architettura d’immagazzinamento dati centralizzata divenne popolare, si evolse il concetto di estrazione dei sottoinsiemi più piccoli dei dati per sostenere i bisogni di applicazioni specifiche (Varney 1996, IDC 1997, Berson e Smith 1997, peacock 1998). Questi piccoli sistemi sono derivati dal più grande data warehouse centralizzato. Sono denominati data warehouse dipartimentali dipendenti o data marts dipendenti.

L’architettura del data mart dipendente è conosciuta come architettura tre-tiered in cui la prima fila consiste del data warehouse centralizzato, la seconda consiste dei depositi di dati dipartimentali ed il terzo consiste dell’accesso ai dati e dai tools di analisi (Demarest 1994, Inmon ed altri. 1997).

I data marts sono costruiti normalmente dopo che il data warehouse centralizzato è stato costruito per rispondere alle esigenze delle specifiche unità(White 1995, Varney 1996).

I data marts memorizzano i dati molto rilevanti relativi a particolari unità (Inmon ed altri. 1997, Inmon ed altri. 1998, IA 1998).

Il vantaggio di questo metodo è che non ci sarà nessun dato non integrato e che i dati saranno meno ridondanti all’interno dei data marts poiché tutti i dati provengono da un deposito di dati integrato. Un altro vantaggio è che ci saranno pochi collegamenti fra ogni data mart e le relative fonti di dati perché ogni data mart ha soltanto una fonte di dati. In più con questa architettura sul posto, gli utenti finali possono ancora accedere alla panoramica dei dati organizzativi aziendali. Questo metodo è conosciuto come il metodo top-down, in cui i data marts sono costruiti dopo il data warehouse (peacock 1998, Goff 1998).

Aumentando la necessità di mostrare presto i risultati, alcune organizzazioni hanno cominciato costruire data marts indipendenti (Flanagan e Safdie 1997, White 2000). In questo caso, i data marts prendono i loro dati direttamente dalle basi di dati OLTP e non dal deposito centralizzato e integrato, eliminando così l’esigenza di avere il deposito centrale sul posto.

Ogni data mart richiede almeno un collegamento alle relative fonti di dati. Uno svantaggio di avere collegamenti multipli per ogni data mart è che, confrontato alle due architetture precedenti, la sovrabbondanza di dati aumenta significativamente.

Ogni data mart deve memorizzare tutti i dati richiesti localmente per non avere effetto sui sistemi di OLTP. Questo provoca che i dati sono immagazzinati in differenti data marts (Inmon ed altri. 1997).

Un altro svantaggio di questa architettura è che conduce alla creazione di complesse interconnessioni fra i data marts e le loro fonti di dati che sono difficili da effettuare e controllare (Inmon ed altri. 1997).

Un altro svantaggio è che gli utenti finali non possono potere accedere alla panoramica delle informazioni aziendali poiché i dati dei differenti data marts non sono integrati (Ovum 1998).

Ancora un altro svantaggio è che potrebbe esistere più di una definizione per ogni terminologia usata nei data marts che genera inconsistenze di dati nell’organizzazione (Ovum 1998).

Malgrado gli svantaggi discussi sopra, i data marts indipendenti attraggono ancora l’interesse di molte organizzazioni (IDC 1997). Un fattore che li rende attraenti è che sono più rapidi da sviluppare e richiedono meno tempo e risorse (Bresnahan 1996, Berson e Smith 1997, Ovum 1998). Di conseguenza, servono principalmente come progetti-prova che possono essere usati per identificare rapidamente i benefici e/o le imperfezioni nel progetto (Parsaye 1995, Braly 1995, Newing 1996). In questo caso, la parte da implementare nel progetto pilota deve essere piccola ma importante per l’organizzazione (Newing 1996, Mansell-Lewis 1996).

Esaminando il prototipo, gli utenti finali e l’amministrazione possono decidere se continuare o fermare il progetto (Flanagan e Safdie 1997).

Se la decisione è di continuare, i data marts per altri settori dovrebbero essere costruiti una alla volta. Ci sono due opzioni per gli utenti finali basate sui loro bisogni nella costruzione dei data matrs indipendenti: integrated/federated ed unintegrated (Ovum 1998)

Nel primo metodo, ogni nuovo data mart dovrebbe essere costruito basandosi sui data marts attuali e sul modello dati utilizzato dall’impresa (Varney 1996, Berson e Smith 1997, Peacock 1998). La necessità di usare il modello dati dell’impresa fa si che bisogna accertarsi che esista soltanto una definizione per ogni terminologia usata attraverso i data marts, questo anche per accertarsi che data marts differenti possano essere uniti per dare una panoramica delle informazioni aziendali (Bresnahan 1996). Questo metodo è denominato il bottom-up ed è il migliore quando c’è un vincolo sui mezzi finanziari e sul tempo (Flanagan e Safdie 1997, Ovum 1998, peacock 1998, Goff 1998). Nel secondo metodo, i data marts costruiti possono soddisfare soltanto i bisogni di un’unità specifica.

Una variante del federated data mart è il data warehouse distribuito in cui il database middleware hub server è utilizzato per unire molti data marts in un singolo deposito di dati distribuito (White 1995). In questo caso, i dati aziendali sono distribuiti in parecchi data marts.

Le richieste dell’utente finale sono trasmesse al database middleware hub server , che estrae tutti i dati richiesti dai data marts e ritorna i risultati alle applicazioni dell’utente finale. Questo metodo fornisce le informazioni aziendali agli utenti finali. Tuttavia, ancora non vengono eliminati i problemi dei data marts indipendenti. C’è un’altra architettura che può essere usata che è chiamata il data warehouse virtuale (White 1995). Tuttavia, questa architettura, che è descritta nella figura 2.9, non è un’architettura d’immagazzinamento di dati reali poiché non sposta il caricamento dai sistemi OLTP al data warehouse (Demarest 1994).

Infatti, le richieste di dati dagli utenti finali sono passate sopra ai sistemi di OLTP che restituiscono i risultati dopo l’elaborazione delle richieste di utente. Anche se questa architettura permette agli utenti finali di generare i rapporti e formulare le richieste, non può fornire i dati storici e la panoramica delle informazioni aziendali poiché i dati dai differenti sistemi di OLTP non sono integrati. Quindi, questa architettura non può soddisfare l’analisi di dati complessa quale ad esempio previsioni.

 

Selezione dell’applicativi di accesso e di recupero dei dati

Lo scopo della costruzione di un data warehouse è di trasmettere informazioni agli utenti finali (Inmon ed altri 1997, Poe 1996, McFadden 1996, Shanks ed altri 1997, Hammergren 1998); uno o più applicativi di accesso e recupero dati devono essere forniti. Ad oggi, esiste un’ampia varietà di questi applicativi tra cui l’utente può scegliere (Hammergren 1998, Humphries ed altri 1999). Gli applicativi selezionati determinano il successo dello sforzo d’immagazzinamento di dati in un’organizzazione perché gli applicativi sono la parte più visibile del data warehouse all’utente finale (Inmon ed altri 1997, Poe 1996). Per aver successo un data warehouse, deve potere sostenere le attività di analisi dei dati dell’utente finale (Poe 1996, Seddon e Benjamin 1998, Eckerson 1999). Quindi il “livello” di ciò che l’utente finale vuole deve essere identificato (Poe 1996, Mattison 1996, Inmon ed altri 1997, Humphries ed altri 1999).

In generale, gli utenti finali possono essere raggruppati in tre categorie: executive users, business analysts e power user (Poe 1996, Humphries ed altri 1999). Gli executive users necessitano di un facile accesso ad insiemi predefiniti di rapporti (Humphries ed altri 1999). Questi rapporti possono essere raggiunti facilmente con la navigazione dei menu (Poe 1996). In più, i rapporti dovrebbero presentare le informazioni usando la rappresentazione grafica come le tabelle ed i modelli per trasportare rapidamente le informazioni (Humphries ed altri 1999). I business analyst, che non possono avere le possibilità tecniche per sviluppare i rapporti da zero da soli, necessitano di potere modificare i rapporti attuali per soddisfare i loro bisogni specifici (Poe 1996, Humphries ed altri 1999). I power user, d’altra parte, sono il tipo di utilizzatori finali che hanno la capacità di generare e scrivere le richieste ed i rapporti da zero (Poe 1996, Humphries ed altri 1999). Sono quelli che sviluppano i rapporti per gli altri tipi di utenti (Poe 1996, Humphries ed altri 1999).

 

Una volta determinati i requisiti dell’utente finale deve essere fatta una selezione degli applicativi di accesso e recupero dati tra tutti quelli disponibili (Poe 1996, Inmon ed altri 1997).

L’accesso ai dati e gli strumenti di retrieval possono essere classificati in 4 tipi: OLAP tool, EIS/DSS tool, tool di query e reporting e tool di data mining.

I tool OLAP permettono agli utenti di creare query ad hoc così come quelle fatte sul database del data warehouse. Inoltre questi prodotti consentono agli utenti di fare drill-down dai dati generali a quelli dettagliati.

I tool EIS/DSS forniscono reporting esecutivi come analisi “what if” e accessi ai reports organizzati a menu. I report devono essere predefiniti e uniti ai menu per una navigazione più facile.

I tool di query e reporting permettono agli utenti di produrre report predefiniti e specifici.

I tool di data mining sono usati per identificare relazioni che potrebbero fare nuova luce sulle operazioni dimenticate nei dati del datawarehouse.

 

Accanto all’ottimizzazione dei requisiti di ogni tipologia di utenti, i tool selezionati devono essere intuitivi, efficienti e di facile utilizzo. Inoltre devono essere compatibili con le altre parti dell’architettura e in grado di lavorare con i sistemi esistenti. È inoltre suggerito di scegliere data access e tool di retrieval con prezzi e performance ragionevoli. Altri criteri da considerare includono l’impegno del venditore del tool nel sostenere il loro prodotto e gli sviluppi che lo stesso avrà nelle future release. Per garantire l’impegno degli utenti nell’utilizzo del datawarehouse, il team di sviluppo coinvolge gli utenti nel processo della selezione del tool. In questo caso dovrebbe essere effettuata una valutazione pratica dell’utente.

 

Per migliorare il valore del datawarehouse il team di sviluppo può fornire anche un accesso web ai loro datawarehouse. Un datawarehouse web-enabled permette agli utenti di accedere ai dati da posti remoti o mentre si viaggia. Inoltre le informazioni possono essere fornite a costi più bassi mediante una diminuzione dei costi di training.

 

2.4.3 Data Warehouse Operation Phase

Questa fase consiste di tre attività: definizione di strategie di data refresh, controllo delle attività del datawarehouse e gestione della sicurezza del datawarehouse.

 

Definizione di strategie di data refresh

Dopo il caricamento iniziale, i dati nel database del datawarehouse devono essere refreshati periodicamente per riprodurre i cambiamenti effettuati sui dati originali. Bisogna quindi decidere quando fare il refresh, ogni quanto tempo deve essere schedulato il refresh e come eseguire il refresh dei dati. Viene suggerito di fare il refresh dei dati quando il sistema può essere messo off- line. La frequenza del refresh è determinata dal team di sviluppo basandosi sui requisiti degli utenti. Ci sono due approcci per fare il refresh del datawarehouse: il refresh completo e il caricamento continuo dei cambiamenti.

Il primo approccio, il refresh completo, richiede il ricaricamento di tutti i dati da zero. Ciò vuol dire che tutti i dati richiesti devono essere estratti, puliti, trasformati ed integrati in ogni refresh. Questo approccio dovrebbe essere, per quanto possibile, evitato perché richiede molto tempo e risorse.

Un approccio alternativo è quello di caricare continuamente i cambiamenti. Questo aggiunge i dati che sono stati cambiati dall’ultimo ciclo di refresh del datawarehouse. L’identificazione di records nuovi o modificati riduce significativamente la quantità di dati che devono essere propagati al datawarehouse in ogni aggiornamento poiché solo questi dati saranno aggiunti al database del datawarehouse.

Ci sono almeno 5 approcci che possono essere usati per prelevare i dati nuovi o modificati. Per ottenere un’efficiente strategia di refresh dei dati può essere utile un misto di questi approcci che preleva tutti i cambiamenti nel sistema.

 

Il primo approccio, che usa i timestamp, suppone che viene assegnato a tutti i dati modificati e aggiornati un timestamp in modo da potere identificare facilmente tutti i dati modificati e nuovi. Questo approccio, però, non è stato molto usato nella maggior parte degli odierni sistemi operativi.

Il secondo approccio è quello di usare un delta file generato da un’applicazione che contiene soltanto i cambiamenti fatti ai dati. L’uso di questo file inoltre amplifica il ciclo di aggiornamento. Tuttavia, anche questo metodo, non è stato usato in molte applicazioni.

Il terzo approccio è quello di fare uno scan su un file di log, che fondamentalmente contiene informazioni simili al delta file. L’unica differenza è che un log file è creato per il processo di recovery e può essere difficile da capire.

Il quarto approccio è quello di modificare il codice dell’applicazione. Tuttavia la maggior parte del codice delle applicazioni è vecchio e fragile; perciò questa tecnica dovrebbe essere evitata.

L’ultimo approccio è quello di confrontare i dati sorgenti con il file principale dei dati.

 

Controllo delle attività del datawarehouse

Una volta che il datawarehouse è stato rilasciato agli utenti, è necessario monitorarlo nel tempo. In questo caso, l’amministratore del datawarehouse può impiegare uno o più tool di gestione e controllo per monitorare l’uso del datawarehouse. In particolare possono essere raccolte informazioni sulle persone e sul tempo in cui accedono al datawarehouse. Dai dati raccolti può essere creato un profilo del lavoro effettuato che può essere usato come input nell’implementazione del chargeback dell’utente. Il Chargeback permette agli utenti di essere informati sul costo di elaborazione del datawarehouse.

 

Inoltre, il controllo del datawarehouse può anche essere usato per identificare i tipi di query, la loro grandezza, il numero di query al giorno, i tempi di reazione alla query, i settori raggiunti e la quantità di dati processati. Un altro scopo di fare il controllo del datawarehouse è identificare i dati che non sono in uso. Questi dati possono essere rimossi dal datawarehouse per migliorare il tempo di risposta di esecuzione delle query e controllare la crescita dei dati che risiedono all’interno della base di dati del datawarehouse.

 

Gestione della sicurezza del datawarehouse

Un datawarehouse contiene dati integrati, critici, sensibili che possono essere raggiunti facilmente. Per questo motivo dovrebbe essere protetto dagli utenti non autorizzati. Un modo per implementare la sicurezza è quello di usare la funzione del DBMS per assegnare i diversi privilegi ai diversi tipi di utenti. In questo modo, deve essere mantenuto per ogni tipo di utenti un profilo di accesso. Un altro modo per assicurare il datawarehouse è cifrarlo come è scritto nella base di dati del datawarehouse. L’accesso ai dati e i tool di retrieval devono decriptare i dati prima di presentare i risultati agli utenti.

 

2.4.4 Data Warehouse Deployment Phase

È l’ultima fase nel ciclo di implementazione del datawarehouse. Le attività da effettuare in questa fase includono l’addestramento degli utenti per utilizzare il datawarehouse e la realizzazione di reviews del datawarehouse.

 

Addestramento degli utenti

L’addestramento degli utenti dovrebbe essere fatto prima dell’accesso ai dati del datawarehouse e dell’uso dei tool di retrieval. Generalmente, le sessioni dovrebbero iniziare con l’introduzione al concetto dell’immagazzinamento di dati, al contenuto del datawarehouse, ai meta dati ed alle features di base dei tool. Poi, gli utenti più avanzati potrebbero inoltre studiare le tabelle fisiche e le features degli utenti dei data access e dei tool di retrieval.

Ci sono molti approcci per fare l’addestramento degli utenti. Uno di questi prevede una selezione di molti utenti o analisti scelti da un insieme di utenti, basandosi sulla loro leadership e abilità di

comunicazione. Questi vengono addestrati a titolo personale su tutto quello che devono sapere per prendere confidenza con il sistema. Finito l’addestramento, questi ritornano al loro lavoro e iniziano a insegnare agli altri utenti come utilizzare il sistema. Sulla base di quanto hanno imparato, gli altri utenti possono iniziare ad esplorare il datawarehouse.

Un altro approccio è quello di addestrare molti utenti nello stesso tempo, come se si stesse facendo un corso in aula. Questo metodo è adatto quando ci sono molti utenti che devono essere addestrati allo stesso tempo. Un altro metodo ancora è quello di addestrare individualmente ogni utente, ad uno ad uno. Questo metodo è adatto quando ci sono pochi utenti.

 

Lo scopo dell’addestramento degli utenti è quello di familiarizzare con l’accesso ai dati e i tool di retrieval così come i contenuti del datawarehouse. Tuttavia, alcuni utenti possono essere sopraffatti dalla quantità di informazioni fornita durante la sessione di addestramento. Quindi devono essere fatte un certo numero di sessioni di aggiornamento l’assistenza continua e per rispondere alle domande specifiche. In alcuni casi viene formato un gruppo di utenti per fornire questo tipo di supporto.

 

Gathering feedback

Una volta che il datawarehouse è stato rolled out, gli utenti possono usare i dati che risiedono nel datawarehouse per vari scopi. Principalmente, gli analisti o gli utenti utilizzano i dati nel datawarehouse per:

  1. Identificare le tendenze dell’azienda
  2. Analizzare i profili d’acquisto dei clienti
  3. Suddividere i clienti ed i
  4. Fornire i servizi migliori ai clienti – customizzare i servizi
  5. Formulare strategie di marketing
  6. Effettuare preventivi competitivi per cost analyses e help control
  7. Supportare decision-making strategiche
  8. Identificare occasioni per emergere
  9. Migliorare la qualità degli attuali business process
  10. Controllare il profitto

 

Seguendo la direzione di sviluppo del datawarehouse, si potrebbero condurre una serie di revisioni al sistema per ottenere dei feddback sia da parte del team di sviluppo che da parte della comunità degli utenti finali.

I risultati ottenuti possono essere presi in considerazione per il prossimo ciclo di sviluppo.

Dal momento che il datawarehouse ha un approccio incrementale, è fondamentale imparare dai successi e dagli errori dei precedenti sviluppi.

 

2.5 Riassunto

In questo capitolo sono stati discussi gli approcci presenti in letteratura. Nella sezione 1 è stato discusso il concetto di datawarehouse e il suo ruolo nella scienza delle decisioni. Nella sezione 2 sono state descritte le principali differenze tra datawarehouse e sistemi OLTP. Nella sezione 3 si è discusso il modello di datawarehouse secondo Monash che è stato utilizzato nella sezione 4 per descrivere le attività coinvolte nel processo di sviluppo di un datawarehouse, queste tesi non sono state basate su una ricerca rigorosa. Quello che succede nella realtà può essere molto diverso da quello che riporta la letteratura, tuttavia questi risultati possono essere utilizzati per creare un bagaglio di base che sottolinei il concetto di datawarehouse per questa ricerca.

Capitolo 3

Metodi di ricerca e progettazione

Questo capitolo si occupa dei metodi di ricerca e progettazione per questo studio. La prima parte mostra una vista generica dei metodi di ricerca disponibili per il reperimento dell’informazione, inoltre vengono discussi i criteri per selezionare il miglior metodo per uno studio particolare. Nella sezione 2 vengono poi discussi due metodi selezionati con i criteri appena esposti; di questi ne verrà scelto ed adottato uno con le motivazioni esposte nella sezione 3 dove sono anche esposte le motivazioni per l’esclusione dell’altro criterio. La sezione 4 presenta il progetto della ricerca e la sezione 5 le conclusioni.

 

3.1 Ricerca nei sistemi informativi

La ricerca nei sistemi informativi non si limita semplicemente all’ambito tecnologico ma deve essere anche estesa per includere fini riguardanti il comportamento e l’organizzazione.

Questo lo dobbiamo alle tesi di varie discipline che vanno dalle scienze sociali a quelle naturali; questo porta alla necessità di un certo spettro di metodi di ricerca che coinvolgono metodi quantitativi e qualitativi da utilizzare per i sistemi informativi.

Tutti i metodi di ricerca disponibili sono importanti, infatti svariati ricercatori come Jenkins (1985), Nunamaker et al. (1991), e Galliers (1992) sostengono che non esista un metodo specifico universale per condurre ricerche nei vari campi dei sistemi informativi; infatti un metodo può essere adatto per una particolare ricerca ma non per altre. Questo ci porta la necessità di selezionare un metodo che sia adatto alla nostro particolare progetto di ricerca: per questa scelta Benbasat et al. (1987) affermano che si debbano considerare la natura e il fine della ricerca.

 

3.1.1 Natura della ricerca

I vari metodi basati sulla natura della ricerca possono essere classificati in tre tradizioni ampiamente conosciuti nella scienza dell’informazione: positivista, interpretativa e ricerca critica.

 

3.1.1.1 Ricerca positivista

La ricerca positivista è anche conosciuta come studio scientifico o empirico. Essa cerca di: “spiegare e prevedere cosa succederà nel mondo sociale guardando alle regolarità e alle relazioni causa- effetto tra gli elementi che lo costituiscono” (Shanks et al 1993).

La ricerca positivista è inoltre caratterizzata da ripetibilità , semplificazioni e confutazioni. Inoltre la ricerca positivista ammette l’esistenza di relazioni a priori tra i fenomeni studiati.

Secondo Galliers(1992) la tassonomia è un metodo di ricerca incluso nel paradigma positivista, che però non è limitato a questa, infatti sussistono esperimenti di laboratorio, esperimenti sul campo, casi di studio, dimostrazioni di teoremi, previsioni e simulazioni. Utilizzando questi metodi i ricercatori ammettono che i fenomeni studiati possano essere osservati oggettivamente e rigorosamente.

 

3.1.1.2 Ricerca interpretativa

La ricerca interpretativa, che è spesso chiamata fenomenologia o anti-positivismo viene descritta da Neuman (1994) come “l’analisi sistematica del significato sociale dell’azione attraverso la diretta e dettagliata osservazione delle persone in situazioni naturali, al fine di arrivare alla comprensione e all’interpretazione di come le persone creano e mantengono il loro mondo sociale”. Gli studi interpretative rifiutano l’assunzione che i fenomeni osservati possano essere osservati oggettivamente. Infatti essi sono basati su interpretazioni soggettive. Inoltre i ricercatori interpretativi non impongono significati a priori ai fenomeni che studiano.

Questo metodo comprende studi soggettivo/argomentativi, azioni di ricerca, studi descrittivo/interpretativi, ricerche future e giochi di ruolo. In aggiunta a questi indagini e casi di studio possono essere inclusi in questo approccio in quanto essi concernono gli studi degli individui o delle organizzazioni all’interno di complesse situazioni del mondo reale.

3.1.1.3 Ricerca critica

La ricerca critica è l’approccio meno conosciuto nelle scienze sociali ma di recente ha ricevuto l’attenzione dei ricercatori nell’ambito dei sistemi informativi. L’assunzione filosofica che la realtà sociale è storicamente prodotta e riprodotta dalle persone, così come i sistemi sociali con le loro azioni ed interazioni. La loro abilità, comunque, è mediata da un certo numero di considerazione sociali, culturali e politiche.

Cosi come la ricerca interpretativa, quella critica sostiene che la ricerca positivista non c’entra con il contesto sociale ed ignora la sua influenza sulle azioni umane.

La ricerca critica, d’altra parte, critica la ricerca interpretativa per essere troppo soggettiva e perché non si propone di aiutare le persone a migliorare le proprie vite. La più grossa differenza tra la ricerca critica e gli altri due approcci è la sua dimensione valutativa. Mentre l’oggettività delle tradizioni positivista ed interpretativa, è per predire o spiegare lo status quo o la realtà sociale, la ricerca critica punta a valutare criticamente e trasformare la realtà sociale sotto studio.

I ricercatori critici solitamente si oppongono allo status quo al fine di rimuovere le differenze sociali e migliorare le condizioni sociali. La ricerca critica ha un impegno ad una vista processuale dei fenomeni di interesse e, pertanto, è normalmente longitudinale. Esempi di metodi di ricerca sono gli studi storici a lungo termine e gli studi etnografici. La ricerca critica, tuttavia, non è stata ampiamente usata nella ricerca dei sistemi d’informazione

 

3.1.2 Scopo della ricerca

Assieme alla natura della ricerca, il suo scopo può essere utilizzato per guidare il ricercatore nella selezione di un particolare metodo di ricerca. Lo scopo di un progetto di ricerca è strettamente correlato alla posizione della ricerca rispetto al ciclo di ricerca che consiste di tre fasi: costruzione della teoria, test della teoria e affinamento della teoria. Così, basandosi sul momento rispetto al ciclo di ricerca, un progetto di ricerca può avere un fine di spiegazione, descrittivo, di esplorazione oppure predittivo.

 

3.1.2.1 Ricerca esplorativa

La ricerca esplorativa è finalizzata nell’investigare un argomento totalmente nuovo e formulare domande e ipotesi per la ricerca futura. Questo tipo di ricerca è utilizzato nella costruzione della teoria per ottenere dei riferimenti iniziali in una nuova area. Normalmente si utilizzano metodi di ricerca qualitativa, come i casi di studio o gli studi fenomenonologici.

Tuttavia è anche possibile impiegare tecniche quantitative come indagini esplorative od esperimenti.

 

3.1.3.3 Ricerca descrittiva

La ricerca descrittiva è finalizzata ad analizzare e descrivere in gran dettaglio una particolare situazione o pratica organizzativa. Questa è appropriata per costruire teorie e può essere anche usata per confermare o contestare ipotesi. La ricerca descrittiva solitamente comprende l’uso di misure e campioni. I metodi di ricerca più adatti comprendono indagini e analisi di antecedenti.

 

3.1.2.3 Ricerca esplicativa

La ricerca esplicativa cerca di spiegare perché succedono le cose. Essa è costruita su fatti che sono già stati studiati e cerca di trovare i perché di tali fatti.

Quindi la ricerca esplicativa è normalmente costruita sulla ricerca esplorativa o descrittiva ed è accessoria al fine di testare ed affinare le teorie. La ricerca esplicativa normalmente impiega casi di studio o metodi di ricerca basati sulle indagini.

 

3.1.2.4 Ricerca preventiva

La ricerca preventiva punta a predire gli eventi e i comportamenti sotto osservazione che si stanno studiando (Marshall and Rossman 1995). La previsione è il test scientifico standard della verità. Questo tipo di ricerca generalmente impiega indagini o analisi dei dati storici. (Yin 1989)

 

La suddetta discussione dimostra che c’è un certo numero di possibili metodi di ricerca che possono essere usati in uno studio particolare. Tuttavia, ci deve essere un metodo specifico più adatto degli altri per un tipo particolare di progetto di ricerca. (Galliers 1987, Yin 1989, De Vaus 1991). Ogni ricercatore, quindi, ha bisogno di valutare con attenzione i punti di forza e le debolezze di vari metodi, per arrivare ad adottare il metodo di ricerca più adatto e compatibile col progetto di ricerca. (Jenkins 1985, Pervan e Klass 1992, Bonomia 1985, Yin 1989, Himilton and Ives 1992).

 

3.2. Possibili metodi di ricerca

L’obiettivo di questo progetto era studiare l’esperienza nelle organizzazioni australiane con i dati immagazzinati con uno sviluppo di data warehouse. Dato che, attualmente, c’è una mancanza di ricerca nell’area di data warehousing in Australia, questo progetto di ricerca è ancora nella fase teorica del ciclo di ricerca ed ha uno scopo esplorativo. Esplorando l’esperienza nelle organizzazioni australiane che adottano il data warehousing richiede l’interpretazione della società reale. Di conseguenza, il l’assunzione filosofica alla base del progetto di ricerca segue l’interpretazione tradizionale.

 

Dopo un rigoroso esame dei metodi disponibili, sono stati identificati due possibili metodi di ricerca: indagini (surveys) e casi di studio (case studies), che possono essere usati per una ricerca esplorativa (Shanks et al. 1993). Galliers (1992) sostiene che l’idoneità di questi due metodi per questo particolare studio nella sua tassonomia rivisitata dicendo che sono adatti per la costruzione teorica. Le seguenti due sottosezioni discutono ogni metodo in dettaglio.

 

3.2.1 Metodo di ricerca di indagine

Il metodo di ricerca d’indagine proviene dall’antico metodo del censimento. Un censimento consta nel collezionare informazioni da un’intera popolazione. Questo metodo è costoso e poco pratico, in particolare se la popolazione è elevata. Quindi, rispetto al censimento, una indagine normalmente è concentrata sul collezionare informazioni per un piccolo numero, o campione, dei rappresentanti della popolazione (Fowler 1988, Neuman 1994). Un campione riflette la popolazione da cui è disegnato, con differenti livelli di accuratezza, secondo la struttura del campione, la dimensione e il metodo di selezione utilizzato (Fowler 1988, Babbie 1982, Neuman 1994).

 

Il metodo d’indagine è definito come “snapshots of practices, situations or views at a particular point in time, undertaken using questionnaires or interviews, from which inferences may be made” (Galliers 1992:153) [fotografia istentanea delle pratiche, situazioni o viste in particolare punto temporale, intrapreso usando questionari o interviste, da cui possono essere fatte inferenze]. Le indagini si occupano della raccolta di informazioni su alcuni aspetti dello studio, da un certo numero di partecipanti, facendo delle domande (Fowler 1988). Anche questi questionari e interviste, che includono le interviste faccia a faccia al telefono e quelle strutturate, sono le tecniche di collezione di dati più comuni impiegate nelle indagini (Blalock 1970, Nachmias and Nachmias 1976, Fowler 1988), possono essere utilizzate osservazioni ed analisi (Gable 1994). Di tutti questi metodi di collezione dei dati, l’uso del questionario è la tecnica più popolare, poiché assicura che i dati collezionati siano strutturati e formattati, e quindi facilita la classificazione delle informazioni (Hwang 1987, de Vaus 1991).

 

Nell’analizzare i dati, una strategia d’indagine impiega spesso le tecniche quantitative, come l’analisi statistica, ma possono essere impiegate anche tecniche qualitative (Galliers 1992, Pervan

 

and Klass 1992, Gable 1994). Normalmente, i dati raccolti sono usati per analizzare le distribuzioni e i modelli delle associazioni (Fowler 1988).

 

Anche se le indagini sono generalmente appropriate per ricerche che si occupano della domanda ‘che cosa?’ (what) o da essa derivanti, quali ‘quanto’(how much) e ‘quant’è’ (how many), esse possono essere poste tramite la domanda ‘perché’ (Sonquist and Dunkelberg 1977, Yin 1989). Secondo Sonquist e Dunkelberg (1977), l’indagine di ricerca punta ad ipotesi difficili, programme di valutazione, descrivendo la popolazione e sviluppando modelli del comportamento umano. Inoltre, le indagini possono essere usate per studiare un’opinione certa della popolazione, condizioni, opinioni, caratteristiche, aspettative e anche comportamenti passati o presenti(Neuman 1994).

 

Le indagini permettono al ricercatore di scoprire i rapporti tra la popolazione ed i risultato sono normalmente più generici rispetto ad altri metodi (Sonquist and Dunkelberg 1977, Gable 1994). Le indagini permettono ai ricercatori di riguardare una zona geografica più larga e di raggiungere tantissimi dichiaranti (Blalock 1970, Sonquist and Dunkelberg 1977, Hwang and Lin 1987, Gable 1994, Neuman 1994). Infine, le indagini possono fornire le informazioni che non sono disponibili altrove o nella forma richiesta per le analisi (Fowler 1988).

 

Ci sono, tuttavia, alcune limitazioni nell’eseguire un’indagine. Uno svantaggio è che il ricercatore non può ottenere molte informazioni a riguardo dell’oggetto studiato. Questo è dovuto al fatto che le indagini sono eseguite soltanto in un momento particolare e, quindi, c’è un numero limitato di variabili e di persone che il ricercatore può studiare (Yin 1989, de Vaus 1991, Gable 1994, Denscombe 1998). Un altro svantaggio è quello che esegue un’indagine può essere molto costoso in termini di tempo e risorse, particolarmente se coinvolge le interviste faccia a faccia (Fowler 1988).

 

3.2.2. Metodo Di Ricerca Di Inchiesta

Il metodo di ricerca di inchiesta coinvolge lo studio approfondito su una particolare situazione all’interno del relativo contesto reale in un periodo di tempo definito, senza alcun intervento da parte del ricercatore (Shanks & C. 1993, Eisenhardt 1989, Jenkins 1985). Principalmente questo metodo è usato per descrivere i rapporti fra le variabili che si stanno studiando in una situazione particolare (Galliers 1992). Le inchieste possono coinvolgere singoli casi o multipli, a seconda del fenomeno analizzato (Franz e Robey 1987, Eisenhardt 1989, Yin 1989).

 

Il metodo di ricerca di inchiesta è definito come “un’inchiesta empirica che studia un fenomeno contemporaneo all’interno del relativo contesto reale, usando le fonti multiple raccolte da una o più entità quali la gente, i gruppi, o le organizzazioni” (Yin 1989). Non c’è netta separazione fra il fenomeno ed il relativo contesto e non c’è controllo o manipolazione sperimentale delle variabili (Yin 1989, Benbasat ed altri 1987).

 

C’è una varietà di tecniche per la collezione dei dati che possono essere impiegate nel metodo di inchiesta, che includono le osservazioni dirette, revisioni di record di archivi, questionari, revisione della documentazione ed interviste strutturate. Avendo una gamma varia di tecniche della raccolta di dati, le inchieste permettono ai ricercatori di occuparsi sia dei dati qualitativi che quantitativi allo stesso tempo (Bonoma 1985, Eisenhardt 1989, Yin 1989, Gable 1994). Com’è il caso con il metodo di indagine, un ricercatore di inchiesta funge da osservatore o ricercatore e non come partecipante attivo all’organizzazione allo studio.

 

Benbasat ed altri (1987) asseriscono che il metodo di inchiesta è particolarmente adatto per la costruzione della teoria di ricerca, che comincia con una domanda di ricerca e continua con la formazione di una teoria durante il processo della raccolta di dati. Essendo adatto anche per la fase

 

della costruzione di teoria, Franz e Robey (1987) suggeriscono che il metodo di inchiesta può anche essere utilizzato per la complessa fase di teoria. In questo caso, basandosi sulle prove raccolte, una data teoria o ipotesi viene verificata o confutata. In più, l’inchiesta è anche adatta per ricerca che si occupa delle domande ‘come’ o ‘perché’ (Yin 1989).

 

Rispetto ad altri metodi, le inchieste permettono al ricercatore di catturare le informazioni essenziali più nel particolare (Galliers 1992, Shanks ed altri 1993). Inoltre, le inchieste permettono al ricercatore di capire la natura e la complessità dei processi studiati (Benbasat ed altri 1987).

 

Ci sono quattro svantaggi principali connessi con il metodo di inchiesta. Il primo è la mancanza di deduzioni controllate. La soggettività del ricercatore può alterare i risultati e le conclusioni dello studio (Yin 1989). Il secondo svantaggio è la mancanza di osservazione controllata. A differenza dei metodi sperimentali, il ricercatore di inchiesta non può controllare i fenomeni studiati poiché sono esaminati nel loro contesto naturale (Gable 1994). Il terzo svantaggio è la mancanza di replicabilità. Ciò è dovuto al fatto che il ricercatore ha poca probabilità di osservare gli stessi eventi, e non può verificare i risultati di un particolare studio (Lee 1989). Infine, come conseguenza della non replicabilità, è difficile generalizzare i risultati ottenuti da una o più inchieste (Galliers 1992, Shanks ed altri 1993). Tutti questi problemi, tuttavia, non sono insormontabili e possono, infatti, essere minimizzati dal ricercatore applicando azioni appropriate (Lee 1989).

 

3.3. Giustificare la metodologia di ricerca adottata

Dai due metodi di ricerca possibili per questo studio, il metodo di indagine è considerato come il più adatto. Quello di inchiesta è stato scartato in seguito ad un attenta considerazione dei relativi meriti e debolezze. La convenienza o l’inappropriatezza di ogni metodo per questo studio è discussa in seguito.

 

3.3.1. Inappropriatezza del metodo di ricerca di inchiesta

Il metodo di inchiesta richiede lo studio approfondito circa una situazione particolare all’interno di una o più organizzazioni per un periodo di tempo (Eisenhardt 1989). In questo caso, il periodo può eccedere la struttura di tempo data per questo studio. Un altro motivo per non adottare il metodo di inchiesta è che i risultati possono soffrire da mancanza di rigore (Yin 1989). La soggettività del ricercatore può influenzare i risultati e le conclusioni. Un altro motivo è che questo metodo è più adatto a ricerche su domande del tipo ‘come’ o ‘perché’ (Yin 1989), mentre la domanda di ricerca per questo studio è del tipo ‘che cosa’. Infine, ma non meno importante, è difficile generalizzare i risultati da appena una o poche inchieste (Galliers 1992, Shanks ed altri 1993). Sulla base di questa spiegazione razionale, il metodo di ricerca di inchiesta non è stato scelto poiché inadatto per questo studio.

 

3.3.2. Convenienza del metodo di ricerca di indagine

Quando questa ricerca è stata condotta, la pratica di data-warehousing non era stata ampiamente adottata dalle organizzazioni australiane. Quindi, non c’erano molte informazioni per quanto riguarda la loro implementazione all’interno delle organizzazioni australiane. Le informazioni disponibili provenivano dalle organizzazioni che avevano implementato o utilizzato un data warehouse. In questo caso, il metodo di ricerca di indagine è il più adatto poiché permette di ottenere le informazioni che non sono disponibili altrove o nella forma richiesta per analisi (Fowler 1988). In più, il metodo di ricerca di indagine permette al ricercatore di ottenere una buona visione delle pratiche, delle situazioni, o delle viste in un determinato momento (Galliers 1992, Denscombe 1998). Una veduta d’insieme era stata richiesta per aumentare la conoscenza circa l’esperienza australiana di data warehousing. Ancora, Sonquist e Dunkelberg (1977) dichiarano che i risultati di ricerca di indagine sono più generali di altri metodi.

 

3.4. Disegno Di Ricerca Di Indagine

L’indagine circa la pratica di data warehousing è stata eseguita nel 1999. La popolazione obiettivo era formata da organizzazioni australiane interessate agli studi di data warehousing, poiché erano probabilmente già informati circa i dati che immagazzinano e, pertanto, potrebbe fornire le informazioni utili per questo studio. La popolazione obiettivo è stata identificata con un’indagine iniziale di tutti i membri australiani del ‘The Data Warehousing Institute’ (Tdwi-aap). Questa sezione discute il disegno della fase di ricerca empirica di questo studio.

 

3.4.1. Tecnica di raccolta dei dati

Dalle tre tecniche usate comunemente nella ricerca di indagine (cioè questionario via posta, intervista del telefono ed intervista personale) (Nachmias 1976, Fowler 1988, de Vaus 1991), per questo studio è stato adottato il questionario via posta. Il primo motivo per l’adozione di quest’ultimo è che può raggiungere una popolazione sparsa geograficamente (Blalock 1970, Nachmias e Nachmias 1976, Hwang e Lin 1987, de Vaus 1991, Gable 1994). Secondariamente, il questionario via posta è adatto a partecipanti altamente istruiti (Fowler 1988). Il questionario via posta per questo studio è stato indirizzato ai project sponsors del data warehousing, direttori e/o responsabili di progetto. In terzo luogo, i questionari via posta sono adatti quando si ha a disposizione una lista sicura di indirizzi (Salant e Dilman 1994). TDWI, in questo caso, una associazione fidata di data warehousing ha fornito la lista di indirizzi dei relativi membri australiani. Un altro vantaggio del questionario via posta rispetto al questionario via telefono o alle interviste personali è che permette ai dichiaranti di rispondere con maggior esattezza, particolarmente quando i dichiaranti devono consultare le annotazioni o discutere le domande con altra gente (Fowler 1988).

 

Uno svantaggio potenziale può essere il tempo richiesto per condurre i questionari via posta. Normalmente, un questionario via posta è condotto in questa sequenza: spedire le lettere, aspettare le risposte e mandare la conferma(Fowler 1988, Bainbridge 1989). Quindi, il tempo totale può essere più lungo del tempo richiesto per le interviste personali o per le interviste al telefono. Tuttavia, il tempo totale può essere conosciuto in anticipo (Fowler 1988, Denscombe 1998). Il tempo speso per condurre le interviste personali non può essere conosciuto in anticipo poiché varia da un’intervista all’altra (Fowler 1988). Le interviste telefoniche possono essere più rapide dei questionari via posta e delle interviste personali ma possono avere un alto tasso di mancanza di risposta dovuto all’indisponibilità di alcune persone (Fowler 1988). In più, le interviste telefoniche sono limitate generalmente a liste di domande relativamente corte (Bainbridge 1989).

 

Un’altra debolezza di un questionario via posta è l’alto tasso di mancanza di risposta (Fowler 1988, Bainbridge 1989, Neuman 1994). Tuttavia, sono state prese delle contromisure, associando questo studio con un’istituzione fidata nel campo del data warehousing (cioè TDWI) (Bainbridge 1989, Neuman 1994), la quale trasmette due lettere di sollecito ai chi non ha risposto (Fowler 1988, Neuman 1994) ed include inoltre una lettera aggiuntiva che spiega lo scopo dello studio (Neuman 1994).

 

3.4.2. Unità di analisi

Lo scopo di questo studio è ottenere le informazioni circa l’implementazione del data warehousing e l’utilizzo dello stesso all’interno delle organizzazioni australiane. La popolazione obiettivo è costituita da tutte le organizzazioni australiane che hanno implementato, o stanno implementando, i data warehouse. In seguito vengono intestate le singole organizzazioni. Il questionario via posta è stato spedito alle organizzazioni interessate all’adozione di data warehouse. Questo metodo garantisce che le informazioni raccolte provengano dalle risorse più adatte di ogni organizzazione partecipante.

3.4.3. Campione di indagine

La “mailing list” dei partecipanti all’indagine è stata ottenuta da TDWI. A partire da questa lista, 3000 organizzazioni australiane sono state selezionate come base per il campionamento. Una lettera di aggiuntiva spiegava il progetto e lo scopo dell’indagine, insieme ad una scheda per le risposte e una busta prepagata per rinviare il questionario compilato sono state inviate al campione. Delle 3000 organizzazioni, 198 hanno accettato di partecipare allo studio. Era previsto un così piccolo numero di risposte dato il grande numero di organizzazioni australiane che allora avevano abbracciato o stavano abbracciando la strategia di data warehousing all’interno delle loro organizzazioni. Quindi, la popolazione obiettivo per questo studio consiste di sole 198 organizzazioni.

 

3.4.4. Contenuti del questionario

La struttura del questionario è stata basata sul modello di data warehousing Monash (discusso precedentemente nella parte 2.3). Il contenuto del questionario è stato basato sull’analisi della letteratura presentata nel capitolo 2. Una copia del questionario spedito ai partecipanti all’indagine può essere trovata nell’appendice B. Il questionario è composto da sei sezioni, che seguono le fasi del modello trattato. I seguenti sei paragrafi brevemente ricapitolano il contenuto di ogni sezione.

 

Sezione A: Informazioni di base sull’organizzazione

Questa sezione contiene le domande relative al profilo delle organizzazioni partecipanti. In più, alcune delle domande sono relative alla condizione del progetto di data warehousing del partecipante. Le informazioni confidenziali quale il nome dell’organizzazione non sono state rivelate nell’analisi di indagine.

 

Sezione B: Inizio

Le domande in questa sezione sono relative all’attività di inizio di data warehousing. Le domande sono state fatte per quanto riguarda gli iniziatori di progetto, garanti, abilità e conoscenza richieste, gli obiettivi dello sviluppo di data warehousing e le aspettative degli utilizzatori finali.

 

Sezione C: Progettazione

Questa sezione contiene le domande relative alle attività di pianificazione del data warehouse. In particolare, le domande sono state circa la portata di esecuzione, la durata del progetto, il costo del progetto e l’analisi di costi/benefici.

 

Sezione D: Sviluppo

Nella sezione di sviluppo ci sono le domande relative alle attività di sviluppo del data warehouse: raccolta di requisiti dell’utilizzatore finale, le fonti di dati, il modello logico dei dati, prototipi, la pianificazione di capienza, architetture tecniche e selezione dei tools di sviluppo del data warehousing.

 

Sezione E: Funzionamento

Domande di funzionamento relative al funzionamento ed all’estensibilità del data warehouse, come si evolve nella successiva fase di sviluppo. La qualità dei dati, le strategie di refresh dei dati, la granularità dei dati, scalabilità del data warehouse ed i problemi di sicurezza del data warehouse erano fra le tipologie di domande fatte.

 

Sezione F: Sviluppo

Questa sezione contiene le domande relative all’utilizzo del data warehouse da parte degli utenti finali. Il ricercatore era interessato allo scopo e all’utilità del data warehouse, la revisione e le strategie di addestramento adottati e la strategia di controllo del data warehouse adottata.

 

3.4.5. Tasso di risposta

Anche se le indagini via posta sono criticate per avere un tasso di risposta basso, sono state adottate delle misure per aumentare il tasso di rendimento (come discusso precedentemente nella parte 3.4.1). Il termine ‘tasso di risposta’ si riferisce alla percentuale di persone in un campione particolare di indagine che risponde al questionario (Denscombe 1998). E’ stata utilizzata la seguente formula per calcolare il tasso di risposta per questo studio:

 

 

Numero di persone che hanno risposto

Tasso di risposta = ——————————————————————————– X 100

Numero totale di questionari spediti

 

3.4.6. Prova Pilota

Prima che il questionario sia spedito al campione, le domande sono state esaminate effettuando le prove pilota, come suggerito da Luck e Rubin (1987), Jackson (1988) e de Vaus (1991). Lo scopo delle prove pilota è di rivelare tutte le espressioni scomode, ambigue e domande di difficile interpretazione, per chiarire qualunque definizioni e termini usati e per identificare il tempo approssimativo richiesto per compilare il questionario (Warwick e Lininger 1975, Jackson 1988, Salant e Dilman 1994). Le prove pilota sono state effettuate selezionando soggetti con caratteristiche simili a quelle dei soggetti finali, come suggerito Davis e Cosenza (1993). In questo studio, sei professionisti di data warehousing sono stati selezionati come i soggetti pilota. Dopo ogni prova pilota, sono state fatte le correzioni necessarie. Dalle prove pilota effettuate, i partecipanti hanno contribuito a rimodellare e reimpostar la versione definitiva del questionario.

 

3.4.7. Metodi di Analisi Di Dati

I dati di indagine raccolti dai questionari a domanda chiusa sono stati analizzati usando un pacchetto di programmi statistico denominato SPSS. Molte delle risposte sono state analizzate usando le statistiche descrittive. Un certo numero di questionari sono ritornati incompleti. Questi sono stati trattati con maggiore attenzione per accertarsi che i dati mancanti non fossero una conseguenza degli errori di data entry, ma perché le domande non erano adatte per il dichiarante, o il dichiarante ha deciso non rispondere ad una o più domande specifiche. Queste risposte mancanti sono state ignorate durante l’analisi dei dati e sono state codificate come ‘- 9’ per accertare la loro esclusione dal processo di analisi.

 

Nel preparare il questionario, le domande chiuse sono state precodificate assegnando un numero ad ogni opzione. Il numero allora è stato usato per preparare i dati durante l’analisi (Denscombe 1998, Sapsford e Jupp 1996). Per esempio, c’erano sei opzioni elencate nella domanda 1 della sezione B: consiglio d’amministrazione, esecutivo ad alto livello, dipartimento IT , unità di affari, i consulenti ed altro. Nello schedario di dati di SPSS, è stata generata una variabile per indicare ‘l’iniziatore di progetto’, con sei etichette di valore: ‘1’ per il ‘consiglio d’amministrazione’, ‘2’ per ‘l’esecutivo ad alto livello’ e così via. L’uso della scala di Likertin in alcune delle domande chiuse inoltre ha permesso un’identificazione che non richiede sforzo visto l’utilizzo dei valori numerici corrispondenti inseriti in SPSS. Per le domande con le risposte non esaustive, che non erano reciprocamente esclusive, ogni opzione è stata trattata come una singola variabile con due etichette di valore: ‘1 ‘ per ‘segnata’ e ‘2 ‘ per ‘non segnata’.

 

Le domande aperte sono state trattate diversamente dalle domande chiuse. Le risposte a queste domande non sono state inserite in SPSS. Al contrario, sono state analizzate a mano. L’uso di questo tipo di domande permette di acquisire informazioni circa le idee liberamente espresse e le esperienze personali nei dichiaranti (Bainbridge 1989, Denscombe 1998). Dove possibile, è stata fatta una categorizzazione delle risposte.

 

Per l’analisi dei dati, sono usati metodi di semplice analisi statistica, come la frequenza delle risposte, la media, la scarto quadratico medio e la mediana (Argyrous 1996, Denscombe 1998).

Il Gamma test era performante per ottenere misure quantitative delle associazioni tra dati ordinali (Norusis 1983, Argyrous 1996). Questi test erano appropriati perché le scale ordinali usate non avevano molte categorie e potevano essere mostrate in una tabella (Norusis 1983).

 

3.5 Sommario

In questo capitolo, sono stati discussi la metodologia di ricerca e il design adottati per questo studio.

La selezione del più appropriato metodo di ricerca per un particolare studio prende in

considerazione un certo numero di regole, inclusa la natura e il tipo della ricerca, così come i meriti e le debolezze di ogni possibile metodo(Jenkins 1985, Benbasat et al. 1097,Galliers e Land 1987, yin 1989, Hamilton e ives 1992, Galliers 1992, neuman 1994). Vista la mancanza di conoscenza e teoria esistenti a proposito dell’adozione di data warehousing in Australia, questo studio di ricerca richiede un metodo di ricerca interpretativo con una abilità esplorativa per esplorare le esperienze delle organizzazioni australiane. Il metodo di ricerca prescelto è stato selezionato per raccogliere informazioni riguardanti l’adozione del concetto di data ware-housing da parte delle organizzazioni australiane. Un questionario postale è stato scelto come tecnica di raccolta dati. Le giustificazioni per il metodo di ricerca e la tecnica di raccolta dati selezionati saranno fornite in questo capitolo. Inoltre è stata presentata una discussione sull’unità di analisi,il campione utilizzato, le percentuali di risposte, il contenuto del questionario, il pre test del questionario e il metdo di analisi dei dati.

 

Designing a Data Warehouse:

Combining Entity Relationship and Dimensional Modelling

 

ABSTRACT

Immagazzinare i dati è un problema attuale importante per molte organizzazioni. Un problema chiave nello sviluppo dell’immagazzinamento dei dati è il suo disegno.

Il disegno deve sostenere il rilevamento di concetti nel data warehouse a legacy system e le altre fonti di dati ed anche una facile comprensione ed efficienza nell’implementazione di data warehouse.

Molta della letteratura di immagazzinamento dei dati raccomanda l’uso di entity relationship modelling or dimensional modelling per rappresentare il disegno di data warehouse.

In questo giornale noi mostriamo come entrambe le rappresentazioni possono essere combinate in un approccio per il disegno di data warehouse. L’approccio usato è sistematicamente esaminato in un caso di studio ed è identificato in un numero di importanti implicazioni con professionisti.

 

DATA WAREHOUSING

Un data warehouse di solito è definito come un “subject-oriented, integrated, time-variant, and nonvolatile collection of data in support of management’s decisions” (Inmon and Hackathorn, 1994). Subject-oriented and integrated indica che il data warehouse è progettato per attraversare i confini funzionali dei legaci system per offrire una prospettiva integrata dei dati.

Time-variant interessa lo storico o la natura time-series dei dati in un data warehouse, la quale abilita trend per essere analizzati.

Non-volatile indica che il data warehouse non è continuamente aggiornato come un database di OLTP. Piuttosto è aggiornato periodicamente, con dati provenienti da fonti interne ed esterne. Il data warehouse specificatamente è disegnato per la ricerca piuttosto che per l’integrità degli aggiornamenti e le prestazioni delle operazioni.

L’idea di immagazzinare i dati non è nuova, è stato uno degli scopi di gestione dei dati fin dagli anni sessanta (Il Martin, 1982).

I data warehouse offrono l’infrastruttura dati per management support systems. Management support systems includono decision support systems (DSS) and executive information systems (EIS). Un DSS è un sistema di informazioni computer-based che è progettato per migliorare il processo e di conseguenza la presa di decisione umana. Un EIS è tipicamente un sistema di consegna di dati che abilita dirigenti d’azienda ad accedere facilmente alla vista dei dati.

L’architettura generale di un data warehouse evidenzia il ruolo del data warehouse nel supporto alla gestione. Oltre ad offrire l’infrastruttura dati per EIS e DSS, al data warehouse è possibile accedervi direttamente attraverso le query. I dati inclusi in un data warehouse si basano su un’analisi dei requisiti di informazioni di gestione e sono ottenuti da tre fonti: internal legacy systems, special purpose data capture systems and external data sources. I dati negli internal legacy systems sono frequentemente ridondanti, inconsistenti, di bassa qualità, e immagazzinati in diversi formati quindi devono essere riconciliati e puliti prima di poterli caricare nel data warehouse (Inmon, 1992; McFadden, 1996). I dati provenienti da sistemi di immagazzinamento dati ad hoc e da sorgenti dati esterne sono speso usati per aumentare (aggiornare, sostituire) i dati da sistemi legacy.

Ci sono molte ragioni irresistibili per sviluppare un data warehouse, che includono una migliore presa di decisione attraverso l’uso effettivo di più informazioni (Ives 1995), il supporto per un focus sugli affari completi (Graham 1996), e la riduzione in costi di provvedimento di dati per EIS e DSS (Graham 1996, McFadden 1996).

Un recente studio empirico ha scoperto, in media, un ritorno degli investimenti per i data warehouse del 401% dopo tre anni (Graham, 1996). Comunque, gli altri studi empirici di data warehouse hanno trovato significanti problemi incluso la difficoltà nel misurare ed assegnare benefici, mancanza di un scopo chiaro, sottovalutando lo scopo e la complessità del processo di immagazzinare i dati, in particolare quanto riguarda le fonti e la pulizia dei dati.

Immagazzinare i dati può essere considerato come una soluzione al problema di gestione dei dati fra le organizzazioni. La manipolazione dei dati come risorsa sociale è rimasto uno dei problemi chiave nella gestione di sistemi di informazioni in tutto il mondo per molti anni (Brancheau et al. 1996, Galliers et al. 1994, Niederman et al. 1990, Pervan 1993).

Un approccio popolare alla gestione dei dati negli anni ottanta era lo sviluppo di un modello dati sociale. Il modello dati sociale fu pensato per offrire una base stabile per lo sviluppo di nuovi sistemi applicativi e database e la ricostruzione e l’integrazione di legacy systems (Brancheau et al.

1989, Goodhue et al. 1988:1992, Kim and Everest 1994).

Comunque, ci sono molti problemi con questo approccio, in particolare, la complessità e il costo di ogni task, ed il lungo tempo richiesto per avere risultati tangibili (Beynon-Davies 1994, Earl 1993, Goodhue et al. 1992, Periasamy 1994, Shanks 1997).

Il data warehouse è un databse separato che co-esiste coi legacy databases piuttosto che sostituirli. Esso perciò consente di indirizzare la gestione dei dati ed evitare la costosa ricostruzione dei legacy systems.

 

APPROCCI ESISTENTI AL DISEGNO DI DATA WAREHOUSE

Il processo di costruzione e perfezionamento di un data warehouse va compreso più come un processo evolutivo piuttosto che un lifecycle di sviluppo di sistemi tradizionali (Desio, 1995, Shanks, O’Donnell and Arnott 1997a ). Ci sono molti processi coinvolti in un progetto di data warehouse come inizializzazione, pianificazione; informazioni acquisite dai requisiti chieste ai dirigenti d’azienda; fonti, trasformazioni, pulizia dei dati e di sincronizzazione da legacy systems e le altre fonti di dati; sistemi di consegna in sviluppo; monitoraggio dei data warehouse; e insensatezza del processo evolutivo e di costruzione di un data warehouse (Stinchi, O’Donnell ed Arnott 1997b). In questo giornale, noi focalizziamo su come disegnare i dati immagazzinati nel contesto di questi altri processi. Ci sono un numero di approcci proposti per l’architettura dei data warehouse nella letteratura (Inmon 1994, Ives 1995, Kimball 1994 McFadden 1996). Ognuna di queste metodologie ha una breve rassegna con un’analisi dei loro punti di forza e non.

 

Inmon’s (1994) Approach for Data Warehouse Design

Inmon (1994) propose quattro passi iterativi per disegnare un data warehouse (veda Figura 2). Il primo passo è progettare un modello dati sociale per capire come i dati possono essere integrati attraverso aree funzionali all’interno di un’organizzazione suddividendo i dati immagazzini in aree. Il modello dati è fatto per immagazzinare dati attinenti a prese di decisione, incluso dati storici, ed incluso dati dedotti ed aggregati. Il secondo passo è identificare aree soggette per la realizzazione. Questi sono basati su priorità determinate da una particolare organizzazione. Il terzo passo comporta il disegno di un database per l’area soggetta, pone particolare attenzione a includere appropriati livelli di granularità. Inmon raccomanda di usare il modello entità e relazioni. Il quarto passo è identificare sistemi di fonti dati richiesti e sviluppare processi di trasformazione per acquisire, pulire e formattare i dati.

 

Le forze dell’approccio di Inmon sono che il modello dati sociale offre la base per l’integrazione di dati all’interno dell’organizzazione e pianificazione di supporti per lo sviluppo iterativo di data warehouse. Le sue pecche sono la difficoltà e il costo nel disegnare il modello dati sociale, la difficoltà nel capire modelli di entità e relazioni usati in ambo i modelli, quello dati sociale e quello di dati immagazzinati per area soggetto, e l’appropriatezza dei dati del disegno di data warehouse per la realizzazione di database relazionali ma non per database multi-dimensionali.

 

Ives’ (1995) Approach to Data Warehouse Design

Ives (1995) propone un approccio di quattro passi per disegnare un sistema informativo che lui ritiene applicabile al disegno di un data warehouse (veda Figura 3). L’approccio è molto basato sull’ Information Engineering per lo sviluppo di sistemi di informazioni (Martin 1990). Il primo passo è determinare gli obiettivi, i fattori critici e di successo e gli indicatori chiave delle prestazioni. I processi chiave di business e le informazioni necessarie sono modellate per condurci ad un modello dati sociale. Il secondo passo comporta lo sviluppo di un architettura che definisce dati immagazzinati per aree, database di data warehouse, i componenti di tecnologia che sono richiesti, l’insieme di supporto organizzativo richiesto per implementare ed operare con data warehouse. Il terzo passo include la selezione di pacchetti software e attrezzi richiesti. Il quarto passo è il disegno particolareggiato e la costruzione del data warehouse. Ives nota che immagazzinare dati è un vincolato processo iterativo.

 

La forza dell’approccio di Ives sono l’uso di specifiche tecniche per determinare i requisiti d’informazione, l’uso di uno strutturato processo per sostenere l’integrazione dei data warehouse, l’opportuna selezione hardware e software, e l’uso di molteplici tecniche di rappresentazione per il data warehouse. Le sue pecche sono inerenti alla complessità. Altre includono la difficoltà nello sviluppare molti livelli di database all’interno del data warehouse in tempi e costi ragionevoli.

 

Kimball’s (1994) Approach to Data Warehouse Design

Kimball (1994) propose cinque passi iterativi per disegnare un data warehouse (vedi Figuri 4). Il suo approccio è particolarmente dedicato sul disegno di un solo data warehouse e sull’uso di modelli dimensionali in preferenza a modelli di entità e relazioni. Kimball analizza quei modelli dimensionali perché è più facile capire per i dirigenti d’azienda gli affari, è più efficiente quando si trattano consultazioni complesse, e il disegno di database fisico è più efficiente (Kimball 1994). Kimball riconosce che lo sviluppo di un data warehouse è iterativo, e che data warehouse separati possono essere integrati attraverso la ripartizione in tavole di dimensioni comuni.

 

Il primo passo è identificare la particolare area soggetto per essere perfezionato. Il secondo e terzo passo concernono modellatura dimensionale. Nel secondo passo le misure identificano cose di interesse nell’area soggetto e raggruppate in una tabella dei fatti. Per esempio, in un’area di soggetto di vendite le misure di interesse potrebbero includere l’ammontare di articoli venduto ed il dollaro come valuta di vendite. Il terzo passo comporta l’identificazione di dimensioni che sono i modi nei quali possono essere raggruppati i fatti. In un’area di soggetto di vendite, dimensioni attinenti potrebbero includere articolo, ubicazione e tempo periodo. La tabella dei fatti ha una chiave multi- part per collegarla ad ognuna delle tabelle di dimensione e tipicamente contiene un numero molto grande di fatti. In contrasto, tavole di dimensione contengono descrittive informazioni sulle dimensioni e gli altri attributi che possono essere usati per raggruppare i fatti. La tabella dei fatti e dimensioni associata proposta forma quello che è chiamato uno schema a stella a causa della sua forma. Il quarto passo comporta la costruzione di un database multidimensionale per perfezionare lo schema della stella. Il passo finale è identificare sistemi di fonti dati richiesti e sviluppare processi di trasformazione per acquisire, pulire e formattare i dati.

Le forze dell’approccio di Kimball includono l’uso di modelli dimensionali per rappresentare i dati immagazzinati che lo rendono facile da capire e conduce ad un disegno fisico efficiente. Un modello dimensionale che usa prontamente anche entrambi i sistemi di database relazionali può essere perfezionato o sistemi di database multidimensionali. Le sue pecche includono la mancanza di alcune tecniche per facilitare la pianificazione o l’integrazione di molti schemi della stella all’interno di un data warehouse e la difficoltà di progettare dall’estrema struttura denormalizzata in un modello dimensionale a dati in legacy system.

 

McFadden’s (1996) Approach to Data Warehouse Design

McFadden (1996) propone un approccio di cinque passi per disegnare un data warehouse (vedi Figura 5).

Il suo approccio è basato su una sintesi delle idee dalla letteratura ed è focalizzato sul disegno di un solo data warehouse. Il primo passo comporta un’analisi dei requisiti. Anche se le specifiche tecniche non sono prescritte, le note di McFadden identificano le entità dati specifiche ed i loro attributi, e si riferisce ai lettori Watson e Frolick (1993) per l’acquisizione dei requisiti.

Nel secondo passo viene disegnato un modello entità relazioni per data warehouse e poi convalidato dai dirigenti d’azienda. Il terzo passo comprende la determinazione del mapping da legacy system e fonti esterne di data warehouse. Il quarto passo comporta processi in sviluppo, la distribuzione e sincronizzazione di dati nel data warehouse. Nel passo finale, la consegna del sistema è sviluppata con particolare enfasi su un’interfaccia utente. McFadden fa notare che il processo di disegno è generalmente iterativo.

 

Le forze dell’approccio di McFadden puntano sulla partecipazione da parte dei dirigenti d’azienda nel determinare i requisiti ed anche l’importanza delle risorse dati, la loro pulizia e raccolta. Le sue pecche riguardano la mancanza di un processo per suddividere un grande progetto di data warehouse in molti stages integrati, ed la difficoltà nel capire i modelli di entità e relazione usati nel disegno di data warehouse.

 

 

IL RUOLO DEL DBA : APPUNTI SULLA TEORIA DELLE BASI DI DATI

INTRODUZIONE AI SISTEMI INFORMATIVI:

ORGANIZZAZIONE, RISORSE E PROCESSI.

Oltre alle nozioni tradizionali di struttura di un’azienda, ovvero di suddivisione dell’organizzazione in differenti unità organizzative alle quali sono attribuiti compiti ed obiettivi specifici e che cooperano attraverso legami di tipo gerarchico e funzionale, due concetti sono utili nel descrivere un’organizzazione: le risorse e i processi.

Una risorsa è tutto ciò con cui l’azienda opera, sia materiale che immateriale, per perseguire i suoi obiettivi. Sono risorse i prodotti o i servizi offerti da un’azienda, i materiali utilizzati, gli immobili, ma sono risorse anche il denaro e le persone utilizzate per produrre. Le risorse si suddividono in:

– Risorse interne, ovvero risorse sulle quali l’organizzazione agisce direttamente;

– Risorse esterne, sulle quali l’azienda opera soltanto in maniera indiretta ( es. ambiente sociale e altri operatori economici).

NB : Una risorsa viene pianificata, acquisita e gestita.

Un processo è l’insieme delle attività (sequenze di decisioni e azioni) che l’organizzazione nel suo complesso svolge per gestire il ciclo di vita di una risorsa o di un gruppo omogeneo di risorse.

Un processo è caratterizzato principalmente da un:

Prodotto (il “risultato definito e misurabile” che, trasferendo valore al cliente, rappresenta il vero obiettivo dell’organizzazione);

Insieme · di attività interrelate (il flusso operativo del processo, con le sue

attività e le loro relazioni);

 

EVOLUZIONE DEI SISTEMI INFORMATICI DA SETTORIALI AD INTEGRATI

La prima fase di sviluppo delle applicazioni informatiche ha riguardato l’automazione delle attività di raccolta, archiviazione e reperimento dei dati di natura operativa.

La caratteristica principale dei sistemi informatici di questo tipo è la ripetitività e la precisa definizione delle operazioni da compiere;

Vantaggi:

quantità delle operazioni elementari eseguite con efficienza.

L’ottica nella quale questi sistemi vengono sviluppati è prettamente settoriale, ovvero i processi vengono automatizzati all’interno di un settore e di un’attività aziendale, senza tener conto degli altri settori e attività.

Vantaggi:

Il lavoro impiegatizio di produzione e verifica di documenti è risultato estremamente alleggerito e standardizzato.

I costi dei sistemi informatici operativi sono relativamente bassi, sia rispetto al loro procedimento di progettazione e realizzazione che rispetto agli oneri di gestione;

Non comportano processi profondi di ristrutturazione aziendale né generano problemi di conflittualità interne rispetto all’organizzazione preesistente.

La seconda fase di sviluppo dei sistemi informatici è caratterizzata dall’integrazione fra le applicazioni operative e dal coinvolgimento nell’automazione dei processi informativi di livello gestionale e direzionale. I sistemi informatici integrati sono orientati ai dati: gli archivi non sono ridondanti e la gestione delle informazioni è centralizzata.

Vantaggi:

l’automazione delle attività di tipo operativo;

diventa un supporto alle attività di tipo gestionale e direzionale, perché i

processi di questo livellò necessitano di dati intersettoriali.

 

TIPOLOGIE DI DATI

L’evoluzione dei sistemi informatici assegna un ruolo sempre più rilevante ai dati, come fattore d’integrazione fra le varie procedure aziendali.

Le diverse tipologie di dati che intervengono in un sistema informatico sono classificate così:

3

Dati settoriali e dati aziendali : I dati settoriali sono i dati che vengono generati ed utilizzati unicamente all’interno di un settore, i dati aziendali quelli condivisi da più settori.

Dati personali e dati condivisi : Un dato è personale se la sua definizione nasce da un utente che ne cura per intero tutte le fasi di vita (immissione, modifica, cancellazione, salvataggio) e ne è l’unico responsabile

Dati di analisi e dati di sintesi : Un dato è derivato o di sintesi, se esiste un procedimento di calcolo che permette di ottenere il suo valore a partire da altri dati, altrimenti è un dato elementare o di analisi

Dati interni e dati esterni : Un dato può essere classificato come dato interno se la sua esistenza dipende dall’azienda e cessa quindi di esistere con essa; un dato è esterno se, anche se l’azienda può influire sul suo valore, esiste indipendentemente da essa.

  1. I processi gestionali e direzionali utilizzano sia dati interni che dati esterni, mentre quelli operativi hanno raramente bisogno di accedere a fonti esterne all’azienda.

I processi gestionali e direzionali utilizzano molti dati di sintesi e pochi dati analitici, mentre la situazione opposta si verifica per quelli operativi.

Gli utenti dei processi gestionali e direzionali utilizzano frequentemente dati personali, mentre in genere l’utente di quelli operativi non ne ha bisogno.

I processi gestionali e direzionali, infine, utilizzano molti dati aziendali, mentre i dati intersettoriali sono meno utilizzati dai processi operativi.

ARCHITETTURE INFORMATICHE DEI SISTEMI INFORMATIVI La più semplice: Stand alone + unica base dati

Architettura centralizzata con più utenti

– Più posti di lavoro, più processi, più basi di dati

Architetture distribuite

– I processi sono presenti su più nodi elaborativi (elaborazione distribuita)

Ci sono più sorgenti informative, più DB, collegamenti in rete e reti locali e geografiche e processi interconnessi.

CONSEGUENZA: i DB sono distribuiti, i dati sono replicati e occorre garantirne la consistenza e la concorrenza d’accesso.

Le caratteristiche della sicurezza sono:

AUTENTICITÀ: L’utente coinvolto nel processo deve poter essere identificato dal sistema e distinto da ogni altro;

AUTORIZZAZIONE: L’accesso alle informazioni o al processo deve essere consentito ai soli utenti autorizzati;

DISPONIBILITÀ: Il sistema deve rendere disponibili a ciascun utente abilitato le informazioni alle quali ha diritto di accedere, nei tempi e nei modi previsti.

INTEGRITÀ: Il sistema deve impedire la alterazione diretta o indiretta delle informazioni, sia da parte di utenti non autorizzati, che a seguito di eventi accidentali.

RISERVATEZZA: Nessun utente deve poter ottenere o dedurre dal sistema informazioni che non ha il diritto di conoscere.

PROGETTAZIONE DEI SISTEMI INFORMATIVI

Ex novo: il sistema viene prima progettato concettualmente e poi realizzato. Conseguenza: possono essere adottati standard e tecnologie comuni

Per adattamento o integrazione: vengono integrati sistemi esistenti Conseguenza: non possono essere adottati standard corriuni e occorre adottare tecnologie (middleware) di integrazione

TIPOLOGIE DI SISTEMI INFORMATIVI

Sistemi gestionali o transazionali

Sono i sistemi più tradizionali che hanno come obiettivo l’informatizzazione delle

attività strutturate e ripetitive; riguardano quindi prevalentemente i processi ed i settori operativi e di controllo.

Sistemi per l’automazione d’ufficio

Si sono diffusi soprattutto a seguito dell’introduzione dei pc e di software per lo svolgimento di quelle attività tipiche di qualsiasi ufficio (elaboratori di testi, tabelle, grafici e diségni). Lo sviluppo delle reti ha favorito una loro trasformazione da sistemi di supporto all’attività individuale a sistemi per le attività di gruppo, attraverso la condivisione di programmi e dati, oltre che di risorse tecnologiche (stampanti, scanner, etc.) comuni.

Sistemi di comunicazione

Sono sistemi che facilitano lo scambio di comunicazioni informali tra operatori coinvolti nelle stesse attività (email – mainlist).

Sistemi di gestione dei flussi di lavoro

Coordinano le attività d’insiemi di persone coinvolte negli stessi processi formalizzando il flusso di lavoro che guida l’esecuzione di altre procedure manuali o informatizzate.

Sistemi statistici

Sono sistemi il cui obiettivo principale è la rilevazione di dati da una o più fonti, la loro organizzazione, analisi e aggregazione statistica per fini conoscitivi e di pianificazione.

Sistemi di supporto alle decisioni (DSS, MIS, EIS)

Sono sistemi realizzati per i livelli alti delle aziende anche se, in alcuni casi, possono fornire supporto a decisioni di tipo gestionale o anche operativo. A volte sono classificati come DSS (Decision Support Systems) se concorrono alla valutazione di ipotesi e alternative per decisioni poco strutturate, MIS (Management Infonnation Systems) se forniscono supporto alla valutazione di decisioni strutturate per il livello di controllo, EIS (Executive Information Systems) se caratterizzati da elevata interattività e notevole flessibilità nella produzione dei dati di sintesi.

Sistemi in tempo reale

I sistemi in tempo reale sono quelli tipicamente utilizzati dalle aziende in cui la variabile tempo e i vincoli temporali sono critici (es. sistemi di controllo industriali e monitoraggio della produzione) .

Sistemi territoriali

Sono i sistemi in cui l’aspetto geografico, inteso come il riferimento d’informazioni a posizioni sul territorio, è fondamentale. Sono i sistemi di gestione ed elaborazione di informazioni territoriali tramite carte o mappe e sovrapposizione di dati tematici.

  1. FASI DEL CICLO DI VITA DEI SISTEMI INFORMATIVI
  2. Pianificazione dei sistemi informativi

E’ la fase che viene svolta con periodicità stabilita (in genere 1-3 anni) in cui si pianificano i progetti e le attività di sviluppo, manutenzione e gestione del sistema informativo, dopo aver analizzato gli obiettivi che ci si propone e tenuto conto dei vincol organizzativi e di risorse.

Assessment e benchmarking

L’Assessment è costituito dalle attività di verifica del funzionamento di un sistema informativo in termini di rispondenza alle attese dell’organizzazione e di efficienza interna. Il Benchmarking è il confronto dei risultati ottenuti dall’ Assessment con i parametri di riferimento dei s1stemi informativi di realtà analoghe a quella di riferimento (stesso settore di attività, stessa dimensione, etc.).

Reingegnerizzazione dei processi

E’ la fase in cui, identificati uno o più processi critici per l’organizzazione, si procede ad una loro analisi e ridefinizione, al fine di migliorare i prodotti o i servizi risultato di tali processi.

Studio di fattibilità

E’ un insieme di attività che portano a decidere se la realizzazione di un sistema è possibile, a quali costi e sotto quali vincoli. Ha l’obiettivo di esaminare diverse alternative di realizzazione, definire architetture tecniche e applicative, valutare benefici e costi e produrre, alla conclusione, un piano di sviluppo del sistema.

Analisi

L’obiettivo dell’analisi è l’approfondimento dei requisiti di un sistema per produrre una descrizione che sia formalizzata, ovvero espressa con un linguaggio non ambiguo e capace di rappresentare in modo soddisfacente il sistema analizzato, integrata, ovvero riferita a tutto il sistema esaminato, indipendente dall’ambiente tecnologico, ovvero concentrata sugli aspetti funzionali, senza essere condizionata dalle scelte tecnologiche.

Progettazione

La progettazione può essere definita come la traduzione delle specifiche d’analisi in strutture tecniche ed è quindi dipendente dalle scelte tecnologiche.

Affidamento delle attività di realizzazione

Le attività di realizzazione sono affidate all’esterno, ferma restando la necessità di un loro costante controllo sia in fase di pianificazione, che d’attuazione e di verifica finale.

Realizzazione

Consiste nella realizzazione effettiva dei sistemi, nelle varie componenti.

Manutenzione

Comprende tutte le attività per garantire l’adeguatezza dei sistemi in esercizio. Ci sono 3 tipi di manutenzione:

Correttiva: il software nel tempo dovrà essere modificato per correggere eventuali errori non riscontrati in fase di realizzazione,

Evolutiva: segue i cambiamenti dell’ esigenze degli utenti finale

Adattiva: per adeguarsi alle innovazioni delle tecnologie.

Gestione e conduzione

Questa fase comprende tutte le attività n·ecessarie a rendere operativo e continuo il funzionamento dei sistemi. Da un lato vanno eseguite tutte quelle attività di back­ end necessarie a garantire la continuità, la disponibilità, l’affidabilità, la sicurezza e l’integrità dei sistemi, dall’altra vanno garantiti servizi di front-end atti a consentire un utilizzo più semplice dei sistemi da parte degli utenti.

Project Management

Questa fase è trasversale rispetto alle altre e, in effetti, non è specifica dei sistemi informativi, ma si applica in tutte quei casi in cui sia necessario effettuare la pianificazione operativa ed il controllo delle attività.

 

TECNOLOGIE PER DBMS PARTI

Il DB administrator emette al DDL COMPILER i comandi del Data Description Language riguardanti la struttura dello schema.

Il QUERY COMPILER riceve le query e le compila, inviandole all’ EXECUTION ENGINE che si occupa di frammentarle in comandi elementari di accesso.

Questi vengono inviati all’INDEX .MANAGER che si occupa di trasformarle in comandi di accesso alle pagine. Il risultato è passato al BUFFER .MANAGER, che si occupa della gestione del buffer, il quale lo invia allo STORAGE .MANAGER che le traduce in accessi alle pagine su disco.

Il TRANSACTION MANAGER si occupa della gestione delle transazioni e, insieme al RECOVERY MANAGER e il CONCURRENCY CONTROL garantisce le proprietà ACID alle transazioni.

Il CONCURRENCY CONTROL si occupa dell’esecuzione concorrenziale delle transazioni e garantisce l’isolamento.

Il RECOVERY MANAGER, garantisce l’affidabilità e la durabilità. Il BUFFER MANAGER, si occupa della gestione della memoria.

DEFINIZIONE DI TRANSAZIONE:

Una transazione è un’unità elementare di lavoro svolta da un’applicazione che presenta le caratteristiche di correttezza, robustezza e isolamento.

Può essere definita sintatticamente da:

Begin transaction: identifica l’inizio della transazione

End transaction: identifica la fine della transazione

All’interno del begin transaction ed end transaction devono essere presenti almeno uno dei seguenti comandi:

Commit work (commit) : identifica il buon fine della transazione

Rollback work (abort) : identifica l’abort della transazione

  1. L’abort di una transazione può avvenire a seguito di una decisione presa dalla transazione stessa (suicidio ROLLBACK ), oppure a seguito di una decisione presa dal sistema (omicidio).

Sistema transazionale: è un sistema dove viene fornita una definizione e

l’esecuzione di transazioni per conto di applicazioni multiple e concorrenti.

Una transazione viene definita ben formata, quando:

Il codice della transazione inizia con Begin transaction e termina con End transaction;

All’interno del codice sono presenti Commit o Abort

A seguito del Commit o dell’Abort non devono esserci ulteriori comandi di lettura o scrittura dei dati.

  1. PROPRIETA’ ACID

Atomicità: una transazione è un’unità indivisibile d’esecuzione. Non è possibile lasciare la bd in uno stato intermedio, infatti se, a seguito di un errore, non è possibile terminare operazioni di scrittura o di lettura, il sistema deve essere

in grado di ripristinare lo stato precedente A seguito di un commit, il sistema deve garantire che la bd sia lasciata dalla transazione in uno stato finale e per farlo a volte è necessario ripetere le stesse operazioni (REDO) .

Consistenza: richiede che l’esecuzione delle transazioni non violi i vincoli d’integrità espressi sulla bd. Possono essere effettuati 2 tipi di controllo:

Immediato: durante l’esecuzione della transazione se ci sono delle operazioni che violano i vincoli, vengono identificate e gli effetti delle stesse vengono cancellati, senza imporre l’abort alla transazione.

Differito: viene effettuato solo al termine della transazione, dopo il commit.

NB se si violano dei vincoli l’intera transazione è abortita.

Isolamento: richiede che l’esecuzione della transazione sia indipendente da quelle concorrenti. Si chiede che l’esecuzione concorrente di un insieme di transazioni produca lo stesso risultato dell’esecuzione delle stesse, svolta in modo separato.

Durabilità: richiede che l’effetto di una transazione che ha eseguito un commit

correttamente non venga più perso. La bd deve garantire che nessun dato venga perso per nessun motivo.

NB.

ATOMICITA e DURABILITA sono garantite dal RECOVERY MANAGER

ISOLAMENTO è garantito dal CONCURRENCY CONTROL SYSTEM

CONSISTENZA è garantita dal DBMS

  1. CONTROLLO DI CONCORRENZA

Un DBMS deve servire diverse applicazioni e rispondere alle richieste provenienti da più utenti. L’unità di misura usata per misurare il buon funzionamento di un DBMS è dato da numero transazioni al secondo.

OBIETTIVO :

Minimizzare i tempi di risposta e d’attesa Massimizzare il numero di transazioni al secondo

* ARCHITETTURA *

Il controllo di concorrenza effettua delle operazioni di INPUT-OUTPUT su degli oggetti astratti x, y,z.

Ogni operazione di lettura comporta il trasferimento di un blocco dalla memoria di massa a quella centrale.

Ogni operazione di scrittura comporta il trasferimento di un blocco dalla memoria centrale a quella di massa.

I blocchi di ingresso/ uscita vengono chiamati pagine una volta caricati in memoria.

  • PROBLEMI I ANOMALIE *

L’esecuzione concorrente di varie transazioni può causare alcuni problemi di correttezza o anomalie:

PERDITA DI AGGIORNAMENTO ( LOSS UPDATE)

Suppongo di avere 2 transazioni identiche che operano sullo stesso elemento

Il valore finale di x è 3 perché entrambe le transazioni leggono lo stesso valore iniziale che è 2.

LETTURE SPORCHE (DIRTY READ) -> ABORT

LETTURE INCONSISTENTI (INCONSISTENT READ) -> READ READ

AGGIORNAMENTO FANTASMA (GHOST UPDATE) -> SOMMA

* TEORIA DEL CONTROLLO DI CONCORRENZA *

Si basa su delle definizioni e su delle “regole”:

Transazione: è una sequenza di azioni di lettura o scrittura;

Ogni transazione ha un unico ID assegnato dal sistema;

Ogni transazione deve iniziare çon begin e terminare con end.

NOZIONE DI SCHEDULE: rappresenta la sequenza di operazioni di input/ output presentate da transazioni concorrenti.

NOZIONE DI SCHEDULER: un sistema che tiene traccia di tutte le operaz10m compiute dalle transazioni e accetta o rifiuta le richieste.

SCHEDULE SERIALE: Le azioni di tutte le transazioni sono in sequenza, senza essere inframmezzate da istruzioni di altre transazioni.

SCHEDULE SERIALIZZABILE: dato uno schedule seriale Si diremo che è serializzabile se produce lo stesso risultato di un qualunque schedule seriale Sj delle stesse transazioni.

Secondo la nozione di equivalenza che si vuole adottare si possono ottenere classi più o meno ampie di schedule accettabili, a prezzo di un’analisi più o meno complessa.

Si dice che l’azione ai è in conflitto con l’azione aj (con i#j ) se entrambe operano sullo stesso oggetto e almeno una delle due è una write.

I casi di conflitto di due azioni sono:

LETTURA – SCRITTURA (rw oppure wr) di uno stesso elemento di una transazione

SCRITTURA – SCRITTURA (ww) di uno stesso elemento da parte di due transazioni diverse.

l.CONFLICT – EQUIVALENCE

E’ condizione sufficiente per la serializzabi lità.

Le schedule S1 e S2 sono conflict equivalenti se S1 può essere trasformato in S2 mediante opportune operazioni di scambio (swap) tra azioni non in conflitto tra loro.

Uno schedule è conflict serializzabile se è conflict equivalent ad uno schedule seriale.

La proprietà di conflict serializzabilità è verificabile mediante il GRAFO DI PRECEDENZA: faccio corrispondere ad ogni nodo una transazione. Traccio un arco orientato tra ti e tj se esiste almeno un conflitto tra l’azione ai e aj.

TEOREMA: IL GRAFO DI PRECEDENZA E’ ACICLICO SE E SOLO SE UNO SCHEDULE E’ CONFLICT SERIALIZZABILE.

DIM. INTUITIVA: Nel costruire uno schedule seriale equivalente dobbiamo contemporaneamente serializzare almeno le Ti e Tj che causano la ciclicità, il che è impossibile.

SVANTAGGI:

Richiede la verifica durante l’esecuzione, infatti costruisce il grafo e ne controlla la ciclicità; ha quindi complessità lineare, ma è dinamica.

  1. CONTROLLO DI CONCORRENZA TRAMITE LOCK

Definisco un protocollo che garantisce a priori la conflict serializzabilità -> richiede la presenza di uno schedule nell’architettura del DBMS.

PRIMITIVE DI LOCK *

Introduco due nuove operazioni che si vanno ad aggiungere a quelle già esistenti. Queste richiedono l’utilizzo e il rilascio esclusivo di una risorsa e sono:

LOCK (esclusivo): Li(A) UNLOCK : Ui(A)

TRANSAZIONI BEN FORMATE E LEGALI *

REGOLA # 1: BEN FORMATA -> ogni azione P(a) sia di lettura o di scrittura deve essere contenuta all’interno di una “sezione critica” definita da una coppia di lock e unlock.

Ti: …… Li(A) … Pi(A) … Ui(a)

REGOLA # 2: LEGALI -> comporta il lock esclusivo della risorsa Ti: … Li(A) …… Ui(A)

NO Lj(A)

  1. Le prime due -regole non sono sufficienti a garantire la serializzabilità: è necessario introdurne una terza.
  1. TWO PHASE LOCKING

REGOLA #3: in ogni transazione tutte le richieste di lock devono precedere tutti gli unlock. Una transazione dopo aver lasciato un lock, non può più acquistarne altri.

Ti: … Li(A) ………… Ui(A)

No Unlock No Lock

locks

ottenuti do Ti

TEOREMA: UNO SCHEDULE 2PL HA UNO SCHEDULE SERIALE CONFLICT EQUIVALENT.

DIM. INTUITIVA: Lo schedule seriale conflict equivalent è quello in cui le transazioni sono ordinate secondo l’occorrenza del loro primo unlock.

Ogni transazione 2PL può essere eseguita istantaneamente quando si esegue il suo primo unlock.

  1. SHARED LOCK

Finora la situazione è S=…Ll (A) R l (A) U l (A) … L2(A) R2(A) U2(A)

In realtà le due letture non sono in conflitto tra loro: introduco allora un nuovo tipo di lock: shared lock.

PRIMITIVE DI LOCK *

Lxi(A) ->LOCK ESCLUSIVO Lsi(A) ->LOCK CONDIVISO Ui(A) ->UNLOCK

TRANSAZIONI BEN FORMATE CON SHARED LOCK *

Shared lock prima di un read Exclusive lock prima di un write

Ti = Lsl (A) …R l(A) …U l (A) Ti = Lxl (A) …w l (A) …U l (A)

* TRANSAZIONI LEGALI CON SHARED LOCK*

Nessun lock tra un lock già acquisito e il suo rilascio si modifica così: S: … Lsi(A) …… Ui(A) S: … LXi(A) …… Ui(A)

NO Lxj(A) NO Lxj(A) e NO /Lsj(A)

MATRICE DI COMPATIBILITA’ E REGOLA 2PL:

5 X
s Tr-ue False
X False False

lock gia’ ottenuto

In modo

Nunvo lock rìchlesto

REGOLE PER I LOCK GERARCHICI:

consideriamo gerarchie di oggetti strutturate ad albero: i lock vengono richiesti dalla radice vs i discendenti e i lock vengono rilasciati a partire dal nodo con lock proseguendo vs la radice. Per richiedere un lock SL o ISL su un nodo la transazione deve già avere un lock sul nodo genitore. Per

richiedere un lock IXL, XL o SIXL su un nodo la transazione deve avere un lock SIXL o IXL sul nodo corrente.

NUOVI TIPI E GERARCHIE DI LOCK-> introdotte x abbassare il livello d’isolamento

Introduco 3 nuovi tipi per abbassare illivello dell’isolamento, con la consapevolezza della possibile presenza di anomalie:

ISL( Intention shared lock): esprime l’intenzione di bloccare in modalità condivisa un qualsiasi figlio del nodo corrente.

IXL(Intentino exclusive lock): esprime l’intenzione di bloccare in modo esclusivo

uno dei nodi che discendono dal nodo corrente

SIXL (Shared lock intentino esclusive lock): Blocca in modalità condivisa il nodo corrente e esprime l’intenzione di bloccare uno dei nodi discendenti dal nodo corrente in modalità esclusiva.

TABELLA DI COMPATIBILITA’ PER LOCK GERARCHICI

Stato risorsa

Richiesta

ISL OK OK OK OK No IXL OK OK No No No SL OK No OK No No SIXL OK No No No No XL

18

* GESTIONE DEI DEADLOCK *

Un problema comune a tutte le strategie di controllo di concorrenza basate sul locking

TI

11(); Read(A)

A”” A+lOO; Write{A)

lt(B)

T2

lz(B):Read(B)

B Bx2;Wr1te(B)

12(A)

In attesa

La probabilità di deadlock cresce in modo lineare con ilnumero di transazioni e in modo quadratico con il numero di richieste di lock da parte di ogni transazione.

TECNICHE UTILIZZATE PER RISOLVERE IL DEADLOCK:

./ USO DEI TIMEOUT: viene fissato un tempo T di timeout oltre il quale le transazioni in attesa vengono uccise.

CRITICITA’ : T troppo alto risolve tardi il deadlock

T troppo basso uccide troppe transazioni

./ RILEVAMENTO DEL DEADLOCK: costruisce in modo incrementale il grafo di precedenza, utilizza le tabelle di lock e quando si genera un ciclo viene scelta la vittima e si fa il rollback.

POLITICHE DI SCELTA DELLA VITTIMA: (VALGONO X RILEV. & PREVEN.)

Interrompente: si risolve il conflitto uccidendo la transazione che possiede la risorsa

Non Interrompente: solo all’atto di una nuova richiesta

Quelle che hanno effettuato meno lavoro: PROBLEMA -> la transazione che ha fatto meno lavoro viene uccisa ripetutamente -> starvation

./ PREVENZIONE DEADLOCK: Ad ogni transazione viene assegnato un timestarnp ts(Ti) al momento in cui arriva allo scheduler.

REGOLA: in caso di conflitto su un lock Ti può attendere Tj solo se è più vecchio. Ts(Ti)<ts(Tj) altrimenti viene ucciso.WAIT-DIE

* CASCADING ROLLBACK *

Finora abbiamo svolto ragionamenti non preoccupandoci di ciò che può avvenire riguardo la correttezza dello schedule a seguito dei rollback.

Il rollback di una transazione T provoca a cascata il rollback di altre transazioni. In particolare occorre:

trovare le transazioni nell’insieme U che hanno letto da T e abortirle;

trovare ricorsivamente le transazioni che hanno letto da quelle in U e così via.

  1. Il cascading rollback è gestito dal RECOVERY MANAGER

CONDIZIONI NECESSARIE AGLI SCHEDULE PER EVITARE IL CASCADING ROLLBACK

RECOVERABLE SCHEDULE: Uno schedule S è recoverable se ogni transazione nello schedule effettua un commit solo dopo che ogni transazione dalla quale ha letto ha effettuato un commit. · ·

ES: w lA w lB w2A r2B cl c2 -> serializzabile ma non recoverable W2A w lB w2A r2B c2 cl -> è recoverable ma non serializzabile

Per evitare il cascading rollback occorre imporre una condizione più forte della recoverability.

Uno schedule evita il cascading rollback se le transazioni leggono solo i valori scritti da transazioni che hanno già effettuato il commit.

ES: w2A w lB w lA cl r2B c2

* STRICT 2PL *-> nasce xk:e ho sempre considerato il commit delle trans e nn l’ Uno schedule S è Strict 2PL se:

./ 2PL

./ i lock di ogni transazione vengono mantenuti fino al commit o all’abort

./ illog è stato inviato al disco.

20

PROPRIETA’:

Ogni schedule strict 2PL evita il cascading rè>J. l:>é:tc!S-> una transazione T2 non può leggere un valore di un elemento X scritto da Tl finchè Tl non rilascia ogni lock.

Ogni schedule strict 2PL è serializzabile -> uno schedule strict è equivalente a uno seriale in cui ogni transazione esegue i comandi al tempo di commit.

USO DEI LOCK IN PRATICA:

Un lock manager semplificato:

Acquisisce tutti i locks automaticamente

Non si fida della transazione definita dall’applicazione!

A meno che la transazione non utilizzi primitive di lock esplicite

Li mantiene fino al commit (strict 2PL).

 

LOCK MANAGER

* ALTRI METODI PER IL CONTROLLO DI CONCORRENZA *

Metodo 1: TIMESTAMP

Evita del tutto l’uso dei lock (elimina il problema dei deadlock).

Ad ogni transazione viene assegnato un timestamp unico al momento del suo inizio, cioè all’arrivo dello schedule -> i timestamp definiscono l’ordine totale sulle transazioni, secondo il loro arrivo.

Uno schedule S che rispetta questo ordine e’ serializzabile, perché è equivalente al particolare schedule seriale corrispondente all’ordinamento dei timestamps.

USO DEI TIMESTAMP:

Le transazioni vengono eseguite liberamente.

Ad ogni operazione r/w, lo scheduler controlla che i timestamps delle transazioni coinvolte non violino la serializability della schedule.

Ad ogni data item (X) vengono associati due timestamps:

./ readTs(X): uguale al timestamp ts(T) della transazione T che ha potuto leggere per ultima X;

./ writeTs(X): uguale al timestamp ts(T) della transazione T che ha potuto scrivere per ultima X;

./ C(X): il bit di commit, vero sse la transazione che ha scritto X più di recente ha effettuato il commit (serve per evitare i fenomeni di dirty read)

Per ogni operazione wi(X):

Se ts(Ti) < readTs(X): rifiuta la richiesta e uccide Ti (una transazione più recente di Ti ha letto X prima che Ti potesse scriverlo e si viola l’ordine del timestamp.)

Se ts(Ti) < writeTs(X): ignora wi(X) e continua (una transazione più recente di Ti ha già scritto X, quindi questa write è inutile)

Altrimenti, accetta la richiesta e pone writeTs(X) = ts(Ti).

* CONFRONTO TRA 2PL E TIMESTAMP *

2PL TIMESTAMP
Le transazioni vengono messe in attesa. Le transazioni vengono uccise e fatte ricominciare
L’ordine di serializzazione è imposto L’ordine di serializzazione è imposto dai timestamp
dai conflitti
Necessità di attendere il commit di altre transazioni: strict 2pl Necessità di attendere il commit di altre transazioni: buffering delle scritture.
E’ soggetto a deadlock Non provoca deadlock, ma costringe ad un alto numero di restart.

Metodo 2: MULTIVERSI ON CONCURRENCY CONTROL

Si vuole estendere il concetto di timestamp introducendo versioni diverse Xl Xn di una dataitem (X).

../ Ogni w i(X) genera una nuova versione Xi+ l

../ Ad ogni versione Xi di X e’ assegnato un timestamp writeTs(Xi)

../ Ad X viene assegnato un timestamp globale readTs(X)

../ Per ogni accesso, lo scheduler utilizza i timestamp come segue:

wi(X): se ts(Ti) < readTs(X) rifiuta la richiesta

altrimenti crea la versione XN+ l e pone writeTs(XN+ l ) = ts(Ti)

ri(X): seleziona per la lettura la versione xk tale che: writeTs(Xk) < ts(Ti) < writeTs(Xk+ 1)

in particolare, seleziona XN se ts(Ti) > writeTs(XN)

Le versioni a cui non possono accedere nuove transazioni, vengono eliminate.

BUFFER MANAGER E RECOVERY MANAGER PARTI 2.3 – 2.4

* BUFFER MANAGER*

Il buffer è una zona della memoria centra.le preallocata al DBMS e condivisa tra tutte le transazioni e utilizzata anche dal sistema.

Il buffer è organizzato in pagine che hanno dimensioni multiple dei blocchi di I/ O usati dal File System. Le dimensioni tipiche vanno da 2K a 64K. Quando la pagina della memoria di massa è presente nel buffer, il DBMS può svolgere le sue operazioni di lettura e scrittura direttamente da essa e ciò comporta un vantaggio in termini di prestazione.

* PRIMITIVE PER LA GESTIONE DEL BUFFER *

Il buffer è gestito con gli stessi criteri una cache: operazioni primitive dei blocchi in cache

principio di località dei dati e strategie di replacement dei blocchi euristica: 1’80% delle applicazioni accede al 20% delle pagine

il hitratio dei Sistemi operativi

Nel caso dei DBMS occorre garantire atomicità e durabilità e quindi sono necessarie delle strategie di recovery in caso di guasto.

./ FIX: viene usata per richiedere l’accesso ad una pagina e provoca il suo eventuale caricamento nel buffer. L’operazione restituisce alla transazione il puntatore alla pagina nel buffer. Al termine dell’operazione la pagina risulta caricata e valida, cioè allocata ad una transazione attiva. L’esecuzione sulla primitiva, richiede certamente un’operazione di lettura da memoria di massa solo quando la pagina prescelta non è già residente nel buffer .

./ FUNZIONAMENTO DI FIX: Se la pagina richiesta è disponibile nel buffer allora ritorna il riferimento alla pagina, altrimenti cerca una pagina librea nel buffer. Se il buffer è pieno, seleziona una vittima: se la vittima è valida, esegue un flush della pagina e la rialloca e carica la pagina richiesta dal FS al buffer manager e infine ritorna il riferimento alla nuova pagina.

./ USE: viene usata dalla transazione per accedere alla pagina caricata precedentemente in memoria, confermando il suo stato di pagina valida.

./ UNFIX: indica al buffer manager che la transazione ha terminato di usare la pagina, che non è più valida.

./ FORCE: trasferisce in modo SINCRONO una pagina del buffer manager in memoria di massa. La transazione richiedente viene sospesa fino al termine dell’esecuzione della primitiva, che comporta un’operazione fisica di scrittura sulla memoria di massa.

  1. Le primitive di fix e use consentono di caricare nel buffer e leggere i dati, la primitiva force è usata dalle transazioni per scrivere dati nella memoria di massa.

./ FLUSH: è usata dal buffer manager stesso per trasferire in memoria di massa in modo ASINCRONO e indipendentemente dalle transazioni attive, le pagine non più valide e rimaste inattive da più tempo.

*POLITICHE DI GESTIONE DEL BUFFER *

./ STEAL: il buffer manager può selezionare come vittima una pagina attiva e non attiva.

./ NO STEAL: il buffer manager può selezionare come vittima una pagina non attiva.

./ FORCE: Le pagine di transazione attive vengono scritte su FS al momento del

commit

./ NO FORCE: le pagine di una transazione attiva vengono scritte dal buffer manager in nodo asincrono rispetto alla transazione (flush).

NO STEAL NO FORCE:

É la politica preferita dal DBMS nelle implementazioni.

La politica no steal è più semplice da realizzare perché non deve gestire la riallocazione di pagine a transazioni che hanno eseguito FIX.

Per quanto riguarda la politica no force garantisce maggior efficienza, infatti, FLUSH è eseguito secondo le politiche del buffer manager, indipendentemente dalle richieste delle transazioni.

E’ possibile anticipare i tempi di caricamento e scaricamento sulle pagine tramite PRE-FETCHING e PRE-FLUSHING, solo quando è noto a priori il comportamento delle transazioni.

* RELAZIONI TRA BUFFER MANAGER E FILE SYSTEM *

I DBMS usano i file system, ma si creano una propria astrazione del file, per garantire efficienza (tramite ilbuffer) e atomicità e persistenza (recovery manager).

Le funzioni offerte dal file system e sfruttate dal DBM sono: create e delete di un file

open e dose di un file

Read (FileID, F_Blocco, Buffer) per l’accesso diretto ad un blocco del file, individuato tramite i primi 2 parametri, che viene trascritto nella pagina del buffer indicata tramite il terzo parametro.

Read_seq(FileID, F_Blocco, Count, Buffer) per l’accesso sequenziale ad un numero fisso (count) di blocchi di un file, individuando ilprimo blocco del file tramite il secondo parametro e la prima pagina del buffer tramite l’ultimo parametro.

Write e write_seq analoghi a read e read_seq.

 

* RECOVERY MANAGER *

Il recovery manager è responsabile di garantire atomicità e persistenza e realizzare i comandi transazionali fondamentali come B(T), E(T), C(T), A(T).

Si occupa della scrittura del LOG, un archivio persistente che registra le varie azioni svolte dal DBMS. Ogni azione di scrittura sul DB viene protetta tramite un’azione sul LOG, in modo che sia possibile disfare (UNDO) le azioni a seguito di un

malfunzionamento o guasti precedenti ilcommit, oppure rifare (REDO) queste azioni qualora la loro buona riuscita sia incerta e le transazioni abbiano effettuato un commit.

L’obiettivo del recovery manager è quindi quello di gestire ilrollback di una transazione e ricostruire uno stato consistente ·del DB che rispetti la semantica delle transazioni, in seguito ad un guasto del DBMS.

* ORGANIZZAZIONE DEL LOG *

E’ un file sequenziale che viene scritto in memoria stabile, cioè una memoria non soggetta a guasti. Sul log vengono registrate le azioni svolte dalle varie transazioni, nell’ordine in cui vengono eseguite.

I record di log sono di 2 tipi:

./ RECORD DI TRANSAZIONE: registra le attività svolte da ciascuna transazione, nell’ordin. a:!a cuiL3,. ve11RP.o effettuate. Ogni transazione inserisce nel log

un record di B(T), C(T) o A{T) .

./ RECORD DI SISTEMA: indicano l’effettuazione di operazioni di checkpoint e dump. c’-t•\ t•)

* SCRITTURA DEL RECORD DI LOG *

I record di log che vengono scritti per descrivere l’azione di una transazione t1 sono: record di begin, commit e abort, che contengono oltre all’indicazione del tipo di record anche l’ identificativo T della transazione. B(T), C(T), A(T).

record di update, che contengono l’identificativo T della transazione e l’identificativo O dell’oggetto su cui avviene l’update e poi 2 valori, BS e AS, che descrivono ilvalore dell’oggetto O precedentemente alla modifica detto before state (BS) e successivamente alla modifica,After State (AS).

U(T,O,BS,AS)

record di insert e delete, analoghi all’update da cui si differenziano per la mancanza nei primi del bs e nei secondi dell’as. I(T,O,AS) ; D(T,O,BS)

QUESTI RECORD CONSENTONO DI DISFARE E RIFARE LE RISPETTIVA AZIONI SUL DB.

* PRIMITIVE DI UNDO E REDO: CONSEGUENZE *

./ UNDO: per disfare un’azione su un oggetto O è sufficiente ricopiare nell’oggetto ilvalore BS. L’insert viene disfatto cancellando l’oggetto O.

./ REDO: per rifare un’azione su un oggetto O è sufficiente ricopiare nell’oggetto il valore AS. Il dolete viene rifatto cancellando l’oggetto O.

PROPRIETA’ DI IDEMPOTENZA *

undo( undo( A ) )= undo(A) redo( redo( A ) )= redo(A)

CHECKPOINT E DUMP *

Il checkpont è un’operazione che viene svolta periodicamente con l’obiettivo di registrare le transazioni attive nel log. L’operazione viene coordinata con ilbuffer manager: si registrano gli ID delle transazioni in corso e contemporaneamente si trasferiscono tutte le pagine dei buffer relativi a transazioni che hanno effettuato il commit o l’abort, in memoria di massa.

Le operazioni effettuate dal checkpoint sono:

Per ogni transazione committed, copia le pagine di buffer su DB (FLUSH) Scrive un record CK(t l..tn) contente gli id delle transazioni attive (uncommitted).

CONSEGUENZA: per tutte le transazioni T per cui commit(T) precede CK(t l..tn) non è necessario alcun redo in caso di guasto.

SEQUENZA DI CHECKPOINT:

. 1. Sospende l’esecuzione delle transazioni

Flush del buffer (pagine attive)

Scrive il record CK(T l..Tn) su log in modo sincrone (force)

Riprende l’esecuzione delle transazioni

Il dump è una copia completa del DB, che viene effettuata in modalità OFFLINE,cioè non ci sono transazioni attive. Produce un back-up, cioè il salvataggio su memoria stabile e scrive (force) un record di dump nel log, che segnala che in quell’istante è stata effettuata una copia del DB).

GESTIONE DELLE TRANSAZIONI *

Ci sono 2 regole da seguire per ripristinare la correttezza del DB dopo dei guasti.

Regola WAL( Write Alhead Log): impone che la parte bs dei record di un log venga scritta nel log, con un’operazione di scrittura su memoria stabile, prima di effettuare la corrispondente azione sul DB.

Rende consistente le operazioni di UNDO-> un valore può sempre essere riscritto su memoria di massa con il BS scritto nel log.

Regola COMMIT PRECEDENCE: impone che la parte as dei record di un log venga scritta nel log, con un’operazione di scrittura su memoria stabile, prima di effettuare un commit.

Rende consistente le operazioni di REDO -> se una transazione e’ committed

al momento di un guasto, ma le sue pagine non sono ancora state scritte su disco, posso usare i valore AS che trovo nel log.

MODALITA’ DI UPDATE *-> SI DIFFERENZIANO PER IL MOMENTO IN CUI SCRIVONO LE PAGINE SU DB

../ Aggi,omamento immediato: la transazione scrive inizialmente il record B(T), quindi svolge le sue azioni di update, scrivendo prima il record di log U{T,O,BS,AS) e successivamente la pagina del DB; che passa da bs ad as.

Tutte queste pagine devono essere effettivamente scritte (con flush o force) dal buffer manager prima del commit, che comporta la scrittura sincrona (force).In questo modo al commit tutte le pagine del db modificate dalla transazione

sono già scritte in memoria di massa. -> NON RICHIEDE REDO

./ Aggiornamento differito: la scrittura del record di log precede quella delle azioni sul DB che però avvengono dopo la decisione di commit e la conseguente scrittura sincrona del record di comm.it su log -> NON RICHIEDE UNDO, MA RICHIEDO REDO.

./ Aggiornamento misto: le scritture nei DB una volta protette dalle opportune scritture su log, possono avvenire in qualunque momento rispetto alla scrittura dei record di comm.it su log. Questo schema consente al buffer manager di ottimizzare le operazione di flush relative ai suoi buffer, indipendentemente dal recovery manager _>RICHIEDE UNDOE REDO

* GESTIONE DEI GUASTI: CLASSIFICAZIONE *

* POLITICA DI RIPRISTINO: MODELLO FAIL – STOP*

Quando il sistema individua un guasto sia di sistema che di dispositivo, esso forza un arresto completo delle transazioni e il successivo ripristino del corretto funzionamento del SO (BOOT).

Viene attivata una procedura di ripresa a caldo (warm restart) nel caso di guasto di sistema e di ripresa a freddo (cold restart) nel caso di guasto di dispositivo.

Al termine delle procedure di ripresa, il sistema diventa nuovamente utilizzabile dalle transazioni: ilbuffer è vuoto e può riprendere a caricare pagine del DB o del log.

Gli obiettivi della procedura di ripresa: esisteranno transazioni potenzialmente attive all’atto del guasto, cioè delle quali non si conosce se abbiamo ultimato le loro azioni sul Db (perché il buffer manager ha perso le operazioni) e queste si classificano in 2 categoria in base alle informazioni presenti nel log.

Alcune di esse hanno effettuato il commit e per loro è necessario rifare le azioni al fine di garantire la persistenza.

Altre non hanno effettuato il commit e per loro è necessario disfare le azioni, in

quanto non è noto quali di esse siano state realmente effettuate, ma vi è un impegno a lasciare il Db nel suo stato iniziale precedente all’esecuzione della transazione.

  1. Alcuni sistemi registrano nel log anche il record di end, che attesta che le operazioni di flush sono terminate. In presenza del record di end, è possibile individuare una classe di transazioni per le quali non è necessario effettuare nessuna azione, né di undo né di redo.

* WARM RESTART *

Ricerca dell’ultimo checkpoint nel log

Costruzione degli insiemi Undo e Redo

Partendo dall’ultimo checkpoint

Undo contiene le transazioni uncommitted

Redo contiene le transazioni committed

Fase Undo

Ripercorre il log all’indietro disfacendo le transazioni nel setUndo

Fase Redo

Ripercorre il log in avanti rifacendo le transazioni nel set Redo

* COLD RESTART *

Caricamento del dump più recente e copia selettiva dei frammenti danneggiati

Ricerca del record di dump più recente nel log

Forward recovery dallo stato del dump

Riapplica tutte le azioni del log, nel loro ordine

Otteniamo lo stato del DB immediatamente precedente al crash

Esegue un warm restart come descritto in precedenza

 

STRUTTURE FISICHE PARTE

* Organizzazione fisica e accesso ai dati *

Le strutture fisiche d’accesso descrivono il modo in cui vengono organizzati i dati per garantire operazioni di ricerca e di modifica efficienti da parte dei programmi applicativi.L’organizzazione del contenuto del DB su file system rappresenta un compromesso tra:

E[ficienza di spazi.o: vogliamo minimizzare lo spreco di spazio nel layout fisico dei dati e la ridondanza nei dati, tenendo conto di sequenze di operazioni di inserimento, cancellazione, modifica

Efficienza di tempo: vogliamo minimizzare il tempo di accesso all’informazione, sfruttando al meglio l’informazione disponibile per il reperimento, es una chiave, un intervallo tra valori, ecc.

Quindi per tipi d’accesso diversi, la struttura ottimale cambia. Il DBMS fornisce:

Il supporto per creare e mantenere strutture dati ausiliarie per l’accesso

Una suite di metodi d’accesso, che sfruttano ciascuno le strutture dati ausiliarie disponibili

Algoritmi per la scelta del metodo ottimale, data un’interrogazione

Metodi d’accesso e Architettura del DBMS

Il gestore degli accessi è responsabile di trasformare un piano d’accesso, prodotto dall’ottimizzatore, in opportune sequenze d’accessi alle pagine del DB. Esso utilizza i moduli di accesso, cioè opportuni moduli sw che contengono primitive per l’accesso

e la manipolazione dei dati specifici di ciascuna organizzazione fisica. I metodi di accesso pertanto individuano i blocchi di specifici file che devono essere caricati in memoria, passando questa informazione al buffer manager.

Ad esempio, se i dati sono organizzati sequenzialmente, il metodo d’accesso può richiedere l’esecuzione di una primitiva di scansione (Scan) che legga tutti i blocchi.

Inoltre, il metodo d’accesso conosce la disposizione delle tuple nelle pagine ed è quindi in grado di individuare specifici valori all’interno di una pagina.

* Organizzazione delle tuple nelle pagine *

Sebbene ciascun metodo d’accesso possa avere una propria organizzazione delle pagine, alcuni metodi d’accesso hanno caratteristiche comuni.

In ciascuna pagina sono presenti sia informazioni utili, sia informazioni dLcontrollo.

Ogni pagina, in quanto coincidente con il blocco di memoria di massa ha una parte iniziale (block header) e finale (block trailer) contenente informazioni di controllo utilizzate dal File System.

Ogni pagina, in quanto appartenente ad una struttura di accesso, ha poi una parte iniziale (page header) e finale (page trailer) contenente informazione di controllo relativa al metodo d’accesso.

Ogni pagina ha poi un dizionario di pagina che contiene puntatori a ciascun dato utile elementare contenuto nella pagina e una parte utile che contiene i dati. Il dizionario e i dati utili crescono come stack contrapposti, lasciando libera la memoria in uno spazio contiguo tra i 2 stack.

Ogni pagina contiene un bit di parità per verificare che l’informazione in esse contenuta sia valida.

Primitive di page manager *

Inserimento e modifica di una tupla, che non comporta riorganizzazioni della pagina se esiste un sufficiente spazio contiguo per gestire i byte introdotti in più. Altrimenti, le operazioni devono essere precedute da una riorganizzazione della pagina, che ha costo limitato perché svolta in memoria centrale.

Cancellazione di una tupla, che è sempre possibile e spesso effettuata senza riorganizzare l’informazione nella pagina, ma rendendo la tupla “invalida”.

L’accesso a un campo di una particolare tupla, identificata secondo l’offset e la lunghezza del campo stesso, dopo l’identificazione della tupla può avvenire per mezzo di chiave o offset.

* Strutture fisiche *

Data Items

Data items

Consideriamo:

Le opzioni per il layout di record in blocchi

Le opzioni per l’accesso ai blocchi e quindi ai record

Un record contiene un numero fisso o variabile di campi; ogni campo può avere lunghezza fissa o variabile. (Es. Stringhe di lunghezza predefinita oppure variabile)

Il tipo di un campo indica l’interpretazione del valore.

Layout di un record

Opzioni principali per il layout di un record: – Formato fisso o variabile

– Lunghezza fissa o variabile

Nb.

Il layout dei records di norma NON è configurabile dal progettista del DB.

L’unica scelta riguarda i tipi di dati.

Record di formato e lunghezza fissa

Schema del record:

campi

tipo di ogni campo

ordine dei campi nel record

significato di ciascun campo

Record di formato e lunghezza variabile

Varianti – indicatore del tipo di record

  1. Layout di un blocco

Ci sono 5 opzioni per l’organizzazione dei blocchi:

Separazione dei records

Record Spanning: records su più blocchi

Record Clustering: record di tipo diverso nello stesso blocco Record Splitting

Record Sequencing: ordinamento fisico

  1. Separazione dei records

Opzioni:

../ record a lunghezza fissa => nessun separatore

../ marker di separazione

../ indicazione di lunghezza/ offset, cioè distanza dall’origine

in ciascun record

nell’header del blocco 2. Spanning

../ No spanning: un record deve essere contenuto in un unico blocco

NB.

C’è un potenziale spreco di spazio: se block-size=B e i record hanno lunghezza fissa R B, lo spreco di spazio è B – (Trunc (B / R)*R) bytes .

../ Spanning: un record può essere allocato su più di un blocco

Occorre un puntatore al blocco con i l resto del record

Utilizzando spanning, il blocking factor bfr = Trunc( B / R) rappresenta il numero medio di records per blocco. In questo caso, il numero di blocchi necessari per memorizzare r records è: b = upper( r I bfr )

Clustering di records

Obiettivo: memorizzare nello stesso blocco records che vengono acceduti spesso insieme

  • Es. Impiegato dipartimento (vincolo ref erenziale)

Es. In questa query si può sfruttare la co-locazione: Ma nella query:

Q l: select EMP.nome, DEPT.nome, … from EMP, DEPT

where EMP.DEPT_NAME = DEPT.NAME

Q2: select * from EMP è controproducente!

Record splitting

Obiettivo: memorizzare separatamente la parte fissa e quella variabile di un record ibrido.

Record sequencing

Obiettivo: mantenere l’ordinamento secondo un campo chiave all’interno del blocco e quindi del file.

Consente la lettura efficiente di records nell’ordine indotto dal campo chiave (utile nelle operazioni di merge-join)

Opzione a): record fisicamente contigui

Opzione b): record collegati (linked)

 

* Strutture e metodi d’accesso fisico *

Ogni DBMS ha un numero limitato di tipi di metodi d’accesso:

Strutture sequenziali

Strutture con accesso calcolato (o hash) Strutture ad albero (o a indice)

  1. Strutture sequenziali

Sono caratterizzate da una disposizione sequenziale delle tuple in memoria di massa; il file è costituito da vari blocchi di memoria consecutivi e le tuple vengono inserite nei blocchi rispettando una sequenza. Tale sequenza è di vari tipi:

  • Sequenziale non ordinata:

  • Ad array:

  • Sequenziale ordinata:

  1. A) Struttura sequenziale non ordinata

E’ ottimale per svolgere operazioni di lettura e scrittura sequenziali. C’è un uso efficiente dei blocchi solo per l’append:

Ultimo blocco è copiato nel buffer Il nuovo record viene aggiunto

Il blocco viene riscritto

Altre operazioni: dipende dallo schema di allocazione dei blocchi

Cancellazione: se lo schema del blocco lo prevede, inserisce un mar}{_er, altrimenti lascia un buco. In ogni caso richiede la riorganizzazione periodica dell’intero file (packing)

  1. B) Struttura sequenziale ad array

E’ possibile solo quando le tuple di una tabella sono di lunghezza fissa. In tal caso al file viene associato un numero N di blocchi contigui e ciascun blocco è dotato di un numero M di slot disponibili per le tuple, dando luogo ad un array di N*M slot; ogni tupla è dotata di un valore numerico che funge da indice e viene posta nella

i-esima posizione dell’array. PRIMITIVE:

Le cancellazioni creano slot liberi, gli inserimenti devono essere svolti negli slot liberi o al termine del file.

Accesso via READ_IND -> lettura tupla con un determinato valore per indice

Struttura sequenziale ordinata

La posizione fisica di ogni record è determinata dal valore di uno dei suoi campi, detto campo chiave (es. Codice fiscale, cognome, ecc.)

Da’ alle tuple un ordinamento fisico che riflette l’ordinamento lessico-grafico dei campi chiavi.

Ricerca efficiente basata su ricerca binaria sul campo chiave (eseguita sui blocchi piuttosto che sui records) e per range queries (<, >)

Inserimenti e cancellazioni inefficienti perché richiedono riordinamenti.

Alternative

Al momento del primo caricamento, lasciare spazio non allocato per le inserzioni successive

Prevedere un overflow file non ordinato

I nuovi records vengono inseriti usando linked lists

Periodicamente, si fa un merge del file di overflow nel file principale

L’inserimento può richiedere una ricerca lineare sul file di overflow

Strutture con access o calcolato (o hash)

Garantisce un accesso associativo ai dati, in cui c’è la locazione fisica dei dati. Dipende dal valore assunto da un campo chiave.

La struttura viene realizzata allocando al file un numero B di blocchi, spesso contigui; si ottiene un buon funzionamento sovradimensionando il file e non riempiendo tutti i blocchi.

C’è un algoritmo di calcolo (hash) che, una volta applicato alla chiave, restituisce un numero compreso tra O e B-1; tale numero viene interpretato come numero del blocco, nell’ambito dei blocchi allocati al file, e usato sia per lettura che scrittura delle tuple del file.

E’ la tecnica più efficiente per queries con predicati di uguaglianza, ma è inefficiente per query con predicati di intervalli.

PRIMITIVE:

v’ hash(fileid,Key) : Blockid ->consente di trasformare un valore di chiave in un numero di blocco; riceve come parametri il nome del file e il valore di chiave e restituisce un numero del blocco.

La corrispondente funzione offerta dal sistema consta di 2 parti:

v’ folding, opera sui valori di chiave così che essi si trasformino in valori interi positivi, possibilmente distribuiti in modo uniforme.

v’ hashing, trasforma il numero positivo binario individuato in un numero intero tra O e B-1

Hashing – – Nozioni di base

Questa tecnica funzione bene se viene previsto un basso coefficiente di riempimento, cioè se sovradimensiono il file.

Collisioni ed efficienza *

Assunto:

T = numero di tuple previsto per ilfile

  • F = numero medio di tuple memorizzate in ogni pagina

Allora B = T/ (0.8 x F) utilizzando 1’80% dello spazio disponibile.

PROBLEMA PRINCIPALE DELLE STRUITURE HASH: COLLISIONI -> situazioni in

cui lo stesso numero del blocco è ritornato dall’algoritmo a partire da 2 valori diversi di chiave.

Quando si eccede il valore F, cioè il massimo numero di tuple, la situazione è critica perché si deve ricorrere ad una tecnica differente per allocare e ritrovare le tuple che non trovano posto.

SOLUZIONE: overflow chain (con scan lineare): Partono dai blocchi in cui si è verificato un numero eccessivo di collisioni. Riporta la lunghezza media della catena di overflow come funzione del rapporto (T/ (F*B)) cioè il coefficiente di riempimento del file e dl numero medio F di tuple per pagina, che varia da 1 a 10.

1 2 3 5 10 (F)
.5 0.5 0.177 0.087 0.031 0.005,
.6 0.75 0.293 0.158 0.066 0.015
.7 1.167 0.494 0.286 0.136 0.042
.8 2.0 0.903 0.554 0.289 0.110
.9 4.495 2.146 1.377 0.777 0.345

T/(F xB)

  1. L’hashing è la tecnica più efficiente per accedere a db a predicati di uguaglianza con valori definiti nell’interrogazione.

Strutture ad albero

Le strutture ad albero, B-tree o B+tree sono le più frequentemente usate nei DBMS di tipo relazionale. Esse contengono accessi associativi in base ad un valore di uno o più attributi chiave, senza vincolare la collocazione fisica delle tuple in posizioni specifiche del file.

Ogni albero è caratterizzato da:

Un nodo Ogni nodo coincide con una radice

Nodi interni pagina o blocco a livello di file system e di buffer

Nodi foglia manager.

I link tra i nodi sono stabiliti dai puntatori che collegano fra loro le pagine.

Ogni nodo ha un grande numero di discendenti (fan out) e quindi la maggioranza di blocchi sono nodi foglia

NB: Un requisito importante per il buon funzionamento di queste strutture è che gli alberi siano bilanciati, cioè la distanza tra la radice e ogni foglia sia costante.

* Organizzazione dei nodi *

Nodo Intermedio

Ogni nodo intermedio presenta una sequenza di F valori ordinati di chiave.

Ogni chiave Ki, 1 i F, è seguita da un puntatore Pi, Ki è preceduta dal puntatore Pi-1. Il primo puntatore è Po.

Ciascun nodo contiene F valori di chiave e F+ 1 puntatori. Il valore F+ 1 è detto fan out

Nodo foglia

Ci sono due tipi d’alberi:

./ Key-sequenced trees: la posizione di una tupla è vincolata dal valore assunto dal suo campo chiave. Il record contenuto è nella foglia.

E’ tipico quando la chiave è proprio la chiave primaria dei record .

./ Indirect trees: le foglie contengono puntatori ai records. Le tuple possono essere allocate con un qualunque altro meccanismo primario (sequenziale dei tre tipi o hash). E’ tipico quando la chiave è una chiave secondaria e quindi a un valore corrispondono più record

Operazioni su alberi *

./ Ricerca: Ad ogni NODO INTERMEDIO:

Se V < K l segui PO

Se V > KF segui PF

Altrimenti, segui il puntatore Pj tale che Kj .s.V .::_ Kj+ 1

./ Split and merge: L’inserimento non provoca problemi quando è possibile inserire il nuovo valore della chiave in una foglia dell’albero, la cui pagina ha uno slot libero; in tal caso l’indice rimane inalterato e il nuovo valore di chiave viene ritrovato semplicemente applicando l’algoritmo di ricerca. Quando, invece una pagina della foglia non ha spazio libero, si rende necessaria un’operazione di SPLIT, che suddivide l’informazione già presente nella foglia in due, in modo equilibrato, allocando due foglie al posto di una. Uno SPLIT CAUSA IL CRESCERE DI UN’ UNITA DEI PUNTATORI AL LIVELLO

SUPERIORE DELL’ALBERO. L’inserimento è facilitato se ci sono slot liberi.

./ Cancellazi.one: viene fatta marcando una tupla come invalida. Quando una chiave è cancellata, è meglio ritrovare la successiva chiave e sostituirla. In questo modo l’insieme delle chiavi nell’albero coincide con l’insieme delle chiavi nella base di dati. Quando la cancellazione lascia due pagine adiacenti sottoutilizzate, esse sono fuse in una pagina singola con un’operazione di MERGE. LA MERGE PROVOCA UNA RIDUZIONE NEL NUMERO DEI PUNTATORI NEL NODO A PIÙ ALTO LIVELLO E PUÒ DAR LUOGO AD UNA ULTERIORE FUSIONE.

Strutture ad albero: efficienza *

Consentono accesso associativo per chiave

Accesso efficiente sia per valore singolo che per intervalli di valore

Non vincola l’organizzazione dei blocchi di records puntati dall’indice

Le strutture ad albero sono le più comunemente usate nei DBMS

Alberi bilanciati *

Proprietà: la lunghezza dei cammini verso ogni foglia è uguale. Ciò è ottenuto tramite opportuna strategia di esecuzione delle operazioni di split e merge -> i tempi di accesso alle foglie sono quasi costanti.

Albero bilanciato •Albero non bilanciato

Ci sono due tipi di alberi bilanciati:

Btrees

B+trees

Differenze tra B+ trees e B-trees:

Le foglie nel B+trees sono concatenate secondo l’ordine della chiave e il valore di una chiave può essere ripetuto nell’albero.

Nei B-tree non c’è concatenamento sequenziale delle foglie. I nodi interni usano due puntatori per ogni valore Ki della chiave. Un puntatore al blocco che contiene il record corrispondente a Ki e un puntatore al sotto-albero con chiavi comprese tra Ki e Ki+ 1.

Conseguenze *

B+trees:

Potenziale maggiore occupazione di memoria

Supporto efficiente di range queries

Usati comunemente da RDBMS

B-trees

Minore occupazione di memoria

Alcune ricerche più efficienti (quelle relative a chiavi che puntano direttamente al record)

* Efficienza dei B e B+ alberi *

Normalmente alta perché le pagine ai primi livelli dell’albero sono spesso nel buffer, visto che sono frequentemente accedute dalle transazioni. Ciò comporta una potenziale contesa e deadlock, che però ha probabilità ridotta perché in genere le transazioni leggono l’albero e raramente lo aggiornano.

* Indexing, hashing e uso di indici in SOL *

Quando conviene usare hashing?

Queries per valore di chiave

Quando conviene usare indici?

Range queries

SELCT … FROM R WHERE R.A = 5

SELECT …

FROM R WHERE R.A > 5

Creazione di indici in SOL:

Create index name on rel (attr)

Create unique index name on rel (attr) Drop INDEX name Candidate key

* Index design *

Primary index: uno con struttura key sequenze che supportano una ricerca di tipo sequenziale -> normalmente unica. · . .

Secondary index: molti con alberi e/o strutture hash -> normalmente su attributi usati da condizioni nelle query.

QUERY OPTIMIZER PARTE 2.6

* Introduzione all’ottimizzazione di queries *

* Approcci alla compilazione di queries *

Compila e memorizza: la query è compilata una volta ed eseguita più volte; il codice interno è memorizzato nel DB, insieme alle dipendenze del codice da particolari versioni delle tabelle e degli indici lette nel dizionario. In presenza di cambiamenti, la compilazione dell’interrogazione è invalidata e ripetuta.

Compila ed esegui: esecuzione immediata, nessuna memorizzazione.

* Passi di Query Processing *

Scanning Parsing (syntax check)

Query code

Programm ì di accesso

Riceve in ingresso un’interrogazione scritta in SQL.

L’interrogazione viene analizzata per determinare eventuali errori SINTATTICI; SEMANTICI E LESSICALI, che vengono sottoposti all’utente per la correzione. In questa fase il sistema accede al dizionario dei dati per leggere l’informazione contenuta e consentire i controlli; dal dizionario sono lette anche le informazioni statistiche relative alle dimensioni delle tabelle.

Una volta accettata, l’interrogazione viene tradotta in una forma interna di tipo algebrico. Ora inizia l’ottimizazione vera e propria. Si compone delle seguenti fasi:

Viene svolta un’ottimizzazione di tipo algebrico che consiste nell’effettuare tutte le trasformazioni algebriche che

si ritiene siano convenienti. Ottimizzazione basata sui costi di sistema (Il O, CPU, etc)

Viene svolta un’ottimizzazione che dipende dalla tipologia dei metodi d’accesso ai dati supportati dal sottostante livello sia dal modello dei

costi assunto.

Infine c’è la generazione del codice.

  1. Implementazione delle operazioni elementari

Le operazioni elementari sono gli scan, gli ordinamenti e l’accesso con indice.

Scansione: realizza un accesso sequenziale a tutti i record di una tabella. Può essere utilizzata in operazioni di

Proiezione Selezione

Ordinamenti: ci sono vari metodi per ordinare i da.ti in memoria principale. I DBMSs usualmente non possono caricare tutto il DB nel buffer perciò, ordinano separatamente e poi effettuano il merge di tabelle, usando lo spazio disponibile nel buffer.

Accesso con indice: gli indici d’accesso sono creati dall’amministratore della BD per favorire l’accesso associativo delle interrogazioni quando includono:

Predicati semplici (es. Ai = v)

Predicati d’intervallo (es. vl 5 Ai 5 v2).

Questi predicati sono detti valutabili dall’indice: in presenza di congiunzioni o disgiunzioni di predicati accade in generale che alcuni predicati siano valutabili mentre altri no.

  1. Implementazione di operazioni algebriche: selezi.one. ioin Implementazione della selezione:

Predicati di selezione semplici -> es. cr dno=5 (employee)

Predicati con çcmgiUil.zione di condizioni -> es. cr dno=5 and salary>30000 !illQ sex= F

(employee)

Predicati con c::ltsgiunzione di condizioni -> es. cr dno=5 9r salary>30000 or sex=F (employee)

Selezioni semplici:

Metodi d’accesso disponibili:

Scan lineare

Ricerca binaria -> per file ordinati sulla stessa chiave del predicato

Accesso ad indice · ·

Strategie nel caso di conqiunzi.one di predicati:

Il DBMS sceglie il predicato valutabile più selettivo per l’accesso primario e valuta gli altri predicati nel buffer. (es: trova tutte le persone con più di 100 anni e gli occhi neri).

Selettività delle condizi.oni:

É il rapporto tra il numero di records che soddisfa la condizione e il numero di records totale del file (relazione). Assumendo uniformità di distribuzione dei valori di un attributo, è pari alla probabilità che un record soddisfi una condizione su un attributo.

Selettività di Ai = v su una relazione R: sel (Ai = v, R)

quando Ai è chiave: 1I IR I

quando sono presenti n valori distinti per Ai: 1/ n

Il DBMS stima la selettività in base a statistiche raccolte durante l’esecuzione di query precedenti. I predicati con congiunzioni sono valutati partendo dall’attributo più selettivo: mini (sel (Ai = v, R)).

Strategi,e nel caso di disqi,unzione di predicati:

Se qualcuno non è valutabile è necessario uno scan; se tutti sono valutabili, si possono utilizzare gli indici oppure uno scan; se si utilizzano gli indici allora occorre eliminare i duplicati.

Conviene uno scan quando l’interrogazione è poco selettiva. (es: trova tutte le persone con più di 100 anni o gli occhi neri)

Join : metodi per il calcolo del fo in

I join sono le operazioni più costose (e spesso più frequenti) per un DBMS. Esistono vari metodi per la valutazione di join:

nested-loop Tali metodi sono basati su uso combinato di:

single loop – scan

merge-scan – hashing

hnsh – sort

Valutazi.one dei costi usati per confrontare i diversi metodi:

Costi d’accesso a memoria secondaria

Costi di memorizzazione di file intermedi

Costi di calcolo

Costi d’utilizzo della memoria principale

Il fattore di costo più importante è il primo, misurato con il numero di blocchi caricati nel buffer durante il calcolo del join. Si trascurano i costi di accesso al disco e le code al canale e i costi di memorizzazione dei risultati su memoria secondaria (blocchi caricati su disco).

Nel nested loop una tabella viene definita come ESTERNA e una come INTERNA. Si apre una scansione sulla tabella esterna; per ogni tupìa ritrovata dalla scansione, si preleva ilvalore dell’attributo di join e si cercano qumai le tuple della tabella interna che hanno lo stesso valore.

* Efficienza di nested-loop join *

Conviene usare il file più piccolo per il ciclo esterno -> ottimizza l’uso dei blocchi di buffer e quindi il numero di caricamenti di blocchi: infatti, applichiamo il metodo di valutazione dei costi.

Es: EMP join dno=dnumber DEPT

Se DEPT occupa bD = 10 blocchi e EMP occupa bE = 2.000 blocchi e assumiamo di avere nB = 6 blocchi di buffer disponibili.

Assumiamo di usare EMP per il ciclo esterno Strategia d’allocazione dei blocchi:

Usiamo nB -1 blocchi per EMP, 1 blocco per DEPT

allora: ogni blocco in EMP viene letto una volta

l’intero file DEPT viene letto ogni volta che viene caricato un nuovo set di (nB -1) blocchi di EMP

Numero totale di blocchi caricati:

EMP: bE

DEPT: bD * [bE / (nB -1)].

Totale = 2.000 + 10*(2.000/ 5) = 6.000 blocchi

Usando invece DEPT per il ciclo esterno, otteniamo

Totale = 10 + 2.000*(10/ 5) = 4.010 blocchi

Single loop join

Variante al nested-loop se esiste una struttura d ‘accesso diretto su B di S. Per ogni record r in R cerca con accesso diretto i record s in S tali che s(B) = r(A).

Es: EMP join ssn = mgrssn DEPT “ogni dipartimento con il proprio manager” Ora il numero di blocchi trasferiti è influenzato da:

  • bD numero di blocchi di DEPT, * bE numero di blocchi di EMP

Join selection factor (JSF) cioè la percentuale di record che sono messi in join con l’altra relazione.

Assumiamo I DEPT I = 50, I EMP I = 5000

JSF (DEPT) = 1 (perché ogni dipartimento ha un manager)

JSF (EMP) = 50/ 5000 = 0,01 (perché solo gli impiegati che sono manager partecipano al join)

IL = numero di livelli della struttura ad indici che deve essere visitata

Assumiamo che siano definiti indici secondari su:

SSN con IL (SSN) = 4 e su

MGRSSN con IL(MGRSSN) = 2

Single loop su EMP

Numero di blocchi = bE + ( I EMP I (ILIDEP’I1 + 1)) = 2.000 +(5.0003)= 17.000

  1. Single loop su DEPT

Numero di blocchi = bD + ( I DEPT I *(IL(EMP) + 1)) = 10 + (50 * 5)=260

In altre parole:

dato d in DEPT: la probabilità di trovare e in EMP tale che d.mgrssn = e.ssn è pari ad 1 (nessuno spreco di accessi)

dato e in EMP: la probabilità di trovare d in DEPT tale che d.mgrssn = e.ssn = 50/ 5000 (carico inutilmente 4950 records di EMP!!)

Conviene usare DEPT (cioè la relazione con selection factor più alto) nel ciclo esterno, EMP nel ciclo interno con indice secondario su EMP.SSN

  1. Merge-scan foin

Questa tecnica assume che entrambe le tabelle siano ordinate in base agli attributi di join. Vengono aperte due scansioni su di esse, che a questo punto scorrono le tuple in parallelo. Le scansioni possono così ritrovare nelle tuple valori ordinati degli attributi di join; quando coincidono vengono generate ordinatamente tuple del risultato. È utilizzabile anche su indici secondari (più record per ogni valore della chiave), tuttavia se i records puntati non sono fisicamente adiacenti, è necessario un numero maggiore di caricamenti di blocchi.

Costo del merge-scan join:

unico passaggio su ciascun file

blocchi caricati: #blocchi R + #blocchi S

Richiede però l’ordinamento sugli attributi di join!

Hash- join

È un algoritmo a due fasi.

FASE 1:

Irecord di R e S sono memorizzati in una tabella hash: usando come chiavi R.A e

S.B e la stessa hash function h per R.A e S.B.

Calcola h( r[A] ) per ogni r in R, e h( s[B] ) per ogni s in S. Richiede uno scan di R e S;

Osservazi.one:

Dati r in R e s in S, se r[A]= s[B], allora h( r[A] ) = h( s[B] ): r e s appartengono allo stesso bucket (blocco su disco).

Quindi, è sufficiente effettuare join limitati ad ogni bucket.

Passo b): Per ogni bucket indotto da h(), effettua il join dei record all’interno del bucket. Iljoin globale è l’unione dei join di ogni bucket.

Costo dell’ hash-join:

unico passaggio su ciascun file

non richiede ordinamento

  1. Ottimizzazi.one algebrica

Tenuto conto che l’algebra relazionale è caratterizzata da molte regole di trasformazione di equivalenza, si applicano all’albero trasformazioni equivalenti che riducono tempo di esecuzione o occupazione di memoria.

i- SEQUENZA a -> Una selezione congiuntiva può essere sostituita da una sequenza d’operazioni di selezione individuali.

ES: o- 1ANJ:Lç2._ ANJ:?. -S’.!!:JRJ gy_iyal It . IJ Jq ç (.,,o çn(R’.).Jl

COMM a -> Commutatività della selezione. ES: o cl (o c2(R.)) equivalente o c2 (o cl( R ))

COMM a X -> Commutatività di selezione e prodotto cartesiano. ES: o c( R X S ) equivalente (o c (R.)) X S

COMM a n -> Commutatività di selezione e proiezione. ES: o c (n (R)) equivalente n (o c (R))

  1. EQIUV X a e Join -> Equivalenza di prodotto cartesiano e selezione con Join.
  2. COMM n e Join -> Commutatività di proiezione e join.

Osservazione: selezioni e proiezioni riducono le dimensioni dei file e migliorano la performance del join. Il costo di join è proporzionale alle dimensioni dei file, perché consideriamo il numero di blocchi caricati nel buffer. ·

 

REGOLA: applicare selezione e proiezione prima. possibi le e in ogni caso prima. di calcolare i join.

  1. Ottimizzazione basata sui costi

Ottimizzazione basata sui costi:

Occorre scegliere, in presenza di alternative, quali operazi.oni di accesso ai dati svolgere. In particolare, per quanto concerne il primo accesso ai dati, occorre talvolta scegliere fra uno scan e un accesso tramite indici.

Occorre scegliere l’ordine delle operazi.oni da compiere (ad es. l’ordine fra i vari join dell’interrogazione).

Quando il sistema offre varie alternative per la realizzazione di un ‘operazione,

occorre scegliere quale alternativa associare a ciascuna operazi.one.

Quando l’interrogazione o il metodo di realizzazione di un’operazione richiedono un ordinamento, occorre definire a quale livello della strategia svolgere l’operazi.one d’ordinamento.

Approccio per l’ottimizzazione:

Gli ottimizzatori costruiscono un albero delle alternative, in cui ogni nodo corrisponde a fissare una particolare opzione fra quelle citate in precedenza. Ogni nodo FOGLIA dell’albero corrisponde a fissare una specifica strategia di esecuzfone dell’interrogazione, descritta dalle scelte che si trovano percorrendo il cammino che va dalla radice al nodo foglia. IL PROBLMA DELL’OTTIMIZZAZIONE è RIFORMULATO NELLA RICERCA DEL NODO FOGLIA A CUI CORRISPONDE UN COSTO MINORE.

Ogni nodo foglia ha un costo pari a Ctotale = C I/O * n I/O + Ccpu * ncpu. con

C 1;0 , Ccpu parametri noti e

n I/O e ncpu sono valori globali che indicano il numero d’operazioni d’ingresso/ uscita e il numero d’istruzioni necessarie per valutare il risultato dell’interrogazione.

Profili delle relazioni:

Ciascun DBMS commerciale possiede informazioni quantitative relative alle caratteristiche delle tabelle, organizzate in strutture dati, dette profili delle relazi.oni, che vengono memorizzare nel dizionario dei dati. I profili contengono queste informazioni:

la cardinalità CARD(T) (numero di p ) di ciascuna tabella T

la dimensione in byte, SIZE(T) di ciascuna tupla di T (fissa, media)

la dimensione in byte, SIZE(Aj,T): di ciascun attributo Aj di T;

il numero di valori distinti VAL(Aj,T) di ciascun attributo Aj di T;

i valori minimo MIN(Aj,T) e massimo MAX(Aj,T), di ciascun attributo Aj di T

bfr = # records / blocco in T

L’amministratore periodicamente calcola i valori dei profili (primitiva update statistics).

Obiettivo della valutazione basata sui costi:

Formulare ipotesi sulla dimensione dei risultati intermedi prodotti dalla valutazione d’operazioni algebriche con un approccio statistico.

Data T, vogliamo calcolare il profilo di

T’ = a Ai=v (T)

T’ = n A l…,An (T)

T’ = Tl join A=B T2

Approssimazioni nelle formule:

Uniforme distribuzione dei dati nelle tabelle

Assenza di correlazione tra le varie condizioni presenti nell’interrogazione

Assenza d’informazione ulteriore sui domini di valori

Altre tecniche:

Realizzazfone ad hoc di strutture temporanee

Pipelining, cioè possibilità di eseguire l’intero albero delle operazioni per una parte delle tuple estratte, invece che realizzare interamente ogni operazione.

Parallelismo, cioè possibilità di eseguire parti delle query indipendentemente con diversi processori

Talvolta è necessario riscrivere i risultati in memoria secondaria, ciò aumenta i costi.

Progettazione fisica per modelli relazionali:

Molti DBMS relazionali supportano solo gli indici e il clustering delle tuple: la progettazione fisica può essere ridotta all’attività di identificazione degli indici definiti in ogni relazione. La chiave di una relazione è spesso involved in selection or join operations (or both). For this reason, each relation normally supports a unique index on the primary key

Other indexes are added so as to support the most common query predicates

If the performance is unsatisfactory, we can tune the system by adding or dropping indexes

It is useful to check how indexes are used by queries, by using the show plan command.

SISTEMI DI BD DISTRIBUITE, ETEROGENEE E AUTONOME PARTE 3.1

Finora abbiamo trattato problematiche riguardanti i sistemi di gestione di basi di dati centralizzati.

L’ architettura dati di un DBMS centralizzato e’ stata definita dall’ente ANSI/SPARC ed e’

a tre livelli

* Le caratteristiche di un DBMS centralizzato *

Unico schema logico, quindi unica semantica;

Unica base di dati, quindi unico insieme di record osservati e aggiornati da tutti gli utenti;

Unico schema fisico, quindi unica rappresentazione dei dati;

Unico linguaggio di interrogazi.one, quindi unica modalità di accesso e selezione dei dati di interesse;

Unico sistema di gestione, quindi unica modalità di accesso e aggiornamento

per le transazioni;

Unica mod alità di ripristino afronte di guasti.

Architettura di un sistema DB distribuito

* Caratteristiche dei sistemi di Basi di Dati DEA *

Distribuzione dei dati su server multipli

Frammentazione:’ porzioni diverse del DB sono allocate a server diversi

Replicazione: esistono copie multiple di porzioni del DB, allocate su server diversi

Trasparenza: un DDBMS offre diversi gradi di trasparenza nell’accesso a dati distribuiti e la gestione di transazioni globali su più server.

  1. Frammentazi.one e allocazi.one deiframmenti

Data una relazione R, si definiscono due tipi di frammenti di R:

./ Frammentazione orizzontale: partizione di R in n relazioni (frammenti)

{Rl ,…Rn} tali che:

./ Schema(Ri) = schema(R) per tutti gli i;

./ Ogni Ri contiene un sottoinsieme dei records di R

./ Normalmente definito da una selezione, i.e. Ri = a Ci (R)

./ Completa: Rl U R2 U …U Rn = R

70

./ Frammentazione verticale: partizione di R in n relazioni (frammenti)

{Rl ,…Rn} tali che:

./ Schema(R) = L = (A l,…Am), Schema(Ri) = Li = (Ai l , …,Aik)

./ Li U L2 U …U Ln = L

./ Li n Lj = chiave primaria (R) per ogni i j

* Regole di correttezza della frammentazione *

Completezza -> ogni record della relazione R frammentata deve poter essere ritrovato in almeno uno dei frammenti

Ricostruibilità -> La relazione R di partenza deve poter essere ricostruita senza

perdita di informazione a partire dai frammenti

Disgiunzione -> Ogni record della Relazione R deve essere rappresentato in uno solo dei frammenti

NB La disgiunzione può essere persa per scopi di ottimizzazione delle interrogazioni (attenzione: rende più costosa la consistenza delle diverse copie)

* Schemi di allocazione dei frammenti *

Ogni frammento è allocato in generale su un nodo diverso (e su fùe diversi) quindi, la relazione esiste solo in modo virtuale cioè non è materializzata su un unico nodo.

Lo schema di allocazione descrive il mapping Frammento -> nodo

Mapping non-ridondante: esiste una sola copia di ogni frammento su un unico nodo.

Mapping ridond ante: almeno un frammento è replicato su più di un nodo.

  1. Livelli di trasparenza nei sistemi di BD DEA

Trasparenza: separazione della semantica di alto livello (eg queries SQL) da dettagli implementativi di più basso livello

Livelli di trasparenza specifici del caso distribuito:

Dati

Frammentazione

  1. C) Replicazione (Allocazione)
  2. D) Linguaggio
  1. A) Indipendenza dei dati

Invarianza delle applicazioni (transazioni, interrogazioni) da camibamenti nella definizione e organizzazione dei dati

./’ Logical Data Independence: indipendenza dell’applicazione da perturbazioni

dello schema logico; un’applicazione che utilizza un frammento dello schema non subisce modifiche quando altri frammenti vengono modificati

./’ Physical Data Independence: indipendenza dell’applicazione da perturbazioni

dello schema fisico garantite dai tre livelli ANSI – SPARK

  1. B) Trasparenza di Frammentazione

L’applicazione ignora l’esistenza di frammenti cioè relazione -> sotto-relazioni. Problema: una query definita su un’intera relazione va ora scomposta in più query, una per ogni sotto-relazione. Global query -> fragment queries.

La strategia di query processing è basata sui frammenti piuttosto che sull’intera relazione

Trasparenza di Replicazione

L’applicazione è consapevole dei frammenti, ma ne ignora l’allocazione sui nodi La replicazione migliora la performance: consente di supportare applicazioni con requisiti operazionali diversi sugli stessi dati

Aumenta la località dei dati utilizzati da ogni applicazione: aumenta l’affidabilità

complessiva

Spazio delle decisioni: si decidono quali frammenti replicare, quante copie mantenere e dove allocare le copie.

Complicazioni architetturali: gestione della transazioni e updates di copie multiple

Trasparenza di linguaggio

L’applicazione deve specificare sia i frammenti che il loro nodo, ma non deve conoscere lo specifico linguaggio o dialetto di interrogazione

Transparenza di allocazione

L’applicazione deve indirizzare i f rammenti ma senza specif icare la loro allocazione

Trasparenza di linguaggio

L’applicazìone deve indìrizzare sia i frammenti che la loro allocazione, non deve conoscere il linguaggio utilizzato nel nodo

Queries espresse a livelli piu1 alti di trasparenza vengono tradotte a

questo livello dal!’ ottim izzatore di query distr i buite

* Criteri di classificazione dei sistemi di BD DEA *

Modelli architetturali per DDBMS

Un DBMS DEA è in generale una federazione di DBMS che collaborano nel fornire servizi di accesso ai dati con livelli di trasparenza definiti (ci riferiamo ai diversi nodi del DBMS DEA).

È possibile distinguere diverse architetture e utilizzare le dimensioni ortogonali utili per la classificazione

– Autonomia

Distribuzfone

Et.erogeneità

Autonomia *

Fa riferimento alla distribuzione del controllo Si distinguono diverse forme di autonomia

../ Di design: ogni nodo adotta un proprio modello dei dati e sistema di gestione delle transazioni

../ Di comunicazione: ogni nodo sceglie la porzione di dati che intende condividere

con altri nodi

../ Di esecuzione: ogni nodo decide in che modo eseguire le transazioni che gli vengono sottoposte.

Tipi di autonomia

../ DBMS Strettamente integrati (nessuna autonomia)

Dati logicamente centralizzati

Un unico data manager responsabile delle transazioni applicative

I data managers noµ operano in modo autonomo

../ Semi-autonomi

Ogni data manager è autonomo ma partecipa a transazioni globali

Una parte dei dati è condivisa

Richiedono modifiche architetturali per poter fare parte della federazione

../ Totalmente autonomi

Ogni DBMS lavora in completa autonomia ed è inconsapevole dell’esistenza degli altri

Distribuzione *

Fa riferimento alla distribuzione dei dati. Si possono distinguere:

../ Distribuzione clienti server, in cui la gestione dei dati è concentrata nei server, mentre i client forniscono l’ambiente applicativo e la presentazione .

../ Distribuzione peer-to-peer, in cui non c’è distinzione tra client e server, e tutti i

nodi del sistema hanno identiche funzionalità DBMS

Nessuna distribuzione.

Eterogeneità *

Può riguardare

Modello dei dati ES. Relazionale, Gerarchico, Object Oriented

Linguaggio di query ES. Diversi dialetti SQL, Query by Example, Linguaggi di interrogazione 00

Gestione delle transazi.oni ES. Diversi protocolli per il concurrency control e per il

recovery

Schema concettuale e schema logico ES. Un concetto rappresentato in uno schema come attributo e in un altro come entità

Integrazione cli basi cli dati e sistemi informativi *

L’esigenza di progettare fin dall’inizio o integrare a posteriori sistemi distribuiti, eterogenei, autonomi emerge in molti casi:

-Evoluzione e/ o integrazione di componenti applicativi sviluppati separatamente (per ragioni tecniche, organizzative o temporali)

cooperazione di processi in precedenza separati

cooperazione (o fusione) di enti o aziende indipendenti ed è stimolata dallo svilu o delle reti

Tipologie di sistemi di BD distribuite

Tipologie più rilevanti sono sottolineate

../ DBMS distribuiti (DDBMS): strettamente integrati, omogenei

../ DBMS distribuiti eterogenei: strettamente integrati ma con eterogeneità di varia natura

../ DBMS federati e logicamente integrati: semiautonomous, eterogenei Es: insieme di DBMS che gestiscono dati strutturati, immagini, video, per i quali viene creata un’interfaccia integrata di accesso

../ Multi Data Base MS: totalmente autonomi, omogenei / eterogenei

* Multi DataBase Systems *

Et.erogeneità di schema: Ogni DB presenta uno schema indipendente dagli altri

Autonomia di accesso: È molto più difficile offrire trasparenza

Assenza di transazfoni globali: Un DBMS può non partecipare a transazioni controllate esternamente ·

  • Differenze nelle architetture dei DDBMS e sistemi multi database *

Le diverse tipologie danno luogo a diverse architetture dati e funzioni.

Architettura dati DDBMS

Architettura funzionale DDBMS

Architettura dati per sistemi multidatabase con schema concettuale globale senza schema concettuale globale

-Architettura funzionale per sistemi multidatabase

  • Ruolo dei DBMS ai diversi nodi *

Per ciascuna funzione (query processing, transaction manager, ecc) vi può essere una gestione:

Centralizzata/ gerarchica vs distribuita

Con assegnazione statica vs dinamica dei ruoli

* Architettura dati MDBS con schema concettuale globale *

Differenza fondamentale: definizione del Global Logical Schema

Rappresenta solo una parte dei Local Logical Schemas

Il Global Logical Schema integra i Local Logical Schemas oppure i Local External Schemas

Local Internal Schema (LIS) -> Livello fisico dell’organizzazione dati su un nodo Local Logi,cal Schema (LLS) -> Descrive lo schema logico a livello di singolo nodo Global Logical Schema (GLS) -> Livello logico globale su tutti i nodi

Extemal Schema (ES) -> Viste dello schema logico disponibili a diverse classi di

applicazioni

Architettura MDBS senza schema concettuale globale *

Nei sistemi con autonomia massima non esiste lo schema concettuale globale Le singole applicazioni negoziano la visibilità di frammenti di schemi locali per costruire schemi esterni

Ruolo del mediatore:

fornisce allo strato superiore una rappresentazione virtuale unica delle basi di dati che coordina

traduce le richieste di esecuzione di queries in termini di frammenti di queries, inviate ai wrapper

ricompone i risultati restituiti dai wrapper

./ Ruolo del wrapper:

traduce la richiesta che proviene dal mediatore in termini della rappresentazione logico fisica dello schema sottostante

restituisce ilrisultato al mediatore

* Differenze di progettazione tra DDBS e MDBS *

La natura fortemente integrata dei DDBMS porta a adottare per essi un approccio top-down alla progettazione, che rispetto alla progettazione di applicazioni DBMS

Ulteriori architetture per DBMS: il parellelismo *

Accanto alle precedenti architetture, lo sviluppo delle architetture parallele ha portato a definire anche per i DBMS modalità di accesso ai dati che sfruttano il parallelismo nella esecuzione di singole interrogazioni e di gruppi di interrogazioni

Architetture Client-server: separazione del server DB dal client

Basi di Dati DEA: diversi server DBMS utilizzati dallo stesso insieme di applicazioni

Basi di Dati Parallele: incremento delle prestazione mediante parallelismo sia di storage devices che di processore

Basi di Dati Replicate: replicazione della stessa informazione su diversi server per motivi di performance

Data warehouses: DBMS dedicati specificamente alla gestione di dati per il

supporto alle decisioni

Portabilità e interoperabilità nei DBMS DEA *

Portabilità : capacità di eseguire le stesse applicazioni DB su ambienti runtime diversi. – Compile time

– Facilitata dall’aderenza a standards (e.g.: SQL-2, SQL-3) Interoperabilità: capacità di eseguire applicazioni che coinvolgono contemporaneamente sistemi diversi ed eterogenei:

Run-time

Facilitata dalla standardizzazione dei protocolli di accesso ai dati:

Database Connectivity (ODBC)

X-Open Distributed Transaction Processing (DTP)

Normalmente limitata al livello di accesso

L’eterogeneità a livello di schema logico e/ o concettuale richiede altri strumenti di standardizzazione.

DBMS DISTRIBUITI (DDBMS) PARTE 3.2

* Vantaggi dei DDBMS *

La partizione dei dati corrisponde spesso a quella naturale delle applicazioni e degli utenti

Utenti locali vs utenti globali (ES: un’organizzazione con sedi diverse distribuite geograficamente)

Vale il principio che i dati risiedano vicino a dove vengono usati più spesso

Ma sono globalmente raggiungibili

Qualità dei DDBMS rispetto al DBMS *

I DDBMS offrono maggiore flessibilità, modularità e resistenza ai guasti

  • Distribuzione dei dati incrementale e progressiva: la configurazione si adatta alle esigenze delle applicazioni

Presenza d’elementi di rete: maggiore fragilità

+Presenza di ridondanza: maggiore resistenza ai guasti dei singoli nodi (“fail soft”)

Vantaggi di prestazioni *

Distribuendo un DB su nodi diversi, ogni nodo supporta un DB di dimensioni più ridotte – Più semplice da gestire e ottimizzare rispetto alle applicazioni locali

Ogni nodo può essere ottimizzato indipendentemente dagli altri

Traffico totale (transazioni / sec) distribuito sui nodi

– Parallelismo fra transazioni locali che fanno parte di una stessa transazione distribuita

Indipendenza locale I cooperazione tra server *

../ Ogni server mantiene la capacità di supportare applicazioni in modo indipendente

Le interazioni con altri server e applicazioni remote rappresentano un carico supplementare sul sistema

../ Traffico di rete in questa configurazione: – Queries provenienti dalle applicazioni

– Risultati provenienti dal server

../ Ottimizzazione: l’elemento critico è la rete;

../ Esigenza di distribuire i dati in modo che la maggior parte delle transazioni sia locale, o eviti lo spostamento di dati tra nodi

 

* Funzionalità specifiche dei DDBMS *

Trasmissione sia di queries che di frammenti di DB tra i nodi

Catalogo DB: deve gestire la mappa globale del DB – Frammentazione

– Replicazione

Query processor: il query plan include sub-queries locali.

Replicazione: -Strategie di sincronizzazione delle repliche

Controllo di concorrenza: algoritmi distribuiti

Strategie di recovery di singoli nodi, gestione dei guasti

* Tipiche ap plicazi. oni delle BD per tipo di DBMS e tipo di rete *

Tipo di rete Tipo di rete
Tì po di DBMS LAN WAN
Omogeneo Appiicazioni gestionali e finanzìarie Sistemi di prenotazione e applicazioni finanziarie monoorganizzazione
Eterogeneo Applicazioni gestionali ìttterfunzionali Sistemi di prenotazione e applicazionì finanziarie/bancarie plurforganizzazione

 

QUERY PROCES SING NEI DDBMS

In un contesto di dati centralizzati, le strategie d’esecuzione delle queries sono esprimibili tramite estensioni d’algebra relazionale: i query trees.

In un DDBMS, l’algebra relazionale non è più sufficiente.

Una strategia d’esecuzione deve comprendere anche le operazioni e i costi relativi a:

trasferimento di frammenti tra nodi;

scelta del sito migliore dove processare i dati

Queste nuove variabili rendono ulteriormente complessa l’ottimizzazione di query distribuite

* Obiettivi del query processing distribuito: parametri utilizzati *

Costo totale = somma dei costi delle operazioni + costi di comunicazione (trasmissione)

Response time (la computazione può essere parallela)

Rispetto al caso centralizzato, in cui i costi più rilevanti sono quelli di trasferimento dei blocchi, consideriamo i costi di comunicazione.

Costo comunicazfone = CMSG * # msgs + CTR * # butes

CMSG = costo fisso di spedizione/ ricezione messaggio (setup)

CTR = costo (fisso rispetto alla topologia!) di trasmissione dati

Response time (solo comm) = CMSG * seq # msgs + CTR * seq # bytes

seq_#msgs è il massimo numero di messaggi che devono avvenire in modo sequenziale. Cioè i costi delle operazioni in parallelo non si sommano.

* Rapporto tra costo di comunicazione e costo di 1/0 *

Nelle grandi reti geografiche costo di comunicazione> > costo di I/ O (fattore 1 a

10)

Nelle reti locali costo di comunicazione e costo di I/ O sono paragonabili Tendenza: il costo di comunicazione è ancora il fattore critico, ma si stanno avvicinando conviene utilizzare pesi nelle formule di costo.

Esempio: costi di comunicazione

Risultato

al nodo 3

Costo di trasferimento di x unità da 1 a 3 e di y unità da 2 a 3:

Costo comunicazi.one 2 CMSG + CTR * (x + y)

R,f?$Pf> tjT!J-lt = max(CMSG + CTR * x, CMSG + CTR * y) dato che x e y vengono trasferiti in parallelo

Minimizzazione response time: più parallelismo può portare ad aumento del costo totale (maggiore numero di trasmissioni e processing locale)

Minimizzazione costo totale: utilizza di più le risorse aumento del throughput

(con peggioramento del response time in generale)

  • FASI DEL QUERY PROCESSING *

Sono quattro e sono:

Query decomposition <- Global schema

Opera sullo schema logico globale

Non considera la distribuzione

Usa tecniche d ‘ottimizzazione algebrica analoghe a quelle centralizzate

Produce un query tree – non ottimizzato rispetto ai costi di comunicazione

Data localization <- Fragment schema

Considera la distribuzione dei frammenti

Ottimizza le operazioni rispetto alla frammentazione, con tecniche di riduzione Es. EMP a eno = ‘E20’

EMPl O eno = ‘E20’ U EMP2 o eno = ‘E20’ U EMP3 o eno = ‘E20’

Riduzione (E20 è solo in EMP2) EMP2 a eno = ‘E20’

Produce una query che opera sui frammenti – non ottimizzata

Global query optimization <- Statistiche sui frammenti

Strategia d’esecuzione: nel query tree agli operatori d ‘algebra relazionale vengono aggiunti gli operatori di comunicazione (send/ receive tra nodi)

Obiettivo: trovare l’ordinamento “migliore” delle operazioni definite dalla fragment

query

Utilizza modelli di costo che tengono conto dei costi di comunicazione

Le decisioni più rilevanti riguardano:

L’ordine dei join n-ari

La scelta tra join e semijoin

CONTROLLO DI CONCORRENZA NEI DDBMS *

DDBMS e transazioni – classificazione

../ Richieste remote: sono transazioni di sola lettura costituite cioè da un numero arbitrario di interrogazioni select, indirizzate a u,n solo DBMS remoto.

../ Transazioni remote: sono transazioni costituite da un nu,mero qualsiasi di

comandi SQL( select, insert, update, delete) dirette a un solo DBMS remoto .

../ Transazioni distribuite: sono transazioni rivolte a un numero generico di DBMS, ma in cu,i ciascun comando SQL fa riferimento a dati memorizzati su un solo DBMS

Richieste distribuite: sono transazioni arbitrarie costituite da un numero arbitrario di comandi SQL, in cui ciascuna query può far riferimento a dati distribuiti su qualunque DBMS.

Nel primo caso il DBMS remoto può essere solo interrogato; nel secondo caso è possibile operare scritture (ma ciascuna transazione scrive su un solo DBMS); nel terzo caso è possibile includere in una transazione scritture su più nodi, ma ciascuna interrogazione SQL è indirizzata a uno specifico DBMS; nell’ultimo caso la interrogazione SQL deve essere distribuita su più nodi.

DDBMS e proprietà ACID *

La distribuzione non ha conseguenze su consistenza e durabilità

Consistenza: non dipende dalla distribuzione, perché i vincoli descrivono solo proprietà locali ad un DBMS

Durabilità: garantita localmente da ogni sistema.

Invece, altri problemi caratterizzano la tecnologia delle basi di dati distribuite:

Ottimizzatore

Concurrency contro!(Isolamento)

Reliability contro!, recovery manager (Atomicità)

  1. Controllo di concorrenza (Isolamento)

In questo caso, una transazione ti si scompone in sotto-transazioni tij dove il secondo indice denota il nodo del sistema in cui la sotto-transazione opera.

La serializzabilità locale presso gli schedule non è una garanzia sufficiente per la serializzabilità. Osservando il grafo di conflitti globale scopriamo un ciclo tra t1 e t2.

Serializzabilità globale

La proprietà di serializzabilità globale estende quella di conflict-serializability gia vista: il grafo globale dei conflitti delle transazioni distribuite è l’unione dei grafi delle schedules locali. La schedule globale è serializzabile se e solo se il grafo è aciclico.

L’algoritmo 2PL si estende facilmente al caso distribuito e d sono due strategie:

./ Centralized 2PL

./ Primary copy 2PL

Strategia centralized 2PL

Attori:

Ogni nodo ha un Lock Manager, uno viene eletto LM coordinatore

Il Transaction Manager del nodo dove inizia la transazione è considerato TM coordinatore

La transazione è anche eseguita su altri Data Processor e corrispondenti nodi

Strategia:

Il TM coordinatore formula al LM coordinatore le richieste di lock

Il LM le concede, utilizzando un 2PL

Il TM le comunica ai DP

I DP comunicano al TM e il TM al LM la fine delle operazioni

Problema: Il nodo dell’unico lock manager diventa un cono di bottiglia

Strategia Primary copy 2PL

Per ogni risorsa prima dell’ assegnazione dei lock è individuata una copia primaria. Diversi nodi hanno lock managers attivi, ognuno gestisce una partizione dei lock complessivi, relativi alle risorse primarie residenti nel nodo.

Per ogni risorsa nella transazione, il TM comunica le richieste di lock al LM responsabile della copia primaria, che assegna i lock.

Conseguenze:

Evita il cono di bottiglia

Complicazione: è necessario determinare il lock manager che gestisce ciascuna risorsa.

– È un problema di directory globale

 

GESTIONE DEI DEADLOCK *

Dead.lock distribuito

È causato da un’attesa circolare tra due o più nodi. È gestito comunemente nei DDBMS tramite timeout. Esiste anche un’algoritmo asincrono di rilevazione del deadlock in ambiente distribuito.

Assumiamo un modello base di dati distribuita in cui le transazioni vengono decomposte in sotto-transazioni; in questo contesto è possibile che le sottotransazioni si attivino in modo sincrono e in tal caso quando la sotto­ transazione tl 1 attiva la sotto-transazione t12, tl 1 si mette in attesa della terminazione di t 11.

Questo può dare origine a due tipi di attesa:

ATTESA DA REMOTE PROCEDURE CALL: due sotto-transazioni della stessa transazione possono essere in attesa su DBMS distinti perché l’una attende la terminazione c;iell’altra

ATTESA DA RILASCIO DI RISORSA: due sotto-transazioni diverse sullo stesso DBMS possono attendersi in quanto una blocca un dato a cui l’altra vuole accedere.

* Algoritmo di risoluzione del deadlock distribuito *

È attivato periodicamente sui diversi nodi del DDBMS:

In ogni nodo, integra la sequenza d’attesa con le condizioni di attesa locale degli altri nodi logicamente legati da condizioni EXT

– Analizza le condizioni d’attesa sul nodo e gestisce i deadlock locali

Comunica le sequenze d’attesa ad altre istanze dello stesso algoritmo

È possibile che lo stesso deadlock venga riscoperto più volte. Per evitare il pròblema, l’algoritmo invia le sequenze di attesa:

in avanti, verso il nodo ove è attiva la sottotransazione ti attesa da tj

-Solamente quando i > jdove i e j sono gli identificatori delle sottotransazioni

  • RECOVERY MANAGER (ATOMICITÀ) *

Gestione dei guasti nei DDBMS

Per garantire l’atomicità è necessario che tutti i nodi che partecipano ad una transazione giungano alla stessa decisione circa la transazione (commit o abort); è perciò necessario eseguire protocolli particolari, detti protocolli di commit, che consentano ad una transazione di raggiungere correttamente una decisione di commit o abort.

Un sistema distribuito è soggetto alle cadute di un nodo, che possono avvenire su

ogni elaboratore; il guasto su un nodo può essere sw o hd. In aggiunta alle cadute dei nodi, è possibile che vengano persi dei messaggi, che lasciano l’esecuzione di un protocollo in situazione di incertezza. Proprio per garantire l’avanzamento di un protocollo, ciascun messaggio del protocollo è seguito da un messaggio di risposta, detto ACK; tuttavia la perdita di uno dei due messaggi, quello primario o quello di ACK, lascia ilmittente in una situazione d’incertezza.

Dato che i messaggi possono essere persi, i protocolli di commit pongono un tempo limite alla ricezione del messaggio d’ack, trascorso il quale il mittente decide di procedere comunque con il protocollo.

Infine, è possibile che qualche collegamento della rete si interrompa; in tal caso, oltre alla perdita di messaggi, si può verificare il partizi. onamento della rete in 2 sotto reti che non comunicano tra loro.

Il protocollo two phase commit (2PC) *

Ricorda nelle sue linee generali un matrimonio. La decisione di due persone viene accolta e ratificata da una terza persona, che celebra il matrimonio. Perché il matrimonio abbia luogo è necessario che entrambi i partecipanti esprimano la volontà di sposarsi; il celebrante, durante la prima fase, raccoglie il desiderio di sposarsi espresso separatamente dai due partecipanti , per poi in una seconda fase, dar loro notizia che il matrimonio è avvenuto.

Promesso sposo —+ ciascun server —+ resource manager (RM)

Celebrante (Coordinatore) —+ processo —+ Transaction Manager (TM)

I protocolli di commit consentono ad una transazione di giungere ad una decisione d ‘abort/ commit su ciascuno dei nodi che partecipano ad una transazione.

Idea: la decisione di commit/ abort tra due o più partecipanti è coordinata e certificata da un ulteriore partecipante

Il protocollo si basa sullo scambio di messaggi tra TM e RM, che per rendere il protocollo resistente ai guasti, RM e TM scrivono alcuni nuovi record nel loro log.

./ FASE I 2PC:

  1. Il TM chiede a tutti nodi come intendano terminare la transazione

Ogni nodo decide autonomamente se commit o abort e comunica unilateralmente la sua decisione irrevocabile.

../ FASE II 2PL:

Il TM prende la decisione globale ( se uno solo vuole l’abort questo comporta un abort per tutti, altrimenti commit)

Il TM comunica a tutti la decisione per le azioni locali.

Prepare record: contiene l’identità di tutti i RM identificativo del nodo +

processo

Global commit o global abort record: descrive la decisione globale. La decisione del TM diventa esecutiva quando il TM scrive nel proprio log il record global commit o global abort.

Complete record: scritto alla fine del protocollo.

Nuovi records di log – RM

Read y record: disponibilità irrevocabile del RM a partecipare alla fase di commit. Su tale record viene scritto anche l’identificativo (numero di nodo e di processo) del TM.

Assume che il RM sia “recoverable”,cioè mantiene i locks su tutte le risorse che devono essere scritte

Contiene anche l’identificatore del TM

Inoltre, come nel caso centralizzato vengono scritti anche i records begin, insert, delete, update, commit.

Not ready record: indisponibilità del RM al commit.

* Protocollo 2PC in assenza di guasti *

In assenza di guasti, il protocollo di commit a due fasi consiste in una rapida sequenza di scritture sul log e di scambi di messaggi tra TM e RM; nella comunicazione con gli RM, il TM può utilizzare meccanismi di broadcast, cioè che trasmettono a molti nodi lo stesso messaggio e deve essere poi in grado di collezionare risposte provenienti da vari nodi. PJtrimenti, il TM utilizza una comunicazione seriale con tutti i sistemi RM.

Prima fase di 2PC

TM scrive prepare nel suo log e invia un messaggio prepare a tutti i RM. Setta un timeout per indicare il massimo intervallo di tempo d’attesa per le risposte.

Gli RM che sono recoverable scrivono ready nel loro log record e inviano un messaggio ready al TM

Gli RM che non sono recoverable inviano un messaggio not-ready e terminano il protocollo, effettuando l’abort.

Il TM raccoglie i messaggi di risposta dagli RM:

Se tutti gli RM rispondono positivamente, scrive global commit nel suo log

Se riceve almeno un messaggio not-ready o scatta il timeout, scrive global abort nel suo log

Second a fase di 2PC

Il TM trasmette la decisione globale agli RM e setta un nuovo timeout.

Gli RMs che sono ready ricevono il messaggio, scrivono commit o abort nel loro log, e inviano un acknowledgment al TM. Poi eseguono il loro commit o abort locale

Il TM raccoglie tutti i messaggi di acknowledgement dagli RM. Se scatta il time­ out, setta un nuovo time-out e ripete la trasmissione a tutti i RMs dai quali non ha ancora ricevuto un ack.

Quando tutti gli acknowledgement sono arrivati, il TM scrive complete nel suo log.

Paradigmi di comunicazione tra TM e RMs

Centralizzato (è quello che abbiamo visto)

La comunicazione avviene solo tra TM e ogni RM

Nessuna comunicazione tra RM

Lineare:

I RM comunicano tra loro secondo un ordine prestabilito

Il TM è il primo nell’ordine

Utile solo per reti senza possibilità di broadcast

Distribuito:

Nella prima fase, il TM comunica con i RMs

I RMs inviano le loro decisioni a tutti gli altri partecipanti

Ogni RM decide in base ai voti che “ascolta” dagli altri

Non occorre la seconda fase di 2PC

* Protocollo 2PC in caso di guasto *

Un RM nello stato ready perde la sua autonomia e attende la decisione del TM

Un guasto nel TM lascia il RM in uno stato d’incertezza ·

Le risorse allocate alla transazione restano bloccate

L’intervallo tra la scrittura di ready nel log dei RMs e la scrittura di commit o abort è detta finestra di incertezza

In questo intervallo tutte le risorse del sistema acquisite tramite meccanismi di lock sono bloccate

2PC riduce al minimo questo intervallo di tempo, che esiste comunque

In seguito a guasti, TM o RMs utilizzano protocolli di recovery

Tipi di guasti da governare con protocolli

Guasti cli componenti

– Transaction manager

– Resource manager

Perdita di messaggi

Partizionamento della rete

  1. Guasti di componenti

Devono essere utilizzati protocolli con due diversi compiti:

Assicurare la terminazione della procedure –+ protocolli di terminazione

Assicurare il ripristino –+ protocolli di recovery ·

I protocolli funzionano nell’ipotesi di guasto cli un solo partecipante

Protocolli di terminazione Timeout del TM

Timeout nello stato WAIT:

Il TM attende la risposta dei RMs

Può solo decidere global-abort

Timeout nello stato COMMIT o ABORT:

Il TM non può sapere se le procedure di commit/abort sono state completate dai recovery manager d’ogni nodo

Il TM continua ad inviare lo stesso messaggio global commit oppure global­ abort e ad aspettare il consenso

Può accadere che un nodo RM cada: quando riprende, manda un messaggio di consenso al TM

Timeout dei RM

Facciamo l’ipotesi che anche gli RM possano attivare un timeout

Timeout nello stato INITIAL:

Il RM attende il messaggio prepare

Il TM deve essere caduto nello stato INITIAL

Il RM può fare un abort unilaterale

Timeout nello stato READY:

In questo stato, il RM ha votato per il comrnit;

Attende la decisione del TM

Non è in grado di prendere una decisione unilaterale

Resta bloccato in attesa di ulteriori informazioni

Può unilateralmente decidere di abortire.

In questo caso, se è caduto il TM, quando riprende vota abort

Se I RMs sono in grado di comunicare tra loro, è possibile sbloccare la situazione in

assenza del TM chiedendo agli altri RMs di aiutarlo a prendere una decisione

Protocolli di ripristino

Caduta del coordinatore (TM )

l’ultimo record del log è prepare

Il guasto del TM può avere bloccato alcuni RM

-Due opzioni di recovery:

Decidere global abort, e procedere con la seconda fase di 2PC

Ripetere la prima fase, sperando di giungere ad un global comrnit

l’ultimo record nel log è global-comrnit o global-abort

alcuni RMs potrebbero non essere stati informati, e altri possono essere bloccati

Il TM deve ripetere la seconda fase

l’ultimo record nel log è una complete

la caduta del coordinatore non ha effetto

Caduta di un partecipante (RM)

l’ultimo record nel log è Abort o Comrnit

Usa la sequenza di warm restart

Abort: undo della transazione

Comrnit: redo della transazione

l’ultimo record nel log è Ready

– il RM si blocca perché non conosce la decisione del TM

– Durante il warm restart, gli ID delle transazioni in dubbio sono inserite nel ready set.

Prima soluzione: il partecipante chiede al coordinatore cosa è accaduto (richiesta di

remote recovery)

-Second a soluzi,one: il coordinatore riesegue la seconda fase del protocollo

  1. Perdita di messaggi e partizionamento della rete

Il TM non è in grado di distinguere tra perdita di messaggi prepare o ready

In entrambi i casi, la decisione globale è abort in seguito a timeout nella prima fase Anche la perdita di messaggi di acknowledgement o di decisioni da parte dei RMs non sono distinguibili

In entrambi i casi, la seconda fase viene ripetuta in seguito a timeout

Un partizionamento della rete non causa problemi ulteriori, dato che una transazione può avere successo solo se il TM e tutti i RM appartengono alla stessa partizione

Ottimizzazioni nel protocollo 2PC *

Obiettivi delle ottimizzazioni: ridurre il numero di messaggi trasmessi tra coordinatore e partecipanti e ridurre il numero di scritture nei log.

Ottimizzazione read-only

L’ottimizzazione la si ha quando un partecipante, pur essendo coinvolto nel protocollo di commit a due fasi, scopre durante l’esecuzione di aver svolto solo operazioni di lettura e nessuna operazione di scrittura. Il partecipante non deve influenzare l’esito finale della transazione e può disinteressarsene. L’ottimizzazione consiste nel rispondere un messaggio di READ – ONLY al messaggio di prepare, proveniente dal coordinatore. Il partecipante non svolge alcuna operazione di scrittura sul log · e sospende l’esecuzione del protocollo dopo aver spedito il messaggio. Dopo aver ricevuto la risposta al READ -ONLY il coordinatore ignora il partecipante nella seconda fase del protocollo.

Ottimizzazione presumed abort

C’è una regola “Scordarsi gli abort, ricordarsi i commit”

E’ possibile evitare alcune scritture asincrone del record di log del TM; si può evitare di scrivere con la primitiva force i record di prepare e global abort; in caso di perdita di questi record a causa di una caduta del TM, questi darebbe un’identica risposta· durante la recovery della transazione. Quindi i soli record di ready e commit, nel log dell’ RM, e global commit, nel log del TM, devono essere scritti in maniera sincrona, mediante la primitiva force.

 

INTEROPERABILITÀ TRA DDBMS ETEROGENEI *

Il problema principale nello sviluppo di applicazioni eterogenee per DDBS è

l’interoperabilità a livello di sistema

Interoperabilità -> capacità di interagire a livello di sistema e richiedere la disponibilità di funzioni di adattamento e conversione che renda possibile lo scambio di informazioni tra sistemi, reti, applicazioni eterogenee.

È necessario introdurre funzioni di adattamento e conversione di formati / protocolli

A livello di protocollo, l’interoperabilità è garantita da standards quali FTP, SMTP/ MIME, ecc. mentre nell’area dei DBMS, introduciamo standard di interoperabilità per

Accesso alle funzioni del server -> interfacce tipo ODBC

Coordinazione di transazioni su più nodi -> protocollo DTP

Interfaccia di accesso al DB: ODBC

Tramite un’interfaccia ODBC, le applicazioni scritte in SQL possono accedere a dati remoti; il linguaggio supportato da ODBC è un SQL ristretto, caratterizzato da un insieme mmrmo di istruzioni. Nell’architettura ODBC, il collegamento tra un’applicazione e un server richiede l’uso di un DRNER, una libreria che viene collegata dinamicamente alle applicazioni da essa invocata. Il driver maschera tutti i problemi di interoperabilità e facilita al massimo la scrittura delle applicazioni.

Componenti di ODBC

L’applicazi,one richiama funzioni SQL per eseguire interrogazioni e per acquisirne i risultati.

fl driver manager (Microsoft) carica il driver specifico per il DBMS target + SO + rete

fl driver sono responsabili di eseguire funzioni ODBC, pertanto sono in grado di eseguire interrogazioni in SQL, adattandole alla semantica e alla sintassi dei prodotti cui viene fatto accessi.

fl DB server riceve richieste da ODBC e ritorna i risultati come a qualunque client

X-Open distributed transaction processing (DTP)

E’ un protocollo che garantisce l’interoperabilità tra DBMS diversi per transazioni distribuite.

Consta di due interfacce: – L’interfaccia tra il client e TM detta TM-interface

– L’interfaccia tra TM e RM detta XA- interface.

Un DBMS che aderisce al protocollo deve supportare oltre alla propria interfaccia proprietaria per ilprotocollo 2PC anche l’interfaccia XA.

Il TM è di norma un componente fornito da middleware transazionale.

* COOPERAZIONE TRA SISTEMI PRE-ESISTENTI *

Per cooperazione s’intende la capacità per un’applicazione di utilizzare servizi applicativi resi disponibili da altri sistemi, eventualmente gestiti da altre organizzazioni.

La necessità di cooperare nasce da ragioni diverse come l’esigenza di integrazione di componenti sviluppati separatamente, la fusione di organizzazioni con sistemi informativi diversi. ..

L’integrazione tra DBs è complessa:

Limitata nella pratica ad integrazione semplice di schemi

Il modello ideale di un DB fortemente integrato che supporta trasparenza totale è difficile da realizzare in pratica.

Distinguiamo due tipi di cooperazione:

Centrata sui processi: i sistemi offrono l’un l’altro dei servizi, attraverso scambio di messaggi, informazioni, documenti o innescando delle attività senza mettere a disposizione dei dati remoti cioè i dati restano privati.

-Centrata sui dati, in cui i sistemi sono distribuiti, eterogenei e autonomi, e

accessibili da remoto secondo accordi di cooperazione e protocolli standard.

* Cooperazione basata s ui dati – caratteristiche *

Le forme di cooperazione centrate sui dati possono essere molteplici: esse differiscono per il livello di trasparenza, complessità delle operazioni gestite e livello dell’attualità dei dati.

);- Livello di trasparenza: misura quanto la distribuzione e l’eterogeneità dei dati

siano mascherate cioè quanto l’insieme dei dati siano mascherate e cioè quanto l’insieme delle basi di dati cooperanti appaia all’esterno come un’unica base di dati.

);- Complessità delle operazi. oni distribuite: misura il grado di coordinamento

necessario per effettuare operazioni su DB cooperanti.

);- n livello di attualità (currency) indica in che misura i dati acceduti sono

aggiornati. Due possibilità:

Accesso ai dati originali nel sistema che li gestisce

Accesso a copie o a dati derivati, più accessibili, ma per i quali non è garantito l’allineamento.

In base a questi criteri, è possibile distinguere tre architetture per la cooperazione centrata sui dati. ‘

1 – MultiDatabases

In questi sistemi le singole basi di dati partecipanti continuano ad essere utilizzate dai rispettivi utenti (programmi o utenti finali). Ai singoli sistemi accedono anche moduli, chiamati mediatori., che trasformano e filtrano gli accessi, mostrando solo porzioni di DB che si desidera esportare, e la mettono a disposizione di un gestore globale, che è responsabile dell’integrazione e realizza l’integrazione e mette a disposizione degli utenti della cooperazione una visione integrata ” come se il db fosse unico”.

Caratteristiche:

Forniscono un alto livello di trasparenza

Garantiscono buona attualità perché alle sorgenti dati si accede direttamente.

2- Sistemi basati su replicazione

Garantiscono accesso in sola lettura a copie di dati secondarie e derivate, ed elaborazioni fuori linea. L’unica differenza rispetto ai sistemi multidatabase è costituita dalla presenza della DATA WAREHOUSE, che contiene sistemi estratti da vari sistemi eterogenei distribuiti e offre una visione globale dei dati.

Caratteristiche:

Presentano un alto livello d’integrazione e trasparenza, ma un grado minore di

attualità (currency)

3 – Sistemi locali con dati esterni

La differenza rispetto ai casi precedenti è costituita dal fatto che in questa architettura non c’è alcun gestore locale e le integrazioni sono realizzate esplicitamente dall’applicazione (client) che integra;

Caratteristiche:

L’architettura ha un basso grado di trasparenza e di complessità, con un grado d’attualità variabile a seconda delle esigenze specifiche.

 

* IL PARALLELISMO NEI DBMS *

Dal punto di vista architetturale, il parallelismo è possibile sia con architetture multiprocessore a memoria condivisa (SHARED MEMORY), sia con architetture multiprocessore con memorie separate (SHARED NOTHING).

Il motivo del successo del parallelismo nei DB è che le computazioni svolte da un DB si prestano ad essere eseguite in parallelo con grand’efficienza. Una scansione completa di un grande DB può essere svolta tramite N scansioni, ciascuna relativa a una frazione del DB a patto di separare il file corrispondente in N parti uguali, allocate su dispositivi differenti, si ottengono tempi di risposta che approssimano il valore ideale di (1/ N) rispetto al tempo di risposta ideale.

Ci sono due tipologie di parallelismo:

Parallelismo inter-query: quando si eseguono interrogazioni diverse in parallelo. Il carico cui il DBMS è sottoposto è tipicamente caratterizzato da molteplici transazioni molto semplici, che però sono presentate con una frequenza assai elevata. È utile quando il DBMS gestisce transazioni in linea (Sistema OLTP).

È caratterizzato da un forte carico transazionale e da un limitato numero di servizi offerti: il parallelismo viene introdotto moltiplicando il numero di processi server allocando su ciascun processore un numero ideale di questi processi.

Parallelismo intra-query: quando si eseguono parti della stessa interrogazione in parallelo. Il carico cui il DBMS è tipicamente sottoposto è caratterizzato da poche interrogazioni assai complesse, quindi è opportuno suddividere l’interrogazione in varie sotto-interrogazioni parziali, da affidare ai vari processori.

È caratterizzato da interrogazioni complesse che coinvolgono cioè molti operatori e si valutano su DB di grosse dimensioni.

È particolarmente utile per sistemi OLAP (On Line Analytical Processing) che effettuano tipicamente aggregazioni sui dati

* Parallelismo e frammentazione *

L’efficienza del parallelismo è correlata con la frammentazione dei dati. I frammenti vengono distribuiti su più processori e dischi distinti.

Esempio: –

ACCOUNT(AccNum, Name, Balance) TRANSACTION(AccNum,Date,SerialNumber, Transaction Type, Amount) Schema frammentato in modo orizzontale in base a intervalli di AccNum

Metriche per il parallelismo: Speed-up e scale-up

Gli effetti del parallelismo vengono tipicamente descritti da due curve, dette di speed-up e scale-up. La curva di speed-up caratterizza solamente il parallelismo inter- query e misura l’incremento delle prestazioni, misurate in Tps( transazioni per secondo) detto THROUGHPUT.

In una situazione ideale, il throughput cresce in modo quasi lineare con il numero di processori.

La curva di scale-up caratterizza sia il parallelismo inter-query che quello intra­ query e misura il costo medio di una transazione rispetto all’incremento nel numero dei processori.

In una situazione ideale, il costo medio rimane pressoché costante all’aumentare dei processori.

* Benchmarks delle transazioni *

Le curve di speed-up e scale-up hanno introdotto un problema generale, quello di valutare le prestazioni delle architetture per DB, siano esse centralizzate o parallele. La misura delle prestazioni di un sistema richiede che esistano specifiche oggettive e precise delle transazioni e delle condizioni di carico in cui operare le misure; tali specifiche prendono il nome di benchmark.

Standardizzate dal TPC (Transaction Processing Performance Council): sono definiti tre benchmarks (TPC-A, TPC-B and TPC-C) rispettivamente per applicazioni transazionali, miste, e su dati aggregati (On Line Analytical Processing) .

BASI DI DATI REPLICATE *

La replicazione è un servizio garantito da specifici prodotti, detti replicatori dei dati, che consentono la creazione di copie di tabelle o sottoinsiemi di tabelle in un generico contesto distribuito. La funzione principale di un replicatore di dati è quella di mantenere l’allineamento tra le copie di dati. In generale, per ogni dato esiste una copia principale e diverse copie secondarie e gli aggiornamenti sono propagati dalla copia principale alle secondarie in modo asincrono, senza il supporto del 2PC.

La propagazione può essere incrementale quando dalla copia principale alle copie

secondarie viene inviata una descrizione delle variazioni che vengono riapplicate alla copia secondaria; l’uso della replicazione rende il sistema più resistente ai guasti in quanto se non c’è disponibilità della copia principale, è possibile usare una delle copie.

Architettura tipica per data replication

L’architettura ha due siti identici. Ogni sito gestisce l’intero DB; una metà contiene la copia principale, l’altra metà è la copia secondaria.

Tutte le transazioni sono inviate alla copia principale e ridirette in modo differito alla copia secondaria. Ogni punto d’accesso al sistema è connesso ad ambedue i siti.

In caso di guasto che coinvolge solamente un sito, il sistema è capace di commutare rapidamente tutte le transazioni verso l’altro sito, che deve essere in grado di supportare l’intero carico. Una volta risolto il problema, il replication manager fa un restore dei dati in modo trasparente e quindi pone ambedue i siti in modalità normale

Funzioni avanzate dei replication managers

./’ Replicazi.one simmetrica: le modifiche possono essere originate da ogni copia

Configurazione peer-to-peer

In assenza di concurrency control, è possibile introdurre conflitti tra le copie, come abbiamo visto negli esempi di anomalie degli schedule

– È possibile determinare i conflitti in modo automatico, e definire strategie di risoluzione diverse per diversi tipi di dati

./’ Replicazi.one non-connessa: si ha con sistemi mobili, nei quali è comune che la

comunicazione tra i nodi s’interrompa

Es.: un venditore si connette con il server per scaricare le disponibilità del magazzino e per caricare nuovi ordini

Il venditore è normalmente sconnesso dal server. Le sue transazioni operano su copie (del magazzino)

La copia viene periodicamente “riconciliata” con la copia principale

 

* GENERALITÀ SU SISTEMI CLIENT SERVER *

Modello client-server

Prevede due insiemi di processi, distribuiti in generale su più host connessi in rete:

Processi client: richiedono servizi

Processi server: offrono servizi

Il modello client-server prevede la definizione di:

Interfacce di servizio implementate dal server

Protocolli di accesso ai servizi che consentono al client di raggiungere le interfacce.

Es.: submit(query) fa parte dell’interfaccia del servizio. È poi necessario un protocollo per consentire al client di invocare la richiesta.

Il cliente ha un ruolo attivo. Il server è esclusivamente reattivo (risponde alle richieste).

Relazione l:N tra client e server:

Un client esegue poche richieste ad un processo server, e in sequenza

Un server accoglie richieste multiple in concorrenza tra processi client multipli.

Modello client-server per data management

Il modello client-server è comunemente adottato dalle architetture DBMS utilizzando processi server distribuiti su rete:

Le funzioni del server sono ben definite e limitate

Il server è dedicato alla gestione efficiente dei dati (Retrieval, update)

Il client ottiene i dati ed esegue il processing nel proprio spazio di processo( Notare che l’uso di stored procedures consente l’esecuzione di computazioni sul server)

Essenziale per garantire un throughput accettabile sul server.

SQL offre un paradigma di programmazione ideale per la definizione dell’interfaccia di servizio

Le queries SQL sono formulate dal client e inviate al server per l’esecuzione

Il server ritorna risultati in un formato standardizzabile (vedi ODBC)

Quindi la standardizzazione sia delle query che dei risultati consente la portabilità delle applicazioni nelle due direzioni:

La stessa applicazione client può utilizzare server diversi

Lo stesso server può accettare richieste da client eterogenei

Requisiti degli host per client e server

Client host:

Dedicato all’interazione utente

Supporta applicazioni diverse per il processing dell’informazione (e.g. spreadsheet)

Server host:

Main memory: deve contenere il buffer del DBMS e l’area temporanea eg di esecuzione queries

CPU: deve supportare processi server concorrenti (Buffer manager, recovery manager, query processor, ecc.)

Disk memory: oltre ai dati applicativi, contiene i log e altre informazioni necessarie per l’operazione del DBMS

Multithreading

Modello comune a tutti i server concorrenti, non specifico dei DBMS! Uno stesso processo è internamente suddiviso in threads di controllo

Threads: processi lightweight che condividono le risorse allocate al processo

– I threads sono sincronizzati secondo lo stesso modello dei processi concorrenti (attraverso monitor, semafori, sezioni critiche)

ll processo server definisce la strategia d’allocazione dei thread alle transazioni

utente (e.g. un thread per transazione)

Il lifetime del DBMS coincide con il tempo di esecuzione di un pool critico di processi server. Le richieste client in arrivo su una porta predefinita vengono accolte da un listener cioè un thread del server in attesa su una coda.

Il listener (o dispatcher) controlla l’allocazione del pool di threads alle richieste

– Server class: il numero di thread (e quindi l’impegno di memoria e processore) variano dinamicamente con il carico, fino ad un limite

– Le richieste possono essere sincrone o asincrone …

.* Architetture two-tier e multi-tier *

La logica dell’applicazione client comprende normalmente funzionalità diverse:

Interazione utente

Interazione con il DBMS

Interazione con altre applicazioni

Computazione sui dati

Architettura Two-tier. il client esegue l’intero set di funzionalità del client: thick-client Nel caso in cui parte della logica client è comune a più applicazioni, la parte comune può essere separata:

Architettura Three-tier. client, application server e DBMS server. Ad es.:

Client: Solo interazione utente ( thin client). Es. Web browser

Application server: logica comune:

Interazione con il DBMS (l’AS è ilvero DBMS client)

Interazione con altre applicazioni (nello stesso spazio AS o in altri spazi) Computazione sui dati -> AS ospitato su host di tipo enterprise

Architettura di dettaglio – Componenti User processor:

– User interface handler: interprete comandi e formattatore risultati

Semantic data controller. controlli semantici sulla query (controllo vincoli a livello di schema globale), autorizzazioni

Global query optimizer and decomposer

Determina la strategia di esecuzione

Traduce la query globale in sotto – query elementari usando i LCS e GD/ D

Distributed execution monitor I transaction manager

Coordina l’esecuzione di transazioni globali con i TM sugli altri nodi

Data processor:

Local query optimizer

Local recovery manager

Run-time support processor: local buffer manager

ARCHITETTURA TANDEM – DESCRIZIONE *

Applicazione creata da Tandem verso la metà degli anni ’80 Tandem aveva una decina di fabbriche sparse per ilmondo

Ogni fabbrica responsabile della produzione di una parte specifica dell’architettura di un computer

Le tabelle erano frammentate in modo corrispondente alla distribuzione fisica dei componenti e allocate ai nodi in modo ridondante:

Main copy: sul nodo responsabile del processo produttivo dei componenti descritti

in quel frammento

Secondary copies: replicate a tutti gli altri nodi

Il replication manager entrava in funzione periodicamente, propagando le modifiche ad un nodo in modo asincrono a tutte le altre copie

DATAWARE HOUSE – PARTE 4

Basi di dati: teoria e realtà

Sistemi informativi classificazione

Transaction processing systems: per i processi operativi

Base di dati *

“Collezione di dati persistente e condivisa, gestita in modo efficace, efficiente e affidabile (da un DBMS)” : il concetto di base di dati nasce per rispondere alle esigenze di “gestione di una risorsa pregiata”, condivisa da più applicazioni.

Basi di dati: teoria

“ogni organizzazione ha una base di dati, che organizza tutti i dati d’interesse in forma integrata e non ridondante”

“Ciascun’applicazione ha accesso a tutti i dati di proprio interesse, in tempo reale e senza duplicazione, riorganizzati secondo le proprie necessità”

La base di dati “ideale” BD DBMS

On Line Transaction Processing e On Line Analytical Processing *

On Line .Transaction Processing (OLTP): tramite questa tecnologia, le imprese accumulano grandi moli di dati relativi alla loro gestione operativa quotidiana. Questi dati potrebbero rivelarsi utili per la gestione dell’impresa e per la pianificazione e il supporto delle decisioni.

Con l’inizio degli anni ’90, si sono imposte nuove architetture, caratterizzate dalla separazfone degli ambienti: a fianco dei sistemi per OLTP si sono sviluppati sistemi dedicati esclusivamente all’elaborazione e analisi dei dati, e cioè ad OLAP (On line Analitycal Processing).

L’elemento principale dei sistemi OLAP, che svolge il ruolo di server è la data warehouse (magazzino di dati).

Mentre i sistemi OLTP sono normalmente condivisi da un elevato numero d’utenti finali, i sistemi OLAP sono caratterizzati dalla presenza di pochi utenti, che però occupano posizioni d’alto livello nell’impresa e svolgono attività di supporto alle decisioni.

Nei sistemi OLTP i dati presenti nella warehouse possono essere di tipo storico temporale, i meccanismi d’importazione dei dati sono normalmente di tipo asincrono e periodico, in modo da non penalizzare le prestazioni della data source, specie se si tratta di sistemi OLTP con prestazioni particolarmente critiche. In questo caso la data warehouse non contiene dati perfettamente aggiornati rispetto al flusso di transazioni che operano nei sistemi OLTP.

Un altro problema importante nella gestione di una warehouse è quello della qualità dei dati: la semplice raccolta di dati sulla warehouse non consente analisi significative, in quanto i dati contengono molte inesattezze, errori e omissioni.

CARATTERISTICHE OLTP:

Tradizionale elaborazione di transazioni, che realizzano 1 processi operativi dell’azienda – ente

Operazioni predefinite e relativamente semplici

Ogni operazione coinvolge “pochi” dati

Querie senza aggregazioni o con aggregazioni semplici (es. Prenotazioni online, ricerche per chiave..)

Dati elementari, aggiornati

Frequenti, molti utenti

Le proprietà “acide” (atomicità, correttezza, isolamento, durabilità) delle transazioni sono essenziali

Ottimizzano il throughput di transazioni di lettura e scrittura in presenza di concorrenza: 100- 1000 transazioni al secondo

Sistemi di supporto alle decisioni

Richiedono operazioni non previste a priori

Coinvolgono spesso grandi quantità di dati, anche storici e aggregati

Coinvolgono dati provenienti da varie fonti operative, anche esterne.

CARATTERISTICHE OLAP:

Elaborazione d’operazioni per il supporto alle decisioni

Operazioni complesse e casuali

Queries con aggregazioni contemporanee su più dimensioni (es.: totale posti prenotati aggregati per regione e per tipo di cliente, vs totale posti prenotati per periodo e per agenzia)

Ogni operazione può coinvolgere molti dati

Dati aggregati, storici, anche non attualissimi

Utenti selezionati

Le proprietà “acide” non sono rilevanti, perché le operazioni sono di sola lettura

Data warehouse: Generalità

Una base di dati:

utilizzata principalmente per il supporto alle decisioni direzionali

integrata ( aziendale e non dipartimentale) orientata ai dati e non alle applicazioni

storici (con un ampio orizzonte temporale, e indicazione (di solito) di elementi di tempo)

non volatile (i dati sono caricati e acceduti fuori linea) mantenuta separatamente dalle basi di dati operazionali

integrata

I dati di interesse provengono da tutte le sorgenti informative, ciascun dato proviene_ da una o più di esse

Il data warehouse rappresenta i dati in modo univoco, riconciliando le eterogeneità dalle diverse rappresentazioni

norm

codifica

rappresentazione multipla

orientata ai dati

Le basi di dati operazionali sono costruite a supporto dei singoli processi operativi o applicazioni di produzione o vendita

Il data warehouse è costruito attorno alle principali entità del patrimonio informativo aziendale ( prodotto, cliente)

dati storici

Le basi di dati operazionali mantengono il valore corrente delle informazioni

L’orizzonte temporale di interesse è dell’ordine dei pochi mesi

Nel data warehouse è di interesse l’evoluzione storica delle informazioni

L’orizzonte temporale di interesse è dell’ordine degli anni

non volatile

In una base di dati operazionale, 1 dati vengono acceduti, inseriti, modificati e cancellati

pochi record alla volta

Nel data warehouse, abbiamo operazioni di accesso e interrogazione “diurne”

operazioni di caricamento e aggiornamento dei dati “notturne”

che riguardano milioni di record

una base di dati separata

Per tanti motivi

non esiste un ‘unica base di dati operazionale che contiene tutti i dati di interesse

la base di dati deve essere integrata

non è tecnicamente possibile fare l’integrazione in linea

i dati di interesse sarebbero comunque diversi

devono essere mantenuti dati storici

devono essere mantenuti dati aggregati

l’analisi dei dati richiede per i dati organizzazioni speciali e metodi d’accesso specifici

degrado generale delle prestazioni senza la separazione

 

Struttura di un data warehouse e modelli per la sua descrizione

Architettura per il data warehouse

Strumenti di analis

COMPONENTI PRINCIPALI DELL’ARCHITETTURA: *

Filtraggio dei dati che ne controlli la correttezza prima dell’inserimento nella warehouse. I filtri possono eliminare dati palesemente scorretti sulla base di vincoli e controlli che si applicano a singole data source, oppure rilevare e talvolta correggere inconsistenze nei dati estratti da molteplici data source.

Esporta:done dei dati: che consente di estrarre i dati dalla data source. Il sistema per l’esportazione dei dati colleziona le sole modifiche )inserzioni o cancellazioni) delle data source, che vengono importate dalla DW.

Allineamento dei dati: che propaga incrementalmente le modifiche della data source in modo da aggiornare il contenuto della DW. Si possono usare due tecniche: INVIO DEI DATI (data shipping) : basata su primitive eventi – condizioni – azioni attivate sulle sorgenti di dati.

INVI DELLE TRANSAZIONI( transaction shipping) : utilizza i log di trasmissione. o Accesso ai dati: responsabile di realizzare le operazioni di analisi dei dati.

* DW e data mart *

I data mart sono sottoinsiemi logici dell’intero data warehouse cioè restrizioni del data warehouse a un particolare processo di supporto alle decisioni

Pro e contro dei data mart

In genere esprimono un obiettivo fattibile

Mentre la realizzazione di un intero DW è in genere un obiettivo improbo

Tuttavia, portano in genere a seguire un progetto bottom- up, che non da luogo alla fine alla realizzazione dell’intero DW

* MODELLI DESCRITTIVI DI DATA WAREHOUSE *

Concetti rilevanti nella analisi multidimensionale

L’analisi richiede normalmente dimensioni multiple:

“quanto ho incassato MISURA

a seguito di vendite di automobili FATTO

per regione DIMENSIONI

per mese

per tipo di cliente?”

Rappresentazione multidimensionale

L’analisi dei dati avviene rappresentando i dati in forma multidimensionale Concetti rilevanti:

Fatto – > un concetto sul quale centrare l’analisi

Misura/e – > una/ più proprietà atomica di un fatto da analizzare

Dimensione – > descrive una prospettiva secondo la quale effettuare l’analisi

Esempi di fatti/misure / dimensioni

Catena di negozi

Fatto: vendita

Misure: unità vendute, incasso

Dimensione: prodotto, tempo, zona

Compagnia telefonica

Fatto: telefonata

Misure: costo, durata

Dimensione: chiamante, chiamato, tempo

Due modelli per DW

../ Modello logico: per rappresentare fatti, misure, dimensioni rispetto al modello Entità Relazione si dimostra più espressivo il modello detto Star Schema, che corrisponde a uno schema relazionale di forma particolare

../ Modello operazionale: un Data Cube, che descrive tutte le possibili aggregazioni che possono essere effettuate partendo dalle dimensioni scelte, implementabile su un DB relazionale.

OPERAZIONI TIPICHE SUI DATA WAREHOUSE *

Roll up: aggrega i dati, cioè riassumi i dati, salendo nella gerarchia dei concetti per una dimensione o attraverso una riduzione di una dimensione

Es. volume di vendita totale dello scorso anno per categoria di prodotto e regione

Drill down: disaggrega i dati, cioè passa da un livello di dettaglio basso ad un livello di dettaglio alto, scendendo nella gerarchia o introducendo una nuova dimensione.

Es. per una particolare categoria di prodotto e regione, mostra le vendite giornaliere dettagliate per ciascun negozio

Slice and dice: select & project

…:.. Slice: esegue una selezione su una dimensione del cubo

Dice: definisce un sottocubo eseguendo una proiezione su due o più dimensioni

PROGETTAZIONE DI DATA WAREHOUSE *

La progettazione di un data warehouse è diversa dalla progettazione di una base di dati operazionale in quanto i dati da memorizzare hanno caratteristiche diverse, la progettazione è vincolata dalle basi di dati esistenti e guidata da criteri progettuali diversi.

Attività principali

analisi delle sorgenti informative esistenti

integrazione

progettazione concettuale, logica e fisica

Fasi della progettazione di un DW

Fase O: Requisiti degli utenti, basi di dati aziendali, altre fonti informative esterne Fase 1: Analisi

Selezione e analisi delle sorgenti informative

Traduzione in un modello concettuale comune Fase 2: Integrazione

Produzione dello schema concettuale integrato

Integrazioni delle sorgenti informative

Fase 3: Progettazione

Progettazione concettuale

Progettazione logica

Progettazione fisica

  1. Informazioni in ingresso

Le informazioni in ingresso necessarie alla progettazione di un data warehouse sono:

requisiti -> !’esigenze aziendali di analisi

descrizione delle basi di dati -> con una documentazione sufficiente per la loro comprensione

descrizione di altre sorgenti informative -> l’analisi richiede spesso la correlazione con dati non di proprietà dell’azienda ma comunque da essa accessibili (es. dati ISTAT o sull’andamento dei concorrenti)

1.1 Selezione e analisi delle sorgenti informative

Prevede un ‘analisi preliminare del patrimonio informativo aziendale

analisi di qualità delle singole sorgenti

correlazione del patrimonio informativo con i requisiti

identificazione di priorità tra schemi

1.2. Traduzione in un modello concettuale comune

Uno schema ER è più espressivo di uno schema relazionale -> è necessario conoscere la realtà di interesse per recuperare la conoscenza persa nella fase di progettazione logica

Utilizza tecniche di reverse engineering cioè l’attività di:

comprensione concettuale di uno schema di dati (tipicamente relazionale)

rappresentazione di uno schema relazionale in un modello concettuale

2.1 Integrazione di schemi concettuali

L’integrazione di schemi concettuali è l’attività di fusione dei dati rappresentati in più sorgenti in un’unica base di dati globale che rappresenta l’intero patrimonio informativo aziendale, rappresentato a livello concettuale

Lo scopo principale dell’integrazione è l’identificazione di tutte le porzioni delle diverse sorgenti informative che si riferiscono a uno stesso aspetto della realtà d’interesse, per unificare la loro rappresentazione

L’approccio è orientato all’identificazione, analisi e risoluzione di conflitti

terminologici, strutturali, di codifica

Integrazione di schemi concettuali

L’integrazione di schemi richiede la risoluzione dei conflitti relativi a:

rappresentazione concettuale e

rappresentazione dei dati

Progettazione concettuale

L’integrazione delle sorgenti informative ha prodotto una descrizione globale del patrimonio informativo aziendale. Questo è solo il risultato dell’integrazione di dati operazionali e non descrive tutti i dati di interesse per il DW

Fasi

Si completa la rappresentazione dei concetti dimensionali necessari per l’analisi ad esempio, dati storici e geografici – ristrutturando eventualmente lo schema concettuale

Identificazione di fatti, misure e dimensioni

Traduzione nello star schema o nel data cube

* PROGETTAZIONE LOGICO FISICA DI DATA WAREHOUSE *

Esistono due soluzioni:

Relational OLAP (ROLAP)

Utilizza DBMS relazionale o esteso per memorizzare e gestire i dati del data Warehouse e di fatto, corrisponde allo star schema: usa SQL come strumento principale e ha un’elevata scalabilità.

Multidimensional OLAP (MOLAP)

I dati sono fisicamente rappresentati sotto forma di cubo multidimensionale.

C’è l’indicizzazione veloce a dati riassuntivi pre – calcolati;

usa queries multidimensionali che si mappano sul server in modo immediato

Ma:

I dati sparsi sono difficili da gestire

La memoria è sottoutilizzata

Non ci sono interfacce SQL (API)

Esiste la necessità di un sistema relazionale per dati dettaglio

Richiede l’uso di file molto grandi

Esistono delle limitazioni a circa 1OGB (problemi scalabilità)

Vista materializzata

È definita come un qualunque risultato di interrogazione che

si decide di memorizzare permanentemente, piuttosto che ricostruirlo ogni volta in risposta a

una nuova interrogazione

* PROGETTAZIONE LOGICA DI DW *

Scelta tra star e snowflake

Nel caso star privilegiamo la disponibilità delle tabelle dimensioni già aggregate, al costo della ridondanza (non normalizzazione)

Nel caso snowflake privilegiamo l’ occupazione di memoria a scapito di un maggior

costo nel calcolo delle interrogazioni

* PROGETTAZIONE FISICA IN AMBIENTE ROLAP *

Strumenti: indici bitmap e indici di join

INDICI BITMAP: Consentono una implementazione efficiente delle congiunzioni o disgiunzioni nelle selezioni oppure operazioni algebriche di unione e intersezione. Si basano sull’idea di rappresentare ciascuna tupla come un elemento di un vettore di bit; la lunghezza del vettore coincide con la cardinalità della tabella.

Rappresentano ciascun attributo di selezione che abbia nel dominio di definizione n valori, tramite n vettori di k bit dove k è il numero dei record della tabella su cui fare selezioni. Il generico vettore (nell’esempio SALES, ad esempio quello associato al colore “red”, avrà in posizione i il valore vero se l’i-esimo record ha come colore il valore red, falso altrimenti.

* Confronto ROLAP & MOLAP *

Performance

Que:ry: MOLAP

Caricamento: ROLAP

Analisi: MOLAP

Dimensione DW: ROLAP

MOLAP: problema sparsità

Flessibilità nello schema: ROLAP

MOLAP: minor numero di dimensioni ammesse

Confronto MOLAP – ROLAP

MOLAP – Multidimensional OLAP ROLAP – Relational OLAP

Dati memorizzati in multidimensional cube

Richiede trasformazioni dei dati 3.Dati disponibili per l’analisi direttamente dai cube

Analytical processing più veloce

Limitazioni sulle dimensioni dei cubes

Dati memorizzati in relational database come cubes virtuali

Non richiede trasformazioni dei dati

Dati recuperati tramite SQL

Analytical processing più lento

Nessuna limitazione sulle dimensioni dei cubes

 

Visualizzazione dei dati

I dati vengono infine visualizzati in veste grafica, in maniera da essere facilmente comprensibili.

Si fa uso di:

tabelle, istogrammi, grafici, torte, superfici 3D, bolle, area in pila, ecc.

QUALITA’ DEI DATI – PARTE 5.1 E 5.2

* Perché la qualità dei dati è importante *

La qualità dei dati ha un impatto sulla qualità, sull’ efficacia e sui costi del processo e del servizio reso all’utente finale, porta ad elevati costi (es. % Data Warehouse)e riduce la soddisfazione dell’utente e la soddisfazione nel lavoro, inoltre ha un impatto sul supporto alle decisioni.

CLASSIFICAZIONE DEI DATI PER ELABORAZIONE

Y Dati grezzi: sono i dati raccolti ma non ancora sottoposti ad elaborazioni significative, e che quindi si trovano sostanzialmente nella forma in cui sono stati acquisiti, come moduli di carta oppure via internet tramite moduli elettronici o via email.

Y Dati di base: dati già sottoposti alle elaborazioni strettamente necessarie a renderli elaborabili al di fuori di un singolo sistema o di una singola tecnologia, solitamente da parte di soggetti diversi da quello che li ha raccolti, attraverso operazioni di normalizzazione, standardizzazione, verifica o validazione. ES. indirizzi postali normalizzati, estremi di professionisti iscritti ad un albo.

Y Dati arricchiti (anche detti aggregati o elaborati): sono i dati risultanti da operazioni di ricerca e di confronto con informazioni di diversa provenienza, ma collegate ad uno stesso oggetto informativo; la categoria contiene anche i dati aggregati in senso statistico, come le medie e gli indici.

  1. la posizione fiscale di un’impresa come risulta da diverse basi di dati del Ministero delle finanze; i dati contenuti nello stato di famiglia di un cittadino; l’indice dei prezzi al consumo; una carta geografica ricavata da dati fotogrammetrici grezzi.

Dimensioni della DO *

Ci sono tre differenti tipi di dimensioni della qualità dei dati:

Concettuale -> fanno riferimento allo schema (Il livello dello schema. ES. archivio dipendenti, archivio stipendi, ecc.)

Valori dei dati -> fanno riferimento ai dati (Il livello dei valori. ES. Mario Rossi, nato a Brescia il 5 -10 – 1981)

Formato dei dati -> fanno riferimento alla rappresentazione dei dati (Il livello del formato. ES. Campo Cognome di tipo String)

CONCETTUALE:

La qualità del modello concettuale è essenziale, in quanto il modello rappresenta la porzione di mondo reale catturata, e quindi è il contesto all’interno del quale valutare l’utilità del dato. Le dimensioni legate al modello concettuale sono 6, per complessive 15 caratteristiche .

../ Contenuto riguarda il significato dei dati.

Rilevanza – il modello deve fornire i dati rilevanti per l’applicazione. Questa caratteristica pone in evidenza l’importanza della fase di raccolta dei requisisti, in quanto spesso gli utenti non sono in grado di esprimere chiaramente quali dati sono interessanti e come verranno utilizzati. Un aspetto da considerare è l’utilizzo di surrogati al posto di dati desiderati e difficilmente ottenibili: questa pratica è giustificata solamente quando esistono delle correlazioni e dei modelli empirici provati.

ES RILEVANZA: In una organizzazione si vuole misurare la penetrazione dell’utilizzo della posta elettronica nei processi aziendali, cioè il grado di utilizzo dei pc per posta elettronica per i soli processi della organizzazione, e non per svago personale.

Scelta n.1: numero messaggi per impiegato (o percentuale dei messaggi) inviati nell’eseguire attività aziendali

Ma è difficile distinguere con strumenti automatici.

Scelta n. 2: Numero messaggi totali inviati

Ma può essere costoso attivare un sistema di monitoraggio sulla posta.

Scelta n. 3: Numero di pc per impiegato

Chiarezza della definizfone – ogni termine nella definizione del modello deve essere chiaramente definito. Le metodologie di progettazione dei database pongono sempre in primo piano l’importanza del glossario degli elementi del modello utilizzati.

Schema normalizzato: i concetti sono rappresentanti separatamente nelle tre tabelle

Ottenibilità – i valori devono essere facilmente ottenibili. Questa caratteristica è legata alla precedente (nel caso in cui i dati non sono disponibili è meglio utilizzare dei surrogati, piuttosto che non possedere nessun tipo di informazione6) e sempre più spesso a problemi di riservatezza e rispetto della privacy.

./ Scope è definito come il grado con cui il modello comprende abbastanza dati per soddisfare le necessità delle applicazioni, e non comprende dati in eccesso. Idealmente il database dovrebbe contenere tutti e soli i dati necessari e niente di più.

Comprensivi.tà – ogni dato necessario deve essere compreso nel modello. E’ necessario considerare tutti i possibili utenti e come le rispettive necessità si

. sovrappongono; inoltre può essere necessario considerare, oltre alle applicazioni attuali, anche eventuali applicazioni future, estendendo quindi lo scope del modello.

Essenzialità – nessun dato non necessario deve essere compreso; infatti dati non necessari distolgono dalla “cura adeguata” dei dati effettivamente necessari e aumentano i costi della gestione dei dati stessi.

./ Livello di Dettaglio è la quantità di dati da includere e quanto precisi essi debbano essere.

Granularità degli attributi – numero e copertura degli attributi utilizzati per rappresentare un singolo concetto.

ES GRANULARITA: Il concetto di “indirizzo” può essere rappresentato in alcune applicazioni semplicemente da “Stato”, in altre da “via”+”numero civico”+ “Città”+” Stato”; la granularità può aumentare la precisione ma anche i costi e può diminuire la flessibilità nelle modifiche alle applicazioni.

Precisione d ei d omini – è il livello di dettaglio nelle misure (o nello schema di classificazione) che definiscono il dominio. In generale maggiore è il numero di valori nel dominio, maggiore è la precisione.

ES PRECISIONE: un dominio definito su un tipo enumerato con 20 valori è pm preciso dello stesso definito su 5 valori. Deve essere valutato se la precisione è effettivamente necessaria ed utile .

../ Composizione: riguarda la struttura interna dello schema o delle view.

Naturalezza . – Ogni concetto dello schema deve avere una controparte “naturale” nel mondo reale.

Id entificabilità – Ogni entità deve essere univocamente identificabile rispetto

alle altre mediante l’uso delle chiavi primarie.

Omogeneità – tipi delle entità dovrebbero essere definiti in modo da minimizzare l’occorrenza di attributi non necessari/ non applicabili. Per promuovere l’omogeneità è utile ricorrere alle generalizzazioni (supertipi e sottotipi). l

Minima ridond anza – La ridondanza va eliminata perché aumenta i costi e la gestione della sua coerenza distoglie da dati maggiormente importanti. Per eliminarla si ricorre alla normalizzazione .

../ Consistenza

Consistenza semantica – Lo schema dovrebbe essere non ambiguo e i significati dei concetti dovrebbero essere consistenti

ES SEMANTICA: se nello schema sono dichiarati vincoli d’integrità dovrebbero non essere contraddittori

In una relazione A -> Ruolo = “manager” Stipendio > 100.000 € In una relazione B -> Stipendio > 100.000 € -> Tasse = 43%

In una relazione C -> Ruolo = “manager” -> Tasse =40%

../ Reazione al cambiamento: Capacità dello schema di soddisfare le necessità di evoluzione che hanno le rappresentazioni dei dati.

Robustezza – lo schema dovrebbe essere abbastanza ampio da non richiedere

cambiamenti ogni volta che l’applicazione cambia

Flessibilità – lo schema dovrebbe essere facilmente manutenibile, cioè dovrebbe essere facile individuare i concetti da modificare (Es. forme normali nel modello relazionale)

VALORE DEI DATI:

Per qu.anto riguarda la qualità dei valori, ci sono 6 dimensioni, di cui l’accuratezza è sicuramente la più importante.

Accuratezza sintattica: rappresenta la vicinanza del valore del dato ad un valore nel dominio di definizione considerato corretto (cioè che è corretto nel mondo reale).

ES ACCURATEZZA il dato < NOME, Mrio> è in accurato sintatticamente perché diverso dal dato <NOME, Mario>, appartenente al dominio dei nomi di persona. Accuratezza del significato. è la vicinanza del dato all’elemento del dominio di definizione che corrisponde al fenomeno osservato.

Correttezza: esiste sia la completezza sintattica che è l’accuratezza sintattica al grado massimo e quella semantica che è l’accuratezza semantica al grado massimo.

Completezza: (di un insieme di dati), cioè la copertura con la quale il fenomeno osservato è rappresentato nell’insieme di dati.

Livello di Aggiornamento: corrisponde alla differenza tra la data di utilizzo del dato e la data del suo ultimo aggiornamento.

ES AGGIORNAMENTO. se lo stipendio è stato aggiornato l’ultima volta nel mese di maggio, una sua lettura a luglio può portare ad un valore obsoleto, cioè non più valido.

Tempestività: misura l’utilità di un dato nel momento temporale in cui serve un dato può essere aggiornato ma non tempestivo.

ES TEMPESTIVITA: orario delle lezioni pubblicato dopo la fine dei corsi

Consistenza: L’inconsistenza si ha quando due attributi tra i quali esiste una relazione funzionale presentano valori non possibili. ·

ES CONSISTENZA: tra CAP e Città vi è una relazione, per cui un dato che presenta CAP = 20100 e Città = Roma è chiaramente inconsistente.

  1. la consistenza può implicare una ridondanza (nel CAP è implicitamente definita la Città).

Coerenza nei valori: per ogni tipo di dato, deve essere definito un formato canonico di rappresentazione. Per ‘Tipo” non si intende il tipo base (numerico, alfanumerico) ma la presenza di una forma canonica di rappresentazione di un dato (ad esempio l’informazione della data costituita di tre sotto campi nel formato Anno – Mese – Giorno).

ES COERENZA:l’anno in una data deve essere rappresentato sempre con quattro cifre, piuttosto che opzionalmente con due in alcuni archivi.

FORMATO DEI DATI:

Appropriatezza, un formato è più appropriato di un altro se è più adatto a soddisfare le esigenze dell’utente

Es. i codici a barre sono comprensibili ad una macchina ma non ad un utente umano.

Interpretabilità, aiuta l’utente ad interpretare i valori correttamente. Es. (1, 2, 3, 4) vs (scarso, insufficiente, sufficiente, buono).

Portabilità, o Universalità tra diverse tipologie d’utenti. Es. le icone agli aeroporti.

Precisione: un formato è preciso se permette di distinguere elementi del dominio che devono essere distinti dall’utente.

Flessibilità, rispetto all’evolversi dei requisiti utente. Es. Adeguamento delle date all’anno

Uso e[ficiente della memoria

 

Metodologie per migliorare la qualità dei dati *

Struttura di una metodologia:

SELEZIONE DATI – Individua le tipologie di dati cui si è interessati

MISURAZIONE QUALITÀ – Misura la qualità attuale

Definisci il valore di qualità desiderato

MIGLIORAMENTO – Per ogni scostamento, definisci un processo di miglioramento della qualità che porti alla qualità desiderata, scegliendo tra

metodi basati sui dati

metodi basati sui processi

Metodologia per misurare la qualità dei dati: passi

./ Individuazione delle dimensioni più rilevanti nel contesto

./ Individuazione delle proprietà misurabili che saranno utilizzate per valutare le dimensioni

./ Scelta ed esecuzione della procedura di misuraiione

  • METODOLOGIE PER IL MIGLIORAMENTO DELLA OD *

I metodi per migliorare la qualità possono essere basati sia sui dati che sui processi.

Metodi basati sui dati (ovvero d’ispezione e correzione)

Confronto dei dati con il fenomeno che rappresentano

Confronto dei dati tra due o più archivi (ovvero DB bashing o record matching)

Utilizzo di vincoli d’integrità

Metodi basati sui processi che operano sui dati

  1. Miglioramento e Reingegnerizzazione dei processi di trattamento e scambio dei dati

. Confronto dei dati con il fenom eno che rappresentano

Si effettua una nuova rilevazione del fenomeno e un nuovo caricamento della base dati.

Es. per tutto il personale si rileva mediante autodichiarazione la città di nascita, la data di nascita, l’indirizzo di residenza.

Record matching (Database Bashing)

Prevede il confronto di record in due o più database, (1) Se coincidono si assumono corretti, altrimenti (2) se discordano e se esiste conoscenza di contesto, si utilizza la conoscenza per scegliere il dato ritenuto corretto, altrimenti si controllano entrambi rispetto al mondo reale.

È meno efficace del confronto con la realtà ma anche meno costoso. Ha un elemento di rischio: l’assunzione che se i dati coincidono allora i dati sono corretti è molto rischiosa, inoltre non è facile da applicare perché richiede l’applicazione di tecniche sofisticate. –

Record Matching: Il problema conosciuto come record matching si manifesta quando dei record che non corrispondono tra loro precisamente, possono tuttavia riferirsi allo stesso oggetto del mondo reale ( Object Identity Problem).

Es: un Data Base può avere memorizzati il nome e cognome di una persona (“Gianluigi Raiss”), mentre un altro DB può riportare di questa stessa persona solo le iniziali del nome ed il cognome (“G.L. Raiss”).

Per capire se due records in due DB sono tra loro “equivalenti”, si deve definire una funzione che misura la “distanza” tra i due record

 

Remote DBA tra aziende in modo coopetitivo

Parte 1 di 2

Pre-informazioni

FONTE : Claudio VENTURINI

TITOLO : Progettazione e Sviluppo di Data Warehouse in Ambiente Coopetitivo

Relatore: Dott. Andrea MAURINO

Correlatore: Dott. Angelo SIRONI

Viene reso disponibile a titolo informativo dei pezzi della tesi di Laurea di Claudio Venturini date a Stefano Fantin da Andrea Maurino, docente universitario dell’Università degli Studi di Milano Bicocca, come risorsa di lettura e documentazione.

 

Coopetizione: problemi per l’IT

In uno scenario coopetitivo si hanno due o più organizzazioni che operano in un regime competitivo all’interno di un certo mercato, e che necessitano però di cooperare in alcuni aspetti del business. Le motivazioni possono essere svariate e sono state ampiamente dibattute dalla ricerca in ambito economico, di gestione dell’organizzazione e di knowledge management.

In generale, un rapporto coopetitivo tra diversi attori pùo essere instaurato per volontà degli stessi partecipanti, oppure imposto da enti terzi. Nel primo caso gli attori individuano nella cooperazione la possibilità di ottenere dei benefici comuni, che nessuno di essi potrebbe ricevere in uno scenario puramente competitivo. Un esempio è lo scambio di informazioni ai fini di migliorare la qualità dei prodotti o dei servizi forniti ai clienti. Nel secondo caso invece lo scenario prevede un terzo attore, che ha il potere di forzare o stimolare uno scambio di informazioni tra i partecipanti. Un caso tipico è quello in cui alcune organizzazioni sono obbligate per legge a partecipare ad un meccanismo di cooperazione.

Dal punto di vista dell’IT la coopetizione si caratterizza per il fatto che gli attori coinvolti hanno la necessità di scambiare informazioni, senza tuttavia integrare completamente i loro sistemi informativi. Questo scambio di informazioni deve essere ben controllato, in quanto la coopetizione pùo essere redditizia solo se l’aspetto cooperativo del rapporto fornisce benefici a tutti i partecipanti, e non genera quindi vantaggi competitivi al singolo attore. I problemi di maggiore rilevanza dal punto di vista dello sviluppo di un sistema software che effettui tale integrazione in ambiente coopetitivo, sono quindi i seguenti:

Individuazione delle informazioni da condividere capire quali informazioni è necessario scambiare e quindi integrare, in modo tale che esse risultino utili per la globalità delle organizzazioni coinvolte.

Tecniche di integrazione scegliere le tecniche adeguate per svolgere l’integrazione, sia in termini di processo da seguire, sia in termini di architetture e sistemi impiegabili. In questo ambito rientrano anche le problematiche relative alla risoluzione di possibili incongruenze semantiche tra le informazioni provenienti da organizzazioni differenti.

Scalabilità il numero di organizzazioni coinvolte nella coopetizione pùo essere nell’ordine delle decine, e variare nel tempo: è quindi necessario che l’architettura sia sufficientemente scalabile affinchè i relativi dati possano essere integrati nel sistema con relativa semplicità.

Flessibilità l’integrazione di diversi sistemi informativi aumenta la probabilità che almeno uno di essi subisca modifiche nel breve periodo. Tale probabilità è tanto più alta quanti più sono i sistemi informativi integrati, e rappresenta un problema soprattutto quando la quantità di informazioni condivise è alta. Il sistema deve essere quindi in grado di reagire velocemente ai cambiamenti nei vari sistemi informativi integrati.

Sicurezza garantire la sicurezza delle informazioni pubblicate, attraverso adeguati meccanismi di controllo di accesso

Privacy garantire la privacy delle informazioni pubblicate, al fine di evitare che uno degli attori possa venire a conoscenza di informazioni sensibili per le altre organizzazioni, ad esempio attraverso attacchi di tipo inferenziale. In particolare è necessario trovare il giusto bilanciamento tra l’utilità dei dati condivisi, nell’ottica di svolgere indagini analitiche, e il livello di privacy richiesto.

Proprietà dei dati nel momento in cui i dati vengono pubblicati, un’organizzazione rischia di perderne il controllo. Questo problema è fortemente influenzato dalla presenza di un terzo attore, e dal grado di fiducia che le organizzazioni coinvolte

vi ripongono. In certi casi infatti questo ente terzo pùo farsi carico di gestire i dati condivisi.

Per risolvere questi problemi l’IT deve in primo luogo identificare le architetture, le piattaforme e le tecnologie necessarie all’integrazione e allo scambio delle informazioni. In secondo luogo deve definire un adeguato modello di sviluppo, in particolar modo per quanto riguarda la fase di raccolta dei requisiti. Nel seguito si analizzerà nel dettaglio come è possibile soddisfare i requisiti indicati nel caso specifico dello sviluppo di un sistema di data warehousing.

Solitamente un DW è utilizzato per analisi quantitative degli eventi di interesse per il business di un’organizzazione, quali ad esempio le vendite, gli acquisti o i livelli di magazzino. Di conseguenza tratta informazioni di tipo numerico, come le quantità di prodotto, o i prezzi. Per fare questo il DW organizza le informazioni in modo tale che possano essere utilizzate in modo efficiente per svolgere analisi ai fini del supporto alle decisioni. I dati vengono estratti da varie sorgenti interne all’organizzazione, e integrati tramite una delle tecniche di integrazione, al fine di ottenerne una visione unificata. Durante questa fase possono subire anche un processo di pulizia, al termine della quale vengono integrati all’interno del DW.

Il DW viene utilizzato dagli utenti a diversi livelli. Gli organi dirigenti lo utilizzano per analisi complesse dei vari aspetti del business , al fine di supportare le proprie decisioni.

Altri utenti lo possono utilizzare semplicemente per la generazione di report periodici, che talvolta possono anche essere resi pubblici all’esterno dell’organizzazione.

In un DW sviluppato in ambiente coopetitivo le singole sorgenti di dati sono di proprietà di diverse organizzazioni, e vengono integrate al fine di osservare fenomeni che coinvolgono non i singoli ma tutti i partecipanti. .

Coopetitive Data Warehouse (CDW) :

il sistema non viene sfruttato unicamente all’interno dell’organizzazione. Al contrario il sistema è aperto, e pùo fornire informazioni a diverse tipologie di utenti:

  • le stesse organizzazioni coinvolte nella coopetizione, che possono così ottenere una visione più ampia del mercato in cui operano
  • la pubblica amministrazione, che pùo richiedere dati al fine di svolgere attività di controllo
  • cittadini e consumatori al fine di renderere più trasparente la filiera produttiva.

 

Coopetizione, Competizione, Cooperazione

Negli ultimi anni altri autori hanno enfatizzato l’importanza dei meccanismi coopetitivi per la creazione di valore all’interno del business.

Tramite la teoria dei giochi è possibile modellare matematicamente i comportamenti degli attori del business al fine di studiarne le decisioni strategiche. In un gioco ogni concorrente applica delle strategie per la decisione della mossa da intraprendere ad ogni turno. La redditività della mossa è definita da una funzione di ricompensa, che associa un valore numerico ad ogni mossa effettuata dal partecipante. Usualmente la ricompensa rappresenta il guadagno o la perdita di denaro, e di conseguenza pùo trattarsi di un

valore negativo. L’obiettivo dei giocatori è massimizzare la somma delle ricompense ottenute durante i vari turni di gioco.

Senza entrare nel dettaglio della rappresentazione matematica, i tre scenari di competizione, cooperazione e coopetizione si possono cos`ı caratterizzare:

Competizione L’organizzazione è un’entità isolata rispetto agli altri attori del mercato, e l’unico obiettivo nel gioco è la ricerca di una ricompensa maggiore di quella ottenuta dagli avversari, seguendo un comportamento opportunistico. In questo scenario di gioco la vincita corrisposta ad uno dei giocatori corrisponde ad una indentica perdita per l’avversario, e di conseguenza si pùo parlare di gioco a somma zero. E’ evidente che in questo tipo di gioco le funzioni di ricompensa dei vari partecipanti sono in netto contrasto tra loro: non esiste quindi una vera e propria creazione di valore, ma si ha piuttosto un passaggio di valore tra i giocatori.

Cooperazione Le organizzazioni in gioco sono mosse da un interessi convergenti, e di conseguenza sono caratterizzate da funzioni di rincompensa concordi tra loro. In generale le interazioni sono basate su un rapporto di fiducia reciproca, in modo del tutto opposto a quanto avviene in uno scenario competitivo. Questo contesto

è rappresentabile con un gioco a somma positiva, in cui la creazione del valore è possibile ed è tanto più consistente quanto più i giocatori adottano una strategia che mira a perseguire interessi comuni: ciò costituisce un forte disincentivo verso l’adozione di comportamenti opportunistici.

Coopetizione Il contesto coopetitivo è uno scenario ibrido in cui i partecipanti perseguono interessi parzialmente convergenti. Ciò significa che, al contrario di quanto avviene nella cooperazione, l’interesse primario di una organizzazione non

è perfettamente allineato con l’interesse degli altri partecipanti al gioco. Non c’è quindi un rapporto di totale fiducia tra i giocatori: al contrario è probabile che la funzione di ricompensa di alcuni dei giocatori favorisca comportamenti opportunistici. Questi fattori fanno si che il gioco sia caratterizzato da una struttura a somma positiva ma variabile, che pùo portare a benefici comuni tra tutti i partecipanti, ma non necessariamente equi. In questo scenario viene a crearsi una situazione di incertezza dovuta al fatto che i giocatori non hanno modo di stimare a priori i vantaggi che possono ricevere dalla cooperazione. Tale incertezza pùo portare verso comportamenti opportunistici, riducendo di conseguenza la partecipazione alla cooperazione.

In ogni caso le analisi possibili devono essere ristrette alla globalità delle organizzazioni coinvolte, e non devono quindi coinvolgere i dati di una sola di esse.

 

Coopetizione dal punto di vista dell’IT

Vantaggio reciproco Cooperazione tra due o più partners al fine di ottenere vantaggi reciproci. Un caso reale è il servizio di roaming internazionale fornito dalle com- pagnie di telefonia mobile, che competono nell’attrarre clienti, ma al contempo cooperano per garantire l’accesso alla rete telefonica anche all’estero, dividendo i ricavi generati dal traffico telefonico internazionale. Gli operatori devono imple- mentare dei meccanismi di scambio dei Call Detail Record, e unificare i sistemi di addebito. Un secondo esempio sono i servizi di pagamento automatico del pedaggio autostradale, come ad esempio Telepass. Nonostante la rete autostradale italiana sia di proprietà di diverse società in competizione, esse cooperano al fine di fornire il servizio Telepass sull’intera rete. Anche in questo caso è necessario un flusso continuo di dati tra le varie organizzazioni per gestire i gli addebiti sulle carte di credito degli automobilisti.

Stakeholder con il potere di forzare la coopetizione In alcuni scenari di busi- ness si ha la presenza di uno stakeholder con potere a sufficienza per instaurare un rapporto di cooperazione tra altri stakeholder in competizione tra loro. Un scenario di questo tipo si è creato in Italia in seguito all’istituzione della Borsa Continua Nazionale del Lavoro (BCNL), un portale web con l’obiettivo di favorire l’incontro tra domanda e offerta di lavoro. In questo caso lo Stato ha imposto per legge alle varie agenzie di job placement pubbliche e private di cooperare mettendo a disposizione nel portale alcune informazioni dei profili dei richiedenti lavoro che esse gestiscono. Un secondo esempio è quello del parallel sourcing, modello tipico di approvvigionamento di materiale nell’industria automobilistica giapponese [?]. In questo caso un’organizzazione si rifornisce di materiale da più fornitori differen- ti, mantenendo il rapporto con ciascuno per un lungo periodo. Questo garantisce una fornitura costante di materiale e contribuisce a creare una forte competizione tra i fornitori. Tuttavia essi sono anche obbligati a scambiare conoscenza tra loro relativamente ai problemi di produzione e alle relative soluzioni.

Sistemi Informativi Statistici La Pubblica Amministrazione, o grandi aziende, pos- sono decidere di integrare parzialmente i propri sistemi informativi al fine di disporre di informazioni relative alla popolazione, con finalità di supporto alle decisioni e analisi statistiche.

L’integrazione dei sistemi informativi dei partecipanti si traduce nella costruzione di un sistema informativo federato, che consenta lo scambio di informazioni tra le or- ganizzazioni coinvolte. Tra i maggiori problemi nella costruzione di sistemi di questo

Stato dell’arte

In un contesto di coopetizione, ci sono sicuramente le questioni organizzative. Una prima analisi in questo senso è stata condotta con l’obiettivo di valutare quali siano i fattori che causano il successo o il fallimento del progetto, delineare i profili degli attori coinvolti nel processo di integrazione, classificare i possibili comportamenti che questi possono adottare, e infine individuare le fasi essenziali nella costruzione del sistema.

In un progetto di costruzione di un sistema informativo federato, su base coopetitiva, si possono individuare i seguenti attori:

Coopetition board committee Un comitato con il ruolo di favorire la coopetizione facendo da tramite tra le organizzazioni coinvolte e coordinando il progetto

Decision maker L’insieme dei dirigenti delle varie organizzazioni coinvolte, che hanno potere di decidere che grado di importanza assegnare al progetto e di conseguenza quante risorse destinare

Coopetition Process Key Role (CPKR) Un gruppo di persone per ognuna delle or- ganizzazioni coinvolte incaricate di interfacciare l’organizzazione con il coopetition board committee, al fine di realizzare la coopetizione. Solitamente sono persone di grado inferiore ai decision maker, ma con una grande influenza nel processo coopetitivo.

Gli autori evidenziano che in alcuni casi per conseguire gli obiettivi del progetto potrebbe essere necessario intervenire sui processi di business dell’organizzazione, in particolar modo quando è necessario affrontare problemi di qualità dei dati. La loro reingegnerizzazione è un’operazione costosa, ed è quindi necessario che i decision maker comprendano appieno l’entità del plus valore apportato dall’iniziativa all’organizzazione. In caso contrario non saranno disposti a investire sufficienti risorse, in termini di cap- itale sia umano che finanziario. Ciò è particolarmente importante nel caso in cui la coopetizione sia forzata da enti terzi.

Il ruolo dei CPKR è fondamentale per il successo del progetto, in quanto essi si occupano di rendere possibile l’integrazione predisponendo le necessarie interfacce tra l’organizzazione e il mondo esterno. Un caso tipico di CPKR sono i tecnici del reparto IT, che devono preparare le piattaforme hardware e software necessarie a permettere la comunicazione dell’organizzazione con la federazione. In alcuni casi i CPKR non os- serveranno un beneficio diretto dall’introduzione del nuovo sistema, e potrebbero quindi essere riluttanti nel partecipare alla cooperazione. In aggiunta, essi si trovano solita- mente in una situazione di subordinazione rispetto ai decision maker. Se questi ultimi non intendono investire adeguate risorse nel progetto, è molto probabile che lascino a disposizione dei CPKR, per l’attuazione del progetto, solo una piccola parte del totale delle ore lavorative.

 

Remote DBA tra aziende in modo coopetitivo

Parte 2 di 2

Fondamenti di

Informatica per l’organizzazione

Prima parte del corso: lezioni 1-6

Dispense redatte da:

Antonio Ceparano,Vincenzo Ferme,Monica Menoncin,Alessandro Re

Verificate dal professor Giorgio De Michelis per assicurare l’assenza di strafalcioni.

DISPENSE AMPLIFICATE DAL DOTTOR STEFANO FANTIN .

Storia dell’informatica nelle organizzazioni

Le aziende iniziano a far uso di automatismi e macchinari già prima dellarrivo dei computer, ad esempio agli inizi del 1900 si utilizzavano macchine per organizzare lanagrafe mediante schede ordinate e meccanismi di selezione, o per sintetizzare informazioni e conti, come ad esempio le Tabulating o Accounting Machines.

L’International Business Machines, IBM, nasce proprio in questo settore: inizialmente vendeva sistemi per le fatturazioni, che venivano fatte migliaia di volte al mese; vi erano quindi sistemi di produzione di fatture, ma non di gestione: non si facevano statistiche e non c’era un luogo dove memorizzare grandi volumi di dati.

A metà degli anni 30 e degli anni 40, tre gruppi di lavoro principali lavorano sui calcolatori elettronici programmabili: Alan Turing in Inghilterra, con l’obiettivo di realizzare un sistema di crittazione per scopi bellici, Konrad Zuse in Germania (da alcuni reputato il vero inventore del

calcolatore elettronico) e John von Neumann con il team dellENIAC in America. Gli americani in particolare hanno avuto il merito, dopo la guerra, di vedere un ruolo dei calcolatori allinterno delle organizzazioni e di introdurli quindi in questi ambienti.

Il concetto di calcolatore programmabile è però antecedente a questo periodo: già nella metà del 1800 Charles Babbage aveva ideato una macchina meccanica per eseguire i calcoli, il “motore differenziale. Questa macchina era però affetta da problemi meccanici e non venne mai realizzata da Babbage (una produzione secondo i progetti originali venne completata nel 1991, Science Museum in London). Babbage progettò in seguito il “motore analitico, una macchina ancora più complessa, che utilizzava schede perforate, e che era in grado di essere programmata a piacimento. Disponeva di unità aritmetica, controllo di flusso e memoria: era il primo progetto di un calcolatore Turing-completo.

Alla fine degli anni 50 si intuì che il calcolatore poteva essere usato nell’impresa e la pubblica amministrazione, la cui organizzazione soffriva a causa delle enormi quantità di dati. A causa dei costi elevati, solo le grandi organizzazioni e centri di ricerca (come quello spaziale) e l’esercito potevano permettersi un calcolatore.

Negli anni 60 linformatica entra finalmente nelle aziende in maniera diffusa anche grazie al ruolo di IBM, che sviluppa il primo mainframe, il System/360 (1964), progettato per avere una diffusione molto ampia nelle organizzazioni medio/grandi di quel periodo.

In quell’epoca anche in Italia vi era una produzione di calcolatori elettronici per le organizzazioni, grazie ad Olivetti. Quest’azienda era composta da due gruppi di lavoro: a Pisa si effettuava la progettazione concettuale e fisica della macchina, ad Ivrea vi era il polo commerciale di vendita ed interazione col cliente. Lo sviluppo dei calcolatori, in quest’epoca, era una sfida e un’avventura, poiché’ non esistevano ancora processi di sviluppo che garantivano la realizzazione di macchine ad elevata usabilità.

Col tempo queste tecnologie si diffusero e il calcolatore divenne un mezzo con cui gestire tutte le informazioni codificabili.

Oggi, rispetto a 40 anni fa, linformatica è cambiata molto. Ci sono stati molti miglioramenti rispetto al tempo delle schede perforate, ma purtroppo ci sono anche stati inevitabili problemi derivanti dal cambiamento che linnovazione richiedeva. Attualmente ogni volta che introduciamo un cambiamento bisogna fare i conti con le tecnologie esistenti (legacy), spesso mal documentate o non documentate affatto, prevedere delle integrazioni e tempi di migrazione, scontrarsi con la resistenza degli utenti.

Nell’organizzazione aziendale vi è una spinta al continuo uso dei calcolatori per varie ragioni. Le più impellenti sono le enormi quantità di dati da gestire, spesso informazioni non strutturate, e la necessità di eseguire calcoli ripetitivi o complessi.

 

Visione a 3 facce

All’interno dell’organizzazione esistono tre ambiti d’interesse per i sistemi informativi:

  • lambito operativo, quello relativo alla registrazione dei fatti dellazienda, necessario per il suo governo;
  • lambito decisionale, relativo allelaborazione delle informazioni per sviluppare la Business Intelligence;
  • lambito collaborativo, relativo alla gestione dei flussi comunicativi e di conoscenza nellazienda e con interlocutori esterni, necessario per poter concepire il nuovo.

Al funzionamento dei sistemi informativi corrisponde buona organizzazione delle attività e quindi vantaggio per gli stakeholder (siano essi i dipendenti, i soci, i fornitori, lo stato).

Questa suddivisione dei sistemi informativi, detta a “tre facce”, venne proposta in due articoli11 alla fine degli anni ,90 da un gruppo di esperti provenienti da università e background diversi, sosteneva la necessità di tenere conto dei tre ambiti per la realizzazione di un sistema efficace.

Le tre facce del sistema non vanno intese come componenti costitutive del sistema, ma come tre aspetti dell’azienda da considerare nello sviluppo di nuovi sistemi.

Sebbene i primi sistemi informativi nascessero esclusivamente per il supporto delle operazioni, durante la loro evoluzione non fu eseguita una propria separazione delle 3 facce del sistema, ma esse si sono amalgamate nei vari componenti che costituiscono il sistema nella sua interezza; i sistemi venivano creati per utilizzi specifici ed ognuno di essi aveva, al suo interno, aspetti propri ad ognuna delle 3 facce. Ad esempio, l’evoluzione dei sistemi a supporto delle operazioni proseguiva durante la nascita e lo sviluppo dei sistemi per la Business Intelligence.

Questo contribuiva alla realizzazione di sistemi composti da delle componenti separate, ma collaboranti. Ognuna di queste componenti ha una evoluzione separata dalle altre e la crescita del sistema consiste nelle scelte relative all’ottimizzazione dell’integrazione dei sistemi esistenti. Tali scelte d’integrazione però introducono rigidità e condizionano le scelte future: l’innovazione di un software continua per anni (10 o 15 anni) e mette continuamente in discussione i sistemi esistenti. Le scelte fatte nel passato riguardano le relazioni che intercorrono tra le componenti e che hanno condotto alla situazione attuale, non solo a livello di sistema, ma anche a livello di pregiudizi: convinzioni e consuetudini che si sono radicate nell’azienda, specialmente in situazioni di alta stabilità.

Le tre suddivisioni che abbiamo visto sono da considerarsi tre facce di uno stesso problema e non tre componenti distinti.

Supporto alle operazioni

L’informatica entrò nelle imprese dapprima in ambiti di interesse vitale e quantitativo: le informazioni essenziali dell’azienda sono quelle riconducibili ai valori economici e ai prodotti dell’azienda. Pertanto i primi tre ambiti ad essere informatizzati sono stati

  • gestione del magazzino e pianificazione della produzione;
  • contabilità, amministrazione;
  • amministrazione del personale.

La prima informatica nell’organizzazione è quindi legata alla produzione di una identificazione univoca dei fatti dell’azienda riconducibili a dei valori economici. Questo aspetto è ormai divenuto fondamentale perché’ rende trasparente l’attività dell’azienda. Oggigiorno è fondamentale che questa trasparenza sia presente secondo diverse legislature, pertanto all’interno di una organizzazione di dimensioni considerevoli esistono necessità che senza l’ausilio dell’informatica non si possono più soddisfare.

I sistemi che si occupano della gestione di questi dati fondamentali allattività dellazienda (magazzino, personale, fatturazione), e cioè che aiutano lazienda nella sua attività propria, sono chiamati sistemi di supporto alle operazioni.

Prediamo ad esempio un’azienda fittizia che produce giocattoli: ogni oggetto prodotto è descritto dalla sua distinta base, cioè dall’elenco di tutti i suoi componenti, e ogni variazione nella distinta base dà luogo a un oggetto diverso: per esempio tutte le Barbie hanno 2 braccia e 2 gambe, ma alcune hanno capelli rossi, alcune hanno un certo vestito, eccetera. Possiamo identificare un prodotto e tutte le sue variazioni mediante l’uso di codici univoci.

Ogni prodotto ha delle giacenze di magazzino: ci interessa sapere quante Barbie abbiamo e quante ne abbiamo prodotte.

I prodotti devono poi essere venduti: quindi un’azienda deve amministrare le fatture relative alle vendite. A questo punto possiamo correlare denaro e prodotti e vedere quanto denaro entra per ogni prodotto uscito.

Tramite il sistema informativo possiamo quindi avere informazioni sui prodotti e sul denaro.

Parallelamente ai prodotti finali, per poter produrre qualcosa sono necessarie delle materie in ingresso, quindi dovremo registrare i materiali in ingresso e i relativi costi e giacenze.

Infine è necessario amministrare il personale. Le informazioni principali sono:

  • profili (personali, fiscali);
  • posizione nell’organizzazione;
  • indicazioni relative al sistema dei premi di produzione.

Supporto alle decisioni

La conduzione di una organizzazione però va oltre alla gestione dei fatti dell’azienda: per poter crescere, migliorare e sviluppare l’azienda è necessario effettuare delle scelte in base alle situazioni e alle problematiche (ad esempio l’aumento o la diminuzione della domanda di un prodotto) che si pongono sul cammino dell’azienda, ovvero fondamentalmente prendere decisioni basandoci sui fatti e sui valori economici.

Non solo: l’azienda può anche deviare percorso senza accorgersene se, ad esempio, dei canali di vendita sono troppo o troppo poco proficui (o addirittura rappresentano una perdita), l’azienda potrebbe inconsapevolmente dirigersi in direzioni non previste.

E’ quindi necessario porsi domande relative ai fattori che generano il cambiamento, o ai fattori che influenzeranno maggiormente le scelte operative dell’azienda. Per farlo è possibile costruire dei modelli con l’aiuto dei calcolatori per interpretare al meglio i dati noti.

Sono quindi necessari dei sistemi che permettano di avere accesso a tutta la conoscenza utile, ovvero quella relativa all’area di competenza di chi la richiede e utile a svolgere le attività di competenza, per poter dare una risposta, ma lasciando un buon grado di libertà di poter fornire una risposta responsabilmente.

Tali sistemi, che aiutano nella gestione dellorganizzazione, sono detti sistemi per il business management.

Questi sistemi permettono di attuare dei processi interpretativi che aiutino nella pianificazione e nelle scelte per il futuro sulla base di ciò che le dinamiche di produzione-vendita generano.

Linterpretazione di tali dinamiche viene effettuato dalla business intelligence (BI), cioè da quella disciplina, o insieme di tecniche, che va alla ricerca dei dati di cui lazienda già dispone, ma di cui è (parzialmente) inconsapevole. I sistemi di monitoraggio e dei sistemi di decisione fanno parte della BI.

Col passare del tempo anche i sistemi di BI si sono evoluti: in passato tali sistemi erano orientati verso gli executive information system, ovvero ai sistemi per la raccolta dei dati, ma le esigenze aziendali sono cambiate negli anni e le aziende si pongono domande diverse rispetto al passato. Infatti non solo lavorano per migliorare costantemente lazienda, lambiente di lavoro e il prodotto, ma la condizione del mercato e del settore specifico in cui produce lazienda influenza il suo modo dagire a breve e a lungo termine.

L’azienda necessita dunque di:

  • organizzare se stessa e i suoi impianti in modo da garantire un buon grado di flessibilità al cambiamento;
  • essere composta da personale capace e flessibile;
  • gestione di molte informazioni e relazioni con altre entità (persone, altre aziende, …).

La Business Intelligence deve quindi essere adeguata a supportare e facilitare le scelte dell’azienda, seguendone la strategia: i sistemi E.R.P, nati negli anni 60/70, erano rivolti ad aziende molto stabili, ma la condizione attuale è diversa. Non basta più sintetizzare i dati al servizio del manager, ma bisogna riuscire a generare informazioni aggiuntive, effettuare analisi complesse e molte volte costose. Servono quindi sistemi informativi specifici per queste esigenze.

Un esempio di come i sistemi si sono evoluti dalla gestione delle operazioni al supporto delle decisioni, è quello del magazzino.

Una volta la gestione del magazzino consisteva nella raccolta dei dati essenziali per la sua gestione: catalogazione delle giacenze, delle materie prime e dei prodotti finali.

Oggi il sistema è più ampio e gestisce, oltre ai dati, la programmazione e la pianificazione della produzione.

Tale sistema passa per diverse fasi evolutive:

  • algoritmi di base per limpianto as a whole: in base alle entrate di materie prime e i

vincoli di produzione si determinano gli standard e ritmi che bisogna tenere (inventory theory)

  • modellazione più precisa dell’impianto con chiari vincoli temporali: catena di operazioni che devono necessariamente avvenire e loro controllo (logistics+automation)
  • in impianti molto grandi, la gestione non può essere prettamente automatizzata, e quindi è necessario aprirsi alla Business Intelligence (decision systems)

Anche l’amministrazione, come il magazzino, ha subito un cambiamento nel tempo: una volta i sistemi eseguivano il minimo indispensabile, davano quindi un supporto nella stesura delle fatture e del bilancio, ma oggi l’evoluzione spinge verso la programmazione e la progettazione, il controllo (monitoring) delle operazioni e dei progetti.

 

Unione di Operazioni e Decisioni nei sistemi ERP

Lintegrazione tra i sistemi di supporto alle operazioni e i sistemi per la business intelligence continua ad aumentare fino alla comparsa dei sistemi ERP, Enterprise Resource Planning, che assumono il ruolo di sistema informativo unico per la vita dellazienda. Questi sistemi, che raggiunsero la massima diffusione negli anni ,90, sono sostanzialmente utilizzati in tutte le imprese medio/grandi e si diffondono sempre più nelle aziende medio/piccole.

Il prodotto leader di questo mercato è SAP.

L’adozione di un ERP (non necessariamente SAP) è un nuovo inizio per l’azienda: il consolidamento dell’informazione e la sua gestione centralizzata, ma modularizzata, permette logiche di ragionamento complesse (studio margini di rendita, scenari di solvibilità/insolvibilità…).

Quindi tradurre la struttura di un’impresa in un modello per un ERP è un buon metodo per capire completamente come sono strutturate e come funzionano le aziende. Con gli ERP però è difficile riuscire a catturare l’essenza delle aziende come “generatrici di conoscenza”, e diviene impossibile rappresentarle in tutti i loro dettagli.

Infatti il problema della rappresentazione dellazienda nasce dal fatto che i sistemi ERP attualmente presenti si basano su un unico modello di azienda funzionale gerarchica (modello ARIS), mentre nel mondo moderno è comune individuare organizzazioni con struttura matriciale, in cui le persone non hanno una singola dipendenza (dal superiore), ma doppia: una per lambito funzionale (conoscenze che le singole persone hanno, ad esempio un designer ha un “capo designer” di riferimento) e una per limpiego (il progetto in cui stanno lavorando, ad esempio il designer ha un “capo progetto” per il progetto in cui sta attualmente lavorando).

Ci sono quindi più responsabili per un singolo dipendente, con potenziali situazioni conflittuali.

Inoltre, gli ERP presentano delle limitazioni legate alla variabilità dell’azienda: un’azienda non può predire come evolverà e come cambierà. Il sistema informatico deve necessariamente adattarsi ai cambiamenti dell’azienda, ma a volte l’ERP è troppo strutturato per poter star dietro all’evoluzione dell’azienda e questo difetto introduce a sua volta una rigidità che si pone come ostacolo all’evoluzione aziendale.

In ultima analisi, nel momento in cui si decide per un ERP, si deve capire:

  • integrazione dati: gli ERP non possono ovviamente prescindere dai dati d’azienda, che sono tanti e sono disorganizzati, vi è la necessità di utilizzare i datawarehouse
  • quali problemi sorgono gestendo l’azienda interamente con l’ERP
  • quindi, quali sono le caratteristiche distintive dell’azienda che adotta un certo ERP e quali di esse hanno a che fare con questi problemi (es. caratteristiche proprie delle aziende di un certo paese, es. quelle italiane si distinguono per tradizione e gestione familiare, dimensione medio-piccola, resistenza al cambiamento)

 

Gestione della conoscenza

Quando un’azienda decide di entrare in una determinata fascia di mercato, non può iniziare dal nulla: esistono dei criteri secondo i quali è necessario agire ed esistono parametri che vanno attentamente analizzati. Lo studio dei competitors e del mercato è necessario non solo per districare le possibili strategie da adottare, ma anche per poter confrontare i risultati delle proprie strategie con quelle esistenti.

Le decisioni prese all’interno di un’azienda sono quindi il risultato di un processo, che però non è né formale né ha un iter ben definito. Benché qualcuno abbia provato a formalizzare questi processi e il modo in cui le persone ragionano, il risultato netto è che il comportamento delle persone è raramente quello che ci si aspetta.

In linea generale, il processo di studio del mercato ha due componenti fondamentali:

  • componente dialogica, ovvero comunicazione tra le persone. Quando esse non hannoabbastanza informazioni, possono chiederle a qualcuno in modo implicito od esplicito.

Nelle aziende il “decisore finale” è chiamato Chief Executive Officer (CEO) che è eventualmente affiancato da un consiglio, a cui fa capo. Il CEO deve comunicare costantemente con tutte le persone coinvolte nel progetto, scambiando informazioni per trovare il modo di portare profitto allazienda.

  • componente documentale, ovvero scambio e/o condivisione di documenti. Non solo cè una comunicazione tra le persone, ma cè anche uno scambio di documenti necessario per avere una base comune su cui discutere. Si raccolgono informazioni e si fanno studi sul mercato in cui si intende entrare, e nel modo in cui entrare sul mercato.

La gestione della conoscenza e delle informazioni è una componente fondamentale per tutti i settori in cui si rende necessario prendere un certo tipo di decisioni, non legate strettamente ai dati certi dellazienda, ma spesso legate a dati incerti.

Due settori che hanno conosciuto unevoluzione in questo senso negli ultimi anni, sono quello di marketing e quello commerciale, specialmente quello di marketing che non solo si basa su dati incerti – al pari del commerciale – ma deve anche interpretare i comportamenti delle persone.

I sistemi informativi per il marketing e il commerciale non nascono nell’area dei sistemi di supporto alle operazioni, ma nell’area di elaborazione delle informazioni e si evolvono verso la gestione dei flussi informativi, perché devono prendere in considerazione molte più fonti di informazione, anche esterne.

Linformatica deve interfacciarsi ad un sistema complicato di comunicazione e di scambio di informazioni. E deve affrontare un problema complesso per integrarle e dare risposte alle esigenze delle aziende.

Il sistema di comunicazione ormai segue un flusso che esce dall’azienda e apre una serie di problemi nuovissimi. Nel settore degli elettrodomestici, ad esempio, le aziende non conoscono i loro clienti finali, perché la realtà attuale è che gli elettrodomestici vengono venduti in negozi multi-marca, dove c’è un intermediario, il gestore del negozio, che stabilisce un rapporto di fiducia col cliente. Anche i tecnici riparatori sono spesso multi-marca, e l’azienda si trova ostacolata nella comunicazione col cliente perché non vi interagisce direttamente. I produttori, quindi devono aprire canali di conversazione con i loro clienti, ma questo compito non è facile da assolvere, poiché spesso l’unico riscontro che hanno le aziende da parte dei clienti avviene solo quando i clienti non sono soddisfatti.

Per una azienda, il flusso di conversazione col cliente vale tanto quanto la vendita di un prodotto, perché implica la sua fidelizzazione. Fino a qualche anno fa, il canale col cliente era organizzato solo mediante call center. Recentemente, invece, l’ICT si sta diffondendo sempre più e non solo occupa una posizione nel backoffice, ma assume un nuovo ruolo nella comunicazione col cliente.

L’interazione con il cliente e la gestione del flusso di conversazione ha portato i vari dipartimenti dell’azienda ad adottare nel tempo un proprio sistema di comunicazione. Tra tali dipartimenti però esiste la necessità di interazione, e questo pone un problema a livello di integrazione degli strumenti che i vari dipartimenti utilizzano. Le politiche di conversazione col cliente, quindi, rompono i confini aziendali e pongono il problema di dove mettere gli strumenti per poter fare questa conversazione; ogni azienda presenta un profilo di integrazione molto peculiare, che dipende dalla storia dell’azienda stessa.

La conversazione che coinvolge la creazione e lo sviluppo di nuovi prodotti ha quindi due sorgenti principali:

  • una sorgente esterna, data dal comportamento della concorrenza e dei loro prodotti e dal comportamento dei clienti;
  • una sorgente interna, data dal confronto tra le previsioni di vendita e le vendite effettive.

L’interazione col cliente avviene anche mediante i “sistemi operativi” (ovvero i sistemi di supporto alle operazioni), che man mano si stanno spostando da un ruolo strettamente legato all’azienda e al suo core business, verso un ruolo più vicino all’utente integrando sempre più servizi e offerte per il consumatore.

La tecnologia ci permette di allargare lo span dei sistemi di supporto alle operazioni, cambiando radicalmente l’interazione che abbiamo col cliente.

Ad esempio, le società di telecomunicazioni odierne chiamano “sistemi operativi” i sistemi che gestiscono le reti telefoniche e l’atto di comporre il numero telefonico è una interazione con quel sistema operativo, anche se dall’utente questa comunicazione non è percepita come tale.

Dall’altra parte, i sistemi operativi utilizzati in aziende di e-commerce come Amazon, sono molto visibili agli utenti che instaurano con questo sistema una sorta di dialogo (ad esempio, il sistema di Amazon propone all’utente libri che potrebbe trovare interessanti basandosi sulle scelte degli altri utenti).

L’interazione con l’utente è fondamentale nel momento in cui l’azienda vuole associare il prodotto da vendere con il messaggio trasmesso: quando un’azienda ragiona sulla propria esistenza, sul prodotto che vende e sulla sua relazione col mercato, confronta l’esistente col possibile. Questo si fa lavorando sulla conoscenza che si ha, che deriva dai dati (cioè dai numeri raccolti), ma anche dalla conoscenza non numerica che l’azienda raccoglie da competitors e clienti.

Questo ambito di gestione della conoscenza si fa sempre più significativo allinterno delle organizzazioni moderne, è un aspetto nuovo.

Ed è interessante vedere che alcune aziende hanno forti interazioni con i clienti e sono sempre più sensibili all’opinione pubblica e alla relazione con la clientela. Ad esempio, per la FIAT 500, è stato lanciato un sito web (500 giorni prima del lancio sul mercato) che raccoglieva le indicazioni dei clienti potenziali e futuri e di fatto ha influenzato il prodotto poi presentato al mercato (ad esempio il cruscotto è stato un elemento ridisegnato richiamando quello della 500 originale secondo l’indicazione del pubblico).

L’interpretazione del mercato deve necessariamente passare attraverso l’interazione con i potenziali clienti.

Per farlo, ci interessano quindi gli strumenti per la gestione della conoscenza e della collaborazione (groupware). La comunicazione, sia interna che esterna, è essenziale per il successo di una azienda.

Tutti gli strumenti che si diffondono nelle organizzazioni sono sempre più orientati alla gestione della conoscenza, non solo per interpretare il mercato, ma anche per permettere la condivisione della conoscenza allinterno dellazienda; ad esempio, unazienda con delle sedi separate e lontane (e.g. Milano e Roma), potrebbe utilizzare dei sistemi di gestione della conoscenza e della comunicazione per avvicinare le esperienze reciproche, impedendo lo sviluppo di due nuclei separati e fornendo così localizzazione ed integrazione del know-how24.

I sistemi di gestione della conoscenza interessano anche chi deve prendere decisioni più piccole e meno strategiche, per esempio il customer service che deve dare delle risposte ai clienti può avvalersi di FAQ, ovvero un insieme di risposte a domande comuni formalizzate a partire dalle conoscenze condivise. Ma qualunque forma di processo formalizzato, proprio in quanto formalizzato, prevede delle eccezioni. Esse, per loro natura, non possono essere normalizzate e alcune non sono eliminabili. In alcuni ambiti leccezione occupa un ruolo importante, come nella pubblica amministrazione, ad esempio, dove si stima che leccezione rappresenti circa la metà dei casi.

I processi sono accompagnati da un flusso di informazioni: qualora il processo non sia ben gestito, anche la comunicazione delle informazioni non è efficace.

Esistono altri processi, quelli decisionali o quelli di progettazione, che sono pianificabili, ma il modo in cui si organizza un progetto influenza la sua realizzazione e non è conveniente che il progetto sia troppo rigido. In questi casi si può pensare che il processo sia un flusso di conversazione che contiene al suo interno dei passaggi formali e precisi.

Ci sono processi decisionali e processi di progettazione che non possono essere troppo rigidi, perché’ il flusso di conversazione è importante tanto quanto i vincoli o le specifiche di progetto.

 

Integrazione dei 3 ambiti

Fino a pochi anni fa, i mondi dei sistemi di supporto alle operazioni e decisioni e i sistemi di gestione della conoscenza erano completamente separati ed inconciliabili; tra questi sistemi, però, non ci sono distanze incolmabili. In primo luogo per accedere ed utilizzare entrambi i sistemi si utilizza il personal computer: prima c’era una macchina dedicata per ogni funzione, ma attualmente il computer è universale e i sistemi sono reperibili nello stesso posto. I computer sono inoltre diffusi e sempre più centrali nella comunicazione: negli anni 80, alla domanda

“quanti computer servono alla mia azienda?”, venne data la risposta “più o meno tanti quanti apparecchi telefonici avete”, questo è un primo segno di come il computer sia diventato uno strumento importante per la gestione della comunicazione.

Quindi nel corso degli anni, oltre ai sistemi informativi per la gestione dei dati dell’azienda, sono stati introdotti dei sistemi per la gestione dell’azienda, della conoscenza e della comunicazione. Si è creato un percorso di dati che va dal sistema informativo di paghe e amministrazione fino ai sistemi di groupware che contiene una serie di informazioni sfumate e via via meno precise.

I flussi di informazioni e l’integrazione del groupware coi sistemi di supporto alle operazioni fanno si che in linea di massima non esistono più sistemi contenenti dati statici. Ad esempio, non esistono più dei sistemi per la gestione dei pagamenti dei dipendenti, perché’ essa viene accorpata ad un sistema più complesso di gestione della carriera. Questo permette di offrire di più ai dipendenti, oltre al rapporto di lavoro, migliorando il legame con l’azienda.

Il cambiamento dei sistemi informativi, che integra sempre più la registrazione dei fatti coi flussi di comunicazione, si adatta inoltre al cambiamento sociale ed in particolare al cambiamento nel modo in cui si vede il rapporto di lavoro: esso è diventato una partnership tra i dipendenti e l’azienda. L’azienda ha interesse a valutare i suoi dipendenti e mantenere un dialogo con essi relativamente alle condizioni lavorative. Per questo il dipendente non è valutato solo dall’alto, ma anche dai colleghi (peer-to-peer evaluation). I sistemi informativi aziendali puntano sempre più a sistemi di gestione del personale aperti al personale stesso, fornendo loro la possibilità di esprimersi sull’ambiente di lavoro, sugli obiettivi posti, eccetera.

Le tecnologie disponibili oggi per le conversazioni e lo scambio di informazioni includono:

  • e-mail: che è universalmente adottata, nella quale la traccia della comunicazione è generata automaticamente;
  • skype: molto utile per le comunicazioni verbali;
  • servizi di videoconferenza tra più persone: migliori di skype per la comunicazione tra più persone;
  • telefono.

Alle informazioni scambiate sono legati dei documenti, gli attachment, che sono comodi ed utili, ma creano una ridondanza e una certa confusione perché legati, ma non integrati, alla discussione e quindi presenti spesso in più versioni, quindi non uniche e non ben organizzate temporalmente.

Per ovviare agli svantaggi in questo senso degli attachment, sono nati dei sistemi specifici: i document management systems. Ne esistono diversi, una delle versioni più celebri è il wiki.

 

Costi

I costi principali che derivano dall’utilizzo dei calcolatori sono:

  • acquisto
  • installazione
  • mantenimento
  • training operator (corsi di istruzione per i tecnici che vi operano)

Quando un’azienda si rivolge ad una esterna per ottenere dei servizi. E’ necessario per gestire al meglio ciò che l’azienda realizza (core business), tutto ciò che è esterno viene trattato come costo (outsourcing).

I contratti di outsourcing sono contratti lunghi e complicati dove l’azienda richiede all’esterno delle prestazioni che non sono strettamente correlate al suo “core competence”, cioè l’azienda delega all’esterno tutto ciò che non è puramente legato a ciò che l’azienda deve realizzare. Si cerca di spostare quella che è una competenza dell’azienda all’esterno, rendendolo costo, ma si risparmia nelle risorse impiegate all’interno dell’azienda.

I settori in cui prima sè fatto l’outsourcing è l’ICT, la logistica e, di recente, anche l’amministrazione stessa. Un vantaggio che si ha è che l’organizzazione è sollevata da alcuni oneri che sono caricati su aziende esterne come servizi (si usa il know-how esterno), una diretta conseguenza è che però si perde il controllo diretto e costante su ciò che viene effettuato in outsourcing.

La stima dei costi è un forte problema per l’informatica, soprattutto se orientati a stimare i possibili risparmi che potrebbe generare l’adottare una tecnologia (Ex: con una posta elettronica è difficile stimare dove si sta risparmiando).

Una figura che assume valore in dipendenza di questo è abile a diminuire i costi dell’informatica

è il CIO (Chief Information Officer), perché dimostra che il suo potere non dipende dal denaro che gestisce, ma da quanto denaro fa risparmiare all’azienda.

La situazione attualmente presente nelle organizzazioni ha varie caratteristiche

  • la tecnologia si è stratificata e si è riorganizzata generalmente intorno a un ERP aggiungendo dei pezzi. Il livello di eterogeneità è complicato dal fatto che ci sono sia sistemi batch sia sistemi on line (web based, ….)
  • l’accesso a tutti i servizi erogati dai sistemi avvengono tramite personal computer.

Il problema per chi usa le tecnologie e per chi le produce è quello di valutare quello che è a disposizione e per farlo occorre trovare dei criteri rigorosi.

Caso di studio selezionato: “United Parcel Services (UPS): delivering packages and e-commerce solutions”, ad opera del center for information systems (MIT).

Introduzione

Dall’alto dei suoi 15milioni di colli quotidiani, UPS è il leader mondiale del trasporto pacchi.

La società, nata nel 1907 col nome American Messenger Company, ha accresciuto durante il secolo la sua fama di compagnia di trasporti affidabile ed efficiente, finchè alle soglie del 2000 è risultata essere la più vasta organizzazione di trasporti del pianeta, con circa 13milioni di pacchi trasportati al giorno in più di 200 paesi.

Negli ultimi anni ha esteso il proprio business ben oltre il “semplice” trasporto di oggetti: investendo in ricerca e sfruttando le potenzialità dell’IT, ha introdotto una moltitudine di servizi aggiuntivi.

La tecnologizzazione dell’azienda non è stata una scelta dettata da precise priorità. L’introduzione negli anni ’80, da parte dei competitors, di servizi altamente tecnologici non ha suscitato nel management alcun desiderio di emulazione e v’era anzi riluttanza a spendere più dell’1% del budget annuale in sistemi informatici. Fu solo un cambio dei vertici nel 1986 a portare il benefico cambio di rotta, che condusse a massicci investimenti e alla creazione dell’esteso parco servizi. Tra il 1986 e il 1996 UPS ha riversato più di 11 milioni di dollari nell’IT, portando il proprio parco di professionisti informatici da 100 a più di 4000 unità.

Questa decisione ha avuto ripercussioni sui sistemi, sui servizi offerti ai clienti, l’ottimizzazione delle attività, i rapporti con i partner e la gestione del personale.

Sistemi

Nel bruciante avvio degli investimenti nell’IT, UPS ha subito realizzato una facility nel New Jersey dedicata a storage ed elaborazione dei dati; tale complesso avrebbe dovuto rivestire il ruolo di database centralizzato di tutti i fatti e informazioni riguardanti l’organizzazione, fornendo un punto di accesso unico per tutte le filiali dell’azienda.

Il db centrale era fondamentale innanzitutto per assicurare le capacità di tracking, ovvero la conoscenza in ogni istante della localizzazione di un pacco. Tale innovazione, introdotta dalla concorrenza, era molto gradita dai clienti. UPS ritenne dunque imperativo investire in

una rete capillare che consentisse questo flusso di informazioni: il network, che prese il nome di UPS Net, fu varato nel 1990.

Il database doveva contenere non solo le informazioni sui pacchi (una quantità già enorme, circa 200 gli attributi per ogni oggetto spedito) ma anche sugli altri aspetti: logistici, dati dei clienti e del personale. Questa gestione dei dati ha impattato sul core business di UPS, sulle sue modalità organizzative e sulle modalità di collaborazione.

Una volta assicurata una solida infrastruttura, UPS ha iniziato a calcare la mano sulla tecnologizzazione delle proprie attività. Nel 1993 ha introdotto DIAD, un sistema automatico di riconoscimento dei colli che, in tempo reale, riconosce il pacco e aggiorna i database con le operazioni effettuate su di esso (partenza, trasporto, ritiro, ecc). DIAD consiste in un mini-terminale, attualmente basato su Windows Mobile, dato in gestione a chiunque maneggi i pacchi. Il terminale è dotato dello stato dell’arte della connettività (la quarta release, attualmente in uso, ha Wi-Fi e GPRS, ma anche bluetooth e infrarossi per potersi connettere a computer e stampanti) e naturalmente di un GPS, per aiutare gli autisti nella ottimizzazione dei percorsi e per aggiornare la posizione attuale del pacco. L’analisi delle informazioni trasmesse dai DIAD fa emergere una pletora di dati che la compagnia sfrutta per profilare i clienti, ottimizzare i flussi delle spedizioni e per mettere in pratica un activity based costing. Inoltre, dai dati emergono eventuali “vizi” o peculiarità della progettazione delle spedizioni dei clienti, il che consente a UPS di proporre consulenze e servizi di reingegnerizzazione. L’ottimizzazione delle spedizioni, campo classico della ricerca operativa applicata all’informatica, la fa da padrone nelle attività di UPS.

L’esplosione del worldwide web a metà anni ’90 ha aperto nuove opportunità, sfociate nella introduzione di una vasta gamma di servizi basati su internet (UPS Online Tools). Fu una delle prime compagnie a dotarsi di un proprio sito web e, molto prima della teorizzazione del cosidetto e-commerce, intuì le potenzialità del collocarsi tra produttori e consumatori, tagliando fuori dalla catena rivenditori e distributori.

Tutti i sistemi informatici sono stati sviluppati internamente ad UPS. Molte applicazioni non sono rimaste appannaggio esclusivo della compagnia – ad esempio, il già citato tracking o i sistemi di preventivo dei costi aggiornati in tempo reale in tutto il pianeta – ma son state rese disponibili ai clienti: chi vuole può integrare questi applicativi nei propri software, anche nei sistemi ERP. UPS fornisce le API e la docuementazione, chiedendo solo il mantenimento del brand.

Tenendo a mente questo cambio di target delle applicazioni – dall’uso interno allo sviluppo customer-oriented – i reparti IT han cominciato a sviluppare in maniera quanto più possibile interoperabile e modulare:

l’adozione sistematica di standard aperti ha reso vincente UPS sotto il primo aspetto, e oggigiorno moltissime compagnie incorporano agevolmente le funzionalità di UPS nei propri software;

la modularità ha facilitato il riuso e l’aggiornamento di codice, accelerando i miglioramenti e le nuove implementazioni. Purtroppo, le limitazioni di budget impongono un freno a questa corsa. Tale aspetto sarà visto meglio nel paragrafo organizzazione.

La struttura fortemente centralizzata dei sistemi descritti finora era assai prona a brusche interruzioni in caso di disastri; una compagnia come UPS non può permettersi dei down-time. Per questa ragione, nel 1996 il chief information officer decise di introdurre un data center parallelo ad Atlanta che replicasse tutte le operazioni, assicurando l’auspicabile business continuity. La robustezza e l’efficienza di UPS sono così elevate che l’azienda può

garantire spedizioni in finestre temporali ristrettissime (anche un’ora per i servizi critici).

Tra le innovazioni tecnologiche rilevanti degli ultimi anni, UPS ha introdotto il tagging RFID dei propri colli speciali, scelta che ha velocizzato le procedure di riconoscimento e risolto il problema della lettura dei tag visivi (come i codici a barre) sui pacchi di forma irregolare . Inoltre, è stato realizzato un sistema di riconoscimento vocale (UPS Interactive VoiceResponse) per alleggerire il carico di lavoro umano ai centralini telefonici. Come si evince, UPS tiene in particolare considerazione l’evolutività dei suoi sistemi e abbraccia di buon grado qualunque nuova tecnologia possa aumentare la produttività.

Organizzazione

Le decisioni strategiche in UPS vengono prese sulla base dell’analisi dei dati raccolti dalle due facility di elaborazione dei dati, organizzati nelle data warehouse e proposti tramite un enterprise information system. Per quanto concerne le strategie a lungo termine, UPS svolge continuamente attività di intelligence e sopratutto analisi di mercato. Verificando periodicamente l’offerta della concorrenza può cercare di colmare il gap (emulazione competitiva).

Le decisioni all’interno di UPS all’inizio venivano prese esclusivamente in seguito alle valutazioni del senior management committee. In seguito al processo di informatizzazione, è stato introdotto l’IT steering committee formato da quattro esperti che, ogni quarto trimestre, impongono la direzione tecnologica. Nel corso dell’anno, la commissione raccoglie le idee e le richieste provenienti dai vari settori della compagnia; poiché, come detto, i dipartimenti IT sono tutti radunati nelle due sedi parallele – e non è previsto che sottogruppi si dedichino a necessità di singole filiali – si privilegiano i progetti trasversali. Non essendoci un budget infinito van decisi i progetti da sviluppare, ordinandoli per priorità ; la rilevanza viene calcolata dallo steering committee sulla base dei costi e benefici attesi: un sistema di supporto alla decisione elabora i dati, basandosi su parametri come ritorno di investimento previsto, impatto su altri sistemi/procedure, e così via. I progetti con priorità più alta vengono quindi discussi ed eventualmente ridimensionati; infine viene assegnato un budget e delle risorse umane. Un aspetto significativo di questo meccanismo è che il sistema decisionale privilegia i progetti a breve termine perché se una implementazione richiede più di un anno, UPS ritiene che il mercato sarà già mutato prima della conclusione dello sviluppo.

Lo steering committee impone che tutti gli applicativi riflettano lo stile e l’impianto grafico della compagnia. Per questa ragione decide a tavolino i templates da utilizzare per qualunque pezzo di software sviluppato; l’intera organizzazione ci si deve attenere.

Per quanto concerne gli obiettivi non direttamente correlati all’IT, i vertici di UPS fan largo utilizzo del cosidetto sentiment mining, sfruttando la piattaforma Radian6 che effettua il monitoraggio dei principali social networks (forum, blogs, facebook, linkedin, twitter, youtube, ecc) e fornisce delle dashboard riepilogative della reputazione della compagnia in rete. Tra gli altri aspetti tenuti sotto stretta sorveglianza c’è anche lo sfruttamento del brand.

Al fine di esplorare possibilità radicalmente nuove, UPS ha anche dato il via ad una divisione chiamata e-Ventures, che si occupa di identificare nuove frontiere di business nel campo del web, non riconducibili alle attività della concorrenza e che potrebbero aprire nuove partnership con altre compagnie. Il primo prodotto di e-Ventures, approvato dal

senior management nel 2000, fu UPS e-Logistics, una piattaforma on-line completa di gestione delle spedizioni per le compagnie che adottino UPS come corriere standard. L’idea di e-Logistics è offrire un unico pacchetto integrato che fornisca qualsiasi aiuto possa servire: dalla gestione del magazzino al tracking, passando per la gestione dell’ordine, il supporto telefonico, eccetera. E-Ventures produce in media una trentina di proposte innovative all’anno.

Nel 1997 UPS ha istituito un fondo chiamato UPS Strategic Enterprise Fund, il quale monitora, valuta e investe in compagnie emergenti che esplorino nuovi mercati e tecnologie di potenziale interesse. Proprio tale fondo ha identificato e condotto all’acquisizione nel 2004 di Impinj Inc., ditta produttrice di tag RFID.

Collaborazione

Come si evince dai paragrafi precedenti, UPS ha diverse tipologie di clienti:

i privati che si inviano pacchi;

le aziende che si appoggiano ad essa per recapitare i pacchi ai propri clienti

(commercio on-line senza intermediari di alcun genere);

le aziende che non solo spediscono pacchi ma sfruttano anche le loro applicazioni informatiche.

La comunicazione con i clienti del primo tipo avveniva principalmente tramite dei call center, ma con l’esplosione del web gran parte dell’attività di supporto è stata dirottata sull’e-mail. Ad esempio, è possibile ricevere notifiche via posta elettronica dello stato della spedizione, o controllarlo direttamente dal sito. L’esubero di personale telefonico, cui ha contribuito anche il sistema di riconoscimento vocale, ha consentito ad UPS di creare un nuovo fronte di business: la concessione di tale personale alle aziende partner (UPS Business Communication Services).

Le organizzazioni che sfruttano i servizi informatici possono comunicare con UPS anche tramite una sezione del sito raggiungibile tramite autenticazione. Per evitare di dover soddisfare quantità enormi di richieste ricorrenti, UPS ha predisposto una serie di FAQ in tutte le lingue e una knowledge base in cui tentare di trovare la risposta più velocemente.

C’è un solo tipo collaborativo che avviene senza il coinvolgimento di sistemi ad hoc, ed è quello verso i partner che non mostrano interesse per i servizi aggiuntivi. Tali aziende vengono contattate personalmente da un electronic commerce account manager che propone eventuali funzionalità dal portfolio UPS che, in base ad analisi di spedizioni e carichi, potrebbero risultare vantaggiose.

La collaborazione interna in UPS avviene in differenti maniere:

Gli amministrativi operano tramite telefono e/o e-mail; opportuni servizi di ticketing via web gestiscono il flusso di lavoro per i problemi tecnici; un applicativo ad hoc, sempre basato sul web, si occupa di raccogliere e organizzare le proposte innovative che verranno analizzate alla fine dell’anno all’IT steering committee.

Gli autisti comunicano con le filiali o le sedi centrali tramite il mini-terminale DIAD, in costante collegamento. Gli uffici amministrativi possono trasmettere delle informazioni urgenti (ad esempio sul traffico, variazioni di destinazione, eccetera), facendole apparire sul display.

 

Fondamenti di Informatica per l’organizzazione

Seconda parte del corso: lezioni 7-12

Dispense redatte da:

Antonio Ceparano,Vincenzo Ferme,Monica Menoncin,Alessandro Re

Verificate dal professor Giorgio De Michelis per assicurare l’assenza di strafalcioni.

DISPENSE AMPLIFICATE DAL DOTTOR STEFANO FANTIN

Per poter introdurre innovazione all’interno dell’azienda, è innanzi tutto necessario conoscere l’infrastruttura tecnologica di cui disponiamo. Essa è importante ed accompagna l’evoluzione dei sistemi informativi e perché tale evoluzione avvenga, bisogna tener conto delle tecnologie.

Innovazione

Anni ‘60/’70

Sistemi adottati: sistemi per la gestione delle operazioni.

Localizzazione: in house1/in services.

Tecnologia: Mainframe2

Le aziende sono nel pieno dello sviluppo industriale, con l’economia mondiale che ha recuperato dalla guerra e le imprese crescono a dismisura. Questo però non succede ovunque, ma in un numero limitato di Paesi industrializzati. L’Italia, nell’adozione delle tecnologie informatiche (non nella loro progettazione, come dimostra Olivetti), era un poco in ritardo rispetto agli altri Paesi.

Anni ‘80/’90

Sistemi adottati: sistemi per la gestione delle imprese.

Localizzazione: in house.

Tecnologia: su workstation in LAN, VPN in rari casi, reti a stella

Aziende in sviluppo, ma si presenta la prima crisi petrolifera: è un campanello d’allarme, ma viene vista come una fase transitoria. La crisi petrolifera è un’ostacolo alla crescita economica e lascia la situazione con elevatissima instabilità: in molti Paesi c’è un’inflazione altissima, la moneta si svaluta e i costi dell’energia e del lavoro aumentano. È in questo periodo che cresce l’idea di sviluppare in regioni ove la manodopera è a basso costo. Questo cambia sensibilmente le cose: in Italia in quegli anni avviene un cambio strategico delle imprese trainanti nello sviluppo, che fino ad ora puntavano sulla produzione di prodotti a basso costo. Emergono quindi aziende che si qualificano per l’eccellenza della qualità del lavoro (tessile, moda, meccanica, chimica). In vari settori il “Made in Italy” diviene sinonimo di qualità. Ma lo sviluppo di giganti come Russia, India, Cina, porta a delle situazioni non previste dai modelli economici conosciuti: il consumo quadruplica e questi Paesi si trovano in situazioni mai sperimentate prima.

Anni ‘90/’00

Sistemi adottati: ERP.

Localizzazione: ln house / Outsource.

Tecnologia: General Purpose (e.g. PC) via internet

In questo periodo l’economia è guidata da due fattori principali: l’instabilità e l’aumento della competizione. Le aziende cercano di riposizionarsi, trovando altri ruoli e altre tecnologie. Le imprese possono pensare di avere un orizzonte certo rispetto alle loro mosse; mentre durante lo sviluppo economico le risorse erano abbondanti e c’era garanzia di averne negli anni successivi, avendo quindi libertà di manovra per cambi strategici anche in breve periodo, ora è necessario pianificare meglio l’uso di risorse per periodi lunghi. In particolare per le tecnologie elettroniche ed informatiche, l’instabilità del mondo moderno fa si che un prodotto vincente in un particolare momento, non è detto che possa durare a lungo sul mercato. Questo vale nel breve termine e, a maggior ragione, nel lungo termine.

Anni ‘00/’10

Siamo ancora in gioco!

Anni ‘10/’20

Cosa accadrà?

La prima tecnologia a disposizione è il mainframe (IBM S/3603 è tra i primi ad entrare in azienda). Nel settore dell’ITC l’innovazione è massiccia e sono molte le aziende che nascono, si sviluppano in modo consistente, ma spariscono in fretta, a volte assorbite (come Netscape, famosa per l’omonimo browser, è ora una divisione di AOL), a volte no.

La struttura del mercato dell’informatica detta regole molto stringenti per l’innovazione.

Con la diffusione delle prime connessioni nascono i terminali per l’accesso remoto ad un calcolatore centrale (topologia stellare). Poi la rete si è sviluppata posizionando server intermedi. Solo in seguito arriva Internet, un’infrastruttura che ci permette di integrare una

moltitudine di architetture differenti (gerarchiche, peer to peer4, client-server5, anello…). In Internet tutto ciò che c’è di intermedio tra due terminali comunicanti è nascosto, le strutture si definiscono dopo che la rete è stata sviluppata. Essa ci fornisce una spaventosa libertà: non abbiamo più bisogno di una struttura che ci permette di mettere ordine. Internet è sicuramente una massive technology (nel senso inglese del termine, ovvero di elevate dimensioni).

Questo escursus storico è importante per comprendere i sistemi informativi ed, in generale, le tecnologie, perché:

  • le imprese, e le organizzazioni in genere, sono figlie della propria tradizione e la loro esperienza fa la differenza;
  • le condizioni sociopolitiche sono una componente ambientale preponderante;
  • l’evoluzione e lo stato dell’arte sono anche in funzione dei percorsi degli utenti.

Si assiste sempre più ad una coevoluzione delle scelte dell’azienda in base all’evoluzione dei propri clienti.

Come Klee raffigura nel suo “Angelus Novus” bisogna che “L’angelo dell’innovazione abbia lo sguardo rivolto al passato” ovvero bisogna guardare al passato per fare cose nuove.

La possibile evoluzione dei sistemi informativi

I sistemi ERP, dominati da SAP e Oracle, sono nati negli anni ’70. Sono stati realizzati per aziende che disponevano di tecnologie e strutture diverse da quelle attuali, che erano pensate per un ambiente in cui il mercato era stabile.

È chiaro dunque che c’è la necessità di introdurre innovazione, però siamo limitati da alcuni fattori, il principale è la resistenza al cambiamento da parte delle persone che utilizzano i sistemi attualmente presenti, in quanto il cambiamento richiede l’apprendimento e lo studio di qualcosa di nuovo (cosa non sempre ben vista).

I sistemi operativi in uso oggi sono principalmente

  • Unix (40 anni)
  • Windows (30 anni)
  • Linux (20 anni)

Questi sistemi nascono in un’epoca in cui l’informatica era fatta su calcolatori di piccole-medie dimensioni. Col tempo questi stessi sistemi si sono diffusi su workstation e server.

È preoccupante che nel mondo di oggi non ci siano sistemi più sofisticati di questi esistenti: guardando ad esempio al web, si può pensare di introdurre un nuovo sistema operativo che supporti i tag per singola pagina di un documento.

Il “fattore 9x”

Cercando di introdurre innovazione, è importante attribuire all’innovazione il giusto valore che essa potrà avere sull’utilizzatore finale.

Quando una persona crea innovazione, deve essere conscia del fatto che attribuirà a questa innovazione un valore che è triplo di quello che viene percepito dagli utenti. Questo perché l’inventore vede solo la componente innovativa, me non percepisce la necessità di cambiare anche l’ecosistema in cui questa vive. Le persone che usano le tecnologie e a cui si offre l’innovazione, attribuiranno a loro volta un valore triplo alle applicazioni che sanno usare, perché è costato loro fatica imparare e quindi danno valore proprio perché sanno usarle.

Quindi affinchè l’innovazione abbia delle chance di sostituire con successo l’esistente, deve essere nove volte migliore (il “fattore 9x”), cioé deve essere un’innovazione radicalmente diversa, che cambi realmente la vita delle persone.

Per poter introdurre innovazione è quindi necessario sviluppare dei sistemi che abbiano costi di apprendimento molto ridotti (idealmente nulli) e che quindi sostituiscano l’esistente migliorando l’esperienza degli utenti, ma inserendosi in modo naturale nell’ecosistema esistente.

COMMODITY:

Una commodity è un oggetto d’uso comune le cui qualità sono raramente specificate, perché definite e riconducibili ad uno standard. È irrilevante chi produce il bene, poiché non c’è differenziazione di quel prodotto sul mercato. Si pensi ad esempio ad un espresso od una risma di fogli: ci sono degli standard qualitativi che ormai sono diffusi e non necessitano di essere specificati né differenziati.

La qualità di una commodity è normalmente più alta di un prodotto di basso valore, proprio in virtù del fatto che essa risponde a degli standard qualitativi diffusi e garantiti. Al contrario, la qualità di un prodotto ad hoc è superiore di quella della commodities.

Quando una tecnologia diventa una commodity, significa che i problemi che stava affrontando sono finiti: essa è perfettamente installata nel proprio dominio (e.g. un editor di testo, una stampante da ufficio). Nel mondo dei sistemi informativi, se cerchiamo una componente, ma non ci preoccupiamo troppo di quello che dovrebbe eseguire in termini di performance, allora è probabile che stiamo cercando una commodity.

Nell’industria informatica, la necessità di fare innovazione sta diventando dirompente, perché l’innovazione introdotta è sempre meno nel sistema e questo mette a rischio l’intera industria: senza innovazione, l’investimento diminuisce.

Però non è facile introdurre innovazione, specialmente per una grande azienda: se essa ha un prodotto diffuso sul mercato, tale prodotto viene percepito come uno standard. L’introduzione di innovazione apre una braccia nella percezione dello standard, iniziando così un periodo di transizione dove un concorrente potrebbe entrare nel mercato e diventare una presenza importante.

La crescita della concorrenze tende a non produrre innovazione, ma tende a portare i prodotti verso uno stesso punto di convergenza. Per le aziende leader di settore, l’introduzione di innovazione:

  • genera la perdita del rapporto col mercato che si ha in precedenza;
  • non genera vantaggi economici rilevanti;
  • aumenta la confusione tra i clienti;
  • vincola l’azienda all’innovazione stessa: in caso di fallimento, esso sarebbe totale poiché non sarebbe possibile tornare indietro.

Quindi bisogna creare un ambiente ottimale di comunicazione col cliente attirandone l’interesse per poter riuscire ad introdurre innovazione sul mercato. Come detto prima, le funzionalità offerte devono essere molto vantaggiose ad un costo d’apprendimento tendenzialmente nullo.

Per quanto riguarda un’azienda, è chiaro che le sue necessità possono cambiare. Le scelte passate fatte dall’azienda, hanno influenzato la struttura del sistema informativo di cui essa si avvale. Allo stesso modo, la struttura data al sistema informativo dell’azienda ne influenza il futuro: ciò che esiste condiziona le scelte e crea dei pregiudizi (da intendersi come convinzioni e consuetudini dovute a situazioni di alta stabilità).

Ad esempio, fino agli anni 60/70 si pensava che il linguaggio ellittico (ovvero in cui si verifica l’ellissi, cioè l’omissione delle parole) fosse condizionato dalla sincronia (cioè dalla continuità temporale), ma non dalla località degli interlocutori (una discussione poteva essere fatta anche al telefono). L’arrivo della e-mail ha però fatto cadere questa convizione: né sincronia né località influiscono sulla nostra comprensione del linguaggio, che invece dipende esclusivamente dal contesto. Il mondo non è cambiato in seguito ad aver compreso ciò, ma questa comprensione ci permette di concepire qualcosa di nuovo.

Per capire i sistemi informativi usati in un’organizzazione bisogna tenere conto di due storie:

  • la storia della tecnologia, perché se una azienda è nata una trentina di anni fa, le tecnologie che avrà adottato saranno molto influenzate dalla storia;
  • la storia delle aziende, perché per molte aziende la storia non è lineare, ma soggetta a fusioni, scorporazioni, acquisizioni, e quindi il loro sistema informativo sarà mutato con esse.

L’evoluzione dell’azienda è importante per chi sviluppa i sistemi informativi: i sistemi informativi sono entità dinamiche e a volte sono soggetti a tempistiche molto strette.

Per sviluppare il sistema informativo di una azienda è innanzi tutto necessario capire quali sono le esigenze delle organizzazioni. Il primo passo è interpretare le necessità dell’azienda e saperne capire i problemi, cercando di cogliere l’idea su come essa funziona. Infatti oggi le organizzazioni non sono più capaci di dire di cosa hanno bisogno senza immaginarsi la soluzione che vorrebbero (ad esempio non chiedono di “poter amministrare la logistica”, ma chiedono “un database per la logistica”). È quindi nostro compito sapere interpretare tali necessità: ogni azienda ha scopi e ragioni diverse, quindi bisogna creare sistemi che rispondono ad ogni singola esigenza.

Il primo problema quindi consiste nel riuscire ad:

  • individuare tutte le informazioni possibili, in quanto è impossibile accedere a tutte, poiché nessuno all’interno dell’azienda conosce ogni singola parte del sistema in loro possesso,
  • riuscire a consigliare l’azienda nelle scelte da prendere, ascoltandone le esigenze.

Poi vogliamo distinguere le tre facets dei sistemi, analizzando i livelli di integrazione tra queste facts, individuarne i punti di rigidità, i problemi emergenti (ci indicheranno da dove verranno fuori le domande che renderanno i punti di rigidità dei problemi).

Vista la rigidità a cui sono sottoposti i problemi, la questione non è più quella di integrare un dato X con un dato Y, ma è quella di definire le possibilità di integrazione. Bisogna ridurre i costi di integrazione, potendo consentire ad un’organizzazione di cambiare radicalmente la sua struttura.

Un altro problema da affrontare è quello del dove porre i servizi: è possibile dotare l’azienda di una e-mail, ma se c’è un sistema di customer management, ad esempio, possiamo integrare l’e-mail a tale sistema. Molti sistemi di document management, infatti, oggi integrano tecnologie come l’e-mail.

Il problema dell’integrazione si pone anche in questo ambito: più ci spostiamo verso i

gruopware, più abbiamo problemi di integrazione che riguardano gli strumenti utilizzati e i loro settori di utilizzo.

Per ragionare meglio, faremo un quadro di quello che c’è in Italia, per due motivi:

  • probabilmente ci troveremo ad analizzare le organizzazioni italiane;
  • le aziende italiane hanno caratteristiche uniche.

Imprese Italiane

Le imprese italiane vanno classificate in gruppi con caratteristiche distintive, ma riuscendo sempre ad identificare univocamente ogni azienda. Ciò ci guida nella capacità di produrre idee ad hoc per ogni azienda, ma modularmente e con una base comune.

L’Italia è uno dei più importanti produttori manifatturieri del mondo ed è il 5° esportatore al mondo, in Europa è secondo solo alla Germania. A parte i beni culturali, l’industria manifatturiera è la nostra prima risorsa e ci permette di avere un buon tenore di vita.

Sul mercato, siamo forti in alcuni settori del B2C (Business To Consumer), i principali sono la moda, arredamento, elettrodomestici “bianchi” (frigoriferi, lavatrici, e quelli che di solito sono colorati di bianco). Nei piccoli elettrodomestici siamo molto forti, tra i primi al mondo. Inoltre lo siamo nell’agroalimentare e negli strumenti per l’agricoltura.

È fortissima l’industria meccanica, non solo nelle automobili e nelle moto, ma anche nella meccanica B2B (Business To Business): macchine per gelati, per la carta e per la lavorazione del legno.

Siamo leader tra i costruttori di piastrelle, di montature per occhiali, nelle tinture e nelle vernici. La leadership che abbiamo è fortemente dovuta all’innovazione e all’alta qualità, non necessariamente per quantità vendute. Tale leadership non è affatto garantita: i competitors con cicli di sviluppo più rapidi possono metterla in crisi.

Nel nostro Paese ci sono migliaia di aziende interessanti sotto diversi profili; ciò implica che non abbiamo grandi aziende, se non quelle in cui lo Stato ha un ruolo rilevante e in cui può agire e regolarle, ma che quindi non lavorano su un mercato libero vero e proprio.

Le imprese italiane possono essere descritte mediante alcune caratteristiche:

  • competono a livello globale;
  • sono piccole (non tutte, ma abbiamo molte imprese medie e molte medio/piccole);
  • sono innovative;
  • sono radicate nel territorio;
  • hanno una struttura a rete;
  • sono guidate da un padrone/fondatore;
  • fanno fatica a durare oltre la prima o la seconda generazione;
  • crescono in fretta;
  • sono poco informatizzate.

Essendo aziende piccole, ma competitive su scala globale, vengono denominate “multinazionali tascabili”. I loro prodotti sono considerati instabili. Sono aziende nate e ancora insediate nei”distretti industriali”, collaborando con altre aziende formando così una rete di aziende ed organizzazioni che è forte a livello internazionale. L’efficacia della rete influenza l’efficacia delle loro operazioni. I distretti industriali diventano così zone con alcune delle migliori aziende del mondo.

Essendo radicate nel territorio, gran parte degli imprenditori di tali imprese si occupa anche di valorizzare il territorio, poiché se la qualità del territorio è alta, anche la qualità del lavoro è migliore.

La leadership di queste aziende è spesso legata ad una singola persona, un padrone o un fondatore con notevole capacità imprenditoriale.

Chi succede al leader carismatico, non ottiene lo stesso successo né lo stesso appoggio: deve saper amministrare con capacità anziché con carisma. Per poter guidare queste aziende, il leader si occupa di molti aspetti: non vi sono persone specializzate in marketing, sulle scelte strategiche o sui rapporti col pubblico, ma fa tutto una sola persona.

Tali aziende fanno quindi fatica a durare oltre la seconda o la terza generazione. Inoltre si pone un problema notevole da una generazione alla seguente: poiché molte aziende italiane sono familiari, “nate in un garage”, la successione dell’azienda diviene un problema a causa della numerosità degli eredi, sempre crescente da una generazione alla successiva. Quindi a volte è più conveniente vendere l’azienda quando guadagna.

Le aziende italiane sono anche molto innovative: creano prodotti nuovi e competono per l’eccellenza.

Nonostante questo, sono poco informatizzate per quanto riguarda tutto ciò che non è strettamente legato al prodotto e al processo produttivo, ovvero su tutte quelle tecniche che servono per trasformare il denaro in prodotto e vice-versa. Per gli imprenditori italiani, l’informatica è qualcosa che subentra in seguito, quando non è più possibile evitarlo, con la speranza di non distruggere l’azienda con tale introduzione. Invece, l’informatica deve essere un elemento importante per il business: aziende come Ikea, Zara, RyanAir, hanno sistemi informativi fondamentali per il loro business. L’evoluzione di Ikea, ad esempio, è stata accompagnata dall’evoluzione del loro sistema informatico (specialmente per la logistica, ma anche per lo scambio di ordini e di conoscenza all’interno dell’azienda).

La crescita delle aziende italiane è comunque piuttosto veloce, tanto che il loro trend spesso ricorda quello delle industrie hi-tech. Una critica mossa dagli economisti verso la nostra industria è che i suoi settori sono quelli “tradizionali” in cui non c’è crescita, ma grazie all’innovazione e cambiamenti radicali nel settore, la crescita avviene comunque.

Ad esempio, nell’industria dell’occhiale Luxottica ha saputo ristrutturare il mercato, occupando sia posizione di produttore di montature, sia il ruolo di venditore, avendo un enorme guadagno nel valore aggiunto (trovandosi così a contatto diretto con i clienti da cui può riceve feedback diretto sia sui propri prodotti, sia su quelli dei competitors).

L’innovatività non può sempre essere presente: 3M si è data un codice di innovatività, secondo il quale ogni anno l’azienda deve rinnovare almeno il 25% del proprio campionario. Questo è lodevole, ma se si pensa ad una azienda della moda che in un anno (o anche meno, 4 mesi nel caso di Zara) rinnova completamente il proprio campionario, richiede chiaramente un processo molto diverso.

L’informatica deve avere un ruolo utile all’interno dell’azienda, deve creare valore aggiunto e non essere una presenza marginale. Noi ci occupiamo dell’informatica che assume tale ruolo, quindi siamo interessati a capire come possiamo aiutare l’impresa italiana.

Dato che le imprese crescono in fretta, abbiamo bisogno di sistemi informativi evolutivi: la

crescita dell’azienda richiede le capacità da parte dei sistemi di poter gestire nuovi problemi; il problema da affrontare non è solo nella capacità di up-scale dei sistemi, ma è quello di renderli flessibili alla gestione di nuovi problemi.

Essendo imprese a rete, il loro governo è strettamente legato alle interazioni tra le aziende: servono sistemi “aperti”, dove l’apertura non venga gestita solo da un lato (quello delle aziende con cui si interagisce), ma dove sia possibile adattarsi, sapendo interagire con sistemi informativi altrui.

Nell’insieme dei sistemi aperti, uno particolare è quello della logistica: essendo multinazionali tascabili, la numerosità dei Paesi in cui operano è importante, bisogna quindi saper gestire le spedizioni perché ogni consegna mancata è una potenziale vendita persa. Organizzandosi adeguatamente si possono ottenere ottimi risultati.

Le imprese innovative non possono fare investimenti poliennali, perché gli investimenti hanno vita breve. Nel lungo termine si fanno scelte che valgono per intere famiglie di prodotti. Quindi investimenti graduati.

La competenza dei manager è fondamentale, essendo aziende con problemi di successione. È quindi fondamentale gestire al meglio la business intelligence e la conoscenza. Le informazioni dipendono anche dal valore della sorgente: se una fonte autorevole esprime un commento su una certa idea, quel commento assume molto più valore. Il capo designer di Apple sostiene che la progettazione di un prodotto inizia dalla “visiondi quel prodotto.

Un’azienda parte in un posto locale, crescendo rimane ancora locale, ma inizia ad avere delle direzioni o delle sedi in altri territori/Paesi. Si crea così una rete di luoghi che devono essere familiari e confortevoli per le persone che si muovono in questa rete. Le aziende infatti spendono sempre più nella valorizzazione del territorio in cui si trovano.

I sistemi si trovano quindi in situazioni dove è necessario gestire eventi inaspettati, ed è importante che si sappiano adeguare.

 

Pubblica Amministrazione (PA)

Le organizzazioni pubbliche sono intrinsecamente diverse da quelle private: hanno un rapporto con le norme molto importante, mentre il rapporto col mercato non esiste (anche se dovrebbe). L’amministrazione italiana è vista così male che non riconosciamo le (poche) eccellenze che abbiamo. Quello sanitario, ad esempio, è un settore che funziona bene e abbiamo un ritorno economico migliore di molti altri Paesi.

La PA italiana ha difetti consolidati, molte imprese non vengono in Italia perchè non sanno quando potranno operare, per la lentezza burocratica nota di questo Paese.

A differenza delle aziende, la PA non si accorge delle prestazioni che non vengono utilizzate: non c’è un accumulo in magazzino di prodotti invenduti, ma, al massimo, c’è gente che non lavora (e spesso questa gente non se ne lamenta), quindi la perdita diventa difficile da individuare. Non c’è nessuno che misuri i servizi delle PA; serve una misura del servizio.

In Italia da qualche anno è in corso un processo di cambiamento, che ha delle linee guida “nascoste”, una delle quali è quella di mettere al centro il cittadino – cosa che stanno cercando di fare anche le aziende con i loro clienti. Quindi possiamo immaginare che i sistemi di PA e imprese hanno dei punti d’incontro.

L’inizio del processo di cambiamento è stato dato dai punti della seguente legge che ha portato, tra gli altri, 3 cambiamenti importanti:

  • ogni amministrazione deve stabilire quali sono le prestazioni che eroga, ovvero i procedimenti amministrativi di cui è responsabile;
  • per ciascun procedimento, nel momento in cui viene erogato al cittadino, deve esserci un responsabile; quindi il cittadino deve sapere chi è il responsabile per quel servizio;
  • per ogni procedimento amministrativo, c’è un tempo massimo in cui il servizio deve essere erogato.

A questa legge mancava qualcosa per poter essere una rivoluzione: non introduce un responsabile per un’intera classe di procedimenti amministrativi. Ovvero, anche se ogni determinato procedimento ha un responsabile nel momento in cui viene erogato ad un privato, non c’è un responsabile per quel determinato genere di procedimenti (e.g. c’è un responsabile del mio passaporto, ma non uno per tutti i passaporti).

Per poter fare questo cambiamento, ne serve un altro, che però non è ancora stato fatto: la pubblica amministrazione deve assistere il cittadino nelle sue esigenze. La legge è in secondo piano rispetto alle esigenze del cittadino, ma bisogna rispettarla. Quindi bisognerebbe che la PA guidasse il cittadino nelle scelte e nelle procedure necessarie per ottenere ciò che gli serve, e non applicando semplicemente la legge lasciando il cittadino in balia di sè stesso.

Ad esempio, se una famiglia ha bisogno dell’autorizzazione di costruire una stanza per il figlio, a questa non importa come va fatta questa camera: basta averla, perché c’è questa necessità. Quindi il cittadino è disposto a seguire le regole (che sono quindi meno importanti rispetto alla necessità), ma poiché il cittadino non è guidato nell’applicazione delle regole, l’autorizzazione verrà respinta, la procedura muore e il cittadino sarà insoddisfatto, mentre invece la PA dovrebbe accompagnarlo e dirgli: “per avere la camera dovresti fare questo anzichè quello”.

Se tutto deve essere orientato al servizio, è chiaro che i sistemi devono essere radicalmente diversi.

Il sistema deve rendere costantemente accessibile i dati base (e.g. ho comprato 20 viti del tipo A), poiché dalla base di queste informazioni è possibile dedurne di nuove (e.g. ho ancora viti di tipo A) e poter quindi reagire in modo più complesso a seconda delle situazioni e delle esigenze.

Per poter avere questi cambiamenti, servono sistemi modulari: essi ci permettono di ricombinare ininterrottamente le informazioni, poiché le tengono separate.

La crescita dell’azienda porta alla confusione nella sua organizzazione interna: in Italia raramente si fa l’analisi delle persone impiegate, della loro operatività e del valore che esse producono, idea più tipica del Giappone e dei Paesi anglosassoni. Tutto ciò che non fa parte del valore aggiunto andrebbe abolito, quindi se il sistema informatico permette l’analisi delle informazioni, consentendo il risparmio, il guadagno aumenta.

Le imprese italiane hanno delle esigenze di innovazione che sono riconducibili a ragioni di mercato. Nella pubblica amministrazione, per ragioni completamente diverse dall’azienda, c’è una forte spinta all’innovazione. Ci sono due caratteristiche relative a questa innovazione:

  • per mancanza di risorse economiche, si preferiscono innovazioni a basso costo;
  • l’innovazione deve tendere al miglioramento delle prestazioni e anche ad un cambio di mentalità delle persone, premiando i loro meriti secondo obiettivi, ma bisogna avere un metodo per poter porre obiettivi ragionevoli. Senza informatica non sappiamo che obiettivi vengono posti.

 

Software Modulare

Per poter creare sistemi flessibili, evolutivi e scalabili, dobbiamo avere la modularità, ovvero quella proprietà che permette di creare un sistema bottom-up (dal basso verso l’alto).

Innanzi tutto bisogna avere i moduli, quindi serve un “archivio” di moduli. Essi devono poi essere interscambiabili, ovvero deve essere possibile sostituire un modulo con un altro modulo equivalente, e questo si fa permettendo lo scambio di informazioni tra moduli mediante interfacce definite: l’interazione dei componenti non deve variare col variare dei moduli.

Il software modulare scopre un nuovo paradigma di integrazione tra componenti con lo sviluppo dei mashup (applicazione web ibrida), ovvero creare qualcosa partendo da sorgenti diverse, ad esempio usando delle API create inizialmente per scopi diversi, ma poi combinate per produrre un nuovo prodotto.

Quanto devono essere semplici i moduli in un sistema modulare?

I moduli dovrebbero essere realizzati nel modo più semplice possibile. Ogni azienda può gestire in modo molto diverso le relazioni più complicate (e.g. gestione del personale), ma le funzionalità elementari rimangono le stesse (e.g. payroll). Moduli piccoli consentono maggiore riutilizzo, minor tempo di sviluppo e costante evoluzione (e.g. se si separa l’interfaccia utente, bisogna accertarsi che essa sia coerente, ad esempio bisogna poter utilizzare il copia-incolla indipendentemente dal sistema per cui quella UI viene realizzata).

Il problema che si pone è, chiaramente, su come realizzare l’interazione tra moduli. Un sistema di grosse dimensioni permetteva di avere tante informazioni legate tra loro all’interno del sistema stesso, inoltre permetteva di gestire in modo univoco le informazioni relative

alle autorizzazioni di accesso, mentre con i moduli i dati sono sparsi e i meccanismi di autenticazione possono essere vari.

Questa scomposizione ci dà, allo stesso tempo, molta libertà: i dati possiamo metterli dove vogliamo, distribuendoli a piacimento.

L’integrazione di tutte le componenti, database, moduli e interfacce, non avviene nel vuoto, ma avviene su una piattaforma: è lei che ci permette di effettuare l’integrazione, pertanto è necessario definire bene questa piattaforma.

Cio che permette la creazione di sistemi modulari è innanzi tutto uno standard sul tipo di informazione che viene scambiato dai moduli: deve esserci una corrispondenza nei possibili flussi di comunicazione tra moduli. Possiamo avere più sistemi di scrittura interscambiabili se abbiamo un unico standard per il documento, ma fino ad ora è successo l’esatto opposto: un sistema di scrittura predominante con un numero elevato di formati per i documenti. Questa situazione ha due aspetti negativi:

  • se lo standard è associato ad un sistema, quel sistema tende a diventare universale,
  • questo tende a favorire la chiusura del mercato, perché c’è uno standard che nessun altro puo generare, quindi il più diffuso diviene automaticamente il più forte.

L’agenda è un esempio di applicazione trasversale nei confronti di tutte le altre applicazioni, perché di agenda deve essercene una, pertanto ha senso gestirla a livello di sistema, e non a livello di applicazione. Il sistema è la piattaforma sul quale facciamo girare le applicazioni, mediante il quale le facciamo comunicare. Questo ci permette di separare i dati dalle applicazioni. Cio semplifica molto la creazione del sistema informativo: possiamo unire i dati di due aziende più facilmente o usare applicazioni diverse per accedere agli stessi dati.

Unire sistemi informativi è fondamentale per il processo di fusione delle aziende. Avere moduli semplici, rende più facile lo scambio di informazioni rispetto all’adozione di moduli complessi.

La modularità è spesso già presente secondo un punto di vista esterno: quello dell’utente. Egli, infatti, vede il sistema un pezzo alla volta, ovvero vede solo il pezzo che utilizza e lo percepisce come un modulo separato dal resto. La modularità apparente è il primo passo per procedere verso la modularità reale.

Questo ci consente di creare interazioni e servizi nuovi e tra componenti. L’interfaccia del sistema diventa dipendente dall’ambiente che la circonda dall’utente: il sistema risponde quando l’utente ne ha bisogno, quindi il tempo di attesa diventa essenziale per misurare l’efficacia del sistema.

È importante che l’interfaccia sia progettata a partire dall’utente, da quello che fa: l’utente si abitua ai procedimenti, anche se sono ferraginosi e privi di logica.

Infine, la piattaforma deve essere conscia di essere una piattaforma: non solo deve permettere l’esecuzione dei moduli, ma deve anche contenere tutte quelle funzioni che possono essere trasversali (e.g. agenda, e-mail) alle quali possono accedere con le primitive di sistema (proprio come accade col copia-incolla). Per il sistema, queste potrebbero essere viste come

applicazioni normali, ma sono fondamentali per poter unire le componenti.

Piattaforma = sistema + servizi trasversali.

La piattaforma non è il sistema e non lo sostituisce, specialmente in caso si abbiano sistemi diversi (Windows, Linux, Mac…), in cui subentra il middleware, che mostra più sistemi come fossero uno solo.

Quindi, i sistemi modulari devono avere almeno 4 caratteristiche:

  • i moduli devono essere semplici;
  • i moduli devono essere interscambiabili;
  • serve una piattaforma che sia ricca di servizi necessari per l’integrazione;
  • l’interfaccia deve essere progettata per soddisfare chi usa l’applicazione.

Tutte queste caratteristiche sono legate all’evoluzione: i moduli permettono di avere evoluzioni separate e permettono l’evoluzione del sistema. La piattaforma e l’interfaccia devono, a loro volta, poter evolvere secondo protocolli e procedure.

 

Integrazione dei sistemi

I sistemi attuali, per la grande maggioranza, sono divisi in parti che si occupano di aspetti specifici della vita dell’organizzazione: quasi sempre amministrazione, budget, bilancio (aspetti economico-finanziari), ma anche componenti per il personale, contenenti tutti i dettagli che sono rilevanti per l’impresa. Ognuna di queste parti del sistema integra, a suo modo, elementi delle 3 facets (di norma, ogni modulo lo fa in modo diverso).

Con l’evoluzione dell’azienda, con l’ingrandimento e col cambiamento nella sua struttura, si sente la necessità di un sistema informativo più complicato, integrando altri dati e altri moduli. Ciò comporta che per le integrazioni effettivamente realizzate, la risposta sia altamente efficiente. L’integrazione si fa sostanzialmente integrando le diverse facets a livello di un unico database: ogni componente ha un database che si riferisce a vari aspetti, e noi integriamo tutte le informazioni di quel database.

Nella maggior parte dei casi, i database sono relazioni e l’integrazione è a livello di informazioni, ma alcune tecnologie permettono di collegare oggetti.

Se si vogliono integrare in modo diverso due facets, le tecniche messe a disposizione dagli ERP non sono di facile utilizzo. Infatti questo tipo di integrazione ancora manca negli ERP: si può fare qualche operazione di integrazione dei dati da database diversi, ma questo richiede un’estrazione delle informazioni prima di poterle integrare nella componente di data-mining.

L’efficienza nell’integrazione è un aspetto critico per l’azienda, poiché nelle organizzazioni odierne, uno dei problemi principali è rispondere in modo adeguato e rapido ad evoluzioni non facilmente prevedibili del mercato. Per esempio, l’emergere di nuovi mercati economici quali

quello brasiliano, russo, indiano e cinese (chiamato “BRIC”), pone dei problemi alle aziende italiane, che devono capire come entrare in quei mercati e necessitano di informazioni che non sono immediatamente disponibili in un ERP. Per questo motivo, c’è bisogno di data warehouse e data mining. I manager dell’organizzazione richiedono che le informazioni di cui hanno bisogno siano fornite con tempi di risposta compresi tra una settimana e un mese: al di fuori di questo intervallo, l’impresa prende decisioni senza i dati richiesti e l’informatica perde un ruolo, venendo quindi percepita come ostacolo o problema. Creando un sistema di Business Intelligence, bisogna quindi pensare a tutte le possibili domande che il manager potrà porvi e predisporre il sistema per essere in grado di fornire una risposta. L’informatica deve seguire lo sviluppo dell’azienda!

Se l’azienda non sta comprando, ma allarga anno dopo anno il suo mercato nel mondo, bisogna adattare il sistema per adeguarsi all’espansione.

Se l’impresa sta facendo outsourcing di tutte le risorse centrali, la piattaforma deve potersi evolvere verso questa direzione. Deve quindi esserci un’evoluzione della piattaforma applicativa in modo ciclico, con un periodo compreso tra i 6 e i 12 mesi. Sopra alla piattaforma applicativa c’è però quella tecnologica, che è di carattere sostanzialmente diverso, poiché descrive qual è la modalità con cui vengono gestite le tecnologie informatiche; è fondamentale per la buona riuscita delle scelte a livello di piattaforma applicativa e alla risoluzione dei problemi. Il suo ciclo evolutivo in questo caso è poliennale e deve essere costantemente monitorato per garantire che l’architettura sia la migliore per le nostre necessità.

Ci sono quindi 3 livelli da gestire per offrire soluzioni valide:

  • piattaforma tecnologica (poliennale)
  • piattaforma applicativa (6/12 mesi)
  • singoli problemi (settimana/mese)

Questa divisione in livelli però non è di facile individuazione: sebbene essa sia presente, non è netta. Basti pensare all’esempio ENI, che sta attualmente sviluppando un sistema di cloud

computing, nato però con idee diverse da quelle del cloud, e poi successivamente cambiate perché anche le necessità dell’azienda cambiavano.

Tale divisione spiega anche il motivo per cui nei sistemi ERP prevalga l’uso di patch, che danno risposte veloci ai nuovi problemi, ma non migliorano l’architettura del sistema, anzi tendono a peggiorarla.

Integrare i componenti è un’attività importante, perché componenti integrati permettono di risparmiare tempo e ridurre errori dovuti alla trascrizione manuale dei dati. I fatti di una organizzazione sono uguali ovunque (amministrazione dei servizi acquistati od erogati, tener conto di ciò che entra ed esce dall’azienda, etc) e sulla base di questi l’azienda stabilisce i propri obiettivi (quanto comprare, quanto produrre, etc). L’informatica supporta il business non solo in questi aspetti, ma anche mediante l’uso di strumenti come posta elettronica, intranet, sistemi per videoconferenze, sistemi di e-commerce, etc.

La tecnologia permette di rimuovere alcune mansioni, ma ne crea altre.

Nell’attività organizzativa si trovano sempre dei lavori ridondanti rispetto alla produzione di informazione utile, bisogna quindi tener presente 3 fatti:

  • il lavoro eccedente non è immediatamente eliminabile;
  • se la prestazione rimane invariata, c’è una riduzione del lavoro necessario;
  • se però abbiamo progettato il sistema per migliorare l’esperienza utente, gli utenti

richiederanno l’intervento umano.

C’è una sorta di bilanciamento sul lavoro che possiamo risparmiare e le nuove necessità: riducendo l’attività routinaria, è possibile creare nuovi tipi di lavoro.

Esempio: Fatturazione

Si prenda ad esempio la differenza tra fattura ed ordine: essa è presente solo nell’impostazione, ma in realtà i due documenti contengono grossomodo le stesse informazioni. Avere un sistema, che genera una fattura a partire dall’ordine, permette di gestire il processo in modo più rapido e con meno errori. Fino a qualche anno fa, invece, quando un’azienda acquistava dei prodotti, i documenti generati dal sistema dell’azienda fornitrice erano 3:

  • l’ordine;
  • la fattura dell’azienda fornitrice;
  • la bolla di accompagnamento merce.

Era quindi necessario effettuare controlli per ogni passaggio: bolla-ordine, ordine-fattura, fattura-bolla. Tale processo era chiaramente costoso, sia in termini di tempo che di denaro, quindi era necessario rimuovere tali passaggi.

Per poterli rimuovere, l’azienda acquirente potrebbe dettare una condizione alla fornitrice: l’ordine è accettato solo se la bolla è identica all’ordine. Per rispettare questo vincolo, chiaramente, l’azienda fornitrice deve porre dei limiti sulla gestione dell’ordine, ad esempio respingendo variazioni successive dello stesso. L’acquirente abbatte i costi, ma la responsabilità viene quindi spostata tutta sull’azienda fornitrice che dovrà potersi rivalere di tale responsabilità.

Una seconda soluzione, potrebbe essere l’accordo tra acquirente e fornitore nello stabilire che l’ordine è aperto fintantoché la spedizione non è iniziata: solo a quel punto l’ordine non è modificabile e viene emessa la fattura. Questo riduce i controlli necessari fra ordine e fattura, ma è il magaziniere che, a questo punto, si assume la responsabilità dando conferma all’amministratore sulla merce entrata.

 

Sistemi Ontologici

Con sistemi che divengono man mano più rigidi, come possiamo operare? È possibile farlo se facciamo la scelta dell’integrazione leggera.

Dare una risposta ad una domanda richiede l’esecuzione di una ricerca tra tutte le fondi d’informazione disponibili. Questa operazione può essere eseguita on-line (nel senso che i tempi di risposta lo permettono) od off-line (riempiendo un database di risposte).

Se la nostra domanda non trova risposta nei dati raccolti mediante data-mining, desideriamo sapere se esistono altri modi di aggregare i dati per ottenere la risposta.

Affrontiamo, per esempio, il caso in cui un’azienda è interessata ad isolare quelle aziende o quelle persone che sono sia clienti che fornitori. Essi hanno come identificativo un codice fiscale o la partita IVA, pertanto un solo codice identifica un solo ente. Integrando i dati anagrafici e sfruttando la ridondanza, è possibile organizzare in un nuovo modo le informazioni e, in maniera relativamente facile, individuare l’ente che è sia cliente che fornitore.

Il valore aggiunto è ottenuto quando, piuttosto che suddividere clienti e fornitori, parliamo di una categoria generale, gli interlocutori, in cui rientrano altri soggetti (ad esempio la P.A., come il comune a cui si pagano le tasse). L’idea, in questo caso, è quella di considerare il concetto, e non la sintassi, come polo di aggregazione. Questo ci permette di evitare di dover integrare le basi dati ed effettuare dunque l’integrazione leggera.

Cliente e fornitore sono keyword che mi permettono di identificare alcuni degli enti con cui ho una relazione.

A questo punto è possibile creare una struttura per i nostri interlocutori, che sono individui o persone giuridiche, che potrebbero essere nuove aziende con cui avere rapporti, ma che non sono nè clienti nè fornitori (e.g. il comune, i vicini). Scopriamo quindi di avere interazioni con un insieme di persone e un insieme di soggetti giuridici.

C’è una modalità di accesso al database mediante una correlazione che non era prevista: troviamo i clienti che sono anche fornitori perché ci riconduciamo alla struttura dei dati, ma, per unire i dati e trovare una correlazione, non ci basiamo solo sui valori che troviamo, ma anche sulla ridondanza e sulla struttura (e.g. come capisco se Mac Donalds e McDonald sono la stessa azienda?).

Per evitare l’uso di keyword, cioè evitare di caratterizzare le entità con attributi lessicali, dobbiamo usare sistemi ontologici: a noi non interessano i sinonimi per una certa entità, ma ci interessa capire la struttura del mondo, ovvero l’ontologia.

L’ontologia è qualcosa di diverso da una semantica: quest’ultima è associata ai linguaggi, mentre le ontologie sono associate ai mondi. L’ontologia è lo studio dell’essere, o del “modo in cui noi stiamo nel mondo”, mentre le semantiche sono legate ai linguaggi: per poter avere un significato, deve esistere un linguaggio. Il mondo è generato da un linguaggio, che ci permette quindi di andare sempre oltre a ciò che vediamo, e l’ontologia parla di un mondo specifico.

Ad esempio, se definiamo il termine “grattacielo” come “edificio più alto di X metri”, una frase del

tipo “tornai a casa con il grattacielo in tasca” non ha senso nell’ontologia che abbiamo definito, mentre se un’ontologia prevedesse per il termine “grattacielo” anche il significato di “statuetta-souvenir che riproduce un edificio”, quella frase assumerebbe un senso preciso.

Stabilendo correlazioni tra database, noi descriviamo il mondo: è il mondo che dice le determina le parole che usiamo. Tale mondo è sempre finito: il numero di fatti nella vita dell’organizzazione è in numero finito. Il mondo evocato dal linguaggio è invece infinito e con il linguaggio possiamo rappresentare qualunque mondo possibile, poiché il linguaggio riguarda il potenziale, non solo l’esistente. In ogni caso, è la logica che ci permette di arrivare all’essenza della semantica: e la logica che dice che, se qualcuno eroga un servizio, allora è un fornitore, poiché noi sappiamo che il servizio è un tipo di fornitura.

L’ontologia ci permette di separare due fasi: aggregazione e l’eventuale integrazione. L’aggregazione consiste nel riunire ciò che ci interessa, ed è una parte significativa dell’integrazione: se ho due documenti con gli stessi dati e aggrego il loro significato, la fatica maggiore è stata fatta. L’integrazione effettiva dei file (merge o editing) è la parte minore.

È possibile correlare le informazioni contenute nei database, ma anche documenti e video, utilizzando la semantica. Il vantaggio di avere più database, anziché uno solo, è che possiamo mantenere nei database le informazioni analitiche a livello atomico.

Dobbiamo poi essere in grado di correlare le informazioni in modo da ottenere una risposta standardizzata che permetta di ottimizzare i costi e garantire un rapporto corretto con tutti i clienti (potendo rispondere allo stesso modo).

Per capire cosa è correlato con cosa, consideriamo un esempio che nasce da un’idea del Web: possiamo applicare dei tag alle risorse, in modo da riconoscere tutte le informazioni correlate. Il problema di questo approccio è che potremmo usare tag in forma diversa per rappresentare la stessa cosa (i tag sono legati alla sintassi). Una seconda soluzione è quella di riferirsi alla dimensione semantica, passando da un lessico (cioè uso delle parole per ricavare i tag) ad una semantica (ricavare i concetti e le entità).

La semantica a cui siamo interessati è però di natura diversa di quella dei linguaggi naturali, che in generale ha obiettivi più ampi di quello proposto. Grazie alla semantica possiamo caratterizzare un linguaggio mediante il quale possiamo descrivere il mondo di nostro interesse, ovvero l’ontologia.

Le ontologie possono essere descritte mediante linguaggi logici, uno dei più diffusi è OWL (Ontology Web Language).

Mediante essa, siamo in grado di muoverci nel mondo ed interpretare i fatti. È una descrizione molto astratta, utile in relazione alle azioni che vogliamo compiere.

Nell’ontologia le relazioni tra i nodi definiscono ciò che è possibile e che è rilevante per l’ontologia in questione, non al di fuori di essa, ed essa è completa rispetto alle azioni che possiamo fare.

È utilizzata molto anche per correlare cose diverse, ad esempio quando un’azienda vuole conoscere qualcosa a proposito di un’altra azienda. In questo caso devo trovare delle modalità per correlare informazioni diverse. L’utilizzo dell’astrazione è la tecnica più utilizzata:

  • diagnosi dell’organizzazione;
  • diagnosi dell’uomo;
  • diagnosi delle macchine.

Il tipo di astrazione dipende dalla risposta che vogliamo dare: le tre diagnosi sono correlate tra loro, anche se apparentemente tali concetti appartengono a categorie differenti.

Ognuna di queste categorie determina un insieme di diritti-doveri nelle relazioni della persona con l’organizzazione.

 

Cloud Computing

Tra le piattaforme tecnologiche a nostra disposizione, il cloud computing si presenta con delle premesse radicali: sebbene da un lato possa offrire grandi opportunità, dall’altro lato esso è uno sconvolgimento notevole nell’ambiente in cui si introduce, minacciando così l’industria del settore.

Già alle sue origini, e in modo più consolidato a partire da 10-15 anni fa, l’informatica si è presentata come un servizio agli utenti, cioè come risorsa preferibile in outsourcing piuttosto che in-house. I primi computer erano macchine costose, i mainframe, quindi l’organizzazione non acquistava l’intera macchina, ma pagava per poterla gestire e far girare il proprio software; la macchina però rimaneva nel “centro servizi” che offriva all’azienda tale possibilità.

Con l’evoluzione tecnologica questo vincolo dimensionale è venuto a cadere: le aziende si spinsero dunque verso la realizzazione di software in-house o all’acquisto dello stesso da fornitori specializzati. Chiaramente questo ha portato ad un sovradimensionamento della sezione ICT delle varie aziende, conducendole infine ad affrontare il problema se la scelta di produrre il proprio software fosse troppo costosa.

Le prime aziende a porsi questo problema sono state le grandi aziende, che effettivamente hanno poi puntato a spostare tutta la sezione ICT all’esterno, stipulando contratti di outsourcing: reti, server, manutenzione day-by-day, sviluppo software, non erano più attività interne all’azienda e potevano essere trattati come qualsiasi altro servizio, anche per quanto riguarda il controllo e la riduzione della spesa.

L’outsourcing ha avuto successo perché permetteva di ottenere il servizio di qualità migliore

presente sul mercato. L’azienda non poteva raggiungere quella qualità, perché la sua visione del mondo era limitata a sé stessa.

Questo processo però richiedeva una certa abilità, da parte delle aziende, nello stipulare i contratti di outsourcing, per poter garantire la qualità di quei servizi, molto complessi, che venivano acquistati. Erano quindi necessarie persone esperte di ICT che potessero controllare la qualità del servizio e, quindi, in realtà solo le infrastrutture divennero effettivamente non necessarie all’interno dell’azienda. Nell’adottare tecnologie da fornitori esterni c’è però una conseguenza negativa: non è possibile tenere sotto controllo il fornitore, che col passare del tempo tende a ridurre la qualità, ad introdurre rigidità e aumentare i costi.

Queste considerazioni spingono quindi le aziende a tornare indietro, cioè al possesso di reparti IT, o a creare delle società congiuntamente al fornitore verso le quali fare outsourcing, così da poter mantenere un controllo maggiore sul servizio offerto e sul software in proprietà.

Ed è in questo quadro che emerge il cloud computing.

Da un punto di vista concettuale, il cloud computing nasce dall’idea del grid computing, ovvero quella di utilizzare la potenza di calcolo distribuita nel mondo in maniera efficiente, cioè sfruttando l’inutilizzato. Questa idea viene inizialmente applicata alla condivisione di file musicali online, mediante reti in cui ognuno è sia un client che un server (Peer-to-Peer). Il problema

di questa architettura è che non è possibile individuare il responsabile della condivisione, in quanto impossibile determinare qual è il server da cui hanno origine i dati.

Tale soluzione distribuita è stata usata anche in ambito scientifico, per supportare la potenza di calcolo distribuita. Essa richiede però una elevata omogeneità tra gli utenti, limitando lo sviluppo del grid computing stesso. Nonostante ciò, le società che dispongono di un gran numero di server, rivolgono la loro attenzione al grid, sebbene spinte da necessità di mercato totalmente indipendenti (si pensi a Google ed Amazon). Il mercato del grid computing è attualmente in calo.

L’idea alla base del cloud computing è che gli utenti sono fruitori di servizi, non vedono come il servizio è implementato e lavorano in un ambiente caratterizzato da una spinta virtualizzazione.

  • Cloud Computing VS Mainframe: sono concettualmente simili, ma radicalmente diversiin termini di hardware.
  • Cloud Computing VS Grid: non si utilizza più il concetto di peer-to-peer.
  • Cloud Computing VS Outsourcing: L’azienda non fornisce il proprio sistemainformativo.

L’hardware per il cloud è spesso realizzato in modo da poter essere posto in un container di 100, 1000, 2000 server che sono già ottimizzati e raffreddati in maniera autonoma, pronti per essere messi “in vendita”.

La modularizzazione dei data center permette una gestione separata e semplificata in fase di backup, specialmente considerando che, disponendo di macchine uguali tra loro, il ripristino di un backup si riduce al tempo di trasferimento dei dati.

Il cloud computing è perfetto per le startup, perché non è necessario gestire la migrazione dai vecchi sistemi, operazione di norma molto costosa. La logica del Cloud Computing è infatti basata sul concetto di pay-per-use, ovvero di far pagare ai clienti una quantità proporzionale alle risorse che essi usano. Le risorse vengono allocate istantaneamente dall’infrastruttura, quindi l’uso delle risorse è dinamico e dipende esclusivamente dalle esigenze del momento. Questo permette di contenere i costi e crescere in modo dinamico assieme alle esigenze dell’azienda.

Da un punto di vista economico, in situazioni in cui l’uso del cloud computing non è vincolato, si ha un beneficio che per l’azienda oscilla tra il 30% e il 70%. Possono però essere presenti vincoli, che introducono un costo aggiuntivo, come ad esempio la necessità di localizzare i dati (per motivi di privacy o legistlativi), o la necessità di personalizzazione dei servizi.

L’offerta del cloud computing è caratterizzata da tre elementi principali:

  • Infrastruttura come servizio (Infrastructure as a Service, o IaaS), dove il servizio offerto dal fornitore del cloud è l’infrastruttura stessa della “nuvola”, composta da potenza di calcolo, storage e networking. Il cliente può quindi eseguire il proprio software (inclusi sistemi operativi) su questa infrastruttura.
  • Piattaforma come servizio (Platform as a Service, o PaaS), dove il servizio offerto è la possibilità di disporre di una piattaforma, fornita dal fornitore del cloud, sulla quale il cliente può eseguire i propri programmi.
  • Software come servizio (Software as a Service, o SaaS), dove il fornitore del cloud predispone un software per il cliente ed egli paga solo per il tempo di utilizzo effettivo di tale software.

Un problema che solleva il cloud è quello della privacy e della sicurezza dei dati, ma questo può essere risolto solo nell’ottica di un cambio radicale nella filosofia che sta alla base del nostro diritto.

 

Privacy e Proprietà dei Dati

Nella gestione dei dati online chiaramente si pone il problema della privacy. Il problema non sta tanto nel fatto che i dati possano essere pubblici, quanto nel fatto che qualcuno potrebbe usarli in modo improprio. L’abuso dei dati sensibili, ovvero il loro uso illegale, è ciò che deve essere punito (ad esempio, se dei dati sulle condizioni mediche di un impiegato venissero usati per licenziarlo, questo sarebbe un uso improprio ed illegale).

Un secondo problema è la proprietà dei dati: chi ne ha il controllo? Questo è un problema che per la maggior parte degli utenti è irrilevante, perchè essi condividono contenuti che sono già pubblici. Però, avendo dati solo in rete, il possesso dei propri contenuti non è reale; lo sarebbe solo se ne avessimo una copia off-line.

Esistono attualmente due modelli principali di software fornito al mercato mediante cloud computing:

  • modello Google, che mette a disposizione del software standard,
  • modello Amazon, che mette a disposizione software di mashup per realizzare softwarepersonalizzati.

Con i suoi vantaggi, il cloud porta anche degli svantaggi: innanzi tutto la migrazione dei sistemi attuali verso il cloud è molto costosa (ed è per questo che per le startup, il cloud, rappresenta un vantaggio), ma si rischia anche di diventare prigionieri del fornitore, infatti se si vuole cambiare fornitore è necessario dover anche spostare i dati, quindi servono garanzie da parte del fornitore sulla possibilità di utilizzare i propri dati in software forniti da diversi fornitori.

Da un punto di vista hardware, il cloud computing sembra una risorsa illimitata: l’utente non ha più il problema del dimensionamento, inoltre non c’è più bisogno di prevedere i problemi, ma è possibile concentrarsi solo dei servizi da fornire e della loro qualità.

Per poter avere del Software as a Service, il software deve avere particolari requisiti che lo abilitino all’uso mediante cloud computing. In particolare, esso deve

  • essere modulare (e in questo settore lavorano molto le ontologie, in particolare i servizidi gestione delle ontologie a livello di piattaforma),
  • essere meno integrato rispetto ai software attuali,
  • separare dati e programmi.

Per quanto riguarda gli attuali software ERP, come SAP, e il loro uso su piattaforme cloud, è necessario che essi siano modulari. Per poterli rendere tali, bisogna suddividere il sistema in moduli in base ai servizi offerti (tra i quali anche il database) che si devono collegare alla

piattaforma messa a disposizione dal cloud computing. L’idea è quella di sostituire i processi di integrazione interni con processi di integrazione esterni: solo chi è capace di fare questo può proporsi come gestore del cloud. In questo modo il software perde valore, dando un impulso notevole allo sviluppo di software Open Source, perché tutto si trasforma nel servizio offerto dal cloud.

È infatti il software Open Source ad essere il miglior candidato di Software as a Service, poiché chi lo sviluppa può anche ignorare i problemi di integrazione con la piattaforma e anzi, è il gestore del cloud che deve occuparsi di questo aspetto. Più precisamente, lo sviluppo di software Open Source non si propone ad un vasto pubblico di utenti, ma può interagire con pochi fornitori di servizi di cloud computing che potranno poi vendere il software come servizio ad un pubblico più ampio.

Nell’idea di integrare i moduli, una parte importante è svolta dalle ontologie, perché da una parte garantiscono la continuità con l’esistente e dall’altra parte possono essere gestite dal fornitore del cloud.

UPS è il leader mondiale del trasporto pacchi.

Di seguito si offre una descrizione delle integrazioni tra i vari aspetti (collaborazione / organizzazione / sistemi).

Si sottolinea che, considerata la dimensione della compagnia, la natura del suo business e la quantità di tecnologie che essa adotta, una descrizione completa avrebbe superato di molto i limiti imposti a questa relazione; si cercherà quindi di fornire una panoramica degli aspetti principali.

Integrazioni

La prima integrazione tra facets di cui si può parlare è quella tra sistema e organizzazione. UPS è un’azienda enorme, ma ha avuto l’accortezza di concepire fin da subito la propria base di dati come un’entità centrale e monolitica. La facility del New Jersey – come naturalmente la sua gemella in Georgia – ospita una serie di database che contengono (tra le altre informazioni):

i dati per la gestione del personale;

i dati, aggiornati real-time, su magazzini e mezzi di trasporto in uso, distribuiti nella rete intermodale di trasporti;

le informazioni su aziende partner e i clienti (anche queste ultime aggiornate real-time, basandosi sulle informazioni provenienti dai terminali DIAD e dal sito internet);

i dati per la stesura del bilancio (stato patrimoniale, conto economico, ecc.).

Poichè l’azienda opera anche al di fuori degli Stati Uniti, alcuni aspetti sono stati distribuiti anche all’estero. Un esempio è la base di dati della gestione del personale, per sua natura integrata con i sistemi di analisi dell’andamento economico: i costi del personale e di esercizio sono salvati nei database nazionali, ma le informazioni sono periodicamente aggregate e convertite in valuta americana; eventuali attività anti-produttive sono identificate e risolte in tempi brevi. La necessità di automatizzare il rilevamento dei costi ha messo in condizione UPS di automatizzare alcuni processi, tra i quali la generazione delle buste paga.

E’ stata semi-automatizzata anche la gestione di turni e dei riposi : il personale è categorizzato nel database in base al tipo di ruolo, curriculum e alla regione geografica di appartenenza (si vedrà nel paragrafo successivo come questo rappresenti già materiale

per un ontologia); la richiesta di ferie – che va effettuata con molto anticipo – viene inserita in un software che sottopone ai capi dei settori l’approvazione del piano. Questo meccanismo, sulla carta assai efficiente, ha portato all’avvio di una class-action contro UPS da parte dei dipendenti, perché non è risultato in alcun modo “flessibile” nei confronti di persone improvvisamente soggette a impedimenti o disabilità).

I dati relativi ai magazzini e ai mezzi di trasporto sono il cuore dell’attività di UPS, che non producendo beni vive dell’efficienza dei propri servizi. Tutti i software sono stati realizzati dalla ditta stessa nel corso delle ultime due decadi e sono altamente integrati : tutti fanno riferimento alla medesima base di dati e avviene un continuo flusso di informazioni da e verso le applicazioni.

Per esempio, alla richiesta di spedizione di un pacco da parte di un cliente vengono inserite – ex novo o come aggiornamento – le sue informazioni (specialmente i riferimenti per il pagamento, validati tramite i servizi di interfacciamento con i sistemi interbancari).Vengono inoltre creati i record con tutti i dati del pacco (luogo di ritiro e di consegna, eventuale luogo alternativo in caso di mancato ritiro, costo di spedizione calcolato in automatico e accettato dal cliente, ecc.). L’accredito è generato istantaneamente alla ricezione da parte del sistema della conferma di consegna (giunta dal terminale DIAD).

La generazione dell’ordine innesca la creazione di un record anche nel sistema di gestione della spedizione, che comporta una notifica agli operatori coinvolti. Il sistema di supporto logistico di UPS si occupa di ottimizzare le spedizioni dei colli, sia in termini di percorso minimo effettuato dai furgoni che di colli trasportati dagli stessi, tenendo conto anche degli operatori disponibili sulla base del già citato scheduling di ferie e riposi. Sono tutti esempi dell’alto livello di integrazione raggiunto dai sistemi della compagnia.

Come già evidenziato nel documento precedente, e come emerge da quanto detto finora sui flussi di dati dalle nazioni esterne verso il database centrale, avviene una grossa attività di warehousing. UPS ha un database di svariati terabytes che ospita la operations information library (OIL), una enorme collezione di dati, strutturati a diversi livelli di granularità, che riassume le attività del gruppo. OIL nasce inizialmente al fine di migliorare l’organizzazione interna sul suolo americano e per pianificare strategie nel breve periodo, ma a partire dal 1999 ingloba tutte le informazioni sull’attività planetaria e solo dai primi anni del 2000 viene sfruttata per l’integrazione dei software di intelligence e online analytical processing.

I dati aggregati vengono consultabili dal management dell’organizzazione; come detto nell’altro documento, molti dati di granularità molto fine sono resi accessibili tramite API anche dai clienti, ad esempio le informazioni sullo stato del singolo oggetto spedito. I clienti stessi possono integrare nei loro sistemi queste informazioni, in maniera assai agevole grazie alla sistematica adozione di UPS di standard aperti.

Come descritto nell’altro documento, in UPS esiste una commissione che si occupa di intraprendere innovazioni tecnologiche, raccogliendo i suggerimenti dei dipendenti. Le idee vengono sottomesse tramite un applicativo via web, utilizzabile attraverso la intranet della compagnia.

Un’ontologia per l’integrazione

Nell’ipotizzare un’ontologia dietro alle integrazioni di UPS, si può partire sicuramente dagli attori coinvolti in quello che è il suo core business: il trasporto pacchi. Dunque, si ha una classe Pacco , trasportata da una Locazione ad un’altra; il trasporto può essere concettualizzato con due relazioni “trasportoDa” e “trasportoA”, se si esclude dalla

modellazione le consegne transnazionali e multimodali. Pacco può avere più sottoclassi specializzate – in funzione delle sue caratteristiche – e deve possedere una Locazione istantanea, a seguito della geolocalizzazione.

Il pacco viene di norma spedito da un Cliente; considerando la vastità della offerta di servizi di UPS – che non prevede il solo trasporto di colli – una grande attenzione dev’essere riposta alla descrizione di classi derivate e attributi. Qualunque servizio offerto, di qualsiasi natura, prevede la “effettuazione” di un Ordine di vario tipo, come ad esempio una Spedizione.

Può capitare che un cliente risulti essere anche un Fornitore. L’ontologia potrebbe definire una super-classe di aggregazione AziendaPartner se riconosce che si tratta contemporaneamente di una ditta di tipo Cliente e Fornitore, ovvero se ha effettuato almeno una fornitura e almeno un’ordine.

Big Brown, come è chiamata in gergo UPS, è composta sopratutto di entità Dipendente organizzate in una struttura gerarchica (Organigramma) vasta e variegata. Anche quì lastrutturazione dev’essere accurata, con particolare enfasi sugli aspetti legati allo spazio/tempo: un lavoratore opererà in una precisa Regione, ovvero un’aggregazione di locazioni del network mondiale, coprirà un preciso Orario nell’arco della sua SettimanaLavorativa e così via. Un’ontologia di questo tipo renderebbe molto semplice effettuare inferenze automatiche nella generazione dei turni di riposo. Modellando adeguatamente alcuni attributi come qualifiche, titoli, stato di servizio e anni di anzianità, si da al management la possibilità di valutare quantitativamente – oltre che qualitativamente – il rendimento dello staff.

Molti di questi dati sono già presenti nei sistemi legacy di UPS, depositati all’interno dei database introdotti nelle ultime due decadi. Altri possono emergere da opportune “viste” sui db o attraverso attività di data mining.

 

REMOTE DBA POSTGRESQL.

Il Ceo Stefano Fantin ha studiato il codice sorgente del DBMS Postgresql dalla versione 8 di Postgresql fino a Postgresql 9.5, a breve uscirà la versione di Postgresql 9.6 .

Remote DBA Postgresql 8.0 : PITR, Tablespace, Windows Support, Savepoints
Remote DBA Postgresql 8.1 : Table partioning, Bitmap scans, Two-Phase commits, autovacuum
Remote DBA Postgresql 8.2 : Warm Standby, SQL 2003, Concurrent Index Builds, Gin indexes
Remote DBA Postgresql 8.3 : Hot updates, Asynchronous commit, XML, Fulltext search, Distribuited checkpoints
Remote DBA Postgresql 8.4 : Windows functions, CTEs, Database collations, Per-Column permission
Remote DBA Postgresql 9.0 : Hot Standby, Streaming Replication, Column Triggers, Conditional Triggers, hstore
Remote DBA Postgresql 9.1 : Synchronous Replication, Writable CTEs, Extension, Foreign Data Wrappers, Unlogged tables, Serialisable Snapshot Isolation, Column collations
Remote DBA Postgresql 9.2 : Cascading Replication, Index-Only scans, pg_stat_statements, Json, Ranges
Remote DBA Postgresql 9.3 : Writable Foreign Data Wrappers, Materialised Views, JSON functions and operators, LATERAL
Remote DBA Postgresql 9.4 : Logical replication, Replication slots, JSONB –> GIN (Generalized Inverted Index), scalability : Logical Decoding
Remote DBA Postgresql 9.5 : UPSERT, Row-level security, functionality for Big Data: BRIN index, algorithm called “keys abbreviated”,CUBE, ROLLUP, and GROUPING SET, TABLESAMPLE, Foreign Data Wrappers (FDW)

Remote DBA Postgresql 9.6 : Scalabilità verticale tramite query parallele, Scalabilità orizzontale tramite replica sincrona e
‘postgres_fdw’, Miglior ricerca testuale con le frasi. Parallel Query : Parallel sequential scans, parallel joins, parallel aggregates.
Transactions, VACUUM and the Visibility Map : pg_visibility extension for examining visibility maps, Frozen page data in visibility map
for skipping vacuum on already-frozen data, User-defined expiration of snapshots to control table bloat. Performance and Monitoring :
Detailed wait information in pg_stat_activity, Index-only scans for partial indexes, Performance improvements for external sort
operations. System Views and Administration : New system view pg_config, pg_blocking_pids, Functions pg_get_* to return NULL on invalid
objects, pg_notification_queue_usage to look at notify queue. Backups : pg_basebackup extended with replication slots, New API for hot physical backups. Other Features: Command progress reporting, Generic WAL facility, Trigonometric functions in degrees.

Remote DBA Postgresql 10 : Logical replication, declarative table partitioning, improved query parallelism

 

Stefano Fantin ha studi tecnici come Remote DBA Oracle:

– Remote DBA Oracle 8i : webDB, outline, DBMS_REPAIR, logMiner, DROP column, LMT, TRIM function, MERGE partitions, HASH and COMPOSITE partitions
– Remote DBA Oracle 9i : fast-start time-based recovery limit, Flashback Query, Resumable Space Allocation, Trial Recovery, Data Guard, online index rebuild, Online table redefinitions,SPFILE, External Tables, ASSM, Oracle RAC, OMF
– Remote DBA Oracle 10g : Data Pump, AWR, ASH, ADDM, SQL Tuning Advisor, Oracle scheduler, Segment Shrink, Segment Advisor, BFT, Flash Recovery Area
– Remote DBA Oracle 11g : DNFS, Online Patching, ASM Fast Mirror Resync, md_backup, md_restore, AWR baseline template, File Watcher, AMM, INCREMENTAL and PENDING statistics, Interval Partitioning
– Remote DBA Database Oracle 12c : multitenant Container DataBase, CDB, PDB, ADO, Heat MAp, PGA Size Limit, DBMS_QOPATCH, Automatic Big Table Caching, In- Memory (IM) Column Store

Grazie per credere in Noi e nella nostra vision, ti invitiamo a dare una occhiata anche ai seguenti sette allegati:

#2 Fantin Stefano Big Data

#3 Fantin Stefano – Hadoop

#4 Fantin Stefano – Big Data e statistica

#5 Fantin Stefano – Big Data e statistica testuale – 1

#5 Fantin Stefano – Big Data e statistica testuale – 2

#5 Fantin Stefano – Big Data e statistica testuale – 3

#5 Fantin Stefano – Big Data e statistica testuale – 4

#5 Fantin Stefano – Big Data e statistica testuale – 5

#5 Fantin Stefano – Big Data e statistica testuale – 6

#6 Fantin Stefano – Big Data e Formule Matematiche

#7 Fantin Stefano – Big Data e Informatica Teorica

Buono studio, in fede

Stefano Fantin .