universidad de la amazonia facultad de ingenieria … academicos... · 2016-11-01 · al usar el...

55
Compilado Bases de datos 1 UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA DEPARTAMENTO DE EDUCACIÓN A DISTANCIA PROGRAMA TECNOLOGÍA EN INFORMÁTICA Y SISTEMAS COMPILADO BASES DE DATOS PREPARADO POR YOIS S. PASCUAS RENGIFO Ingeniera de Sistemas Magíster en Ciencias de la Información y las Comunicaciones [email protected] ENERO 2015

Upload: others

Post on 06-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 1

UNIVERSIDAD DE LA AMAZONIA

FACULTAD DE INGENIERIA

DEPARTAMENTO DE EDUCACIÓN A DISTANCIA

PROGRAMA

TECNOLOGÍA EN INFORMÁTICA Y SISTEMAS

COMPILADO

BASES DE DATOS

PREPARADO POR YOIS S. PASCUAS RENGIFO

Ingeniera de Sistemas

Magíster en Ciencias de la Información y las Comunicaciones [email protected]

ENERO 2015

Page 2: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

2 Universidad de la Amazonia - Tecnología en Informática y Sistemas

TABLA DE CONTENIDO

INTRODUCCIÓN .......................................................................................................................................................................3

1. BASES DE DATOS ..................................................................................................................................................................4 1.1 BASES DE DATOS EN LA VIDA COTIDIANA ............................................................................................................4 1.2 SISTEMA GESTOR DE BASES DE DATOS (SGBD) .....................................................................................................6

1.2.1 DATOS...................................................................................................................................................................7 1.2.2 HARDWARE ..........................................................................................................................................................7 1.2.3 SOFTWARE ............................................................................................................................................................8

1.3 DATOS PERSISTENTES ..................................................................................................................................................10 1.4 INCONVENIENTES PRESENTADOS EN LAS BASES DE DATOS ....................................................................................11

2. REPRESENTACIÓN DE LOS DATOS .....................................................................................................................................13 2.1 VISIÓN DE LOS DATOS ...............................................................................................................................................13

2.1.1 ABSTRACCIÓN DE DATOS .................................................................................................................................14 2.2 MODELOS DE LOS DATOS..........................................................................................................................................16

2.2.1 MODELO ENTIDAD-RELACIÓN ..........................................................................................................................16 2.2.2 MODELO RELACIONAL......................................................................................................................................17 2.2.3 MODELO ORIENTADO A OBJETOS....................................................................................................................19 2.2.4 MODELO OBJETO-RELACIONAL .......................................................................................................................19 2.2.5 MODELO DE DATOS SEMIESTRUCTURADO .......................................................................................................20

3. MODELO ENTIDAD RELACIÓN ...........................................................................................................................................20 3.1 ENTIDADES ..................................................................................................................................................................22 3.2 ATRIBUTOS ...................................................................................................................................................................23

3.2.1 DOMINIOS ..........................................................................................................................................................24 3.2.2 VALORES NULOS ................................................................................................................................................25

3.2.3 ATRIBUTOS MULTIVALUADOS.............................................................................................................................25 3.2.5 ATRIBUTOS DERIVADOS .....................................................................................................................................26 3.2.6 CLAVES ...............................................................................................................................................................26

3.3 RELACIONES ...............................................................................................................................................................29 3.3.1 TIPOS DE RELACIONES .......................................................................................................................................29 3.3.2 ATRIBUTOS DE CONJUNTOS DE RELACIONES ..................................................................................................30 3.3.3 CARDINALIDAD DE UNA RELACIÓN.................................................................................................................31 3.3.4 MUESTRA DE CARDINALIDADES EN UN DIAGRAMA E-R .................................................................................33

3.4 ROLES ..........................................................................................................................................................................35

4. MODELO RELACIONAL ......................................................................................................................................................36 4.1 BREVE HISTORIA DEL MODELO RELACIONAL ...........................................................................................................36 4.2 VENTAJAS DEL MODELO RELACIONAL.....................................................................................................................36

4.3 ESTRUCTURAS DE DATOS RELACIONALES .................................................................................................................37 4.3.1 TABLAS ................................................................................................................................................................38 4.3.2 RELACIONES MATEMÁTICAS .............................................................................................................................39 4.3.3 PROPIEDADES DE LAS RELACIONES..................................................................................................................40 4.3.4 GRADO Y CARDINALIDAD ................................................................................................................................41

4.4 REPRESENTACIÓN DE ESQUEMAS DE BASES DE DATOS RELACIONALES ................................................................41

5. NORMALIZACIÓN.........................................................................................................................................................43 5.1 OBJETIVOS DE LA NORMALIZACIÓN.........................................................................................................................43 5.2 ANOMALÍAS DE INSERCIÓN, ACTUALIZACIÓN Y BORRADO ..................................................................................43 5.3 EL PROCESO DE NORMALIZACIÓN USANDO CLAVES PRIMARIAS .........................................................................45

5.3.1 PRIMERA FORMA NORMAL ...............................................................................................................................45 5.3.2 DEPENDENCIA FUNCIONAL COMPLETA Y SEGUNDA FORMA NORMAL .......................................................47 5.3.3 DEPENDENCIA TRANSITIVA Y TERCERA FORMA NORMAL ..............................................................................48

6. LENGUAJES DE BASES DE DATOS ......................................................................................................................................50 6.1 LENGUAJE DE DEFINICIÓN DE DATOS ......................................................................................................................51 6.2 LENGUAJE DE MANIPULACIÓN DE DATOS...............................................................................................................51 6.3 ACCESO A LA BASE DE DATOS DESDE PROGRAMAS DE APLICACIÓN.................................................................53

7. REFERENCIAS......................................................................................................................................................................54

Page 3: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 3

INTRODUCCIÓN

La información es el recurso más valioso de una organización, por esta razón se debe garantizar que los datos que se procesen dentro de ella sean

organizados óptimamente para que sirvan de insumo en el desarrollo de las

actividades y además que sean soporte en la toma de decisiones con base en información eficaz, eficiente y efectiva.

Es así como las bases de datos apoyan a las organizaciones siendo la

colección de datos que puede almacenar grandes cantidades de

información de manera sistemática, para su posterior recuperación, organización, distribución y generación de reportes.

Se muestra en este compilado de Bases de datos para la Tecnología en Informática y Sistemas de la Universidad de la Amazonia, los conceptos

básicos relacionados con los sistemas gestores de bases de datos, la forma en la que se realiza la representación de los datos, los componentes del

modelo entidad relación, el modelo relacional, las formas de normalización

y una introducción a los lenguajes ut ilizados para la construcción y manipulación de bases de datos.

Page 4: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

4 Universidad de la Amazonia - Tecnología en Informática y Sistemas

1. BASES DE DATOS

1.1 BASES DE DATOS EN LA VIDA COTIDIANA En la actualidad, las bases de datos se usan tan ampliamente que se

pueden encontrar en organizaciones de todos los tamaños, desde grandes

corporaciones y agencias gubernamentales, hasta pequeños negocios e incluso en hogares. Las actividades diarias con frecuencia lo ponen en

contacto con las bases de datos, ya sea directa o indirectamente.

Cuando visita un portal de Internet del consumidor que permite navegar y

ordenar en línea bienes como libros o ropa, accede a una base de datos.

La información acerca de los productos disponibles y los datos acerca del pedido se almacenan en una base de datos. También es posible que pueda

ver los datos almacenados acerca de pedidos anteriores que haya

levantado. Algunos sit ios Web pueden usar información acerca de sus pedidos, o incluso sus actividades de navegación, para sugerir productos o

servicios que es probable que le interesen.

Cuando visita un sit io Web interactivo de servicio al cliente, como la página

de inicio de una compañía de servicios o una aseguradora de salud, es

capaz de acceder a información acerca de sus propios registros de servicios o productos proporcionados.

Es posible que sea capaz de actualizar entradas en la base de datos con

información personal como su dirección o número telefónico. Algunos sit ios Web de servicios al cliente le permiten hacer cambios a los servicios a los

que se suscribe. Por ejemplo, su proveedor de servicios telefónicos o compañía eléctrica pueden permit irle cambiar planes en línea.

Si usa banca electrónica, puede recuperar registros de base de datos

acerca de depósitos, ret iros, pago de facturas y otras transacciones para sus cuentas. Puede transferir fondos, ordenar cheques y realizar muchas

otras funciones, todas las cuales involucran el uso de una base de datos.

Cuando usa una tarjeta de crédito, el vendedor por lo general espera la

aprobación por computadora de su compra antes de presentarle un recibo

para que lo firme. El proceso de aprobación consulta una base de datos para verificar que su tarjeta no se perdió o la robaron y para encontrar su

límite de crédito, saldo actual y cantidad de compras ya aprobadas. La

Page 5: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 5

base de datos se actualiza automáticamente para reflejar la nueva

cantidad aprobada. Para una tarjeta de débito, se consulta la base de

datos del banco para verificar su número de cuenta, su NIP, su saldo actual y su saldo ajustado previo a la aprobación de la compra. La cantidad de

compra se deduce en forma automática de su cuenta mientras la

transacción se completa.

Cuando compra bienes en un supermercado o t ienda al menudeo, se usan

escáneres para leer códigos universales de producto u otros identificadores de mercancía.

Al usar el código escaneado, el sistema de base de datos puede identificar

el art ículo exacto y producir un recibo con el nombre del art ículo y su precio, y toma en consideración cualquier precio de venta especial. El sistema

también puede proporcionar entrada para un sistema de control de inventarios, de modo que el registro de inventario para cada art ículo se

puede actualizar con el fin de reflejar la venta. Si el inventario cae por abajo

de un nivel llamado punto de resurt ido, la computadora automáticamente puede colocar un pedido para volver a surt ir el inventario.

Cuando hace planes para viajar, puede ingresar al sistema de reservaciones

de una aerolínea en la que se usa una base de datos para rastrear los vuelos programados y las reservaciones de pasajeros. Dado que muchos viajeros

pueden solicitar reservaciones de manera simultánea, el sistema debe ser capaz de manejar peticiones rápidamente, resolver conflictos y aceptar

solicitudes hasta que se alcance el número máximo de asientos. Muchas

cadenas hoteleras y compañías de renta de autos también t ienen sistemas centralizados de reservaciones para aceptar reservaciones en cualquiera

de sus ubicaciones, con el uso de un sistema de base de datos integrada.

Si visita al médico, es posible que sus registros médicos y datos de facturación se conserven en una base de datos. Cuando le ext ienden una

receta, probablemente el farmacéutico usará una base de datos para registrar información acerca de la prescripción, comprobar las interacciones

con los medicamentos que use en la actualidad e imprimir la et iqueta y la

receta. Tanto el médico como el farmacéutico pueden usar sus bases de datos para hacer cobranzas a terceras partes, que automáticamente

verifican la cobertura y ext ienden las cobranzas del seguro para los gastos cubiertos, mientras que usted sólo paga el deducible. A todos los

proveedores de salud en Estados Unidos se les requiere proteger la

privacidad durante estas transacciones, en concordancia con la legislación de privacidad de la Ley de Transportabilidad de Responsabilidad en Seguros

de Salud (HIPAA, por sus siglas en inglés).

Sus registros laborales se pueden mantener en una base de datos que

Page 6: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

6 Universidad de la Amazonia - Tecnología en Informática y Sistemas

almacena información básica como nombre, dirección, identificación de

empleado, labores a desarrollar y evaluaciones de desempeño. La nómina

probablemente se produce con el uso de una base de datos que almacena información acerca de cada periodo de pago y datos acerca de pago

bruto anual, deducciones de impuestos e impuestos retenidos, entre otras

cosas. Su recibo de pago refleja estos datos cada día de pago.

Sus registros escolares tal vez se conservan en una base de datos que se

actualiza cada periodo al registrar su inscripción, conclusión y calificación para cada clase.

Para hacer invest igación, puede usar una base de datos bibliográfica en la

que ingrese palabras clave que describan el tema de interés. Puede obtener resultados que contengan hipertexto, lo que le permite recuperar resúmenes

o art ículos de interés completos en su área de interés.

Como demuestra este breve panorama de actividades, las bases de datos

se usan para sat isfacer las necesidades de información de muchas

organizaciones e individuos en una variedad de áreas. Sin embargo, una base de datos deficientemente diseñada fracasa para proporcionar la

información requerida u ofrece información no actualizada, falsa o

contradictoria.

Con la finalidad de maximizar sus beneficios potenciales, es importante

comprender los fundamentos teóricos, estructura interna, diseño y gest ión de las bases de datos. (Ricardo, 2009)

1.2 SISTEMA GESTOR DE BASES DE DATOS (SGBD)

Un sistema gestor de bases de datos (SGBD) consiste en una colección de

datos interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente denominada base de datos,

contiene información relevante para una empresa. El objet ivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la

información de una base de datos de manera que sea tanto práctica como

eficiente. Los sistemas de bases de datos se diseñan para gest ionar grandes cantidades de información. La gest ión de los datos implica tanto la

definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la información. Además, los

sistemas de bases de datos deben proporcionar la fiabilidad de la

información almacenada, a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser compart idos entre diversos

usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la

Page 7: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 7

información es tan importante en la mayoría de las organizaciones, los

cient íficos informáticos han desarrollado un amplio conjunto de conceptos

y técnicas para la gest ión de los datos. (Silberschatz, Korth, & Sudarshan)

Una característ ica importante del sistema de bases de datos lo define como

un sistema computarizado para llevar registros. Es posible considerar a la

propia base de datos como una especie de armario electrónico para archivar; es decir, es un depósito o contenedor de una colección de

archivos de datos computarizados. Los usuarios del sistema pueden realizar una variedad de operaciones sobre dichos archivos, por ejemplo:

- Agregar nuevos archivos vacíos a la base de datos;

- Insertar datos dentro de los archivos existentes; - Recuperar datos de los archivos existentes;

- Modificar datos en archivos existentes; - Eliminar datos de los archivos existentes;

- Eliminar archivos existentes de la base de datos.

Un sistema de base de datos comprende cuatro componentes principales:

datos, hardware, software y usuarios:

1.2.1 DATOS

Los sistemas de bases de datos están disponibles en máquinas que van desde las computadoras personales más pequeñas hasta las mainframes

más grandes. Sobra decir que las facilidades que proporciona un sistema

están determinadas hasta cierto punto por el tamaño y potencia de la máquina subyacente. En part icular, los sistemas que se encuentran en

máquinas grandes (sistemas grandes) t ienden a ser mult iusuario, mientras

que los que se ejecutan en máquinas pequeñas (sistemas pequeños) t ienden a ser de un solo usuario.

Un sistema de un solo usuario es aquel en el que sólo un usuario puede tener

acceso a la base de datos en un momento dado; un sistema mult iusuario es

aquel en el cual múlt iples usuarios pueden tener acceso simultáneo a la base de datos. En general, el objet ivo principal en los sistemas mult iusuario

es precisamente permit ir que cada usuario se comporte como si estuviera trabajando en un sistema de un solo usuario. Los problemas especiales de

los sistemas mult iusuario son en su mayoría problemas internos del sistema y

no aquellos que son visibles al usuario.

1.2.2 HARDWARE

Los componentes de hardware del sistema constan de:

Page 8: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

8 Universidad de la Amazonia - Tecnología en Informática y Sistemas

- Los volúmenes de almacenamiento secundario (principalmente discos

magnéticos) que se emplean para contener los datos almacenados, junto con los disposit ivos asociados de E/S (unidades de discos, etc.), los

controladores de disposit ivos, los canales de E/S, entre otros; y

- Los procesadores de hardware y la memoria principal asociada usados para apoyar la ejecución del software del sistema de base de datos.

1.2.3 SOFTWARE Entre la base de datos física (es decir, los datos como están almacenados

físicamente) usuarios del sistema, hay una capa de software conocida de

manera indist inta como el administrador de base de datos o el servidor de base de datos; o más comúnmente como el sistema de administración de

base de datos (DBMS). Todas las solicitudes de acceso a la base de datos son manejadas por el DBMS.

Por lo tanto, una función general que ofrece DBMS consiste en ocultar a los usuarios de la base de datos los detalles al nivel (en forma muy parecida a

como los sistemas de lenguajes de programación ocultan a los

programadores de aplicaciones los detalles a nivel de hardware). En otras palabras, el DBMS ofrece a los usuarios una percepción de la base de datos

que está, en cierto modo, por encima del nivel del hardware y que maneja las operaciones del usuario (como las operaciones SQL) expresadas en

términos de ese nivel más alto de percepción. Algunos aspectos adicionales:

- El DBMS es, por mucho, el componente de software más importante del

sistema en general, aunque no es el único. Otros comprenden las ut ilerías,

herramientas de desarrollo de aplicaciones, ayudas de diseño, generadores de informes y (el más importante) el administrador de

transacciones.

1.2.4 USUARIOS

Consideramos tres grandes clases de usuarios (y que en cierto modo se traslapan):

- Primero, hay programadores de aplicaciones responsables de escribir los programas de aplicación de base de datos en algún lenguaje de

programación como COBOL. PL/1. C++ Java o algún lenguaje de alto

nivel de la "cuarta generación". Estos programas acceden a la base de datos emit iendo la solicitud apropiada al DBMS (por lo regular una

instrucción SQL). Los programas en sí pueden ser aplicaciones

Page 9: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 9

convencional por lotes o pueden ser aplicaciones en línea, cuyo

propósito es permit ir al usuario final el acceso a la base de datos desde

una estación de trabajo o terminal en línea.

- En consecuencia, la segunda clase de usuarios son los usuarios finales,

quienes interactúan con el sistema desde estaciones de trabajo o terminales en línea. Un usuario final puede acceder a la base de datos a

través de las aplicaciones en línea mencionadas en el párrafo anterior, o bien puede usar una interfaz proporcionada como parte integral del

software del sistema de base de datos. Por supuesto, las interfaces

proporcionadas por el fabricante están apoyadas también por aplicaciones en línea, aunque esas aplicaciones están integradas; es

decir, no son escritas por el usuario.

La mayoría de los sistemas de base de datos incluyen por lo menos una

de estas aplicaciones integradas, digamos un procesador de lenguaje de consulta, mediante el cual el usuario puede emit ir solicitudes a la base

de datos (también conocidas como instrucciones o comandos), como

SELECT e INSERT, en forma interactiva con el DBMS.

Nota: El término "lenguaje de consulta", a pesar de ser común, no es muy preciso, ya que el verbo "consultar" en lenguaje normal sugiere sólo una

recuperación, mientras que los lenguajes de consulta por lo regular

(aunque no siempre) ofrecen también actualización y otras operaciones. La mayoría de los sistemas proporcionan además interfaces integradas

adicionales en las que los usuarios no emiten en absoluto solicitudes

explícitas a la base de datos, como SELECT, sino que en vez de ello operan mediante (por ejemplo) la selección de elementos en un menú o

llenando casillas de un formulario. Estas interfaces controladas por menus o por formularios t ienden a facilitar el uso a personas que no cuentan con

una capacitación formal en IT (Tecnología de la información; la

abreviatura IS, de Sistemas de información, también es muy usada con el mismo significado). En contraste, las interfaces controladas por

comandos (por ejemplo, los lenguajes de consulta) t ienden a requerir cierta experiencia profesional en IT, aunque tal vez no demasiada.

Por otra parte, es probable que una interfaz controlada por comandos sea más flexible que una controlada por menus o por formularios, dado

que los lenguajes de consulta por lo regular incluyen ciertas

característ icas que no manejan esas otras interfaces.

- El tercer t ipo de usuario, es el administrador de base de datos o DBA. Es la persona que proporciona el apoyo técnico necesario para

implementar decisiones relacionadas con el manejo de datos. Por lo

Page 10: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

10 Universidad de la Amazonia - Tecnología en Informática y Sistemas

tanto, el DBA es el responsable del control general del sistema al nivel

técnico. Ahora podemos describir con un poco más de detalle algunas

de las tareas del DBA. En general, estas tareas comprenden al menos todas las siguientes:

o Definir el esquema conceptual

o Definir el esquema interno o Establecer un enlace con los usuarios

o Definir las restricciones de seguridad y de integridad o Definir las polít icas de vaciado y recarga

o Supervisar el rendimiento y responder a los requerimientos

cambiantes

1.3 DATOS PERSISTENTES

Es una costumbre referirse a los datos de la base de datos como "persistentes". Por persistentes queremos decir, de manera intuit iva, que el

t ipo de datos de la base de datos difiere de otros datos más efímeros, como

los datos de entrada, los datos de salida, las instrucciones de control, las colas de trabajo, los bloques de control de software, los resultados

intermedios y de manera más general, cualquier dato que sea de naturaleza

transitoria. En forma más precisa, decimos que los datos de la base de datos "persisten" debido en primer lugar a que una vez aceptados por el DBMS

para entrar en la base de datos, en lo sucesivo sólo pueden ser removidos de la base de datos por alguna solicitud explícita al DBMS, no como un mero

efecto lateral de (por ejemplo) algún programa que termina su ejecución.

Por lo tanto, esta noción de persistencia nos permite dar una definición más precisa del término "base de datos":

Una base de datos es un conjunto de datos persistentes que es ut ilizado por

los sistemas de aplicación de alguna empresa dada. Aquí, el término

"empresa" es simplemente un término genérico conveniente para identificar a cualquier organización independiente de t ipo comercial, técnico,

cient ífico u otro. Una empresa podría ser un solo individuo (con una

pequeña base de datos personal), toda una corporación o un gran consorcio similar (con una gran base de datos compart ida) o todo lo que se

ubique entre estas dos opciones. Aquí tenemos algunos ejemplos: 1. Una compañía manufacturera

2. Un banco

3. Un hospital 4. Una universidad

5. Un departamento gubernamental

Toda empresa necesariamente debe mantener una gran cantidad de

datos acerca de su operación. Estos datos son los "datos persistentes" a los

Page 11: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 11

que nos referimos antes. En forma característ ica, las empresas que

acabamos de mencionar incluirían entre sus datos persistentes a los

siguientes: 1. Datos de producción

2. Datos contables

3. Datos de pacientes 4. Datos de estudiantes

5. Datos de planeación (Date, 2001)

1.4 INCONVENIENTES PRESENTADOS EN LAS BASES DE DATOS

Redundancia e inconsistencia de datos Debido a que los archivos y programas de aplicación son creados por

diferentes programadores en un largo período de t iempo, los diversos

archivos t ienen probablemente diferentes formatos y los programas pueden estar escritos en diferentes lenguajes. Más aún, la misma información puede

estar duplicada en diferentes lugares (archivos). Por ejemplo, la dirección y

número de teléfono de un cliente part icular puede aparecer en un archivo que contenga registros de cuentas de ahorros y en un archivo que

contenga registros de una cuenta corriente. Esta redundancia conduce a un almacenamiento y coste de acceso más altos. Además, puede conducir

a inconsistencia de datos; es decir, las diversas copias de los mismos datos

pueden no coincidir. Por ejemplo, un cambio en la dirección del cliente puede estar reflejado en los registros de las cuentas de ahorro pero no

estarlo en el resto del sistema.

Dificultad en el acceso a los datos Supóngase que uno de los empleados del banco necesita averiguar los

nombres de todos los clientes que viven en el distrito postal 28733 de la

ciudad. El empleado pide al departamento de procesamiento de datos que genere dicha lista. Debido a que esta petición no fue prevista cuando el

sistema original fue diseñado, no hay un programa de aplicación a mano para sat isfacerla. Hay, sin embargo, un programa de aplicación que genera

la lista de todos los clientes. El empleado del banco t iene ahora dos

opciones: bien obtener la lista de todos los clientes y obtener la información que necesita manualmente, o bien pedir al departamento de

procesamiento de datos que haga que un programador de sistemas escriba

el programa de aplicación necesario. Ambas alternativas son obviamente insat isfactorias. Supóngase que se escribe tal programa y que, varios días

más tarde, el mismo empleado necesita arreglar esa lista para incluir sólo aquellos clientes que t ienen una cuenta con saldo de 10.000 € o más. Como

Page 12: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

12 Universidad de la Amazonia - Tecnología en Informática y Sistemas

se puede esperar, un programa para generar tal lista no existe. De nuevo, el

empleado t iene que elegir entre dos opciones, ninguna de las cuales es

sat isfactoria. La cuest ión aquí es que el entorno de procesamiento de archivos convencional no permite que los datos necesarios sean obtenidos

de una forma práctica y eficiente. Se deben desarrollar sistemas de

recuperación de datos más interesantes para un uso general.

Aislamiento de datos

Debido a que los datos están dispersos en varios archivos, y los archivos

pueden estar en diferentes formatos, es difícil escribir nuevos programas de aplicación para recuperar los datos apropiados.

Problemas de integridad

Los valores de los datos almacenados en la base de datos deben sat isfacer ciertos t ipos de restricciones de consistencia. Por ejemplo, el saldo de una

cuenta bancaria no puede nunca ser más bajo de una cantidad

predeterminada (por ejemplo 25 €). Los desarrolladores hacen cumplir esas restricciones en el sistema añadiendo el código apropiado en los diversos

programas de aplicación. Sin embargo, cuando se añaden nuevas restricciones, es difícil cambiar los programas para hacer que se cumplan. El

problema es complicado cuando las restricciones implican diferentes

elementos de datos de diferentes archivos.

Problemas de atomicidad Un sistema de un computador, como cualquier otro disposit ivo mecánico o

eléctrico, está sujeto a fallo. En muchas aplicaciones es crucial asegurar que, una vez que un fallo ha ocurrido y se ha detectado, los datos se

restauran al estado de consistencia que exist ía antes del fallo. Consideremos

un programa para transferir 50 € desde la cuenta A a la B. Si ocurre un fallo del sistema durante la ejecución del programa, es posible que los 50 € fueron

eliminados de la cuenta A pero no abonados a la cuenta B, resultando un estado de la base de datos inconsistente. Claramente, es esencial para la

consistencia de la base de datos que ambos, el abono y el cargo tengan

lugar, o que ninguno tenga lugar. Es decir, la transferencia de fondos debe ser atómica: ésta debe ocurrir en ellos por completo o no ocurrir en absoluto.

Es difícil asegurar esta propiedad en un sistema de procesamiento de

archivos convencional.

Anomalías en el acceso concurrente

Page 13: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 13

Conforme se ha ido mejorando el conjunto de ejecución de los sistemas y

ha sido posible una respuesta en t iempo más rápida, muchos sistemas han

ido permit iendo a múlt iples usuarios actualizar los datos simultáneamente. En tales sistemas un entorno de interacción de actualizaciones concurrentes

puede dar lugar a datos inconsistentes. Considérese una cuenta bancaria

A, que contiene 500 €. Si dos clientes ret iran fondos (por ejemplo 50 € y 100 € respectivamente) de la cuenta A en aproximadamente el mismo t iempo,

el resultado de las ejecuciones concurrentes puede dejar la cuenta en un estado incorrecto (o inconsistente). Supongamos que los programas se

ejecutan para cada ret irada y escriben el resultado después. Si los dos

programas funcionan concurrentemente, pueden leer ambos el valor 500 €, y escribir después 450 € y 400 €, respectivamente. Dependiendo de cuál

escriba el últ imo valor, la cuenta puede contener bien 450 € o bien 400 €, en lugar del valor correcto, 350 €. Para protegerse contra esta posibilidad, el

sistema debe mantener alguna forma de supervisión. Sin embargo, ya que

se puede acceder a los datos desde muchos programas de aplicación diferentes que no han sido previamente coordinados, la supervisión es difícil

de proporcionar.

Problemas de seguridad No todos los usuarios de un sistema de bases de datos deberían poder

acceder a todos los datos. Por ejemplo, en un sistema bancario, el personal

de nóminas necesita ver sólo esa parte de la base de datos que t iene información acerca de varios empleados del banco. No necesitan acceder

a la información acerca de las cuentas de clientes. Como los programas de

aplicación se añaden al sistema de una forma ad hoc, es difícil garantizar tales restricciones de seguridad.

2. REPRESENTACIÓN DE LOS DATOS

2.1 VISIÓN DE LOS DATOS

Un sistema de bases de datos es una colección de archivos

interrelacionados y un conjunto de programas que permitan a los usuarios

Page 14: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

14 Universidad de la Amazonia - Tecnología en Informática y Sistemas

acceder y modificar estos archivos. Uno de los propósitos principales de un

sistema de bases de datos es proporcionar a los usuarios una visión abstracta

de los datos. Es decir, el sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos.

2.1.1 ABSTRACCIÓN DE DATOS Para que el sistema sea út il debe recuperar los datos eficientemente. Esta

preocupación ha conducido al diseño de estructuras de datos complejas para la representación de los datos en la base de datos. Como muchos

usuarios de sistemas de bases de datos no están familiarizados con

computadores, los desarrolladores esconden la complejidad a los usuarios a través de varios niveles de abstracción para simplificar la interacción de los

usuarios con el sistema:

Nivel físico

El nivel más bajo de abstracción describe cómo se almacenan realmente

los datos. En el nivel físico se describen en detalle las estructuras de datos

complejas de bajo nivel.

Nivel lógico

El siguiente nivel más alto de abstracción describe qué datos se almacenan

en la base de datos y qué relaciones existen entre esos datos. La base de datos completa se describe así en términos de un número pequeño de

estructuras relat ivamente simples. Aunque la implementación de estructuras

simples en el nivel lógico puede involucrar estructuras complejas del nivel físico, los usuarios del nivel lógico no necesitan preocuparse de esta

complejidad. Los administradores de bases de datos, que deben decidir la información que se mantiene en la base de datos, usan el nivel lógico de

abstracción.

Nivel de vistas El nivel más alto de abstracción describe sólo parte de la base de datos

completa. A pesar del uso de estructuras más simples en el nivel lógico,

queda algo de complejidad, debido a la variedad de información almacenada en una gran base de datos. Muchos usuarios del sistema de

base de datos no necesitan toda esta información. En su lugar, tales usuarios

necesitan acceder sólo a una parte de la base de datos. Para que su interacción con el sistema se simplifique, se define la abstracción del nivel

Page 15: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 15

de vistas. El sistema puede proporcionar muchas vistas para la misma base

de datos.

Figura. Los tres niveles de abstracción de datos

En el nivel físico, un registro cliente, cuenta o empleado se puede describir como un bloque de posiciones almacenadas consecutivamente (por

ejemplo, palabras o bytes). El compilador del lenguaje esconde este nivel

de detalle a los programadores. Análogamente, el sistema de base de datos esconde muchos de los detalles de almacenamiento de nivel inferior a los

programadores de bases de datos. Los administradores de bases de datos pueden ser conscientes de ciertos detalles de la organización física de los

datos.

En el nivel lógico cada registro de este t ipo se describe mediante una

definición de t ipo y se define la relación entre estos t ipos de registros. Los

programadores, cuando usan un lenguaje de programación, t rabajan en este nivel de abstracción. De forma similar, los administradores de bases de

datos trabajan habitualmente en este nivel de abstracción.

Finalmente, en el nivel de vistas, los usuarios de computadores ven un

conjunto de programas de aplicación que esconden los detalles de los t ipos de datos. Análogamente, en el nivel de vistas se definen varias vistas de una

Nivel de Vistas

Vista 1 ... Vista n

Nivel lógico

Nivel físico

Page 16: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

16 Universidad de la Amazonia - Tecnología en Informática y Sistemas

base de datos y los usuarios de la misma ven única y exclusivamente esas

vistas. Además de esconder detalles del nivel lógico de la base de datos, las

vistas también proporcionan un mecanismo de seguridad para evitar que los usuarios accedan a ciertas partes de la base de datos. Por ejemplo, los

cajeros de un banco ven únicamente la parte de la base de datos que t iene

información de cuentas de clientes; no pueden acceder a la información referente a los sueldos de los empleados.

2.2 MODELOS DE LOS DATOS

Bajo la estructura de la base de datos se encuentra el modelo de datos: una colección de herramientas conceptuales para describir los datos, las

relaciones, la semántica y las restricciones de consistencia. Para ilustrar el concepto de un modelo de datos, describimos dos modelos de datos en

este apartado: el modelo entidad-relación y el modelo relacional. Los

diferentes modelos de datos que se han propuesto se clasifican en tres grupos diferentes: modelos lógicos basados en objetos, modelos lógicos

basados en registros y modelos físicos.

2.2.1 MODELO ENTIDAD-RELACIÓN

El modelo de datos ent idad-relación (E-R) está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados

entidades, y de relaciones entre estos objetos. Una ent idad es una «cosa» u

«objeto» en el mundo real que es dist inguible de otros objetos. Por ejemplo, cada persona es una entidad, y las cuentas bancarias pueden ser

consideradas ent idades. Las ent idades se describen en una base de datos

mediante un conjunto de atributos. Por ejemplo, los atributos número, cuenta y saldo describen una cuenta part icular de un banco y pueden ser

atributos del conjunto de entidades cuenta. Análogamente, los atributos nombre-cliente, calle-cliente y ciudad-cliente pueden describir una entidad

cliente. Un atributo extra, id-cliente, se usa para identificar unívocamente a

los clientes (dado que puede ser posible que haya dos clientes con el mismo nombre, dirección y ciudad. Se debe asignar un identificador único de

cliente a cada cliente.

En los Estados Unidos, muchas empresas ut ilizan el número de la seguridad

social de una persona (un número único que el Gobierno de los Estados

Unidos asigna a cada persona en los Estados Unidos) como identificador de cliente. Una relación es una asociación entre varias ent idades.

La estructura lógica general de una base de datos se puede expresar

Page 17: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 17

gráficamente mediante un diagrama ER, que consta de los siguientes

componentes:

- Rectángulos, que representan conjuntos de entidades. - Elipses, que representan atributos.

- Rombos, que representan relaciones entre conjuntos de entidades.

- Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones. Cada componente se

et iqueta con la ent idad o relación que representa.

2.2.2 MODELO RELACIONAL

En el modelo relacional se ut iliza un grupo de tablas para representar los datos y las relaciones entre ellos. Cada tabla está compuesta por varias

columnas, y cada columna t iene un nombre único. La siguiente tabla presenta un ejemplo de base de datos relacional consistente en tres tablas:

la primera muestra los clientes de un banco, la segunda, las cuentas, y la

tercera, las cuentas que pertenecen a cada cliente.

Figura. Ejemplo de base de datos relacional – Tabla cliente

Tabla cuenta

Page 18: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

18 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Tabla impostor

La primera tabla, la tabla cliente, muestra, por ejemplo, que el cliente cuyo

identificador es 19.283.746 se llama González y vive en la calle Arenal sita en La Granja. La segunda tabla, cuenta, muestra que las cuentas C-101 t ienen

un saldo de 500 € y la C-201 un saldo de 900 € respectivamente. La tercera

tabla muestra las cuentas que pertenecen a cada cliente. Por ejemplo, la cuenta C-101 pertenece al cliente cuyo identificador es 19.283.746

(González), y los clientes 19.283.746 (González) y 01.928.374 (Gómez) comparten el número de cuenta A-201 (pueden compart ir un negocio).

El modelo relacional es un ejemplo de un modelo basado en registros. Los modelos basados en registros se denominan así porque la base de datos se

estructura en registros de formato fijo de varios t ipos. Cada tabla contiene

registros de un t ipo part icular. Cada t ipo de registro define un número fijo de campos, o atributos.

Las columnas de la tabla corresponden a los atributos del t ipo de registro.

No es difícil ver cómo se pueden almacenar las tablas en archivos. Por

ejemplo, un carácter especial (como una coma) se puede usar para delimitar los diferentes atributos de un registro, y otro carácter especial

(como un carácter de nueva línea) se puede usar para delimitar registros. El

modelo relacional oculta tales detalles de implementación de bajo nivel a los desarrolladores de bases de datos y usuarios. El modelo de datos

relacional es el modelo de datos más ampliamente usado, y una amplia mayoría de sistemas de bases de datos actuales se basan en el modelo

relacional.

El modelo relacional se encuentra a un nivel de abstracción inferior al

modelo de datos E-R. Los diseños de bases de datos a menudo se realizan en el modelo E-R, y después se traducen al modelo relacional; Por ejemplo,

es fácil ver que las tablas cliente y cuenta corresponden a los conjuntos de

entidades del mismo nombre, mientras que la tabla impositor corresponde al conjunto de relaciones impositor.

Page 19: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 19

Nótese también que es posible crear esquemas en el modelo relacional que

tengan problemas tales como información duplicada innecesariamente.

Por ejemplo, supongamos que se almacena número-cuenta como un atributo del registro cliente. Entonces, para representar el hecho de que las

cuentas C-101 y C-201 pertenecen ambas al cliente González (con

identificador de cliente 19.283.746) sería necesario almacenar dos filas en la tabla cliente. Los valores de nombre-cliente, calle-cliente y ciudad-cliente

de González estarían innecesariamente duplicados en las dos filas.

2.2.3 MODELO ORIENTADO A OBJETOS

El modelo orientado a objeto es un modelo semánt ico similar al E-R. Ext iende los conceptos E-R al agregar encapsulado, un medio de incorporar datos y

funciones en una unidad donde están protegidos de modificación desde el exterior. En oposición a las ent idades que t ienen atributos como en E-R, este

modelo usa objetos que t ienen tanto un estado como un comportamiento.

El estado de un objeto se determina mediante los valores de sus atributos (variables de instancia).

El comportamiento es el conjunto de métodos (funciones) definidos por el objeto. Al crear una base de datos orientada a objeto, el diseñador

comienza por definir clases, que especifican los atributos y métodos para un conjunto de objetos. Entonces cada objeto se crea al crear una instancia

de la clase, usando uno de los propios métodos de la clase llamado

constructor. La estructura de los objetos puede ser bastante compleja. Cada objeto en una base de datos debe tener un identificador de objeto único

que funcione como una clave primaria permanente, pero ésta no toma su

valor de alguno de los atributos del objeto.

Las clases que se relacionan una con otra se agrupan para formar jerarquías de clase. Una diferencia importante entre los objetos de programa y los

objetos de base de datos es la persistencia. A diferencia de un objeto de

programa que existe sólo mientras el programa se ejecuta, un objeto de base de datos permanece en existencia después de que la ejecución de

un programa de aplicación se completa.

2.2.4 MODELO OBJETO-RELACIONAL

El modelo objeto-relacional ext iende el modelo relacional al agregarle algunos t ipos de datos y métodos complejos. En lugar de atributos atómicos

de un solo valor, como se requiere en el modelo relacional, este modelo

permite que los atributos se estructuren y tengan conjuntos o arreglos de

Page 20: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

20 Universidad de la Amazonia - Tecnología en Informática y Sistemas

valores. También permite herencia de métodos y t ipo. El lenguaje SQL se

extendió en 1999 para crear y manipular los t ipos de datos más complejos

que soporta este modelo. Por tanto, el lenguaje ut ilizado para administrar una base de datos objeto-relacional está más cerca del t ipo de lenguaje

que se ut iliza para las bases de datos relacionales que el ut ilizado para bases

de datos estrictamente orientadas a objeto.

2.2.5 MODELO DE DATOS SEMIESTRUCTURADO La mayoría de los modelos de datos requieren que los t ipos de entidad (u

objetos o registros, dependiendo del modelo) tengan la misma estructura.

En contraste, el modelo semiestructurado permite una colección de nodos, cada uno conteniendo datos, posiblemente con diferentes esquemas. El

nodo en sí contiene información acerca de la estructura de sus contenidos. Las bases de datos semiestructuradas son especialmente út iles cuando se

deben integrar bases de datos existentes que tengan dist intos esquemas.

Las bases de datos individuales se pueden ver como documentos, y a cada

documento se pueden agregar et iquetas (tags) XML (Extensible Markup

Language = lenguaje de marcas extensible) para describir sus contenidos. XML es un lenguaje similar a HTML (Hypertext Markup Language = lenguaje

de marcas de hipertexto), pero se usa como un estándar para intercambio de datos en vez de para presentación de datos. Las et iquetas XML se usan

para identificar elementos, subelementos y atributos que almacenan datos.

El esquema se puede identificar usando un Document Type Definit ion (DTD, definición de t ipo de documento) o mediante un esquema XML que

identifique los elementos, sus atributos y sus relaciones mutuas. (Ricardo,

2009)

3. MODELO ENTIDAD RELACIÓN

El modelo entidad-relación lo desarrolló P. P. Chen en 1976 para facilitar el

diseño de bases de datos al permit ir al diseñador expresar las propiedades conceptuales de la base de datos en un esquema de empresa. La palabra

empresa se usa ampliamente en las discusiones de bases de datos para

significar la organización para la cual se conserva la base de datos. La

Page 21: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 21

empresa podría ser un pequeño negocio, una corporación, una universidad,

una agencia gubernamental, un hospital o alguna otra organización. El

esquema de empresa es una descripción que corresponde al modelo conceptual. Es independiente de cualquier DBMS, no está limitado al

lenguaje de definición de datos de algún DBMS part icular. Usa sus propios

diagramas E-R para expresar la estructura del modelo. Algunos de los símbolos de diagrama y sus usos se describen:

Figura. Componentes del diagrama entidad relación

Un rectángulo se usa para representar una entidad, un óvalo para

representar un atributo y un diamante para representar una relación. Estos elementos se conectan mediante líneas.

Debido a su independencia de un DBMS, el esquema de empresa será válido sin importar el sistema de gest ión elegido, y puede permanecer

correcto incluso si cambia el DBMS. A diferencia de un esquema escrito en

un DDL (Lenguaje de definición de datos), los diagramas E-R que se usarán por lo general no están disponibles para su uso por el DBMS para crear la

estructura lógica o hacer relaciones externas/lógicas o lógicas/internas.

Page 22: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

22 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Existe un esfuerzo real por hacer que los ítems en el modelo representen

“cosas” en el minimundo, la parte del mundo real que modelará la base de datos, y por expresar las relaciones entre “cosas” del mundo real mediante

relaciones en el modelo. El modelo describe el entorno del minimundo en

términos de entidades, atributos y relaciones.

La siguiente figura muestra un diagrama E-R simplificado para una base de datos universitaria que representa información acerca de estudiantes,

personal docente y clases.

El conjunto de entidades Student, que se muestra como un rectángulo, t iene

los atributos stuId, lastName, firstName, major y credits, y cada uno se muestra como un óvalo conectado al rectángulo para la ent idad Student.

El conjunto de entidades Faculty t iene los atributos facId, lastName,

firstName y rank. El conjunto de entidades Class t iene los atributos classNumber, schedule y room. El diamante marcado Enroll muestra que hay

una relación entre estudiantes y las clases que cursan. La relación Teaches

(enseña) conecta al personal docente con las clases que imparten.

3.1 ENTIDADES

Page 23: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 23

No se dará una definición formal del término entidad sino que,

informalmente, se describirá como algún objeto que existe y se puede

dist inguir de otros objetos. Puede representar una persona, lugar, evento, objeto o concepto en el mundo real que se planea modelar en la base de

datos. Puede ser un objeto físico o una abstracción. Diferentes diseñadores

pueden no estar de acuerdo acerca de qué entidades existen en el minimundo. Las instancias de entidad representan a un estudiante

part icular, una clase específica, un cliente individual, un empleado part icular, una cuenta, un paciente, una conferencia, un invento o un club,

dependiendo de cuál sea la empresa y qué partes de ella se desee

representar.

Al aplicar abstracción es posible identificar las propiedades comunes de las instancias de entidades que son de interés en la base de datos y definir un

t ipo de entidad, que es una representación en el modelo de datos de una

categoría de entidades. Por ejemplo, si la empresa es una universidad, se puede considerar a todos los estudiantes en la universidad e identificar las

propiedades comunes de interés para el t ipo de entidad Student. El t ipo de

entidad forma la intensión de la ent idad, la parte de definición permanente.

Una colección de entidades del mismo t ipo se llama conjunto de entidades. El conjunto debe estar bien definido, lo que significa que debe ser posible

determinar si una instancia de entidad part icular pertenece a ella o no.

Todas las instancias de entidad que sat isfacen la definición en el momento forman la extensión de la ent idad. Los miembros del conjunto de entidades

Student cambian conforme los estudiantes entran y salen, pero el t ipo de

entidad Student permanece constante.

Los conjuntos de entidades pueden intersecarse, esto es, tener miembros comunes. Por ejemplo, en el modelo de la universidad se puede tener un

t ipo de entidad faculty y un t ipo de entidad administrator. Una persona

part icular puede sat isfacer la definición de ambos t ipos y ser simultáneamente tanto un miembro del personal docente como un

administrador en la universidad, y por tanto, sería una instancia en estos dos conjuntos de entidades. Como se muestra en la anterior, un t ipo de entidad

se representa en el diagrama E-R mediante un rectángulo que t iene el

nombre de la ent idad en su interior.

3.2 ATRIBUTOS Los atributos de una entidad representan las propiedades definitorias o

cualidades del t ipo de entidad. Para el t ipo de entidad student, las propiedades definitorias pueden ser la ID, nombre, especialidad y número

de créditos acumulados del estudiante. Los atributos son la representación

Page 24: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

24 Universidad de la Amazonia - Tecnología en Informática y Sistemas

en el modelo de dichas propiedades, a saber: stuId, stuLastName,

stuFirstName, major y credits. Por lo general, una entidad tendrá un valor

para cada uno de sus atributos.

Un atributo se representa en un diagrama E-R mediante un óvalo con el

nombre del atributo en el interior. Una línea conecta el óvalo del atributo con el rectángulo del conjunto de entidades que describe. En la figura se

muestran varios ejemplos de atributos conectados a sus t ipos de entidad. Tal como con las ent idades, diferentes diseñadores pueden no estar de

acuerdo acerca de los atributos para un conjunto de entidades.

Por ejemplo, otro diseñador puede elegir incluir stuAddress, stuPhone y

stuStatus, pero no credits. Además, lo que parece ser un atributo para un diseñador puede ser una entidad para otro. Por ejemplo, major puede verse

como una entidad en un diseño diferente. Al elegir si un objeto debe ser una

entidad o un atributo, el diseñador consideraría si el objeto describe a otro objeto y si t iene valores para sus instancias. En dicho caso, es mejor

representar el objeto como un atributo. Si es difícil identificar los posibles

valores, es más probable que el objeto sea una entidad.

3.2.1 DOMINIOS El conjunto de valores permit idos para cada atributo se llama dominio de

dicho atributo. Para el ejemplo Student, el dominio del atributo credits

puede ser el conjunto de valores enteros entre 0 y 150 inclusive, dependiendo de cómo la universidad calcula las horas de créditos. El

dominio del atributo stuLastName es un poco más difícil de definir, pues

consiste de todos los apellidos legales de estudiantes. Ciertamente es una cadena, pero puede consist ir no sólo de letras sino de apóstrofos, espacios

en blanco, guiones u otros caracteres especiales.

Diferentes atributos pueden tener los mismos dominios. Por ejemplo, un

subconjunto del conjunto de enteros posit ivos con frecuencia se usa como dominio para atributos con significados muy dist intos, como créditos y edad.

En realidad un atributo mapea un conjunto de entidades en el dominio del atributo. Por ejemplo, el atributo credits es una función que toma el conjunto

de estudiantes y mapea cada estudiante a un valor específico en el dominio

{0, . . ., 150}.

Es posible que note que la palabra dominio, como se usa aquí, no coincide

con la noción matemática de dominio como el conjunto sobre el cual se define una función. De hecho, el dominio del atributo es en realidad el rango

de una función matemática. Una instancia de entidad part icular se podría describir como un conjunto de pares ordenados, donde cada punto es el

Page 25: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 25

nombre de un atributo y el valor del atributo. Para un estudiante específico,

tal conjunto puede ser {(stuId, S1001), (stuLastName, Smith), (stuFirstName,

Jack), (major, History), (credits, 90)}.

3.2.2 VALORES NULOS En ocasiones el valor de dicho atributo se desconoce en el momento actual

o no está definido para una instancia part icular. En una base de datos, a algunos atributos se les puede permit ir tener valores nulos para algunas

instancias de entidades. En dicho caso, la instancia de entidad no se

mapeará al dominio del atributo, aunque otras instancias del mismo conjunto de entidades se mapearán al dominio de atributos. Nulo significa

sin valor.

3.2.3 ATRIBUTOS MULTIVALUADOS

Algunos atributos pueden tener valores múlt iples para una instancia de entidad. Por ejemplo, los estudiantes pueden tener más de una dirección de

correo electrónico. Si es posible que

alguna instancia de entidad tenga valores múlt iples para un atributo

part icular, se usa un óvalo doble alrededor del nombre del atributo. El

óvalo doble no se debe interpretar

como que todas las instancias deban tener valores múlt iples, sólo que

algunas instancias pueden tenerlos.

La siguiente figura ilustra cómo aparecería en un diagrama E-R

múlt iples direcciones de correo electrónico (emailAddress) para un estudiante.

3.2.4 ATRIBUTOS COMPUESTOS Algunos atributos se pueden descomponer en elementos más pequeños. Por

ejemplo, la dirección se puede descomponer en calle, ciudad, estado y

código postal. Si se examina classNumber, se ve que consiste en un código de departamento, un número de curso dentro de dicho departamento y

una letra para una sección. Si se usa stuName como atributo, se podría

descomponer en firstName y lastName. De igual modo, telephoneNumber se puede descomponer en areaCode, phoneNumber o en countryCode,

areaCode, exchange y extension. Un atributo es un atributo compuesto si es

Page 26: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

26 Universidad de la Amazonia - Tecnología en Informática y Sistemas

posible descomponerlo todavía más. Se indica que un atributo es

compuesto al escribir su nombre en un óvalo en la forma usual y luego

dibujar óvalos para los componentes individuales, que se conectan mediante líneas al óvalo del atributo compuesto. La siguiente figura ilustra la

dirección como un atributo compuesto.

3.2.5 ATRIBUTOS DERIVADOS

A veces es posible que quiera incluir en un diseño un atributo cuyo valor se

pueda calcular cuando sea necesario. Por ejemplo, es posible que quiera tratar la edad como si fuese un atributo, pero si ya almacenó dateOfBirth

(fecha de nacimiento) no hay necesidad de también almacenar la edad, pues se calcula fácilmente. Los atributos que no se almacenarán, pero

cuyos valores se calcularán u obtendrán a part ir de otras fuentes, se llaman

derivados. Éstos se citan en un diagrama E-R mediante un óvalo con rayas. La anterior figura también muestra la edad como un atributo derivado. Los

atributos también se pueden derivar a part ir de otras ent idades o de

relaciones. Por ejemplo, se podría tener un atributo currentEnrollment (inscripción actual) para Class, que muestre el número de estudiantes

inscritos. El valor se podría derivar a part ir del número de relaciones de inscripción (enrollment) para la ent idad class. Si se almacenó Department

como entidad, se podría tener un atributo derivado, numberOfFaculty

(número de profesores), que haría un conteo de los miembros del personal docente para cada departamento. Esto se podría derivar a part ir de la

ent idad faculty.

3.2.6 CLAVES

Page 27: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 27

Intuitivamente, se piensa en una clave como en un ítem de datos que

permite diferenciar los registros. Es necesaria una definición más exacta del

concepto de clave. Se comienza con la noción de superclave.

Superclaves Una superclave es un atributo o un conjunto de atributos que identifican de

manera única una entidad. Eso significa que siempre permite diferenciar una instancia de entidad de otra. Por ejemplo, para el conjunto de

entidades Student, {stuId} es una superclave porque se puede usar para

identificar de manera única cada estudiante. Si t iene una lista de todos los estudiantes, con sus ID, apellidos, nombres, especialidades y créditos, y se le

dice el valor stuId, sólo hay un estudiant e en la lista con dicho valor. Si se le dice el apellido del estudiante, es posible que no esté seguro de cuál

estudiante elegir, pues dos o más estudiantes pueden tener el mismo

apellido. Por tanto, {stuLastName} no es una superclave. Si t iene una superclave, entonces cualquier conjunto de atributos que contenga dicha

superclave también es una superclave.

En consecuencia, la combinación de stuId y credits, escrito {stuId,credits},

también es una superclave. Note que una superclave proporciona identificación única para todas las extensiones de la base de datos, no sólo

para uno o dos ejemplos. Puede usar ejemplos para auxiliarse a reparar las

ideas acerca de las superclaves, pero un ejemplo puede ser engañoso. Por ejemplo, puede suceder que, en el momento, ningún par de estudiantes en

la universidad tenga el mismo apellido y pueda inferir de manera incorrecta

a part ir de la extensión part icular que {stuLastName} es una superclave. Para identificar una superclave requiere considerar el significado de los atr ibutos,

una noción semántica, antes de decidir si es única sobre todas las extensiones. Las superclaves representan una restricción que evita que dos

ent idades tengan alguna vez el mismo valor para dichos atributos.

Representa una suposición hecha acerca del minimundo que se usa en el modelo.

Claves candidatas

Dado que una superclave como {stuId,credits} puede contener atributos adicionales que no son necesarios para identificación única de instancias

de entidad, el interés está en encontrar superclaves que no contengan estos

atributos adicionales. En este ejemplo, el atributo adicional es claramente credits. Una clave candidata es aquella que no contiene atributos

adicionales. Una clave candidata se define como una superclave tal que ningún subconjunto propio de sus atributos sea por sí mismo una superclave.

En el ejemplo, {stuId,credits} no es una clave candidata porque contiene un

Page 28: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

28 Universidad de la Amazonia - Tecnología en Informática y Sistemas

subconjunto, {stuId}, que es una superclave. Sin embargo, {stuId} por sí mismo

es una clave candidata, pues no t iene subconjunto propio que identifique

entidades.

Puede haber muchas claves candidatas para un conjunto de entidades. Si

se almacenan números de seguridad social de estudiantes, entonces {socSecNo} también sería una clave candidata, siempre que cada

estudiante tenga un número de seguridad social. Note que una clave candidata puede consist ir en un solo atributo, como {stuId} y {socSecNo}, o

puede ser una combinación de atributos. Por ejemplo, la combinación

{lastName,firstName,Address}, si siempre es única, puede ser una clave candidata para algún conjunto de entidades. Cuando una clave consiste

en más de un atributo, se le llama clave compuesta. Por conveniencia, ahora se ret irarán las llaves en las claves de identificación y simplemente se

citará(n) el (los) atributo(s) en la clave.

Claves primarias

Un conjunto de entidades puede tener varias claves candidatas. El diseñador de la base de datos elige entre ellas e identifica una como la

forma normal de identificar ent idades y acceder a los registros. Ésta se convierte en la clave primaria. En otras palabras, la clave primaria es la clave

candidata “triunfadora”, aquella que en realidad se elige. La clave primaria

puede ser una sola clave de atributo o una clave compuesta. Con frecuencia, las otras claves candidatas se convierten en claves alternativas,

cuyos valores únicos proporcionan otro método de acceder a los registros.

El término clave secundaria por lo general significa un atributo o conjunto

de atributos cuyos valores, no necesariamente únicos, se usan como un medio de acceder a los registros. En el ejemplo, stuId puede ser la clave

primaria para el conjunto de entidades Student. Si socSecNo también se

almacena, puede ser una clave alternativa. El atributo lastName se puede usar como una clave secundaria. A pesar de que se permitan apellidos

duplicados, puede usar el apellido para auxiliarse a encontrar el registro de un estudiante si no se conoce la ID del estudiante o su número de seguridad

social. Por lo general se crea un índice en un campo de clave secundaria,

lo que permite rápida recuperación de registros con un valor part icular del atributo indexado.

Entonces los registros se pueden examinar individualmente para encontrar el deseado. Para el conjunto de entidades Class, course# puede ser la clave

primaria, y facId puede ser la clave primaria para el conjunto de entidades Faculty. Una característ ica importante de una clave primaria es que ninguno

de sus atributos tendrá valores nulos. Si permit iera valores nulos en las claves,

Page 29: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 29

no tendría posibilidad de diferenciar las ent idades, pues dos ent idades con

valores nulos para el mismo atributo de clave serían indist inguibles.

Esto se sigue de la definición de clave candidata, de modo que todos los

atributos en una clave candidata son necesarios para una identificación

única de las instancias de entidad. Para garantizar la exactitud de los datos, también se debe insist ir en que ningún atributo de una clave candidata

t iene permiso de poseer valores nulos. Al crear una base de datos, por lo general se identifica la clave primaria de modo que el sist ema fortalecerá

las propiedades no nula y única, y se reforzará el estatus de clave de las

claves candidatas al especificar que deben ser únicas. La clave primaria de una entidad se subraya en el diagrama E-R.

3.3 RELACIONES Con frecuencia las ent idades se ligan mediante asociaciones o relaciones,

que son conexiones o interacciones entre las instancias de entidad. Un

estudiante se relaciona con una clase al inscribirse en dicha clase. Por abstracción, es posible identificar las propiedades comunes de ciertas

relaciones y definir un t ipo de relación y un correspondiente conjunto de relaciones bien definido como la colección de relaciones de dicho t ipo.

Las relaciones que sat isfacen los requisitos de membresía en el conjunto de relaciones en cualquier momento son las instancias, o miembros, del

conjunto de relaciones. Como con entidades y atributos, el t ipo de relación

es parte de la intensión y las instancias son parte de la extensión del modelo. Por ejemplo, se t iene un t ipo de relación que vincula a cada estudiante con

cada una de las clases en las que está inscrito. Entonces se t iene un conjunto de relaciones Enroll, que contiene todas las instancias de la relación. Si no se

proporciona un nombre, la relación se referirá mediante los nombres de las

ent idades relacionadas, con un guión entre ellas, por ejemplo, Student -Class o Department-Faculty.

3.3.1 TIPOS DE RELACIONES

Enroll es un ejemplo de un conjunto de relaciones binario, que vincula dos

conjuntos de entidades. Es posible describir este conjunto de relaciones más formalmente como un conjunto de pares ordenados, en el que el primer

Page 30: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

30 Universidad de la Amazonia - Tecnología en Informática y Sistemas

elemento representa a un estudiante y el segundo una clase que el

estudiante cursa. En un momento dado, las instancias de este conjunto de

relaciones se puede considerar como:

Enroll = { (El estudiante con Id S1001, La clase con classNumber ART103A),

(El estudiante con Id S1020, La clase con classNumber CS201A), (El estudiante con Id S1002, La clase con classNumber CS201A),

(El estudiante con Id S1010, La clase con classNumber ART103A), (El estudiante con Id S1002, La clase con classNumber ART103A),

(El estudiante con Id S1020, La clase con classNumber MTH101B),

(El estudiante con Id S1001, La clase con classNumber HST205A), (El estudiante con Id S1010, La clase con classNumber MTH103C),

(El estudiante con Id S1002, La clase con classNumber MTH103C) }

Cada par ordenado muestra que un estudiante part icular está inscrito en

una clase part icular. Por ejemplo, el primer par muestra que el estudiante cuyo ID es S1001 está inscrito en la clase con número de clase ART103A. El

conjunto de los pares ordenados de las ent idades relacionadas es el

conjunto de relaciones, y cada par ordenado es una instancia de la relación.

3.3.2 ATRIBUTOS DE CONJUNTOS DE RELACIONES

A veces un conjunto de relaciones t iene atributos descript ivos que

pertenecen a la relación en vez de alguna de las ent idades involucradas. Por ejemplo, en la figura, el atributo grade es un atributo descript ivo para el

conjunto de relaciones Enroll. En un diagrama E-R, se coloca un atributo

descript ivo de una relación en un óvalo y se le conecta al diamante de relación. Dado que los estudiantes todavía están inscritos en las clases, se

supondrá que este atributo representa la calificación de mitad de semestre. El atributo grade no describe la ent idad Student, pues cada estudiante

puede tener calificaciones para muchas clases, ni describe a la ent idad

Class, pues en una clase part icular se otorgan diferentes calificaciones para dist intos estudiantes. Para que una calificación tenga significado, debe

asociarse con un estudiante part icular para una clase part icular. Dado que la calificación es un atributo de Enroll, se puede describir como un mapeo

de instancias de Enroll al dominio de grade.

Page 31: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 31

3.3.3 CARDINALIDAD DE UNA RELACIÓN Es importante identificar restricciones sobre las relaciones de modo que las

posibles extensiones de la relación corresponden a conexiones o

asociaciones del mundo real. Otros dos t ipos de restricciones sobre las relaciones son las restricciones en la part icipación y la cardinalidad.

La cardinalidad de una relación es el número de entidades a las que otra

entidad puede mapear bajo dicha relación. Sean X y Y conjuntos de

entidades y R una relación binaria de X a Y. Si no hubiera restricciones de cardinalidad sobre R, entonces cualquier número de entidades en X podría

relacionarse con cualquier número de entidades en Y. Sin embargo, por lo general, existen restricciones sobre el número de entidades

correspondientes.

Se dist inguen cuatro t ipos de relaciones binarias.

1. Uno a uno

Page 32: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

32 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Una relación R de X a Y es uno a uno si cada entidad en X se asocia con

cuando mucho una entidad en Y e, inversamente, cada entidad en Y se

asocia con cuando mucho una entidad en X. Un ejemplo de relación uno a uno es la relación de Chairperson (jefe) a Department. Cada jefe dirige al

menos un departamento, y cada departamento t iene cuando mucho un

jefe. En la vida familiar, un ejemplo de relación uno a uno es la relación de matrimonio monógamo. En cualquier momento dado, cada esposo está

casado con sólo una esposa, y cada esposa con un esposo.

2. Uno a muchos

Una relación R de X a Y es uno a muchos si cada entidad en X se puede

asociar con muchas ent idades en Y, pero cada entidad en Y se asocia con cuando mucho una entidad en X. La palabra “muchos” se aplica al posible

número de entidades con las que se asocia otra. Para una instancia dada,

pueden exist ir cero, uno, dos o más entidades asociadas, pero si alguna vez es posible tener más de una, se usa la palabra “muchas” para describir la

asociación. La relación entre Faculty y Class es uno a muchas, si supone que

no hay docencia colectiva. Cada miembro del personal docente puede impart ir muchas clases, pero cada clase se imparte por sólo un miembro del

personal docente. En una familia, la tradicional relación madre a hijo es uno a muchas. Una madre puede tener muchos hijos, pero cada hijo sólo t iene

una madre (de nacimiento).

3. Muchos a uno

Una relación R de X a Y es muchos a uno si cada entidad en X se asocia con cuando mucho una entidad en Y, pero cada entidad en Y se puede asociar

con muchas ent idades en X. La relación entre Student y su Department de especialidad es muchos a uno, si supone que no hay dobles o triples

especialidades. Cada estudiante puede tener cuando mucho una

especialidad, pero un departamento puede tener muchas especialidades de estudiantes en ella. En la vida familiar, la relación hijo a madre (de

nacimiento) es muchos a una. Cada hijo t iene cuando mucho una madre de nacimiento, pero cada madre puede tener muchos hijos. Una relación

muchos a uno es en realidad lo mismo que uno a muchos, pero vista desde

el lado opuesto.

4. Muchos a muchos Una relación R de X a Y es muchos a muchos si cada entidad en X se puede

asociar con muchas ent idades en Y y cada entidad en Y se puede asociar con muchas ent idades en X. La relación entre Student y Class es muchos a

muchos. Cada estudiante puede inscribirse en muchas clases (es decir, más

Page 33: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 33

de una) y cada clase puede tener muchos estudiantes inscritos. En una

familia, la relación abuelo a nieto ilustra una relación muchos a muchos. Un

abuelo puede tener muchos nietos, y un nieto puede tener muchos abuelos. La relación padre a hijo también es muchos a muchos, pues cada hijo

puede tener dos padres, y cada padre muchos hijos. Si los conjuntos de

entidades A, B y C se relacionan en una relación ternaria R, se pueden determinar las restricciones de cardinalidad para la part icipación de cada

conjunto de entidades en la relación.

Para cada combinación part icular de las ent idades B y C, si sólo existe un

valor A, entonces A part icipa como “uno”. Si puede haber más de un valor A para una combinación B-C part icular, entonces A part icipa como

“muchos”. De igual modo, B part icipa como “uno” o “muchos” dependiendo de cuántos valores B puedan exist ir para cada combinación

A-C, y C part icipa como “uno” o “muchos” dependiendo del número de

valores C para cada combinación A-B. La noción se puede extender a cualquier grado de relación.

3.3.4 MUESTRA DE CARDINALIDADES EN UN DIAGRAMA E-R En un diagrama E-R, las líneas que conectan los rectángulos representantes

de los conjuntos de entidades a los diamantes representantes de los conjuntos de relaciones muestran sus asociaciones. Existen muchos métodos

alternativos de mostrar la cardinalidad de la relación. La tradicional, que se

muestra como Método 1 en la parte superior de la figura, es poner un “1” para mostrar una cardinalidad de relación “uno” y una “M” o “N” para

mostrar una cardinalidad “muchos” en la línea que conecta una entidad

con un conjunto de relaciones.

Por ende, si un miembro docente se asocia con cada clase, la línea entre el rectángulo del conjunto de entidades Faculty y el diamante del conjunto de

relaciones FacultyClass t iene “1” sobre ella. Puesto que muchas clases se

pueden asociar con el miembro del personal docente, la línea entre el diamante del conjunto de relaciones Faculty-Class y el rectángulo Class

t iene “M” sobre ella. Si elige representar la relación uno a uno Chairperson -Department, pondría “1” en la línea que conecta el rectángulo Chairperson

al diamante del conjunto de relaciones Chairperson-Department, y otro “1”

sobre la línea que conecta el diamante del conjunto de relaciones al rectángulo Department. Para la relación Enroll, tendría una “M” desde el

rectángulo del conjunto de entidades Student hasta el diamante Enroll y una

“N” desde el diamante Enroll hasta el rectángulo del conjunto de entidades Class.

Page 34: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

34 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Una notación alternativa al “1” es poner una flecha sencilla sobre la línea

desde un diamante de relación que apunte hacia un rectángulo de

conjunto de entidades que part icipa como “uno” y una flecha doble sobre la línea que apunta hacia un conjunto de entidades que part icipa como

“muchos”. Algunos autores o herramientas de software para dibujar

diagramas usan una flecha sencilla para “uno” y ninguna flecha para “muchos”, mientras que otros usan “punto grande” al final de una línea

“muchos” y nada en el extremo de una línea “uno”. Incluso otra notación utiliza líneas para conectar ent idades relacionadas, sin diamante, con una

“pata de gallo” ramificada al final de “muchos”, y un extremo no ramificado

para “uno”.

Las siguiente figuras resumen estos métodos aplicados a estos tres ejemplos. Para relaciones ternarias, se coloca “1” o “M” o “N” en el arco desde un

conjunto de entidades hasta uno de relaciones, dependiendo de si la

entidad part icipa como “uno” o como “muchos”. La part icipación se determina al

preguntar: “Para cada

combinación de las otras dos ent idades,

¿cuántas de éstas part icipan?”

Page 35: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 35

3.4 ROLES En una relación, cada entidad t iene una función llamada rol en la relación.

Por lo general es claro a part ir del contexto qué rol juega una entidad en una relación. Por tanto, en la relación que conecta Faculty y Class, se

entiende que la ent idad Faculty juega el rol de “es profesor de” en la

relación, mientras que la ent idad Class juega el rol “la imparte...” Sin embargo, no todas las relaciones involucran conjuntos de entidades

dist intos.

Cuando un conjunto de entidades se relaciona consigo mismo, se t iene una

relación recursiva, y es necesario indicar los roles que juegan los miembros en la relación. Por ejemplo, un miembro del personal docente en cada

departamento es el jefe. Si elige no representar al jefe como una entidad

separada, sino conservarlo en el conjunto de entidades Faculty, entonces tendrá que representar la relación Chair-Member que vincula a otros

miembros del departamento con su jefe.

Page 36: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

36 Universidad de la Amazonia - Tecnología en Informática y Sistemas

4. MODELO RELACIONAL

4.1 BREVE HISTORIA DEL MODELO RELACIONAL

El modelo relacional lo propuso por primera vez Codd en 1970, en un ensayo

t itulado “A Relat ional Model of Data for Large Shared Data Banks”. Gran parte de las primeras invest igaciones acerca del modelo la realizaron Codd

y sus asociados en el laboratorio de invest igación de IBM, anteriormente en San José, California.

En aquella época, el mercado estaba dominado por los sistemas de gest ión de base de datos con modelo jerárquico y de red, que usaban estructuras

de datos y almacenamiento complejas y eran difíciles de entender para los

usuarios. Un protot ipo de sistema de gest ión de base de datos relacional, llamado System R (sistema R), lo desarrollaron invest igadores de IBM a finales

de la década de 1970. Este proyecto se diseñó para demostrar la practicidad del modelo relacional al proporcionar una implementación de

sus estructuras de datos y operaciones.

4.2 VENTAJAS DEL MODELO RELACIONAL

El modelo relacional se basa en la noción matemática de relación. Codd y otros extendieron la noción para aplicarla al diseño de bases de datos. Por

ende, fueron capaces de sacar ventaja del poder de la abstracción matemática y de la expresividad de la notación matemática para

desarrollar una estructura simple, pero poderosa, para las bases de datos.

Mucha de la literatura trata el modelo teóricamente y desarrolla aspectos

del modelo con el uso del enfoque matemático de teorema y prueba. Este enfoque abstracto t iene la ventaja de que los resultados son generales, lo

que significa que no dependen de un ejemplo part icular, y se pueden

aplicar a muchas aplicaciones diferentes. Por fortuna, se pueden usar los resultados de la teoría para diseñar modelos relacionales sin

necesariamente seguir el intrincado proceso de probar un teorema. La

teoría ayuda en el diseño de la base de datos al identificar potenciales fallos en los diseños propuestos, y ofrece herramientas para permit ir corregir

dichos fallos.

Page 37: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 37

La estructura básica del modelo relacional es simple, lo que lo hace sencillo

de entender desde el punto de vista intuit ivo. Permite la separación de los

niveles conceptual y físico, de modo que el diseño conceptual se puede realizar sin considerar estructuras de almacenamiento. Los usuarios y

diseñadores encuentran que el modelo les permite expresar nociones de

datos conceptuales en una forma que se entiende con facilidad. Las operaciones de datos también se expresan de una manera sencilla y no

requieren que el usuario esté familiarizado con las estructuras de almacenamiento ut ilizadas. El modelo usa pocos comandos muy poderosos

para lograr manipulaciones de datos que varían de lo simple a lo complejo.

Por estas razones, el modelo relacional se ha convert ido en el modelo más popular para las bases de datos.

La siguiente gráfica muestra un ejemplo de un modelo relacional básico1:

4.3 ESTRUCTURAS DE DATOS RELACIONALES Las estructuras de datos ut ilizadas en el modelo relacional son tablas con

relación entre ellas.

1 Imagen tomada de: http://elies.rediris.es/elies9/fig4-10.gif

Page 38: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

38 Universidad de la Amazonia - Tecnología en Informática y Sistemas

4.3.1 TABLAS

El modelo relacional se basa en el concepto de relación, que se representa físicamente como una tabla o arreglo bidimensional. En este modelo, las

tablas se usan para contener información acerca de los objetos a

representar en la base de datos. Al usar los términos del modelo entidad-relación, los conjuntos de entidades y de relaciones se muestran usando

tablas. Una relación se representa como una tabla bidimensional en la que las filas de la tabla corresponden a registros individuales y las columnas

corresponden a atributos. Por ejemplo, la relación Student se representa

mediante la tabla Student, que t iene columnas para los atributos stuId, lastName, firstName, major y credits.

El dominio de un atributo es el conjunto de valores permisibles para dicho

atributo. Los dominios pueden ser dist intos, o dos o más atributos pueden

tener el mismo dominio. Cada fila de la tabla corresponde a un registro individual o instancia de entidad. En el modelo relacional, cada fila se llama

tupla. Una tabla que representa una relación t iene las siguientes

característ icas:

- Cada celda de la tabla contiene sólo un valor. - Cada columna t iene un nombre dist into, que es el nombre del atributo

que representa.

- Todos los valores en una columna provienen del mismo dominio, pues todos son valores del atributo correspondiente.

- Cada tupla o fila es dist inta; no hay tuplas duplicadas.

- El orden de las tuplas o filas es irrelevante.

Para mostrar lo que significan estas restricciones, use la tabla Student como ejemplo. Dado que cada celda debe contener sólo un valor, es ilegal

almacenar valores múlt iples para un atributo de una sola entidad. Por

ejemplo, no se pueden almacenar dos especialidades para un estudiante en una sola celda. Los nombres de columna escritos en la parte superior de

las columnas corresponden a los atributos de la relación.

Los valores en la columna stuId son todos del dominio de stuId; no se

permit iría que el nombre de un estudiante apareciera en esta columna. No puede haber filas duplicadas, porque cada estudiante individual está

representado sólo una vez. Por ejemplo, la fila que contiene (S1001, Smith,

Tom, History, 90) aparece sólo una vez. Las filas se pueden intercambiar a voluntad, de modo que los registros de S1001 y S1002 se pueden cambiar,

sin variar la relación.

Page 39: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 39

4.3.2 RELACIONES MATEMÁTICAS

Para entender el significado estricto del término relación, es necesario revisar algunas nociones de matemáticas. Suponga que t iene dos conjuntos, D1 y

D2 , con D1 = {1,3} y D2 = {a,b,c}. Puede formar el producto cartesiano de

estos dos conjuntos, D1 × D2 , que es el conjunto de todos los pares ordenados tales que el primer elemento es un miembro de D1 y el segundo

elemento es un miembro de D2 . Otra forma de pensar en esto es encontrar todas las combinaciones de elementos con el primero de D1 y el segundo

de D2 . Por ende, se encuentra lo siguiente:

D1 × D2 = {(1,a), (1,b), (1,c), (3,a), (3,b), (3,c)}

Una relación es simplemente algún subconjunto de este producto

cartesiano. Por ejemplo,

R = {(1,a), (3,a)} es una relación.

Con frecuencia, se especifica cuáles pares ordenados estarán en la relación al proporcionar alguna regla para su selección. Por ejemplo, R incluye a

todos aquellos pares ordenados en los que el segundo elemento es a, de modo que R se puede escribir como,

R = {(x,y) | x ∈ D1 , y ∈ D2 , y y = a}

Al usar estos mismos conjuntos, podría formar otra relación, S, en la que el primer elemento siempre es 3. Por tanto,

S = {(x,y) | x ∈ D1 , y ∈ D2 , y x = 3}

De manera alternativa, S = {(3, a), (3, 6), (3, c)}, pues sólo existen tres pares

ordenados en el producto cartesiano que sat isfacen la condición. La noción de relación se podría extender a tres conjuntos en una forma natural. Sean

D1 , D2 y D3 los t res conjuntos. Entonces el producto cartesiano D1 × D2 × D3 de estos tres conjuntos es el conjunto de todas las t ripletas ordenadas tales

que el primer elemento es de D1 , el segundo elemento es de D2 y el tercer

elemento es de D3 . Entonces, una relación es cualquier subconjunto de este producto cartesiano. Por ejemplo, suponga que los conjuntos se definen

como

D1 = {1,3} D2 = {2,4,6} D3 = {3,6,9}

Page 40: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

40 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Entonces D1 × D2 × D3 = {(1,2,3), (1,2,6), (1,2,9), (1,4,3), (1,4,6), (1,4,9), (1,6,3),

(1,6,6), (1,6,9), (3,2,3), (3,2,6), (3,2,9), (3,4,3), (3,4,6), (3,4,9), (3,6,3), (3,6,6),

(3,6,9)}

Una relación es cualquier subconjunto de estas tripletas ordenadas. Por

ejemplo, se podría definir una relación T como aquellas t ripletas ordenadas en las que el tercer elemento es la suma de los dos primeros. Entonces se

t iene:

T = {(x,y,z) | x ∈ D1, y ∈ D2, z ∈ D3 y z = x + y} o T = {(1,2,3), (3,6,9}.

Se puede ir más allá de tres conjuntos y definir una relación general sobre n

dominios. Sean D1 , D2 , . . ., Dn los n conjuntos. Su producto cartesiano se define como

D1 × D2 × . . . × Dn = {(d1,d2, . . ., dn)|d1∈ D1, d2∈ D2, . . ., dn ∈ Dn}

Usualmente, el producto cartesiano se escribe

Π  n i=1 Di

Una relación sobre los n conjuntos es cualquier conjunto de n-tuplas elegidas de este producto cartesiano. Note que, al definir relaciones, se t ienen que

especificar los dominios o los conjuntos de los que se escogen valores.

4.3.3 PROPIEDADES DE LAS RELACIONES

La mayoría de las característ icas especificadas para las tablas resulta de las propiedades de las relaciones. Dado que una relación es un conjunto, el

orden de los elementos no cuenta.

Por tanto, en una tabla, el orden de las filas es irrelevante. En un conjunto,

ningún elemento se repite. De igual modo, en una tabla no hay filas

duplicadas. Cuando se encuentran los productos cartesianos de conjuntos con elementos simples de un solo valor, como los enteros, cada elemento

en cada tupla tenía valor sencillo. De igual modo, cada celda de una ta bla contiene sólo un valor. En una relación, los posibles valores para una posición

dada están determinados por el conjunto o dominio sobre el cual se define

la posición. En una tabla, los valores en cada columna deben provenir del mismo dominio de atributo. En una relación matemática, el orden de los

elementos en una tupla es importante.

Por ejemplo, el par ordenado (1,2) es muy diferente del par ordenado (2,1),

como se dará cuenta cuando ubique los dos puntos en un plano con

Page 41: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 41

coordenadas cartesianas. Sin embargo, en las tablas, el orden de las

columnas es irrelevante. La tabla Student se considera como la misma

incluso si se ponen las columnas en orden diferente, en tanto se usen los mismos datos. La razón es que los encabezados de columna indican a cuál

atributo pertenece el valor. Sin embargo, una vez elegida la estructura de la

tabla, el orden de los elementos dentro de las filas de la extensión debe coincidir con el orden de los nombres de columna.

4.3.4 GRADO Y CARDINALIDAD

El número de columnas en una tabla se llama grado de la relación. El grado de la relación Student es cinco, pues la tabla Student tiene cinco columnas.

Esto significa que cada fila de la tabla es una 5-tupla, que contiene cinco valores. Una relación con una sola columna tendría grado uno y se llamaría

relación unaria. Una relación con dos columnas se llama binaria, una con

tres columnas se llama ternaria y, después de ella, por lo general se usa el término n-aria. El grado de una relación es parte de la intensión de la

relación y nunca cambia. En contraste, el número de filas en una tabla,

llamada la cardinalidad de la relación, cambia conforme se agregan nuevas tuplas o se borran las ant iguas. La cardinalidad es una propiedad de

la extensión de la relación, la instancia part icular de la relación en cualquier momento dado.

4.4 REPRESENTACIÓN DE ESQUEMAS DE BASES DE DATOS RELACIONALES

Un esquema de base de datos relacional puede tener cualquier número de

relaciones. Los esquemas de relación se pueden representar al dar el nombre de cada relación, seguido de los nombres de atributo entre

paréntesis, con la clave primaria subrayada. No hay una forma estándar simple de indicar sin ambigüedades las claves externas, pero en el texto se

usarán cursivas para indicar que un atributo es una clave externa, o parte

de una clave externa.

Desafortunadamente, este método no siempre dirá con claridad cuál es la relación base. Además, si se t ienen claves externas compuestas, y los

atributos se traslapan, se tendría dificultad para identificar con exactitud

cuál es la clave externa. La forma más clara de mostrar las claves externas es mediante el dibujo de flechas desde las claves externas hasta las claves

primarias a las que hacen referencia. Recuerde que el esquema en realidad

también incluye dominios, vistas, conjuntos de caracteres, restricciones, procedimientos almacenados, autorizaciones y otra información

relacionada, de modo que la representación realmente sólo es una parte

Page 42: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

42 Universidad de la Amazonia - Tecnología en Informática y Sistemas

del esquema. Para el ejemplo de universidad, una base de datos simple

puede contener relaciones para Student, Class, Faculty y Enroll.

Los esquemas de relación se escribirían como:

Student (stuId, lastName, firstName, major, credits) Class (classNo, facId, schedule, room)

Faculty (facId, name, department, rank) Enroll(stuId,classNo, grade)

El esquema de relación proporciona el nombre de la tabla para cada relación y encabezado de columna para cada uno de sus atributos. El

esquema de modelo lógico es el conjunto de todos estos esquemas para la base de datos. La figura muestra una instancia de esta base de datos.

Note que algunos atributos, como las claves externas, aparecen en más de

una relación. Por ejemplo, stuId aparece en Student y Enroll. Cuando se quiere dist inguir entre las dos apariciones de stuId, se usa el nombre de la

relación, seguido por un punto, seguido por el nombre del atributo. Los dos nombres calificados para stuId son Student.stuId y Enroll.stuId. Un nombre

todavía más explícito comienza con el nombre de la base de datos, luego

el nombre de la tabla, después el nombre del atributo, como en University. Student.stuId. Cuando un atributo aparece en más de una relación, su

aparición por lo general representa una relación o interacción entre tuplas

de las dos relaciones. Estos atributos comunes juegan un importante papel al realizar manipulación de datos.

Page 43: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 43

5. NORMALIZACIÓN

5.1 OBJETIVOS DE LA NORMALIZACIÓN

El objet ivo básico del modelado lógico es desarrollar una “buena” descripción de los datos, sus relaciones y sus restricciones. Para el modelo

relacional, esto significa que debe identificar un conjunto adecuado de

relaciones. Sin embargo, la tarea de elegir las relaciones es difícil, porque existen muchas opciones para que el diseñador las considere.

El propósito de la normalización es producir un conjunto est able de

relaciones que sea un modelo fiel de las operaciones de la empresa. Al

seguir los principios de la normalización, se logra un diseño que es muy flexible, lo que permite al modelo extenderse cuando necesite representar

nuevos atributos, conjuntos de entidades y relaciones. La base de datos se

diseña en tal forma que se pueden fortalecer con facilidad ciertos t ipos de restricciones de integridad. También se puede reducir la redundancia en la

base de datos, tanto para ahorrar espacio como para evitar inconsistencias en los datos. También asegura que el diseño esté libre de ciertas anomalías

de actualización, inserciones y borrado.

Una anomalía es un estado inconsistente, incompleto o contradictorio de la

base de datos. Si estas anomalías estuvieran presentes sería incapaz de

representar cierta información, podría perder información cuando ciertas actualizaciones se realicen y correría el riesgo de que los datos se vuelvan

inconsistentes con el t iempo.

5.2 ANOMALÍAS DE INSERCIÓN, ACTUALIZACIÓN Y BORRADO

Considere la siguiente relación:

NewClass(classNo, stuId,

stuLastName, facId, schedule, room, grade)

Una instancia de esta relación aparece en la siguiente figura. En este ejemplo se supondrá que solamente existe un miembro del personal

docente para cada clase (esto es: no hay enseñanza en equipo). También se supone que cada clase siempre t iene asignado el mismo salón. Esta

relación muestra anomalías de actualización, inserción y borrado.

Page 44: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

44 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Anomalía de actualización Suponga que quiere cambiar el horario de ART103A a MWF12. Es posible que

pueda actualizar los dos primeros registros de la tabla NewClass, pero no el

tercero, lo que resulta en un estado inconsistente en la base de datos. Entonces sería imposible decir el verdadero horario para dicha clase. Ésta es

una anomalía de actualización.

Anomalía de inserción. Una anomalía de inserción ocurre cuando intenta agregar información

acerca de un curso para el cual todavía no hay estudiantes registrados. Por ejemplo, suponga que crea una nueva clase, con valores MTH110A, F110,

MTuTh10, H225 para classNumber, facId, schedule y room. No es posible

registrar la información del curso, aun cuando tenga los valores para estos atributos. Dado que la clave es {courseNo,stuId}, no t iene permiso para

insertar un registro con un valor nulo para stuId. Puesto que no t iene

posibilidad de representar esta información de clase, t iene una anomalía de inserción. El mismo problema ocurriría si intenta insertar información acerca

de un estudiante que todavía no esté registrado en curso alguno.

Anomalía de borrado. Cuando borra el registro del único estudiante que toma un curso part icular,

ocurre una anomalía de borrado. Por ejemplo, si el estudiante S1001 se ret ira

de HST205A, perdería toda la información acerca de dicho curso. Sería deseable conservar la información del curso, pero no puede hacerlo sin un

stuId correspondiente. De igual modo, si un estudiante abandona el único curso que toma, se pierde toda la información acerca de dicho estudiante.

La invest igación acerca de estas anomalías la realizó por primera ocasión Codd, quien identificó las causas y definió las primeras tres “formas

normales”. Una relación es una forma normal específica si sat isface el conjunto de requisitos o restricciones para dicha forma. Note que las

restricciones que se discuten son restricciones de esquema, propiedades

permanentes de la relación, no simplemente de alguna instancia de la relación. Son propiedades de la intensión, no sólo de una extensión

part icular. Invest igación posterior de Boyce y Codd condujo a un

refinamiento de la tercera de estas formas. Invest igación adicional de Fagin, Zaniolo y Delobel (cada uno de manera independiente) resultó en la

definición de tres nuevas formas normales. Todas las formas normales son anidadas (nested), en cuanto a que sat isfacen las restricciones de las

Page 45: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 45

anteriores, pero es una “mejor” forma porque cada una elimina los fallos que

se encuentran en la forma previa.

5.3 EL PROCESO DE NORMALIZACIÓN USANDO CLAVES PRIMARIAS

En la práctica, los diseñadores de bases de datos por lo general desarrollan

un modelo lógico inicial para una base de datos relacional al mapear un diagrama E-R u otro modelo conceptual a un conjunto de relaciones.

Identifican la clave primaria y posiblemente dependencias funcionales durante el proceso de diseño conceptual.

Para completar el proceso de diseño relacional, el diseñador comprueba cada relación, identifica un conjunto de dependencias funcionales por si

existe alguna otra que involucre las claves primarias y las normaliza más si es necesario. Un conjunto de reglas empíricas bien desarrolladas, o heuríst ica,

se usa para guiar el proceso de normalización con base en claves primarias.

5.3.1 PRIMERA FORMA NORMAL

Para describir la primera forma normal se usará un contraejemplo. Si supone

que a un estudiante se le permite tener más de una especialidad, y se intenta almacenar especialidades múlt iples en el mismo campo del registro

del estudiante, la tabla NewStu puede parecerse a la de la figura.

Este ejemplo viola la definición de la primera forma normal, que es la

siguiente:

Definición: Una relación está en la primera forma normal (1FN) si y sólo si

cada atributo t iene valor sencillo para cada tupla. Esto significa que cada atributo en cada fila, o cada “celda” de la tabla, contiene sólo un valor.

Una forma alternativa de describir la primera forma normal es decir que los

dominios de los atributos de la relación son atómicos. Esto significa que en el dominio no se permiten conjuntos, listas, campos repetidos o grupos. Los

valores en el dominio deben ser valores únicos que no se puedan

descomponer más. En la tabla de la figura se ve la violación de esta regla en los registros de los estudiantes S1006 y S1010, quienes ahora t ienen dos

Page 46: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

46 Universidad de la Amazonia - Tecnología en Informática y Sistemas

valores mencionados para major. De hecho, la mayor parte de la teoría

relacional se basa en relaciones en al menos primera forma normal, aunque

en la literatura aparecen relaciones que no están en la primera forma normal.

Si una relación no está ya en 1FN se le puede rescribir y crear una nueva relación que consista en la clave de la relación original, más el atributo

mult ivaluado. Por tanto, la tabla NewStu se rescribirá como en la siguiente figura y se creará una nueva tabla Majors (especialidades).

Note también que la clave de la nueva tabla no es stuId, pues cualquier estudiante con más de una especialidad aparece al menos dos veces. Se

necesita {stuId, major} para identificar de manera única un registro en dicha tabla. Otro método de normalización a primera forma normal en el caso

donde se conoce el número máximo de repeticiones que puede tener un

atributo es agregar nuevas columnas para el atributo.

Por ejemplo, si sabe que los estudiantes pueden tener cuando mucho dos

especialidades, NewStu se rescribiría con dos columnas para la especialidad, major1 y major2, como se muestra en la figura:

La desventaja de este enfoque es que usted debe conocer el máximo número de repeticiones, y que las consultas se vuelven más complejas. Un

método alternativo para convert ir en 1FN la tabla original es hacer al atributo mult ivaluado parte de la clave. Con este método, la nueva tabla

contendría filas múlt iples para estudiantes con múlt iples especialidades,

como se muestra en la figura:

Page 47: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 47

Esta solución puede hacer que surjan dificultades cuando el diseñador intente poner la relación en formas normales superiores.

5.3.2 DEPENDENCIA FUNCIONAL COMPLETA Y SEGUNDA FORMA NORMAL Para la relación que se muestra en las figuras:

Se t ienen las siguientes dependencias funcionales además de las t riviales:

{courseNo,stuId} → { lastName} {courseNo,stuId} → {facId}

{courseNo,stuId} → {schedule} {courseNo,stuId} → {room}

{courseNo,stuId} → {grade}

Dado que no hay otra clave candidata, se elige {courseNo,stuId} para la

clave primaria. De nuevo, al ignorar las dependencias funcionales triviales,

también se t ienen las dependencias funcionales:

courseNo → facId courseNo → schedule

courseNo → room

stuId → lastName

De modo que se encuentran atributos que son funcionalmente

dependientes en la combinación {courseNo,stuId}, pero también funcionalmente dependientes en un subconjunto de dicha combinación. Se

dice que tales atributos no son por completo dependientes funcionales de la combinación.

Page 48: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

48 Universidad de la Amazonia - Tecnología en Informática y Sistemas

Definición: En una relación R, el atributo A de R es completamente

dependiente funcional sobre un atributo o conjunt o de atributos X de R si A es funcionalmente dependiente sobre X pero no funcionalmente

dependiente sobre cualquier subconjunto propio de X.

En el ejemplo, aunque lastName es funcionalmente dependiente sobre

{courseNo,stuId}, también es funcionalmente dependiente sobre un subconjunto propio de dicha combinación, a saber stuId. De igual modo,

facId, schedule y room son funcionalmente dependientes sobre el

subconjunto propio courseNo. Note que grade es por completo dependiente funcional sobre la combinación {courseNo,stuId}.

Definición: Una relación está en segunda forma normal (2FN) si y sólo si está

en primera forma normal y todos los atributos no clave son completamente

dependientes funcionales sobre la clave. Claro está, si una relación es 1FN y la clave consiste en un solo atributo, la relación es automáticamente 2FN.

Tiene que preocuparse por 2FN sólo cuando la clave sea compuesta.

A part ir de la definición, se ve que la relación Class no está en segunda

forma pues, por ejemplo, lastName no es complet amente dependiente funcional sobre la clave {courseNo, stuId}. A pesar de que aquí existen otras

dependencias no completamente funcionales, una es suficiente para

mostrar que la relación no es 2FN.

Una relación 1FN que no es 2FN se puede transformar en un conjunto

equivalente de relaciones 2FN. La transformación se efectúa al realizar proyecciones sobre la relación original en tal forma que es posible regresar

al original al tomar la combinación de las proyecciones.

5.3.3 DEPENDENCIA TRANSITIVA Y TERCERA FORMA NORMAL

Aunque las relaciones de la segunda forma normal son mejores que las de

la primera forma normal, todavía pueden tener anomalías de

actualización, inserción y borrado. Considere la siguiente relación:

NewStudent (stuId, lastName, major, credits, status)

La figura muestra una instancia de esta relación. Aquí, la única clave candidata es stuId y se usará como la clave primaria. Todo otro atributo de

Page 49: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 49

la relación es funcionalmente dependiente de la clave, así que se t iene la

siguiente dependencia funcional, entre otras:

stuId → credits

Sin embargo, dado que el número de créditos determina el status, también se t iene:

credits → status

Por tanto, stuId de manera funcional determina status en dos formas, directa y transit ivamente, a través del atributo no clave status. Al usar t ransitividad

se t iene

(stuId → credits) ∧ (credits → status)⇒ (stuId → status)

Definición: Si A, B y C son atributos de la relación R, tales que A → B y B → C, entonces C es transit ivamente dependiente de A. Para la tercera forma

normal se quiere eliminar ciertas dependencias transitivas. Las

dependencias transit ivas causan anomalías de inserción, borrado y actualización.

Por ejemplo, en la tabla NewStudent de la figura:

No se puede insertar la información de que cualquier estudiante con 30

créditos tenga estatus Soph hasta que se tenga a tal estudiante, puesto que eso requeriría insertar un registro sin un stuId, lo que no está permit ido. Si se

borra el registro del único estudiante con cierto número de créditos, se

pierde la información acerca del estatus asociado con dichos créditos. Si t iene varios registros con el mismo valor credits y cambia el estatus asociado

con dicho valor (por ejemplo, hacer que 24 créditos ahora tenga el estatus

de Soph), de manera accidental puede fallar al actualizar todos los registros, lo que deja la base de datos en un estado inconsistente. Debido a estos

problemas, es deseable remover las dependencias transit ivas y crear un conjunto de relaciones que sat isfagan la siguiente definición.

Definición: Una relación está en tercera forma normal (3FN) si, siempre que exista una dependencia funcional no trivial X → A, entonces o X es una

Page 50: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

50 Universidad de la Amazonia - Tecnología en Informática y Sistemas

superclave o A es un miembro de alguna clave candidata. Se puede

recordar las característ icas de la tercera forma normal al decir que cada

atributo no clave debe depender de la clave, toda la clave y nada más que la clave.

6. LENGUAJES DE BASES DE DATOS

Page 51: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 51

Un sistema de bases de datos proporciona un lenguaje de definición de

datos para especificar el esquema de la base de datos y un lenguaje de

manipulación de datos para expresar las consultas a la base de datos y las modificaciones. En la práctica, los lenguajes de definición y manipulación

de datos no son dos lenguajes separados; en su lugar simplemente forman

partes de un único lenguaje de bases de datos, tal como SQL (por sus siglas en inglés Structured Query Language), ampliamente usado.

6.1 LENGUAJE DE DEFINICIÓN DE DATOS

Un esquema de base de datos se especifica mediante un conjunto de definiciones expresadas mediante un lenguaje especial llamado lenguaje

de definición de datos (LDD). Por ejemplo, la siguiente instrucción en el lenguaje SQL define la tabla cuenta:

create table cuenta (número-cuenta char(10),

saldo integer)

La ejecución de la instrucción LDD anterior crea la tabla cuenta. Además,

actualiza un conjunto especial de tablas denominado diccionario de datos o directorio de datos.

Un diccionario de datos contiene metadatos, es decir, datos acerca de los datos. El esquema de una tabla es un ejemplo de metadatos. Un sistema de

base de datos consulta el diccionario de datos antes de leer o modifi- car

los datos reales. Especificamos el almacenamiento y los métodos de acceso usados por el sistema de bases de datos por un conjunto de instrucciones en

un t ipo especial de LDD denominado lenguaje de almacenamiento y definición de datos. Estas instrucciones definen los detalles de

implementación de los esquemas de base de datos, que se ocultan

usualmente a los usuarios.

Los valores de datos almacenados en la base de datos deben sat isfacer ciertas restricciones de consistencia. Por ejemplo, supóngase que el saldo

de una cuenta no debe caer por debajo de 100 €. El LDD proporciona

facilidades para especificar tales restricciones. Los sistemas de bases de datos comprueban estas restricciones cada vez que se actualiza la base de

datos.

6.2 LENGUAJE DE MANIPULACIÓN DE DATOS La manipulación de datos es:

Page 52: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

52 Universidad de la Amazonia - Tecnología en Informática y Sistemas

- La recuperación de información almacenada en la base de datos.

- La inserción de información nueva en la base de datos.

- El borrado de información de la base de datos. - La modificación de información almacenada en la base de datos.

Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los usuarios acceder o manipular los datos organizados mediante el modelo

de datos apropiado. Hay dos t ipos básicamente:

- LMD procedimentales. Requieren que el usuario especifique qué datos se

necesitan y cómo obtener esos datos.

- LMD declarat ivos (también conocidos como LMD no procedimentales). Requieren que el usuario especifique qué datos se necesitan sin

especificar cómo obtener esos datos.

Los LMD declarat ivos son más fáciles de aprender y usar que los LMD

procedimentales. Sin embargo, como el usuario no especifica cómo

conseguir los datos, el sistema de bases de datos t iene que determinar un medio eficiente de acceder a los datos. El componente LMD del lenguaje

SQL es no procedimental.

Una consulta es una instrucción de solicitud para recuperar información. La

parte de un LMD que implica recuperación de información se llama lenguaje de consultas. Aunque técnicamente sea incorrecto, en la práctica

se usan los términos lenguaje de consultas y lenguaje de manipulación de

datos como sinónimos. Esta consulta en el lenguaje SQL encuentra el nombre del cliente cuyo identificador de cliente es 19.283.746:

select cliente.nombre-cliente

from cliente

where cliente.id-cliente = ‘19 283 746’

La consulta especifica que las filas de (from) la tabla cliente donde (where) el id-cliente es 19 283 746 se debe recuperar, y que se debe mostrar el

atributo nombrecliente de estas filas. Las consultas pueden involucrar

información de más de una tabla. Por ejemplo, la siguiente consulta encuentra el saldo de todas las cuentas pertenecientes al cliente cuyo

identificador de cliente es 19 283 746.

select cuenta.saldo

from impositor, cuenta where impositor.id-cliente = ‘19-283-746’ and impositor.número-cuenta =

cuenta.númerocuenta

Page 53: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 53

6.3 ACCESO A LA BASE DE DATOS DESDE PROGRAMAS DE APLICACIÓN

Los programas de aplicación son programas que se usan para interaccionar

con la base de datos. Los programas de aplicación se escriben usualmente en un lenguaje anfit rión, tal como Cobol, C, C++ o Java. En el sistema

bancario algunos ejemplos son programas que emiten los cheques de las nóminas, las cuentas de débito, las cuentas de crédito o las t ransferencias

de fondos entre cuentas. Para acceder a la base de datos, las instrucciones

LMD necesitan ser ejecutadas desde el lenguaje anfit rión. Hay dos maneras de hacerlo:

- Proporcionando una interfaz de programas de aplicación (conjunto de

procedimientos) que se pueden usar para enviar instrucciones LMD y LDD

a la base de datos, y recuperar los resultados. El estándar de conectividad abierta de bases de datos (ODBC, Open Dat a Base

Connectivity) definido por Microsoft para el uso con el lenguaje C es un

estándar de interfaz de programas de aplicación usado comúnmente. El estándar conectividad de Java con bases de datos (JDBC, Java Data

Base Connectivity) proporciona característ icas correspondientes para el lenguaje Java.

- Extendiendo la sintaxis del lenguaje anfit rión para incorporar llamadas LMD dentro del programa del lenguaje anfit rión. Usualmente, un carácter

especial precede a las llamadas LMD, y un preprocesador, denominado

el precompilador LMD, convierte las instrucciones LMD en llamadas normales a procedimientos en el lenguaje anfit rión. (Silberschatz, Korth, &

Sudarshan)

Para complementar…

Introducción a SQL

Manual

Page 54: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

54 Universidad de la Amazonia - Tecnología en Informática y Sistemas

7. REFERENCIAS

- Ricardo, C. (2009). Bases de dat os . McGraw-Hill .

- Silberschatz, A., Korth, H., & Sudarshan, S. FUNDAMENTOS DE BASES DE

DATOS. - Date, C. J. (2001). Int roducción a los sist emas de bases de datos

(Séptima ed.). México: Pearson Education.

Page 55: UNIVERSIDAD DE LA AMAZONIA FACULTAD DE INGENIERIA … Academicos... · 2016-11-01 · Al usar el código escaneado, el sistema de base de datos puede identificar el artículo exacto

Compilado Bases de datos 55