Spis treści

Projekt Logiczny

- 1. Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów, etc. w oparciu o zdefiniowany diagram ERD

Diagram ERD:

diagram ERD

Kod SQL:

kod SQL

- 2. Słownik danych

Uzytkownicy – tabela przechowująca dane o użytkownikach systemu

Druzyny - tabela przechowująca dane o drużynach

Uzytkownicy_Druzyna - tabela przechowująca informacje o przyporządkowaniu użytkowników do drużyn

Druzyna_Rozgrywki - tabela przechowująca informacje o przyporządkowaniu drużyn do rozgrywek

Mecze - tabela przechowująca informacje o meczach danych drużyn i w danych rozgrywkach

Rozgrywki - tabela przechowująca informacje o rozgrywkach

Statystyki - tabela przechowująca informacje o statystykach danych drużyn w danych rozgrywkach

Artykuly - tabela przechowująca informacje na temat artykułów na stronie

Cssy - tabela przechowująca informacje o stylach css

Komentarze - tabela przechowująca informacje o komentarzach do artykułów

Style - tabela przechowująca informacje o stylu dla danej drużyny

Trenerzy - tabela przechowująca informacje o trenerach

Zawodnicy - tabela przechowująca informacje o zawodnikach

Uzytkownicy_Zalogowani - tabela przechowująca informacje o zalogowanych uzytkownikach

- 3. Analiza zależności funkcyjnych i normalizacja tabel

1NF - Pierwsza postać normalna

Baza danych jest w pierwszej postaci normalnej, ponieważ wszystkie atrybuty w tabelach bazy danych przyjmują wartość atomiczne.

2NF - Druga postać normalna

Poza tabelami: Uzytkownicy_Druzyna i Druzyna_Rozgrywki wszystkie tabele w bazie danych mają proste klucze główne. Natomiast tabele: Uzytkownicy_Druzyna i Druzyna_Rozgrywki są tabelemi asocjacyjnymi i nie posiadają niekluczowych atrybutów. Ponadto baza spełnia warunek 1NF. Można zatem stwierdzić, że baza jest w drugiej postaci normalnej.

3NF - Trzecia postać normalna

Baza spełnia warunek 1NF i 2NF. Ponadto wszystkie atrybuty w tabelach wchodzących w skład bazy danych zależą w sposób bezpośredni od klucza głównego, czyli nie występują relacje przechodnie. Na tej podstawie można stwierdzić, że baza jest w trzeciej postaci normalnej.

- 4. Projektowanie operacji na danych

Kwerendy w języku SQL dla realizacji funkcji w projekcie:

Rejestracja użytkownika

INSERT INTO Uzytkownicy VALUES (1,"login","haslo","Imie","Nazwisko","e-mail@gmail.com","2011-06-17","2011-06-17",1)

Rejestracja drużyny

INSERT INTO Druzyny VALUES (1,"Druzyna","domena","Miejscowosc","Wojewodztwo","Powiat")

Usuwanie uzytkownika

DELETE FROM Uzytkownicy WHERE Login = "login"; 

Usuwanie druzyny

DELETE FROM Druzyny WHERE Druzyna = "Druzyna"; 

Edycja profilu uzytkownika

UPDATE Uzytkownicy SET Imie = "Inne_Imie", E-mail = "inny_email@gmail.com" WHERE Login = "login");

Logowanie użytkownika

UPDATE Uzytkownicy SET Data_Ost_Zalogowania = "2011-06-19" WHERE Login = "login");
INSERT INTO Zalogowani_Uzytkownicy VALUES(1,"login","123.123.123.123")

Wylogowanie użytkownika

 DELETE FROM Zalogowani_Uzytkownicy WHERE Login = "login"; 

Dodawanie rozgrywek

INSERT INTO Rozgrywki VALUES (4,"Rozgrywki4");

Dodawanie meczu

INSERT INTO Mecze(Mecz_ID,Rozgrywki_ID,Druzyna_Dom,Druzyna_Wyjazd,Data_meczu) VALUES (9,4,"Druzyna1","Druzyna2","2011-06-22");

Edytowanie wyniku meczu

UPDATE Mecze SET Bramki_Dom = 2,Bramki_Wyjazd = 1 WHERE Mecz_ID = 9;

Dodawanie druzyny do statystyk

INSERT INTO Statystyki VALUES(4,0,0,0,0);

Edytowanie statystyk dla druzyny

UPDATE Statystyki SET Wygrane = 1, Punkty = 3 WHERE Druzyna_ID = 9;

Przyporzadkowanie stylu css dla druzyny

INSERT INTO Style VALUES(1,4,2);

Wprowadzanie zawodnikow do druzyny

INSERT INTO Zawodnicy VALUES(1,"Imie_Zawodnika","Nazwisko_Zawodnika",4,11,0);

Dodanie trenera do druzyny

INSERT INTO Trenerzy VALUES(1,"Imie_Trenera","Nazwisko_Trenera",4);

Dodanie artykułu

INSERT INTO Artykuły VALUES(1,"login",4,"Tytuł","Tekst artykułu","2011-06-19");

Dodanie komentarza do artykułu

INSERT INTO Komentarze VALUES(1,"login",1,"Tekst komentarza","2011-06-19");

Pobieranie informacji o użytkownikach

SELECT * FROM Uzytkownicy;

Pobieranie wybranych informacji o meczach danej drużyny rozgrywanych jako gospodarz

SELECT Mecz_ID, Data_meczu,Druzyna_Dom, Druzyna_Wyjazd FROM Mecze WHERE Druzyna_Dom = "Druzyna";

Pobieranie informacji jacy użytkownicy są zalogowani

SELECT * FROM Uzytkownicy_Zalogowani;