sql/schéma.sql
author František Kučera <franta-hg@frantovo.cz>
Sun, 15 Feb 2009 00:32:53 +0100
changeset 28 dbb434bd4b99
parent 22 571d37e53ecd
child 31 001db3cb0912
permissions -rw-r--r--
Generátor vytváří souhrny pro období od-do (včetně)
Funguje, ale kvůli překladům IP adres to trvá příliš dlouho.
Bude potřeba nejdříve vytvořit souhrn bez překladů (bude tam null)
a v dalším kole provést překlad IP adres → tím zkrátíme první databázovou transakci
a ušetříme přibližně třetinu času na překlady (pokud každá IP útočila třikrát)
nebo i více, pokud máme více cílů (je dost možné, že IP adresy útočníků budou stejné a nebudeme je muset překládat několikrát)
     1 -- Table: cil
     2 
     3 -- DROP TABLE cil;
     4 
     5 CREATE TABLE cil
     6 (
     7   id bigint NOT NULL,
     8   nazev character varying NOT NULL,
     9   url character varying, -- Odkaz na daný cíl – pokud je to např. webová stránka
    10   selekt character varying NOT NULL, -- SQL dotaz, kterým získáme ze zdrojové databáze: IP adresu (sloupeček "ip"), počet pokusů (sloupeček "pocet") o spamování a den pokusu (sloupeček "den"). To vše pro období od do (dva parametry dotazu) včetně.
    11   databaze character varying NOT NULL, -- Celé JNDI jméno datového zdroje – databáze, na které bude volán selekt.
    12   CONSTRAINT cil_pk PRIMARY KEY (id)
    13 )
    14 WITH (OIDS=FALSE);
    15 ALTER TABLE cil OWNER TO hrisnicispameri;
    16 COMMENT ON TABLE cil IS 'Definice cílu (oběti) spamování.';
    17 COMMENT ON COLUMN cil.url IS 'Odkaz na daný cíl – pokud je to např. webová stránka';
    18 COMMENT ON COLUMN cil.selekt IS 'SQL dotaz, kterým získáme ze zdrojové databáze: IP adresu (sloupeček "ip"), počet pokusů (sloupeček "pocet") o spamování a den pokusu (sloupeček "den"). To vše pro období od do (dva parametry dotazu) včetně.';
    19 COMMENT ON COLUMN cil.databaze IS 'Celé JNDI jméno datového zdroje – databáze, na které bude volán selekt.';
    20 
    21 
    22 -- Table: souhrn
    23 
    24 -- DROP TABLE souhrn;
    25 
    26 CREATE TABLE souhrn
    27 (
    28   den date NOT NULL,
    29   ip character varying NOT NULL, -- IP adresa hříšníka
    30   domena character varying, -- Doménové jméno hříšníka (překlad IP adresy)
    31   pocet bigint NOT NULL, -- Počet pokusů o spamování v daném dni
    32   cil bigint, -- Cíl útoku - spamování
    33   CONSTRAINT souhrn_pk PRIMARY KEY (den, ip),
    34   CONSTRAINT souhrn_cil_fk FOREIGN KEY (cil)
    35       REFERENCES cil (id) MATCH SIMPLE
    36       ON UPDATE NO ACTION ON DELETE NO ACTION,
    37   CONSTRAINT souhrn_pocet CHECK (pocet > 0)
    38 )
    39 WITH (OIDS=FALSE);
    40 ALTER TABLE souhrn OWNER TO hrisnicispameri;
    41 COMMENT ON TABLE souhrn IS 'Denní souhrny hříšníků, kteří se pokusili spamovat některý z webů (cílů).';
    42 COMMENT ON COLUMN souhrn.ip IS 'IP adresa hříšníka';
    43 COMMENT ON COLUMN souhrn.domena IS 'Doménové jméno hříšníka (překlad IP adresy)';
    44 COMMENT ON COLUMN souhrn.pocet IS 'Počet pokusů o spamování v daném dni';
    45 COMMENT ON COLUMN souhrn.cil IS 'Cíl útoku - spamování';
    46 
    47