1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 08:22:08 +01:00
Files
archived-doc-es/reference/sdodasrel/book.xml
Pedro Antonio Gil Rodríguez 5a6f33d6e6 Updated to the most recent version
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@330523 c90b9560-bf6c-de11-be94-00142212c4b1
2013-06-16 19:57:20 +00:00

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
-->