{"id":112926,"date":"2022-03-10T13:14:25","date_gmt":"2022-03-10T13:14:25","guid":{"rendered":"https:\/\/www.studiowiki.it\/?p=112926"},"modified":"2022-12-01T09:48:27","modified_gmt":"2022-12-01T09:48:27","slug":"inova-n-46-le-basi-di-dati-capitolo-2","status":"publish","type":"post","link":"https:\/\/studiowiki.it\/inova\/inova-n-46-le-basi-di-dati-capitolo-2\/","title":{"rendered":"Le basi di dati. Capitolo 2."},"content":{"rendered":"<p><em>Glossario metodologico per la progettazione concettuale della base di dati.<\/em><\/p>\n<p>Presentiamo oggi alcuni criteri per tradurre un\u2019informazione in un elemento del modello Entit\u00e0- Relazione illustrato nell&#8217;articolo precedente (<em>leggi qui il <a href=\"https:\/\/www.studiowiki.it\/2022\/02\/112911\/\" target=\"_blank\" rel=\"noopener\">Capitolo 1<\/a><\/em>).<\/p>\n<p>Un piccolo riassunto del <strong>Capitolo 1<\/strong>:<\/p>\n<ul>\n<li>Se il concetto \u00e8 significativo o descrive classi di oggetti per il contesto applicativo in una base di dati si chiama <strong>entit\u00e0;<\/strong><\/li>\n<li>Se il concetto \u00e8 descrivibile tramite un dato elementare, non ha nessuna struttura complessa o non \u00e8 interessante nessun\u2019altra sua propriet\u00e0 si chiama <strong>attributo<\/strong> (di un altro concetto);<\/li>\n<li>Se il concetto \u00e8 in grado di associare due o pi\u00f9 entit\u00e0 sar\u00e0 una <strong>relazione;<\/strong><\/li>\n<li>Se uno o pi\u00f9 concetti sono casi particolari di un altro allora ci troviamo davanti a una<\/li>\n<\/ul>\n<p><strong>Strategie di approccio al progetto<\/strong><\/p>\n<p>Lo schema concettuale viene progressivamente raffinato e arricchito attraverso una serie di trasformazioni ed eventuali correzioni. Ci sono quattro tipi di strategie per lo sviluppo di uno schema concettuale entit\u00e0-relazione:<\/p>\n<ul>\n<li><strong>Strategia top-down<\/strong><\/li>\n<\/ul>\n<ol>\n<li>Si parte da uno schema iniziale che descrive tutte le specifiche con pochi concetti molto astratti e si procede attraverso una serie di raffinamenti successivi, ovvero attraverso delle <strong>trasformazioni <\/strong>che aumentano il dettaglio dei vari concetti.<\/li>\n<li>Si procede proprio costruendo diversi piani di raffinamento del processo, ognuno di questi piani contiene le stesse informazioni ma strutturate in maniera pi\u00f9 complessa, perch\u00e9 pi\u00f9 dettagliate.<\/li>\n<li>Le trasformazioni possono essere di vario tipo, cos\u00ec come rappresentate in figura sottostante.<\/li>\n<\/ol>\n<figure id=\"attachment_112941\" aria-describedby=\"caption-attachment-112941\" style=\"width: 805px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-112941 size-full\" src=\"https:\/\/studiowiki.it\/inova\/wp-content\/uploads\/2022\/03\/primitive-trasformazione_art3-e1646913307939.jpg\" alt=\"schema primitive di trasformazione\" width=\"805\" height=\"743\" \/><figcaption id=\"caption-attachment-112941\" class=\"wp-caption-text\"><em>Primitive di trasformazione top-down<\/em><\/figcaption><\/figure>\n<p>La strategia top-down ha vantaggi e svantaggi applicativi.<\/p>\n<ul>\n<li>Vantaggio: si possono descrivere inizialmente tutte le specifiche dei dati trascurandone i dettagli, per poi entrare nel merito di un concetto alla volta.<\/li>\n<li>Svantaggio: \u00e8 possibile solo quando si possiede gi\u00e0 una visione globale e astratta di tutte le componenti del sistema.<\/li>\n<\/ul>\n<ul>\n<li><strong>Strategia bottom-up<\/strong><\/li>\n<\/ul>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Si progetta dal particolare al generale.<\/li>\n<li>Si parte dal descrivere le singole componenti del sistema attraverso la suddivisione e descrizione in componenti sempre pi\u00f9 piccoli.<\/li>\n<li>Si formeranno cos\u00ec degli schemi concettuali, rappresentativi delle componenti, pi\u00f9 o meno articolati.<\/li>\n<li>I vari schemi cos\u00ec ottenuti vengono poi fusi fino a giungere attraverso l\u2019integrazione di tutte le componenti allo schema concettuale finale.<\/li>\n<li>Anche qui si procede compiendo delle trasformazioni:<br \/>\n&#8211; quando si individua nelle specifiche una classe di oggetti con propriet\u00e0 comuni si genera un\u2019Entit\u00e0.- quando si individua un legame tra due Entit\u00e0 si genera una Relazione, e cos\u00ec via come rappresentato in tabella.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-112942 aligncenter\" src=\"https:\/\/studiowiki.it\/inova\/wp-content\/uploads\/2022\/03\/primitive-trasformazione2_art3.jpg\" alt=\"schema primitive bottom-up\" width=\"630\" height=\"774\" \/><\/p>\n<p>Anche la strategia bottom-up ha vantaggi e svantaggi applicativi, vediamoli nel dettaglio:<\/p>\n<ul>\n<li>Vantaggi: si adatta a una decomposizione del problema in componenti pi\u00f9 semplici. Il fatto di costruire schemi concettuali diversi agevola la suddivisione del lavoro tra progettisti diversi.<\/li>\n<li>Svantaggi: si perde un po\u2019 la visione d\u2019insieme del progetto; richiede operazioni di integrazione di schemi concettuali diversi; \u00e8 difficile da gestire in situazioni articolate (si perde molto tempo).<\/li>\n<\/ul>\n<ul>\n<li><strong>Strategia inside-out<\/strong><\/li>\n<\/ul>\n<p><strong>\u00a0<\/strong><\/p>\n<ol>\n<li>\u00c8 un caso particolare della strategia bottom-up.<\/li>\n<li>Si individuano inizialmente solo alcuni concetti importanti.<\/li>\n<li>Poi si rappresentano i concetti che sono in diretta relazione con i concetti importanti rilevati in precedenza.<\/li>\n<li>Si procede via via allontanandosi attraverso una navigazione tra specifiche (<em>g.<\/em> Primo step: si scegli l\u2019entit\u00e0 da analizzare: IMPIEGATO + suoi attributi. Secondo step: si indaga la PARTECIPAZIONE \u2013 relazione &#8211; di IMPIEGATO al PROGETTO. Terzo step: si indaga la correlazione tra IMPIEGATO e DIPARTIMENTO &#8211; con i suoi attributi -, quindi la DIREZIONE e l\u2019AFFERENZA \u2013 che \u00e8 ancora una relazione. Quarto step: partendo dall\u2019entit\u00e0 DIPARTIMENTO si rappresentano le sedi dell\u2019azienda &#8211; entit\u00e0 SEDE e i suoi attributi &#8211; e l\u2019appartenenza dei dipartimenti alle sedi &#8211; relazione COMPOSIZIONE). La figura sottostante chiarisce visivamente il processo e le sue correlazioni logiche.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-112939 aligncenter\" src=\"https:\/\/studiowiki.it\/inova\/wp-content\/uploads\/2022\/03\/nuvola_art3.jpg\" alt=\"schema strategia insiede-out\" width=\"1108\" height=\"659\" \/><\/p>\n<p>Vantaggi e svantaggi della strategia insiede-out:<\/p>\n<ul>\n<li>Vantaggi: non richiede passi di integrazione.<\/li>\n<li>Svantaggi: bisogna esaminare tutte le volte le specifiche per individuare concetti non ancora rappresentati e descrivere i nuovi concetti nel dettaglio.<\/li>\n<\/ul>\n<ul>\n<li><strong>Strategia mista<\/strong><\/li>\n<\/ul>\n<p><strong>\u00a0<\/strong><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Cerca di combinare i vantaggi della strategia top-down e bottom-up.<\/li>\n<li>Permette di dividere un problema complesso in sottoproblemi e poi procedere per raffinamenti successivi.<\/li>\n<li>Si costruisce uno schema semplice a livello astratto (concetti principali attraverso una semplice ispezione), il quale permette di avere una visione unitaria dell\u2019intero progetto e di favorire la fase di integrazione degli schemi sviluppati invece separatamente.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Primo step: si elabora lo schema base.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-112940\" src=\"https:\/\/studiowiki.it\/inova\/wp-content\/uploads\/2022\/03\/partecipante_art3.jpg\" alt=\"schema base della strategia mista\" width=\"1084\" height=\"116\" \/><\/p>\n<p>Secondo step: si considera lo schema del primo step e si procede per raffinamenti (strategia top-down) oppure si amplia lo schema aggiungendo concetti non ancora rappresentati (strategia bottom-up).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>La strategia mista per la progettazione concettuale di una base di dati appare essere quella pi\u00f9 funzionale perch\u00e9 in assoluto la pi\u00f9 flessibile e adattabile ai vari contesti. Unisce infatti la possibilit\u00e0 di scomporre in sotto problemi e poi procedere per raffinamenti; \u00e8 utile quando non si ha la possibilit\u00e0 di avere tutti i dati o se ne ha una conoscenza a livelli di dettaglio non omogenei.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"Glossario metodologico per la progettazione concettuale della base di dati. Presentiamo oggi alcuni criteri per tradurre un\u2019informazione in&hellip;\n","protected":false},"author":4,"featured_media":112927,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"0","_seopress_titles_title":"","_seopress_titles_desc":"Continuiamo nella costruzione di un glossario metodologico per la progettazione concettuale delle basi di dati.","_seopress_robots_index":"","csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","csco_post_video_location":[],"csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[229,227],"tags":[191],"class_list":{"0":"post-112926","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-dati-e-ricerche","8":"category-inova","9":"tag-inova-46","10":"cs-entry","11":"cs-video-wrap"},"_links":{"self":[{"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/posts\/112926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/comments?post=112926"}],"version-history":[{"count":3,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/posts\/112926\/revisions"}],"predecessor-version":[{"id":116205,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/posts\/112926\/revisions\/116205"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/media\/112927"}],"wp:attachment":[{"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/media?parent=112926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/categories?post=112926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studiowiki.it\/inova\/wp-json\/wp\/v2\/tags?post=112926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}