1 / 33

Databasen I

Databasen I. Oversikt, noder og egenskaper. Designmål. XML-lignende struktur Utvidbarhet Aktivitet fra mange brukere Ingen eier data Gjenbruk av data. Musicbrainz. Henter data fra eksisterende DB 1.5 millioner registrerte lydspor Innlagt av brukere Mye ”feil” Spor: Tittel

quito
Download Presentation

Databasen I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • DBI: Oversikt, noder og egenskaper • DBII: Sesjoner og leseeksempler • DBIII: Nodekoblinger og tags • DBIV: Stemmer og kommentarer

  6. 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') Noder

  7. Tabeller: node PK: nodeid FK: usrid, communityid

  8. SQL: node • Hent alle noder som er spor: SELECT * FROM node WHERE nodetype = ’t’ Resultat: Et par millioner rader…?

  9. Rader: node Node

  10. XML: node <nodenodeid=”123” nodetype=”t” usrid=”234” communityid=”345” registered=”May 17 2004 08:13PM”/>

  11. Noder 2 Metadata/properties Nodes Tracks, projects, lists, etc Name, length, links, musical qualities, relationships, etc

  12. 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)

  13. Tabeller: proptype (forenklet) PK: id

  14. Tabeller: proptype (forenklet) proptype

  15. 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

  16. Tabeller: property

  17. SQL: property • Alle egenskaper for en gitt node: SELECT * FROM property WHERE nodeid = 123

  18. Rader: property property

  19. 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

  20. Rader: Egenskaper for node 123

  21. 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

  22. 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.

  23. Tabeller: node-property-attribute (forenklet)

  24. Koblinger: node-property • node • PK: nodeid • property: • PK: propid • FK: • nodeid (node) • proptypeid (proptype) • attribute • Arver alt (nesten) fra property • proptype • PK: proptypeid

  25. Rader: node-property/attribute attribute proptype

  26. XML: Noder og egenskaper <nodenodeid=”123” nodetype=”t” usrid=”234” communityid=”345” registered=”May 17 2004 08:13PM”> <attributepropid=”456” proptypeid=”567” value=”Another brick in the wall”/> … </node> … <proptype> <prop proptypeid=”567” name=”label-name” value=“1” number=“0”/> … </proptype>

  27. 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.

  28. 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

  29. Tabeller: creator, name, tracklistitem, tag

  30. 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;

  31. 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.

  32. 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

More Related