VYSOKÁ ŠKOLA BÁŇSKÁ – TECHNICKÁ UNIVERZITA OSTRAVA
INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY
Aukční síň (semestrální projekt) ZS 2009-2010
Analýza Číslo skupiny: Členové skupiny: (login, příjmení, jméno)
Implementace Tým 2
1. 2.
1. DUB080, Dubec, Patrik 2. PLU042, Plucar, Jan
3. 4.
3. NAH012, Náhlý, Jan 4. Han377, Hanták, Petr 5. FOL179, Folber, Ondřej
1
Analýza datového skladu
1.1 Úvod Majitele internetové aukční síně zajímá jak moc se daří aukcím v jednotlivých krajích a obcích a jak moc dané aukce vydělaly jejich zadavatelům. Dále ho zajímá spolehlivost samotných uživatelů - tedy počet zákazů prodeje a nákupů, které získali a jakých hodnocení se jim dostalo. Přehled rolí uživatelů je také samozřejmostí.
1.2 Datový slovník Tabulka Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel
Pořadí 1 2 3 4 5 6 7 8 9
Název id_uzivatel jmeno prijmeni ulice cp Id_obec nick heslo id_role
Typ Velikost Klíč Null Index aut. číslo 6 primární Ne Ano Text 20 ne Ne Ne Text 30 ne Ne Ne Text 30 ne Ano Ne Číslo 6 ne Ne Ne Text 30 cizí Ne Ne Text 20 ne Ne Ne Text 20 ne Ne Ne Číslo 6 cizí Ne Ano
Uživatel
10
datum_reg
datumčas
ne
Ne
Ne
Datum registrace
Uživatel
11
aktivni
1/0
ne
Ne
Ne
1 - aktivní / 0 - neověřena reg.
Role Role Zakaz Zakaz Zakaz Zakaz Zakaz
1 2 1 2 3 4 5
id_role nazev id_zakaz Id_uzivatel popis zakaz_prodeje zakaz_nakupu
aut. číslo Text aut. číslo Číslo Text Bool Bool
primární ne primární cizí ne Ne Ne
Ne Ne Ne Ne Ne Ne Ne
Ano Ne Ano Ano Ne Ne Ne
Jednoznačné ID role Název role Jednoznačné ID zákazu ID uživatele Důvod zákazu Zákaz prodeje Zákaz nákupu
Zakaz
6
datum_zakazu
datumčas
ne
Ne
Ano
ID nadřazené kategorie
Zakaz Kategorie Kategorie Kategorie Kategorie
7 1 2 3 4
trvani id_kategorie nazev popis id_uzivatel
Číslo aut. číslo Text Text Číslo
3 6 50 300 6
Ne primární ne ne cizí
Ne Ne Ne Ne Ne
Ne Ano Ne Ne Ne
Kategorie
5
uroven
Číslo
1
ne
Trvání zákazu ve dnech Jednoznačné ID kategorie Název kategorie Popis kategorie ID zakladatele kategorie První úroveň, vyplňuje se jen u základních kategorií
Kategorie Hodnoceni Hodnoceni Hodnoceni
6 1 2 3
id_predek id_hodnoceni id_kdo id_komu
Číslo aut. číslo Číslo Číslo
6 6 6 6
cizí primární cizí cizí
6 30 6 6 300
Ano Ano Ne Ne Ne Ne
Ano Ano Ano Ano
Popis Jednoznačné ID uživatele Jméno uživatele Příjmení uživatele Ulice bydliště Číslo popisné Místo bydliště Přezdívka pro přihlášení Heslo pro přihlášení ID role uživatele
ID nadřazené kategorie Jednoznačné ID hodnocení ID hodnotícího uživatele ID hodnoceného uživatele
Hodnoceni Hodnoceni Hodnoceni Hodnoceni Hodnoceni Předmět Předmět Předmět Předmět Předmět Obrazek
4 5 6 7 8 1 2 3 4 5 1
id_aukce text typ akce datum id_predmet id_uzivatel nazev popis stav id_obrazek
Číslo Text Bool Bool datumčas aut. číslo Číslo Text Text Bool aut. číslo
6 300
Obrazek
2
id_predmet
Číslo
Obrazek Obrazek Obrazek Aukce Aukce Aukce Aukce Aukce Aukce Aukce Aukce Prihoz
3 4 5 1 2 3 4 5 6 7 8 1
Prihoz
2
id_aukce
Číslo
6
cizí
Ne
Ano
Prihoz Prihoz Prihoz Transakce
3 4 5 1
id_uzivatel hodnota cas id_transakce
Číslo Číslo datumčas aut. číslo
6 6 6
cizí ne ne primární
Ne Ne Ne Ne
Ne Ne Ne Ano
Transakce
2
id_aukce
Číslo
6
cizí
Ne
Ne
Transakce Transakce Transakce Transakce Poptavka
3 4 5 6 1
id_prodavajici id_kupujici id_doprava id_platba id_poptavka
Číslo Číslo Číslo Číslo aut. Číslo
6 6 6 6 6
cizí cizí cizí cizí primární
Ne Ne Ne Ne Ne
Ano Ano Ne Ne Ano
Poptavka
2
id_kategorie
Číslo
6
cizí
Ne
Ano
Poptavka Poptavka Poptavka
3 4 5
id_uzivatel nazev text
Číslo Text Text
6 100 300
cizí ne ne
Ne Ne Ne
Ano Ne Ne
nazev Text popis Text obrazek Text id_aukce aut. Číslo id_predmet Číslo id_uzivatel Číslo nazev Text zacatek Číslo cena_vyvolavaci Číslo cena_kupTed Číslo konec Text id_prihoz aut. Číslo
6
cizí ne ne Ne Ne primární cizí ne ne ne primární
Ne Ne Ne Ne Ne Ne Ne Ne Ne Ne Ne
Ne Ne Ne Ne Ano Ano Ano Ne Ne Ne Ano
6
cizí
Ne
Ano
6 6 100 300
100 300 255 6 6 6 30 6 15 15 30 6
ne Ne Ne ne Ne Ne ne Ne Ne primární Ne Ano cizí Ne Ne cizí Ne Ano ne Ne Ne ne Ne Ne Ne Ne Ne Ne Ano Ne ne Ne Ne primární Ne Ano
ID aukce Text hodnocení 1 Pozitivní / 0 Negativní 1 Kupující / 0 Prodávající Datum vložení hodnocení Jednoznačné ID předmětu ID uživatele, který ho vložil Název předmětu Popis předmětu 1 nový / 0 použitý Jednoznačné ID obrázku ID předmětu, ke které se obrázek váže Název obrázku Popis obrázku URL souboru Jednoznačné ID aukce ID předmětu aukce ID zakladatele Název aukce Začátek aukce Vyvolávací cena aukce „Kup teď“ cena Konec aukce Jednoznačné ID příhozu ID aukce, ve které se přihazuje ID přihazovatele Hodnota příhozu Čas příhozu Jednoznačné ID transakce ID úspěšně ukončené aukce ID prodávajícího ID kupujícího Realizovaná doprava Realizovaná platba Jednoznačné ID poptávky ID kategorie, ve které se předmět nachází ID uživatele, který ho vložil Název předmětu Popis předmětu
Poptavka Doprava Doprava Doprava Platba Platba
6 1 2 3 1 2
datum id_doprava nazev cena id_platba nazev
datumčas aut. Číslo Text Číslo aut. Číslo Text
6 20 5 6 50
Rizeni
1
id_uzivatel
Číslo
Rizeni
2
id_kategorie
Kategorizace
1
Kategorizace
ne primární ne ne primární ne
Ne Ne Ne Ne ne ne
Ne Ano Ne Ne Ano Ne
1 nový / 0 použitý Jednoznačné ID dopravy Název možnosti dopravy Cena dopravy Jednoznačné ID platby Název platby
6
Primární, Ne cizí
Ano
Jednoznačné ID uzivatele
Číso
6
Primární, Ne cizí
Ne
ID kategorie, kterou řídí
id_predmet
Číslo
6
Primární, Ne cizí
Ano
Jednoznačné ID předmětu
2
id_kategorie
Číso
6
Primární, Ne cizí
Ano
ID kategorie, do které patří
Kraj Kraj Obec Obec Obec Obec
1 2 1 2 3 4
id_kraj nazev id_obec id_kraj psc nazev
aut. Číslo Text aut. Číslo Číslo Číslo Text
6 100 6 6 5 100
primární ne primární cizí ne ne
Ne Ne ne ne ne ne
Ano Ne Ano Ano Ne Ne
Jednoznačné ID kraje Název kraje Jednoznačné ID obce ID kraje Poštovní směrovací číslo Název obce
Dopravovani
1
id_aukce
Číslo
6
Primární, Ne cizí
Ano
ID aukce
Dopravovani
2
id_doprava
Číslo
6
Primární, Ne cizí
Ne
ID dopravy
Placeni
1
id_aukce
Číslo
6
Primární, Ne cizí
Ano
ID aukce
Placeni
2
id_platba
Číslo
6
Primární, Ne cizí
Ne
ID platby
1.3 Rozdělení na dimenze a fakty Tabulka Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel Uživatel
Pořadí 1 2 3 4 5 6 7 8 9 10 11
Název id_uzivatel jmeno prijmeni ulice cp Id_obec nick heslo id_role datum_reg aktivni
Popis Jednoznačné ID uživatele Jméno uživatele Příjmení uživatele Ulice bydliště Číslo popisné Místo bydliště Přezdívka pro přihlášení Heslo pro přihlášení ID role uživatele Datum registrace 1 registrace ověřena…
Potřebujeme do DS?
D/F/A
Ano, klíč Ano, atribut Ano, atribut Ano, atribut Ano, atribut Ano, klíč Ano, atribut Ne Ano, klíč Ano Ano
D A A A A D A x D D F
Role Role Zakaz Zakaz Zakaz Zakaz Zakaz Zakaz Zakaz Kategorie Kategorie Kategorie Kategorie
1 2 1 2 3 4 5 6 7 1 2 3 4
nazev id_role id_zakaz Id_uzivatel popis zakaz_prodeje zakaz_nakupu datum_zakazu trvani id_kategorie nazev popis id_uzivatel
Název role Jednoznačné ID role Jednoznačné ID zákazu ID uživatele Důvod zákazu Zákaz prodeje Zákaz nákupu Datum vystavení zákazu Trvání zákazu ve dnech Jednoznačné ID kategorie Název kategorie Popis kategorie ID zakladatele kategorie První úroveň, vyplňuje se jen u základních kategorií
Ano, atribut Ano, klíč Ano, klíč Ano, klíč Ne Ano Ano Ne Ne Ano, klíč Ano, atribut Ne Ano, klíč
A D D D X F F X X D A X D
Kategorie
5
uroven
Ne
X
Kategorie Hodnoceni Hodnoceni Hodnoceni Hodnoceni Hodnoceni Hodnoceni Hodnoceni Hodnoceni Předmět Předmět Předmět Předmět Předmět Obrazek Obrazek Obrazek Obrazek Obrazek Aukce Aukce Aukce Aukce Aukce Aukce Aukce Aukce Prihoz Prihoz
6 1 2 3 4 5 6 7 8 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 6 7 8 1 2
id_predek ID nadřazené kategorie id_hodnoceni Jednozn. ID hodnocení id_kdo ID hodnotícího uživatele id_komu ID hodnoceného uživatele id_aukce ID aukce text Text hodnocení typ 1 Pozitivní / 0 Negativní akce 1 Kupující / 0 Prodávající datum Datum vložení hodnocení id_predmet Jednoznačné ID předmětu id_uzivatel ID uživ., který ho vložil nazev Název předmětu popis Popis předmětu stav 1 nový / 0 použitý id_obrazek Jednoznačné ID obrázku id_predmet ID předmětu k obr. nazev Název obrázku popis Popis obrázku obrazek URL souboru id_aukce Jednoznačné ID aukce id_predmet ID předmětu aukce id_uzivatel ID zakladatele nazev Název aukce zacatek Začátek aukce cena_vyvolavaci Vyvolávací cena aukce cena_kupTed „Kup teď“ cena konec Konec aukce id_prihoz Jednoznačné ID příhozu id_aukce ID aukce
Ne Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ne Ano Ano Ne Ano, klíč Ano, klíč Ano, atribut Ne Ano Ano, klíč Ano, klíč Ne Ne Ne Ano, klíč Ano, klíč Ano, klíč Ne A Ano Ne Ano Ano, klíč Ano, klíč
X D D D D X F F x D D A x F D D x x x D D D X D F X D D D
Prihoz Prihoz Prihoz Transakce Transakce Transakce Transakce Transakce Transakce Poptavka Poptavka Poptavka Poptavka Poptavka Poptavka Doprava Doprava Doprava Platba Platba Rizeni Rizeni Kategorizace Kategorizace Kraj Kraj Obec Obec Obec Obec Dopravovani Dopravovani Placeni Placeni
3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 1 2 1 2 1 2 1 2 1 2 3 4 1 2 1 2
id_uzivatel hodnota cas id_transakce id_aukce id_prodavajici id_kupujici id_doprava id_platba id_poptavka id_kategorie id_uzivatel nazev text datum id_doprava nazev cena id_platba nazev id_uzivatel id_kategorie id_predmet id_kategorie id_kraj nazev id_obec id_kraj psc nazev id_aukce id_doprava id_aukce id_platba
ID přihazovatele Hodnota příhozu Čas příhozu Jednoznačné ID transakce ID úspěšně uk. aukce ID prodávajícího ID kupujícího Realizovaná doprava Realizovaná platba Jednoznačné ID poptávky ID kategorie předm. ID uživatele - vložil Název předmětu Popis předmětu Datum poptávky Jednoznačné ID dopravy Název možnosti dopravy Cena dopravy Jednoznačné ID platby Název platby Jednoznačné ID uzivatele ID kategorie, kterou řídí Jednoznačné ID předmětu ID kategorie Jednoznačné ID kraje Název kraje Jednoznačné ID obce ID kraje Poštovní směrovací číslo Název obce ID aukce ID dopravy ID aukce ID platby
Ano, klíč Ano Ano Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, atribut Ne Ne Ano, klíč Ano, atribut A Ano, klíč Ano, atribut Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, klíč Ano, atribut Ano, klíč Ano, klíč Ano, atribut Ano, atribut Ano, klíč Ano, klíč Ano, klíč Ano, klíč
D F F D D D D D D D D D A X X D A F D A D D D D D A D D A A D D D D
1.4 Datová pumpa Název
id_obec id_role aktivni datum_reg id_role nazevRole id_zakaz
Popis Jednoznačné ID uživatele Jméno uživatele Příjmení uživatele Ulice bydliště Číslo popisné Přezdívka pro přihlášení Jednoznačné ID uživatele Jednoznačné ID Obce ID role uživatele 1 registrace ověřena… Datum registrace ID role uživatele Název role Jednoznačné ID zákazu
idObec
Jednoznačné ID obce
D_Obec.id_obec=Obec.id_obec
idKraj psc nazev
Jednoznačné ID kraje PSČ Název obce
D_Obec.id_kraj = Obec.id_kraj D_Obec.psc =Obec.psc D_Obec.nazev_obce = Obec.nazev
id_uzivatel jmeno prijmeni ulice cp nick id_uzivatel
Pravidla
D_Uzivatel.id_uzivatel = aspnetUsers .id_uzivatel D_Uzivatel.jmeno = aspnetUsers.jmeno D_Uzivatel.prijmeni = aspnetUsers.prijmeni D_Uzivatel.ulice = aspnetUsers. Ulice D_Uzivatel.cp = aspnetUsers.cp D_Uzivatel.nick = aspnetUsers.nick F_Uzivatel.id_uzivatel = aspnetUsers .id_uzivatel
F_Uzivatel.id_obec = aspnetUsers.id.obec F_Uzivatel.id_role = Role.id_role F_Uzivatel.aktivni = aktivni F_Uzivatel.id_datum = datum_reg D_Role.id_role = Role.id_role D_Role.nazev_role = Role.nazev F_ZakazProdeje.id_zakaz = Zakaz.id_zakaz F_ZakazProdeje.zakaz_prodeje = zakaz_prodeje Zákaz prodeje Count(Zakaz.zakaz_prodeje) id_zakaz Jednoznačné ID zákazu F_ZakazNakupu.id_zakaz = Zakaz.id_zakaz F_ZakazNakupu.zakaz_nakupu = zakaz_nakupu Zákaz nákupu Count(Zakaz.zakaz_nakupu) id_hodnoceni Jednozn. ID hodnocení F_Hodnoceni.id_hodnoceni = Hodnoceni.hodnoceni id_kdo ID hodnotícího uživatele F_Hodnoceni.id_kdo = Hodnoceni.id_kdo ID hodnoceného id_komu F_Hodnoceni.id_komu = Hodnoceni.id_komu uživatele typ 1 Pozitivní / 0 Negativní F_Hodnoceni.typ_hodnoceni = Hodnoceni. Typ 1 Kupující / 0 akce F_Hodnoceni.akce = Hodnoceni.akce Prodávající id_aukce Jednoznačné ID aukce F_Aukce.id_aukce = Aukce. id_aukce id_predmet ID předmětu aukce F_Aukce.id_predmet = Aukce. id_predmet zacatek Začátek aukce F_Aukce.zacatek_aukce = Aukce.zacatek cena_vyvolavaci Vyvolávací cena aukce F_Aukce.cena_vyvolavaci = Aukce.cena_vyvolavaci konec Konec aukce F_Aukce.konec_aukce = Aukce.konec id_prihoz Jednoznačné ID příhozu F_Aukce.id_prihoz = Aukce.id_prihoz hodnota Hodnota příhozu F_Aukce.hodnota_prihoz = MAX (Aukce.hodnota) cas Čas příhozu F_Aukce.cas_prihoz = MAX (Aukce.cas) id_kraj Jednoznačné ID kraje D_Kraj.id_kraj =Kraj. id.kraj nazev Název kraje D_Kraj.nazev_kraje =Kraj. nazev
1.5 Dimenze D_Role (idRole, nazev) D_Kraj (idKraj, nazev) D_Obec (idObec, nazev) D_Uzivatel (idUzivatel, jmeno, prameni, psc, nick, aktivni) D_Datum (idDatum, denvmes, tyden, mesic, kvartal, rok, den_tyd)
1.6 Fakty aktivni – z tabulky Uzivatel, informace o tom, jestli je uživatel ještě aktivní, anebo je deaktivován cena_vyvolavaci – z tabulky Aukce, cena, od které se začíná dražit stav_predmet – z tabulky Predmet, stav, v jakém se předmět nachází (nový, starý,použitý,…) cas_prihoz – z tabulky Prihoz, cas posledního příhozu hodnota_prihoz – z tabulky Prihoz, hodnota posledního příhozu typ_hodnoceni – z tabulky Hodnoceni, pozitivní 1/0 nebo negativní akce – z tabulky Hodnoceni, jestli hodnotil nakupující 1/0 nebo prodávající zakaz_prodeje – z tabulky Zakaz, jestli je zakázáno prodávat 1/0 nebo nebo zakaz_nakupu – z tabulky Zakaz, jestli je zakázáno nakupovat 1/0 nebo ne
1.7 ROLAP
Budeme evidovat (zjišťovat): 1. Kolik dal jaký uživatel hodnocení jinému uživateli (to např. z tohoto důvodu: Když uživatel A je nespolehlivý uživatel a má hodně negativních komentářů, rádi bychom zamezili tomu, aby si tyto negativní komentáře vyvažoval sám pozitivními komentáři z jiného účtu jako uživatel B)
sloupce: userName (podle idKomu) řádky: userName (podle idKdo) data: hodnoceni count 2. Kolik uživatel vydělal za všechny své aukce řádky: data:
userName (podle idUser z D_User)
p_hodnota
3. Kolik založil každý uživatel aukcí řádky: data:
userName (podle idUser z D_User)
F aukce count
4. Kolik proběhlo aukcí v obci (filtrování podle krajů)
řádky: data: Filtr
nazev (podle idObec z D_Obec)
F aukce count nazev (podle idKraj z D_Kraj)
5. Součty rolí (kolik je administrátorů, moderátorů, běžných uživatelů) sloupce: roleName (podle idRole z D_Role) řádky: userName (podle UserId z D_Uzivatel) Data F uzivatel count
6. Počet zakázaných uživatelů na nákup řádky: Data
userName (podle UserId z D_Uzivatel) ZakazNakupu count
7. Počet zakázaných uživatelů na prodej řádky: Data
userName (podle UserId z D_Uzivatel) ZakazProdeje count
8. Počet aktivních uživatelů
řádky: Data
userName (podle UserId z D_Uzivatel) Aktivni
9. Suma minimálních možných výdělků z aukcí u uživatele
řádky: Data
userName (podle UserId z D_Uzivatel) Cena vyvolavaci
1.8 Aditivita faktů aktivni - aditivní cena_vyvolavaci - semiaditivní stav_predmet - semiaditivní hodnota_prihoz – semiaditivní typ_hodnoceni – semiaditivní akce - semiaditivní zakaz_prodeje – semiaditivní zakaz_nakupu – semiaditivní
1.9 Množina omezení na dotazy DO = { ((stav_predmet, hodnota_prihozu, typ_hodnoceni, stav_predmet, typ_hodnoceni, akce, zakaz_prodeje, zakaz_nakupu) (D-Role) ( sum, max, min, avg, count)), ((stav_predmet, hodnota_prihozu, typ_hodnoceni, stav_predmet, typ_hodnoceni, akce, zakaz_prodeje, zakaz_nakupu) (D-Uzivatel, D-Obec, D-Kraj) (max, min, avg, count)), ((cena_vyvolavaci)(D-Role, D-Uzivatel)(sum, max,min, avg, count)) }
1.10 Hierarchické struktury D_Kraj – D_Obec 1:N