mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-23 00:14:21 +00:00
2 lines
No EOL
11 KiB
JavaScript
Generated
2 lines
No EOL
11 KiB
JavaScript
Generated
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"2w3n":function(n){n.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"}},"S+8T":function(n,l,i){"use strict";i.r(l),function(n){function t(){var n=L(["\n C_{1 \times 2} = C_1 + ( N_{selezionati_1} cdot C_2 )\n "],["\n C_{1 \\times 2} = C_1 + ( N_{selezionati_1} \\cdot C_2 )\n "]);return t=function(){return n},n}function e(){var n=L(["\n C = {color{yellow}sum_k ( F_k cdot N_{foglie_k} )} + {color{Orange} left( prod_k F_k cdot N_{tuple} \right)}\n "],["\n C = {\\color{yellow}\\sum_k ( F_k \\cdot N_{foglie_k} )} + {\\color{Orange} \\left( \\prod_k F_k \\cdot N_{tuple} \\right)}\n "]);return e=function(){return n},n}function u(){var n=L(["\n C = {color{yellow} ( F cdot N_{foglie} ) } + {color{Orange} ( F cdot N_{tuple} ) }\n "],["\n C = {\\color{yellow} ( F \\cdot N_{foglie} ) } + {\\color{Orange} ( F \\cdot N_{tuple} ) }\n "]);return u=function(){return n},n}function o(){var n=L(["\n C = {color{yellow} ( F cdot N_{foglie} ) } + {color{Orange} ( F cdot N_{blocchi} ) }\n "],["\n C = {\\color{yellow} ( F \\cdot N_{foglie} ) } + {\\color{Orange} ( F \\cdot N_{blocchi} ) }\n "]);return o=function(){return n},n}function r(){var n=L(["\n C = {color{yellow} 1} + {color{Orange} 1}\n "],["\n C = {\\color{yellow} 1} + {\\color{Orange} 1}\n "]);return r=function(){return n},n}function c(){var n=L(["\n C = {color{yellow} {C_{indice}}} + {color{Orange} C_{relazione}}\n "],["\n C = {\\color{yellow} {C_{indice}}} + {\\color{Orange} C_{relazione}}\n "]);return c=function(){return n},n}function a(){var n=L(["F = F_{cond1} + F_{cond2} - ( F_{cond1} cdot F_{cond2} )"],["F = F_{cond1} + F_{cond2} - ( F_{cond1} \\cdot F_{cond2} )"]);return a=function(){return n},n}function d(){var n=L(["F = \frac{ $upper - $lower }{ max(col) - min(col) }"],["F = \\frac{ \\$upper - \\$lower }{ max(col) - min(col) }"]);return d=function(){return n},n}function s(){var n=L(["F = \frac{ $costante - min(col) }{ max(col) - min(col) }"],["F = \\frac{ \\$costante - min(col) }{ max(col) - min(col) }"]);return s=function(){return n},n}function f(){var n=L(["col < $costante"]);return f=function(){return n},n}function _(){var n=L(["F = \frac{ max(col) - $costante }{ max(col) - min(col) }"],["F = \\frac{ max(col) - \\$costante }{ max(col) - min(col) }"]);return _=function(){return n},n}function p(){var n=L(["F = \frac{n_{IN}}{N_{unici}}"],["F = \\frac{n_{IN}}{N_{unici}}"]);return p=function(){return n},n}function m(){var n=L(["F = \frac{1}{max(N_{unici_A}, N_{unici_B})"],["F = \\frac{1}{max(N_{unici_A}, N_{unici_B})"]);return m=function(){return n},n}function v(){var n=L(["F = 1 - \frac{1}{N_{unici}"],["F = 1 - \\frac{1}{N_{unici}"]);return v=function(){return n},n}function g(){var n=L(["F = \frac{1}{N_{unici}"],["F = \\frac{1}{N_{unici}"]);return g=function(){return n},n}function N(){var n=L(["N_{indici} cdot 4 cdot N_{selezionati}"],["N_{indici} \\cdot 4 \\cdot N_{selezionati}"]);return N=function(){return n},n}function b(){var n=L(["N_{indici} cdot 2 cdot N_{selezionati}"],["N_{indici} \\cdot 2 \\cdot N_{selezionati}"]);return b=function(){return n},n}function F(){var n=L(["OR"]);return F=function(){return n},n}function h(){var n=L(["BETWEEN"]);return h=function(){return n},n}function z(){var n=L([">"]);return z=function(){return n},n}function w(){var n=L(["geq"],["\\geq"]);return w=function(){return n},n}function C(){var n=L(["="]);return C=function(){return n},n}function y(){var n=L(["leq"],["\\leq"]);return y=function(){return n},n}function q(){var n=L(["<"]);return q=function(){return n},n}function k(){var n=L(["N_{selezionati}"]);return k=function(){return n},n}function x(){var n=L(["C"]);return x=function(){return n},n}function O(){var n=L(["F"]);return O=function(){return n},n}function $(){var n=L(["N_{unici}"]);return $=function(){return n},n}function E(){var n=L(["N_{indici}"]);return E=function(){return n},n}function P(){var n=L(["N_{foglie}"]);return P=function(){return n},n}function B(){var n=L(["N_{blocchi}"]);return B=function(){return n},n}function A(){var n=L(["N_{tuple}"]);return A=function(){return n},n}function L(n,l){return l||(l=n.slice(0)),n.raw=l,n}var S=i("mbOI"),T=i("ke5e"),I=String.raw;l.default=function(){return n("div",null,n("h1",null,"Basi di dati"),n(S.s,{title:"Esame"},n(S.r,{title:"Contatti"},n("ul",null,n("li",null,n("a",{href:"mailto:riccardo.martoglia@unimo.it"},"Prof. Riccardo Martoglia")))),n(S.r,{title:"Scritto"},n("p",null,"Uno scritto con tre domande:"),n("ul",null,n("li",null,"Progettazione concettuale e logica"),n("li",null,"Formulazione interrogazione"),n("li",null,"Una domanda tra:",n("ul",null,n("li",null,"Studio dato derivato"),n("li",null,"Progettazione fisica"),n("li",null,"Tecnologia database")))))),n(S.s,null,n(S.r,{title:"Progetto"},n("p",null,"In gruppo, progettare un database secondo ",n("a",{href:"https://t.me/unimorefiles/23"},"queste")," specifiche."),n("p",null,"Va consegnato via mail almeno 10 giorni prima dello scritto."))),n(S.s,{title:"Visualizzazioni utili"},n(S.r,{title:"B+ Tree"},n("p",null,n("a",{href:"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html"},"Link")))),n(S.s,{title:"Calcolo dei costi delle query"},n(S.t,null,n("thead",null,n("tr",null,n("th",null,"Simbolo"),n("th",null,"Descrizione"))),n("tbody",null,n("tr",null,n("td",null,n(S.a,null,I(A()))),n("td",null,"Numero di tuple di una tabella")),n("tr",null,n("td",null,n(S.a,null,I(B()))),n("td",null,"Numero di blocchi di una tabella")),n("tr",null,n("td",null,n(S.a,null,I(P()))),n("td",null,"Numero di foglie di un indice")),n("tr",null,n("td",null,n(S.a,null,I(E()))),n("td",null,"Numero di indici presenti in una tabella")),n("tr",null,n("td",null,n(S.a,null,I($()))),n("td",null,"Numero di valori unici presenti in una colonna")),n("tr",null,n("td",null,n(S.a,null,I(O()))),n("td",null,"Fattore di selettività di una condizione")),n("tr",null,n("td",null,n(S.a,null,I(x()))),n("td",null,"Costo di accesso a una o più tuple")),n("tr",null,n("td",null,n(S.a,null,I(k()))),n("td",null,"Numero di tuple del risultato"))))),n(S.s,null,n(S.r,{title:"Fattore booleano"},n("p",null,"Espressione formata da ",n("b",null,"una o più condizioni moltiplicate tra loro"),".")),n(S.r,{title:"Argomenti di ricerca attraverso indice"},n("p",null,"Condizioni che soddisfano i seguenti requisiti:"),n("ul",null,n("li",null,"Usa uno dei seguenti ",n("b",null,"operatori"),":",n("ul",null,n("li",null,n(S.i,null,I(q()))),n("li",null,n(S.i,null,I(y()))),n("li",null,n(S.i,null,I(C()))),n("li",null,n(S.i,null,I(w()))),n("li",null,n(S.i,null,I(z()))),n("li",null,n("b",null,n("code",null,I(h())))),n("li",null,n("b",null,n("code",null,I(F())))," (solo in alcuni DBMS)"))),n("li",null,"Uno dei due termini del confronto è ",n("b",null,"una colonna")," della tabella"),n("li",null,"L'altro termine del confronto è ",n("b",null,"una costante numerica")))),n(S.r,{title:"Indici"},n("p",null,"È possibile costruire indici sulle colonne di una tabella per velocizzare le query che riguardano quelle colonne."),n("p",null,"In particolare, ogni tabella può avere ",n("b",null,"un")," ",n("i",null,"indice clustered")," e ",n("b",null,"infiniti")," ",n("i",null,"indici unclustered"),"."),n("p",null,"Generalmente, l'indice clustered è costruito sulla colonna della primary key, ma ",n("a",{href:"https://stackoverflow.com/questions/15051869/relationship-of-primary-key-and-clustered-index"},"non è sempre quello il caso"),"."),n("p",null,"Gli indici vanno tenuti aggiornati, e ciò ha un ",n("b",null,"costo di manutenzione"),":"),n("ul",null,n("li",null,n("code",null,"DELETE"),": ",n(S.i,null,I(b()))),n("li",null,n("code",null,"UPDATE"),": ",n(S.i,null,I(N())))),n("p",null,"È possibile usare gli indici nelle query solo per gli ",n("b",null,"argomenti di ricerca attraverso indice"),"."))),n(S.s,null,n(S.r,{title:"Fattore di selettività"},n("p",null,"La percentuale di tuple di una tabella che soddisfano una condizione."),n("table",null,n("thead",null,n("tr",null,n("th",null,"Condizione"),n("th",null,"Fattore di selettività"))),n("tbody",null,n("tr",null,n("td",null,n("code",null,"col = $costante")),n("td",null,n(S.a,null,I(g())))),n("tr",null,n("td",null,n("code",null,"col != $costante")),n("td",null,n(S.a,null,I(v())))),n("tr",null,n("td",null,n("code",null,"col1 != col2")),n("td",null,n(S.a,null,I(m())))),n("tr",null,n("td",null,n("code",null,"IN")),n("td",null,n(S.a,null,I(p())))),n("tr",null,n("td",null,n("code",null,"col > $costante")),n("td",null,n(S.a,null,I(_())))),n("tr",null,n("td",null,n("code",null,I(f()))),n("td",null,n(S.a,null,I(s())))),n("tr",null,n("td",null,n("code",null,"col BETWEEN $lower AND $upper")),n("td",null,n(S.a,null,I(d())))),n("tr",null,n("td",null,n("code",null,"cond1 OR cond2")),n("td",null,n(S.a,null,I(a()))))))),n(S.r,{title:"Costo di accesso"},n("p",null,"Quante ",n("i",null,"unità di lavoro")," costa accedere a una specifica relazione:"),n(S.q,null,I(c())),n("p",null,"Per accedere attraverso un indice a una specifica tupla della relazione, si spenderà:"),n(S.q,null,I(r())),n("p",null,"Se le tuple a cui si vuole accedere sono più di una, allora, il costo dipenderà da se l'indice è clustered o non-clustered."),n(T.a,null,"Nel calcolo del costo di una query, si considerano tutti i cambi di pagina come ",n("b",null,"page fault"),"."),n("p",null,"Per gli indici ",n("b",null,"clustered"),", visto che basta caricare in memoria i blocchi in sequenza, il costo sarà:"),n(S.q,null,I(o())),n("p",null,"Per gli indici ",n("b",null,"unclustered"),", per i quali potremmo dover caricare e rimuovere lo stesso blocco dalla memoria più volte, il costo sarà:"),n(S.q,null,I(u())),n("p",null,"Se si stanno effettuando query su più indici unclustered, il costo sarà:"),n(S.q,null,I(e()))),n(S.r,{title:"Costo di join"},n("p",null,"Quante ",n("i",null,"unità di lavoro")," costa effettuare un join tra due relazioni."),n("p",null,"Varia in base al metodo di join utilizzato."),n("p",null,"Utilizzando il metodo del ",n("b",null,"nested loop"),":"),n(S.q,null,I(t())),n("p",null,"La scelta della colonna su cui iterare è quindi importante!"))))}}.call(this,i("hosL").h)},ke5e:function(n,l,i){"use strict";(function(n){var t=i("2w3n"),e=i.n(t);l.a=function(l){return n("div",{class:e.a.example},l.children)}}).call(this,i("hosL").h)}}]);
|
|
//# sourceMappingURL=route-BasiDiDati.chunk.4b080.js.map
|