Bases de datos

Informática. Sistemas de gestión. Bases de datos relacionales. Modelo entidad relación. Modelo relacional. Microsoft Access. SQL (Structured Query Language)

  • Enviado por: Noe Pucela
  • Idioma: castellano
  • País: España España
  • 23 páginas
publicidad
publicidad

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.

    • 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.

      • 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

      • 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:

      • Modelo jerárquico (1960).

      • Modelo en red (1970).

      • Modelo relacional (1986-Codd).

      • Usa los árboles para la representación lógica de los datos.

      • 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.

      • n hijos con n padres.

      • Inconveniente: Todo está relacionado con todo.

        Ejemplos:

        DMS 1100 de Univac

        EDMS de Xerox

      • 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

      • 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

      • 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:

      • 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.

      • 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

      • 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.

              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.

              • Entidades.

              • Relaciones.

              • Atributos.

              • Generalización de entidades.

              • Relación

                Atributo Atributo

              • 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í:

                - 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.

                • 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

                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

                • 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:

              • 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.

              • 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

              • 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

                (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:

                • 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

                • 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.

                • 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:

                  • 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.

                  • 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]).

                  • 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:

                    (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]).

                  • 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)

                    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:

                    (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.

                    • Transformación de relaciones N:M: Se transforma en tres tablas.

                    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])

                    • Transformación de tipos y subtipos:

                    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)

                  • 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:

                    Cod_libro

                    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.

                    • 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)

                    • 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)

                    • 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

                    • 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

                    • 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

                    • 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

                    • 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.

                    • 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

                    • 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

                    • 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)

                      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