24
1 Maestría Computación Aplicada (Las Villas) Módulo de Introducción a Bases de Datos Postgrado a la Facultad de Ciencias Médicas de Guantánamo. Profesor: Lic. Daniel A. Betancourt Reboso Profesor de Informática Médica Guantánamo. Curso 2004-2005 Tema #1: Introducción, definición de conceptos generales de BD. Características del enfoque de BD. SGBD. Modelos de Datos y Esquemas. Arquitectura de un SGBD. Clasificación de los Sistemas de Gestión. Modelo de datos conceptuales para el diseño de una BD. Modelo Entidad-Relación. Concepto de Base de Datos. Es un conjunto de datos relacionados entre sí, que pueden ser compartidos por una o más aplicaciones. Propiedades: Una Base de Datos representa algún aspecto del mundo real. Es un conjunto de datos coherentes Toda base de datos se diseña, construye y puebla con datos para un propósito específico. Una base de datos normalizada constituye el conjunto mínimo de datos a partir del cual se pueden derivar otras informaciones. Sistema de Gestión de Bases de Datos: (Arquitectura) Es un conjunto de programas que permite al usuario definir, crear y manipular o mantener una base de datos. Definir: Estructura lógica de la bases de datos (tipo de datos, etc.), relaciones, restricciones. Crear. Introducción de los datos (poblar la base de datos). Mantener. Mantener actualizada la base de datos extrayendo información, altas, bajas, etc.

363n a Bases de Datos.doc) - Emagister...3 Auto-descriptiva , puesto que la base de datos contiene los metadatos --la descripción de su estructura-- en el catálogo o diccionario

  • Upload
    others

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

1

Maestría Computación Aplicada (Las Villas)

Módulo de Introducción a Bases de Datos

Postgrado a la Facultad de Ciencias Médicas de Guantánamo.

Profesor: Lic. Daniel A. Betancourt Reboso Profesor de Informática Médica Guantánamo. Curso 2004-2005 Tema #1: Introducción, definición de conceptos generales de BD. Características del enfoque de BD. SGBD. Modelos de Datos y Esquemas. Arquitectura de un SGBD. Clasificación de los Sistemas de Gestión. Modelo de datos conceptuales para el diseño de una BD. Modelo Entidad-Relación. Concepto de Base de Datos.

Es un conjunto de datos relacionados entre sí, que pueden ser compartidos por una o más aplicaciones. Propiedades:

• Una Base de Datos representa algún aspecto del mundo real. • Es un conjunto de datos coherentes • Toda base de datos se diseña, construye y puebla con datos para un propósito

específico. • Una base de datos normalizada constituye el conjunto mínimo de datos a partir del

cual se pueden derivar otras informaciones. Sistema de Gestión de Bases de Datos: (Arquitectura) Es un conjunto de programas que permite al usuario definir, crear y manipular o mantener una base de datos.

• Definir: Estructura lógica de la bases de datos (tipo de datos, etc.), relaciones, restricciones.

• Crear. Introducción de los datos (poblar la base de datos). • Mantener. Mantener actualizada la base de datos extrayendo información, altas,

bajas, etc.

2

Entorno simplificado de un SGBD

Principales características del enfoque Base de Datos. • Naturaleza auto descriptiva de la base de datos • Separación entre programas y datos (abstracción de datos) • Manejo de múltiples vistas de la Base de Datos, tanto vertical como horizontal. Esto

es indispensable para la integración de los datos. • Comportamiento de los datos y procesamiento de transiciones multiusuario.

Los sistemas de bases de datos superaron las limitaciones de los sistemas orientados a los ficheros al desarrollarse sobre una estructura de datos centralizada e integrada, de modo que todas las aplicaciones comparten un fondo común de datos, minimizando con ello los problemas de redundancia y de falta de control sobre los datos. Asimismo, los sistemas de bases de datos facilitaron la interrelación estrecha entre los datos de ficheros diferentes, lo que unido al acceso a este fondo común de datos compartidos y a soportar lenguajes poderosos para el tratamiento de los datos, contribuyó a aumentar las capacidades de manipulación de los datos y para la programación de las aplicaciones así como incrementó las posibilidades de automatización con respecto a la verificación de la consistencia y la integridad de los datos. Por consiguiente, el desarrollo de los sistemas de bases de datos se convirtió en crucial para proporcionar información correcta y oportuna a los ejecutivos. En la literatura existen diferentes definiciones de base de datos, pero una de las más compactas es la brindada por Allen Taylor, quien plantea:

… una base de datos es una colección auto-descriptiva de

registros integrados.

Usuario

Sistema de Bases de Datos

Prog de aplicac/consultas

SGBD Software para procesar datos

Software para tener acceso a datos almacenados en algún soporte

Definiciones (Metadatos)

Base da Datos almacenados

3

Auto-descriptiva, puesto que la base de datos contiene los metadatos --la descripción de su estructura-- en el catálogo o diccionario de datos de la propia base de datos; e integrada, porque no solo contiene los datos sino también las interrelaciones entre ellos. Y precisamente en estos dos elementos radica el valor de las bases de datos, que no está en los datos propiamente dichos sino en la estructura que modela la realidad, de modo que una base de datos puede procesarse por uno o más sistemas de aplicación. Según Date, un sistema de base de datos no es más que un sistema computacional de mantenimiento de registros (computerized record-keeping system), que se diseña para manejar grandes cantidades de información. El tratamiento de los datos conlleva tanto la definición de las estructuras para el almacenamiento de la información como el suministro de mecanismos para la manipulación de la información. La base de datos se almacena en ficheros en los que se depositan los datos y sus interrelaciones. El sistema brinda al usuario un conjunto de facilidades que permiten realizar diferentes operaciones sobre tales ficheros, entre las que se encuentran: � Añadir nuevos ficheros vacíos a la base de datos � Insertar nuevos datos en los ficheros existentes � Recuperar (consultar, obtener, solicitar, interrogar) datos de los ficheros existentes � Modificar los datos en los ficheros existentes � Eliminar datos de los ficheros existentes � Suprimir ficheros existentes vacíos o no de la base de datos Los sistemas de bases de datos representan una disciplina compleja y en evolución, cuyo fundamento esencial se encuentra en los aspectos más generales del desarrollo y el uso de las bases de datos. La complejidad y el tamaño de las bases de datos varían grandemente, desde las bases de datos personales, diseñadas y utilizadas por una misma persona sobre una sola computadora, hasta las bases de datos de organizaciones que modelan el flujo de información crítica de grandes empresas o instituciones, incluso internacionales.

Un sistema de base de datos incluye dos tipos de software: • El SGBD o sistema de gestión de bases de datos (Database Management System –

DBMS), uno de cuyos objetivos fundamentales consiste en proteger a los usuarios de la base de datos de los detalles correspondientes al nivel de hardware proporcionándoles un nivel de abstracción superior con respecto a la base de datos y su tratamiento.

• El software de aplicación, que usa las facilidades del SGBD para manipular las bases de

datos con un fin específico y de interés para la organización en cuestión. Este tipo de software generalmente se desarrolla por los especialistas en computación de la organización para resolver un problema concreto. La aplicación puede escribirse en cualquier lenguaje de programación o en un lenguaje –usualmente llamado de cuarta generación—suministrado por el SGBD de diversas maneras que incluyen generadores de consultas, de formularios, de reportes y otras facilidades.

4

Los datos constituyen los hechos básicos sobre los que se fundamentan las necesidades de información y de procesamiento de una compañía. Ahora bien, los datos que conforman una base de datos tienen que ser cuidadosa y lógicamente estructurados. Los datos almacenados en la base de datos deben representar los elementos principales que componen la organización y sus interrelaciones, los que se definen a partir de las funciones esenciales de la organización. Existen diferentes maneras según las cuales las personas se vinculan con un sistema de base de datos, lo que induce a dividirlas en clases diferentes. Una de estas clasificaciones es la siguiente: • Los profesionales de la computación, que son personas responsables del sistema de base

de datos y de los programas de aplicación asociados. Entre ellos se encuentran los analistas de sistemas, los programadores, los administradores de la base de datos, etc.

• Los usuarios finales, que son personas que necesitan información de la base de datos para desplegar su responsabilidad en la organización. Entre ellos se encuentra el personal primario, los administradores, los ejecutivos, etc.

Los sistemas de bases de datos deben garantizar un conjunto de objetivos o principios

que los caracteriza:

• Independencia de los datos

La independencia de los datos no se puede obtener cuando las operaciones de entrada y salida de un programa dependen directamente de la estructura de los

ficheros. En este caso la manera en que los datos se organizan en la memoria secundaria y las técnicas utilizadas para su acceso están determinadas por los requerimientos de la aplicación correspondiente y, además, el conocimiento de la organización y las técnicas de acceso a los datos se construye dentro de la lógica y el código de la aplicación. Sería imposible cambiar la estructura de almacenamiento o las técnicas de acceso a los datos sin tener que hacer modificaciones importantes en

la aplicación. Asimismo, por lo general, varias aplicaciones trabajan con los mismos datos pero con enfoques diversos en su representación, interpretación o utilización. Por ejemplo, el

índice académico del estudiante puede ser de interés para dos aplicaciones, pero pueden utilizarse tipos de datos diferentes (integer, float) para su representación, aunque tengan el mismo significado. Un sistema de bases de datos proporciona la independencia de los datos, ya que garantiza la inmunidad de las aplicaciones a los cambios en la estructura de

almacenamiento y en las técnicas de acceso a los datos, de modo que se puedan realizar las reorganizaciones necesarias para garantizar la efectividad en el funcionamiento del sistema sin modificar los programas de aplicación y que varias aplicaciones puedan trabajar con los mismos datos desde diferentes puntos de vista.

5

• Minimización de la redundancia y de la inconsistencia de los datos

La duplicación de los datos puede ser muy dañina, tanto en términos del control que se requeriría para garantizar la correspondencia de los datos con la realidad en todo momento así como la validez de la información obtenida por las aplicaciones a partir

de estos datos. Es cierto que por razones técnicas o propias de los negocios, en ocasiones, es recomendable mantener múltiples copias de los mismos datos. Sin embargo, resulta imprescindible establecer un control cuidadoso acerca del comportamiento de estos datos redundantes para no provocar su inconsistencia producto de operaciones de

actualización. Suponiendo, por ejemplo, que se tiene el hecho de que el estudiante E2 pertenece al grupo G4 representado como entradas de dos ficheros diferentes, habría que tener en cuenta que si el estudiante cambia de grupo sería necesario modificar ambas entradas, pues de lo contrario pudiera no existir correspondencia con la

realidad o, lo que es más peligroso, pudieran estar almacenados hechos diferentes, si se modifica un fichero y el otro no. Es más, a veces, puede no llegarse a conocer cuál de ellos sería el verdadero. Un sistema de bases de datos debe minimizar los problemas de redundancia e inconsistencia, de modo que las operaciones de actualización de los datos no violen

algún conjunto específico de restricciones. Retomando el ejemplo, queda claro que si el hecho dado se representa en una única entrada --es decir, si se elimina la redundancia--, entonces no ocurriría inconsistencia. Alternativamente, si la redundancia no se elimina pero se controla apropiadamente por el sistema de gestión de bases de datos, entonces se puede garantizar que la base de datos nunca sea inconsistente para el usuario, asegurando que todos los cambios que se realicen en alguna de las dos entradas automáticamente se aplicarán en la otra. Este proceso se conoce con el nombre de propagación de las actualizaciones, que incluyen las operaciones de inserción, eliminación y modificación de los datos.

• Integración y concurrencia de los datos

La integración de los datos se refiere a la combinación de los datos para un uso común, o sea, que varias aplicaciones pueden compartir los datos que se almacenan en la base de datos e, inlcuso, que se pueden desarrollar nuevas aplicaciones sobre estos propios datos. Pero la concurrencia añade la posibilidad de que varios usuarios, interactivamente o desde las aplicaciones, puedan consultar y actualizar los mismos datos de manera simultánea.

El control centralizado de la base de datos ha asegurado que se puedan aplicar los estándares en la representación de los datos, lo que es muy deseable para el intercambio de los datos e, incluso, para la migración de los datos entre los sistemas. Asimismo, los estándares en los nombres y la documentación también contribuyen a la correcta interpretación y compartición de los datos. • Seguridad, protección e integridad de los datos

La seguridad y la integridad de los datos son esenciales para lograr operaciones efectivas sobre las bases de datos. Pueden considerarse como diferentes mecanismos que garantizan el trabajo correcto del sistema de base de datos,

6

entendiéndose por tal que al sistema solo tengan acceso aquellos usuarios autorizados, que los datos almacenados correspondan con el fenómeno o proceso a representar en todo momento y que los resultados obtenidos respondan a las solicitudes e intereses de los usuarios. En particular, los conceptos de protección y seguridad de los datos se intercambian con frecuencia en la literatura, debido a que ambos se dirigen a garantizar que no se alteren los datos almacenados en la base de datos. Para tener un enfoque común en el desarrollo ulterior se podría interpretar que la seguridad se refiere al control del acceso a los datos, la protección a los procedimientos de recuperación ante fallos y la integridad a la exactitud y la coherencia de los datos almacenados en el sistema de bases de datos.

El control de acceso a los datos se establece para garantizar diferentes derechos de acceso a los usuarios, de manera que el sistema evite no solo el acceso de usuarios no autorizados o mal intencionado a los datos, sino que impida se realicen ciertas operaciones sobre los datos sin el correspondiente consentimiento. Se pueden establecer diferentes chequeos para cada tipo de permiso a cada parte de la base de datos, sin embargo, sin controles de seguridad un sistema de bases de datos tiene mayor riesgo de accesos indebidos que los sistemas tradicionales de ficheros. La protección de los datos se garantiza con el uso de procedimientos mediante los cuales una base de datos que se ha corrompido por desperfectos puede restablecerse

a un estado correcto y consistente, perdiéndose muy poco tanto en el caso de errores en la ejecución de los programas como en caso de roturas de equipos. En cualquier caso, el sistema de bases de datos debe asegurar la restauración de la mayoría de los datos. Una condición o limitación que se aplica a un conjunto particular de datos usualmente se denomina control de integridad y constituye una restricción semántica que se impone sobre los datos para garantizar que sean correctos y que no existan inconsecuencias entre ellos. Los controles de integridad se diseñan para minimizar las incoherencias de los datos, ocasionadas cuando los usuarios o los programas de

aplicación cometen errores en la entrada de los datos o al modificarlos en la base de datos, con lo cual dejan de tener correspondencia con la realidad que representan. • Balance de los requerimientos en conflicto

Como es de suponer lograr la satisfacción completa de todos los objetivos anteriores y, además, responder a los requisitos e intereses individuales de todos los usuarios es prácticamente imposible en el mundo de compromisos en el que se vive de hoy día.

Luego, el objetivo esencial al desarrollar un sistema de base de datos tiene que ser proporcionar un servicio global que consista en lograr lo mejor para la organización.

Para ello existe un grupo de personas, expertas en el funcionamiento de la empresa, que se encarga de la administración de los datos, y otro grupo de personas, especialistas en computación, que se encarga de la administración de la base de datos propiamente dicha.

El administrador de los datos (AD) (Data Administrator – DA) conoce y comprende el

flujo de los datos y las necesidades de la organización con respecto a los datos. Esta

7

persona (o grupo de personas) se encuentra en el máximo nivel de dirección y está capacitada para determinar los datos que deben ser almacenados y su prioridad, establecer las políticas para el mantenimiento y el tratamiento de los datos, def inir las estrategias de acceso y otras funciones que garanticen el correcto manejo de la información de la organización como uno de sus recursos más valiosos. El administrador de la base de datos (ADB) (Database Administrator – DBA) se responsabiliza con la instrumentación de las decisiones del administrador de los datos. El trabajo de esta persona (o grupo de personas) consiste en crear la base de datos e implementar los controles técnicos necesarios para ejecutar las decisiones sobre las políticas a seguir, asegurar que el sistema se comporte con un buen desempeño y proveer los servicios computacionales necesarios para el adecuado funcionamiento del sistema de base de datos, durante todas las etapas de su ciclo de vida.

Un sistema de base de datos, diseñado e instrumentado correctamente, integra los datos a las unidades funcionales de la organización facilitando su manipulación, es decir, la creación, actualización y consulta de la base de datos, la identificación y la cuantificación de las relaciones derivadas de los elementos de los datos, así como la recopilación de la información en resúmenes estadísticos, la inferencia sobre las posibles tendencias del negocio y otras operaciones, transformando los datos puros en información. Específicamente, existen algunas áreas que constituyen tendencias actuales de desarrollo de la tecnología de la información. Estas nuevas tecnologías computacionales que han implicado un desarrollo importante en la recuperación de la información son las siguientes: Almacenamiento masivo. En los últimos años, ha tenido lugar un crecimiento exponencial en la cantidad de memoria disponible en los medio ambiente computacionales. La evolución en la tecnología ha reemplazado los pocos registros de memoria de las computadoras iniciales con gigabytes (megabytes) de información disponibles a una alta velocidad sobre medios ópticos, asimismo la memoria de trabajo ha aumentado también considerablemente. Esto ha llevado al desarrollo de bases de datos masivas, así como de aplicaciones de uso intensivo de la información como los hipermedios. Lectura óptica y edición automática. Una de las barreras para el desarrollo de las bases de datos grandes ha sido la dificultad de transferir la información desde las versiones impresas o textuales hacia las versiones electrónicas correspondientes y viceversa. Esta dificultad se ha sobrepuesto con dos tecnologías: la lectura (scanning) óptica, que permite la entrada de textos impresos de manera muy rápida, y la edición automática, que con los procesadores de texto ha logrado que las versiones electrónicas precedan las versiones finales o impresas de documentos. De esta manera, una base de datos puede crecer mediante la transferencia electrónica de archivos de documentos entre el editor y el productor o administrador de la base de datos.

Redes de computadoras. Uno de los desarrollos más significativos en bases de datos y recuperación de información en general, ha sido la conexión de sistemas computacionales a través de redes de comunicación locales y globales. La conectividad y la compartición de los datos entre los sistemas computacionales ha evolucionado desde el correo electrónico y los servidores de archivos (file servers) en redes locales hasta las bases de datos

8

heterogéneas sobre múltiples plataformas y modelos de datos, destacándose los conceptos de Internet e Intranet. Bases de datos en línea. En la medida que la construcción de bases de datos textuales ha evolucionado conjuntamente con el relativo abaratamiento de las memorias masivas, las grandes bases de datos en línea han sido desarrolladas de modo que colectivamente contienen muchos millones de documentos de varios tipos, lo que representa un vasto almacén de información, que se puede consultar cada vez con mayor amplitud, comodidades y precisión. Como ya se ha dicho el mundo de hoy se está aproximando, si ya no lo ha excedido, al punto de sobrecarga o exceso de información. Esto no quiere decir que no se utiliza de forma efectiva dicha información, sino que ese uso efectivo actual es solamente una pequeña fracción de la potencialidad que pueden brindar algunos mecanismos más apropiados de almacenamiento y recuperación. Por su parte, la tendencia actual de los sistemas de bases de datos no se restringe a las aplicaciones tradicionales, tales como el control de inventarios, sino que se extiende a aplicaciones que se relacionan con el diseño automático, las bases de conocimientos, los sistemas de descubrimiento automático, el tratamiento de textos, imágenes, sonidos y otras, razón por la cual en el presente contexto se ha hecho referencia a información y no únicamente a datos. Se podrá decir que los navegadores de la Web y las demás tecnologías para uso en Internet e Intranet están cambiando radicalmente el modo de desarrollo de aplicaciones de bases de datos de los próximos años y del tercer milenio. Ahora bien, si los conocimientos teóricos y prácticos de diseño y construcción de bases de datos han sido necesarios para el desarrollo profesional de software, hoy día es una necesidad vital, ya que si bien el impacto de la Web en servidores SGBD es muy acusado, las bases de selección y gestión de un SGBD no han cambiado drásticamente. Esto implica que los nuevos usuarios de bases de datos también deberán contemplar una formación en estas tecnologías debido esencialmente a que todas las versiones del futuro se fundamentarán de una u otra manera en estos enfoques. Sistemas de gestión de Bases de Datos. Características generales. Arquitectura y Modelación Conceptual.

Es imprescindible puntualizar que hoy en día el flujo de información entre el usuario y la base de datos siempre se realiza a través de un sistema computacional de propósito general que manipula las bases de datos, llamado sistema de gestión de bases de datos (SGBD), con independencia del tamaño de la computadora o de que la máquina

esté conectada a una red, de modo que el sistema debe enmascarar los detalles físicos del almacenamiento de la base de datos a la aplicación, como se presenta en el esquema 1.1.

Usuario SGBD Datos

Esquema 1.1 Flujo de información entre los usuarios y los datos

9

El SGBD es un sistema que brinda un conjunto de servicios a los programadores, los administradores de las bases de datos y los usuarios finales, entre los que se destacan la definición y el control centralizado de los datos, los mecanismos de seguridad e integridad de los datos, el control de la concurrencia, así como los utilitarios para la manipulación de los datos y el desarrollo de aplicaciones. Por su parte, un sistema de base de datos (SBD) es, en esencia, un sistema que conserva los registros que corresponden a un fenómeno o proceso de manera computarizada con el propósito general de mantener la información actualizada y garantizar su disponibilidad de acuerdo con la demanda. Según Date [1, 2], los cuatro componentes principales de un sistema de base de datos son los datos, el hardware, el software y los usuarios

Actores en el escenario de un Sistema de Gestión de Bases de Datos.

• Administradores de la Bd • Diseñadores de la Bd • Usuarios finales • Analistas y programadores.

Modelos de Datos

Es un conjunto de conceptos que pueden servir para describir la estructura de una Bd: • Definiciones de tipos de datos • Relaciones • Restricciones.

Categorías de estos modelos: • Conceptuales. Son los cercanos al usuario o de alto nivel. • Físicos. Desarrollan los detalles de cómo se almacenan los datos, es decir, de bajo

nivel. • Representación o implementación. Es de alto nivel y está muy cercano al modelo

conceptual pero referido a los SGBD. Los modelos de alto nivel utilizan 3 elementos fundamentales:

• Entidad. Representa un objeto o concepto del mundo real. • Atributo. Es la propiedad del objeto o concepto. • Vínculo. Es la relación entre una o más entidades.

Los modelos de representación son los más utilizados en la Bd. Ejemplo Modelo Relacional, Reticular, Jerárquico. Esquemas y Ejemplares: Esquemas: Es la descripción de la Bases de datos. Se denomina Metadatos. Su representación se denomina Diagrama de Esquema. Ejemplares: Son los objetos o datos reales del esquema. Estos pueden variar cuando cambia el estado de la Base de Datos.

10

Niveles del esquema conceptual de una Base de Datos.

Modelo de Datos con enfoque Entidad-Relación.

Este modelo con el nombrado enfoque lo que permite es describir los datos como entidades, vínculos y atributos. Entidades: Es algo del mundo real con existencia independiente. Se representa en el modelo con el siguiente signo: Atributos: Representan las propiedades o campos de la entidad. Su signo es: Atributos claves: Establecen la unicidad de la entidad. Dominio: Es el conjunto de valores permitidos en cada uno de los atributos.

Vista Externa 1

Vista Externa

Esquema Conceptual

Esquema Interno

Almacén de datos

Nivel

Externo

Nivel

Conceptual

Nivel

Interno

11

Veamos un pequeño ejercicio a modo de ejemplo: Pasos para resolver el ejercicio:

1. Lo primero es poder establecer cuáles son las entidades. 2. Establecer los atributos de cada entidad 3. Definir los vínculos expresados en el texto del ejercicio, son palabras que establecen

algún tipo de relación entre entidades. Paso 1 ENTIDADES: ATRIBUTOS Banco Nombre, código y dirección Sucursal Dirección y número Cuenta Número, saldo y tipo Préstamo Número, importe y tipo Cliente Cuentas, NroIdentidad, nombre, dirección y teléfono. VÍNCULOS: tiene, pertenece a, puede ser para. (Palabras que implican relaciones)

Se sabe que cada banco puede tener múltiples sucursales, y cada sucursal puede tener varias cuentas y préstamos. Del banco conocemos el nombre, código y dirección, de la sucursal conocemos su número y la dirección, de la cuenta tenemos el número y el tipo, del préstamo sabemos el número del préstamos, importe y tipo. De los clientes conocemos que pueden tener varias cuentas y a su vez una cuenta puede ser para varios clientes. También pueden tener varios prestamos y a su vez un préstamo puede ser a varios clientes. Del cliente se almacenan los datos siguientes: NroIdentidad, Nombre, Dirección y teléfono.

12

Paso 2. Diagrama de Esquema Entidad-Relación. (Incluye el paso 3) Las letras N K M se refieren a la cardinalidad de la relación, es decir, uno a uno, uno a N (muchos) y muchos (N) a muchos (M). La letra K se utiliza para indicar vinculo a muchos, es decir, es otra letra M.

BANCO SUCURSAL

PRÉSTAMO

CLIENTE CUENTA

1 N

M

1

N

N

M

K

Puede tener

Puede tener

Puede tener

NombreBanco

CódigoBanco

Nro.Sucursal

Dircción.Sucursal

13

Tema #2: Modelo de Datos relacional.

Concepto. Integridad. Definición de las relaciones. Álgebra Relacional. Operaciones del Álgebra Relacional. Ejemplos. El modelo relacional de datos.

Este modelo es un conjunto de relaciones donde cada fila de la tabla representa una colección de datos relacionados entre sí, para describir una entidad o vínculo entre entidades del mundo real. Fila: Se denomina tupla. Cabecera de columna: Se denomina atributo. Tabla: En sí se denomina relación. Tipo de dato: Se denomina dominio, el cual es el conjunto de valores atómicos (indivisible) que puede tener un atributo. Clave: Es el conjunto mínimo de atributos que identifican inequívocamente a cada tupla en la relación. Clave candidata: Si la relación tiene más de una clave. Clave primaria: Es la clave que se selecciona entre claves candidatas. Integridad de entidades: Los atributos de la clave primaria no deben ser nulos, es decir, no pueden estar vacíos, sin datos. Integridad referencial: Se establece entre dos relaciones vinculadas, a través de una clave externa. Establece que una tupla de una relación, que haga referencia a otra relación, deberá referirse a una tupla existente en esa relación. Ejemplo

Clave externa: Especifica una restricción de integridad referencial entre dos relaciones. Un conjunto de atributos de la clave externa es una clave externa si satisface que:

1. Los atributos de ese conjunto tienen el mismo dominio que los atributos de la clave primaria en la otra relación.

2. Un valor de Clave Extranjera (CE) en una tupla (T1) de la relación R1ocurre como valor de Clave Primaria (CP) en alguna tupla (T2) de una relación (R2). Es decir, no pueden existir padres sin hijos o hijos sin padres.

EMPLEADO Nombre ---- ---- NroDpto ----

DPTO NroDpto Nombre ---- ----

Clave Primaria en la relación Dpto. Clave

Extranjera en la relación Empleado

14

Álgebra Relacional: Es una colección de operaciones que permiten manipular relaciones enteras. Estas operaciones constituyen las bases del lenguaje de consultas SQL, para Bases de Datos. En el Álgebra Relacional se utiliza frecuentemente los signos ∏ (Proyección) y λ (selección). La Selección se aplica a filas, es horizontal y la proyección a columnas, es vertical. Utiliza mucho la teoría de conjuntos (unión, intersección, diferencia, producto cartesiano, acoples, divisiones, funciones agregadas, etc).

Comentario [D1]: Es un símbolo parecido a este. Más bien se asemeja a una letra F.

15

Tema #3. Diseño del Esquema Relacional a partir del diagrama Entidad-Relación. Algoritmo de transformación de Diagrama Entidad-Relación a Modelo o Esquema Relacional. Ejercicios. Algoritmo de transformación de Diagrama Entidad-Relación a Modelo o Esquema Relacional.

Paso 1

Por cada tipo normal de entidades (E) del esquema, se crea una relación R, que contenga todos los atributos simples de E y se elige la clave primaria (subrayándola siempre).

Paso 2 Por cada tipo de entidad débil (D) del esquema Entidad-Relación, con tipos de entidades propietarias E, se crea una relación R y se incluyen los atributos simple. La clave primaria se forma a partir de los atributos de la clave primaria de la relación propietaria, en combinación con alguno de sus atributos. Paso 3

Por cada tipo de vínculo binario 1 a 1 (denominado R), del esquema, se identifican las relaciones S y T que corresponde a los tipos de entidades que participan en él. Se elige la relación que tiene participación total en R y se incluye como clave externa (ejemplo de S) la clave primaria de T junto con los demás atributos que participan en la relación 1 a 1. Paso 4

Por cada tipo de vínculo normal binario 1 a N denominado R, se identifica la relación S participante del lado N de la relación . Se incluye como clave externa en S la clave primaria de T. Paso 5

Por cada tipo de vínculo binario M a N (muchos a muchos) se crea una nueva relación S para representar R. Se incluye como atributo de clave extranjera en S las claves primaria de las relaciones participantes. Su combinación constituirá la clave primaria de S. También se incluyen los atributos simples de R. Paso 6 Para cada atributo multievaluado A se crea una nueva relación R que contiene un atributo correspondiente a A más el atributo de la clave primaria como clave externa a la relación a que pertenece A. Ambas forman la clave primaria de R. Paso 7

Por cada tipo de vínculo n-ario (más de dos tablas), se crea una nueva relación que incluye como atributos, la clave primaria de las relaciones participantes, así como los atributos

16

simples de la relación. Las claves primarias de R es una combinación de las claves primarias que participan en el vínculo. Ejercicio Respuestas: a)Diagrama Entidad-Relación. ENTIDADES ATRIBUTOS Buque Dueño, NomBuque Puerto NombPuerto, NombPaís, Movimiento Fecha, hora, longitud, latitud Océano NroOcéano, NombOcéano País NroPaís, NombPaís, Continente Tipo de Buque Tonelaje, casco VÍNCULOS Visita, tipo, pertenece, historia, en (referido a puerto en océano).

Se desea diseñar una base de datos par el control de buques: Requerimientos:

1. Se sabe que cada buque tiene un dueño y un nombre, se clasifica según el tonelaje y el casco, tienen un puerto de origen y realiza visitas periódicas a diferentes puertos. De cada visita se necesita la fecha de inicio y la final. De cada puerto el nombre , país, continente y el océano en que se encuentra.

2. Se necesita controlar además, la historia de los movimientos del buque, detallando longitud y latitud, fecha y hora.

a) Construya el Diagrama Entidad-Relación. b) Construya el Esquema Relacional (conjunto de tablas) a partir del

Diagrama Entidad-Relación, aplicando el algoritmo de transformación dado.

1

1

1

1

1 1

N

N

N N

N

N

origen

Tipo

Historia

Visita

en

Pertenece

Movimiento

Buque

Puerto Océano

País

Tipo de Buque

17

b) Transformación al esquema relacional (después de haber aplicado el Algoritmo). MVTO (NroBuque, Fecha, Hora, Longitud, Latitud) BUQUE (NroBuque, Dueño, NombBuque, NroTipo, NroPuerto) TIPOBUQUE (NroTipo, Tonelaje, Casco) PUERTO (NroPuerto, NombPuerto, NombPaís, NroOcéano) OCÉANO (NroOcéano, NombOcéano) PAÍS (NroPaís, NombPaís, Continente) VISITA (NroBuque, NroPuerto, FechaInicio, FechaFinal) De esta manera quedan las tablas con sus respectivas claves principales, claves extranjeras y la relaciones entre ellas.

18

c

Tema # 4

Dependencias funcionales. La dependencia funcional es una restricción que existe entre 2 conjuntos de atributos en una Bd. Es el concepto más importante en el diseño de la Base de Datos. Para demostrar esta teoría partiremos de que la Bd es una relación universal. Una dependencia funcional se denota como X determina única o funcionalmente a Y (X� Y). Significa que para valores de X existen valores iguales de Y, donde X/Y son subconjuntos de atributos. Observación: Si una relación R dice que no puede haber más de una tupla con valor X dado en cualquier ejemplar de la relación, esto es X es una clave candidata, lo que significa que X determina funcionalmente a Y para cualquier subconjunto Y de la relación. (R X� Y). Ejemplo: EMPLEADO-PROYECTO (Cident.,NroProyecto, Horas, NombEmpleado, NombProyecto, LugarProyecto) Las dependencias funcionales en este caso serían así: Cident. � NombEmpleado NroProyecto � {NombProyecto, LugarProyecto} {Cident., NroProyecto}� Horas Reglas de inferencias para dependencias funcionales.

1. Regla reflexiva • Si X_ Y entonces X�Y (Se lee X determina a Y)

2. Regla de aumento • SI X�Y se infiere que Xz �Yz

{X�Y} F (Se lee infiere) Xz�Yz o que Xz�Y 3. Regla transitiva

• Si {X�Y, Y�Z} F X�Z

4. Regla de descomposición • Si {X�Yz} F X�Y y X�Z

5. Regla de unión

• Si {X�Y y X�Z} F X�YZ

6. Regla seudo-transitiva • Si { X�Y, WY �Z } F WX�Z

Equivalencia de conjuntos de dependencias funcionales:

19

Un conjunto de dependencia funcional E está cubierto por un conjunto de dependencia funcional F, es decir, F cubre a E, si toda dependencia funcional E también está en F+, donde F+ es el conjunto de todas las dependencias funcionales que se puede inferir de F, o lo que es lo mismo, si toda dependencia funcional de E puede inferirse de F (aplicando las reglas de inferencia), entonces F cubre a E. Dos conjuntos de dependencia funcionales Ey F son equivalentes si E+ = F+ , es decir, todas las dependencias funcionales de E puede inferirse de F y viceversa, (se cubre una a la otra). Conjunto mínimo de dependencia funcional: Satisface las siguientes condiciones:

1. Toda dependencia funcional de F tiene un solo atributo en el miembro derecho. 2. No podemos quitar ninguna dependencia de F y seguir teniendo un conjunto de

dependencias equivalentes a F. 3. No podemos desplazar ninguna dependencia X� A en F por una dependencia Y�

A donde Y es un subconjunto propio de X y seguir teniendo un conjunto de dependencias equivalentes a F

Ejemplo de un conjunto mínimo: Cident. �NombEmpleado NroProyecto � NombProyecto { Cident., NroProyecto} � Horas

20

Tema # 5

Formas normales La normalización de datos es el proceso de descomponer esquemas de relaciones insatisfactorios en esquemas de relación más pequeños que posean propiedades deseables.

En el proceso de normalización, según la propuesta original de Codd (1972), se somete un esquema de relación a una serie de pruebas para "certificar” si pertenece o no a una cierta forma normal. En un principio, Codd propuso tres formas normales, a las cuales llamó primera, segunda y tercera formas normales (1FN, 2FN, 3FN). Posteriormente, Boyce y Codd propusieron una definición más estricta de 3FN, a la que se conoce como forma normal de Boyce-Codd (FNBC). Todas estas formas normales se basan en las dependencias funcionales entre los atributos de una relación. Más adelante se propusieron una cuarta forma normal (4FN) y una quinta (5FN), con fundamento en los conceptos de dependencias multievaluadas y dependencias de reunión, respectivamente.

La normalización de los datos puede considerarse como un proceso durante el cual los esquemas de relación que no cumplen las condiciones se descomponen repartiendo sus atributos entre esquemas de relación más pequeños que cumplen las condiciones establecidas. Un objetivo del proceso de normalización es garantizar que no ocurran anomalías de actualización.

Las formas normales, consideradas aparte de otros factores, no garantizan un buen diseño de BD. En general no basta con comprobar por separado que cada esquema de relación de la BD esté en, digamos, FNBC o 3FN. Más bien, el proceso de normalización por descomposición debe confirmar la existencia de propiedades adicionales que los esquemas relacionales, en conjunto, deben poseer. Dos de estas propiedades son:

• La propiedad de reunión sin pérdida, que garantiza que no se presentará el problema de las tuplas erróneas.

• La propiedad de conservación de las dependencias, que asegura que todas las dependencias funcionales estén representadas en alguna de las relaciones individuales resultantes.

La utilidad práctica de las formas normales queda en entredicho cuando las restricciones en las que se basan son difíciles de entender o de detectar por parte de los diseñadores de BD y usuarios que deben descubrir estas restricciones.

Otro punto que merece la pena destacar es que los diseñadores de BD no tienen que normalizar hasta la forma normal más alta posible. Las relaciones pueden dejarse en formas normales inferiores por razones de rendimiento (Ej.: la relación EMP-DEPTO (NOMBRE, NSS, FECHAN, DIRECCION, NUMEROD, NOMBRED, NSSJEFED) la dejaríamos así, sin dividir, si por ejemplo una consulta importante obtiene información relativa -al departamento de un empleado, junto con los atributos del empleado. Pero hay que tomar

21

nota de sus anomalías y entenderlas perfectamente de modo que, al actualizar la relación, no se produzcan inconsistencias).

Primera forma normal (1FN):

“Una relación está en primera forma normal (1FN) si los valores para cada atributo de la relación son atómicos”.

Esto quiere decir simplemente que cada atributo sólo puede pertenecer a un dominio (es indivisible) y que tiene un valor único para cada fila.

La primera forma normal se definió para prohibir los atributos multievaluados, compuestos y sus combinaciones.

Cuando una relación no está en primera forma normal, se divide en otras relaciones, repartiendo sus atributos entre las resultantes. Normalmente la idea es eliminar el atributo que viola la 1ª FN de la relación original y colocarlo en una relación aparte junto con la clave primaría de la relación de partida.

Segunda forma normal (2FN):

“Una relación está en segunda a normal si está en la 1ª FN y todos los atributos no clave dependen de la clave completa y no sólo de una parte de esta”.

Este paso sólo se aplica a relaciones que tienen claves compuestas, es decir, que están formadas por mas de un atributo. Si un esquema de relación no está en 2ªFN, se le puede normalizar a varias relaciones en 2ªFN en las que los atributos que dependen de una parte de la clave formarán una nueva relación que tendrá esa parte de la clave como clave primaria.

Tercera forma normal (3FN):

"Una relación está en tercera forma normal si todos los atributos de la relación dependen funcionalmente sólo de la clave, y no de ningún otro atributo".

Esto significa que en una relación en 3FN, para toda DF: X Y, X es una clave.

Podemos observar que si una relación está en tercera forma normal, está también en segunda forma normal, sin embargo lo inverso no siempre es cierto.

Nota : Los conceptos del modelo ER (entidades, relaciones, atributos, claves y restricciones estructurales) que hemos visto son suficientes para modelar algunas aplicaciones sencillas de bases de datos, sin embargo para algunas aplicaciones es necesario utilizar conceptos adicionales si lo que se quiere es un modelado más exacto.

22

Formas Normales: 1. (1FN): Todos los valores de los atributos de una relación deben ser atómicos o

indivisibles. 2. (2FN): Se basa en:

• Dependencia funcional total. Se dice que X�Y es total si la eliminación de cualquier atributo A de X hace que la dependencia deje de ser válida

• Dependencia funcional parcial. Se dice que X�y es parcial si es posible eliminar algún atributo A de X y la dependencia sigue siendo válida.

Ejemplos: EMPLEADO-PROYECTO (Cident., NroProyecto, Horas, NombEmpleado, NombProyecto, LugarProyecto) {Cident., NroProyecto} � Horas (Esto es una DF TOTAL) {Cident., NroProyecto} � NombEmpleado (Esto es una DF PARCIAL, porque si se elimina NroProyecto se sigue determinando funcionalmente a NombEmpleado)

Un esquema de relación R está en 2FN si todo atributo no primo A de R depende funcionalmente de manera total de la calve primaria de R. Se dice que un atributo es primo cuando forma parte de alguna de las claves candidatas. Ejemplo: {Cident., NroProyecto} �{NroProyecto, LugarProyecto} El proceso es tratar de descomponer el esquema para eliminar las dependencias funcionales parciales, y es ésta la 2FN.

3. (3FN): Se basa en el concepto de dependencia transitiva. Una dependencia funcional X�Y en un esquema de relación R, es una dependencia transitiva si existe un conjunto de atributos Z que no sea un subconjunto de cualquier clave R y se cumple tanto X�Y como Y�Z y X�Z (regla de transitividad) Ejemplo: EMPLEADO-DEPARTAMENTO (CidentEmpleado, NombEmpleado, FechaNacEmpleado, NroDpto, NombDpto, CidentGerente) CidentEmpleado � CidentGerente NroDpto � CidentGerente CidentEmpleado � NroDpto

El esquema de relación R está en 3FN si cumple que ningún atributo no primo de la relación depende transitivamente de la clave primaria. Lo que se pretende es eliminar formas transitivas.

23

Ejercicio integrador

Respuestas: a) CidentPiloto, NroAvión. b) Determinando dependencias funcionales.

{ NroAvión, CidentPiloto } � {NombPiloto, DireccPiloto, CategPiloto, SalarioCateg} { NroAvión, CidentPiloto } � {NroModelo, CapaciModelo, PesoModelo, NombEmpleado, DireccEmpleado} De este análisis se desprenden otras tablas que es necesario concebir para permitir seguir determinando dependencias funcionales. (quedarían las siguientes relaciones (R1, R2, R3)): R1 (NroAvión, CidentPiloto) � esta es la clave principal o primaria. R2 (CidentPiloto, NombPiloto, DireccPiloto, CategPiloto, SalarioCateg) R3 (NroAvión, NroModelo, CapaciModelo, PesoModelo, NombEmpleado, DireccEmpleado) c) R1, R2 y R3 ya están en 2FN c) Determinando transitividad para llevar a 3FN. CidentPiloto �{SalarioCateg} CategPiloto �{SalarioCateg}

NroAvión � {CapaciModelo, PesoModelo}

NroAvión � {DireccEmpleado}

• Por tanto hay que particionar R2 en dos tablas y a R3 en tres tablas para eliminar la

transitividad y así llegar a 3FN. R1(NroAvión, CidentPiloto) Esta no varió. R2a (CidentPiloto, NombPiloto, DireccPiloto, CategPiloto) R2b (CategPiloto, SalarioCateg) R3a (NroAvión, NroModelo, NombEmpleado) R3b (NroModelo, CapaciModelo, PesoModelo)

Se sabe que los pilotos se agrupan por categorías, los aviones se clasifican según el modelo, un avión puede ser pilotado por varios pilotos y un piloto puede pilotar varios aviones. a) Dibuje el Diagrama Entidad-Relación. b) Determine una clave primaria. c) Determine dependencias funcionales. d) Lleve al esquema a 2FN. e) Lleve de 2FN a 3FN.

Dependencia Funcional Transitiva (DFT)

Dependencia Funcional Transitiva (DFT)

24

R3c (NombEmpleado, DireccEmpleado) Éstas son las tablas que tendrá la Bd. A partir de aquí es que se establecen las relaciones entre ellas para evitar redundancia y demás cuestiones negativas propias al trabajar con BD. Ejercicio de comprobación final para Formas Normales: Bibliografía para Bases de Datos

1. Conferencias del Módulo “Introducción a las Bases de Datos” de la Maestría Computación Aplicada, impartida por el Dr. _______. Universidad Central de Las Villas “Martha Abreu”. 2004

_______ __

2. “Apuntes de Ficheros y Bases de Datos”. Mercedes Marqués. Universidad “Jaime I”. 2001.

3. “Bases de Datos a Fondo. Diseño”. Pedro Pablo Alarcón y otros. Universidad Politécnica de Madrid. 2003.

4. http://usuarios.lycos.es/llarensj/art2.html 5. http://usuarios.lycos.es/cursosgbd/UD4.htm. 6. “Una metodología de diseño lógico para Bases de Datos Relacionales utilizando el

Modelo Entidad-Relación Extendido”. MSc. Marga de los Angeles del Pino Cortés. Centro de Estudios de Informática. Universidad Central de Las Villas. 1986.

7. “Sistemas de Bases de Datos (SBD). Conferencias”. Dra. Lucina García Hernández y otros. Departamento de Ciencia de la Computación. Facultad de Matemática y Computación. Universidad de La Habana. Curso 1999-2000.

8. “Database Design Guide”. Pervasive Software Inc. 1998. 9. C.J. Date, An Introduction to Database Systems (Reading, MA: Addison-Wesley,

1992); y J. D. Ullman, Principles of Database Systems (New York: Computer Science Press, 1982).

10. E,. F. Codd, "A Relational Model of Data for Large Shared Databanks", Communications of the ACM, Junio de 1970, pp. 377-387.

Considere la relación R{A,B,C,D,E,F,G,H,I,J}

G ={{A,B}�C, {B,D}�{E,F}, {A,D}�{G,H}, {A}�{I}, {H}�{J}} a) ¿Cuál es la clave primaria de la relación? b) Llevarlo a 2FN y a 3FN