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)
franta-hg@1
     1
-- Table: cil
franta-hg@1
     2
franta-hg@1
     3
-- DROP TABLE cil;
franta-hg@1
     4
franta-hg@1
     5
CREATE TABLE cil
franta-hg@1
     6
(
franta-hg@1
     7
  id bigint NOT NULL,
franta-hg@1
     8
  nazev character varying NOT NULL,
franta-hg@1
     9
  url character varying, -- Odkaz na daný cíl – pokud je to např. webová stránka
franta-hg@28
    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ě.
franta-hg@2
    11
  databaze character varying NOT NULL, -- Celé JNDI jméno datového zdroje – databáze, na které bude volán selekt.
franta-hg@1
    12
  CONSTRAINT cil_pk PRIMARY KEY (id)
franta-hg@1
    13
)
franta-hg@1
    14
WITH (OIDS=FALSE);
franta-hg@1
    15
ALTER TABLE cil OWNER TO hrisnicispameri;
franta-hg@1
    16
COMMENT ON TABLE cil IS 'Definice cílu (oběti) spamování.';
franta-hg@1
    17
COMMENT ON COLUMN cil.url IS 'Odkaz na daný cíl – pokud je to např. webová stránka';
franta-hg@28
    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ě.';
franta-hg@2
    19
COMMENT ON COLUMN cil.databaze IS 'Celé JNDI jméno datového zdroje – databáze, na které bude volán selekt.';
franta-hg@1
    20
franta-hg@1
    21
franta-hg@1
    22
-- Table: souhrn
franta-hg@1
    23
franta-hg@1
    24
-- DROP TABLE souhrn;
franta-hg@1
    25
franta-hg@1
    26
CREATE TABLE souhrn
franta-hg@1
    27
(
franta-hg@1
    28
  den date NOT NULL,
franta-hg@5
    29
  ip character varying NOT NULL, -- IP adresa hříšníka
franta-hg@1
    30
  domena character varying, -- Doménové jméno hříšníka (překlad IP adresy)
franta-hg@1
    31
  pocet bigint NOT NULL, -- Počet pokusů o spamování v daném dni
franta-hg@1
    32
  cil bigint, -- Cíl útoku - spamování
franta-hg@1
    33
  CONSTRAINT souhrn_pk PRIMARY KEY (den, ip),
franta-hg@1
    34
  CONSTRAINT souhrn_cil_fk FOREIGN KEY (cil)
franta-hg@1
    35
      REFERENCES cil (id) MATCH SIMPLE
franta-hg@1
    36
      ON UPDATE NO ACTION ON DELETE NO ACTION,
franta-hg@1
    37
  CONSTRAINT souhrn_pocet CHECK (pocet > 0)
franta-hg@1
    38
)
franta-hg@1
    39
WITH (OIDS=FALSE);
franta-hg@1
    40
ALTER TABLE souhrn OWNER TO hrisnicispameri;
franta-hg@1
    41
COMMENT ON TABLE souhrn IS 'Denní souhrny hříšníků, kteří se pokusili spamovat některý z webů (cílů).';
franta-hg@1
    42
COMMENT ON COLUMN souhrn.ip IS 'IP adresa hříšníka';
franta-hg@1
    43
COMMENT ON COLUMN souhrn.domena IS 'Doménové jméno hříšníka (překlad IP adresy)';
franta-hg@1
    44
COMMENT ON COLUMN souhrn.pocet IS 'Počet pokusů o spamování v daném dni';
franta-hg@1
    45
COMMENT ON COLUMN souhrn.cil IS 'Cíl útoku - spamování';
franta-hg@1
    46
franta-hg@1
    47