Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:dydaktyka:ztb:2011:projekty:trener:projekt_logiczny [2011/06/19 15:51]
ztb2011 utworzono
pl:dydaktyka:ztb:2011:projekty:trener:projekt_logiczny [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-to kod sql do stworzenia ​bazy +====== ​Skrypt tworzący bazę danych ====== 
-slownik + 
-3 analiza postaci normalnych +{{:​pl:​dydaktyka:​ztb:​2011:​projekty:​trener:​create_database.sql|}} 
-4 funkcjonalnosci ​w bazie+ 
 + 
 +Skrypt tworzy tabele, ustala dla nich klucze główne. Dodatkowo dodawane są do bazy przykładowe dane. 
 + 
 +====== ​Słownik danych ====== 
 + 
 +__Abstract__ - tabela abstrakcyjna po której dziedziczą wszystkie tabele ​w bazie danych: 
 + 
 +  * created - integer - id osoby, która stworzyła wpis 
 +  * created_time - date - data kiedy wpis został stworzony 
 +  * modified - integer - id osoby która jako ostatnia modyfikowała wpis 
 +  * modified_time - date - data kiedy wpis został ostatnio zmodyfikowany 
 + 
 +__Match_Set__ - tabela przechowująca statystyki z meczów: 
 +  * mset_id - integer, NOT NULL - id statystyki meczu 
 +  * mset_match - integer - id meczu 
 +  * mset_player - integer - id zawodnika 
 +  * mset_team - integer - id drużyny w której gra zawodnik 
 +  * mset_position - character(1) - pozycja na jakiej gra zawodnik 
 +  * mset_intime - integer - minuta w której zawodnik wszedł na boisko 
 +  * mset_outtime - integer - minuta w której zawodnik zszedł z boiska 
 + 
 +__Notes__ - tabela przechowująca notatki trenera na temat zawodnika:​ 
 + 
 +  * nt_id - integer, NOT NULL - id notatki 
 +  * nt_date - date - data utworzenia notatki 
 +  * nt_text - text - treść notatki 
 +  * nt_usr_id - integer, NOT NULL - id trenera, który stworzył wpis 
 +     
 +__Matches__ - tabela przechowująca dane o rozegranych meczach: 
 +  * mts_id - integer, NOT NULL - id meczu 
 +  * mts_host - integer, NOT NULL - id drużyny gospodarzy 
 +  * mts_guest - integer, NOT NULL - id drużyny gości 
 +  * mts_city - character varying(40) - miasto w którym odbywa się mecz 
 +  * mts_hscore - integer, NOT NULL - ilość bramek strzelonych przez gospodarzy 
 +  * mts_gscore - integer, NOT NULL - ilość bramek strzelonych przez gości 
 +  * mts_hposs - integer - procent posiadania piłki przez gospodarzy 
 +  * mts_gposs - integer - procent posiadania piłki przez gości 
 +  * mts_haccu - integer - skuteczność gospodarzy 
 +  * mts_gaccu - integer - skuteczność gości ​   
 +     
 +__Players__ - tabela przechowująca dane na temat zawodników:​ 
 + 
 +  * pl_id - integer, NOT NULL - id zawodnika 
 +  * pl_birthdate - date - data urodzenia zawodnika 
 +  * pl_city - character varying(30) - miejsca zamieszkania zawodnika 
 +  * pl_footed - character(1) - zmienna opisująca czy zawodnik jest prawo czy lewonożny 
 +  * pl_weight - integer - waga zawodnika 
 +  * pl_speed - integer - szybkość zawodnika 
 +  * pl_mot_perf - integer - osiągi motoryczne 
 +  * pl_goals - integer - ilość bramek strzelonych przez zawodnika 
 +  * pl_matches - integer - ilość meczów, które rozegrał zawodnik 
 +  * pl_ycards - integer - ilość żółtych kartek zdobytych przez zawodnika 
 +  * pl_rcards - integer - ilość czerwonych kartek zdobytych przez zawodnika 
 +  * pl_usr_id - integer NOT NULL - id użytkownika 
 +  * pl_tm_id - integer, NOT NULL - id drużyny 
 +   
 + ​__Roles__ - tabela przechowująca opis ról definiowanych w systemie: 
 + 
 +  * rol_id - integer, NOT NULL - id roli 
 +  * rol_name - character varying(255) - nazwa roli 
 +  * rol_description - character varying(255) - opis roli 
 +     
 +__Stats__ - tabela przechowująca statystyki dotyczące zawodnika:​ 
 + 
 +  * sts_id - integer, NOT NULL - id statystyki 
 +  * sts_match - integer, NOT NULL - id meczu 
 +  * sts_player - integer, NOT NULL - id zawodnika 
 +  * sts_team - integer, NOT NULL - id drużyny 
 +  * sts_event - character(1) - zmienna opisująca rodzaj wpisu (R - czerwona kartka itp) 
 +  * sts_time - integer - minuta w której wydarzenie miało miejsce 
 + 
 +__Teams__ - tabela przechowująca informacje na temat drużyny: 
 + 
 +  * tm_id - integer, NOT NULL - id drużyny 
 +  * tm_name - character varying(40) - nazwa drużyny 
 +  * tm_city - character varying(40) - nazwa miasta 
 + 
 +__Transfers__ - tabela przechowująca informacje na temat zmian drużyny przez zawodnika:​ 
 + 
 +  * trf_id - integer, NOT NULL - id transferu 
 +  * trf_player - integer, NOT NULL - id zawodnika 
 +  * trf_seller - integer, NOT NULL - id poprzedniej drużyny 
 +  * trf_buyer - integer, NOT NULL - id obecnej drużyny 
 + 
 +__User_roles__ - tabela przechowująca informacje na temat roli jaką posiada użytkownik:​ 
 + 
 +  * urol_user_id - integer, NOT NULL - id użytkownika 
 +  * urol_rol_id - integer, NOT NULL  - id roli 
 + 
 +__Users__ - tabela przechowująca informacje na temat użytkowników:​ 
 + 
 +  * usr_id - integer NOT NULL - id użytkownika 
 +  * usr_login - character varying(255),​ NOT NULL - login użytkownika 
 +  * usr_password - character varying(255),​ NOT NULL - hasło użytkownika 
 +  * usr_firstname - character varying(255),​ NOT NULL - imię użytkownika 
 +  * usr_lastname - character varying(255),​NOT NULL - nazwisko użytkownika 
 +  * usr_tm_id - integer NOT NULL - drużyna użytkownika 
 + 
 + 
 +  
 + 
 + 
 +====== 3 Analiza zależności funkcyjnych i normalizacja tabel ====== 
 + 
 +**1FN** - Pierwsza postać normalna ​  
 + 
 +Elementy wszystkich tabel są atomami, atomy są elementarne,​ baza spełnia pierwsza postać normalną. 
 + 
 +**2FN** - Druga postać normalna ​  
 + 
 +Wszystkie tabele spełniają pierwszą postać normalną. Klucze główne składają się z jednego pola. Dodatkowo każdy atrybut w tabeli w pełni zależy od klucza głównego. Tabela fth_users_roles jest tabelą asocjacyjną łączącą id roli oraz id użytkownika,​ nie posiada klucza głównego. Baza spełnia druga postać normalną. 
 + 
 +**3FN** - Trzecia postać normalna  
 + 
 +Wszystkie tabele spełniają 2 i 3 FN oraz nie są zależne przechodnio. 
 + 
 +   
 + 
 +====== 4 Funkcjonalność bazy danych ====== 
 + 
 + ==== Dodawanie użytkownika ==== 
 + 
 +  insert into fth_users values(3,'​Tue May 17 00:00:00 CEST 2011',​3,'​Tue May 17 00:00:00 CEST 2011',​3,'​rmat','​admin','​Radosław','​Matios',​1) 
 +   
 +  
 + ==== Dodawanie drużyny ==== 
 + 
 +  insert into fth_teams values(3,'​Tue May 17 00:00:00 CEST 2011',​3,'​Tue May 17 00:00:00 CEST 2011',​3,'​GTS','​Łeba ') 
 +   
 + ==== Dodawanie meczu ==== 
 + 
 +  insert into fth_matches values(5,'​Tue May 17 00:00:00 CEST 2011',​5,'​Tue May 17 00:00:00 CEST 2011',​5,​17,​8,'​Świętochłowice ',​4,​0,​98,​2,​8,​21) 
 +   
 + 
 +==== Edytowanie użytkownika ==== 
 +  update fth_players set pl_weight=75,​ where pl_id = 27; 
 +   
 +==== Dodawanie statystyki ==== 
 +  insert into fth_stats values(11,'​2011-05-17',​11,'​2011-05-17',​11,​1,​84,​6,'​S',​5);​ 
 +   
 + 
 +==== Pobieranie informacji o zawodniku ​ ==== 
 +  select * from fth_users 
 +  where usr_id = 123; 
 +   
 +==== Pobieranie informacji o drużynie ==== 
 +  select * from fth_teams 
 +  where tm_id  = 321; 
 + 
 +==== Usuwanie meczu ==== 
 +  update fth_players set pl_matches = pl_matches - 1, pl_goals = pl_goals - ( 
 +   
 +  select count(*) from fth_stats  
 +  where sts_match = 1 
 + AND sts_player = 79  
 + AND sts_event ='​G'​),​ 
 +  pl_ycards = pl_ycards - ( 
 +  select count(*) from fth_stats  
 +  where sts_match = 1 
 + AND sts_player = 79  
 + AND sts_event ='​Y'​),​ 
 +  pl_rcards = pl_rcards - ( 
 +  select count(*) from fth_stats  
 +  where sts_match = 1 
 + AND sts_player = 79  
 + AND sts_event ='​R'​) where pl_id =79; 
 +   
 +  delete from fth_match_set where mset_match = 1; 
 +   
 +  delete from fth_stats where sts_match = 1; 
 +   
 +  delete from fth_matches where mts_id = 1; 
 + 
 +==== Dodawanie transferu ==== 
 +  insert into fth_transfers values(9,'​Tue May 17 00:00:00 CEST 2011',​9,'​Tue May 17 00:00:00 CEST 2011',​9,​9,​10,​1) 
 +   
 +==== Dodawanie statystyki meczowej ====  
 +  insert into fth_match_set values(137,'​2011-05-17',​137,'​2011-05-17',​137,​6,​76,​6,'​O',​0,​90);​ 
 + 
 +==== Dodawanie zawodnika ====  
 +  insert into fth_players values(10,'​Tue May 17 00:00:00 CEST 2011',​10,'​Tue May 17 00:00:00 CEST 2011',​10,'​Sun Jun 14 00:00:00 CEST 1998','​Nowogard ','​L',​76,​14,​0,​0,​0,​0,​0,​10,​1);​ 
 + 
 +==== Dodawanie roli ====  
 +  insert into fth_roles values(51,'​TRN','​trainer'​);​ 
  
pl/dydaktyka/ztb/2011/projekty/trener/projekt_logiczny.1308491503.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0