Spis treści

1 Skrypt tworzący bazę danych

create_database.sql

Skrypt tworzy tabele, ustala dla nich klucze główne. Dodatkowo dodawane są do bazy przykładowe dane.

2 Słownik danych

Abstract - tabela abstrakcyjna po której dziedziczą wszystkie tabele w bazie danych:

Match_Set - tabela przechowująca statystyki z meczów:

Notes - tabela przechowująca notatki trenera na temat zawodnika:

Matches - tabela przechowująca dane o rozegranych meczach:

Players - tabela przechowująca dane na temat zawodników:

Roles - tabela przechowująca opis ról definiowanych w systemie:

Stats - tabela przechowująca statystyki dotyczące zawodnika:

Teams - tabela przechowująca informacje na temat drużyny:

Transfers - tabela przechowująca informacje na temat zmian drużyny przez zawodnika:

User_roles - tabela przechowująca informacje na temat roli jaką posiada użytkownik:

Users - tabela przechowująca informacje na temat użytkowników:

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');