Upload
letuong
View
232
Download
0
Embed Size (px)
Citation preview
Sistemas de Bases Sistemas de Bases de Datos Ide Datos I
Modelo LógicoModelo LógicoModelo RelacionalModelo Relacional
Modelo LógicoModelo LógicoModelo Relacional
Esquema Relacional (E- R) Es la representación de un DER
mediante tablas.
Algebra Relacional
Modelo RelacionalModelo Relacional
Esquema Relacional (E- R)Conformado por:
El pasaje a Tablas del DER
El proceso de Normalización
Modelo Relacional – Pasaje a TablasModelo 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 TablasModelo Relacional – Pasaje a Tablas
CI nombre Fech_nac
Atributos ___ Columna___ Campos
Tuplas___filasregistros
Dominio
Tiene todos sus atributos Monovaluados
Modelo Relacional – Pasaje a TablasModelo 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 TablasModelo 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 TablasModelo 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.
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 TablasModelo 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 TablasModelo Relacional – Pasaje a Tablas
Relaciones: Binarias:
1 a 1 _ Siempre genera tabla
Empleado (CI, nombre)Oficina (Código, tipo)Trabaja (CI, código)Trabaja (CI, código)
Modelo Relacional – Pasaje a TablasModelo Relacional – Pasaje a Tablas
Selecciono una de las dos
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 TablasModelo Relacional – Pasaje a Tablas
Relaciones: Binarias:
N a 1 : con totalidad _ NO genera tabla
Empleado (CI, nombre, código)Oficina (Código, tipo)
Modelo Relacional – Pasaje a TablasModelo Relacional – Pasaje a Tablas
Empleado hereda la clave de Oficina
Relaciones: Binarias:
Clave Foránea – FK: hace referencia a un atributo que es clave primaria en otra tabla.
Empleado (CI, nombre, código)Oficina (Código, tipo)
Modelo Relacional – Pasaje a TablasModelo Relacional – Pasaje a Tablas
FK Oficina
Categorización
Empleado (CI, nombre)
Jefe (CI, sección)
Administrativo (CI)
Modelo Relacional – Pasaje a TablasModelo Relacional – Pasaje a Tablas
FK Empleado
FK Empleado
Entidad DébilLa 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)
Capítulo (Código, número)
Modelo Relacional – Pasaje a TablasModelo Relacional – Pasaje a Tablas
FK Libro
Agregación
Empleado (CI, nombre)Empresa (código_emp)
Trabaja (CI, código_emp)Producto (código_prod)
Vende (CI, código_prod)
Modelo Relacional – Pasaje a TablasModelo Relacional – Pasaje a Tablas
FK Empleado
FK Empleado
FK Empresa
FK Empresa
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
Modelo Relacional – NormalizaciónModelo Relacional – Normalización
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 Normal1ª 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 Normal1ª F.N. – Primera Forma Normal
Ejemplo
Todos sus atributos son atómicos Único valor indivisibles
1ª F.N. – Primera Forma Normal1ª F.N. – Primera Forma Normal
Ejemplo
Pasaje a tablas y Normalizando…Empleado(CI, Nombre, Fecha_Nac, calle,
número)
1ª F.N. – Primera Forma Normal1ª F.N. – Primera Forma Normal
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 previos2ª F.N. – Conceptos previos
Dependencias funcionales: Un atributo depende funcionalmente de otro si este
último lo determina.
Empleado (CI, Nombre)CI NombreConociendo la CI determino el nombre del empleado
2ª F.N. – Conceptos previos2ª F.N. – Conceptos previos
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 Normal2ª 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 solicitadoel cliente que solicita el pedidoen que fecha y la cantidad de ejemplares
2ª F.N. – Segunda Forma Normal2ª 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 cantidadcód_libro Título, Cód_Autor, Nom_Autor, PrecioCI Nom_Cliente
2ª F.N. – Segunda Forma Normal2ª 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 cantidadDependencia funcional totalLa cantidad de pedidos es determinada por los tres
atributos claves.Cumple con la 2ª FN.
2ª F.N. – Segunda Forma Normal2ª 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, PrecioDependencia Funcional ParcialLos atributos son determinados por parte de la
clave cód_libro.No cumple con la 2ª FN
2ª F.N. – Segunda Forma Normal2ª 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_ClienteDependencia Funcional ParcialEl atributo no primo es determinado por parte de la
clave CI.No cumple con la 2ª FN
2ª F.N. – Segunda Forma Normal2ª 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)
2ª F.N. – Segunda Forma Normal2ª F.N. – Segunda 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 Normal3ª F.N. – Tercera Forma Normal
Ejemplo:
Libros (cód_libro, Título, Cód_Autor, Nom_Autor, Precio)
Dependencia FuncionalCód_Autor Nom_Autor
Normalizando… Libros (cód_libro, Título, Cód_Autor, Precio)Autores (Cód_Autor, Nom_Autor)
3ª F.N. – Tercera Forma Normal3ª F.N. – Tercera Forma Normal
Modelo LógicoModelo LógicoModelo Relacional
Esquema Relacional (E- R)
Algebra Relacional
Álgebra RelacionalDos tipos diferentes de lenguajes de
consulta: Formales:
Algebra RelacionalComerciales:
SQL (Lenguaje de consulta estructurada)
Modelo LógicoModelo Lógico
Álgebra RelacionalÁlgebra RelacionalA.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.
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.
Álgebra RelacionalÁlgebra Relacional
SelecciónSelección σLa operación SELECCIONARSELECCIONAR 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: <,>,<=,>=,=, < >
EjemploEjemplo Dada la relación Empleado: seleccionar los empleados que ganan mas
de 3000.
Respuesta a la consulta es:
ProyecciónProyecció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).
EjemploEjemplo Dada la relación Empleado: seleccionar el nombre, apellido y sueldo de
los empleados.
Respuesta a la consulta es:
Selección y ProyecciónSelección y ProyecciónDada la relación Empleado: seleccionar el nombre, apellido y sueldo de los empleados con DN igual a 5.
Respuesta a la consulta es:
UniónUnió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.
DiferenciaDiferencia - 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
EjemploEjemplo
Producto CartesianoProducto Cartesiano XEl producto cartesiano crea tuplas con los
atributos combinados de dos relaciones se denota:
R X S
Producto CartesianoProducto Cartesiano X
Operadores No BásicosOperadores No Básicos Estos operadores pueden ser expresados en
términos de otros operadores básicos.
Intersección Join División
IntersecciónIntersecció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
EjemploEjemplo
JoinJoin 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ónDivisió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ónDivisión / o %
Fuente:Fuente:
Bibliografía:
ELMASRI, R. y NAVATHE, S. (1994). Sistemas de Bases de Datos. México: Editorial Addison Wesley, Segunda Edición.