You are on page 1of 10

Modelo Entidad Relacin ( E-R )

El modelo entidad-relacin se basa en una percepcin de un mundo real que consiste en un conjunto de objetos bsicos llamados entidades y de relaciones entre estos objetos. Est pensado como una notacin orientada al diseo del esquema conceptual, pues permite la descripcin del esquema conceptual sin preocuparse por problemas de diseo fsico o de eficiencia. Se supone que en una etapa posterior, los diagramas entidad-relacin son llevados a otros modelos, ya sea manual o automticamente. Dentro del modelo entidad relacin se tienen: Entidades: Una entidad est representada por un conjunto de atributos. Para cada atributo existe un rango de valores permitidos, llamado dominio del atributo. Conjunto de entidades: es un grupo de entidades del mismo tipo. Por ejemplo: un conjunto de alumnos. Relaciones: es una asociacin entre (varias) entidades. Ejemplo: curso es-inscrito por alumno. Conjunto de relaciones: es un grupo de relaciones de un mismo tipo.

Diagrama Entidad-Relacin
La estructura lgica general de una base de datos puede expresarse en forma grfica por medio de un diagrama entidad relacin, que se integra con los siguientes componentes:

Simbologa utilizada en el Diagrama Entidad / Relacin


Descripcin Rectngulos: representan conjuntos de entidades Smbolo Entidad

Elipses: Representan atributos

Atributo

Rombos: representan conjuntos de relaciones

Relacin

Lineas: Conectan los atributos a los conjuntos de entidades, y los conjuntos de relaciones

Conexin

Tipos de relaciones: Modelo Entidad Relacin (E/R)

Relacin 1-a-1

Simbologa

1-a-muchos

Muchos-a-muchos

El diagrama E/R se representa de dos formas, una para representar las entidades y sus relaciones llamada Diagrama o Modelo Entidad Relacin y la otra, para representar sus atributos, llamada Modelo Relacional: a) Diagrama E/R

b)

Modelo Relacional Empleado(Rut,Nom,Dir) Proyecto(Cod_proy,Nom_proy,Area) Emp_proy(Rut,Cod_proy)

Tipos de relaciones: Modelo de Datos Conceptual / Fisico


Relacin 1-a-1 1-a-muchos Simbologa

Muchos-a-muchos

De igual forma que en el modelo E/R, en el modelo de datos existen dos formas de representar el modelo, el Modelo de Datos Conceptual para mostrar las entidades y sus relaciones y el Modelo Fisico para representar sus atributos.

a) Modelo de Datos Conceptual

b) Modelo de Datos Fisico

Lenguaje SQL
El SQL (Structures Query Language) o en espaol Lenguaje Estructurado de Consulta, es un lenguaje que permite expresar operaciones diversas, por ejemplo aritmticas, combinatorias y lgicas, con datos almacenados en Bases de Datos relacionados, que son aquellas que se caracterizan porque la informacin est contenidas en estructuras, llamadas tablas, donde los datos estn dispuestos en filas y columnas. En resumen, el lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Existen dos tipos de comandos SQL: Los DDL (Lenguaje de definicin de datos) que permiten crear y definir las bases de datos, campos e ndices Los DML (Lenguaje de Manipulacin de datos) que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. La estructura bsica de una expresin en SQL consta de tres clusulas: select, from y where.

La clusula Select corresponde a la operacin de proyeccin del lgebra en el resultado de una

relacional. Se usa para listar los atributos que se desean consulta.

La clusula From corresponde a la operacin de producto cartesiano

del

lgebra relacional. Lista las relaciones que se van a examinar en la evaluacin de la expresin. La clusula Where corresponde al predicado de seleccin del lgebra relacional. Consta de un predicado que implica atributos de las relaciones que aparecen en la clusula from.

Algebra Relacional
A modo ilustrativo se mostrar la relacin entre el Algebra relacional y las sentencias Select, From, Where del Lenguaje SQL. La sentencia Select est relacionada con la siguiente operacin: Proyeccin: Sean las siguiente tablas R y S R Nombre Prez Fuentes Lpez Edad 25 36 45 Sueldo 120000 200000 180000 S Nombre Prez Fuentes Lpez Depto Ventas Finanzas Produccin

Ejemplos de Proyecciones: i).- 3,1 (R) Sueldo 120000 200000 180000 Nombre Perez Fuentes Lopez

ii).- Depto (s) Depto Ventas Finanzas Produccin

La sentencia From est relacionada con la siguiente operacin: Producto cartesiano (RxS) R.Nombre Prez Prez Prez Fuentes Fuentes Fuentes Lpez Lpez Lpez Edad 25 25 25 36 36 36 45 45 45 Sueldo 120000 120000 120000 200000 200000 200000 180000 180000 180000 S.Nombre Prez Lpez Fuentes Prez Lpez Fuentes Prez Lpez Fuentes Depto Ventas Produccin Finanzas Ventas Produccin Finanzas Ventas Produccin Finanzas

Seleccin

i).- Nombre=Prez (R)


Nombre Perez Edad 25 Sueldo 120000

ii).- Edad > 30 (R)


Nombre Fuentes Lpez Edad 36 45 Sueldo 200000 180000

La sentencia Where corresponde al criterio de consulta utilizado tanto en la seleccin. Una consulta Tpica SQL, tiene la forma: Select A1, A2, A3,.....,An From R1,R2,R3,....,Rn Where P Que equivale a decir: A1, A2, A3,.....,An ( (R1,R2,R3,....,Rn))

Tabla resumen de comandos SQL


Cuadro resumen de Comandos SQL 1.Comandos DDL

Comando
CREATE DROP ALTER

Descripcin
Crea nuevas tablas, campos e ndices Elimina tablas e ndices Modifica las tablas agregando campos cambiando la definicin de los campos o

2.-

Comandos DML

Comando
SELECT INSERT UPDATE DELETE

Descripcin
Consulta registros de la base de datos que satisfagan un cierto criterio Carga lotes de datos en la base en una nica operacin Modifica los valores de los campos y registros especficos (refresco de datos) Elimina registros de una tabla de una base de datos

3.-

Clusulas Son condiciones de modificacin utilizadas para definir los datos que se desee manipular o manipular.

Clusula
FROM WHERE GROUP BY HAVING ORDER BY

Descripcin
Especifica la tabla de la cual de van a seleccionar los registros Especifica las condiciones que beden reunir los registros que se van a seleccionar Separa los registros seleccionados en grupos especficos Expresa la condicin que debe satisfacer cada grupo Ordena los registros seleccionados de acuerdo con un orden especfico

4.-

Operadores lgicos

Operador
AND OR NOT

Descripcin
Es el Y lgico. Evala dos condiciones y devuelve un valor de verdad solo si ambas son ciertas Es el O lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta Negacin lgica. Devuelve el valor contrario de la expresin

5.-

Operadores de comparacin

Operador
< > <> <= >= = Between Like In

Descripcin
Menor que Mayor que Distinto de Menor igual que Mayor igual que Igual que Especifica un intervalo de valores Se utiliza en la comparacin de un modelo Se utiliza para especificar registros de una base de datos

6.-

Funciones de agregado

Funcin
AVG COUNT SUM MAX MIN

Descripcin
Calcula el promedio de los valores de un campo determinado Devuelve el nmero de registros (cuenta) de la seleccin Devuelve la suma de todos los valores de un acampo determinado Devuelve el valor mximo de un campo especfico Devuelve el valor mnimo de un campo especfico

7.

Funciones de combinacin de Datos

Las consultas realizadas hasta ahora requeran de una dosis de habilidad para conseguir crear un conjunto de datos que tuviese informacin combinada de dos tablas. Pero, podemos combinar datos de una manera mucho ms sencilla y eficaz: mediante las operaciones JOIN, las cuales permiten combinar datos de dos tablas. La operacin JOIN ms comn es INNER JOIN, cuya sintaxis es:
tabla1 INNER JOIN tabla2 ON tabla1.campo_comn=tabla2.campo_comn

donde tabla1 y tabla2 representan el nombre de las tablas a combinar. Ambas tablas han de tener un campo comn o igual para poder realizar correctamente la combinacin de los datos. Pero veamos un ejemplo para entenderlo mejor:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente;

El resultado ser un conjunto de registros con los datos de las dos tablas. Este conjunto poseer el nombre de todos los campos de la tabla pedidos y de todos los campos de la tabla clientes. En cada registro aparecern los datos relacionados, es decir, que en un pedido aparecern los datos del mismo y los datos personales del cliente que realiz el pedido. La operacin INNER JOIN combina los datos de las dos tablas siempre que haya valores coincidentes en los campos comunes o enlazados. Existen tambin otras dos formas de combinar: LEFT JOIN y RIGHT JOIN. Ambas tienen la misma sintaxis que INNER JOIN, pero estas operaciones incluyen todos los registros de una tabla y aquellos registros de la otra en que los campos comunes sean iguales. En la operacin LEFT JOIN, incluye todos los registros de la primera tabla (parmetro tabla1) y aquellos registros de la segunda tabla (parmetro tabla2) en que los campos comunes sean iguales. En la operacin RIGHT JOIN ocurre lo contrario: incluye todos los registros de la segunda tabla y aquellos registros de la primera tabla en que los campos comunes sean iguales. Aunque la diferencia entre las tres operaciones parezca inexistente, en realidad s existe. La operacin INNER JOIN realiza una combinacin con todos aquellos registros de las dos tablas en que el campo comn de ambas tenga el mismo valor, mientras que las operaciones LEFT JOIN y RIGHT JOIN realizan la combinacin de todos los registros de la tabla que combinan (ya sea la primera para LEFT JOIN o la segunda para RIGHT JOIN), aunque en la otra tabla, en el campo comn no haya coincidencia. La prueba se ve rpidamente si se introduce un cdigo de cliente en el campo campo_cliente de la tabla pedidos que no exista:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente;

El registro que contiene el pedido del cliente que no existe no aparece, pueste que no hay coincidencia. Si escribimos:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente;

observaremos que aparecen todos los registros de la tabla pedidos, incluido aquel donde indicamos que el pedido fue solicitado por el cliente inexistente, pero en los campos relacionados (campos de la tabla clientes) no habr ningn dato relacionado o combinado. Si ahora escribimos lo siguiente:

SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente;

obtendremos el mismo resultado que con la operacin INNER JOIN, puesto que se visualizan todos aquellos registros que existen en clientes y aquellos que coincidan con el campo clave en la tabla pedidos. Como el cdigo inexistente no existe en la tabla clientes, este registro no aparece. Para comprobar el efecto an mejor, modificar el cdigo inexistente en el registro de la tabla pedidos por uno que s exista. Tras ello, volver a introducir las sentencias SQL para comprobar la diferencia. Lo ms normal es utilizar la operacin INNER JOIN para omitir aquellos registros no coincidentes, aunque las operaciones LEFT JOIN y RIGHT JOIN nos pueden servir para descubrir entradas errneas en cdigos. Veamos algunos ejemplos ms:
SELECT fecha, codigo_producto, unidades, apellidos, nombre FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente WHERE fecha<#1/6/97#;

Combina pedidos y clientes, visualizando aquellos pedidos realizados antes del 6 de Enero de 1997 por los campos fecha, codigo_producto, unidades, apellidos y nombre.
SELECT fecha, unidades, productos.* FROM pedidos INNER JOIN productos ON pedidos.codigo_producto = productos.codigo_producto;

Combina pedidos y productos, visualizando los pedidos por los campos fecha y unidades, y por todos los campos de la tabla productos.
SELECT fecha, unidades, productos.* FROM pedidos INNER JOIN productos ON pedidos.codigo_producto = productos.codigo_producto ORDER BY fecha, producto;

El resultado ser el mismo que con el anterior ejemplo, salvo que la presentacin de los registros se realizar ordenada por la fecha y el nombre del producto.

You might also like