qwertyuiopasdfghjklzxcvbnmqwer
tyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopasd
fghjklzxcvbnmqwertyuiopasdfghjkl
zxcvbnmqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzxcvbnm
qwertyuiopasdfghjklzxcvbnmqwer
tyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopasd
fghjklzxcvbnmqwertyuiopasdfghjkl
zxcvbnmqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzxcvbnm
qwertyuiopasdfghjklzxcvbnmqwer
tyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopasd
fghjklzxcvbnmrtyuiopasdfghjklzxcv
Bases de Datos
Navicat, Visio
10 Junio 2011
Ana Karen Aguilar Patiño Elizabeth Ofelia Arriaga Cantor
2
Índice
SIFIIP
Planteamiento
Diagramas
Consultas
UPN
Planteamiento
Diagramas
Consultas
PINTA, LÁPICES
Planteamiento
Diagramas
Consultas
3
4
SIIFIPEmpresa dedicada a diseñar y desarrollar proyectos.
Cuenta con distintos departamentos (diseño, desarrollo, ingeniería de procesos, recursos humanos, recursos financieros…)
De los empleados cada uno tiene un sueldo. Cada empleado pertenece a un departamento en el que hay un jefe de departamento.
Los proyectos son vendidos haciendo un presupuesto del costo total tomando en cuenta a toda la gente que interviene en el proyecto y todos los demás requerimientos necesarios en su elaboración. En cada proyecto pueden participar varios empleados, hay un departamento encargado de cada proyecto, un líder que puede ser de cualquier depto.
Cada empleado y/o cada departamento pueden trabajar en varios proyectos a la vez.
*EntidadesEmpleado(nombre,RFC,Dpto,IdEmp,sueldo)Departamento(nombre,CveDpto,jefeDpto,proyecto)Proyecto(nombre,CveProy,presupuesto,duracion,N°participantes)
*RelacionesEmpleado-Proyecto Empleado-Empleado Empleado-Departamento
1 N 1 1 1 1 M 1 1 1 N 1
N:M 1:1 N:1
*Entidades resultantes
Presupuesto, LiderProy
Ir a Indice
5
Empleado
Proyecto
Depto R1
R3
R2
CveDpto
IDEmpleado
CveProyDiagrama
Inicial
N:11:1
N:M
__________________________________________________________________________________
Ir a Indice
Empleado
Presupuesto
LiderProy
R4
CveProy
IDEmpleado
R2Proyecto
Depto R1
R3
CveDptoIDEmpleado
IDEmpleado
CveProyCveProy
Diagrama Final
1:N
N:1
1:N1:1
6
CONCULTAS MySQL
“SIFIIP”
1. Obtener los nombres de los empleados que
participan en proyectos.
SELECT NomEmp
FROM Empleado, presupuesto, proyecto
WHERE empleado.IdEmp=presupuesto.IdEmp
AND presupuesto.Cveproy=proyecto.CveProy
2. Obtener los nombres de departamentos que participan en proyectos.
SELECT DISTINCT NomDepto
FROM departamento,empleado,presupuesto
WHERE departamento.CveDepto=empleado.CveDepto
AND empleado.IdEmp=presupuesto.IdEmp
3. Obtener el nombre de los empleados que pertenecen al departamento de
Desarrollo.
SELECT NomEmp
FROM empleado,departamento
WHERE empleado.CveDepto=departamento.CveDepto
AND departamento.NomDepto='Desarrollo'
7
4. Obtener Que nombre de empleados participa en el proyecto Záda.
SELECT NomEmp
FROM empleado,presupuesto,proyecto
WHERE empleado.IdEmp=presupuesto.IdEmp
AND presupuesto.Cveproy=proyecto.CveProy
AND proyecto.`Nombre del Proyecto`='Záda'
5. Sumar la cantidad de participantes que pertenecen al proyecto PS035
SELECT AVG (CantPart)
FROM presupuesto
WHERE presupuesto.Cveproy='PS035'
6. Obtener nombre del proyecto donde participa
Lopez Bravo José Carlos
SELECT `Nombre del Proyecto`
FROM proyecto,presupuesto,empleado
WHERE proyecto.CveProy=presupuesto.Cveproy
AND presupuesto.IdEmp=empleado.IdEmp
AND empleado.NomEmp='Lopez Bravo José Carlos'
7. Obtener los nombres de los departamentos que participan en el proyecto PS339 y PS555
SELECT DISTINCT NomDepto
FROM departamento,proyecto,presupuesto,empleado
WHERE empleado.IdEmp = presupuesto.IdEmp
AND departamento.CveDepto = empleado.CveDepto
AND presupuesto.Cveproy=proyecto.CveProy="PS339"
AND presupuesto.Cveproy=proyecto.CveProy="PS555"
8. Ordenar de mayor menor los gastos de presupuesto
SELECT DISTINCT Presup
FROM presupuesto
ORDER BY presup DESC
8
9. Ordenar en orden alfabético el nombre de los empleados.
SELECT NomEmp
FROM empleado
ORDER BY NomEmp
10. Obtener el nombre de proyecto que tiene el
mayor presupuesto.
SELECT proyecto.`Nombre del Proyecto`,MAX(presup)
FROM proyecto, presupuesto
WHERE proyecto.CveProy=presupuesto.Cveproy
11. Obtener los nombres de los empleados de aquel que tiene el apellido G
SELECT DISTINCT NomEmp
FROM empleado
WHERE empleado.NomEmp REGEXP BINARY 'G'
12. Obtener los nombres de los empleados que se apellidan Gonzalez
SELECT NomEmp
FROM empleado
WHERE empleado.NomEmp
REGEXP BINARY 'Gonzalez'
9
13. Obtener los nombres de los empleados y nombres del departamento, agrupados por departamento.
SELECT NomEmp, NomDepto
FROM empleado,departamento
WHERE empleado.CveDepto=departamento.CveDepto
ORDER BY NomDepto
14. Seleccionar la clave de los proyectos que se les asigno un presupuesto de 40000
SELECT DISTINCT proyecto.CveProy, presupuesto.Presup
FROM proyecto,presupuesto
WHERE proyecto.CveProy=presupuesto.Cveproy
AND presupuesto.Presup= '40000'
15. Obtener que clave de proyecto se asigno en el 2008
SELECT CveProy
FROM proyecto
WHERE proyecto.`Fecha.Inicio` REGEXP BINARY'2008'
16. Obtener los nombres de los empleados que participan en proyectos, y el nombre de su proyecto.
SELECT empleado.NomEmp,proyecto.`Nombre del Proyecto`
FROM proyecto,empleado,presupuesto
WHERE empleado.IdEmp=presupuesto.IdEmp
AND presupuesto.Cveproy=proyecto.CveProy
17. Obtener los nombres de los empleados que pertenecen al departamento de 'Ingeniería de software'
SELECT nomEmp
FROM empleado, departamento
WHERE empleado.CveDepto=departamento.CveDepto
AND departamento.NomDepto='Ingeniería de software'
10
18. Obtener los nombres de los empleados y el nombre del proyecto donde participan los ingenieros en sistemas.
SELECT NomEmp,`Nombre del proyecto`
FROM empleado,proyecto,presupuesto
WHERE empleado.IdEmp=presupuesto.IdEmp
AND presupuesto.Cveproy=proyecto.CveProy
AND empleado.Perfil='Tecnico en Informática'
19. Obtener el nombre del empleado que participa en el proyecto PS447
SELECT DISTINCT empleado.NomEmp
FROM empleado,proyecto,presupuesto
WHERE empleado.IdEmp=presupuesto.IdEmp
AND presupuesto.Cveproy=proyecto.Cveproy
REGEXP 'PS447'
20. Obtener los datos de los empleados
SELECT *
FROM empleado
Ir a Indice
11
12
Universidad Pedagógica Nacional (UPN)
La universidad se ha visto en la necesidad de crear una base de datos para ingresar la información requerida de los alumnos, docentes, materias, calificaciones y especialidades que se imparten.
Entidades:Alumno (Matricula, NomAlum,CveFacul,Sem,FechNac,Edad,Tutor)Curso(CveAsig,NomAsig,NoCred)Docente(RFC,NomDoc,Perfil,Institución,AñosDoc)Facultad (CveFac,NomFac)
Relaciones:Alumno Facultad Alumno Curso 1 1 1 N N 1 M 1 N:1 N:M
Entidades resultantes: Alumno DocenteBoleta 1 N
M 1 N:M
Ir a Indice
13
AlumnoFacultad Curso
Docente
Matricula
CveFacultad
RFC
NoCurso
R1 R3
R2
Diagrama Inicial
1:NN:M
N:M
________________________________________________________________________________
Alumno
Facultad
Boleta Curso
Docente
Matricula
CveFacultad
RFC
NoCurso
R1 R3
R2 R4
Diagrama Final
N:1N:1
N:11:N
Ir a Indice
14
CONCULTAS MySQL
“UPN” 1. Seleccionar el nombre del alumno y el
nombre de la especialidad.
SELECT NomAlum, NomFac
FROM alumno,facultad
WHERE alumno.CveFacul=facultad.CveFac
2. Obtener los nombres de los alumnos que pertenecen a la facultad de Diseño.
SELECT NomAlum
FROM alumno,facultad
WHERE alumno.CveFacul=facultad.CveFac
AND facultad.NomFac='Diseño'
3. Obtener los nombres de los docentes que tienen un nivel de preparación de maestría.
SELECT NomDoc
FROM docente
WHERE docente.Perfil='maestria'
4. Obtener el nombre del docente que imparte el curso de redes neuronales.
SELECT NomDoc
FROM docente,boleta,curso
WHERE docente.RFC=boleta.RFC
AND curso.CveAsig=boleta.CveAsig
AND curso.NomAsig='Fisica 1'
15
5. Mostrar el nombre de los alumnos que se apellidan Flores.
SELECT NomAlum
FROM alumno
WHERE alumno.NomAlum REGEXP'Flores'
6. Mostrar nombre y facultad del los alumnos.
select nomalum,cvefacul
from alumno
where alumno.Cvefacul=alumno.Nomalum =""
7. Obtener el nombre d elos docentes qe son Ingenieros .
select nomdoc
from docente
where docente.Perfil="Ingeniero"
8. Obtener el nombre de los alumno qe corresponde a la cvefacul A28.
select nomalum
from alumno
where alumno.Cvefacul="A28"
9. Mostrar el nombre y perfil de cada docente.
select nomdoc,perfil
from docente
where docente.Nomdoc=docente.Perfil=""
16
10. Obtener el nombre de los docentes con el perfil de abogado
select nomdoc
from docente
where docente.Perfil="Abogado"
11. Obtener el nombre del docente perteneciente a la institucion
"ITC"
select nomdoc
from docente
where docente.Institucion="ITC"
12. Mostrar los nombres de los alumnos que cursan el 2° semestre
select nomalum
from alumno
where alumno.Sem="2"
13. Mostrar el nombre del los alumnos correspondientes al 6° semestres
select nomalum
from alumno
where alumno.Sem="6"
14. Mostrar el nombre de la asigantura correspondiente a la clave "BD l"
select nomasig
from asignatura
where asignatura.Cveasig="Bd l"
17
15. Mostrar el nombre de los docentes el cual sus años de servicios son "12"
select nomdoc
from docente
where docente.`Añosdoc`="12"
16. Obtener los datos personales de los alumnos
Select *
From alumno
17. Obtener los datos de las asignaturas
SELECT *
FROM curso
18
18. Obtener los datos personales de los docentes
Select *
From docente
19. Obtener los datos de las facultades o
especialidades
Select *
From Facultad
20. Obtener
SELECT NomFac
FROM facultad,alumno
WHERE alumno.CveFacul=facultad.CveFac
AND alumno.NomAlum='Juan Pérez'
Ir a Indice
19
20
Pinta, Lápices
La empresa fabrica y vende lápices, y en departamento de ventas se ha requerido hacer una base de datos de los productos, clientes y distribuidores del producto para tener un mayor control y organización de los movimientos.
Entidades: Lápiz(CveLápiz,NomLápiz,Color,Grosor,PrecioUnit,Tipo, CantPaquete,Lote)Cliente(NomCliente,Apellido,Domicilio,Tel,CveCliente)Distribuidor(NomDist,Dirección,Tel,CP,NumControl)
Relaciones:Lápiz Cliente Lápiz Distribuidor1 N 1 N M 1 M 1
Entidades resultantes:
Registro
Ir a Indice
21
Cliente DistribuidorLápiz
Diagrama
Inicial
R1 R2
N:M N:M
Cliente Distribuidor
Lápiz
Diagrama Final
R1 R2
1:N N:1
Registro
N:1R3
Ir a Indice
22
CONCULTAS MySQL
“PINTA, Lápices”
1. Obtener los apellidos de los clientes
SELECT Apellidos
FROM clientes
2. Obtener los domicilios y su telefono
SELECT Domicilio,Tel
FROM clientes
3. Obtener los nombres de los clientes
SELECT `Nom Cliente`
FROM clientes
4. Obtener tel teléfono de los clientes
SELECT Tel FROM clientes
5. Obtener toda la tabla de cliente con todos los datos que se están dando
SELECT *
FROM clientes
23
6. Obtener los datos del registro de ventas
SELECT *
FROM registro
7. Obtener el nombre de los distribuidores que surten los
lápices con Clave L002.
SELECT DISTINCT NomDis
FROM registro,`lápiz`,distribuidor
WHERE registro.`Num control`=distribuidor.`Num control`
AND `lápiz`.CveLapiz REGEXP BINARY'L002'
8. Obtener los datos de los clientes
SELECT *
FROM cliente
24
9. Obtener el nombre del cliente y el nombre de
quien le distribuye
SELECT DISTINCT`Nom Cliente`,`Nom Distribuidor`
FROM clientes,distribuidor,registro
WHERE clientes.`Cve Cliente`=registro.CveCliente
AND registro.`Num control`=distribuidor.`Num control`
10. Obtener el nombre del cliente,
apellidos y su domicilio a quien le
distribuye Pinocho
SELECT DISTINCT`Nom Cliente`,Apellidos,Domicilio
FROM clientes,distribuidor,registro
WHERE clientes.`Cve Cliente`=registro.CveCliente
AND registro.`Num control`=distribuidor.`Num control`
AND distribuidor.`Nom Distribuidor`='Pinocho'
11. Obtener el nombre, color, grosor y
precio unitario e los lápices de dibujo.
SELECT DISTINCT
NomLápiz,Color,Grosor,PrecioUnit
FROM `lápiz`
WHERE `lápiz`.`NomLápiz` REGEXP 'Dibujo'
12. Obtener el nombre de los lápices y el lote en el que
se fabrican
SELECT DISTINCT `NomLápiz`,Lote
FROM `lápiz`
13. 0btener el tipo de lápices que fabrica la empresa
SELECT DISTINCT Tipo
FROM `lápiz`
25
14. 0btener el nombre de los lápices que se venden en paquetes de 6.
SELECT DISTINCT `NomLápiz`
FROM `lápiz`
WHERE `lápiz`.CantPaquete='6'
15. 0btener el nombre de los lápices que son de tipo normal
SELECT DISTINCT `NomLápiz`
FROM `lápiz`
WHERE `lápiz`.Tipo='Normal'
16. Obtener los apellidos de los clientes
SELECT Apellidos
FROM clientes
17. Obtener los domicilios y su telefono
SELECT Domicilio,Tel
FROM clientes
18. Obtener los nombres de los clientes
SELECT `Nom Cliente`
FROM clientes
19. Obtener tel teléfono de los clientes
SELECT Tel FROM clientes
26
20. Obtener toda la tabla de cliente con todos los datos que se están dando
SELECT *
FROM clientes
21. Obtener
las lista de dirección de la tabla distribuidor
SELECT Direccion
FROM Distribuidor
22. Obtener el teléfono de los distribuidores
SELECT Telefono
FROM distribuidor
23. Obtener el num de control de los distribuidores
SELECT `Num control`
FROM distribuidor
27
24. Obtener las direcciones y el teléfono de los distribuidores
SELECT Direccion ,Telefono
FROM distribuidor
25. Obtener la tabla de distribuidores.
SELECT Direccion ,Telefono
FROM distribuidor
Ir a Indice