Base de Datos02

71
B / D BASE DE DATOS Introducción U S U A Repositorio R de I Datos O Procesamiento Aplicaciones - U.Net - Java Información - C++ Introducción a las bases de datos Procesamiento de Archivos VS Base de Datos Datos repetidos (redundancias) - Eliminar redundancias No se manejaban estándares - Poder compartir los datos Había inconsistencia de datos (aplicaciones viejas y nuevas) Falta de seguridad en los datos - Cumplir normas especificas No existían aplicaciones de uso general (estándares) 1

Transcript of Base de Datos02

Page 1: Base de Datos02

B / D

BASE DE DATOS

Introducción

USUA RepositorioR deI DatosO

ProcesamientoAplicaciones - U.Net- Java Información- C++

Introducción a las bases de datos

Procesamiento de Archivos VS Base de Datos

Datos repetidos (redundancias) - Eliminar redundancias No se manejaban estándares - Poder compartir los datos Había inconsistencia de datos (aplicaciones viejas y nuevas) Falta de seguridad en los datos - Cumplir normas especificas No existían aplicaciones de uso general (estándares) - Mantener seguridades - Mantener integridad de datos - Reducir las inconsistencias

Concepto de base de datos.- Es un repositorio en donde guardamos información que podemos almacenar y recuperar.

Componentes de una base de datos.

1

Page 2: Base de Datos02

Son:- Hardware constituido Dispositivos de Almacenamiento- Software llamado DBMS (Sist. Manejador de B/D) - Datos Almacenados y Procesados de acuerdo a la Información

Tipos de Usuario B/DSon:

- Usuario Final.- Es la persona que utiliza los datos. (Ve las aplicaciones)- Desarrollador de Aplicaciones.- Es la persona que desarrolla los sistemas que

van a interactuar con la base de datos.- DBA (Administrador D/B).- Es la persona que asegura la integridad, la

consistencia, reducir la redundancia y las seguridades. Es la que se encarga del mantenimiento periódico o diario de los datos.

Conceptos Básicos.- Archivos: Conjunto de Registros.- Registros: Conjunto de Campos.- Campos: Unidad mínima de referencia.

Niveles de Abstracción.

UsuarioFinal

Desarrolladorde Aplicaciones

DBAFísico

2

Métodos de Acceso

Usuario

DBMS

Datos

Externo Externo Externo

Conceptual

Interno

Page 3: Base de Datos02

- En el nivel Externo o también llamado Visión, se refiere a la Visión del Usuario Final. Se ven los datos convertidos en Información.

- En el nivel Conceptual se ve como está estructurada la base de datos, que tipo de campos tienen los datos y como están estructurados esos registros, regularmente trabaja el Desarrollador de Aplicaciones.

- Nivel Interno o Físico es el que ve como almacenan los datos físicamente, regularmente trabaja el DBA.

ARCHIVO DE CLIENTES

Registro Campo

DBMS (Sistema Manejador de Base de Datos)

DBA

Subsistema de un

E/S lógicas

E/S Físicas

Motor o Núcleo.-Este recibe los requerimientos lógicos de entrada y salida y los convierte en requerimiento físicos, operaciones de lectura y escritura. Los requerimientos lógicos son cualquier tipo de consulta (Requerimiento de lectura) o ingreso de datos (Requerimiento de escritura). Es ayudado por el sistema operativo para convertir estos requerimientos lógicos en físicos que actúen sobre los dispositivos de almacenamiento.

Herramientas de Definición.-

Nombre Apellido EdadAna López 20José Mera 30

3

Herramientas de Definición

Interfase de Procesamiento

Desarrollo de Aplicaciones

Diccionario de Datos

Usuario de Aplicación

Motor/Núcleo

DBMS

S.OB/D

DBMS

Page 4: Base de Datos02

Permiten definir y modificar la estructura de la base de datos, a este nivel definimos lo que se conoce como esquema, que es la definición total de la base de datos, es aquí donde definimos la estructura de las tablas, los tipos de campos y las restricciones para los campos.Dos partes importantes en este subsistema son:El sub-esquema y el esquema.El sub-esquema permite el manejo de vistas de datos, el manejo se realiza en niveles externos y el esquema es el manejo de niveles conceptuales.

Esquema Niv. Conceptuales (Ing. de Desarrollo)Sub-Esquema Niv. Externos (Usuario Final)

Interfase de Procesamiento.-Provee las facilidades de actualización, despliegues y visualización de datos.

- Insert, select, delete, update.

Desarrollo de Aplicaciones.-Este subsistema nos permite generar una aplicación, como por ejemplo: generadores de códigos, generadores de reportes, generadores de formas o pantallas.

Diccionario de Datos.-Este es el componente o subsistema tonel que interactúa directamente el DBA, le proporciona funciones de consulta y reportes útiles para su trabajo de administración. Es la descripción de la estructura de la base de datos y las relaciones entre datos y programas.

Características y Objetos de un DBMS

- Independencia de datos.- El DBMS provee una independencia de datos versus las aplicaciones. Esto quiere decir que cambian las aplicaciones y no se van a ver afectados los datos. Asi mismo vamos a poder proteger nuestros programas de aplicación frente a las modificaciones en la estructura de los datos y viceversa.

- Independencia Física.- Es la protección a los programas de aplicación debido a los cambios en las estructuras de los archivos (tablas) o cambios en las características de los campos. Ejemplo:

Cambio del tipo de datos de un campo de carácter a numérico.- Independencia Lógica.- Cambios en el esquema.- Minimizar las redundancias (Datos Repetidos).- Las redundancias son datos

repetidos y distribuidos en cualquier parte. El efecto que ocasiona la redundancia es tener inconsistencia en los datos y desperdicio en el espacio de almacenamiento

- Inconsistencia de datos.- Datos que en un lugar tienen un valor y en oro lugar otro valor.

Archivo Cliente Archivo PagoCliente realizóUn pagoDe $20

Inconsistencia

Cliente PagoJ. Pérez $30

Cliente PagoJ. Pérez $50

4

Vistass

Page 5: Base de Datos02

- Integridad de datos.- Son conjuntos de seguridades que son utilizadas para mantener los datos correctos.

- Fuentes de error.- Estas fuentes de error se originan si el programa de entrada de datos no está valido. Ejemplo:

Fallas de hardware. Actualizaciones incompletas. Defectos del software. Inserción de datos no validos. Errores humanos.

Una técnica que utiliza el DBMS para corregir una entrada de datos no valida es la validación.

- Validación.- Es proteger los datos, validarlos desde la entrada misma de datos. Existen diferentes tipos de validaciones:

Validación en el tipo de datos.- Quiere decir que si definimos un tipo de dato como carácter, no podemos ingresar datos como números.

Validación en los rangos del tipo de dato.- Es la existencia de un rango definido de posibles valores validos para cada tipo de datos.

Validación por valores claves (no nulos).- Esta validación es la que me asegura que las tablas tengan un campo con valores únicos y no nulos denominada Clave Primaria.

Validación por integridad referencial.- Esta asegura que no existen registros hijos sin su registro padre correspondiente.

- Control de concurrencia o simultaneidad.- Este control se da en ambientes multiusuarios y se presenta cuando mas de un usuario esta tratando de acceder a un objeto de la base de datos al mismo tiempo lo que se denomina Concurrencia.

- Control de seguridades.- Aquí dentro de este control encontraremos los consejos de generalidades y bloqueo.

- Granuladidad.- Es el tamaño de las unidades aseguradas, por ejemplo: la granuladidad puede proteger una tabla o archivo, o incluso puede proteger en campo específico.

- Bloqueo o Dead-Lock.- Es la técnica que evita errores de concurrencia o simultaneidad y esta se da cuando se desarrolla una espera circular entre 2 transacciones y cada una de ellas solicita una actualización sobre el mismo archivo, ósea no permite a otros usuarios utilizar el recurso hasta que termine el proceso o transacción de la espera circular.

5

Page 6: Base de Datos02

Características y Objetos de un DBMSRecuperación de Datos.El recuperar los datos frente a las fuentes de error mencionadas anteriormente.La restauración de la base de datos a su estado normal es responsabilidad del DBA quien es el responsable de implementar procedimiento de errores y recuperación.

Mecanismos de Recuperación.Backup.Es el respaldo de toda la información actual en un disco duro, cinta magnética, cd, o algún otro dispositivo de almacenamiento.

Medio deAlmacenamiento

Back upDBAProc

1 vez c/semana Domingo 00h00

1) Backup en Frío.Se realiza cuando la base de datos no está operativa, ese tipo de backup o respaldo se efectúa de manera semanal.2) Backup en Caliente.Se realiza cuando la base de datos este en operación funcionando.El respaldo se lo realiza a diario o cuando las circunstancias lo amerite.

Mirror (Espejo).Es una copia de la base de datos, que me permite estar en línea por medio de un controlador y me proporciona alta disponibilidad.

copia

Usuario

Archivos de Logos (Registros de Transacciones)Se lleva un registro de las transacciones diarias y cuando ocurre un problema se recurre a los archivos de logs y se puede hacer un reverso y recuperar lo ultimo que se hizo.

recupera

6

B/D

B/D B/D

Controlador

Alta Disponibilidad

.txt---------------

B/D

Page 7: Base de Datos02

Seguridad en los datos.

1.- Objetos a asegurar Datos | Programas | Esquema 2.- Codificación de claves Log In (Usuario y Password)3.- Controles de acceso Seguridad contra accesos no autorizados

1. El primer objeto a asegurar son los datos, luego los programas y por ultimo el esquema.

2. El DBMS provee la seguridad de tener un log in (que es al ingreso del usuario y Password para accesar a los datos).

3. Se especifican seguridades contra acceso no autorizado. Se definen roles de acceso.

Control y Administración de los recursos.El DBMS debe proveer al DBA de todos los mecanismos para control y administración de recursos para que este pueda cumplir con la integridad de datos, recuperación de errores e implementación de seguridades.

Integridad Herramientas DBA Recuperación

Seguridad

Establecer relaciones entre los datos.

1. Uno a Uno

Diagrama2. Uno a Muchos Entidad/

Relación

3. Muchos a Muchos

Ciclo de Vida de las aplicaciones de Base de Datos

Estas etapas del ciclo de vida no son estrictamente secuénciales, de hecho hay que repetir varias de las etapas algunas veces haciendo lo que se conoce como ciclos de Retroalimentación, por ejemplo: los problemas que se encuentran en la etapa de diseño de la base de datos pueden requerir una recolección de requisitos adicional y su posterior análisis.

7

Page 8: Base de Datos02

Ciclo de Vida

Planificación del Proyecto.Esta etapa conlleva la planificación de cómo llevar a cabo las etapas del ciclo de vida de las maneras más eficientes.Hay 3 componentes principales que son el trabajo que se ha de realizar, los recursos que se han de usar y el dinero que se va a utilizar.

Definición del Sistema.En esta etapa se especifica el Ámbito y los Limites de la aplicación de base de datos o como y con que otros sistemas interactúa.También hay que determinar quienes son los usuarios y las áreas de aplicación.

Recolección y Análisis de los Requisitos.En esta etapa se recogen y analizan los requerimientos de los Usuarios y de las áreas de información. Esta se puede obtener de varias formas:

- Entrevistando al personal de la empresa (concretamente a aquellos que son expertos en las áreas de interés).

- Observando el funcionamiento de la empresa.- Examinando los documentos sobre todo aquellos que se utilizan para recoger o

visualizar la información.- Utilizando cuestionarios para recoger información de grandes grupos de

usuarios.- Usando la experiencia adquirida en otros sistemas.

Diseño de la B/D.- Diseño Conceptual de la B/D.- Es la producción de un esquema conceptual,

que es independiente de todas las consideraciones físicas.- Diseño lógico de la B/D.- Este modelo después se ajusta en un esquema lógico,

eliminando las construcciones que no se pueden representar en el modelo de base de datos escogido.

8

Page 9: Base de Datos02

- Diseño físico de la B/D.- Es la tercera parte, el esquema lógico se transforma en esquema físico para el gestor del sistema manejador de B/D escogido. La fase del diseño físico considera las estructuras de almacenamiento y los métodos de acceso correspondientes para proporcionar un acceso eficiente a la B/D en la memoria secundaria.

Selección del Sistema Gestor de B/D.Sino se dispone de un sistema gestor de B/D o el que se tiene ya está obsoleto, se debe escoger un sistema gestor de B/D que sea adecuado para el sistema de información.Esta elección se debe hacer en cualquier momento antes de realizar el diseño lógico.

Diseño de la Aplicación.En esta etapa se diseñan los programas de Aplicación que utilizarán y aplicarán las B/D.Es importante que la base de datos exista para que de soporte a las aplicaciones por lo que habrá una retroalimentación desde el diseño de las aplicaciones al diseño de la B/D.En esta etapa hay que asegurarse que toda la funcionalidad especificad en los requisitos del usuario se encuentren en el diseño de la aplicación.

Prototipo.Esta etapa es opcional, es para construir prototipos de aplicación, que permitan a los diseñadores y a los usuarios probar el sistema.Normalmente es utilizado por las empresas que quieren vender un software.Un Prototipo es un modelo de trabajo de las aplicaciones del sistema. No tiene toda la funcionalidad del sistema final, pero es suficiente para que los usuarios puedan aprobar o no la conclusión del sistema.

Desarrollo.En esta etapa se crean las definiciones de la Base de Datos a nivel conceptual, interno y externo, así como los programas de aplicación.La Implementación de la Base de Datos se la realiza mediante las sentencias SQL, estas sentencias se encargan de crear el esquema de la base, los ficheros donde se almacenan los datos y la vista de los usuarios. Los programas de aplicación se implementan utilizando lenguajes de programación como Visual Basic, C++, Java quienes van a interactuar a través de transacciones con la base de datos.En esta etapa también se implementan los controles de seguridad o integridad.Se finaliza esta etapa con una prueba interna del equipo de desarrollo.

Implementación o Puesta en Producción.No es nada más que pasar todo el sistema de un ambiente de desarrollo a un ambiente de producción para su posterior utilización, antes de comercializar el sistema que esta en producción o antes que sea usado por los usuarios de forma masiva se realizaran las siguientes etapas.

Conversión y Carga de Datos.Esta etapa es Opcional, es necesario cuando se va a reemplazar un sistema antiguo por uno nuevo. Los datos se cargan desde el sistema anterior al nuevo directamente o si es necesario se convierten al formato que requiere el nuevo sistema gestor de B/D y luego se cargan. A esta etapa se la suele llamar Migración.

9

Page 10: Base de Datos02

Prueba.En esta etapa se prueba y valida al sistema ya con datos reales, de una manera metódica y rigurosa, con la finalidad de dar por aceptado el sistema y se formalice su utilización en producción.

Mantenimiento.Una vez que el sistema esta implementado, puesto en marcha, viene la etapa de mantenimiento en lo que se lleva a cabo las siguientes tareas:

- Monitoreo de las tareas.- Mantenimiento y Utilización del Sistema.

Modelo Entidad – RelaciónConceptos Básicos.Modelaje.- Es el proceso mediante el cual podemos identificar las propiedades dinámicas o estáticas de un dominio de aplicación con miras a su transformación en un diseño implementable en un sistema computarizado que es el plasmar los requerimientos de los usuarios en un diagrama para poder implementarlo

Físico

- Requerimientos. Diseño implementable- Dominio de Aplicación en un sistema

Entidad.- Es el objeto sobre el cual se requiere mantener o almacenar información. Ejemplo: Factura, cliente, producto.

Relación.- Es la asociación significativa y estable entre dos entidades.

relación

factura clientes

Atributo.- Son las propiedades que describen o califican una entidad:Ejemplo: Clientes Departamento nombre sexo nombre_dep apellidos f_nac atributos localidad edad cant_empleados

10

B/D

Page 11: Base de Datos02

Otras caracteristicas.- Las entidades se la representa mediante cajas en donde se coloca el nombre de la

entidad en letras mayúsculas.

- Las relaciones se representan con líneas que conectan las cajas de las entidades.

origen de

originado por

- Los atributos se incluyen dentro de las cajas de las entidades y se escriben con minúsculas.

Tipo de Entidades.Se pueden considerar entidades a los sujetos, objetos, a los eventos, a los lugares y a las abstracciones.

Sujetos.- Son personas u organizaciones que originan las transacciones.

cliente empresaSujetos empleado bodeguero proveedor

Objetos.- Son entes tangibles.

productoObjetos factura bodega artículos

Eventos.- Son transacciones originadas por los sujetos y que afectan a los objetos.

pedidoEventos ajustes calificaciones

11

CLIENTES FACTURA

PEDIDO CLIENTE

CLIENTEcódigonombreapellidodirecciónedad

Page 12: Base de Datos02

Lugares.- Es la ubicación de los sujetos y objetos.

ciudadLugares país localidad

Abstracciones.- Son conceptos empleados para clasificar, calificar o medir otras entidades.

tipo_clienteAbstracción tipo_cuenta unidad_medida

RelacionesTienen 3 propiedades o caracteristicas.

- Grado o cardinalidad.- Es una característica obligatoria de la relación.

uno a uno

uno a muchos

muchos a muchos

- Opcionalidad.- Es la participación obligatoria u opcional de la entidad en la relación.

debe puede

obligatoria opcional

debe puede

debe puede

- Leyenda.- Es una expresión que describe el rol de cada entidad en la relación.

leyenda

12

EMPLEADO DEPARTAMENTOtiene

pertenece

Page 13: Base de Datos02

Relaciones de acuerdo al grado de cardinalidad.

Uno a muchos.- Una instancia de la Entidad A se relaciona con una o mas instancias de la entidad B.

pertenece

compuesto

Muchos a Muchos.- Una instancia de la Entidad A se relaciona con una o mas instancias de la Entidad B, y una instancia de la Entidad B se relaciona con una o muchas instancias de la Entidad A.

distribuido por

distribuidor de

Uno a Uno.- Una instancia de la Entidad A se relaciona con una y solo una instancia de la Entidad B.

Relación recursiva.- Una instancia de la Entidad A se asocia con una instancia de si misma, es opcional en los 2 extremos, es decir, no hay el carácter de obligatorio.

subordinado de

jefe de

13

B A

Empleado Departamento

A B

Articulo Proveedor

A B

Mujer Hombre

A Empleado

Page 14: Base de Datos02

Atributos.- Los atributos son empleados para identificar, describir, calificar o expresar el estado de una entidad. Toda entidad posee un atributo combinación de atributos que se denominan Clave Primaria y que se emplea para diferenciar cada instancia de las demás.Adicionalmente los atributos pueden ser obligatorios u opcionales, a los atributos que forman parte de la clave primaria se los identifica poniendo un #, a los atributos obligatorios se les antepone * y a los opcionales el O.

Otros tipos de EntidadesEn un diagrama también se pueden agrupar las entidades en un subtipo y supertipo.

Supertipo agrupa dos o más entidades subtipo.Las entidades Subtipo heredan los atributos de las entidades supertipo.

Supertipo

Subtipo

14

Factura# numero* fecha_coloO fecha_pago* monto

Cliente# codigo* nombre* direccion* fono1O fono2O fono3

Profesor# codigo* nombre* sexo* salario

Alumno# codigo* nombre* sexo* beca

Persona# codigo* nombre* monto

Profesor* salario

Alumno* beca

Page 15: Base de Datos02

Compañía de botes San JuanSan Juan es un agente que renta embarcaciones a los clientes por una determinada tarifa. San Juan no posee barcos, en lugar de eso los arrienda a nombre de los propietarios que desean obtener ingresos cuando no usan sus botes. Por tal servicio San Juan una cuota y se especializa en barcos que puedan usarse para viajes de varios días o semanas.La embarcación más pequeña tiene 28 pies de largo y la más grande es de 44. Cada barco está por completo equipado cuando se renta, gran parte del equipo lo proporcionan los propietarios, pero San Juan agrega otra parte. El equipo que proporciona el propietario incluye lo que es parte del bote como radio, brújulas, indicadores de profundidad y otros importantes instrumentos como estufas y refrigeradoras. Otros que proporciona el propietario no están instalado como parte del bote, tales implementos incluyen velas, cuerdas, anclas, salvavidas, bolsas de caucho y en la cabina platos, cubiertos, utensilios de cocina. Si aporta el equipo de consumo que podría considerarse como provisiones, tablas de mareas y corrientes, libros de navegación, jabón, toallas de cocina y artículos similares. Una importante responsabilidad de San Juan es registrar los artículos del bote en particular los que no están fijos en la embarcación. San Juan prefiere conservar registros precisos de sus clientes y los viajes para tener estadísticas de cuales clientes han ido y en que viajes. Algunos itinerarios son más peligrosos que otros, por tal motivo a San Juan le gustaría saber cuales clientes tienen determinada experiencia. En algunos viajes los clientes solicitan el servicio de tripulación y San Juan contrata por horas a tales personas.Las embarcaciones necesitan mantenimiento, San Juan registra de todos los procesos y costos de mantenimiento incluyendo actividades normales como limpieza, cambio de aceite o reparaciones no programadas.En algunos casos son necesarias las reparaciones durante un viaje, en tal caso los clientes se comunican por radio con el despachador de San Juan quien determina la mejor opción para hacer la reparación. Para tomar estas decisiones los despachadores necesitan información sobre sus opciones de reparación y antecedentes sobre costos y calidad de la reparación.

15

Page 16: Base de Datos02

Tienda de videosEn una tienda de videos se necesita mantener información de alrededor de 10000 DVDs, c/u tiene asignado un número. Por cada película se necesita conocer su título, categoría, por ejemplo: comedia, suspenso, drama, acción, ciencia ficción, etc. Se mantiene algunas copias de muchas películas. Se le da a cada película una identificación y se mantiene un seguimiento de lo que contiene cada DVD, en un DVD pueden venir varios formatos y una película es agrupada en un solo DVD, frecuentemente las películas son pedidas a un actor especifico, Tom Cruise y Demi Moore son los más populares, es por eso que se debe mantener información de los actores que aparezcan en cada película. No en todas las películas actúan artistas famosos, a los clientes de la tienda les gusta conocer datos como el nombre del actor y su fecha de nacimiento.En la tienda se mantiene información solo de los actores que aparezcan en las películas que se mantienen a su disposición. Solo se alquila videos a aquellos que pertenezcan al club de videos. Para pertenecer al club de videos se debe tener buen crédito, por cada miembro del club se mantiene una ficha con nombre, teléfono y dirección, cada miembro del club tiene número de membresía. Se debe mantener información de todos los DVDs que el cliente ha alquilado.Cuando un cliente alquila un DVD se debe conocer titulo, fecha de alquiler y fecha de devolución.

16

Page 17: Base de Datos02

Pinacoteca

Reservación

17

Page 18: Base de Datos02

Normalización.- Al realizar procesos sobre tablas se pueden presentar problemas llamadas anomalías que pueden ser de inserción, actualización y eliminación. El proceso que asegura que la tabla este bien estructurada se denomina normalización.La normalización está basada en el concepto de formas normales, cada forma normal tiene un conjunto de reglas que deben ser verificadas. Estas formas normales son anidadas, es decir, que para que una relación este en tercera forma normal debe de haber pasado por la segunda forma normal y esta por la primera forma normal.

Dependencia funcional.- Es la relación que existe entre dos atributos.Dado un valor de X existe un valor de Y, entonces y es funcionalmente dependiente de X.

EmpleadosCod_empleados Nombre_empleado Edad

001 Juan Pérez 23002 Ana Quiroz 28

X Y

Claves o llaves.- Es el atributo que le da diferenciación a cada tabla, este atributo hace que no tengamos filas repetidas.

cliente #Cod_cliente Nombre_cliente

001 José Pérez002 Luis Muñoz003 Maria Lara

Dependencia transitiva.- Es la dependencia que va encadenada dado un valor de X existe un valor de Y, y tras del valor de Y hay un valor de Z que es transitivamente dependiente de X.

Empleado Departamento

X Y

Z

Segundo Parcial

Cod_dep Nombre01 Operaciones02 Ventas03 Sistemas

Cod_empleado Nombre_empleado Cod_dep001 Juan Pérez 01002 Luis Muñoz 02003 Maria Lara 02

18

Page 19: Base de Datos02

SQL (Structure Query Language)DDL (Data Definition Language).- “Crear/ Modificar las estructuras”

- Create.- Alter.- Drop.- Truncate.

DML (Data Manipulation Language).- “Manipular los datos”- Select.- Insert.- UpDate.- Delete.

TCL (Transaction Control Language).- “Solo trabaja con la DML”Commit (Confirma) transacciones en la base de datos RollBack (Reversar) transacciones en la base de datos

SENTENCIAS//Creando una tabla

Create table Cliente( id_cliente number, nombres varchar2(30), apellidos varchar2(30), direccion varchar2(40), id_vendedor number);

CONSTRAINTS (Reglas/ Validaciones)Primary keyForeing KeyCHECKNOT NULL

//creando las tablas del ejemplo de arriba con los constraint

Create table Departamento( id_dpto number primary key, nombres varchar2(30) NOT NULL, cant_emp number);Create table Empleado( id_empleado number Constraint id_empleado_pk primary key, nombres varchar2(30), apellidos varchar2(30), salario number, id_manager number FOREING KEY References Empleado (id_empleado), id_departamento number FOREING KEY REFERENCES Departamento (id_empleado));Create table Cliente

19

Page 20: Base de Datos02

( id_cliente number primary key, nombres varchar2(30), apellidos varchar2(30), tipo_cliente varchar2(20) CHECK (tipo_cliente in ( ´Normal´,´vip1´,´vip2´), direccion varchar2(40), id_vendedor number FOREING KEY References Empleado (id_empleado));Create table Orden( id_orden number primary key, descripcion varchar2(40), total number, id_cliente number FOREING KEY References Cliente (id_cliente));

**ALTERPermite modificar las estructuras que ya están creadas.

* Adicionar columnas

ALTER TABLE DepartamentoADD COLUMN Localidad varchar2(25);

* Eliminar columnas

ALTER TABLE EmpleadosDROP COLUMN salario;

* Adicionar clave primaria

ALTER TABLE DepartamentoADD constraint pk1 Primary Key (id_departamento);

* Adicionar clave foránea

ALTER TABLE OrdenADD constraint fk1 Foreing Key (id_cliente)References Cliente (id_cliente);

* Eliminar Tablas

- DROP TABLE Departamento //elimina toda la tabla

- TRUNCATE TRUNCATE Table Orden //elimina registros

DIAGRAMA E/R

20

Page 21: Base de Datos02

1) creación tablas

Create table Cliente( id_cliente number , nombre_completo varchar2(50) NOT NULL, direccion varchar2(80) NOT NULL, telefono number, edad number);Create table Estadia( id_hotel number , id_habitacion number, id_cliente number, fecha_ingreso DATE NOT NULL, fecha_salida DATE NOT NULL, observaciones varchar2(80));Create table Habitacion( id_hotel number , id_habitacion number, soleada varchar2(1) NOT NULL);Create table Hotel( id_hotel number, descripcion varchar2(80), direccion varchar2(50));

2) CLAVES PRIMARIAS

21

Page 22: Base de Datos02

ALTER TABLE CLIENTEADD constraint cliente_pk Primary Key (id_cliente)

ALTER TABLE ESTADIAADD constraint Estadia_pk Primary Key(id_hotel, id_habitacion, id_cliente, fecha_ingreso);

ALTER TABLE HABITACIONADD constraint habitacion_pk Primary Key (id_hotel, id_habitacion);

ALTER TABLE HOTELADD constraint hotel_pk Primary Key (id_hotel);

3) CLAVES FORANEAS

ALTER TABLE HABITACIONADD constraint habitacion_hotel_fk Foreing Key (id_hotel)References HOTEL (id_hotel);

ALTER TABLE ESTADIAADD constraint Estadia_cliente_fk Foreing Key(id_hotel, id_habitacion)References HABITACION (id_hotel, id_habitacion);

4) CHECKS

ALTER TABLE HABITACION ADD constraint habitacion_ck1 CHECK(soleada in (´S´, ´N´));

//eliminación

1) ELIMINAR CLAVES FORÁNEAS (Eliminar_FK.SQL)ALTER TABLE DROP constraint habitación_hotel_FKALTER TABLE DROP constraint estadia_cliente_FKALTER TABLE DROP constraint estadia_habitacion_FK

2) ELIMINAR CLAVES PRIMARIAS (Eliminar_PK.SQL)ALTER TABLE DROP constraint Hotel_PKALTER TABLE DROP constraint Habitacion_PKALTER TABLE DROP constraint Estadia_PKALTER TABLE DROP constraint Cliente_FK

3) ELIMINAR TABLAS (Eliminar_tablas.SQL)DROP TABLE CLIENTEDROP TABLE ESTADIADROP TABLE HABITACIONDROP TABLE HOTEL

DMLDML

22

Page 23: Base de Datos02

- INSERT

Insert into JUGADORESVALUES (4, 'PEREZ', 4, 3);

- COMMIT; ( Confirma transacción )- DELETE

DELETE FROM POSICION_JUGADOR; // borra todos los registros DELETE FROM POSICION_JUGADOR // No se puede borrar por la

WHERE Id_Posicion = 1; integridad referencial que existe

- UPDATE

UPDATE JUGADORES;SET NOMBRE = 'JOSE'WHERE NOMBRE = 'RONALDO';

- SELECT

Select *FROM JUGADORES // muestra toda la tabla

Select NOMBRE, POSICIONFROM JUGADORESWHERE Id_jugadores = 1 // muestra 2 atributos de un registro

- OPERADORES DE COMPARACIÓN

= Igualdad< > Desigualdad> Mayor que< Menor que>= Mayor o igual que<= Menor o igual que

- OPERADORES LÓGICOS

AND OR NOT

// Ejercicios:// Ejercicios:

23

Page 24: Base de Datos02

Mostrar los equipos que no son del grupo AMostrar los equipos que no son del grupo A

Select NOMBRESelect NOMBREFROM EQUIPOSFROM EQUIPOSWHERE Id_grupo < > 'A'WHERE Id_grupo < > 'A'

Mostrar el nombre de los jugadores del equipo 1 y que juegan en la posición 1Mostrar el nombre de los jugadores del equipo 1 y que juegan en la posición 1

Select NombreSelect NombreFROM JugadoresFROM JugadoresWhere Id_Equipo = 1Where Id_Equipo = 1AND Id_posiciónAND Id_posición

SELECTSELECT

OPERADORESOPERADORES

- IN- IN- BETWEEN- BETWEEN- LIKE- LIKE- IS NULL- IS NULL - NOT- NOT

// Ejercicio:// Ejercicio:Seleccionar el nombre y el salario de los empleados que ganen más de $ 800 que no Seleccionar el nombre y el salario de los empleados que ganen más de $ 800 que no tengan comisión nula y que su apellido contenga como segunda letra la o.tengan comisión nula y que su apellido contenga como segunda letra la o.

SELECT NOMBRE, SALARIOSELECT NOMBRE, SALARIOFROM EMPLEADOFROM EMPLEADOWHERE Salario > 800WHERE Salario > 800AND Comision is NOT NULLAND Comision is NOT NULLAND Nombre LIKE '_o%'AND Nombre LIKE '_o%'

JOINS O UNIONESJOINS O UNIONES

-- EQUI-JOINEQUI-JOIN-- NON EQUI-JOINNON EQUI-JOIN-- OUTER-JOINOUTER-JOIN-- SELF-JOINSELF-JOIN

// Producto Cartesiano:// Producto Cartesiano:Combinaciones de los diferentes registros y tablas requeridas.Combinaciones de los diferentes registros y tablas requeridas.

//Ejercicios://Ejercicios:

24

Regla:Regla: N tablas → n-1 join N tablas → n-1 join

Page 25: Base de Datos02

EQUI -JOIN EQUI -JOIN (PK Y FK)(PK Y FK)

Select Empleado.nombre, Cargo.nombreSelect Empleado.nombre, Cargo.nombreFrom Empleado, CargoFrom Empleado, CargoWhere Empleado.Id_Cargo= Cargo.Id_CargoWhere Empleado.Id_Cargo= Cargo.Id_Cargo

Seleccionar el nombre y el salario de los empleados que trabajen en el Seleccionar el nombre y el salario de los empleados que trabajen en el departamento de operaciones que tengan el cargo de operador.departamento de operaciones que tengan el cargo de operador.

Select *Select *From Empleado A, Cargo B, Departamento CFrom Empleado A, Cargo B, Departamento CWhere A.Id_cargo=B.Id_cargoWhere A.Id_cargo=B.Id_cargoAnd A.Id_dept=C.Id_deptAnd A.Id_dept=C.Id_deptAnd B.nombre='OPERADOR'And B.nombre='OPERADOR'And C.nombre='OPERACIONES'And C.nombre='OPERACIONES'

TIPOS DE JOIN 'STIPOS DE JOIN 'S

NON EQUI-JOINNON EQUI-JOIN

// EJEMPLO:// EJEMPLO:

Select A.nombre, B.DescripcionSelect A.nombre, B.DescripcionFrom empleado A, Niveles_Salario BFrom empleado A, Niveles_Salario BWhere A.Salario Between B.NivelBajo And B.Nivel_AltoWhere A.Salario Between B.NivelBajo And B.Nivel_Alto

SELF- JOINSELF- JOIN

//TABLA//TABLA

Select A.nombre, B.nombreSelect A.nombre, B.nombreFrom Empleado A, Empleado BFrom Empleado A, Empleado BWhere B.Id_manager=A.Id_EmpleadoWhere B.Id_manager=A.Id_Empleado

OUTER-JOINOUTER-JOIN

//TABLA//TABLA

Select A.nombre, B.nombreSelect A.nombre, B.nombreFrom Empleado A, Departamento BFrom Empleado A, Departamento BWhere A.Id_dept = B.Id_dept (+)Where A.Id_dept = B.Id_dept (+)

Select A.nombre, B.nombreSelect A.nombre, B.nombreFrom Empleado A, Departamento BFrom Empleado A, Departamento BWhere A.Id_dept (+) = B.Id_dept Where A.Id_dept (+) = B.Id_dept

SUB-QUERIESSUB-QUERIES

25

Page 26: Base de Datos02

Existe un query interno y otro query externoExiste un query interno y otro query externo

¿Cuál es el nombre y salario de los empleados que tienen igual salario que P. ¿Cuál es el nombre y salario de los empleados que tienen igual salario que P. PLUAS?PLUAS?

Select A.nombre, A.SalarioSelect A.nombre, A.SalarioFrom Empleado AFrom Empleado AWhere A.Salario= ( Select B.SalarioWhere A.Salario= ( Select B.Salario

From Empleado B From Empleado B Where B.nombre=P.PLUAS) Where B.nombre=P.PLUAS)

DATA WARE HOUSEDATA WARE HOUSE

Es una colección de datos históricos acumulados de sólo lectura los datos pueden serEs una colección de datos históricos acumulados de sólo lectura los datos pueden ser obtenidos de otras fuentes y generalmente son sumarizados y almacenados por periodosobtenidos de otras fuentes y generalmente son sumarizados y almacenados por periodos de tiempo extenso (años). Forman parte del sistema de toma de decisiones gerencial.de tiempo extenso (años). Forman parte del sistema de toma de decisiones gerencial.

Otras características importantes de Data Ware House son las siguientes:Otras características importantes de Data Ware House son las siguientes:

26

B/DContabilidad

B/DInventario

DATA WARE HOUSE

Modelo E-RModelo Multidireccional(Estrella)

TPS

DSS

- Lectura- Histórica- Sumarizada

Page 27: Base de Datos02

Integrado:Integrado:

Porque los datos que se almacenan en Data Ware House deben estar sobre unaPorque los datos que se almacenan en Data Ware House deben estar sobre una estructura consistente por lo que las inconsistencias existentes entre los diversosestructura consistente por lo que las inconsistencias existentes entre los diversos sistemas deben ser eliminadas.sistemas deben ser eliminadas.

Temática:Temática:

Sólo los datos necesarios para el proceso de generación del conocimiento del negocioSólo los datos necesarios para el proceso de generación del conocimiento del negocio se integran desde el entorno operacional. Los datos se organizan por temas parase integran desde el entorno operacional. Los datos se organizan por temas para facilitar su acceso y entendimiento por parte de los usuarios finales.facilitar su acceso y entendimiento por parte de los usuarios finales.

Histórico:Histórico:

El tiempo es parte implícita en la información contenida en un Data Ware House en losEl tiempo es parte implícita en la información contenida en un Data Ware House en los sistemas operacionales (transaccionales) los datos siempre reflejan el estado de lasistemas operacionales (transaccionales) los datos siempre reflejan el estado de la actividad del negocio en tiempo presente por el contrario la información almacenada enactividad del negocio en tiempo presente por el contrario la información almacenada en el Data Ware House sirve entre otras cosas para realizar análisis de tendencias por loel Data Ware House sirve entre otras cosas para realizar análisis de tendencias por lo que en el Data Ware House se carga la información teniendo como parámetro laque en el Data Ware House se carga la información teniendo como parámetro la variable del tiempo.variable del tiempo.

No volátil:No volátil:

El almacén de información de un Data Ware House existe para ser leído y noEl almacén de información de un Data Ware House existe para ser leído y no modificado la información es por tanto permanente significando la actualización delmodificado la información es por tanto permanente significando la actualización del Data Ware House la incorporación de los últimos valores sin realizar ningún tipo deData Ware House la incorporación de los últimos valores sin realizar ningún tipo de acción sobre lo que ya existía.acción sobre lo que ya existía.

DIFERENCIASDIFERENCIAS

SISTEMA TRANSACCIONALSISTEMA TRANSACCIONAL DATA WARE HOUSEDATA WARE HOUSE- Predomina la actualización.- Predomina la actualización.- La actividad más importante es de tipo- La actividad más importante es de tipo operativo (día a día). operativo (día a día).- Predomina el proceso puntual.- Predomina el proceso puntual.- Mayor importancia a la Estabilidad.- Mayor importancia a la Estabilidad.- Datos en General desagregados.- Datos en General desagregados.- Importancia del dato actual.- Importancia del dato actual.- Importante el tiempo de - Importante el tiempo de respuesta de 1 trx.respuesta de 1 trx. - Estructura relacional.- Estructura relacional.- Perfil del usuario: Medio-Bajo- Perfil del usuario: Medio-Bajo

- Predomina la consulta.- Predomina la consulta.- La actividad más importante es el - La actividad más importante es el análisis y decisión estratégica. análisis y decisión estratégica.- Predomina el proceso masivo.- Predomina el proceso masivo.- Mayor importancia al Dinamismo.- Mayor importancia al Dinamismo.- Datos en Niveles y Agregados.- Datos en Niveles y Agregados.- Importancia del dato histórico.- Importancia del dato histórico.- Importancia de la respuesta masiva.- Importancia de la respuesta masiva.- Visión Multidimensional.- Visión Multidimensional.- Perfil del usuario: Alto- Perfil del usuario: Alto

DATAWARE HOUSE VS. DATAMARTDATAWARE HOUSE VS. DATAMART

27

Page 28: Base de Datos02

ARQUITECTURA DESCENTRALIZADAARQUITECTURA DESCENTRALIZADA

AlmacenesAlmacenes DW Marketing DW Marketing

Inventarios Inventarios DW Riesgos DW Riesgos

Envíos Envíos DW Financiero DW Financiero

Compras Compras DW RR.HH. DW RR.HH.

DATAMARTDATAMART

Es una aplicación de Data Ware House construida rápidamente para soportar una líneaEs una aplicación de Data Ware House construida rápidamente para soportar una línea de negocio simple. Los datamart tienen las mismas características de información node negocio simple. Los datamart tienen las mismas características de información no volátil así como Data Ware House. Representan una estrategia de divide y vencerásvolátil así como Data Ware House. Representan una estrategia de divide y vencerás para ámbitos muy genéricos de un Data Ware House.para ámbitos muy genéricos de un Data Ware House.

ARQUITECTURA CENTRALIZADAARQUITECTURA CENTRALIZADA

AlmacenesAlmacenes DW Marketing DW Marketing

Inventarios Inventarios DW Riesgos DW Riesgos

Envíos Envíos DW Financiero DW Financiero

Compras Compras DW RR.HH. DW RR.HH.

Ejercicios de Aplicación.Ejercicios de Aplicación.

28

DW Corporativo

Page 29: Base de Datos02

Ejercicio 1. Actos vandálicos

Una cadena de hoteles ha decidido acabar con los clientes que deterioran el mobiliario del hotel. Quieren guardar en una base de datos los clientes que han deteriorado o robado muebles y cuáles son estos muebles.En la base de datos tendremos información de cada hotel (código, dirección y teléfono), así como un conjunto de habitaciones identificadas por un número de habitación único para cada hotel y un conjunto de elementos de mobiliario estándar con un código, descripción y precio, por ejemplo: “silla de cuero diseño clásico, 98’75 €”.Después de hacer un inventario, todo el mobiliario de los hoteles está identificado, es decir, sabemos qué y cuantos elementos de mobiliario hay en cada habitación de cada hotel. Los muebles pueden cambiar de habitación, pero no necesitamos guardar la habitación antigua.Para cada habitación, guardaremos también si es soleada, si tiene lavabo y si tiene nevera. Cada cliente tiene información personal (DNI, nombre, etc), y además un historial de sus actos vandálicos: para cada cliente guardaremos qué muebles y cuántos ha deteriorado. También queremos saber las estancias que ha hecho cada cliente en los hoteles, guardando en un único atributo la fecha de llegada y la de salida, así como la habitación en que se ha alojado. Un cliente puede alojarse en una misma habitación de hotel en diferentes estancias.Ejercicio 1.1: Queremos saber los actos vandálicos (qué y cuantos muebles) que ha hecho cada cliente en conjunto, independientemente de la habitación y hotel que se hayan producido.Ejercicio 1.2: Queremos saber los actos vandálicos de cada cliente en cada habitación del hotel.

Ejercicio 2. Almacenes

29

Clientes

PK id_clientecedulaapellidosnombresdireccion

Actos_Clientes

PF codigo_clientedescripcion_actocantidad

PK fechaFK mobiliario_dañado

Mobiliarios

PK id_mobiliariosdescripcionprecio

FK habitacion_actual

Habitaciones

PK id_habitacionFK id_hotel

descripcionsoleada(s/n)lavavo(s/n)nevera(s/n)

Hotel

PK id_hoteldirecciontelefonocategoria

Estancias

PK id_estanciaFK id_cliente

fecha_llegada_salidaFK id_habitacion

Page 30: Base de Datos02

Unos almacenes quieren hacer un estudio sobre los hábitos de compra de sus clientes. Disponen de un conjunto de artículos identificados por su código de barras, cada uno con una descripción y el nombre de su fabricante. Para cada artículo, quieren probar diversas colocaciones para estudiar como varía su venta.Para cada colocación tendremos un precio y un lema (del tipo “Más dulces que la miel”), no necesariamente diferentes. Como un artículo y un lugar determinan una colocación, no puede existir una colocación sin ningún artículo.Los clientes de nuestro almacén se identifican por su nombre, número de visa, y además queremos guardar su dirección y teléfono. De las compras que realizan, sólo queremos saber qué articulo, en qué colocación y el número de unidades que ha comprado. Diversas compras del mismo artículo en la misma colocación se acumulan en la misma tupla sumando el número de unidades.

Ejercicio 3. Biblioteca

30

Articulos

PK codigo_articulodescripcionnombre_fabricanteprecio

Colocacion

PK id_colocacionlemalugar

FK codigo_articulo

Compras

PK cod_compraFK codigo_cliente

cantidadmonto_total

FK id_colocacion

Cliente

PK codigo_clientenombrenumero_visadirecciontelefono

Page 31: Base de Datos02

En una biblioteca hay que guardar la información de todas las publicaciones que se tienen. Cada publicación tiene un título único. Las publicaciones pueden ser periódicas o no. De las periódicas hay que saber su periodicidad. Las publicaciones periódicas constan de revistas, cada una definida por un volumen, número y año. Cada revista contiene artículos, especificados por autores, título y páginas de la revista. De cada revista (volumen y número) se puede tener más de un ejemplar, caracterizado por un número de ejemplar. Se puede tener más de un ejemplar, aunque no de todos los volúmenes o números.Las publicaciones se pueden clasificar en diferentes temas, que pueden estar agrupados en una relación jerárquica de tema-subtema.Los socios de la biblioteca pueden coger en préstamo todas las publicaciones periódicas que deseen por un periodo de quince días. Los préstamos siempre hacen referencia a los ejemplares concretos de las publicaciones. Si al solicitar un préstamo de una publicación, ésta tiene todos los ejemplares ocupados, el socio se puede poner en una lista de espera para la publicación periódica, para ser avisado en el momento que se devuelva alguno de los ejemplares.

Ejercicio 4. Electricista

31

tipo_publiccacion

PK id_tipodescripcionperioricidad

publicacion

PK titulo_unicofecha_publicacionobservaciones

FK id_tipo

subtema

PK id_subtemadescripcion

Tema

PF titulo_unicoPF id_subtema

descripcion

revistas

PK volumenPK numero

añonombre

FK titulo_unico

ejemplares

PK id_ejemplarocupado(s/n)

FK volumenFK numero

articulos

PK id_articuloautortitulopagina_revista

FK volumenFK numero

prestamo

PK id_prestamoperiodo_alquiler

FK titulo_unicoFK id_socio

socio

PK id_sociocedulaapellidosnombredirecciontelefono

lista_espera

PF titulo_unicoPF id_prestamoFK id_socio

Page 32: Base de Datos02

La empresa de suministros eléctricos “El Chispa” te encarga hacer un diseño de BD de control de stocks y facturación con los siguientes requerimientos:“El Chispa” vende artículos. De cada artículo se quiere guardar el código del artículo, nombre, color, medidas, fabricante y precio de venta. Por ejemplo:E12, enchufe txuco, blanco, 9x 9 cm, Simón, 2’10 €.Un artículo no puede ser suministrado por más de un fabricante y no queremos guardar los precios de venta antiguos, sólo el actual.De cada fabricante queremos guardar información del código del fabricante, nombre, dirección, población, teléfono y forma de pago (al contado, cheque o transferencia).De cada venta “El Chispa” hace un Doc de entrega/venta, donde constan el código de entrega/venta, fecha, datos del cliente, número y código de los artículos vendidos, precio por unidad y precio total por artículo (número de unidades x precio/unidad).A finales de mes o cuando toque, se agrupan los albaranes hechos a un cliente en una factura donde queremos que conste: código de factura, fecha, datos del cliente, la información de cada albarán (número y nombre de los artículos, precio por unidad y precio total por artículo), total de la factura, forma de pago y vencimiento en caso que el pago no sea al contado. Todo albarán sólo se puede facturar una sola vez.De un cliente se quiere guardar el NIF, nombre, dirección, población y teléfono. Una factura pertenece únicamente a un cliente.Tenemos un único almacen donde guardamos todos los artículos. Queremos guardar el número de artículos que tenemos en el almacén en un momento determinado.Los fabricantes envian artículos al almacen. Queremos guardar los envíos de entrada al almacen. Todo envío consta únicamente de un artículo. De cada envío queremos saber la fecha, código del artículo y número de unidades enviadas. Un fabricante puede enviar el mismo día unidades de un mismo artículo. En este caso se suma el número de unidades enviadas en la misma fecha.

32

articulo

PK id_articulonombrecolormedidasprecio_ventanumero

FK cod_fabricante

fabricante

PK cod_fabricantenombredireccionpoblaciontelefono

FK id_forma_pago

envio

fecha_envioFK id_articuloFK cod_fabricante

forma_pago

PK id_forma_pagodescripcion

albaran

FK id_articuloprecio_unidadprecio_total

FK id_facturaFK id_entvent

doc_entreg_venta

PK id_entventfechacantidad

FK cod_clienteFK id_factura

cliente

PK cod_clienteceduladireccionpoblaciontelefono

factura

PK id_facturafechatotal_facturavencimiento

FK cod_clienteFK id_forma_pago

Page 33: Base de Datos02

Ejercicio 5. Conflictos bélicos

Una organización internacional quiere hacer un seguimiento de los conflictos bélicos que se producen en el mundo. Por esto quiere crear una BD que responda a los siguientesrequerimientos:Un conflicto es cualquier lucha armada que afecte a uno o a diversos paises, donde se producen muertos i/o heridos. Todo conflicto se identificará por un nombre o causa que provoca el conflicto. Este nombre puede cambiar con el paso del tiempo, por lo que cada conflicto se identificará con un código numérico único. Para cada conflicto se quiere guardar los paises queafecta así como el número de muertos y heridos par cada país y el total.Los conflictos pueden ser de diferentes tipos, según la causa que los haya originado, clasificándose, como mucho, en cuatro grupos: territoriales, religiosos, económicos y raciales. En cada uno se guardarán diferentes datos. En los territoriales tendremos las regiones afectadas, en los religiosos las religiones en conflicto, en los económicos las materias primas disputadas y en los raciales las razas enfrentadas.En los conflictos intervienen diferentes grupos armados (como mínimo dos) y diferentes organizaciones intermediarias, pudiendo no haber ninguna. Los mismos grupos armados y organizaciones intermediarias pueden intervenir en diferentes conflictos. Tanto los grupos como las organizaciones podrán entrar y salir del conflicto. En este caso se recogerán las fechas de incorporación y de salida. Podría ser que en un momento determinado un grupo u organización no interviniera en ningún conflicto. Para cada grupo armado se guarda un código que se le asigna y un nombre. Cada grupo armado dispone de una o más divisiones y es liderado por un único líder político. Las divisiones de que dispone un grupo se numeran consecutivamente y se registra el número de barcos, tanques, aviones y hombres de que dispone así como les bajas que ha tenido. Para los grupos armados se obtiene el número de bajas como la suma de las bajas producidas en todas las divisiones.Los traficantes de armas suministran diferentes tipos de armamento a los grupos armados. De cada tipo de arma se recoge un nombre y un indicador de su capacidad destructiva. De cada traficante se tiene un nombre y los diferentes tipos y cantidades de armas que puede suministrar. Se guarda el número total de armas de cada tipo que cada traficante suministra a un grupo armado. Los líderes políticos se identifican por su nombre y por código del grupo armado que lideran.Además se guarda una descripción en texto de los apoyos que ha recibido.Cada división la pueden dirigir conjuntamente un máximo de tres jefes militares, a pesar de que cada jefe militar no dirige más que una división. A cada jefe militar se le identifica por un código y rango que tiene. Dado que un jefe militar no actúa por iniciativa propia, sino por iniciativa de un único líder político de los que lideran el grupo armado donde pertenece el jefe, queremos saber quién es este líder político a quien obedece.De las organizaciones intermediarias se recojerá su código, nombre, tipo (gubernamental, no gubernamental, internacional), la organización de quien depende (una como máximo), el número de personas que mantiene desplegadas en cada conflicto y el tipo de ayuda que da en cada conflicto que puede ser únicamente uno dels siguientes tipos: médica, diplomática o presencial.Con diferentes finalidades, los líderes políticos dialogan con las organizaciones. Se desea recoger explícitamente esta información. Así, para cada líder se guardarán aquellas organizaciones con las que dialoga y viceversa.

33

Page 34: Base de Datos02

conflicto

PK codigonombre_causafecha_ingresofecha_salida

FK id_tipoFK id_organizacFK id_grupo

tipo_conflicto

PK id_tiponombreregionesreligionmateria_primarazas_enfrent

pais

PK id_paisnombreubicacioncontinentepoblacion

conflicto_pais

PF codigoPF id_pais

numero_muertosnumero_heridos

organizaciones

PK id_organizacnombredependiente(s/n)num_personas

FK id_tipoFK id_tipo_ayuda

tipo_organizacion

PK id_tipodescripcionestado

tipo_ayuda

PK id_tipo_ayudadescripcionestado

grupos_armados

PK id_gruponombremonto_bajas

lider_politico

PK id_lidernombredescripcion_apoyos

PF id_grupo

divisiones

PK id_divicionnum_barcosnum_avionesnum_buques

FK id_gruponum_hombresnum_bajas

lider_militar

PK id_lider_militarrango

FK id_divicionPF id_liderPF id_grupo

organizaciones_lider_politico

PF id_organizacPF id_lider

fechaobservacion

traficante

PK id_fabricantenombre

FK id_arma

armas

PK id_armanombrecapac_destructiv

grupos_armados_traficante

PF id_grupoPF id_fabricante

34

Page 35: Base de Datos02

Ejercicio 6. Parques naturales

El ministerio de Medio Ambiente decide crear un sistema de información sobre parques naturales gestionados por cada Comunidad Autónoma. Después de un análisis exhaustivo del contexto se ha llegado a las siguientes conclusiones:Una Comunidad Autónoma (CA) puede tener varios parques naturales. En toda la comunidad autónoma existe un único organismo responsable de los parques. Un parque puede estar compartido por más de una comunidad.Un parque natural se identifica por un nombre y la fecha en que fué declarado parque natural, y está compuesto por varias áreas identificadas por un nombre (único dentro del parque pero puede ser genérico entre parques naturales) y una extensión en kilómetros cuadrados. Por motivos de eficiencia se quiere favorecer las consultas que hagan referencia al número de parques existentes en cada CA y la superficie total declarada como parque natural en cada CA.En cada área residen especies que pueden ser de tres tipos: vegetales, animales i minerales.Cada especie tiene una denominación científica, una denominación vulgar y un número de individuos en cada área. De las especies vegetales se quiere saber si tienen floración y en qué periodo (mes) se produce. De los animales se quiere saber su tipo de alimentación (herbívora, carnívora u omnívora) y su periodo de celo. De los minerales se quiere saber si se trata de cristales o rocas. Interesa, además, registrar qué especies sirven de alimento a otras especies, teniendo en cuenta que ninguna especie mineral se considera alimento de ninguna otra especie y que una especie vegetal no se alimenta de ninguna otra especie.Cada parque tiene un personal en dedicación exclusiva. De este personal se guarda el DNI, número de la SS, nombre y apellidos, dirección, teléfonos (fijo y movil) y sueldo. Se distinguen cuatro tipos de personal:• Personal de gestión: registra los datos de los visitantes del parque y se situan a la entrada del parque. Las entradas se identifican por un número y orientación (N, S, E, O).• Personal de vigilancia: vigila una área determinada del parque que recorre un vehículo de un tipo determinado y con una matrícula.• Personal de conservación: mantiene y conserva un área determinada del parque. Cada uno realiza una tarea determinada (limpiar, dar de comer, jardinería, etc.) en un lugar concreto del área (caminos, zona recreativa, jardines, etc.).• Personal investigador: tiene una titulación que hay que guardar y puede realizar sólo o en grupo proyectos de investigación sobre una determinada especie.Un proyecto de investigación tiene un título, presupuesto, un único investigador principal, un periodo de realización y un conjunto de investigadores que participan.Un visitante (DNI, nombre, apellidos, dirección y profesión) puede alojarse en els alojamientos que tiene el parque. Los alojamientos tienen una capacidad limitada y una determinada categoría.Los alojamientos organizan excursiones al parque en vehículo o a pié unos determinados días de la semana y a horas determinadas. Para ir a estas excursiones hay que ser visitante del parque.

35

Page 36: Base de Datos02

36

Page 37: Base de Datos02

asociaciones

PK CIFnombredireccionprovinciapublica(s/n)

FK id_tipotipo_asociacion

PK id_tipodescripcionestado

Socios

PK DNInombreapellidosdireccionprovinciafecha_altacuota_mensualaporte_anual

FK CIF

Trabajador

PK DNInombretelefonofecha_ingreso

FK id_tipoFK CIF

tipo_trabajador

PK id_tiposueldocargoporcentaje

proyectos

PK id_proyectoregionobjetivo

FK CIF

Trabajador_proyectos

PF DNIPF id_proyecto

pais

Ejercicio 7. ONG

La coordinadora nacional de ONGs quiere mantener una base de datos de las asociaciones de este tipo que existen en nuestro país. Por ello necesita guardar información sobre cada asociación, los socios que las forman, los proyectos que realizan y los trabajadores que particpan. De las asociaciones se quiere almacenar su CIF, nombre, dirección, provincia, el tipo de ONG (ecologista, de integración, de desarrollo, etc.) así como si está declarada de utilidad pública por el Ministerio de Interior.Cada asociación está formada por socios de quienes se quiere conocer su DNI, nombre y apellidos, dirección, provincia, fecha de alta de la asociación, cuota mensual con la que colaboran y la aportación anual que realizan. La aportación anual será el total de las cuotas mensuales más otras aportaciones voluntarias.Cada trabajador de una ONG se identifica por su DNI, nombre y apellidos, dirección, teléfonos y fecha de ingreso. Todo trabajador trabaja para una única ONG. Estos trabajadores pueden ser de dos tipos: profesionales y voluntarios. Los profesionales cobran un sueldo y ocupan un cierto cargo en la asociación. Se quiere guardar el cargo que ocupan, la cantidad que pagan a la SS i el porcentaje de IRPF que se les descuenta. Los voluntarios trabajan en la organización desinteresadamente. Queremos saber de ellos su edad, profesión y horas que dedican a la asociación.Las asociaciones realizan proyectos a los cuales están asignados sus trabajadores. Un trabajador puede trabajar en diferentes proyectos de un mismo país. De cada proyecto se quiere almacenar un número de identificación en la ONG, país y región donde se realiza, el objectivo que pretende y el nombre de personas que afecta.

37

Page 38: Base de Datos02

Ejercicio 8. Pinacoteca

El Ministerio de Educación y Ciencia quiere tener información sobre todos los cuadros que se encuentran en las pinacotecas.De cada pinacoteca se quiere saber el nombre único, ciudad donde se encuentra, dirección y extensión en metros cadrados.Cada pinacoteca tiene un conjunto de cuadros de los cuales se quiere guardar el código (único para todas las pinacotecas), nombre, medidas, fecha en que se pintó y técnica utilizada par pintarlo.Cada cuadro es pintado por un único pintor, del que queremos saber el nombre y apellidos, ciudad y país donde nació, fecha de nacimiento y fecha de la muerte. Un pintor puede tener un único maestro, pero un maestro puede serlo de varios pintores.Los pintores pueden pertenecer o no a una escuela de la cual se quiere saber el nombre así como el país y fecha en que apareció.Los pintores pueden tener también uno o varios mecenas que los protejen. De los mecenas queremos saber el nombre y apellidos, país y fecha de nacimiento, fecha de la muerte y la fecha de inicio y final del soporte que dió al pintor. Un mecenas puede serlo de varios pintores y un pintor puede tener varios mecenas en periodos diferentes. Se quiere recoger la relación que existe entre un pintor y su mecenas.

38

Page 39: Base de Datos02

Ejercicio 9. Proyectos de investigación

En la UAB se quiere llevar un un control sobre els proyectos de investigación que se realizan.Se quiere diseñar una BD que contenga toda la información sobre los proyectos, departamentos, grupos de investigación y profesores. Se consideran los siguientes requisitos: Un departamento se identifica por un nombre, código, centro (Facultad o Escuela) donde está situado, dirección, profesor de la universidad que ejerce como director de departamento y un teléfono de contacto (secretaría de departamento).Dentro de un departamento se crean Unidades donde están adscritos los profesores. Todo profesor ha de pertenecer a una unidad. Cada unidad tiene un nombre único dentro de la universidad, pertenece a un único departamento i está asociada a un área de conocimiento (CCIA, ATC, etc.). Cada unidad tiene un jefe de unidad que ha de ser profesor de universidad. Un profesor del departamento está identificado por un DNI, nombre y apellidos, años de experiencia en investigación, unidad a la que pertenece y proyectos en que trabaja. Existen tres tipos de profesorado: Funcionario (Catedráticos de Universidad y Titulares de Universidad), Ayudantes de Universidad y Asociados. Del personal funcionario queremos saber el código de funcionario, el año de su toma de posesión y perfil de la asignatura a la que opositó. De los Ayudantes de Universidad queremos saber la fecha de incorporación. Del Asociado queremos saber la fecha de incorporación y la empresa en que trabaja.Cada proyecto de investigación tiene un nombre, código único, presupuesto, fechas de inicio y final del proyecto y un único profesor que ejerce de investigador principal del proyecto. Un proyecto puede estar financiado por uno o varios programas nacionales.Un programa nacional viene identificado per un nombre único y la cantidad total de dinero que el programa dispone para financiar proyectos. Dentro de cada programa cada proyecto tiene un número asociado y una cantidad de dinero con que el programa financia el proyecto.Un profesor puede participar en varios proyectos y puede ser investigador principal de varios proyectos. En cada proyecto un profesor se incorpora en una determinada fecha y lo abandona en otra con una determinada dedicación (horas por semana). Un profesor puede incorporarse más de una vez a un proyecto en fechas separadas.

39

Page 40: Base de Datos02

40

proyecto

PK cod_proyectonombrepresupuestofecha_inifecha_fin

PF dniPK nom_pro

departamentos

PK cod_depnombrecentrodirecdirectorfono

PK nombre_uniPK dni

incorp_profe

PK incorpfecha_inifecha_out

PF dniPF cod_proyectoPF nom_pro

unidad

PF nombre_uniarea

PF dniPF cod_dep

prof_dep

PK dninombreapellidoexperiencia

funcionario

fecha_posesionPF dniPF dni1

ayudantes_u

fecha_incorpPF dniPF dni1

asociado

fecha_incorpempresa

PF dniPF dni1

programa_nac

PF nom_prodinero_dispfinanciamiento

PF cod_proyectoPF dni

prof_dep_ayudantes_u

PF dniPK dni1

Page 41: Base de Datos02

Ejercicio 10. Reserva de salas

La ETSE quiere controlar el sistema de reservas de sus salas que pone a disposición del personal de la Escuela durante un curso académico con las siguientes restricciones:De cada sala (sala de grados, sala de actos, seminarios, aulas) queremos saber el código (Q2/xxxx,Q0/xxxx, etc.), el tipo de sala (aula, seminario, sala de actos, sala de grados, etc.), capacidad y equipamiento audiovisual que contiene de forma permamente. Del equipamiento audiovisual que tiene la Escuela queremos guardar un código único, nombre (proyector, cañón, etc.), si és permanente o móvil y la sala donde se encuentra, caso de que sea fijo. Tenemos cuatro tipos de equipamiento: cañón de proyección, proyector de transparencias, proyector de diapositivas y ordenador. Del cañón de proyección queremos saber la marca, modelo, luminosidad y resolución máxima en la que trabaja. Del proyector de transparencias queremos conocer su luminosidad y si acepta transparencias en color o no. Del proyector de diapositivas interesa guardar la marca, modelo, si admite cargador clásico o moderno y luminosidad. Del ordenador queremos saber el procesador, RAM y resolución máxima. Un profesor puede reservar una sala en una fecha concreta (dia, mes y año) a intervalos de hora (de 12:00 a 13:00, de 17:00 a 18:00). Cuando reserva la sala, el profesor también reserva todo el equipamiento fijo que contiene la sala.Un profesor también puede reservar equipamiento audiovisual móvil con un número variable (2 cañones, 3 proyectores, etc.) en una fecha concreta (día, mes y año) a intervalos de una hora. Dada una fecha y una hora, queremos saber las salas disponibles y el equipamiento audiovisual disponible. A finales de curso queremos saber el grado de ocupación de las salas.

41

Page 42: Base de Datos02

Ejercicio 11.

Una base de datos almacena información sobre unas pruebas de estandarización de ordenadores personales. Esta se estudia en base a unos programas software que realizan una serie test a cada máquina. Los paquetes de software son suministrados por unas compañías distribuidoras. Cada compañía se identifica por su número de identificación fiscal (CIF) y tienen un nombre (que también es único para cada empresa), un domicilio social, un teléfono de consulta y el nombre de la persona encargada del departamento de ventas de la empresa. Cada uno de estos programas es propiedad de una sola compañía y tiene un nombre único, un precio, unas necesidades técnicas (disco, memoria y tipo de placa base) para su buen funcionamiento. Los equipos sobre los que se hacen pruebas con estos programas están identificados por un número de serie y disponen de unas características técnicas (memoria, disco, tipo de placa base y velocidad). Además se incluyen los datos del precio original del equipo y el año de fabricación. De entre estos equipos hay una serie de ellos son especialmente importantes porque son una novedad en el mercado y su test tiene especial importancia. De ellos guardaremos además el mes en que se ha lanzado al mercado y el país que aporta la tecnología. Los test dan resultados numéricos que permiten medir la velocidad de cálculo numérico, de acceso a disco, de acceso a la disquetera, de presentación gráfica y de ordenación de datos en memoria. Todos estos datos son almacenados junto con una valoración personal (en 30 palabras) del ingeniero que realiza el test.

42

Page 43: Base de Datos02

Ejercicio 12.

Se quiere crear una base de datos que almacene información sobre la liga española de primera división. Esta información es anual (sólo datos de la liga en curso) y se recolectan los datos sobre los equipos que militan ese año en la categoría, su plantilla, cuerpo técnico y directivos, partidos en los que se enfrentan y resultados (parciales y globales de la liga). Los equipos están compuestos por un entrenador, un médico, un preparador físico, un relaciones públicas, un segundo entrenador, un presidente del club, varios consejeros y la plantilla de jugadores. De todo este personal se guarda su nombre, DNI, teléfono, dirección y sueldo. Además, de los jugadores se guarda el apodo o alias, el puesto en el equipo, los años para el fin del contrato, la cuantía para la cláusula de rescisión y el número de años en el equipo.El campeonato de liga está compuesto por una serie de jornadas que se identifican con un número. Cada jornada está formada por un conjunto de partidos, que son enfrentamientos entre una pareja de equipos y se juegan en el campo de uno de los dos. Queremos tener asociados los partidos a cada jornada y deseamos conocer su resultado (5-0, 3-1, 0-0, etc.), la fecha y hora en que se celebraron, la recaudación por taquilla, el número de espectadores y quienes forman la terna arbitral (un árbitro y dos jueces de línea). Además guardamos para cada jornada el total de goles marcados y la recaudación obtenida por medio de las quinielas de esa jornada. Los colegiados (árbitros y jueces de línea) son seleccionados al principio de temporada para participar en esa categoría. De ellos se almacena el nombre, DNI, antigüedad en la categoría y categoría en la que participó el año anterior. En cada temporada no son intercambiables los papeles de árbitro y juez de línea (un juez de línea no puede actuar como árbitro ni al revés). De los jueces de línea, además de los datos antes mencionados guardamos un dato que indique las posibilidades de desempeñar funciones de árbitro en la temporada siguiente y edad, y de los árbitros si ha sido o no internacional y si fue futbolista anteriormente.

43

Page 44: Base de Datos02

Ejercicio 13.

Una agencia de transportes agrícolas quiere diseñar una base de datos para su gestión diaria. La empresa tiene contratados a conductores de los que necesita conocer el nombre, DNI, fecha de nacimiento y dirección particular. También dispone de una flotilla de camiones de los que necesita los siguientes datos : marca, modelo, matrícula, año de fabricación, tipo (Frigorífico o Normal) y carga máxima autorizada.

A cada conductor se le organizan rutas que duran varios días en las que irá recogiendo y entregando cargas en distintas provincias (en cualquier caso nunca realizan dos rutas un mismo día). Para ello se le asigna un camión y se le entrega la hoja de ruta.

La hoja de ruta es un documento compuesto por varias líneas que le informa de cada uno de los trayectos que debe realizar y el contenido del mismo. A continuación se muestra un ejemplo de la hoja de ruta de Luis Molina correspondiente al 15/3/94 :

Nombre : Luis Molina

DNI : 22222

Matrícula : MA- 5656 -BZ

Tipo de vehículo : Frigorifico

Fecha salida : 15-3-94 Fecha llegada : 18-3-94Empresa

Dirección

Ciudad

Operación

Artículo

Nºcajas

Peso

Fecha Hora

Getisa P.Viso Málaga

Carga Limón 100 20000

15-3-97 07:00

ZumLi c/Canal Jaén Descarga

Limón 30 6000 15-3-97 13:00

Tricer c/Prim Toledo

Descarga

Limón 70 14000

15-3-97 20:00

Fervisa c/Montes

Toledo

Carga Trigo 200 10000

16-3-97 07:00

Cereasa c/Oca Toledo

Carga Centeno

300 15000

16-3-97 10:00

Tricer P.Valle Bilbao Descarga

Trigo 200 10000

16-3-97 21:00

Tricer P.Valle Bilbao Descarga

Centeno

300 15000

16-3-97 21:00

Lopasa c/Mar Lugo Carga Patata 500 30000

17-3-97 08:00

Merci C/Campo

Málaga

Descarga

Patata 500 30000

18-3-97 06:00<![endif]>

44

Page 45: Base de Datos02

CHOFER

PK id_chofernombretelefonofech_nacdireccion

CAMIONES

PK id_camionmarcamodelomatriculaaño_fab

PF id_tip_camioncapacidad_max

TIPO_CAMION

PK id_tip_camiondescripcion

EMPRESA

PK id_empresanombredireccion

PF id_ciudadCIUDAD

PK id_ciudadnombre

ARTICULO

PK id_articulonombreprecio_x_kgmodo_transporte

CAB_HOJA_RUTA

PK id_cabeceraFecha_salidaFecha_llegada

PF id_choferPF id_camionPF id_detalle

DETALLE_H_RUTA

PK id_detallepeso_x_artfech_entregahora_entrega

PF id_operacionPF id_articulo

OPERACION

PK id_operaciondescripcion

IMPREVISTO

PK id_imprevistoFechaHoraevento

PF id_cabecera

(Observe con detalle las líneas 6 y 7)

Para facilitar los trabajos de asignación, la agencia quiere tener una relación de empresas con las que trabaja, su nombre, NIF, dirección, ciudad (supondremos que una empresa no tiene dos ubicaciones en la misma ciudad, pero sí que puede tener sedes en distintas ciudades, como ocurre con Fervisa, que tiene almacenes en Toledo, Ciudad Real, Madrid y Guadalajara).

También se quieren conocer algunos datos sobre los artículos que esta agencia transporta, a saber: denominación del artículo, precio por Kg. transportado, e indicación de modo de transporte (frío o no, para poder realizar las asignaciones de camiones).

Por último, en una ruta, pueden ocurrir imprevistos tales como averías, etc. Para estos casos existe una hoja de Eventos en la que se indican los mismos:

DNI Fecha Hora Vehículo Evento22222222

16-3-94 14:30 MA-5656-BZ

Rotura Bomba del agua

22222222

16-3-94 16:15 MA-5656-BZ

Pinchazo (día negro)

45

Page 46: Base de Datos02

Ejercicio 14.

Se quiere construir una base de datos que guarda la información sobre la tienda, AMAZONIA que vende libros, discos y películas exclusivamente por Internet a partir de la siguiente dirección http://www.amazonia.comPara poder comprar algo, antes hay que darse de alta. Para ello se accede a la dirección http://www.amazonia.com/client_form.html y se rellenan los datos de nombre del cliente, DNI, dirección, teléfono, dirección electrónica y edad. El cliente debe ser mayor de edad y como datos mínimos debe proporcionar nombre, DNI, edad y dirección postal. Tras rellenar el formulario, el sistema devuelve un nombre de usuario (username) y una palabra de paso (password), que debe ser usada en todos los accesos a los servicios que ofrece la tienda. Todos los pagos se hacen por tarjeta (hay que indicar el tipo de tarjeta: VISA, American Express, etc.), su número y la fecha de caducidad, pero estos datos no se piden en el formulario de alta de cliente porque se le permite al cliente que haga cada pago con una tarjeta diferente.El sistema ofrece la posibilidad de consultar un catálogo con los libros de que dispone. Se entra en un formulario http://www.amazonia.com/search.html. y se puede buscar por nombre del autor o por nombre de la obra. Si se pone el nombre del autor sólo, se muestran, en orden cronológico, todas las obras donde ha intervenido este autor y, desde ellas se podrá entonces seleccionar la obra que se quiere consultar, de la que se nos mostrará su ficha completa.

En el caso de libros, se nos proporciona información sobre el título, número de páginas, año de publicación, editorial (única para cada obra) y autores (pueden ser varios). Los libros disponen de un ISBN que es un código único que determina cada obra literaria en el mundo publicada en una determinada editorial; es decir, que si esa misma obra se reeditara en otra editorial, se le asigna un nuevo ISBN y, a todos los efectos, es un nuevo libro. Los clientes coleccionistas compran todas las ediciones de determinadas obras, por lo que el sistema de base de datos debe manejar esta información sobre reediciones.

Desde la ficha de la obra también es posible pedir información del autor:

46

Page 47: Base de Datos02

nombre, nacionalidad, edad y una foto digitalizada (las fotos se guardan en una serie de ficheros en formato GIF en el mismo directorio que la base de datos).

Si el cliente desea hacer un pedido de esa obra, pulsa, desde el botón de la ficha completa, el botón correspondiente y devuelve el precio de la obra (precio e IVA) en la página http://www.amazonia.com/request.html. Se pueden encargar en un pedido varios ejemplares de la misma obra. Además se le piden los datos bancarios, se le da el peso del libro y el tipo de encuadernación y se le informa del coste de entrega en su domicilio. El cliente puede seleccionar entrega en 24H (su precio es de 3000 por paquetes hasta de 10Kg, con un suplemento de 500 por cada kilo que exceda el límite) o entrega en una semana (entonces el precio es de 1000 por cada 20 kg. o fracción). Note que el cliente puede comprar la obra a un precio y en el instante siguiente cambiar de precio (por rebajas o por subidas), sin embargo, a cada cliente se le cobra el precio que se le ha dicho en el momento de su petición.

El cliente rellena este formulario y recibe una clave de pedido para futuras reclamaciones. Además se le manda un correo con todos los datos de ese pedido y se le vuelve a mandar la clave del pedido. El sistema guarda la información de si el correo ha sido enviado son éxito. A continuación se le pregunta al cliente si quiere añadir más artículos a su pedido. Si es así, vuelve al formulario http://www.amazonia.com/search.html y, en caso contrario, a la página de bienvenida. La contestación a esta pregunta es importante para evitar gastos de envío. El sistema de bases de datos controla que un mismo cliente no haga más de un pedido por día. Es decir, si el cliente hizo un pedido por la mañana y por la tarde quiere encargar más cosas, el sistema automáticamente busca la clave del pedido de la mañana e incluye los nuevos artículos. El sistema no le dejará encargar un pedido nuevo hasta el siguiente día.

Del mismo modo a cómo se ha indicado que se hacen búsquedas y/o encargos de libros, se pueden hacer sobre películas y discos (en formato CD). La diferencia principal estriba en los datos a guardar de cada cosa: de los discos guardaremos el nombre del álbum, sus intérpretes (también, como sucede con los libros, pueden ser varios), año de publicación, la casa discográfica propietaria de los derechos de explotación de la obra, estudio de grabación y contenido de la obra (lista con los nombres de las canciones que integran cada disco). Los clientes pueden disponer de la siguiente información sobre los intérpretes discográficos: nombre (del artista, si es solista, o del grupo), edad, país de procedencia y foto. Para las películas guardamos su título, año, directores (y de ellos queremos guardar los mismos datos que para los artistas), reparto de la película, duración en minutos, ciudades donde se rodó, la productora de cine, que es la única dueña de sus derechos, y el nombre del productor.

47

Page 48: Base de Datos02

El papel del ISBN de las obras literarias lo hace en este caso un número de serie (alfanumérico) que permite identificar a cada disco y a cada película. Tenga en cuenta que también en estos casos se pueden producir reediciones de obras antiguas y vale todo lo que se dijo para los libros.

Por último, tenga también en cuenta que para el caso de los discos es posible realizar búsquedas por el estudio de grabación y de las películas por el encargado de su producción.

La empresa está pensada como una apuesta global a la cultura de nuestro siglos en estos tres soportes (papel, CD y cinta de vídeo). Por ello, se dispone de una extensa información que permite relacionar estos tres tipos de artículos. Estas relaciones pueden venir dadas de muchas formas:

1.Porque un determinado libro sea al guión de una película (se llama guión al texto escrito que describe paso a paso la película, es decir, de guiones diferentes, salen películas diferentes, pues en el caso de los guiones nunca hay reediciones, y, como un remake de una película anterior nunca es idéntica a su antecesora, el guión de la nueva será diferente al de la original). Hay que controlar que el título y el año de la película y el del guión correspondiente coinciden.2.Porque un disco sea la banda sonora de una película (y se cumplen las mismas reglas que entre los guiones y las películas).3.Porque un disco sea la edición para sordos de un determinado libro (y también se dan las mismas circunstancias)La empresa quiere que tengamos a disposición de los clientes una ficha extendida que recoja esta información de forma que buscando un título de película proporcione información sobre su banda sonora y el guión de la misma si ésta está disponible. Igualmente si se trata de un libro en formato CD para sordos, etc.

El sistema pretende incentivar la compra de los clientes, por lo que cada mes se le aplica a cada cliente un descuento de un 1% por cada artículo comprado en el mes anterior.

La tienda aprovecha al máximo las posibilidades de su presencia en Internet y pone a disposición de los clientes una serie de listas de discusión sobre determinados temas. Estas listas, que se identifican con un nombre, tienen una descripción que determina su contenido y son en realidad unos foros de discusión virtuales, de modo que los clientes expresan su opinión sobre asuntos relacionados con esa descripción. En la página http://www.amazonia.com/lists/Iberoamerica se presenta la información de la lista sobre temas relacionados con Iberoamérica. Cada cliente, participa en el debate mandando un correo al coordinador de cada lista

48

Page 49: Base de Datos02

([email protected] en nuestro caso) que lo hace público si considera que es de interés para el resto de la lista. Para participar en una lista hay que darse de alta en la misma mandando un correo al coordinador. Todas las intervenciones (tanto si son publicadas como si no) son guardadas por el sistema junto con los datos del cliente que la ha realizado, el texto del mensaje y su fecha (día y hora completa). Hay que comprobar que estos correos pertenecen a usuarios de la lista y no a clientes en general Estas intervenciones, además, pueden ser contestadas a su vez por otros clientes, para ello, en el correo que envía el cliente identifica el mensaje al que quiere contestar y su texto de contestación. De este modo, el coordinador mantiene un foro totalmente dinámico (si se pincha un correo, nos devuelve una nueva página con todas las contestaciones a que ha dado lugar y sobre cada una de ellas, lo mismo). Esto permite seguir las discusiones en cualquier momento desde el principio de la lista. Para que estas listas potencien las compras de artículos de la empresa, ésta ha dotado al sistema de dos recursos: a)Si en un mensaje, un cliente cita un libro, disco o película de la tienda, en la página de discusión esta cita aparece activa y si se pulsa aparece su ficha completa (esto requiere que el sistema guarde estas referencias asociadas a cada correo para que el departamento de desarrollo de páginas las vaya actualizando)b)El coordinador propone cada cierto tiempo una serie de temas de interés (suficientemente cercanos a libros, discos o película de la empresa). Cuando el cliente consulta la lista de discusión puede consultar la lista o echar un vistazo a cada uno de los temas que están activos. Por ejemplo, en la lista Iberoamérica el administrador tiene propuestos tres temas: “Realismo Mágico”, “Intercultura América-Europa” y “El Pulmón del Mundo”. Cada nombre identifica a un tema, pero de este pueden participar diferentes listas (por ejemplo el tema “El Pulmón del Mundo” está también propuesto en una lista llamada “Ecología: Desarrollo Sostenible”). Estos temas se les van ocurriendo a los coordinadores y siguen el siguiente proceso: cuando tiene una idea, la da de alta como tema poniéndole un nombre, pero le pone la opción de desactivada. Añade entonces un texto que describe lo que pretende con la creación de ese tema e indica que listas pueden estar relacionadas con ese nuevo tema. Además propone libros, discos o películas que están directamente relacionados con este tema.

Cuando un tema está listo para salir a la luz, se le pone la opción de activado y se le crea una página que guardará toda la discusión que genere. Cuando los temas comienzan a perder el interés de los clientes se vuelven inactivos y se anula su referencia a la página. Sin embargo, nunca se borra su información, ni la de los correos que ha generado. Se debe poder saber en qué periodo ha estado activa cada lista.

49

Page 50: Base de Datos02

La empresa genera una revista virtual mensual (que se consulta también desde la página de bienvenida de Amazonia). Dicha revista tiene dos secciones: superventas y novedades. En novedades, se generan expectativas sobre productos que llegarán próximamente. En cada revista se presenta siempre un libro, un disco y una película. Y además de la ficha completa de cada uno de ellos, se muestra una reseña (pequeña crítica) escrita por un personaje de prestigio. La reseña va siempre firmada por su autor. Estos productos tienen un 15% de descuento. Superventas recoge, en orden, la información de la obra más vendida en el mes anterior en cada departamento (libros, discos y películas).

50

cliente

PK dninombredirecciontelefonoemailedadpostal

Tarjeta_credito

FK dninum_tarjnombrefecha_caduc

FK id_tipo_tarjBanco

tipo_tarjeta

PK id_tipo_tarjnombreestado

Login

FK dniusuariopassword

pedido

PK id_pedidocantidadfecha

FK dniFK id_entrega

Clave_pedido

PF id_pedidoPK clave

emailestado

tipo_entrega

PK id_entregadescripcionprecio_actualprecio_exceso

Discos

PK ISBNnombre_albumaño_publicestudio_grabac

FK id_discograficaFK id_interpreteDiscografica

PK id_discograficanombredireccestado Interprete

PK id_interpretenombreedadpais

FK id_tipoFK codigo_foto

Contenido

descripcionPF ISBN

pedido_Discos

PF id_pedidoPF ISBN

tipo_interprete

PK id_tipodescripcionestado

Libro

PK ISBNtitulonumPaginasañoprecioedicionejemplarespesotipo_encuad

FK id_autor

Libro_pedido

PF ISBNPF id_pedido

Editorial

PK id_editorialnombredireccionestado

Editorial_Libro

PF id_editorialPF ISBN Autor

PK id_autornombrenacionalidadedad

FK codigo_fotofotos

PK codigo_fotofotoestado

Director

PK id_directornombreedadpais

FK codigo_foto

pelicula

PK ISBNtituloañorepartoproductora

FK id_directorFK id_productor

pedido_pelicula

PF id_pedidoPF ISBN

Ciudad

PK id_ciudadnombrepais

FK ISBN

Productor

PK id_productornombredireccionpaisestado