Академический Документы
Профессиональный Документы
Культура Документы
* Fallos derivados de la concurrencia. Ya que toda la informacin est centralizada y los distintos usuarios acceden a ella de forma simultnea, pueden ocurrir problemas cuando dos usuarios quieren acceder al mismo dato a la vez. Por ello el SGBD debe tener establecidos mecanismos para evitar este tipo de problema, bloquear registros, abortar automticamente transacciones etc. Redundancia mnima La redundancia consiste en que exista algn dato repetido en varios lugares. Por ejemplo si tenemos la direccin del cliente en la factura, en la cuenta contable, en los datos generales del cliente; esto como ya vimos anteriormente nos producir varios problemas: la informacin repetida ocupa espacio innecesario. la variacin de un domicilio supone el variar ese domicilio en todos los lugares donde est almacenado. o o mayor tiempo de proceso posibilidad de inconsistencia
Por todo ello hay que evitar al mximo esa redundancia, esto se consigue utilizando herramientas de diseo y obteniendo un diseo ptimo de la base de datos. Facilidad de recuperacin de la informacin Otro objetivo muy importante de un SGBD es el proporcionar al usuario (o programador) unas herramientas potentes de manejo de datos para que pueda de manera sencilla y rpida, obtener toda la informacin que desea sin que, por ello se tenga que hacer un programa complejo. Veremos que el SQL, lenguaje empleado para recuperar informacin de la base de datos, es un lenguaje muy potente y cercano al lenguaje hablado, y adems los SGBD incluyen entornos grficos sencillos de utilizar
o o o o
Llegado el caso, reorganizar las bases de datos. Disear y efectuar el planning de copias de seguridad peridicas. Restaurar la base de datos despus de un incidente. Estudiar las auditoras mediante el ajuste de parmetros y con ayuda de las herramientas de monitorizacin del sistema y de las estadsticas.
El diccionario de datos
Dentro del SGBD, hay una parte que son datos sobre los datos, es una base de datos en la que se almacena toda la informacin necesaria para que el sistema funcione. Esta base de datos es el diccionario de datos y contiene: La estructura lgica y fsica de la base de datos. Las definiciones de todos los objetos de la base de datos: tablas, vistas, ndices, disparadores (triggers) funciones, procedimientos almacenados, etc. El espacio asignado y utilizado por los objetos. Los valores por defecto de las columnas de las tablas. Los privilegios otorgados a los usuarios. Informacin que permita obtener estadsticas y evaluaciones del rendimiento del sistema
En modo Cliente/Servidor, la base de datos se encuentra en un ordenador (el Servidor) y los usuarios acceden simultneamente a esa base de datos a travs de la red (sea una red local o Internet) desde sus ordenadores a travs de un programa Cliente. A nivel de empresas es el sistema que ms se utiliza en la actualidad. Ventajas Multiusuario Permite que varios usuarios accedan a la vez a la misma informacin. No redundancia Al estar todos los datos en el mismo servidor, la informacin no se duplica y es ms facil evitar fallos debidos a redundancias. 3. Bases de datos distribuidas Tenemos la informacin repartida en distintas localizaciones unidas todas ellas mediante red y un sistema gestor de bases de datos distribuidas. Las distintas localizaciones suelen ser distintas geogrficamente. Desventajas Complejidad Tiene que incluir y gestionar un sistema de usuario y subesquemas. Seguridad Se tienen que realizar controles para garantizar la seguridad de los datos, tanto a nivel interno como a nivel de comunicaciones.
Desventajas el diseo
de
datos
Una clara ventaja es que es posible ubicar los datos en lugares donde se necesitan con ms frecuencia, aunque tambin se permita a usuarios no locales acceder a los datos segn sus necesidades. Esto hace que la informacin se recupere de forma ms rpida y gil en las ubicaciones locales. Adems los sistemas trabajan en paralelo, lo cual permite balancear la carga en los servidores. Disponibilidad En caso de que falle la base de datos de alguna localidad, el sistema no se colapsa, puede seguir funcionando excluyendo los datos de la localidad que haya fallado. Autonoma local Un departamento puede controlar los datos que le pertenecen. Economa en la implantacin Es ms barato crear una red de muchas mquinas pequeas, que tener una sola mquina muy poderosa. Modularidad Se pueden modificar, agregar o quitar sistemas de la base de datos distribuida sin afectar a los dems sistemas (mdulos).
Adems de las dificultades que generalmente se encuentran al disear una base de datos, el diseo de una base de datos distribuida debe considerar la fragmentacin, replicacin y ubicacin de los fragmentos en sitios especficos, se tiene que trabajar tomando en cuenta su naturaleza distribuida, por lo cual no podemos pensar en hacer joins que afecten a tablas de varios sistemas, etc. Complejidad tcnica Se debe asegurar que la base de datos sea transparente, se debe lidiar con varios sistemas diferentes que pueden presentar dificultades nicas. Economa en el mantenimiento La complejidad y la infraestructura necesaria implica que se necesitar mayor mano de obra. Seguridad Se debe trabajar en la seguridad de la infraestructura as como cada uno de los sistemas. Integridad Se vuelve difcil mantener la integridad, aplicar las reglas de integridad a travs de la red puede ser muy caro en trminos de transmisin de datos. Falta de experiencia Las bases de datos distribuidas son un campo relativamente nuevo y poco comn por lo cual no existe mucho personal con experiencia o conocimientos adecuados. Carencia de estndares An no existen herramientas o metodologas que ayuden a los usuarios a convertir un DBMS centralizado en un DBMS distribuido.
Tipos de bases de datos segn la organizacin lgica de los datos En un principio existan tres tipos de bases de datos segn su estructura interna (la manera de organizar la informacin): Bases de datos jerrquicas Bases de datos en red Bases de datos relacionales. Ms recientes son las bases de datos orientadas a objetos y las bases de datos multidimensionales. 1. Las bases de datos jerrquicas En una base de datos jerrquica se organizan los datos utilizando estructuras arborescentes (en rbol). Un RBOL es una estructura jerrquica en la que los elementos se suelen denominar NODOS y existen dependencias entre los nodos. La dependencia es de 1:M del tipo padre/hijo. Un hijo no puede tener ms de un padre, pero un padre varios hijos.
Un ejemplo de base de datos jerrquica es el sistema IMS. 2. Las bases de datos en red Tambin en desuso, en una base de datos en red se utiliza la estructura de grafo/red, como en el caso anterior los distintos objetos estn relacionados entre s mediante relaciones del tipo 1:M pero en este caso un objeto puede estar relacionado como hijo con varios elementos que sern sus padres. Un este caso las relaciones que se crean se denominan SET y el equivalente al padre se denomina PROPIETARIO (OWNER) y el equivalente al hijo se denomina MIEMBRO (MEMBER). Un ejemplo de sistema en red es el CODASYL. Tambin existen modelos para realizar el diseo de datos orientado a bases de datos en red. En red podramos representar lo mismo que la estructura anterior y adems lo siguiente:
Los sistemas jerrquico y en red constituyen la primera generacin de los SGBD. Pero estos sistemas presentan algunos inconvenientes: Es necesario escribir complejos programas de aplicacin para responder a cualquier tipo de consulta de datos, por simple que sta sea. La independencia de datos es mnima. No incluyen controles de integridad. Por lo que pronto fueron sustituidos por los sistemas relacionales. 3. Las bases de datos relacionales Esta es la estructura que se ha impuesto para aplicaciones de gestin, consiste en organizar los datos en forma de tablas, las relaciones entre los objetos se consiguen incluyendo en la tabla del hijo, la clave del objeto padre. Como son las que utilizaremos durante todo el mdulo hemos reservado un apartado especial para ellas. 4. Las bases de datos orientadas a objetos Es un modelo ms reciente, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). La informacin que contienen se organiza en atributos y el comportamiento en operaciones. 5. Las bases de datos mutidimensionales En una base de datos multidimensional los datos se almacenan en tablas de mltiples dimensiones en vez de tablas bidimensionales como las del modelo relacional. Se utilizan para grandes volmenes de informacin
El esquema de la tabla Piezas est compuesto por las columnas (Codigo, Denominacin, Precio, Fabricante, Codigo_segn_fab). Codigo es el cdigo de la pieza, Denominacion el nombre de la pieza, Fabricante el cdigo del fabricante que nos suministra la pieza y Cdigo_segn_fab el cdigo que utiliza ese fabricante para identificar la pieza en su sistema de gestin. Una ocurrencia de fila de la tabla Piezas sera:1, Taburete 3 patas, 25, Fab1, T123-34. Todos los valores de una columna determinada tienen el mismo tipo de datos, y stos estn extrados de un conjunto de valores legales llamado dominio de la columna. Muchas veces el dominio se corresponder con un tipo de datos estndar del sistema. Por ejemplo en la tabla Piezas la columna Codigo est definida sobre el dominio de los enteros. A parte de los valores del dominio, la columna puede contener un valor especial, el valor nulo. El valor nulo (NULL) es importante porque representa la ausencia de valor en el campo y no es lo mismo que el valor cero 0 o la cadena vaca o espacios en blanco. De hecho es un valor tan especial que no funciona como los dems valores, por ejemplo no podemos comparar (con el operador de comparacin =) un campo con el valor nulo, tenemos que utilizar un operador especial (IS NULL). Incluso se han tenido que redefinir los operadores lgicos para tener en cuenta el valor nulo. Ej. En la tabla Fabricantes el campo direccin de la primera fila contiene el valor nulo (null) esto significa que este fabricante no tiene direccin (al menos conocida). En una tabla cada columna tiene un nico nombre y ste no se puede utilizar para nombrar otra columna de la misma tabla pero s de otra tabla.
Por ejemplo en la tabla Piezas no se pueden definir dos columnas llamadas Codigo, por eso el segundo cdigo lo hemos llamado Codigo_segun_fab. Pero en la tabla Fabricantes la columna IdFab se poda haber llamado Codigo sin problema. En una tabla no se admiten dos filas con los valores coincidentes en todos sus campos. Esta restriccin no se suele cumplir. Esta regla nos dice que por ejemplo en la tabla Fabricantes no pueden haber dos filas con los valores Fab1, Muebles la Madera, null. Realmente sera informacin redundante, por eso la existencia de esta regla, no obstante en algunos casos muy concretos s es necesario poder almacenar dos ocurrencias de fila idnticas, por esta razn muchos SGBD no cumplen esta regla. Toda tabla debe tener una clave principal (clave primaria). Una clave primaria es cualquier una columna (o combinacin de columnas) que permite identificar de forma unvoca cada una de las filas de la tabla. Para que pueda cumplir su cometido, la clave primaria no puede contener valores nulos ni valores duplicados (no podr haber dos filas con el mismo valor en este campo). Hay SGBD que incluyen el concepto de clave primaria pero no la hacen obligatoria, por lo que en estos sistemas se pueden definir tablas sin clave primaria. En una tabla pueden existir ms de una columna que permita identificar las filas de la tabla, si queremos utilizar tales columnas como identificadores las definiremos como claves secundarias (alternativas). Una clave secundaria tiene las mismas restricciones que una clave primaria, pero como no podemos definir dos claves primarias, definimos la que se vaya a utilizar ms frecuentemente como clave primaria y la otra (u otras) como secundarias. Por ejemplo en la tabla Piezas la clave primaria es el campo Codigo ya que no hay ni puede haber dos piezas con el mismo cdigo. Este campo realmente sirve para identificar las filas de la tabla, sabiendo un valor de cdigo (por ejemplo el 2) sabremos que nos referimos a la fila de la mesa ovalada. En esta misma tabla tenemos una posible clave alternativa, la formada por los campos Fabricante y Codigo_segun_fab ya que en la tabla Piezas es imposible tener dos filas con la misma combinacin de valores en estos campos (el cdigo_segun_fab es el cdigo que utiliza el fabricante para identificar sus piezas). Otro concepto muy importante, fundamental en las bases de datos relacionales, es la clave ajena (externa o fornea). Una clave ajena es un campo (o combinacin de campos) que contiene la referencia a una fila de otra tabla, tambin puede referirse a la misma tabla. En otras palabras, es un campo que seala a un registro de otra tabla, contiene un valor que identifica un registro de la otra tabla. Son los campos que se utilizan para relacionar las tablas entre s. Una tabla puede tener 0, una o varias claves ajenas (externas, forneas). Una clave ajena puede contener valores duplicados y valores nulos. Siguiendo el ejemplo anterior, en la tabla Piezas tenemos la clave ajena Fabricante ya que en este campo nos guardamos un valor que seala a una fila de la tabla Fabricantes, en este campo tenemos el cdigo del fabricante que nos suministra la pieza y este cdigo nos lleva al fabricante correspondiente en la tabla Fabricantes. Por ejemplo la pieza 3 es servida por el fabricante Fab2, valor que seala al fabricante Maderas Asociados. El SGBD deber velar por la integridad de los datos, para ello incluye varias reglas de integridad que se comprobarn de forma automtica sin necesidad de la intervencin externa de los usuarios o de los programas de aplicacin. Existen distintos tipos de reglas de integridad: o La integridad de entidades (integridad de claves) : Toda tabla debe tener una clave primaria que permite identificar unvocamente los registros que contiene, por lo tanto no puede contener el valor nulo ni valores duplicados. En el ejemplo anterior si intentamos insertar una nueva pieza con el cdigo 2, el sistema no nos dejar porque ya hay una pieza con este mismo cdigo en la tabla. La integridad referencial: En una clave ajena no puede haber un valor no nulo que no exista en la tabla de referencia. Para que no existan errores de integridad referencial en la
base de datos, el sistema comprueba automticamente que los valores introducidos en las claves ajenas existan en el campo de referencia en la otra tabla, si no existe, no nos dejar insertar el registro. Volviendo al ejemplo anterior, si intentamos insertar una pieza con un cdigo de fabricante que no existe en la tabla de fabricantes, el sistema no nos dejar. A nivel de control sobre los datos, el SGBD debe de proporcionar herramientas para poder definir restricciones de dominio que se comprobarn de forma automtica (se comprueba que el valor introducido en una columna pertenece al dominio de la columna, al tipo de datos), y reglas de negocio, que son reglas especficas sobre los datos, en este tipo de reglas entran las reglas de validacin y reglas definidas a nivel superior que veremos ms adelante. Una regla de validacin sera por ejemplo que el precio no pueda ser inferior a 10 euros, y una regla de negocio, que no pueda haber ms de 20 fabricantes. Un SGBD relacional sigue la arquitectura de tres niveles en la que tenemos en el nivel externo las vistas, en nivel conceptual el esquema conceptual con la definicin de todas las tablas, columnas que las componen y relaciones entre ellas, en el nivel interno tenemos la definicin fsica de la base de datos. Finalmente tenemos para poder manejar la informacin almacenada en la base de datos un lenguaje que cumple las reglas de Codd, el lenguaje SQL que veremos en prximos temas