11.05.2013 Views

La Cara Oculta de Delphi 6

La Cara Oculta de Delphi 6

La Cara Oculta de Delphi 6

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Sistemas <strong>de</strong> bases <strong>de</strong> datos 165<br />

clave primaria. En las modificaciones, en general, pue<strong>de</strong>n <strong>de</strong>searse dos tipos diferentes<br />

<strong>de</strong> comportamiento:<br />

Se prohibe la modificación <strong>de</strong> la clave primaria <strong>de</strong> un registro que tenga filas <strong>de</strong><br />

<strong>de</strong>talles asociadas.<br />

<strong>La</strong> modificación <strong>de</strong> la clave se propagaría a las tablas <strong>de</strong>pendientes.<br />

Si se trata <strong>de</strong> un borrado, son tres los comportamientos posibles:<br />

Prohibir el borrado, si existen filas <strong>de</strong>pendientes <strong>de</strong>l registro.<br />

Borrar también las filas <strong>de</strong>pendientes.<br />

Permitir el borrado y, en vez <strong>de</strong> borrar las filas <strong>de</strong>pendientes, romper el vínculo<br />

asociando a la clave externa un valor por omisión, que en SQL casi siempre es el<br />

valor nulo (ver el siguiente capítulo).<br />

<strong>La</strong> forma más directa <strong>de</strong> implementar las verificaciones <strong>de</strong> integridad referencial es<br />

utilizar índices. <strong>La</strong>s responsabilida<strong>de</strong>s <strong>de</strong> la tabla <strong>de</strong>pendiente se resuelven comprobando<br />

la existencia <strong>de</strong>l valor a insertar o a modificar en el índice asociado a la restricción<br />

<strong>de</strong> unicidad <strong>de</strong>finida en la tabla maestra. <strong>La</strong>s responsabilida<strong>de</strong>s <strong>de</strong> la tabla maestra<br />

se resuelven generalmente mediante índices <strong>de</strong>finidos sobre la tabla <strong>de</strong> <strong>de</strong>talles.<br />

¿Qué tiene <strong>de</strong> malo el mo<strong>de</strong>lo relacional?<br />

El mo<strong>de</strong>lo relacional funciona. A<strong>de</strong>más, funciona razonablemente bien. Pero como<br />

he tratado <strong>de</strong> explicar a lo largo <strong>de</strong> las secciones anteriores, en <strong>de</strong>terminados aspectos<br />

significa un retroceso en comparación con mo<strong>de</strong>los <strong>de</strong> datos anteriores. Me refiero a<br />

lo artificioso <strong>de</strong>l proceso <strong>de</strong> eliminar los punteros implícitos <strong>de</strong> forma natural en el<br />

mo<strong>de</strong>lo semántico a representar. Esto se refleja también en la eficiencia <strong>de</strong> las operaciones.<br />

Supongamos que tenemos un registro <strong>de</strong> empleado en nuestras manos y queremos<br />

saber el nombre <strong>de</strong>l <strong>de</strong>partamento al que pertenece. Bien, pues tenemos que<br />

buscar el código <strong>de</strong> <strong>de</strong>partamento <strong>de</strong>ntro <strong>de</strong> un índice para <strong>de</strong>spués localizar físicamente<br />

el registro <strong>de</strong>l <strong>de</strong>partamento correspondiente y leer su nombre. Al menos, un<br />

par <strong>de</strong> accesos al disco duro. Compare con la sencillez <strong>de</strong> buscar directamente el<br />

registro <strong>de</strong> <strong>de</strong>partamento dado su puntero (existen implementaciones eficientes <strong>de</strong>l<br />

concepto <strong>de</strong> puntero cuando se trabaja con datos persistentes).<br />

En este momento, las investigaciones <strong>de</strong> vanguardia se centran en las bases <strong>de</strong> datos<br />

orientadas a objetos, que retoman algunos conceptos <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> re<strong>de</strong>s y <strong>de</strong>l propio<br />

mo<strong>de</strong>lo relacional. Des<strong>de</strong> la década <strong>de</strong> los 70, la investigación matemática ha<br />

avanzado lo suficiente como para disponer <strong>de</strong> potentes lenguajes <strong>de</strong> interrogación<br />

sobre bases <strong>de</strong> datos arbitrarias. No quiero entrar a analizar el porqué no se ha acabado<br />

<strong>de</strong> imponer el mo<strong>de</strong>lo orientado a objetos sobre el relacional, pues en esto<br />

influyen tanto factores técnicos como comerciales. Pero es bueno que el lector sepa<br />

qué pue<strong>de</strong> pasar en un futuro cercano.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!