Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertYngve Gabrielsen Endret for 9 år siden
1
Databasen I Oversikt, noder og egenskaper
2
Designmål XML-lignende struktur Utvidbarhet Aktivitet fra mange brukere Ingen eier data Gjenbruk av data
3
Musicbrainz Henter data fra eksisterende DB 1.5 millioner registrerte lydspor Innlagt av brukere Mye ”feil” Spor: Tittel Versjonsinfo: Live, remix, instrumental, akustisk, radio edit. Tempo for et fåtall Årstall for et fåtall Genre for et fåtall Popularitet Lengde I album: Release (dato, land), albumtype, spornummer Prosjekt (artist): Tittel, sorteringstittel http://www.musicbrainz.org/
4
At a glance Består av noder (spor, artister, osv) Noder har egenskaper (metadata) Brukere og grupper (communities) Brukere stemmer på metadata (passer/stemmer metadataene?) Brukere kommenterer stemmer. Brukere melder noder inn i communities Brukere tagger noder. “Blå”, “Fart”, “Krig”. Brukere ser på eller besøker noder.
5
Lab’er om databasen 1. DBI: Oversikt, noder og egenskaper 2. DBII: Sesjoner og leseeksempler 3. DBIII: Nodekoblinger og tags 4. DBIV: Stemmer og kommentarer
7
Noder Informasjonsenheter. Tillater at samme type egenskaper brukes på forskjellige typer noder. Tabellen node: nodeid – Id’en til denne noden nodetype – Denne nodens type usrid, communityid, registered – Når og hvem som la inn denne noden. Nodetyper: Spor (track, 't') Artister (project, 'p') Sporlister (track list, 'l') Bokser (box, 'b') Brukere (user, 'u') Grupper (comunity, 'c') Genre ('g') Tag ('a') Entitet (entity, 'e')
8
Tabeller: node PK: nodeid FK: usrid, communityid
9
SQL: node Hent alle noder som er spor: SELECT * FROM node WHERE nodetype = ’t’ Resultat: Et par millioner rader…?
10
Rader: node Node nodeidnodetypeusridcommunityidregistered 123t234345May 17… ……………
11
XML: node <node nodeid=”123” nodetype=”t” usrid=”234” communityid=”345” registered=”May 17 2004 08:13PM”/>
12
Noder 2 Tracks, projects, lists, etc Nodes Name, length, links, musical qualities, relationships, etc Metadata/properties
13
Metadatatyper Finnes en ordliste over lovlige metadatatyper i databasen. Tabellen proptype: proptypeid – Id’en til metadatatypen (PK) name – Navnet til metadatatypen (En del kolonner til, mer senere)
14
Tabeller: proptype (forenklet) PK: id
15
Tabeller: proptype (forenklet) proptype proptypeididname… 234label-name… 345track-length… 456intensive-guitar…
16
Koble metadatatyper til noder Kobling mellom node og proptype Tabellen property propid – Id’en til denne egenskapen (PK) nodeid – Id’en til noden egenskapen er knyttet til. nodetype – Typen node proptypeid – Id’en til egenskapstypen egenskapen har. usrid, communityid, registered – Info om når og hvem egenskapen ble opprettet av
17
Tabeller: property
18
SQL: property Alle egenskaper for en gitt node: SELECT * FROM property WHERE nodeid = 123
19
Rader: property propidnodeidnodetypeproptypeidusridcommunityidregistered 456123t234 345May 17… 502123t345234345May 17… 592123t456234345May 17… property
20
SQL: node-property-proptype Hent alle egenskaper for en gitt node, med navn på egenskapstypen. SELECT propid, proptypeid, name FROM property, proptype WHERE nodeid = 123 AND property.proptypeid = proptype.proptypeid
21
Rader: Egenskaper for node 123 propidproptypeidname 456234label-name 502345track-length 592456intensive-guitar
22
Mer om egenskaper Egenskaper (properties) er metadata om en node Viser til en metadatatype (fra proptype) To typer egenskaper: Properties: “Boolske”, tilstede eller ikke. Eks: medium-genre-cd - Er sporlisten en CD? recording-live - Er sporet tatt opp live? Attributes: Tar verdi som parameter. Eks: label-name (tekststreng) - Nodens navn member-community (nodereferanse) - Er noden medlem av et community? Implementert som et arveforhold: Attribute er en spesialisering (subtype/subklasse) av property
23
Attributter Egenskaper som tar en verdi. Kopieres fra property. Tabellen attribute (forenklet): Alle felter fra property: propid, nodeid, nodetype, proptypeid Minus: usrid, communityid, registered. NB! value – Generell strengverdi number - Tallverdi url - URL-verdi datetime - Datoverdi ref – Referanse til annen node.
24
Tabeller: node-property-attribute (forenklet)
25
Koblinger: node-property node PK: nodeid property: PK: propid FK: nodeid (node) proptypeid (proptype) attribute Arver alt (nesten) fra property proptype PK: proptypeid
26
Rader: node- property/attribute propidnodeidnodetypeproptypeidvalue… 456123t567Another…… ……………… attribute proptypeidnamevaluenumber… 567label-name10… …………… proptype
27
XML: Noder og egenskaper <node nodeid=”123” nodetype=”t” usrid=”234” communityid=”345” registered=”May 17 2004 08:13PM”> <attribute propid=”456” proptypeid=”567” value=”Another brick in the wall”/> … … …
28
Mer om egenskapstyper Metadatatyper befinner seg i proptype “Ordliste” for gyldige metadatatyper. Inndelt i hierarkier Generalisert og spesialisert, supertyper og subtyper Eks på et hierarki: instrumentation-acoustic instrumentation-acoustic-strings instrumentation-acoustic-horns instrumentation-acoustic-keys Muliggjør: Spørringer over hele hierarkier. Hierarkiene ligger sortert i proptype En stemme på en subtype er også en stemme på dens supertype.
29
Spesialtabeller Noen egenskaper er ofte brukt, derfor duplisert i egne tabeller: Noders navn: (egenskap) label-name (tabell) name Noders skapere: creator-performer creator Spor i sporsamlinger: tracklist-item tracklistitem Tags på noder: member-tag tag Muliggjør: Lettere oppslag med SQL Mindre ressursbruk
30
Tabeller: creator, name, tracklistitem, tag
31
SQL-eksempler /* Navnet til en vilkårlig node */ SELECT name FROM name WHERE nodeid = 123; /* Navnet til en liste et spor forekommer på*/ SELECT name FROM name, tracklistitem WHERE tracklistitem.trackid = 123 AND tracklistitem.nodeid = name.nodeid;
32
Hjemmelekse Finn nodeid’en til alle spor med navnet ’Another brick in the wall’. (name) Finn alle egenskapene, med navn på type, til en av nodene over. (name, property, proptype) Finn ut hva en JOIN er. Finn alle spor, med navn, som forekommer på skiva ’Venus, Texas’. (name, tracklistitem) Vanskelighet: Bare ett query! Tips: Tabeller kan gis alias og opptre flere ganger. Finn artisten, med navn, bak en av nodene med navnet ’Sweet home Alabama’. (name, creator) Vanskelighet: Bare ett query! Oppfør dere pent. Ta med et eple til labansvarlig.
33
Ukas kulturelle innslag “We don’t need no education. We don’t need no thought control. No dark sarcasm in the classroom. Teacher, leave them kids alone!” - Another brick in the Wall, Pink Floyd
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.