Вы находитесь на странице: 1из 9

Unidad 1.

Bsico: Introduccin a las bases de datos (I)


Objetivos de un SGBD
Un sistema gestor de bases de datos por definicin debe cumplir los siguientes objetivos: Independencia de los datos. Recordando uno de los problemas que plantean los ficheros convencionales. La independencia de los datos consiste en hacer que los programas no sean tan dependientes de la estructura de los datos. Se han definido dos tipos de independencia: 1. La independencia fsica: consiste en poder modificar la definicin interna de los datos (el esquema interno) sin que ello suponga una modificacin de los programas existentes. Por ejemplo, se puede cambiar la ubicacin de la base de datos, o se puede aadir un ndice sobre una tabla para que las consultas se ejecuten ms rpidamente, sin que eso suponga una variacin en los esquemas externos y conceptual, por lo que los programas (que utilizan el esquema externo) no se vern afectados. 2. La independencia lgica: consiste en poder cambiar el esquema conceptual sin que ello suponga una modificacin de los programas existentes. Por ejemplo podemos aadir un nuevo dato en la tabla de clientes como la direccin de email sin que los esquemas externos se vean afectados. Seguridad e integridad. La seguridad consiste en que los usuarios no puedan acceder a datos sin autorizacin. Si juntamos toda la informacin de la empresa en un mismo sitio, el SGBD debe tener mecanismos para que cualquier usuario pueda tener acceso a nicamente la informacin que necesita para las tareas que tiene encomendadas. Esta seguridad se consigue por medio de los esquemas externos, ya que el usuario slo tiene acceso a su esquema externo que le proporciona los datos que el administrador ha considerado incluir en ese esquema. Para el usuario no habr ms datos que estos. Adems los SGBD tienen mecanismos para definir autorizaciones que pueden ser de distinto tipo: autorizacin de lectura, de insercin, de actualizacin, autorizaciones especiales para poder variar el esquema conceptual etc. La integridad se refiere a que la informacin almacenada en la base de datos est libre de errores. Esto no siempre es posible ya que existen distintos tipos de errores que tienen diferentes soluciones: * Fallos de hardware. Estos errores no los puede evitar el SGBD pero se pueden subsanar facilitando copias de seguridad y procesos de recuperacin. * Fallos del programador. Puede que aparezcan datos errneos en la base de datos como consecuencia de errores en el programa que genera estos datos. Para evitar al mximo este tipo de errores el sistema debe ser fcil de programar, cuantos ms controles realice el sistema de forma automtica, menos controles habr que incluir a nivel de programacin por lo que limitaremos la probabilidad de fallo y los programas deben ser probados con juegos de ensayos bien definidos. * Fallos del usuario final. El usuario que introduce datos en la base de datos tambin puede cometer errores, el sistema debe permitir controlar al mximo la informacin que se introduce para limitar el nmero de estos errores, para ello los SGBD incluyen clusulas de validacin de los datos, validaciones de diferentes tipos que veremos con ms detalle ms adelante.

* 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

El administrador de la base de datos


El administrador es el encargado de gestionar y controlar todo el sistema con la ayuda que le proporciona el SGBD. Tiene una gran responsabilidad ya que de l depende que el sistema funcione correctamente y como tiene el mximo nivel de privilegios, sus errores pueden ser desastrosos. Entre sus responsabilidades se incluye: Instalar el SGBD en el sistema informtico (a veces). Realizar el diseo de la base de datos. Crear las bases de datos que se vayan a gestionar. Crear y mantener los esquemas de las bases de datos. Crear y mantener las cuentas de los usuarios de las bases de datos. Colaborar con el administrador del sistema en las tareas de ubicacin, dimensionado y control de los archivos y espacios de disco ocupados por el SGBD. Establecer estndares de uso, polticas de acceso y protocolos de trabajo diario para los usuarios de las bases de datos. Efectuar tareas de explotacin como: o o Vigilar el trabajo diario colaborando en la resolucin de las dudas de los usuarios. Controlar los tiempos de acceso, tasas de uso, cargas en los servidores, anomalas, etc.

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

Tipos de bases de datos


Podemos realizar distintas clasificaciones de las bases de datos: Segn su ubicacin Segn la organizacin lgica de la informacin. Tipos de bases de datos segn su ubicacin 1. Bases de datos locales. En modo local tenemos la base de datos y el usuario ubicados en el mismo ordenador. Un ejemplo de base de datos que funciona en modo local es Microsoft Access, MS Access es una base de datos fcil de manejar por usuarios poco expertos que funciona bien en modo local y mientras no tenga que albergar grandes cantidades de informacin. Ventajas Economa Es la ms barata. Simplicidad No se necesita llevar controles de accesos concurrentes, de transmisin de datos, etc. 2. Bases de datos centralizadas En los sistemas centralizados tenemos la base de datos completa en un mismo servidor, y todos los usuarios acceden a ese servidor. Que la base de datos est en un mismo servidor no implica que est en un solo archivo o en el mismo disco, puede estar repartida. Desventajas Monousuario En un instante determinado slo la puede utilizar una persona. Capacidad Suele tener una almacenamiento limitado. capacidad de

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.

Ventajas Rendimiento Complejidad en

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

La base de datos relacional


Elementos de una base de datos relacional Los datos se organizan en relaciones compuestas por tuplas de atributos. Si convertimos esta definicin a tablas tenemos que los datos se organizan en tablas compuestas por filas (registros) y columnas (campos). A cada tabla se le asigna un nombre nico. Una tabla tiene 0 o ms filas, y cada fila contiene la informacin de un determinado sujeto de la relacin. Las filas en un principio estn desordenadas. La lista de los atributos dispuestos en un orden especfico de izquierda a derecha y que forman la definicin de una tabla se denomina esquema de la tabla, mientras que los valores concretos de los datos que estn almacenados en la tabla se llaman ocurrencias. Por ejemplo, tenemos estas dos tablas:

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

Вам также может понравиться