Dataninja srls
Connecting data with people
Una tabella: relazione uno-a-uno
id | nome | cognome | universo | |
---|---|---|---|---|
ts | tony | stark | stark@marvel.com | marvel |
bw | bruce | wayne | wayne@dc.com | dc |
sr | steve | rogers | rogers@marvel.com | marvel |
id,nome,cognome,mail,universo
ts,tony,stark,stark@marvel.com,marvel
bw,bruce,wayne,wayne@dc.com,dc
sr,steve,rogers,rogers@marvel.com,marvel
Un csv
Una tabella: selezione, ordinamento, raggruppamento
universo | supereroi |
---|---|
marvel | 2 |
dc | 1 |
SELECT universo, COUNT(id) AS supereroi
FROM personaggi
GROUP BY universo
ORDER BY supereroi DESC
Due tabelle: relazione uno-a-molti
id | nome | cognome | universo | |
---|---|---|---|---|
ts | tony | stark | stark@marvel.com | marvel |
bw | bruce | wayne | wayne@dc.com | dc |
sr | steve | rogers | rogers@marvel.com | marvel |
id | ragione sociale | sede | sito |
---|---|---|---|
marvel | Marvel Comics | New York | http://marvel.com/ |
dc | DC Comics | Burbank | http://www.dccomics.com/ |
Due tabelle: operazione di join
id | nome | cognome | universo | sede |
---|---|---|---|---|
sr | steve | rogers | marvel | New York |
ts | tony | stark | marvel | New York |
bw | bruce | wayne | dc | Burbank |
SELECT personaggi.id, nome, cognome, universo, sede
FROM personaggi JOIN universi ON personaggi.universo = universi.id
ORDER BY cognome
Due tabelle: operazione di join
Tre tabelle: relazione molti-a-molti
id | nome | cognome | |
---|---|---|---|
ts | tony | stark | stark@marvel.com |
bw | bruce | wayne | wayne@dc.com |
sr | steve | rogers | rogers@marvel.com |
id | descrizione |
---|---|
av | The Avengers |
jl | Justice League |
id | supereroe | team |
---|---|---|
1 | ts | av |
2 | sr | av |
3 | bw | jl |
JavaScript Object Notation
id | nome | cognome | universo | |
---|---|---|---|---|
ts | tony | stark | stark@marvel.com | marvel |
bw | bruce | wayne | wayne@dc.com | dc |
[
{
"id": "ts",
"nome": "tony",
"cognome": "stark",
"mail": "stark@marvel.com",
"universo": "marvel"
},
{
"id": "bw",
"nome": "bruce",
"cognome": "wayne",
"mail": "wayne@dc.com",
"universo": "dc"
}
]
{
"id": ["ts","bw"],
"nome": ["tony","bruce"],
"cognome": ["stark","wayne"],
"mail": ["stark@marvel.com","wayne@dc.com"],
"universo": ["marvel","dc"]
}
{
"keys": ["id","nome","cognome","mail","universo"],
"values": [
["ts","tony","stark","stark@marvel.com","marvel"],
["bw","bruce","wayne","wayne@dc.com","dc"],
]
}
JavaScript Object Notation
id | nome | cognome | universo | |
---|---|---|---|---|
ts | tony | stark | marvel | |
bw | bruce | wayne | wayne@dc.com | dc |
[
{
"id": "ts",
"nome": "tony",
"cognome": "stark",
"universo": "marvel"
},
{
"id": "bw",
"nome": "bruce",
"cognome": "wayne",
"mail": "wayne@dc.com",
"universo": "dc"
}
]
[
{
"id": "ts",
"nome": "tony",
"cognome": "stark",
"universo": "marvel",
"team": ["av","jl"]
},
{
"id": "bw",
"nome": "bruce",
"cognome": "wayne",
"mail": "wayne@dc.com",
"universo": "dc",
"team": ["jl"]
}
]
JavaScript Object Notation
id | nome | cognome | universo | |
---|---|---|---|---|
ts | tony | stark | marvel | |
bw | bruce | wayne | wayne@dc.com | dc |
[
{
"id": "ts",
"nome": "tony",
"cognome": "stark",
"universo": {
"id": "marvel",
"ragione sociale": "Marvel Comics",
"sede": "New York"
},
"team": [
{ "id": "av", "descrizione": "The Avengers" },
{ "id": "jl", "descrizione": "Justice League" }
]
}
]
By Dataninja srls
Un'introduzione molto basica al modello relazionale e all'approccio NoSQL, confrontando la rappresentazione a tabella con quella JSON.