Strukturę poszczególnych tabel oraz to, jakie poszczególne pola tablicy maja typy oraz jakie maja zdefiniowane indeksy oraz klucze pokazuje wcześniejszy podpunkt „Opis tabel”, w którym przedstawiłem rysunki struktury poszczególnych tabel. Jednak nie wszystko, co jest narysowane w tabelkach opisujących tabele może wydawać się jasne, postaram się, więc, po kolei opisać każdą kolumnę w danej tabeli czy jest ona kluczem, jakim jest kluczem i czy ma zdefiniowane indeksy optymalizujące.
Klucz główny (PRIMARY KEY) – jedna lub więcej kolumn tabeli, w których wartości jednoznacznie identyfikują każdą krotkę tabeli. Innymi słowy każda wartość klucza głównego musi być niepowtarzalna, czyli unikatowa.
Klucz obcy (FOREIGN KEY) – kolumna stanowi klucz obcy tabeli, jeżeli występujące w niej wartości są wartościami klucza głównego innej tabeli. Klucz taki może stanowić jedna kolumna lub grupa kolumn. Stosuje się tego typu klucze do łączenia wartości w tabelach.
INDEKS – ogólnie mechanizm indeksów ma na celu podniesienie wydajności projektowanej bazy. W MySql na każdej tabeli można założyć do 32 indeksów a każdy może obejmować do 16 kolumn. I tak: w MySql wyróżnia się 3 rodzaje indeksów.
INDEX(indeksuje każdy rekord w celu przyspieszenia wydajności) – w tabeli wyświetlany jako MUL
UNIQUE(wymaga, by w każdym rzędzie występowały różne wartości) – w tabeli wyświetlany jako UNI
PRIMARY KEY będący szczególnym przypadkiem indeksu UNIQUE – w tabeli wyświetlany jako PRI
Przejdę teraz do opisu poszczególnych pól w każdej tabeli i ich przeznaczenia.
Tabela 1– buildings
building_id - klucz główny tabeli
building_name - jest właśnie nazwą danego budynku(UNIQUE), w tym przypadku np. D, E, G , A, itp. Choć w przypadku innego zespołu budynków mogłaby to być równie dobrze inna nazwa np. serwerownia, biurowy itp.
floor_number - jest liczbą pięter, jakie posiada dany budynek(INDEX)
description - jest opcjonalną do wypełniania kolumną, która może mieć wartość NULL, zawierająca krótką charakterystykę budynku, przydatną np. przy identyfikacji lub zawierającą jakieś szczególnie przydatne informacje
Tabela 2 - computer_types
computer_type_id – klucz główny tabeli
computer_type – przechowuje dostępne typy komputerów , np. serwer, stacja robocza, kontroler domeny, użytkowy itp. (UNIQUE)
Tabela 3 – computers
computer_id – klucz główny tabeli
computer_name – jest to nazwa komputera(UNIQUE), nazwa tworzona jest z nazwy pomieszczenia, w którym jest dany komputer oraz jego adresu IP
computer_type_id – typ komputera, jest to klucz obcy z tabeli computer_types (INDEX)
room_name – nazwa pomieszczenia, w którym znajduje się dany komputer, jest to klucz obcy z tabeli rosom (INDEX)
ip – jest to adres IP komputera (INDEX)
is_poweron – czy komputer jest aktualnie włączony (0/1)
is_busy – czy komputer jest aktualnie zajmowany (0/1)
description – opis komputera, przydatny np. przy opisie serwera, lub komputera który ma jakieś specjalne zastosowanie, kolumna może mieć wartość NULL
Tabela 4 – room_rights
room_right_id – klucz główny
user_id – klucz obcy z tabeli users (INDEX)
room_type_id – klucz obcy z tabeli room_types (INDEX)
Tabela 5 – room_types
room_type_id – klucz główny
room_type – typ pomieszczenia (UNIQUE)
Tabela 6 – rooms
room_id – klucz główny
room_name – nazwa pomieszczenia (UNIQUE)
room_type_id – klucz obcy z tabeli room_types identyfikujący typ pomieszczenia(INDEX)
building_id – klucz obcy z tabeli buildings identyfikujący, w którym budynku znajduje się dane pomieszczenie(INDEX)
floor – na którym piętrzę znajduje się dane pomieszczenie (INDEX)
room_description – opis (nie wymagane)
Tabela 7 – sensor_states
sensor_state_id – klucz główny
room_name – klucz obcy z tabeli rooms identyfikujący pomieszczenie, w którym znajdują się czujniki, każde pomieszczenie może mieć po jednym rodzaju czujnika (fizycznie może mieć ich np. 20 z jednego rodzaju ale do bazy zostaje zapisywana średnia wartość wszystkich czujników znajdujących się w pomieszczeniu) (INDEX)
sensor_type_id – klucz obcy z tabeli sensor_types, identyfikuje typy czujników jakie zawiera dane pomieszczenie (INDEX)
actual – aktualna wartość każdego czujnika( jeżeli wartość ta jest ujemna to znaczy, że czujnik albo jest uszkodzony albo nastąpiło naruszenie zabezpieczeń budynku) (INDEX)
Tabela 8 – sensor_types
sensor_type_id – klucz główny
sensor_type – typ czujnika (UNIQUE)
is_bool – czy jest to czujnik logiczny(TRUE/FALSE) czy też nie
Tabela 9 – user_right_types
user_right_type_id – klucz główny
user_right_type – typy dostępnych zdefiniowanych praw jakie można przydzielić użytkownikowi
Tabela 10 – user_rights
user_right_id – klucz główny tabeli
user_id – klucz obcy z tabeli users identyfikujący użytkownika, dla którego zdefiniowane są prawa (INDEX)
user_right_type_id – klucz obcy z tabeli user_right_types, który indentyfikuje prawa przydzielone danemu użytkownikowi (INDEX)
Tabela 11 – user_types
user_type_id – klucz główny tabeli
user_type – typ użytkownika (UNIQUE)
Tabela 12 – users
user_id – klucz główny tabeli
user_type_id – klucz obcy z tabeli user_types, identyfikujący typ użytkownika (INDEX)
login – unikatowa nazwa użytkownika używana podczas logowania (UNIQUE)
password – hasło użytkownika(INDEX)
reg_date – data założenia konta przez administratora
email – adres email, pole opcjonalne, nie wymagane, domyślnie przyjmujące wartość NULL
comment – pole opisujące jakieś dodatkowe właściwości lub informacje dla administratora systemu(np. na niego trzeba uważać), domyślnie przyjmujące wartość NULL
Tabela 13 – weather
weather_id – klucz główny tabeli
sensor_type_id – klucz obcy z tabeli sensor_types, informujący o typie czujnika (w tym wypadku indeks jest typu UNIQUE, dla tego że poszczególne wartości pogodowe nie mogą się powtarzać, czyli mamy jedną temperaturę, jedną wilgotność powietrza itd.)
actual – aktualne wskazania (INDEX)
Copyright © 2008-2010 EPrace oraz autorzy prac.