Programa de la asignatura
Diseo de Base de Datos
Clave
150920519
Unidad 3. Implementacin de Bases de datos
Clave: 150920519
Universidad Abierta y a Distancia de Mxico
Propsito
Los propsitos de esta unidad son:
Comprender los operadores del lgebra relacional y las operaciones lgicas del clculo
relacional necesarias para complementar las bases de datos.
Sobre la base del modelo relacional implementado, realizar bases de datos y consultas de
las mismas mediante el uso de comandos SQL, tomando en cuenta los dispositivos de
almacenamiento necesarios para el resguardo de las bases de datos.
Competencia especfica
Implementar bases de datos para administrar informacin de un caso especfico mediante
el uso de los diferentes modelos de manipulacin de bases de datos.
Para aplicar estos conceptos recuerda que una base de datos se forma de tablas
relacionadas entre s, de manera que a los operadores del lgebra son a los que en
lgebra relacional se les denomina relaciones.
Entonces para comprender qu es el algebra relacional, es vlido describirla como el
conjunto de operaciones que se aplican sobre relaciones en una BD.
Con todo lo descrito anteriormente podemos resumir que:
lgebra relacional: es un lenguaje procedimental, es decir, se indica qu y cmo.
Operadores Derivados
Interseccin
Join
Divisin
A continuacin se explica cada una de estas tcnicas y cmo funcionan, todo esto para
que diferencies en qu caso te conviene aplicar cada una de ellas al momento de
consultar informacin de una BD.
De cada una de las tcnicas se muestra un ejemplo de tablas y, posteriormente, cmo
quedara la tabla resultante al aplicar dicha tcnica.
Unin
Como su nombre lo dice, este operador une o junta en una misma relacin las tuplas
o registros de dos relaciones diferentes. Estas se encuentran condicionadas a que
sean compatibles, es decir, el mismo tipo de atributos, y se expresa de la siguiente
manera.
Tabla clientes contado
ID
NOMBRE
98
Juan Lpez
99
Arturo Jimnez
ID
14
15
NOMBRE
Mnica Ramos
David
Hernndez
EDAD
25
36
Tabla clientescontadoclientescrdito
ID
NOMBRE
EDAD
Juan Lpez
33
99
14
15
Arturo Jimnez
Mnica Ramos
David
Hernndez
23
25
36
Diferencia
Es la resta de dos relaciones o tablas, generando una nueva relacin donde de la
primera se quitan aquellos registros que coincidan. Dicho de otra manera: se quedan
aquellos registros que estn en la primera pero no en la segunda.
De la misma manera que en caso de la unin, ambas tablas deben tener los mismos
atributos para que sean posibles.
Tabla clientes
ID
NOMBRE
98
Juan Lpez
99
Arturo Jimnez
100 Jaime Reyes
ID
99
100
Clientes Contado
NOMBRE
EDAD
Arturo Jimnez
23
Jaime Reyes
38
ID
98
15
NOMBRE
Juan Lpez
Margarita
Jurez
Contado clientes
ID
NOMBRE
15
Margarita
Jurez
EDAD
33
42
EDAD
42
Producto cartesiano
Define una relacin que es la unin de cada fila de una entidad con la fila de otra entidad.
Clientes
ID
NOMBRE
98 Juan Lpez
99
Arturo Jimnez
Productos
EDAD
33
23
IDpro
23
24
25
DESCRIPCION
MANZANA
SALSA ROJA
AZUCAR
UNIDAD
KG
PZ
KG
25
23
AZUCAR
MANZANA
KG
KG
98
99
24
25
SALSA ROJA
AZUCAR
PZ
KG
98
99
Jimnez
Juan Lpez
Arturo
Jimnez
Juan Lpez
Arturo
Jimnez
33
23
33
23
Seleccin
Se extrae una nueva tabla con los mismos atributos que cumplen con la condicin
especificada. Y se simboliza con:
Tabla clientes
ID
NOMBRE
98 Juan Lpez
99
Arturo Jimnez
14
Mnica Ramos
15
David
Hernndez
ID
15
NOMBRE
David
Hernndez
EDAD
36
Proyeccin
Produce una tabla como resultado con los atributos que se especifican, eliminando las
filas duplicadas; su smbolo es:
Tabla Clientes
ID
NOMBRE
98 Juan
99
Arturo
14
Mnica
15
David
33
Juan
EDAD
33
23
25
36
25
Nombre (Clientes)
NOMBRE
Juan
Arturo
Mnica
David
Interseccin
Es el resultado de aquellos registros que se encuentran en ambas tablas; y su smbolo
es:
Tabla clientes contado
ID
NOMBRE
EDAD
98
Juan Lpez
33
99
Arturo Jimnez
23
NOMBRE
Mnica Ramos
David
Hernndez
Arturo Jimnez
EDAD
25
36
23
ClientescontadoClientescreditos
ID
99
NOMBRE
Arturo Jimnez
EDAD
23
ID
Tabla Puestos
EDAD
33
23
25
36
NOMBRE
IDP
98
99
99
114
IDP
98
99
Empleados *Puestos
EDAD
IDP
PUESTO
Almacenista
Vendedor
PUESTO
Juan Lpez
Arturo Jimnez
Mnica Ramos
33
23
25
98
99
99
Almacenista
Vendedor
Vendedor
Divisin o cociente
Es el conjunto de atributos en dos relaciones en donde la segunda relacin esta incluida
en la primera. Y se representa con .
TABLA CLIENTES
ID
98
99
14
15
EDAD
23
33
10
11
12
13
14
tabla alumno
Matricula
Nombre
15245
Juan Prez
tabla materia
Clave
Nombremateria
materia
A23
Algebra
A24
Espaol
tabla relacin materia-alumno
Matricula
Clavemateria
15245
A23
15245
A24
Direccin
Calle los Olmos no. 25
Telfono
7777777
Duracin_materia
75 hrs
80 hrs
calificacin
80
100
Cada una de estas tablas proviene de ciertas entidades con sus respectivos atributos, y
considerando el tipo de relacin que tengan, se generar la base de datos.
Una vez que recordaste cmo pasar de un modelo entidad - relacin a relacional, y ya
conoces el origen del nombre del modelo relacional y cmo se representa, en el siguiente
tema estudiars especficamente lo que son la tablas y los esquemas.
Matricula
15245
Nombre
Juan Prez
Direccin
Calle los Olmos no. 25
Telfono
7777777
Dentro de las tablas tambin se encuentra la manera en que se relaciona con otras tablas,
dando origen a una nueva forma de representar una base de datos a travs de un
esquema, el cual es usado en el momento de programar la base de datos en su lenguaje,
y por ello es conveniente asignarle un nombre para posteriormente hacer referencia al
mismo. Existen convencionalismos para hacerlo y estn dados por lo que a continuacin
se presenta:
15
16
Los DDL ( Lenguaje de Definicin de Datos), que permiten crear y definir nuevas
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.
COMANDOS DML
SELECT Utilizado para consultar
registros de la base de datos que
satisfagan un criterio determinado
DROP
INSERT
Utilizado para cargar lotes de
datos en la base de datos en una nica
operacin.
ALTER
Utilizado para modificar las
tablas, agregando campos o cambiando la
definicin de los campos.
17
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea
seleccionar o manipular, a continuacin se muestran algunas de ellas.
FROM
WHERE
Utilizada para especificar las condiciones que deben reunir los registros que
se van a seleccionar
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden
especfico.
A continuacin se muestra una instruccin utilizando el comando CREATE para crear una
base de datos:
Createdatabase alumnos: esta instruccin crea la base de datos alumnos
Operadores Lgicos
Operadores Relacionales
<menor que,
a<b
a es menor que b
>mayor que
a>b
a es mayor que b
<>distinto de
a<> a
a es distinto que b
a<=b
a>=b
,(
18
Funciones
Las funciones de agregado se usan dentro de una clusula SELECT en grupos de
registros para devolver un nico valor que se aplica a un grupo de registros.
AVG
COUNT
SUM
Utilizada para devolver la suma de todos los valores de un campo
determinado
MAX
MIN
Tipo de de dato
Caractersticas
VARCHAR(tamao)
CHAR(tamao)
DATE
19
Una vez que sabes los tipos de datos se muestra un ejemplo de cmo se crea una tabla:
CREATE TABLE nombre_tabla (nombre_columnatipo_columna [ clusula_defecto ] [
vnculos_de_columna ][ , nombre_columnatipo_columna [ clusula_defecto ] [
vnculos_de_columna ] ... ]
[ , [ vnculo_de tabla] ... ] )
nombre_columna: es el nombre de la columna que compone la tabla..
tipo_columna: es la indicacin del tipo de dato que la columna podr contener.
clusula_defecto: indica el valor de defecto que tomar la columna si no se le asigna uno
explcitamente en el momento en que se crea la lnea. La sintaxis que hay que usar es la
que se indica en el ejemplo siguiente:
Ejemplo: antes de crear tablas debes conocer cmo crear las claves primarias y las claves
forneas que vienen de otra relacin.
20
21
Cuando definimos la vista, sta puede ser utilizada en cualquier momento, mientras se
haga referencia a ella, pero debemos de tener cuidado cuando se modifiquen las
relaciones de las tablas a las que hace referencia la vista, debido a que puede generar
errores en la consulta interna de la vista.
Por tal motivo, el sistema gestor de vistas guarda slo la vista creada y no el resultado
que arroja cuando se manda llamar.
22
Tomando en cuenta las tablas siguiente, mediante SQL se tiene la creacin de vistas de
la siguiente manera.
Vista de supervisores
Nombre puesto
Juan
Supervisor
Arturo
Supervisor
No.depto
45
46
56
Vista de secretarias
Nombre
puesto
Alejandra Secretaria
salario
4000
secretaria
AS
SELECT
FROM
Empleados
Puesto= secretaria;
WHERE
Se puede utilizar cualquier SELECT que contenga un ORDER BY cuando crea una vista.
Para consultar una vista, se hace un SELECT como si la vista fuera una tabla.
SQL> SELECT
FROM Secretaria;
23
MYDEPT
(PERSON,TITLE,SALARY)
AS SELECT
FROM
Empleado
WHERE
No.depto=10;
Borrado de Vistas.
Cuando no se necesitan o simplemente se quiere eliminar una vista previamente
ejecutada, se requiere de ciertos comandos, como los que a continuacin se muestra.
Para borrar vistas.
El comando de SQL es DROP VIEW nombre_vista.
Las tablas en las que se basa la vista no se alteran.
Las vistas pueden llegar a simplificar el uso de consultas y hacen que la informacin de
cmo elaborar la consulta no est al 100% disponible para el usuario al permitir renombrar
la consulta con un nombre especfico.
A continuacin seguirs con una actividad, para posteriormente profundizar en consultas.
24
.
Imagen tomada de Silberschatz y Korth, 2002, p- 58
25
Visual querybyexample
MSQL
Microsoft Access
26
27
Otra variante de la consulta anterior, donde se toman todas las columnas de la tabla,
donde el smbolo * en la clusula select significa que muestre la fila completa. Se tiene
lo siguiente.
Consulta: Quines son los clientes de convenio?
Select *
From Cliente
Where tipocliente = convenio
Resultado:
La siguiente imagen se muestra el resultado de la consulta simple mostrando todos los
campos de la tabla.
Resultados de consulta simple mostrando todos los campos de la tabla. Fuente: imagen
propia
Se muestra a continuacin otro ejemplo:
Consulta: Qu productos tienen precio entre $150 y $200?
SELECT
ean, nomproducto, preproducto, precfarmacia, descuento, fechaoferta,
precpublico
FROM
Ofertas
WHERE (precpublico>= 150) AND (precpublico<= 200)
ORDER BY nomproducto DESC
28
29
Resultado de consulta simple con variacin de la clusula where utilizando el operador IN.
En la imagen anterior se muestra la consulta utilizando el operador de comparacin IN. La
clusula where ha evaluado si el tipo de presentacin de la fila se encuentra.
30
Las consultas de mltiples tablas, son aquellas que implican la conexin de los datos a
travs de varias tablas. Para este tipo de consulta es comn utilizar el operador innerjoin,
a continuacin se muestran algunos ejemplos utilizando este operador.
Consulta: Cules son los laboratorios de los productos asignados al laboratorio WYETH,
S.A. DE C.V.?
Productos.*, Laboratorios.*
Productos INNER JOIN
Laboratorios ON Productos.IdLaboratorio = Laboratorios.IdLaboratorio
(Laboratorios.NomLaboratorio = 'WYETH, S.A. DE C.V.')
Existen varias sentencias en SQL, pero dentro de las bsicas y simples tambien se tiene
la sentencia Group by. Esta clave de SQL es utilizada cuando se desea seleccionar
multiples columnas desde una o varias tablas. En esta sentencia se pueden utilizar
operadores aritmeticos en la instruccin select. La sintaxis en SQL es tal como se muestra
en el siguiente ejemplo:
SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1-columna"
Operaciones que modifican la base de datos. Tanto QBE como SQL soportan tres
tipos de operaciones que cambian la base de datos:
Insert. Es utilizado para insertar registros o filas en la tabla de una base de datos.
Un ejemplo comn utilizando esta instruccin es el siguiente:
insertintoClientes (cliente_id,nombre,paterno,materno,sucursal_id, ciudad)
values ('0000099999','MARINA','HERNANDEZ','HERNANDEZ','00004',Leon),
('0000099998','CARLOS','VILLAVICENCIO','VAZQUEZ','00002',Len)
('0000099997','MIGUEL','SALAZAR','GARCIA','00001',Morelia)
31
Delete. Esta instruccin es comnmente utilizada para eliminar los registro de una
tabla dentro de la base de datos.Para esta instruccin es sencilla aplicar el criterio
de eliminacin de registros, se tiene como ejemplo la siguiente sentencia en SQL:
Create: se usa para crear el objeto, puede ser una base de datos, una tabla, un
esquema, vistas, etc. A continuacin se muestra un ejemplo de creacin de una
base de datos.
32
InserInto: se utiliza para que una vez creada la base de datosy, las tablas y los
campos de cada tabla, se inserten datos a cada campo de la tabla referenciada.
INSERTINTO Clientes (id_cliente, nombre_cliente, tel_cliente) values (08976,
MariaMartinez, 78647907)
Select: utilizado para seleccionar un objeto dentro de la base de datos, tal como
tablas. Como un ejemplo comnmente utilizado en select se tiene:
SELECT idcliente, fechaalta, tipocliente, rfcalfa, rfcfecha, rfchomoclave,
nomcliente, domicilio1, domicilio2, telefono, contacto, activo, comentario, imagen
FROM
Clientes
Tcnicas de base de datos activa, las actuales especifican acciones que son
automticamente ejecutadas por los eventos.
33
En SQL se utilizan todas las instrucciones vistas en ste tema, las cuales se pueden
considerar las bsicas para la creacin insercin y manipulacin de datos. Es importante
que recuerdes y pongas en prctica las instrucciones vistas para cuando utilices SQL para
la realizacin de tus bases de datos especficas.
34
Capa de presentacin (Cliente). Esta capa otorga al usuario la interfaz para poder
interactuar con el sistema de gestin de base de datos, las cuales se utilizan
como conexiones con la aplicacin desarrollada. Comnmente se utilizan
navegadores web o aplicaciones desarrolladas en distintos lenguajes de
programacin, tales como HTML, JAVA, C++, Visual Studio, etc. En esta capa se
gestionan las entradas, salidas y navegacin, aceptando comandos de usuario.
Capa de aplicacin (lgica de aplicacin). Esta capa se utiliza para la
programacin lgica de las aplicaciones que tendrn acceso al sistema de gestin
de bases de datos, El acceso a la informacin o consultas a la base de datos se
realiza mediante la interface de la aplicacin desarrollada.
Servidor de bases de datos. En esta capa se controlan todas las consultas y
peticiones de actualizaciones procedentes de la capa de aplicacin y es la
encargada de procesar las solicitudes para el envo de los resultados.
La siguiente imagen muestra un esquema general de las diferentes capas que componen
una arquitectura cliente/servidor:
35
Servidor de base de datos en SQL Server 2008 R2. Fuente, Microsoft SQL Server
Management Studio.
Acabas de conocer a que nos referimos como servidor de base de datos o manejador de
sistemas de base de datos, el cul es una aplicacin que puede variar segn la que
selecciones, pero en esencia, funcionan de forma similar, realizando o indicado por los
usuarios, solo debes de familiarizarte con la plataforma elegida.
36
Como te diste cuenta hay diferentes formas de accesar a la informacin, y no solo por
parte de la persona, sino tambin por procesos propios del sistema manejador de bases
de datos
37
38
39
Los datos pueden ser respaldados y colocados en diferentes medios para simplemente
recuperar ese respaldo y poderlo accesar, esto puede servir ante situaciones como los
casos en los que se pierde informacin que se encuentra en la unidad principal, pero
tendra como desventaja el proceso que implica la restauracin de la base de datos para
ser consultada; por lo tanto este almacenamiento secundario es recomendado solo para
pocos y espordicos accesos.
40
Es importante conocer cada uno de los factores mencionados en ste tema, ya que el
pleno conocimientos de ellos nos ayudar a contar con informacin rpida y adecuada al
momento de ser solicitada o guardada, debido a que si algo llega a suceder, se tomar en
cuenta que algunos de stos factores esta actuando o interfiriendo en la toma de
decisiones para obtener o guardar informacin.
41
Como te pudiste dar cuenta, el formato en cuestin depender del punto en el que se
encuentre la base de datos o justo lo que se encuentre realizando el gestor con los datos.
Los mtodos a aplicar dependern del sistema gestor de bases de datos, pero es
importante que conozcas cules existen.
42
Acabas de conocer como se deben de estructurar las bases de datos segn vayan
cambiando o se vayan modificando, esto se debe debido a que la correspondencia de
datos no es igual, ya que en un principio una base de datos puede ser pequea y
ordenada, pero conforme va pasando el tiempo, puede aumentar, causando desorden el
los datos internos.
Actividad 3. Cliente-Servidor-datos
Los grandes volmenes de informacin requieren cada vez respuestas de consulta ms
eficaces, y ante ello los lenguajes como el SQL son una de las herramientas que
proporcionan esas respuestas, solo que es necesario saber hacer la pregunta correcta
para obtener la respuesta que se desea. Lo mismo sucede con las consultas: esta
informacin debe estar asociada a un buen sistema de almacenamiento, como lo pudiste
ver a lo largo de estos temas.
Propsito:
La presente actividad tiene como propsito que reflexiones sobre los temas estudiados y
que con ellos logres implementar un sistema de base de datos cliente servidor, adems
de la organizacin fsica de estos datos.
Antes de comenzar, debers plantearte las siguientes preguntas:
En dnde puedo realizar una consulta con grficos?
Qu sistemas gestores de datos la utilizan?
Como puedo elaborar una consulta que muestre toda la informacin de una tabla
llamada consultas?
Para qu sirve el smbolo * al momento de hacer una consulta?
Para qu sirve el innerjoin y el groupby en una consulta?
Cmo funciona una base de datos en un sistema cliente servidor?
Cmo est organizada fsicamente la informacin en una base de datos?
Ahora lee detenidamente cada una de las instrucciones y contesta lo que se te pide con
dedicacin:
1. Retoma la lecturas de los temas 3.3, 3.4 y 3.5
2. Arma tus propios conceptos acerca de cada uno de los temas, para ello bsate en
las preguntas que se te pidi que reflexionaras.
3. Ingresa al foro y genera una nueva entrada, opina sobre la de tus compaeros y
junto con tu profesor creen una conclusin general de cada tema.
43
Instrucciones:
1. Lee con atencin el siguiente caso y realiza lo que se te pide en los puntos
siguientes. Observa que despus del caso que te presentan las tablas que tendra
las bases de datos y los atributos de cada una de ellas:
Una pequea empresa distribuidora de productos requiere un sistema de base de datos
que le ayude a controlar el procesamiento de los pedidos, dicha base de datos se llamar
VentasProductos y est compuesta por las siguientes tablas:
Clientes: Contiene una fila por cada uno de los clientes de la empresa. Sus
campos son: nmero de cliente, nombre de la empresa, nombre de la persona de
contacto de la empresa y lmite de crdito.
RepresentanteVentas: Contiene una fila por cada uno de los vendedores de la
empresa. Sus campos son: nmero de empleado, nombre edad, nmero de la
oficina en la que trabaja el vendedor, ttulo, fecha de contratacin, id del director
del empleado (todo empleado tiene un director del cual depende), cuota de ventas
previstas y nmero de ventas realizadas.
Oficinas: Contiene una fila por cada una de las oficinas en las que trabajan los
vendedores. Sus campos son: nmero de oficina, ciudad, regin, ventas realizadas
y objetivo de ventas.
Productos: Contiene una fila por cada producto disponible para ventas. Sus
campos son: id del producto, descripcin, precio y existencia.
44
Pedidos. Contiene una fila por cada pedido ordenado por un cliente: Por
simplicidad, se supone que cada pedido solo puede ser un solo producto. Sus
campos son: nmero, fecha del pedido, nmero del cliente que hizo el pedido,
nmero de empleado que realiz el pedido, el id del producto que fue pedido, la
cantidad y el importe.
1. Crea los modelos para la base de datos del caso presentado (E-R y Relacional).
2. Crea la BD VentasProductos en SQL server 2008, en base a comandos.
3. Crea las tablas que se mencionan en el caso, con sus respectivos atributos, con
instrucciones de SQL.
4. Inserta por lo menos cinco registros a cada tabla por medio de comandos con
instrucciones SQL.
5. Realiza por lo menos diez consultas diferentes de las que se presentaron en la
unidad, utilizando algunos operadores lgicos, y observa lo que sucede.
6. Guarda todas estas instrucciones en un documento de Word, con el nombre
DBD_U3_INSTRUCCIONESSQL_XXYZ. Enva el archivo a tu Facilitador(a).
7. Consulta la escala de evaluacin.
Cierre de la unidad
Has concluido la tercera unidad del curso. A lo largo de esta se trataron conceptos
bsicos sobre lgebra relacional, clculo relacional, SQL y dispositivos de
almacenamiento, adems de que aprendiste a realizar bases de datos utilizando
comandos y realizar consultas de los datos almacenados en ellas, dependiendo de las
necesidades que pudiera tener el usuario; asimismo, cuentas con el conocimiento sobre
los diferentes dispositivos de almacenamiento para el guardado de las bases de datos.
Todo lo que aprendiste es de suma importancia, debido a que generars de forma
correcta bases de datos tiles y confiables, adems de que tendrs la satisfaccin de que
la informacin que se muestre al realizar una consulta es fiable y adecuada a lo que el
cliente te pida.
Es aconsejable que revises nuevamente la unidad en caso de que los temas que se
acaban de mencionar no te sean familiares o no los recuerdes, de no ser este tu caso,
felicidades, has terminado tu curso de bases de datos!
Para saber ms
45
Fuentes de consulta
Date, C.J. (2001) Introduccin a los Sistemas de Bases de Datos, 7ma Edicin. Mxico:
Ed. Addisson Wesley Longman.
Hansen, G. W., y Hansen, J.V- (1997)- Diseo y administracin de bases de datos, 2da.
Edicin Prentice Hall.
Silberschatz A. & H. F. (2002) Fundamentos de Bases de Datos, 4ta Edicin. Espaa: Mc
Graw Hill.
Ramez, E. y Shamkant, B. (2007). Sistemas de Bases de Datos, 2da Edicin. Espaa:
Ed. Navathe
46