Si vuole creare un package chiamato statistiche che contenga delle funzioni per analizzare gli acquisti fatti dai clienti nei loro ordini. Si vogliono calcolare ad esempio le frequenze di acquisto di un prodotto da parte di un cliente, la media e la varianza dell'ammontare speso dai clienti in un ordine, e una descrizione dei profili degli utenti basata sulla scelta dei prodotti che i clienti di quel profilo fa. Il package percio' possiede le seguenti funzioni: 1. La funzione TotOrd che calcola il numero totale di ordini. 2. La funzione freq_cli_prod che prende in ingresso gli identificatori di cliente e di prodotto e restituisce la frequenza con cui quel prodotto e' stato acquistato da quel cliente. Tale frequenza e' data come rapporto tra il numero di ordini del cliente in cui c'e' quel prodotto diviso il numero totale di ordini. Scrivere questa funzione sulla base della seguente vista, che mantiene il conteggio del numero degli ordini in cui c'e' ciascun prodotto, cliente per cliente e prodotto per prodotto. CREATE VIEW freq_prod_cli AS SELECT idcli, marca, mod, count(*) c FROM InOrdine I, Ordine O WHERE I.idOrd=O.idOrd GROUP BY idcli, marca,mod 3. La funzione TotCli che restituisce il numero totale di clienti. 4. La funzione avg_freq_prod che calcola la media rispetto ai clienti del numero di acquisti di un certo prodotto il cui identificatore e' stato dato in ingresso. 5. La procedura vis_cli_prod che visualizza l'identificatore dei clienti e il loro profilo per quei clienti che hanno acquistato il prodotto dato come parametro di ingresso con una frequenza maggiore della frequenza media di acquisto di quel prodotto da parte dei clienti. 6. La procedura avg_speso_cli che restituisce la media dell'ammontare speso dal cliente specificato come parametro di ingresso in un ordine, fatta rispetto ai suoi ordini. 7. La procedura avg_speso che restituisce la media dell'ammontare speso in un ordine dai clienti. 8. La procedura var_speso che calcola la varianza dell'ammontare speso dai clienti. Si ricorda che la varianza e' data dalla: sommatoria sui clienti(quadrato di(ammontare medio speso dal cliente i - media dell'ammontare speso in un ordine dai clienti))/numero dei clienti. 9. La procedura coppie_prod che memorizza in una tabella coppieProd identificata da un identificatore numerico, le coppie di prodotti acquistati insieme dai clienti in un ordine. Per limitare il numero di coppie di prodotti generati, si trovi solo quelle coppie piu' frequenti, ossia tali per cui la loro frequenza di occorrenza in un ordine e' superiore ad una frequenza specificata come parametro d'ingresso. (Tale frequenza di occorrenza e' il rapporto il numero di ordini con entrambi i prodotti diviso il numero totale di ordini). Si generi l'identificatore delle coppie tramite l'uso di una sequenza. 10. La procedura cli_coppie_prod che memorizza in una tabella sel_cli i clienti che hanno acquistato in uno stesso ordine la coppia di prodotti specificata in ingresso come parametro. 11. La procedura vis_coppie_prod_profili che memorizza in una tabella sel_profili il profilo dei clienti che hanno acquistato entrambi i prodotti della coppia (in uno stesso ordine) specificati come parametro di ingresso. ATTENZIONE! Si ipotizza che nella tabella Clienti sia stato precedentemente aggiunto un attributo "profilo" che descrive la categoria in cui il cliente e' stato assegnato. Quindi piu' di un cliente potrebbe essere assegnato allo stesso profilo. 12. La procedura desc_profili che visualizza i profili dei clienti e le coppie di prodotti tali per cui e' vera la condizione che segue. La percentuale di clienti che hanno acquistato quei prodotti in uno stesso ordine e appartengono a quel profilo e' maggiore di un valore dato (questa percentuale di clienti va fatta rispetto al totale di clienti che hanno acquistato in uno stesso ordine entrambi i prodotti della coppia).