<sect2 id="using-setup-database">
    <title
>Arranjament de la base de dades</title>

    <para>

        <note
><para
>Per a una introducció sobre l'emmagatzematge de dades intern, referiu-vos a la secció <link linkend="intro-database"
>Introducció a les bases de dades del &digikam;</link
>. </para
></note>

    </para>

    <sect3 id="using-setup-database-sqlite">
        <title
>La base de dades SQLite</title>

        <para
>El <ulink url="https://sqlite.org"
>SQLite</ulink
> és un sistema per a la gestió d'una base de dades relacional, continguda a la biblioteca de programació C. El SQLite no és directament comparable amb els motors de bases de dades SQL amb client/servidor, com ara el MySQL, Oracle o PostgreSQL. Més aviat, és un motor de base de dades SQL incrustat, &ead;, que està incrustat en un programa final. El SQLite llegeix i escriu directament a fitxers de disc normals. Per a l'emmagatzematge al dispositiu local amb una baixa concurrència en l'escriptura i menys d'un terabyte de contingut, el SQLite és gairebé sempre una solució millor. És ràpid i fiable, i no requereix cap configuració o manteniment. Manté les coses senzilles. El SQLite «simplement funciona». </para>

        <para
>Per omissió, el &digikam; utilitza el SQLite com el seu dorsal per emmagatzemar les metadades i miniatures importants. S'utilitzen tres fitxers SQLite per al seu emmagatzematge, respectivament s'anomenen: <orderedlist>

                <listitem
><para
>Nucli: digikam4.db. </para
></listitem>

                <listitem
><para
>Miniatures: thumbnails-digikam.db. </para
></listitem>

                <listitem
><para
>Cares: recognition.db. </para
></listitem>

            </orderedlist>

        </para>

        <para
>Per a fer que la vostra aplicació s'executi de pressa i sense problemes, es recomana comprovar i optimitzar les bases de dades de tant en tant. Això podria aconseguir-se emprant els paquets sqlite3 o el navegador sqlite (alta qualitat, eina visual fàcil d'utilitzar per a gestionar objectes de la base de dades). Per a la Ubuntu i les seves derivades, l'hauríeu de rebre emprant <command
>sudo apt-get install sqlite3</command
> o <command
>sudo apt-get install sqlitebrowser</command
>. Ara tot el que falta és, obrir el terminal i canviar al directori on s'emmagatzemen les bases de dades. </para>

        <note
><para
>Aneu amb compte d'emprar un lloc allotjat amb maquinari ràpid (com ara SSD) amb prou espai lliure, especialment per a la base de dades de les miniatures. Un sistema de fitxers remot, com ara NFS, no es pot utilitzar aquí. Per raons de rendiment i tècniques, no es pot utilitzar un suport extraïble. </para
></note>

        <para
>Els fitxers de la base de dades SQLite es poden trobar a la carpeta «col·lecció», que heu afegit al &digikam;. (Per omissió, si s'afegeix la col·lecció «Imatges», els fitxers de la base de dades restaran a la carpeta <filename class="directory"
> ~/Imatges</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
>La base de dades MySQL</title>

        <sect4>
            <title
>MySQL vers SQLite</title>

            <para
>El <ulink url="https://www.mysql.com"
>MySQL</ulink
> és un sistema per a la gestió d'una base de dades relacional i és de codi obert, escrit en C i C++. El desenvolupament original de MySQL va ser fet per en Michael Widenius i David Axmark el 1994. Sun Microsystems adquireix MySQL el 2008, la qual va ser adquirida després per Oracle el 2010. El MySQL actualment funciona en gairebé totes les plataformes de sistema (Linux, Microsoft Windows, OS X, SunOS, &etc;) </para>

            <para
>El servidor <ulink url="https://mariadb.org/"
>MariaDB</ulink
> és una bifurcació del servidor de MySQL desenvolupat per la comunitat. Iniciat pels principals membres de l'equip original de MySQL, es treballa activament amb desenvolupadors externs per lliurar el servidor SQL obert més complet de característiques, estable i amb una llicència assenyada per a la indústria. </para>

            <para
>En realitat el MariaDB ha superat al MySQL, causa d'algunes raons bàsiques: <orderedlist>

                    <listitem
><para
>El desenvolupament de MariaDB és més obert i vibrant. </para
></listitem>

                    <listitem
><para
>Més característiques d'avantguarda. </para
></listitem>

                    <listitem
><para
>Més motors d'emmagatzematge. </para
></listitem>

                    <listitem
><para
>Millor rendiment. </para
></listitem>

                    <listitem
><para
>Compatible i fàcil de migrar. </para
></listitem>

                </orderedlist>

            </para>

            <para
>El &digikam; també proporciona suport per al popular motor de base de dades MySQL. Per descomptat, un podria preguntar-se per què voldries canviar al MySQL quan el SQLite ja fa una bona feina en la gestió de les dades? El MySQL ofereix molts avantatges per a l'emmagatzematge de dades del &digikam;, especialment quan les col·leccions inclouen més de 100.000 elements. Amb aquest tipus de col·leccions, el SQLite introdueix latència, el qual alenteix l'aplicació. </para>

            <para
>L'ús de MySQL com a dorsal de la base de dades del &digikam; permet emmagatzemar les dades localment, així com en servidors remots. Local, per a substituir l'emmagatzematge local de SQLite i finalment, utilitzar un ordinador compartit a través de la xarxa. L'ús de MySQL com a dorsal de la base de dades del &digikam; permet emmagatzemar les dades en un servidor remot. D'aquesta manera, es podran utilitzar en diverses instal·lacions del &digikam; (per exemple, a l'ordinador portàtil i al PC) per accedir i gestionar les col·leccions de fotografies. També podeu utilitzar les eines de MySQL per a crear una còpia de seguretat i analitzar les dades del &digikam;. </para>

            <para
>Per a canviar des d'una base de dades SQLite a MySQL, aneu a <guimenuitem
>Arranjament</guimenuitem
> / <guimenuitem
>Configura el &digikam;...</guimenuitem
> i després sota la secció <guilabel
>Arranjament</guilabel
>, seleccioneu una base de dades des de la llista desplegable. <orderedlist>

                    <listitem
><para
>MySQL intern: Això permet executar un servidor de bases de dades intern al sistema. El &digikam; utilitza el sòcol d'Unix per a la connexió. </para
></listitem>

                    <listitem
><para
>MySQL remot: Feu-la servir si teniu les dades a un servidor remot i us trobeu en un ordinador diferent amb el qual intenteu accedir a la col·lecció. </para
></listitem>

                </orderedlist>

            </para>

        </sect4>

        <sect4>
            <title
>El servidor de MySQL intern</title>

            <para
>Durant l'ús d'una col·lecció gran, de grandària superior als 10.000 elements, l'aplicació tendeix a alentir-se. Per evitar el retard i mantenir l'eficiència, el &digikam; ofereix l'opció d'utilitzar <guilabel
>Servidor de MySQL intern</guilabel
>. Perquè quedi clar, aquest no és un servidor real o una xarxa pública. En canvi, és un servidor que només s'executa mentre s'executa l'aplicació. </para>

            <para
>El servidor intern crea una base de dades independent, a la qual es pot accedir (només mentre s'executa l'aplicació) mitjançant l'ordre: <command
>mysql --socket=/home/<replaceable
>[nom_usuari]</replaceable
>/.local/share/digikam/db_misc/mysql.socket digikam</command
> </para>

            <para
>El servidor intern utilitza dues eines binàries de MySQL: <application
>mysql_install_db</application
> i <application
>mysqld</application
>. Podeu configurar les seves ubicacions en el diàleg de configuració. El &digikam; intentarà trobar-les automàticament si estan instal·lades al sistema. </para>

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

        </sect4>

        <sect4>
            <title
>El servidor de MySQL remot</title>

            <para
>Òbviament, per a utilitzar el &digikam; amb un MySQL remot, es requerirà un servidor de MySQL. O, també podeu instal·lar MariaDB, el qual serveix bé a aquest propòsit. (Es pot instal·lar amb facilitat emprant aquest <ulink url="https://www.liquidweb.com/kb/how-to-install-mariadb-5-5-on-ubuntu-14-04-lts/"
>enllaç</ulink
>). </para>

            <para
>Seguiu les següents instruccions, si no teniu un compte d'usuari dedicat i una base de dades configurada al &digikam;. Executeu les ordres al servidor de MySQL (després substituïu la contrasenya per la correcta): </para>

            <note
><para
>Podeu seleccionar qualsevol nom per a la base de dades. (Aquí és, «digikam»). Simplement recordeu omplir el nom correcte per a la base de dades a Nucli, Miniatures, Cares des del diàleg que es mostra a continuació. </para
></note>

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

            <note
><para
>Si teniu una col·lecció enorme, haureu d'iniciar el servidor de MySQL amb <command
>mysql --max_allowed_packet = 128M</command
> </para
></note>

            <para
>Ara, al &digikam;, aneu a <menuchoice
><guimenu
>Arranjament</guimenu
> <guimenuitem
>Configura el &digikam;...</guimenuitem
></menuchoice
> i després sota la secció <guilabel
>Arranjament</guilabel
>, seleccioneu <guilabel
>Servidor de MySQL</guilabel
> des de la llista desplegable. </para>

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

            <para
>Introduïu l'adreça IP del vostre servidor de MySQL en el camp <guilabel
>Nom de la màquina</guilabel
> i especificar el port correcte en el camp <guilabel
>Port</guilabel
> (el port per omissió és el 3306). </para>

            <para
>En el camp <guilabel
>Nom de la BD del nucli</guilabel
>, introduïu el nom de la primera base de dades per emmagatzemar les metadades de les fotografies. </para>

            <para
>Especifiqueu el nom de la segona base de dades per emmagatzemar les miniatures comprimides en ones al camp <guilabel
>Nom de la BD de miniatures</guilabel
>. </para>

            <para
>La tercera base de dades està dedicada a emmagatzemar histogrames de les cares amb fins per al reconeixement. Per aquesta empreu el camp <guilabel
>Nom de la BD de cares</guilabel
>. </para>

            <para
>Per a connectar-se amb seguretat al servidor remot, introduïu la vostra identificació de MySQL utilitzant el <guilabel
>nom_usuari</guilabel
> i la <guilabel
>contrasenya</guilabel
>. </para>

            <para
>Per a comprovar si la connexió amb la base de dades funciona correctament, premeu el botó <guibutton
>Comprova la connexió</guibutton
>. Si tot funciona com se suposa, canvieu a les seccions <guilabel
>Col·leccions</guilabel
> i afegiu-hi els directoris que contenen les vostres fotografies. Premeu <guibutton
>D'acord</guibutton
>, i espereu fins que el &digikam; ompli les bases de dades amb les dades de les fotografies. Això pot trigar molt de temps si teniu una gran quantitat d'elements per a registrar a la base de dades. </para>

            <para
>Hi ha alguns consells i recomanacions per obtenir els millors resultats amb un servidor de bases de dades MySQL remot. </para>

            <para
>Amb una xarxa lenta, el &digikam; es penja una gran quantitat de temps, especialment quan l'àlbum conté molts elements (
>1.000). Aquesta solució es basa en el rendiment de la xarxa. Aquest problema és reproduïble emprant una connexió Wifi, per exemple. El canvi a Ethernet resoldrà el problema. </para>

            <para
>També, si teniu una col·lecció enorme, haureu d'iniciar el servidor MySQL amb <command
>mysql --max_allowed_packet = 128M</command
>. (Si esteu ben familiaritzat amb l'ús de MySQL, també podreu canviar els vostres ajustaments als fitxers «my.ini» o «~ /.my.cnf»). </para>

        </sect4>

    </sect3>

    <sect3 id="using-setup-database-migration">
        <title
>Migrar a una base de dades</title>

        <para
>L'aplicació per a la gestió de les fotografies ve amb una eina exclusiva «Migra la base de dades», la qual permet als usuaris migrar les seves dades. Suposem, que esteu utilitzant SQLite i que voleu moure totes les dades a la base de dades MySQL, aquesta eina de migració us ajudarà a fer-ho. Pot ajudar a migrar les dades des de SQLite a MySQL i viceversa. </para>

        <para
>Per migrar a una altra base de dades, aneu a <menuchoice
><guimenu
>Arranjament</guimenu
> <guimenuitem
>Migra la base de dades...</guimenuitem
></menuchoice
>. Apareixerà un diàleg: </para>

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

        <para
>A continuació, escolliu els tipus de bases de dades apropiades que voleu convertir. Finalment, feu clic al botó <guibutton
>Migra</guibutton
> per a convertir la base de dades des de SQLite a MySQL (o viceversa). </para>

    </sect3>

    <sect3 id="using-setup-database-backup">
        <title
>Recomanació de crear una còpia de seguretat de la base de dades</title>

        <para
>Per raons de seguretat, el fet de planificar una còpia de seguretat de la base de dades emprant el «crontab» a través de la xarxa, pot ajudar amb les disfuncions del dispositiu. També es pot utilitzar un NAS o una unitat externa. </para>

        <para
>Cada base de dades es pot anomenar amb un nom diferent, no només «digiKam». Això permet a l'usuari crear una còpia de seguretat només del que necessita. Per exemple, anomenar-la «nucli» com la digikamCore, permet aïllar només aquesta taula (el fitxer més important). Les de miniatures i de reconeixement sempre es poden regenerar a partir de zero. </para>

        <para
>El capítol sobre l'<link linkend="tool-maintenance"
>Eina de manteniment del &digikam;</link
> ens explicarà com mantenir el contingut de la base de dades en el temps i com sincronitzar les col·leccions amb la informació de les bases de dades (i viceversa). </para>

    </sect3>

    <sect3 id="using-setup-database-statistics">
        <title
>Estadístiques de la base de dades</title>

        <para
>El &digikam; proporciona una eina única per a mantenir les estadístiques de la vostra col·lecció. Inclou el recompte de les imatges, vídeos (incloent-hi el recompte individual del format de la imatge), etiquetes, &etc; A més, inclou el dorsal de la base de dades (QSQLITE o QMYSQL) i el camí de la base de dades (on es troba la vostra col·lecció). </para>

        <para
>Podeu veure les estadístiques anant a <menuchoice
><guimenu
>Ajuda</guimenu
><guimenuitem
>Estadístiques de la base de dades</guimenuitem
></menuchoice
>. Apareixerà un diàleg com aquest: </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:
-->
