Administración de sistemas informáticos
Bases de datos
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.
Concepto y objetivos de los sistemas de Bases de Datos.
Distintos niveles de abstracción.
Sistemas Gestores de Bases de Datos (SGBD).
Interacción del usuario con el SGBD: Lenguajes.
El administrador de la Base de Datos.
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.
-
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.
-
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.
-
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.
-
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.
-
S.G.B.D
-
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.
-
Modelo jerárquico (1960).
-
Modelo en red (1970).
-
Modelo relacional (1986-Codd).
-
Usa los árboles para la representación lógica de los datos.
-
n hijos con n padres.
-
Elemento principal son las relaciones representadas en tablas.
-
Interacción del usuario con el SGBD: Lenguajes
-
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.
-
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.
-
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.
-
El administrador de la BD
-
Administrador de la empresa: Realiza el diseño conceptual y lógico de la base de datos.
-
Administrador de la base de datos: Realiza el diseño físico de la base de datos.
-
Administrador de aplicaciones: Realizan los distintos esquemas externos de la base de datos.
-
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, ...
-
El modelo E/R(Análisis de datos)
-
Introducción.
-
Elementos del modelo E/R.
-
Construcción de un esquema E/R.
-
Paso de E/R a modelo relacional(Diseño de datos)
-
Modelo Relacional.
-
Reglas de transformación.
-
Operaciones básicas sobre tablas.
-
Normalización
-
Introducción.
-
Noción intuitiva de F.N(Formas Normales).
-
El modelo E/R(Análisis de datos)
-
Introducción.
-
Elementos del modelo E/R.
-
Entidades.
-
Relaciones.
-
Atributos.
-
Generalización de entidades.
-
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:
-
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
-
Construcción de un esquema E/R
-
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.
-
Descendente: Se parte de una entidad y se descompone al detalle de los atributos.
-
Ascendente: Se parten los atributos, se agrupan en entidades y se agrupan por relaciones.
-
Inside - Out: Se empieza creando el esquema entidad-relación en una parte del papel y luego se va ocupando todo el papel.
-
Mixto: Descendente y mancha de aceite.
-
Paso de E/R a modelo Relacional(Diseño de datos)
-
Modelo Relacional
-
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.
-
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.
-
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.
-
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
-
Toda entidad se transforma en una relación.
-
Toda entidad N:M se transforma en una relación.
-
Toda interrelación 1:N se traduce en una propagación de claves.
-
Interrelaciones 1:1: Se pueden representar de distintas maneras atendiendo a las cardinalidades de la relación.
-
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.
-
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).
-
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.
-
Interrelaciones 1:N: Se traduce como propagación de claves y se van a analizar las reflexivas.
-
Transformación de relaciones N:M: Se transforma en tres tablas.
-
Transformación de tipos y subtipos:
-
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.
-
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.
-
Relaciones distintas para cada subtipo, conteniendo además de sus propios atributos, los atributos comunes.
-
Transformación de interrelaciones exclusivas:
-
Operaciones básicas sobre tablas
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Cociente: Se realiza entre dos tablas que cumplan las siguientes condiciones:
-
T1 debe tener columnas de T2 y el número de columnas ha de ser mayor que el de T2.
-
T2 debe tener al menos una fila.
-
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.
-
Normalización
-
Introducción
-
Noción intuitiva de las Formas Normales(FN)
DNI | Nombre | Dire | Fech_Ing | Tfno | Año_Trab |
Personal
DNI | Nombre | Dire | Sueldo | SS |
Nóminas
Definición de B.D.:
Objetivos:
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:
Ejemplos de SGBD comerciales:
Departamentos (Dpto_nº, Dnombre, loc)
Empleados (Emp_nº, apell, oficio,..., Dept_nº)
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.
Inconveniente: Todo está relacionado con todo.
Ejemplos:
DMS 1100 de Univac
EDMS de Xerox
Departamentos Empleados
Dpto_nº | Dnombre | Loc | ||||||
10 | Contab | Sevilla | ||||||
20 | RRHH | Madrid | ||||||
Emp_nº | Apell | Of | Dnombre | Loc | ||||
4422 | Pérez |
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:
Funciones generales:
U.D.2. Bases de Datos Relacionales
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.
Relación |
Atributo Atributo
- Fuertes o regulares: La que tiene existencia por si misma y se representa así:
- Débil: Aquella cuya existencia depende de una entidad fuerte y se representa así:
Ejemplos:
Si desaparece el empleado, familiar sería una entidad débil.
Si desaparece el funcionario, hijo sería una entidad débil.
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.
- 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.
- 1:N. Uno a muchos.
- N:1. Muchos a uno.
- N:M. Muchos a muchos.
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).
(0,n) (1,1)
(1,1) (0,1)
Si la relación es entre una entidad débil y una fuerte, se habla de una dependencia en identificación y en existencia.
Ejemplo:
Cod_planta Num_habitación
Otro aspecto a tener en cuenta es que las relaciones pueden ser exclusivas y se representa mediante un .
Ejemplo:
Un empleado es responsable de un departamento o bien trabaja
en varios proyectos.
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:
Tipo Supertipo
Cargo
(1,1)
(0,1) (0,1)
Subtipo
Cualidad Fecha
No existen reglas que nos digan que elemento va a ser entidad o relación, pero existen normas generales que podemos aplicar:
Batini-1993:
Ejemplo de redundancia: Sólo N:M.
(1,n)
(1,1)
(1,1) (1,1)
(1,n)
(1,n)
C1
Fecha
(1,n) (1,n)
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
( , ) ( , )
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:
NO ES LO MISMO
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 |
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
(1,n) (1,1)
(0,n) (1,1)
Cod_D Local
Nombre
Empleados(Cod_E, Nombre, Sueldo, Cod_D[fk], Cod_E_Superior[fk])
Departamentos(Cod_D, Nombre, Localidad)
Dos reglas importantes:
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)
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.
Ejemplo:
Código
Título
Idioma
País Nombre Dire Ciudad
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:
Clientes (Cod_cli).
Pedidos (Cod_ped , Fecha).
Artículos (Cod_art).
Agrupa (Cod_ped[fk], Cod_art[fk]).
Casos a considerar:
Ejemplo:
(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]).
Ejemplo:
(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]).
Ejemplo:
(1,1) (1,1)
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]).
Ejemplo 1:
(0,n)
(0,1)
Cod_Tema
Ejemplo 2:
(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:
(1,1)
(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:
(1,1)
(1,n)
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:
(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:
(1,1) (0,n)
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.
Ejemplo:
Fecha_ent Fecha_sal
Cod_autor Cod_libro
Autor(Cod_autor[pk])
Escribe(Cod_autor[fk], Cod_libro[fk], Fecha_ent, Fecha_sal)
Libro(Cod_libro[pk])
Hay varias soluciones.
Ejemplo:
Título Código
Idioma
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)
Cod_libro
Cod_editorial
Cod_uni
Libro(Cod_libro[pk],..., Cod_editorial[fk], Cod_uni[fk])
Editorial(Cod_editorial([pk])
Universidad(Cod_universidad[pk])
Está basado en el álgebra relacional y los operandos son dos tablas y el resto es otra tabla.
Operaciones básicas
condición (Tabla)
NºDPTO=20 (Empleados)
col1 col2 (Tabla)
apellido salario (Empleados)
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 |
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 |
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 |
Tabla1 Tabla2
Emple1 Emple2
Nº emp | Nombre |
1005 | Fernando |
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 |
(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 |
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€ |
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.
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:
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?
Entidad
Entidad
Dpto
Empleado
Hospital
Hijo
Empleado
Familiar
Funcionario
Hijo de funcionario
Libro
Ejemplar
X
Y
Es jefe
Empleado
Hombre
Mujer
Hombre
Mujer
Hombre
Mujer
Hombre
Mujer
pertenece
responsable
Empleado
Dpto
E
I
I|hay
Planta
Habitaciones
responsabl
trabaja
Empleado
Dpto
proyecto
Empleado
Vendedor
Analista
Dpto
Facultad
Profesor
Cátedra
está
asignado
Encontrar
adscrito
pertenece
Municipio
Vivienda
tiene
Programador
Lenguaje
proyecto
usa
Programador
usa
trabaja
Proyecto
Lenguaje
en
Empleado
Dpto
jefe
Editorial
Libro
Autor
edita
escribe
Clientes
Pedidos
Artículos
agrupa
agrupa
Hombre
Mujer
Se casa
Empleado
Departamento
resp
X
Y
Tema
consta
Empleado
jefe
Empleado
jefe
Editorial
Libros
edita
Empleado
Familiar
Tiene
Ex
Libro
Ejemplar
Id
tiene
Autor
Libro
escribe
Documento
Artículo
Libro
Libro
Editorial
Universidad
edita
Edita 2
Rel en 1ª FN
Rel en 2ª FN
Rel en 3ª FN
Rel en FNBC
Rel en 4ª FN
Relaciones en 5ª FN
Cod_alm
Cod_pieza
Num_socio + Cod_libro
Nombre_socio + Cod_libro
Descargar
Enviado por: | Noe Pucela |
Idioma: | castellano |
País: | España |