Base de datos pdf

1,019 views
801 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,019
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Base de datos pdf

  1. 1. Procesamiento de Archivos Vs. Base de Datos Cuando se manejan archivos existen algunos problemas como el tener: • Datos Repetidos (Redundancia). • No se manejaban estándares. • Había inconsistencia de datos. • Falta de seguridad en los datos. • No existían aplicaciones de uso general. • A diferencia de cuando manejamos Base de Datos: • Reducir Redundancia. • Poder compartir los datos (Tanto aplicaciones viejas como nuevas que utilizan la misma Base de Datos). • Poder con las normas establecidas (Estándares) • Mantener la seguridad en el sistema (Seguridades de acceso, de personas, seguridades en operaciones permitidas). • Mantener la Integridad de Datos. Base de Datos. Es un sistema que almacena datos que están relacionados en un repositorio en donde guardamos información integrada que podamos almacenar y recuperar. Componentes de una Base de Datos. • Hardware: Constituido por dispositivos de almacenamiento como disco, tambores, cinta, etc. • Software: Que es el DBMS o sistema administrador de la 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.
  2. 2. USUARIO DBMS Métodos de Acceso DATOS Tipos de Usuarios. • Usuario Final: Es la Persona que utiliza los datos, esta persona solo ve datos convertidos en información. • Desarrollador de Aplicaciones: Es la persona que desarrolla los sistemas que interactúan con la Base de Datos. • DBA (Database Administration): Es la persona que asegura integridad, consistencia, redundancia, seguridad; este es el administrador de la Base de Datos quien se encarga de realizar el mantenimiento diario o periódico de los datos. Conceptos Básicos de Base de Datos. • Archivo: Son conjunto de registros. • Registros: Los registros son un conjunto de campos. • Campos: Es la mínima unidad de referencia. Archivo Clientes Juan Pérez Ana Alban José Mora 20 28 30 $500 $1000 $1500
  3. 3. NIVELES DE ABSTRACCIÓN DE BASE DE DATOS. EXTERNO CONCEPTUAL INTERNO Nivel Externo o Visión del Usuario Final. Se ve como se manejan los datos ya convertidos en información. Nivel Conceptual. Se ve como esta conformada la Base de Datos, que tipo de datos tiene, como están estructurados los registros. Nivel Interno o Físico: Se ve como se almacenan los datos físicamente. DBMS (Database Management System). Subsistemas de un DBMS. Herramientas de definición Usuario de Aplicación Interfase de Procesamiento Desarrollo de Aplicaciones Diccionario de Datos Motor/Núcleo DBMS E/S Físicas S.O
  4. 4. Características y objetivos: • Independencia de datos : Me provee una independencia de datos vs mis aplicaciones Aplicación Contable Aplicación Financiera Aplicación Administrativa Minimizar redundancias : Datos repetidos • Nombre de cliente Juan Pérez Juan Pérez Sueldo del cliente $ 150 $ 150 • Independencia de datos : Poder proteger nuestro programa de aplicación frente a las modificaciones en la estructura de datos y viceversa sea en forma física y lógica • Independencia de física : Es protección a los programas de aplicación debido a cambios de la estructura del archivo o cambio en las características de los campos • Independencia de lógica : Protección a los programas de aplicación cuando se modifica el sistema Resumen Física Estructura de campos Lógica Esquema . . Aplicaciones
  5. 5. • Minimizar redundancia : Datos repetidos y distribuidos en cualquier parte, el efecto que ocasiona la redundancia es tener inconsistencia de datos y desperdicio de espacio de almacenamiento • Inconsistencia de datos : Datos que en un lugar tienen valor y en otro lugar tienen otro valor. Ej. Se actualizo el archivo de cliente pero no se actualiza el archivo de Transacciones • Integridad de datos : Conjunto de seguridades que son utilizadas para mantener los datos correctos 1. Fuentes de error Estas fuentes de error se originan si el programa de entrada de datos no esta valido Ej. • Fallas de hardware • Actualizaciones incompletas • Defectos de Hardware • Errores humanos Una técnica que utiliza el D.B.M.S para una entrada de datos no valida es la validación Validación: es protegerlos datos, validarlos en entrada de datos existentes tipos de validaciones • Validación en el tipo de dato : es si se define un campo como carácter o char y no se puede ingresar números enteros • Validación valor de datos : si se define un valor entero se puede especificar un rango y no se puede pasar de este valor Resumen nombre • Tipo de dato. (Char) • Valor de dato entero Validación • Valores claves o nulos • Integridad referencial
  6. 6. • Valores claves no nulos: asegura tener claves únicas no repetidas. • Integridad referencial : me asegura que existen registros hijos sin sus registros padres correspondientes Control de concurrencias o simultaneidad Este concepto se da en ambiente multiusaruios o sea varios usuarios tratando de acceder a un objeto de datos al mismo tiempo V1 V2 V3 . . VN Cliente Granularidad: es el tamaño de las unidades aseguradas Ej. La granularidad puede proteger un campo un registro un archivo etc. Bloqueo o Dead Lack: es la técnica que evita errores de concurrencia o simultaneidad se da cuando se desarrolla una espera circular entre dos transacciones y cada una de ellas solicita una actualización sobre el mismo archivo no permite a otro archivo utilizarlo el el recurso hasta que termine el proceso se da espera circular Resumen D.B.M.S Subsistemas Característica y objeto de un D.B.M.S o D.B.A Independencia de datos Minimizar redundancias Integridad de datos • Fuente de error • Validaciones • Control de concurrencia • Control de seguridad Granularidad Bloqueo (dead – lock)
  7. 7. Recuperación de datos: recuperar los datos frente a las fuentes de error mencionadas anteriormente. La restauración de la base de datos a su estado normal, que es responsabilidad del D.B.A quien es el responsable de implantar procedimiento de detección de errores y recuperación Recuperación B/D Alto disponibilidad de servicios y aplicaciones 1. Backup (respaldo) : Backup caliente( B/D es operativa /diario) Backup frió (B/D no es operativa / semanal) 2. Mirror o espejo : (Tener otra base de datos) 3. Archivo de logs : (Registro de transacciones) • Reverso o recuperar lo ultimo que se hizo en una base de datos Seguridad de datos: la seguridad los datos se pueden definir en los siguientes aspectos Objetos a asegurar: 1er objeto a asegurar son los dato después los programas y finalmente el esquema Codificación de clases: lo que me va a proveer el D.B.M.S es la seguridad de login usuario Control de acceso: se especifican seguridades en contra suceso no indicados orientado a personas no autorizadas Control y administración de recursos: el D.B.M.S debe proveer el D.B.A de todos los mecanismos para control y administración de recursos. Para que el deba cumpla con integridad de datos recuperación de errores implementación de seguridades Establecimiento de relaciones entre datos: el D.B.M.S debe proveer los recursos para el establecimiento de las relaciones entre los datos: Relaciones Uno a uno Uno a muchos Muchos a muchos
  8. 8. Diseño de aplicación: en esta etapa se diseñan los programas de aplicación que usaran y procesaran la base de datos. Esta etapa y el diseño de la base de dato son paralelos en la mayor parte de los casos, no se pueden finalizar el diseño délas aplicaciones hasta que se haya terminado el diseño de la base de dato La base de dato existe para dar soporte a las aplicaciones por lo que habrá retroalimentación del diseño de las aplicaciones al diseño de la base. En esta etapa hay que asegurarse de que toda la funcionabilidad especificada en los requisitos de usuario se encuentre el diseño de aplicación Prototipo: es opcional, es para construir prototipos de la aplicación que permita a los diseñadores y a los usuarios probar el sistema. Un prototipo es un modelo de trabajo de las aplicaciones del sistema el prototipo no tiene toda la funcionabilidad del sistema final pero es suficiente para que los usuarios puedan usar el sistema e identificar que aspectos están bien y cual no son adecuados además de poder sugerir mejoras a la inclusión de nuevos elementos. Implementación: en esta etapa se crea las definiciones de la base de datos a nivel conceptual externo e interno a si 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 o esquema de la base los ficheros donde se almacenan los datos y las vistas de los usuarios. Los programas de aplicación se implementan utilizando lenguajes de 3ra a 4ta generación, partes de estas aplicaciones son transacciones sobre la base de datos que se incrementan también mediante lenguaje SQL. La sentencia de este lenguaje se puede embeber en u lenguaje de programación anfitrión como: Visual Basic C++ También se implementan en esta etapa todo los controles de seguridad e integridad Conversión y carga de datos: esta etapa es necesaria cuando se esta reemplazando un sistema antiguo por uno nuevo los datos se cargan desde el sistema viejo al nuevo directamente a si es necesario se convierten al formato que requiera el nuevo sistema mas la base de dato y luego se cargo a esta etapa se lo suele llamar “migración” Etapa de prueba: en esta etapa se prueba y valida el sistema con los requisitos específicos por los usuarios. Para ello se debe diseñar una batería
  9. 9. de test con datos reales que se deben llevar a cabo de Manero metódica y rigurosa. Si la fase de prueba se lleva a cabo correctamente descubrirá los errores los programas de aplicación y e la estructura de la base e datos Mantenimiento: una vez que el sistema esta probado e implementado se pone en marcha. El sistema esta ahora en la fase de mantenimiento Modelo Entidad / Relación Modelaje Es el proceso mediante el cual podemos identificar las propiedades dinámicas o estáticas de un dominio de aplicación con mira a su transformación en un diseño implementable en un sistema computarizado es el plasmar los requerimientos de los usuarios en un diagrama para poder implementarlo. REQUERIMIENTO ______ ______ ______ ______ SISTEMA DE FACTURACIÓN DISEÑO FISICO DISEÑO LOGICO Entidad Es el objeto sobre el cual se requiere mantener o almacenar información. Relación Es la asociación significativa y establece entre dos entidades. FACTURA CLIENTE Atributo Son las propiedades que describen o califican una entidad. Ejemplo: entidad CLIENTE Las entidades se las representa mediante cajas donde se las coloca con letra MAYUSCULA. PERSONA
  10. 10. Las relaciones se representan con líneas que conectan las cajas de las entidades. origen de PEDIDOS CLIENTE originado por Los atributos se incluyen dentro de las cajas de las entidades y se escriben con MINUSCULA. CLIENTE código nombre dirección teléfono ENTIDAD Se puede considerar entidades a los sujetos, objetos, eventos a los lugares y a las abstracciones. SUJETO: Personas y organizaciones que originan transacciones. Ejemplos: Empleado, Cliente, Proveedor. OBJETOS: Entes tangibles. Ejemplos: Producto, artículo EVENTOS: Son transacciones originadas por sujetos que afectan a los objetos. Ejemplos: Pedido, ajustes, calificación LUGARES: La ubicación de sujetos y objetos. Ejemplos: Ciudad, país, bodega ABSTRACCIONES: Son conceptos empleados para clasificar, calificar o medir otras entidades. Ejemplos:
  11. 11. Tipo de cliente, tipo de cuenta, unidad de medida. RELACIONES Las relaciones tienen tres propiedades o características: Primer grado o Cardinalidad UNO A UNO UNO A MUCHOS MUCHOS A MUCHOS Segundo grado o Opcional Es la partición obligatoria u opcional de la entidad en la relación. Puede OPCIONAL debe OBLIGATORIA Tercer grado o Leyenda Es una expresión que describe el rol de cada entidad en la relación. tiene EMPLEADO DEPARTAMENTO pertenece leyendas COMO SE LEE EL GRADO O CARDINALIDAD UNO A MUCHOS B A Una instancia de la entidad A se relaciona con una o más de la instancia B EMPLEADO DEPARTAMENTO
  12. 12. Un departamento puede estar compuesto por uno o varios empleados y un empleado pertenecen a un solo departamento. MUCHOS A MUCHOS B A 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 más instancias de A. ARTICULO PROVEEDOR Un proveedor puede se distribuidor de una o mas artículos y un articulo puede ser distribuido por una o mas proveedores. UNO A UNO B A Una instancia de la entidad A se relaciona con una instancia de la entidad B y una instancia de la entidad B se relaciona con una instancia de A. MUJER HOMBRE Un hombre puede ser esposo de una sola mujer y una mujer solo puede ser esposa de un solo hombre.
  13. 13. RELACIÖN RECURSIVA Una instancia de una entidad se asocia con una instancia de si mismo, es opcional en los 2 extremos es decir no hay el carácter de obligatorio. Ejemplo: Subordinado de ARTICULO Jefe de Un empleado puede ser jefe de uno o mas empleados y un empleado puede ser subordinado de un y solo un empleado. Atributos: Los atributos son empleados para identificar describir calificar o expresar el estado de una entidad. Toda entidad posee un atributo o combinación de atributos que se denomina 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 anteponiéndoles el signo de números (#). A los atributos obligatorios se les antepone el asterisco (*). A los atributos opcionales se les antepone el circulo (0). Ej.: CLIENTE FACTURA # Numero * Fecha_coloca º fecha_pago # * * * º º codigo nombre direcci fono1 fono2 fono3 En un diagrama entidad relación también pueden agrupar las entidades en supertipo y en subtipo. La Supertipo agrupan a 2 o mas entidades Subtipo. Las Subtipo heredan los atributos de las entidades Supertipo.
  14. 14. PROFESOR # * * * codigo nombre sexo salario PERSONA # * * * codigo nombre sexo salario PROFESOR ALUMNO # * * * codigo nombre sexo beca * salario ALUMNO * beca Cada subtipo puede tener relaciones propias independientes de las del supertipo. Los subtipos se representan como cajas dibujadas dentro de la caja del subtipo. Problema # 1 Compañía de Botes "San Juan" "San 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" cobra una cuota y se especializa en barcos que pueden 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 esta por completo equipado cuando se rentan; 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 radios, brújulas, indicadores de profundidad, otros importantes instrumentos como estufas y refrigeradoras. Otros que proporciona el propietario no están instalados como parte del bote, tales complementos incluyen velas, cuerdas, anclas, bolsas de caucho, salvavidas y en la cabina platos, cubiertos, utensilios de cocina, etc. "San Juan" aporta el equipo de consumo que podría considerarse como provisiones, libros de navegación, tablas de marea y corrientes, jabón, toallas de cocina y artículos similares. Una importante responsabilidad de "San Juan" es registrar el equipo que esta en el bote en particular y los que no están fijos en la embarcación.
  15. 15. "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 servicio de una tripulación y "San Juan" contrata por horas a tales personas. Las embarcaciones necesitan mantenimiento. "San Juan" incluye registros precisos 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. Entidades Principales Modelo Entidad / Relación Compañía de Botes "San Juan" Propietario Equipos Bote Cliente Viajes Tripulación Tipo_Equipo Mantenimiento Reparación
  16. 16. Problema # 2: Tienda de Videos En una tienda de videos se necesita mantener información de alrededor de 3000 cassettes, cada uno de los cassettes tiene asignado un número. Por cada película se necesita conocer su título y categoría, por ejemplo comedia, suspenso, drama, acción, ciencia ficción, etc. Se mantienen 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 cassette. Un cassette puede venir en varios formatos, y una película es agrupada en un solo cassette; frecuentemente las películas son pedidas de acuerdo a un actor en específico Tom Cruise y Demmi Moore son los más populares es por eso que se debe mantener información de los actores que aparece en cada película. No en todas las películas actúan artistas famosos, a los clientes de la tienda le gusta conocer datos como el nombre real del actor y su fecha de nacimiento. En la tienda se mantiene información solo de los actores que aparecen en las películas que se tiene a disposición. Solo se alquila videos a aquellos que pertenecen al club de video. Para pertenecer al club de video se debe tener un buen crédito, por cada miembro del club se mantiene una ficha con su nombre, teléfono y dirección, cada miembro del club tiene asignado un número de membresía. Se debe mantener información de todos los cassettes que el cliente ha alquilado. Cuando un cliente alquila un cassette se debería conocer el título de la película, fecha en que lo alquiló y la fecha de devolución. Entidades Principales Cassetes Tipos_peliculas Actores Alquiler Clientes Pelicula Modelo Entidad / Relación Tienda de Videos Cassette Tipo_Película Película Alquiler Cliente Actor
  17. 17. Problema # 3: 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 USD. 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. 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. Queremos saber los actos vandálicos de cada cliente en cada habitación del hotel. Entidades Principales • • • • Clientes Hotel Habitación Mobiliario • • • • Estancias Actos Vandálicos Tipo Mueble Tipo Cliente Modelo Entidad Relación Actos Vandálicos
  18. 18. Tipo_Cliente Hotel Clientes Estancias Habitación Actos_Vandálicos Muebles Tipo_Muebles Problema #4: 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 cuadrados.. 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 para 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 la fecha de 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 asi como el país y fecha en que apareció. Los pintores pueden tener uno o varios mecenas que los protegen. 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 sus mesenas.
  19. 19. Maestro Pinacoteca Cuadro Pintor Escuela Mecena Ejemplos de Enunciados 1) Cada orden de compra da lugar a una factura. ORDEN DE PAGO FACTURA 2) Un empleado puede o no puede ser vendedor, pero un vendedor es un empleado. EMPLEADO VENDEDOR 3) Un cliente solamente puede enviar una orden de compra al mismo tiempo, cualquier persona que no tenga una orden pendiente no es un cliente. CLIENTE ORDEN DE 4) Un cliente es un cliente sin importar el número de órdenes de compra que tenga pendiente hasta la fecha. Cada orden de compra pertenece solamente a un cliente. ORDEN DE CLIENTE 5) Un vendedor puede tener uno o más clientes.
  20. 20. 6) Cada producto que tenemos en stock está compuesto de una o más partes, cada parte es usada en un solo producto. La estructura de una base de datos es el conjunto de tablas relacionadas. Normalización Al realizar procesos sobre las tablas se pueden presentar problemas llamados ANOMALÍAS que pueden ser de inserción, actualización, eliminación, etc.… El proceso que asegura que la tabla este bien estructurada se denomina NORMALIZACIÓN. La normalización esta basada en el concepto de formas normales, cada forma normal tiene un conjunto de reglas que debe ser verificada (1ra forma normal, 2da forma normal, 3ra forma normal). Estas formas normales son anidadas, es decir que para una relación esté en 3ra forma normal debe haber pasado por la 2da forma normal, y esta por la 1ra forma normal. Dependencia Funcional. La Dependencia Funcional es la relación que existe entre dos atributos. Ej. X à Y Dado un valor de X, existe un valor de Y, entonces Y es funcionalmente dependiente de X. X Cod_empleado 01 02 Y Codigo_empleado Juan Pérez Nicolas Vera
  21. 21. Claves o Llaves. Es el atributo que le da la diferenciación a cada tabla, este atributo hace que no tengamos tuplas o filas repetidas. # Cod_cliente nombre_cliente 001 Juan Pérez 002 Nicolas Vera 003 Nunca repetir Javier Villota Dependencia Transitiva. Es la dependencia que está encadenada. Dado un valor de X, existe un valor de Y, y dado un valor de Y existe un valor de Z que es transitivamente dependiente de X. X Y Z EMPLEADO X Cod_empleado nombre_empleado cod_empleado Y 001 01 002 Ana Felipe 02 03 Jeanine Leal 03 04 Z Juan Pérez Carla Da´Silva 04 DEPARTAMENTO Cod_departam nombre_departa 001 Juan Pérez 002 Ana Felipe
  22. 22. Primera Forma Normal. Una tabla esta en primera forma normal si cumple las siguientes restricciones: o Las celdas o campos deben tener valores singulares. o Las entradas de columna o atributo deben ser de la misma clase. o Cada columna debe tener un nombre único. o Dos filas o tuplas no pueden ser iguales. Segunda Forma Normal Todo atributo no clave depende de un atributo clave. "Eliminar dependencias parciales a la clave primaria de una tabla. Tercera Forma Normal Una relación está en tercera forma normal si está en segunda forma normal y tiene dependencia transitiva (dependencia encadenada). Modelo Relacional Reglas de Transformación del Diagrama Entidad / Relación en el Modelo Relacional 1. Toda entidad en el diagrama Entidad / Relación se representa como una tabla separada y sus atributos son las mismas columnas de dicha tabla. 2. Toda relación de uno a muchos se representa replicando las columnas de la clave primaria de la entidad del lado 1 como columnas extras de la tabla de la entidad de lado M (Muchos). Clave Foránea: Es una clave primaria de otra tabla. A B # 3. Toda relación de uno a uno se representa replicando las columnas componentes de la clave primaria de cada una de las entidades participantes en la relación como columnas extras en la tabla de la otra. A B # #
  23. 23. 4. Toda relación de muchos a muchos es resuelta con una entidad de intersección cuya clave primaria es la combinación de las claves de las entidades intersectadas. A B A B # # Eo Io
  24. 24. lenguajes Relacionales y Comerciales SQL SQL (Structure Query Languaje) DML (Data Manipulation Languaje) Select Insert Update Delete Trabaja a nivel de datos o campos. Maneja datos. DDL (Definition Data Languaje) Create Alter Drop Truncate Trabaja a nivel de estructuras o tablas. Maneja Tablas. TCL (Transacction Control Languaje) Trabaja con el DML. Controlan todas las transacciones. Commit RollBack SENTENCIAS DDL (CREATE, ALTER, DROP, TRUNCATE) CREATE: Máximo 30 Caracteres CREATE TABLE CLIENTE ( Id_Cliente Number, Nombre Varchar2(50), Apellido Varchar2(50), Dirección Varchar2(80), Edad Number ); 1ra Forma CREATE TABLE FACTURA ( Id_Factura Number Num_Fact Number Fecha_Factura Date Id_Cliente Number • • ); CREATE TABLE CLIENTE ( Id_Cliente Number PRIMARY kEY, Nombre Varchar2(50) NOT NULL, Apellido Varchar2(50) NOT NULL, Dirección Varchar2(80), Edad Number ); 2da Forma PRIMARY KEY, NOT NULL, NOT NULL, FOREIGN KEY REFERENCES CLIENTE(Id_Cliente),
  25. 25. CREATE TABLE DEPARTAMENTO ( Id_Departamento Number PRIMARY KEY, Nombre Varchar2(30) NOT NULL, Cant_Empleados Number , Region Varchar2(50) CHECK (Region IN (‘GYE’,’UIO’,’Insular’)) ); CREATE TABLE EMPLEADO ( Id_Empleado Number PRIMARY KEY, Nombres Varchar2(30) NOT NULL, Apellidos Varchar2(30) NOT NULL, Cargo Varchar2(30) CHEK (Cargo IN (‘Gerente’,’Ingeniero’,’Analista’,’Vendedor’)), Fecha_Ingreso Date, Id_Manager Number FOREIGN KEY REFERENCES EMPLEADO(Id_Empleado), Id_Dpto Number FOREIGN KEY REFERENCES DEPARTAMENTO(Id_Departamento) ); CREATE TABLE CLIENTE ( Id_Cliente Number PRIMARY KEY, Nombres Varchar2(30) NOT NULL, Apellidos Varchar2(30) NOT NULL, Dirección Varchar2(80), Teléfono Number, Tipo_Cliente Varchar2(30) CHECK (Tipo_Cliente IN (‘Normal’,’VIP1’,’VIP2’,’VIP3’)), Id_Vendedor Number FOREIGN KEY REFERENCES EMPLEADO(Id_Empleado) ); CREATE TABLE ORDEN ( Id_Orden Number PRIMARY KEY, Descripción Varchar2(30) NOT NULL, Total Number , Id_Cliente Number FOREIGN KEY REFERENCES CLIENTE(Id_Cliente) );
  26. 26. CONSTRAINTS • • • • NOT NULL PRIMARY KEY FOREIGN KEY CHECK ALTER: • Adicionar Columnas ALTER TABLE DEPARTAMENTO ADD CONSTRAINT Localidad Varchar2(25); • Eliminar Columnas ALTER TABLE DEPARTAMENTO DROP COLUMN Cant_Empleados; • Adicionar Clave Primaria ALTER TABLE DEPARTAMENTO ADD CONSTRAINT PK1 PRIMARY KEY (Id_Departamento); • Adicionar Clave Foránea ALTER TABLE ORDEN ADD CONSTRAINT FK1 FOREIGN KEY (Id_Cliente) REFERENCES CLIENTE(Id_Cliente); • Eliminar Clave Primaria y Clave Foránea ALTER TABLE DEPARTAMENTO DROP CONSTRAINT PK1; ALTER TABLE DEPARTAMENTO DROP CONSTRAINT FK1;
  27. 27. DROP: • Eliminar Tablas DROP TABLE ORDEN Observación: 1. Si creo tablas SIN PK y FK puedo crearlas en cualquier orden sin importar relaciones. 2. Si utilizo ALTER puedo definir PK y FK sin importar el orden de las tablas. 3. Si deseo eliminar tablas que tengan establecidos PK y FK, primero debo eliminar las FK(Claves Foráneas), luego PK(Claves Primarias) y por último procedo a eliminar las tablas en cualquier orden. 4. No puedo eliminar tablas en cualquier orden cuando contengan PK y FK establecidos. TRUNCATE: Elimina los datos de la tabla pero no la estructura, y además se libera espacio de la base de datos de la definición de la tabla. No elimina campos solo información. TRUNCATE TABLE ORDEN 1.- Crear Tablas. CREATE TABLE CLIENTE ( Id_Cliente Number, Nombre_Completo Varchar2(50) Direccion Varchar2(80) Telefono1 Number, Edad Number ); NOT NULL, NOT NULL, 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) );
  28. 28. CREATE TABLE HABITACION ( Id_Hotel Number, Id_Habitacion Number, Soleada VarChar2(1) ); NOT NULL, CREATE TABLE HOTEL ( Id_Hotel Number, Descripción Varchar2(80), Dirección VarChar2(50), ); 2.- Crear Claves Primarias. ALTER TABLE CLIENTE ADD CONSTRAINT Cliente_PK PRIMARY KEY(Id_Cliente); ALTER TABLE ESTADIA ADD CONSTRAINT Estadia_PK PRIMARY KEY(Id_Hotel,Id_Habitacion,Id_Cliente,Fecha_Ingreso); ALTER TABLE HABITACION ADD CONSTRAINT Habitacion_PK PRIMARY KEY(Id_Hotel,Id_Habitacion); ALTER TABLE HOTEL ADD CONSTRAINT Hotel_PK PRIMARY KEY(Id_Hotel); 3.- Crear Claves Foráneas. ALTER TABLE HABITACION ADD CONSTRAINT Habitacion_Hotel_FK FOREIGN KEY(Id_Hotel) REFERENCES HOTEL(Id_Hotel); ALTER TABLE ESTADIA ADD CONSTRAINT Estadia_Clientel_FK FOREIGN KEY(Id_Cliente) REFERENCES CLIENTE(Id_Cliente);
  29. 29. ALTER TABLE ESTADIA ADD CONSTRAINT Estadia_Habitacion_FK FOREIGN KEY(Id_Hotel,Id_Habitacion) REFERENCES HABITACION(Id_Hotel,Id_Habitacion); 4.- Crear Constraints CHECK. ALTER TABLE HABITACION ADD CONSTRAINT Habitacion_CK1 CHECK (Soleada IN (‘S’,’N’)); 5.- Eliminar Claves Foráneas. DROP CONTRAINT Habitación_Hotel_FK DROP CONTRAINT Estadia_Cliente_FK DROP CONTRAINT Estadia_Habitacion_FK 6.- Eliminar Claves Primarias. DROP CONTRAINT Hotel_PK DROP CONTRAINT Habitacion_PK DROP CONTRAINT Estadia_PK DROP CONTRAINT Cliente_PK 7.- Eliminar Tablas. DROP TABLE CLIENTE DROP TABLE ESTADIA DROP TABLE HABITACION DROP TABLE HOTEL
  30. 30. SENTENCIAS DML (INSERT, UPDATE, SELECT, DELETE) EQUIPOS Id_equipo 1 2 3 4 5 GRUPOS nombre Brasil Ecuador Alemania Argentina Inglaterra id_jugador H A A C D Id_grupo A B C D E JUGADORES Id_jugador 1 2 3 nombre Grupo A Grupo B Grupo C Grupo D Grupo E POSICIÓN nombre Mendez Ronaldo Dida id_equipo 2 1 1 id_posición 3 4 1 equipo1 equipo2 fecha Id_posición 1 2 3 4 PARTIDOS Id_partido estadio INSERT: INSERT INTO JUGADORES VALUES (4,’Ballack’,3,3); COMMIT; Nota: Puedo hacer muchos INSERT y colocar un solo COMMIT. DELETE: DELETE FROM EQUIPO WHERE Id_Equipo=3; COMMIT; nombre arquero defensa medio delantero
  31. 31. SELECT: Mostrar el Nombre de todos los equipos y sus respectivos grupos. SELECT * FROM EQUIPOS; SELECT Nombre, Id_Grupo FROM EQUIPOS; Mostrar el Nombre de los Jugadores del equipo con Código 1, SELECT Nombre FROM EQUIPOS WHERE Id_Equipo = 1 ; CLÁUSULA WHERE: Operadores Aritméticos. = Igualdad <> Desigualdad > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que Seleccionar los jugadores que tengan más de 30 años. SELECT * FROM JUGADORES WHERE Edad > 30; Seleccionar el Nombre de los Equipos que han sido campeones. SELECT Nombre FROM EQUIPOS WHERE Campeon = ‘S’;
  32. 32. Operadores Lógicos (AND, OR). Seleccionar los Equipos que no han sido campeones mundiales y que sean del continente de América. SELECT Nombre FROM EQUIPOS WHERE Campeon = ‘N’ AND Continente =’America’; Seleccionar el Nombre y el salario de los Empleados cuya Comisión sea igual a 50 o menor o igual a 100. SELECT Nombre, Salario FROM EMPLEADOS WHERE Comision >= 50 AND Comision <= 100; Seleccionar el Nombre y el Apellido de los Empleados que ganen entre 500 y 1000 o cuya comisión sea nula. SELECT Nombre, Apellido FROM EMPLEADOS WHERE (Salario >= 500 AND Salario <= 1000) OR (Comision IS NULL); Operadores Espaciales. IN Lista de Valores (500, 800, 1000). BETWEEN Valores entre un rango mayor y uno Menor (500 - 1000). LIKE Patrones en cadena de Caracteres. % Cero o más Caracteres. _ Un solo Caracter. IS NULL Valores Nulos. NOT Negación. Seleccionar los Empleados que gane 600, 1000 u 800 y cuyo nombre empiece con la letra J. SELECT * FROM EMPLEADOS WHERE Salario IN(600,1000,800) AND Nombre LIKE ‘J%’;
  33. 33. 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 en su 2da letra contenga la ‘O’ o que sean del Departamento 10. SELECT Nombre, Salario FROM EMPLEADOS WHERE (Salario >800 AND Comision NOT IS NULL AND Apellido LIKE ‘_O%’) OR Departamento = 10 ; EQUI-JOIN: Uniones o Igualdades. Si utilizo n tablas tendré n-1 Joins. Si ejecuto: 7 X 3 = 21 Registros SELECT * FROM EMPLEADO, DEPARTAMENTO; Producto Cartesiano Si ejecuto: SELECT * FROM EMPLEADO, DEPARTAMENTO WHERE Id_Departamento = Departamento; 7 Registros Para evitar ambigüedades se utiliza alias: Alias SELECT * FROM EMPLEADO A, DEPARTAMENTO B WHERE A.Id_Departamento = B.Departamento; Visualizar el nombre de los Empleados, su cargo y su Salario de aquellos empleados que sean jefes y su Comisión este entre 50 y 200. SELECT A.Nombre , B.Descripción , A.Salario FROM EMPLEADO A , CARGO B WHERE B.Id_Cargo = A.Cargo AND B.Descripcion = ‘Jefes’ AND A.Comisión BETEWEEN (500, 1000);
  34. 34. Mostrar el Nombre y el Cargo de los Empleados cuyo Salario sea 1000, 800 ó 500, que trabajen en el Departamento de Operaciones y cuyo Cargo sea Gerente. SELECT E.Nombre , C.Descripción FROM EMPLEADO E , CARGO C, DEPARTAMENTO D WHERE E.Cargo = C.Id_Cargo AND E.Departamento = D.Id_Departamento AND E.Salario IN (1000, 500, 800) AND D.Nombre = ‘Operaciones’ AND C.Descripción = ‘Gerente’; NON-EQUI-JOIN: Se utiliza cuando no existen ninguna relación entre dos tablas. Visualizar el Nombre de los Empleados, su Salario e indicar el nivel de su Salario. SELECT A.Nombre, A.Salario FROM EMPLEADO E, NIVELES-SALARIO NS WHERE A.Salario BETWEEN B.Nivel_Bajo AND B.Nivel_Alto Resultado L. López M. Ruiz J. Mora M. Aviléz P. Plúas A. Rojas P. Paredes 5000 2500 2500 1500 1500 800 800 B B B C C D D OUTER-JOIN: Es utilizado cuando realizamos consultas entre dos tablas relacionadas pero en su clave foránea pueden haber valores nulos, es decir que haya inconsistencia de datos. Visualizar el nombre del Empleado y su Departamento así no exista su Departamento.
  35. 35. Resultado EQUI-JOIN L. López M. Ruiz J. Mora P. Plúas A. Rojas P. Paredes Marketing Ventas Sistemas Operaciones Operaciones Operaciones SELECT A.Nombre, B.Nombre FROM EMPLEADO E, DEPARTAMENTO D WHERE A.Id_Departamento(+) = Id_Dep Resultado L. López M. Ruiz J. Mora M. Aviléz P. Plúas A. Rojas P. Paredes Marketing Ventas Sistemas Operaciones Operaciones Operaciones SELF-JOIN: Se aplica cuando tengo una relación de recursividad. Mostrar el Nombre de los Empleados con el Nombre de sus respectivos Jefes. SELECT A.Nombre, B.Nombre FROM EMPLEADO E, EMPLEADO B WHERE A.Id_Manager = B.Id_Emp Resultado L. López M. Ruiz J. Mora M. Aviléz P. Plúas A. Rojas P. Paredes L. López L. López M. Ruiz J. Mora J. Mora J. Mora
  36. 36. SUB - QUERIES: Visualizar el Nombre de los Empleados y sus Salarios de aquellos empleados que tengan igual comisión que M. Aviléz. SELECT C.Nombre, C.Salario FROM EMPLEADOS C WHERE C.Comision = ( SELECT A.Comision FROM EMPLEADOS A WHERE A.Nombre = ‘A. Aviléz’ ) Mostrar el Nombre y el cargo de los Empleados que trabajen en el mismo Departamento en el cual trabaja el empleado A. Rojas SELECT E.Nombre, C.Nombre FROM EMPLEADOS C, CARGO C WHERE E.Id_Cargo = C.Id_Cargo AND C.Id_Cargo = ( SELECT E2.Id_Cargo FROM EMPLEADOS E2 WHERE E2.Nombre = ‘A. Aviléz’ ) BASE DE DATOS DISTRIBUIDA Es una base de datos construida sobre un red computacional y no sobre una maquina aislada, la información constituye una base de datos distribuida esta almacenada en diferentes sitios de la red, y las aplicaciones que se ejecutan accesando datos en distintos sitios. Una base datos distribuidas entonces es una colección de datos que pertenecen lógicamente a un solo sistemas pero se encuentran físicamente en varios sitios de la red. La base de datos distribuida puede ser homogénea y heterogénea Base de datos homogénea todos los sitios tienen los mismos sistemas de gestión de bases de datos. Son consientes de la existencia de los demás sitios y cooperan en el procesamiento de las solicitudes Base de datos heterogénea cada sitio puede tener un sistema de gestión de base de datos distinto así como el esquema puede ser diferente, puede ser que algunos sitios no conozcan a otros, puede ser que solo ofrezcan facilidades limitadas para la cooperación de procesamiento de transacciones. Principios fundamentales de las bases de datos distribuidas Regla 0.- desde el punto de vista del usuario un sistema distribuido deberá ser idéntico a un sistema son distribuido Regla 1.- autonomía local, deberá ser autónomo y no depender de una base de datos que se encuentre en otro sitio de la red en otra ubicación geográfica
  37. 37. Regla 2.- no dependencia de un sitio central, no se debe depender de un solo servidor para que no sea vulnerable y nadie puede accesar a la base de datos Regla 3.- operación continua. Si se daña un punto de la base de datos no se debería dañar solo se paraliza ese punto hasta realizar la operación de mantenimiento de la base de datos. Regla 4.- independencia de localización, para el usuario es transparente conocer donde están los datos Regla 5.- independencia de fragmentación de una gran tabla solo se utilizan ciertos datos los mismos que están compartidos. Regla 6.- independencia de la replica, cuando se hacen fragmentos se deben replican la información para actualizar los datos los cuales deben ser trasparentes para el usuario. Regla 7.- procesamiento distribuid por consulta se puede tener diferentes bloques que forman sistemas distribuidos para ello se crean tablas intermedias que pueden acceder solo a los datos requeridos. Regla 8.-manejo distribuido de transacciones, una transacción tiene muchas implicaciones para actualizar los datos los cuales se replican para poder interactuar con muchas plataformas o bases de datos al mismo tiempo Regla 9.- implementación con respecto al equipo, si importar el equipo el sistema debe funcionar igual, es decir debe tener el mismo tiempo de respuesta Regla 10.- no debe depender de un sistema operativo Regla 11.- independencia con respecto a la red. No debe importar el tipo de de red Regla 12.- independencia con respecto al sistema de gestión de base de datos. Se puede actuar en un sistema distribuido de base de datos heterogéneo DATA ARE HOUSE Es una colección de datos históricos acumulados de solo lectura. Los datos pueden ser obtenidos de otras fuentes y generalmente son sumarizadas y almacenadas por periodos de tiempo extenso (años) forman parte del sistema de toma de decisiones gerencial.

×