mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-30 03:44:19 +00:00
1 line
No EOL
16 KiB
Text
Generated
1 line
No EOL
16 KiB
Text
Generated
{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./routes/BasiDiDati.js","webpack:///./components/Example.js"],"names":["module","exports","r","String","raw","title","href","to","props","class","style","example","children"],"mappings":"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","file":"route-BasiDiDati.chunk.e7b32.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__2y1B_\",\"orange\":\"orange__dD2kx\",\"yellow\":\"yellow__OEpwl\",\"lime\":\"lime__CVe41\",\"cyan\":\"cyan__26ZAg\",\"blue\":\"blue__LO7Xm\",\"magenta\":\"magenta__1Akee\",\"example\":\"example__2PzAa\"};","import {BLatex, ILatex, Panel, PLatex, Section, TablePanel, Timer} from \"bluelib\";\nimport Example from \"../components/Example\";\n\nconst r = String.raw;\n\nexport default function (props) {\n return (\n <div>\n <h1>Basi di dati</h1>\n <Section title={\"Esame\"}>\n <Panel title={\"Contatti\"}>\n <ul>\n <li><a href={\"mailto:riccardo.martoglia@unimo.it\"}>Prof. Riccardo Martoglia</a></li>\n </ul>\n </Panel>\n <Panel title={\"Scritto\"}>\n <p>\n Uno scritto con tre domande:\n </p>\n <ul>\n <li>Progettazione concettuale e logica</li>\n <li>Formulazione interrogazione</li>\n <li>Una domanda tra:\n <ul>\n <li>Studio dato derivato</li>\n <li>Progettazione fisica</li>\n <li>Tecnologia database</li>\n </ul>\n </li>\n </ul>\n </Panel>\n <Panel title={\"Appelli\"}>\n <ol>\n <li><Timer to={\"2020-06-24\"}/></li>\n <li><Timer to={\"2020-07-09\"}/></li>\n <li><Timer to={\"2020-07-28\"}/></li>\n </ol>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Progetto\"}>\n <p>\n In gruppo, progettare un database secondo <a\n href={\"https://t.me/unimorefiles/23\"}>queste</a> specifiche.\n </p>\n <p>\n Va consegnato via mail almeno 10 giorni prima dello scritto.\n </p>\n </Panel>\n <Panel title={\"Termini di consegna\"}>\n <ol>\n <li><Timer to={\"2020-06-14\"}/></li>\n <li><Timer to={\"2020-06-30\"}/></li>\n <li><Timer to={\"2020-07-18\"}/></li>\n </ol>\n </Panel>\n </Section>\n <Section title={\"Visualizzazioni utili\"}>\n <Panel title={\"B+ Tree\"}>\n <p>\n <a href={\"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html\"}>Link</a>\n </p>\n </Panel>\n </Section>\n <Section title={\"Calcolo dei costi delle query\"}>\n <TablePanel>\n <thead>\n <tr>\n <th>Simbolo</th>\n <th>Descrizione</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><BLatex>{r`N_{tuple}`}</BLatex></td>\n <td>Numero di tuple di una tabella</td>\n </tr>\n <tr>\n <td><BLatex>{r`N_{blocchi}`}</BLatex></td>\n <td>Numero di blocchi di una tabella</td>\n </tr>\n <tr>\n <td><BLatex>{r`N_{foglie}`}</BLatex></td>\n <td>Numero di foglie di un indice</td>\n </tr>\n <tr>\n <td><BLatex>{r`N_{indici}`}</BLatex></td>\n <td>Numero di indici presenti in una tabella</td>\n </tr>\n <tr>\n <td><BLatex>{r`N_{unici}`}</BLatex></td>\n <td>Numero di valori unici presenti in una colonna</td>\n </tr>\n <tr>\n <td><BLatex>{r`F`}</BLatex></td>\n <td>Fattore di selettività di una condizione</td>\n </tr>\n <tr>\n <td><BLatex>{r`C`}</BLatex></td>\n <td>Costo di accesso a una o più tuple</td>\n </tr>\n <tr>\n <td><BLatex>{r`N_{selezionati}`}</BLatex></td>\n <td>Numero di tuple del risultato</td>\n </tr>\n </tbody>\n </TablePanel>\n </Section>\n <Section>\n <Panel title={\"Fattore booleano\"}>\n <p>\n Espressione formata da <b>una o più condizioni moltiplicate tra loro</b>.\n </p>\n </Panel>\n <Panel title={\"Argomenti di ricerca attraverso indice\"}>\n <p>\n Condizioni che soddisfano i seguenti requisiti:\n </p>\n <ul>\n <li>\n Usa uno dei seguenti <b>operatori</b>:\n <ul>\n <li><ILatex>{r`<`}</ILatex></li>\n <li><ILatex>{r`\\leq`}</ILatex></li>\n <li><ILatex>{r`=`}</ILatex></li>\n <li><ILatex>{r`\\geq`}</ILatex></li>\n <li><ILatex>{r`>`}</ILatex></li>\n <li><b><code>{r`BETWEEN`}</code></b></li>\n <li><b><code>{r`OR`}</code></b> (solo in alcuni DBMS)</li>\n </ul>\n </li>\n <li>Uno dei due termini del confronto è <b>una colonna</b> della tabella</li>\n <li>L'altro termine del confronto è <b>una costante numerica</b></li>\n </ul>\n </Panel>\n <Panel title={\"Indici\"}>\n <p>\n È possibile costruire indici sulle colonne di una tabella per velocizzare le query che\n riguardano quelle colonne.\n </p>\n <p>\n In particolare, ogni tabella può avere <b>un</b> <i>indice clustered</i> e <b>infiniti</b> <i>indici\n unclustered</i>.\n </p>\n <p>\n Generalmente, l'indice clustered è costruito sulla colonna della primary key, ma <a\n href={\"https://stackoverflow.com/questions/15051869/relationship-of-primary-key-and-clustered-index\"}>non\n è sempre quello il caso</a>.\n </p>\n <p>\n Gli indici vanno tenuti aggiornati, e ciò ha un <b>costo di manutenzione</b>:\n </p>\n <ul>\n <li><code>DELETE</code>: <ILatex>{r`N_{indici} \\cdot 2 \\cdot N_{selezionati}`}</ILatex></li>\n <li><code>UPDATE</code>: <ILatex>{r`N_{indici} \\cdot 4 \\cdot N_{selezionati}`}</ILatex></li>\n </ul>\n <p>\n È possibile usare gli indici nelle query solo per gli <b>argomenti di ricerca attraverso\n indice</b>.\n </p>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Fattore di selettività\"}>\n <p>\n La percentuale di tuple di una tabella che soddisfano una condizione.\n </p>\n <table>\n <thead>\n <tr>\n <th>Condizione</th>\n <th>Fattore di selettività</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>col = $costante</code></td>\n <td><BLatex>{r`F = \\frac{1}{N_{unici}`}</BLatex></td>\n </tr>\n <tr>\n <td><code>col != $costante</code></td>\n <td><BLatex>{r`F = 1 - \\frac{1}{N_{unici}`}</BLatex></td>\n </tr>\n <tr>\n <td><code>col1 != col2</code></td>\n <td><BLatex>{r`F = \\frac{1}{max(N_{unici_A}, N_{unici_B})`}</BLatex></td>\n </tr>\n <tr>\n <td><code>IN</code></td>\n <td><BLatex>{r`F = \\frac{n_{IN}}{N_{unici}}`}</BLatex></td>\n </tr>\n <tr>\n <td><code>col > $costante</code></td>\n <td><BLatex>{r`F = \\frac{ max(col) - \\$costante }{ max(col) - min(col) }`}</BLatex></td>\n </tr>\n <tr>\n <td><code>{r`col < $costante`}</code></td>\n <td><BLatex>{r`F = \\frac{ \\$costante - min(col) }{ max(col) - min(col) }`}</BLatex></td>\n </tr>\n <tr>\n <td><code>col BETWEEN $lower AND $upper</code></td>\n <td><BLatex>{r`F = \\frac{ \\$upper - \\$lower }{ max(col) - min(col) }`}</BLatex></td>\n </tr>\n <tr>\n <td><code>cond1 OR cond2</code></td>\n <td><BLatex>{r`F = F_{cond1} + F_{cond2} - ( F_{cond1} \\cdot F_{cond2} )`}</BLatex></td>\n </tr>\n </tbody>\n </table>\n </Panel>\n <Panel title={\"Costo di accesso\"}>\n <p>\n Quante <i>unità di lavoro</i> costa accedere a una specifica relazione:\n </p>\n <PLatex>{r`\n C = {\\color{yellow} {C_{indice}}} + {\\color{Orange} C_{relazione}}\n `}</PLatex>\n <p>\n Per accedere attraverso un indice a una specifica tupla della relazione, si spenderà:\n </p>\n <PLatex>{r`\n C = {\\color{yellow} 1} + {\\color{Orange} 1}\n `}</PLatex>\n <p>\n Se le tuple a cui si vuole accedere sono più di una, allora, il costo dipenderà da se l'indice è\n clustered o non-clustered.\n </p>\n <Example>\n Nel calcolo del costo di una query, si considerano tutti i cambi di pagina come <b>page\n fault</b>.\n </Example>\n <p>\n Per gli indici <b>clustered</b>, visto che basta caricare in memoria i blocchi in sequenza, il\n costo sarà:\n </p>\n <PLatex>{r`\n C = {\\color{yellow} ( F \\cdot N_{foglie} ) } + {\\color{Orange} ( F \\cdot N_{blocchi} ) }\n `}</PLatex>\n <p>\n Per gli indici <b>unclustered</b>, per i quali potremmo dover caricare e rimuovere lo stesso\n blocco dalla memoria più volte, il costo sarà:\n </p>\n <PLatex>{r`\n C = {\\color{yellow} ( F \\cdot N_{foglie} ) } + {\\color{Orange} ( F \\cdot N_{tuple} ) }\n `}</PLatex>\n <p>\n Se si stanno effettuando query su più indici unclustered, il costo sarà:\n </p>\n <PLatex>{r`\n C = {\\color{yellow}\\sum_k ( F_k \\cdot N_{foglie_k} )} + {\\color{Orange} \\left( \\prod_k F_k \\cdot N_{tuple} \\right)}\n `}</PLatex>\n </Panel>\n <Panel title={\"Costo di join\"}>\n <p>\n Quante <i>unità di lavoro</i> costa effettuare un join tra due relazioni.\n </p>\n <p>\n Varia in base al metodo di join utilizzato.\n </p>\n <p>\n Utilizzando il metodo del <b>nested loop</b>:\n </p>\n <PLatex>{r`\n C_{1 \\times 2} = C_1 + ( N_{selezionati_1} \\cdot C_2 )\n `}</PLatex>\n <p>\n La scelta della colonna su cui iterare è quindi importante!\n </p>\n </Panel>\n </Section>\n </div>\n )\n}\n","import style from \"./Example.less\";\n\nexport default function (props) {\n return (\n <div class={style.example}>\n {props.children}\n </div>\n );\n}\n"],"sourceRoot":""} |