mirror of
https://github.com/php/doc-es.git
synced 2026-03-26 08:22:08 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@330523 c90b9560-bf6c-de11-be94-00142212c4b1
164 lines
6.3 KiB
XML
164 lines
6.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: seros Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<!-- State: experimental -->
|
|
|
|
<book xml:id="book.sdodasrel" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Servicio de Acceso a Datos Relacionales de SDO</title>
|
|
<titleabbrev>DAS-Relacional de SDO</titleabbrev>
|
|
|
|
<!-- {{{ preface -->
|
|
<preface xml:id="intro.sdodasrel">
|
|
&reftitle.intro;
|
|
<para>
|
|
<!-- This warns that the extension is experimental -->
|
|
&warn.experimental;
|
|
</para>
|
|
<para>
|
|
Para poder usar el Servicio de Acceso a Datos Relacional con
|
|
Objetos de Datos de Servicio (SDOs),
|
|
se necesitan comprender algunos de los conceptos que están bajo un SDO:
|
|
el grafo de datos, el objeto de datos, la manera desconectada de trabajar,
|
|
el resumen de cambios, XPath y expresiones de propiedad, etc.
|
|
Si estas ideas no le son familiares, debería mirar primero en
|
|
<link linkend="ref.sdo">la sección sobre SDO</link>.
|
|
Además, el DAS Relacional hace uso de la extensión PDO para
|
|
aislarse a sí misma de especificaciones de diferentes bases de datos relacionales subyacentes.
|
|
Para poder usar el DAS Relacional se necesita poder
|
|
crear y pasar una conexión a base de datos PDO;
|
|
por esta razión se debería echar un vistazo a
|
|
<link linkend="intro.pdo">la sección sobre PDO</link>.
|
|
</para>
|
|
|
|
<para>
|
|
La tarea del DAS Relacional es mover datos entre la aplicación
|
|
y una base de datos relacional. Para poder hacer esto necesita ser informado
|
|
de la referenciación entre las entidades de la base de datos
|
|
- tabla, columnas, claves primarias y foráneas -
|
|
y los elementos del modelo del SDO
|
|
- tipes, propiedades, relaciones de contención, etc.
|
|
Se especifica esta información como metadatos al
|
|
contruir el DAS Relacional.
|
|
</para>
|
|
|
|
<procedure xml:id="overview">
|
|
<title>Información general sobre la operación</title>
|
|
<step>
|
|
<para>
|
|
El primer paso es llamar al constructor del DAS Relacional,
|
|
pasando los metadatos que definen la referenciación entre
|
|
la base de datos y el modelo del SDO.
|
|
Hay ejemplo de esto más adelante.
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
El siguiente paso podría ser llamar al método
|
|
<function>executeQuery</function>
|
|
o
|
|
<function>executePreparedQuery</function>
|
|
sobre el DAS Relacional, pasando una sentencia SQL literal
|
|
al DAS para preparar y ejecutar, o una sentencia preparada con
|
|
parámetros de sustitución y una lista de valores a insertar.
|
|
También es necesario especificar una pequeña cantidad de metadatos
|
|
sobre el consulta en sí, por lo que el DAS Relacional pueda conocer
|
|
exactamente qué columnas serán devueltas desde la base de datos y
|
|
en qué orden. También se necesitará pasar una conxión a base de datos de PDO.
|
|
</para>
|
|
|
|
<para>
|
|
El valor devuelto por
|
|
<function>executeQuery</function>
|
|
o
|
|
<function>executePreparedQuery</function>
|
|
es un grafo de datos normalizado que contiene todos los datos del conjunto de resultados.
|
|
Para una consulta que devuelva datos obtenidos de varias tablas,
|
|
este grafo contendrá varios objetos de datos,
|
|
enlazados por relaciones de contención de SDO.
|
|
También pueden haber referencias de no contención de SDO con los datos.
|
|
</para>
|
|
|
|
<para>
|
|
Una vez que la consulta ha sido ejecutada y el grafo de datos construido,
|
|
ya no hay necesidad de la insntacia del DAS Relacional o
|
|
de la conexión a la base de datos. the database connection. No existen bloqueos sobre la base de datos.
|
|
El DAS Relacional y la conexión a base de datos de PDO pueden
|
|
ponerse en el recolector de basura.
|
|
</para>
|
|
</step>
|
|
<step>
|
|
<para>
|
|
Posiblemente los datos del grafo de datos experimentarán
|
|
varias modificaciones. El grafo de datos puede ser serializado
|
|
dentro de la sesión de PHP y por lo tanto puede tener un tiempo de vida superior
|
|
a una interacción cliente-servidor. Los objetos de datos se puede crear
|
|
y añadir al grafo, los objetos de datos ya existentes en el grafo
|
|
se pueden borrar, y los objetos de datos del grafo pueden ser modificados.
|
|
</para>
|
|
</step>
|
|
<step>
|
|
<para>
|
|
Finalmente, los cambios hechos al grafo de datos pueden volver a ser
|
|
aplicados a la base de datos usando el método
|
|
<function>applyChanges</function>
|
|
del DAS Relacional. Para esto, se debe construir otra
|
|
instancia del DAS Relacional, usando la
|
|
misma metainformación, y se debe obtener otra conexión a la base de datos.
|
|
La conexión y el grafo de datos son pasados a
|
|
<function>applyChanges</function>.
|
|
En este punto el DAS Relacional examina el registro de cambios
|
|
y genera las sentencias SQL INSERT, UPDATE y DELETE necesarias
|
|
para aplicar los cambios. Cualquier sentencia UPDATE y DELETE está cualificada
|
|
con los valores originales de los datos, por lo que deberían ser detectados
|
|
los datos cambiados en la base de datos por el momento.
|
|
Asumiendo que no ocurren tales colisiones, los cambios serán
|
|
consignados a la base de datos. La aplicación puede entonces continuar para trabajar
|
|
con el grafo de datos, hacer más cambios y aplicarlos, o puede
|
|
descartarlos.
|
|
</para>
|
|
</step>
|
|
</procedure>
|
|
<para>
|
|
Existen otras maneras de trabajar con los datos de una base de datos:
|
|
es posible crear objetos de datos y escribirlos en la
|
|
base de datos sin una llamada preliminar a
|
|
<function>executeQuery</function>,
|
|
por ejemplo. Este escenario y otros son explorados en la sección
|
|
<link linkend="sdodasrel.examples">Ejemplos</link>
|
|
de abajo.
|
|
</para>
|
|
</preface>
|
|
<!-- }}} -->
|
|
|
|
&reference.sdodasrel.setup;
|
|
&reference.sdodasrel.constants;
|
|
&reference.sdodasrel.examples;
|
|
&reference.sdodasrel.limitations;
|
|
&reference.sdodasrel.reference;
|
|
|
|
</book>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|
|
|