jueves, 3 de abril de 2014

BD I - Capítulo 5. Álgrebra Relacional: MINUS

Centraremos nuestra atención en un nuevo operador del álgrebra relacional: MINUS.

El resultado de esta operación es una relación que contiene las tuplas que figuran en la primera relación pero no están presentes en la segunda. Por primera y segunda relación entendemos la que está a la izquierda y derecha de MINUS respectivamente. Es decir, si la operación es R MINUS S, R es la primera relación mientras que S es la segunda.

Sean las relaciones R = {A, B} y S = {A,B}

R
A B
a1 b1
a2 b2

S
A B
a1 b1
a3 b3

Como ocurría con las 2 operaciones vistas en capítulos anteriores, las cabeceras de ambas relaciones deben ser idénticas.

El resultado es todo lo que está en la relación R pero no está en la relación S

R MINUS S
A B
a2 b2

Vemos que la relación resultante sólo contiene una tupla. Esta tupla es la que existía en la relación R pero no estaba en la relación S. La otra tupla, compuesta por (a1, b1) estaba presente en la relación R pero también se hallaba en la relación S. Por este motivo, no forma parte de la relación resultante.

A diferencia de UNION e INTERSECT, no es lo mismo R MINUS S que S MINUS R, es decir, el orden de las operaciones importa (no es conmutativa). La relación resultante de la operación S MINUS R es la tupla (a3, b3).

Para mayor claridad, veamos un ejemplo más concreto. Tenemos las relaciones Empleados = {Nombre, Apellido, Edad} y Gerentes = {Nombre, Apellido, Edad}

Ambas poseen la misma cabecera con lo cual es factible que apliquemos la operación de MINUS.

Empleados
Nombre Apellido Edad
Juan Ordoñez 42
Jorge Hibbert 33
Matías Poirot 21
Ricardo Rubens 48
Martin Perez 52
Carlos Alvarez 25

Gerentes
Nombre Apellido Edad
Juan Ordoñez 42
Jorge Hibbert 33

La relación resultante podría responder a la pregunta ¿Cuáles son los empleados que NO son gerentes?

Empleados MINUS Gerentes
Nombre Apellido Edad
Matías Poirot 21
Ricardo Rubens 48
Martin Perez 52
Carlos Alvarez 25

viernes, 1 de noviembre de 2013

BD I - Capítulo 4. Álgebra Relacional: INTERSECT

Siguiendo con el álgebra relacional, estudiaremos en qué consiste la operación INTERSECT.

El resultado de esta operación es una relación que contiene las tuplas comunes a las dos relaciones intervinientes.

Sean las relaciones R = {A, B} y S = {A,B}

R
A B
a1 b1
a2 b2

S
A B
a1 b1
a3 b3

Al igual que como ocurría con la UNION, las cabeceras de ambas relaciones deben ser idénticas.
La intersección de ambas da como resultado

R INTERSECT S
A B
a1 b1

Vemos que la relación resultante sólo contiene una tupla. Esta tupla es la que existía tanto en la relación R como la relación S.

Para mayor claridad, veamos un ejemplo más concreto. Tenemos las relaciones Personas = {Nombre, Apellido, Edad} y Gente = {Nombre, Apellido, Edad}

Ambas poseen la misma cabecera con lo cual es factible que apliquemos la operación de intersección.

Personas
Nombre Apellido Edad
Juan Fernandez 34
Jose Gonzalez 12
Martin Perez 52
Carlos Alvarez 25

Gente
Nombre Apellido Edad
Oscar Juarez 22
Jose Gonzalez 24
Martin Perez 52
Carlos Alvarez 25

El resultado se puede apreciar a continuación

Personas INTERSECT Gente
Nombre Apellido Edad
Oscar Juarez 22
Jose Gonzalez 24

viernes, 25 de octubre de 2013

BD I - Capítulo 3. Álgebra Relacional: UNION

Comenzaremos nuestro estudio del Álgebra Relacional con la operación UNION

El resultado de esta operación es una relación que contiene todas las tuplas de las relaciones intervinientes en la operación.

Sean las relaciones R = {A, B} y S = {A, B} que visualizamos a continuación


R
A B
a1 b1
a2 b2


S
A B
a1 b1
a3 b3


Estas son dos relaciones distintas pero que tienen exactamente la misma cabecera, es decir, están compuestas por los mismos atributos. Para poder realizar la operación el dominio de los atributos debe ser el mismo.

R UNION S da como resultado la siguiente relación


R UNION S
A B
a1 b1
a2 b2
a3 b3

Podemos ver que contiene todas las tuplas de R y todas las tuplas de S. Además, la tupla (a1, b1) sólo aparece una vez.

Se puede apreciar la similitud entre la unión de relaciones y la unión de conjuntos. Esto se debe a que el álgebra relacional está basada en la teoría de conjuntos.

Veamos ahora un ejemplo más concreto. Sea la relación Personas = {Nombre, Apellido, Edad} y la relación Gente = {Nombre, Apellido, Edad}.
Ambas poseen la misma cabecera y el dominio de sus atributos es idéntico. Por lo tanto podemos llevar a cabo la UNION.


Personas
Nombre Apellido Edad
Juan Fernandez 34
Jose Gonzalez 12
Martin Perez 52
Carlos Alvarez 25


Gente
Nombre Apellido Edad
Oscar Juarez 22
Jose Gonzalez 24
Martin Perez 52
Carlos Alvarez 25


El resultado se ve en la siguiente tabla

Personas UNION Gente
Nombre Apellido Edad
Juan Fernandez 34
Jose Gonzalez 12
Martin Perez 52
Carlos Alvarez 25
Oscar Juarez 22
Jose Gonzalez 24

viernes, 4 de octubre de 2013

BD I - Capítulo 2. Modelo Relacional

La intención de este capítulo es introducir la notación que será utilizada en capítulos posteriores.

El modelo relacional es un modelo matemático abstracto que trabaja con relaciones, definiendo sus propiedades. El álgebra relacional es la que se encarga de definir las operaciones entre relaciones.

Para nosotros, existirá una equivalencia entre relación y tabla. Utilizaremos tablas para representar las relaciones y facilitar su estudio.

Sea la relación R = {A, B, C, D}

Donde R es el nombre de la relación y tanto A, B, C, D son los atributos que la componen.

Ya que dijimos que hablaremos de relaciones y tablas en forma equivalente, veamos cómo representar la estructura de la relación R en una tabla.

R
A B C D
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
... ... ... ...
an bn cn dn

Vayamos descomponiendo cada uno de los elementos que conforman a la relación R. En primera instancia vemos una cabecera

R
A B C D

Esta cabecera está compuesta de metadatos, son los nombres que recibe cada atributo. En este caso tenemos los atributos A, B, C y D.

Los atributos poseen las siguientes propiedades:

  • Identificador. Es decir, tienen un nombre único
  • Atómico. Los atributos son indivisibles.
  • Dominio. Define los valores legales y las operaciones que puede realizar cada atributo.

Cada fila de la relación R recibe el nombre de tupla. Cada tupla tiene los valores correspondientes a los atributos. Así, la primera tupla de la tabla es la siguiente:

a1 b1 c1 d1

Otros conceptos asociados a la estructura de una relación son los siguientes:

  • Cuerpo. Es el conjunto de tuplas, el conjunto de todas las filas de la tabla (exceptuando la cabecera).
  • Cardinalidad. Es la cantidad total de tuplas de la relación.
  • Grado. Es la cantidad total de atributos.
 
De esta forma, la relación R tiene un grado igual a 4 y una cardinalidad igual a 'n'.


viernes, 27 de septiembre de 2013

BD I - Capítulo 1. Introducción

Base de Datos I

Damos inicio al estudio de una nueva asignatura. No es la intención del curso focalizarse en conceptos teóricos, preferimos dejarle ese aspecto a autores como Date, Elmasri y Navathe.

Solamente a modo de introducción diremos que una Base de Datos es un conjunto de datos almacenados entre los que existen relaciones lógicas y que ha sido diseñada para satisfacer los requerimientos de información de una determinada empresa u organización.

Todos los contenidos que estudiaremos en los capítulos siguientes corresponderán al modelo de datos relacional. Cuando decimos modelo de datos nos referimos a que deben describirse:

  • Estructuras de datos: Son los tipos de datos que existen en la base y la forma en que se relacionan.
  • Restricciones de integridad: Condiciones que deben cumplir los datos para reflejar correctamente la realidad.
  • Operaciones de manipulación de datos: Básicamente operaciones de inserción, eliminación, modificación y recuperación de datos.

En particular, las Bases de datos relacionales modelan la realidad utilizando relaciones. Estas relaciones pueden considerarse en forma lógica como conjuntos de datos. Pensamos cada relación como tablas compuestas por registros (las filas de la tabla) y campos (las columnas de la tabla).

Los temas que iremos abordando en los próximos capítulos son:
  • Álgebra Relacional
  • SQL
  • Dependencias Funcionales
  • Normalización de Base de Datos