Documente Academic
Documente Profesional
Documente Cultură
MEDELLN
NOVIEMBRE DE 2014
INSTRUCCIONES GENERALES
El curso Bases de datos bsico por ser de tipo Metodolgico, requiere fortalecer la
fundamentacin terica que se lleva a cabo en el aula virtual con el desarrollo del componente
prctico que el estudiante debe realizar en la sala de sistema del CEAD en el cual est
matriculado. Todos los estudiantes deben entregar un informe por cada prctica, al tutor que
orienta el componente prctico en cada Cead. En ese sentido cada Cead dispone de un Tutor
del rea que estar a cargo de la motivacin, del acompaamiento, de la valoracin de estas
actividades prcticas, y el cual todos los estudiantes deben asistir a ella. El tutor, debe reportar
la nota del resultado individual del componente prctico desarrollado por cada estudiante
haciendo entrega a ste de la rbrica calificada con su firma, de tal forma, que cada estudiantes
suba este archivo escaneado al campus virtual en el entorno de evaluacin y seguimiento
para hacerle reconocimiento de su nota en el campus virtual, as mismo, el tutor debe hacer
una relacin de todos los estudiantes que hicieron la prctica con su respectiva nota, firmarla y
subirla a la red de tutores.
Se debe realizar mnimo dos prctica, la cual ser de mucha ayuda para el desarrollo del trabajo
colaborativo 2. Se espera que este espacio sea aprovechado para despejar dudas e inquietudes
relacionadas con la temtica.
Cada tutor asignado al componente prctico del curso una vez que valore las dos secciones de
la prctica, debe entregarle al estudiante un archivo con la rbrica calificada y firmada por l,
de tal forma que el estudiante suba este archivo en el espacio de tarea para ser reconocida en
el curso virtual. La valoracin mxima de la prctica es de 30 puntos. Este puntaje, se encuentra
en la tarea que est creada en el curso virtual.
Se recomienda que las dos secciones de la prctica se realice antes de la entrega del trabajo
colaborativo 2, as los estudiantes tendrn herramientas para desarrollar y hacer aportes en ste.
Por lo tanto los rangos de fechas para la realizacin de stas son:
Practica No 1 Modelo Relacional y Lenguaje de Definicin de datos entre el mes de septiembre
y la primera semana de octubre de 2015
Prctica No 2 Lenguaje de Manipulacin de datos entre el mes de septiembre y una semana
antes de finalizar octubre del 2015
Antes de empezar a aplicar las reglas anteriores, se debe tener en cuenta las siguientes
recomendaciones:
1) Empezar a relacionar las entidades que son padres, es decir, aquellas que no tienen pata de gallina
como son la ENTIDAD_A y la ENTIDAD_E.
2) Despus se relacionan las entidades que son hijas, tienen pata de gallina con las entidades que ya
fueron descritas en el punto anterior: En este caso, observamos que la ENTIDAD_B y la ENTIDAD_C
tienen relacin con la ENTIDAD_A.
3) El proceso se contina hasta finalizar. As tenemos que las entidades que faltan son hijas de
entidades que ya estn relacionadas; en este ejemplo la ENTIDAD_D y la ENTIDAD_F, estn
relacionadas, la primera con la ENTIDAD_C y la ENTIDAD_E; la segunda con la ENTIDAD_B.
De acuerdo a lo anterior y a la aplicacin de la primera regla "Toda entidad es una tabla", quedara as:
ENTIDAD_A (
ENTIDAD_E (
ENTIDAD_B (
ENTIDAD_C (
ENTIDAD_D (
ENTIDAD_F (
Obsrvese que se abre un parntesis, eso es con el fin de comenzar a aplicar la segunda regla "Todo
atributo es un campo de la tabla y si es atributo clave, tambin es campo clave". Luego entonces
quedara as:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3
ENTIDAD_C (C1, C2, C3, C4
ENTIDAD_D (
ENTIDAD_F (F1, F2
En las tablas anteriores, se observa que la ENTIDAD_A y la ENTIDAD_E se le cerr el parntesis,
esto debido a que son entidades que no heredan de nadie. Haciendo analoga con un rbol, son la raz
del rbol, son solo padres. Sin embargo las dems quedan con el parntesis abierto pues las dems, en
ciertas relaciones, son todas hijas de alguien.
Ahora se contina aplicando la tercera regla "Toda relacin uno a varios, la entidad hija hereda el campo
clave de la tabla padre; si la relacin es fuerte, entonces la hereda como campo clave tambin" Miremos
como quedara:
Como la tablas ENTIDAD_A y la ENTIDAD_E, ya estn finalizadas, entonces seguimos con nuestro
anlisis con la tabla ENTIDAD_B, donde vemos que esta entidad es hija de la ENTIDAD_A y el campo
clave de la tabla ENTIDAD_A es A1, pero adems, como la relacin es fuerte (tiene i), entonces este
campo clave es tambin campo clave de la tabla ENTIDAD_D. Grficamente se tiene:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3, A1)
Se sigue con la tabla ENTIDAD_C, se observa que esta entidad es hija de la ENTIDAD_A, por lo tanto
hereda el campo clave A1, pero en este caso NO es parte del campo clave. Grficamente se tiene:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3, A1)
ENTIDAD_C (C1, C2, C3, C4, A1)
Se contina con la tabla ENTIDAD_D, sta es una entidad asociativa, por lo tanto es dbil de mnimo dos
entidades que en este caso es la ENTIDAD_C y la ENTIDAD_E. Aplicando la regla encontramos que hereda
el campo clave C1 y C2 de la primera tabla y el campo clave E1 de la segunda tabla, pero como tambin
las relaciones que tiene con las dos entidades son fuertes (i), entonces estos campos claves a su vez son
campos claves de la tabla hija. Grficamente se tiene:
ENTIDAD_A (A1, A2)
ENTIDAD_E (E1, E2)
ENTIDAD_B (B1, B2, B3, A1)
ENTIDAD_C (C1, C2, C3, C4, A1)
ENTIDAD_D (C1, C2, E1)
El SQUARE, fue un leguaje que fue mejorando hasta que en el ao 1976, apareci el SQL, el cual se ha
convertido en una estndar en la industria de los fabricantes de herramientas de bases de datos. Este
lenguaje se divide en dos grupos de instrucciones, el DDL y el DML. El DDL, es el lenguajes de definicin
de datos y el DML es el lenguaje de definicin de datos.
A. Lenguaje de Definicin de Datos DDL
Consta de tres instrucciones bsicas como es el CREATE, el ALTER y el DROP. Los elementos de las
bases de datos que se le puede aplicar estas instrucciones son bases de datos (DATABASE), tablas
(TABLE), ndices (INDEX) y vistas (VIEW). Miremos esquemticamente lo anterior:
CREATE
DROP
DATABASE
INDEX
VIEW
ALTER
TABLE
Obsrvese que las bases de datos, ndices y vistas solo pueden ser creadas (CREATE) o borradas
(DROP), mientras que las tablas pueden tambin de las anteriores alterarse. La sentencia general es:
Creacin de Elementos
SESIN
2: ENTORNO
DE UN MOTOR DE BASES DE DATOS DDL y DML
b.NO.
Creacin
de una tabla
En
esta sesin
sePROVEEDORES
sugiere trabajar con el motor de bases de datos MySql. Sin embargo, se tiene la libertad
CREATE
TABLE
de trabajar en cualquier motor de bases de datos que garantice la utilizacin de las sentencias estndar
de
SQL.CHAR(4) NOT NULL,
(VNRO
VNOMBRE CHAR(30) NOT NULL,
Objetivos
deINT,
la prctica de laboratorio: Crear, llenar y consultar una base de datos.
SITUACION
CIUDAD CHAR(15),
Competencias
a desarrollar
PRIMARY KEY (VNRO));
Identifica
usa lasPARTES
estructuras del lenguaje de definicin de datos y el lenguaje de manipulacin de
CREATE yTABLE
datos.
(PNRO CHAR(4) NOT NULL,
PNOMBRE CHAR(30) NOT NULL,
Descripcin
de la prctica / actividad: Con base en el motor de base de datos seleccionado se debe
COLOR CHAR(15),
entrar
crear el esquema de la base de datos diseada en la sesin 2, y realizar el llenado con datos de
PESO aDECIMAL(4,1),
la
base
de
datos.
Las sentencias de SQL a utilizar son todas las del Lenguaje de Definicin de Datos
PRIMARY KEY
(PNRO));
(CREATE, DROP, ALTER, ADD) y parte del Lenguaje de Manipulacin de datos (INSERT, UPDATE y
DELETE)
CREATE TABLE SUMINISTROS
(VNRO CHAR(4) NOT NULL,
Software
a utilizar
enNULL,
la prctica: MySQL u otro motor que contenga sentencia SQL.
PNRO CHAR(4)
NOT
CANTIDAD INT,
Equipos
a utilizar en la prctica: Laboratorio de Sistemas
PRIMARY/ instrumentos
KEY (VNRO,PNRO),
FOREIGN KEY VNRO REFERENCE PROVEEDORES(VNRO),
Resultados
a obtener
en la prctica:PARTES
El estudiante
debe generar la base de datos de la sesin 2 con
FOREIGN KEY
PNRO REFERENCE
(PNRO));
datos.
Vase que la tabla de suministros tiene dos campos que heredan de las tablas proveedores y partes, por
Informe a entregar: Documento con todas las sentencias utilizadas para:
lo que son llaves forneas.
Crear
la basede
dendices
datos, con sus respectivas tablas, campos, campos claves y llaves forneas. Los
c.
Creacin
que realicen el laboratorio en la casa u oficina, debern incluir una copia del esquema de la base
de datos.
CREATE INDEX PROV_CIUDAD ON PROVEEDORES(CIUDAD);
Ingresar,
Actualizar
y Borrar datos de la base de datos. Los que realicen el laboratorio en la casa u
d.
Creacin
de Vistas
oficina, debern incluir una copia de los pantallazos donde se evidencie la ejecucin de las
diferentes
sentencias de Insercin,
Actualizacin y Borrado de datos en la base de datos creada.
CREATE
VIEW VISTA_PROVE
ON
(SELECT VNRO,VNOMBRE
Duracin de la Prctica: tres (5) horas, de la cuales dos son para creacin y llenado de datos de la base
FROM PROVEEDORES);
de datos, dos para la realizacin de la consulta y una para sustentacin de la misma.
Borrado de Elementos
a. Borrado de una base de datos
Modificacin de Tablas
Crear la base de datos, con sus respectivas tablas, campos, campos claves y llaves forneas. Los
que realicen el laboratorio en la casa u oficina, debern incluir una copia del esquema de la base
de datos.
Ingresar, Actualizar y Borrar datos de la base de datos. Los que realicen el laboratorio en la casa u
oficina, debern incluir una copia de los pantallazos donde se evidencie la ejecucin de las
diferentes sentencias de Insercin, Actualizacin y Borrado de datos en la base de datos creada.
Duracin de la Prctica: tres (5) horas, de la cuales dos son para creacin y llenado de datos de la base
de datos, dos para la realizacin de la consulta y una para sustentacin de la misma.
Fundamentacin Teorica
B. Lenguaje de Manipulacin de Datos DML
Como se dijo, este lenguaje permite la creacin, modificacin, borrado y consultas de datos. Para ello
cuenta con las siguientes instrucciones:
INSERTE: sirve para insertar filas a las tablas
UPDATE: sirve para modificar datos de una tabla
DELETE: sirve para borrar datos de una tabla
SELECT: sirve para consultar datos de una o varias tablas. Esta sentencia es la razn de ser de toda la
filosofa de las bases de datos relacional, ya que con esto se creo un mtodo para consultar los datos en
una forma no procedimental, es aqu donde mas aplica las operaciones algebraicas vistas en el captulo
anterior.
Borrar Filas
Vamos a borrar todas las filas de la tabla de proveedores que se encuentran en la ciudad de Armenia.
DELETE FROM PROVEEDORES
WHERE CIUDAD = Armenia;
Aqu vale la pena hacer la misma aclaracin que hicimos con UPDATE, y es que la clusula WHERE es
opcional. De tal forma, que si no se coloca, entonces BORRA TODOS LOS DATOS DE LA TABLA, pero
no la estructura.
Consultas de datos
Para mirar toda la potencialidad de la sentencia SELECT, hemos organizado las consultas de menor a
mayor grado de dificultad, por cuestiones pedaggicas. Comenzaremos con consultas sobre una sola
tabla hasta finalizar con subconsultas, donde intervienen ms de una tabla. Miremos la sentencia general
SELECT Campo1[,Campo 2, R..]
FROM Tabla 1[,Tabla 2, RR]
WHERE Condicin 1 [AND Condicin 2][OR Condicin 2][RR.]
ORDER BY Campo 1 [,Campo 2, R.]
GROUP BY Campo 1 [,Campo 2, R.]
HAVING Condicin de Grupo [AND Condicin 2][OR Condicin 2][RR.]
a. Consultas Simples
a. Consulta de un determinado campo. Consultar el nombre del proveedor con su
respectiva ciudad.
SELECT PROVEEDORE,CIUDAD
FROM PROVEEDORES;
b. Consultas de todos los campos. Consultar todos los datos de las partes.
SELECT *
FROM PARTES;
c. Consultas con DISTINCT. Consultar el nmero de proveedores que han suministrado
partes en algn proyecto.
SELECT DISTINCT VNRO
FROM SUMINISTROS;
d. Consultas de valores calculado. Consultar el nombre de las partes con su respectivos
pesos aumentados en un 10%.
SELECT PARTES, Peso aumentado en 10%,PESO*1.1
FROM PARTES;
e. Consultas con campos cualificados. Consultar el nmero y nombre del proyecto.
SELECT PROYECTOS.YNRO,PROYECTOS.PROYECTO
FROM PROYECTOS;
f.
b. Consultas de Reunin
a. Reunin simple. Consultar el nombre de los proveedores que han suministrado partes
a algn proyecto.
SELECT DISTINCT PROVEEDORES
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO;
Nota: Obsrvese que se utiliza el distinct para que no salgan repetidos el nombre del proveedor. Si desea
qutele el distinct y observe el resultado.
a. Reunin con condicin. Consultar el nombre del proveedor, el nombre de las partes y
el nombre del proyecto, con sus respectivas cantidas suministradas, solo para los
proyectos de MONITOR y CONSOLA.
SELECT PROVEEDOR,PARTE,PROYECTO
FROM PROVEEDORES,PARTES,PROYECTOS,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO AND PARTES.PNRO=SUMINISTROS.PNRO
AND PROYECTOR.YNRO=SUMINISTROS.YNRO AND (PROYECTO=MONITOR OR
PROYECTO=CONSOLA);
b. Reunin de una tabla consigo misma. Consultar las parejas de nmeros de proveedor
y la ciudad, que se encuentran en la misma ciudad.
SELECT PRIMERA.VNRO,SEGUNDA.VNRO
FROM PROVEEDORES PRIMERA,PROVEEDORES SEGUNDA
WHERE PRIMERA.VNRO<SEGUNDA.VNRO AND PRIMERA.CIUDAD=SEGUNDA.CIUDAD;
Nota: Obsrvese que el JOIN, es decir, la IGUALACIN, se esta realizando por el campo de CIUDAD y
no por el campo llave VNRO. Adems, se utilizan alias en el nombre de las tablas, con el fin de poder
combinar la tabla consigo misma.
b. Consultas para contar final con condicin. Obtener la cantidad total de proveedores
que se encuentran en la ciudad de LONDRES.
SELECT COUNT(VNRO)
FROM PROVEEDORES
WHERE CIUDAD=LONDRES ;
a. Consultas con agrupacin. Obtener el nmero total de proyectos por proveedor
SELECT VNRO,COUNT(YNRO)
FROM SUMINISTROS
GROUP BY VNRO;
b. Consultas con agrupacin y reunin de tablas. Consultar el nombre del proveedor con
su respectivo nmero total de proyectos.
SELECT PROVEEDOR,COUNT(YNRO)
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR;
c. Consultas con condicin de agrupacin. Consultar el nombre del proveedor, con su
respectiva cantidad total suministrada; solo aquellos proveedores que han
suministrado cantidades mayores a 800.
SELECT PROVEEDOR,SUM(CANT)
FROM PROVEEDORES,SUMINISTROS
WHERE PROVEEDORES.VNRO=SUMINISTROS.VNRO
GROUP BY PROVEEDOR
HAVING SUM(CANT)>800;
d. Consultas Avanzadas.
a. Consultas con el operador LIKE. Consultar los proveedores cuyo nombre empiezan
con la letra A.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE A% ;
a. Consultar los proveedores cuya segunda letra sea l.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE _A% ;
b. Consultar los proveedores cuya ltima letra sea igual a E.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE %E ;
c. Consultar los proveedores que tengan en el nombre la letra S.
SELECT *
FROM PROVEEDORES
WHERE PROVEEDOR LIKE %S% ;
d. Subconsultas. Consultar los proveedores que no han suministrado partes.
SELECT *
FROM PROVEEDORES
WHERE VNRO NOT IN
(SELECT VNRO
FROM SUMINISTROS) ;