Informe de Base de Datos Relacionales 1era Unidad

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

Views 181 Downloads 171 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 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

3

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.

A las filas de una tabla de una base de datos se les llama registros y a las columnas, campos.

5

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 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.

8

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.

-

A las filas también se le conoce con el nombre de registros o tuplas. A las columnas también se les llama campos

11

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 predicado: Sexo = "V" OR Sexo = "M"

17

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 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.

18

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 métodos de consulta que veremos más adelante en el apartado de SQL.

19

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. 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.

20

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 manualmente.

23

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 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

25

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 o o o o

Todos los atributos son atómicos. La tabla contiene una clave primaria. La clave primaria no contiene atributos nulos. No existe variación en el número de columnas. 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 encuentran en la primera forma normal. Para ejemplificar como se representan gráficamente las relaciones en primera forma normal

26

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).  

Reflexividad. A partir de cualquier atributo o conjunto de atributos siempre puede deducirse el mismo. Dependencia Trivial: xx.

27

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 segunda forma normal. La segunda forma normal se representa por dependencias funcionales como:

28

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 otro atributo o atributos. En la dependencia funcional (A,B) C, (A,B) son los determinantes.

30

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 se prevean valores entre 1 y 5, la base de datos no debe aceptar valores fuera de ese intervalo.

31

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 ASUNTO.dnicli No (1) ASUNTO_PROC.numexp No ASUNTO_PROC.dniproc No

Borrado Restringir (2) Propagar (3) Restringir (4)

Modificación Propagar Propagar 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.

ANIMAL.nomzoo ANIMAL.nomespecie

Nulos No (1) No (1)

Borrado Restringir (2) Restringir (3)

Modificación Propagar 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 adicional sobre los actores se podrá añadir a esta tabla mediante nuevas columnas. El esquema sigue siendo flexible.

33

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) 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.

34

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 PRESTAMO.codsocio No Restringir (1) DEVUELTA.codsocio No Restringir (1) LISTA_ESPERA.codsocio No Propagar (1) GUSTA_DIRECTOR.codsocio No Propagar (1) GUSTA_ACTOR.codsocio No Propagar (1) GUSTA_GENERO.codsocio No Propagar (1) (CINTA.título,CINTA.nomdirector) No Propagar (2) (LISTA_ESPERA.título, LISTA_ESPERA.nomdirector) No Restringir (2) (REPARTO.título,REPARTO.nomdirector) No Propagar (2) PRESTAMO.numcinta No Restringir (3) DEVUELTA.numcinta No Restringir (3) PELICULA.nomdirector No Restringir (4) GUSTA_DIRECTOR.nomdirector No Restringir (4) REPARTO.nomactor No Restringir (5) GUSTA_ACTOR.nomactor No Restringir (5) PELICULA.nomgénero No Restringir (6) GUSTA_GENERO.nomgénero No Restringir (6)

Modific. Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar Propagar

35

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: Nombre de columna MOVIE_TITLE RELEASE_DATE

Tipo de datos

Propiedades de las columnas

VARCHAR (45) NN Fecha (AAAA-MM-DD) Ninguno

40

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 modelo en archivo actual en la barra de herramientas principal.

44

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 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.

46

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