Databáze

  • Databáze : Bludné balvany v databázi

    V mé praxi databázového inženýra narážím často na ten samý problém. „Máš pravdu chtělo by to změnit, ale nemůžeme to udělat protože …“ A následuje série důvodů objektivních i těch subjektivních.  Když se v databází se realizuje něco, co pak je nutno změnit a vy to přesto změnit nemůžete, tak těmto věcem v databázi a vůbec v programování říkám Bludné balvany.
    2. 8. 2019 11:39 (aktualizováno)
  • PostgreSQL: Transakce v PL/pgsql - Řešení problému s připojením

    Nepředstavitelné se stalo realitou: Dblink fungoval spolehlivě, než … Když jsem spustil svoji napsanou funkci, která rozsekávala funkčnost na několik transakcí přes dlblink, tak funkce vrátila tuto hlášku : /---codeBlock ERROR: could not establish connection DETAIL: could not connect to server: Cannot assign requested address Is the server running on host „192.643.1.434“ and accepting TCP/IP connections on port 5432…
    25. 11. 2017 5:42 (aktualizováno)
  • RDBMS - Kontingenční tabulka

    Každý, kdo pracuje s daty někdy narazí na problém, že musí nastavit filtry taky, aby odpovídali realitě a podle nich vybrat data. Ne všechny cross řádky ve filtru (rozuměj náhodně pospojované podmínky) odpovídají existujícím datům. Tak zůstává pouze možnost vytvořit si pomocnou tabulku, která zahrnuje veškeré přípustné kombinace hodnot filtrů. Této tabulce říkám kontingenční tabulka.
    31. 10. 2017 8:05
  • PostgreSQL: Transakce v PL/pgsql - Jak jsem se s tím vypořádal

    Každý kdo přešel od jiných velikých databází a programoval v procedurálním jazyku se pokusil v PL/pgsql vytvořit transakci tak narazil. PL/pgsql totiž transakce nepovoluje. Spíše každé spuštění funkce je jednou velikou transakcí. Každý, kdo potřeboval přenést velký objem dat pomocí PL/pgsql narazil na problém. Jak to sakra udělat, abych data přenesl a nealkoval veškeré zdroje databáze pro sebe …
    22. 10. 2017 10:10
  • Pár postřehů o architektúře databáze

    neboli “Kdy dva dělají totéž, nidky to není totéž” Většina začínajících databázových architektů se domnívá, že nakreslením obdélníků s názvem tabulky, definici sloupců a čar spojujících tabulky, jejich práce končí. V praxi pak potkávám fyzické datové modely, které obsahují v tabulce pouze primární klíč a indexy, které tam vygeneroval databázový engine při tvorbě cizích klíčů (foreign key)…
    5. 2. 2017 14:41
  • PostgreSQL- PL/pgSQL Serverové programování 03 - Kurzory

    Jednou z klíčových výhod PL/pgSQL jsou kurzory. Dovolují Vám procházet výsledek selectu a pomocí řídících příkazů jazyka modifikovat data a ty pak uložit do nějakého výsledku, nebo předat z funkce. Nechci nahrazovat manuál a podrobné příručky pro programování PostgreSQL, omezím se proto na nejčastější techniky, které využívám.
    4. 12. 2016 10:41 (aktualizováno)
  • PostgreSQL: Uživatelské zmatky kolem count() a distinct

    Kolega provedl test jedné mé serverové rutiny a oznámil mi, že je špatně, protože kontrolním selectem dostal hodnotu o jedna menší než mněla být. Když jsem požádal o daný kontrolní select, tak select skutečně ukázal hodnotu o jedna menší…
    25. 11. 2016 8:11
  • PostgreSQL: PL/pgSQL – Serverové programování 02 - anonymní blok

    Oproti klasickým funkcím v PostgreSQL i procedurám v jiných jazycích stojí „Anonymous block“. Jedná se sérií deklarací a sekvencí procedurálních příkazů. Jeho využití je zřejmé. Používá se tam, kde potřebujeme provést určité databázové operace, aniž bychom zapisovali funkci do databáze. Anonymní  blok
    16. 11. 2016 9:08
  • PostgreSQL: PL/pgSQL – Serverové programování 01

    Někdy je potřeba provést náročné výpočty, přesuny dat, nebo vytvořit business rules (obchodní pravidla).  Tehdy sáhnete pravděpodobně po serverovém programování buďto přímo přes rozhraní, nebo po procedurálních jazycích. PostgreSQL nabízí plnou náruč procedurálních jazyků PL/pqSQL, PL/Tcl,PL/Perl,PL/Python atd.
    10. 11. 2016 9:46
  • PostgreSQL: XML co s ním 2. část - refereční integrita

    Jak převést XML do reálného relačního světa ?  Podstatou jsou tabulky a relace, které existují hlavně formou cizí klíčů. View Jednou z lehkých cest je vytvořit view. V příkladu jsem vytvořil view na příkladem z 1. části. Nad view můžeme použít klasický příkaz select jako nad tabulkou…
    1. 11. 2016 6:32