ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ KATEDRA MĚŘENÍ
Měřící systém se vzdáleným přístupem Databáze
Jiří Javůrek 2003/2005
0. Obsah 0. 1. 2. 3.
Obsah.................................................................................................................................. 1 Požadavky .......................................................................................................................... 2 Struktura databáze .............................................................................................................. 2 Tabulky............................................................................................................................... 3 3. 1 USERS ....................................................................................................................... 3 3. 2 SEZNAM ................................................................................................................... 4 3. 3 PLAN ......................................................................................................................... 5 4. Literatura ............................................................................................................................ 5 Příloha A – Vytvoření celé databáze.......................................................................................... 6 Obrázky: Obr. 1 Struktura.......................................................................................................................... 2
-1-
1. Požadavky Databáze musí uchovánat informace o jednotlivých uživatelích systému a jejich přístupových právech k jeho částem a funkcím. Musí být edvidován plán úloh, které mají být spuštěny v nastavený čas a u těchto úloh dále jejich vlastník a stav, ve kterém se nachází jejich provádění. Z dat uožených v databázi musí být patrné, jaké úlohy jsou v systému definovány a kterým z uživatelů byly vytvořeny.
2. Struktura databáze USERS
uId integer auto_increment primary key not null jmeno varchar(20) heslo varchar(50) plnejmeno varchar(50) opravneni integer default 0
SEZNAM
tId integer auto_increment primary key not null uId integer references users(uid) not null nazev varchar(30) soubor varchar(30) flags integer not null default 0 PLAN
Bit: 1 - Přihlášení 2 - Prohlížení seznamu vlastních úloh 4 - Prohlížení seznamu všech úloh 8 - Plánování vlastních úloh 16 - Plánování všech úloh 32 - Přidávání, mazání a změny vlastních úloh 64 - Přidávání, mazání a změny všech úloh 128 - Změna plánu u vlastních úloh 256 - Změna plánu u všech úloh 512 - Přímá obsluha přístrojů, pokud neběží úloha 1024 - Přímá obsluha přístrojů, i pokud běží úloha 2048 - Administrace
pId integer auto_increment primary key not null tId integer references seznam(tid) not null uId integer references users(uid) not null nazev varchar(30) zacatek datetime stav integer not null default 0 flags integer not null default 0
Nepoužito
Hodnota: 0 - K provedení 1 - Pozastaveno 10 - Měří se 11 - (breakpoint) 20 - Dokončeno 30 - Havárie
Nepoužito
Obr. 1 Struktura
-2-
3. Tabulky 3. 1 USERS Tabulka slouží k uchovávání inforamcí o jednotlivých uživatelích systému. Jednoznačná identifikace uživatele je pomocí jeho uživatelského jména (jmeno). V rámci měřícího systému je uživatel identifikován svým jedinečným uživatelským číslem (uid). Práva uživatele jsou nastavena v položce opravneni a jsou bitovým součtem povolených operací, tak jak je popsáno dále. Položky databáze: uid integer
Jedinečné identifikační číslo uživatele v rámci měřícího systému. Jedinečnost je automaticky zajištěna vlastností auto_incerement. jmeno varchar(20) Jedinečné uživatelské jméno uživatele. Jedinečnost musí zaručit správce systému při jeho přidělování. heslo varchar(50) Heslo, které umožní uživateli spolu s jeho jménem přístup do systému. plnejmeno varchar(50) Celé uživatelovo jméno. Tato položka neslouží k žádné činnosti systému, je pouze informativní. opravneni integer Bitový součet jednotlivých práv, která má uživatel přidělena. Bit Hodnota Právo 0 1 Přihlášení 1 2 Prohlížení seznamu vlastních úloh 2 4 Prohlížení seznamu všech úloh 3 8 Plánování vlastních úloh 4 16 Plánování všech úloh 5 32 Přidávání, mazání a změny vlastních úloh 6 64 Přidávání, mazání a změny všech úloh 7 128 Změna plánu u vlastních úloh 8 256 Změna plánu u všech úloh 9 512 Přímá obsluha přístr., pokud neběží úloha 10 1024 Přímá obsluha přístr., i pokud běží úloha 11 2048 Administrace SQL příkaz pro vytvoření CREATE TABLE users ( uid integer auto_increment not null primary key, jmeno varchar(20), heslo varchar(50), plnejmeno varchar(50), opravneni integer default 0 );
-3-
3. 2 SEZNAM Tabulka slouží k uchovávání inforamcí o jednotlivých zadaných úlohách v systému. Tyto úlohy je potom možné přidávat do plánu úloh a tím zajistit jejich vykonání. Úlohy jsou fyzicky uloženy ve formě souborů souborového systému a tabulka obsahuje pouze odkaz na jméno tohoto souboru. Položky databáze: tid integer Jedinečné identifikační číslo úlohy v rámci měřícího systému. uid integer Odkaz do tabulky users, obsahuje identifikační číslo vlastníka úlohy. nazev varchar(30) Uživatelem definovaný název úlohy. Tato položka neslouží k žádné činnosti systému, je pouze informativní. soubor varchar(30) Jméno souboru s uloženým postupem (skriptem) úlohy. Předpokládá se relativní jméno vzhledem k adresáři postupů (skriptů) úloh, který je definován v serveru měřícího systému. flags integer rezerva, není použito SQL pro vytvoření CREATE TABLE seznam ( tid integer auto_increment not null primary key, uid integer not null references users(uid) on delete no action on update cascade, nazev varchar(30), soubor varchar(30), flags integer not null default 0 );
-4-
3. 3 PLAN Tabulka slouží k uchování informací o úlohách, které mají být provedeny nebo již provedeny byly. Položky databáze: pid integer tid integer uid nazev
zacatek stav
flags
Jedinečné identifikační číslo vykonané úlohy v plánu úloh. Odkaz do tabulky seznam, obsahuje identifikační číslo úlohy, ze které byla vytvořena naplánovaná úloha. integer Odkaz do tabulky users, obsahuje identifikační číslo vlastníka plánované úlohy. varchar(30) Uživatelem definovaný název úlohy. Tato položka neslouží k žádné činnosti systému, je pouze informativní. Tento název se nemusí shodovat s názvem mateřské úlohy z tabulky seznam. datetime Datum a čas plánovaného začátku spuštění úlohy. integer Obsahuje informaci o průběhu zpracovní úlohy. Významy jednotlivých hodnot jsou: Hodnota Význam 0 Úloha má být spuštěna ve stanovený čas 1 Spuštění pozastaveno, úloha není vymazána, ale nebude spuštěna 10 Úloha se právě měří (je spuštěna) 20 Měření úlohy bylo úspěšně dokončeno 30 Měření úlohy bylo ukončeno neúspěšně – při měření došlo k chybě integer rezerva, není použito
SQL pro vytvoření CREATE TABLE plan ( pid integer not null auto_increment primary key, tid integer not null references seznam(tid) on delete no action on update cascade, nazev varchar(30), uid integer not null references users(uid) on delete no action on update cascade, zacatek datetime, stav integer not null default 0, flags integer not null default 0 );
4. Literatura [1] Stones, R. – Neil, M.: Linux, programujeme profesionálně. Computer Press, Praha 2001 [2] Dokumentace MySQL – http://www.mysql.org
-5-
Příloha A – Vytvoření celé databáze CREATE DATABASE jams;
Po vytvoření databáze lze spustit následující skript (např. pomocí programu mysql) \u jams CREATE TABLE users ( uid integer auto_increment not null primary key, jmeno varchar(20), heslo varchar(50), plnejmeno varchar(50), opravneni integer default 0 ); CREATE TABLE seznam ( tid integer auto_increment not null primary key, uid integer not null references users(uid) on delete no action on update cascade, nazev varchar(30), soubor varchar(30), flags integer not null default 0 ); CREATE TABLE plan ( pid integer not null auto_increment primary key, tid integer not null references seznam(tid) on delete no action on update cascade, nazev varchar(30), uid integer not null references users(uid) on delete no action on update cascade, zacatek datetime, stav integer not null default 0, flags integer not null default 0 );
-6-