Sistemas de Bases de Datos I Modelo Lógico Modelo Relacional Modelo Lógico Modelo Relacional Esquema Relacional (E- R) Es la representación de un DER mediante tablas. Algebra Relacional Modelo Relacional Esquema Relacional (E- R) Conformado por: El pasaje a Tablas del DER El proceso de Normalización Modelo Relacional – Pasaje a Tablas Entidad: Cada colección de objetos (entidad) genera siempre una tabla con el mismo nombre, para almacenar los datos que la describen (atributos). Empleado(CI, nombre, fecha_Nac, dirección) Modelo Relacional – Pasaje a Tablas Atributos ___ Columna___ Campos Dominio CI nombre Fech_nac Tuplas___filas registros Tiene todos sus atributos Monovaluados Modelo Relacional – Pasaje a Tablas Atributo Compuesto: Se genera un atributo por cada atributo atómico que lo compone. Empleado(CI, nombre, fecha_Nac, calle, número.) Modelo Relacional – Pasaje a Tablas Atributo Multivaluado: Siempre genera una tabla, sus campos serán la clave primaria de la entidad más el valor que estamos guardando. Empleado(CI, nombre, fecha_Nac) Teléfonos(CI, teléfonos) Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: La relación entre las entidades se representan mediante una tabla, existen excepciones. Esta tabla estará conformada por los atributos claves de las entidades que se vinculan en dicha relación. La cardinalidad determina las tablas y en caso de generarla cual es la clave primaria. Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: Empleado (CI, nombre) Oficina (Código, tipo) Trabaja (CI, código) Su clave dependerá de la cardinalidad, también si se genera la tabla o no. Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: N a N _ Siempre genera tabla Empleado (CI, nombre) Oficina (Código, tipo) Trabaja (CI, código) Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: 1 a 1 _ Siempre genera tabla Empleado (CI, nombre) Oficina (Código, tipo) Trabaja (CI, código) Selecciono una de las dos Trabaja (CI, código) Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: N a 1 : sin totalidad _ Siempre genera tabla Empleado (CI, nombre) Oficina (Código, tipo) Trabaja (CI, código) Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: N a 1 : con totalidad _ NO genera tabla Empleado (CI, nombre, código) Oficina (Código, tipo) Empleado hereda la clave de Oficina Modelo Relacional – Pasaje a Tablas Relaciones: Binarias: Clave Foránea – FK: hace referencia a un atributo que es clave primaria en otra tabla. FK Oficina Empleado (CI, nombre, código) Oficina (Código, tipo) Modelo Relacional – Pasaje a Tablas Categorización Empleado (CI, nombre) FK Empleado Jefe (CI, sección) FK Empleado Administrativo (CI) Modelo Relacional – Pasaje a Tablas Entidad Débil La relación débil se representa en la entidad débil. La entidad débil hereda el atributo determinante de la entidad fuerte. Libro (Código, título, autor) FK Libro Capítulo (Código, número) Modelo Relacional – Pasaje a Tablas Agregación Empleado (CI, nombre) Empresa (código_emp) FK Empleado FK Empresa Trabaja (CI, código_emp) Producto (código_prod) FK Empleado FK Empresa Vende (CI, código_prod) Modelo Relacional – Normalización Después de hacer el pasaje a tablas de un DER tenemos que verificar que cada tabla resultante cumpla con una serie de normas básicas que tratan de evitar: Redundancia de datos Inconsistencia (mismo dato repetido y con valores distintos) A este proceso se lo denomina NORMALIZACIÓN 1ª F.N. – Primera Forma Normal Una tabla esta en Primera Forma Normal si y solo si: No existen dos filas idénticas. Todos sus atributos son atómicos Único valor indivisibles 1ª F.N. – Primera Forma Normal Ejemplo No existen dos filas idénticas. Cada entidad debe tener un atributo determinante clave 1ª F.N. – Primera Forma Normal Ejemplo Todos sus atributos son atómicos Único valor indivisibles 1ª F.N. – Primera Forma Normal Ejemplo Pasaje a tablas y Normalizando… Empleado(CI, Nombre, Fecha_Nac, calle, número) 2ª F.N. – Conceptos previos Atributo Primo: es una clave primaria o una candidata. Los dos atributos pueden identificar a un empleado Uno es el atributo determinante – clave primaria. El otro es atributo primo del anterior. 2ª F.N. – Conceptos previos Dependencias funcionales: Un atributo depende funcionalmente de otro si este último lo determina. Empleado (CI, Nombre) CI Nombre Conociendo la CI determino el nombre del empleado 2ª F.N. – Segunda Forma Normal Una tabla esta en Segunda Forma Normal si y solo si: Está en 1ª FN Todos sus atributos NO PRIMOS dependen funcionalmente de forma total de la clave primaria. 2ª F.N. – Segunda Forma Normal Ejemplo: Pedidos (cód_libro, CI, fecha, Título, Cód_Autor, Nom_Autor, Precio, Nom_Cliente, Cantidad) Esta tabla almacena los pedidos realizados a una editorial. Para cada pedido se registra: el libro solicitado el cliente que solicita el pedido en que fecha y la cantidad de ejemplares 2ª F.N. – Segunda Forma Normal Ejemplo: Pedidos (cód_libro, CI, fecha, Título, Cód_Autor, Nom_Autor, Precio, Nom_Cliente, Cantidad) Dependencias Funcionales cód_libro, CI, fecha cantidad cód_libro Título, Cód_Autor, Nom_Autor, Precio CI Nom_Cliente 2ª F.N. – Segunda Forma Normal Ejemplo: Pedidos (cód_libro, CI, fecha, Título, Cód_Autor, Nom_Autor, Precio, Nom_Cliente, Cantidad) Dependencias Funcionales cód_libro, CI, fecha cantidad Dependencia funcional total La cantidad de pedidos es determinada por los tres atributos claves. Cumple con la 2ª FN. 2ª F.N. – Segunda Forma Normal Ejemplo: Pedidos (cód_libro, CI, fecha, Título, Cód_Autor, Nom_Autor, Precio, Nom_Cliente, Cantidad) Dependencias Funcionales cód_libro Título, Cód_Autor, Nom_Autor, Precio Dependencia Funcional Parcial Los atributos son determinados por parte de la clave cód_libro. No cumple con la 2ª FN 2ª F.N. – Segunda Forma Normal Ejemplo: Pedidos (cód_libro, CI, fecha, Título, Cód_Autor, Nom_Autor, Precio, Nom_Cliente, Cantidad) Dependencias Funcionales CI Nom_Cliente Dependencia Funcional Parcial El atributo no primo es determinado por parte de la clave CI. No cumple con la 2ª FN 2ª F.N. – Segunda Forma Normal Ejemplo: Pedidos (cód_libro, CI, fecha, Título, Cód_Autor, Nom_Autor, Precio, Nom_Cliente, Cantidad) Normalizando… Para cada dependencia funcional parcial se genera una nueva tabla Pedidos(cód_libro, CI, fecha, cantidad) Libros (cód_libro, Título, Cód_Autor, Nom_Autor, Precio) Clientes (CI, Nom_Cliente) 3ª F.N. – Tercera Forma Normal Una tabla esta en Tercera Forma Normal si y solo si: Está en 2ª FN Ningún atributo NO PRIMO depende de otro atributo NO PRIMO. 3ª F.N. – Tercera Forma Normal Ejemplo: Libros (cód_libro, Título, Cód_Autor, Nom_Autor, Precio) Dependencia Funcional Cód_Autor Nom_Autor Normalizando… Libros (cód_libro, Título, Cód_Autor, Precio) Autores (Cód_Autor, Nom_Autor) Modelo Lógico Modelo Relacional Esquema Relacional (E- R) Algebra Relacional Modelo Lógico Álgebra Relacional Dos tipos diferentes de lenguajes de consulta: Formales: Algebra Relacional Comerciales: SQL (Lenguaje de consulta estructurada) Álgebra Relacional A.R. es una colección de operadores básicos que sirven para manipular relaciones, con el fin de especificar una consulta de la base de datos. El resultado de cada operación es una nueva relación. Cada consulta expresada en A.R. describe paso a paso como computar la respuesta. Es decir, las consultas son especificadas en una manera Procedural. Álgebra Relacional Operadores básicos: Selección Proyección Unión Diferencia Producto Cartesiano Selección y proyección son operadores unarios y los demás binarios. Cada operación retorna una relación como resultado. Selección σ La operación SELECCIONAR sirve para seleccionar un subconjunto de las tuplas de una relación (tabla) que satisfacen una condición de selección. La selección desde una relación R es: Operadores que usaremos: <,>,<=,>=,=, < > Ejemplo Dada la relación Empleado: seleccionar los empleados que ganan mas de 3000. Respuesta a la consulta es: Proyección π Si sólo queremos saber ciertos atributos de una relación (tabla), “proyectamos” la relación sobre esos atributos con al operación PROYECTAR. La proyección en algunos casos puede devolver tuplas idénticas (algunos DBMS omiten tuplas idénticas). Ejemplo Dada la relación Empleado: seleccionar el nombre, apellido y sueldo de los empleados. Respuesta a la consulta es: Selección y Proyección Dada la relación Empleado: seleccionar el nombre, apellido y sueldo de los empleados con DN igual a 5. Respuesta a la consulta es: Unión ∪ El resultado de esta operación, denotado por R ∪ S, es una relación que incluye todas las tuplas que están en R o en S o en ambas. Las tuplas repetidas se eliminan. R∪S Ejemplo: Resultado 1 contiene los números de seguro social de todos los empleados que trabajan en el departamento 5, y Resultado 2 contiene los números de seguro social de todos los empleados que supervisan directamente a empleados que trabajan en el departamento 5. Diferencia - El resultado de esta operación, denotado R – S, es una relación que incluye todas las tuplas que están en R pero no en S. R–S Ejemplo Producto Cartesiano X El producto cartesiano crea tuplas con los atributos combinados de dos relaciones se denota: RXS Producto Cartesiano X Operadores No Básicos Estos operadores pueden ser expresados en términos de otros operadores básicos. Intersección Join División Intersección ∩ El resultado de esta operación, denotado por R ∩ S, es una relación que incluye las tuplas que están tanto en R como en S. R∩S Ejemplo Join El Join es un derivado del producto cartesiano y sirve para combinar tuplas relacionadas de dos relaciones en una sola tupla. Existe varias formas de Join, el más común es el join con condición, que se denota: Donde F es la condición que especifica los atributos para ejecutar el join. División / o % La operación A / B retorna todos los valores de x tales que para todo valor “y” en B existe una tupla (x,y) en A. A/B División / o % Fuente: Bibliografía: ELMASRI, R. y NAVATHE, S. (1994). Sistemas de Bases de Datos. México: Editorial Addison Wesley, Segunda Edición.
© Copyright 2025