Está en la página 1de 48

Universidad Nacional de Trujillo Tecnología de la Programación II

Facultad de Ingeniería Bases de Datos Relacionales


Ingeniería de Sistemas V Ciclo

SISTEMA DE BASE DE DATOS

1. DEFINICIÓN:

Una base de datos es un “almacén” que nos permite guardar grandes cantidades
de información de forma organizada para que luego podamos encontrar y utilizar
fácilmente.

Una base de datos se puede definir como un conjunto de información relacionada


que se encuentra agrupada o estructurada.

Desde el punto de vista informático, la base de datos es un sistema formado por


un conjunto de datos almacenados en discos que permiten el acceso directo a
ellos y un conjunto de programas que manipulen ese conjunto de datos.

Se define una base de datos como una serie de datos organizados y relacionados
entre sí, los cuales son recolectados y explotados por los sistemas de información
de una empresa o negocio en particular.

2
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Ejemplo: una biblioteca

2. CARACTERÍSTICAS

Entre las principales características de los sistemas de base de datos podemos


mencionar:

 Independencia de los Datos. Es decir, que los datos no dependen del


programa y por tanto cualquier aplicación puede hacer uso de los datos.
 Reducción de la Redundancia. Llamamos redundancia a la existencia de
duplicación de los datos, al reducir ésta al máximo conseguimos un mayor
aprovechamiento del espacio y además evitamos que existan
inconsistencias entre los datos.
 Seguridad. Un SBD debe permitir que tengamos un control sobre la
seguridad de los datos.
 Podemos permitir añadir comentarios a las entradas de la base de datos.
 Distribución espacial de los datos: la independencia lógica y física facilita la
posibilidad de sistemas de bases de datos distribuidas. Los datos pueden
encontrarse en otra habitación, otro edificio e incluso otro país. El usuario
no tiene por qué preocuparse de la localización espacial de los datos a los
que accede.
 Respaldo y recuperación: se refiere a la capacidad de un sistema de base
de datos de recuperar su estado en un momento previo a la pérdida de
datos.
 Se visualiza normalmente como una tabla de una hoja de cálculo, en la que
los registros son las filas y las columnas son los campos, o como un
formulario.
 Permite realizar un listado de la base de datos.
 Manejo de múltiples vistas de los datos. Cada usuario visualiza lo que le 3
interesa en la base de datos, pudiendo acceder a subconjuntos de datos.
En el ejemplo de base de datos visto anteriormente, al departamento de
Compras posiblemente le interese visualizar la tabla Productos y en
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

ocasiones las de Facturas (para chequear bajas en el stock), pero no la que


contiene los datos de los Clientes.
 Acceso a través de lenguajes de programación estándar: se refiere a la
posibilidad ya mencionada de acceder a los datos de una base de datos
mediante lenguajes de programación ajenos al sistema de base de datos
propiamente dicho.

3. ¿POR QUÉ UTILIZAR UNA BASE DE DATOS?

Una base de datos proporciona a los usuarios el acceso a datos, que pueden
visualizar, ingresar o actualizar, en concordancia con los derechos de acceso que
se les hayan otorgado. Se convierte más útil a medida que la cantidad de datos
almacenados crece.

Una base de datos puede ser local, es decir que puede utilizarla sólo un usuario
en un equipo, o puede ser distribuida, es decir que la información se almacena en
equipos remotos y se puede acceder a ella a través de una red.

La principal ventaja de utilizar bases de datos es que múltiples usuarios pueden


acceder a ellas al mismo tiempo.

4. COMPONENTES DE UNA BASE DE DATOS:

 Hardware: constituido por dispositivo de almacenamiento como discos,


tambores, cintas, etc.
 Software: que es el DBMS o Sistema Administrador de Base de Datos.
 Datos: los cuales están almacenados de acuerdo a la estructura externa y
van a ser procesados para convertirse en información.

4
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

5. ELEMENTOS DE UNA BASE DE DATOS

En prácticamente cualquier base de datos actual existen cuatro elementos


esenciales: tablas, consultas, informes y formularios. Todos son indispensables y
necesarios:

Tablas: Es el elemento principal de la base de datos, ya que allí se registra la


información que se quiere gestionar. Está compuesta, como si se tratase de una
planilla de cálculo, por filas y columnas. Cada archivo de una base de datos puede
contener tantas tablas como se requiera.

5
A las filas de una tabla de una base de datos se les llama registros y a las
columnas, campos.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Consultas: Con las consultas podremos acceder a los datos almacenados,


ordenarlos y filtrarlos por diferentes criterios. La consulta, de esta manera, permite
establecer criterios de búsqueda para que Access seleccione, dentro de las tablas,
aquellos datos que se quieren conocer.

Informes – Se utilizan para que la información aparezca ordenada y bien


presentada en el momento de la impresión del documento.

6
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Formularios: La información dentro de la base de datos puede introducirse


directamente en las tablas, pero también a través de un formulario – lo que resulta
más cómodo y práctico –. Los formularios hacen que sea más fácil arrastrar los
datos.

7
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

6. ¿QUE ES UN DBMS O SGBD?

Las siglas  Data Base Management System o Sistema Gerenciador de


Bases de Datos

Es una colección de programas que permiten a los usuarios crear y


mantener la BD

Sirven de interfaz entre las bases de datos y las aplicaciones que la utilizan.
Se compone de un lenguaje de definición de datos, de un lenguaje de
manipulación de datos y de un lenguaje de consulta.

7. CICLO DE VIDA DE LAS OPERACIONES DE BASE DE DATOS

Etapas:

 Planificación del Proyecto


 Definición del Sistema
 Recolección y Análisis de los Requisitos
 Diseño de la Base de Datos
 Selección del SGDB / DBMS
 Diseño de la Aplicación
 Prototipo
 Implementación
 Conversión y Carga de datos
 Prueba
 Mantenimiento

Planificación del Proyecto:

Esta etapa con lleva la planificación de cómo se puede llevar acabo las
etapas de ciclo de vida de la manera más eficiente, hay tres componentes
principales:

 El trabajo que se va a realizar.


 Los recursos para llevarlo a cabo.
 El dinero para pagar todo ello.

Definición del Sistema


8
En esta etapa se especifica el ámbito y los índices de la aplicación de la
Base de Datos así como con que otros sistemas interactúan. También hay
que determinar quiénes son los usuarios y las áreas de la aplicación.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Recolección y Análisis de los Requisitos:

En esta etapa se recoge y analiza los requerimientos de los usuarios y de


las áreas de aplicación. Esta información se la puede recoger de varias
formas:

 Entrevistando el personal de la empresa concretamente aquellos que


son considerando expertos en la área que se dé.
 Observando el funcionamiento de la empresa.
 Examinando documentos sobre todo aquellos que se utilizan para
recoger o visualizar la información.
 Utilizando cuestionario para recoger información de grandes grupos
de usuarios.
 Utilizan la experiencia adquirida en el Diseño de Sistemas similares.

Esta etapa tiene como resultado en conjunto de documentos con las


especificaciones de requisitos de los usuarios en donde se describen las
operaciones que se realizan en la empresa desde distintos puntos de vista.

Diseño de Base de datos:

En esta etapa se crea un esquema conceptual de la base de datos. Se


desarrollan las especificaciones hasta el punto en que puede comenzar la
implementación. Durante esta etapa se crean modelos detallados de las
vistas de usuario y sobre todo las relaciones entre cada elemento del
sistema, documentando los derechos de uso y manipulación de los
diferentes grupos de usuarios.

El diseño consta, como se vio anteriormente, de tres fases: el diseño global


o conceptual, el diseño lógico y el modelo físico.

La primera fase consiste en la producción de un esquema conceptual que


es independiente de todas las consideraciones físicas. Este modelo se
refina después en un esquema lógico eliminando las construcciones que no
se puede representar en el modelo de Base de Datos escogido (relacional,
orientado a objeto, etc.). En la tercera fase el esquema lógico que traduce
un esquema físico para el sistema gestor de Base de Datos escogido. La
fase de diseño físico considera las estructuras de almacenamiento y los
métodos de acceso necesarios para proporcionar un acceso eficiente a la
Base de Datos en memoria secundaria.
9
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Selección del SGBD / DBMS:

Si no se dispone de un Sistema Gestor de Base de Datos o que se


encuentre obsoleto se debe escoger un SGBD que sea adecuado para el
sistema de información. Esta elección se debe hacer en cualquier momento
antes del diseño lógico.

Diseño de aplicación:

En esta etapa de diseña los programas de aplicación que usarán y aplicará


la Base de Datos, esta etapa el diseño de la Base de Datos son paralelos
en la mayor parte de los casos no se puede finalizar el diseño de las
aplicaciones hasta que se ha terminado el diseño de Base de Datos. Por
otra lado la Base de Datos exige para dar soporte a las aplicaciones por lo
que ahora una retroalimentación desde el diseño de las aplicaciones al
diseño de la Base de Datos. En esta etapa hay que asegurarse de que toda
la funcionalidad especificada en los requisitos de usuarios se encuentra en
el diseño de la aplicación.

Prototipo:

Esta etapa es opcional es para construir prototipo de la aplicación que


permiten a los diseñadores y al usuario probar el sistema, un prototipo es
un modelo de trabajo de las aplicaciones del sistema. El prototipo no tiene
toda la funcionalidad del sistema final pero es suficiente para que los
usuarios puedan usar el sistema e identificar qué aspectos están bien,
cuales no son adecuados además de poder sugerir mejora ò la inclusión de
nuevos elementos.

Implementación:

En esta etapa se crean las definiciones de la Base de Datos a nivel


conceptual externo ò interno, así como los programas de aplicación la
implementación de la Base de Datos se realiza mediante las sentencias
SQL, estas sentencias se encargan de crear el sistema d la base, los
ficheros donde se almacenarán los datos y las vistas de los usuarios.

Los programas de aplicación se implementan utilizando lenguaje de tercera


y cuarta generación, partes de estas aplicaciones son transacciones de la
Base de Datos que se implementan también mediante lenguaje SQL.
10
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Conversión y Carga de datos:

Esta etapa es necesaria cuando se está reemplazando un sistema antiguo


por uno nuevo. Los datos se cargan desde el sistema viejo al nuevo
directamente ò si es necesario se convierte al formato que requiera el
nuevo SGBD y luego se carga esta etapa se la suele llamar "Migración".

Prueba:

En esta etapa se prueba y válida el sistema con los requisitos especificados


por los usuarios. Para ello se debe diseñar una materia de test con datos
reales que se deben llevar acabo de manera metódica y rigurosa. Si la fase
de prueba se lleva correctamente descubrirá los errores en los programas
de aplicación y en la estructura de la Base de Datos.

Mantenimiento:

Una vez que el sistema está completamente probado o implementado se


pone en marcha. El sistema está ahora en la fase de mantenimiento en la
que se lleva acabo los siguientes tareas: monitoreo de las prestaciones del
sistema y mantenimiento, y actualización del sistema.

En esta última etapa todos los usuarios del sistema acceden a la base de
datos y deben asegurarse el correcto funcionamiento de la misma, que sus
derechos son los adecuados, teniendo a su disposición cuanta información
necesiten. También deberán asegurarse que el acceso a los datos es
cómodo, práctico, seguro y que se han eliminado, en la medida de lo
posible, las posibilidades de error.

BASE DE DATOS RELACIONALES

En la actualidad, los sistemas de bases de datos más populares son las bases de
datos relacionales. Un lenguaje llamado SQL es el lenguaje estándar internacional
que se utiliza casi universalmente con las bases de datos relacionales para
realizar consultas (es decir, para solicitar información que satisfaga ciertos
criterios) y para manipular datos.

Una base de datos relacional almacena los datos en tablas.

- filas, y las filas, de columnas en las que


se almacenan los valores. 11

- A las filas también se le conoce con el nombre de registros o tuplas. A las


columnas también se les llama campos
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

- Es posible acceder a la información contenida en dos o más tablas


simultáneamente.

1) CARACTERÍSTICAS

 Una base de datos relacional se compone de varias tablas o relaciones.


 No pueden existir dos tablas con el mismo nombre ni registro.
 Cada tabla es a su vez un conjunto de registros (filas y columnas).
 La relación entre una tabla padre y un hijo se lleva a cabo por medio de las
claves primarias y ajenas (o foráneas).
 Las claves primarias son la clave principal de un registro dentro de una
tabla y éstas deben cumplir con la integridad de datos.
 Las claves ajenas se colocan en la tabla hija, contienen el mismo valor que
la clave primaria del registro padre; por medio de éstas se hacen las
relaciones

2) TERMINOLOGÍA RELACIONAL

 Tupla. Cada fila de la tabla (cada ejemplar que la tabla representa)


 Atributo. Cada columna de la tabla
 Grado. Número de atributos de la tabla
 Cardinalidad. Número de tuplas de una tabla
 Dominio Conjunto válido de valores representables por un atributo.

3) ELEMENTOS DE UNA BASE DE DATOS RELACIONAL

- TABLAS: Son estructuras encargadas de alojar la información de la base


de datos.

- CAMPOS: Son cada una de las columnas de una tabla, cada campo
almacena un dato en concreto.

- REGISTROS: Cada una de las filas de la tabla que agrupa toda la


información de un mismo elemento.

- RELACIONES: Son los vínculos establecidos entre las diferentes tablas


que permiten trabajar con los datos de todas ellas, como si estuvieran en
una sola.
12
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

o Relaciones base y derivadas: A través de las relaciones se puede


acceder a la información de una base de datos relacional. Las
Relaciones pueden ser:
Relaciones Base, son relaciones que almacenan datos cuya
implementación es “Una Tabla”.
Relaciones Derivadas, son relaciones que no almacenan
datos, pero se calculan al aplicar operaciones relacionales,
muestran la información de varias relaciones. Su
implementación es llamada “Vista” o “Consulta”.

- CONSULTA: Mediante el uso de consulta se puede extraer información


concreta aunque la misma provenga de varias tablas.
- CLAVES: Es un campo cuyo contenido no puede estar duplicado en la
misma tabla y permite identificar a cada registro de manera univoca.

o Clave única

Cada tabla puede tener uno o más campos cuya información es


única en cada tabla, es decir, no pueden existir dos o más registros
diferentes cuyos valores en dichos campos sean idénticos. Este
conjunto de campos se llama clave única. Pueden existir varias
claves únicas en una determinada tabla, y a cada una de éstas suele
llamársele candidata a clave primaria.

o Clave primaria

Una clave primaria es una clave única elegida entre todas las
candidatas que define unívocamente a todos los demás atributos de
la tabla, para especificar los datos que serán relacionados con las
demás tablas. La forma de hacer esto es por medio de claves
foráneas.

o Clave foránea

Una clave foránea es una referencia a una clave en otra tabla,


determina la relación existente en dos tablas. Las claves foráneas no
necesitan ser claves únicas en la tabla donde están y sí a donde
están referenciadas.
13
Por ejemplo, el código de departamento puede ser una clave foránea
en la tabla de empleados. Se permite que haya varios empleados en
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

un mismo departamento, pero habrá uno y sólo un departamento por


cada clave distinta de departamento en la tabla de empleados.

o Clave índice

Las claves índices surgen con la necesidad de tener un acceso más


rápido a los datos. Los índices pueden ser creados con cualquier
combinación de campos de una tabla. Las consultas que filtran
registros por medio de estos campos, pueden encontrar los registros
de forma no secuencial usando la clave índice.

- FORMULARIOS: Son ventanas que permiten trabajar de manera cómoda


sobre el contenido de varias tareas simultáneamente.

- INFORMES: De la base de datos se adquiere la información y se imprime,


o a través de un pantallazo.

- RESTRICCIONES: Las restricciones proveen un método de implementar


reglas en la base de datos. Son restricciones en general limitan la
estructura de la información almacenada en la base de datos,
suministrando por tanto información sobre las características que respetan
los datos guardados. Las restricciones pueden ser determinadas por los
usuarios o pueden estar definidas dentro de la misma base de datos.
Algunas otras restricciones las puede definir el usuario, por ejemplo, usar
un campo con valores enteros entre 1 y 10.
- DOMINIOS: Es un conjunto de posibles valores para cierto atributo. Como
un dominio restringe los valores del atributo, puede ser considerado como
una restricción. Matemáticamente, atribuir un dominio a un atributo significa
"todos los valores de este atributo deben ser elementos del conjunto
especificado". Algunos ejemplos de dominios son: enteros y cadenas de
texto, fecha, etc.

- MODEDO ENTIDAD RELACION:

14
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Es una herramienta para el modelado de datos de un sistema de


información. Estos modelos expresan entidades relevantes para un sistema
de información así como sus interrelaciones y propiedades.

- INTEGRIDAD REFERENCIAL: La integridad referencial es una propiedad


deseable en las bases de datos. Gracias a la integridad referencial se
garantiza que una entidad (fila o registro) siempre se relaciona con otras
entidades válidas, es decir, que existen en la base de datos. Implica que en
todo momento dichos datos sean correctos, sin repeticiones innecesarias,
datos perdidos y relaciones mal resueltas.

- PROCEDIMIENTOS ALMACENADOS: Un procedimiento almacenado es


código ejecutable que se asocia y se almacena con la base de datos. Los
procedimientos almacenados usualmente recogen y personalizan
operaciones comunes, como insertar un registro dentro de una tabla,
recopilar información estadística, o encapsular cálculos complejos. Son
frecuentemente usados por un API por seguridad o simplicidad.

Los procedimientos almacenados no son parte del modelo relacional, pero


todas las implementaciones comerciales los incluyen.

15
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

 El nombre de la tabla es Empleado, y su principal propósito es almacenar


los atributos de un empleado. Esta tabla consiste de seis filas.
 La columna Número de cada fila en esta tabla es la clave principal para la
tabla. Una clave principal es una columna (o grupo de columnas) en una
tabla que tiene un valor único, el cual no puede duplicarse en las demás
filas. Esto garantiza que cada fila puede Identificarse por su clave principal.
Algunos ejemplos de columnas con clave primaria son el número de DNI, el
número del Seguro Social, un código de alumno, un número de pieza en un
sistema de inventario, etc.

16
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Aquí vemos las relaciones que hay entre las tablas y podemos identificar las filas y
columnas por cada tabla además de su clave primaria.

Por ejemplo, para la tabla Pacientes se tiene que pensar que campo no se repite.
Podría ser el campo nombre, pero el nombre no es algo único. Los campos
nombre y apellidos juntos también se podrían repetir en algún caso. De modo que
lo más indicado es crear un código único para cada paciente

Este tipo de restricciones podemos dividirlas en:

 Restricciones de atributo.
 Restricciones de tupla.
 Restricciones de tabla.
 Restricciones de base de datos.
 Restricciones por usuario

 Restricciones de atributo

Hemos hablado del concepto de dominio, que se corresponde con los


valores que puede tornar un atributo de una tabla. Normalmente, los
dominios de que se dispone en cualquier S.G.B.D. son dominios muy
generales, y que abarcan un conjunto de valores muy amplio que en la
mayoría de los casos puede satisfacer las necesidades del administrador.
No obstante, hay situaciones en las que se desea restringir aún más el
conjunto de estos valores. P.ej., si en una tabla de Albaranes deseamos
guardar un atributo Descuento que contendrá el porcentaje de descuento a
aplicar, está claro que Descuento no puede poseer un valor superior al
100%. Si el S.G.B.D. sólo permite decir si un atributo posee un valor entero
o decimal, ¿cómo indicar esta restricción sobre el campo Descuento?.

La solución viene dada a través de las restricciones de atributo. Una


restricción de atributo es un predicado en el que sólo pueden intervenir
constantes y, por supuesto, dicho atributo. El De esta forma, la restricción
del ejemplo anterior, quedaría:
Descuento < 100

Por supuesto, podemos emplear predicadores más complejos. Si tenemos


una tabla de Clientes, y deseamos saber su sexo para poder mandarles
cartas personalizadas, emplearemos un atributo Sexo cuyo tipo será Texto
de 1 carácter. Está claro que los únicos valores que vamos a permitir serán
«V» (Varón) y «M» (Mujer). Esto puede conseguirse con el siguiente 17
predicado:
Sexo = "V" OR Sexo = "M"
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Hay algunos S.G.B.D. en este tipo de restricciones puede indicarse de una


forma más intuitiva Dado que el único atributo que puede intervenir es aquél
al que se refiere la propia restricción, podemos quitarlo de la expresión,
dándolo por implícito:
= "V" OR = "M"

 Restricciones de Tupla

 En el caso anterior, los valores que podía tomar un determinado


atributo, dependen exclusivamente de su propia condición, o sea,
con independencia del resto de los atributos de la tupla a que
pertenece. No siempre ocurre así, sino que a veces, los valores de
ciertos atributos de una tupla deben poseer valores consistentes
entre sí, y no de forma independiente. P.ej., si tenemos una tabla de
Clientes y queremos almacenar datos de cada uno de ellos para
hacerles la nómina, podemos incluir entre otros, los atributos de
Número de Hijos y de Retención IRPF. Está claro que existe una
relación entre ambos valores, de manera que si alguien no tiene
hijos, su retención de IRPF no puede ser menor que un porcentaje
mínimo establecido por ley, pongamos el 10%.

No podemos considerar esta restricción como una restricción de


atributo, ya que existe una dualidad a la hora de considerar a que
atributo pertenece la restricción. Podemos verlo como una restricción
de Retención IRPF que no puede ser menor de 10 si Número de
hijos es igual a 0.

Pero, ¿por qué no verlo como una restricción de Número de Hijos?


Número de Hijos no puede ser 0 si Retención IRPF es menor de 10.

Esta dualidad, producida por una restricción mutua entre dos o más
atributos de una misma tupla es lo que da lugar a una restricción de
tupla.

El predicado que soluciona este problema sería:

Número de hijos = 0 IMPLIES Retención IRPF > 10

 Restricciones de Tabla

 En otras situaciones, no es el valor de un atributo el que depende de 18


los de los demás de la tupla a que pertenece, sino que es la tabla en
si la que debe preservar unas propiedades globales para que la
información que posee sea consistente.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

 Por ejemplo, supongamos que estamos gestionando las prácticas


que los alumnos de Hostelería deben realizar en distintos hoteles y
restaurantes de la costa. Estas prácticas vienen determinadas
mediante una serie de
tumos que cada
alumno tiene asignado
en distintas empresas.
Para conseguir una
enseñanza de calidad
deseamos que cada
alumno efectué
practicas por al menos
50 horas, y por
supuesto, no debe
darse la circunstancia
de que ningún alumno
tenga turnos coincidentes, esto es, en lo que coincidan fecha y hora
de la practica en distintos lugres.

La figura siguiente representa una situación que no queremos que


ocurra. En esta tabla hemos representado tan sólo los datos
referentes a dos de nuestros alumnos. Uno de ellos, Juan Yáñez Pi
tiene asignadas 86 horas de prácticas, mientras que Ana Bernal
Gracia tan sólo tiene 44 horas asignadas, incumpliendo la restricción
que queremos imponer.

Pero aún hay más, las tupla marcadas con una flecha entran en
contradicción, pues nos indican que de 12:00 a 18:00 Juan Yáñez Pi
debe realizar prácticas en dos sitios distintos: el restaurante «La
Plata», y el restaurante «Baco», lo cual es igualmente inadmisible.

Con objeto de evitar este tipo de situaciones, aparecen las


restricciones de tabla. Una restricción de tabla es un predicado que
engloba todas o parte de las tuplas de una misma tabla. Su valor de
VERDAD o FALSEDAD no puede ser encontrado si no es con el
examen de dichas tuplas.

La forma de expresar este tipo de restricciones implica la utilización


de expresiones y consultas que, por ahora, quedan fuera de nuestra
visión. Baste decir que será necesario utilizar toda una batería de 19
métodos de consulta que veremos más adelante en el apartado de
SQL.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

 Restricciones de base de datos.

 Las restricciones de base de datos son a las restricciones de tablas,


lo que las de tupla son a las de atributo. Si en una restricción de
atributo sólo podía
intervenir un atributo, y en
las de tupla podían
intervenir varios (siempre
de la misma tupla), las
restricciones de base de
datos son iguales que las
de tabla con la salvedad
de que pueden intervenir
más de una tabla (de la
misma base de datos,
evidentemente).

Supongamos p .ej. que trabajamos en una agencia de viajes en la


que ofertamos paquetes de viajes; de cada paquete de viajes el
número de plazas es limitado. Así, podemos almacenar información
de los paquetes disponibles en una tabla como la de la figura.

A medida que vamos


vendiendo los paquetes,
iremos guardando en
otra tabla el cliente que
ha comprado el paquete,
y el nombre del paquete
comprado. De manera
que tras algún tiempo,
podemos tener la
siguiente tabla de
ventas.

A poco que observemos esta tabla, vemos que hemos vendido


cuatro paquetes de Alpinismo, cuando el número de plazas
disponibles es tan solo de tres. Estamos infringiendo una restricción
de la base de datos, y lo que es para darnos cuenta de ello hemos
tenido que inspeccionar los datos de más de una tabla. 20

Para poder detectar automáticamente a través del S.G.B.D. este tipo


de situaciones hemos de indicar una restricción de base de datos.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Al igual que ocurría en el caso anterior, el predicado correspondiente


a esta restricción es complejo de especificar, y su estudio está
supeditado al conocimiento de SQL, que veremos más adelante.

 Restricciones de usuario

 Estas restricciones son muy diferentes a las anteriores, y suelen


estar referidas a la inserción de datos por parte de un usuario
concreto.

Como veremos más adelante, cuando se crea una gran base de


datos, su manejo y gestión no suele realizarlo una sola persona, sino
que sobre ella trabajan muchas personas a la vez, cada una de las
cuales suele efectuar’ unas operaciones concretas: el recepcionista
suele dar entrada a los clientes (check in), les hace la factura cuando
se marchan (check out), etc, mientras que el contable se centra
exclusivamente en los asientos contables y no necesita saber nada
de los clientes.

De esta forma, podemos hacer incluso que el S.G.B.D. sepa QUIÉN


está manejando la base de datos en cada momento, mediante un
sistema en el que antes de acceder a la base de datos, el S.GB.D
solicita una identificación al usuario. En función del perfil que tenga
asignado cada usuario (privilegios), podernos hacer que los datos
que introduzca en la base de datos estén restringidos en todos los
sentidos.

Por ejemplo, podernos permitir que cualquier persona haga un


apunte en la factura de un cliente de un hotel. Sin embargo, si este
apunte supera las 100000 ptas, sólo puede hacerse con el
consentimiento de algún usuario especial como pueda ser p .ej. el
gerente. De esta forma, el valor de un apunte en una factura está
condicionado a quien es el usuario que inserta dicho apunte.

Este tipo de reglas suele ser muy complejo de manejar a través del
S.G.B.D., y suelen sustituirse mediante los llamados permisos de
usuario.

21
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

4) ESTRUCTURA

- La base de datos se organiza en dos marcadas secciones; el esquema y


los datos (o instancia).

El esquema es la definición de la estructura de la base de datos y


principalmente almacena los siguientes datos:

 El nombre de cada tabla


 El nombre de cada columna
 El tipo de dato de cada columna
 La tabla a la que pertenece cada columna

Las bases de datos relacionales pasan por un proceso al que se le conoce


como normalización, el resultado de dicho proceso es un esquema que
permite que la base de datos sea usada de manera óptima.

Los datos o instancia es el contenido de la base de datos en un momento


dado. Es en sí, el contenido de todos los registros.

5) MANIPULACIÓN DE LA INFORMACIÓN

El lenguaje más común para construir las consultas a bases de datos relacionales
es SQL (Structured Query Language), un estándar implementado por los
principales motores o sistemas de gestión de bases de datos relacionales
integrados.

El lenguaje SQL es el más universal en los sistemas de base de datos. Este


lenguaje nos permite realizar consultas a nuestras bases de datos para mostrar,
insertar, actualizar y borrar datos.

6) MANEJADORES DE BASE DE DATOS RELACIONALES

Existe software exclusivamente dedicado a tratar con bases de datos relacionales.


Este software se conoce como SGBD (Sistema de Gestión de Base de Datos
relacional) o RDBMS (del inglés Relational Database Management System).

Entre los gestores o manejadores actuales más populares encontramos: MySQL,


PostgreSQL, Oracle, DB2, INFORMIX, Interbase, FireBird, Sybase y Microsoft
SQL Server.
22
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

7) VENTAJAS Y DESVENTAJAS DE LAS BASES DE DATOS RELACIONALES

Ventajas

-Independencia de los datos y los programas y procesos. Esto permite modificar


los datos sin modificar el código de las aplicaciones.

-Menor redundancia. No hace falta tanta repetición de datos. Aunque, sólo los
buenos diseños de datos tienen poca redundancia.

-Integridad de los datos. Mayor dificultad de perder los datos o de realizar


incoherencias con ellos.

-Mayor seguridad en los datos. Al limitar el acceso a ciertos usuarios.

-Datos más documentados. Gracias a los metadatos que permiten describir la


información de la base de datos.

-Acceso a los datos más eficiente. La organización de los datos produce un


resultado más óptimo en rendimiento.

-Menor espacio de almacenamiento. Gracias a una mejor estructuración de los


datos.

-Provee herramientas que garantizan la duplicidad de registros.

-Garantiza la integridad referencial, así, al eliminar un registro elimina todos los


registros relacionados dependientes.

Desventajas:

- Una de las desventajas de las bases de datos relacionales es la costosa creación


y mantenimiento del sistema. Con el fin de establecer una base de
datos relacional, por lo general, se necesita comprar un software especial. Sin
embargo, lleva tiempo ingresar toda la información y configurar el programa. Si la
empresa es grande y se necesita una base de datos más robusta, tendrás que
contratar a un programador para crear una base de datos relacional utilizando el
lenguaje de consulta estructurado (SQL, por sus siglas en inglés) y a un
administrador de base de datos para el mantenimiento una vez instalada.
Independientemente de los datos que utilices, tendrás que, o bien importarlos de
otros archivos de datos, como texto u hojas de cálculo de Excel, o introducirlos 23
manualmente.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

-Requiere personal cualificado. Debido a la dificultad de manejo de este tipo de


sistemas.

- Abundancia de información. Los avances en la complejidad de la información


causan otro inconveniente en las bases de datos relacionales. Las bases de
datos relacionales se realizan para organizar los datos por características
comunes. Las imágenes complejas, números, diseños y productos multimedia
desafían una fácil categorización liderando el camino para un nuevo tipo
de base de datos relacional de objetos llamada sistemas de gestión de bases
de datos. Estos sistemas están diseñados para manejar aplicaciones más
complejas y tienen la capacidad de ser escalables.

-Ausencia de estándares reales. Lo cual significa una excesiva dependencia


hacia los sistemas comerciales del mercado. Aunque hay una buena parte de
esta tecnología aceptada como estándar de hecho.

- Algunas bases de datos relacionales tienen límites en cuanto a la longitud de


los campos. Al diseñar la base de datos, debes especificar la cantidad de datos
que pueden caber en un campo. Algunos de los nombres o las consultas de
búsqueda son más cortos que el actual, y esto puede conducir a la pérdida de
datos.

-Los sistemas complejos de bases de datos relacionales pueden conducir a que


estas bases de datos se conviertan en "islas de información", donde la
información no puede ser compartida fácilmente de un sistema a otro. A
menudo, las grandes empresas o instituciones, se encuentran con que las
bases de datos relacionales en divisiones separadas crecieron de manera
diferente. Por ejemplo, tal vez el departamento de facturación del hospital
utiliza una base de datos, mientras que el departamento de personal del
hospital utiliza una base de datos diferente. Lograr que las bases de datos se
"comuniquen" entre sí puede ser largo, costoso y abrumador.

8) DISEÑO DE BASE DE DATOS RELACIONAL

El diseño de una base de datos relacional consiste básicamente en generar un


conjunto de esquemas de relaciones que permitan almacenar la información con
un mínimo de redundancia, pero que a la vez facilite la recuperación de la
información almacenada en ella.

CARACTERISTICAS DEL DISEÑO RELACIONAL.


24
El modelo relacional para la gestión de una base de datos es un modelo de
datos basado en la lógica de predicados y en la teoría de conjuntos. Es el
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

modelo más utilizado en la actualidad para modelar problemas reales y


administrar datos dinámicamente.

En este modelo todos los datos son almacenados en relaciones, y como cada
relación es un conjunto de datos, el orden en el que éstos se almacenen no
tiene relevancia (a diferencia de otros modelos como el jerárquico y el de red).

Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar


por un usuario no experto. La información puede ser recuperada o almacenada
por medio de consultas que ofrecen una amplia flexibilidad y poder para
administrar la información.

Para manipular la información utilizamos un lenguaje relacional, actualmente se


cuenta con dos lenguajes formales el Álgebra relacional y el Cálculo relacional.
El Álgebra relacional permite describir la forma de realizar una consulta, en
cambio, el Cálculo relacional sólo indica lo que se desea devolver.

Esquema: Un esquema es la definición de una estructura (generalmente


relaciones o tablas de una base de datos), es decir, determina la identidad de la
relación y que tipo de información podrá ser almacenada dentro de ella.

Instancias: Una instancia de manera formal es la aplicación de un esquema a


un conjunto finito de datos. En palabras no tan técnicas, se puede definir como
el contenido de una tabla en un momento dado, pero también es válido
referirnos a una instancia cuando trabajamos o mostramos únicamente un
subconjunto de la información contenida en una relación o tabla.

DOMINIOS ATOMICOS Y LA FORMA NORMAL.

Dominio Atómico.
El dominio se refiere a todos los valores que se desprenden de un atributo o
que son legales o permitidos en la base de datos, y atómico significa indivisible,
es decir, cada atributo debe contener un único valor del dominio. Además, cada
valor debe tener un nombre único, ya que la creación de tablas implica la
definición de columnas de un tipo concreto y con un nombre único. Tampoco
pueden existir tuplas idénticas. Por ejemplo si un registro es modificado más de
una vez el mismo día, no deberá crearse un registro nuevo cada vez.

Formas Normales
Las formas normales son aplicadas a las tablas de una base de datos. Decir
que una base de datos está en la forma normal N es decir que todas sus tablas 25
están en la forma normal N. En general, las primeras tres formas normales son
suficientes para cubrir las necesidades de las bases de datos. El creador de
estas tres primeras formas normales o reglas de creación de una base de datos
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

fue Edgar F. Codd. Dichas formas normales se representan en un orden similar


al que se muestra en la siguiente figura.

 Primera Forma Normal (1FN)


Aplicar la primera forma normal es muy simple, bastara con dividir cada
columna no atómica en tantas columnas atómicas como sea necesario. Por
ejemplo, si tenemos una relación que contiene la información de una
agenda de amigos con este esquema: Agenda (Nombre, Email)
El nombre normalmente, estará compuesto por el tratamiento (señor,
señora, don, doña, señorita, etc), el nombre en si de la persona y los
apellidos. Podríamos en este caso, considerar el nombre como un dato
atómico, pero puede interesarnos separar algunas de las partes que lo
componen, por lo que podría quedar de la siguiente forma:

Agenda (Nombre_Tratamiento, Nombre_Pila, Nombre_Apellidos, Email).

Por tanto, tenemos que: Una tabla está en primera forma normal si:

o Todos los atributos son atómicos.


o La tabla contiene una clave primaria.
o La clave primaria no contiene atributos nulos.
o No existe variación en el número de columnas.
o Los campos no clave deben de identificarse por la clave principal
(Dependencia Funcional).
o Una tupla no puede tener múltiples valores de cada columna.
o Esta forma normal elimina los valores repetidos dentro de una BD.

Por lo general la mayoría de las relaciones cumplen con estas


características, así que podemos decir que la mayoría de las relaciones se 26
encuentran en la primera forma normal. Para ejemplificar como se
representan gráficamente las relaciones en primera forma normal
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

consideremos la relación alumno cursa materia cuyo diagrama E-R es el


siguiente:

Como esta relación maneja valores atómicos, es decir un solo valor por
cada uno de los campos que conforman a los atributos de las entidades, ya
se encuentra en primera forma normal, gráficamente así representamos a
las relaciones en 1FN.

DEPENDENCIAS FUNCIONALES.
Una dependencia funcional es una relación entre atributos de una
misma relación (tupla). Es decir, si X e Y son atributos de la relación
R, se dice que Y es funcionalmente dependiente de X (se denota por
XY) si cada valor de X tiene asociado un solo valor de Y (X e Y
pueden constar de uno o varios atributos). Cada dependencia
funcional es una clase especial de regla de integridad y representa
una relación de uno a muchos.

Dependencia funcional mutua: ab y ba o lo que es lo mismo


ab.
Nótese que el concepto de dependencia funcional no depende de la
extensión concreta (contenido) que en un momento determinado
tenga la tabla sino cualquier posible extensión que pudiera tener. Los
atributos a y b pueden ser simples o compuestos (formados por la
agregación de varios atributos).
27
 Reflexividad. A partir de cualquier atributo o conjunto de
atributos siempre puede deducirse el mismo.
 Dependencia Trivial: xx.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

 Aumentatividad. Si XY entonces X+ZY. Así se puede


aumentar trivialmente el antecedente de una dependencia.
Ejemplo: si con el DNI se determina el nombre de una
persona, entonces con el DNI más la dirección también se
determina el nombre.
 Proyectividad. Si XY+Z entonces XY. ejemplo: si a partir
del DNI es posible deducir el nombre y la dirección de una
persona, entonces con el DNI es posible determinar el
nombre.
 Aditividad. Si XY y ZW entonces X+ZY+W. Ejemplo: si
con el DNI se determina el nombre y con la dirección se
determina el teléfono de una persona, entonces con el DNI y
la dirección se puede determinar el nombre y el teléfono.
 Transitividad o Enlace de Dependencias Funcionales.
Si XY e YZ entonces XZ. Ejemplo: si con el DNI puede
determinarse el código postal de residencia de la persona, y
con este código puede determinarse el nombre de la
provincia, entonces con el DNI puede determinarse el nombre
de la provincia. Este es el mecanismo básico de
funcionamiento del enlace entre tablas a partir de claves
ajenas.

 SEGUNDA FORMA NORMAL (2FN).

Para definir formalmente la segunda forma normal requerimos saber que es


una dependencia funcional: Consiste en edificar que atributos dependen de
otro(s) atributo(s).

Definición formal: Una relación R está en 2FN si y solo si está en 1FN y los
atributos no primos dependen funcionalmente de la llave primaria.
Una relación se encuentra en segunda forma normal, cuando cumple con
las reglas de la primera forma normal y todos sus atributos que no son
claves (llaves) dependen por completo de la clave. De acuerdo con esta
definición, cada tabla que tiene un atributo único como clave, está en 28
segunda forma normal. La segunda forma normal se representa por
dependencias funcionales como:
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Nótese que las llaves primarias están representadas con doble cuadro, las
flechas nos indican que de estos atributos se puede referenciar a los otros
atributos que dependen funcionalmente de la llave primaria.

 TERCERA FORMA NORMAL (3FN).

Para definir formalmente la 3FN necesitamos definir dependencia transitiva:


En una afinidad (tabla bidimensional) que tiene por lo menos 3 atributos (A,
B, C) en donde A determina a B, B determina a C pero no determina a A.

Definición formal: Una relación R está en 3FN si y solo si está en 2FN y


todos sus atributos no primos dependen no transitivamente de la llave
primaria.

Consiste en eliminar la dependencia transitiva que queda en una segunda


forma normal, en pocas palabras una relación está en tercera forma normal
si está en segunda forma normal y no existen dependencias transitivas
entre los atributos, nos referimos a dependencias transitivas cuando existe
más de una forma de llegar a referencias a un atributo de una relación.

Por ejemplo, consideremos el siguiente caso:

29
Tenemos la relación alumno-cursa-materia manejada anteriormente, pero
ahora consideramos al elemento maestro, gráficamente lo podemos
representar de la siguiente manera:
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Podemos darnos cuenta que se encuentra graficado en segunda forma


normal, es decir que todos los atributos llave están indicados en doble
cuadro indicando los atributos que dependen de dichas llaves, sin embargo
en la llave Necono tiene como dependientes a 3 atributos en el cual el
nombre puede ser referenciado por dos atributos: Necono y RFC (Existe
dependencia transitiva), podemos solucionar esto aplicando la tercera
forma normal que consiste en eliminar estas dependencias separando los
atributos, entonces tenemos:

 FORMA NORMAL BOYCE-COD.

Determinante: Uno o más atributos que, de manera funcional, determinan 30


otro atributo o atributos. En la dependencia funcional (A,B) C, (A,B) son
los determinantes.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Definición formal: Una relación R está en FNBC si y solo si cada


determinante es una llave candidato.

Denominada por sus siglas en inglés como BCNF; Una tabla se considera
en esta forma si y sólo sí cada determinante o atributo es una llave
candidato. Continuando con el ejemplo anterior, si consideramos que en la
entidad alumno sus atributos control y nombre nos puede hacer referencia
al atributo esp., entonces decimos que dichos atributos pueden ser llaves
candidato. Gráficamente podemos representar la forma normal de Boyce
Codd de la siguiente forma:

Obsérvese que a diferencia de la tercera forma normal, agrupamos todas


las llaves candidato para formar una global (representadas en el recuadro)
las cuales hacen referencia a los atributos que no son llaves candidato.

INTEGRIDAD DE LA BASE DE DATOS.

Integridad de datos en bases de datos: Integridad de datos se refiere al estado


de corrección y completitud de los datos ingresados en una base de datos.

Los SGBD relacionales deben ser capaces de mantener la integridad de los datos
almacenados en una base de datos con respecto a las reglas predefinidas o
restricciones que el administrador y creador de la base de datos determine.

Un claro ejemplo de error de integridad es el ingreso de un tipo de dato incorrecto


dentro de un campo. Por ejemplo, ingresar un texto cuando se espera un número
entero. También un error en la integridad de una base de datos puede ser la
existencia de un valor numérico (ID_Cliente) en la compra de un producto por
parte de un cliente que no existe en su correspondiente tabla con ese número.
(Integridad referencial).

La exigencia de integridad de los datos garantiza la calidad de los datos de la base


de datos. Por ejemplo, si se especifica para un empleado el valor de identificador
de 123, la base de datos no debe permitir que ningún otro empleado tenga el
mismo valor de identificador. Si tiene una columna employee_rating para la que 31
se prevean valores entre 1 y 5, la base de datos no debe aceptar valores fuera de
ese intervalo.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Dos pasos importantes en el diseño de las tablas son la identificación de valores


válidos para una columna y la determinación de cómo forzar la integridad de los
datos en la columna.

9) EJEMPLOS DE BASES DE DATOS RELACIONALES

Para cada ejercicio se presenta la solución final que se obtiene tras el diseño
lógico, es decir, el conjunto de relaciones que forman el esquema lógico de la
base de datos, las claves ajenas y sus reglas.

EJEMPLO 1

CLIENTE(dnicli,nombre,dirección)
Esta tabla almacena los datos personales de los clientes.
PROCURADOR(dniproc,nombre,dirección)
Esta tabla almacena los datos personales de los procuradores.
ASUNTO(numexp,dnicli,fechaini,fechafin,estado)
ASUNTO.dnicli es clave ajena a CLIENTE (cliente al que pertenece el
asunto) Esta tabla almacena los datos de los asuntos y el cliente al que
pertenecen.

ASUNTO_PROC(numexp,dniproc)
ASUNTO_PROC.numexp es clave ajena a ASUNTO (asunto que es
llevado por algún procurador)
ASUNTO_PROC.dniproc es clave ajena a PROCURADOR (procurador
que lleva el asunto) En esta tabla se especifica qué procuradores llevan
cada asunto y los asuntos que lleva cada procurador.

Nulos Borrado Modificación


ASUNTO.dnicli No (1) Restringir (2) Propagar
ASUNTO_PROC.numexp No Propagar (3) Propagar
ASUNTO_PROC.dniproc No Restringir (4) Propagar

Veamos la interpretación de algunas de las reglas que acabamos de especificar


para las claves ajenas, una vez consultadas con los propietarios de la información:
(1) Todo asunto debe pertenecer a un cliente conocido.
(2) No se puede eliminar un cliente si éste tiene algún asunto.
(3) Si se elimina un asunto, ya no se mantiene la información respecto a los
procuradores que lo llevaban.
(4) No se puede eliminar un procurador si éste lleva o ha llevado algún asunto.
32
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

EJEMPLO 2

ZOO(nombre,ciudad,país,tamaño,presupuesto)
Esta tabla almacena los datos de los zoos.
ESPECIE(nomcientífico,nomvulgar,familia,peligro)
Esta tabla almacena los datos que caracterizan las especies animales.
ANIMAL(numid,nomzoo,nomespecie,sexo,añonacim,país,continente)
ANIMAL.nomzoo es clave ajena a ZOO (zoo en el que se encuentra el
animal)
ANIMAL.nomespecie es clave ajena a ESPECIE (especie a la que
pertenece el animal) Esta tabla almacena los datos de los animales, la
especie a la que pertenece cada uno y el zoo en el que se encuentran.

Nulos Borrado Modificación


ANIMAL.nomzoo No (1) Restringir (2) Propagar
ANIMAL.nomespecie No (1) Restringir (3) Propagar

Veamos la interpretación de algunas de las reglas que acabamos de especificar


para las claves ajenas, después de haberlas consultado con los propietarios de la
información:

(1) Todo animal se encuentra en un zoo conocido y pertenece a una especie


conocida.
(2) No se puede eliminar un zoo que tiene animales. Se podría dar la opción
de cambiar todos sus animales a otros zoos, y una vez repartidos todos, ya
se puede eliminar el zoo que ha quedado vacío.
(3) No se puede eliminar una especie si hay animales en los zoos que
pertenecen a la misma.

EJEMPLO 3

SOCIO(codsocio,nombre,dirección,teléfono)
En esta tabla se almacenan los datos personales de los socios.
DIRECTOR(nomdirector)
En esta tabla se guardan nombres de directores de películas. Cualquier
dato adicional que se desee saber de los directores, se colocará en esta
tabla añadiendo nuevas columnas. El esquema de la base de datos es así
flexible ya que acepta la introducción de nueva información en el esquema
sin introducir por ello redundancias de datos.
ACTOR(nomactor)
En esta tabla se guardan nombres de actores de películas. Cualquier dato 33
adicional sobre los actores se podrá añadir a esta tabla mediante nuevas
columnas. El esquema sigue siendo flexible.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

GENERO(nomgénero)
En esta tabla se guardan nombres de géneros de películas.
PELICULA(título,nomdirector,nomgénero)
PELICULA.nomdirector es clave ajena a DIRECTOR (director de la
película)
PELICULA.nomgénero es clave ajena a GENERO (género al que
pertenece la película) En esta tabla se almacena el título de las películas
que hay en el vídeo club, el director y el género de la película.
CINTA(numcinta,título,nomdirector)
(CINTA.título,CINTA.nomdirector) es clave ajena a PELICULA (película
que hay grabada en la cinta) En esta tabla se guarda información sobre
las cintas que posee el vídeo club. Cada cinta tiene grabada una sola
película.
PRESTAMO(numcinta,fecha,codsocio)
PRESTAMO.numcinta es clave ajena a CINTA (cinta que está
actualmente prestada)
PRESTAMO.codsocio es clave ajena a SOCIO (socio que tiene prestada
la cinta) Cuando se presta una cinta a un socio, se registra en esta tabla.
DEVUELTA(numcinta,fecha,codsocio)
Se supone que la fecha contiene información también sobre la hora en
que se realiza el préstamo.
DEVUELTA.numcinta es clave ajena a CINTA (cinta que fue prestada y ya
ha sido devuelta)
DEVUELTA.codsocio es clave ajena a SOCIO (socio que tomó prestada
la cinta y ya la ha devuelto) Cuando un socio devuelve una cinta que
tenía prestada, la tupla correspondiente a dicho préstamo se copia en esta
tabla y se borra de PRESTAMO.
LISTA_ESPERA(codsocio,título,nomdirector,fecha,hora)
LISTA_ESPERA.codsocio es clave ajena a SOCIO (socio que está
esperando ver una película)
(LISTA_ESPERA.título,LISTA_ESPERA.nomdirector) es clave ajena a
PELICULA (película que tiene socios en lista de espera) Los atributos
fecha, hora se han añadido para mantener el orden en la lista de espera.
En esta tabla se especifica la lista de espera de socios para cada película.
Un mismo socio puede estar en la lista de espera de varias películas a la
vez. Cuando el socio consigue la película, se elimina de la lista.
REPARTO(título,nomdirector,nomactor)
(REPARTO.título,REPARTO.nomdirector) es clave ajena a PELICULA
(película que de la que conocemos el reparto de actores)
REPARTO.actor es clave ajena a ACTOR (actor que aparece en el
reparto de la película) 34
En esta tabla se almacena información sobre las películas en las que ha
intervenido cada actor. Un mismo actor puede haber participado en varias
películas.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

GUSTA_DIRECTOR(codsocio,nomdirector)
GUSTA_DIRECTOR.codsocio es clave ajena a SOCIO (socio al que le
gustan directores)
GUSTA_DIRECTOR.nomdirector es clave ajena a DIRECTOR (director
que le gusta al socio)
En esta tabla se almacenan los gustos, en cuanto a directores, de cada
socio (a cada socio le pueden gustar varios directores).
GUSTA_ACTOR(codsocio,nomactor)
GUSTA_ACTOR.codsocio es clave ajena a SOCIO (socio al que le gustan
actores)
GUSTA_ACTOR.nomactor es clave ajena a ACTOR (actor que le gusta al
En esta tabla se almacenan los gustos, en cuanto a actores, de cada socio
(a cada socio le pueden gustar varios actores).
GUSTA_GENERO(codsocio,nomgénero)
GUSTA_GENERO.codsocio es clave ajena a SOCIO (socio al que le
gustan géneros de películas)
GUSTA_GENERO.nomgénero es clave ajena a GENERO (género que le
gusta al socio)
En esta tabla se almacenan los gustos, en cuanto a géneros, de cada
socio (a cada socio le pueden gustar varios géneros).

Tras consultar con los propietarios de la información, se han establecido las


siguientes reglas para las claves ajenas:

Nulos Borrado Modific.


PRESTAMO.codsocio No Restringir (1) Propagar
DEVUELTA.codsocio No Restringir (1) Propagar
LISTA_ESPERA.codsocio No Propagar (1) Propagar
GUSTA_DIRECTOR.codsocio No Propagar (1) Propagar
GUSTA_ACTOR.codsocio No Propagar (1) Propagar
GUSTA_GENERO.codsocio No Propagar (1) Propagar
(CINTA.título,CINTA.nomdirector) No Propagar (2) Propagar
(LISTA_ESPERA.título,
LISTA_ESPERA.nomdirector) No Restringir (2) Propagar
(REPARTO.título,REPARTO.nomdirector) No Propagar (2) Propagar
PRESTAMO.numcinta No Restringir (3) Propagar
DEVUELTA.numcinta No Restringir (3) Propagar
PELICULA.nomdirector No Restringir (4) Propagar
GUSTA_DIRECTOR.nomdirector No Restringir (4) Propagar
REPARTO.nomactor No Restringir (5) Propagar
GUSTA_ACTOR.nomactor No Restringir (5) Propagar 35
PELICULA.nomgénero No Restringir (6) Propagar
GUSTA_GENERO.nomgénero No Restringir (6) Propagar
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

(1) Si se elimina un socio, ya no se quiere conocer sus gustos en cuanto a


directores, actores y géneros. Además, se elimina de las listas de espera en
las que se encontraba. No se puede eliminar un socio que ha tomado prestada
alguna película en alguna ocasión.
(2) Si se elimina una película, se eliminan todas sus copias y la información sobre
su reparto de actores. No se puede eliminar una película que tiene socios en
lista de espera.
(3) No se puede eliminar una cinta que ha sido prestada alguna vez.
(4) No se pueden eliminar directores que han dirigido alguna película o que le
gustan a algún socio.
(5)No se pueden eliminar actores que aparecen en el reparto de alguna película o
que le gustan a algún socio.
(6) No se puede eliminar un género si hay películas del mismo o si es un género
que le gusta a algún socio.

Por motivos de eficiencia puede ser necesario cambiar el diseño, uniendo las
tablas PRESTAMO y DEVUELTA, quedando de este modo:

PRESTAMO(numcinta,fecha,codsocio,pres_dev)

El nuevo atributo pres_dev tomará el valor 'prestada' si la cinta está prestada


actualmente, y tomará el valor 'devuelta' si la cinta ya ha sido devuelta y el
préstamo ha finalizado. Antes, la tabla PRESTAMO tenía como clave primaria
numcinta, con lo que no era posible que una misma cinta apareciese como
prestada a dos socios a la vez. Ahora, al unir los préstamos actuales y los
finalizados, la clave primaria es (numcinta,fecha) y se debe añadir una regla de
integridad que se encargue de respetar que cada cinta puede estar prestada
(actualmente) a un único socio.

36
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

10) DESCRIPCION DEL SOFTWARE WORKBENCH


MySQL Workbench: MySQL Workbench es una herramienta visual de base de
datos unificada para arquitectos, desarrolladores y administradores de
bases. MySQL Workbench ofrece modelado de datos, desarrollo de SQL y
herramientas completas de administración de servidor de administración de
configuración, el usuario y mucho más. MySQL Workbench está disponible en
Windows, Linux y Mac OS.
Ventana Principal

Diseño
MySQL Workbench permite a un DBA, desarrollador o arquitecto de datos para
diseñar visualmente, modelo, generar y gestionar bases de datos. Incluye todo lo
que un modelador de datos necesita para crear modelos ER complejas, hacia
adelante y la ingeniería inversa, y también ofrece características clave para
realizar la gestión del cambio difícil y tareas de documentación que normalmente
requieren mucho tiempo y esfuerzo.
37
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

Desarrollo
MySQL Workbench proporciona herramientas visuales para crear, ejecutar, y
optimizar consultas SQL. El Editor SQL proporciona el color de resaltado de
sintaxis, la reutilización de fragmentos de SQL, y el historial de ejecución de
SQL. El panel de conexiones de base de datos permite a los desarrolladores para
gestionar fácilmente las conexiones de base de datos. El Examinador de objetos
permite el acceso instantáneo a esquemas de bases de datos y objetos.

Administrar
MySQL Workbench proporciona una consola visual para administrar fácilmente
entornos MySQL y obtener una mejor visibilidad en bases de datos. Los
desarrolladores y DBAs pueden utilizar las herramientas visuales para la
configuración de los servidores, la administración de usuarios y la visualización de
la salud de base de datos.

Migración de base de datos


MySQL Workbench proporciona ahora una solución fácil de usar completa, para la
migración de Microsoft SQL Server, Sybase ASE, PostgreSQL, y otras tablas
RDBMS, los objetos y los datos a MySQL. Los desarrolladores y DBAs pueden
convertir rápidamente y fácilmente las aplicaciones existentes se ejecuten en
MySQL tanto en Windows y otras plataformas. La migración también es
compatible con la migración desde versiones anteriores de MySQL a las últimas
versiones.

 CREACIÓN DE UN MODELO
En esta sección, aprenderás cómo crear un nuevo modelo de base de
datos, crear una tabla, cree un diagrama EER de su modelo, y luego como
ingeniero envíe su modelo en el servidor de base de datos en vivo.

1. Iniciar MySQL Workbench. En la ventana principal, seleccione Crear


nuevo Modelo EER. Un modelo puede contener múltiples
esquemas. Tenga en cuenta que cuando se crea un nuevo modelo,
que contiene el mydbesquema por defecto. Puede cambiar el
nombre de este esquema para servir a sus propios fines, o
eliminarlo.
38
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

2. En la barra de herramientas Schemata física, haga clic en el


botón + para añadir un nuevo esquema. Esto creará un nuevo
esquema y mostrar una Hoja Pestaña para el esquema. En la Hoja
Pestaña, cambie el nombre del esquema
al "dvd_collection", escribiendo en el campo
llamado Nombre. Asegúrese de que este cambio se refleja en la
ficha Esquemas física. Ahora ya está listo para agregar una tabla a
su esquema.

39
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

3. En la sección Esquemas física, haga doble clic en Agregar tabla.

4. Esto cargará automáticamente el editor de tablas, con el nombre de


tabla por defecto es tabla1. En el editor de tablas, cambiar el
nombre de la tabla de "tabla 1" a "películas".

5. A continuación, añadir varias columnas. Haga doble clic en una


celda de la columna Nombre de la columna, y el primer campo de
forma predeterminada "moviesid" porque MySQL Workbench
agrega "id" para el nombre de tabla como valor predeterminado para
el campo inicial. Cambiar el nombre a "movie_id" y mantener eltipo
de datos como INT . A continuación, asegúrese de PK (PRIMARY
KEY), NN (NOT NULL) y AI(AUTO_INCREMENT) sean controladas.

6. Añadir dos columnas adicionales utilizando el mismo método que se


ha descrito anteriormente:

40
Nombre de columna Tipo de datos Propiedades de las columnas
MOVIE_TITLE VARCHAR (45) NN
RELEASE_DATE Fecha (AAAA-MM-DD) Ninguno
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

7. Ahora se puede obtener una representación visual de este esquema


hasta ahora. En el menú principal, seleccione Modelo, Crear
Diagrama del catálogo Objects. El diagrama EER se crea y se
muestra.

41
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

8. En el editor de tablas, cambiar el nombre de la


columna "MOVIE_TITLE" a "título". Tenga en cuenta que el
diagrama EER se actualiza automáticamente para reflejar este
cambio.

9. En este punto, usted puede guardar su modelo. Haga clic en el


botón de barra de herramientas Guardar modelo en archivo
actual. Usted aún no ha guardado el archivo para que se le pedirá
que introduzca un nombre de archivo de modelo. Para este tutorial,
introduzca "Home_Media". El modelo Home_Media puede contener
además esquemas, además de dvd_collection , tales
como cd_collection . Haga clic en Guardarpara guardar el modelo.

10. Puede sincronizar el modelo con el servidor de base de datos


activa. En primer lugar, usted debe decirle a MySQL Workbench
cómo conectar con el servidor en vivo. En el menú principal,
seleccione Base de datos, en Administrar conexiones....

11. En el cuadro de diálogo Gestionar conexiones DB, haga clic


en Nuevo.

12. Escriba "Big servidor de Hierro" para el nombre de la conexión. Esto


le permite identificar el servidor a la que corresponde esta conexión,
a pesar de que es posible crear múltiples conexiones con el mismo
servidor.

13. Introduzca el nombre de usuario de la cuenta que utilizará para


conectarse al servidor.

14. Haga clic en la tienda en Bóveda... botón e introduzca la contraseña


para el nombre de usuario que introdujo en el paso anterior. Puede
pasar por alto este paso opcional, y se le solicitará esta contraseña
cada vez que MySQL Workbench se conecta al servidor.

15. Haga clic en Probar conexión para comprobar los parámetros de


conexión. Si todo está bien en este momento, puede hacer clic en
Cerrar.

42
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

16. Ahora está listo para diseñar adelante su modelo en el servidor en


vivo. En el menú principal, seleccioneBase de datos, Ingeniero
Forward.... Aparecerá el Ingeniero Forward Base de datos del
asistente.

17. La página Opciones del asistente muestra varias opciones


avanzadas. Para este tutorial, puede ignorar esto y haga clic en
Siguiente.

18. En la página siguiente, usted puede seleccionar el objeto que desea


exportar al servidor en vivo. En este caso, es suficiente con una
mesa, por lo que ningún otro objeto necesita ser seleccionado. Haga
clic en Siguiente.

19. En la página siguiente, Revista SQL Script, muestra la secuencia de


comandos que se ejecuta en el servidor activo para crear el
esquema. Revise la secuencia de comandos para asegurarse de
que comprende las operaciones que se llevarán a cabo. Haga clic
en Siguiente.
43
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

20. Seleccione la conexión que creó anteriormente, "Big Iron


Server". Haga clic en Ejecutar. Compruebe los mensajes de errores,
haga clic en Cerrar para salir del asistente

21. Asegúrese de que el guión corrió sin error en el servidor, a


continuación, haga clic en Cerrar. Como prueba de que el guión
trabajó en marcha la línea de comandos de cliente
MySQL (mysql). Introduzca SHOW DATABASES; e identificar el
esquema. Introduzca USE dvd_collection; para seleccionar el
esquema. A continuación, introduzca SHOW
TABLES; . Escriba SELECT * FROM movies; , esto devolverá el
conjunto vacío que aún no ha entrado en los datos en su base de
datos. Tenga en cuenta que es posible utilizar MySQL Workbench
para llevar a cabo dichos controles, y verá cómo hacer esto más
tarde, pero la línea de comandos de cliente MySQL se ha utilizado
aquí como es probable que haya usado antes.

22. Asegúrese de que su modelo se guarda. Haga clic en Guardar 44


modelo en archivo actual en la barra de herramientas principal.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

45
El estilo de la notación de objeto utilizado en la Figura 7.50, "El sakila Database
Diagram EER " es Workbench (PKs only) . Esta notación sólo muestra las claves
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

primarias y hay otras columnas, lo cual es especialmente útil cuando el espacio es


un bien escaso. La notación relación es la predeterminada, pata de gallo.
Como las líneas de conexión muestran, cada tabla está relacionada con al menos
otra tabla en la base de datos (con la excepción de la film_text tabla). Algunas
mesas tienen dos claves externas que se refieren a la misma mesa. Por ejemplo,
la film tabla tiene dos claves externas que se relacionan con el language mesa,
es decir,fk_film_language_original y fk_film_language . Cuando exista más de
una relación entre dos tablas, las líneas de conexión se ejecutan
simultáneamente.
Identificar y relaciones nonidentifying se indica por las líneas continuas y
discontinuas, respectivamente. Por ejemplo, la clave externa category_id es parte
de la clave principal de la film_category mesa para que su relación con
la category la tabla se dibuja con una línea continua. Por otro lado, en
la city tabla, la clave externa, country_id , no es parte de la clave primaria por lo
que la conexión utiliza una línea de trazos.

11) EJEMPLO DE BASE DE DATOS RELACIONAL EN WORKBENCH

DESCRIPCION DEL CASO

El laboratorio de Análisis Clínicos “Primavera” surge con la finalidad de entregar


apoyo al accionar medico a través de la realización de exámenes de Laboratorio a
pacientes para contribuir en el diagnóstico de enfermedades y control de
tratamiento de pacientes.

PRINCIPALES PROBLEMAS DE LA ORGANIZACIÓN

-Lentitud en el manejo de la información en los procesos de búsqueda, reportes y


demás requerimientos de información que se solicita.
-Pérdida de tiempo en el acceso a los datos y a la gestión de los pacientes, pues
en el registro, reporte y búsqueda de pacientes y sus resultados, se utiliza una
hoja de cálculo en Excel.
-Procedimiento de registro de pacientes nuevos, en forma manual, esto causa
demora en el proceso de la información del paciente.
-Los reportes de historial clínico que se brinda a los pacientes no están bien
estructurados, esto causa que el paciente no reciba un reporte detallado de sus
análisis realizados en forma oportuna.

REQUERIMIENTOS FUNCIONALES

-El sistema permitirá realizar el mantenimiento de tipo de análisis, las citas e 46


Historias Clínicas.
-El sistema permitirá listar pacientes, Historias Clínicas, por diversos filtros.
-Permitirá registrar citas por internet por parte de los pacientes reales.
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

-Permitirá consultar el monto de venta y utilidad por línea de los pacientes, por
documento y por los servicios que brinda la empresa.
-Registrar niveles de ingreso al sistema por tipo de usuario.
-Registrar pagos de pacientes.

47
Universidad Nacional de Trujillo Tecnología de la Programación II
Facultad de Ingeniería Bases de Datos Relacionales
Ingeniería de Sistemas V Ciclo

LINKOGRAFÍA

http://www.mysql.com/products/workbench/

http://downloads.mysql.com/docs/workbench-en.pdf

http://es.wikipedia.org/wiki/MySQL_Workbench

http://www.ehowenespanol.com/desventajas-base-datos-relacional-lista_183865/

http://www.monografias.com/trabajos34/base-de-datos/base-de-datos.shtml

http://www.maestrosdelweb.com/editorial/%C2%BFque-son-las-bases-de-datos/

http://es.kioskea.net/contents/66-introduccion-bases-de-datos

http://www.jorgesanchez.net/bd/bdrelacional.pdf

http://www.uazuay.edu.ec/analisis/El%20modelo%20relacional.pdf

http://www.buenastareas.com/ensayos/Principales-Base-De-Datos-Relacionales/4683239.html

http://yulipane.blogspot.com/2010/09/elementos-de-una-base-de-datos.html

http://www.buenastareas.com/ensayos/Elementos-De-Una-Base-De-Datos/1835983.html

http://elies.rediris.es/elies9/4-1-2.htm

http://docs.moodle.org/all/es/Caracter%C3%ADsticas_de_la_base_de_datos_%28m%C3%B3dulo
%29

http://www.ite.educacion.es/formacion/materiales/93/cd/m1_1/componentes_esenciales_de_un
a_base_de_datos.html

http://es.scribd.com/doc/2970454/6/Ejemplo-de-base-de-datos-relacional

48

También podría gustarte