Está en la página 1de 55

Instituto Tecnolgico de Cancn

Proyecto final

Fundamentos Base de Datos


Alumno: Ramos Ortigoza Jos Domingo

Maestra: Ing. Del Castillo Tello Paola

Ing. Sistemas computacionales

Lunes 6 de junio de 2016

6to Semestre

Ramos Ortigoza Jos Domingo

Introduccin:
Una base de datos (cuya abreviatura es BD) es una
entidad en la cual se pueden almacenar datos de
manera estructurada, con la menor redundancia
posible. Diferentes programas y diferentes usuarios
deben poder utilizar estos datos. Por lo tanto, el
concepto de base de datos generalmente est
relacionado con el de red ya que se debe poder
compartir esta informacin.
Se realizar un proyecto para solucionar el problema
que existe en un GYM, ya que los dueos tienen problemas con la administracin
del lugar, ya que no se lleva un control de los horarios, Personal, Clientes ni
Equipos.
Con este proyecto se busca establecer un orden y tener toda la informacin en
una Base de Datos, para que no existan problemas de horarios u equipos
perdidos.
La idea surge de mantener un control como se mencionaba anteriormente, lo
que buscamos es mantener todo dentro de una Base de Datos para que no
existan problemas, como por ejemplo la perdida de equipos como Pesas,
Cuerdas de Saltar, Pelotas, Etc. Tambin respecto al acceso de los clientes, ya
que existen problemas de acceso, por ejemplo si un cliente dice que ya ha
pagado la mensualidad y no hay manera de corroborarlo.

Ramos Ortigoza Jos Domingo

Planteamiento del problema


Cul es el problema y sus causas?
Durante la segunda y tercera semana de la apertura del GYM, varios equipos se
perdieron, como pesas, cuerdas, etc. Por otro lado, apareca equipo que no se
haba visto en el GYM como ligas, balones de peso etc. Y los mismos clientes
reclamaban que eran de ellos. Los equipos perdidos eran remplazados por otros
que estaban en el almacn sin ser etiquetados, donde tiempo despus se
extravi la libreta donde se anotaba un control de los clientes que pagaban la
mensualidad por ingresar al GYM y llegaban clientes diciendo que ya haban
pagado la mensualidad y esto generaba problemas.

Quines estn afectados y dnde?


Estaran afectadas ambas partes, tanto el dueo de la empresa como los clientes
que acuden al lugar, ya que el dueo estara perdiendo ingresos al estar
comprando equipo y no tendra un punto de equilibrio y/o ganancias, y por parte
de los clientes, perderan la confianza que tienen sobre el lugar y sabran que o
tienen una buena administracin.

Cul es la situacin de ese grupo, la que desea cambiar?


La situacin de este problema es grave, ya que si no se realiza el proyecto podra
llevar al GYM a la bancarrota, para solucionar este problema se implementar
una base de datos para llevar un registro donde se anoten cuando los clientes
hicieron cuando hicieron el pago y cuando se vence, al igual que la maquinaria
y equipo, se etiquetaron y clasificaron por medio de un SKU y el rea donde se
deben encontrar.

Qu sucedera a mediano plazo con esa situacin si no se


realiza el proyecto?
Existirn un problema con clientes, dejaran de ir al GYM ya que pensaran de
que los estn estafando y que no existira honestidad en el lugar por parte del
personal, y por parte del personal no hay un control donde se mantega un control
sobre las entradas y salidas de los empleados y asi como su informacin
personal.

Ramos Ortigoza Jos Domingo

MARCO TERICO

MODELO ENTIDAD RELACION.


En este tema se me funcin para poder tener la base para poder crear las tablas
que se vern en siguientes temas en cual es crear mi modelo entidad relacin.
Es un mtodo que disea esquemas que posteriormente debemos implementar
un gestor de base datos.
Es un modelo de datos basado en una percepcin del mundo real y llevarlo a
nuestro modelo junto con los conceptos bsicos y los objetivos de las entidades
y relaciones entre estos objetos.

Relacin
Es el concepto bsico del modelo relacional. Los conceptos de relacin entre el
modelo E-R y el relacional son diferentes. En el modelo relacional este trmino
se refiere a una tabla, y es el paralelo al concepto conjunto de entidades del
modelo E-R.

Tupla
A menudo se le llama tambin registro o fila, fsicamente es cada una de las
lneas de la relacin. Equivale al concepto de entidad del modelo E-R, y define
un objeto real, ya sea abstracto, concretos o imaginario.

Atributo
Tambin denominado campo o columna, corresponde con las divisiones
verticales de la relacin. Corresponde al concepto de atributo del modelo E-R y
contiene cada una de las caractersticas que definen una entidad u objeto.
Ramos Ortigoza Jos Domingo

Clave primaria es la que identifica equivocadamente a un solo atributo no


permitiendo que se repita en la misma entidad.
Una clave externa o fornea es la que permite relacionar tablas entre s.
Existen tipos de atributos y estos son:
Atributo simple es el que tiene solo un componente que no se puede dividir en
partes ms pequeas que tengan un significado propio.
Atributo compuesto es un atributo con varios componentes, cada uno con un
significado por s mismo.
Existe el monovaluado y el multivaluado.
El derivado su valor se obtiene a partir de un valor de otros atributos o entidades
relacionadas.
Diseo E-R
Los diagramas E-R constituyen la representacin grfica de las clases entidad y
las clases asociacin necesarios para construir el modelo de datos asociado.
El Ovalo son los Atributos.
El Rectngulo es la Entidad
Y el Rombo la Relacin.
Ms que nada es como disear diagramas que puedas relacionar con cosas del
mundo real.
Ahora pasaremos a ver el grado y la cardinalidad.
El grado de una relacin se define como el nmero de entidades que participan
en una relacin y existen 3 tipos que es la de grado 1 o anillo, el de grado dos
se le conoce como binaria o de grado dos y el tercero se le conoce como
ternarias o de grado 3.

Ramos Ortigoza Jos Domingo

Y la cardinalidad se define como el grado de participacin de las entidades de


una relacin existe la de 1 a 1, la de 1 a muchos y la de muchos a muchos.
Tambin tenemos algunos ejemplos y mostraremos uno de uno a muchos en
una estantera hay muchos libros este seria de cardinalidad 1 a muchos.
Otro tema es el de modelo entidad relacin extendido tiene los mismos
conceptos del modelo entidad relacin, pero se le anexa algunos conceptos ms.
El modelo ERE describe con un alto nivel de abstraccin la distribucin de datos
almacenados en un sistema.
Y lo nico que se le anexa es el atributo, la subclase/superclase, la
generalizacin
y especializacin.
Subclase es un grupo de elementos con algo en comn, que pertenece a una
entidad. Estos se corresponden con entidades por tanto se representan con
rectngulos en el diagrama ERE.
Tambin hablamos sobre la generalizacin y la especializacin.
La generalizacin se define como una entidad llamada superclase y la
especializacin de define como el conjunto de entidades que contienen
caractersticas ms particulares de una aplicacin y para estas existen.

Modelo relacional.
En esta unidad vimos lo que es pasar los diagramas de entidad relacin a tablas.
El modelo relacional en si permite representar la informacin del mundo real de
una manera intuitiva. Introduciendo conceptos cotidianos y fciles de entender
para cualquier inexperto.

Ramos Ortigoza Jos Domingo

Mencionaremos algunas caractersticas sobre el modelo relacional.


-Independencia fsica
-Independencia lgica.
-Flexibilidad.
-Uniformidad.
-Sencillez
Conceptos bsicos del modelo relacional son muy diferente al modelo entidad
relacin pero se llaman igual los conceptos pero tienen otro significado.
- Dominio es un conjunto de valores identificados por un nombre.
- Relacin es una tabla donde se almacenaran los atributos y registros.
- Atributo es una columna de una relacin.
- Tupla es una fila de la relacin.
- El grado de una relacin es el nmero de atributos de una relacin.
- Cardinalidad es el nmero de tuplas de una relacin.
Tambin estas tablas tienen claves que las identifican y mencionaremos
algunas.
- Clave candidata son todas las claves que podran ser claves primarias.
- Clave primaria es aquella clave candidata que el usuario elegir para identificar
las tuplas de la relacin.
- Clave alternativas son aquellas claves candidatas que no han sido escogidas
como claves primarias.
- Clave fornea es la que relaciona a una tabla con otra.

Ramos Ortigoza Jos Domingo

Tambin existen tipos de relaciones que son:


- Relacin base.
- Relacin vista
- Relacin instantnea
- Relacin de consulta
Restricciones del modelo relacional.
MYSQL
Aqu es pasar todas las relaciones a mysql.
En esta unidad pasamos a practicar en mysql.
Ms que nada aqu se utilizan los comandos que vimos anteriormente en la
teora.
Algunos Comandos que utilizamos en mysql y son los ms importantes.
Show: que nos sirve para visualizar bases de datos, tablas, etc.
Crate: que nos sirve para crear base de datos y tablas.
Insert: que su funcionamiento es insertar registros en una tabla.
Select: nos sirve para seleccionar una tabla y asi para poder mostrar sus
registros
que tiene esa tabla
Update: este comando sirve para actualizar registros de una dicha tabla.
Delete: para poder borrar un registro completo.
Grant: para poder crear usuarios con privilegios.
Alter: para poder alterar una tabla.
Ms que nada son los que ms se utilizan en mysql para poder interactuar con
la base de datos y las tablas.

Ramos Ortigoza Jos Domingo

Normalizacin
Es el proceso mediante el cual se transforman datos complejos a un conjunto de
estructuras de datos ms pequeos.
Los objetivos de la normalizacin son:
- Minimizar la redundancia
- minimizar el mantenimiento de datos
- minimizar el impacto de futuros cambios.
- Evitar problemas de actualizacin de los datos en las tablas.
Ventajas de la normalizacin:
- Mejora la independencia de los datos
- Facilidad de uso.
- Flexibilidad.
- Precisin.
- Seguridad.
- Facilidad de implementacin

Ramos Ortigoza Jos Domingo

Primera forma normal


La regla de la primera forma normal establece que las
columnas repetidas deben eliminarse y colocarse en tablas separadas. Esta
forma nos dice que todos los atributos deben ser atmicos.

Segunda forma normal


Primero para poder alcanzar la segunda forma normal hay que cumplir primero
la primera
forma normal y as ya podremos pasar hacer la segunda forma normal.
Una entidad que cumpla con la segunda forma normal tiene que tener las
siguientes
caractersticas: Que todos los atributos no clave sean dependientes totalmente
de la clave primaria

Tercera forma normal


Para que una entidad este en tercera forma normal debe cumplir dos
condiciones:
1. Que la entidad este en segunda forma norma.
2. Que todos los atributos no claves son dependientes del resto de atributos
claves.
La tercera forma normal nos dice que tenemos que eliminar cualquier columna
no
llave que sea dependiente de otra columna no llave.

Ramos Ortigoza Jos Domingo

Diagrama ENTIDAD-RELACIN
Direccin

ID_Cli

Direccin

Cantidad

Tipo
Telfono

GIMNASIO

Clientes

Tiene

Telfono

ID_local

Maquinas

Usan

Nombre
SKU
rea

Personal

Tamao

Nombres

ID

Apellidos
DE

Capacidad

Nombre

ID_Sala
Apellidos
Nombres

Entrenador

Recepcin

DE
Precio x Hora

Privado

Publico
Ramos Ortigoza Jos Domingo

Conversin a Modelo relacional

Esquema Lineal
Gimnasio (ID_local, Direccin, Telfono)
Clientes (ID_cli, Nombres, Apellidos, Telfono)
Personal (ID, Nombres, Apellidos,Tipo_Personal)
Gim_Cli_Per (ID_Local (FK), ID_cli(FK), ID(FK))

Maquinas (SKU, Cantidad, Tipo)


rea (ID_sala, Capacidad, Tamao)
Cli_Maq_Area (ID_cli, SKU, ID_sala)

Ramos Ortigoza Jos Domingo

Gymnasio

Cli_Gym_Per

ID_Cocal PK

ID_Cocal FK

Direccin

ID_Cli FK

Telfono

ID_Pe FK

Cli_Maq_Area

Clientes

ID_Cli FK

ID_Cli PK

ID_Sala FK

Direccin

SKU FK

Nombre

Maquinas
SKU PK
Tipo
Catidad

Apellidos
Personal

Ara

ID_Pe PK

ID_Sala PK

Nombre

Capacidad

Apellido

Tamao (mts)

Telefono
Tipo_Personal

Entrenador

Recepcin

Privado

Publico

Ramos Ortigoza Jos Domingo

Algebra Relacional
Esta teora me sirvi para poder hacer mis tablas y la practica en mysql.
Es un conjunto de operaciones que describen paso a paso como computar una
respuesta sobre las relaciones.
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 visin ms optimizada y eficiente de dicha consulta
Existen 2 tipos de operadores algebraicos:
Operadores bsicos o primitivos que son aquellas operaciones a partir de las
cuales podemos definir el resto. Estas operaciones son la union, la diferencia,
el producto cartesiano, la seleccin y la proyeccin
Operadores no bsicos o derivados es el resto de las operaciones del algebra
relacional que no son estrictamente necesarios porque se pueden expresar en
trminos de las primitivas.
Operadores:
Seleccin
Proyeccin
Unin.
Interseccin
Diferencia
Producto cartesiano
Renombrar
Join y otros mas.

Ramos Ortigoza Jos Domingo

Seleccin
Permite seleccionar un subconjunto de filas o registros de una relacin y de
acuerdo a la condicin planteada los registros sern seleccionados para formar
parte de un nuevo subconjunto.
El operador de seleccin opta por tuplas que satisfagan cierto predicado, se
utiliza la letra griega sigma minscula () para sealar la seleccin. El predicado
aparece como subndice de . La Relacin que constituye el argumento se da
entre parntesis despus de la .
Operaciones que se pueden usar dentro de la condicin son:
Comparacin: <,>, <=, >=, =.
Lgicos: AND, OR Y NOT
El formato que debemos utilizar es:
FORMATO:

(condicin) (R)

Ahora pasaremos a ver cmo funciona el operador seleccin en la tabla Clientes


Ejemplo
ID

Nombre

Apellidos

Direccion

12

Jose Domingo

Ramos Ortigoza

Reg.97 Mz.21 Lote2

13

Rita

Aguilar Prisciliano

Reg.220 Mz.12

14

Alicia

Puc Caamal

Reg.113 Lote.1

16

Freddy

Nuez Ortiz

Reg.94 Lote.15

17

Andrea

Rodrguez Mendoza

Reg.223 Mz.3 Lote.11

Ramos Ortigoza Jos Domingo

EDAD>21 (Clientes)
Esta es la condicin que hicimos para la tabla y nos debe mostrar los alumnos
que son mayores a 15 aos y la tabla nos quedara as.

ID

Nombre

Apellido

edad

16

Jose Domingo

Ramos Ortigoza

Reg.94 Lote.15

17

Rita

Aguilar Prisciliano

Reg.223 Mz.3 Lote.11

Y de esa forma nos sirve la seleccin, ms que nada nos sirve para hacer
condiciones a las tablas.
Ahora pasaremos hacerlo en mysql.
Haremos la misma lgica del operador seleccin, pero en mysql y para eso
utilizaramos el comando select y haremos la condicin de la tabla escogida
pasaremos a verlo en la imagen.

Como vemos yo puse una condicin. Y lo que puse de condicin es que todos
los clientes tengan un ID mayor a 23879 y as obtenemos el resultado
Ramos Ortigoza Jos Domingo

Proyeccin
La operacin de proyeccin permite quitar ciertos atributos de la relacin, esta
operacin es unaria, copiando su relacin base dada como argumento y quitando
ciertas columnas, La proyeccin se seala con la letra griega pi mayscula ().
Como subndice de se coloca una lista de todos los atributos que se desea
aparezcan en el resultado. La relacin argumento se escribe despus de entre
parntesis.

El formato es:

Lista de atributos (R)

Ahora pasaremos a aplicarlo en las tablas.


Y para esto utilizare la tabla alumnos.
ID

Nombre

Apellidos

Direccion

12

Jose Domingo

Ramos Ortigoza

Reg.97 Mz.21 Lote2

13

Rita

Aguilar Prisciliano

Reg.220 Mz.12

14

Alicia

Puc Caamal

Reg.113 Lote.1

16

Freddy

Nuez Ortiz

Reg.94 Lote.15

17

Andrea

Rodrguez Mendoza

Reg.223 Mz.3 Lote.11

Como dice la teora que lo que hace este operador es que te proyecta los
atributos que t quieras ver, ahora pasaremos a ver como se pide los atributos
que quiero ver.

Ramos Ortigoza Jos Domingo

ID, Nombre (alumnos)


Como vemos ya pusimos los atributos que queremos proyectar y ahora la tabla
nos quedara de esta forma.
ID

Nombre

12

Jose Domingo

13

Rita

14

Alicia

16

Freddy

17

Andrea

Ahora pasaremos hacerlo a mysql y para esto utilizaremos el comando select


igual pero ahora solo visualizaremos las columnas que nosotros queramos.
Utilizaremos la misma lgica del operador proyeccin.

Ramos Ortigoza Jos Domingo

Unin
Es una operacin, a partir de dos relaciones, obtiene una nueva relacin
formada por todas las tuplas que estn en alguna de las relaciones de partida.
Es la unin de dos relaciones R Y S que define una relacin que contiene todas
las tuplas de R U S o tanto como R o S.
Se eliminan las tuplas repetidas y debemos tener en cuenta que R Y S debes
ser compatibles.

Formato:

lista de atributos (R)

lista de atributos (S)

Bueno este ejemplo ser de empleados. Una tabla que sea sobre los
trabajadores en la maana y otra tabla de trabajadores que trabajan en la
tarde. Y lo que pediremos es que nos proyecte las columnas nombreempl y
apempleado que es el nombre del empleado y el apellido paterno del
empleado, hagamos la unin
Empleados_Maana
Nombre

Apellido

edad

sexo

Jos Domingo

Ramos Ortigoza

23

Rita

Aguilar Prisciliano

23

Empleados_Tarde
Nombre

Apellido

edad

sexo

Jos Domingo

Ramos Ortigoza

23

ngel

Cetina

23

Ramos Ortigoza Jos Domingo

Nombre, Apellido(Empleados_Maana)
Nombre, Apellido(Empleados_Tarde)
Nombre

Apellido

Jos Domingo

Ramos Ortigoza

Rita

Aguilar Prisciliano

Angel

Cetina

Al momento de hacer la unin se deben eliminar las tuplas repetida, ahora


pasaremos a hacerlo en Mysql

Ramos Ortigoza Jos Domingo

Interseccin
Es una operacin que, a partir de dos relaciones, obtiene una nueva relacin
formada por las tuplas que pertenecen a las dos relaciones de la partida.
Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en
teora de conjuntos el smbolo representa aqu la interseccin entre dos
relaciones.
Formato:

Lista de atributos (R)

lista de atributos (S)

Bueno ahora pasaremos a mostrar un ejemplo.


Y utilizaremos una tabla que se llame alumnos y la otra tabla profesores.
Alumnos_Maana
Nombre

Apellido

edad

sexo

Jos Domingo

Ramos Ortigoza

23

Rita

Aguilar Prisciliano

23

Alumnos_Tarde
Nombre

Apellido

edad

sexo

Jos Domingo

Ramos Ortigoza

23

ngel

Cetina

23

La teora dice que se creara una nueva tabla pero con las tuplas que estn en
las dos tablas y esto quedara as.

Ramos Ortigoza Jos Domingo

Nombre, apellido (alumnos_Maana)

Nombre ,Apellido

(Alumnos_Tarde)

Nombre
Jos Domingo

apellido
Ramos Ortigoza

Como vemos hicimos una consulta donde estn todas las tuplas que estn en
las tablas alumnos.
Y para esto sirve el operador interseccin.
MYSQL
Ahora pasaremos hacerlo en mysql y ser la misma lgica que en el lgebra
relacional y lo podemos apreciar en la imagen

Ramos Ortigoza Jos Domingo

Diferencia
La diferencia es una operacin que, a partir de dos relaciones, obtiene una
nueva relacin formada por todas las tuplas que estn en la primera relacin y,
en cambio no estn en la segunda.
Es una operacin binaria y la diferencia entre las relaciones T y S se indican
como T-S.

Formato:

Lista de atributos (R) -

lista de atributos (S)

Empleados de Administracin
DNI

Nombre

Apellido

Edificio

33446677

Jos Domingo

Ramos Ortigoza

marina

65544333

Eduardo

Cetina Pinto

49H

44783763

Rita

Aguilar Prisciliano

16T

Empleados de Produccin
DNI

Nombre

Apellido

Edificio

33446677

Jos Domingo

Ramos Ortigoza

marina

65544744

Gabriel

Jimnez Rodrguez

44783784

Ulises

Cabrera Limones

Vella

Ramos Ortigoza Jos Domingo

Lo que vamos a realizar es si una tupla est en la otra tabla la tendremos que
restar y cuando proyectemos nos mostrara las tablas, pero en una tabla no
mostrara la tupla que tambin est en la otra tabla esta tupla no se mostrara.
Ahora lo veremos en el ejemplo

EMPLEADOSADM - EMPLEADOSPRO
DNI
65544333

Nombre
Eduardo

Apellido
Cetina Pinto

Edificio
49H

44783763

Rita

Aguilar Prisciliano

16T

Y como vemos se ha restado en la tabla empleado de administracin.


Ahora pasaremos a mysql para ver cmo se aplica.

Ramos Ortigoza Jos Domingo

Renombrar
Permite nombrar (y referirse con este nuevo nombre) al resultado de una
expresin de lgebra relacional, nos permite referirnos a una relacin por ms
de un nombre.
Tambin se pueden renombrar los nombres de los atributos, esto puede ser til
en ciertos casos. Para renombrar los atributos de una relacin, bastara con que
incluyamos una lista con los nuevos nombres de atributos entre parntesis,
como en el siguiente ejemplo:

Formato:

Administracin
DNI

Nombre

Apellido

Edificio

33446677

Jos Domingo

Ramos Ortigoza

marina

65544333

Eduardo

Cetina Pinto

49H

44783763

Rita

Aguilar Prisciliano

16T

Produccin (Administracin)
Produccin
DNI

nombre

Apellido

Edificio

33446677

Jesus

De la cruz

marina

65544333

Eduardo

Gonzlez

49H

44783763

Angel

Sanchez

16T

Ramos Ortigoza Jos Domingo

Ahora pasaremos realizar en MySql.

Ramos Ortigoza Jos Domingo

Producto cruzado
Es una operacin que consiste en la concatenacin de cada una de las filas de
la relacion R con cada una de las filas de la relacion S.
Produce el conjunto de todas las tuplas t tales que t es el encadenamiento de
una tupla a perteneciente a A y de una b que pertenece a B. se utiliza el
smbolo X para representar el producto.

D
E

Formato: A X B
Ingenieros

Num_control

Nombre

D#

245325

Jos Domingo

D1

245342

Carlos Javier

D4

X
Proyectos
Proyecto

Tiempo

Software para la medicina

22

Nuevos leguajes java

34

Ramos Ortigoza Jos Domingo

Se tiene que hacer la concatenacin entre las tablas y la tabla quedara as.

Num_control nombre
Jos Domingo
245325

D#

Proyecto

Tiempo

D1

Software para la medicina

22

245325

Jos Domingo

D1

Software para la medicina

22

245342

Carlos Javier

D4

Nuevos leguajes java

34

245342

Carlos Javier

D4

Nuevos leguajes java

34

Este es el resultado de la concatenacin de la dos tablas.


Ms que nada es multiplicar tupla por tupla y asi se da la nueva relacion con
todas las tuplas multiplicada.

MYSQL
Ahora pasaremos hacerlo en mysql y lo podemos apreciar en la imagen.

Ramos Ortigoza Jos Domingo

Como tenemos 12 registros en cada tabla se forman 144 Registros, ya que


12x12=144

Ramos Ortigoza Jos Domingo

Join o Reunin
Este operador se utiliza cuando se tiene la necesidad de unir relaciones
vinculando slo las tuplas que coinciden de alguna manera. Natural Join une
slo los pares de tuplas de R y S que sean comunes. Ms precisamente una
tupla r de R y una tupla s de S se emparejan correctamente si y slo si r y s
coinciden en cada uno de los valores de los atributos comunes, el resultado de
la vinculacin es una tupla, llamada joined tuple. Entonces, al realizar
NaturalJoin se obtiene una relacin con los atributos de ambas relaciones y se
obtiene combinando las tuplas de ambas relaciones que tengan el mismo valor
en los atributos comunes.
Formato: RS.
Mtodo:
Se realiza el producto cartesiano RS.
Se seleccionan aquellas filas del producto cartesiano para las que los atributos
comunes tengan el mismo valor.
Se elimina del resultado una ocurrencia (columna) de cada uno de los atributos
comunes.
Ahora pasaremos a ver como se utiliza en las tablas.
Bueno como primer paso hay que hacer el producto cartesiano.

Ingenieros

Num_control

Nombre

D#

245325

Jose Domingo

55

245342

Carlos Javier

44

Proyectos
D#

proyecto

55

Software para la medicina

54

Nuevos lenguajes de java

Ramos Ortigoza Jos Domingo

Aqu tenemos el resultado del producto cartesiano


Num_control

Nombre

D#

D#

245325

Jos Domingo

55

55

245325

Jos Domingo

55

54

245342

Carlos Javier

44

55

245342

Carlos Javier

44

54

proyecto
Software para la
medicina
Nuevos lenguajes de
java
Software para la
medicina
Nuevos lenguajes de
java

Ahora sacaremos las tuplas que se repiten en la clave fornea y primaria


Num_control

Nombre

D#

D#

245325

Jos Domingo

55

55

proyecto
Software para la
medicina

Ahora pasaremos a eliminar una columna repetida y eliminare D#


para que pueda salir el Join.
Ingenieros RS proyectos
Num_control
245325

Nombre
Jos Domingo

D#

proyecto

55

Software para la medicina

As quedara el Join

Ramos Ortigoza Jos Domingo

LEFT OUTER JOIN

LEFT OUTER JOIN: Los datos de la tabla de la izquierda (LEFT) se muestran


s o s. Los de la tabla de la derecha se muestran solamente si se los pudo
emparejar, en caso contrario se muestra NULL
FORMATO ]X

Ingenieros X proyectos
Num_control
245325
245342
245345
254465

Nombre
EDUARDO
CARLOS
ANGEL
EDUARDO

D#
2
3
4
5

D#

proyecto

Software para la medicina

Nuevos lenguajes de java

nuevo lenguaje Visual basic

Concatenamos la tabla ingenieros X


proyectos.
Num_control
245325
245325
245325
245342
245342
245342
245345
245345
245345
254465
254465

Nombre
EDUARDO
EDUARDO
EDUARDO
CARLOS
CARLOS
CARLOS
ANGEL
ANGEL
ANGEL
EDUARDO
EDUARDO

D#
2
2
2
3
3
3
4
4
4
5
5

D#
4
3
5
4
3
5
4
3
5
4
3

proyecto
Software para la medicina
Nuevos lenguajes de java
nuevo lenguaje Visual basic
Software para la medicina
Nuevos lenguajes de java
nuevo lenguaje Visual basic
Software para la medicina
Nuevos lenguajes de java
nuevo lenguaje Visual basic
Software para la medicina
Nuevos lenguajes de java

254465

EDUARDO

nuevo lenguaje Visual basic

Ahora pasamos a sacar las tuplas que se repiten en la clave fornea de


ingenieros y clave primeria de proyectos como ya est concatenada se quedan
juntas las tablas
Num_control
245342
245345

Nombre
CARLOS
ANGEL

D#
3
4

D#
3
4

254465

EDUARDO

proyecto
Nuevos lenguajes de java
Software para la medicina
nuevo lenguaje Visual
basic

Ramos Ortigoza Jos Domingo

Esta es la tabla donde se sacaron las tuplas que se repetan en la llave fornea
y primaria.
Num_control

Nombre

D#

proyecto

245342

CARLOS

Nuevos lenguajes de java

245345

ANGEL

Software para la medicina

254465

EDUARDO

nuevo lenguaje Visual basic

Ahora pasaremos a utilizar el LEFT OUTER JOIN.


Aqu se muestra null porque no se pudo emparejar.
Num_control

Nombre

D#

proyecto

245325
245342
245345
254465

EDUARDO
CARLOS
ANGEL
EDUARDO

2
3
4
5

null
Nuevos lenguajes de java
Software para la medicina
nuevo lenguaje Visual basic

Ramos Ortigoza Jos Domingo

RIGHT OUTER JOIN


Esta operacin es prcticamente lo mismo que el LEFT JOIN, solo que los
datos de la tabla de la derecha (RIGHT) se muestran s o s. Los de la tabla de
la izquierda se muestran solamente si se los pudo emparejar, en caso contrario
se muestra NULL.

Formato:

Ejemplo:
ID

Nombre

Cod_Oficina

ciudad

oficina

106

Luis Antonio

11

Valencia

11

109

Mara Sunta

11

Valencia

11

101

Antonio Viguer

12

Alicante

12

103

Juan Rovira

12

Alicante

12

104

Jos Gonzlez

12

Alicante

12

105

Vicente Pantalla

13

Castelln

13

102

Alvaro Jaumes

21

Badajoz

21

108

Ana Bustamante

21

Badajoz

21

107

Jorge Gutirrez

22

A Corua

22

NULL

NULL

NULL

Madrid

23

NULL

NULL

NULL

Aranjuez

24

NULL

NULL

NULL

Pamplona

26

NULL

NULL

NULL

Valencia

28

Como vemos en la tabla los valores que no se pudo emparejar se dejan en null
esta es una tabla que ya est hecho en producto cruzado y se puso en join.

Ramos Ortigoza Jos Domingo

Ahora pasaremos hacerlo en mysql con la misma lgica que el RIGHT OUTER
JOIN

Ramos Ortigoza Jos Domingo

FULL OUTER JOIN


FULL OUTER JOIN: Se muestran todas las filas de cada tabla, poniendo NULL
cuando no se puede emparejar.

Formato:

Primero hay que hacer el producto cruzado, ya una vez tiendo el join que salio
del producto cruzado podemos hacer esta operacin.
numemp

101
102
103
104
105
106
107
108
109
110
NULL
NULL
NULL
NULL

Nombre

Antonio Viguer
Alvaro Jaumes
Juan Rovira
Jos Gonzlez
Vicente Pantalla
Luis Antonio
Jorge Gutirrez
Ana Bustamante
Mara Sunta
Juan Victor
NULL
NULL
NULL
NULL

Oficina_Cod

12
21
12
12
13
11
22
21
11
NULL
NULL
NULL
NULL
NULL

ciudad

Alicante
Badajoz
Alicante
Alicante
Castelln
Valencia
A Corua
Badajoz
Valencia
NULL
Madrid
Aranjuez
Pamplona
Valencia

oficina

12
21
12
12
13
11
22
21
11
NULL
23
24
26
28

Aparecen tanto los empleados sin oficina como las oficinas sin empleados.

Ramos Ortigoza Jos Domingo

Operaciones de Agregacin y de Agrupamiento


Aplica la lista de funciones de agregacin, AL, a la relacin R para definir una
relacin sobre la lista de agregacin (AL contiene una o ms parejas
<funcin_agregacin>, <atributo>)
COUNT, SUM, AVG, MIN, MAX
SUM
Ahora mostraremos el ejemplo de SUM en el lgebra relacional
Formato: GSUM(C)

(R)

Ahora pasaremos a mostrar el ejemplo para poder utilizarlo.


Nombre
Jos Domingo
Rita
Miguel ngel

apellido
Ramos Ortigoza
Aguilar Prisciliano
Correa Martinez

edad
23
22
20

Ahora utilizaremos el operador


Gsum EDAD (ALUMNOS)
Y lo que ara este operador es sumar todos los numero que hay en ese campo
llamado edad.
SUM(edad)
65
Como vemos me dio la suma de todos los numero de la columna edad
Ahora pasaremos hacerlo en mysql y sera la misma logica que el alegebra
relacional pero aqu utilizaremos el select y podemos apreciar la operacin en
la imagen.

Ramos Ortigoza Jos Domingo

MAX
Ahora pasaremos a utilizar el operador Max.
Lo que ara este operador de asignacin ser que me dar el mximo nmero
de la columna que yo especifique siempre y cuando sean nmeros la columna
que queremos utilizar.
Formato:max(C)
Nombre
Jos Domingo
Rita
Miguel ngel

apellido
Ramos Ortigoza
Aguilar Prisciliano
Correa Martinez

edad
23
22
20

MAX EDAD (ALUMNOS)


MAX(edad)
23
Como vemos me dio el mximo nmero de la columna edad
MYSQL
Ahora pasaremos hacerlo en mysql y ser la misma lgica que en el lgebra
relacional solo que aqu ser en mysql y con el select.

Como vemos nos dio el mximo nmero de la columna Capacidad.

Ramos Ortigoza Jos Domingo

MIN
Ahora pasaremos a utilizar la operacin min.
Lo que ara este operador de asignacin ser que me dar el mnimo nmero
de la columna que yo especifique siempre y cuando sean nmeros la columna
que queremos utilizar.

Formato: min(C)
Nombre
Jos Domingo
Rita
Miguel ngel

(R)
apellido
Ramos Ortigoza
Aguilar Prisciliano
Correa Martnez

edad
23
22
20

GMIN EDAD (ALUMNOS)

MIN(edad)
20
MYSQL
Ahora pasaremos a verlo en mysql y para eso utilizare mi tabla Area,
utilizaremos la misma lgica del operador min y como sabemos me dar el
mnimo nmero.
Lo podemos apreciar en la tabla.

Como vemos me dio el mnimo numero de mi campo Capacidad.

Ramos Ortigoza Jos Domingo

AVG
Este operador nos sirve para poder sacar el promedio de los nmeros que
tengamos en nuestra columna.
Nombre
Jos Domingo
Rita
Miguel ngel

Formato: GAVG(C)

apellido
Ramos Ortigoza
Aguilar Prisciliano
Correa Martnez

edad
23
22
20

(R)

En este caso utilizaremos la columna edad y nos tendr que mostrar el


promedio de la columna edad.
Avg(edad)
21.6666
MYSQL
Ahora pasaremos hacerlo en mysql y lo haremos con la misma lgica del
algebra relacional, utilizaremos la sentencia select.

Ramos Ortigoza Jos Domingo

Count
Ahora pasaremos a utilizar el count este operador tiene como funcin contar las
tuplas que tenemos en nuestra tabla.
Formato: Gcount(C)

Nombre
Jos Domingo
Rita
Miguel ngel

(R)

apellido
Ramos Ortigoza
Aguilar Prisciliano
Correa Martnez

edad
23
22
20

Count(edad)
3

Como vemos me mostro el nmero de tuplas que tiene mi tabla.


MYSQl
Ahora lo haremos en mysql y ser la misma lgica del algebra relacional, y lo
aremos con el select.

Ramos Ortigoza Jos Domingo

Creacin e Implementacin del proyecto


1. Crearemos nuestra base de datos con el comando create database
NOMBREy una vez creada usaremos el comando de Use Nombre para
activar y trabajar sobre esa base de datos, seguidamente crearemos las
tablas correspondientes Gym, Personal, Clientes, rea y Maquinas y
aplicaremos las llaves forneas al ser nuestra cardinalidad N:M,
crearemos 2 tablas nuevas(GCP y CAM)

Ramos Ortigoza Jos Domingo

2. Ahora vamos a visualizar la estructura de nuestras tablas que creamos


con el comando describe NOMBRE

Ramos Ortigoza Jos Domingo

3. Ahora introduciremos 10 registros en cada uno de nuestras tablas con el


comando insert into NOM_TABLA values(DATO1, DATO2); primero con
la tabla Gym y asi sucesivamente.

Personal

Ramos Ortigoza Jos Domingo

Clientes

rea

Ramos Ortigoza Jos Domingo

Maquinas

Ahora las llaves forneas ingresaremos los datos de la misma manera con
respecto a las llaves primarias de cada tabla.
GCP

Ramos Ortigoza Jos Domingo

CAM

4. Ahora verificaremos que se han ingresado todos los registros


correctamente con el comando select * from clientes de todas nuestras
tablas creadas
GYM

Clientes

Ramos Ortigoza Jos Domingo

Personal

Maquinas

rea

Ramos Ortigoza Jos Domingo

Tablas resultantes de llaves Forneas


GCP

CAM

Ramos Ortigoza Jos Domingo

5. Ahora crearemos 3 usuarios, el primero administrador con todos los


privilegios, el segundo solo podr utilizar comandos del DML, y el tercero
nicamente podr realizar consultas de registros en una tabla, usaremos
el
comando
grant
PRIVILEGO
on
BD.COLUMNA
to
USUARIO@localhost identified by "CONTRASEA"; para crear nuestros
usuarios

6. Ahora entraremos a cada uno de los usuarios a hacer una prueba de cada
uno de ellos, entrando a hacer consultas, modificaciones, insertar,etc.
Usuario1

Ramos Ortigoza Jos Domingo

Ramos Ortigoza Jos Domingo

Usuario2

Ramos Ortigoza Jos Domingo

Usuario3

Ramos Ortigoza Jos Domingo

Conclusin
Como conclusin este proyecto sirvi de repaso para todo lo que vimos en la
materia y sirvi de prctica para lo que veremos en otras materias.
Y nos da el conocimiento para poder llevar a cabo o crear una base de datos
desde 0 y aprender a hacer una base de datos usando la consola de Windows,
al igual que aprendimos a hacer ciertos tipos de operaciones, al igual de como
enlazar nuestras tablas usando las llaves.

Tambin se obtuvo conocimientos acerca de las bases de datos, como tambin


Algebra relacional, que tiene operadores como SUM, MAX, MIN, COUNT, AVG.
Al igual sobre los operadores de asignacin =, <, >, =<, =>, <>.

Ramos Ortigoza Jos Domingo

Bibliografa
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html
http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-dedatos/bases-de-datos/P06_M2109_02148.pdf
http://algebrarelacional.awardspace.com/Algebra%20Relacional.htm
es.wikipedia.org/wiki/Primera_forma_normal
http://ict.udlap.mx/people/carlos/is341/bases03.html
http://unefabasededatos2009.blogspot.mx/2009/04/conceptos-basicosmodelo-relacional.html
http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n

Ramos Ortigoza Jos Domingo

También podría gustarte