Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto final
6to Semestre
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.
MARCO TERICO
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
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.
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
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
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))
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
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.
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)
Nombre
Apellidos
Direccion
12
Jose Domingo
Ramos Ortigoza
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
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
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:
Nombre
Apellidos
Direccion
12
Jose Domingo
Ramos Ortigoza
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
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.
Nombre
12
Jose Domingo
13
Rita
14
Alicia
16
Freddy
17
Andrea
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:
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
Nombre, Apellido(Empleados_Maana)
Nombre, Apellido(Empleados_Tarde)
Nombre
Apellido
Jos Domingo
Ramos Ortigoza
Rita
Aguilar Prisciliano
Angel
Cetina
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:
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.
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
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:
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
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
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
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
22
34
Se tiene que hacer la concatenacin entre las tablas y la tabla quedara as.
Num_control nombre
Jos Domingo
245325
D#
Proyecto
Tiempo
D1
22
245325
Jos Domingo
D1
22
245342
Carlos Javier
D4
34
245342
Carlos Javier
D4
34
MYSQL
Ahora pasaremos hacerlo en mysql y lo podemos apreciar en la imagen.
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
54
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
Nombre
D#
D#
245325
Jos Domingo
55
55
proyecto
Software para la
medicina
Nombre
Jos Domingo
D#
proyecto
55
As quedara el Join
Ingenieros X proyectos
Num_control
245325
245342
245345
254465
Nombre
EDUARDO
CARLOS
ANGEL
EDUARDO
D#
2
3
4
5
D#
proyecto
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
Nombre
CARLOS
ANGEL
D#
3
4
D#
3
4
254465
EDUARDO
proyecto
Nuevos lenguajes de java
Software para la medicina
nuevo lenguaje Visual
basic
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
245345
ANGEL
254465
EDUARDO
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
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.
Ahora pasaremos hacerlo en mysql con la misma lgica que el RIGHT OUTER
JOIN
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.
(R)
apellido
Ramos Ortigoza
Aguilar Prisciliano
Correa Martinez
edad
23
22
20
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
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
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.
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)
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
Personal
Clientes
rea
Maquinas
Ahora las llaves forneas ingresaremos los datos de la misma manera con
respecto a las llaves primarias de cada tabla.
GCP
CAM
Clientes
Personal
Maquinas
rea
CAM
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
Usuario2
Usuario3
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.
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