GESTIONE MAGAZZINO 1

Documenti analoghi
GESTIONE MAGAZZINO 1

GESTIONE MAGAZZINO 2

GESTIONE MAGAZZINO 2

GESTIONE ABBONAMENTI RIVISTE

GESTIONE ASSICURAZIONI AUTO

GESTIONE ABBONAMENTI RIVISTE

GESTIONE VOTI SCOLASTICI

GESTIONE VOTI SCOLASTICI

Gestione NARRATIVA del 900

GESTIONE ESAMI di STATO

GESTIONE VIDEONOLEGGIO

GESTIONE VIDEONOLEGGIO

ESAME di INFORMATICA e ARCHIVIAZIONE

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

Esercitazione Fatturazione

Prova del 14/09/09. Considerare la seguente descrizione di un campeggio:

Il modello concettuale dei dati

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Simulazione d esame dell 11 Dicembre 2009

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità

Metodologie e modelli di progetto

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Progettazione db per un sito web

Manuale SQL. Manuale SQL - 1 -

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle

Progettazione concettuale usando il modello Entità-Relazione (ER)

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

ERP. Logistica. Produzione. Acquisti. Vendite. Amministrazione. Archivio 2

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola:

Lezione 4. Dallo schema ER al relazionale

Compito Basi di Dati. Tempo concesso : 90 minuti 28 aprile 2005 Nome: Cognome: Matricola:

Sessione ordinaria 2003 Seconda prova scritta ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Indirizzo: INFORMATICA CORSO SPERIMENTALE Progetto ABACUS

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

Laboratorio di Basi di Dati prova totale 20 febbraio 2013

Esercizio 6. Progettare la seguente base di dati: Studio Fotografico. L'archivio delle attività di uno studio fotografico.

Volumi di riferimento

Sistemi informativi aziendali struttura e processi

SCHEMA E/R DI UNA UNIVERSITA'

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online:

Requisiti della base di dati. Schema concettuale

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Basi di Dati: Elementi

SCHEMA ER. Tutti i dati del carrello acquisti sono memorizzati nel database e quindi può essere costruito con più query.

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Progettazione logica Fase 2: Traduzione nel modello relazionale. adattato da Atzeni et al., Basi di dati, McGrawHill

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

MySQL progettazione di un database per un mobilificio

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Basi di Dati Corso di Laura in Informatica Umanistica

MODULO 5 ACCESS Basi di dati

SQL - Structured Query Language

LA PROGETTAZIONE CONCETTUALE

SOLUZIONE ESAME DI STATO 2015/2016 Indirizzo: ITSI - AMMINISTRAZIONE, FINANZA E MARKETING ARTICOLAZIONE SISTEMI INFORMATIVI AZIENDALI

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la gestione di un sito di blog.

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008

I database. Introduzione alla teoria delle basi di dati

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Il PROCESSO UNIFICATO

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

20. Riepilogo Venduto - Giacenze

Corso SAP Gestione degli Acquisti COMPLETO 10 GIORNI

Basi di Dati 1 Esercitazione 5 08/01/2013. Matteo Picozzi

Vincoli di integrità Normalizzazione

Biblioteca di Pronti... via 2 o biennio TOMO h

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Database per la gestione delle ferrovie dello stato. I treni gestiti sono identificati da un numero. Su ciascun treno sono specificate le classi per

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Unità 2.2 Comandi sulle tabelle

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

Manuale Parte 2 - Ricambi

SISTEMI INFORMATIVI E DATABASE

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, La normalizzazione

Corso sul linguaggio SQL

Sommario. Introduzione... 13

Forme normali. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill. La normalizzazione. Normalizzazione. Una relazione con anomalie.

Laboratorio di Basi di Dati Esercizio 8.4/9.1

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Transcript:

GESTIONE MAGAZZINO 1 Un azienda vuole automatizzare la procedura di gestione delle scorte del suo magazzino di prodotti organizzato per reparti. Il sistema informativo deve essere in grado di : produrre i listini dei prodotti; controllare i prodotti sotto scorta e, quindi, produrre l elenco dei prodotti da riordinare; calcolare il valore del magazzino per ogni reparto; calcolare la media dei costi d acquisto dei prodotti raggruppati per reparto; gestire i fornitori. Considerato il problema proposto, precisando eventuali ipotesi aggiuntive, si realizzi: un analisi della realtà di riferimento che illustri le premesse per i successivi passi della progettazione della base di dati; uno schema concettuale della base di dati; uno schema logico della base di dati; la definizione delle relazioni della base di dati in linguaggio SQL. SOLUZIONE Analisi del problema Ipotesi aggiuntive Analisi dei dati Schema concettuale Schema logico Definizione delle relazioni Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 1

Analisi del problema La prima entità da considerare è quella che si riferisce ai prodotti. L entità richiesta è una anagrafe dei prodotti presenti nel magazzino dell azienda con le proprietà essenziali ed indispensabili a gestire tutte le richieste proposte dal problema. In particolare per la gestione degli ordini e il controllo dei prodotti sotto scorta si ritiene necessario l utilizzo, per ogni prodotto, dei valori relativi alla scorta minima e alla scorta massima. La scorta minima (stock) o scorta di sicurezza di un qualsiasi prodotto è la quantità minima conservata in magazzino necessaria per proteggersi contro oscillazioni della domanda dei clienti relativa al tempo di approvvigionamento. Ovvero, è la quantità che è utile avere in magazzino per far fronte ad ogni richiesta da parte dei clienti prima che si faccia un ordine di acquisto. La scorta massima, invece, è la quantità che non conviene superare in quanto, sempre relativamente alla media delle vendite, si potrebbero avere problemi, per esempio, legati alla deperibilità dei prodotti o ai costi di gestione stessi della merce. Si deve, infatti, tener presente che la quantità conservata in eccesso rispetto alle esigenze comporta dei costi in termine di spazio fisico occupato (scaffali, capannoni, ecc.) ed in termine di spese affrontate per l acquisto (pagamento ai fornitori, interessi bancari, ecc) Si deve, comunque, sottolineare che mentre la giacenza attuale è un valore ben preciso e riguarda il momento in cui si effettua un controllo delle giacenze, i valori relativi alla scorta massima e minima sono valori teorici e soggettivi (molto spesso tali valori scaturiscono da statistiche varie) che possono dipendere da diversi fattori : il tipo di clientela dell azienda, la posizione fisica dell azienda, il periodo preso in considerazione, il potere d acquisto dell azienda, ecc I tre parametri che vengono, generalmente, presi in considerazione per effettuare l ordine sono : la giacenza attuale, la scorta minima e la scorta massima. Quando si effettua un ordine si controlla, per ogni prodotto, se la quantità attuale giacente in magazzino è inferiore alla scorta minima. In tal caso la quantità da ordinare è uguale alla differenza fra la scorta massima e la quantità giacente. Per i prodotti, quindi, sotto scorta : Quantità da ordinare = Scorta massima - Giacenza Il valore complessivo del magazzino viene calcolato sommando il prodotto della giacenza attuale di ogni articolo per il relativo costo d acquisto. Ovviamente, se si vuole un valore relativo a ciascun reparto, è sufficiente raggruppare gli articoli per reparto. La successiva entità da analizzare è l anagrafe dei fornitori contenente tutti i fornitori già registrati con le proprietà essenziali. La soluzione proposta prevede che un prodotto possa essere fornito da un solo fornitore e quindi le due entità sono collegate con una relazione uno-a-molti. Se, invece, si vuole risolvere il problema prevedendo che uno stesso prodotto possa essere acquistato da più fornitori (questa soluzione è presentata nell esempio GESTIONE MAGAZZINO2 ), l associazione fra le due entità da uno-a-molti diventa molti-a-molti con evidente introduzione di un ulteriore entità che possa consentire tale relazione (l associazione molti-a-molti viene trasformata in due associazioni uno-a-molti con l aggiunta di una terza entità). Per gestire la classificazione dei prodotti per reparto ( sezione in cui è possibile suddividere un ufficio, un negozio, un ospedale, ecc. ) si deve prevedere un entità reparti contenente la descrizione di tutti i reparti (per es.,nel caso di un supermercato, : casalinghi, alimentari, detersivi, surgelati, ecc.) in cui è suddiviso fisicamente il magazzino. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 2

Ipotesi aggiuntive Entità "Reparto": la chiave primaria è artificiale ad autoincremento. Sono previste solo le proprietà strettamente necessarie per la risoluzione dei quesiti. L utilizzo dell entità Reparto permette di ottenere una descrizione univoca per ogni reparto associato a ciascun prodotto. Entità "Fornitore": la chiave primaria è artificiale ad autoincremento. Sono previste solo le proprietà strettamente necessarie per la risoluzione dei quesiti. Entità Prodotto : la chiave primaria è artificiale ad autoincremento per evitare i problemi generati dalle omonimie (prodotti con la stessa descrizione ma provenienti da produttori o fornitori diversi). Per una migliore gestione dell ordine, fra gli attributi dell entità Prodotto, oltre all attributo idprodotto corrispondente al codice che l azienda utilizza per identificare i propri prodotti, sarebbe opportuno inserire il codice del prodotto usato dal fornitore per identificare i suoi prodotti. In questo modo, nel fare un ordine, si può far riferimento ad un prodotto sia con la sua descrizione che con il codice usato dal fornitore e, quindi, evitare spiacevoli disguidi che potrebbero verificarsi per un errata trascrizione della descrizione. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 3

Analisi dei dati Le entità che possono essere individuate per risolvere il problema sono : ENTITA Reparto Fornitore Prodotto contiene l elenco dei reparti in cui è diviso il magazzino; contiene l elenco anagrafico dei fornitori; contiene l elenco dei tutti i prodotti del magazzino; Gli attributi, per ciascuna entità, individuati per risolvere il problema sono : ATTRIBUTI Tipo di entità Reparto Fornitore Prodotto Sistema informativo Gestione Magazzino idreparto, Descrizione Reparto; Attributi idfornitore, Ragione Sociale, Indirizzo, Residenza, Partita Iva, Numero di Telefono, E-Mail; idprodotto, Descrizione Prodotto, Sconto da effettuare al cliente, Costo d acquisto, Prezzo di vendita, Giacenza, Scorta Massima, Scorta Minima; Tra l entità Fornitore e l entità Prodotto esiste un associazione uno-a-molti in quanto un fornitore può fornire uno o più prodotti e ciascun prodotto deve essere fornito da un solo fornitore. Tra l entità Reparto e l entità Prodotto esiste un associazione uno-a-molti in quanto un reparto può contenere uno o più prodotti e ciascun prodotto deve essere sistemato in un solo reparto. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 4

Schema concettuale della base di dati Le relazioni tra i tipi di entità nel modello dei dati sono individuate nel seguente Modello Entità/Associazioni (E/R) : FORNITORE PRODOTTO REPARTO Nel modello E/R sono indicati i nomi delle entità, l opzionalità od obbligatorietà delle associazioni. Il modello viene verificato utilizzando le regole di lettura : ogni fornitore può fornire uno o più prodotti, ogni prodotto deve essere fornito da un solo fornitore; ogni reparto può contenere uno o più prodotti, un prodotto deve essere abbinato ad un solo reparto; Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 5

Schema logico della base di dati Come tipo di schema logico, dovendo poi realizzarlo nello standard SQL, si sceglie di utilizzare quello relazionale. Applicando le regole di corrispondenza tra il modello E/R ed il modello Relazionale si passa dal precedente schema concettuale al modello logico che viene descritto sia nella forma testuale che in quella grafica. Rappresentazione testuale dello schema logico : Nella rappresentazione testuale si elencano le tabelle (indicando per ciascuna i campi) che rappresentano le entità dello schema concettuale e le tabelle che rappresentano le eventuali relazioni molti-a-molti, introducendo, inoltre, le chiave esterne per rappresentare le associazioni (le chiavi primarie sono sottolineate, le chiavi esterne sono in corsivo). Si elencano di seguito le tabelle che rappresentano le entità dello schema concettuale : tbreparti (idreparto,reparto) tbfornitori (idfornitore,ragionesociale, indirizzo, residenza, partitaiva, telefono, email) tbprodotti (idprodotto, prodotto, ksreparto, ksfornitore, costoacquisto, prezzovendita, sconto, giacenza, scortamax, scortamin) Per realizzare l associazione uno-a-molti fra l entità Reparto e l entità Prodotto si introduce, fra gli attributi dell entità a molti (Prodotto), la chiave esterna ksreparto associata alla chiave primaria idreparto dell entità a uno (Reparto). Per realizzare l associazione uno-a-molti fra l entità Fornitore e l entità Prodotto si introduce, fra gli attributi dell entità a molti (Prodotto), la chiave esterna ksfornitore associata alla chiave primaria idfornitore dell entità a uno (Fornitore). Rappresentazione grafica dello schema logico : La rappresentazione grafica dello schema logico relativo al sistema informativo per la gestione del Magazzino è il seguente : Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 6

Definizione delle Tabelle Nel definire le tabelle e la struttura delle stesse, è consigliabile elencarle partendo dalle tabelle che non presentano chiavi esterne. In successione si definiscono le tabelle le cui chiavi primarie sono utilizzate da altre tabelle come chiavi esterne. Nel prospetto seguente, per es., si definiscono prima le tabelle tbfornitori e tbreparti (in tal caso l ordine è soggettivo) e poi la tabella tbprodotti, in quanto quest ultima ha, fra gli attributi, due campi definiti come chiavi esterne alle suddette tabelle. Tabella Nome campo Chiave Tipo dati Dim. Dec. Null Descrizione tbreparti idreparto Primaria Intero 4 Autoincremento reparto Carattere 30 Vincolo : valori unici tbfornitori idfornitore Primaria Intero 4 Autoincremento ragionesociale Carattere 40 Vincolo : valori unici indirizzo Carattere 30 residenza Carattere 30 partitaiva Carattere 11 Vincolo : valori unici telefono Carattere 15 SI email Carattere 30 SI tbprodotti idprodotto Primaria Intero 4 Autoincremento prodotto Carattere 30 Descrizione prodotto ksreparto Esterna Intero 4 Integrità referenziale con idreparto della tabella tbreparti ksfornitore Esterna Intero 4 Integrità referenziale con idfornitore della tabella tbfornitori costoacquisto Decimale 8 2 prezzovendita Decimale 8 2 sconto Decimale 4 2 SI giacenza Decimale 6 2 Esistenza attuale scortamax Decimale 6 2 Scorta massima scortamin Decimale 6 2 Scorta minima Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 7

Definizione delle relazioni della base di dati in SQL Lo schema logico relazionale precedente (tabelle, relazione ed applicazione dei vincoli di integrità dei dati e referenziale) può essere creato con le seguenti istruzioni SQL (proposte in versione per ACCESS e MySQL. ACCESS CREATE TABLE tbreparti ( idreparto Counter PRIMARY KEY, reparto Char(30) NOT NULL UNIQUE); MySQL CREATE TABLE tbreparti( idreparto int(4) unsigned AUTO_INCREMENT PRIMARY KEY, reparto char(30) NOT NULL UNIQUE ) TYPE=MyISAM; CREATE TABLE tbfornitori ( idfornitore Counter PRIMARY KEY, ragionesociale Char(40) NOT NULL UNIQUE, indirizzo Char(30) NOT NULL, residenza Char(30) NOT NULL, partitaiva Char(11) NOT NULL UNIQUE, telefono Char(15), email Char(30)); CREATE TABLE tbfornitori ( idfornitore int(4) unsigned AUTO_INCREMENT PRIMARY KEY, ragionesociale char(40) NOT NULL UNIQUE, indirizzo char(30) NOT NULL, residenza char(30) NOT NULL, partitaiva char(11) NOT NULL UNIQUE, telefono char(15), email char(30) ) TYPE=MyISAM; CREATE TABLE tbprodotti ( idprodotto Counter PRIMARY KEY, prodotto Char(30) NOT NULL, ksreparto Long NOT NULL, ksfornitore Long NOT NULL, costoacquisto Single NOT NULL, prezzovendita Single NOT NULL, sconto Single, giacenza Single NOT NULL, scortamax Single NOT NULL, scortamin Single NOT NULL, FOREIGN KEY(ksreparto) REFERENCES tbreparti(idreparto), FOREIGN KEY(ksfornitore) REFERENCES tbfornitori(idfornitore)) ; CREATE TABLE tbprodotti ( idprodotto int(4) unsigned AUTO_INCREMENT PRIMARY KEY, prodotto char(30) NOT NULL, ksreparto int(4) NOT NULL, ksfornitore int(4) NOT NULL, costoacquisto decimal(8,2) NOT NULL, prezzovendita decimal(8,2) NOT NULL, sconto decimal(4,2), giacenza decimal(6,2) NOT NULL, scortamax decimal (6,2) NOT NULL, scortamin decimal (6,2) NOT NULL ) TYPE=MyISAM; Nota : le istruzioni proposte per MySQL sono relative all uso di tabelle tipo MyISAM che non supportano l integrità referenziale definita con FOREIGN KEY. Il tipo di tabella InnoDB, invece, supporta la FOREIGN KEY similmente ad ACCESS. Esempio di Progettazione di un database a cura del Prof. Salvatore DE GIORGI Pag. 8