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(l){l.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(l,n,i){"use strict";i.r(n),function(l){function t(){var l=I(["\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 l},l}function e(){var l=I(["\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 l},l}function o(){var l=I(["\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 o=function(){return l},l}function u(){var l=I(["\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 l},l}function r(){var l=I(["\n C = {color{yellow} 1} + {color{Orange} 1}\n "],["\n C = {\\color{yellow} 1} + {\\color{Orange} 1}\n "]);return r=function(){return l},l}function c(){var l=I(["\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 l},l}function a(){var l=I(["F = F_{cond1} + F_{cond2} - ( F_{cond1} cdot F_{cond2} )"],["F = F_{cond1} + F_{cond2} - ( F_{cond1} \\cdot F_{cond2} )"]);return a=function(){return l},l}function d(){var l=I(["F = \frac{ $upper - $lower }{ max(col) - min(col) }"],["F = \\frac{ \\$upper - \\$lower }{ max(col) - min(col) }"]);return d=function(){return l},l}function s(){var l=I(["F = \frac{ $costante - min(col) }{ max(col) - min(col) }"],["F = \\frac{ \\$costante - min(col) }{ max(col) - min(col) }"]);return s=function(){return l},l}function f(){var l=I(["col < $costante"]);return f=function(){return l},l}function p(){var l=I(["F = \frac{ max(col) - $costante }{ max(col) - min(col) }"],["F = \\frac{ max(col) - \\$costante }{ max(col) - min(col) }"]);return p=function(){return l},l}function _(){var l=I(["F = \frac{n_{IN}}{N_{unici}}"],["F = \\frac{n_{IN}}{N_{unici}}"]);return _=function(){return l},l}function m(){var l=I(["F = \frac{1}{max(N_{unici_A}, N_{unici_B})"],["F = \\frac{1}{max(N_{unici_A}, N_{unici_B})"]);return m=function(){return l},l}function v(){var l=I(["F = 1 - \frac{1}{N_{unici}"],["F = 1 - \\frac{1}{N_{unici}"]);return v=function(){return l},l}function g(){var l=I(["F = \frac{1}{N_{unici}"],["F = \\frac{1}{N_{unici}"]);return g=function(){return l},l}function N(){var l=I(["N_{indici} cdot 4 cdot N_{selezionati}"],["N_{indici} \\cdot 4 \\cdot N_{selezionati}"]);return N=function(){return l},l}function h(){var l=I(["N_{indici} cdot 2 cdot N_{selezionati}"],["N_{indici} \\cdot 2 \\cdot N_{selezionati}"]);return h=function(){return l},l}function b(){var l=I(["OR"]);return b=function(){return l},l}function F(){var l=I(["BETWEEN"]);return F=function(){return l},l}function z(){var l=I([">"]);return z=function(){return l},l}function q(){var l=I(["geq"],["\\geq"]);return q=function(){return l},l}function w(){var l=I(["="]);return w=function(){return l},l}function C(){var l=I(["leq"],["\\leq"]);return C=function(){return l},l}function y(){var l=I(["<"]);return y=function(){return l},l}function k(){var l=I(["N_{selezionati}"]);return k=function(){return l},l}function x(){var l=I(["C"]);return x=function(){return l},l}function O(){var l=I(["F"]);return O=function(){return l},l}function $(){var l=I(["N_{unici}"]);return $=function(){return l},l}function E(){var l=I(["N_{indici}"]);return E=function(){return l},l}function A(){var l=I(["N_{foglie}"]);return A=function(){return l},l}function B(){var l=I(["N_{blocchi}"]);return B=function(){return l},l}function P(){var l=I(["N_{tuple}"]);return P=function(){return l},l}function I(l,n){return n||(n=l.slice(0)),l.raw=n,l}var S=i("mbOI"),T=i("ke5e"),D=String.raw;n.default=function(){return l("div",null,l("h1",null,"Basi di dati"),l(S.r,{title:"Informazioni"},l(S.q,{title:"Contatti"},l("ul",null,l("li",null,l("a",{href:"mailto:riccardo.martoglia@unimo.it"},"Prof. Riccardo Martoglia")))),l(S.q,{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(S.r,{title:"Esame"},l(S.q,{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(S.q,{title:"Appelli"},l("ol",null,l("li",null,l(S.t,{to:"2020-06-24"})),l("li",null,l(S.t,{to:"2020-07-09"})),l("li",null,l(S.t,{to:"2020-07-28"}))))),l(S.r,null,l(S.q,{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(S.q,{title:"Termini di consegna"},l("ol",null,l("li",null,l(S.t,{to:"2020-06-14"})),l("li",null,l(S.t,{to:"2020-06-30"})),l("li",null,l(S.t,{to:"2020-07-18"}))))),l(S.r,{title:"Visualizzazioni utili"},l(S.q,{title:"B+ Tree"},l("p",null,l("a",{href:"https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html"},"Link")))),l(S.r,{title:"Calcolo dei costi delle query"},l(S.s,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(S.a,null,D(P()))),l("td",null,"Numero di tuple di una tabella")),l("tr",null,l("td",null,l(S.a,null,D(B()))),l("td",null,"Numero di blocchi di una tabella")),l("tr",null,l("td",null,l(S.a,null,D(A()))),l("td",null,"Numero di foglie di un indice")),l("tr",null,l("td",null,l(S.a,null,D(E()))),l("td",null,"Numero di indici presenti in una tabella")),l("tr",null,l("td",null,l(S.a,null,D($()))),l("td",null,"Numero di valori unici presenti in una colonna")),l("tr",null,l("td",null,l(S.a,null,D(O()))),l("td",null,"Fattore di selettività di una condizione")),l("tr",null,l("td",null,l(S.a,null,D(x()))),l("td",null,"Costo di accesso a una o più tuple")),l("tr",null,l("td",null,l(S.a,null,D(k()))),l("td",null,"Numero di tuple del risultato"))))),l(S.r,null,l(S.q,{title:"Fattore booleano"},l("p",null,"Espressione formata da ",l("b",null,"una o più condizioni moltiplicate tra loro"),".")),l(S.q,{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(S.h,null,D(y()))),l("li",null,l(S.h,null,D(C()))),l("li",null,l(S.h,null,D(w()))),l("li",null,l(S.h,null,D(q()))),l("li",null,l(S.h,null,D(z()))),l("li",null,l("b",null,l("code",null,D(F())))),l("li",null,l("b",null,l("code",null,D(b())))," (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(S.q,{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(S.h,null,D(h()))),l("li",null,l("code",null,"UPDATE"),": ",l(S.h,null,D(N())))),l("p",null,"È possibile usare gli indici nelle query solo per gli ",l("b",null,"argomenti di ricerca attraverso indice"),"."))),l(S.r,null,l(S.q,{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(S.a,null,D(g())))),l("tr",null,l("td",null,l("code",null,"col != $costante")),l("td",null,l(S.a,null,D(v())))),l("tr",null,l("td",null,l("code",null,"col1 != col2")),l("td",null,l(S.a,null,D(m())))),l("tr",null,l("td",null,l("code",null,"IN")),l("td",null,l(S.a,null,D(_())))),l("tr",null,l("td",null,l("code",null,"col > $costante")),l("td",null,l(S.a,null,D(p())))),l("tr",null,l("td",null,l("code",null,D(f()))),l("td",null,l(S.a,null,D(s())))),l("tr",null,l("td",null,l("code",null,"col BETWEEN $lower AND $upper")),l("td",null,l(S.a,null,D(d())))),l("tr",null,l("td",null,l("code",null,"cond1 OR cond2")),l("td",null,l(S.a,null,D(a()))))))),l(S.q,{title:"Costo di accesso"},l("p",null,"Quante ",l("i",null,"unità di lavoro")," costa accedere a una specifica relazione:"),l(S.p,null,D(c())),l("p",null,"Per accedere attraverso un indice a una specifica tupla della relazione, si spenderà:"),l(S.p,null,D(r())),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(T.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.p,null,D(u())),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.p,null,D(o())),l("p",null,"Se si stanno effettuando query su più indici unclustered, il costo sarà:"),l(S.p,null,D(e()))),l(S.q,{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.p,null,D(t())),l("p",null,"La scelta della colonna su cui iterare è quindi importante!"))))}}.call(this,i("hosL").h)},ke5e:function(l,n,i){"use strict";(function(l){var t=i("2w3n"),e=i.n(t);n.a=function(n){return l("div",{class:e.a.example},n.children)}}).call(this,i("hosL").h)}}]);
|
|
//# sourceMappingURL=route-BasiDiDati.chunk.881af.js.map
|