<sect2 id="using-setup-database">
    <title
>Параметри бази даних</title>

    <para>

        <note
><para
>Вступні зауваження щодо вбудованого сховища даних можна знайти у розділі <link linkend="intro-database"
>Вступ щодо баз даних &digikam;</link
>. </para
></note>

    </para>

    <sect3 id="using-setup-database-sqlite">
        <title
>База даних SQLite</title>

        <para
><ulink url="https://sqlite.org"
>SQLite</ulink
> є реляційною системою керування базами даних, роботу якої забезпечує бібліотека, написана мовою програмування C. SQLite не можна безпосередньо порівнювати із клієнт-серверними рушіями баз даних SQL, зокрема MySQL, Oracle або PostgreSQL. Це швидше вбудований рушій для роботи з базами даних SQL, тобто ця бібліотека просто вбудовується до кінцевої програми. SQLite читає і записує дані безпосередньо до звичайних файлів на диску. Для сховищ даних на локальних пристроях із низькою конкурентністю запису та менш ніж терабайтом даних, SQLite є майже завжди кращим рішенням. SQLite — швидка і надійна база даних, яка не потребує налаштовування або супроводу. Вона усе спрощує. SQLite «просто працює». </para>

        <para
>Типово, у &digikam; для зберігання важливих метаданих і мініатюр використовується SQLite. Трьома файлами SQLite, які використовуються для зберігання даних є відповідно: <orderedlist>

                <listitem
><para
>Основна: digikam4.db. </para
></listitem>

                <listitem
><para
>Мініатюри: thumbnails-digikam.db. </para
></listitem>

                <listitem
><para
>Обличчя: recognition.db. </para
></listitem>

            </orderedlist>

        </para>

        <para
>Для забезпечення швидкої і безперебійної роботи програми рекомендуємо вам час від часу виконувати перевірку і оптимізацію баз даних. Зробити це можна за допомогою пакунків sqlite3 або навігатора sqlite (високоякісна, проста у використанні програма із графічним інтерфейсом для керування об’єктами баз даних). В Ubuntu і похідних дистрибутивах встановити ці пакунки можна за допомогою команд <command
>sudo apt-get install sqlite3</command
> та <command
>sudo apt-get install sqlitebrowser</command
>. Далі, достатньо відкрити вікно термінала і перейти до каталогу, де зберігаються бази даних. </para>

        <note
><para
>Для бази даних мініатюр варто скористатися швидким диском (наприклад SSD) із достатнім обсягом вільного місця. Не варто використовувати для таких баз даних віддалені файлові системи, зокрема NFS. З міркувань забезпечення швидкодії та технічних причин не можна використовувати для баз даних портативні носії даних. </para
></note>

        <para
>Файли баз даних SQLite можна знайти у вашій теці «Збірки», яку ви додали до &digikam;. (Типово, якщо вами додається збірка «Картинки», файли баз даних зберігатимуться у теці <filename class="directory"
>~/Картинки</filename
>). </para>

        <para>
            <inlinemediaobject
><imageobject>
                <imagedata fileref="&path;intro-database-sqlite.png" format="PNG"/></imageobject>
            </inlinemediaobject>
        </para>

    </sect3>

    <sect3 id="using-setup-database-mysql">
        <title
>База даних MySQL</title>

        <sect4>
            <title
>MySQL чи SQLite</title>

            <para
><ulink url="https://www.mysql.com"
>MySQL</ulink
> — система керування реляційними базами даних з відкритим кодом, написана мовами програмування C та C++. Першу версію MySQL було створено Майклом Віденіусом (Michael Widenius) і Девідом Ексмарком (David Axmark) у 1994 році. У 2008 році MySQL було придбано компанією Sun Microsystems, яку згодом у 2010 році було придбано компанією Oracle in 2010. Поточні версії MySQL можуть працювати майже на будь-яких програмних платформах (Linux, Microsoft Windows, OS X, SunOS …). </para>

            <para
>Сервер <ulink url="https://mariadb.org/"
>MariaDB</ulink
> — відгалуження у розробці сервера MySQL, розвиток якого здійснює спільнота розробників. Розпочата основними розробниками із початкової команди розробників MySQL, MariaDB активно працює із зовнішніми розробниками з метою створення сервера SQL із найширшими можливостями, найліпшою стабільністю та найліпшими умовами ліцензування у індустрії. </para>

            <para
>MariaDB фактично замінює MySQL через декілька основних причин: <orderedlist>

                    <listitem
><para
>Розробка MariaDB є відкритішою та активнішою. </para
></listitem>

                    <listitem
><para
>Більше найновіших можливостей. </para
></listitem>

                    <listitem
><para
>Більше рушіїв зберігання даних. </para
></listitem>

                    <listitem
><para
>Краща швидкодія. </para
></listitem>

                    <listitem
><para
>Сумісність і простота у перенесенні даних. </para
></listitem>

                </orderedlist>

            </para>

            <para
>Крім того, у &digikam; передбачено підтримку популярного рушія роботи із базами даних MySQL. Звичайно ж, у вас може виникнути питання: «Навіщо переходити на MySQL, якщо SQLite вже добре виконує усі завдання з керування даними?» Використання MySQL як модуля роботи з базами даних &digikam; має багато переваг, зокрема, якщо у збірці понад 100000 записів. При роботі з такими великими збірками у SQLite є проблеми з латентністю, які уповільнюють роботу програми. </para>

            <para
>Використання MySQL як модуля роботи з базами даних &digikam; надасть вам змогу зберігати дані на локальному або віддаленому сервері. Локальним сервером можна замінити локальне сховище SQLite, а віддаленим можна скористатися для зберігання даних на спільному комп’ютері у мережі. Ви зможете користуватися декількома екземплярами &digikam; (наприклад на вашому ноутбуці та стаціонарному комп’ютері) для доступу і керування вашими збірками фотографій. Ви також зможете скористатися інструментами MySQL для створення резервних копій та аналізу даних &digikam;. </para>

            <para
>Щоб перейти з використання баз даних SQLite на використання баз даних MySQL, відкрийте меню <guimenu
>Параметри</guimenu
>, виберіть пункт <guimenuitem
>Налаштувати &digikam;</guimenuitem
> і перейдіть до розділу <guilabel
>Параметри</guilabel
>. виберіть відповідну базу даних зі спадного списку. <orderedlist>

                    <listitem
><para
>Вбудована MySQL: за допомогою цього варіанта можна скористатися вбудованим сервером баз даних на вашій системі. Для встановлення з’єднань із базами даних &digikam; використовуватиме сокет Unix. </para
></listitem>

                    <listitem
><para
>Віддалена MySQL: цим варіантом можна скористатися, якщо ваші дані зберігаються на віддаленому сервері, а ви на іншому комп’ютері користуєтеся доступом до збірки зображень. </para
></listitem>

                </orderedlist>

            </para>

        </sect4>

        <sect4>
            <title
>Вбудований сервер MySQL</title>

            <para
>Якщо ви користуєтеся великою збіркою зображень, яка складається з понад 10000 об’єктів, робота програми може значно уповільнитися. Щоб усунути затримки і допомогти програмі працювати ефективніше, у &digikam; передбачено можливість використання <guilabel
>Вбудованого сервера MySQL</guilabel
>. Якщо бути точним, це насправді не сервер із доступною клієнтам мережею. Це такий сервер, який працює лише, якщо працює програма. </para>

            <para
>Вбудований сервер створює окрему базу даних, доступ до якої (лише під час роботи програми) можна здійснювати за допомогою команди: <command
>mysql --socket=/home/<replaceable
>[ім’я_користувача]</replaceable
>/.local/share/digikam/db_misc/mysql.socket digikam</command
> </para>

            <para
>Для роботи вбудований сервер використовує два виконуваних файли з MySQL — <application
>mysql_install_db</application
> і <application
>mysqld</application
>. Налаштувати розташування цих файлів можна за допомогою діалогового вікна налаштувань. &digikam; намагатиметься автоматично виявити розташування цих виконуваних файлів, якщо їх встановлено у системі. </para>

            <para>
                <inlinemediaobject
><imageobject>
                    <imagedata fileref="&path;intro-database-mysqlinternal.png" format="PNG"/></imageobject>
                </inlinemediaobject>
            </para>

        </sect4>

        <sect4>
            <title
>Віддалений сервер MySQL</title>

            <para
>Звичайно ж, для використання &digikam; з віддаленим MySQL, вам потрібен сервер MySQL або сервер MariaDB, яким також можна скористатися. (Встановити такий сервер доволі просто, якщо скористатисяC <ulink url="http://www.liquidweb.com/kb/how-to-install-mariadb-5-5-on-ubuntu-14-04-lts/"
>цим посиланням</ulink
>.) </para>

            <para
>Наведеними нижче настановами можна скористатися, якщо у вас немає окремого облікового запису користувача для доступу до баз даних і базу даних &digikam; вже налаштовано. Віддайте такі команди на сервері MySQL (замінивши пароль на відповідний): </para>

            <note
><para
>Ви можете вибрати будь-яку назву бази даних. (У нашому прикладі «digikam».) Просто не забудьте правильно заповнити назви баз даних у полях основної бази даних та баз даних мініатюр і облич у діалоговому вікні, зразок якого наведено нижче. </para
></note>

            <blockquote
><screen
>CREATE USER ''@'%' IDENTIFIED BY 'password';
                GRANT ALL ON *.* TO ''@'%' IDENTIFIED BY 'password';
                CREATE DATABASE digikam;
                GRANT ALL PRIVILEGES ON digikam.* TO ''@'%';
                FLUSH PRIVILEGES;
            </screen
></blockquote>

            <note
><para
>Якщо у вас величезна збірка зображень, вам слід запускати сервер MySQL за допомогою такої команди: <command
>mysql --max_allowed_packet = 128M</command
> </para
></note>

            <para
>Далі, у &digikam; скористайтеся пунктом меню <menuchoice
><guimenu
>Параметри</guimenu
> <guimenuitem
>Налаштувати &digikam;</guimenuitem
></menuchoice
> і у розділі <guilabel
>Параметри</guilabel
> виберіть зі спадного списку <guilabel
>Сервер MySQL</guilabel
>. </para>

            <para>
                <inlinemediaobject
><imageobject>
                    <imagedata fileref="&path;intro-database-remotemysql.png" format="PNG"/></imageobject>
                </inlinemediaobject>
            </para>

            <para
>Введіть IP-адресу вашого сервера MySQL до поля <guilabel
>Назва вузла</guilabel
> і вкажіть правильний номер порту у полі <guilabel
>Порт</guilabel
> (типовим номером порту є 3306). </para>

            <para
>У полі <guilabel
>Назва основної бази даних</guilabel
> вкажіть назву першої бази даних, де зберігатимуться метадані фотографій. </para>

            <para
>Назву другої бази даних, де зберігатимуться стиснені за допомогою вейвлетів мініатюри зображень, вкажіть у полі <guilabel
>Назва бази даних мініатюр</guilabel
>. </para>

            <para
>Третю базу даних призначено для зберігання гістограм облич з метою їхнього розпізнавання. Для визначення назви бази даних скористайтеся пунктом <guilabel
>Назва бази даних облич</guilabel
>. </para>

            <para
>Щоб встановити безпечне з’єднання із віддаленим сервером, вкажіть ваші параметри розпізнавання MySQL за допомогою полів <guilabel
>користувач</guilabel
> і <guilabel
>пароль</guilabel
>. </para>

            <para
>Щоб перевірити, чи працює база даних належним чином, натисніть кнопку <guibutton
>Перевірити з’єднання</guibutton
>. Якщо все працює як слід, перемкніться до розділів збірок і додайте каталоги, які містять ваші фотографії. Натисніть кнопку <guibutton
>Гаразд</guibutton
> і зачекайте, доки &digikam; заповнить бази даних даними фотографій. Заповнення може бути доволі тривалим, якщо у вас багато фотографій. </para>

            <para
>Забезпечити найкращі результати у використанні віддаленого сервера баз даних MySQL допоможуть наші підказки і рекомендації. </para>

            <para
>Якщо мережа працює повільно, &digikam; витрачатиме багато часу на обробку запитів, зокрема якщо у альбомі багато записів (
>1000). Викладені рекомендації працюватимуть лише у швидкій мережі. Якщо користуватися, наприклад, Wifi, можуть виникнути проблеми. Перехід на Ethernet усуває ці проблеми. </para>

            <para
>Крім того, якщо у вас величезна збірка зображень, вам слід запускати сервер MySQL за допомогою такої команди: <command
>mysql --max_allowed_packet = 128M</command
>. (Якщо ви добре знаєтеся на користуванні MySQL, ви також можете змінити параметри роботи сервера за допомогою файла my.ini або ~/.my.cnf.) </para>

        </sect4>

    </sect3>

    <sect3 id="using-setup-database-migration">
        <title
>Перенесення бази даних</title>

        <para
>Програма з керування зображеннями постачається із інструментом «Перенесення баз даних», за допомогою якого користувачі можуть переносити свої дані. Припустімо, ви користуєтеся SQLite і хочете перенести ваші дані до бази даних MySQL. У цьому вам допоможе інструмент перенесення. Він допоможе вам переносити дані з формату SQLite до формату MySQL, і навпаки. </para>

        <para
>Щоб перейти на іншу систему роботи з базами даних, скористайтеся пунктом меню <menuchoice
><guimenu
>Параметри</guimenu
> <guimenuitem
>Перенесення бази даних</guimenuitem
></menuchoice
>. У відповідь буде відкрито таке діалогове вікно: </para>

        <para>
            <inlinemediaobject
><imageobject>
                <imagedata fileref="&path;intro-database-migration.png" format="PNG"/></imageobject>
            </inlinemediaobject>
        </para>

        <para
>Тепер виберіть відповідні типи баз даних, дані з яких ви хочете перетворити. Нарешті, натисніть кнопку <guibutton
>Перенести</guibutton
>, щоб перетворити дані бази даних з формату SQLite на формат MySQL (або навпаки). </para>

    </sect3>

    <sect3 id="using-setup-database-backup">
        <title
>Рекомендації щодо резервного копіювання баз даних</title>

        <para
>З міркувань захисту даних планування резервного копіювання баз даних за допомогою crontab і мережі може запобігти втраті даних у разі відмови пристрою. Для резервного копіювання можна також скористатися NAS або зовнішніми диском. </para>

        <para
>У кожної бази даних може бути власна назва, не лише «digikam». Використання цієї назви надає змогу користувачу створювати резервну копію лише потрібних йому даних. Наприклад, якщо назвати основну базу даних «digikamCore», можна ізолювати відповідну таблицю (найважливіші дані). Бази даних мініатюр та розпізнавання облич завжди можна створити на основі початкових зображень, тому їхня втрата не є критичною. </para>

        <para
>У розділі <link linkend="tool-maintenance"
>Засіб обслуговування &digikam;</link
> наведено пояснення щодо обслуговування вмісту баз даних і синхронізування даних збірок із базами даних і навпаки. </para>

    </sect3>

    <sect3 id="using-setup-database-statistics">
        <title
>Статистика бази даних</title>

        <para
>У &digikam; передбачено унікальний інструмент для отримання статистичних даних щодо збірки. Можна отримати дані щодо кількості зображень, відео (із розподілом за форматами зображень), міток тощо. Крім того, інструмент надає дані щодо модуля роботи із базою даних (QSQLITE або QMYSQL) та розташування файла бази даних (місця, де зберігаються дані вашої збірки). </para>

        <para
>Переглянути статистичні дані щодо роботи бази даних можна за допомогою пункту меню <menuchoice
><guimenu
>Довідка</guimenu
> <guimenuitem
>Статистика бази даних</guimenuitem
></menuchoice
>. У відповідь буде показано приблизно таке діалогове вікно: </para>

        <para>
            <inlinemediaobject
><imageobject>
                <imagedata fileref="&path;intro-database-statistics.png" format="PNG"/></imageobject>
            </inlinemediaobject>
        </para>

    </sect3>

</sect2>

<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->
