Title | Ejercicios resueltos algebra relacional |
---|---|
Course | Base de datos |
Institution | Universidad Nacional de La Matanza |
Pages | 13 |
File Size | 326.4 KB |
File Type | |
Total Downloads | 49 |
Total Views | 144 |
Download Ejercicios resueltos algebra relacional PDF
CátedradeBasedeDatos
UNLaM
UNIVERSIDADNACIONALDELAMATANZA
DEPARTAMENTODEINGENIERÍA EINVESTIGACIONESTECNOLÓGICAS INGENIERIAENINFORMATICA
BASEDEDATOS
EjerciciosPropuestosyResueltos AlgebraRelacional JefedeCátedra: Ing.OsvaldoSpositto Docentesacargodecurso: Ing.VerónicaIchazo Ing.AlfonsoPalomares Ing.NataliaCrespo Ing.GuillermoGiannotti
Docentesacargodepráctica: Ing.MatíasLópez Ing.JuanCarlosBordachar Ayudantes: Ing.PaulaRevetria FlorenciaFederico Ing.JavierRebagliatti Ing.SebastiánDeuteris
2014
PrácticadeejerciciosresueltosdeAR
1/13
CátedradeBasedeDatos
UNLaM
ALGEBRARELACIONAL
Referencias:ClavePrimaria,ClaveForánea,ClavePrimariayForáneaalmismotiempo
1. Indique cual de las siguientes operaciones se pueden realizar. Si es inválida la operación,indiqueporqué. 1)R←A(ab)B(abc) →nosepuederealizarpor!=dom 2)R←A(ab)∪C(ab) →sisepuederealizar 3)R←A(ab)XB(abc) →sisepuederealizar 4)R←(F(ab)|X|G(abc))M(abc) →sisepuederealizar 2.Indiquesilasiguienteafirmaciónesverdaderaofalsa.Justifiquesurespuesta.
“Dadas dos relaciones R y S con claves primarias Kr y Ks respectivamente. Asumiendo que R y S tienen esquemas compatibles con la unión, la clave primaria para la relación resultante de la operaciónRUSesKr”. Falso. La clave no es Kr, ya que al aplicar la unión, pueden existir tuplas en la relación S que tengan el mismo valor en Ks, con lo cual la nueva clave podría ser todo el esquema resultante de laoperación. 3. ¿Cómo expresaría los operadores de INTERSECCIÓN (∩) y de JUNTA NATURAL (⋈ ⋈) utilizando operadores esenciales, sabiendo que los operadores esenciales ó completos sonaquellosquenosepuedenexpresarcomoderivadosdeotrosoperadores? Recordemosprimeroquelosoperadoresesencialesson: ● Selección(σ) ● Proyección(∏) ● ProductoCartesiano(x) ● Unión(∪) ● Diferencia() INTERSECCIÓN PartimosquetenemoslosconjuntosR(abcd)yS(abcd),conlassiguientestuplas R({a1,b1,c1,d1},{a2,b2,c2,d2},{a3,b3,c3,d3}) S({a1,b1,c1,d1},{a3,b3,c3,d3},{a4,b4,c4,d4}) LaintersecciónR∩Snosquedaría: R∩S=({a1,b1,c1,d1},{a3,b3,c3,d3}) Entonces, tenemos que ver como arribar al mismo resultado con los operadores básicos o esenciales. Si restamos a R todos los elementos de S, obtendremos, aquellos elementos que están en R y no estánenS. PrácticadeejerciciosresueltosdeAR
2/13
CátedradeBasedeDatos
UNLaM
RS=({a2,b2,c2,d2}) Luego, si al resultado anterior se lo restamos a R, obtendremos el mismo resultado que haciendo laintersección.
R(RS)=({a1,b1,c1,d1},{a3,b3,c3,d3}) JUNTANATURAL PartimosdeunahipótesisquedefineunR(abc)yunS(cde),conlassiguientestuplas R({a1,b1,c1},{a2,b2,c1},{a3,b3,c3}) S({c1,d1,e1},{c2,d2,e2},{c5,d5,e5}) La junta natural R ⋈ S nos daría, aquellas tuplas donde el atributo C tenga el mismo valor en ambos conjuntos. Como ocurre con las dos primeras tuplas de R, ambas tienen c1 que se comparteconlaprimertupladeS. R⋈S {a1,b1,c1,d1,e1} ←resultadodela1ertupladeRconla1eradeS {a2,b2,c1,d1,e1} ←resultadodela2datupladeRconla1eradeS Entonces, tenemos que ver como arribar al mismo resultado con los operadores básicos o esenciales. Si hacemos un producto cartesiano entre R y S, obtendríamos una combinación de todas las tuplasdeRcontodaslasdeS R⋈S {a1,b1,c1,c1,d1,e1} {a2,b2,c1,c1,d1,e1} {a3,b3,c3,c1,d1,e1}←Hastaacá,todaslasdeRconla1radeS {a1,b1,c1,c2,d2,e2} {a2,b2,c1,c2,d2,e2} {a3,b3,c3,c2,d2,e2}←Hastaacá,todaslasdeRconla2dadeS {a1,b1,c1,c5,d5,e5} {a2,b2,c1,c5,d5,e5} {a3,b3,c3,c5,d5,e5}←Hastaacá,todaslasdeRconla3radeS Ahora, deberíamos quedarnos con aquellas que cumplen la condición de que la columna que compartencontengaelmismoresultado. σ(R⋈S) {a1,b1,c1,c1,d1,e1} {a2,b2,c1,c1,d1,e1} Solo nos queda eliminar uno de los campos que forman la igualdad, para que el resultado sea igual alproporcionadoporlajunta.
PrácticadeejerciciosresueltosdeAR
3/13
CátedradeBasedeDatos
UNLaM
∏(σ(R⋈S))
{a1,b1,c1,d1,e1} {a2,b2,c1,d1,e1} 4. ¿Qué significa que dos relaciones tienen que ser compatibles? ¿Qué operaciones del ARnecesitancompatibilidadderelaciones?Explique,justifiqueyejemplifique. La compatibilidad de dos relaciones esta dada por la igualdad de grado de las mismas y cuando todos los elementos de la primer relación tienen dominio compatible con el dominio de cada atributodelasegundarelación. Entonces,elGradoes:Lacantidaddeelementosoatributosquetieneunarelación. R(a) ←Grado1 S(ab) ←Grado2 D(abc) ←Grado3 Igualdaddedominioparatodosloselementos teniendoR(ab)yS(ef) tenemosquedefinirsiaRtieneuntipodedatoequivalenteaeSyviceversa.Además, tenemosquedefinirsibRtieneuntipodedatoequivalenteafSyviceversa. Operacionesquenecesitandedosrelacionescompatibles ● Unión ● Intersección ● Restaodiferencia Estetipodecompatibilidadseconocecomo“unióncompatible”,másalládelaoperaciónaaplicar EjemploCorrecto. Auto(patente,color,marca) Moto(patente,color,marca) Auto∩Moto EjemploIncorrecto.Problemaincompatibilidaddegrado Auto(patente,color,marca) Moto(patente,color,marca,kilometraje) Auto ∩ Moto ← Esta operación no se puede realizar, por tener más atributosmotoqueauto. EjemploIncorrecto.Problemaincompatibilidaddedominio Auto(patente,color,marca,modelo)
PrácticadeejerciciosresueltosdeAR
4/13
CátedradeBasedeDatos
UNLaM
Moto(patente,color,marca,kilometraje) Auto ∩ Moto ← Esta operación no se puede realizar, por ser kilometraje deundominionuméricoymodelodeundominiodetexto. 5. Indique si la siguiente afirmación es verdadera o falsa. Justifique su respuesta y ejemplifique “Unaconsultasiempreesaplicadaainstanciasyelresultadogeneraotrainstancia”. Verdadero. Las consultas del Álgebra Relacional se aplican a un conjunto de tuplas y el resultado de aplicar una operación me da un nuevo conjunto de tuplas que corresponde a una nueva instancia. Por esto siempre se recomienda terminar los ejercicios con la operación de asignación ( ← ), para terminardecomprenderqueelresultadoquedaalmacenadoenunlugardeterminado. 6. ¿Cómo resuelve el Álgebra Relacional el conflicto que se produce cuando se busca referenciar a un producto Cartesiano entredos relaciones cuya intersección de esquemas noesvacío?Ejemplifiqueelcaso. La ambigüedad de atributos se resuelve haciendo referencia a las columnas por posición relativa o renombrandolascolumnasambiguas. Porejemplo: Empleado(Leg,NyA,Dom,CodDto)
∏1,2,5,6(σ4=8(EmpleadoxEmpleado)) o
Empleado2(Legajo,Nomb,Domi,Dto)←Empleado ∏Leg,NyA,Legajo,Nomb(σCodDto=Dto(EmpleadoXEmpleado2))
7.DadoslosesquemasR(a(int),b(int),c(char(10)))yS(d(int),e(char(10))): “Indique si es posible obtener el mismo resultado que ∏ b,c (R) ∩ S valiéndose del operador de junta y si fuera necesario del resto de los operadores del Álgebra Relacional (excepto el operador∩)”.Justifiquesurespuesta.
SS(b,c)←S ∏b,c(R)⋈SS La junta se transforma en una intersección cuando ambas relaciones tienen idéntico esquema, ya quetodosloscamposparticipandelacondicióndejunta. 8.DadoelesquemaR(a,b,c): “Indique si es posible obtener el mismo resultado que R X R valiéndose del operador de junta y si PrácticadeejerciciosresueltosdeAR
5/13
CátedradeBasedeDatos
UNLaM
fuera necesario del resto de los operadores del Álgebra Relacional (excepto el operador X). Justifiquesurespuesta. RR(d,e,f)←R R⋈RR La junta se transforma en producto cartesiano cuando no hay campos en común debido a que no haycondicióndejuntaaverificarse.
9.Indiquesilasiguienteafirmaciónesverdaderaofalsa.Justifiquesurespuesta: “UnaconsultaenÁlgebraRelacionalpuededevolvercomoresultadounvalor”
Falso.Siempredevuelvenrelaciones.
10.Teniendoelsiguienteesquema,responda Persona (dni,nombre,apellido) Alumno (dni,legajo) Tema (nro,descripción) Contenido (materia,tema) Cursada (docente,alumno,materia,nro) Docente (dni,sueldo) Materia (cod,nombre) a)Listelosalumnosquecursanmateriasconcontenidosrepetidosenporlomenos3materias.
TemaMat←∏alumno,materia,tema(Cursada⋈Contenido) RTA←∏1(σ1=4=7AND3=6=9AND25AND58AND28(TemaMatxTemaMatxTemaMat) b)ListelosdocentesqueledenclasesatodoslosAlumnosapellidadosPérezyGonzález.
PerezGonza←∏legajo(σapellido=‘Perez’ORapellido=‘Gonzalez’(Persona⋈Alumno)) TODOS←∏dni(Docente)xPerezGonza NOEXISTE←TODOS∏docente,alumno(Cursada) RTA←∏1(Docente)∏1(NOEXISTE) c)Muestrelasmateriasquenotienendefinidouncontenidoyquenotenganalumnosinscriptos
SINCONT←∏1(Materia)∏1(Contenido) SINALUM←∏1(Materia)∏3(Cursada)
RTA←SINCONT∩SINALUM
11.Teniendoelsiguienteesquema,responda Alumno (id,nombre,telefono) Instructor (id,nombre,telefono) PrácticadeejerciciosresueltosdeAR
6/13
CátedradeBasedeDatos
UNLaM
Curso Cursa
(código,nombre,cuota,duración,instructorId) (alumnoID,cursoCodigo)
a.Listelosalumnosquecursaroncontodoslosinstructoresexistentes.
Todos←∏1(Alumno)x∏1(Instructor) Nocumplen←Todos∏alumnoID,instructorID(Cursa⋈Curso)
RTA←∏1(Alumno)∏1(Nocumplen)
b. Liste el nombre del alumno y el del instructor para aquellos alumnos que tuvieron el mismo instructorenalmenos3cursos.
CCI←CursaConInstructor←Cursa⋈∏instructorID,código(Curso) CCI2←CCI CCI3←CCI ALUM_INSTR←∏1,3(σ1=4=7Y3=6=9Y25Y28Y58(CCIxCCI2xCCI3))
RTA←∏4,7(ALUM_INSTR⋈1=3Alumno⋈2=6Instructor) 12.Teniendoelsiguienteesquema,responda ImportadorPor (codigoSilla,codigoImporador) UsadoEn (CódigoSilla,CódigoAula) CompuestoPor (CódigoSilla,CódigoMaterial) a.Listetodaslassillasquesonimportadasportodoslosimportadoresyusadasentodas lasaulas. SILLA←∏codSilla(ImportadorPor)∪∏codSilla(UsadoEn)∪ ∏codSilla(CompuestoPor) IMPORTADOR←∏codigoImporador(ImportadorPor) AULA←∏CódigoAula(UsadoEn) MATERIAL←∏codMaterial(CompuestoPor) sillasimportadasportodoslosimportadores(SITI) SITI←SILLA∏codSilla((SILLAxIMPORTADOR)ImportadorPor) sillasusadasentodaslasaulas(SUTA) SUTA←SILLA∏codSilla((SILLAxAULA)UsadoEn) AHORA QUE TENEMOS ESTOS DOS ÚLTIMOS, HACEMOS LA INTERSECCIÓN PARA SABERQEUESTAENAMBOSGRUPOSYLISTO. PrácticadeejerciciosresueltosdeAR
7/13
CátedradeBasedeDatos
UNLaM
RTA←SITI∩SUTA b.Listetodoslosmaterialesusadosensillasnacionales(esdecir,quenofueron importadas) sillasnacionales(SN) SN←SILLAS∏codSilla(ImportadorPor) TodoslosMaterialesusadosenlassillasnacionales(MSN) MSN←∏codMaterial(σMSN.codSilla=compuestoPor.codSilla(MSNxCompuestoPor)) 13.Teniendoelsiguienteesquema,resolverlasconsultasenÁlgebraRelacional:
Vendedor Cliente Venta DetalleVenta
(legajo,nombre,apellido) (id,nombre,apellido) (nroFactura,idVendedor,idCliente,montoTotal) (nroFactura,codArticulo,cant)
a) Indique los vendedores que hayan realizado ventasa todos los clientes y hayan tenido almenos3ventasdemásde1000pesos. TODOS(idCliente,Idvendedor)←∏id(Cliente)x∏legajo(vendedor) NOCUMPLE(id,legajo)←–TODOS∏idCliente,Idvendedor(Venta) Vendedorquelesvendeatodos(VAT) VAT←∏legajo(Vendedor)∏legajo(NOCUMPLE) V’’(7,8,9)←V’(4,5,6)←V(1,2,3)←∏idVendedor,nroFactura,montoTotal(VENTA) Tienealmenos3ventasdemásdemilpesos V100←∏1(σ1=4=7Y25Y28Y58Y3>100Y6>1000Y9>1000(VxV’xV’’)) RTA←VAT∩V100
b)Indiquelosartículosquehayansidovendidosamásde3clientesysolopor1vendedor. tenemosquejuntarlaventaconeldetalle(VD) VD(1,2,3,4)←∏idCliente,codArticulo,nroFactura,idVendedor(DetalleVenta⋈Venta) VD’(5,6,7,8)←VD VD’’(9,10,11,12)←VD Artículosvendidosamásde3clientes(A3C). A3C←∏VD.2(σ*(VDXVD’XVD’’)) Condición(*) PrácticadeejerciciosresueltosdeAR
8/13
CátedradeBasedeDatos
UNLaM
VD.2=VD’.6=VD’’.10Y VD.1VD’.5YVD.1VD’’.9YVD’.5VD’’.9 Artículoscomercializadosporsólo1vendedor(S1V). M1V←∏VD.2(σVD.2=VD’.6YVD.3VD’.7YVD.4VD’.8(VDXVD’)) S1V←∏codArticulo(DetalleVenta)–M1V Rta←A3C∩S1V 14.DadalasiguienteBD,realicelasconsultasenálgebrarelacional Empleado (Legajo,nombre,apellido,fechaNac,FechaIngreso) TituloPersona (Legajo,IdTitulo,FechaInicio,FechaFin) Titulo (id,descripción) Cliente (id,nombre,IdRubro) Asignacion (legajo,IdCliente,FechaInicio,FechaFin,idRol) Rol (id,Descripción,tarifa) Rubro (id,Descripción)
a. Indique las personas que tienen un título de Contador Público completo que no estén asignadosactualmenteaningúnCliente. CONTADOR←∏legajo(σFechafinaHOY(TituloPersona)) 2oMAS←∏legajo(σA.legajo=A’.legajoYa.idClia’.idCli(AsignacionXAsignacion’)) 3oMas←∏legajo(σ1=6=11Y27y212y712(AsignacionXAsignacion’XAsignacion’’)) 2exactos←2oMas3oMas PrácticadeejerciciosresueltosdeAR
9/13
CátedradeBasedeDatos
UNLaM
RTA←SINTITULO∩2exactos d. Indique para los empleados con mayor antigüedad, sus datos personales y los clientes enlosqueestány/ohansidoasignados. E’(3,4)←E(1,2)←∏legajo,FechaIngreso(Empleado) MAXANT←∏legajo(Empleado)∏1(σ2>4(EXE’) RTA←MAXANT⋈Empleado⋈Asignacion 15.DadalasiguienteBasededatosdeBanco‘XX’:
Cliente Cuenta Sucursal TipoCuenta SaldoCuenta Tarjeta
(codCliente,nombre,apellido,dni,telefono) (nroCuenta, codCliente, codTipoCuenta, fechaCreacion, fechaBaja,codSucursal) (nroSucursal,nombre,calle,nro,localidad,provincia) (codTipoCuenta,desc,limite,costoMensual) (año,mes,nroCuenta,montoAPagar) (nroTarjeta, nroCuenta, tipoTarjeta, codMarca, fechaEmision,fechaVencimiento) (codMarca,desc)
Marca Nota: ● TipoTarjetaesuncaráctercuyosvaloresmeindican: ○ ‘T’=Titular ○ ‘A’=Adicional. ● LascuentasactivassedeterminanverificandoquenotenganvalorenelcampofechaBaja. ● Lastarjetasconfechadevencimientomenoraldiadelafecha,estánvencidas ● “Marca”eslaentidadfinancieraemisoradelplástico;ejemplo:VisaoMasterCard
Realizarlassiguientesconsultas a. Indique los clientescon solo tarjetas titulares no vencidas, que tienen todos los tipos de cuentas(yestánactivas)yalmenosunadeellasesenlasucursal‘RamosMejía’. CTAAD←∏1(σ3=’A’Y6>HOY(TARJETA)) CLIAD←∏codCliente(σfechaBajaISNULL(Cuenta⋈TARJETA)) Clientesinadicionales CLISINAD←∏codCliente(Cliente)CLIAD clientesdeRamosMejia CLIRM←∏codCliente(σnombre=‘RamosMejia’YfechaBajaisNULL(Cuenta⋈SUCURSAL)) Clientescontodoslostiposdecuentas TODOS←∏1(Cliente)X∏1(TipoCuenta) CLITC←∏1(Cliente)∏1(TODOS∏2,3(Cuenta)) PrácticadeejerciciosresueltosdeAR
10/13
CátedradeBasedeDatos
UNLaM
elresultadoestarádadoporlainterseccióndelas3condiciones RTA←CLISINAD∩CLIRM∩CLITC b. Indique los nombres y teléfonos de los clientes con cuentas activas tipo ‘universitario’ más antiguas que en los últimos 2 meses hayan gastado más del 70% de su límite (de esa cuenta).
cuentasuniversitarias CU←∏1,4(σdesc=“Univ”YfechaBajaINNULL(Cuenta⋈TipoCuenta)) Seleccionolasquenosonmásantiguas N←∏1(σ2>4(CU)) Ahorasi,mequedoconlasmásantiguas. CANT←∏1(CU)N Obtengoellímiteparalascuentastipouniversitarias LU←∏LIMITE(σdesc=“Univ”(tipocuenta)) Obtengolosquegastaronmásdel70% 1MES←∏nroCuenta(σaño=YEAR()Ymes=MONTH()1YMontoAPagar>0.7*Limite(SaldoCuentaXLU) 2MES←∏nroCuenta(σaño=YEAR()Ymes=MONTH()2YMontoAPagar>0.7*Limite(SaldoCuentaXLU) Ahora,unificotodoloobtenido RTA←∏2,5(Cliente⋈(CANT∩1MES∩2MES)⋈Cuenta)
c.Indiquelosnombresyteléfonodelosclientesexclusivosdelasucursal‘SanJusto’ Busco los clientes que no tienen cuentas en SJ, para luego hacer la resta. NOSJ←∏nroCuenta(σnombre“SanJusto”(Cuenta⋈Sucursal) RTA←∏nroCuenta(Cuenta)NOSJ d. Indique los clientes con una sola cuenta activa en el momento, que más han gastado el mes pasado (con esa misma cuenta) y hayan tenido con anterioridad, una cuenta tipo ‘premium’. Buscolosclientesconalmenos2cuentasactivas. CLI2←∏nroCuenta(σ17Y2=8Y5ISNULLY11ISNULL(CuentaXCuenta)) CLI1←∏nroCuenta(σ5ISNULL(Cuenta)CLI2 BuscoLosclientesconcuentaspremium CLIP←∏nroCuenta(σdesc=“Premium”(Cuenta⋈tipoCuenta)) PrácticadeejerciciosresueltosdeAR
11/13
CátedradeBasedeDatos
UNLaM
Buscolosquemásgastaronconlacuentaactiva(CLI1) S←∏nroCuenta,montoAPagar(σaño=YEAR()Ymes=MONTH()1(CLI1⋈SaldoCuenta) MASGASTO←∏1(S)∏1(σ13Y2...