Administración y diseño de bases de datos

  • 2,218 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,218
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
65
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Administración y Diseño de Bases de Datos Ing. Elio Freites. Octubre 2010
  • 2. Bibliografía● Sistemas de Bases de Datos. Conceptos Fundamentales. Ramez Elmasri y Shamkant B. Navathe. Segunda Edición. Addison Wesley Iberoaméricana.● Sistemas de Bases de Datos. C.J. Date. Séptima Edición. Pearson.● Aplique SQL. James R. Groff y Paul N. Weinberg. Primera Edición. McGraw Hill. 2
  • 3. Unidad IIntroducción a los Sistemas de Bases de Datos 5
  • 4. Procesamiento de Datos Datos Procesamiento Información Toma de DecisionesProcesar los datos para generar información, es la finalidad principal de los Sistemasde Información. 6
  • 5. Actividades del Procesamiento de Datos● Procesamiento de Transacciones. – Evento que origina los Datos (Información).● Tareas del Procesamiento de Transacciones. – Recolectar los datos originados por transacciones. – Clasificar esos datos. – Ordenación de los Datos. – Calcular los Nuevos datos (A partir de los Originales). – Resumir los Datos. – Almacenar esos datos. 7
  • 6. Actividades del Procesamiento de Datos● Procesamiento de Información: – Seleccionar los datos que se requieren para producir información. – Operar sobre los datos seleccionados. – Presentar la información. – Distribuir la información a los centros de decisión. 8
  • 7. Problemas de los Antiguos Sistemas de Información● Sistemas de Información: Una colección de personas, procedimientos y equipos diseñados, construidos y mantenidos para recoger, registrar, procesar, almacenar, recuperar y visualizar información.● Problemas: – Ocupación inútil de memoria secundaria. – Aumento del tiempo de proceso. – Posibilidad de inconsistencias. – Dependencia de los datos respecto al soporte físico y a los programas. – Se impone una gestión más racional del conjunto de datos. – Surge un nuevo enfoque que se basa en un supuesto: Los Datos son recogidos y almacenados una sola vez, con independencia de los tratamientos. 9
  • 8. Componentes de un Sistema de Información 10
  • 9. Base de Datos● Es una colección de archivos interrelacionados que son creados con un DBMS. El contenido de una base de datos engloba a la información concerniente (almacenadas en archivos) de una organización, de tal manera que los datos estén disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos minimizarla.● Los tres componentes principales de un sistema de base de datos son: – El Hardware. – El software DBMS – Los Datos a manejar, así como el personal encargado del manejo del sistema. 11
  • 10. Ejemplo de una Base de DatosExa me ne s cCodExa cDesExa cEdoExa HecFec Heces Fecales A HemCmp Hemat ología Complet a A Glicem Glicemia A Pa cie nt e s cCodPa c cNom Pa c dFe cNacPa c cEdoPa c 09.178.643 Pedro Martínez 13/03/1968 A 11.774.216 María Guerra. 01/07/1973 A 13.571.591 Tomás Sequea 12/10/1980 AConsult a s cCodPa c dFe cConsult a cM ot ivo 09.178.643 03/12/2002 Cuadro Diarreíco. 11.774.216 01/04/1998 Cont rol PosHospit alización 13.571.591 29/03/2004 Naúseas y Dolor Abdominal. Exá me ne s e n cCodPa c dFe cConsult a cCodExa Consult a s 09.178.643 03/12/2002 HecFec 11.774.216 01/04/1998 Glicem 12
  • 11. Introducción a los Sistemas Manejadores de Bases de Datos (SMBD)● Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de una tarea específica.● El objetivo primordial de un sistema manejador base de datos es proporcionar un contorno que sea a la vez conveniente y eficiente para ser utilizado al extraer, almacenar y manipular información de la base de datos. Todas las peticiones de acceso a la base, se manejan centralizadamente por medio del DBMS, por lo que este paquete funciona como interfase entre los usuarios y la base de datos. 13
  • 12. Introducción a los Sistemas Manejadores de Bases de Datos (SMBD)● El objetivo de un SMBD es reducir: – Redundancia e inconsistencia de datos. – Dificultad para tener acceso a los datos. – Aislamiento de los datos. – Anomalías del acceso concurrente. – Problemas de seguridad. – Problemas de integridad. 14
  • 13. Introducción a los Sistemas Manejadores de Bases de Datos (SMBD) 15
  • 14. Introducción a los Sistemas Manejadores de Bases de Datos (SMBD) 16
  • 15. Introducción a los Sistemas Manejadores de Bases de Datos (SMBD)● Características: – Los datos almacenados sirven para múltiples operaciones. – Varios usuarios pueden tener acceso a los mismos datos simultáneamente (Control de Concurrencia). – Los programas de aplicación permanecen invariables (Independiente de los datos) por cambios en la base de datos. – El acceso a los datos es controlado mediante mecanismos de seguridad y privacidad. – Garantiza la consistencia de los datos. 17
  • 16. Arquitectura de un Sistemas Manejadores de Bases de Datos (SMBD) 18
  • 17. Arquitectura de un Sistemas Manejadores de Bases de Datos (SMBD)● Nivel Físico: Es la representación del nivel más bajo de abstracción, en éste se describe en detalle la forma en como de almacenan los datos en los dispositivos de almacenamiento.● Nivel Conceptual: El siguiente nivel más alto de abstracción, describe que datos son almacenados realmente en la base de datos y las relaciones que existen entre los mismos, describe la base de datos completa en términos de su estructura de diseño. El nivel conceptual de abstracción lo usan los administradores de bases de datos, quienes deben decidir qué información se va a guardar en la base de datos. 19
  • 18. Arquitectura de un Sistemas Manejadores de Bases de Datos (SMBD)● El Nivel Conceptual consta de las siguientes definiciones: – Definición de los datos: Se describen el tipo de datos y la longitud de campo todos los elementos direccionales en la base. Los elementos por definir incluyen artículos elementales (atributos), totales de datos y registros conceptuales (entidades). – Relaciones entre datos: Se definen las relaciones entre datos para enlazar tipos de registros relacionados para el procesamiento de archivos múltiples. 20
  • 19. Arquitectura de un Sistemas Manejadores de Bases de Datos (SMBD)● En el nivel conceptual la base de datos aparece como una colección de registros lógicos, sin descriptores de almacenamiento. En realidad los archivos conceptuales no existen físicamente. La transformación de registros conceptuales a registros físicos para el almacenamiento se lleva a cabo por el sistema y es transparente al usuario. – Nivel de visión: Nivel más alto de abstracción, es lo que el usuario final puede visualizar del sistema terminado, describe sólo una parte de la base de datos al usuario acreditado para verla. El sistema puede proporcionar muchas visiones para la misma base de datos. Este nivel es utilizado por dos tipos de usuarios (Programadores de Aplicaciones y sus Usuarios (no especializados). 21
  • 20. Independencia con respecto a los datosEs la inmunidad de los programas de aplicación a cambios ó modificaciones en el esquemade la organización de Física de los datos. Son de dos Tipos: Lógica y Física. ● Lógica: Capacidad de modificar el nivel conceptual sin tener que alterar el Nivel Externo ni los programas de aplicación. Por ejemplo: Modificando el esquema conceptual para la ampliación de la base de datos, añadiendo un nuevo registro o elementos de información) o reducir la base de datos. ● Física: Capacidad de modificar el nivel físico sin tener que alterar el Nivel conceptual) o los externos). Por ejemplo, crear estructuras de archivos adicionales que mejoren el rendimiento de búsqueda de información. 22
  • 21. Administrador de Bases de Datos (DBA)● El control central del diseño, implementación y uso de la Base de Datos, es vital para los eventos que suceden en un ambiente de Base de Datos.● Este control central y la coordinación es rol del Administrador de la Base de Datos. Se debe definir los roles de Administración, líneas de autoridad y las responsabilidades que tiene, las habilidades necesarias, los procedimientos, los estándares e interfases que pueda necesitar para crear y mantener la Base de Datos. 23
  • 22. Responsabilidades del DBA● Las responsabilidades de los Administradores pueden clasificarse en las siguientes áreas: – Selección de aplicaciones apropiadas para los sistemas de administración de Bases de Datos. – Asistir en el diseño de la Base de Datos. – Mantener la documentación de la Base de Datos. – Establecer procedimientos de validación de la data. – Establecer procedimientos de respaldo. – Planificar procedimientos de restauración. 24
  • 23. Funciones del DBA● Funciones: – Identificar los datos que la organización requiere y que van a incorporarse a la Base de Datos (Conocer los flujos de información) mediante el análisis estructurado del sistema. – Diseñan la Base de datos: Definir la organización física de la Base de Datos. Esto es el diseño físico donde previamente se ha ya realizado el diseño lógico. Diseño Lógico + Organización Lógica + Esquemas y Sub-Esquemas + Diseño Físico + Organización Física + Estructura de Almacenamiento y Métodos de Acceso. 25
  • 24. Funciones del DBA● Sirve de puente entre los Usuarios (No especializados y Programadores de Aplicación) y la Base de Datos.● Especificar e Implementar los criterios y mecanismos de seguridad y privacidad de la Base de Datos.● Mantenimiento de la Base de Datos.● Establecer los mecanismos de respaldos y restauración para casos en que falle el Sistema Operativo y no requiera su pérdida (Prácticas Operativas). 26
  • 25. Fases en el Diseño de una Base de Datos Recolección y Análisis Empresa Requerimientos Funcionales de Requerimientos Análisis Funcional Requerimientos de la Base de Datos Diseño Conceptual Especificación de transacciones de alto nivel Esquema Conceptual (Modelo de Datos de Alto Nivel) Independiente del SGBD Diseño Lógico (Transformación de Específico para cada SMBD Modelo de Datos) Esquema (Conceptual) Lógico (En el modo de datos de un SMBD) Diseño de Programas de Aplicación Diseño Físico Implementación de Esquema Interno (Para elPrograma de Aplicación Transacciones mismo SMBD) 27
  • 26. Modelo de Datos● Para introducirnos en este tema, empezaremos definiendo que es un modelo.● Un modelo es una representación de la realidad que contiene las características generales de algo que se va a realizar.● En Base de Datos, esta representación la elaboramos de forma gráfica.● Un modelo de datos es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos, semántica asociada a los datos y restricciones de consistencia. 28
  • 27. Modelo Entidad Relación (MER)● Denominado por sus siglas como: E-R (Entity-Relationship), Este modelo representa a la realidad, a través de entidades, que son objetos que existen y que se distinguen de otros por sus características.● Una entidad es un objeto que tiene significado o importancia, cuya información necesito conocer.● Otras definiciones: – Un objeto de interés al negocio. – Una entidad es una clase o categoría de algo. – Una entidad es el nombre de una cosa. 29
  • 28. Modelo Entidad Relación (MER)● Por ejemplo, para identificar las entidades en el contexto de una administración de personal en una empresa, las entidades podrían ser: – Empleado. – Departamento. – Proyecto● Las entidades pueden ser de dos tipos: – Tangibles: Son todos aquellos objetos físicos que podemos ver, tocar o sentir. – Intangibles: Todos aquellos eventos u objetos conceptuales que no podemos ver, aun sabiendo que existen, por ejemplo: la entidad materia, sabemos que existe, sin embargo, no la podemos visualizar o tocar. 30
  • 29. Atributos de Entidades● Las características de las entidades en base de datos se llaman atributos, por ejemplo el Nombre, Dirección Teléfono, Grado, Grupo, etc., son atributos de la entidad alumno; Clave, Número de Seguro Social, Departamento, etc., son atributos de la entidad empleado. A su vez una entidad se puede asociar o relacionar con más entidades a través de relaciones.● Consideremos una empresa que requiere controlar a los vendedores y las ventas que ellos realizan; de este problema determinamos que los objetos o entidades principales a estudiar son el empleado (vendedor) y el artículo (que es el producto en venta), y las características que los identifican son: – Empleado (Cédula, Nombre, Puesto, Salario). – Artículo (Código, Descripción, Costo).● La relación entre ambas entidades la podemos establecer como Venta. 31
  • 30. Atributos de Entidades● Atributo Simple: Son atributos indivisibles (Atómicos).● Atributos Compuestos: Se pueden dividir en componentes más pequeños.● Atributos Monovaluados: Son aquellos que solamente pueden tomar un sólo valor.● Atributos Multivaluados: Puede tomar múltiples valores y se caracterizan por tener límites en el número de valores para una entidad individual.● Atributo Derivado: Cuando su instancia puede ser calculada a partir de otra.● Atributo clave de un Tipo de Entidades: Sus valores identifican en forma única a cada entidad. 32
  • 31. Instancias y Esquemas● Con el paso del tiempo la información que se va acumulando y desechando en la base de datos, ocasiona que está cambie.● Instancia: Al estado que presenta una base de datos en un tiempo dado. Veámoslo como una fotografía que tomamos de la base de datos en un tiempo t, después de que transcurre el tiempo t la base de datos ya no es la misma.● Esquema: Es la descripción lógica de la base de datos, proporciona los nombres de las entidades y sus atributos especificando las relaciones que existen entre ellos. Es un banco en el que se inscriben los valores que irán formando cada uno de los atributos. El esquema no cambia los que varían son los datos y con esto tenemos una nueva instancia. 33
  • 32. Instancias y Esquemas● Ejemplo: Considerando el ejemplo del vendedor que vende artículos, esquema e instancia según nuestro ejemplo, quedaría:● Esquema: – { Vendedor : Nombre, puesto, Salario, RFC } – { Articulo : Clave, Costo, descripción }● Instancia: – {Ramirez Elmaris, Vendedor, 1500, XFC000234D● Como podemos observar el esquema nos muestra la estructura en el cual se almacenaran los datos, en este caso en registros cuyos nombres de campos son: por parte del vendedor (Cédula Nombre, Puesto, Salario) y por el Artículo (Clave, Costo, Descripción). 34
  • 33. Vínculos● Una relación es una asociación bi-direccional entre dos entidades, o entre una entidad consigo mismo.● Ejemplo, la relación entre las entidades Profesor-Curso es: – Cada CURSO puede ser impartido por sólo un INSTRUCTOR. – Cada INSTRUCTOR puede ser asignado a uno a más cursos.● Grado de opcionalidad: – Opcional: Puede ser. – Obligatorio: Debe ser.● Grado de cardinalidad: – Uno o Más. – Uno y Solo Uno. 35
  • 34. Vínculos● El grado de un vínculo es el número de tipos de entidades que participan en él (Binarios y Ternarios).● La razón de cardinalidad especifica el número de ejemplares de vínculos en los que puede participar una entidad. Las razones de cardinalidad más comunes en el tipo de vínculos binarios son 1:1, 1:N y N:N.● Las entidades débiles son aquellas entidades que no tienen atributos claves propios. 36
  • 35. Tipos de Relaciones● Un tipo de relación R entre n tipos de entidades E1, ..., En define un conjunto de asociaciones entre estos tipos.● Puede ser visto como un conjunto de instancias de la relación ri, donde cada ri asocia n entidades (e1, ..., en), y cada entidad ej en ri es un miembro del tipo de entidad Ej (1 <= j <= n).● Un tipo de relación es un subconjunto del producto cartesiano E1 x E2 x ... x En. 37
  • 36. Tipos de Relaciones● Un tipo de relación podría también interpretarse como un conjunto de pares ordenados, en este caso: (e1, d1), (e2, d2), (e3, d1), (e4, d2), (e5, d3), (e6, d1), (e7, d3).● Según el número de entidades relacionadas (o razón de cardinalidad), se pueden definir tres tipos de relaciones: – Relaciones Uno a Uno (1:1). Una entidad A está asociada a lo más con una entidad B, y una entidad B a lo más con una entidad A. Ejemplo: "Ser jefe de" es una relación 1:1 entre las entidades empleado y departamento. – Relaciones Uno a Muchos (1:n). Una entidad A está asociada con una o varias entidades B. Una entidad B, sin embargo, puede estar a lo más asociada con una entidad A. Ejemplo: "Ser profesor" es una relación 1:n entre profesor y curso, suponiendo que un curso sólo lo dicta un profesor. – Relaciones Muchos a Muchos (n:m). Una entidad A está asociada con una o varias entidades B, y una entidad B está asociada con una o varias entidades A. Ejemplo: "Estar inscrito" es una relación n:m entre las entidades alumno y curso. 38
  • 37. Tipos de RelacionesRelación 1:1 Relación 1:N 39
  • 38. Tipos de RelacionesRelación N:1 Relación N:N 40
  • 39. Componentes de un Sistema de Base de Datos● Un módulo gestor de datos, que es el encargado de controlar el acceso a la información del SGBD almacenada en el disco.● El compilador de DDL, que es quien procesa las definiciones de los esquemas, especificadas en el DLL y almacena las descripciones de los esquemas en el catálogo del SGBD.● El procesador de la base de datos en tiempo de ejecución, que se encarga de los accesos a ella durante la ejecución, recibe operaciones de obtención, actualización y las ejecuta sobre l base de datos.● El compilador de consultas que es el que maneja las consultas de alto nivel que se introducen interactivamente.● El precompilador que extrae órdenes en DML de un programa de aplicación escrito en un lenguaje de programación anfitrión.● El compilador de DML que es el encargado de convertir las órdenes en código objeto para el acceso a la base de datos. 41
  • 40. Tendencias o Enfoques● Relacional. – Es conveniente clasificar a los Sistemas de Bases de Datos de acuerdo con el enfoque que adoptan para dar respuesta a las estructuras de datos y operadores asociados que deben soportar. – El Enfoque Relacional: Se basa en la teoría matemática de las relaciones. – La ventaja del modelo relacional es que los datos se almacenan, al menos conceptualmente, de un modo en que los usuarios entienden con mayor facilidad. Los datos se almacenan como tablas y las relaciones entre las filas y las tablas son visibles en los datos. Este enfoque permite a los usuarios obtener información de la base de datos sin asistencia de sistemas profesionales de administración de información. 42
  • 41. Tendencias o Enfoques● Características Enfoque Relacional: – Es importante saber que las entradas en la tabla tienen un solo valor (son atómicos); no se admiten valores múltiples, por lo tanto la intersección de un renglón con una columna tiene un solo valor, nunca un conjunto de valores. – Todas las entradas de cualquier columna son de un solo tipo. Por ejemplo, una columna puede contener nombres de clientes, y en otra puede tener fechas de nacimiento. Cada columna posee un nombre único, el orden de las comunas no es de importancia para la tabla, las columnas de una tabla se conocen como atributos. Cada atributo tiene un dominio, que es una descripción física y lógica de valores permitidos. 43
  • 42. Tendencias o Enfoques● Características Enfoque Relacional (Continuación): – No existen 2 filas en la tabla que sean idénticas. – La información en las bases de datos son representados como datos explícitos, no existen apuntadores o ligas entre las tablas. – En el enfoque relacional es sustancialmente distinto de otros enfoques en términos de sus estructuras lógicas y del modo de las operaciones de entrada/salida. En el enfoque relacional, los datos se organizan en tablas llamadas relaciones, cada una de las cuales se implanta como un archivo. En terminología relacional una fila en una relación representa un registro o una entidad; Cada columna en una relación representa un campo o un atributo. – Así, una relación se compone de una colección de entidades(o registros) cuyos propietarios están descritos por cierto número de atributos predeterminados implantados como campos. 44
  • 43. Tendencias o Enfoques● Características Enfoque Relacional (Continuación): – Un conjunto-entidad se representa mediante una tabla. Una asociación entre Conjunto- Entidad se representa mediante una tabla. – Una asociación entre conjunto-entidades puede relacionar o dar a más conjuntos-entidades. – Puede representar asociaciones de los tipos 1:1, 1:N, N:1 y N:N. – Coexiste un acceso a los datos predefinidos. – El acceso de los datos lo define el programa de aplicación mediante operaciones particulares. 45
  • 44. Modelo de Datos Relacional● Este modelo considera la Base de Datos (BD) como una colección de relaciones. De manera simple, una relación representa una tabla, en que cada fila representa una colección de valores que describen una entidad del mundo real. Cada fila se denomina tupla. Una cabecera de columna es un atributo y la tabla es una relación. El tipo de datos de valores que pueden aparecer en cada columna se llama dominio. 46
  • 45. Claves● Se denomina clave al atributo o conjunto de atributos que el Sistema manejador de Base de Datos utilizará para la identificación de un registro o tupla de forma única.● La clave debe cumplir con dos requisitos: – Identificación Unívoca. – No redundancia.● Se puede encontrar a veces una relación donde hay más de una combinación de atributos que poseen la propiedad de identificación única, es decir, más de una clave candidata. Una clave candidata que no es la clave primaria, se denomina clave secundaria o alternativa. 47
  • 46. Nomenclatura del Modelo Entidad Relación 48
  • 47. Nomenclatura del Modelo Entidad Relación 49
  • 48. Nomenclatura del Modelo Entidad Relación 50
  • 49. Nomenclatura del Modelo Entidad Relación● Entidad. – Fuertes: Entidades que tiene atributos claves propias (Autosuficiente). – Débiles: Entidades que no tiene atributos claves propias. Se identifican por su relación con entidades específicas de otras entidades en combinación con alguno de los valores de su atributo.● Atributos. – Simples: Son aquellos atributos cuyo valor es un tipo básico de datos. – Compuestos: Son aquellos que pueden dividirse en componentes más pequeños, que representan atributos más básicos. – Monovaluados: Un solo valor. – Multivaluados Tienen límites inferior y superior del número de valores para una entidad individual. – Derivados: Valores que pueden derivar de entidades relacionadas. 51
  • 50. Procedimiento para la Construcción de un Esquema● Se identifican los objetos de la situación del mundo real.● Se establecen las relaciones entre las entidades.● Se construye el Diagrama del Esquema (Diagrama Entidad-Relación, Diagrama de Bloque o de Burbuja).● Se selecciona un SMBD.● Se escribe el programa de esquema usando lenguaje descriptor de datos (LDD) del SMBD Seleccionado. 52
  • 51. Extensiones y Compresiones● Una relación en una base de datos relacional tiene dos componentes: Extensión y Comprensión. La extensión de una relación específica, es el conjunto de tuplas que aparecen en una relación en cualquier instante dado.● La extensión varía con el tiempo, es decir, cambia a medida que las tuplas se crean, eliminan y actualizan. La compresión de una relación específica es independiente del tiempo. Es la parte permanente de la relación, EN términos más precisos, la comprensión es la combinación de una estructura nominadora y un conjunto de restricciones de integridad.● La estructura nominadora se compone del nombre de la relación y los nombres de los atributos (cada uno asociado con el nombre de su dominio asociado). 53
  • 52. Integridad de Entidades e Integridad Referencial● En el modelo relacional, al igual que en otros modelos, existen restricciones, es decir, estructuras u ocurrencias no permitidas, siendo preciso distinguir entre restricciones inherentes y restricciones de usuario. Los datos almacenados en la base de datos han de adaptarse a las estructuras impuestas por el modelo (por ejemplo, no tener tuplas duplicadas) y han de cumplir las restricciones de usuario para constituir una ocurrencia válida del esquema.● La regla de Integridad de Entidad norma sobre la imposibilidad de que un atributo que componga la llave primaria de una relación base acepte valores nulos (o Condiciones de evaluación).● La integridad referencial es una propiedad deseable en las bases de datos, donde garantiza que una entidad (fila o registro) siempre se relaciona con otras entidades válidas, es decir, que existen en la base de datos. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas. 54
  • 53. Tipos de Relaciones. 55
  • 54. Ejercicio de Modelado.● Semántica obtenida del Análisis de Requerimientos y Recolección de Datos. – La compañía está organizada en departamentos. Cada departamento tiene un nombre único y un cierto empleado que lo dirige, y nos interesa la fecha en que dicho empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios lugares. – Cada departamento controla un cierto número de proyectos, cada uno de los cuales tiene un nombre y un número únicos, y se efectúa en un solo lugar. – Almacenaremos el nombre, número de seguro social, dirección, salario, sexo y fecha de nacimiento de cada empleado. Todo empleado está asignado a un departamento, pero puede trabajar en varios proyectos, que no necesariamente estarán controlados por el mismo departamento. Nos interesa el número de horas por semana que un empleado trabaja en cada proyecto, y también quién es el supervisor de cada empleado. – Queremos mantenernos al tanto de los dependientes de cada empleado con el fin de administrar los términos de sus seguros. Almacenaremos el nombre, sexo, fecha de nacimiento de cada dependiente y su parentesco con el empleado. 56
  • 55. Ejercicio de Modelado. 57
  • 56. Ejercicio Propuesto● Se desea diseñar una base de datos para una Universidad que contenga información sobre los Alumnos, las Asignaturas y los Profesores. Construir un modelo E/R teniendo en cuenta las siguientes restricciones: ● Una asignatura puede estar impartida por muchos profesores (no a la vez) ya que pueden existir grupos. ● Un profesor puede dar clases de muchas asignaturas. ● Un alumno puede estar matriculado en muchas asignaturas. ● Se necesita tener constancia de las asignaturas en las que está matriculado un alumno, la nota obtenida y el profesor que le ha calificado. ● También es necesario tener constancia de las asignaturas que imparten todos los profesores (independientemente de si tienen algún alumno matriculado en su grupo). ● No existen asignaturas con el mismo nombre. ● Un alumno no puede estar matriculado en la misma asignatura con dos profesores distintos. 58
  • 57. Unidad IIModelos de Datos y Algebra Relacional 59
  • 58. Algebra Relacional● El Álgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Hay ocho operadores en el álgebra relacional que construyen relaciones y manipulan datos, estos son: – Selección. – Proyección. – Producto. – Unión. – Intersección. – Diferencia. – Join o Reunión. – División. 60
  • 59. Operadores del Algebra Relacional● Las operaciones de proyección, producto, unión, diferencia, y selección son llamadas primitivas, puesto que las otras tres se pueden definir en términos de estas.● Se hace necesario en este punto incluir un modelo de datos de ejemplo en el cual trabajar para generar ejemplos de comandos y operadores. Para este efecto se incluye un modelo básico de administración de RadioTaxis.El Gráfico que se presenta a continuación representa el Modelo conceptual (Modelo Lógico) o Diagrama de Entidad-Relación: 61
  • 60. Esquema de Relaciones del Modelo RadioTaxis● Los Esquemas de relaciones que se pueden construir a partir de este modelo son los siguientes: – Dueño = {rut, nombre, teléfono, dirección, vigencia} – Chofer = {rut, nombre, teléfono, dirección, fecha_licencia_desde, fecha_licencia_hasta, vigencia}. – Vale = {correlativo, hora_desde, hora_hasta, metraje_total, tarifa_total} – Móvil = {patente, rut_dueño, rut_chofer, marca, modelo, año} – Viaje = {correlativo_vale, patente_movil, Hora_Desde, hora_hasta, origen, destino, tarifa, metraje} 62
  • 61. Selección● El operador de selección opta por tuplas que satisfagan cierto predicado, se utiliza la letra griega sigma minúscula para señalar la selección. El predicado aparece como subíndice. La Relación que constituye el argumento se da entre paréntesis.● Ejemplos: σ vigencia = “S” (Dueño) σ patente = “HL-8434” (Movil) 63
  • 62. Proyección● La operación de proyección permite quitar ciertos atributos de la relación, esta operación es unaria, copiando su relación base dada como argumento y quitando ciertas columnas, La proyección se señala con la letra griega pi mayúscula. Como subíndice se coloca una lista de todos los atributos que se desea aparezcan en el resultado. La relación argumento se escribe después de entre paréntesis.● Ejemplo: ∏ nombre, direccion (Dueño) ∏ rut, vigencia (σ year(fecha_vigencia_desde) >= 1996 (Chofer)) 64
  • 63. Producto● En álgebra relacional el producto de dos relaciones A y B es: A Veces B o A X B Produce el conjunto de todas las tuplas t tales que t es el encadenamiento de una tupla a perteneciente a A y de una b que pertenece a B. se utiliza el símbolo X para representar el producto.● Ejemplo: Dueño x Movil Movil x Chofer 65
  • 64. Unión ● En álgebra relacional la unión de dos relaciones compatibles A y B es: A UNION B o A ∪ B Produce el conjunto de todas las tuplas que pertenecen ya sea a A o a B o a Ambas. Al igual que en teoría de conjuntos el símbolo ∪ representa aquí la unión de dos relaciones. ● Ejemplo:r ∪ s = {t | t ∈ r or t ∈ s} ∏ rut, vigencia (Dueño) ∪ ∏ rut, vigencia (Chofer) 66
  • 65. Diferencia● En álgebra relacional la diferencia entre dos relaciones compatibles A y B A MENOS B o A – B Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B.● Ejemplo: σ rut, vigencia (Dueño) - σ rut, vigencia (Chofer) 67
  • 66. Join o Reunión● En álgebra relacional el JOIN entre el atributo X de la relación A con el atributo Y de la relación B produce el conjunto de todas las tuplas t tal que t es el encadenamiento de una tupla a perteneciente a A y una tupla b perteneciente a B que cumplen con el predicado “A.X comp B.Y es verdadero” (siendo comp un operador relacional y los atributos A.X y B.Y pertenecientes al mismo dominio). Si el operador relacional “comp” es “=” entonces el conjunto resultante es un EQUI-JOIN. Si se quita uno de éstos (usando una proyección) entonces el resultado es un JOIN-NATURAL.● Ejemplo: σ Dueño.rut = Movil.rut_dueño (Dueño x Movil) 68
  • 67. División● En álgebra relacional el operador de división divide la relación A con grado m + n por la relación B entregando como resultado una relación con grado m. El atributo m + i de A y el atributo i de B deben estar definidos dentro del mismo dominio. Así el resultado de A DIVIDIDO POR B o A / B produce la relación C con un sólo atributo X, tal que cada valor de x de C.X aparece como un valor de A.X, y el par de valores (x, y) aparece en A para todos los valores y que aparecen en B.● Ejemplo: ∏ movil, rut_chofer (Movil) / ∏ rut (σ fecha_licencia_hasta < “01/01/2001” (Chofer)) 69
  • 68. Ejercicio de Algebra Relacional PROVEEDORES ENVIOSS  S#  SNOMBRE  SITUACION  CIUDAD SPJ  S#  P#  J#  CANT   S1  Salazar         20  Londres      S1  P1  J1   200   S2  Jaimes          10  París      S1  P1  J4   700   S3  Bernal          30  París      S2  P3  J1   400   S4  Corona          20  Londres      S2  P3  J2   200   S5  Aldana          30  Atenas      S2  P3  J3   200      S2  P3  J4   500      S2  P3  J5   600 PARTES      S2  P3  J6   400P  P#  PNOMBRE  COLOR   PESO  CIUDAD      S2  P3  J7   800   P1  Tuerca   Rojo      12  Londres      S2  P5  J2   100   P2  Perno    Verde     17  París      S3  P3  J1   200   P3  Birlo    Azul      17  Roma      S3  P4  J2   500   P4  Birlo    Rojo      14  Londres      S4  P6  J3   300   P5  Leva     Azul      12  París      S4  P6  J7   300   P6  Engrane  Rojo      19  Londres      S5  P2  J2   200      S5  P2  J4   100      S5  P5  J5   500 PROYECTOS      S5  P5  J7   100J  J#  JNOMBRE      CIUDAD      S5  P5  J7   100   J1  Clasificador Londres      S5  P1  J4   100   J2  Perforadora  Roma      S5  P3  J4   200   J3  Lectora      Atenas      S5  P4  J4   800   J4  Consola      Atenas      S5  P5  J4   400   J5  Compaginador Londres      S5  P6  J4   500   J6  Terminal     Oslo   J7  Cinta        Londres 70
  • 69. Ejercicio de Algebra Relacional● Obtener los detalles completos de todos los proyectos.● Obtener los números de los proveedores que suministran partes al proyecto J1.● Obtener una lista de todas los envíos en los cuales la cantidad está en el intervalo de 300 a 750 inclusive.● Obtener todas la tripletas de números de proveedor, número de parte y número de proyecto tales que el proveedor, la parte y el proyecto indicados estén todos en la misma ciudad.● Obtener todas las parejas de nombres de ciudad tales que un proveedor de la primera coiudad suministre partes a un proyecto en la segunda ciudad. 71
  • 70. Ejercicio de Algebra Relacional● Considere la Siguiente BD: – empleado (ficha, nombre, calle, ciudad) – trabaja (ficha, empresa, sueldo) – empresa (empresa, descripción, ciudad) – jefe (ficha, ficha_jefe)● Nombre y calle de todos los empleados que trabajan en el Banco X y ganen más de 2.000.000,00 Mensuales.● Empleados que vivan en la misma calle y ciudad que su jefe.● Empleados que ganen más que cualquier empleado del Banco X.● Empleados que trabajan en todas la empresas.● Jefe de todos los empleados. 72
  • 71. Algoritmo de Transformación ER a Modelo Relacional● Para realizar la transformación de un Modelo Entidad-Relación al Modelo Relacional, hay que seguir un algoritmo de Transformación, que consta de siete Pasos: 1) Por cada tipo normal de entidades E del esquema E-R, se crea una relación que contenga todos los atributos simples de E. Se incluyen sólo los atributos simples componentes de un atributo compuesto. Se elige uno de los atributos clave de E como clave primaria de R. Si la clave elegida es compuesta, el conjunto de atributos simples que la forman constituirá la clave primaria de R (Las claves foráneas no se incluyen posteriormente en pasos subsiguientes). 2) Por cada tipo de entidad débil D del esquema ER con tipo de entidades propietarias E, se crea una relación R y se incluyen todos los atributos simples de D como atributos de R. Además, se incluye como atributo de clave externa de R los atributos de clave primaria de la relación o relaciones que corresponden al tipo o tipos de entidades propietarias. La clave primaria de R es la combinación de las claves primarias propietarias y la clave parcial de D, si existe. 73
  • 72. Algoritmo de Transformación ER a Modelo Relacional3) Por cada tipo de vínculo binario 1:1 del esquema ER, se identifican las relaciones S y T que corresponden a los tipos de entidades que participan en R. Se escoge una de la relaciones y se incluye como clave externa en S la clave primaria de T (o viceversa). Es mejor elegir un tipo de entidades con participación total en R en el papel de S. Se incluyen todos los atributos simples (o componentes simples de los atributos compuestos) del tipo de vínculo 1:1 R como atributo de S.4) Por cada tipo de vínculos normal (no débil) binario 1:N R, se identifica la relación S que representa el tipo de entidades participantes del lado N del tipo de vínculos. Se incluye como clave externa en S la clave primaria de la relación T que representa al otro tipo de entidades que participa en R; la razón es que cada ejemplar de entidad del lado N está relacionado con un máximo de un ejemplar del lado 1. Se incluyen todos los atributos simples (o componentes simples de los atributos compuestos) del tipo de vínculos 1:N como atributos de S.5) Por cada tipo de vinculo binario M:N R, se crea una nueva relación S para representar R. Se incluyen como atributos de clave externa en S las claves primarias de las relaciones que representan los tipos de entidades participantes; su combinación constituirá la clave primaria de S. 74
  • 73. Algoritmo de Transformación ER a Modelo Relacional6) Por cada atributo multivaluado A se crea una nueva relación R que contiene un atributo correspondiente a A más el atributo de clave primaria K (como clave externa en R) de la relación que representa el tipo de entidades o de vínculos que tiene a A como atributo. La clave primaria de R es la combinación de A y K. Si el atributo multivaluado es compuesto, se incluye sus componentes simples.7) Por cada tipo de vínculo n-ario R, n > 2, se crea una nueva relación S que represente a R. Se incluye como atributos de clave externa en S las claves primarias de las relaciones que representan los tipos de entidades participantes. También se incluyen los atributos simples (o los componentes simples ed los atributos compuestos) del tipo de vínculos n-ario como atributos ed S. La clave primaria de S casi siempre es una combinación de todas las claves externas que hacen referencia a las relaciones que representan los tipos de entidades participantes. 75
  • 74. Teoría de Normalización● Primera Forma Normal (1FN): Una relación está en primera forma normal si y sólo si, todos los dominios simples subyacentes contienen sólo valores atómicos. – La Primera Forma Normal (1FN) prohíbe tener un conjunto de valores, una tupla de valores o combinación de ambos como valor de un atributo para una tupla individual. – Prohíbe las “Relaciones dentro de Relaciones” o las “relaciones como atributos de tuplas”. – Los únicos valores de atributos que permite 1FN son valores atómicos (o indivisibles).● Segunda Forma Normal (2FN): Una relación está en segunda forma normal si y sólo si está en 1FN y todos los atributos no clave dependen por completo de la clave formal primaria. La segunda forma normal se basa en el concepto de dependencia funcional total. En una entidad hay existe una dependencia funcional total si la eliminación de cualquier atributo de la relación hace que la dependencia deje de ser válida. 76
  • 75. Teoría de Normalización● Tercera Forma Normal (3FN): Una relación está en tercera forma normal si y sólo si está en 2FN y todos los atributos no claves dependen de manera no transitiva de la clave primaria. – La tercera forma normal se basa en el concepto de dependencia transitiva. – Una relación esta en 3FN si y sólo si los atributos no clave (si los hay) son: ● Mutuamente independientes. ● Dependientes por completo de la clave primaria. 77
  • 76. ● Forma Normal de Boyce-Cood (FNBC): Una relación está en forma Boyce/Cood si y sólo si todo determinante es una clave candidata. – La 2FN y la 3FN eliminan las dependencias parciales y las dependencias transitivas de la clave primaria. Pero este tipo de dependencias todavía pueden existir sobre otras claves candidatas, si éstas existen. La BCFN es más fuerte que la 3FN, por lo tanto, toda relación en BCFN está en 3FN. – La violación de la BCFN es poco frecuente ya que se da bajo ciertas condiciones que raramente se presentan. Se debe comprobar si una relación viola la BCFN si tiene dos o más claves candidatas compuestas que tienen al menos un atributo en común. – Determinante: Uno o más atributos que, de manera funcional, determinan otro atributo o atributos. En la dependencia funcional (A,B)->C, (A,B) son los determinantes. – Definición formal: Una relación R esta en FNBC si y solo si cada determinante es una llave candidato. 78
  • 77. Ejemplo de Normalización 79
  • 78. Ejemplo de Normalización 80
  • 79. Ejemplo de Normalización 81
  • 80. Ejemplo de Normalización 82