Logo Studenta

Sistemas de gestión de bases de Datos

¡Este material tiene más páginas!

Vista previa del material en texto

BASES DE DATOS
U.D.1. Sistemas de gestión de bases de Datos.
U.D.2. Bases de Datos Relacionales.
· Modelo E/R.
· Transformación del esquema E/R al Relacional.(Operaciones básicas sobre tablas).
· Normalización(Access);
U.D.3. SQL
· Lenguaje de manipulación de datos.
· Lenguaje de definición de datos.
· Lenguaje de control de datos.
ASI 2
U.D.1. Sistemas de gestión de bases de Datos.
1.1. Concepto y objetivos de los sistemas de Bases de Datos.
1.2. Distintos niveles de abstracción.
1.3. Sistemas Gestores de Bases de Datos (SGBD).
1.4. Interacción del usuario con el SGBD: Lenguajes.
1.5. El administrador de la Base de Datos.
1.1. Concepto y objetivos de los sistemas de Bases de Datos.
Orígenes históricos:
BD: Conjunto de datos más relaciones. Conjunto de información->Características comunes.
Surge en el año 1960 aunque no se empieza a usar hasta el año 1971.
Sistema de BD: Conjunto de BB.DD. Surgen para solucionar los problemas que había en los ficheros.
Problemática de ficheros:
· Información inconsistente.
	DNI
	Nombre
	Dire
	Fech_Ing
	Tfno
	Año_Trab
Personal 
 
	DNI
	Nombre
	Dire
	Sueldo
	SS
 Nóminas 
· Redundancia->Datos repetidos.
· Dependencia de los datos respecto al soporte físico y a los programas.
· Confidencialidad y seguridad. Confidencialidad es impedir a ciertos usuarios consultar ciertos datos.
Definición de B.D.:
· De Miguel y Piattini-1993: Colección de datos integrados, con redundancia controlada y estructura que refleje las interrelaciones y restricciones existentes en el mundo real. Los datos que han de ser compartidos por distintos usuarios y aplicaciones deben mantenerse independientes de éstas , y su definición y descripción han de ser únicas, estando almacenadas junto a los mismos. Los procedimientos de actualización y recuperación han de ser capaces de mantener la seguridad y confidencialidad.
· Sistema formado por un conjunto de datos y un paquete software para la gestión del mismo de tal forma que se controla el almacenamiento de los datos redundantes, los datos resultan independientes de los programas y se puede acceder a los datos de distinta forma.
Objetivos:
· Independencia de los datos respecto a tratamiento.
· Coherencia en los resultados.
· Mayor valor informativo.
· Utilización múltiple.
· Seguridad y confidencialidad.
· Desempeño->Atender con rapidez las peticiones de datos.
· Redundancia mínima.
· Integridad->Evitar fallos en la base de datos.
· Interfaz con el pasado y con el futuro.
1.2. Distintos niveles de abstracción
· Esquema externo: representa la visión individual de un usuario de la BBDD → Programas de aplicación que manejan una parte de la información de usuarios.
· Esquema conceptual: describe cuáles son los datos reales que están almacenados en la BBDD y qué relaciones existen entre los datos: nombre, tamaño, tipo, relaciones, limitadores de integridad, etc.
· Esquema interno: representación más cercana al almacenamiento físico de datos. Describe los ficheros que contienen la información, organización, ubicación, tipos de registros, su longitud, campos, índices, forma de acceso.
1.3. S.G.B.D
Definición: Es un conjunto coordinado de programas, procedimientos o lenguajes que suministra tanto a los usuarios no informáticos, como a personal informático los medios necesarios para describir, recuperar y manipular los datos almacenados en la base manteniendo la seguridad.
Funciones: 
· Describir el esquema conceptual.
· Describir el esquema externo.
· Descripción de la organización física y recuperar tras un fallo.
· Interrogación directa para recuperar la información y acceso a los datos desde lenguajes de alto nivel.
Ejemplos de SGBD comerciales: 
1. Modelo jerárquico (1960).
2. Modelo en red (1970).
3. Modelo relacional (1986-Codd).
1. Usa los árboles para la representación lógica de los datos.
Departamentos (Dpto_nº, Dnombre, loc)
Empleados (Emp_nº, apell, oficio,..., Dept_nº)
	
	
a. 
	
b. 
	
c. 
	
d. 
	
	
	
	
	
	
	10 Contab Sevilla
	 red
	20 RRHH Madrid
	4422 Pérez
	
	4433 Sánchez
	
	5000 López
	
	4444 García
	
	5555 Carlos
Ejemplos:
IMS de IBM
System 2000 de Intel
Un registro puede tener n hijos pero cada hijo sólo un padre.
2. n hijos con n padres.
Inconveniente: Todo está relacionado con todo.
Ejemplos:
DMS 1100 de Univac
EDMS de Xerox
3. Elemento principal son las relaciones representadas en tablas.
Departamentos							Empleados
	Dpto_nº
	Dnombre
	Loc
	10
	Contab
	Sevilla
	20
	RRHH
	Madrid
	
	Emp_nº
	Apell
	Of
	Dnombre
	Loc
	4422
	Pérez
	
	
	
 
 
1.4. Interacción del usuario con el SGBD: Lenguajes
a) Lenguaje de definición de datos o DDL: Se describen los datos, la estructura de esos datos, las relaciones entre esos datos, reglas de integridad, características físicas y las vistas de los usuarios, es decir, se hace una descripción de los esquemas físicos, de los esquemas conceptuales y los esquemas externos o distintas vistas. 
b) Lenguaje de manipulación de datos o DML: Permiten manejar o tener acceso a la base de datos, es decir, insertar, buscar, modificar y borrar datos de la base de datos. Hay una instrucción llamada Insert para insertar.
c) Lenguaje de control de datos o DCL: Controla el acceso a la información de la base de datos y define los privilegios y los tipos de acceso y seguridad de los datos. Administrador de la base de datos.
1.5. El administrador de la BD
Se le llama DBA y es el responsable del diseño, del control y de la administración de la base de datos. Puede ser una persona o varias personas. El ANSI /X3/SPARC en realidad dice que debe haber tres administradores:
a) Administrador de la empresa: Realiza el diseño conceptual y lógico de la base de datos.
b) Administrador de la base de datos: Realiza el diseño físico de la base de datos.
c) Administrador de aplicaciones: Realizan los distintos esquemas externos de la base de datos.
Funciones generales:
· Diseñar la estructura de la base de datos.
· Descripción conceptual y lógica de la base de datos.
· Descripción física.
· Describir las vistas y los esquemas externos.
· Definir los estándares.
· Define la estrategia de transición.
· Aspectos relativos a la seguridad.
· Estar en comunicación con usuarios, directivos, analistas, operadores, programadores, suministradores de productos, ...
U.D.2. Bases de Datos Relacionales
2.1. El modelo E/R(Análisis de datos)
· Introducción.
· Elementos del modelo E/R.
· Construcción de un esquema E/R.
2.2. Paso de E/R a modelo relacional(Diseño de datos)
· Modelo Relacional.
· Reglas de transformación.
· Operaciones básicas sobre tablas.
2.3. Normalización
· Introducción.
· Noción intuitiva de F.N(Formas Normales).
2.1. El modelo E/R(Análisis de datos)
· Introducción.
Propuesto por Peter P. Chen en 1976 y según este autor, el modelo E/R se usa para representar los datos y las relaciones entre ellos usando una serie de símbolos y reglas.
· Elementos del modelo E/R.
1. Entidades.
2. Relaciones.
3. Atributos.
4. Generalización de entidades.
	 Relación
Entidad
Entidad
Atributo Atributo
1. Es un objeto real o abstracto acerca del cual queremos almacenar información en la base de datos. Ejemplos: persona, cosa, lugar. Hay dos tipos:
- Fuertes o regulares: La que tiene existencia por si misma y se representa así:Hospital
Empleado
Dpto
- Débil: Aquella cuya existencia depende de una entidad fuerte y se representa así:Hijo
Ejemplos:
Familiar
Empleado
Si desaparece el empleado, familiar sería una entidad débil.
Funcionario
Hijo de funcionario
Si desaparece el funcionario, hijo sería una entidad débil.
Libro
Ejemplar
Si desaparecen los libros, ejemplar sería débil.
2. Es la asociación entre entidades y se representa así: . Cada relación tiene un nombre que la identifica. El grado de una relación es el número de entidades que intervienen en la relación y puede haber:
- Grado 2: Unen dos entidades.Y
X
Empleado
Es jefe
- Grado 1: Une una entidad consigo misma. 
- Grado n: Más de dos entidades.
Tipo de correspondencia: Es el nº máximo de ocurrencias de cada entidad que pueden intervenir en una ocurrencia de la relación que se está tratando.
- 1:1.Mujer
Hombre
- 1:N. Uno a muchos. Mujer
Hombre
Mujer
Hombre
- N:1. Muchos a uno. 
- N:M. Muchos a muchos. Mujer
Hombre
Cardinalidad: Nº máximo y mínimo de ocurrencias de una entidad que pueden estar relacionados con una ocurrencia de otra u otras entidades que participan en la relacion. Puede tomar los valores (0,1), (1,1), (0,n), (1,n), (n,m).
pertenece
Dpto
Empleado
 (0,n) (1,1)
 (1,1) (0,1)
responsable
Si la relación es entre una entidad débil y una fuerte, se habla de una dependencia en identificación y en existencia.
· Se dice que hay dependencia en existencia cuando las ocurrencias de una entidad débil no pueden existir si desaparece la entidad regular de la que depende.
· Dependencia en identificación es cuando además de lo anterior, las ocurrencias de la débil no se pueden identificar únicamente mediante los atributos propios y exigen añadir la clave de la entidad de la que dependen(toda dependencia en identificación lo es en existencia). Las dependencias en identificación se representan y las de existencia E
I
Ejemplo:
I|hay
Habitaciones
Planta
 Cod_planta Num_habitación
Otro aspecto a tener en cuenta es que las relaciones pueden ser exclusivas y se representa mediante un .
Ejemplo:responsabl
Dpto
Empleado
Un empleado es responsable de un departamento o bien trabaja trabaja
en varios proyectos.
 
proyecto
3. Son las propiedades de las entidades o las relaciones. Toman sus valores de los dominios, siendo un dominio el conjunto de valores que puede tomar un atributo.
 Nombre: Es el atributo identificador principal, los que identifican unívocamente las entidades.
 Nombre: Atributo identificador alternativo.
 Nombre: Atributos normales.
En las relaciones se pueden encontrar los atributos normales.
Generalización: La generalización es una necesidad muy habitual. La relación que se establece entre un supertipo de entidad y sus subtipos corresponde a la notación de “es un” o “es un tipo de”. Se representa por un triángulo invertido y en esta relación toda ocurrencia de un subtipo es una ocurrencia del supertipo aunque no sucede lo contrario, con lo que las cardinalidades serán (1,1) en el supertipo y (n,1) en el subtipo.
Tiene una característica importantísima: La herencia: Es el modo que todo lo que le pase al supertipo le pasa también al subtipo, de modo que todos los atributos del subtipo serán también del supertipo. Los específicos del subtipo serán también al subtipo. Las relaciones que afecten a todos los subtipos se asocian al supertipo asociando al subtipo las específicas.
Ejemplo: 
Empleado 
 Tipo Supertipo
 Cargo
 (1,1)
 (0,1) (0,1)
Analista
Vendedor
 Subtipo
 Cualidad Fecha
· Construcción de un esquema E/R
No existen reglas que nos digan que elemento va a ser entidad o relación, pero existen normas generales que podemos aplicar:
· Un sustantivo que actúa como sujeto o O.D es una entidad(puede ser un atributo).
· Los nombres propios suelen ser ocurrencias de una entidad.
· Un verbo suele ser una relación.
· Preposición entre dos nombres suele ser o una relación o asocia entidad y su atributo.
Batini-1993:
a) Descendente: Se parte de una entidad y se descompone al detalle de los atributos.
b) Ascendente: Se parten los atributos, se agrupan en entidades y se agrupan por relaciones.
c) Inside – Out: Se empieza creando el esquema entidad-relación en una parte del papel y luego se va ocupando todo el papel.
d) Mixto: Descendente y mancha de aceite.
Ejemplo de redundancia: Sólo N:M.
está
Facultad
Dpto
 (1,n)
 
 (1,1)
 (1,1) (1,1)asignado
Encontrar
 (1,n)Profesor
adscrito
 (1,n)
 C1
 Fecha
 (1,n) (1,n)Cátedra
pertenece
C1	asignado	adscrito	se encuentra
D1	P1		C1		D1	C1
	P2		C2			C2 no es redundante
	P3		C3			C3
			C2
			C1
			C2 
C1	P1		D1		C1	D1
	P2		D2
	P3		D3
	Adscrito	asignado 
Cardinalidad
 Vivienda pertenece como mínimo ( ) municipio
Vivienda
Municipio
tiene
 
 ( , ) ( , )
Mínimo de municipios 
Máximo de municipios Un municipio tiene 
Vivienda como máximo ( ) municipio como mínimo ( ) 
 viviendas.
 Un municipio tiene como máximo ( ) viviendas.
Ejemplo:
Programador
usa
proyecto
Lenguaje
NO ES LO MISMO 
Programador
trabaja
usa
Lenguaje
Proyecto
en
2.2. Paso de E/R a modelo Relacional(Diseño de datos)
· Modelo Relacional
Surge en 1960 por Codd, pero no se usa hasta el año 1980.
El elemento más importante es la relación y está representada mediante tablas. Las tablas tienen columnas que son los atributos de la relación y filas llamadas tuplas y son las distintas ocurrencias de la relación.
	Modelo Relacional
	Gráficamente
	Información tradicional
	Relación
	Tablas
	Ficheros
	Atributos
	Columnas
	Campos
	Tuplas
	Filas
	Registros
· Cardinalidad: Es el número de tuplas.
· Grado: Es el número de atributos.
· Dominio: Conjunto de valores que puede tomar un atributo.
· Claves: Se distingue entre clave candidata: Conjunto de atributos que determina mínima y unívocamente cada tupla. En una relación pueden existir varias claves candidatas.
Ejemplo: Empleados(Cod_E, DNI, Nombre, Sueldo, ...). Aquí las claves candidatas pueden ser o Cod_E o el DNI y de entre éstas dos, una debe ser la clave principal llamada también clave primaria y el resto de claves se llaman claves alternativas.
Claves ajenas: Es el conjunto de atributos, cuyos valores coinciden con los valores de la clave primaria de otra relación(o de ella misma).
Ejemplo: 
 Cod_E DNI Nombre
Dpto
Empleado
 (1,n) (1,1)
 
 (0,n) (1,1)
 Cod_D Local
jefe
 Nombre
Empleados(Cod_E, Nombre, Sueldo, Cod_D[fk], Cod_E_Superior[fk])
Departamentos(Cod_D, Nombre, Localidad)
Dos reglas importantes:· Integridad de entidad: Ningún atributo que forma parte de la clave primaria de una relación puede tomar un valor nulo.
· Integridad referencial: Los valores de la clave ajena o bien coinciden con los de la clave primaria a la que referencian, o bien son nulos, por tanto, para cada clave ajena se debe especificar si puede o no tomar valores nulos.
Operaciones
Es necesario determinar las consecuencias del borrado y modificación realizadas sobre tuplas de la relación referenciada.
Ejemplo:
Empleados(Cod_E, DNI, Nombre, Sueldo, Cod_D[fk])
Departamentos(Cod_D, Nombre, Localidad)
· Operación restringida: El borrado o la modificación de tuplas de la relación que contiene la clave primaria referenciada, sólo se permite si no existen tuplas con dicha clave en la relación que contiene la clave ajena.
Ejemplo: 
	Cod_Dep
	Nombre
	Local
	 1
	Administración
	Vall
	2
	Comercial
	Burgos
	Cod_E
	DNI
	Nombre
	Sueldo
	Cod_Dep
	12
	12
	Pepe
	
	1
	15
	15
	Juan
	
	1
	16
	16
	Lola
	
	1
En este caso sólo se puede borrar el departamento 2.
· Operación en cascada: Lleva consigo el borrado o la modificación en cascada de las tuplas con dicha clave en la relación que contiene la clave ajena. En este caso si se borra el departamento 1 desaparecen todos los empleados de ese departamento.
· Con puesta a nulos(Set Null): Lleva consigo poner a nulos los valores de la clave ajena de la relación que referencia. Esta opción es posible cuando la clave ajena puede ser puesta a nulo.
· Operación con puesta a valor por defecto: Lleva consigo poner a valor por defecto a la clave ajena de la relación que referencia. Este valor por defecto se habrá definido al crear la tabla.
· Operación que desencadena un procedimiento de usuario: El borrado o modificación de tuplas de la tabla referenciada, pone en marcha un procedimiento determinado por el usuario.
· Reglas de transformación
1. Toda entidad se transforma en una relación.
2. Toda entidad N:M se transforma en una relación.
3. Toda interrelación 1:N se traduce en una propagación de claves.
Ejemplo:
 Códigoedita
Libro
Editorial
 Título
 Idioma
 escribe
 País Nombre Dire CiudadAutor
 Nombre Nación
Libro (Código, título, idioma, nombre_e[fk])
Editorial (Nombre_e, dirección, ciudad, país).
Autor (Nombre_a, nacionalidad).
Escribe (Código[fk], Nombre_a[fk]).
Otro ejemplo:
agrupa
Pedidos
Clientes
agrupa
Artículos
Clientes (Cod_cli).
Pedidos (Cod_ped , Fecha).
Artículos (Cod_art).
Agrupa (Cod_ped[fk], Cod_art[fk]).
Casos a considerar:
· Interrelaciones 1:1: Se pueden representar de distintas maneras atendiendo a las cardinalidades de la relación.
a) Si las entidades que se asocian tienen (0,1): Se puede propagar la clave a cualquiera de las dos entidades o crear una nueva relación además de las dos relaciones que representan cada una de las dos entidades.
Ejemplo:Se casa
Mujer
Hombre
 (0,1) (0,1)
DNI_H DNI_M
Sol 1: Hombre (DNI_H ,..., DNI_M[fk]).
 Mujer (DNI_M).
Sol 2: Hombre (DNI_H).
 Mujer (DNI_M, DNI_H[fk]).
Sol 3: Hombre (DNI_H).
 Mujer (DNI_M).
 Matrimonio (DNI_H[fk], DNI_M[fk]).
b) Las entidades que se asocian tienen como cardinalidades (0,1) (1,1): Se propaga la clave de la entidad con cardinalidad (1,1) a la tabla resultante de cardinalidad (0,1).
Ejemplo:
resp
Departamento
Empleado
 (1,1) (0,1)
Cod_emp Nombre_emp Cod_D Nombre_D
Empleado (Cod_emp, Nombre_emp)
Departamento (Cod_D, Nombre_D, Cod_emp[fk]).
c) Si las dos entidades tienen cardinalidad (1,1): Se puede propagar la clave de cada una de ellas a la tabla resultante de la otra. También se puede plantear la propagación de las dos claves pero puede atraer redundancias.
Ejemplo:
 (1,1) (1,1)Y
X
 
 Cod_X Cod_Y
X (Cod_X).
Y (Cod_Y, Cod_X[fk]).
X (Cod_X, Cod _Y[fk]).
Y (Cod_Y,).
X (Cod_X, Cod_Y[fk]).
Y (Cod_Y, Cod_X[fk]).
· Interrelaciones 1:N: Se traduce como propagación de claves y se van a analizar las reflexivas.
Ejemplo 1:consta
Tema
 (0,n)
 (0,1)
Cod_Tema
Ejemplo 2:
jefe
Empleado
 (0,1)
 (0,n)
Cod_E
Para este ejemplo la solución es una tabla.
Sol 1: Empleado (Cod_E,..., Cod_E_Sup[fk]).
Sol 2: Empleado (Cod_E).
 Jefe (Cod_E[fk], Cod_E_Sup[fk]).
Ejemplo 3:
jefe
 (1,1)Empleado
 (0,n)
 Cod_E
Aquí la solución correcta sería:
Empleado (Cod_E,..., Cod_E_Sup[fk]). Borrado restringido en cascada. Y la modificación restringida o en cascada. Y Cod_E_Sup es NOT NULL.
Ejemplo 4:
Editorial
 (1,1)
edita
 (1,n)
 Libros
Editorial (Cod_Ed).
Libro (Cod_L, Cod_Ed[fk]). Modificación restringida y borrado restringido, y Cod_Ed es NOT NULL.
En existencia y en identificación
No se recoge en el modelo relacional.
a) Dependencia en existencia(mecanismo de propagación de claves): Creando una clave ajena con nulos no permitidos en la relación de la entidad dependiente con la característica de obligar a una modificación y un borrado en cascada.
Ejemplo:
Tiene
Ex
Familiar
Empleado
 (1,1) (0,n)
Cod_emple Nombre DNI Nombre
Empleado(Cod_emple[pk], Nombre)
Familiar(DNI[pk],Nombre,Cod_emple[fk])Borrado y modificación en cascada y es not null.
b) Dependencia en identificación: Además de la dependencia en existencia la clave primaria de la relación de la entidad débil debe estar formada por la concatenación de las claves de las dos entidades participantes en la relación.
Ejemplo:
Id
tiene
Libro
 (1,1) (0,n)Ejemplar
Cod_libro Cod_ejemplar
Libro(Cod_libro[pk])
Ejemplar(Cod_ejemplar[pk],Cod_libro[fk])Borrado y modificación en cascada y es not null.
· Transformación de relaciones N:M: Se transforma en tres tablas.
Ejemplo:
 Fecha_ent Fecha_salescribe
Libro
Autor
Cod_autor Cod_libro
Autor(Cod_autor[pk])
Escribe(Cod_autor[fk], Cod_libro[fk], Fecha_ent, Fecha_sal)
Libro(Cod_libro[pk])
· Transformación de tipos y subtipos:
Hay varias soluciones.
Ejemplo:
 Título Código Documento
 Idioma
Libro
Artículo
 Suplemento Páginas
SOL1: Documento(Código[pk], Idioma, Título, Suplemento, Páginas, tipo)
SOL2: Dcumento(Código[pk], Título, Idioma)
Artículo(Código[pk], Suplemento)
Libro(Código[pk], Páginas)
SOL3: Libro(Código[pk], Título, Idioma, Páginas)
Artículo(Código[pk],Título, Idioma, Suplemento)
1. Crear una tabla con todos los atributos de la entidad y de los subtipos. Se utiliza cuando los subtipos se diferencian en poco y las entidades que los asocian es la misma. Se añade un atributo adicional llamado tipo que discrimina a los subtipos y se llama discriminante.
2. Se crea una relación para el supertipo y tantas relaciones como subtipos haya con sus atributos correspondientes. Se adopta esta solución cuando hay muchos atributos distintos para los subtipos queriéndose mantener de todas formas los atributos de todos ellos en una relación.
3. Relaciones distintas para cada subtipo, conteniendo además de sus propios atributos, los atributos comunes.
· Transformación de interrelaciones exclusivas:
Libro
 Cod_libro
Edita 2
edita
Universidad
Editorial
 Cod_editorial 
 Cod_uni
Libro(Cod_libro[pk],..., Cod_editorial[fk], Cod_uni[fk])
Editorial(Cod_editorial([pk])
Universidad(Cod_universidad[pk])
· Operaciones básicas sobre tablas
Está basado en el álgebra relacional y los operandos son dos tablas y el resto es otra tabla.
Operaciones básicas
· Operaciones unarias(1 tabla): Selección y proyección.
· Operaciones binarias(2 tablas): Unión, diferencia y producto cartesiano.
· Operaciones derivadas: Intersección, cociente y combinación o join.
a) Selección: Obtiene un subconjunto de filas de una tabla con todas sus columnas. Se pueden seleccionar determinadas filas incluyendo en una operación una condición.
	condición (Tabla)
	NºDPTO=20 (Empleados)
b) Proyección: Da como resultado una nueva tabla a partir de otra con el subconjunto de columnas indicado. Las filas duplicadas sólo aparecen una vez.
	col1 col2 (Tabla)
	apellido salario (Empleados)
c) Unión: Dos tablas se pueden unir si tienen el mismo número de columnas y dominios compatibles y el resultado es otra tabla con las filas de esas dos tablas y las filas repetidas sólo aparecen una vez.
Tabla1 Tabla2
Emple1 Emple2
Emple 1			Emple 2			Emple1 Emple2 
	Nº emp
	Nombre
	1001
	Rosa
	1005
	Fernando
	Nº emp
	Nombre
	1001
	Rosa
	1005
	Fernando
	2001
	Pilar
	2010
	Octavio
	Nº emp
	Nombre
	2001
	Pilar
	2010
	Octavio
	1005
	Fernando
d) Diferencia: Sólo es posible si tienen el mismo nº de columnas y dominios compatibles. El resultado es otra tabla con las filas que estén en una tabla y no pertenecientes a la otra.
Tabla 1 – Tabla2
S = Emple1 – Emple2
S = Emple1 – Emple 2			S = Emple2 – Emple1
	Nº emp
	Nombre
	1001
	Rosa
	Nº emp
	Nombre
	2001
	Pilar
	2010
	Octavio
e) Producto cartesiano: Se puede realizar entre dos tablas que tengan distinto número de columnas. El resultado es otra tabla que contiene la suma de columnas de ambas tablas y el conjunto formado por todas las filas de ambas tablas. No pueden existir columnas con el mismo nombre.
Tabla1 x Tabla2
Ventas								Artículos
	Cod
	Fecha
	Cant
	5100
	18/11/05
	100
	5200
	19/11/05
	120
	5100
	19/11/05
	45
	Código
	Denom
	Exist
	PVP
	5100
	Patatas
	500
	78
	5200
	Cebollas
	250
	90
S = Ventas x Artículos
	Cod
	Fecha
	Cant
	Código
	Denom
	Exist
	PVP
	5100
	18/11/05
	100
	5100
	Patatas
	500
	78
	5100
	18/11/05
	100
	5200
	Cebollas
	2500
	90
	5200
	19/11/05
	120
	5100
	Patatas
	
	
	5200
	19/11/05
	120
	5200
	Cebollas
	
	
	5100
	19/11/05
	45
	5100
	Patatas
	
	
	5100
	19/11/05
	45
	5200
	Cebollas
	
	
f) Intersección: Es otra tabla formada por las filas que aparecen en ambas tablas y las columnas de una de las tablas. Las tablas han de tener el mismo número de columnas y dominios compatibles.
Tabla1 Tabla2
Emple1 Emple2
	Nº emp
	Nombre
	1005
	Fernando
g) Cociente: Se realiza entre dos tablas que cumplan las siguientes condiciones:
1. T1 debe tener columnas de T2 y el número de columnas ha de ser mayor que el de T2.
2. T2 debe tener al menos una fila.
El cociente es una nueva tabla formada por las columnas de T1 que no están en T2 y por las filas obtenidas al concatenar con T2 que estén contenidas en T1.
Tabla1				Tabla2					
	A 
	B
	C
	1
	6
	4
	4
	3
	1
	7
	0
	2
	1
	2
	3
	A
	B
	2
	3
	7
	1
S = Tabla1 : Tabla2				Concatenación
	A
	1
	A
	B
	C
	1
	2
	3
	1
	7
	1
	4
	2
	3
	4
	7
	1
	7
	2
	3
	7
	7
	1
	1
	2
	3
	1
	7
	1
h) Combinación o join: Se obtiene el producto cartesiano de dos tablas cuyas filas cumplan una determinada condición. La condición determina el criterio de combinación de ambas tablas.
(Tabla1 x Tabla2)cond
(Ventas x Artículos)cód = código
	Cod
	Fecha
	Cant
	Denom
	Exist
	PVP
	5100
	
	
	Patatas
	
	
	5200
	
	
	Cebollas
	
	
	5100
	
	45
	Patatas
	
	
2.3. Normalización
· Introducción
La normalización ayuda a detectar fallos en el modelo E/R y en el relacional. Evita problemas de redundancia, ambigüedades, pérdida de información. Consiste en ir descomponiendo los registros en otros de menor tamaño de forma que satisfagan una serie de restricciones específicas que se conocen como Formas Normales. La teoría de normalización se resume en “Hechos distintos se almacenan en objetos distintos”.
Ejemplo: En este ejemplo se repiten los presupuestos.
	
Nombre_emp
	
Proyecto
	
Nombre
	
Presupuesto
	
Pepe
	
P1
	
Programador
	
5000€
	
Pepe
	
P2
	
Analista
	
10000€
	
Juan
	
P1
	
Jefe
	
5000€
	
Juan
	
P2
	
Programador
	
10000€
· Noción intuitiva de las Formas Normales(FN)
				Rel en 1ª FN
			 Rel en 2ª FN
			Rel en 3ª FN
		 Rel en FNBC
		Rel en 4ª FN
Relaciones en 5ª FN
Las 3 primeras Codd entre el 70-72
Relaciones en FNBC: Óbice-Codd en el 74
Relaciones en 4ª FN: Fagin en el 77.
Relaciones en 5ª FN: Fagin en el 79.
1ª Forma Normal: Prohíbe que en un registro haya grupos repetidos, es decir, que todos los campos deben ser atómicos, es decir, no está en 1ª FN si existe más de un valor a la vez para un mismo atributo.
Ejemplo:
	Cod
	Nombre
	Idioma
	5050
	Manuel
	Italiano
Español
	5060
	Pedro
	Español
SOL1: Una sola tabla donde esté el nombre del empleado y el código del empleado.
SOL2: Una tabla que tenga el código del empleado y el nombre y otra tabla donde está el código y el idioma.
SOL3: Una tabla donde esté el código, el nombre, el idioma1 y el idioma2.
Otro ejemplo:
LIBRO(Cod_libro,autor)
SOL1: Libro (L1, {Pepe}
	 {Luis})
SOL2: L1|Pepe
 L2| Luis
SOL3: L1|Pepe|Luis|
2ª FN: Se dice que un registro está en 2ª FN si además de estar todos los atributos que no formen parte de ninguna clave candidata suministran información acerca de la clave completa.
Ejemplo:
Almacén (Cod_alm, Dir_alm, Cod_pieza, cantidad)
CC: Cod_alm + Cod_pieza
ANP: Dir_alm y cantidad
Dir_alm no da información acerca de CC, sólo de Cod_alm, sin embargo cantidad sí.
SOL: Se divide la tabla en tantas como necesitemos para conseguir la 2ª FN.
Cod_alm		
Cod_pieza
					Dir_alm
					Cantidad
		
Almacén1 (Cod_alm, Cod_pieza, Cantidad)
Almacén2 (Cod_alm, Dir_alm)
Otro ejemplo:
Préstamos (Num_socio, Nombre_socio, Cod_libro, Fecha_préstamo, Editorial, País)
CC: Num_socio + Cod_libro ó Nombre_socio + Cod_libro
ANP: Fecha_préstamo (sí), Editorial (No), País (No)
O1 N1 L1 F1 E1 P1
O1 N1 L2 F2 E2 P2
O2 N2 L3 F3 E1 P1
No está en 2ª FN
Préstamo (Num_socio, Nombre_socio, Cod_libro, Fecha_préstamo) en 2ª FN
CC:
Num_socio + Cod_libro
Nombre_socio + Cod_libro
							Fecha_préstamo
Libros (Cod_libro, Editorial, País) en 2ª FN pero no en 3ª FN
3ª FN: Además de englobar las dos restricciones anteriores puesto que toda relación que está en 3ª FN está en 2ª FN y se añade que todos los atributos que no forman parte de ninguna clave candidata, da información acerca de la clave y no de los atributos. Para que esté en 3ª FN sus campos deben ser mutuamente independientes y completamente dependientes de las claves.
Ejemplo:Libro (Cod_libro, Editorial, País)
CC: Cod_libro
ANP: Editorial, País
SOL1: Una tabla que sea Cod_libro y editorial y otra tabla que sea Editorial y País.
L1 (Cod_libro, Editorial)
L2(Cod_libro, País)
SOL2: L1 (Cod_libro, País)
	L2 (Editorial, País)
SOL3: L1 (Cod_libro, Editorial)
	L2 (Editorial, País)
Si no está en 3ª FN al dividir para que no se pierda información el atributo común tiene que ser la clave al menos de una de las tablas y no hay que perder dependencias funcionales.
Dependencia funcional: Se dice que depende funcionalmente de “x” si y sólo si cada valor de “x” tiene asociado en todo momento un único valor de “y” lo que se representa así: x 		y
“x” es el implicante
“y” es el implicado
Ejemplo:
DNI->nombre Sí
DNI_prof->Teléfono No dep_funcional
Disco->Cantante No
Año, prueba->Atleta No
Prueba, récord->Atleta, año Sí
DNI->Nombre_padre ¿Sí?
Cod_dep->Localidad ¿No? 
oleObject3.bin
image4.wmf
p
oleObject4.bin
image5.wmf
È
oleObject5.bin
image6.wmf
È
oleObject6.bin
oleObject7.bin
image7.wmf
oleObject8.bin
image8.wmf
Ç
oleObject9.bin
image9.wmf
Ç
oleObject10.bin
image1.wmf
s
oleObject1.bin
image2.wmf
s
oleObject2.bin
image3.wmf
p

Continuar navegando