UNIDAD 2 Modelo ER
UNIDAD 2 Modelo ER
UNIDAD 2 Modelo ER
Ejemplo:
96310418
Nombre
Esp
, COMD741101YHR
Nombre
Salario
, 3000
Tipos de relaciones:
Relacin uno a uno.
Se presenta cuando existe una relacin como su nombre lo indica
uno a uno, denominado tambin relacin de matrimonio. Una entidad
del tipo A solo se puede relacionar con una entidad del tipo B, y
viceversa;
Muchas a muchas.
Establece que cualquier cantidad de entidades del tipo A pueden estar
relacionados con cualquier cantidad de entidades del tipo B.
LLAVES PRIMARIAS
Uno de los procesos de mayor relevancia en la manipulacin de una
base de datos es el de distinguir entre las diversas entidades y
relaciones que son manipuladas. Entendemos como una llave al medio
que nos permite identificar en forma unvoca (nica e inequvoca) a una
entidad dentro de un conjunto de entidades.
Existen diversas categoras que permiten clasificar los tipos de llaves a
utilizara:
a) SUPER -LLAVE.- Es un conjunto de atributos mediante los cuales es
posible reconocer a una entidad. Este tipo de llaves contiene
comnmente atributos ajenos; es decir; atributos que no son
indispensables para llevar a cabo el reconocimiento del registro.
Ejemplo:
Conjunto de entidades: Cursos
Ejemplo:
Fuerte
Dbil
Fuerte
Notas:
a) Las entidades dbiles se sealan como rectngulos de doble pared
b) Los papeles se indican etiquetando las lneas que conectan a los rectngulos con los
rombos.
Ejercicios:
Represente mediante Diagramas E-R las siguientes situaciones:
-- Un vdeo club mantiene el control de sus clientes utilizando los siguientes datos:
numero de credencial, nombre, direccin y telfono; l catalogo de pelculas contiene
para cada cassette los datos clave, titulo, clasificacin y costo de renta.
A fin de imprimir los pagares y mantener un control de rentas, se registran tambin las
fechas de renta y la cantidad de das que el cliente mantendr la pelcula.
Vendedor
Auxiliar
ventas
RFC
2000
TEAT701210XYZ
1200
COV741120ABC
Tabla artculo
Clave Descripcin Costo
A100
Abanico
460
C260
Colcha
1200
matrimonial
Tabla Venta
RFC
Clave
TEAT701210XYZ C260
COV741120ABC A100
Ntese que en la tabla de relacin - Venta -, contiene como atributos a
las llaves primarias de las entidades que intervienen en dicha relacin,
en caso de que exista un atributo en las relaciones, este atributo es
anexado como una fila ms de la tabla;
Por ejemplo si anexamos el atributo fecha a la relacin venta, la tabla
que se originaria sera la siguiente:
RFC
Clave Fecha
UNIDAD 3
Modelo relacional
La ventaja del modelo relacional es que los datos se almacenan, al
menos conceptualmente, de un modo en que los usuarios entienden con
mayor facilidad. Los datos se almacenan como tablas y las relaciones
entre las filas y las tablas son visibles en los datos. Este enfoque
permite a los usuarios obtener informacin de la base de datos sin
asistencia de sistemas profesionales de administracin de informacin.
Las caractersticas ms importantes de los modelos relacionales son:
a. Es importante saber que las entradas en la tabla tienen un solo
valor (son atmicos); no se admiten valores mltiples, por lo tanto
la interseccin de un rengln con una columna tiene un solo
valor, nunca un conjunto de valores.
b. Todas las entradas de cualquier columna son de un solo tipo. Por
ejemplo, una columna puede contener nombres de clientes, y en
otra puede tener fechas de nacimiento. Cada columna posee un
nombre nico, el orden de las comunas no es de importancia para
la tabla, las columnas de una tabla se conocen como atributos.
Cada atributo tiene un dominio, que es una descripcin fsica y
lgica de valores permitidos.
c. No existen 2 filas en la tabla que sean idnticas.
d. La informacin en las bases de datos son representados como
datos explcitos, no existen apuntadores o ligas entre las tablas.
En el enfoque relacional es sustancialmente distinto de otros
enfoques en trminos de sus estructuras lgicas y del modo de las
operaciones de entrada/salida. En el enfoque relacional, los datos se
organizan en tablas llamadas relaciones, cada una de las cuales se
implanta como un archivo. En terminologa relacional una fila en una
exitosos DBMS s tienen opciones del lgebra relacional, stas son poco
utilizadas en vista de su complejidad.
El lgebra relacional toma dos o ms tablas como entrada produce
una nueva tabla como resultado de la serie de operaciones. Las
operaciones fundamentales en el lgebra relacional son seleccionar,
proyectar, producto cartesiano, renombrar, unin y diferencia de
conjuntos. Adems de las operaciones fundamentales existen otras
operaciones como son: interseccin de conjuntos, producto natural,
divisin y asignacin.
** Operaciones fundamentales **
Las operaciones seleccionar, proyectar y renombrar, son
denominadas operaciones unitarias ya que operan sobre una tabla. Las
otras operaciones operan sobre pares de relaciones y, por tanto se
llaman operaciones binarias.
* La operacin seleccionar.
Esta operacin selecciona tuplas (filas) que satisfacen una
instruccin(condicin) dada de una tabla. Se representa por medio de
parntesis.
(nombre_tabla
WHERE condicin);
Ejemplos:
Para ejemplificar las notaciones anteriores consideremos el ejemplo
ALUMNO cursa
- MATERIA, que tienen los siguientes
atributos:
NControl
NControl
Clave
NombreA
Clave
NombreM
Especialidad Calif
Crditos
Direccin
Representando en tablas a los atributos quedaran de la siguiente
forma:
Tabla alumno:
NControl NombreA Especialidad Direccin
Tabla cursa:
NControl Clave Calif
Tabla materia:
Clave NombreM Crditos
((Alumno)[especialidad,NombreA,NControl]
JOIN (Cursa) where especialidad = 'ISC')[Clave,NombreA])
JOIN (Materia where NombreM='BD2')[NombreA];
En el lgebra relacional no solo debemos saber lo que queremos si
no tambin como obtenerlo, al realizar las consultas debemos
especificar el nombre de la tabla a utilizar en caso de que deseemos
realizar una operacin con un atributo que las otras tablas no tienen
debemos "arrastrar" dicho atributo para poder utilizarlo, como lo es en
el caso anterior, en donde requerimos el nombre del alumno que
solamente lo tiene la tabla alumno, pro tambin deseamos que se
cumpla la condicin NombreM=BD2, como no podemos relacionar
directamente a ambas tablas empleamos la tabla cursa de donde
obtenemos la clave de las materias y mantenemos el nombre del alumno
(NombreA) finalmente con la orden JOIN se combinan las tablas por el
campo comn que tienen que es clave as que obtenemos una tabla con
todas las materias que cursan los alumnos de ISC, de donde
seleccionamos solo aquella que se llame BD2 con la orden Join
obtenemos esta nueva tabla de donde por ltimo proyectamos el
atributo NombreA que hemos venido "arrastrando".
Ejercicios propuestos:
Considere el modelo E-R del caso Mdico - atiende - Paciente.
Realizar:
* La conversin a tablas del modelo E-R.
* Las siguientes consultas en lgebra relacional.
1.- Obtener el nombre de Todos los mdicos.
2.- Obtener el nombre de todos los pacientes > de 18 aos.
3.- Obtener todos los datos de todos los pacientes.
4.- Obtener los nombres de todos los pacientes que consultan con el
mdico con cdula profesional ABC001.
5.- Obtener los nombres de los mdicos que atienden al paciente John
Smith.
6.- Suponiendo que el hospital de la Ciudad de la Paz tiene una tabla de
pacientes similar a la del hospital de San Jos, obtener el nombre y la
afiliacin de estos pacientes.
Tabla Paciente
Afiliacin NombreP Sexo Edad
Tabla Atiende
Cdula Afiliacin Fecha
Hora
From r1,r2,r3...rm
Donde:
Where Condicin(es)
Descripcin
Nmero del curso, nico para identificar cada curso
Nombre del curso, tambin es nico
Descripcin del curso
Crditos, nmero de estos que gana al estudiante al
cursarlo
Costo
Depto
NumC
NombreC
DescC
Creditos
Costo
Depto
A01
Liderazgo
Para pblico
General
10
100.00
Admn.
S01
Para ISC y LI
10
90.00
Sistemas.
C01
Construccin de torres
Para IC y
Arquitectura
0.00
Ciencias
B01
Para IB
80.00
Bioqumica
IE e II
10
100.00
Electromecnica.
S02
Tecnologa OLAP
Para ISC y LI
100.00
Sistemas
C02
Para IC
10
100.00
Ciencias
B02
Para IB
10
0.00
Bioqumica
E02
Para IE
10
100.00
Electromecnica
S03
Estructura de datos
Para ISC y LI
0.00
Sistemas
Diseo bioclimtico
Para
Arquitectura
10
0.00
E01
A01
Arquitectura
C03
Matemticas discretas
General
0.00
Ciencias
S04
Circuitos digitales
Para ISC
10
0.00
Sistemas
S05
Arquitectura de Computadoras
Para ISC
10
50.00
Sistemas
I01
Para ISC y LI
10
150.00
Informtica
Ejemplos de consultas:
SELECT *
FROM CURSO
WHERE Costo=0.00
Resultado de la consulta anterior.
NumC
NombreC
DescC
Creditos
Costo
Depto
0.00
Ciencias
10
0.00
Bioqumica
Sistemas
C01
Construccin de torres
Para IC y
Arquitectura
B02
Para IB
S03
Estructura de datos
Para ISC y LI
0.00
Diseo bioclimtico
Para
Arquitectura
10
0.00
A01
C03
Matemticas discretas
General
Arquitectura
8
0.00
Ciencias
SELECT *
FROM CURSO
WHERE Depto = 'Ciencias';
Resultado de la consulta.
NumC
NombreC
DescC
Creditos
Costo
Depto
0.00
Ciencias
C01
Construccin de torres
Para IC y
Arquitectura
C02
Para IC
10
100.00
Ciencias
S04
Circuitos digitales
Para ISC
10
0.00
Sistemas
NumC
NombreC
A01
Liderazgo
S01
C01
Construccin de torres
B01
E01
S02
Tecnologa OLAP
C02
B02
E02
S03
Estructura de datos
Depto
Admn.
Sistemas.
Ciencias
Bioqumica
Electromecnica.
Sistemas
Ciencias
Bioqumica
Electromecnica
Sistemas
Diseo bioclimtico
Arquitectura
A01
C03
Matemticas discretas
Ciencias
S04
Circuitos digitales
Sistemas
S05
Arquitectura de Computadoras
Sistemas
I01
Informtica
Depto
Administracin
Sistemas
Ciencias
Bioqumica
electromecnica
Arquitectura
Informtica
La palabra DISTINCT va estrictamente despus de la palabra SELECT.
De no haberse utilizado la palabra DISTINCT, el resultado hubiera
mostrado todas las tuplas del atributo Depto que se encontraran, es
decir, se hubiera visualizado la columna de Depto completamente.
EMPLEO DE LOS CONECTORES BOOLEANOS (AND, OR, NOT)
Para emplear las condiciones mltiples dentro de la sentencia
WHERE, utilizamos los conectores lgicos.
El conector AND.
Este conector pide al sistema que seleccione una sola columna
nicamente si ambas condiciones se cumplen.
SELECT *
FROM CURSO
WHERE Depto=Sistemas AND Costo=0.00;
El resultado de esta consulta sera todas aquellas tuplas que
cumplan exactamente con las dos condiciones establecidas.
El conector OR.
Este conector al igual que el AND permite conectar condiciones
mltiples en la sentencia WHERE, a diferencia del conector AND, el OR
permite la seleccin de filas que cumplan con una sola de las
condiciones establecidas a travs de este conector.
SELECT *
FROM CURSO
WHERE Depto = Arquitectura OR Depto= Bioqumica;
El resultado de esta consulta ser la de visualizar todas aquellas
tuplas donde se cumpla cualquiera de las 2 condiciones, es decir
mostrara todas las tuplas que tengan en el atributo Depto=Arquitectura
o Bioqumica.
El conector NOT
Este nos permite marcar aquellas tuplas que por alguna razn no
deseamos visualizar.
C1
C2
C3
CA
CB
AAA
10
35
BBB
45
10
CCC
55
65
DDD
20
20
EEE
20
90
FFF
90
90
GGG
15
75
HHH
90
90
35
C1
C2
C3
CA
CB
AAA
10
10
DDD
20
20
EEE
20
20
FFF
90
90
FFF
90
90
FFF
90
90
HHH
90
90
HHH
90
90
HHH
90
90
Tabla cursa:
NControl Clave Calif
Tabla materia:
Clave NombreM Creditos
SELECT DISTINC(NControl)
FROM Cursa
WHERE Calif=100;
SELECT Max(Calif)
FROM Cursa
WHERE NControl IN (SELECT NControl
FROM Alumno
WHERE NombreA= J.M. Cadena );
PRIMARY KEY
(Opcional) ) ;
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) );
Tabla Alumno:
NControl NombreA Especialidad Direccin
Vistas.
Una vista se define en SQL usando la orden CRETE VIEW. Para
definir una vista debemos dar a la vista un nombre y declarar la
consulta que calcula la vista. Una vez que establecemos una vista,
podemos ejecutar una sentencia SELECT que referencie a esa vista. El
sistema asociar la vista SQL con una tabla base y extraer y
visualizar, entonces, los datos de la tabla base.
Esto significa que una vista no contiene datos duplicados de una
tabla base. No tiene absolutamente ningn dato, puesto que no es una
tabla real, todo el proceso se realiza con los datos almacenados en la
tabla base. Es decir se percibe como una tabla virtual.
Las ordenes que se utilizan para la manipulacin de vistas son:
CREATE VIEW: Crea una tabla virtual.
DROP VIEW: Elimina una vista creada anteriormente.
Estructura de la sentencia CREATE VIEW.
CREATE VIEW Nombre de la vista AS (Expresin de consulta);
Para nuestros ejemplos consideremos de nuevo la tabla llamada
CURSO, que contiene los siguientes campos:
Descripcin
Nmero del curso, nico para identificar cada curso
Nombre del curso, tambin es nico
Descripcin del curso
Crditos, nmero de estos que gana al estudiante al cursarlo
Costo
Depto
NumC
NombreC
DescC
Creditos
Costo
Depto
A01
Liderazgo
Para pblico
General
10
100.00
Admn.
S01
Para ISC y LI
10
90.00
Sistemas.
C01
Construccin de torres
Para IC y
Arquitectura
0.00
Ciencias
B01
Para IB
80.00
Bioqumica
IE e II
10
100.00
Electromecnica.
S02
Tecnologa OLAP
Para ISC y LI
100.00
Sistemas
C02
Para IC
10
100.00
Ciencias
B02
Para IB
10
0.00
Bioqumica
E02
Para IE
10
100.00
Electromecnica
S03
Estructura de datos
Para ISC y LI
0.00
Sistemas
Diseo bioclimtico
Para
Arquitectura
10
0.00
E01
A01
Arquitectura
C03
Matemticas discretas
General
0.00
Ciencias
S04
Circuitos digitales
Para ISC
10
0.00
Sistemas
S05
Arquitectura de Computadoras
Para ISC
10
50.00
Sistemas
I01
Para ISC y LI
10
150.00
Informtica
Ejemplos:
* Crear una vista (tabla virtual), denominada CursosS, que contenga
las filas solo correspondientes a cursos ofrecidos por el departamento
Sistemas. La vista deber contener todas las columnas de la tabla
Es el atributo de la relacin.
Generar tantas tablas como relaciones se tengan en el diagrama considerando
sus atributos como las columnas de las mismas.
Generar una tabla por cada entidad y relacin que exista en el diagrama
tomando los atributos de cada uno de ellos como columnas de las diferentes tablas.
Crear una tabla por cada entidad tomando su campo llave para generar un indice
para accesar a los datos.