4. SIIFIP
Empresa 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.
*Entidades
Empleado(nombre,RFC,Dpto,IdEmp,sueldo)
Departamento(nombre,CveDpto,jefeDpto,proyecto)
Proyecto(nombre,CveProy,presupuesto,duracion,N°participantes)
*Relaciones
Empleado-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
4
5. Diagrama CveProy
Inicial
Proyecto
N:M R2
IDEmpleado
Depto R1 Empleado
N:1
R3 1:1
CveDpto
__________________________________________________________________________________
Diagrama Final
CveProy CveProy
IDEmpleado
Proyecto R2 Presupuesto
1:N
R3 N:1
Depto R1 Empleado
1:N
R4 1:1
IDEmpleado
CveDpto
LiderProy CveProy
Ir a Indice IDEmpleado
5
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'
6
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
7
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'
8
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.CveDep
to
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'
9
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
10
12. Unive id P d ó ic Nac nal (UP
rs ad e ag g a io N)
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 Docente
Boleta 1 N
M 1
N:M
Ir a Indice
12
13. Diagrama Inicial
Matricula
NoCurso
Facultad R1 Alumno R3 Curso
N:M
1:N
CveFacultad
R2 N:M
Docente
RFC
________________________________________________________________________________
Diagrama Final
Matricula
NoCurso
Alumno R2 Boleta R4 Curso
1:N N:1
R1 R3 N:1
N:1
Facultad Docente
RFC
CveFacultad
Ir a Indice
13
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'
14
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=""
15
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"
16
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
17
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
18
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 Distribuidor
1 N 1 N
M 1 M 1
Entidades resultantes:
Registro
Ir a Indice
20
21. Diagrama
Inicial
Cliente R1 Lápiz R2 Distribuidor
N:M N:M
Diagrama Final
Cliente R1 Registro R2 Distribuidor
1:N N:1
R3 N:1
Lápiz
Ir a Indice
21
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
22
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
23
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`
24
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
25
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
26
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
27