EUCIP livello core B - Area di Realizzazione Sistemi Informativi (Build) Acquisition, Development and Implementation of Information Systems

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "EUCIP livello core B - Area di Realizzazione Sistemi Informativi (Build) Acquisition, Development and Implementation of Information Systems"

Transcript

1 The true test of character is not how much we know how to do, but how we behave when we don t know what to do. John W. Holt, Jr. EUCIP livello core B - Area di Realizzazione Sistemi Informativi (Build) 1 Acquisition, Development and Implementation of Information Systems

2 2

3 BUILD: Categorie B.1 Systems Development Process and Methods B.2 Data Management and Databases B.3 Programming B.4 User Interface and Web Design 3

4 B.1 System Development Process and Methods B.1.1 Software in Data Processing Systems B Describe a data processing system as a combination of hardware, firmware, operating system software, application software, system configuration data and user-defined data. B Recognise and list examples of system software. B Recognise and list examples of application software. 4

5 B - BUILD/ B.1 System Development Process and Methods / B.1.1 Application software and system software Data Processing System User Application Data System Configuration Data 5 Firmware

6 B - BUILD/ B.1 System Development Process and Methods / B.1.1 Application software and system software software applicativo e di sistema Business Software ERP Office Workflow Entertainment & Games DataBase Management System Educational Multimedia Publishing Social (was Communication) 6 Device drivers Operating systems Grafical User Interface

7 B - BUILD/ B.1 System Development Process and Methods / B.1.1 Application software and system software ERP Enterprise Resource Planning 7

8 Publishing 8

9 Publishing & Ebook During Jeff Bezos' presentation of the new Kindles, he flashed the slide below which shows the phenomenal growth of Amazon's Kindle ebook sales I n comparison to physical book sales 9

10 Multimedia Tinyshark 8 Tracks Bambuser

11 Social Instant Messaging: ICQ, MSN Messenger,Yahoo! Messenger Internet Forums Wiki ( dalla parola Hawaiana [viti] che significa veloce. Ward Cunningham, the developer of the first wiki software (1995), WikiWikiWeb, originally described it as "the simplest online database that could possibly work. Blogs (contrazione di Web Logs): Wordpress, Drupal. Weebly Social Network Services: Facebook, Google+, Twitter, Linkedin, Foursquare Social Bookmarking: Del.icio.us Virtual Worlds: Second Life, MMOG (Massively Multiplayer Online Games)

12 Operating System Tux Windows XP Windows Vista Windows 7 Windows 8 Mac OS X GNU Linux Distribuzioni: Debian Fedora Knoppix Mandriva Red Hat Slackware SuSE Ubuntu

13 Sistemi Operativi Smartphone & Tablet

14 Sistemi Operativi Smartphone

15 Applicazioni Android

16 La mutazione In video la lunga lezione che Alessandro Baricco ha tenuto al cinema Anteo di Milano su i barbari e la mutazione (7 parti) "Il timore di essere sopraffatti e distrutti da orde barbariche è vecchio come la storia della civiltà. Immagini di desertificazione, di giardini saccheggiati da nomadi e di palazzi in sfacelo nei quali pascolano le greggi sono ricorrenti nella letteratura della decadenza dall'antichità fino ai giorni nostri". Wolfgang Schivelbush - La cultura dei vinti 16

17 Chi è? "Eleganza, purezza e misura, che erano i principi della nostra arte, si sono gradualmente arresi al nuovo stile, frivolo e affettato, che questi tempi, dal talento superficiale, hanno adottato. Cervelli che, per educazione e abitudine, non riescono a pensare a qualcosa d'altro che i vestiti, la moda, il gossip, la lettura di romanzi e la dissipazione morale, fanno fatica a provare i piaceri, più elaborati e meno febbrili, della scienza e dell'arte. Xxxxxxxx scrive per quei cervelli, e in questo pare che abbia un certo successo, se devo credere agli elogi che, da ogni parte, sento fiorire per questo suo ultimo lavoro". The Quarterly Musical Magazine and Review 17

18 Multitasking & Virtual Memory Multitasking Virtual Memory

19 Device Driver Insieme di procedure, che permette ad un sistema operativo di pilotare un dispositivo hardware. Il driver permette al sistema operativo di utilizzare l'hardware senza sapere come esso funzioni, ma dialogandoci attraverso un interfaccia standard che astrae dalla implemenrtazione dell'hardware e che ne considera solo il funzionamento logico. In questo modo hardware diverso costruito da produttori diversi può essere utilizzato in modo intercambiabile. Ne consegue che un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del sistema operativo per cui è scritto. Il driver è scritto solitamente dal produttore del dispositivo hardware, dato che è richiesta un'approfondita conoscenza dell'hardware.

20 B.1 System Development Process and Methods B.1.2. Systems Development Life Cycles B Describe the typical phases of systems development B Compare the various classical models of systems development life cycle B Describe the life-cycle of a system B Outline specifications for requirements and design 20

21 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Fasi del Ciclo di vita del software 21

22 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Fasi del Ciclo di vita del software 22

23 PRACTICE Happiness nel Ciclo di vita del software 23

24 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - WATERFALL Ogni fase è concatenata in sequenza alla successiva, a cui trasmette le informazioni necessarie per la prosecuzione delle attività. Per ogni passaggio viene effettuata una revisione ed approvazione (design review), che serve da presupposto per il passaggio all attività seguente. E un modello solido e robusto, ma limitato da una struttura poco flessibile. Richiede che tutti i requisiti siano ben definiti all inizio, perchè rivedere le esigenze nelle fasi successive o correggere gli errori ha un costo molto elevato. 24

25 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - PROTOTYPING Spesso un cliente definisce un insieme generale di obiettivi per il software, ma non fornisce un livello dettagliato di requisiti Esempio: Interfaccia Utente In questi casi il Modello Prototipale può essere la soluzione migliore 25

26 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - PROTOTYPING 26

27 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - PROTOTYPING L obiettivo principale di un prototipo è l identificazione di requisiti software. Il prototipo può essere di tipo evolutivo, oppure usa e getta (throw away). Limiti del modello evolutivo (Qualità, Efficienza) E importante definire le regole del gioco 27

28 B - BUILD / B.1 System Development Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - INCREMENTAL Questo modello combina elementi del modello Waterfall con la filosofia iterativa del modello Prototipale. Ogni ciclo Waterfall produce un Incremento rilasciabile del software Focus sul rilascio di un prodotto utilizzabile Questo modello si applica perfettamente nei progetti in cui: Alcune funzionalità di base sono richieste in anticipo. I requisiti sono definiti, ma è possibile ritardare la loro realizzazione. Non è possibile (vincoli di risorse/del rischio) rilasciare tutte le funzionalità allo stesso tempo. Dati i requisiti è complesso disegnare fin dall'inizio la funzionalità. 28

29 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System Implementation Data Migration 29

30 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System Implementation End User Training 30

31 B.1 System Development Process and Methods B.1.3. System Development Tools B Outline the use of tools at different stages of systems development B Outline the strengths development environments and weaknesses of different B Outline the use of simple development tools for editing 31 software

32 B - BUILD / B.1 System Development Process and Methods/ B.1.3 System Development Tools Strumenti per lo sviluppo di sistemi I CASE sono strumenti che applicano i principi dell ingegneria del software sia all analisi che allo sviluppo e con lo scopo di automatizzare la produzione dei sistemi. Esistono stumenti che supportano il reverse-engineering, che permettono di ricostruire a ritroso il percorso effettuato in fase di sviluppo. Upper-CASE Supportano le fasi iniziali del processo (analisi dei requisiti e progettazione) Lower-CASE supportano le fasi finali (programmazione, debugging, testing) 32

33 B - BUILD / B.1 System Development Process and Methods/ B.1.3 System Development Tools Strumenti per lo sviluppo di sistemi CVS Concurrent Versioning System or VCS Version Control System 33

34 B.1 System Development Process and Methods B.1.4. System Testing and Deployment B Describe the different types of testing and review applied during the system development B Describe the main issues in the system implementation phase B Outline the strengths and weaknesses of different implementation approaches B List the typical components of system user manuals and technical reference documents. 34

35 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software Definizione di VERIFICA secondo IEEE (Institute of Electrical and Electronics Engineers) L insieme delle attività di revisione, ispezione, collaudo, prova formale, indagine che definisce e attesta come gli oggetti, i processi, i servizi e i documenti siano conformi ai requisiti specificati 35

36 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software GESTIONE DELLA RINTRACCIABILITA PROVE FORMALI verificare da un punto di vista logico-matematico la correttezza del software Esempio: Realizzazione di protocolli di comunicazione, Sistemi di cifratura e sicurezza COLLAUDO definisce delle condizioni operative e verifica il sistema usando un ampio numero di input, confrontando i risultati effettivi con quelli attesi e valutandone la corrispondenza o o o Test che controllano l AFFIDABILITA : Volume test: massimo carico di lavoro previsto dalle specifiche Stress test: carico di lavoro eccezionale, non previsto dalle specifiche Test che controllano l EFFICIENZA: Performance test: verifica che i tempi di risposta siano compatibili con i requisiti Storage use test: valuta la quantità di memoria necessaria Test che controllano la PORTABILITA : Configuration test: verifica che il prodotto sia supportato su qualsiasi piattaforma Compatibility test: compatibilità con prodotti/altre applicazioni con cui deve operare 36

37 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software V - MODEL 37

38 B - BUILD / B.1 System Development Process and Methods/ B.1.4 Software and SystemTesting Testing e collaudo dei sistemi software Black-Box testing (Copertura Logica): In questo caso non conosciamo come è fatto il modulo che vogliamo testare. Il nostro focus sarà sul comportamento input-output che sarà definito dalle specifiche. Il test può essere effettuato da una terza persona che non ha sviluppato il modulo e può essere automatizzato. White-Box testing (Copertura Topologica): La conoscenze approfondita del modulo permette di testare con un maggior livello di dettaglio. I dati di input possono essere scelti in modo che ogni istruzione sia eseguita almeno una volta. Più difficile da implementare ma è in grado di rilevare un maggiore numero di errori. 38

39 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - Documenti Studio di fattibilità Requisiti Specifiche Funzionali Disegno Architetturale Specifiche di Progettazione Specifiche di Test Specifiche d Integrazione Report di Test Report d Integrazione Manuale d Installazione 39 Codice Codice dei Test Manuale Utente

40 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Requirements Process - Libri Mastering the Requirements Process (3rd Edition) To listen well is as powerful a means of communication and influence as to talk well. John Marshall, Chief Justice of the United States 40

41 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - Libri 41

42 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software - Libri 42

43 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies Modelli per lo sviluppo software Casi d uso 43

44 B - BUILD / B.1 SD Process and Methods/ B.1.2 System Development principles and methodologies DFD Data Flow Diagram 44

45 B.1 System Development Process and Methods B.1.5. System Control and Safety B Distinguish between development, test and production environments B Recognise risks related to system failures B Describe the day-to-day security routines in a distributed system 45

46 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Sicurezza Secondo le norme ISO la sicurezza è definita come l insieme degli sforzi dedicati ad assicurare la protezione dei dati e delle risorse di sistema in termini di integrità, riservatezza e disponibilità INTEGRITA - Integrity prevenire la modifica inopportuna di dati o funzionalità del sistema RISERVATEZZA - Confidentiality è stata definita da International Organization for Standardization (ISO) in ISO come: "ensuring that information is accessible only to those authorized to have access DISPONIBILITA - Availability il tempo in cui un sistema è disponibile ad operare in uno stato affidabile 46

47 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety RAID Redundant Array of Independent Disk 47

48 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Cluster Architecture 48

49 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Architettura DMZ DeMilitarized Zone 49

50 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Availaibility Indici di misura MTBF Mean Time Between Failures MTTR MeanTime To Repair MTBF Availaibility (%) MTBF + 50 MTTR

51 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Sicurezza Altri concetti di sicurezza: IDENTIFICAZIONE AUTENTICAZIONE L autenticazione tramite password viene definita debole perchè: La password ha generalmente una lunghezza limitata La password può essere scoperta facilmente La password viaggia spesso in chiaro sulla rete di comunicazione Algoritmi di hash che consentono di non far viaggiare in chiaro i dati Autenticazione con riconoscimento biometrico: Riconoscimento delle impronte digitali (fingermarks) Scansione della retina (retina scan) NON RIPUDIO Consente di associare il dato a colui che lo ha sottoscritto 51

52 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Crittografia Simmetrica 52

53 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Crittografia Asimmetrica 53

54 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Firma Digitale 54

55 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Firma Digitale 55

56 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Security Policy - Scopo Con la rapida evoluzione dell ICT, i sistemi informatici hanno assunto importanza centrale nell assetto organizzativo e funzionale delle imprese e delle istituzioni. La diffusione delle tecnologie fondate sul paradigma della Rete poi, ha favorito il ridisegno dei confini organizzativi dell impresa, sempre più aperta e connessa con altri soggetti e sistemi informatici. In questo contesto, l adozione di efficaci politiche di sicurezza informatica ha rilevanza cruciale, in quanto da essa possono dipendere le stesse sorti dell impresa/istituzione. Si tratta di un compito non facile, in ragione soprattutto dei continui cambiamenti delle tecnologie e dell elevato impegno operativo, organizzativo e finanziario richiesto a tutti i livelli della struttura aziendale. 56

57 B - BUILD / B.1 System Development Process and Methods/ B.1.5 System control and safety Security Policy Principi Generali Le misure di sicurezza devono essere conformi ai requisiti di business aziendali, nonché alle normative vigenti. La sicurezza riguarda tutti e la consapevolezza individuale gioca un ruolo fondamentale nel conseguimento degli obiettivi di sicurezza prefissati. Le misure di sicurezza devono essere efficaci e comprensibili e bilanciate rispetto ai relativi costi. La sicurezza richiede una combinazione di misure tecniche e organizzative. È necessario che la sicurezza sia pianificata e integrata nelle attività di sviluppo dalle fasi iniziali. Le autorizzazioni devono essere basate sul principio del "need-to-know" correlato al business aziendale.. La sicurezza deve essere continuamente monitorata. 57 Fonte: OCSE, Guidelines for the Security of Information Systems;

58 B.1 System Development Process and Methods B.1.6. Trends in Systems Development B Describe standard and innovative approaches B Understand the impact of current technical architecture developments B Describe the complexity of modern system of systems 58

59 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Tendenze evolutive nello sviluppo dei sistemi La necessità di standardizzare i processi software nasce dall esigenza di assicurarne la qualità in base a determinati parametri di riferimento Enti specializzati nella regolamentazione del processo di produzione software: ISO (International Organization of Standardization) IEEE (Institute of Electrical and Electronics Engineers) SEI (Software Engineering Institute) ANSI (American National Standard Institute) CEN (Comité Europée de Normalisation) UNI (Ente Nazionale Italiano di Unificazione) 59

60 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement ISO

61 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement ISO 9000 ISO 9000 identifica una serie di norme e linee guida sviluppate dall ISO, che propongono un sistema di gestione per la qualità, pensato per tenere sotto controllo i processi aziendali indirizzandoli alla soddisfazione del cliente. Le ISO 9000 attualmente (dall'anno 2000 in avanti) sono suddivise in: ISO 9000 descrive terminologia e principi essenziali dei sistemi di gestione qualità e della loro organizzazione ISO 9001 per la definizione dei requisiti dei sistemi qualità ISO 9004 è la linea guida per il miglioramento delle prestazioni delle organizzazioni 61

62 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement CMM - Capability Maturity Model Il modello CMM del Software Engineering Institute, valuta il grado di maturità dell approccio alla qualità. Consente di classificare le aziende in base all effettivo approccio alla qualità da esse attuato. 62

63 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Software Estimation described in Steve McConnell s book Rapid Development 63

64 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Function Points 64

65 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 65

66 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 66

67 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 67

68 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones 68

69 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Capers Jones - libri 69

70 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Metodologie Agili You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete. RICHARD BUCKMINSTER FULLER Le metodologie agili nascono alla fine degli anni 90 con l avvento dei sw per il web. Keypoint: I requisiti cambiano Esempi: Spesso il cliente, soprattutto all inizio di un progetto, non sa quel che vuole Spesso un cliente non sa esprimere quel che vuole (es. non conosce la terminologia) Spesso un cliente ha dei motivi per non esprimersi compiutamente Il cliente cambia semplicemente opinione E stato necessario definire una metodologia di sviluppo software che prendesse in considerazione cambiamenti frequenti nei requisiti. Le metodologie agili non sono predittive, non cercano di prevedere come evolverà il sistema software, bensì sono adattive, ossia cercano di capire le pratiche migliori per meglio adattarsi all evoluzione dei requisiti utente. 70

71 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Metodologie Agili Nell ingegneria del software, per metodologia agile (o leggera) o metodo agile si intende una particolare metodologia di sviluppo del software che coinvolge quanto più possibile il cliente e che ha come fine quello di ridurre il rischio di fallimento nello sviluppo software. Gran parte dei metodi agili tenta di ridurre il rischio di fallimento sviluppando il sw in finestre di tempo limitate chiamate iterazioni. Una iterazione è un piccolo progetto a sé stante che si compone di: Analisi dei requisiti Planning Implementazione e Testing Documentazione Gli scopi sono: permettere al cliente di seguire lo sviluppo e dargli la possibilità di testare dare agli sviluppatori la possibilità di risolvere i bug e gli errori riscontrati dai clienti iterazione dopo iterazione si giungerà al prodotto finale che il cliente desidera extreme Programming (XP),SCRUM,Feature Driven Development, Dynamic Systems Development Method (DSDM),Crystal 71

72 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Metodologie Agili 72

73 PRACTICE Metodologie Agili 73

74 PRACTICE Estimation: the Agile viewpoint 74

75 PRACTICE Metodologie Agili 75

76 PRACTICE Metodologie Agili It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change. CHARLES DARWIN 76

77 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement Three-Tier Application 77

78 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture 78

79 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Per il chief information officer (CIO), SOA riduce il lifetime cost dell application portfolio, massimizza il return on investment (ROI) sia delle applicazioni e delle risorse tecnologiche, e riduce i tempi per il rilascio di soluzioni al business.. Per il business executive, SOA è un insieme di servizi che può essere reso disponibile a clienti, partners, e altre parti dell organizzazione. Le capacità di Business, le funzioni, e la logica di business può essere combinata e ricombinata per soddisfare le necessità del business oggi e domani. Le applicazioni servono il business perchè sono composte di servizi che possono essere velocemente modificata e redeployed in nuovi contesti di business Permettendo al business di rispondere rapidamente alle necessita dei clienti, alle opportunità di business, e alle condizioni di mercato. Per il business analyst, SOA è un modo per unlocking the value, perchè i processi di business non sono più locked negli application silos. Le applicazioni non si comportano più come inibitori al cambiamento delle necessità di business. 79

80 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture. Per il chief architect o enterprise architect, SOA è un modo per creare applicazioni dinamiche, alltamente configurabili e collaborative costruite per il cambiamento. SOA riduce la complessità e la rigidità IT contrastando la graduale entropia che rende le applicazioni fragili e difficili da modificare. SOA riduce costi e tempi perchè riduce la complessità rendendo più facile la modifica e il test delle applicazioni quando sono strutturate per usare I servizi. Per l IT architect, SOA è una soluzione architetturale per integrare diversi sistemi fornendo uno stile architetturale che promuove il loose coupling e il riuso. Per il developer, SOA is è un modello o paradigma di programmazione dove i web services e i contracts diventano la progettazione dominante per l interoperabilità. Un web service usa il Web Service Description Language (WSDL) o una specifica equivalente per descrivere il servizio. I Web services abilitano le organizzazioni a comunicare, usando messaggi, senza una conoscenza intima dei diversi sistemi. 80

81 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture 81

82 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Delivering on the promises of SOA improved business agility maximized ROI, q reduced IT complexity and rigidity q reduced costs q reduced lead times q reduced risk q new opportunities to deliver value q increased participation in value networks q incremental implementation q q Richiede una visione olistica della SOA. Se limitiamo la visione della SOA ad un singolo stakeholder (e.g., IT architect, developer, o business analyst) i benefici non verranno maturati perchè la SOA diventerà semplicemente l ennesimo elemento di una lunga lista di tecnologie sopravvalutate piuttosto di essere un nuovo approccio per costruire soluzioni flessibili di business. 82

83 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Un servizio in SOA è una logical, self-contained business function. I servizi in SOA hanno I seguenti attributi: Stateless: I servizi SOA non ricordano l ultima cosa che è gli è stata richiesta di fare nè si prendono cura di quale sarà la prossima. I servizi non sono dipendenti dal contesto o dallo stato di altri servizi. Il World Wide Web fornisce un eccelente esempio, dove ogni richiesta dell utente di una pagina web non influenza in nessun modo la richiesta successiva. Discoverable: Un servizio deve essere discoverable dai potenziali utilizzatori del servizio.dopo tutto, se non si conosce l esistenza di un servizio probabilmente questi non verrà mai usato. I servizi vengono pubblicati ed esposti dai service providers nelle SOA service directory, da dove vengono discovered and invoked dai service consumers. Self-describing: L interfaccia del servizio SOA descrive, espone, e fornisce un entry point al servizio. L interfaccia contiene tutte le informazioni di cui un service consumer ha bisogno per rilevare e connettersi al servizio, senza che consumer comprenda (o veda) i dettagli tecnici di implementazione. 83

84 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Composable: I servizi SOA sono, per natura, compositi. Possono essere composti di altri servizi che a loro volta possono essere combinati con altri servizi creando nuove soluzioni di business. Loose coupling: Loose coupling permette di separare le problematiche (concerns) relative alle features delle applicazioni in parti indipendenti fornendo un meccanismo per cui un servizio invoca un altro servizio senza essere strettamente legato a quest ultimo. La separation of concerns si ottiene stabilendo confini logici o fisici che delineano un insieme di responsabilità. Per esempio, un account service ha le features open account, authorization, e audit che delineano le responsabilità e tre di verse aree di responsabilità. Governed by policy: Services are built by contract. Le relazioni tra servizi sono governate da policies e service-level agreements (SLAs), che promuovono la process consistency e riducono la complessità. Independent location, language, and protocol: I servizi sono disegnati per essere location transparent and protocol/platform independent (in termini generali accessibili da ogni utente autorizzato, su ogni piattaforma, da ogni luogo). 84

85 B - BUILD / B.1 SD Process and Methods/ B.1.7 Trends in Systems Development and deployement SOA Service Oriented Architecture Inoltre I servizi di una SOA hanno tipicamente le seguenti caratteristiche: Coarse-grained: I servizi sono tipicamente funzioni di business coarse-grained (a grana grossa). La granularità è un requisito di ricchezza funzionale di un servizio (più un servizio è coarse-grained più sono ricche le funzionalità che offre). I servizi Coarse-grained riducono la complessità per i system developers limitando gli step necessari a soddisfare una data funzione di business. Asynchronous: La comunicazione asincrona non è richiesta per un servizio SOA, ma aumenta la scalabilità di un sistema attraverso un comportamento asincrono e tecniche basate sui messaggi. La latenza di rete non predicibile e gli alti costi di comunicazione possono rallentare I tempi di risposta in un SOA environment a causa della natura distribuita dei servizi. Il comportamento asincrono e il messaging permettono a un servizio di inoltrare una richiesta e continuare l elaborazione fino a quando il service provider ritornerà una risposta. 85

86 B.2 Data Management and Databases B.2.1 Data and Transactions B Outline the importance of durable data recording for transaction processing and reporting systems B Describe how atomicity, consistency, isolation and durability help to guarantee secure database transactions B Outline design and maintenance issues for multi-user systems 86

87 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Dato e Informazione Definiamo il dato come unita` elementare (grezza) di informazione Informazione e` l elaborazione dei dati per rispondere a esigenze specifiche Un dato è ciò che è immediatamente presente alla conoscenza. Una sua elaborazione può portare alla conoscenza di una informazione Dati: 03/04/ /03/2008 4/3/ Informazione: in diverse forme e rappresentazioni queste stringhe di caratteri possono per esempio corrispondere a una data. 87

88 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Database Database un insieme di informazioni catalogate e organizzate DBMS acronimo di Data Base Management System è il software che permette di creare e gestire un database 88

89 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Transazione TRANSAZIONE è un insieme di operazioni sul database che deve essere eseguita in maniera atomica o tutto o niente Una transazione deve essere ACID Atomicity : atomicità, la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni intermedie (COMMIT-ROLLBACK); Consistency : coerenza, quando inizia una transazione il database si trova in uno stato coerente e quando la transazione termina il database deve essere in uno stato coerente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistency) tra i dati archiviati nel DB Isolation: isolamento, ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre, l'eventuale fallimento di una transazione non deve interferire con altre transazioni in esecuzione (DEADLOCK) Durability: persistenza, dopo un commit work, i cambiamenti apportati non dovranno essere più persi. 89

90 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Database RIDONDANZA E COERENZA Esempio: Data di nascita ed Età INTEGRITA FISICA: Esempio anomalia HW del dispositivo di memoria di massa LOGICA: Esempio: gestione di una Fattura in un sistema di contabilità INTEGRITA REFERENZIALE La dipendenza funzionale di un informazione da un altra viene gestita da un DBMS tramite l Integrità Referenziale, che permette di creare associazione tra i dati ed impedire errori nelle operazioni di inserimento, cancellazione e modifica di questi dati. 90

91 B.2 Data Management and Data Base B.2.2 Database Structure B Distinguish between a file management system and a database management system (DBMS) B Describe the components of a database system, such as data files, data dictionary, indexes, statistical data B Outline the business areas where a DBMS is used B Outline the components of a DBMS B Describe the different roles of a database administrator 91

92 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Transactions Database relazionale Il concetto di database relazionale viene introdotto nel 1970 da E.F. Codd nel libro "A relational Model if Data for Large Shared Data Banks" con lo scopo di rappresentare situazioni reali tramite uno schema concettuale di un database in modo indipendente dalla modalità di memorizzazione dei dati nella memoria di un computer. L'idea innovativa fu di rappresentare le informazioni non come inserite in un'unica grossa entità ma piuttosto di organizzarle in strutture, chiamate relazioni o tabelle. Queste tabelle o relazioni sono definite dalle colonne di cui sono composte e contengono tutte le n-uple o righe dello stesso tipo. Le colonne rappresentano i campi o proprietà dei dati che la tabella contiene. Ogni riga può essere vista come un record o un array e raggruppa i valori che i campi assumono per il particolare oggetto che viene cosi descritto. Le colonne hanno una tipologia e possono contenere al massimo un valore. 92

93 B - BUILD / B.2 Data Management and Databases/B.2.1 Data and Information Database relazionale 93

94 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases File Management System LIMITI Funzioni per Condivisione dati: LOCK su parti di file Funzioni per Integrità Funzioni per Gestionie di Relazioni PATHNAME: /Directory/Sub-Directory/File 94

95 B.2 Data Management and Data Base B.2.3 Data Modeling B Define data abstraction and describe the difference between physical level, conceptual (logical) level, view (user) level B Distinguish between different groups of data models B Describe the principles of record-based logical models B Describe the principles of object-based logical models 95

96 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Modello Entity-Relationship Il modello si basa su tre elementi principali: entità: classi di oggetti con proprietà comuni relazione: legame logico tra due o più entità attributi: proprietà elementari di un entità Esempio: se dobbiamo creare un database di libri, avremo l entità libro, con attributi come anno di pubblicazione,editore, autore ma avremo anche l entità autore, con attributi anno di nascita e biografia. Queste due entità sono legate Dalla relazione autore ha scritto libri (ogni autore ha scritto più libri) 96

97 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Modello Entity-Relationship 97

98 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Modello Entity-Relationship La cardinalità quantifica le relazioni tra le entità. 98

99 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Serial Sequential 99

100 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Indexed Sequential 100

101 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Pila (Stack,Heap) Coda (Queue) 101

102 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Hash 102

103 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Binary Tree (b-tree) 103

104 B - BUILD / B.2 Data Management and Databases/B.2.3 Files and Databases Metodi di accesso ai dati Binary Search (ricerca dicotomica) 104

105 B.2 Data Management and Data Base B.2.4 The Relational Model B Outline the benefits of a relational model, such as non-redundancy, flexibility, scalability B Describe important relational model terms, such as relation, key, primary key, alternate key, foreign key, referential integrity B Explain through simple examples the process of normalisation for 1st, 2nd, 3rd normal form 105

106 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Relational Model COLUMNS (ATTRIBUTES) TABLES ROWS (TUPLES) 106

107 B - BUILD / B.2 Data Management and Databases/B.2.2 Data Modelling Database: modello a tre livelli View level View View 2 View N Logical level La struttura del database che descrive i dati e le loro relazioni Physical level La modalità con cui i dati sono memorizzati nel sistema

108 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Prima forma normale 1NF Prima Forma Normale Definizione: Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione per ogni relazione contenuta nella base dati: una relazione è in 1NF se e solo se: non presenta gruppi di attributi che si ripetono (ossia ciascun attributo è definito su un dominio con valori atomici) esiste una chiave primaria (esiste un insieme di attributi, che identifica univocamente ogni tupla della relazione) 108

109 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Prima forma normale 1NF Il seguente esempio viola la 1NF, perché pur esistendo una chiave primaria ({Matricola,Materia}), l'attributo Voto non è definito su un dominio con valori atomici: Matricola Studente Materia Voto Pietro Basi di Dati 1 sem, B ; 2 sem, F Pietro Basi di Dati 1 sem, A ; 2 sem, A Sara Basi di Dati 1 sem, B ; 2 sem, A È necessario ristrutturare la relazione come segue Matricola Studente Materia Semestre Voto Pietro Basi di Dati 1 B Pietro Basi di Dati 2 F Pietro Basi di Dati 1 A Pietro Basi di Dati 2 A Sara Basi di Dati 1 B Sara Basi di Dati 2 A 109

110 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Prima forma normale 1NF Il seguente esempio viola la 1NF, perché pur non presentando gruppi di attributi che si ripetono, manca una chiave primaria, rendendo impossibile distinguere studentesse e studenti con lo stesso nome: Studente Materia Semestre Voto Pietro Basi di Dati 1 A Pietro Basi di Dati 2 A Pietro Basi di Dati 1 A Pietro Basi di Dati 2 A Sara Basi di Dati 1 B Sara Basi di Dati 2 A 110 È necessario ristrutturare la relazione come segue Matricola Studente Materia Semestre Voto nnnn-nnn Pietro Basi di Dati 1 A... Pietro Basi di Dati 2 A... Pietro Basi di Dati 1 A... Pietro Basi di Dati 2 A... Sara Basi di Dati 1 B... Sara Basi di Dati 2 A

111 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Seconda forma normale 2NF una tabella si dice in 2FN se è in 1FN e inoltre non vi sono attributi che dipendono parzialmente dalla chiave. Consideriamo come esempio la tabella Persone: Nome, Cognome, Luogo Nascita, Regione di Nascita La chiave della tabella è data da (Nome, Cognome, Luogo Nascita). La tabella è certo in 1FN, non essendovi attributi multipli. Ma la regione di nascita dipende solo dal luogo di nascita e non da nome e cognome. Vi è quindi una dipendenza parziale dalla chiave e la tabella non è in 2FN. Vi è dunque anche una dipendenza transitiva dalla chiave. L'unico rimedio è quindi quello classico: spezzare la tabella in più tabelle. In questo caso occorrerebbero tre tabelle: Tabella Persone con campi (Codice, Nome, Cognome, Codice_LuogoNascita); 3.Tabella Luoghi con campi (Codice, Nome, Codice_Regione); 5.Tabella Regioni con campi (Codice, Nome, Stato)

112 B - BUILD / B.2 Data Management and Databases/B.2.6 The relational model Terza forma normale 3NF Uno schema relazionale è nella terza forma normale se soddisfa la 2NF e, inoltre, tutti gli attributi non chiave sono indipendenti fra loro e dipendono solo dalla chiave primaria. Ad esempio: se in una tabella sono presenti i campi Quantità,Prezzo Vendita Prezzo Totale, dobbiamo eliminare l attributo Prezzo Totale, perché può essere calcolato da Quantità e Prezzo Vendita secondo la relazione: PrezzoTotale = Quantità * Prezzo Vendita. 112

113 B.2 Data Management and Data Base B.2.5 Query Languages B Distinguish between procedural and non-procedural query languages B Describe the fundamental operations of the relational algebra B Describe the components of a SQL language: DDL, DML, DCL B Understand SQL DDL commands, such as create, drop, alter table B Understand SQL DCL commands, such as grant, revoke 113

114 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports Operazioni relazionali Selezione: una selezione opera su una sola tabella e produce come risultato un sottoinsieme delle sue tuple, che conservano inalterate i loro attributi. il risultato di una selezione è costituito da una tabella con lo stesso numero di colonne e un numero minore (o tutt al più uguale) di righe. La scelta delle tuple da inserire nel risultato è dettata dalle condizioni prescelte. 114

115 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports Operazioni relazionali Proiezione: una proiezione opera su una sola tabella, producendo come risultato una sua sottotabella formata dalle stesse tuple ma con un sottinsieme degli attributi originari. In genere quindi la proiezione di una tabella ha lo stesso numero di righe ma un numero minore (o tutt al più uguale) di colonne. Anche in questo caso la scelta delle colonne da inserire nel risultato è dettata da condizioni prescelte. 115

116 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports Operazioni relazionali Join: opera su due tabelle producendone una nuova le cui tuple risultano dalla combinazione di una tupla della prima e di una tupla dell altra, secondo regole stabilite dall operazione in svolgimento. In questo caso perciò le colonne della nuova tabella saranno composte da quelle della prima e da quelle della seconda, mentre le righe saranno in numero variabile,in quanto gli abbinamenti dipenderanno dalle condizioni stabilite dal join; In un join senza condizioni ogni tupla della prima tabella è abbinata a ogni tupla dell altra. Più frequente è il join corrispondente a una relazione fra le due tabelle, in cui vengono abbinate le tuple che si corrispondono nella relazione. Inner Join Equi-Join Natural Join 116

117 B - BUILD / B.2 Data Management and Databases/B.2.4 Databases Management Systems SQL (DDL,DCL,DML) SQL (Structured Query Language) è un Linguaggio per database progettato per leggere, modificare e gestire dati memorizzati in un sistema basato sul modello relazionale, per creare e modificare schemi di database, per creare e gestire strumenti di controllo ed accesso ai dati. Il Data Definition Language (DDL) è un linguaggio che permette di creare, modificare o eliminare gli oggetti in un database. L'utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono assegnati tramite il Data Control Language (DCL). Data Manipulation Language (DML) è una linguaggio che consente di leggere, inserire, modificare o eliminare i dati in un database. I comandi DML esprimono azioni da effettuare sui dati identificate dalla parola iniziale dell'istruzione, che quasi sempre è un verbo. I verbi utilizzati sono SELECT ricerca, INSERT l'inserimento, UPDATE l'aggiornamento e DELETE cancellazione. 117

118 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language DDL (Data Definition Language) Create Drop Alter Creare, cancellare, modificare tabelle. 118

119 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per creare una tabella: CREATE TABLE tname (colname coltype [not null], ); Name Description tname Name of the table to be created colname Column Name coltype Data Type of the column not null If the column can or nor have value NULL Coltype: Type Description integer 32 bit number smallint 16 bit number float 64 bit floating number smfloat 32 bit floaing number char(n) Nchar string varchar(n) Varialbe length string, max n chars Date Date 119

120 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per cancellare una tabella ed il suo contenuto. DROP TABLE tname Name tname Description Name of the table to delete Per modificare la struttura di una tabella. ALTER TABLE tname MODIFY ( colnname coltype [not null], Name Description tname Name of the table to be modified Colname Column Name Coltype Column Data Type Not null Sf the column can or nor have value NULL 120 );

121 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per modificare la struttura di una tabella. ALTER TABLE tname ADD ( colnname coltype [not null], ); Permette di aggiungere colonne ad una tabella: non è possibile se la tabella contiene dati e si vuole aggiungere una colonna che non permette valori null. Name Description tname Name of the table to be modified Colname Column Name Coltype Column Data Type Not null Sf the column can or nor have value NULL Per modificare la struttura di una tabella. ALTER TABLE tname DELETE (colnname, ); Permette di rimuovere colonne. Name Description tname Name of the table to be modified Colname Column Name 121

122 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per creare un indice. CREATE [unique] INDEX idxname ON tname (colname, ) Name Description Unique If included, it means that the index is unique Idxname Index name to be created Tname Table name, the index has to be created on Colname Column name, the index has to be created on Non è possibile creare un indice unico in una tabella con dati che non sono compatibili con il nuovo indice unico. Per rimuovere un indice DROP INDEX idxname Name Idxname 122 Description Index name to be deleted

123 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language DCL (Data Control Language) Sicurezza: Grant Revoke Assegna o revoca privilegi. 123

124 B.2 Data Management and Data Base B.2.6 SQL Queries B Understand basic SQL DML commands, such as insert, delete, update, select B Understand SQL clauses, such as where, order by, group by B Outline the use of views and special SQL commands, such as commit, rollback 124

125 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language DML (Data Manipulation Language) Select Insert Delete Update Selezionare, inserire, cancellare, modificare righe. Transazioni: Commit Roll-back 125

126 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Order by permette di ordinare i dati selezionati Group by permette di raggruppare i dati selezionati Where è applicata come prima operazione, può essere seguita da Order by e Group by. Per ultima è applicata la clausola Having 126

127 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per inserire dati in una tabella. INSERT INTO tname (colname, ) VALUES (colval,...); Nome tname colname colval Significato Table name, the data has to be inserted in Column Name Data to be inserted into colname Per cancellare righe di una tabella Questa operazione introduce la clausola where, che abilita la selezione di un numero ridotto di righe. DELETE FROM tname [WHERE colname condition {colval colname}][oprel..]; Name Description tname Colname Table name, data has to be erased from Column name Condition Comparison operation Colval Values to be compared with the content of column colname Oprel Operation of Relation 127

128 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Condition Description = Condition is true if both terms at its sides are equal!= > >= <= < Condition is true if the two terms at its sides are different Relational Operator and or not 128 Condition is true if the two terms at its sides respect the inequalities Description Expression is true if left term and right term are both true. Expression is true if left term is true or right term is true. Negate the condition that follows.

129 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per modificare i valori in una tabella. UPDATE tname SET(colname = valcol, ) [WHERE colname condition {colval colname} [oprel..]]; Name Description tname Table name, the update has to be performed on colname Column name valcol New value for the column condition Comparison operation colval Values to be compared with the content of column colname oprel Relational operator Permette l aggiornamento contemporaneo di un insieme di righe in un insieme di colonne. 129

130 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per selezionare informazioni SELECT (colname, ) FROM tname [WHERE [GROUP BY (colname, )] [ORDER BY(colname, )] [having ] [INTO [temp] table tname]; Description Name tnme Table name, the data has to be retrieved from colname Column name where Where clause as seen for delete and update having Where clause, but evaluated on partial results 130

131 B - BUILD / B.2 Data Management and Databases/B.2.7 Queries and reports SQL Language Per creare una User View. Una User View appare come una tabella ma, è il risultato di una operazione di select. CREATE VIEW vname AS select ; Description Name vname View name to be created select Select command that explain how to retrieve data Per rimuovere una User View DROP VIEW vname; Name vname 131 Description View name to be deleted

132 B.2 Data Management and Data Base B.2.7 Database Administration and Security B Describe the most important database administration procedures B Describe the security and integrity problems covered by the acronym CIA (Confidentiality, Integrity, Availability) B Outline examples of different security policies, such as human security, physical security, operating system security, database security B Describe recovery schemes based on different types of failure, such as logical errors, system errors, system crash, disk failure 132

133 B - BUILD / B.2 Data Management and Databases/B.2.8 Database administration Database administration Le Database management operations sono svolte dal Database administrator (DBA) che ha in carico: La gestione della configurazione del DB La gestione del DB schema usandi i comandi DDL Configurare le User Access Policies 133

134 B - BUILD / B.2 Data Management and Databases/B.2.7 Security and integrity of data Security and Integrity of Data 3 proprietà principali: CONFIDENTIALITY solo chi è autorizzato può accedere ai dati INTEGRITY si riferisce alla validità dei dati Può essere compromessa da: q q Software bugs,virus,malfunzionamenti hardware come Crash dei dischi Errori umani nell enter dei dati Ci sono molti modi per minimizzare le minacce all integrità: q q q Regolari operazioni di Backup Controllare l accesso ai dati tramite meccanismi di sicurezza Progettare interfacce che prevengono l input di dati non validi AVALAIBILITY dati sono disponibili se richiesti 134

135 B.2 Data Management and Data Base B.2.8 Data Warehousing and Data Mining B Describe the concept and components of a Data Warehousing system B Define the concept of data mining B Recognise the principle uses of Data Warehousing systems 135

136 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Data Warehousing 136

137 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Data Warehousing & Data Mart & Data Mining Il Datawarehouse è il luogo di consolidamento dell'insieme dei dati aziendali. Il creatore del concetto di DataWareHouse, Bill Inmon, lo definisce come segue: raccolta di dati tematici, integrati, non volatili e storici per la presa di decisioni Il termine Data Mart (letteralmente deposito di dati) designa un sotto-insieme del data warehouse che contiene i data del data warehouse per un particolare settore aziendale (dipartimento, direzione, servizio, gamma prodotto, ecc.). Si parla quindi ad esempio di Data Mart Marketing, Data Mart Commerciale Il Data Mining ha per oggetto l'estrazione di un sapere o di una conoscenza a partire da grandi quantità di dati e l'utilizzazione industriale o operativa di questo sapere. Oggi il Data Mining (letteralmente: estrazione di dati) ha una duplice valenza: Estrazione, con tecniche analitiche all'avanguardia, di informazione implicita, nascosta, da dati già strutturati, per renderla disponibile e direttamente utilizzabile Esplorazione ed analisi, su grandi quantità di dati allo scopo di scoprire pattern (schemi) significativi. Questo tipo di attività è cruciale in molti ambiti della ricerca scientifica, ma anche in altri settori. E utilizzata per risolvere problematiche diverse tra loro, che vanno dalla gestione delle relazioni con i clienti (CRM), all individuazione di comportamenti fraudolenti per finire all'ottimizzazione di siti web. 137

138 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining ETL Extract, Transform, Load (ETL) si riferisce al processo estrazione, trasformazione e caricamento dei dati in un sistema di sintesi (Data Darehouse, Data Dart). I dati vengono estratti da sistemi sorgenti quali database transazionali (OLTP), comuni file di testo o da altri sistemi informatici (ad esempio, sistemi ERP o CRM). Subiscono quindi un processo di trasformazione, che consiste nel: Selezionare solo quelli che sono di interesse per il sistema Normalizzare i dati (per esempio eliminando i duplicati) Tradurre dati codificati Derivare nuovi dati calcolati Eseguire accoppiamenti (join) tra dati recuperati da differenti tabelle Raggruppare i dati Tale trasformazione ha lo scopo di consolidare i dati (cioè rendere omogenei dati provenienti da sorgenti diverse) in modo che siano aderenti alla logica di business. Vengono infine caricati nelle tabelle del sistema di sintesi (load). Occorre prestare attenzione alla granularità delle informazioni da memorizzare nella struttura. Queste infatti, non solo devono essere aggregate in modo da non avere un dettaglio eccessivo ma devono anche mantenere una granularità che consenta di effettuare le necessarie analisi sui dati 138

139 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Data Warehousing 139

140 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining OLAP OLAP, acronimo che sta per l'espressione On-Line Analytical Processing, designa un insieme di tecniche software per l'analisi interattiva e veloce di grandi quantità di dati, che è possibile esaminare in modalità piuttosto complesse. Questa è la componente tecnologica base del data warehouse, serve alle aziende per analizzare i risultati delle vendite, l'andamento dei costi di acquisto merci, al marketing per misurare il successo di una campagna pubblicitaria, etc. 140

141 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining Dashboard 141

142 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining OLAP warehouse time product 142

143 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining ROLL-UP & DRILL DOWN Roll-up Al l Roll-up Roll-up Sto re Time 143 Product Al l Time Product All Al All l All Drill-Down Time Drill-Down Drill-Down

144 B - BUILD / B.2 Data Management and Databases/B.2.5 Data Warehousing e Data Mining SLICE St o re SLICE Product St o re Product 144 Time (quarters) Time(semesters)

145 B.3 Programming B.3.1 Software design methods and techniques B Outline the main features of different program design methods B Describe the use of abstraction as a technique for problem-solving and software design B Outline the specific needs of legacy systems B Distinguish between open source and proprietary software development. B Outline the different licensing requirements 145

146 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Alcuni termini o o o o o o o o o Modificability Intellegibility Reusability Top Down Bottom up Divide and Conquer Cohesion (coesione) Decoupling (disaccoppiamento) Legacy Systems 146

147 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Strutturata Le idee chiave della programmazione strutturata si possono ricondurre alla critica della struttura di controllo del salto incondizionato (o goto, "vai a"), che rappresentava, negli anni '60, lo strumento fondamentale per la definizione di algoritmi complessi nel software. In un celebre articolo del 1968, Goto statement considered harmful, Edsger Dijkstra discusse approfonditamente gli effetti deleteri del goto sulla qualità del software, e in particolare sulla sua leggibilità e modificabilità (il cosiddetto problema dello spaghetti code). Un'altra celebre pubblicazione che risultò fondamentale all'affermarsi della programmazione strutturata fu Flow Diagrams, Turing Machines, and Languages with Only Two Formation Rules, in cui Corrado Böhm e Giuseppe Jacopini dimostrarono il loro celebre teorema. Secondo tale teorema, qualsiasi programma scritto usando il goto poteva essere riscritto senza, a patto di avere a disposizione altri tre tipi di strutture di controllo: sequenza, ripetizione e alternativa. 147

148 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Strutturata Le strutture di controllo ammesse dai linguaggi strutturati, e le regole sintattiche e semantiche del loro uso, possono variare nei dettagli specifici; tuttavia, devono essere rispettati un insieme di requisiti fondamentali: completezza. Un linguaggio strutturato deve fornire la sequenza, almeno una struttura di tipo alternativa, e almeno una struttura di tipo iterativa; singolo punto di ingresso e di uscita. Idealmente, ogni struttura di controllo, completa delle istruzioni controllate, deve poter essere considerata come una singola macro-istruzione dal punto di vista del controllo complessivo, con un ben identificato punto di ingresso e un ben identificato punto di uscita. componibilità. Ogni struttura di controllo può avere fra le sue istruzioni controllate, ricorsivamente, altre strutture di controllo (senza limiti). 148

149 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Strutturata 149

150 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione Object-Oriented La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione, che prevede di raggruppare in un'unica entità (la classe) sia le strutture dati che le procedure che operano su di esse, creando per l'appunto un "oggetto" software dotato di proprietà (dati) e metodi (procedure) che operano sui dati dell'oggetto stesso. Oggetto = auto Le cose che un auto può fare sono: Andare, Fermarsi, Girare a destra, Girare a sinistra Noi sappiamo che l auto fa queste cose, ma non conosciamo come vengono fatte, cioè non sappiamo come vengono implementate. Un auto può avere le seguenti caratteristiche o attributi: Colore, Velocità max, Dimensioni, Tipo di carburante Come questi attributi sono memorizzati o definiti è irrilevante. 150

151 B.3 Programming B.3.2 Data Structures and Algorithms B Describe structured and unstructured data types B Evaluate the fit between typical search and sort algorithms and the different data structures. 151

152 B - BUILD / B.3 Programming / B.3.2 Data structures and algorithms Data structures and algorithms Linked List Bi-directional Linked List Binary search tree: V = visit, L = left, R = right Pre-order (VLR) traversal: F, B, A, D, C, E, G, I, H In-order (LVR) traversal: A, B, C, D, E, F, G, H, I Post-order (LRV) traversal: A, C, E, D, B, H, I, G, F Level-order traversal: F, B, G, A, D, I, C, E, H 152

153 B.3 Programming B.3.3 Programming Languages B Distinguish between and describe the merits of the main types of programming languages B Describe the use of procedures and functions, and distinguish between call by value and call by reference B Define the term syntax and outline its importance in programming languages. B Distinguish between compilation and interpretation 153

154 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Linguaggi di programmazione: generazioni Prima Generazione 1GL: linguaggio macchina Seconda Generazione 2GL: Assembler Terza Generazione 3GL: FORTRAN : FORmula TRANslator COBOL: Common uso scientifico Business Oriented Language business BASIC: Beginners All-purpose Symbolic Instruction Code PASCAL: Didattico Quarta Generazione 4GL: 154 SQL: non procedurale

155 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Compilatore Esempio di fasi di compilazione (C language) q Pre-processor: esamina le direttive di compilazione q Compiler: controlla la correttezza del codice e genera codice Assembler q Optimizer: ottimizza il codice Assembler per ottimizzare le performance q Assembler: traduce l Assembler in codice oggetto q Linking: link di librerie e generazione eseguibile 155

156 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Interprete 156

157 B - BUILD / B.3 Programming / B.3.3 Type of programming languages Java Virtual Machine 157

158 B.3 Programming B.3.4 Object-Oriented programming B Describe the main concepts of object-oriented design B Describe the concept of object-oriented programming B Describe the concept of a class, object, instance, method and their relationship in object-oriented programming B Describe the concepts of abstraction and encapsulation B Describe how polymorphism contributes to efficient software design through the development of reusable components 158

159 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Object Oriented 159

160 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Object Oriented 160

161 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione OO - Encapsulation Un oggetto è una istanza di una classe. Un oggetto occupa memoria, la sua classe definisce come sono organizzati i dati in questa memoria. Ogni oggetto possiede tutti gli attributi definiti nella classe, ed essi hanno un valore, che può mutare durante l'esecuzione del programma. Il paradigma OOP suggerisce un principio noto come information hiding che indica che si debba accedere agli attributi dell'istanza solo tramite metodi invocati su quello stesso oggetto. L'incapsulamento è la proprietà per cui un oggetto contiene ("incapsula") al suo interno gli attributi (dati) e i metodi (procedure) che accedono ai dati stessi. Lo scopo principale dell'incapsulamento è appunto dare accesso ai dati incapsulati solo attraverso i metodi definiti, nell'interfaccia, come accessibili dall'esterno. Gestito in maniera intelligente, l'incapsulamento permette di vedere l'oggetto come una black-box, cioè una scatola nera di cui, attraverso l'interfaccia, è noto cosa fa e come interagisce con l'esterno ma non come lo fa. I vantaggi principali portati dall'incapsulamento sono: robustezza, indipendenza e l'estrema riusabilità degli oggetti creati. 161

162 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione OO - Ereditarietà L'OOP prevede un meccanismo molto importante, l'ereditarietà, che permette di derivare nuove classi a partire da classi già definite. L'ereditarietà permette di aggiungere membri ad una classe, e di modificare il comportamento dei metodi, in modo da adattarli alla nuova struttura della classe. Da una stessa classe è possibile costruire diverse classi derivate. Da una classe derivata è possibile derivarne una ulteriore con lo stesso meccanismo. Sintatticamente, una classe può essere definita come derivata da un'altra classe esistente. In molti linguaggi la classe derivata, o sottoclasse, eredita tutti i metodi e gli attributi della classe "genitrice", e può aggiungere membri alla classe, sia attributi che metodi, e/o ridefinire il codice di alcuni metodi. L'ereditarietà può essere usata come meccanismo per gestire l'evoluzione ed il riuso del software: il codice disponibile definisce delle classi, se sono necessarie modifiche, vengono definite delle sottoclassi che adattano la classe esistente alle nuove esigenze. 162

163 B - BUILD / B.3 Programming / B.3.1 Software design methods and techniques Programmazione OO - Polimorfismo La possibilità che le classi derivate implementino in modo differente i metodi e le proprietà dei propri antenati rende possibile che gli oggetti appartenenti a delle sottoclassi di una stessa classe rispondano diversamente alle stesse istruzioni. Ad esempio in una gerarchia in cui le classi "Cane" e "Gatto" discendono dalla SuperClasse "Animale potremmo avere il metodo mangia() che restituisce la stringa "osso" se eseguito sulla classe "Cane" e "pesce" se eseguito sulla classe "Gatto". I metodi che vengono ridefiniti in una sottoclasse sono detti polimorfi, in quanto lo stesso metodo si comporta diversamente a seconda del tipo di oggetto su cui è invocato 163

164 B.3 Programming B.3.5 Elementary Constructs B Interpret and evaluate input/output instructions B Interpret and evaluate control statements B Interpret and evaluate arithmetic and logical operations 164

165 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Le istruzioni che compongono un linguaggio procedurale sono: q Dichiarative q Operazioni Aritmetico-Logiche; q Istruzioni di controllo q Istruzioni di I/O. Le dichiarative assegnano ad un nome simbolico un tipo dato ed eventualmente un valore di inizializzazione. E possibile dichiarare vettori o matrici. 165 char alfa; int beta=1; float gamma; char delta[21]; int epsilon [10]; float fi[20];

166 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Operazioni aritmetiche + Somma - Sottrazione * Moltiplicazione / Divisione Istruzioni logiche 166

167 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Condizioni: v1 operator v2 Operator ==!= The condition is true when two values are different > The condition is true when v1 is greater than v2 < The condition is true when v1 is lower than v2 <= The condition is true when v1 is equal or lower than v2 The condition is true when v1 is equal or greater than v2 >= 167 The condition is true when the two values are equals

168 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione if (a>3) 168 { b = 5; } false-instruction] else true-instruction [else { c = 6; } if (condition)

169 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione j = j+1; } j+1; { k[j] = int j, k[10]; j=0; while (j<10) while (condition) instructions 169

170 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione j=0; do { k[j]=j+1; j = j+1; } while (j<10); do instructions while (condition) int j, k[10]; 170

171 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione } k[j]=j+1; { for (j=0; j<10; j = j+1) instructions for (start; condition; increase) int j, k[10]; 171

172 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Printf ( message, var1 [, var2 ]); message String to be written var1 Variable to be written var2 Variable to be written standard output (stdout) 172

173 B - BUILD / B.3 Programming / B.3.4 Introduction ti programming concepts Elementi di programmazione Readf (var1 [, var2 ]); var1 Variable to be read var2 Variable to be read standard input (stdin) 173

174 B.3 Programming B.3.6 Testing B Define basic testing concepts, such as error, fault, failure B Describe the different purposes and scope of unit testing, system testing, acceptance testing B Distinguish between static and dynamic test methodologies 174

175 175 Il termine Errore (Bug) è usato per indicare un anomalia In realta è la causa di un anomalia. Errori nell interpretazione delle specifiche q Errori nella fase concettuale q q q Errori dovuti alla mancanza di conoscenza del linguaggio o degli strumenti Errori di distrazione Testing B - BUILD / B.3 Programming / B.3.5 Testing

176 176 Test di regressione: Nel software capita spesso che l'introduzione di una nuove funzionalità in un vecchio prodotto comprometta la qualità di funzionalità preesistenti. Pertanto, per assicurarsi la qualità del prodotto bisognerebbe ripetere l'intero collaudo ad ogni modifica. Il collaudo di funzionalità preesistenti e già collaudate, eseguito per assicurare che modifiche al prodotto non ne abbiano compromesso la qualità si chiama "collaudo di regressione" (in inglese, "regression testing"), in quanto si vuole verificare se la qualità fosse regredita. Se erano stati predisposti dei collaudi automatizzati, il collaudo di regressione ha normalmente un basso costo, in quanto si tratta solo di lanciare le procedure di collaudo esistenti, eventualmente ritoccate. Un completo collaudo di regressione manuale sarebbe invece enormemente costoso, e per tale motivo normalmente il collaudo di regressione manuale è più sbrigativo del collaudo originale Testing B - BUILD / B.3 Programming / B.3.5 Testing

177 177 I moduli possono essere testati in un enviroment simulato che tipicamente consiste di: Stub moduli, che sono invocati dal dal modulo da testare e che generano l output previsto. Driver moduli che usano il modulo testato e che devono simulare il comportamento del chiamante. I moduli possono essere integrati con: Il metodo Non incremental (big bang test): Il metodo Incremental method (incremental test) Testing B - BUILD / B.3 Programming / B.3.5 Testing

178 B.3 Programming B.3.7 Documentation and Maintenance B Describe the common documentation for software development and delivery B Describe the value of well-structured and documented code B Outline how to document changes in software and program documentation B Describe methods to attain quality in program maintenance, such as code inspections, rules for comments in the code, technical reference documents 178

179 B - BUILD / B.3 Programming / B.3.6 Documentation UML In ingegneria del software, UML (Unified Modeling Language, "linguaggio di modellazione unificato") è un linguaggio di modellazione e specifica basato sul paradigma object-oriented. Il nucleo del linguaggio fu definito nel 1996 da Grady Booch, Jim Rambaugh e Ivar Jacobson (detti "i tre amigos") sotto l'egida dello OMG, che tuttora gestisce lo standard di UML. UML svolge un'importantissima funzione di lingua franca nella comunità della progettazione e programmazione a oggetti. 179

180 B - BUILD / B.3 Programming / B.3.6 Documentation UML Di per sé, UML è solo un linguaggio di modellazione, e non definisce alcuna specifica metodologia per la creazione di modelli (o alcun processo software). UML può quindi essere utilizzato nel contesto di diversi approcci metodologici. UML consente di costruire modelli object-oriented per rappresentare domini di diverso genere. Nel contesto dell'ingegneria del software, viene usato soprattutto per descrivere il dominio applicativo di un sistema software e/o il comportamento e la struttura del sistema stesso. Il modello è strutturato secondo un insieme di viste che rappresentano diversi aspetti della cosa modellata (funzionamento, struttura, comportamento, e così via), sia a scopo di analisi che di progetto, mantenendo la tracciabilità dei concetti impiegati nelle diverse viste. 180

181 B - BUILD / B.3 Programming / B.3.6 Documentation UML 181

182 182 Changing of a software product executed, after the release, in order to correct the malfunctions, enhancing performance or adapt it to the changed using context (Definition adopted by the IEEE) Nasce la necessità di avere un modello del processo di Maintenance per monitorare i cambiamenti del software durante il suo ciclo di vita. q q La legge dei continui cambiamenti: un sistema deve necessariamente cambiare ed evolvere continuamente e mantenere intatto il proprio livello di utilità, dato i costanti cambiamenti dell environment in cui il sistema opera. Legge della complessità crescente: la struttura di un sistema che evolve tende a diventare più complessa e bisogna investire delle risorse per preservare la semantica e semplificare la struttura. Maintenance B - BUILD / B.3 Programming / B.3.7 Maintenance

183 B - BUILD / B.3 Programming / B.3.7 Maintenance Maintenance Software Maintenance Activities Maintenance can be defined as four activities: Corrective Maintenance A process that includes diagnosis and correction of errors. Adaptive Maintenance Activity that modifies software to properly interface with a changing environment (hardware and software). Perfective Maintenance Activity for adding new capabilities, modifying existing functions and making general enhancements. This accounts for the majority of all effort expended on maintenance. Preventive Maintenance Activity which changes software to improve future maintainability or reliability or to provide a better basis for future enhancements. Still relatively rare. Distribution of maintenance activities (based on a study of 487 software development organizations): Perfective: 50% Adaptive: 25% Corrective: 21% Others (Including Preventive): 4% 183

184 B - BUILD / B.3 Programming / B.3.7 Maintenance Configuration Management ll Configuration Management ha lo scopo di controllare e gestire le attività che portano alla produzione di software. Questa attività si appoggia sempre su un data base dove sono memorizzati gli oggetti sottoposti a controllo di configurazione (i configuration items). Nell'ambito del configuration management vengono gestiti gli input/output direttamente o indirettamente legati alla costruzione di un prodotto software. Si tratta quindi non solo di archiviare in modo controllato le varie versioni del codice sorgente sviluppato, ma anche le altre entità create nel corso delle diverse fasi dello sviluppo. Ogni elemento oggetto delle attività di gestione della configurazione viene normalmente chiamato configuration item. Una delle funzioni svolte da un sistema di controllo della configurazione è quella di correlare tra loro i vari oggetti archiviati relativamente ad un prodotto software, mantenendo allo stesso tempo traccia delle varie versioni degli oggetti e della loro applicabilità. Perché tutti i configuration items possano essere adeguatamente gestiti è necessario che siano definite le possibili tipologie e le operazioni che su di essi possono essere compiute, compresi i ruoli dei vari attori dello sviluppo del software. Tutto ciò viene tipicamente definito all'inizio del processo di sviluppo del software. 184

185 B - BUILD / B.3 Programming / B.3.7 Maintenance Configuration Management La gestione della configurazione può essere applicata a qualunque categoria di documenti o di "artefatti" che svolga un ruolo nel processo software. Alcuni esempi di configuration item ("elementi di configurazione") sono: q q q q q q q q q q q q q 185 Specifiche dei requisiti Specifiche funzionali Project plan Quality plan Manuale utente Specifiche di progetto Codice sorgente Test Case Manuali di installazione e gestione del prodotto Programmi eseguibili Schemi dei database Documenti relativi alla manutenzione del prodotto Standard e procedure adottate

186 B.3 Programming B.3.8 Programming Examples B Interpret small program segments constructed from a given hypothesis B Identify errors or weaknesses in the code and modify it to meet requirements 186

187 187 main() { int j; for (j=1; j<=10; j=j+1) { printf(j); } } main() { printf( hello world! ); } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

188 188 main() { int j; int num[10]; for (j=0; j<=10; j=j+1) { num[j]=j+1; } for (j=9; j>=0; j=j-1){ printf(num[j]); } } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

189 189 main() { float pi= ; float ray, area; printf( insert the value of ray ); readf(ray); area = pi * ray * ray; printf ( the ray is :, ray); printf ( the area is:, area) } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

190 190 main() { float base, height, area; printf( insert the area and base value: ); readf(area, base); if (base == 0 ) { printf( base = 0, impossible calculation ); return; } height = area /base; printf ( the height is :, height); } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

191 191 main() { int j; char name[]= abcdefghijklmnopqrstuvwxyz char a; for (j=0; j<13; j=j+1) { a = name[j]; name[j] = name [25-j]; name[25-j] = a; } printf(name); } Programming examples B - BUILD / B.3 Programming / B.3.8 Programming examples

192 B.4 User Interface and Web Design B.4.1 Human-Computer Interaction: Guidelines and Standards B Define basic concepts of communication theory B Understand how communication applies to human beings B Define the concept of a User Interface B Outline the various technologies that communicate information to human senses B List models for testing the effectiveness of a user interface 192

193 B.4 User Interface and Web Design B.4.2 Graphics Design B Outline the concepts of graphics and animation (bitmap and vector), digital audio and video B Describe the benefits of using drawings, pictures, colours, animation B Use common tools for simple picture manipulation in terms of size, shape, colours, contrast, transparency 193

194 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Text Font 194

195 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Text Font 195

196 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Text Font 196

197 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Colours 197

198 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Colours 198

199 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Dpi DPI: Dot Per Inch, punti per pollice. Una delle unità di misura della risoluzione. Con il DPI si esprime la quantità di punti stampati o visualizzati su una linea lunga un pollice (2,54 cm). Nota: per un'immagine fotografica visualizzata su monitor, 72 dpi sono accettabili, mentre per una buona stampa sono necessari almeno 300 dpi 199

200 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini Si distinguono generalmente due grandi categorie di immagini : immagini bitmap (dette anche immagini raster): si tratta di immagini pixelizzate, cioè un insieme di punti (pixel) contenuti in una tabella, ciascuno di questi punti ha uno o più valori che ne descrivono il colore. immagini vettoriali: le immagini vettoriali sono delle rappresentazioni di entità geometriche come un cerchio, un rettangolo o un segmento. Questi sono rappresentati da formule matematiche (un rettangolo è definito da due punti, un cerchio da un centro e un raggio, una curva da più punti e un'equazione). Sarà il processore ad essere incaricato di "tradurre" queste forme in informazioni interpretabili dalla scheda grafica. 200

201 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini l formato GIF (Graphic Interchange Format) fu diffuso negli anni Ottanta come metodo efficiente di trasmissione delle immagini su reti di dati. All'inizio degli anni Novanta i progettisti originali del web lo adottarono per l'efficienza che offriva. Oggi la stragrande maggioranza delle immagini sul web è in questo formato ed è supportato da tutti i browser web. Il formato GIF usa una forma di compressione LZW che mantiene inalterata la qualità dell'immagine, ovvero riduce le dimensioni del file senza pregiudicare la qualità grafica dell'immagine. La profondità dei colori delle immagini GIF è di 8 bit, che consente di usare una tavolozza di 256 colori. Meno colori si usano e maggiori saranno le possibilità di compressione, ovvero minori saranno le dimensioni del file. 201

202 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini JPEG è Un formato grafico utilizzato di frequente sul Web per ridurre le dimensioni dei file grafici è lo schema di compressione JPEG (Joint Photographic Expert Group). A differenza delle immagini GIF, le immagini JPEG sono policrome (24 bit, o 16,8 milioni di colori). Questo tipo di immagini ha generato un altissimo interesse tra fotografi, artisti, progettisti grafici, specialisti della composizione di immagini La compressione JPEG utilizza una sofisticata tecnica matematica, chiamata trasformazione discreta del coseno, per produrre una scala scorrevole di compressione delle immagini. È possibile scegliere il grado di compressione che si desidera applicare a un'immagine in formato JPEG, ma in questo modo si determina anche la qualità dell'immagine. JPEG può raggiungere rapporti di compressione incredibili, riducendo le immagini di circa 100 volte rispetto ai file originali; l'algoritmo JPEG scarta alcuni dati durante la compressione dell'immagine e per questo motivo la tecnica di compressione è definita a perdita. Sta a voi quindi sperimentare l'impostazione più adatta per creare un file dall'aspetto accettabile. Quando create immagini JPEG ricordate sempre di salvare una copia dell'immagine originale. Dopo aver convertito un'immagine in formato JPEG, non è più possibile recuperare la qualità dell'immagine originale. 202

203 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Graphical Design Immagini Il Tagged Image File Format detto anche TIFF è un formato immagine. Le specifiche del formato TIFF permettono una notevole flessibilità. Il TIFF è largamente utilizzato per lo scambio di immagini raster fra stampanti e scanner perché permette di specificare numerose indicazioni aggiuntive come le informazioni sulla calibratura del colore. Il TIFF quindi è utilizzato per far comunicare più macchine all'interno dello stesso studio fotografico o di editing che hanno la stessa calibratura. Sono possibili anche diversi formati di compressione tra cui l'lzw. Un file TIFF può contenere immagini divise su più "pagine : ad esempio, si possono inserire in un unico file tutte le pagine che compongono un fax. 203

204 B.4 User Interface and Web Design B.4.3 Web and Hypermedia: Possibilities and Limitations B Describe the history behind the Internet and the World Wide Web B Define hypertext and hypermedia B Outline the common components used in web pages, such as top bar, side bar, site map, contact, search feature, help, last updated, navigation icons B Describe the use and value of internal and external websites in a company B Outline some of the challenges in maintaining a business website 204

205 B.4 User Interface and Web Design B.4.4 Web Design requirements and methods B Recognise the needs of the target group for whom a web page has been designed B Outline the risks of having too many messages on one page B Outline the problems associated with a poor mix of colours B Describe guidelines for developing user-friendly websites B Describe general quality criteria for web text B Explain the need for easy navigation on a website B Outline the tools for the development of a website B Outline the use and purpose of structure diagrams for website design B Describe the major methods used for navigation B Describe some project approaches to web design and common techniques 205

206 B.4 User Interface and Web Design B.4.5 Designing Web Pages B Outline the concept of a markup language and describe the main features of HTML B Use basic HTML commands and interpret layout commands B Outline basic graphic principles for normal written text, such as font size, percentage white space B Outline the basic elements of XML B Describe the concept of style sheets, such as Cascading Style Sheets (CSS) and Extensible Stylesheet Language (XSL) 206

207 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design HTML L'HTML è il linguaggio con cui potete indicare come i vari elementi vanno disposti in una pagina Web. Un documento html non è nient'altro infatti che un file di testo con delle indicazioni sul colore delle scritte, sulla posizione delle immagini all'interno della pagina, su come far scorrere il testo, e altre cose di questo genere. Il Browser svolge principalmente due compiti: scarica i vari files che si trovano su un computer remoto (il server) e che fanno riferimento a un certo indirizzo legge i documenti scritti in html, e visualizza la pagina in accordo con i comandi descritti; inoltre i vari files associati a quel documento (ad esempio le immagini, o i filmati in flash) vengono disposti secondo le indicazioni del codice html 207

208 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Browser 208

209 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Browser 209

210 B - BUILD / B.4 User Interface and Web Design/ B.4.2 Graphic design Browser 210

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Sistemi Informativi Aziendali II

Sistemi Informativi Aziendali II Modulo 2 Sistemi Informativi Aziendali II 1 Corso Sistemi Informativi Aziendali II - Modulo 2 Modulo 2 La gestione delle informazioni strutturate nell impresa: La progettazione di un Data Base; Le informazioni

Dettagli

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

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

DATA BASE MANAGEMENT SYSTEM

DATA BASE MANAGEMENT SYSTEM DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base Sistemi di Elaborazione delle Informazioni DB ed SQL Prof. Silvio Vassallo Modello Relazionale Il modello relazionale si basa sul concetto di RELAZIONE tra insiemi di oggetti. Dati n insiemi A 1,A 2, A

Dettagli

Il linguaggio SQL: DDL di base

Il linguaggio SQL: DDL di base Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) èil linguaggio standard de facto per DBMS relazionali,

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe quarta AS. Disciplina: Informatica. prof.

Anno Scolastico: 2014/2015. Indirizzo: Sistemi informativi aziendali. Classe quarta AS. Disciplina: Informatica. prof. Anno Scolastico: 2014/2015 Indirizzo: Sistemi informativi aziendali Classe quarta AS Disciplina: Informatica prof. Competenze disciplinari: Secondo biennio 1. Identificare e applicare le metodologie e

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto INTRODUZIONE AI SISTEMI DI BASI

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

DB2 Universal Database (UDB) DB2 Universal Database (UDB) DB2 Universal Database (UDB) Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DB2Presentazione2009.pdf Sistemi Informativi L-A DB2 Universal

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

INTRODUZIONE. Motivazioni e Obbiettivi

INTRODUZIONE. Motivazioni e Obbiettivi INTRODUZIONE Motivazioni dei sistemi distribuiti Caratteristiche generali Alcuni richiami sui database centralizzati Standardizzazione dei dati (ANSI/SPARC) Funzioni dei DBMS relazionali Problematiche

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

Dettagli

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

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

Data Warehousing e Data Mining

Data Warehousing e Data Mining Università degli Studi di Firenze Dipartimento di Sistemi e Informatica A.A. 2011-2012 I primi passi Data Warehousing e Data Mining Parte 2 Docente: Alessandro Gori a.gori@unifi.it OLTP vs. OLAP OLTP vs.

Dettagli

L evoluzione delle competenze verso il Database Manager

L evoluzione delle competenze verso il Database Manager L evoluzione delle competenze verso il Database Manager Workshop sulle competenze ed il lavoro dei Database Manager Milano, 1 marzo 2011 Elisabetta Peroni consulente sui sistemi di gestione dati (betty.peroni@gmail.com)

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati Informatica B Introduzione alle Basi di Dati e ai DBMS Contenuti Introduzione a dati e basi dati DBMS Modello dei dati Informazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.),

Dettagli

Che cosa è SADAS INFOMANAGER (1982) Gestione Archivi Storici (1992) SADAS (2005) Ambiente MVS OVERMILLION (1990) Client-Server e multipiattaforma

Che cosa è SADAS INFOMANAGER (1982) Gestione Archivi Storici (1992) SADAS (2005) Ambiente MVS OVERMILLION (1990) Client-Server e multipiattaforma 1 Che cosa è SADAS SADAS è un DBMS column-based progettato in modo specifico per ottenere grandi performance nell interrogazione di archivi statici di grandi dimensioni (analisi data warehouse, OLAP).

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati 1 Introduzione alle Basi di Dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Sistema Azienda 2 Sistema organizzativo è costituito da una serie di risorse e di regole necessarie

Dettagli

PIANO DI LAVORO (a.s. 2014/2015) Prof.ssa Andrea Luppichini Prof. Marco Fiorentini DISCIPLINA Informatica

PIANO DI LAVORO (a.s. 2014/2015) Prof.ssa Andrea Luppichini Prof. Marco Fiorentini DISCIPLINA Informatica lllo Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi) Via Firenze, 51 - Tel. 0587/213400 - Fax 0587/52742 http://www.itcgfermi.it E-mail: mail@itcgfermi.it PIANO DI LAVORO (a.s.

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO ------- IMPIEGATO

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO ------- IMPIEGATO DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO ------- IMPIEGATO (designata) (designante) Viene rappresentata inserendo, nella tabella dell entità designante,

Dettagli

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

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Sistema di Gestione di Basi di Dati DataBase Management System DBMS Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione (accezione specifica) collezione di dati

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

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

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

Informatica per le discipline umanistiche 2 lezione 10

Informatica per le discipline umanistiche 2 lezione 10 Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione

Dettagli

Database. Organizzazione di archivi mediante basi di dati. ing. Alfredo Cozzi 1

Database. Organizzazione di archivi mediante basi di dati. ing. Alfredo Cozzi 1 Database Organizzazione di archivi mediante basi di dati ing. Alfredo Cozzi 1 Il database è una collezione di dati logicamente correlati e condivisi, che ha lo scopo di soddisfare i fabbisogni informativi

Dettagli

Introduzione al linguaggio SQL

Introduzione al linguaggio SQL Introduzione al linguaggio SQL Structured Query Language (Linguaggio Strutturato di Interrogazione di Database) prof. Cleto Azzani IPSIA MORETTO BRESCIA (2004) Che cos è un Data Base (Base di dati) Insieme

Dettagli

A.S. 2014/2015- Programma svolto di INFORMATICA ITCG E. Fermi Tivoli classe V C SIA. Programma svolto di. Informatica. classe VC S.I.A a.s.

A.S. 2014/2015- Programma svolto di INFORMATICA ITCG E. Fermi Tivoli classe V C SIA. Programma svolto di. Informatica. classe VC S.I.A a.s. Programma svolto di Informatica classe VC S.I.A a.s. 2014/2015 MODULO 1 I SISTEMI OPERATIVI U.D. 1 Organizzazione dei Sistemi Operativi U.D. 2 Struttura e funzionamento di un Sistema Operativo U.D. 3 Tipi

Dettagli

L iniziativa Cloud DT

L iniziativa Cloud DT L iniziativa Cloud DT Francesco Castanò Dipartimento del Tesoro Ufficio per il Coordinamento Informatico Dipartimentale (UCID) Roma, Luglio 2011 Il Cloud Computing Alcune definizioni Il Cloud Computing

Dettagli

Data Warehousing (DW)

Data Warehousing (DW) Data Warehousing (DW) Il Data Warehousing è un processo per estrarre e integrare dati storici da sistemi transazionali (OLTP) diversi e disomogenei, e da usare come supporto al sistema di decisione aziendale

Dettagli

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

Dettagli

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza: DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente

Dettagli

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI Nicoletta Barbaro 4C Mercurio TRACCIA DEL PROBLEMA: RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI Un'azienda che distribuisce film in formato dvd chiede ad una software house(4c mercurio)

Dettagli

CORSI DI FORMAZIONE MYSQL BASIC E ADVANCED

CORSI DI FORMAZIONE MYSQL BASIC E ADVANCED CORSI DI FORMAZIONE MYSQL BASIC E ADVANCED REGOLAMENTO Luglio 2009 1 1. INTRODUZIONE Sardegna Ricerche, nell ambito delle attività previste dal pacchetto localizzativo offerto alle imprese del parco e

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

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

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

SQL: Concetti Base -Prima Parte-

SQL: Concetti Base -Prima Parte- SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition

Dettagli

Introduzione alla Business Intelligence. E-mail: infobusiness@zucchetti.it

Introduzione alla Business Intelligence. E-mail: infobusiness@zucchetti.it Introduzione alla Business Intelligence E-mail: infobusiness@zucchetti.it Introduzione alla Business Intelligence Introduzione Definizione di Business Intelligence: insieme di processi per raccogliere

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1. Università di Modena e Reggio Emilia Basi di dati Docente: andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.0) - Basi di Dati 1 Materiale didattico Web site: www.andrea.bulgarelli.name/corso

Dettagli

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

Pattern Architetturali e Analisi Architetturale

Pattern Architetturali e Analisi Architetturale Pattern Architetturali e Analisi Architetturale Ingegneria del Software parte II Andrea Bei Pattern Architetturali Pattern Architetturale Descrive il modello organizzativo strutturale di un sistema software

Dettagli

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

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni

Dettagli

Basi di Dati Complementi Esercitazione su Data Warehouse

Basi di Dati Complementi Esercitazione su Data Warehouse Sommario Basi di Dati Complementi Esercitazione su Data Warehouse 1. Riassunto concetti principali dalle slide della lezione di teoria 2.Studio di caso : progettazione di un Data Warehouse di una catena

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A2 Introduzione ai database 1 Prerequisiti Concetto di sistema File system Archivi File e record 2 1 Introduzione Nella gestione di una attività, ad esempio un azienda, la

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Ciclo di Vita Evolutivo

Ciclo di Vita Evolutivo Ciclo di Vita Evolutivo Prof.ssa Enrica Gentile a.a. 2011-2012 Modello del ciclo di vita Stabiliti gli obiettivi ed i requisiti Si procede: All analisi del sistema nella sua interezza Alla progettazione

Dettagli

CATALOGO CORSI DI FORMAZIONE INFORMATICA

CATALOGO CORSI DI FORMAZIONE INFORMATICA CATALOGO CORSI DI FORMAZIONE INFORMATICA La Dialuma propone a catalogo 22 corsi di Informatica che spaziano tra vari argomenti e livelli. TITOLI E ARGOMENTI I001 - Informatica generale Concetti generali

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale Cenni sui DATABASE Cos'e' un database Un database puo' essere definito come una collezione strutturata di record (dati) I dati sono memorizzati su un computer in modo opportuno e possono essere recuperati

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

Basi di Dati prof. Letizia Tanca

Basi di Dati prof. Letizia Tanca Basi di Dati prof. Letizia Tanca (lucidi tratti dal libro Atzeni-Ceri-Paraboschi-Torlone) AA 2003-04 Linguaggi di interrogazione commerciali per il Modello Relazionale dei Dati: SQL - il DDL Domini I domini

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

Gestione delle tabelle

Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza

Dettagli

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori

Dettagli

OLAP (On Line Analytical Processing)

OLAP (On Line Analytical Processing) OLAP (On Line Analytical Processing) Con il termine OLAP si intende la possibilità di effettuare analisi dei dati su strutture multidimensionali in maniera rapida, flessibile ed efficiente, attraverso

Dettagli

Lista delle descrizioni dei Profili

Lista delle descrizioni dei Profili Lista delle descrizioni dei Profili La seguente lista dei Profili Professionali ICT è stata definita dal CEN Workshop on ICT Skills nell'ambito del Comitato Europeo di Standardizzazione. I profili fanno

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

La piattaforma Oracle10g per la Continuita Operativa

La piattaforma Oracle10g per la Continuita Operativa La piattaforma Oracle10g per la Continuita Operativa Roma, 10 maggio 2006 Alfredo Valenza Principal Sales Consultant - Oracle Italia alfredo.valenza@oracle.com Cause di un disastro 3% 18% 18% 4% 14% 4%

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data warehousing

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Data warehousing Mario Guarracino Data Mining a.a. 2010/2011

Data warehousing Mario Guarracino Data Mining a.a. 2010/2011 Data warehousing Introduzione A partire dagli anni novanta è risultato chiaro che i database per i DSS e le analisi di business intelligence vanno separati da quelli operazionali. In questa lezione vedremo

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Il linguaggio SQL. I Sistemi di Gestione di Basi di Dati. Data Management Software

Il linguaggio SQL. I Sistemi di Gestione di Basi di Dati. Data Management Software DB2 Data Management Software Il linguaggio SQL I Sistemi di Gestione di Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute

Dettagli

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1 Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi metodologie a.a. 2003-2004 1 metodologia una serie di linee guida per raggiungere certi obiettivi più formalmente: un processo da seguire documenti o altri elaborati da produrre usando linguaggi più o

Dettagli

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

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Corso di Laurea Interfacoltà in Biotecnologie Lezione 3: Basi di Dati Lucido 1 Scopo della lezione Definire cos è una base di dati e un sistema di gestione della base di dati

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Data warehouse. Architettura complessiva con OLTP e OLAP OLTP. Sistemi di supporto alle decisioni

Data warehouse. Architettura complessiva con OLTP e OLAP OLTP. Sistemi di supporto alle decisioni Data warehouse Data warehouse La crescita dell importanza dell analisi dei dati ha portato ad una separazione architetturale dell ambiente transazionale (OLTP on-line transaction processing) da quello

Dettagli

Alessandro Huber Chief Technology Officer, Microsoft Italia Claudia Angelelli Service Line Manager, Microsoft Italia

Alessandro Huber Chief Technology Officer, Microsoft Italia Claudia Angelelli Service Line Manager, Microsoft Italia Alessandro Huber Chief Technology Officer, Microsoft Italia Claudia Angelelli Service Line Manager, Microsoft Italia Contenimento dei costi di gestione Acquisizioni/ merge Rafforzare la relazione con

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI Il Database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi

Dettagli

4 Introduzione al data warehousing

4 Introduzione al data warehousing Che cosa è un data warehouse? Introduzione al data warehousing 22 maggio 2001 Un data warehouse è una base di dati collezione di dati di grandi dimensioni, persistente e condivisa gestita in maniera efficace,

Dettagli

Sistemi per le decisioni Dai sistemi gestionali ai sistemi di governo

Sistemi per le decisioni Dai sistemi gestionali ai sistemi di governo Sistemi per le decisioni Dai sistemi gestionali ai sistemi di governo Obiettivi. Presentare l evoluzione dei sistemi informativi: da supporto alla operatività a supporto al momento decisionale Definire

Dettagli