Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:ztb:2011:projekty:trener:projekt_logiczny [2011/06/19 19:20]
ztb2011
pl:dydaktyka:ztb:2011:projekty:trener:projekt_logiczny [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== 1 Skrypt tworzący bazę danych ====== ====== 1 Skrypt tworzący bazę danych ======
  
-{{:​pl:​dydaktyka:​ztb:​2011:​projekty:​trener:​create_data_base.sql|}}+{{:​pl:​dydaktyka:​ztb:​2011:​projekty:​trener:​create_database.sql|}}
  
  
Linia 10: Linia 10:
 __Abstract__ - tabela abstrakcyjna po której dziedziczą wszystkie tabele w bazie danych: __Abstract__ - tabela abstrakcyjna po której dziedziczą wszystkie tabele w bazie danych:
  
-  * created - integer +  * created - integer ​- id osoby, która stworzyła wpis 
-  * created_time - date +  * created_time - date - data kiedy wpis został stworzony 
-  * modified - integer +  * modified - integer ​- id osoby która jako ostatnia modyfikowała wpis 
-  * modified_time - date+  * modified_time - date - data kiedy wpis został ostatnio zmodyfikowany
  
 __Match_Set__ - tabela przechowująca statystyki z meczów: __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
  
-  * mset_id ​integer NOT NULL, +__Notes__ ​tabela przechowująca notatki trenera na temat zawodnika:
-  * mset_match - integer +
-  * mset_player - integer +
-  * mset_team - integer +
-  * mset_position - character(1) +
-  * mset_intime - integer +
-  * mset_outtime - integer+
  
 +  * 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 ====== ====== 3 Analiza zależności funkcyjnych i normalizacja tabel ======
  
-1FN - Pierwsza postać normalna  ​+**1FN** - Pierwsza postać normalna  ​
  
-Elementy wszystkich tabel są atomami, atomy są elementarne.+Elementy wszystkich tabel są atomami, atomy są elementarne, baza spełnia pierwsza postać normalną.
  
-2FN - Druga postać normalna  ​+**2FN** - Druga postać normalna  ​
  
-Wszystkie tabele spełniają pierwszą postać normalną, dodatkowo ​każdy atrybut w tabeli w pełni zależy od klucza głównego. ​+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 ​+**3FN** - Trzecia postać normalna ​
  
 Wszystkie tabele spełniają 2 i 3 FN oraz nie są zależne przechodnio. Wszystkie tabele spełniają 2 i 3 FN oraz nie są zależne przechodnio.
 +
 +  ​
  
 ====== 4 Funkcjonalność bazy danych ====== ====== 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.1308504044.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