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 Implementace Číslo skupiny: Tým 2 Členové skupiny: (login, příjmení, jméno) 1. 1. DUB080, Dubec, Patrik 2. 2. PLU042, Plucar, Jan 3. 3. NAH012, Náhlý, Jan 4. 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 Pořadí Název Typ Velikost Klíč Null Index Popis Uživatel 1 id_uzivatel aut. číslo 6 primární Ne Ano Jednoznačné ID uživatele Uživatel 2 jmeno Text 20 ne Ne Ne Jméno uživatele Uživatel 3 prijmeni Text 30 ne Ne Ne Příjmení uživatele Uživatel 4 ulice Text 30 ne Ano Ne Ulice bydliště Uživatel 5 cp Číslo 6 ne Ne Ne Číslo popisné Uživatel 6 Id_obec Text 30 Ne Ne Místo bydliště Uživatel 7 nick Text 20 ne Ne Ne Přezdívka pro přihlášení Uživatel 8 heslo Text 20 ne Ne Ne Heslo pro přihlášení Uživatel 9 id_role Číslo 6 Ne Ano ID role uživatele 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 1 id_role aut. číslo 6 primární Ne Ano Jednoznačné ID role Role 2 nazev Text 30 ne Ne Ne Název role Zakaz 1 id_zakaz aut. číslo 6 primární Ne Ano Jednoznačné ID zákazu Zakaz 2 Id_uzivatel Číslo 6 Ne Ano ID uživatele Zakaz 3 popis Text 300 ne Ne Ne Důvod zákazu Zakaz 4 zakaz_prodeje Bool Ne Ne Ne Zákaz prodeje Zakaz 5 zakaz_nakupu Bool Ne Ne Ne Zákaz nákupu Zakaz 6 datum_zakazu datumčas ne Ne Ano ID nadřazené kategorie Zakaz 7 trvani Číslo 3 Ne Ne Ne Trvání zákazu ve dnech Kategorie 1 id_kategorie aut. číslo 6 primární Ne Ano Jednoznačné ID kategorie Kategorie 2 nazev Text 50 ne Ne Ne Název kategorie Kategorie 3 popis Text 300 ne Ne Ne Popis kategorie Kategorie 4 id_uzivatel Číslo 6 Ne Ne ID zakladatele kategorie Kategorie 5 uroven Číslo 1 ne Ano Ano První úroveň, vyplňuje se jen u základních kategorií Kategorie 6 id_predek Číslo 6 Ne Ano ID nadřazené kategorie Hodnoceni 1 id_hodnoceni aut. číslo 6 primární Ne Ano Jednoznačné ID hodnocení Hodnoceni 2 id_kdo Číslo 6 Ne Ano ID hodnotícího uživatele Hodnoceni 3 id_komu Číslo 6 Ne Ano ID hodnoceného uživatele
Hodnoceni 4 id_aukce Číslo 6 Ne Ne ID aukce Hodnoceni 5 text Text 300 ne Ne Ne Text hodnocení Hodnoceni 6 typ Bool ne Ne Ne 1 Pozitivní / 0 Negativní Hodnoceni 7 akce Bool Ne Ne Ne 1 Kupující / 0 Prodávající Hodnoceni 8 datum datumčas Ne Ne Ano Datum vložení hodnocení Předmět 1 id_predmet aut. číslo 6 primární Ne Ano Jednoznačné ID předmětu Předmět 2 id_uzivatel Číslo 6 Ne Ano ID uživatele, který ho vložil Předmět 3 nazev Text 100 ne Ne Ne Název předmětu Předmět 4 popis Text 300 ne Ne Ne Popis předmětu Předmět 5 stav Bool ne Ne Ne 1 nový / 0 použitý Obrazek 1 id_obrazek aut. číslo 6 primární Ne Ano Jednoznačné ID obrázku Obrazek 2 id_predmet Číslo 6 Ne Ano ID předmětu, ke které se obrázek váže Obrazek 3 nazev Text 100 ne Ne Ne Název obrázku Obrazek 4 popis Text 300 ne Ne Ne Popis obrázku Obrazek 5 obrazek Text 255 ne Ne Ne URL souboru Aukce 1 id_aukce aut. Číslo 6 primární Ne Ano Jednoznačné ID aukce Aukce 2 id_predmet Číslo 6 Ne Ne ID předmětu aukce Aukce 3 id_uzivatel Číslo 6 Ne Ano ID zakladatele Aukce 4 nazev Text 30 ne Ne Ne Název aukce Aukce 5 zacatek Číslo 6 ne Ne Ne Začátek aukce Aukce 6 cena_vyvolavaci Číslo 15 Ne Ne Ne Vyvolávací cena aukce Aukce 7 cena_kupted Číslo 15 Ne Ano Ne Kup teď cena Aukce 8 konec Text 30 ne Ne Ne Konec aukce Prihoz 1 id_prihoz aut. Číslo 6 primární Ne Ano Jednoznačné ID příhozu Prihoz 2 id_aukce Číslo 6 Ne Ano ID aukce, ve které se přihazuje Prihoz 3 id_uzivatel Číslo 6 Ne Ne ID přihazovatele Prihoz 4 hodnota Číslo 6 ne Ne Ne Hodnota příhozu Prihoz 5 cas datumčas ne Ne Ne Čas příhozu Transakce 1 id_transakce aut. číslo 6 primární Ne Ano Jednoznačné ID transakce Transakce 2 id_aukce Číslo 6 Ne Ne ID úspěšně ukončené aukce Transakce 3 id_prodavajici Číslo 6 Ne Ano ID prodávajícího Transakce 4 id_kupujici Číslo 6 Ne Ano ID kupujícího Transakce 5 id_doprava Číslo 6 Ne Ne Realizovaná doprava Transakce 6 id_platba Číslo 6 Ne Ne Realizovaná platba Poptavka 1 id_poptavka aut. Číslo 6 primární Ne Ano Jednoznačné ID poptávky Poptavka 2 id_kategorie Číslo 6 Ne Ano ID kategorie, ve které se předmět nachází Poptavka 3 id_uzivatel Číslo 6 Ne Ano ID uživatele, který ho vložil Poptavka 4 nazev Text 100 ne Ne Ne Název předmětu Poptavka 5 text Text 300 ne Ne Ne Popis předmětu
Poptavka 6 datum datumčas ne Ne Ne 1 nový / 0 použitý Doprava 1 id_doprava aut. Číslo 6 primární Ne Ano Jednoznačné ID dopravy Doprava 2 nazev Text 20 ne Ne Ne Název možnosti dopravy Doprava 3 cena Číslo 5 ne Ne Ne Cena dopravy Platba 1 id_platba aut. Číslo 6 primární ne Ano Jednoznačné ID platby Platba 2 nazev Text 50 ne ne Ne Název platby Rizeni 1 id_uzivatel Číslo 6 Rizeni 2 id_kategorie Číso 6 Kategorizace 1 id_predmet Číslo 6 Kategorizace 2 id_kategorie Číso 6 Ne Ano Jednoznačné ID uzivatele Ne Ne ID kategorie, kterou řídí Ne Ano Jednoznačné ID předmětu Ne Ano ID kategorie, do které patří Kraj 1 id_kraj aut. Číslo 6 primární Ne Ano Jednoznačné ID kraje Kraj 2 nazev Text 100 ne Ne Ne Název kraje Obec 1 id_obec aut. Číslo 6 primární ne Ano Jednoznačné ID obce Obec 2 id_kraj Číslo 6 ne Ano ID kraje Obec 3 psc Číslo 5 ne ne Ne Poštovní směrovací číslo Obec 4 nazev Text 100 ne ne Ne Název obce Dopravovani 1 id_aukce Číslo 6 Dopravovani 2 id_doprava Číslo 6 Placeni 1 id_aukce Číslo 6 Placeni 2 id_platba Číslo 6 Ne Ano ID aukce Ne Ne ID dopravy Ne Ano ID aukce Ne Ne ID platby 1.3 Rozdělení na dimenze a fakty Tabulka Pořadí Název Popis Potřebujeme do DS? D/F/A Uživatel 1 id_uzivatel Jednoznačné ID uživatele Ano, klíč D Uživatel 2 jmeno Jméno uživatele Ano, atribut A Uživatel 3 prijmeni Příjmení uživatele Ano, atribut A Uživatel 4 ulice Ulice bydliště Ano, atribut A Uživatel 5 cp Číslo popisné Ano, atribut A Uživatel 6 Id_obec Místo bydliště Ano, klíč D Uživatel 7 nick Přezdívka pro přihlášení Ano, atribut A Uživatel 8 heslo Heslo pro přihlášení Ne x Uživatel 9 id_role ID role uživatele Ano, klíč D Uživatel 10 datum_reg Datum registrace Ano D Uživatel 11 aktivni 1 registrace ověřena Ano F
Role 1 nazev Název role Ano, atribut A Role 2 id_role Jednoznačné ID role Ano, klíč D Zakaz 1 id_zakaz Jednoznačné ID zákazu Ano, klíč D Zakaz 2 Id_uzivatel ID uživatele Ano, klíč D Zakaz 3 popis Důvod zákazu Ne X Zakaz 4 zakaz_prodeje Zákaz prodeje Ano F Zakaz 5 zakaz_nakupu Zákaz nákupu Ano F Zakaz 6 datum_zakazu Datum vystavení zákazu Ne X Zakaz 7 trvani Trvání zákazu ve dnech Ne X Kategorie 1 id_kategorie Jednoznačné ID kategorie Ano, klíč D Kategorie 2 nazev Název kategorie Ano, atribut A Kategorie 3 popis Popis kategorie Ne X Kategorie 4 id_uzivatel ID zakladatele kategorie Ano, klíč D Kategorie 5 uroven První úroveň, vyplňuje se jen u základních kategorií Kategorie 6 id_predek ID nadřazené kategorie Ne X Hodnoceni 1 id_hodnoceni Jednozn. ID hodnocení Ano, klíč D Hodnoceni 2 id_kdo ID hodnotícího uživatele Ano, klíč D Hodnoceni 3 id_komu ID hodnoceného uživatele Ano, klíč D Hodnoceni 4 id_aukce ID aukce Ano, klíč D Hodnoceni 5 text Text hodnocení Ne X Hodnoceni 6 typ 1 Pozitivní / 0 Negativní Ano F Hodnoceni 7 akce 1 Kupující / 0 Prodávající Ano F Hodnoceni 8 datum Datum vložení hodnocení Ne x Předmět 1 id_predmet Jednoznačné ID předmětu Ano, klíč D Předmět 2 id_uzivatel ID uživ., který ho vložil Ano, klíč D Předmět 3 nazev Název předmětu Ano, atribut A Předmět 4 popis Popis předmětu Ne x Předmět 5 stav 1 nový / 0 použitý Ano F Obrazek 1 id_obrazek Jednoznačné ID obrázku Ano, klíč D Obrazek 2 id_predmet ID předmětu k obr. Ano, klíč D Obrazek 3 nazev Název obrázku Ne x Obrazek 4 popis Popis obrázku Ne x Obrazek 5 obrazek URL souboru Ne x Aukce 1 id_aukce Jednoznačné ID aukce Ano, klíč D Aukce 2 id_predmet ID předmětu aukce Ano, klíč D Aukce 3 id_uzivatel ID zakladatele Ano, klíč D Aukce 4 nazev Název aukce Ne X Aukce 5 zacatek Začátek aukce A D Aukce 6 cena_vyvolavaci Vyvolávací cena aukce Ano F Aukce 7 cena_kupted Kup teď cena Ne X Aukce 8 konec Konec aukce Ano D Prihoz 1 id_prihoz Jednoznačné ID příhozu Ano, klíč D Prihoz 2 id_aukce ID aukce Ano, klíč D Ne X
Prihoz 3 id_uzivatel ID přihazovatele Ano, klíč D Prihoz 4 hodnota Hodnota příhozu Ano F Prihoz 5 cas Čas příhozu Ano F Transakce 1 id_transakce Jednoznačné ID transakce Ano, klíč D Transakce 2 id_aukce ID úspěšně uk. aukce Ano, klíč D Transakce 3 id_prodavajici ID prodávajícího Ano, klíč D Transakce 4 id_kupujici ID kupujícího Ano, klíč D Transakce 5 id_doprava Realizovaná doprava Ano, klíč D Transakce 6 id_platba Realizovaná platba Ano, klíč D Poptavka 1 id_poptavka Jednoznačné ID poptávky Ano, klíč D Poptavka 2 id_kategorie ID kategorie předm. Ano, klíč D Poptavka 3 id_uzivatel ID uživatele - vložil Ano, klíč D Poptavka 4 nazev Název předmětu Ano, atribut A Poptavka 5 text Popis předmětu Ne X Poptavka 6 datum Datum poptávky Ne X Doprava 1 id_doprava Jednoznačné ID dopravy Ano, klíč D Doprava 2 nazev Název možnosti dopravy Ano, atribut A Doprava 3 cena Cena dopravy A F Platba 1 id_platba Jednoznačné ID platby Ano, klíč D Platba 2 nazev Název platby Ano, atribut A Rizeni 1 id_uzivatel Jednoznačné ID uzivatele Ano, klíč D Rizeni 2 id_kategorie ID kategorie, kterou řídí Ano, klíč D Kategorizace 1 id_predmet Jednoznačné ID předmětu Ano, klíč D Kategorizace 2 id_kategorie ID kategorie Ano, klíč D Kraj 1 id_kraj Jednoznačné ID kraje Ano, klíč D Kraj 2 nazev Název kraje Ano, atribut A Obec 1 id_obec Jednoznačné ID obce Ano, klíč D Obec 2 id_kraj ID kraje Ano, klíč D Obec 3 psc Poštovní směrovací číslo Ano, atribut A Obec 4 nazev Název obce Ano, atribut A Dopravovani 1 id_aukce ID aukce Ano, klíč D Dopravovani 2 id_doprava ID dopravy Ano, klíč D Placeni 1 id_aukce ID aukce Ano, klíč D Placeni 2 id_platba ID platby Ano, klíč D
1.4 Datová pumpa Název Popis Pravidla id_uzivatel Jednoznačné ID uživatele D_Uzivatel.id_uzivatel = aspnetusers.id_uzivatel jmeno Jméno uživatele D_Uzivatel.jmeno = aspnetusers.jmeno prijmeni Příjmení uživatele D_Uzivatel.prijmeni = aspnetusers.prijmeni ulice Ulice bydliště D_Uzivatel.ulice = aspnetusers. Ulice cp Číslo popisné D_Uzivatel.cp = aspnetusers.cp nick Přezdívka pro přihlášení D_Uzivatel.nick = aspnetusers.nick id_uzivatel Jednoznačné ID uživatele F_Uzivatel.id_uzivatel = aspnetusers.id_uzivatel id_obec Jednoznačné ID Obce F_Uzivatel.id_obec = aspnetusers.id.obec id_role ID role uživatele F_Uzivatel.id_role = Role.id_role aktivni 1 registrace ověřena F_Uzivatel.aktivni = aktivni datum_reg Datum registrace F_Uzivatel.id_datum = datum_reg id_role ID role uživatele D_Role.id_role = Role.id_role nazevrole Název role D_Role.nazev_role = Role.nazev id_zakaz Jednoznačné ID zákazu F_ZakazProdeje.id_zakaz = Zakaz.id_zakaz zakaz_prodeje Zákaz prodeje F_ZakazProdeje.zakaz_prodeje = Count(Zakaz.zakaz_prodeje) id_zakaz Jednoznačné ID zákazu F_ZakazNakupu.id_zakaz = Zakaz.id_zakaz zakaz_nakupu Zákaz nákupu F_ZakazNakupu.zakaz_nakupu = 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_komu ID hodnoceného uživatele F_Hodnoceni.id_komu = Hodnoceni.id_komu typ 1 Pozitivní / 0 Negativní F_Hodnoceni.typ_hodnoceni = Hodnoceni. Typ akce 1 Kupující / 0 Prodávající F_Hodnoceni.akce = Hodnoceni.akce 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 idobec Jednoznačné ID obce D_Obec.id_obec=Obec.id_obec idkraj Jednoznačné ID kraje D_Obec.id_kraj = Obec.id_kraj psc PSČ D_Obec.psc =Obec.psc nazev Název obce D_Obec.nazev_obce = Obec.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: data: username (podle idkomu) username (podle idkdo) hodnoceni count 2. Kolik uživatel vydělal za všechny své aukce data: username (podle iduser z D_User) p_hodnota 3. Kolik založil každý uživatel aukcí data: username (podle iduser z D_User) F aukce count 4. Kolik proběhlo aukcí v obci (filtrování podle krajů) 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: Data rolename (podle idrole z D_Role) username (podle UserId z D_Uzivatel) F uzivatel count 6. Počet zakázaných uživatelů na nákup Data username (podle UserId z D_Uzivatel) ZakazNakupu count 7. Počet zakázaných uživatelů na prodej username (podle UserId z D_Uzivatel) Data ZakazProdeje count
8. Počet aktivních uživatelů Data username (podle UserId z D_Uzivatel) Aktivni 9. Suma minimálních možných výdělků z aukcí u uživatele 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