Es un modelo lgico propuesto por E. F. Codd. Este modelo
establece una estructura sobre los datos, aunque despus estos pueden ser almacenados de mltiples formas para aprovechar las caractersticas fsicas concretas de la maquina sobre la que se implante la BD realmente. Es algo as como guardar libros en una biblioteca. Una relacin esta dada por la unin de dos o mas conjuntos. Los conjuntos pueden ser cualesquiera. Supngase a los siguientes conjuntos: Podra establecerse la relacin siguiente: Lo que se obtuvo como resultado no es mas que un listado de lneas. Piensa si no existieran las computadoras como almacenarias estas lineas?: Tendras que usar el papel: tomaras una hoja y en ella escribiras todas las lneas de la lista, desde la primera hasta la ultima de forma secuencial. Si la hoja se termina, tomas otra y continuas. Este mtodo es til siempre y cuando las lneas no estn ordenadas bajo un criterio. Pero, si las lneas ya estn ordenadas y se desea introducir una nueva Tabla: en el modelo relacional viene siendo una de las listas descritas anteriormente. Tambin es conocida como relacin, y es una matriz rectangular que almacena lneas con una estructura concreta. La primera lnea de una tabla es una cabecera que indica el nombre de cada columna. Tupla, dominios y atributos Tupla: cada lnea de la matriz sin contar la primera se le llama tupla. Todas las filas deben ser diferentes entre si. atributos: son los nombres de cada columna y se encuentran en la primera fila de una tabla (el encabezado). Cada tupla esta formada por un conjunto de informacin estructurada en elementos mas simples llamados atributos. El grado de la tabla anterior es el numero de campos que posee, para este ejemplo (4). La cardinlidad es el numero de tuplas concretas que almacena, para este caso (7). Dominio : es el conjunto de valores que esta obligado a almacenar un atributo. La estructura completa de la tabla platos tomando en cuenta los dominios de sus atributos quedara con los datos siguientes. PLATOS TIPO DE DATO DESCRIPCION Cdigo Numero entero Numero con el que el plato aparece en la carta Nombre Texto de 20 caracteres Nombre del plato Precio Numero decimal simple Precio del plato, no incluye iva ni descuentos Men SI/NO Indica si ese plato puede ser consumido en el men del da La informacin anterior serian los metadatos que definen la estructura de la tala. Cualquier atributo puede tomar un valor especial que designa la ausencia de un dato. Cuando, por cualquier circunstancia, se desconoce el valor de un atributo, por ejem. La direccin de un cliente. No es lo mismo un espacio en blanco que un valor null. Valores nulos Hasta ahora hemos mencionado algunas restricciones: 1. Cada atributo esta obligado a tomar un valor perteneciente a un dominio concreto, siendo imposible el que guarde otro distinto. 2. Es imposible repetir tuplas en una misma tabla. 3. No se puede establecer un orden en las tuplas. Ahora veremos otras restricciones mas importantes. Restricciones El modelo relacional intenta representar con una tabla a un tipo de objeto de la vida real, como pueden ser empleados, clientes, etc. incluso considera las relaciones entre estos objetos como objetos en si mismos. Para ello se designa cada tipo de objetos por un conjunto de atributos que son los que le daran la forma particular a cada objeto. Para representar un plato, hemos escogido los atributos: Codigo, Nombre, precio y men. En una tabla las tuplas pueden estar en cualquier orden, por lo que es difcil referenciar una tupla concreta por su posicion. Por lo que necesitamos de una clave para poder hacerlo CLAVES Una clave es un atributo o conjunto de atributos cuyo valor es nico y diferente para cada tupla. Cada tupla puede poseer mas de una llave: llaves candidatas y llaves primarias. El concepto de clave origina dos reglas de restriccin: Regla de identificacin nica: en ninguna tupla de una tabla, ninguno de los atributos que formen parte de la clave primaria de la relacin podr tomar un valor nulo. El valor de la claves ser nico para cada tupla de la tabla. Regla de integridad referencial: si una tupla A tiene atributos (a1..an) hacen referencia ala clave primaria de otra tupla de una tabla B, dichos atributos deben poseer valores que se correspondan con la clave de una tupla concreta en B.