LibreOfficeLogo

Příručka aplikace Base 7.3

Kapitola 2
Vytvoření databáze

 

Autorská práva

Tento dokument je chráněn autorskými právy © 2022 týmem pro dokumentaci LibreOffice. Přispěvatelé jsou uvedeni níže. Dokument lze šířit nebo upravovat za podmínek licence GNU General Public License (https://www.gnu.org/licenses/gpl.html), verze 3 nebo novější, nebo the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), verze 4.0 nebo novější.

Všechny ochranné známky uvedené v této příručce patří jejich vlastníkům.

Přispěvatelé

Pro toto vydání

Steve Fanning

Robert Großkopf

flywire

Pro předchozí vydání

Martin Fox

Robert Großkopf

Pulkit Krishna

Jost Lange

Dan Lewis

Hazel Russman

Jochen Schiffers

Jean Hollis Weber

 

Zpětná vazba

Jakékoli připomínky nebo návrhy k tomuto dokumentu prosím směřujte do fóra dokumentačního týmu na adrese https://community.documentfoundation.org/c/documentation/loguides/ (registrace je nutná) nebo pošlete e-mail na adresu: loguides@community.documentfoundation.org.

Poznámka

Vše, co napíšete do fóra, včetně vaší e-mailové adresy a dalších osobních údajů, které jsou ve zprávě napsány, je veřejně archivováno a nemůže být smazáno. E-maily zaslané do fóra jsou moderovány.

Datum vydání a verze programu

Vydáno Srpen 2022. Založeno na LibreOffice 7.3 Community.
Jiné verze LibreOffice se mohou lišit vzhledem a funkčností.

Používání LibreOffice na systému macOS

Některé klávesové zkratky a položky nabídek jsou v systému macOS jiné než v systémech Windows a Linux. V následující tabulce jsou uvedeny nejdůležitější rozdíly, které se týkají informací v této knize. Podrobnější seznam se nachází v nápovědě aplikace.

Windows nebo Linux

Ekvivalent pro macOS

Akce

Výběr v nabídce Nástroje > Možnosti

LibreOffice > Předvolby

Otevřou se možnosti nastavení.

Klepnutí pravým tlačítkem

Ctrl + klepnutí a/nebo klepnutí pravým tlačítkem v závislosti na operačním systému počítače

Otevře se místní nabídka.

Ctrl (Control)

⌘ (Command)

Používá se také s dalšími klávesami.

Ctrl + Q

⌘ + Q

Ukončí LibreOffice

Úvod

Kapitola 1, Úvod do aplikace Base, popisuje, jak Base poskytuje grafické uživatelské rozhraní pro databáze.

Do databáze Base jsou integrovány dva relační databázové stroje, HSQLDB (HyperSQL DataBase) verze 1.8.0 a Firebird verze 3.0.7, přičemž druhý jmenovaný je v současné době dostupný pouze jako experimentální funkce. Databáze vytvořené pomocí vestavěného stroje jsou přístupné vždy pouze jednomu uživateli a všechna data pro databázi jsou uložena v souboru ODB. Základy vytváření vestavěné databáze jsou popsány v kapitole 8 příručky Začínáme s LibreOffice, Začínáme s Base, a v kapitole 1 této knihy. Příklady databází v této knize se vztahují k HSQLDB, ale jsou upraveny tak, aby většina funkcí byla přímo přenositelná do Firebirdu. V případě potřeby jsou identifikovány alternativy v programu Firebird.

Base podporuje také připojení k mnoha typům externích databází. Ty mohou být umístěny buď lokálně, nebo ve vzdáleném síťovém umístění a mohou podporovat více souběžných uživatelů. Než může Base navázat připojení k externí databázi, musí databáze existovat a případně být nakonfigurována tak, aby umožňovala síťové připojení s konkrétními přihlašovacími údaji.

Tato kapitola popisuje, jak vytvořit novou (vestavěnou) databázi pomocí vestavěného modulu HSQLDB, jak vytvořit připojení k několika různým typům externích databází a jak tato připojení později v případě potřeby upravit.

Poznámka

Vestavěný engine HSQLDB je napsán v jazyce Java. Pokud vložená databáze HSQLDB obsahuje velké množství dat, může použití Javy někdy vést ke snížení rychlosti. Tento faktor je jednou z motivací probíhajících prací na převodu výchozího vestavěného databázového stroje z HSQLDB na Firebird.

Podobné efekty mohou být pozorovány při přístupu k externím databázím, které nepoužívají Javu, v závislosti na použitém ovladači. Pokud je připojení realizováno prostřednictvím JDBC, což je technologie založená na Javě, může to mít negativní vliv na výkon.

Vytvoření databáze pomocí vestavěného databázového stroje

Pokud plánujeme databázi pro jednoho uživatele nebo pokud chceme pouze získat první zkušenosti s databází, vestavěný engine HSQLDB bude vyhovovat našim potřebám. Pokud se později naše cíle změní, je možné databázi přenést na externí server, kde může být výkonnější a kde může mít k databázi souběžný přístup více uživatelů.

Chceme-li vytvořit vloženou databázi, provedeme následující kroky.

  1. Přístup k Průvodci databází získáme provedením jedné z následujících akcí:

  1. V Centru spouštění LibreOffice klepneme na možnost Databáze Base v oblasti Vytvořit.

  2. V libovolné komponentě LibreOffice vybereme na nástrojové liště Soubor > Nový > Databáze.

  3. V okně Base klepneme na ikonu Nový na Standardní nástrojové liště nebo použijeme odpovídající klávesovou zkratku Ctrl + N.

  4. V libovolné komponentě LibreOffice klepneme na šipku dolů napravo od ikony Nový na Standardní nástrojové liště a v rozevírací nabídce vybereme Databáze.

  1. Aplikace Base zobrazí Krok 1 (Vybrat databázi) Průvodce databází (obrázek 1).

Image2

Obrázek 1: Krok 1 Průvodce databází: Výběr databáze

  1. Klepneme na možnost Vytvořit novou databázi. Ve výchozím nastavení (s vypnutými experimentálními funkcemi) vytvoří Base databázi HSQLDB, což se projeví v nastavení rozevírací nabídky Vestavěná databáze, která neobsahuje žádné další možnosti. Pokud je však v dialogovém okně Nástroje > Možnosti > LibreOffice > Pokročilé vybrána možnost Povolit experimentální funkce (mohou být nestabilní), chování Průvodce databází se změní tak, že nabídka Vestavěná databáze obsahuje dvě možnosti (obrázek 2), přičemž výchozí je možnost Firebird Embedded.

Image3

Obrázek 2: Nabídka Vestavěná databáze s povolenými experimentálními funkcemi

  1. Klikneme na tlačítko Další >.

  2. Aplikace Base zobrazí krok 2 (Uložit a pokračovat) Průvodce databází (obrázek 3).

Image4

Obrázek 3: Krok 2 Průvodce databází: Uložit a pokračovat

  1. Ve výchozím nastavení je vybrána možnost Ano, zaregistrovat databázi. Registrovanou databázi mohou využívat další součásti LibreOffice, například pro sloučení dopisů v aplikaci Writer. Doporučuje se, aby všechny databáze byly při vytvoření zaregistrovány, ale konečná volba je na uživateli.

  2. Ve výchozím nastavení je vybrána možnost Otevřít databázi pro úpravy, která je obvykle vhodná pro novou databázi. Pokud si v tuto chvíli nepřejeme databázi upravovat, můžeme tuto možnost zrušit.

  3. Ve výchozím nastavení je možnost Vytvořit tabulky pomocí průvodce tabulkou zrušena. Použití Průvodce tabulkou bylo popsáno v kapitole 8 příručky Začínáme s LibreOffice, Začínáme s aplikací Base. Ve zbytku této knihy se záměrně vyhneme popisu použití průvodců pro vytváření tabulek, dotazů apod. Uživatel však může tuto možnost zvolit podle potřeby.

  4. Klepnutím na tlačítko Dokončit uložíme novou databázi.

  5. Base zobrazí dialogové okno Uložit jako, ve kterém je třeba zadat název a umístění souboru ODB.

  6. Klepneme na tlačítko Uložit.

Vložená databáze je připravena pro vkládání záznamů a ukládání pohledů, dotazů, formulářů a sestav. Všimneme si, že soubor je uložen předtím, než jsme zadali jakékoli datové položky, což je odlišný přístup než v jiných komponentách LibreOffice.

Upozornění

Pokud jsou zapnuty experimentální funkce pomocí volby Povolit experimentální funkce (mohou být nestabilní) v dialogovém okně Nástroje > Možnosti > LibreOffice > Pokročilé a později otevřeme existující vestavěnou databázi HSQLDB, pak aplikace Base může zobrazit dialogové okno Potvrdit přechod (obrázek 4) s dotazem, jestli chceme databázi zmigrovat do databáze formátu Firebird. Odkaz v tomto dialogovém okně vede na následující stránku na wiki nadace The Document Foundation:
https://wiki.documentfoundation.org/Documentation/HowTo/MigrateFromHSQLDB.

Tato experimentální funkce automatické migrace se spustí vždy, když je otevřena vložená databáze HSQLDB a je vytvořeno první připojení k datovému schématu. Pokud se s tímto dialogovým oknem setkáme, doporučujeme maximální opatrnost, protože na vývoji této funkce se stále pracuje. Nepotvrzujeme pouze klepnutím na Ano; nezapomeneme klepnout na Později. Před pokusem o migraci se ujistíme, že jsme provedli přípravy popsané na odkazované stránce wiki.

Image5

Obrázek 4: Dialogové okno Potvrdit přechod

Přístup k externím databázím

Poznámka

Při použití aplikace Base k navázání připojení přes Internet se ujistíme, že víme, jak je toto připojení strukturováno. Každá databáze, ke které se přistupuje přes internet, by měla být chráněna specifickým uživatelským jménem a heslem. Ptejme se například: Je spojení šifrované / zabezpečené? Jak se heslo přenáší? Jsou moje data v bezpečí?

Úvod

Externí databáze musí existovat, aby k ní bylo možné přistupovat pomocí Base. Pokud je požadován přístup k externí databázi, musí být nastavena tak, aby umožňovala síťová připojení s konkrétními přihlašovacími údaji, a teprve poté se k ní může připojit jakýkoli jiný software (například Base).

Pokud je externí databáze vhodně nastavena, můžeme v závislosti na typu databáze a dostupném softwaru ovladače vytvářet tabulky, zadávat data a dotazovat se na data. Některé externí zdroje dat (například připojení k tabulkovému procesoru nebo textové databázi) neumožňují zadávání nových dat a slouží pouze k vyhledávání nebo vykazování existujících dat.

Chceme-li se připojit k externí databázi, postupujeme podle následujících kroků.

  1. Průvodce databází otevřeme provedením jedné z akcí uvedených v kroku 1)   postupu pro vytvoření nové databáze pomocí vestavěného databázového stroje (strana 1).

  2. V kroku 1 (Výběr databáze) Průvodce databází (obrázek 1), klepneme na možnost Připojit se k databázi. Typy databází uvedené v přilehlé rozevírací nabídce se liší v závislosti na operačním systému a dalších faktorech, ale vždy by měly být k dispozici následující:

Obrázek 5 je příkladem možností dostupných pro systém se systémem Windows.

Image6

Obrázek 5: Možnosti připojení k externí databázi na platformě Windows

  1. Vybereme položku požadovaného typu připojení a klepneme na tlačítko Další >.

Počet zbývajících kroků a možnosti volby v každém kroku závisí na povaze vybraného typu připojení.  Nastavení připojení můžeme změnit po vytvoření přidruženého souboru ODB.

Popisy v následujících kapitolách této knihy popisují především použití databáze Base ve spojení s vestavěnou databází HSQLDB. Většinu práce s návrhem databáze lze rozšířit na databáze využívající Firebird, MySQL, PostgreSQL atd.

Ve zbývající části této kapitoly jsou uvedeny příklady navázání připojení k typickým externím databázím. Někteří uživatelé mohou chtít použít Base pro připojení k existující víceuživatelské databázi a měli by se poradit se správcem databáze své organizace, aby získali přístup k RDBMS. Jiní uživatelé si mohou nainstalovat systém RDBMS pro jednouživatelský přístup na svůj vlastní počítač a pak používat Base jako front-end. Pokrytí všech možných případů použití přesahuje rámec tohoto dokumentu.

Poznámka

V závislosti na použitém ovladači může být na připojeném serveru možné přistupovat k několika databázím současně. Pokud je například navázáno připojení k databázi MySQL/MariaDB, mohou být v Base současně zobrazeny další databáze na serveru, ke kterým má zadaný uživatel přístupová práva. Je tedy možné kopírovat data z jedné databáze do druhé, provádět související dotazy atd.

Databáze MySQL/MariaDB

Přehled

MySQL je open-source systém pro správu relačních databází (RDBMS), který poskytuje společnost Oracle Corporation. Další informace najdeme na webových stránkách MySQL na adrese https://www.mysql.com/. Aktuální verze referenční příručky MySQL je dostupná prostřednictvím odkazu Documentation na webových stránkách MySQL.

MariaDB je open-source RDBMS, který je kompatibilní s MySQL. Na vývoj MariaDB dohlíží nadace MariaDB Foundation a další informace najdeme na https://mariadb.com/. Dokumentaci serveru MariaDB najdeme na adrese https://mariadb.com/kb/en/documentation/.

Base se může připojit k databázím MySQL a MariaDB jedním ze tří způsobů:

Počáteční příprava

Podrobné pokyny ke stažení a instalaci softwaru databázového serveru pro vaši konfiguraci počítače a podrobnosti o přístupu ke konzole SQL naleznete v Referenční příručce MySQL nebo v dokumentaci serveru MariaDB. Po instalaci postupujeme podle pokynů pro nastavení uvedených v dokumentaci. Mezi ně mohou patřit:

  1. V MySQL i MariaDB je uživatelské jméno účtu správce root (všimneme si, že jméno root v tomto kontextu nesouvisí s účtem superuživatele root, který je k dispozici v některých operačních systémech). Ujistíme se, že heslo pro účet root databázového serveru bylo nastaveno na řetězec, který je vhodný pro zachování bezpečnosti dat.

  2. Některé uživatelské účty mohou být ve výchozím nastavení k dispozici pro testovací účely a některé testovací databáze mohou umožňovat anonymní přístup. Jako další bezpečnostní opatření se ujistíme, že jsou odstraněny všechny anonymní uživatelské účty.

Před navázáním připojení musí na serveru existovat databáze, která vás zajímá. Pokud naše databáze ještě neexistuje, provedeme následující kroky k jejímu vytvoření.

  1. Chceme-li vytvořit (prázdnou) databázi s názvem libretest, zadáme do konzoly SQL následující příkaz:

       CREATE DATABASE libretest;

  1. Chceme-li udělit všechna práva v nové databázi novému uživateli s názvem lotest a heslem libre, zadáme v konzole SQL následující příkazy:

       CREATE USER 'lotest' IDENTIFIED BY 'libre';
      
GRANT ALL PRIVILEGES ON libretest.* TO 'lotest';
      
FLUSH PRIVILEGES;

Po úspěšném dokončení těchto kroků je nová databáze k dispozici a Base se k ní může připojit, jak je popsáno v následujících podkapitolách.

Přímé připojení

Poznámka

V dřívějších verzích Base (před verzí LibreOffice 6.2) vyžadovalo přímé připojení k MySQL nebo MariaDB instalaci rozšíření. Od verze LibreOffice 6.2 je software potřebný k přímému připojení integrován do aplikace Base.

Pokud chceme poprvé navázat přímé připojení k určité databázi MySQL nebo MariaDB, provedeme následující kroky.

  1. Průvodce databází otevřeme provedením jedné z akcí uvedených v kroku 1)   postupu pro vytvoření nové databáze pomocí vestavěného databázového stroje (strana 1).

  2. Aplikace Base zobrazí Krok 1 (Vybrat databázi) Průvodce databází (obrázek 1).

  3. Klepneme na možnost Připojit se k databázi. Base aktivuje přilehlou rozbalovací nabídku se seznamem dostupných možností (obrázek 5).

  4. V rozevírací nabídce vybereme možnost MySQL.

  5. Klikneme na tlačítko Další >.

  6. Base zobrazí krok 2 (Nastavit spojení s MySQL) Průvodce databází (obrázek 6).

Image8

Obrázek 6: Krok 2 Průvodce databází: Nastavení připojení k MySQL

  1. Klepneme na možnost Připojit přímo.

  2. Klikneme na tlačítko Další >.

  3. Základna zobrazí krok 3 (Nastavit MySQL server) Průvodce databází (obrázek 7).

Image9

Obrázek 7: Krok 3 Průvodce databází: Nastavení dat serveru MySQL

  1. Do pole Název databáze zadáme název databáze. Naše ukázková databáze se jmenuje libretest.

  2. Klepneme na možnost Server/port.

  3. Do pole Server zadáme název serveru, na kterém běží databáze MySQL nebo MariaDB. Pokud se připojujeme k databázi na stejném počítači, název serveru by měl být localhost. Pokud se připojujeme ke vzdálenému serveru, může to být IP adresa, název síťového počítače nebo internetová adresa.

  4. Do pole Port zadáme číslo portu databázového serveru. Výchozí číslo portu pro databáze MySQL a MariaDB je 3306.

Tip

V krocích 10)  až 13) , pokud si nejsme jisti správností zadávaných informací, požádáme o radu správce databáze.

  1. Klikneme na tlačítko Další >.

  2. Base zobrazí krok 4 (Nastavit autentizaci uživatele) Průvodce databází (obrázek 8).

Image10

Obrázek 8: Krok 4 Průvodce databází: Nastavení ověřování uživatelů

  1. Do pole Uživatelské jméno zadáme platné uživatelské jméno. Náš příklad uživatele se jmenuje lotest.

  2. Klepneme na možnost Vyžadováno heslo.

  3. Klepneme na tlačítko Otestovat spojení.

  4. Base zobrazí dialogové okno Požadované ověření (obrázek 9).

Image11

Obrázek 9: Dialogové okno Vyžadována autentizace

  1. Zadáme uživatelské jméno (lotest) a heslo (libre) potřebné pro přístup do databáze.

  2. Klepneme na tlačítko OK.

  3. Base zobrazí dialogové okno s informací, že test připojení proběhl úspěšně (obrázek 10). Pokud byl test neúspěšný (například databázový server není právě spuštěn nebo jsme zadali nesprávné přihlašovací údaje), zobrazí se místo toho odpovídající chybová zpráva.

Image12

Obrázek 10: Dialogové okno úspěšného testu připojení

  1. Stisknutím tlačítka OK odstraníme z obrazovky dialogové okno úspěšného testu připojení.

  2. Klikneme na tlačítko Další >.

  3. Base zobrazí krok 5 (Uložit a pokračovat) Průvodce databází (se stejnými možnostmi, jaké jsou uvedeny na obrázku 3).

  4. Klepneme na možnost Ne, neregistrovat databázi, protože se jedná o testovací databázi.

  5. Klepneme na možnost Otevřít databázi pro úpravy, protože tato možnost je obvykle vhodná pro novou databázi. Pokud si v tuto chvíli nepřejeme databázi upravovat, můžeme tuto možnost zrušit.

  6. Pokud nechceme použít Průvodce tabulkou, ponecháme volbu Vytvořit tabulky pomocí průvodce tabulkou ve výchozím nezaškrtnutém stavu.

  7. Klepneme na tlačítko Dokončit.

  8. Base zobrazí dialogové okno Uložit jako, ve kterém je třeba zadat název a umístění souboru ODB.

  9. Klepneme na tlačítko Uložit.

  10. Průvodce databází se odstraní z obrazovky, vytvoří se soubor ODB obsahující informace o připojení k databázi a Base aktualizuje své hlavní okno tak, aby se pod názvem databáze zobrazovaly informace o tabulkách databáze (obrázek 11).

Image14

Obrázek 11: Hlavní okno Base zobrazující tabulky v databázi libretest

Tabulky lze vytvářet, upravovat a odstraňovat.

Stavový řádek ve spodní části obrázku 11 zobrazuje:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k základní databázi MySQL nebo MariaDB, zobrazí se dialogové okno Vyžadována autentizace (obrázek 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Image13

Obrázek 12: Dialogové okno Vyžadována autentizace

Připojení pomocí ODBC

Počáteční příprava

Chceme-li se pomocí aplikace Base připojit k databázovému serveru MySQL nebo MariaDB prostřednictvím aplikačního programovacího rozhraní (API) ODBC (Open Database Connectivity), musí být v počítači nainstalován správně nakonfigurovaný ovladač ODBC. Pokud je databázový server v počítači již nainstalován, může být nainstalován i konektor ODBC. Pokud tento konektor není v počítači aktuálně k dispozici, budeme k instalaci nového softwaru potřebovat administrátorská práva.

Chceme-li se připojit k databázi MySQL prostřednictvím ODBC, doporučujeme použít MySQL Connector/ODBC. Správnou verzi konektoru ODBC pro náš počítač si můžeme stáhnout z webu MySQL Community Downloads na adrese https://dev.mysql.com/downloads/connector/odbc/. Pokyny k instalaci v závislosti na platformě nalezneme v příručce MySQL Connector/ODBC Developer Guide na adrese https://dev.mysql.com/doc/connector-odbc/en/.

Pro připojení k databázi MariaDB prostřednictvím ODBC se doporučuje použít MariaDB Connector/ODBC. Správnou verzi konektoru ODBC pro náš počítač si můžeme stáhnout z oblasti Downloads na webových stránkách MariaDB na adrese https://mariadb.com/downloads/connectors/connectors-data-access/odbc-connector. Pokyny k instalaci závislé na platformě najdeme ve znalostní databázi MariaDB na adrese https://mariadb.com/kb/en/about-mariadb-connector-odbc/.

Při vytváření názvu zdroje dat ODBC (DSN) pro naši databázi postupujeme podle pokynů uvedených v dokumentaci ke konektoru. Pro účely příkladu v následujícím pododdíle předpokládejme, že zdroj dat byl nakonfigurován takto:

Použití Průvodce databází

Když chceme poprvé vytvořit připojení ODBC k určité databázi MySQL nebo MariaDB, provedeme následující kroky.

  1. Průvodce databází otevřeme provedením jedné z akcí uvedených v kroku 1)   postupu pro vytvoření nové databáze pomocí vestavěného databázového stroje (strana 1).

  2. Aplikace Base zobrazí Krok 1 (Vybrat databázi) Průvodce databází (obrázek 1).

  3. Klepneme na možnost Připojit se k databázi. Base aktivuje přilehlou rozbalovací nabídku se seznamem dostupných možností (obrázek 5).

  4. V rozevírací nabídce vybereme možnost MySQL.

  5. Klikneme na tlačítko Další >.

  6. Base zobrazí krok 2 (Nastavit spojení s MySQL) Průvodce databází (obrázek 6).

  7. Klepneme na možnost Připojit se pomocí ODBC (Open Database Connectivity).

  8. Klikneme na tlačítko Další >.

  9. Base zobrazí krok 3 (Nastavit ODBC spojení) Průvodce databází (obrázek 13).

Image15

Obrázek 13: Krok 3 Průvodce databází: Nastavení připojení ODBC

  1. Zadáme název dříve definovaného zdroje dat ODBC, který má být použit pro přístup k databázi MySQL nebo MariaDB (v našem příkladu libretest-ODBC-connection). Klepnutím na tlačítko Procházet zobrazíme dialog Zdroj dat (obrázek 14), v němž můžeme vybrat hledaný zdroj dat ze seznamu dostupných zdrojů a výběr potvrdit klepnutím na tlačítko OK.

Image16

Obrázek 14: Dialogové okno Zdroj dat

  1. Klikneme na tlačítko Další >.

  2. Base zobrazí krok 4 (Nastavit autentizaci uživatele) Průvodce databází (podobně jako na obrázku 8).

  3. Do pole Uživatelské jméno zadáme platné uživatelské jméno. Náš příklad uživatele se jmenuje lotest.

  4. Klepneme na možnost Vyžadováno heslo.

  5. Pokud je potřeba, otestujeme připojení provedením kroků 18)  až 23)   postupu přímého připojení (strana 1).

  6. Klikneme na tlačítko Další >.

  7. Base zobrazí krok 5 (Uložit a pokračovat) Průvodce databází (se stejnými možnostmi, jaké jsou uvedeny na obrázku 3).

  8. Klepneme na možnost Ne, neregistrovat databázi, protože se jedná o testovací databázi.

  9. Klepneme na možnost Otevřít databázi pro úpravy, protože tato možnost je obvykle vhodná pro novou databázi. Pokud si v tuto chvíli nepřejeme databázi upravovat, můžeme tuto možnost zrušit.

  10. Pokud nechceme použít Průvodce tabulkou, ponecháme volbu Vytvořit tabulky pomocí průvodce tabulkou ve výchozím nezaškrtnutém stavu.

  11. Klepneme na tlačítko Dokončit.

  12. Base zobrazí dialogové okno Uložit jako, ve kterém je třeba zadat název a umístění souboru ODB.

  13. Klepneme na tlačítko Uložit.

  14. Průvodce databází se zavře, vytvoří se soubor ODB obsahující informace o připojení k databázi a Base aktualizuje své hlavní okno tak, aby se pod názvem databáze zobrazovaly informace o tabulkách databáze (podobně jako na obrázku 11).

Tabulky lze vytvářet, upravovat a odstraňovat.

V tomto případě se na stavovém řádku zobrazí následující informace:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k základní databázi MySQL nebo MariaDB, zobrazí se dialogové okno Vyžadována autentizace (obrázek 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Připojení pomocí JDBC

Počáteční příprava

Chceme-li se pomocí Base připojit k databázovému serveru MySQL nebo MariaDB prostřednictvím rozhraní pro programování aplikací (API) Java Database Connectivity (JDBC), měl by být v počítači umístěn příslušný konektor JDBC. Pokud je databázový server v počítači již nainstalován, může být přítomen i konektor JDBC. Pokud konektor není v našem počítači aktuálně k dispozici, je třeba jej stáhnout a umístit konkrétní soubor JAR (Java ARchive) do přístupné složky.

Pro připojení k databázi MySQL prostřednictvím JDBC se doporučuje použít MySQL Connector/J. Správnou verzi konektoru JDBC pro náš počítač si můžeme stáhnout z webu MySQL Community Downloads na adrese https://dev.mysql.com/downloads/connector/j/. Pokyny k instalaci nalezneme v příručce MySQL Connector/J Developer Guide, která je dostupná na adrese https://dev.mysql.com/doc/index-connectors.html.

Pro připojení k databázi MariaDB prostřednictvím JDBC se doporučuje použít MariaDB Connector/J. Správnou verzi konektoru JDBC pro náš počítač si můžeme stáhnout z oblasti Downloads na webových stránkách MariaDB na adrese https://mariadb.org/connector-java/all-releases/. Pokyny k instalaci nalezneme ve znalostní databázi MariaDB na adrese https://mariadb.com/kb/en/mariadb-connector-j/.

Při stahování konektoru JDBC se ujistíme, že jsme vybrali správnou verzi pro váš operační systém, verzi databáze a verzi Javy. Kompatibilitou se zabývá dokumentace MySQL a MariaDB uvedená v předchozích odstavcích. Konektor JDBC nelze použít, pokud náš systém nepodporuje jazyk Java.

Následujícími kroky informujeme Base o tom, kde najde konektor JDBC.

  1. V hlavní nabídce vybereme Nástroje > Možnosti > LibreOffice > Pokročilé.

  2. LibreOffice zobrazí dialogové okno Možnosti – LibreOffice – Rozšířené (obrázek 15).

Image17

Obrázek 15: Možnosti – LibreOffice – dialogové okno Pokročilé

  1. Klepneme na tlačítko Cesta ke třídám.

  2. LibreOffice zobrazí dialogové okno Cesta ke třídám (obrázek 16).

Image18

Obrázek 16: Dialogové okno Cesta ke třídám

  1. Klepneme na tlačítko Přidat archiv.

  2. LibreOffice zobrazí dialogové okno Vybrat archivy (není zobrazeno).

  3. Přejdeme do složky obsahující soubor JAR pro konektor JDBC, vybereme soubor a klepneme na tlačítko Otevřít.

  4. Ujistíme se, že je vybrán požadovaný soubor JAR, a v dialogovém okně Cesta ke třídám klepneme na tlačítko OK.

  5. Klepneme na tlačítko OK v dialogovém okně Možnosti – LibreOffice – Upřesnit.

Při pozdějším pokusu o vytvoření připojení JDBC k databázi, jak je popsáno v následující podkapitole, by Base měla být schopna najít konektor JDBC.

Použití Průvodce databází

Když chceme poprvé vytvořit připojení JDBC k určité databázi MySQL nebo MariaDB, provedeme následující kroky.

  1. Průvodce databází otevřeme provedením jedné z akcí uvedených v kroku 1)   postupu pro vytvoření nové databáze pomocí vestavěného databázového stroje (strana 1).

  2. Aplikace Base zobrazí Krok 1 (Vybrat databázi) Průvodce databází (obrázek 1).

  3. Klepneme na možnost Připojit se k databázi. Base aktivuje přilehlou rozbalovací nabídku se seznamem dostupných možností (obrázek 5).

  4. V rozevírací nabídce vybereme možnost MySQL.

  5. Klikneme na tlačítko Další >.

  6. Base zobrazí krok 2 (Nastavit spojení s MySQL) Průvodce databází (obrázek 6).

  7. V případě potřeby klepneme na možnost Připojit se pomocí JDBC (Java Database Connectivity). Toto je výchozí volba pro tuto sadu tří přepínačů.

  8. Klikneme na tlačítko Další >.

  9. Base zobrazí krok 3 (Nastavit JDBC spojení) Průvodce databází (obrázek 17).

Image19

Obrázek 17: Krok 3 Průvodce databází: Nastavení připojení JDBC

  1. Do pole Název databáze zadáme název databáze. Naše ukázková databáze se jmenuje libretest.

  2. Do pole Server zadáme název serveru, na kterém běží databáze MySQL nebo MariaDB. Pokud se připojujeme k databázi na stejném počítači, měl by být název serveru  localhost. Pokud se připojujeme ke vzdálenému serveru, může to být IP adresa, název síťového počítače nebo internetová adresa.

  3. Do pole Číslo portu zadáme číslo portu databázového serveru. Výchozí číslo portu pro databáze MySQL a MariaDB je 3306.

Tip

pokud si nejste jisti správností zadávaných informací v krocích 10)  až 12) , požádáme o radu správce databáze.

  1. Pokud Base zná konektor JDBC, automaticky vyplní pole Třída MySQL JDBC ovladače názvem konektoru. Jedná se buď o com.mysql.jbc.Driver (pro MySQL konektor) nebo org.mariadb.jdbc.Driver (pro MariaDB konektor).

  2. Kliknutím na tlačítko Testovací třída zkontrolujeme, zda je soubor JAR konektoru přístupný pro Base. V případě úspěchu zobrazí Base potvrzovací dialog (obrázek 18). Kliknutím na tlačítko OK tento dialog zavřeme.

Image20

Obrázek 18: Úspěšně načtený dialog konektoru JDBC

  1. Klikneme na tlačítko Další >.

  2. Base zobrazí krok 4 (Nastavit autentizaci uživatele) Průvodce databází (podobně jako na obrázku 8).

  3. Do pole Uživatelské jméno zadáme platné uživatelské jméno. Náš příklad uživatele se jmenuje lotest.

  4. Klepneme na možnost Vyžadováno heslo.

  5. Pokud je potřeba, otestujeme připojení provedením kroků 18)  až 23)   postupu přímého připojení (strana 1).

  6. Klikneme na tlačítko Další >.

  7. Base zobrazí krok 5 (Uložit a pokračovat) Průvodce databází (se stejnými možnostmi, jaké jsou uvedeny na obrázku 3).

  8. Klepneme na možnost Ne, neregistrovat databázi, protože se jedná o testovací databázi.

  9. Klepneme na možnost Otevřít databázi pro úpravy, protože tato možnost je obvykle vhodná pro novou databázi. Pokud si v tuto chvíli nepřejeme databázi upravovat, můžeme tuto možnost zrušit.

  10. Pokud nechceme použít Průvodce tabulkou, ponecháme volbu Vytvořit tabulky pomocí průvodce tabulkou ve výchozím nezaškrtnutém stavu.

  11. Klepneme na tlačítko Dokončit.

  12. Base zobrazí dialogové okno Uložit jako, ve kterém je třeba zadat název a umístění souboru ODB.

  13. Klepneme na tlačítko Uložit.

  14. Průvodce databází se zavře, vytvoří se soubor ODB obsahující informace o připojení k databázi a Base aktualizuje své hlavní okno tak, aby se pod názvem databáze zobrazovaly informace o tabulkách databáze (podobně jako na obrázku 11).

Tabulky lze vytvářet, upravovat a odstraňovat.

V tomto případě se na stavovém řádku zobrazí následující informace:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k základní databázi MySQL nebo MariaDB, zobrazí se dialogové okno Vyžadována autentizace (obrázek 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Tip

Pokud jsou v oblasti Tabulky hlavního okna Base zobrazeny tabulky INFORMATION_SCHEMA, měla by je většina uživatelů obvykle ignorovat. Nejjednodušší je sbalit uzel information_schema ve stromové struktuře tabulky. Případně z hlavní nabídky zvolíme Nástroje > Filtr tabulky, odznačíme uzel information_schema v dialogovém okně Filtr tabulek a klikneme na tlačítko OK. Poté v hlavní nabídce vybereme Zobrazit > Obnovit tabulky, poté uzel information_schema a jeho podřízené uzly již nebudou viditelné v oblasti Tabulky.

Možná omezení a řešení

Tabulky bez primárních klíčů

V MySQL a MariaDB je možné zadávat a měnit data v tabulkách bez pole primárního klíče. Uživatelské rozhraní Base umí takové tabulky zobrazit, ale nenabízí žádné možnosti zadávání nebo úprav.

Pokud chceme použít tabulky bez primárního klíče, můžeme místo toho použít volbu Nástroje > SQL nebo zahrnout makra do formulářů, abychom tabulkám dodali data.

Připojení přes Internet

Připojení k databázím MySQL nebo MariaDB může být k místnímu serveru („localhost“), k síťovému serveru nebo k internetovému serveru. MySQL a MariaDB poskytují systémovou proměnnou wait_timeout, která definuje dobu, po kterou server čeká, než se neaktivní připojení stane aktivním, a teprve poté jej uzavře. V některých případech můžeme mít pocit, že aktuální čekací doba je pro naše úlohy nevhodná, například když byl nastaven nízký wait_timeout, aby nedošlo k překročení maximálního počtu připojení.

V závislosti na nastavení serveru můžeme změnit hodnotu wait_timeout. Zkusíme následující příkaz s použitím volby Nástroje > SQL:

SET SESSION wait_timeout = 600;

Pokud se to podaří, wait_timeout se vynuluje na 600 sekund nebo 10 minut. Jakmile je proveden jakýkoli dotaz, doba čekání do dalšího přerušení se vynuluje na 10 minut.

Pokud nelze wait_timeout nastavit na vyhovující hodnotu, měli bychom zvážit napsání makra, které pošle jednoduchý dotaz (např. SELECT NOW()) v opakujících se intervalech, aby se udrželo otevřené spojení.

U připojení JDBC můžeme zkusit nastavit konfigurační parametr autoReconnect na hodnotu true. V takovém případě může dojít k prvnímu přerušení, ale při dalším pokusu o navázání kontaktu se spojení obnoví.

Při přímém připojení je nutné soubor databáze po přerušení zavřít a znovu otevřít, aby se obnovil kontakt se serverem. Údaje o připojení, jako jsou přihlašovací údaje, však není třeba zadávat znovu.

Přístup k uloženým rutinám

MySQL i MariaDB podporují uložené procedury (procedury a funkce). Uložená procedura je sada příkazů SQL, které jsou uloženy na databázovém serveru a vyvolány pomocí příkazu CALL. Uložená procedura může mít parametry, takže jí můžeme předávat hodnoty a získávat výsledky.

V Base lze uložené procedury volat pomocí volby Nástroje > SQL. Neexistuje však žádný přímý způsob, jak zobrazit výstup z uložené procedury v Base.

Jednoduchým řešením pro přístup k výstupu uložené procedury je zapsat výstup procedury do dočasné tabulky v databázi, která bude viditelná pouze pro aktuálního uživatele databáze. Tento uživatel se pak může dotazovat na dočasnou tabulku a přistupovat k výsledkům uložené procedury. Automatizovanější přístup k řešení tohoto problému je popsán v kapitole 9, Makra.

Databáze PostgreSQL

Přehled

PostgreSQL (často označovaný jednoduše jako „Postgres“) je open-source RDBMS poskytovaný společností The PostgreSQL Global Development Group. Další informace najdeme na webových stránkách PostgreSQL na adrese https://www.postgresql.org/. Odkazy na aktuální i minulé verze dokumentace PostgreSQL najdeme na adrese https://www.postgresql.org/docs/.

Base se může k databázi PostgreSQL připojit jedním ze tří způsobů:

Uživatelské interakce nutné pro připojení k databázi PostgreSQL mají určitou podobnost s interakcemi pro připojení k databázi MySQL nebo MariaDB. Existují však i významné rozdíly. Cílem následujících podkapitol je zdůraznit a vysvětlit tyto rozdíly, aniž bychom opakovali podrobnosti, které jsou shodné s těmi, které již byly popsány pro MySQL/MariaDB.

Úvod do schémat PostgreSQL

Schémata jsou důležitou součástí databáze PostgreSQL, ale noví uživatelé by si měli uvědomit, že termín schema se v jiných relačních systémech správy databází nepoužívá vždy ve stejném významu. Podrobnější informace najdeme v kapitole Schémata v dokumentaci PostgreSQL (https://www.postgresql.org/docs/current/ddl-schemas.html).

Následující poznámky upozorňují na některé vlastnosti schémat PostgreSQL, které se mohou projevit v uživatelském rozhraní Base při připojení k databázi PostgreSQL.

Uživatelem vytvořená schémata se nezobrazují v oblasti Tabulky hlavního okna Base, dokud neobsahují alespoň jeden uložený objekt databáze.

Pokud zjistíme, že oblast Tabulky hlavního okna Base je přeplněná příliš velkým množstvím schémat a/nebo tabulek, zvolíme v hlavní nabídce Nástroje > Filtr tabulky a pomocí dialogového okna Filtr Tabulky vybereme položky, které se mají zobrazit nebo skrýt. Všimneme si, že pro zobrazení účinku změn provedených v tomto dialogu bude možná nutné vybrat Zobrazit> Obnovit tabulky.

Při prvním uložení nové tabulky vytvořené v zobrazení návrhu zobrazí Base dialogové okno Uložit jako, které obsahuje nabídku Schema, z níž je třeba vybrat požadované schéma (obrázek 19). Podobná nabídka je k dispozici v dialogovém okně, které se zobrazí, když vybereme dotaz a poté v hlavní nabídce zvolíme Upravit > Vytvořit jako pohled.

Image1

Obrázek 19: Dialogové okno Uložit jako s rozevírací nabídkou Schéma

Počáteční přípravy před připojením

Podrobné pokyny ke stažení a instalaci softwaru databázového serveru pro naši konfiguraci počítače a podrobnosti o přístupu ke všem nástrojům, které potřebujeme k zadávání příkazů SQL před připojením k databázi Base, nalezneme v dokumentaci PostgreSQL. Po instalaci postupujeme podle pokynů pro nastavení uvedených v dokumentaci. Může jít například o to, aby heslo výchozího superuživatelského účtu databázového serveru (uživatelské jméno postgres) bylo nastaveno na řetězec, který je vhodný pro zachování bezpečnosti dat.

Před navázáním připojení musí na serveru existovat databáze, která nás zajímá, a musíme mít uživatelské jméno a heslo. Pokud databáze a uživatelské jméno ještě neexistují, měl by uživatel postgres provést následující kroky k jejich vytvoření. Příkazy lze zadávat prostřednictvím terminálového rozhraní (například psql) nebo grafického rozhraní (například pgAdmin).

  1. Chceme-li vytvořit (prázdnou) databázi s názvem libretest, zadáme následující příkaz:

       CREATE DATABASE libretest;

  1. Chceme-li udělit všechna práva v nové databázi novému uživateli s názvem lotest a heslem libre, zadáme následující příkazy:

       CREATE USER lotest WITH PASSWORD 'libre';
      
GRANT ALL PRIVILEGES ON DATABASE libretest TO lotest;

  1. Chceme-li v případě potřeby vytvořit schéma s názvem user_area pro uživatele lotest pro ukládání objektů databáze, zadáme následující příkazy:

       CREATE SCHEMA user_area;
      
ALTER SCHEMA user_area OWNER TO lotest;

Po úspěšném dokončení těchto kroků je nová databáze k dispozici a Base se k ní může připojit, jak je popsáno v následujících podkapitolách.

Přímé připojení

Při prvním přímém připojení k určité databázi PostgreSQL provedeme podobné kroky jako při přímém připojení k databázi MySQL/MariaDB (viz podkapitola Přímé připojení  na straně 1), ale s následujícími důležitými rozdíly:

Image7

Obrázek 20: Krok 2 Průvodce databází: Nastavení spojení

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o databázi PostgreSQL (obrázek 21).

Image21

Obrázek 21: Hlavní okno Base při přímém připojení k PostgreSQL

Oblast Tabulky zobrazuje tři schémata, pojmenovaná information_schema, pg_catalogpublic. Schéma public je rozbaleno, aby byly zobrazeny dvě tabulky testtext.

Stavový řádek ve spodní části obrázku 21 zobrazuje:

Když později znovu tento soubor ODB otevřeme a poté použijeme Base pro přístup k základní databázi PostgreSQL, zobrazí se dialogové okno Požadované ověření (podobné tomu na obrázku 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Připojení pomocí ODBC

Počáteční příprava

Chceme-li se pomocí Base připojit k databázovému serveru PostgreSQL prostřednictvím rozhraní ODBC API, měl by být v počítači nainstalován správně nakonfigurovaný ovladač ODBC. Pokud ovladač není v našem počítači k dispozici, budeme k instalaci nového softwaru potřebovat administrátorská práva.

Pro připojení k databázi PostgreSQL prostřednictvím ODBC se doporučuje použít oficiální ovladač PostgreSQL ODBC (psqlODBC). Správnou verzi ovladače ODBC pro náš počítač si můžeme stáhnout z webové stránky psqlODBC na adrese https://odbc.postgresql.org/, kde také najdeme příslušnou dokumentaci. Pro systém Windows je ovladač k dispozici ve standardním, snadno použitelném instalačním balíčku. Pro prostředí Unix musíte zdrojový kód zkompilovat sami podle pokynů uvedených na webových stránkách. Pro použití psqlODBC v systému macOS nejsou uvedeny žádné pokyny.

Při vytváření názvu zdroje dat ODBC (DSN) pro naši databázi postupujeme podle pokynů uvedených v dokumentaci k ovladači. Pro účely příkladu v následujícím pododdíle předpokládejme, že zdroj dat byl nakonfigurován takto:

Použití Průvodce databází

Při prvním připojení ODBC k určité databázi PostgreSQL provedeme podobné kroky jako při připojení ODBC k databázi MySQL/MariaDB (viz podkapitola Použití Průvodce databází na straně 1), ale s následujícími důležitými rozdíly:

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o databázi PostgreSQL.

Ve výchozím nastavení připojení ODBC k PostgreSQL se v oblasti Tabulky zobrazují pouze objekty ve veřejném schématu, i když jsou přítomna jiná uživatelsky definovaná schémata.

Image22

Obrázek 22: Počáteční rozložení oblasti Tabulky pro připojení ODBC k PostgreSQL

Chceme-li zobrazit další definovaná schémata v oblasti Tabulky, může pomoci reset proměnné search_path na úroveň databáze. Jedním z možných způsobů, jak toho dosáhnout, je nakonfigurovat ovladač ODBC tak, aby při připojení k databázi vydal příslušný příkaz. Například v systému Windows lze otevřít ODBC Data Source Administrator, v jehož dialogu vybereme ovladač, klikneme na Konfigurace, klikneme na Zdroj dat, dále na Stránka 2 a pak vložíme příkaz SET SEARCH_PATH TO libretest; v textovém poli Nastavení spojení. V systému Unix se ujistíme, zda soubor „odbc.ini“ obsahuje položku ConnSettings = SET SEARCH_PATH TO libretest;. Účinek změny proměnné search_path vidíme na obrázku 23, na němž je tatáž základní databáze, nyní však vidíme i dodatečné schéma lotest_data.

Image23

Obrázek 23: Aktualizované rozložení oblasti Tabulky pro připojení ODBC k PostgreSQL

Při připojení ODBC k PostgreSQL se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Když později znovu tento soubor ODB otevřeme a poté použijeme Base pro přístup k základní databázi PostgreSQL, zobrazí se dialogové okno Požadované ověření (podobné tomu na obrázku 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Připojení pomocí JDBC

Počáteční příprava

Chceme-li se pomocí Base připojit k databázovému serveru PostgreSQL prostřednictvím rozhraní JDBC API, měl by být v počítači nainstalován příslušný ovladač JDBC. Pokud v našem počítači ovladač není, je třeba jej stáhnout a konkrétní soubor JAR (Java ARchive) umístit do přístupné složky.

Pro připojení k databázi PostgreSQL prostřednictvím JDBC doporučujeme použít oficiální ovladač PostgreSQL JDBC. Správnou verzi ovladače JDBC pro náš počítač si můžeme stáhnout z webové stránky PostgreSQL JDBC Driver na adrese https://jdbc.postgresql.org/. Pokyny k instalaci nalezneme v dokumentaci k ovladači PostgreSQL JDBC, která je dostupná na adrese https://jdbc.postgresql.org/documentation/documentation.html.

Před stažením ovladače JDBC se ujistíme, že jsme vybrali pro konfiguraci našeho počítače správnou verzi. Ovladač JDBC nelze použít, pokud náš systém nepodporuje jazyk Java.

Provedeme podobné kroky jako u připojení JDBC k databázi MySQL/MariaDB, abychom Base informovali, kde najde soubor JAR pro ovladač JDBC (viz podkapitola Počáteční příprava na straně 1).

Použití Průvodce databází

Při prvním připojení JDBC k určité databázi PostgreSQL provedeme podobné kroky jako při připojení JDBC k databázi MySQL/MariaDB (viz podkapitola Použití Průvodce databází na straně 1), ale s následujícími důležitými rozdíly:

Image24

Obrázek 24: Krok 2 Průvodce databází: Nastavení připojení JDBC

Ve výchozím nastavení připojení JDBC k PostgreSQL se v oblasti Tabulky zobrazují pouze objekty ve schématu public, i když jsou přítomna jiná uživatelsky definovaná schémata (například lotest_data na obrázku 25).

Image25

Obrázek 25: Počáteční rozložení oblasti Tabulky pro připojení JDBC k PostgreSQL

Při připojení JDBC k PostgreSQL se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Když později znovu tento soubor ODB otevřeme a poté použijeme Base pro přístup k základní databázi PostgreSQL, zobrazí se dialogové okno Požadované ověření (podobné tomu na obrázku 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Možná omezení a řešení

Kopírování tabulky z jiné databáze

Base můžeme použít ke zkopírování tabulky z nějaké databáze do databáze PostgreSQL. Máme-li obě databáze otevřené v programu Base, klikneme pravým tlačítkem myši na název tabulky ve zdrojové databázi a z kontextové nabídky vybereme Kopírovat. Při kopírování do PostgreSQL databáze zkontrolujeme, zda jsou vybrány Tabulky v oblasti Databáze hlavního okna Base a klikneme na tlačítko Vložit na standardní nástrojové liště. Base zobrazí dialogové okno Kopírovat tabulku (obrázek 26), ve kterém je třeba do pole Název tabulky požadovanou předponu (prefix) doplnit (například „public.“). Pro ovladač ODBC (pro který jsme nastavili search_path na libretest) může být typická předpona „libretest.public“.

Image26

Obrázek 26: Dialogové okno Kopírovat tabulku

Automatické zvyšování hodnot v PostgreSQL

Při práci s vestavěnou HSQLDB databází můžeme vytvořit v tabulce vytvořit primární klíč přidáním sloupce s názvem id (nebo podobným) typu Integer, který má parametr AutoValue nastaven na Yes. Pokud stejný přístup použijeme pro tabulku v databázi PostgreSQL, nebude to mít požadovaný efekt a hodnoty sloupců se nebudou automaticky zvyšovat – musíme je zadat.

Dlouhodobě zavedenou a běžnou metodou přidání sloupce primárního klíče s automatickým nárůstem do tabulky PostgresSQL je použití některého z nestandardních datových typů BIGSERIAL, SERIAL nebo SMALLSERIAL. Například následující kód SQL vytvoří jednoduchou tabulku s datovým typem SERIAL:

CREATE TABLE public.employee (
   
id SERIAL PRIMARY KEY,
   
name VARCHAR(100) NOT NULL
);

Při vytváření tabulky v zobrazení návrhu s přímým nebo ODBC připojením nejsou ve sloupci Typ pole k dispozici datové typy SERIAL. Jsou však k dispozici s připojením JDBC.

V novějších verzích PostgreSQL je k dispozici alternativní přístup, který používá standardní datový typ integer. V tomto případě by bylo možné výše uvedený kód SQL nahradit takto:

CREATE TABLE public.employee (
   
id INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
   
name VARCHAR(100) NOT NULL
);

V případech, kdy nelze vybrat požadovaný typ primárního klíče v Zobrazení návrhu, se doporučuje vybrat v hlavní nabídce Nástroje > SQL, zadat kód SQL potřebný k vytvoření tabulky obsahující pouze požadovaný primární klíč. Poté můžeme přepnout do zobrazení návrhu tabulky a přidat zbývající sloupce. V prvním případě se nová tabulka nemusí v oblasti Tabulky hlavního okna Base zobrazit, ale to lze napravit výběrem Zobrazení > Obnovit tabulky v hlavní nabídce.

Poznámka

Při použití přímého připojení nebo připojení JDBC může při spuštění dotazu pomocí grafického uživatelského rozhraní nastat problém (chyba 130376). Tento problém by mohl vést ke ztrátě dat, ale měl by se vyskytnout pouze u dotazů, které zahrnují automaticky se zvyšující pole a alias tabulky (v klauzuli FROM příkazu SQL). Problému se lze vyhnout buď odstraněním aliasu tabulky, nebo přímým spuštěním takového dotazu pomocí volby Nástroje > SQL. Užijeme-li připojení ODBC, můžeme se potkat s problémem jen tehdy, je-li volba Respektovat u výsledku typ nastavený databázovým ovladačem zaškrtnuta na kartě Speciální nastavení dialogu Úpravy > Databáze > Pokročilá nastavení.

Zobrazení PostgreSQL

Obvyklým mechanismem pro uložení pohledu v programu Base je výběr dotazu a následné zvolení možnosti Úpravy > Vytvořit jako pohled v hlavní nabídce. Tři způsoby připojení k databázi PostgreSQL však vedou při této interakci k následujícím rozdílům v chování:

Pro všechny typy připojení lze pohledy vytvářet pomocí nabídky Nástroje > SQL.

Databáze Firebird4

Přehled

Firebird je open-source RDBMS poskytovaný nadací Firebird Foundation. Více informací najdeme na webových stránkách společnosti Firebird na adrese https://firebirdsql.org/. Odkazy na aktuální a minulé verze dokumentace Firebirdu najdeme na adrese https://firebirdsql.org/en/documentation/.

Base se může připojit k externí databázi prostřednictvím serveru Firebird jedním ze dvou způsobů:

Uživatelské interakce nutné k navázání takového připojení mají určitou podobnost s interakcemi při připojování k databázi MySQL nebo MariaDB. Existují však i významné rozdíly. Cílem následujících podkapitol je zdůraznit a vysvětlit tyto rozdíly, aniž bychom opakovali podrobnosti, které jsou shodné s těmi, které již byly popsány pro MySQL/MariaDB.

Pokud není vyžadován přístup k databázi serveru, je možné v aplikaci Base přímo otevřít externí soubor databáze Firebird. V tomto případě bude otevřená databáze spravována pomocí enginu Firebird zabudovaného v systému Base. Pro využití této funkce není nutné povolit experimentální funkce v rámci Base.

Poznámka

Vestavěný engine je založen na Firebirdu 3.0.7. V příručce Firebird 3 Quick Start Guide se uvádí, že Firebird 3 neotevře databáze vytvořené pomocí dřívějších verzí. Podobně Firebird 4 vytváří databáze s odlišnou strukturou na disku a takové databáze nelze otevřít přímo pomocí vestavěného enginu Firebird 3.

Počáteční přípravy před připojením k serveru Firebird

Podrobné pokyny ke stažení a instalaci softwaru databázového serveru pro naši konfiguraci počítače a podrobnosti o přístupu k nástrojům, které potřebujeme k zadávání příkazů SQL před připojením k databázi Base, najdeme v dokumentaci k Firebirdu. Po instalaci postupujeme podle pokynů pro nastavení uvedených v dokumentaci. Může jít například o to, aby heslo výchozího účtu superuživatele databázového serveru (uživatelské jméno SYSDBA) bylo nastaveno na řetězec, který je vhodný pro zachování bezpečnosti dat. Výchozí heslo pro uživatele SYSDBA je nastaveno na masterkey.

Poznámka

V době přípravy této kapitoly nebyla k dispozici žádná verze Firebirdu 4 ke stažení pro macOS. Kromě toho nebyla k dispozici žádná příručka pro rychlé spuštění Firebirdu 4.

Před navázáním připojení musí existovat databáze, která nás zajímá, a musíme mít uživatelský účet, který nám dává oprávnění pracovat s databází a objekty v ní. Pokud databáze a uživatelské jméno ještě neexistují, měl by je vytvořit superuživatel SYSDBA. Příkazy lze zadávat pomocí nástroje Firebird Interactive SQL Utility (isql) – v prvních verzích Firebirdu byl pro správu uživatelů k dispozici nástroj gsec, který je však již zastaralý a tyto činnosti se provádějí pomocí příkazů SQL.

Poznámka

V některých instalacích Firebirdu by mohl být isql přejmenován na isql-fb, aby se předešlo možné kolizi názvů.

  1. Chceme-li vytvořit (prázdnou) databázi v souboru libretest.fdb, umístěnou v adresáři c:\⁠my_databases\, zadáme následující příkaz (zaměníme řetězec “masterkey” heslem uživatele SYSDBA):

     CREATE DATABASE 'c:\my_databases\libretest.fdb'
    USER SYSDBA
    PASSWORD 'masterkey';

  1. Chceme-li vytvořit nového uživatele s názvem lotest a heslem libre, zadáme následující příkaz:
    .
       CREATE USER lotest PASSWORD 'libre';
    Informace o uživatelích oprávněných k přístupu na konkrétní server Firebird jsou uloženy v bezpečnostní databázi s názvem
    security3.fdb nebo security4.fdb, v závislosti na verzi Firebirdu. Tyto soubory se obvykle nacházejí v instalačním adresáři.

  2. Chceme-li novému uživateli povolit vytváření a změnu tabulek nebo pohledů v databázi libretest, zadáme následující příkazy:

     GRANT ALL PRIVILEGES TABLE TO USER lotest;
    GRANT ALL PRIVILEGES VIEW TO USER lotest;
    COMMIT;

  1. Nakonec je užitečné vytvořit alias pro novou databázi. Upravíme soubor databases.conf, který se obvykle nachází v instalačním adresáři, tak, aby obsahoval řádek:
        libretest=c:\my_databases\libretest.fdb
    To umožňuje odkazovat na databázi pomocí jejího aliasu
    libretest, čímž se skryje fyzické umístění databáze a sníží se možnost chyb při psaní.

Tip

V krocích 2)  a 4)  výše, budeme možná muset upravit oprávnění k souborům security3.fdb, security4.fdb nebo databases.conf před tím než provedeme nějakou akci.

Po úspěšném dokončení těchto kroků je nová databáze k dispozici a Base se k ní může připojit, jak je popsáno v následujících podkapitolách.

Poznámka

Pokud jiný uživatel než lotest vytváří v databázi libretest tabulky, potom možná uživatel lotest nebude mít k těmto tabulkám plný přístup. Chceme-li povolit uživateli lotest plný přístup k tabulce s názvem Tabulka1, zadáme následující příkaz:
.
   GRANT ALL ON TABLE "Table1" TO USER lotest;

Připojení pomocí ODBC

Počáteční příprava

Chceme-li se pomocí Base připojit k serveru Firebird prostřednictvím rozhraní ODBC API, měl by být v počítači nainstalován správně nakonfigurovaný ovladač ODBC. Pokud ovladač není v našem počítači k dispozici, budeme k instalaci nového softwaru potřebovat administrátorská práva.

Pro připojení k databázi serveru Firebird prostřednictvím ODBC se doporučuje použít oficiální ovladač Firebird ODBC. Správnou verzi ovladače Firebird ODBC pro náš počítač si můžeme stáhnout z webových stránek Firebird na adrese https://dev.mysql.com/downloads/connector/odbc/. Pokyny k instalaci závislé na platformě nalezneme v příručce Firebird ODBC/JDBC Driver 2.0, která je přístupná na stránce Firebird Drivers Documentation na adrese https://firebirdsql.org/en/drivers-documentation/.

Poznámka

V době přípravy této části neobsahovala příručka k ovladači Firebird ODBC/JDBC Driver 2.0 žádné pokyny k instalaci pro systém macOS.

Při vytváření názvu zdroje dat ODBC (DSN) pro naši databázi postupujeme podle pokynů uvedených v dokumentaci k ovladači. Pro účely příkladu v následujícím pododdíle předpokládejme, že zdroj dat byl nakonfigurován takto:

Použití Průvodce databází

Při prvním připojení ODBC k určité databázi Firebird provedeme podobné kroky jako při připojení ODBC k databázi MySQL/MariaDB (viz podkapitola Použití Průvodce databází na straně 1), ale s následujícími důležitými rozdíly:

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o databázi Firebird.

Při připojení ODBC k Firebirdu se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k základní databázi Firebird, zobrazí se dialogové okno Požadované ověření (podobné tomu na obrázku 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Tip

Při vytváření tabulek v databázi Firebird prostřednictvím ODBC dbáme na to, aby byl každému poli od začátku přiřazen správný typ. Po uložení tabulky není možné měnit typ pole, je však možné odstranit nežádoucí pole a přidat nová.

Připojení pomocí JDBC

Počáteční příprava

Chceme-li se pomocí Base připojit k serveru Firebird prostřednictvím rozhraní JDBC API, měl by být v počítači umístěn příslušný ovladač JDBC. Pokud v našem počítači ovladač není, je třeba jej stáhnout a konkrétní soubor JAR (Java ARchive) umístit do přístupné složky.

Pro připojení k databázi Firebird prostřednictvím JDBC se doporučuje použít oficiální ovladač Firebird JDBC, který se nazývá Jaybird. Správnou verzi programu Jaybird pro náš počítač si můžeme stáhnout z webových stránek Firebird na adrese https://firebirdsql.org/en/jdbc-driver/. Pokyny k použití nalezneme na stránce Dokumentace ovladačů Firebird na adrese https://firebirdsql.org/en/drivers-documentation/.

Při stahování aplikace Jaybird se ujistíme, že jsme vybrali správnou verzi pro konfiguraci svého počítače. Ovladač JDBC nelze použít, pokud náš systém nepodporuje jazyk Java.

Provedeme podobné kroky jako v případě připojení JDBC k databázi MySQL/MariaDB, abychom informovali Base, kde najde soubor JAR pro Jaybird (viz podkapitola Počáteční příprava na straně 1). Použijeme soubor JAR s názvem ve tvaru jaybird-full-4.0.5.java11.jar (číslice v tomto názvu se liší v závislosti na verzích Jaybird a Java vybraných na stránce pro stažení).

Použití Průvodce databází

Při prvním připojení JDBC k určité databázi Firebird provedeme podobné kroky jako při připojení JDBC k databázi MySQL/MariaDB (viz podkapitola Použití Průvodce databází na straně 1), ale s následujícími důležitými rozdíly:

Při připojení JDBC k Firebirdu se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k základní databázi Firebird, zobrazí se dialogové okno Požadované ověření (podobné tomu na obrázku 12). Připojení není třeba znovu konfigurovat, ale je třeba znovu zadat správné přihlašovací údaje.

Tip

Při vytváření tabulek v databázi Firebird prostřednictvím JDBC dbáme na to, aby byl každému poli od začátku přiřazen správný typ. Po uložení tabulky není možné měnit typ pole, je však možné odstranit nežádoucí pole a přidat nová.

Přímé připojení k souboru Firebird

Chceme-li se připojit k (neserverovému) databázovému souboru Firebird 3 umístěnému v cestě, ke které máme přístup pro čtení a zápis, provedeme podobné kroky jako při nastavení přímého připojení k databázi MySQL/MariaDB (viz podkapitola Přímé připojení na straně 1), ale s následujícími důležitými rozdíly:

Image27

Obrázek 27: Krok 2 Průvodce databází: Nastavení připojení (Externí Firebird)

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o databázi Firebird.

Stavový řádek v dolní části obrazovky zobrazuje:

Poznámka

Připojení k databázi na serveru je možné navázat prostřednictvím serveru Firebird pomocí možnosti Externí Firebird v kroku 1 (Vybrat databázi) Průvodce databází. Možnosti, které jsou prostřednictvím takového připojení k dispozici, však vyžadují další zkoumání a mohou být popsány v některé z příštích verzí této knihy.

Externí databáze HSQLDB

Přehled

Databáze HyperSQL (HSQLDB) je open-source RDBMS napsaná v jazyce Java a poskytovaná společností The HSQL Development Group. Více informací nalezneme na webových stránkách HSQLDB na adrese https://hsqldb.org/. Odkazy na nejnovější dokumentaci k HSQLDB nalezneme na adrese https://hsqldb.org/web/hsqlDocsFrame.html.

Každá databáze HSQLDB obsahuje 2 až 6 souborů v adresáři, všechny se stejným názvem, ale každý s jinou příponou. Možná rozšíření jsou:

Mechanismus integrovaný v databázi Base využívá HSQLDB verze 1.8.0, která byla poprvé vydána v červenci 2005. Existuje několik důvodů, proč se někteří uživatelé mohou rozhodnout použít externí databázi HSQLDB, včetně:

Stávající vestavěnou databázi HSQLDB je možné převést a vyjmout z balíčku ODB tak, aby ji bylo možné použít jako externí databázi. Pokyny pro tento postup však přesahují rámec této kapitoly.

Chceme-li použít externí databázi HSQLDB, připojíme se pomocí ovladače JDBC, který je součástí balíčku HSQLDB JAR. Vzhledem k tomu, že databáze Base i HSQLDB využívají jazyk Java, je logické vytvořit spojení mezi databází Base a externí databází HSQLDB pomocí JDBC. Ačkoli by mělo být možné připojit databázi Base k HSQLDB prostřednictvím ODBC (viz kapitola 17 Uživatelské příručky HyperSQL), podrobnosti o tomto přístupu nejsou v této kapitole uvedeny.

Uživatelské interakce nutné k vytvoření připojení JDBC k externí databázi HSQLDB mají určitou podobnost s odpovídajícími interakcemi při připojení k databázi MySQL nebo MariaDB. Existují však i významné rozdíly. Cílem následujících podkapitol je zdůraznit a vysvětlit tyto rozdíly, aniž bychom opakovali podrobnosti, které jsou shodné s těmi, které již byly popsány pro MySQL/MariaDB.

Poznámka

Poslední verze HSQLDB mají obvykle mnohem více funkcí než starší verze. Při pokusu o převod mezi vloženou databází vytvořenou pomocí verze 1.8.0 a externí databází vytvořenou pomocí novější verze tak pravděpodobně nastanou problémy s kompatibilitou. Zejména externí databázi, která byla upravena pomocí HSQLDB 2.0+, nelze snadno převést na vestavěnou databázi pod Base.

Pokud potřebujeme převést databázi z jedné verze HSQLDB na jinou, užitečné informace najdeme v uživatelské příručce HyperSQL v kapitolách „Upgrade databází“ a „Problémy zpětné kompatibility“.

Upozornění

Integrace externího balíčku JAR HSQLDB hsqldb.jar do cesty tříd Java pro LibreOffice může znamenat, že k vestavěným databázím již nelze správně přistupovat pomocí Base. Base se může pokusit použít externí HSQLDB pro vestavěné databáze. Ačkoli existují kroky, které mohou pokročilejší uživatelé podniknout, aby se takovému problému vyhnuli (například zapsání cesty ke třídě příslušného databázového souboru pomocí makra nebo vložení cesty přímo do souboru content.xml souboru ODB), tyto kroky přesahují rámec této kapitoly.

Úvodní přípravy před připojením k databázi HSQLDB

Pokud jsme spokojeni s funkčností HSQLDB verze 1.8.0, ale chceme ji pouze použít pro externí databázi, pak není třeba stahovat další soubory z Internetu. Můžeme jednoduše použít soubor hsqldb.jar dodaný s naší verzí LibreOffice, který se obvykle nachází v podsložce /program/classes/ v instalační složce programu. Tento přístup zabraňuje problémům vyplývajícím z nekompatibility různých verzí. Jinak si můžeme aktuální i starší verze HSQLDB stáhnout z webových stránek HyperSQL.

Podrobné pokyny ke stažení a instalaci softwaru HSQLDB pro naši konfiguraci počítače a podrobnosti o přístupu ke všem nástrojům, které potřebujeme k zadávání příkazů SQL před připojením k databázi Base, najdeme v Uživatelské příručce HyperSQL. Po instalaci postupujeme podle pokynů pro nastavení uvedených v dokumentaci. Může jít například o to, aby heslo výchozího uživatele admin (SA, což je zkratka pro System Administrator) bylo nastaveno na řetězec, který je vhodný pro zachování bezpečnosti dat. Výchozí heslo pro uživatele SA je prázdné. Můžeme také raději změnit uživatelské jméno správce na jiné než SA. Pro zjednodušení se ve zbytku této části předpokládá, že k databázi HSQLDB se přistupuje pomocí výchozího uživatelského jména SA s prázdným heslem, což se však pro skutečnou databázi nedoporučuje.

HSQLDB se vyznačuje tím, že při pokusu o připojení k databázi, která v současné době neexistuje, je vytvořena nová, prázdná databáze. To znamená, že k vytvoření databáze před připojením k ní není třeba provádět žádné zvláštní přípravné akce.

Identifikujeme umístění souboru hsqldb.jar staženého z webu Hyper SQL (například C:\Users\username\Downloads\hsqldb-2.6.1\hsqldb-2.6.1\hsqldb\lib\hsqldb.jar) a přesuneme jej do jiného umístění, pokud je to pro nás vhodnější. Tento JAR obsahuje engine HyperSQL i ovladač HyperSQL JDBC. Ať už se jedná o připojení pro přístup jednoho nebo více uživatelů, provedeme podobné kroky jako při připojení JDBC k databázi MySQL/MariaDB a informujeme Base, kde najde tento soubor JAR (viz podkapitola Počáteční příprava na straně 1).

Poznámka

V současné době balíček ZIP ke stažení HSQLDB obsahuje jednu verzi souboru hsqldb.jar, která je kompatibilní s Javu 11 nebo novější, a druhou, která je zkompilována s JDK 8. Další verzi zkompilovanou s JDK 6 lze samostatně stáhnout z webových stránek HyperSQL. Ujistíme se, že používáme správnou verzi pro konfiguraci našeho počítače.

Připojení pro jednoho uživatele

Pro přístup jedno uživatelský přístup použijeme připojení v procesu (in-process), jak je popsáno v Uživatelské příručce HyperSQL. Chceme-li nakonfigurovat tento typ připojení, zadáme cestu k databázi v adrese URL připojení.

Při prvním připojení k externí databázi HSQLDB v procesu provedeme podobné kroky jako při připojení JDBC k databázi MySQL/MariaDB (viz podkapitola Použití Průvodce databází  na straně 1), ale s následujícími důležitými rozdíly:

Při probíhajícím připojení k externí databázi HSQLDB se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Připojení k serveru / více uživatelů

Pro víceuživatelský přístup použijeme jeden z režimů serveru popsaných v Uživatelské příručce HyperSQL. V tomto příkladu je použit režim serveru HyperSQL HSQL.

Pokud potřebujeme server spustit, podrobnosti o potřebných krocích nalezneme v Uživatelské příručce HyperSQL. Obvykle to vyžaduje příkaz shellu nebo terminálu ve tvaru:

C:\> java –cp c:/my_databases/hsqldb/lib/hsqldb.jar org.hsqldb.server.Server –-database.0 file:c:/my_databases/mydb –-dbname.0 libretest

Následující body mohou pomoci objasnit tento příkaz:

  1. Příkaz java musí ležet ve vyhledávací cestě příkazů našeho shellu.

  2. V tomto příkladu je balíček HSQLDB JAR umístěn ve složce c:/my_databases/hsqldb/lib.

  3. V tomto příkladu jsou databázové soubory pojmenovány mydb.* a jsou umístěny ve složce c:/my_databases.

  4. Název libretest lze použít k odkazu na databázi, když je Base připojena k serveru.

Při prvním připojení pomocí režimu HyperSQL HSQL Server provedeme podobné kroky jako při připojení JDBC k databázi MySQL/MariaDB (viz podkapitola Použití Průvodce databází na straně 1), ale s následujícími důležitými rozdíly:

Při připojení k externí databázi v režimu HyperSQL HSQL Server se na stavovém řádku hlavního okna Base zobrazují následující informace:

Možná omezení a řešení

Automatické zvyšování hodnot

Před vytvořením automaticky se zvyšujícího pole primárního klíče vybereme v hlavní nabídce možnost Upravit > Databáze > Pokročilá nastavení a klikneme na kartu Generované hodnoty. Zaškrtneme pole Získat vygenerované hodnoty checkbox, zadáme GENERATED BY DEFAULT AS IDENTITY(START WITH 0) v poli Výraz pro automatický přírůstek, zadáme CALL IDENTITY() v poli Dotaz z vygenerovaných hodnot a clikneme na tlačítko OK (obrázek 28).

Image28

Obrázek 28: Dialogové okno Pokročilá nastavení, karta Generované hodnoty pro externí připojení HSQLDB

Tyto úpravy nám mohou umožnit úspěšně definovat pole primárního klíče s automatickým nárůstem. Pokud Base při zadávání dat do tabulky zobrazí chybové hlášení o chybě kontrolního omezení NOT NULL, lze to často napravit vytvořením pole primárního klíče bez automatické hodnoty a následným provedením příkazu ALTER TABLE "table_name" ALTER COLUMN "ID" INT GENERATED BY DEFAULT AS IDENTITY(START WITH 0) pomocí volby Nástroje > SQL option. table__nameID jsou názvy tabulky, resp. pole primárního klíče.

Žádný přístup k tabulkám

Někdy může být databáze HSQLDB otevřena v aplikaci Base, ale není k ní přístup. V tomto případě doporučujeme zvolit v hlavní nabídce Nástroje > SQL a zadat příkaz SHUTDOWN SCRIPT. Doufejme, že následné uzavření a opětovné otevření databáze problém odstraní, i když to nemusí být úspěšné, pokud již byla nahlášena „chyba v souboru skriptu“.

Databáze SQLite

Přehled

SQLite je vestavěný databázový stroj SQL s otevřeným zdrojovým kódem. Na rozdíl od databázových systémů popsaných v předchozích částech této kapitoly nemá SQLite samostatný server. Databáze SQLite se skládají z jediného souboru, který může být uložen kdekoli v souborovém systému a k databázi Base se lze připojit pomocí vhodného ovladače. Další informace najdeme na webových stránkách SQLite na adrese https://www.sqlite.org/. Rozsáhlou dokumentaci k SQLite najdeme na adrese https://www.sqlite.org/docs.html.

Tip

SQLite podporuje omezenou podmnožinu příkazu ALTER TABLE jazyka SQL. Při návrhu tabulek buďme opatrní, protože po vytvoření tabulky je obtížné změnit datový typ sloupce.

Base se může připojit k externímu souboru databáze SQLite pomocí ovladače ODBC. Uživatelské interakce nutné k navázání takového připojení mají určitou podobnost s interakcemi při připojování k databázi MySQL nebo MariaDB. Existují však i významné rozdíly. Cílem následujících podkapitol je zdůraznit a vysvětlit tyto rozdíly, aniž bychom opakovali podrobnosti, které jsou shodné s těmi, které již byly popsány pro MySQL/MariaDB.

Databáze Base v současné době neumožňuje přímé připojení k databázovému souboru SQLite.

Vývojáři SQLite nedodávají ovladač JDBC ke stažení. Ačkoli je na internetu k dispozici několik ovladačů JDBC pro SQLite, v současné době nevíme o žádném, který by podporoval spolehlivé spojení mezi Base a SQLite.

Počáteční přípravy před připojením k souboru SQLite

Před vytvořením připojení musí existovat soubor databáze SQLite, který nás zajímá. Pokud náš databázový soubor ještě neexistuje, můžeme prázdný soubor vytvořit několika způsoby:

Podrobnou dokumentaci k sqlite3 najdeme na adrese https://www.sqlite.org/cli.html. Následující příkazy by měly stačit k vytvoření nového databázového souboru s názvem libretest.db:

  1. Na příkazovém řádku shellu, terminálu nebo operačního systému zadáme:
       sqlite3 libretest.db

  2. Na příkazovém řádku sqlite> zadáme:
       .databases
    sqlite3 poskytuje zpětnou vazbu o přesném umístění vytvořeného souboru.

  3. Na příkazovém řádku sqlite> zadáme:
       .exit
    sqlite3 se uzavře.

SQLite nepředepisuje příponu databázového souboru – mnoho uživatelů použije ".sqlite“, jiní zvolí ".db“, ale je to osobní rozhodnutí.

SQLite neposkytuje kontrolu uživatelského jména a hesla pro databázový soubor.

Připojení pomocí ODBC

Počáteční příprava

Chceme-li se pomocí aplikace Base připojit k databázovému souboru SQLite prostřednictvím rozhraní ODBC API, měl by být v počítači nainstalován správně nakonfigurovaný ovladač ODBC. Pokud ovladač není v našem počítači k dispozici, budeme k instalaci nového softwaru potřebovat administrátorská práva.

Vývojáři SQLite nedodávají ovladač ODBC ke stažení. Na internetu je však k dispozici několik takových ovladačů, z nichž některé jsou open-source a jiné mohou být proprietární. Jeden takový ovladač je k dispozici na webových stránkách Christiana Wernera na adrese http://ch-werner.de/sqliteodbc/, kde je uvedeno, že ovladač byl testován v systémech Windows a Linux. Pokyny k instalaci v závislosti na platformě nalezneme v dokumentaci SQLiteODBC na adrese http://ch-werner.de/sqliteodbc/html/index.html.

Poznámka

V době přípravy této části vývojář ovladače neposkytuje sestavení pro systém macOS. Jiní vývojáři však přispěli několika sestaveními systému macOS pro vybrané starší verze ovladače.

Při vytváření názvu zdroje dat ODBC (DSN) pro naši databázi postupujeme podle pokynů uvedených v dokumentaci k ovladači. Pro účely příkladu v následujícím pododdíle předpokládejme, že zdroj dat byl nakonfigurován takto:

Použití Průvodce databází

Při prvním připojení ODBC k určitému souboru databáze SQLite provedeme podobné kroky jako při připojení ODBC k databázi MySQL/MariaDB (podkapitola Použití Průvodce databází na straně 1), ale s následujícími důležitými rozdíly:

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o databázovém souboru SQLite.

Při připojení ODBC k databázovému souboru SQLite se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Databáze dBASE

Připojení k databázi dBASE

Databáze dBASE využívají typ souboru DBF, což je standardní formát pro ukládání strukturovaných dat. Base se může připojit k databázi obsahující jeden nebo více souborů DBF umístěných v jedné složce. Každý soubor DBF by měl mít příponu ".dbf“ (malými písmeny v systémech, kde jsou názvy souborů citlivé na velikost písmen) a uchovává data pro jednu databázovou tabulku, včetně deskriptorů polí i datových záznamů. Tabulky definované v souborech DBF jsou koncepčně podobné listům v Calcu.

Mezi poli v různých tabulkách neexistují žádné vnitřní vazby / vztahy – to například znamená, že pokud zaměstnanec opustí vaši společnost a vymažeme jeho údaje z tabulky employee, může stále dostávat mzdu za příští měsíc, pokud ji zapomeneme vymazat také z tabulky salary! Pokud jsou takové odkazy pro připojenou databázi dBASE nutné, můžeme je vytvořit pomocí prostředků Base (například formulářů, dotazů a maker).

Tip

LibreOffice Calc umí uložit tabulku jako soubor DBF (ačkoli vzorce a formátování jsou ztraceny) a umí načíst soubor DBF do tabulky. Tato možnost může být užitečná v případech, kdy potřebujeme rychle zobrazit data v tabulce dBASE, která ještě není připojena v databázi Base.

Při prvním připojení k určité databázi dBASE provedeme podobné kroky jako při přímém připojení k databázi MySQL/MariaDB (viz podkapitola Přímé připojení na straně 1), ale s následujícími důležitými rozdíly:

graphics15

Obrázek 29: Krok 2 Průvodce databází: Nastavení připojení dBASE

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o databázi dBASE (obrázek 30), včetně všech souborů DBF ve složce. V uvedeném případě nalezla databáze Base v dané složce šest souborů DBF, které jsou pojmenovány:

graphics16

Obrázek 30: Tabulky v souboru dBASE

Při připojení k databázi dBASE se ve stavovém řádku hlavního okna Base zobrazují následující informace:

Nové tabulky lze vytvářet prostřednictvím uživatelského rozhraní Base, které se zobrazí jako další soubory DBF v zadané složce.

Možná omezení a řešení

  1. Formát souboru DBF nepodporuje koncept deklarace sloupce tabulky jako primárního nebo cizího klíče.

  2. Formát souboru DBF omezuje délku názvů polí v tabulkách na deset znaků.

  3. Při vytváření nové tabulky dBASE je k dispozici podstatně méně různých typů polí než při vytváření tabulek pro většinu jiných databází (například při vytváření tabulky ve vložené databázi HSQLDB). To je vidět na obrázku 31.

graphics17

Obrázek 31: Typy polí dostupné při vytváření nové tabulky dBASE

  1. Ve výchozím nastavení přebírá Base kódování znaků operačního systému. Proto je možné, že při importu speciálních znaků dojde ke vzniku chyb ve starších souborech dBASE. Znakovou sadu lze opravit pomocí nabídky Znaková sada na kartě Další nastavení v dialogovém okně Vlastnosti databáze (obrázek 32), které lze otevřít v hlavní nabídce Úpravy > Databáze > Vlastnosti.

Bild6

Obrázek 32: Dialogové okno Vlastnosti databáze, karta Další nastavení – změna znakové sady

  1. Při kopírování tabulky dBASE do jiné databáze (například do vložené databáze HSQLDB) má průvodce importem problémy s automatickým rozpoznáváním číselných typů polí a polí Ano/Ne (chyba 53027). To může vyžadovat následné opravy.

Tabulky a dokumenty Writer

Přehled

Base se může připojit k existujícímu tabulkovému procesoru nebo dokumentu textového procesoru a použít tabulková data z připojeného zdroje k vyplnění tabulky (tabulek) databáze. Tento způsob přístupu neumožňuje měnit žádná data v připojeném dokumentu. Base však lze použít k zobrazení informací, spouštění dotazů a vytváření sestav na základě dat, která jsou již obsažena v připojeném dokumentu. Base se může připojit k sešitům Calc, sešitům Microsoft Excel, dokumentům Writer a dokumentům Microsoft Word.

Připojení k sešitu

Při prvním připojení k určitému sešitu Calc nebo Microsoft Excel provedeme podobné kroky jako při přímém připojení k databázi MySQL/MariaDB (viz podkapitola Přímé připojení na straně 1), ale s následujícími důležitými rozdíly:

Image29

Obrázek 33: Krok 2 Průvodce databází: Nastavení připojení dokumentu Writer nebo tabulkového procesoru

Base zpracovává tabulková data takto:

Kromě toho databáze Base umožňuje vytvářet tabulky, pohledy, vztahy a dotazy napříč více tabulkami.

Po navázání spojení a vytvoření souboru ODB aktualizuje databáze Base své hlavní okno tak, aby zobrazovalo informace ze sešitu.

Při připojení k tabulkovému procesoru se na stavovém řádku hlavního okna Base zobrazí následující informace:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k datům sešitu, může se zobrazit dialogové okno Vyžadována autentizace (podobná tomu na obrázku 12), v závislosti na tom, zda jsme v kroku 2 Průvodce databází vybrali možnost Vyžadováno heslo. Připojení nemusíme znovu konfigurovat, ale na požádání musíme znovu zadat správné přihlašovací údaje.

Tip

V tabulkovém procesoru Calc je možné zobrazit externí data získaná z internetu – více informací najdeme v kapitole 10, Propojení dat, v Příručce programu Calc. K těmto internetovým údajům lze zase přistupovat v aplikaci Base připojením k příslušné tabulce.

Připojení k dokumentu textového procesoru

Při prvním připojení k určitému dokumentu aplikace Writer nebo Microsoft Word provedeme podobné kroky jako při připojení k tabulkovému procesoru (viz podkapitola Připojení k sešitu na straně 1), ale s následujícím rozdílem:

Chování v kroku 2 (Nastavit spojení k dokumentu Writeru nebo k sešitu) Průvodce databází (Figure 33), je stejné když je v kroku 1 vybrán Sešit nebo Dokument Writeru.

Base zpracovává data v dokumentu následujícím způsobem:

Kromě toho databáze Base umožňuje vytvářet tabulky, pohledy, vztahy a dotazy napříč více tabulkami.

Po navázání spojení a vytvoření souboru ODB aktualizuje databáze Base své hlavní okno tak, aby zobrazovalo informace z dokumentu.

Při připojení k dokumentu se na stavovém řádku hlavního okna Base zobrazují následující informace:

Když později znovu otevřeme tento soubor ODB a poté použijeme Base pro přístup k datům sešitu, může se zobrazit dialogové okno Vyžadována autentizace (podobná tomu na obrázku 12), v závislosti na tom, zda jsme v kroku 2 Průvodce databází vybrali možnost Vyžadováno heslo. Připojení nemusíme znovu konfigurovat, ale na požádání musíme znovu zadat správné přihlašovací údaje.

Úprava dat v tabulkovém procesoru s otevřeným programem Calc i Base

Data v připojeném sešitu Calc nelze v aplikaci Base upravovat. Následující kroky ukazují, jak upravovat data v tabulkovém procesoru při současně otevřené databázi Base i připojeném tabulkovém procesoru Calc.

  1. Ujistíme se, že přidružený sešit NENÍ otevřený, a poté otevřeme soubor Base.

  2. Otevřeme související sešit. Calc otevře soubor s ochranou pouze pro čtení – všimněme si zprávy v horní části okna Calcu „Tento dokument je otevřen v režimu pouze pro čtení“. Klikneme na sousední tlačítko Upravit dokument.

  3. Otevřeme sešit v aplikaci Base. Pokud se v příslušné oblasti v programu Calc změní existující data, zvolíme v hlavní nabídce Data > Obnovit v okně Base: Pohled na data tabulky, aby se změněná data zobrazila v souboru Base.

  4. Pokud jsou v rámci aplikace Calc do příslušné oblasti přidána další data, nemusí se v předchozím kroku nová data zobrazit v Base. V takovém případě zavřeme okno Base: Pohled na data tabulky a v hlavním okně Base zvolíme v hlavní nabídce Zobrazit > Obnovit tabulky. Poté tabulku znovu otevřeme a nová data by měla být viditelná.

Kroky 3)  a 4)  výše data v sešitu bez uložení změn. K uložení upraveného souboru Calc se stejným názvem a do původního umístění by bylo nutné provést další kroky.

Podobnou strategii lze použít ke změně dat v souboru Writer při zobrazení změn v databázi Base.

Textové databáze

Přehled

Může se stát, že budeme potřebovat načíst data do databáze, ale zjistíme, že data nejsou ve formě přímo podporované ovladači poskytovanými v databázi Base. Taková data lze často převést do formátu CSV (hodnoty oddělené čárkou) nebo jiného vhodného textového formátu, případně pomocí programu Calc. Databáze Base nabízí dvě různé metody pro začlenění dat z textových souborů do databázových tabulek:

  1. Pokud používáme vloženou nebo externí databázi HSQLDB, můžeme využít specifické možnosti HSQLDB pro vytváření textových tabulek.

  2. Případně se můžeme připojit k existující sadě textových souborů pomocí Průvodce databází.

Tyto možnosti jsou popsány v následujících podkapitolách.

Textové tabulky HSQLDB

Textové tabulky HSQLDB jsou soubory CSV nebo jiné soubory s oddělenými znaky, se kterými se zachází jako s tabulkami SQL. Textovou tabulku tohoto druhu nelze vytvořit přímo pomocí grafického rozhraní Base, ale místo toho použijeme příkaz CREATE TEXT TABLE pomocí volby Nástroje > SQL. Například:

CREATE TEXT TABLE "company_data" (
   
"Date" DATE PRIMARY KEY,
   
"Open" DOUBLE,
   
"High" DOUBLE,
   
"Low" DOUBLE,
   
"Close" DOUBLE,
   
"Adj Close" DOUBLE,
   
"Volume" BIGINT
);

vytvoří prázdnou textovou tabulku určenou k uložení historických dat o ceně akcií společnosti.

Následuje příkaz SET TABLE, který určuje soubor a oddělovací znak, který textová tabulka používá. Například:

    SET TABLE "company_data"
   SOURCE "share_prices.csv;encoding=UTF-8;ignore_first=true";

propojí soubor share_prices.csv s textovou tabulkou company_data. Tento příkaz předpokládá, že soubor CSV je ve stejné složce jako databáze.

Další informace nalezneme v kapitole Textové tabulky v Uživatelské příručce HyperSQL (https://hsqldb.org/doc/2.0/guide/guide.pdf).

Při používání textových tabulek HSQLDB v rámci databáze Base je třeba vzít v úvahu následující faktory:

  1. Po vytvoření textové tabulky může být nutné zvolit v hlavní nabídce Zobrazit > Obnovit tabulky, než se nová tabulka zobrazí v oblasti Tabulky hlavního okna Base. V oblasti Tabulky se vzhled ikony pro textovou tabulku liší od vzhledu „normální“ tabulky.

  2. Podkladový textový soubor je možné současně otevřít (a upravovat) v jiných externích programech, například v tabulkovém procesoru nebo v aplikacích pro úpravu textu. Toto chování by mohlo způsobit zmatek a ztrátu dat.

  3. Při úpravě záznamu v databázi Base se změní pořadí záznamů v základním datovém souboru. Konkrétně se vyprázdní původní umístění záznamu a aktualizovaný záznam se připojí na konec souboru.

  4. V uživatelské příručce HyperSQL je uvedeno upozornění, že textové tabulky nejsou tak odolné proti selhání stroje jako jiné typy tabulek. Je to proto, že jiné typy tabulek obsahují další mechanismy pro zachování integrity dat.

Připojení k textovým souborům

V aplikaci Base můžeme vytvořit kompletní databázi přístupem k sadě textových souborů ve složce. Tyto soubory budou často ve formátu CSV, ale není to nezbytné, i když všechny musí mít stejný formát. Soubory budou otevřeny pouze pro čtení, bez možnosti zápisu.

Textové databáze v této podobě sice často nejsou vhodné pro běžné použití, ale lze je použít k rychlému vyhledávání zajímavých záznamů v souboru CSV nebo k importu souboru CSV do jiné databáze pomocí funkce kopírování. Soubor CSV stačí přesunout do určené složky a poté jej lze snadno vyhledávat nebo kopírovat.

Při prvním připojení k určité textové databázi provedeme podobné kroky jako při přímém připojení k databázi MySQL/MariaDB (viz podkapitola Přímé připojení na straně 1), ale s následujícími důležitými rozdíly:

Image30

Obrázek 34: Krok 2 Průvodce databází: Nastavení připojení k textovým souborům

Po navázání spojení a vytvoření souboru ODB aktualizuje Base své hlavní okno a zobrazí informace o textové databázi. V oblasti Tabulky se zobrazí seznam vytvořených tabulek, jedna pro každý soubor správného typu, který se nachází v zadané složce. Název tabulky bude nastaven na odpovídající název souboru (bez přípony). Kromě toho databáze Base umožňuje vytvářet tabulky, pohledy, vztahy a dotazy napříč více tabulkami.

Při připojení k textové databázi se ve stavovém řádku hlavního okna Base zobrazí následující informace:

Následná úprava vlastností připojení

Ve většině případů povedou pokyny uvedené v předchozích částech této kapitoly k připojení k externí databázi, které bude fungovat podle očekávání. Občas se však může stát, že připojení nebude fungovat tak, jak má. Může se například změnit něco v základních parametrech připojení (například řetězec připojení, název ovladače nebo uživatelské jméno databáze), může být potřeba jiná znaková sada nebo dílčí formuláře nemusí fungovat správně. Změny vlastností připojení lze provést výběrem Úpravy > Databáze v hlavní nabídce a následným výběrem jedné ze tří možností:

  1. Vlastnosti. Dialogové okno Vlastnosti databáze umožňuje měnit vlastnosti aktuálního připojení, ale nepodporuje výběr alternativního typu připojení. Nabízí jednu nebo více karet, na kterých lze provést úpravy parametrů připojení, z nichž většina byla původně nakonfigurována prostřednictvím Průvodce databází.

  2. Typ připojení. Vyvolá Průvodce vlastnostmi databáze, který umožňuje přepnutí na jiný typ připojení. Můžeme například přepnout z připojení ODBC na JDBC nebo přímé připojení. To může být užitečné, pokud chceme vyzkoušet, který typ připojení nejlépe vyhovuje naší aplikaci. Možnosti zobrazené v jednotlivých krocích jsou podobné jako v Průvodci databází.

  3. Pokročilá nastavení. Dialogové okno Rozšířená nastavení obsahuje jednu nebo více karet s ovládacími prvky pro úpravu různých nastavení, která nejsou nakonfigurována při použití Průvodce databází. Dostupné možnosti závisí na typu databáze a připojení. V závislosti na databázovém systému existují různé příkazy pro automatické generování přírůstkových hodnot – pomocí karty Generované hodnoty lze řídit zacházení s automaticky generovanými hodnotami pro nové datové záznamy – další informace získáme vyhledáním „Generované hodnoty“ v modulu Base systému nápovědy. Záložka Speciální nastavení umožňuje zadat různé podrobné volby, které ovlivňují způsob, jakým Base spolupracuje s databází – další informace nalezneme v nápovědě modulu Base.

Obrázek 35 představuje typický příklad dialogového okna Vlastnosti databáze pro připojení ODBC k databázi PostgreSQL. V tomto případě dialogové okno obsahuje dvě karty, Pokročilé vlastnostiDalší nastavení. Na kartě Pokročilé vlastnosti jsou ovládací prvky pro výběr alternativního zdroje dat ODBC nebo jiných přihlašovacích údajů. Karta Další nastavení umožňuje výběr jiné znakové sady a zadání volitelných nastavení ODBC.

Image31

Obrázek 35: Dialogové okno Vlastnosti databáze – karta Rozšířené vlastnosti (vlevo) a karta Další nastavení (vpravo)

Obrázek 36  zobrazuje první krok Průvodce vlastnostmi databáze. Ve výchozím nastavení je rozevírací seznam Typ databáze nastaven tak, aby odrážel aktuální typ připojení (v tomto příkladu ODBC). Z nabídky vybereme jinou možnost pro změnu typu připojení a poté klikneme na tlačítko Další a začneme vyplňovat parametry nového typu připojení, podobně jako v příslušných krocích Průvodce databází.

Image32

Obrázek 36: Krok 1 Průvodce vlastnostmi databáze: Pokročilé vlastnosti

Obrázek 37 ukazuje příklad dialogového okna Upřesnit nastavení pro připojení ODBC k databázi PostgreSQL. V tomto případě dialogové okno obsahuje dvě karty, Generované hodnotySpeciální nastavení. Některé možnosti na kartě Speciální nastavení budou možná nedostupná (zašedlá) pokud je nejde pro databázi změnit (například volba Použít klíčové slovo AS před aliasy tabulek na obrázku 37).

Image33

Obrázek 37: Dialogové okno Rozšířená nastavení – karta Generované hodnoty (vlevo) a karta Speciální nastavení (vpravo)

Některá pokročilá nastavení nelze změnit prostřednictvím grafického uživatelského rozhraní Base. Za určitých okolností však zkušený uživatel dokáže upravit soubor content.xml v rámci souboru ODB databáze a problém vyřešit. Zde je příklad, který způsobil problémy při přechodu z LibreOffice 6.0 na LibreOffice 6.1: Dílčí dotazy v MySQL již nefungovaly podle očekávání, protože byl znemožněn přenos spojovací hodnoty (parametru). To lze napravit otevřením souboru content.xml a nalezením kódu:

a<db:driver-settings db:system-driver-settings="" db:base-dn="" db:parametername-substitution="false"/>

Změna tohoto řádku na:

<db:driver-settings db:system-driver-settings="" db:base-dn=""/>

vyřešila problém, který v té době existoval. Alternativně bylo možné napsat makro, které by dosáhlo stejného výsledku.

Obsah