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.