GESTIONE MAGAZZINO 1

Documenti analoghi
GESTIONE MAGAZZINO 2

GESTIONE ABBONAMENTI RIVISTE

GESTIONE VOTI SCOLASTICI

GESTIONE ESAMI di STATO

GESTIONE VIDEONOLEGGIO

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

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

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

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

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

Metodologie e modelli di progetto

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

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

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

Basi di Dati Corso di Laura in Informatica Umanistica

Progettazione db per un sito web

Laboratorio di Basi di Dati prova totale 20 febbraio 2013

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

Requisiti della base di dati. Schema concettuale

Sistemi informativi aziendali struttura e processi

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

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

MySQL progettazione di un database per un mobilificio

I database. Introduzione alla teoria delle basi di dati

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

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

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

Concettuale. Giuseppe Amato

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

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

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

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

LA PROGETTAZIONE CONCETTUALE

Volumi di riferimento

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

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

ESAME di INFORMATICA e ARCHIVIAZIONE

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

GUIDA ALLE TABELLE PIVOT *

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

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

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

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 22 Giugno 04 Nome: Cognome: Matricola:

ESERCIZI SQL. Esercizio 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA

BASI DATI INFORMATICA

Progettazione di Basi di Dati

SISTEMI OPERATIVI, RETI, INTERNET

Avvertenze. Descrizione dell aggiornamento. Istruzioni

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione concettuale

Sommario. Introduzione... 13

20. Riepilogo Venduto - Giacenze

Analisi ABC incrociata

Il PROCESSO UNIFICATO

Importazione Prima Nota

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Progettazione di basi di dati

Gestione delle scorte - contenuti di base -

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

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

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

Le discusse politiche di acquisto in farmacia

INTRODUZIONE ALLE BASI DATI RELAZIONALI

SISTEMI INFORMATIVI E DATABASE

Listini Dinamici. Indice degli argomenti

Ciclo di vita di un sistema informativo

elicaweb manuali - estratti conto e scadenzari

Basi di Dati Corso di Laura in Informatica Umanistica

Corso sul linguaggio SQL

Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

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

Corso SAP Gestione degli Acquisti COMPLETO 10 GIORNI

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Contabilità di magazzino

Parte della gestione finanziaria che ha l'obiettivo di ottimizzare il flusso di disponibilità liquide di un'azienda. Ha lo scopo di non mantenere mai

Conto Economico e Stato Patrimoniale pro-forma

WinCoge genera automaticamente i files in formato FilConad

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

Esempio di database relazionale con l utilizzo del prodotto MySQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

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. LA SOLUZIONE Analisi Ipotesi aggiuntive Schema concettuale Schema logico Definizione delle relazioni Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) Pag. 1

Analisi 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. Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) 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. Schema concettuale della base di dati Tipi di entità I tipi di entità caratteristici del sistema sono : 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; Tipo di entità Reparto Fornitore Prodotto Attributi 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; Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) Pag. 3

Relazioni fra le entità Le relazioni tra i tipi di entità nel modello dei dati sono individuate nel seguente Modello Entità/Relazioni (E/R) : FORNITORE PRODOTTO REPARTO 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. Nel modello E/R, inoltre, sono stati indicati, oltre ai nomi delle entità, l opzionalità od obbligatorietà delle associazioni (indicate rispettivamente con linea tratteggiata o continua). Il modello viene verificato utilizzando le regole di lettura : ogni fornitore può fornire uno o più prodotti, ogni prodotto deve essere abbinato ad un solo fornitore; ogni reparto può contenere uno o più prodotti, un prodotto deve essere abbinato ad un solo reparto; Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) Pag. 4

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 : Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) Pag. 5

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 Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) Pag. 6

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) AUTO_INCREMENT PRIMARY KEY, reparto varchar(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) AUTO_INCREMENT PRIMARY KEY, ragionesociale varchar(40) NOT NULL UNIQUE, indirizzo varchar(30) NOT NULL, residenza varchar(30) NOT NULL, partitaiva char(11) NOT NULL UNIQUE, telefono varchar(15), email varchar(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) AUTO_INCREMENT PRIMARY KEY, prodotto varchar(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. Es. di analisi di un problema a cura del Prof. Salvatore DE GIORGI - I.T.I.S. FALANTO TALSANO (TA) Pag. 7