(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{"2e/m":function(n,t,l){"use strict";(function(n){var o=l("UrZR"),i=l.n(o);t.a=function(t){return n("table",{class:i.a.tablepanel},t.children)}}).call(this,l("hosL").h)},"3duz":function(n){n.exports={example:"example__9acWs"}},"8uYk":function(n){n.exports={box:"box__3cKyY",default:"default__v-emJ",red:"red__339Cz",orange:"orange__24_8v",yellow:"yellow__1Jo9W",lime:"lime__34yV5",cyan:"cyan__3RqLr",blue:"blue__13Wnj",magenta:"magenta__2tkzq"}},JESo:function(n){n.exports={inline:"inline__1yl8V",block:"block__fPiiB"}},OPqz:function(n,t,l){"use strict";(function(n){var o=l("TWV3"),i=l("hosL");t.a=function(t){return n(i.Fragment,null,n("h2",null,t.title),n(o.a,null,t.children))}}).call(this,l("hosL").h)},OmdA:function(n){n.exports={title:"title__3ZVpg",contents:"contents__20_NI"}},PGF6:function(n,t,l){"use strict";var o=l("hosL");t.a=Object(o.createContext)(null)},Q7TX:function(n,t,l){"use strict";(function(n){l.d(t,"a",(function(){return a}));var o=l("JESo"),i=l.n(o),e=l("QRet"),u=l("8CDw"),r=l("wQ73"),c=l("PGF6"),a=Object.freeze({INLINE:i.a.inline,BLOCK:i.a.block});t.b=function(t){var l,o=Object(e.b)(u.a),s=Object(e.b)(r.a),d=Object(e.b)(c.a);return l=void 0===t.display?null===d?a.INLINE:d:t.display,n("img",(void 0===t.inline?s:t.inline)?{src:"https://latex.codecogs.com/svg.latex?"+("\\inline {\\color{"+o+"} "+t.children+" }"),alt:t.children,title:t.children,class:i.a.latex+" "+l}:{src:"https://latex.codecogs.com/svg.latex?"+("{\\color{"+o+"} "+t.children+" }"),alt:t.children,title:t.children,class:i.a.latex+" "+l})}}).call(this,l("hosL").h)},QNda:function(n,t,l){"use strict";(function(n){l.d(t,"a",(function(){return u}));var o=l("hosL"),i=l("e8JA"),e=l.n(i),u=function(t){function l(){var n;return(n=t.call(this)||this).state={now:Date.now()},n.timer=null,n}var o,i;i=t,(o=l).prototype=Object.create(i.prototype),o.prototype.constructor=o,o.__proto__=i;var u=l.prototype;return u.componentDidMount=function(){var n=this;this.timer=setInterval((function(){n.setState({now:Date.now()})}),1e3)},u.componentWillUnmount=function(){null!==this.timer&&clearInterval(this.timer)},u.render=function(){var t="Unknown date",l=e.a.timer,o={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){var i=(t=new Date(this.props.to))-this.state.now;i>0?o={milliseconds:i%1e3,seconds:Math.floor(i/1e3)%60,minutes:Math.floor(i/6e4)%60,hours:Math.floor(i/36e5)%24,days:Math.floor(i/864e5)}:(o={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},l+=" "+e.a.expired)}else l+=" "+e.a.unknown;return n("div",{class:l,title:t},n("div",{class:e.a.days+" "+e.a.count},o.days),n("div",{className:e.a.days+" "+e.a.text},"giorni"),n("div",{class:e.a.hours+" "+e.a.count},o.hours),n("div",{className:e.a.hours+" "+e.a.text},"ore"),n("div",{class:e.a.minutes+" "+e.a.count},o.minutes),n("div",{className:e.a.minutes+" "+e.a.text},"minuti"),n("div",{class:e.a.seconds+" "+e.a.count},o.seconds),n("div",{class:e.a.seconds+" "+e.a.text},"secondi"))},l}(o.Component)}).call(this,l("hosL").h)},QRet:function(n,t,l){"use strict";function o(n,t){z.options.__h&&z.options.__h(N,n,F||t),F=0;var l=N.__H||(N.__H={__:[],__h:[]});return n>=l.__.length&&l.__.push({}),l.__[n]}function i(n){return F=1,e(b,n)}function e(n,t,l){var i=o(g++,2);return i.t=n,i.__c||(i.__c=N,i.__=[l?l(t):b(void 0,t),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__[0]=t,i.__c.setState({}))}]),i.__}function u(n,t){var l=o(g++,3);!z.options.__s&&v(l.__H,t)&&(l.__=n,l.__H=t,N.__H.__h.push(l))}function r(n,t){var l=o(g++,4);!z.options.__s&&v(l.__H,t)&&(l.__=n,l.__H=t,N.__h.push(l))}function c(n){return F=5,s((function(){return{current:n}}),[])}function a(n,t,l){F=6,r((function(){"function"==typeof n?n(t()):n&&(n.current=t())}),null==l?l:l.concat(n))}function s(n,t){var l=o(g++,7);return v(l.__H,t)?(l.__H=t,l.__h=n,l.__=n()):l.__}function d(n,t){return F=8,s((function(){return n}),t)}function _(n){var t=N.context[n.__c],l=o(g++,9);return l.__c=n,t?(null==l.__&&(l.__=!0,t.sub(N)),t.props.value):n.__}function f(n,t){z.options.useDebugValue&&z.options.useDebugValue(t?t(n):n)}function p(){x.some((function(n){if(n.__P)try{n.__H.__h.forEach(h),n.__H.__h.forEach(m),n.__H.__h=[]}catch(t){return n.__H.__h=[],z.options.__e(t,n.__v),!0}})),x=[]}function h(n){"function"==typeof n.u&&n.u()}function m(n){n.u=n.__()}function v(n,t){return!n||t.some((function(t,l){return t!==n[l]}))}function b(n,t){return"function"==typeof t?t(n):t}l.d(t,"j",(function(){return i})),l.d(t,"h",(function(){return e})),l.d(t,"d",(function(){return u})),l.d(t,"f",(function(){return r})),l.d(t,"i",(function(){return c})),l.d(t,"e",(function(){return a})),l.d(t,"g",(function(){return s})),l.d(t,"a",(function(){return d})),l.d(t,"b",(function(){return _})),l.d(t,"c",(function(){return f}));var g,N,y,z=l("hosL"),F=0,x=[],w=z.options.__r,C=z.options.diffed,L=z.options.__c,E=z.options.unmount;z.options.__r=function(n){w&&w(n),g=0;var t=(N=n.__c).__H;t&&(t.__h.forEach(h),t.__h.forEach(m),t.__h=[])},z.options.diffed=function(n){C&&C(n);var t=n.__c;t&&t.__H&&t.__H.__h.length&&(1!==x.push(t)&&y===z.options.requestAnimationFrame||((y=z.options.requestAnimationFrame)||function(n){var t,l=function(){clearTimeout(o),cancelAnimationFrame(t),setTimeout(n)},o=setTimeout(l,100);"undefined"!=typeof window&&(t=requestAnimationFrame(l))})(p))},z.options.__c=function(n,t){t.some((function(n){try{n.__h.forEach(h),n.__h=n.__h.filter((function(n){return!n.__||m(n)}))}catch(l){t.some((function(n){n.__h&&(n.__h=[])})),t=[],z.options.__e(l,n.__v)}})),L&&L(n,t)},z.options.unmount=function(n){E&&E(n);var t=n.__c;if(t&&t.__H)try{t.__H.__.forEach(h)}catch(n){z.options.__e(n,t.__v)}}},"S+8T":function(n,t,l){"use strict";l.r(t),function(n){function o(){var n=T(["\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 o=function(){return n},n}function i(){var n=T(["\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 i=function(){return n},n}function e(){var n=T(["\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 e=function(){return n},n}function u(){var n=T(["\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 u=function(){return n},n}function r(){var n=T(["\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=T(["\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=T(["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 s(){var n=T(["F = \frac{ $upper - $lower }{ max(col) - min(col) }"],["F = \\frac{ \\$upper - \\$lower }{ max(col) - min(col) }"]);return s=function(){return n},n}function d(){var n=T(["F = \frac{ $costante - min(col) }{ max(col) - min(col) }"],["F = \\frac{ \\$costante - min(col) }{ max(col) - min(col) }"]);return d=function(){return n},n}function _(){var n=T(["col < $costante"]);return _=function(){return n},n}function f(){var n=T(["F = \frac{ max(col) - $costante }{ max(col) - min(col) }"],["F = \\frac{ max(col) - \\$costante }{ max(col) - min(col) }"]);return f=function(){return n},n}function p(){var n=T(["F = \frac{n_{IN}}{N_{unici}}"],["F = \\frac{n_{IN}}{N_{unici}}"]);return p=function(){return n},n}function h(){var n=T(["F = \frac{1}{max(N_{unici_A}, N_{unici_B})"],["F = \\frac{1}{max(N_{unici_A}, N_{unici_B})"]);return h=function(){return n},n}function m(){var n=T(["F = 1 - \frac{1}{N_{unici}"],["F = 1 - \\frac{1}{N_{unici}"]);return m=function(){return n},n}function v(){var n=T(["F = \frac{1}{N_{unici}"],["F = \\frac{1}{N_{unici}"]);return v=function(){return n},n}function b(){var n=T(["N_{indici} cdot 4 cdot N_{selezionati}"],["N_{indici} \\cdot 4 \\cdot N_{selezionati}"]);return b=function(){return n},n}function g(){var n=T(["N_{indici} cdot 2 cdot N_{selezionati}"],["N_{indici} \\cdot 2 \\cdot N_{selezionati}"]);return g=function(){return n},n}function N(){var n=T(["OR"]);return N=function(){return n},n}function y(){var n=T(["BETWEEN"]);return y=function(){return n},n}function z(){var n=T([">"]);return z=function(){return n},n}function F(){var n=T(["geq"],["\\geq"]);return F=function(){return n},n}function x(){var n=T(["="]);return x=function(){return n},n}function w(){var n=T(["leq"],["\\leq"]);return w=function(){return n},n}function C(){var n=T(["<"]);return C=function(){return n},n}function L(){var n=T(["N_{selezionati}"]);return L=function(){return n},n}function E(){var n=T(["C"]);return E=function(){return n},n}function O(){var n=T(["F"]);return O=function(){return n},n}function k(){var n=T(["N_{unici}"]);return k=function(){return n},n}function q(){var n=T(["N_{indici}"]);return q=function(){return n},n}function A(){var n=T(["N_{foglie}"]);return A=function(){return n},n}function D(){var n=T(["N_{blocchi}"]);return D=function(){return n},n}function I(){var n=T(["N_{tuple}"]);return I=function(){return n},n}function T(n,t){return t||(t=n.slice(0)),n.raw=t,n}l.d(t,"default",(function(){return Q}));var H=l("hosL"),P=l("OPqz"),U=l("imVn"),B=l("QNda"),j=l("yDBo"),$=l("2e/m"),S=l("zDbI"),V=l("UEzA"),W=l("Wxxq"),M=String.raw,Q=function(t){function l(){return t.apply(this,arguments)||this}var T,H;return H=t,(T=l).prototype=Object.create(H.prototype),T.prototype.constructor=T,T.__proto__=H,l.prototype.render=function(){return n("div",null,n("h1",null,"Basi di dati"),n(P.a,{title:"Informazioni"},n(U.a,{title:"Contatti"},n("ul",null,n("li",null,n("a",{href:"mailto:riccardo.martoglia@unimo.it"},"Prof. Riccardo Martoglia")))),n(U.a,{title:"Archivio"},n("p",null,"Se sei uno ",n("b",null,"studente dell'Unimore"),", puoi accedere all'",n("b",null,n("a",{href:"https://drive.google.com/drive/folders/1q3bOf9czDXq7Bd5-kwdICuz-9Nx1zVp_"},"archivio del corso su Google Drive")),"."))),n(P.a,{title:"Esame"},n(U.a,{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(U.a,{title:"Appelli"},n("ol",null,n("li",null,n(B.a,{to:"2020-06-24"})),n("li",null,n(B.a,{to:"2020-07-09"})),n("li",null,n(B.a,{to:"2020-07-28"}))))),n(P.a,null,n(U.a,{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(U.a,{title:"Termini di consegna"},n("ol",null,n("li",null,n(B.a,{to:"2020-06-14"})),n("li",null,n(B.a,{to:"2020-06-30"})),n("li",null,n(B.a,{to:"2020-07-18"}))))),n(P.a,{title:"Visualizzazioni utili"},n(U.a,{title:"B+ Tree"},n("p",null,n("a",{href:"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html"},"Link")))),n(P.a,{title:"Calcolo dei costi delle query"},n($.a,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,M(I()))),n("td",null,"Numero di tuple di una tabella")),n("tr",null,n("td",null,n(S.a,null,M(D()))),n("td",null,"Numero di blocchi di una tabella")),n("tr",null,n("td",null,n(S.a,null,M(A()))),n("td",null,"Numero di foglie di un indice")),n("tr",null,n("td",null,n(S.a,null,M(q()))),n("td",null,"Numero di indici presenti in una tabella")),n("tr",null,n("td",null,n(S.a,null,M(k()))),n("td",null,"Numero di valori unici presenti in una colonna")),n("tr",null,n("td",null,n(S.a,null,M(O()))),n("td",null,"Fattore di selettività di una condizione")),n("tr",null,n("td",null,n(S.a,null,M(E()))),n("td",null,"Costo di accesso a una o più tuple")),n("tr",null,n("td",null,n(S.a,null,M(L()))),n("td",null,"Numero di tuple del risultato"))))),n(P.a,null,n(U.a,{title:"Fattore booleano"},n("p",null,"Espressione formata da ",n("b",null,"una o più condizioni moltiplicate tra loro"),".")),n(U.a,{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(j.a,null,M(C()))),n("li",null,n(j.a,null,M(w()))),n("li",null,n(j.a,null,M(x()))),n("li",null,n(j.a,null,M(F()))),n("li",null,n(j.a,null,M(z()))),n("li",null,n("b",null,n("code",null,M(y())))),n("li",null,n("b",null,n("code",null,M(N())))," (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(U.a,{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(j.a,null,M(g()))),n("li",null,n("code",null,"UPDATE"),": ",n(j.a,null,M(b())))),n("p",null,"È possibile usare gli indici nelle query solo per gli ",n("b",null,"argomenti di ricerca attraverso indice"),"."))),n(P.a,null,n(U.a,{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,M(v())))),n("tr",null,n("td",null,n("code",null,"col != $costante")),n("td",null,n(S.a,null,M(m())))),n("tr",null,n("td",null,n("code",null,"col1 != col2")),n("td",null,n(S.a,null,M(h())))),n("tr",null,n("td",null,n("code",null,"IN")),n("td",null,n(S.a,null,M(p())))),n("tr",null,n("td",null,n("code",null,"col > $costante")),n("td",null,n(S.a,null,M(f())))),n("tr",null,n("td",null,n("code",null,M(_()))),n("td",null,n(S.a,null,M(d())))),n("tr",null,n("td",null,n("code",null,"col BETWEEN $lower AND $upper")),n("td",null,n(S.a,null,M(s())))),n("tr",null,n("td",null,n("code",null,"cond1 OR cond2")),n("td",null,n(S.a,null,M(a()))))))),n(U.a,{title:"Costo di accesso"},n("p",null,"Quante ",n("i",null,"unità di lavoro")," costa accedere a una specifica relazione:"),n(V.a,null,M(c())),n("p",null,"Per accedere attraverso un indice a una specifica tupla della relazione, si spenderà:"),n(V.a,null,M(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(W.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(V.a,null,M(u())),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(V.a,null,M(e())),n("p",null,"Se si stanno effettuando query su più indici unclustered, il costo sarà:"),n(V.a,null,M(i()))),n(U.a,{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(V.a,null,M(o())),n("p",null,"La scelta della colonna su cui iterare è quindi importante!"))))},l}(H.Component)}.call(this,l("hosL").h)},TWV3:function(n,t,l){"use strict";(function(n){var o=l("htlC"),i=l.n(o);t.a=function(t){var l;return l=Array.isArray(t.children)?t.children.map((function(t){return n("div",{class:i.a.splitchild},t)})):n("div",{class:i.a.splitchild},t.children),n("div",{class:i.a.split},n("div",{class:i.a.splitparent},l))}}).call(this,l("hosL").h)},UEzA:function(n,t,l){"use strict";(function(n){var o=l("zDbI");t.a=function(t){return n("p",null,n(o.a,null,t.children))}}).call(this,l("hosL").h)},UrZR:function(n){n.exports={tablepanel:"tablepanel__1Wil3"}},Wxxq:function(n,t,l){"use strict";(function(n){var o=l("3duz"),i=l.n(o);l("hosL");t.a=function(t){return n("div",{class:i.a.example},t.children)}}).call(this,l("hosL").h)},Y9Ml:function(n,t,l){"use strict";(function(n){var o=l("8uYk"),i=l.n(o),e=Object.freeze({RED:i.a.red,ORANGE:i.a.orange,YELLOW:i.a.yellow,LIME:i.a.lime,CYAN:i.a.cyan,BLUE:i.a.blue,MAGENTA:i.a.magenta,DEFAULT:i.a.default});t.a=function(t){var l=e.DEFAULT;return t.color&&(l=t.color),n("div",{class:i.a.box+" "+l},t.children)}}).call(this,l("hosL").h)},e8JA:function(n){n.exports={timer:"timer__3Z2pL",days:"days__myhe2",hours:"hours__3JUDn",minutes:"minutes__24lD7",seconds:"seconds__2vZ4f",count:"count__chi9X",text:"text__34ldC",unknown:"unknown__3sT2P",expired:"expired__zNiuP"}},htlC:function(n){n.exports={splitparent:"splitparent__3-wBs",splitchild:"splitchild__begkX"}},imVn:function(n,t,l){"use strict";(function(n){var o=l("OmdA"),i=l.n(o),e=l("Y9Ml");t.a=function(t){return n(e.a,{color:t.color},n("h3",{class:i.a.title},t.title),n("div",{class:i.a.contents},t.children))}}).call(this,l("hosL").h)},wQ73:function(n,t,l){"use strict";var o=l("hosL");t.a=Object(o.createContext)(!0)},yDBo:function(n,t,l){"use strict";(function(n){var o=l("Q7TX");t.a=function(t){return n(o.b,{inline:!0,display:o.a.INLINE},t.children)}}).call(this,l("hosL").h)},zDbI:function(n,t,l){"use strict";(function(n){var o=l("Q7TX");t.a=function(t){return n(o.b,{inline:!1,display:o.a.BLOCK},t.children)}}).call(this,l("hosL").h)}}]); //# sourceMappingURL=route-BasiDiDati.chunk.4f988.js.map