diff options
Diffstat (limited to 'bd')
| -rw-r--r-- | bd/n.lyx | 17 | ||||
| -rw-r--r-- | bd/n6.lyx | 98 | ||||
| -rw-r--r-- | bd/n7.lyx | 1190 |
3 files changed, 1275 insertions, 30 deletions
@@ -6,6 +6,9 @@ \origin unavailable \textclass book \use_default_options true +\begin_modules +algorithm2e +\end_modules \maintain_unincluded_children false \language spanish \language_package default @@ -282,5 +285,19 @@ filename "n6.lyx" \end_layout +\begin_layout Chapter +Sistemas de bases de datos +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n7.lyx" + +\end_inset + + +\end_layout + \end_body \end_document @@ -476,7 +476,6 @@ status open \begin_layout Plain Layout -\family typewriter {} \end_layout @@ -502,7 +501,7 @@ status open \begin_layout Plain Layout -tcl-stmt = +tcl-stmt = ( \begin_inset Quotes cld \end_inset @@ -518,7 +517,15 @@ ROLLBACK \begin_inset Quotes crd \end_inset +) [ +\begin_inset Quotes cld +\end_inset + +WORK +\begin_inset Quotes crd +\end_inset +] \end_layout \end_inset @@ -5374,27 +5381,6 @@ DESC ] \end_layout -\begin_layout Plain Layout - -drop-index-stmt = -\begin_inset Quotes cld -\end_inset - -DROP -\begin_inset Quotes crd -\end_inset - - -\begin_inset Quotes cld -\end_inset - -INDEX -\begin_inset Quotes crd -\end_inset - - sid -\end_layout - \end_inset @@ -5409,11 +5395,8 @@ index-def \family typewriter ORDER BY \family default -, y un -\family typewriter -drop-index-stmt -\family default - lo elimina. +. + \begin_inset Foot status open @@ -5443,6 +5426,45 @@ UNIQUE con las columnas de la clave. \end_layout +\begin_layout Standard +\begin_inset listings +inline false +status open + +\begin_layout Plain Layout + +drop-index-stmt = +\begin_inset Quotes cld +\end_inset + +DROP +\begin_inset Quotes crd +\end_inset + + +\begin_inset Quotes cld +\end_inset + +INDEX +\begin_inset Quotes crd +\end_inset + + sid +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Elimina un índice. + Esto puede hacerse porque ya no se espera realizar consultas basadas en + el campo de indexación, o porque este no acelera las consultas al ser la + tabla muy pequeña o contener muchas filas pero con pocas entradas en el + índice. +\end_layout + \begin_layout Section SQL del software privativo Oracle Database \begin_inset Foot @@ -5468,8 +5490,24 @@ Cada comando del LDD realiza un \family typewriter COMMIT \family default - implícito antes y después de su ejecución. - Los índices se implementan con el estándar de facto. + implícito antes y después de su ejecución, y también se hace un +\family typewriter +COMMIT +\family default + implícito al salir correctamente de una herramienta como el +\lang english +software +\lang spanish + privativo Oracle SQL Developer o el software privativo Oracle SQL*Plus. + Cuando la terminación es anormal o con error, se hace un +\family typewriter +ROLLBACK +\family default + implícito. +\end_layout + +\begin_layout Standard +Los índices se implementan con el estándar de facto. \end_layout \begin_layout Subsection diff --git a/bd/n7.lyx b/bd/n7.lyx new file mode 100644 index 0000000..789dee8 --- /dev/null +++ b/bd/n7.lyx @@ -0,0 +1,1190 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Entorno +\end_layout + +\begin_layout Standard +El entorno de la base de datos está formado por: +\end_layout + +\begin_layout Itemize +Hardware. +\end_layout + +\begin_layout Itemize +Software: SGBD, aplicaciones, sistema operativo y software de red. +\end_layout + +\begin_layout Itemize +Datos, y metadatos en el catálogo del sistema. +\end_layout + +\begin_layout Itemize + +\series bold +Procedimientos +\series default +: Instrucciones y reglas para el diseño y uso de la base de datos y las + aplicaciones. +\end_layout + +\begin_layout Itemize +Personas o +\series bold +actores +\series default +. +\end_layout + +\begin_layout Standard +Entre los actores tenemos: +\end_layout + +\begin_layout Enumerate + +\series bold +Administrador de la base de datos +\series default + ( +\series bold +ABD +\series default +), responsable de administrar los recursos del SBD: base de datos, SGBD + y programas de acceso. + Adquiere el software y hardware necesario; implementa la estructura de + la base de datos y las restricciones de integridad; crea y modifica las + estructuras de almacenamiento y métodos de acceso; concede o deniega permisos + de acceso; define planes de copias de seguridad de los datos; garantiza + el funcionamiento correcto del sistema, y proporciona servicio técnico. +\end_layout + +\begin_layout Enumerate + +\series bold +Diseñadores de bases de datos +\series default +: Interactúan con los futuros usuarios del sistema; recogen y comprenden + sus requisitos; hacen el diseño conceptual, y eligen estructuras para represent +ar y almacenar los datos. + Para ello crean vistas que satisfacen los requisitos de cada grupo de usuarios + (subconjuntos de la información en la base de datos) y crean un diseño + final resultado de integrar las vistas. +\end_layout + +\begin_layout Enumerate + +\series bold +Desarrolladores de software +\series default +. +\end_layout + +\begin_deeper +\begin_layout Enumerate + +\series bold +Analistas de sistemas +\series default +: Determinan las necesidades de procesamiento de los usuarios y especifican + conjuntos de operaciones que las satisfacen. +\end_layout + +\begin_layout Enumerate + +\series bold +Desarrolladores de aplicaciones +\series default +: Implementan las especificaciones en programas, que prueban, depuran, documenta +n y mantienen. +\end_layout + +\end_deeper +\begin_layout Enumerate + +\series bold +Usuarios finales +\series default + o +\series bold +clientes +\series default +. +\end_layout + +\begin_deeper +\begin_layout Enumerate + +\series bold +Inexpertos +\series default +: Acceden de forma frecuente y repetitiva mediante aplicaciones que facilitan + sus operaciones, y no son necesariamente conscientes de la existencia del + SGBD. +\end_layout + +\begin_layout Enumerate + +\series bold +Avanzados +\series default + o +\series bold +sofisticados +\series default +: Familiarizados con la estructura de la base de datos y las funcionalidades + del SGBD. + Acceden de forma esporádica y distinta cada vez usando, por ejemplo SQL. +\end_layout + +\end_deeper +\begin_layout Standard +Recuperar los datos de forma eficiente implica usar estructuras de datos + complejas para representar la información, que se ocultan mediante niveles + de abstracción. + La +\series bold +arquitectura en 3 niveles ANSI/SPARC +\series default + consta de: +\end_layout + +\begin_layout Enumerate + +\series bold +Nivel interno +\series default +: Descrito en un +\series bold +esquema interno +\series default + con un modelo de datos físico. + Define los tipos de registros, su secuencia física y las estructuras de + almacenamiento y acceso. + Es muy cercano al nivel físico, pero no trata con registros físicos como + bloques o páginas ni con cilindros o pistas. +\end_layout + +\begin_layout Enumerate + +\series bold +Nivel conceptual +\series default + o +\series bold +lógico +\series default +: Descrito en un +\series bold +esquema conceptual +\series default + o +\series bold +lógico +\series default + con un modelo conceptual o lógico. + Define la estructura de toda la base de datos. + +\end_layout + +\begin_layout Enumerate + +\series bold +Nivel externo +\series default + o +\series bold +de vistas +\series default +: Descrito en uno o varios +\series bold +esquemas externos +\series default + o +\series bold +vistas +\series default + con un modelo conceptual o lógico. + Cada uno define la porción de la base de datos que interesa a un grupo + de usuarios. + Varias vistas pueden solaparse entre sí. +\end_layout + +\begin_layout Standard +Los SGBD no distinguen del todo los 3 niveles, pues suelen incluir detalles + físicos en el esquema y usar el mismo modelo de datos para especificar + las vistas y el esquema conceptual. +\end_layout + +\begin_layout Standard +El ABD especifica la correspondencia entre los esquemas en el diccionario + de datos del catálogo del sistema, dando a la base de datos una naturaleza + autodescriptiva que permite al SGBD acceder a datos de cualquier aplicación. +\end_layout + +\begin_layout Standard +La +\series bold +independencia de datos +\series default + es la capacidad de modificar el esquema de un nivel sin tener que cambiar + el esquema del nivel superior. + Distinguimos: +\end_layout + +\begin_layout Enumerate + +\series bold +Independencia lógica de datos +\series default + en la +\series bold +correspondencia externo/conceptual +\series default +: capacidad de modificar el esquema lógico sin alterar esquemas externos + y programas, difícil. +\end_layout + +\begin_layout Enumerate + +\series bold +Independencia física de datos +\series default + en la +\series bold +correspondencia conceptual/interno +\series default +: Capacidad de modificar el esquema interno sin alterar el esquema lógico + y los programas, más fácil. +\end_layout + +\begin_layout Standard +Con el modelo ANSI/SPARC, la modificación del esquema de un nivel provoca + cambios en la correspondencia, no en el nivel superior, pero este aumenta + el gasto en la compilación y ejecución de programas, reduce la eficiencia + y supone actualizar constantemente las correspondencias. +\end_layout + +\begin_layout Standard +Con el modelo actual, la mayoría de cambios en la estructura u organización + de datos no implica cambios en los programas, al contrario que con el procesami +ento de ficheros. +\end_layout + +\begin_layout Section +Funciones +\end_layout + +\begin_layout Standard +Una SGBD proporciona un catálogo accesible para el usuario, servicios para + la independencia de datos y servicios de integridad, entre otros. +\end_layout + +\begin_layout Standard +También oculta los detalles de implementación física y proporciona un procesamie +nto de consultas eficiente mediante búferes, cachés de datos, técnicas de + búsqueda y optimización y estructuras auxiliares como índices, con estructura + de árbol o tabla +\emph on +hash +\emph default +. + La elección de qué índices crear y mantener es responsabilidad del ABD. +\end_layout + +\begin_layout Standard +Otra función es garantizar que las transacciones cumplen las propiedades + +\series bold +ACID +\series default +: +\end_layout + +\begin_layout Enumerate + +\series bold +\emph on +Atomicity +\series default +\emph default + ( +\series bold +atomicidad +\series default +): Se hacen todas las operaciones o ninguna. +\end_layout + +\begin_layout Enumerate + +\series bold +\emph on +Consistency +\series default +\emph default + ( +\series bold +consistencia +\series default +): Llevan la base de datos de un estado consistente a otro. +\end_layout + +\begin_layout Enumerate + +\series bold +\emph on +Isolation +\series default +\emph default + ( +\series bold +aislamiento +\series default +): Su ejecución es independiente del resto de transacciones, con lo que + los cambios no son visibles para otras transacciones hasta que finaliza. + Puede que no se imponga estrictamente, sino que haya niveles de aislamiento. +\end_layout + +\begin_layout Enumerate + +\series bold +\emph on +Durability +\series default +\emph default + ( +\series bold +durabilidad +\series default +): Si finaliza con éxito y es confirmada, sus cambios perduran aunque el + sistema falle después. +\end_layout + +\begin_layout Standard +Los +\series bold +sistemas de procesamiento de transacciones +\series default + son sistemas con grandes bases de datos y muchos usuarios ejecutando transaccio +nes. + Requieren alta disponibilidad y respuesta rápida, por lo que varias transaccion +es pueden ejecutarse concurrentemente y acceder y actualizar los mismos + datos. +\end_layout + +\begin_layout Standard +Cada transacción tiene un +\series bold +área de trabajo privada +\series default +, un área en almacenamiento primario (memoria principal) y secundario (disco + magnético, cinta magnética, disco óptico, etc.) donde guarda los datos que + lee o escribe. + +\end_layout + +\begin_layout Standard +Un +\series bold +búfer de base de datos +\series default + es un conjunto de bloques de caché que contienen temporalmente los bloques + de la base de datos requeridos por las transacciones. + El SGBD carga los bloques que necesita leer en el búfer, escribe al búfer + y decide cuándo volcar qué bloques modificados del búfer a disco. +\end_layout + +\begin_layout Standard +Los SGBDs también suelen tener +\series bold +servicios de autorización +\series default + y +\series bold +seguridad +\series default + mediante +\series bold +control de acceso selectivo +\series default +. + Se da acceso solo a usuarios autorizados con cuentas protegidas con contraseña, + y solo a ciertas partes de la base de datos para ciertas operaciones mediante + restricciones de seguridad para cada cuenta, ejecutadas por el SGBD. +\end_layout + +\begin_layout Standard +En general, los SGBDs también se integran con software de comunicaciones + para que los usuarios puedan acceder a la base de datos de forma remota, + y tienen utilidades adicionales para ayudar al ABD a administrar la base + de datos: +\end_layout + +\begin_layout Enumerate +De importación y exportación de datos, para cargar datos a partir de ficheros + poco estructurados, descargarlos en ficheros de varios tipos e intercambiar + información entre distintos SGBDs. +\end_layout + +\begin_layout Enumerate +De monitorización o supervisión del uso, operación y rendimiento del sistema. +\end_layout + +\begin_layout Enumerate +De análisis estadístico, para examinar las estadísticas de uso y rendimiento. +\end_layout + +\begin_layout Enumerate +De reorganización de ficheros o índices. +\end_layout + +\begin_layout Enumerate +De copia de seguridad. +\end_layout + +\begin_layout Enumerate +De ordenamiento, compactación o compresión de ficheros. +\end_layout + +\begin_layout Section +Servicios de recuperación de fallos +\end_layout + +\begin_layout Standard +Tipos de fallos en una SGBD: +\end_layout + +\begin_layout Enumerate + +\series bold +Fallo local previsto +\series default + por la aplicación, cancelación programada. +\end_layout + +\begin_layout Enumerate + +\series bold +Fallo local no previsto +\series default +: Error de programación. +\end_layout + +\begin_layout Enumerate + +\series bold +Fallo por concurrencia +\series default +: La +\series bold +serializabilidad +\series default + de las transacciones es la equivalencia entre el orden de procesamiento + de estas y algún orden secuencial. + El método de control de concurrencia puede abortar una transacción porque + incumple la serializabilidad o para romper un interbloqueo, y esta debe + ser reiniciada más tarde. +\end_layout + +\begin_layout Enumerate + +\series bold +Fallo del sistema +\series default + o +\series bold +caída suave +\series default +: Mal funcionamiento del hardware, software o la red que no daña el disco. +\end_layout + +\begin_layout Enumerate + +\series bold +Fallo del disco +\series default + o +\series bold +caída dura +\series default +: Aterrizaje del cabezal de disco, soporte no legible, etc. + Partes del disco pueden perder sus datos. +\end_layout + +\begin_layout Enumerate + +\series bold +Fallos físicos +\series default + y +\series bold +catástrofe +\series default +s: Desastre natural como inundación, terremoto, incendio o apagón; robo, + sabotaje, destrucción o corrupción de datos, de hardware, de software o + de las instalaciones, intencionado o negligente. +\end_layout + +\begin_layout Standard +Los 3 primeros tipos de fallos son +\series bold +locales +\series default +, pues solo afectan a una transacción, y los otros 3 son +\series bold +globales +\series default +, pues afectan a todas las transacciones en ejecución. +\end_layout + +\begin_layout Standard +La +\series bold +recuperación +\series default + tras un fallo que deja la base de datos en un estado inconsistente o sospechoso + de serlo consiste en restaurar un estado previo al fallo, consistente y + cercano al fallo. +\end_layout + +\begin_layout Standard +Con un +\series bold +fichero de bitácora +\series default +, +\series bold +diario +\series default +, +\series bold +\emph on +log +\series default +\emph default +, +\series bold +\emph on +journal +\series default +\emph default + o +\series bold +registro histórico +\series default + podemos seguir la pista de la ejecución de cada transacción, y usar una + +\series bold +técnica de recuperación +\series default + para restablecer la base de datos a un estado consistente. +\end_layout + +\begin_layout Standard +Al fichero de bitácora solo le afectan los fallos de tipo 5 y 6, y está + formado por registros de los siguientes tipos: +\end_layout + +\begin_layout Itemize + +\family typewriter +<INICIAR, +\emph on +T +\emph default +> +\family default +: Inicio de la transacción +\family typewriter +\emph on +T +\family default +\emph default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +<LEER, +\emph on +T +\emph default +, +\emph on +x +\emph default +> +\family default +: +\family typewriter +\emph on +T +\family default +\emph default + ha leído el valor del elemento +\family typewriter +\emph on +x +\family default +\emph default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +<ESCRIBIR, +\emph on +T +\emph default +, +\emph on +x +\emph default +, +\emph on +anterior +\emph default +, +\emph on +nuevo +\emph default +> +\family default +: +\family typewriter +\emph on +T +\family default +\emph default + ha cambiado el valor del elemento +\family typewriter +\emph on +x +\family default +\emph default + del +\family typewriter +\emph on +anterior +\family default +\emph default + al +\family typewriter +\emph on +nuevo +\family default +\emph default +. +\end_layout + +\begin_layout Itemize + +\family typewriter +<COMMIT, +\emph on +T +\emph default +> +\family default +: +\family typewriter +\emph on +T +\family default +\emph default + ha finalizado con éxito y sus cambios están listos para confirmarse en + disco. +\end_layout + +\begin_layout Itemize + +\family typewriter +<ROLLBACK, +\emph on +T +\emph default +> +\family default +: +\family typewriter +\emph on +T +\family default +\emph default + ha sido anulada y sus cambios están listos para ser revertidos. +\end_layout + +\begin_layout Itemize + +\family typewriter +<REGISTRO DE COMPROBACIÓN, +\family default +... +\family typewriter +> +\family default +: Indica qué datos han sido ya escritos en cierto instante. +\end_layout + +\begin_layout Standard +Cuando una transacción termina de ejecutar +\family typewriter +COMMIT +\family default + o +\family typewriter +ROLLBACK +\family default +, esto se debe haber anotado en la bitácora, los bloqueos deben haberse + liberado y los cursores haberse cerrado. + Una transacción llega a su +\series bold +punto de confirmación +\series default + cuando termina de ejecutar +\family typewriter +COMMIT +\family default + con éxito, y se dice entonces que la transacción está +\series bold +confirmada +\series default +. + En la recuperación, las operaciones de transacciones no confirmadas se + deshacen en orden inverso de aparición, y a continuación, las operaciones + de transacciones confirmadas se rehacen en orden de aparición. +\end_layout + +\begin_layout Standard +Insertar una entrada en la bitácora supone leer su último bloque, actualizarlo + y escribirlo de nuevo al disco, y para evitarlo se mantiene un +\series bold +búfer de bitácora +\series default + con este bloque en que se escriben las entradas hasta que se llena. + Se usa +\series bold +escritura anticipada en bitácora +\series default + o +\series bold +bitácora adelantada +\series default +, en la que no se escriben a disco los cambios hasta que se escriban a disco + los correspondientes registros de bitácora, pues si se escribieran, podría + caerse el sistema antes de registrar en bitácora los cambios hechos a la + base de datos y por tanto estos no se podrían deshacer. + Además, un +\family typewriter +COMMIT +\family default + no se completa hasta que todas las entradas de bitácora de la transacción + se hayan escrito a disco. +\end_layout + +\begin_layout Standard +Con esto, habría que leer la bitácora completa en la recuperación. + Para evitarlo, cada varios segundos o transacciones completadas, el SGBD + marca un +\series bold +punto de comprobación +\series default + o +\series bold +\emph on +checkpoint +\series default +\emph default +, en el que: +\end_layout + +\begin_layout Enumerate +Suspende la ejecución de las transacciones. +\end_layout + +\begin_layout Enumerate +Fuerza la escritura en disco del búfer de bitácora y de todo bloque modificado + del búfer de base de datos. +\end_layout + +\begin_layout Enumerate +Añade a la bitácora un +\family typewriter +<REGISTRO DE COMPROBACIÓN> +\family default +, que indica, para cada transacción activa, su identificador y sus entradas + primera y última. +\end_layout + +\begin_layout Enumerate +Escribe en un +\series bold +fichero especial de arranque +\series default + la dirección del registro de comprobación en la bitácora. +\end_layout + +\begin_layout Enumerate +Reanuda la ejecución de las transacciones. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +uSSi{hay registro de comprobación $(T_i,S_i,E_i)_{i=1}^n$, donde $T_i$ es + un ID de transacción, $S_i$ es su primera entrada y $E_i$ es su última}{ +\end_layout + +\begin_layout Plain Layout + + $s +\backslash +gets$dirección del registro +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $a +\backslash +gets$conjunto de transacciones activas según el registro +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\backslash +EnOtroCaso{ +\end_layout + +\begin_layout Plain Layout + + $s +\backslash +gets0$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $a +\backslash +gets +\backslash +emptyset$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + +$C +\backslash +gets +\backslash +emptyset$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$e$ entrada en la bitácora desde $s$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$e=${ +\backslash +tt <INICIAR,T>}}{Añadir { +\backslash +tt T} a $A$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lEnOtroCasoSi{$e=${ +\backslash +tt <COMMIT,T>}}{Mover { +\backslash +tt T} de $A$ a $C$} +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$e$ entrada desde la última hasta $ +\backslash +min( +\backslash +{S_i +\backslash +}_i +\backslash +cap A)$ o 0}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$e=${ +\backslash +tt <ESCRIBIR,$T$,{ +\backslash +rm ...}>} con $T +\backslash +in A$}{deshacer $e$} +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$e$ entrada desde $ +\backslash +min( +\backslash +{E_i +\backslash +}_i +\backslash +cap C)$ hasta la última}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$e=${ +\backslash +tt <ESCRIBIR,$T$,{ +\backslash +rm ...}>} con $T +\backslash +in C$}{rehacer $e$} +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:recover" + +\end_inset + +Algoritmo de recuperación por bitácora. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Con esto, la recuperación se hace con el algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:recover" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +. +\begin_inset Foot +status open + +\begin_layout Plain Layout +Además, se puede ahorrar mucho espacio eliminando las entradas de la bitácora + anteriores a la primera de las transacciones activas. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Section +Estructura general +\end_layout + +\begin_layout Standard +Además del gestor de base de datos (GBD), el SGBD tiene: +\end_layout + +\begin_layout Itemize +Un procesador de consultas, que recibe consultas de usuarios y las envía + al GBD. +\end_layout + +\begin_layout Itemize +Un preprocesador de comandos LMD, que se comunica con el procesador de consultas + para compilar los comandos y que el programa los envíe al GBD. +\end_layout + +\begin_layout Itemize +Un compilador de comando LDD, que compila las órdenes del ABD y las envía + al gestor del catálogo, que se modifica el catálogo a través del gestor + de ficheros en coordinación con el GBD. +\end_layout + +\begin_layout Standard +Cuando el GBD recibe un comando, comprueba la autorización y lo pasa al + procesador de comandos, que lo pasa por el comprobador de integridad y + el optimizador de consultas y envía una versión de este de bajo nivel al + gestor de transacciones, que la pasa al planificador y este al gestor de + datos. + El gestor de datos consta de gestor de recuperación seguido de gestor del + búfer, y este entonces se comunica con el gestor de ficheros del sistema + operativo para manipular la base de datos a través de los métodos de acceso + y búferes del sistema. +\end_layout + +\begin_layout Standard +La base de datos consta de ficheros de datos, estructuras de acceso como + índices y un catálogo el sistema, que contiene metadatos sobre estructura + y organización, restricciones de integridad, autorización, estadísticas + sobre los datos para optimización de consultas, etc. +\end_layout + +\end_body +\end_document |
