You are on page 1of 19

Base de datos Modelo relacional Grupo 5

Modelo relacional
El modelo relacional para la gestin de una base de datos es un modelo de datos basado en la lgica de predicados y en la teora de conjuntos. Es el modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San Jos (California), no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de relaciones. Estas relaciones podran considerarse en forma lgica como conjuntos de datos llamados tuplas. Pese a que sta es la teora de las bases de datos relacionales creadas por Edgar Frank Codd, la mayora de las veces se conceptualiza de una manera ms fcil de imaginar, esto es, pensando en cada relacin como si fuese una tabla que est compuesta por registros (cada fila de la tabla sera un registro o tupla), y columnas (tambin llamadas campos). En este modelo todos los datos son almacenados en relaciones, y como cada relacin es un conjunto de datos, el orden en el que estos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable ventaja de que es ms fcil de entender y de utilizar por un usuario no experto. La informacin puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la informacin. Este modelo considera la base de datos como una coleccin de relaciones. De manera simple, una relacin representa una tabla que no es ms que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila tambin se puede denominar tupla o registro y a cada columna tambin se le puede llamar campo o atributo. Para manipular la informacin utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formales el lgebra relacional y el Clculo relacional. El lgebra relacional permite describir la forma de realizar una consulta, en cambio, el Clculo relacional slo indica lo que se desea devolver.

Base de datos Modelo relacional Grupo 5

Estructura
La base de datos se organiza en dos marcadas secciones; el esquema y los datos (o instancia). El esquema es la definicin de la estructura de la base de datos y principalmente almacena los siguientes datos:

El nombre de cada tabla El nombre de cada columna El tipo de dato de cada columna La tabla a la que pertenece cada columna

Las bases de datos relacionales pasan por un proceso al que se le conoce como normalizacin, el resultado de dicho proceso es un esquema que permite que la base de datos sea usada de manera ptima. Los datos o instancia es el contenido de la base de datos en un momento dado. Es en s, el contenido de todos los registros.

Esquema
Un esquema es la definicin de una estructura (generalmente relaciones o tablas de una base de datos), es decir, determina la identidad de la relacin y qu tipo de informacin podr ser almacenada dentro de ella; en otras palabras, el esquema son los metadatos de la relacin. Todo esquema constar de:

Nombre de la relacin (su identificador). Nombre de los atributos (o campos) de la relacin y sus dominios; el dominio de un atributo o campo define los valores permitidos para el mismo, es equivalente al tipo de dato por ejemplo character, integer, date, string, etc.

Esquema de una base de datos relacional Una base de datos relacional es un conjunto de relaciones normalizadas. Para representar el esquema de una base de datos relacional se debe dar el nombre de sus relaciones, los atributos de stas, los dominios sobre los que se definen estos atributos, las claves primarias y las claves ajenas.

Base de datos Modelo relacional Grupo 5

El esquema de la base de datos de la empresa inmobiliaria es el siguiente: OFICINA PLANTILLA INMUEBLE INQUILINO (Onum, Calle, Area, Poblacin, Telfono, Fax) (Enum, Nombre, Apellido, Direccin, Telfono, Puesto, Fecha_nac, Salario, DNI, Onum) (Inum, Calle, Area, Poblacin, Tipo, Hab, Alquiler, Pnum, Enum, Onum) (Qnum, Nombre, Apellido, Direccin, Telfono, Tipo_pref, Alquiler_max) PROPIETARIO (Pnum, Nombre, Apellido, Direccin, Telfono) VISITA (Qnum, Inum, Fecha, Comentario)

Claves
Clave nica Cada tabla puede tener uno o ms campos cuyos valores identifican de forma nica cada registro de dicha tabla, es decir, no pueden existir dos o ms registros diferentes cuyos valores en dichos campos sean idnticos. Este conjunto de campos se llama clave nica. Pueden existir varias claves nicas en una determinada tabla, y a cada una de stas suele llamrsele candidata a clave primaria. Clave primaria Una clave primaria es una clave nica elegida entre todas las candidatas que define unvocamente a todos los dems atributos de la tabla, para especificar los datos que sern relacionados con las dems tablas. La forma de hacer esto es por medio de claves forneas. Slo puede existir una clave primaria por tabla y ningn campo de dicha clave puede contener valores NULL.

Base de datos Modelo relacional Grupo 5

Clave fornea Una clave fornea es una referencia a una clave en otra tabla. Las claves forneas no necesitan ser claves nicas en la tabla donde estn y s a donde estn referenciadas. Por ejemplo, el cdigo de departamento puede ser una clave fornea en la tabla de empleados, obviamente se permite que haya varios empleados en un mismo departamento, pero existir slo un departamento. Clave ndice Las claves ndices surgen con la necesidad de tener un acceso ms rpido a los datos. Los ndices pueden ser creados con cualquier combinacin de campos de una tabla. Las consultas que filtran registros por medio de estos campos, pueden encontrar los registros de forma no secuencial usando la clave ndice. Las bases de datos relacionales incluyen mltiples tcnicas de ordenamiento, cada una de ellas es ptima para cierta distribucin de datos y tamao de la relacin. Los ndices generalmente no se consideran parte de la base de datos, pues son un detalle agregado. Sin embargo, las claves ndices son desarrolladas por el mismo grupo de programadores que las otras partes de la base de datos.

Lenguajes de Consulta
Los podemos dividir en dos tipos: Lenguajes Formales y Lenguajes Comerciales. Los lenguajes formales estn basados en el lgebra relacional o en el clculo relacional. Solamente se han descrito para consulta a Bases de Datos (existen lenguajes comerciales que adems de consulta permiten otras operaciones). El lgebra relacional tiene procedimientos (procedimental), mientras que los lenguajes basados en el clculo relacional son a procedimentales. Dentro del clculo relacional se distingue entre clculo relacional orientado a tuplas y clculo relacional orientado a dominios. Los lenguajes comerciales, en su mayora usan enfoques tanto procedimentales como a procedimentales, o lo que es lo mismo, no son lenguajes puros como los formales. De esta manera hacen su sintaxis ms amigable al usuario.

Base de datos Modelo relacional Grupo 5

lgebra relacional
El lgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta.

Operaciones Bsicas
Cada operador del lgebra acepta una o dos relaciones y retorna una relacin como resultado. y son operadores unarios, el resto de los operadores son binarios. Las operaciones bsicas del lgebra relacional son:

Seleccin ()
Permite seleccionar un subconjunto de tuplas de una relacin (R), todas aquellas que cumplan la(s) condicin(es) P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gmez como apellido en la relacin Alumnos. Una condicin puede ser una combinacin booleana, donde se pueden usar operadores como: , combinndolos con operadores .

Proyeccin ()
Permite extraer columnas (atributos) de una relacin, dando como resultado un subconjunto vertical de atributos de la relacin, esto es:

Base de datos Modelo relacional Grupo 5

Donde Ejemplo:

son atributos de la relacin R .

Selecciona los atributos Apellido, Semestre y NumeroControl de la relacin Alumnos, mostrados como un subconjunto de la relacin Alumnos

Producto cartesiano (x)


El producto cartesiano de dos relaciones se escribe como:

y entrega una relacin, cuyo esquema corresponde a una combinacin de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S. Ejemplo:

Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero los atributos de la relacin Alumnos seguidos por las tuplas de la relacin Maestros.

Unin ()
La operacin

Retorna el conjunto de tuplas que estn en R, o en S, o en ambas. R y S deben ser uniones compatibles. Diferencia (-) La diferencia de dos relaciones, R y S denotada por:

Base de datos Modelo relacional Grupo 5

Entrega todas aquellas tuplas que estn en R, pero no en S. R y S deben ser uniones compatibles.

Estas operaciones son fundamentales en el sentido en que (1) todas las dems operaciones pueden ser expresadas como una combinacin de stas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda informacin.

No bsicas
Entre los operadores no bsicos tenemos:

Interseccin ()
La interseccin de dos relaciones se puede especificar en funcin de otros operadores bsicos:

La interseccin, como en Teora de conjuntos, corresponde al conjunto de todas las tuplas que estn en R y en S, siendo R y S uniones compatibles.

Reunin natural ( ) (Natural Join)


La operacin Reunin natural en el lgebra relacional es la que permite reconstruir las tablas originales previas al proceso de normalizacin. Consiste en combinar las proyeccin, seleccin y producto cartesiano en una sola operacin, donde la condicin es la igualdad Clave Primaria = Clave Externa (o Fornea), y la proyeccin elimina la columna duplicada (clave externa). Expresada en las operaciones bsicas, queda

Una reunin theta ( -Join) de dos relaciones es equivalente a:

Donde la condicin es libre. Si la condicin es una igualdad se denomina EquiJoin.


7

Base de datos Modelo relacional Grupo 5

Divisin (/)
Supongamos que tenemos dos relaciones A(x, y) y B(y) donde el dominio de y en A y B, es el mismo. El operador divisin A / B retorna todos los distintos valores de x tales que para todo valor y en B existe una tupla en A.

Agrupacin ()
Permite agrupar conjuntos de valores en funcin de un campo determinado y hacer operaciones con otros campos. Por ejemplo: sum(puntos) as Total Equipo (PARTIDOS). Ejemplos Suponga las relaciones o tablas:

Alumno

ID NOMBRE CIUDAD

EDAD

01 Pedro

Santiago

14

11 Juan

Buenos Aires 18

21 Diego

Lima

12

31 Rosita

Concepcin 15

41 Manuel

Lima

17

Base de datos Modelo relacional Grupo 5

Apoderado

ID

NOMBRE FONO

ID_ALUMNO

054 Vctor

654644 21

457 Jos

454654 11

354 Mara

997455 31

444 Paz

747423 01

Curso

COD

NOMBRE

FECHA_INICIO DURACION VALOR

01142 Sicologa

13-01

15

3.000

02145 Biologa

15-02

12

2.500

03547 Matemticas 01-03

30

4.000

04578 Msica

05-04

10

1.500

05478 Fsica

20-04

15

3.200

Base de datos Modelo relacional Grupo 5

Inscrito

ID ID_AL COD

1 01

05478

2 01

02145

3 11

03547

4 21

02145

5 41

03547

Mostrar los nombres de los alumnos y su apoderado Primero, realizaremos una combinacin entre alumnos y apoderados (pues necesitamos saber a qu alumno le corresponde tal apoderado). La combinacin realizar un producto cartesiano, es decir, para cada tupla de alumnos (todas las filas de alumnos) har una mezcla con cada una tupla de apoderados y seleccionar aquellas nuevas tuplas en que alumnos.id sea igual a apoderados.id_alumno, esto es:

ID NOMBRE CIUDAD (alumno) (alumno)

EDAD

ID NOMBRE FONO (apoderado) (apoderado)

ID_ALUMNO

01

Pedro

Santiago

14

054

Vctor

654644 21

01

Pedro

Santiago

14

457

Jos

454654 11

10

Base de datos Modelo relacional Grupo 5

01

Pedro

Santiago

14

354

Mara

997455 31

01

Pedro

Santiago

14

444

Paz

747423 01

11

Juan

Buenos Aires

18

054

Vctor

654644 21

11

Juan

Buenos Aires

18

457

Jos

454654 11

11

Juan

Buenos Aires

18

354

Mara

997455 31

11

Juan

Buenos Aires

18

444

Paz

747423 01

21

Diego

Lima

12

054

Vctor

654644 21

21

Diego

Lima

12

457

Jos

454654 11

21

Diego

Lima

12

354

Mara

997455 31

21

Diego

Lima

12

444

Paz

747423 01

31

Rosita

Concepcin 15

054

Vctor

654644 21

31

Rosita

Concepcin 15

457

Jos

454654 11

11

Base de datos Modelo relacional Grupo 5

Por tanto, el resultado final de la combinacin es:

Alumnos Alumnos.ID = Apoderados.ID_ALUMNO Apoderados

ID NOMBRE CIUDAD (alumno) (alumno)

EDAD

ID NOMBRE FONO (apoderado) (apoderado)

ID_ALUMNO

01

Pedro

Santiago

14

444

Paz

747423 01

11

Juan

Buenos Aires

18

457

Jos

454654 11

21

Diego

Lima

12

054

Vctor

654644 21

31

Rosita

Concepcin 15

354

Mara

997455 31

Ahora, aqu debemos mostrar solo el nombre del alumno y el nombre del apoderado, esto lo hacemos con un Proyect o Proyeccin, donde la tabla final sera:

Alumnos.NOMBRE,Apoderados.NOMBRE

NOMBRE (alumno) NOMBRE (apoderado)

Pedro

Paz

Juan

Jos

Diego

Vctor

12

Base de datos Modelo relacional Grupo 5

Resumiendo en un solo paso: Alumnos Alumnos.ID = Apoderados.ID_ALUMNO Apoderados Se lee: Proyecta los nombre de alumnos y nombre de apoderados de los alumnos cuyo ID sea el mismo que el ID_ALUMNO de los apoderados.

Operaciones del lgebra relacional extendida


Las operaciones bsicas del lgebra relacional se han ampliado de varias maneras. Una ampliacin sencilla es permitir operaciones aritmticas como parte de la proyeccin. Una ampliacin importante es permitir operaciones de agregacin, como el clculo de la suma de los elementos de un conjunto, o su media. Otra ampliacin importante es la operacin reunin externa, que permite a las expresiones del lgebra relacional trabajar con los valores nulos que modelan la informacin que falta. Proyeccin generalizada La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo que se utilicen funciones aritmticas en la lista de proyeccin. La operacin proyeccin generalizada tiene la forma F1, F2, , Fn (E) Donde E es cualquier expresin del lgebra relacional y F1, F2, , Fn son expresiones aritmticas que incluyen constantes y atributos en el esquema de E. Como caso especial la expresin aritmtica puede ser simplemente un atributo o una constante. Por ejemplo, supngase que se dispone de una relacin informacin-crdito, que da el lmite de crdito y el importe dispuesto hasta el momento presente (el saldo-crdito de la cuenta). Si se desea averiguar el importe disponible por cada persona, se puede escribir la expresin siguiente: nombre-cliente, lmite saldo-crdito (informacin-crdito) El atributo resultante de la expresin lmite saldo-crdito no tiene un nombre. Se puede aplicar la operacin renombramiento al resultado de la proyeccin generalizada para darle un nombre. Como conveniencia notacional, el renombramiento de atributos se puede combinar con la proyeccin generalizada como se ilustra a continuacin: nombre-cliente, (lmite saldo-crdito) as crdito-disponible (informacin-crdito)
13

Base de datos Modelo relacional Grupo 5

Al segundo atributo de esta proyeccin generalizada se le ha dado el nombre crditodisponible.

Funciones de agregacin
Las funciones de agregacin son funciones que toman una coleccin de valores y devuelven como resultado un nico valor. Por ejemplo, la funcin de agregacin sum toma un conjunto de valores y devuelve la suma de los mismos. Por tanto, la funcin sum aplicada a la coleccin {1, 1, 3, 4, 4, 11} devuelve el valor 24. La funcin de agregacin avg devuelve la media de los valores. Cuando se aplica al conjunto anterior devuelve el valor 4. La funcin de agregacin count devuelve el nmero de elementos del conjunto, y devolvera 6 en el caso anterior. Otras funciones de agregacin habituales son min y max, que devuelven el valor mnimo y el mximo de la coleccin; en el ejemplo anterior devuelven 1 y 11, respectivamente. Las colecciones en las que operan las funciones de agregacin pueden tener valores repetidos; el orden en el que aparezcan los valores no tiene importancia. Estas colecciones se denominan multiconjuntos. Los conjuntos son un caso especial de los multiconjuntos, en los que slo hay una copia de cada elemento. Para ilustrar el concepto de agregacin se utilizar la relacin trabajo-por-horas, que muestra los empleados a tiempo parcial. Supngase que se desea averiguar la suma total de los sueldos de los empleados del banco a tiempo parcial. La expresin del lgebra relacional para esta consulta es: Gsum(sueldo) (trabajo-por-horas) La operacin del lgebra relacional G significa que se debe aplicar agregacin, y el subndice indica la operacin de agregacin a aplicar. El resultado de la expresin anterior es una relacin con un nico atributo, que contiene una sola fila con un valor correspondiente a la suma de los sueldos de todos los trabajadores que trabajan en el banco a tiempo parcial. Hay casos en los que se deben borrar los valores repetidos antes de calcular una funcin de agregacin. Si se desean borrar los valores repetidos hay que utilizar los mismos nombres de funciones que antes, con la cadena de texto distinct precedida de un guin aadida al final del nombre de la funcin (por ejemplo, count-distinct). La forma general de la operacin de agregacin G es la siguiente:
G1, G2, , GnGF1(A1), F2(A2), , Fm (Am)

(E)

donde E es cualquier expresin del lgebra relacional; G1, G2, , Gn constituye una lista de atributos que indican cmo se realiza la agrupacin, cada Fi es una funcin de agregacin y cada Ai es el nombre de un atributo.

14

Base de datos Modelo relacional Grupo 5

El significado de la operacin se define de la manera siguiente. Las tuplas en el resultado de la expresin E se dividen en grupos tales que 1. Todas las tuplas del grupo tienen los mismos valores para G1, G2, , Gn. 2. Las tuplas de grupos diferentes tienen valores diferentes para G1, G2, , Gn. Por tanto, los grupos pueden identificarse por el valor de los atributos G1, G2, , Gn. Para cada grupo (g1, g2, , gn) el resultado tiene una tupla (g1, g2, , gn, a1, a2, , am) donde, para cada i, ai es el resultado de aplicar la funcin de agregacin Fi al multiconjunto de valores del atributo Ai en el grupo. Como caso especial de la operacin de agregacin, la lista de atributos G1, G2, , Gn puede estar vaca, en cuyo caso slo hay un grupo que contiene todas las tuplas de la relacin. Esto corresponde a la agregacin sin agrupacin.

Los Valores Nulos En El Modelo Relacional


Se puede definir el valor nulo como una marca utilizada para representar informacin desconocida. La necesidad de valores nulos es evidente por diversas razones: Existencia de tuplas con ciertos atributos desconocidos en ese momento. Necesidad de aadir un nuevo atributo a una tabla ya existente; atributo que en el momento de introducirse no tendr ningn valor para las tuplas de la relacin. Posibilidad de atributos inaplicables a ciertas tuplas, como la editorial para un artculo.

Modificacin de la Base de datos


El modelo relacional cuenta con mdulos DDL, para la definicin de datos que nos permite crear o modificar la estructura de las tablas. Las instrucciones para realizar estas operaciones son: CREATE TABLE: Nos permite crear una tabla de datos vaca. INSERT: Permite almacenar registros en una tabla creada. UPDATE: Permite modificar datos de registros almacenados en la tabla. DELETE: Borra un registro entero o grupo de registros de una tabla. CREATE INDEX: Crea un ndice que nos puede auxiliar para las consultas. DROP TABLE: Permite borrar una tabla. DROP INDEX: Borra el ndice indicado.

15

Base de datos Modelo relacional Grupo 5

Para ejemplificar las instrucciones anteriores consideremos el ejemplo ALUMNO cursa - MATERIA, que tienen los siguientes atributos: NControl NControl Clave NombreA Clave NombreM Especialidad Calif Creditos Direccin * Estructura de la sentencia CREATE TABLE. CREATE TABLE <Nombre de la tabla> ( Atributo1: tipo de dato longitud, Atributo2: tipo de dato longitud, Atributo3: tipo de dato longitud, : : Atributon: tipo de dato longitud, PRIMARY KEY (Opcional)); Los campos pueden definirse como NOT NULL de manera opcional excepto en la llave primaria para lo cual es obligatorio. Adems al definir la llave primaria se genera automticamente un ndice con respecto al campo llave; para definir la llave la denotamos dentro de los parntesis de PRIMARY KEY. Ejemplo: Crear la tabla alumno con los atributos antes descritos, tomando como llave el numero de control. CREATE TABLE Alumno ( NControl char(8) NOT NULL, NombreA char(20), Especialidad char(3), Direccin char(30), PRIMARY KEY (NControl) );

16

Base de datos Modelo relacional Grupo 5

Tabla Alumno: NControl NombreA Especialidad Direccin

Puede existir ms de una llave primaria, esto es si se requiere, se crearn tantos ndices como llaves primarias se establezcan. Pueden existir tantos campos Not Null (No nulos) como se requieran; En si estructurar la creacin de una tabla es siempre parecida al ejemplo anterior. * Estructura de la sentencia INSERT INSERT INTO Nombre de la tabla a la que se le va a insertar el registro VALUES (Conjunto de valores del registro) ; Ejemplo: Insertar en la tabla Alumno, antes creada los datos del alumno Daniel coln, con numero de control 95310518 de la especialidad de Ingeniera civil, con domicilio Abasolo Norte #45. INSERT INTO Alumno VALUES ("95310518","Daniel Coln","IC","Abasolo Norte #45") ; Ntese que la insercin de los datos se realiza conforme la estructura que se implanto en la tabla, es decir en el orden en que se creo dicha tabla. En caso de querer omitir un dato que no sean no nulos solamente se ponen las comillas indicando el vaco de la cadena. * Estructura de la Sentencia CREATE INDEX CREATE INDEX Nombre que se le asignara al ndice. ON Nombre de la taba a la cual se le creara el ndice (Campo(s) por el cual se creara el ndice); Ejemplo: Crear un ndice de la tabla Alumno por el campo Especialidad. CREATE INDEX Indice1 ON Alumno (Especialidad);
17

Base de datos Modelo relacional Grupo 5

Este ndice contendr a todos los alumnos ordenados por el campo especialidad. CREATE INDEX UNIQUE INDEX Indice2 ON Alumno (Especialidad); En la creacin de este ndice utilizamos la sentencia UNIQUE, es un indicador para permitir que se cree un ndice nico por especialidad, esta sentencia siempre se coloca antes de CREATE INDEX. En este ejemplo se creara un ndice que contenga un alumno por especialidad existente. * Estructura de la sentencia UPDATE UPDATE Nombre de la tabla en donde se modificaran los datos. SET Valores WHERE (Condicin); Ejemplo: Modificar el nmero de control del registro de Daniel Coln de la Tabla alumno por el nmero 96310518. UPDATE Alumno SET NControl 96310518 WHERE NombreA=Daniel Coln; * Estructura de la sentencia DROP TABLE DROP TABLE Nombre de la tabla a borrar; Ejemplo: Borrar la tabla Alumno creada anteriormente. DROP TABLE Alumno; * Estructura de la sentencia DROP INDEX DROP INDEX Nombre del ndice a borrar; Ejemplo: Borrar el ndice Indice1 creado anteriormente. DROP INDEX Indice1;
18

Base de datos Modelo relacional Grupo 5

* Estructura de la sentencia DELETE DELETE FROM Nombre de la tabla WHERE Condicin; Ejemplos: - Borrar el registro cuyo nmero de control es 95310386. DELETE FROM Alumno WHERE Control=95310386; - Borrar todos los registros de la tabla alumno. DELETE FROM Alumno; En el primer ejemplo, se borrara todo el registro (todos los datos), del alumno con nmero de control = 95310386. En el segundo ejemplo se borraran todos los registros de la tabla alumno, pero sin borrar la estructura de la tabla, ya que la orden Delete solo borra registros, la sentencia Drop Table es la que borra toda la estructura de la tabla junto con los registros de la misma

19

You might also like