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

Bases de Datos

Introduccin
SGBD. Coleccin de datos interrelacionados y un conjunto de programas para acceder a esos datos. La coleccin de datos normalmente se llama Base de Datos. Primer objetivo del SGBD es proporcionar un entorno prctico y eficiente en el almacenamiento y recuperacin de la informacin de la Base de Datos

Introduccin
Antes de los SGBD, se utilizaban programas para realizar procesamiento de archivos tpicos. Inconvenientes:
Redundancia e inconsistencia de Datos Dificultad de acceso a los datos. Para cumplir con nuevos requerimientos de informacin, se tenan que escribir nuevos programas, o usar programas que listaran cosas parecidas y tratarlas a mano. Aislamiento de Datos: Datos dispersos en varios archivos, archivos en diferentes formatos. Problemas de Integridad: Los datos almacenados deben satisfacer ciertos tipos de ligadura de consistencia Problemas de atomicidad: Debido a la posibilidad de fallos, se requiere que los datos se restauren a su estado original justo antes del fallo. Anomalas en el acceso concurrente: Permitir multiusuario pueden dar lugar a actualizaciones simultaneas que crearn estados inconsistentes de los datos Problemas de seguridad: Limitar el acceso a usuarios a porciones de datos.

Introduccin - Datos
Abstraccin de Datos: El sistema debe recuperar los datos eficientemente, debido a esto se han diseado estructuras de datos para la representacin de datos en la Base de Datos, y se manejan varios niveles de abstraccin que permiten mantener oculta la complejidad al usuario:
Nivel Fsico: El nivel ms bajo de abstraccin, describe como se almacenan realmente los datos. Describe estructuras de datos complejas de bajo nivel Nivel lgico: Siguiente nivel ms alto de abstraccin describe qu datos se almacenan en la BD y qu relaciones existen entre estos datos. La BD completa se describe as como un nmero pequeo de estructuras de datos relativamente simples. Nivel de vistas: Es el nivel ms alto de abstraccin describe solo parte de la BD completa. Algunos usuario solo accedern a parte de la informacin y para que interaccin se simplifique se define la abstraccin a nivel de vistas. El sistema puede proporcionar muchas vistas para la misma Base de Datos

Introduccin - Datos
Ejemplares y Esquemas Ejemplar: Cambio de informacin a lo largo del tiempo. La coleccin de informacin almacenada en la Base de Datos en un momento particular se conoce como Ejemplar de la Base de Datos. Esquema: Diseo de la Base de Datos, en un ambiente productivo y estable rara vez cambia. Estos esquemas dependen del nivel de abstraccin de la siguiente manera:
Esquema fsico (uno) Esquema lgico (uno) Subesquema. (varios)

Introduccin - Datos
Independencia de datos Capacidad para modificar una definicin de esquema sin que afecte a una definicin de esquema en el siguiente nivel. Existen dos niveles de independencia:
Independencia fsica de datos: Capacidad para modificar el esquema fsico sin provocar que los programas de aplicacin tengan que reescribirse. Modificaciones en el nivel fsico son usualmente necesarias para mejorar rendimiento Independencia lgica de datos: Capacidad para modificar el esquema lgico sin causar que los programas tengan que reescribirse. Se requieren siempre que la estructura lgica de la base de datos se altere.

Introduccin Modelos de Datos


Parte esencial de la estructura de la Base de Datos es el modelo de datos. Modelo de datos, se define como el conjunto de herramientas conceptuales para describir los datos, las relaciones de datos, la semntica de los datos y la ligaduras de consistencia. Existen diferentes propuestas de modelos de datos:
Modelos lgicos basados en objetos Modelos lgicos basados en registros Modelos fsicos

Introduccin Modelos de Datos


Modelos lgicos basados en objetos
Se usan para describir datos en los niveles lgico y de vistas. Se caracterizan por el hecho de que proporcionan capacidades estructurales muy flexibles y permiten que las ligaduras de datos sean especificadas explcitamente. Ejemplo de ellos tenemos varios: Modelo entidad relacin Modelo orientado a objetos Modelo de datos semntico Modelo de datos funcional
Veremos el modelo entidad - relacin

Introduccin Modelos de Datos


Modelos lgicos basados en objetos
Modelo entidad relacin. Est basado en una percepcin del mundo real que consta de coleccin de objetos bsicos llamados entidades y de relaciones entre estos objetos. Una entidad es una cosa u objeto del mundo real distinguible de otros objetos. Por ejemplo cada persona es una entidad y las cuentas bancarias pueden ser consideradas como entidades. Las entidades se describen en una BD como un conjunto de atributos. Por ejemplo numero-cuenta y saldo describen una cuenta particular de un banco. Una relacin es una asociacin entre varias entidades, por ejemplo una relacin titular asocia un cliente con cada cuenta que tiene. Adems de entidades y relaciones el modelo E-R representa ciertas ligaduras que los contenidos de la BD deben cumplir, una ligadura importante es la correspondencia de cardinalidades, , la cual se refiere al nmero de entidades con las que otra entidad se puede asociar a travs de un conjunto de relaciones.

Introduccin Modelos de Datos


Modelos lgicos basados en objetos
Modelo entidad relacin. La totalidad de estructuras lgicas de una base de datos se pueden expresar grficamente mediante un diagrama E-R, que consta de los siguientes componentes:
Rectngulos. Representa el conjunto de entidades Elipses. Representan los atributos Rombos. Representan las relaciones entre conjuntos de entidades Lneas. Unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones.

Introduccin Modelos de Datos


Modelos lgicos basados en objetos
Modelo entidad relacin.

Introduccin Modelos de Datos


Modelos lgicos basados en registros
Se usan para describir datos en los niveles lgico y de vistas. En contraste con los modelos de datos basados en objetos, se usan tanto para especificar la estructura lgica completa de la BD como para proporcionar una descripcin de alto nivel de la implementacin. Se llaman as debido a que la BD se estructura en registros de formato fijo de diferentes tipos. En cada tipo de registro se define un nmero fijo de campos o atributos, y cada campo normalmente tiene una longitud fija (mucho ms fcil de implementar a nivel fsico). Esta simplicidad contrasta con muchos de los modelos basados en objetos, cuya estructura ms rica a menudo conduce a registros de longitud variable en el nivel fsico. Los tres modelos basados en registros ms conocidos son:
Modelo Relacional Modelo de Red Modelo Jerrquico o

Introduccin Modelos de Datos


Modelos lgicos basados en registros
Modelo Relacional Coleccin de tablas para representar tantos los datos como las relaciones entre los datos. Cada tabla tiene varias columnas y cada columna tiene un nombre nico. Ejemplo de Base de Datos Relacional
Nombre-Cliente id Calle-cliente Ciudad-cliente Numero-cuenta

Duarte
Daz Guzmn Duarte

212
233 432 212

Calle 14
Arenales Flora Calle 14

Cali
Buga Cali Cali

C-101
C-103 C-101 C-201 Numero-cuenta C-101 C-103 C-201 saldo 100.000 234.853 234.678

No usa punteros o enlaces, relaciona registros mediante los valores, por lo tanto se puede definir mediante un fundamento matemtico formal.

Introduccin Modelos de Datos


Modelos lgicos basados en registros
Modelo de Red Los datos se representan mediante colecciones de registros (estilo Pascal) y la relaciones entre los datos se representan mediante enlaces, que se pueden ver como punteros. Los registros en la base de datos se organizan como colecciones de grafos dirigidos.
Duarte 212 Calle 14 Cali C-101 100.000

Guzmn

432

Flora

Cali

C-201

234.678

Daz

233

Arenales

Buga

C-103

234.853

Introduccin Modelos de Datos


Modelos lgicos basados en registros
Modelo Jerrquico Similar al modelo de red, en el sentido que los datos y las relaciones entre los datos se representan mediante registros y enlaces, respectivamente. La diferencia es que se organizan mediante rboles en lugar de grafos dirigidos.

Guzmn Duarte 212 Calle 14 Cali

432

Flora

Cali

Daz

233

Arenales

Buga

C-101 C-101 100.000 C-201 234.678

100.000

C-103

234.853

C1

Introduccin Modelos de Datos


Modelo de datos fsico Se usa para describir datos en un nivel ms bajo. En contraste con el modelo de datos lgico, hay pocos modelos de datos fsicos en uso. Dos de los ms conocidos son el Modelo de unificacin y el Modelo de memoria por marcos. El modelo de datos fsico captura aspectos de la implementacin del sistema que no se abordan en el texto gua.

Introduccin Lenguajes de Bases de Datos


Un sistema de BD proporciona dos tipos de lenguajes diferentes: Lenguaje de Definicin de Datos. DDL Un esquema de BD se especifica mediante un conjunto de definiciones expresadas mediante un lenguaje especial llamado DDL. El resultado de la compilacin de las instrucciones DDL es un conjutno de tablas que se almacenan en una archivo especial llamado diccionario de datos o directorio de datos. Un DD es un archivo que contiene metadatos, es decir datos acerca de datos Lenguaje de manipulacin de Datos. DML Manipulacin quiere decir:
Recuperacin de la informacin almacenada Insercin de informacin nueva en la BD Borrado de informacin de la BD Modificacin de informacin almacenada en la BD

Introduccin Gestin de Transacciones


Varias operaciones sobre la BD forman a menudo un nica unidad lgica e trabajo. Ejemplo Transferencia Bancaria de cuenta A a la cuenta B. En este caso es esencial que la transferencia debe ocurrir por completo o no ocurrir en lo absoluto. Esto es lo que se conoce como atomicidad. Es esencial que la ejecucin de transaccin preserve la consistencia de la base de datos, es decir que el valor de la suma A+B se debe preservar, esto se conoce como consistencia Despus de ocurrida la transferencia los nuevos valores de las cuentas A y B deben persistir, a pesar de la posibilidad de fallo del sistema, esto es durabilidad. Es responsabilidad del programador definir las diferentes transacciones apropiadamente, de tal manera que se preserven la consistencia de la BD. Es responsabilidad del RDBMS asegurar las propiedades de atomicidad y durabilidad.

Modelo Entidad - Relacin


Est basado en una percepcin del mundo real que consta de un conjuntos de objetos bsicos llamados entidades y relaciones entre estos objetos. Es uno de los diferentes modelos de datos semnticos, el aspecto semntico del modelo yace en el intento de representar el significado de los datos. Es extremadamente til para hacer corresponder los significados e interacciones de los desarrollos del mundo real con un esquema conceptual. Debido a esta utilidad, muchas herramientas de diseo de bases de datos se aproximan a los conceptos del modelo E-R.

Modelo Entidad - Relacin


Conceptos Bsicos. Tres nociones bsicas: Conjuntos de entidades, conjuntos de relaciones y atributos. Conjuntos de Entidades Cosa u objeto del mundo real que es distinguible de todos los dems objetos. Una entidad tiene un conjunto de propiedades, y los valores para algn conjunto de propiedades pueden identificar una entidad de forma unvoca. Por ejemplo, el nmero de cdula identifica unvocamente una persona particular en el sistema. Un conjunto de entidades es la totalidad de las entidades del mismo tipo que comparten las mismas propiedades o atributos. El conjunto de todas las personas que son clientes de un determinado banco, por ejemplo, se pueden definir como el conjunto de entidades cliente. Anlogamente, el conjunto de entidades prestamo-bancario podra representar el conjunto de todos los prstamos concedidos por un banco particular. Las entidades individuales que constituyen un conjunto se llaman la extensin del conjunto de entidades. As, todos los clientes de un banco son la extensin del conjunto de entidades cliente. Los conjuntos de entidades no son necesariamente disjuntos, por ejemplo: Conjunto de entidades de todos los empleados (empleado), y el conjunto de entidades de todos los clientes del banco (cliente). Una entidad persona puede ser una entidad empleado, una entidad cliente, ambas cosas, o ninguna

Modelo Entidad - Relacin


Conjuntos de Entidades Una BD incluye as una coleccin de conjunto de entidades, cada una de las cuales contiene un nmero de entidades del mismo tipo. En la siguiente figura se muestra una BD de un banco que consta de dos conjuntos de entidades, cliente y prestamo-bancario.

Modelo Entidad - Relacin


Conjuntos de Entidades
Formalmente, un atributo de un conjunto de entidades es una funcin que asigna al conjunto de entidades.
Como un conjunto de entidades puede tener diferentes atributos, cada entidad se puede describir como un conjunto de pares (atributo,valor), un par para cada atributo del conjunto de entidades. Por ejemplo, una entidad concreta cliente se puede describir mediante el conjunto: {(id-cliente, 7.789.901),(nombre-cliente, Lpez), (calle-cliente, Mayor), (ciudad-cliente, Peguerinos)} Existe pues una gran relacin entre el modelo abstracto y lo que se quiere modelar a nivel de la empresa. Tipos de atributos Un atributo en el modelo E-R se puede caracterizar por los siguientes Tipos de Atributo: Atributos simples y compuestos. Simples, es que no estn divididos en subpartes. Los compuestos se pueden dividir en subpartes, es decir en otros atributos. Por ejemplo: Nombre_Cliente podra estar estructurado como un atributo compuesto consistente en nombre, primer_apellido y segundo_apellido . Estos ayudan a agrupar los atributos relacionados haciendo modelos ms claros. Incluso estos pueden tener jerarqua.

Modelo Entidad - Relacin


Conjuntos de Entidades Ejemplo de atributos compuestos

Atributos monovalorados y multivalorados. Los atributos de los ejemplos tienen todos un valor solo para una entidad concreta. Por ejemplo, el atributo nmero-prstamo para una entidad prstamo especfico, referencia a un nico nmero de prstamo. Estos son denominados monovalorados.

Modelo Entidad - Relacin


Conjuntos de Entidades
Atributos monovalorados y multivalorados. Puede haber ocasiones en las que un atributo tiene un conjunto de valores para una entidad especfica. Considrese un conjunto de entidades empleado con el atributo nmero-telfono, puede tener cero, uno o ms nmeros de telfono. Estos son los atributos multivalorados. Otro ejemplo, sera un atributo nombresubordinado del conjunto de entidades empleado. Atributos derivados

El valor para este tipo de atributo se puede derivar de los valores de otros atributos o entidades relacionados. Por ejemplo, sea el conjunto de entidades cliente que tiene un atributo prstamos que representa cuntos prstamos tiene un cliente en el banco. Ese atributo se puede derivar contando el nmero de entidades prstamo asociadas con ese cliente. Otro ejemplo, considrese que el conjunto de entidades empleado tiene un atributo edad, que indica la edad del cliente. Se deriva del atributo fecha_nacimiento (atributo base o atributo almacenado) y de la fecha actual. No se almacena, se calcula cuando sea necesario.

Modelo Entidad - Relacin


Conjuntos de Entidades
Tipos de Atributos. Un atributo puede tener un valor de nulo cuando:
Una entidad no tiene un valor para un atributo. No aplicable, es decir que el valor no existe para la entidad, por ejemplo Segundo_Nombre Valor desconocido. Puede ser perdido (valor existe pero no se tiene esa informacin) o desconocido (No se conoce si el valor existe o no)

Por ejemplo, si el valor nombre para un cliente particular es nulo, se asume que el valor es perdido, ya que cada cliente debe tener un nombre. Un valor nulo para el atributo piso podra significar que la direccin no incluye un piso (no aplicable), que existe piso pero no se conoce cul es (perdido), o que no se sabe si el piso forma parte o no de la direccin del cliente (desconocido).

Modelo Entidad - Relacin


Conjuntos de Relaciones
Una relacin es una asociacin entre diferentes entidades. Por ejemplo, se puede definir una relacin que asocie al cliente Lpez con el prstamo P-15. Esta relacin especifica que Lpez es un cliente con el prstamo nmero P-15. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo. Formalmente es una relacin matemtica con n > = 2 de conjuntos de entidades (posiblemente no distintos). Si E1, E2,,En son conjuntos de entidades, entonces un conjunto de relaciones R es un subconjunto de: {(e1, e2,,en) | e1 E1, e2 E2,,en En} donde (e1,e2,en) es una relacin

Modelo Entidad - Relacin


Conjuntos de Relaciones
Considrese las dos entidades cliente y prstamo de la figura anterior. Se define el conjunto de relaciones prestatario para denotar la asociacin entre clientes y prstamos bancarios que los clientes tengan. Esta asociacin se describe a continuacin:

Modelo Entidad - Relacin


Conjuntos de Relaciones
La asociacin entre conjuntos de entidades se conoce como participacin; es decir, los conjuntos de entidades E1, E2,, En participan en el conjunto de relaciones R. Un ejemplar de relacin en un esquema E-R representa que existe una asociacin entre las entidades denominadas en la empresa del mundo real que se modela. Ejemplo: el cliente individual Lpez, que tiene D.N.I. 67.789.901, y la entidad prstamo P-15 participan en un ejemplar de relacin de prestatario. Este ejemplar de relacin representa que, en la empresa del mundo real, la persona llamada Lpez cuyo nmero de D.N.I. es 67.789.901 ha tomado un prstamo que est numerado como P-15.

EL LGEBRA RELACIONAL
El lgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relacin Las operaciones fundamentales del lgebra relacional son seleccin, proyeccin, unin, diferencia de conjuntos, producto cartesiano y renombramiento. Adems de las operaciones fundamentales hay otras operaciones, por ejemplo, interseccin de conjuntos, reunin natural, divisin y asignacin. Estas operaciones se definirn en trminos de las operaciones fundamentales.

Operaciones fundamentales
Las operaciones seleccin, proyeccin y renombramiento se denominan operaciones unarias porque operan sobre una sola relacin. Las otras tres operaciones operan sobre pares de relaciones y se denominan, por lo tanto, operaciones binarias.

Seleccin
La operacin seleccin selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma minscula () para denotar la seleccin. El predicado aparece como subndice de . La relacin del argumento se da entre parntesis a continuacin de . Por tanto, para seleccionar las tuplas de la relacin prstamo en que la sucursal es Navacerrada hay que escribir nombre-sucursal = Navacerrada (prstamo)

Relacin Prstamo

Seleccin
Se pueden buscar todas las tuplas en las que el importe prestado sea mayor que 1.200 escribiendo importe>1200 (prstamo) En general, se permiten las comparaciones que utilizan =, , <, , > o en el predicado de seleccin. Adems, se pueden combinar varios predicados en uno mayor utilizando las conectivas y () y o () Ejemplo: Encontrar las tuplas correspondientes a prstamos de ms de 1.200 concedidos por la sucursal de Navacerrada

Seleccin
nombre-sucursal = Navacerrada importe>1200 (prstamo) El predicado de seleccin puede incluir comparaciones entre dos atributos. Para ilustrarlo, considrese la relacin responsable-prstamo, que consta de tres atributos: nombre-cliente, nombrebanquero y nmeroprstamo, que especifica que un empleado concreto es el responsable del prstamo concedido a un cliente. Para hallar todos los clientes que se llaman igual que su responsable de prstamos

Seleccin
nombre-cliente = nombre-banquero (responsable-prstamo) Dado que el valor especial nulo indica valor desconocido o inexistente, cualquier comparacin que implique a un valor nulo se evala como falsa

Proyeccin
Supngase que se desea hacer una lista de todos los nmeros de prstamo y del importe de los mismos, pero sin que aparezcan los nombres de las sucursales. La operacin proyeccin permite producir esta relacin La operacin proyeccin es una operacin unaria que devuelve su relacin de argumentos, excluyendo algunos argumentos. Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas La proyeccin se denota por la letra griega mayscula pi () Se crea una lista de los atributos que se desea que aparezcan en el resultado como subndice de . La relacin de argumentos se escribe a continuacin entre parntesis. Por tanto, la consulta para crear una lista de todos los nmeros de prstamo y del importe de los mismos puede escribirse como nmero-prstamo, importe (prstamo)

Composicin de operaciones relacionales


Es importante el hecho de que el resultado de una operacin relacional sea tambin una relacin. Considrese la consulta ms compleja Encontrar los clientes que viven en Peguerinos nombre-cliente (ciudad-cliente = Peguerinos (cliente)) Tngase en cuenta que, en vez de dar en el argumento de la operacin proyeccin el nombre de una relacin, se da una expresin que se evala como una relacin En general, dado que el resultado de una operacin del lgebra relacional es del mismo tipo (relacin) que los datos de entrada, las operaciones del lgebra relacional pueden componerse para formar una expresin del lgebra relacional

Operacin Unin
Considrese una consulta para averiguar el nombre de todos los clientes del banco que tienen una cuenta, un prstamo o ambas cosas. Obsrvese que la relacin cliente no contiene esa informacin, dado que los clientes no necesitan tener ni cuenta ni prstamo en el banco. Para contestar a esta consulta hace falta la informacin de la relacin impositor (Figura 3.5) y la de la relacin prestatario (Figura 3.7)

Operacin Unin
Se conoce la manera de averiguar los nombres de todos los clientes con prstamos en el banco: nombre-cliente (prestatario) Tambin se conoce la manera de averiguar el nombre de los clientes con cuenta en el banco: nombre-cliente (impositor) Para contestar a la consulta hace falta la unin de estos dos conjuntos; es decir, hacen falta todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante la operacin binaria unin, denotada, como en la teora de conjuntos, por . Por tanto, la expresin buscada es: nombre-cliente (prestatario) nombre-cliente (impositor)

Operacin Unin
Tngase en cuenta que en el resultado hay diez tuplas, aunque hay siete prestatarios y seis impositores distintos. Esta discrepancia aparente se debe a que Gmez, Santos y Lpez son a la vez prestatarios e impositores. Dado que las relaciones son conjuntos, seeliminan los valores duplicados. Obsrvese que en este ejemplo se toma la unin de dos conjuntos, ambos consistentes en valores de nombre-cliente. En general, se debe asegurar que las uniones se realicen entre relaciones compatibles. Por ejemplo, no tendra sentido realizar la unin de las relaciones prstamo y prestatario. La primera es una relacin con tres atributos, la segunda slo tiene dos. Por tanto, para que una operacin unin r s sea vlida hay que exigir que se cumplan dos condiciones: 1. Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo nmero de atributos. 2. Los dominios de los atributos i-simos de r y de s deben ser iguales para todo i.

Operacin diferencia de conjuntos


La operacin diferencia de conjuntos, denotada por ,permite buscar las tuplas que estn en una relacin pero no en la otra. La expresin r s da como resultado una relacin que contiene las tuplas que estn en r pero no en s. Se pueden buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen concedido ningn prstamo escribiendo:

Diferencia
nombre-cliente (impositor) nombre-cliente (prestatario) Como en el caso de la operacin unin, hay que asegurarse de que las diferencias de conjuntos se realicen entre relaciones compatibles.

Operacin Producto Cartesiano


La operacin producto cartesiano, denotada por un aspa (), permite combinar informacin de cualesquiera dos relaciones. El producto cartesiano de las relaciones r1 y r2 como r1 r2. Sin embargo, dado que el mismo nombre de atributo puede aparecer tanto en r1 como en r2, hay que crear un esquema de denominaciones para distinguir entre ambos atributos. En este caso se logra adjuntando al atributo el nombre de la relacin de la que proviene originalmente Por ejemplo, el esquema de relacin de r = prestatario prstamo es (prestatario.nombre-cliente, prestatario.nmeroprstamo,prstamo.nombresucursal, prstamo.nmero-prstamo, prstamo.importe)

Producto Cartesiano

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