Professional Documents
Culture Documents
Justificación
Descripción de la asignatura
- Se define la Administración de Bases de Datos, los tipos de DBA, las tareas del
DBA y su ámbito en las organizaciones.
Objetivos
Objetivo general
Objetivos específicos
- Definir las condiciones que deben asegurar los DBMS para mantener la
información libre de errores.
APORTACIÓN Y
CAPÍTULO OBJETIVOS RESUMEN DEL CAPÍTULO RESULTADO
CONSEGUIDO
Revisión de las características
Identificar la necesidad
de la Información, La Gestión Se reconoce el impacto de
de las organizaciones
del Conocimiento y La la gestión adecuada de la
Capítulo 1 de gestionar
información como recurso información en las
adecuadamente su
principal de las organizaciones.
información.
Organizaciones.
Definición de la Administración Se identifican las tareas
Describir
de Bases de Datos, los tipos específicas que debe tener
adecuadamente el
Capítulo 2 de DBA, las tareas del DBA y un DBA, para distinguirlo de
ámbito de trabajo del
su ámbito en las otros miembros de un
DBA.
organizaciones. equipo de IT.
Indicación de las
consideraciones para escoger
Se reconoce que un DBMS
Indicar la forma un DBMS, las fases de una
debe ser escogido en base
adecuada de gestionar Instalación, los tipos de
Capítulo 3 a criterios técnicos, por el
la instalación de un actualizaciones y la definición
personal de IT de la
DBMS. de estándares requeridos en
organización.
un ambiente de Bases de
datos.
Descripción de los Se identifican los factores
Definir el proceso de componentes de un Modelo críticos del modelamiento
Capítulo 4 Modelamiento de de Datos, las fases del Diseño de datos y su influencia en
datos. de Bases de datos y el la estructura de la
Proceso de Normalización. información organizacional.
Se reconocer al DBA como
Definir los elementos promotor de las buenas
de las Aplicaciones que Descripción del lenguaje SQL, prácticas de programación
Capítulo 5 tienen incidencia en el el control de transacciones y utilizando Bases de datos,
rendimiento de las bloqueos. para asegurar el correcto
Bases de datos. rendimiento de las
aplicaciones.
Definir las condiciones
Definición de la Integridad Se reconoce la integridad
que deben asegurar los
semántica y estructural, así de la información como un
Capítulo 6 DBMS para mantener
como los mecanismos para su factor crítico de la gestión
la información libre de
control. de Bases de datos.
errores.
Definición del Downtime, los
Identificar los riesgos Se reconoce la criticidad de
problemas comunes de
que tienen los Sistemas la disponibilidad de los
disponibilidad, y los
Capítulo 7 de almacenamiento de DBMS's para el desarrollo
mecanismos para el
información, así como de las actividades de las
aseguramiento de la
su mitigación. organizaciones.
información.
OBJETIVOS
- Definir la Información como recurso estratégico de las organizaciones.
1.1. Introducción
En nuestros días, que vivimos en un mundo globalizado, con alta incertidumbre y
competencia, la gestión de la información se ha convertido en elemento que sirve
para marcar diferencias y lograr ventaja competitiva. En este sentido, las
Tecnologías de la Información ofrecen herramientas propicias para salvaguardar el
conocimiento.
El objetivo general de los Sistemas de Gestión de base de datos (DBMS, por sus
siglas en inglés) es el de administrar de forma clara, sencilla y ordenada un
conjunto de datos que en lo posterior se convertirán en información relevante para
una organización.
Los DBMS's son la herramienta de software más idónea para manejar información
debido a que cumplen los siguientes objetivos:
- Consistencia: los DBMS's garantizan que los datos son siempre guardados de
forma coherente con Modelo de datos. Se garantiza que diferentes consultas de
una misma información siempre obtendrán el mismo resultado.
- Integridad: los DBMS's adoptan las medidas necesarias para garantizar la validez
de los datos almacenados. Es decir, se trata de proteger los datos ante errores de
hardware, datos introducidos por usuarios sin pericia, o cualquier otra
circunstancia en que se pueda corromper la información almacenada. Los DBMS's
proveen elementos para garantizar la recuperación de la base de datos hasta el
último estado consistente conocido, de forma automática.
1.2. La información
La información proporciona significado y sentido a las cosas, e indica mediante
códigos y grupos de datos, los modelos del pensamiento humano. La información
permite generar el conocimiento. Aunque otros seres vivos son capaces de
comunicarse transmitiendo información para su supervivencia, los seres humanos
en su capacidad de generar y perfeccionar códigos y símbolos que tienen
significado, crearon lenguajes comunes que resultaron útiles para la convivencia
en sociedad, a partir del establecimiento de sistemas de signos y lenguajes para la
comunicación.
- Polimorfismo.
La Información, como vía para llegar al Conocimiento, tiene que ser elaborada
para ser utilizada y estar disponible. Este procedimiento se llama Documentación,
y cuenta con métodos y herramientas propios.
- El mercado se vuelve cada vez más competitivo, por lo que se demanda mayor
innovación en los productos y servicios. El conocimiento debe desarrollarse y ser
asimilado con mayor velocidad.
- Hay una tendencia creciente de los empleados a retirarse cada vez más
temprano en su vida laboral o de aumentar su movilidad entre organizaciones, lo
cual ocasiona que el conocimiento de la empresa se pierda.
7. La Gestión del conocimiento implica mejorar los procesos del negocio que se
basan en conocimiento: es primordial dar dirección y mejorar el proceso genérico
de la gestión del conocimiento, pero se debe hacer donde el conocimiento es
generado, utilizado y compartido con intensidad, en la organización.
8. El acceso al conocimiento es sólo el principio: el acceso es muy importante,
pero la gestión exitosa del conocimiento también requiere control y compromiso.
Se dice que el control es el dinero efectivo de la era de la información.
9. La gestión del conocimiento nunca para: tal como ocurre con la gerencia de
Recursos Humanos o Administrativa, nunca llega el momento en que se pueda
decir que el conocimiento está completamente bajo control.
Debido a que en las Organizaciones es común trabajar con Activos tangibles cuyo
valor puede ser medido con mucha precisión, ha sido muy complicado determinar
el valor de la información. Sin embargo está claro que si los directores tienen
información adecuada, es más probable que puedan tomar decisiones pertinentes
y certeras con un mayor impacto positivo en el negocio. El desarrollo de los
Sistemas de Bases de Datos se convirtió en crucial para proporcionar información
correcta y oportuna, frente al almacenamiento en Sistemas de Archivo que era
utilizado entonces.
- Redundancia de datos.
- El modelo de red: al igual que el modelo jerárquico, usa punteros hacia los datos
almacenados. Sin embargo, no necesariamente utiliza una estructura de árbol
invertido.
Figura 1.3: Modelo de Red.
- El modelo deductivo: los datos se representan como una tabla, pero se operan
mediante cálculos de predicados.
OBJETIVOS
- Establecer la estructura y funciones adecuadas para el trabajo del personal que maneja
información en las organizaciones, separando los factores técnicos y de negocio.
2.1. Introducción
Toda organización que utilice una Base de datos para organizar su información,
requiere de un grupo de Administración para asegurar su adecuado
funcionamiento. A pesar de esto, la Administración de Bases de datos no siempre
es practicada adecuadamente, para lograr resultados óptimos.
- Las tareas para asegurar técnicamente la disponibilidad de los datos cubren toda
la jornada, e incluso se realizan en horarios fuera de oficina, para no interrumpir a
los usuarios.
- Monitoreo y Afinamiento
- Seguridad
- Respaldos
- Integridad de datos
- Identificar que las tablas tengan los índices adecuados para responder
adecuadamente a las consultas de los usuarios.
La disponibilidad implica que los usuarios autorizados tengan acceso a los datos
cuando lo necesiten para atender a las necesidades del negocio. De manera
incremental los negocios han ido requiriendo que su información esté disponible
todo el tiempo (7x24, o siete días a la semana, 24 horas del día).
2.3.4. Seguridad
Que una Base de datos pueda ser recuperada implica que si se da algún error en
los datos, en el DBMS o en el Servidor, el DBA puede traer de vuelta la base de
datos al Estado consistente en que se encontraba antes de que el daño se
causara. Las actividades de recuperación incluyen el hacer respaldos de la base
de datos y almacenar esos respaldos de manera que se minimice el riesgo de
daño o pérdida de los mismos, tales como hacer diversas copias en medios de
almacenamiento removibles y almacenarlos fuera del área en antelación a un
desastre anticipado. La recuperación es una de las tareas más importantes de los
DBA's.
Las grandes organizaciones pueden tener diferentes DBA's para realizar estas
tareas, pero en las organizaciones pequeñas un solo DBA debe ejecutar todos los
roles.
El DBA de Sistema se enfoca más en la parte técnica que en las regla de negocio,
principalmente en la Administración de Sistema. Sus tareas se centran en la
instalación y rendimiento del DBMS:
- Instalar nuevas versiones del DBMS y aplicar los parches liberados por el
proveedor.
- Establecer los parámetros de configuración.
- Número de usuarios.
- Número de aplicaciones.
- Niveles de servicios.
- Requerimientos de disponibilidad.
- Tipo de aplicaciones.
OBJETIVOS
3.1. Introducción
La instalación y configuración del Entorno de Bases de Datos es una de las tareas
más significativas del DBA, pues se requiere contar con el conocimiento,
experiencia y cuidado necesarios.
Es común que empresas medianas o grandes cuenten con más de dos DBMS's,
para soportar sus diferentes aplicaciones o infraestructura:
- Si se cuenta con servicios sobre Windows, es muy probable que el DBMS sea
Microsoft SQL Server, aunque otros proveedores también promocionan sus
motores para ejecutarse en esta plataforma.
Ante este panorama, la pregunta que cabe es: ¿Quién decide el DBMS a utilizar y
en qué momento?
Todos los proveedores líderes de DBMS's por lo general ofrecen las mismas
características en sus productos. Si un proveedor en particular lanza una
característica nueva, los otros no tardan en incorporarla, probablemente en menos
de dos años.
Algunos proveedores principales de DBMS's son:
HP HP-UX
HP OpenVMS
Oracle Oracle Database
IBM AIX5L
Linux
Microsoft Windows
Sun Solaris
Apple Mac OS X Server
HP HP-UX
HP OpenVMS
IBM AIX5L
Informix
IBM
IBM z/OS: zSeries
DB2
Linux
Microsoft Windows
Sun Solaris
IRIX
IBM OS/2
Microsoft SQL Server Windows
IBM AIX5L
Linux
Microsoft Windows
Sun Solaris
HP-UX
IBM AIX5L
Microsoft Windows
Sun Solaris
Tabla 3.1. Principales Proveedores de DBMS's.
- MySQL
- PostgreSQL
- Ingres
- Firebird
Una de las principales tareas del DBA debe ser escoger el DBMS correcto a
utilizar, cada vez que una aplicación es desarrollada. Una elección equivocada
puede causar bajo rendimiento, fallas del sistema y aplicaciones inestables.
- Personal DBMS: Las bases de datos personales están diseñadas para ser
utilizadas por un usuario en una estación de trabajo.
- Mobile DBMS: Las bases de datos móviles son una versión especializada de un
DBMS Departamental o Empresarial. Están diseñadas para usuarios remotos que
generalmente no están conectados a una red local, y pueden ser utilizadas en
dispositivos móviles. Adicionalmente, ofrecen herramientas de sincronización de
información para actualizar los cambios contra una Base de datos Centralizada de
la organización.
2. Shared Disk: este tipo de cluster es usado para sistemas de alta disponibilidad
orientados a procesar un gran volumen de información. Estos sistemas consisten
en un dispositivo de almacenamiento compartido y nodos del cluster que se
distribuyen el acceso a los datos compartidos, desde diversas fuentes.
Figura 3.2: Modelo de Cluster Shared Disk.
Si las tareas permiten dividir de forma lógica los datos de manera que los pedidos
de ciertos subgrupos puedan ser procesados usando parte de los datos, el
sistema Shared Nothing puede ser la opción más apropiada.
Los clusters con tolerancia a fallos de 2 nodos son los sistemas más populares
comercialmente, pudiendo implementarse modelos Activo-Activo (los 2 nodos
pueden ser utilizados) y Activo-Pasivo (un nodo trabaja y el otro solamente espera,
en caso de falla).
Una vez que los requisitos sean cubiertos, se deben seguir las indicaciones de la
Guía para proceder a la instalación.
- Bases de datos y Tablas de sistema que son usadas por el DBMS para la
administración de las Bases de Datos de Usuario.
La lectura desde disco siempre es más lenta que la lectura desde la memoria, por
lo que la configuración apropiada del caché de datos es un factor crítico en el
rendimiento de las aplicaciones.
Los recursos de memoria son requeridos por los DBMS's para soportar otras
características como el manejo de los bloqueos, control de los requerimientos de
datos, ordenamiento de la información y procesamiento de las consultas.
3.3.5. Configuración
Una vez que el DBMS está operativo, los parámetros de configuración pueden ser
modificados, ya sea a través de comandos, o editando los archivos de
configuración. Existen adicionalmente consolas de administración que permiten
realizar los cambios a través de un entorno gráfico e intuitivo. Sea cual fuere la
forma de cambio de los parámetros de configuración, el proceso debe realizarse
con precaución y exactitud, pues se afecta directamente a la forma de operación
del DBMS.
El primer estándar a establecer debe ser la guía para nombrar los objetos de las
bases de datos. Sin un estándar es dificultoso identificar correctamente los
nombres de los objetos, tanto para tareas de administración como de
programación.
- Políticas de actualizaciones.
- Consideraciones de interfaces.
OBJETIVOS
- Introducir el concepto de entidad como una estructura básica del modelo relacional.
La teoría propuesta por Edgar Frank Codd presentó un nuevo modelo de datos
que perseguía los siguientes objetivos:
- Flexibilidad: para lograr presentar a cada usuario los datos de la forma en que
éste requiera.
Para conseguir los objetivos indicados, Edgar Frank Codd introduce el concepto
de entidad (tabla) como una estructura básica del modelo relacional. Toda la
información de la Base de Datos se representa en forma de entidades cuyo
contenido varía con el tiempo.
4.2.1. Entidades
Nombre de la tabla
Existen también los dominios de donde los atributos toman sus valores. Estos
dominios se denominan "Tipos de Datos".
- Ejemplo: Cliente
- No pueden existir filas duplicadas, es decir, todos los registros tienen que ser
distintos.
- La tabla es plana, es decir, en la relación de una fila y una columna sólo puede
haber un valor (no se admiten atributos con múltiples valores).
Ejemplos de dominios:
Por ejemplo los atributos edad_física y edad_mental pueden estar definidos sobre
el mismo dominio edad; o los atributos valor_compra y valor_venta pueden estar
definidos sobre el mismo dominio de enteros de longitud 10.
4.2.3. Claves
- Clave alternativa: son aquellas claves candidatas que no han sido finalmente
elegidas.
- Los atributos que componen la clave primaria no pueden tener valores nulos
(null).
- Los valores de las claves primarias no deberían ser cambiados, para no alterar la
unicidad de los registros.
4.2.4. Relaciones
Las relaciones definen la forma cómo diferentes entidades interactúan entre sí. El
nombre de una relación describe el papel de una entidad en la asociación con la
otra entidad. Las claves definen la relación: la clave primaria en la entidad
principal, y la clave foránea en la entidad dependiente.
2. Diseño conceptual.
3. Diseño lógico.
4. Diseño físico.
Los analistas entrevistan a los futuros usuarios de la base de datos para recoger y
documentar sus requerimientos de información. En forma paralela, es conveniente
definir los requerimientos funcionales que consisten en transacciones que se
aplicarán a la base de datos, e incluyen la obtención de datos y su actualización.
Una vez que se ha recogido todos los requerimientos, el siguiente paso es crear
un esquema para la base de datos mediante un modelo de datos conceptual.
4.4. Normalización
El proceso de Normalización de bases de datos consiste en aplicar una serie de
reglas a las entidades obtenidas tras el paso del modelo entidad-relación al
modelo relacional.
Una entidad está en primera forma normal (1FN) si los valores para cada uno de
sus atributos son atómicos.
Esto quiere decir simplemente que cada atributo sólo puede pertenecer a un
dominio (que no puede ser dividido) y que tiene un valor único para cada registro.
La primera forma normal fue creada para no permitir los atributos con múltiples
valores, compuestos y sus combinaciones.
- Ejemplo
Se diseña una entidad para almacenar los nombres y teléfonos de los clientes:
- Cliente
- Cliente
Figura 4.4: Ejemplo de Entidad Cliente que cumple con la 1FN.
- Teléfono de Cliente
Figura 4.5: Ejemplo de Entidad Teléfono de Cliente que cumple con la 1FN.
Una entidad está en segunda a normal si está en la 1FN y todos los atributos que
no son clave, dependen de la clave completa y no sólo de una parte de ésta.
- Ejemplo
Figura 4.8: Ejemplo de Entidad Tarea del Empleado que cumple con la 2FN.
Una entidad está en tercera forma normal si está en 2FN y todos sus atributos
dependen funcionalmente sólo de la clave, y no de ningún otro atributo.
Esto significa que en una entidad en 3FN, para toda DF: X → Y, X es una clave.
Podemos observar que si una entidad está en tercera forma normal, está también
en segunda forma normal, sin embargo lo inverso no siempre es cierto.
- Ejemplo
Se diseña una entidad para registrar los ganadores de diferentes torneos de Tenis:
- Ganadores de Torneos
Figura 4.9: Ejemplo de Entidad Ganadores de Torneos que no cumple con la 3FN.
Se puede observar que la clave candidata para esta entidad es {Torneo, Año}. Se
viola la 3FN porque el atributo Fecha de Nacimiento tiene una dependencia
transitiva hacia la clave candidata, de forma indirecta a través de atributo Ganador.
Esto hace vulnerable a la entidad ante posibles inconsistencias lógicas, pues el
valor del atributo Fecha de Nacimiento podría ser diferente en algunos registros.
- Ganadores de Torneos
Figura 4.10: Ejemplo de Entidad Ganadores de Torneos que cumple con la 3FN.
- Jugadores de Tenis
Figura 4.11: Ejemplo de Entidad Jugadores de Tenis que cumple con la 3FN.
A una condición que haga cumplir esta dependencia de los atributos que requieren
duplicación de valores se le denomina una Dependencia Multivaluada. Debido a
que requieren una gran duplicación de valores de datos, un aspecto importante del
proceso de normalización es eliminar las Dependencias Multivaluadas. Esto se
hace con la Cuarta Forma normal.
- Ejemplo
- Facultad
Figura 4.12: Ejemplo de Entidad Facultad que no cumple con la 4FN.
- Comité
- Curso
OBJETIVOS
- Promover el uso correcto de los principios de Diseño de Aplicaciones, para lograr que los
programadores consideren la forma como sus scripts afectan al rendimiento de la Base de datos.
- Identificar los tipos de bloqueos y la forma adecuada de utilizarlos, para evitar el deadlock.
5.1. Introducción
El diseño de Aplicaciones es un proceso que va más allá de escribir sentencias
eficientes para realizar requerimientos a una Base de datos. Cada parte de un
programa afecta a la efectividad y facilidad de uso de la aplicación, por lo que
debe ser diseñada para asegurar la integridad de los datos que modifica, cuidando
siempre que el rendimiento sea óptimo.
- Cómo optimizar los accesos a las Bases de Datos mediante el uso de índices.
5.2. SQL
El SQL (Structured Query Language) es un lenguaje de consulta y programación
utilizado para examinar, reemplazar y gestionar la información almacenada en los
DBMS's.
El lenguaje de definición de datos (DDL por sus siglas en inglés) es el que permite
la modificación de las estructuras de los objetos de la base de datos. Existen
cuatro instrucciones DDL básicas: CREATE, ALTER, DROP y TRUNCATE.
- CREATE: Este comando crea un objeto dentro de la base de datos. Estos
objetos pueden ser una tabla, vista, índice, trigger, función, procedimiento o
cualquier otro que el motor de la base de datos soporte.
- DROP: Este comando permite eliminar un objeto de la base de datos, que puede
ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto
que el motor de la base de datos contenga. Es posible combinar este comando
con la sentencia ALTER.
- TRUNCATE: Este comando se utiliza para borrar todo el contenido de una tabla.
La ventaja de este comando sobre DELETE, es que es mucho más rápido si se
quiere borrar todo el contenido de la tabla, especialmente si la tabla es muy
grande. La desventaja es que TRUNCATE solamente sirve cuando se quiere
eliminar absolutamente todos los registros, ya que no es permitida la cláusula
WHERE. Aunque en un principio esta sentencia parece ser de tipo DML, es en
realidad una DDL, ya que internamente para su ejecución, el comando borra la
tabla y la vuelve a crear. Este comando no genera transacciones en el área de log.
- SELECT: Esta sentencia sirve para hacer una consulta de los datos que se
encuentren en una tabla. Una consulta realizada con este comando devuelve los
registros que cumplan con la condición indicada.
Sintaxis:
Ejemplos:
La siguiente sentencia devuelve el valor total de los registros que cumplen con la
condición indicada:
- INSERT: Una sentencia INSERT de SQL permite agregar uno o más registros a
una tabla en una base de datos.
Sintaxis:
Las cantidades de columnas y valores tienen que ser siempre iguales. Si una
columna no se especifica en la sentencia, le será asignado el valor por omisión
indicado en la definición de la tabla. Los valores especificados por la sentencia
INSERT tienen que satisfacer todas las restricciones aplicables a cada campo. Si
en la ejecución de la sentencia ocurre un error de sintaxis o si alguna de las
restricciones es vulnerada, no se agrega el registro y se devuelve un error al
usuario.
Ejemplo:
- UPDATE: Una sentencia UPDATE de SQL es utilizada para modificar los valores
de un grupo de registros existentes en una tabla.
Sintaxis:
Ejemplo:
Sintaxis:
Ejemplo:
Cuando todos los pasos de una transacción son ejecutados sin problemas, se
acepta la transacción, ejecutando la sentencia COMMIT. La ejecución de la
sentencia COMMIT le indica al DBMS que los cambios realizados por la
transacción pueden ser finalmente grabados en la Base de Datos.
Si alguno de los pasos de la transacción falla, se tienen que solicitar al DBMS que
deshaga los cambios realizados. Esto se realiza ejecutando una sentencia
ROLLBACK. Cuando se ejecuta la sentencia ROLLBACK, los datos almacenados
son llevados a su estado inicial, es decir, al valor que tenían antes de la ejecución
de la transacción.
5.3.1. ACID
Es obligatorio que una transacción cumpla con las propiedades establecidas por el
estándar ACID: atomicity, consistency, isolation, durability. Cada una de estas
cuatro condiciones tiene que cumplirse para asegurar que una transacción está
correctamente diseñada.
- Aislamiento: esta condición asegura que una operación no puede afectar a otras.
Esto permite que la realización de dos transacciones simultáneas sobre la misma
porción de información nunca generará ningún tipo de error.
- Una transacción debe ser corta en duración, porque ésta bloquea recursos
compartidos para otras transacciones.
- Una transacción debe estar diseñada para que no espere una decisión, para que
no haya retrasos por una respuesta en medio de su ejecución.
5.4. Bloqueos
Una responsabilidad importante para un administrador de base de datos es la
consistencia del DBMS, es decir, asegurar que los programas y procedimientos
proporcionen la confiabilidad de los datos a pesar de que ocurran posible errores
en la operación del equipo, programas o errores humanos.
Resaltan dos aspectos en los que hay que tener cuidado para lograr aportar
confiabilidad a una base de datos dentro de un ambiente multiusuario:
Los bloqueos pueden colocarse de forma automática por el DBMS o por medio de
un comando ejecutado en el DBMS, partiendo del programa o del usuario de la
consulta. Los bloqueos colocados por el DBMS se conocen como bloqueos
implícitos. Los bloqueos que son colocados por comando se llaman bloqueos
explícitos.
Los bloqueos pueden ser colocados en distintos niveles: registro, página, tabla o
base de datos. Al tamaño del bloqueo se lo conoce como granularidad del
bloqueo. Los bloqueos con granularidad mayor son adecuados para el DBMS en
cuanto a su administración, porque consumen menos recursos de memoria. Sin
embargo, con frecuencia causan conflictos. Los bloqueos con pequeña
granularidad son difíciles de administrar, porque consumen mucha memoria.
Cuando se colocan bloqueos con granularidad fina existen muchos más detalles
que el DBMS debe de controlar y revisar, pero los conflictos son menos comunes.
Los bloqueos tienen diferentes tipos. Un bloqueo exclusivo cierra al objeto ante un
acceso de cualquier fuente. Ninguna otra transacción puede leer o modificar los
datos. Un bloqueo compartido cierra los objetos ante modificaciones, pero no a la
consulta. Otras transacciones pueden leer al objeto, siempre que no intenten
modificarlo.
Los límites de una transacción deben corresponder a la definición del objeto que
se está procesando. Siguiendo esta estrategia de dos fases, las hileras de cada
afinidad en el objeto se bloquean conforme se necesitan. Se realizan las
modificaciones, pero los datos no se devuelven a la base de datos hasta que todo
el objeto haya sido procesado. Ya en este punto se efectúan los cambios a la base
de datos real, y todos los bloqueos son liberados.
Aunque los bloqueos resuelve un problema, generan otro muy grave que se
denomina interbloqueo o abrazo mortal (deadlock). El deadlock consiste en que
un usuario espera un recurso que otro usuario tiene bloqueado, y este usuario a
su vez esté esperando por un recurso que el primer usuario tiene bloqueado.
Existen dos maneras comunes de resolver este problema: impidiendo que el
interbloqueo se presente o permitiendo que ocurra, y a continuación resolverlo.
5.4.2. Timeouts
Cuando los datos están bloqueados por un proceso, otro proceso tiene que
esperar hasta que se libere el bloqueo, para poder acceder a la información. Un
bloqueo colocado por demasiado tiempo se convierte en un potencial problema
para el rendimiento de la aplicación. Si la aplicación no ha sido diseñada de forma
apropiada, el bloqueo no se liberará hasta que el programa falle o se realice una
acción por parte del DBA.
A pesar de esta funcionalidad que ofrecen los DBMS's, se considera como una
buena práctica que los programas controlen el timeout para reversar las
transacciones.
5.4.3. Deadlocks
Un proceso puede estar identificado con tres estados diferentes: leyendo,
ejecutando o bloqueado. En el estado de lectura, un proceso está parado,
concediendo que otro proceso sea ejecutado; en el estado de ejecución, un
proceso está utilizando algún recurso; y en el estado de bloqueo, el proceso está
parado y no se ejecutará mientras no tenga los recursos que necesita.
Muchos escenarios han sido construidos para ilustrar las condiciones de deadlock,
siendo el más popular el Problema de Comida de los Filósofos:
Cinco filósofos tienen cinco platos de fideos enfrente y cinco tenedores, uno a
cada lado del plato. Los filósofos requieren ambos tenedores (derecha e izquierda)
para comer. Durante la comida realizarán solo dos operaciones mutuamente
excluyentes, pensar o comer. El problema es un paralelismo simplista entre
procesos (los filósofos) tratando de obtener recursos (tenedores); mientras están
en estado de ejecución (comiendo) o de lectura (pensando). Una condición posible
de deadlock puede ocurrir, si todos los filósofos quieren coger el tenedor de la
derecha y, a la vez, el de la izquierda: la comida terminará en estado de deadlock.
- Dirty Reads: Ocurre cuando una transacción lee datos modificados por otros
procesos concurrentes que aún no han realizado COMMIT.
- Nonrepeatable Reads: Se presenta cuando dentro de una transacción se lee el
mismo registro más de una vez y los datos obtenidos son diferentes, seguramente
porque otro proceso concurrente los actualizó.
OBJETIVOS
- Establecer la diferencia entre la integridad semántica y la integridad estructural.
- Identificar los mecanismos de control de la integridad estructural que proveen los DBMS's.
- Identificar los mecanismos de control de la integridad semántica que proveen los DBMS's.
- Analizar los tipos de relaciones entre las entidades y la forma de mantener la integridad
referencial.
6.1. Introducción
El aseguramiento de la Integridad de las Bases de Datos de la organización es
una parte muy importante del trabajo del DBA. Si existen problemas de integridad,
una base de datos se vuelve poco útil. Los DBMS's proveen herramientas para
asegurar la integridad de los datos.
Siendo este tipo de utilitarios equivalentes, exploremos las opciones del comando
DBCC, para observar los tipos de chequeos de consistencia que pueden
realizarse.
Cabe indicar que estas utilidades deben ser manejadas con cuidado, porque es
posible leer y escribir directamente en los archivos que utiliza la base de datos,
cuando se las ejecuta.
- Integridad de la entidad
- Unique Constraints
- Tipos de datos
- Check Constraints
- Triggers
- Integridad Referencial
- Que siempre se especifique una clave primaria para cada entidad del modelo de
datos.
- Por definición, las entidades en el mundo real son distinguibles; es decir se les
puede identificar de alguna manera.
- Por tanto los representantes de entidades dentro de la Base de datos deben ser
distinguibles también.
- Las Claves primarias son utilizadas para otorgar identidad única dentro del
modelo relacional.
- Si tiene valor nulo y esto implica que "la propiedad no es aplicable" es evidente
que el registro no tiene sentido.
Los tipos de datos para las columnas de una tabla deben ser escogidos en tiempo
de diseño con mucha precaución, procurando realizar la elección adecuada al
dominio de la información que se va a almacenar.
6.3.4. Valores por Defecto
Para cada columna es posible definir un valor por defecto, de forma opcional. El
valor por defecto se asignará de forma automática a una columna cuando no se
especifique un valor determinado al insertar un registro nuevo.
Si una columna puede tener un valor nulo y no se especifica un valor por defecto,
se usará NULL como valor por defecto.
Es claro que el valor por defecto asignado a un campo debe ser del mismo tipo de
dato.
Este tipo de constraints son usadas para asegurar reglas simples de negocio
sobre el contenido de los datos en las tablas.
Los check constraints pueden referenciar a otras columnas en la fila que está
siendo chequeada, pero no pueden referenciar a otras filas o a otras tablas, o
llamar a funciones.
Es posible que una columna pueda estar protegida por más de un check
constraint. De la misma forma, una check contraint puede proteger a más de una
columna.
6.3.6. Triggers
Los triggers son muy utilizados para mejorar la gestión de la Base de datos,
especialmente para asegurar la integridad de la información. Son muy útiles pues
permiten realizar una acción automática sin necesidad de que el usuario ejecute
ninguna sentencia de SQL.
- No pueden ejecutar las operaciones COMMIT o ROLLBACK por que estas son
parte de la sentencia SQL del disparador.
- Relación Uno a Uno: Cuando un registro de una tabla sólo puede estar
relacionado con un único registro de la otra tabla.
- Ejemplo
- Relación Uno a Muchos: Cuando un registro de una tabla (tabla secundaria) sólo
puede estar relacionado con un único registro de la otra tabla (tabla principal) y un
registro de la tabla principal puede tener más de un registro relacionado en la tabla
secundaria. En este caso se suele hacer referencia a la tabla principal como tabla
"padre" y a la tabla secundaria como tabla "hijo". Entonces la regla se convierte en
"un padre puede tener varios hijos pero un hijo solo tiene un padre".
- Ejemplo:
Se tiene una tabla con los datos de diferentes poblaciones y otra con los
habitantes. Una población puede tener más de un habitante, pero un habitante
estará empadronado en una única población.
Ejemplo: Se tiene una tabla con los datos de clientes y otra con los artículos que
se venden en la empresa. Un cliente puede realizar un pedido con varios artículos,
y un artículo podrá ser vendido a más de un cliente.
Para establecer la relación entre clientes y artículos hace falta otra tabla, por
ejemplo una tabla de pedidos. La tabla pedidos estará relacionada con cliente por
una relación uno a muchos y también estará relacionada con artículos por un
relación uno a muchos.
Cuando se define una columna como clave foránea, las filas de la tabla pueden
contener en esa columna un valor nulo o un valor que existe en la otra tabla. Un
error sería asignar un valor que no existe en la tabla primaria. Esto es lo que se
denomina integridad referencial y consiste en que los datos que son
referenciados desde otra tabla (claves foráneas) deben ser correctos. La
integridad referencial hace que el DBMS se asegure de que no haya en las claves
foráneas valores que no estén en la tabla principal.
Para soportar los casos de cambios en las claves primarias, los DBMS's ofrecen
las siguientes posibilidades:
Ejemplo:
Ejemplo:
7.1. Introducción
El aseguramiento de la disponibilidad de la información es la tarea principal del
DBA. Si la Base de datos no está disponible, las aplicaciones no pueden trabajar,
con lo cual la Organización no funcionará con normalidad. Por esta razón, el DBA
pone todo su esfuerzo en asegurar que las Bases de datos se mantengan en línea
y operativas.
- Crear y mantener una infraestructura efectiva para satisfacer los servicios de los
usuarios.
Para estimar el costo del downtime se deben considerar los siguientes factores:
Las organizaciones de este tiempo deben considerar que muchas veces las
pérdidas producidas durante un daño del sistema, suelen ser mayores que la
inversión necesaria para asegurar la alta disponibilidad de los sistemas.
- Fallas de Hardware
- Fallas de Seguridad
- Desastres naturales.
- Incendios.
- Atentados.
- Contar oportunamente con una persona con las habilidades requeridas para
diagnosticar el problema, identificar la parte defectuosa y reemplazarla.
- Horario de cobertura.
- Lunes a viernes, 12/18/24 horas cada día (con los tiempos de comienzo y de
finalización acordados mutuamente)
- Servicio permanente: 365 días, 7 días a la semana, las 24 horas del día.
- Bloqueos o Inhibiciones.
Para evitar este tipo de fallas del DBMS, es recomendable tener instalados los
últimos parches de la versión en producción. Los parches contienen las soluciones
a los problemas conocidos.
Los siguientes problemas pueden ser causa de una degradación del rendimiento:
- Corrupción de índices.
- Problemas de contención.
El DBA debe tomar acciones preventivas para evitar que este tipo de problemas
se presenten.
7.4. Aseguramiento de la
disponibilidad
Con el objetivo de asegurar la disponibilidad de la información el DBA debe
implementar políticas que incluyen los siguientes pasos:
7.4.1. Mantenimiento
Las principales tareas de mantenimiento que ejecuta el DBA son:
- Tareas de respaldo.