1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-26 09:54:19 +00:00
triennale-appunti-steffo/docs/route-BasiDiDati.chunk.33463.esm.js
2020-06-16 22:03:15 +02:00

14 lines
No EOL
16 KiB
JavaScript
Generated

(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{"2e/m":function(l,n,e){"use strict";(function(l){var t=e("UrZR"),i=e.n(t);n.a=function(n){return l("table",{class:i.a.tablepanel},n.children)}}).call(this,e("hosL").h)},"3duz":function(l){l.exports={red:"red__z2C0u",orange:"orange__3e-Zm",yellow:"yellow__2CxNB",lime:"lime__33JDs",cyan:"cyan__1exnO",blue:"blue__16AH0",magenta:"magenta__3tO7w",example:"example__9acWs"}},"8uYk":function(l){l.exports={red:"red__339Cz",orange:"orange__24_8v",yellow:"yellow__1Jo9W",lime:"lime__34yV5",cyan:"cyan__3RqLr",blue:"blue__13Wnj",magenta:"magenta__2tkzq",box:"box__3cKyY",default:"default__v-emJ"}},JESo:function(l){l.exports={red:"red__1s_qO",orange:"orange__8yp3v",yellow:"yellow__zZSeb",lime:"lime__3c_Z7",cyan:"cyan__EdN8X",blue:"blue__3YDdr",magenta:"magenta__D6iXm",inline:"inline__1yl8V",block:"block__fPiiB"}},OPqz:function(l,n,e){"use strict";(function(l){var t=e("TWV3"),i=e("hosL");n.a=function(n){return l(i.Fragment,null,l("h2",null,n.title),l(t.a,null,n.children))}}).call(this,e("hosL").h)},OmdA:function(l){l.exports={red:"red__1-G1M",orange:"orange__26Xfh",yellow:"yellow__p5pgZ",lime:"lime__2wXxY",cyan:"cyan__289vE",blue:"blue__Zipdn",magenta:"magenta__39Nrz",title:"title__3ZVpg",contents:"contents__20_NI"}},PGF6:function(l,n,e){"use strict";var t=e("hosL");n.a=Object(t.createContext)(null)},Q7TX:function(l,n,e){"use strict";(function(l){e.d(n,"a",(function(){return r}));var t=e("JESo"),i=e.n(t),o=e("QRet"),a=e("8CDw"),u=e("wQ73"),c=e("PGF6");const r=Object.freeze({INLINE:i.a.inline,BLOCK:i.a.block});n.b=function(n){let e,t,s=Object(o.b)(a.a),_=Object(o.b)(u.a),d=Object(o.b)(c.a);return e=void 0===n.inline?_:n.inline,t=void 0===n.display?null===d?r.INLINE:d:n.display,l("img",e?{src:`https://latex.codecogs.com/svg.latex?\\inline {\\color{${s}} ${n.children} }`,alt:n.children,title:n.children,class:i.a.latex+" "+t}:{src:`https://latex.codecogs.com/svg.latex?{\\color{${s}} ${n.children} }`,alt:n.children,title:n.children,class:i.a.latex+" "+t})}}).call(this,e("hosL").h)},QNda:function(l,n,e){"use strict";(function(l){e.d(n,"a",(function(){return a}));var t=e("hosL"),i=e("e8JA"),o=e.n(i);class a extends t.Component{constructor(){super(),this.state={now:Date.now()},this.timer=null}componentDidMount(){this.timer=setInterval(()=>{this.setState({now:Date.now()})},1e3)}componentWillUnmount(){null!==this.timer&&clearInterval(this.timer)}render(){let n="Unknown date",e=o.a.timer,t={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){n=new Date(this.props.to);let l=n-this.state.now;l>0?t={milliseconds:l%1e3,seconds:Math.floor(l/1e3)%60,minutes:Math.floor(l/6e4)%60,hours:Math.floor(l/36e5)%24,days:Math.floor(l/864e5)}:(t={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},e+=" "+o.a.expired)}else e+=" "+o.a.unknown;return l("div",{class:e,title:n},l("div",{class:o.a.days+" "+o.a.count},t.days),l("div",{className:o.a.days+" "+o.a.text},"giorni"),l("div",{class:o.a.hours+" "+o.a.count},t.hours),l("div",{className:o.a.hours+" "+o.a.text},"ore"),l("div",{class:o.a.minutes+" "+o.a.count},t.minutes),l("div",{className:o.a.minutes+" "+o.a.text},"minuti"),l("div",{class:o.a.seconds+" "+o.a.count},t.seconds),l("div",{class:o.a.seconds+" "+o.a.text},"secondi"))}}}).call(this,e("hosL").h)},QRet:function(l,n,e){"use strict";function t(l,n){N.options.__h&&N.options.__h(y,l,z||n),z=0;var e=y.__H||(y.__H={__:[],__h:[]});return l>=e.__.length&&e.__.push({}),e.__[l]}function i(l){return z=1,o(g,l)}function o(l,n,e){var i=t(v++,2);return i.t=l,i.__c||(i.__c=y,i.__=[e?e(n):g(void 0,n),function(l){var n=i.t(i.__[0],l);i.__[0]!==n&&(i.__[0]=n,i.__c.setState({}))}]),i.__}function a(l,n){var e=t(v++,3);!N.options.__s&&b(e.__H,n)&&(e.__=l,e.__H=n,y.__H.__h.push(e))}function u(l,n){var e=t(v++,4);!N.options.__s&&b(e.__H,n)&&(e.__=l,e.__H=n,y.__h.push(e))}function c(l){return z=5,s((function(){return{current:l}}),[])}function r(l,n,e){z=6,u((function(){"function"==typeof l?l(n()):l&&(l.current=n())}),null==e?e:e.concat(l))}function s(l,n){var e=t(v++,7);return b(e.__H,n)?(e.__H=n,e.__h=l,e.__=l()):e.__}function _(l,n){return z=8,s((function(){return l}),n)}function d(l){var n=y.context[l.__c],e=t(v++,9);return e.__c=l,n?(null==e.__&&(e.__=!0,n.sub(y)),n.props.value):l.__}function f(l,n){N.options.useDebugValue&&N.options.useDebugValue(n?n(l):l)}function p(){x.some((function(l){if(l.__P)try{l.__H.__h.forEach(h),l.__H.__h.forEach(m),l.__H.__h=[]}catch(n){return l.__H.__h=[],N.options.__e(n,l.__v),!0}})),x=[]}function h(l){"function"==typeof l.u&&l.u()}function m(l){l.u=l.__()}function b(l,n){return!l||n.some((function(n,e){return n!==l[e]}))}function g(l,n){return"function"==typeof n?n(l):n}e.d(n,"j",(function(){return i})),e.d(n,"h",(function(){return o})),e.d(n,"d",(function(){return a})),e.d(n,"f",(function(){return u})),e.d(n,"i",(function(){return c})),e.d(n,"e",(function(){return r})),e.d(n,"g",(function(){return s})),e.d(n,"a",(function(){return _})),e.d(n,"b",(function(){return d})),e.d(n,"c",(function(){return f}));var v,y,w,N=e("hosL"),z=0,x=[],L=N.options.__r,E=N.options.diffed,C=N.options.__c,F=N.options.unmount;N.options.__r=function(l){L&&L(l),v=0;var n=(y=l.__c).__H;n&&(n.__h.forEach(h),n.__h.forEach(m),n.__h=[])},N.options.diffed=function(l){E&&E(l);var n=l.__c;n&&n.__H&&n.__H.__h.length&&(1!==x.push(n)&&w===N.options.requestAnimationFrame||((w=N.options.requestAnimationFrame)||function(l){var n,e=function(){clearTimeout(t),cancelAnimationFrame(n),setTimeout(l)},t=setTimeout(e,100);"undefined"!=typeof window&&(n=requestAnimationFrame(e))})(p))},N.options.__c=function(l,n){n.some((function(l){try{l.__h.forEach(h),l.__h=l.__h.filter((function(l){return!l.__||m(l)}))}catch(e){n.some((function(l){l.__h&&(l.__h=[])})),n=[],N.options.__e(e,l.__v)}})),C&&C(l,n)},N.options.unmount=function(l){F&&F(l);var n=l.__c;if(n&&n.__H)try{n.__H.__.forEach(h)}catch(l){N.options.__e(l,n.__v)}}},"S+8T":function(l,n,e){"use strict";e.r(n),function(l){e.d(n,"default",(function(){return W}));var t=e("hosL"),i=e("OPqz"),o=e("imVn"),a=e("QNda"),u=e("yDBo"),c=e("2e/m"),r=e("zDbI"),s=e("UEzA"),_=e("Wxxq");let d,f,p,h,m,b,g,v,y,w,N,z,x,L,E,C,F,q,D,A,O,k,T,H,I,U,P,B,S,V,M,$,j=l=>l;const Q=String.raw;class W extends t.Component{render(){return l("div",null,l("h1",null,"Basi di dati"),l(i.a,{title:"Informazioni"},l(o.a,{title:"Contatti"},l("ul",null,l("li",null,l("a",{href:"mailto:riccardo.martoglia@unimo.it"},"Prof. Riccardo Martoglia")))),l(o.a,{title:"Archivio"},l("p",null,"Se sei uno ",l("b",null,"studente dell'Unimore"),", puoi accedere all'",l("b",null,l("a",{href:"https://drive.google.com/drive/folders/1q3bOf9czDXq7Bd5-kwdICuz-9Nx1zVp_"},"archivio del corso su Google Drive")),"."))),l(i.a,{title:"Esame"},l(o.a,{title:"Scritto"},l("p",null,"Uno scritto con tre domande:"),l("ul",null,l("li",null,"Progettazione concettuale e logica"),l("li",null,"Formulazione interrogazione"),l("li",null,"Una domanda tra:",l("ul",null,l("li",null,"Studio dato derivato"),l("li",null,"Progettazione fisica"),l("li",null,"Tecnologia database"))))),l(o.a,{title:"Appelli"},l("ol",null,l("li",null,l(a.a,{to:"2020-06-24"})),l("li",null,l(a.a,{to:"2020-07-09"})),l("li",null,l(a.a,{to:"2020-07-28"}))))),l(i.a,null,l(o.a,{title:"Progetto"},l("p",null,"In gruppo, progettare un database secondo ",l("a",{href:"https://t.me/unimorefiles/23"},"queste")," specifiche."),l("p",null,"Va consegnato via mail almeno 10 giorni prima dello scritto.")),l(o.a,{title:"Termini di consegna"},l("ol",null,l("li",null,l(a.a,{to:"2020-06-14"})),l("li",null,l(a.a,{to:"2020-06-30"})),l("li",null,l(a.a,{to:"2020-07-18"}))))),l(i.a,{title:"Visualizzazioni utili"},l(o.a,{title:"B+ Tree"},l("p",null,l("a",{href:"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html"},"Link")))),l(i.a,{title:"Calcolo dei costi delle query"},l(c.a,null,l("thead",null,l("tr",null,l("th",null,"Simbolo"),l("th",null,"Descrizione"))),l("tbody",null,l("tr",null,l("td",null,l(r.a,null,Q(d||(d=j`N_{tuple}`)))),l("td",null,"Numero di tuple di una tabella")),l("tr",null,l("td",null,l(r.a,null,Q(f||(f=j`N_{blocchi}`)))),l("td",null,"Numero di blocchi di una tabella")),l("tr",null,l("td",null,l(r.a,null,Q(p||(p=j`N_{foglie}`)))),l("td",null,"Numero di foglie di un indice")),l("tr",null,l("td",null,l(r.a,null,Q(h||(h=j`N_{indici}`)))),l("td",null,"Numero di indici presenti in una tabella")),l("tr",null,l("td",null,l(r.a,null,Q(m||(m=j`N_{unici}`)))),l("td",null,"Numero di valori unici presenti in una colonna")),l("tr",null,l("td",null,l(r.a,null,Q(b||(b=j`F`)))),l("td",null,"Fattore di selettività di una condizione")),l("tr",null,l("td",null,l(r.a,null,Q(g||(g=j`C`)))),l("td",null,"Costo di accesso a una o più tuple")),l("tr",null,l("td",null,l(r.a,null,Q(v||(v=j`N_{selezionati}`)))),l("td",null,"Numero di tuple del risultato"))))),l(i.a,null,l(o.a,{title:"Fattore booleano"},l("p",null,"Espressione formata da ",l("b",null,"una o più condizioni moltiplicate tra loro"),".")),l(o.a,{title:"Argomenti di ricerca attraverso indice"},l("p",null,"Condizioni che soddisfano i seguenti requisiti:"),l("ul",null,l("li",null,"Usa uno dei seguenti ",l("b",null,"operatori"),":",l("ul",null,l("li",null,l(u.a,null,Q(y||(y=j`<`)))),l("li",null,l(u.a,null,Q(w||(w=j`\leq`)))),l("li",null,l(u.a,null,Q(N||(N=j`=`)))),l("li",null,l(u.a,null,Q(z||(z=j`\geq`)))),l("li",null,l(u.a,null,Q(x||(x=j`>`)))),l("li",null,l("b",null,l("code",null,Q(L||(L=j`BETWEEN`))))),l("li",null,l("b",null,l("code",null,Q(E||(E=j`OR`))))," (solo in alcuni DBMS)"))),l("li",null,"Uno dei due termini del confronto è ",l("b",null,"una colonna")," della tabella"),l("li",null,"L'altro termine del confronto è ",l("b",null,"una costante numerica")))),l(o.a,{title:"Indici"},l("p",null,"È possibile costruire indici sulle colonne di una tabella per velocizzare le query che riguardano quelle colonne."),l("p",null,"In particolare, ogni tabella può avere ",l("b",null,"un")," ",l("i",null,"indice clustered")," e ",l("b",null,"infiniti")," ",l("i",null,"indici unclustered"),"."),l("p",null,"Generalmente, l'indice clustered è costruito sulla colonna della primary key, ma ",l("a",{href:"https://stackoverflow.com/questions/15051869/relationship-of-primary-key-and-clustered-index"},"non è sempre quello il caso"),"."),l("p",null,"Gli indici vanno tenuti aggiornati, e ciò ha un ",l("b",null,"costo di manutenzione"),":"),l("ul",null,l("li",null,l("code",null,"DELETE"),": ",l(u.a,null,Q(C||(C=j`N_{indici} \cdot 2 \cdot N_{selezionati}`)))),l("li",null,l("code",null,"UPDATE"),": ",l(u.a,null,Q(F||(F=j`N_{indici} \cdot 4 \cdot N_{selezionati}`))))),l("p",null,"È possibile usare gli indici nelle query solo per gli ",l("b",null,"argomenti di ricerca attraverso indice"),"."))),l(i.a,null,l(o.a,{title:"Fattore di selettività"},l("p",null,"La percentuale di tuple di una tabella che soddisfano una condizione."),l("table",null,l("thead",null,l("tr",null,l("th",null,"Condizione"),l("th",null,"Fattore di selettività"))),l("tbody",null,l("tr",null,l("td",null,l("code",null,"col = $costante")),l("td",null,l(r.a,null,Q(q||(q=j`F = \frac{1}{N_{unici}`))))),l("tr",null,l("td",null,l("code",null,"col != $costante")),l("td",null,l(r.a,null,Q(D||(D=j`F = 1 - \frac{1}{N_{unici}`))))),l("tr",null,l("td",null,l("code",null,"col1 != col2")),l("td",null,l(r.a,null,Q(A||(A=j`F = \frac{1}{max(N_{unici_A}, N_{unici_B})`))))),l("tr",null,l("td",null,l("code",null,"IN")),l("td",null,l(r.a,null,Q(O||(O=j`F = \frac{n_{IN}}{N_{unici}}`))))),l("tr",null,l("td",null,l("code",null,"col > $costante")),l("td",null,l(r.a,null,Q(k||(k=j`F = \frac{ max(col) - \$costante }{ max(col) - min(col) }`))))),l("tr",null,l("td",null,l("code",null,Q(T||(T=j`col < $costante`)))),l("td",null,l(r.a,null,Q(H||(H=j`F = \frac{ \$costante - min(col) }{ max(col) - min(col) }`))))),l("tr",null,l("td",null,l("code",null,"col BETWEEN $lower AND $upper")),l("td",null,l(r.a,null,Q(I||(I=j`F = \frac{ \$upper - \$lower }{ max(col) - min(col) }`))))),l("tr",null,l("td",null,l("code",null,"cond1 OR cond2")),l("td",null,l(r.a,null,Q(U||(U=j`F = F_{cond1} + F_{cond2} - ( F_{cond1} \cdot F_{cond2} )`)))))))),l(o.a,{title:"Costo di accesso"},l("p",null,"Quante ",l("i",null,"unità di lavoro")," costa accedere a una specifica relazione:"),l(s.a,null,Q(P||(P=j`
C = {\color{yellow} {C_{indice}}} + {\color{Orange} C_{relazione}}
`))),l("p",null,"Per accedere attraverso un indice a una specifica tupla della relazione, si spenderà:"),l(s.a,null,Q(B||(B=j`
C = {\color{yellow} 1} + {\color{Orange} 1}
`))),l("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."),l(_.a,null,"Nel calcolo del costo di una query, si considerano tutti i cambi di pagina come ",l("b",null,"page fault"),"."),l("p",null,"Per gli indici ",l("b",null,"clustered"),", visto che basta caricare in memoria i blocchi in sequenza, il costo sarà:"),l(s.a,null,Q(S||(S=j`
C = {\color{yellow} ( F \cdot N_{foglie} ) } + {\color{Orange} ( F \cdot N_{blocchi} ) }
`))),l("p",null,"Per gli indici ",l("b",null,"unclustered"),", per i quali potremmo dover caricare e rimuovere lo stesso blocco dalla memoria più volte, il costo sarà:"),l(s.a,null,Q(V||(V=j`
C = {\color{yellow} ( F \cdot N_{foglie} ) } + {\color{Orange} ( F \cdot N_{tuple} ) }
`))),l("p",null,"Se si stanno effettuando query su più indici unclustered, il costo sarà:"),l(s.a,null,Q(M||(M=j`
C = {\color{yellow}\sum_k ( F_k \cdot N_{foglie_k} )} + {\color{Orange} \left( \prod_k F_k \cdot N_{tuple} \right)}
`)))),l(o.a,{title:"Costo di join"},l("p",null,"Quante ",l("i",null,"unità di lavoro")," costa effettuare un join tra due relazioni."),l("p",null,"Varia in base al metodo di join utilizzato."),l("p",null,"Utilizzando il metodo del ",l("b",null,"nested loop"),":"),l(s.a,null,Q($||($=j`
C_{1 \times 2} = C_1 + ( N_{selezionati_1} \cdot C_2 )
`))),l("p",null,"La scelta della colonna su cui iterare è quindi importante!"))))}}}.call(this,e("hosL").h)},TWV3:function(l,n,e){"use strict";(function(l){var t=e("htlC"),i=e.n(t);n.a=function(n){let e;return e=Array.isArray(n.children)?n.children.map(n=>l("div",{class:i.a.splitchild},n)):l("div",{class:i.a.splitchild},n.children),l("div",{class:i.a.split},l("div",{class:i.a.splitparent},e))}}).call(this,e("hosL").h)},UEzA:function(l,n,e){"use strict";(function(l){var t=e("zDbI");n.a=function(n){return l("p",null,l(t.a,null,n.children))}}).call(this,e("hosL").h)},UrZR:function(l){l.exports={red:"red__2hgQp",orange:"orange__tGLf9",yellow:"yellow__15oHB",lime:"lime__DGxfH",cyan:"cyan__d6Sml",blue:"blue__4v0nZ",magenta:"magenta__3H2kV",tablepanel:"tablepanel__1Wil3"}},Wxxq:function(l,n,e){"use strict";(function(l){var t=e("3duz"),i=e.n(t);e("hosL"),n.a=function(n){return l("div",{class:i.a.example},n.children)}}).call(this,e("hosL").h)},Y9Ml:function(l,n,e){"use strict";(function(l){var t=e("8uYk"),i=e.n(t);const o=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});n.a=function(n){let e=o.DEFAULT;return n.color&&(e=n.color),l("div",{class:i.a.box+" "+e},n.children)}}).call(this,e("hosL").h)},e8JA:function(l){l.exports={red:"red__3683f",orange:"orange___PVUv",yellow:"yellow__CS7Ak",lime:"lime__3bqTp",cyan:"cyan__3UE2X",blue:"blue__2n3Ng",magenta:"magenta__1M1Vw",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(l){l.exports={red:"red__YF6Vb",orange:"orange__2w5to",yellow:"yellow__XvcrZ",lime:"lime__2MtRd",cyan:"cyan__36T9w",blue:"blue__1l1tt",magenta:"magenta__2SE7I",splitparent:"splitparent__3-wBs",splitchild:"splitchild__begkX"}},imVn:function(l,n,e){"use strict";(function(l){var t=e("OmdA"),i=e.n(t),o=e("Y9Ml");n.a=function(n){return l(o.a,{color:n.color},l("h3",{class:i.a.title},n.title),l("div",{class:i.a.contents},n.children))}}).call(this,e("hosL").h)},wQ73:function(l,n,e){"use strict";var t=e("hosL");n.a=Object(t.createContext)(!0)},yDBo:function(l,n,e){"use strict";(function(l){var t=e("Q7TX");n.a=function(n){return l(t.b,{inline:!0,display:t.a.INLINE},n.children)}}).call(this,e("hosL").h)},zDbI:function(l,n,e){"use strict";(function(l){var t=e("Q7TX");n.a=function(n){return l(t.b,{inline:!1,display:t.a.BLOCK},n.children)}}).call(this,e("hosL").h)}}]);
//# sourceMappingURL=route-BasiDiDati.chunk.33463.esm.js.map