Sunteți pe pagina 1din 10

Instituto Politcnico Nacional

Escuela Superior de Cmputo

Prctica 1

Materia: Bases de Datos

Profesor: Ortz Ramrez Jos Antonio

Autor: AbaroaCorchadoAlvaroOmar
CastilloSandovalEstefanyGuadalupe
HernndezNavarroJuanaMonserrat

Grupo: 2CV6

Fecha de entrega: 1/Junio/2015

1
PRCTICA1

Crearunabasededatosquecontengalainformacindefabricantesysusrespectivos
productosparaposteriormentehacerconsultassobrestos.

Lainformacinquesetieneeslasiguiente:

1.CrearunModeloEntidadRelacinquerepresenteelescenarioexpuesto.

2.ConvertirloalModeloRelacional

2
3.NormalizarelModeloRelacionalpropuesto,hastalaFNBC

Seencuentraenprimeraformanormal(1fn)yaquenocontieneningnatributo
contieneatributosmultivaluados
Estemodeloseencuentraensegundaformanormalporqueyaseencuentraen
primeraformanormalyexisteunadependenciaparcial
Estenterceraformanormalporqueyaseencuentraenunasegundaforma
normalynoexistetransitividadentrealgnatributonoprimoylallaveprimaria
Noexistenllavescompuestas.

4.ImplementarelModeloRelacionalnormalizadoenMySQL

a. INSTRUCCIONESSQLDELACREACINDELABASEDEDATOS

SHOWDATABASES
CREATEDATABASE`Practica1`
SHOWDATABASES
USE`practica1`
CREATETABLE`practica1`.`Producto`(`idProdcuto`VARCHAR(10)NOTNULL,
`nombreProducto`VARCHAR(100),PRIMARYKEY(`idProdcuto`))ENGINE=INNODB
CHARSET=utf8
SHOWFULLTABLESFROM`practica1`WHEREtable_type='BASETABLE'
CREATETABLE`practica1`.`Fabricante`(`nombreFabricante`VARCHAR(50)NOTNULL,
PRIMARYKEY(`nombreFabricante`))ENGINE=INNODBCHARSET=utf8
SHOWFULLTABLESFROM`practica1`WHEREtable_type='BASETABLE'
CREATETABLE`practica1`.`Almacn`(`idProducto`VARCHAR(10),`nombreFabricante`
VARCHAR(50),`precio`DOUBLE)ENGINE=INNODBCHARSET=utf8
SHOWFULLTABLESFROM`practica1`WHEREtable_type='BASETABLE'
ALTERTABLE`practica1`.`Producto`DROPPRIMARYKEY,ADDPRIMARYKEY
(`idProdcuto`(10)),ADDINDEX`NewIndex1`(`idProdcuto`)
ALTERTABLE`practica1`.`Fabricante`DROPPRIMARYKEY,ADDPRIMARYKEY
(`nombreFabricante`(50)),ADDINDEX`NewIndex2`(`nombreFabricante`(50))
ALTERTABLE`practica1`.`Almacn`ADDINDEX`NewIndex1`(`idProducto`(10)),ADD
INDEX`NewIndex2`(`nombreFabricante`(50))
ALTERTABLE`practica1`.`Almacn`ADDCONSTRAINT`FK_Producto`FOREIGNKEY
(`idProducto`)REFERENCES`practica1`.`producto`(`idProdcuto`)ONUPDATE
CASCADEONDELETECASCADE,ADDCONSTRAINT`FK_Fabricante`FOREIGNKEY
(`nombreFabricante`)REFERENCES`practica1`.`fabricante`(`nombreFabricante`)ON
UPDATECASCADEONDELETECASCADE
SELECT*FROM`practica1`.`almacn`LIMIT0,1000
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('1',
'MemoriaRam')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('2',
'MemoriaUSB')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('3',
'DVDROM')

3
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('4',
'CDROM')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('5',
'Teclado')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('6',
'Mouse')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('7',
'TarjetadeRed')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('8,'Disco
durode640GB')
INSERTINTO`practica1`.`producto`(`idProdcuto`,`nombreProducto`)VALUES('9',
'Discoduroexterno250GB')
SELECT*FROM`practica1`.`fabricante`LIMIT0,1000
SHOWCREATETABLE`practica1`.`fabricante`
INSERTINTO`practica1`.`fabricante`(`nombreFabricante`)VALUES('Kingston')
INSERTINTO`practica1`.`fabricante`(`nombreFabricante`)VALUES('AData')
INSERTINTO`practica1`.`fabricante`(`nombreFabricante`)VALUES('Logitech')
INSERTINTO`practica1`.`fabricante`(`nombreFabricante`)VALUES('Lexar')
INSERTINTO`practica1`.`fabricante`(`nombreFabricante`)VALUES('Seagate')
SELECT*FROM`practica1`.`almacn`LIMIT0,1000
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`WHERE
`practica1`.`fabricante`.`nombreFabricante`='Kingston'LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('1','Kingston','290.00')
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('2','Kingston','280.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('3','AData','450.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('4','Kingston','200.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('5','Logitech','100.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('6','Logitech','80.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25

4
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('7','Logitech','180.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('2','Lexar','140.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('8','Seagate','500.00')
SELECT*FROM`practica1`.`producto`LIMIT0,25
SELECT*FROM`practica1`.`fabricante`LIMIT0,25
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)VALUES
('9','Seagate','650.00')

b. CAPTURASDEPANTALLADELRESULTADO

5
5.Responderalassiguientesconsultas:

a)Obtenertodoslosdatosdelosproductosdelatiendaordenados
descendentemente

>>SELECTproducto.nombreProducto,almacn.precio,
almacn.nombreFabricante
FROMproducto,almacn
WHEREalmacn.idProducto=producto.idProducto
ORDERBYalmacn.precioDESC




b)Obtenerlosnombres,sinrepeticiones,delosproductosdelatienda

>>SELECTproducto.nombreProducto
FROMproducto,almacn
WHEREalmacn.idProducto
GROUPBYproducto.nombreProducto

6
c)ObtenertodoslosproductosdeSeagate

>>SELECTproducto.nombreProducto,almacn.nombreFabricante
FROMalmacn,producto
WHEREalmacn.nombreFabricante="Seagate"
ANDalmacn.idProducto=producto.idProducto

d)ObtenertodalainformacindelasMemorias

>>SELECTproducto.nombreProducto,almacn.nombreFabricante,
almacn.precio
FROMalmacn,producto
WHEREproducto.nombreProductoLIKE"Memoria%"
ANDproducto.idProducto=almacn.idProducto



e)Obtenertodoslosproductoscuyoprecioseamenorque$290.00

>>SELECTproducto.nombreProducto,almacn.precio,
almacn.nombreFabricante
FROMproducto,almacn
WHEREalmacn.idProducto=producto.idProductoANDalmacn.precio<'290'
ORDERBYalmacn.precioDESC

7
f)Obtenertodoslosproductoscuyoprecioestentre$200.00y$500.00

>>SELECTproducto.nombreProducto,almacn.precio,
almacn.nombreFabricante
FROMproducto,almacn
WHEREalmacn.idProducto=producto.idProducto
ANDalmacn.precio>'250'ANDalmacn.precio<'500'
ORDERBYalmacn.precioDESC
LIMIT0,1000


g)Obtenerelpromediodepreciosdetodoslosproductos

>>SELECTAVG(precio)FROMalmacn


h)Obtenerunlistadocompletodefabricantesyproductosmsuna
columnadondeestnlospreciosconundescuentodel20%

>>SELECTCONCAT(producto.nombreProducto,'',almacn.nombreFabricante)
"Productoyfabricante",(almacn.precio(almacn.precio*.2))"Preciocon20%de
descuento"
FROMproducto,almacn
WHEREalmacn.idProducto=producto.idProducto
ORDERBYalmacn.precioDESC
LIMIT0,1000


8
i)Agregarelsiguienteproducto:(BocinasLogitecha$750.00)

>>INSERTINTO`practica1`.`producto`(`idProducto`,`nombreProducto`)VALUES(
'10','Bocinas')
INSERTINTO`practica1`.`almacn`(`idProducto`,`nombreFabricante`,`precio`)
VALUES('10','Logitech','750')




j)CambiarelnombreypreciodelproductoDVDROMaBluRayconun
preciode$800.00

>>SELECTCOUNT(*)FROM`almacn`WHERE`idProducto`='3'AND
`nombreFabricante`='AData'AND`precio`='450'
UPDATE`practica1`.`almacn`SET`precio`='800'WHERE`idProducto`='3'AND
`nombreFabricante`='AData'AND`precio`='450'
UPDATE`practica1`.`producto`SET`nombreProducto`='BluRay'WHERE
`idProducto`='3'

9



k)Aplicarundescuentopermanentede$15.00atodoslosproductos
conpreciomayoroiguala$450.00

>>UPDATE`practica1`.`almacn`SET`precio`=`precio`15
WHERE`precio`>='450'

l)EliminarelfabricanteLexarconsusrespectivosproductos

>>DELETEFROM`practica1`.`fabricante`WHERE`nombreFabricante`='Lexar'
SHOWFULLFIELDSFROM`practica1`.`almacn`
SHOWKEYSFROM`practica1`.`almacn`
SELECT*FROM`practica1`.`almacn`LIMIT0,100

10