SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
Ejercicios de álgebra relacional (1)
Tenemos el siguiente esquema relacional de base de datos:

CLIENTES(Nº Cliente, Nombre, Dirección, Teléfono, Población)

PRODUCTO(Cod Producto, Descripción, Precio)

VENTA(Cod Producto, Nº Cliente, Cantidad, Id Venta)

La tabla de clientes almacena información sobre cada posible cliente
de nuestra empresa.

En la tabla de productos almacenamos información sobre cada
producto de la empresa.

La tabla de ventas relaciona a las dos anteriores utilizando el atributo
cod Producto para indicar el producto que se venda, y el atributo Nº
Cliente para indicar el cliente al que vendimos el producto.



Sobre ella se realizan estos ejercicios (las soluciones están al final):

[1]   Realizar una consulta que muestre el nombre de los
      clientes de Palencia

[2]   Indicar el código y descripción de los productos cuyo
      código coincida con su descripción

[3]   Obtener el nombre de los clientes junto con el
      identificador de venta y la cantidad vendida, de aquellos
      productos de los que se vendieron más de 500 unidades

[4]   Nombre de los clientes de la tabla Clientes que no
      aparecen en la tabla de ventas (Clientes que no han
      comprado nada)

[5]   Nombre de los clientes que han comprado todos los
      productos de la empresa

[6]   Identificador de las ventas cuya cantidad supera a la
      cantidad vendida en la venta número 18

[7]   Productos que no se han comprado nunca en Palencia

[8]   Productos que se han vendido tanto en Palencia como en
      Valladolid
[9]   Poblaciones a las que hemos vendido todos nuestros
      productos

Imaginemos que añadimos la tabla de facturas que se relaciona con
la de ventas, de modo que a la tabla de ventas le añadimos el nº de
Factura con la que se relaciona. En la tabla de factura indicamos la
fecha, el número y si se pago o no (un 1 significa pagado, un 0 que
no está pagada). Cada factura se corresponde con varias ventas y
con un solo cliente, para lo cual se varía el diseño:

FACTURA(Nº Factura, Fecha, Pagada, Nº Cliente)

VENTA(Cod Producto, Nº Factura, Cantidad, Id Venta)

[10] Obtener el nombre de los clientes que tienen alguna
     factura sin pagar

[11] Clientes que han pagado todas sus facturas

Soluciones
Lo primero es renombrar las tablas para facilitar su manejo en las
consultas:

Clientes → C
Pr oductos → P
Ventas → V

[1]   ∏ nombre (σ población ="Palencia "C )

[2]   ∏ cód Pr oducto , Descripción (σ cod Pr oducto = Descripción P )

[3]   ∏ C . Nombre , P. Descripción ,V .Cantidad ((σ cantidad >500V )∞P∞C )


[4]
      ∏ nombre C − ∏ nombre (C∞V )
[5]   Se aplica una división sobre toda la tabla de ventas
      mezclada con clientes y se divide entre la tabla de
      productos (quedan los clientes que tienen todas las
      combinaciones de la tabla de productos)
∏ nombre ((∏ C .nombre ,C . N ºCliente ,V .codproducto (C∞V )) : (∏ codproducto P ))

[6]    Dividimos la consulta en dos, primero obtenemos la fila
       correspondiente a la venta nº 18 y luego la combinamos
       con todas las demás eliminando las que tengan ventas
       menores

σ idVenta =18V → V '
V             ∞
    V .cantidad >V '.Cantidad
                                V'

[7]    Se resuelve sacando primero los productos que sí se
       compraron en Palencia y luego restándoles del conjunto
       total de Productos

∏V .codproducto ((σ población="Palencia"C )∞V ) → Pale
∏ codproducto P − Pale
[8]    Se trata de una intersección entre los productos de
       Palencia y los productos comprados en Valladolid

∏V .codproducto ((σ población ="Palencia"C )∞V ) → Pale
∏V .codproducto ((σ población ="Valladolid "C )∞V ) → Vall
Pale I Vall
[9]     Necesitamos sacar la lista de poblaciones con los códigos
       de productos que se han vendido en ellas. Luego
       dividimos entre los códigos de la tabla de productos y
       quedarán las poblaciones en las que se han pedido todos
       los códigos

∏ poblacion ((∏ C . población ,V .codproduct o (C∞V )) : (∏ codprodcto P ))
[10]


∏ nombre ,n º factura (σ Pagada =0 (C∞F ))
[11] La consulta no se puede hacer como la anterior, ya que
     puede haber clientes que hayan pagado algunas facturas y
     otras no. Se parte de la consulta anterior para hacer esto:


∏ nombre (σ Pagada =0 (C∞F )) → Pagadores
∏ nombre − Pagadores

Más contenido relacionado

La actualidad más candente

Sesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisisSesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisis
Julio Pari
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
RAUL CHIPANA LARICO
 

La actualidad más candente (20)

Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 
Sesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisisSesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisis
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datos
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Power designer-presentación
Power designer-presentaciónPower designer-presentación
Power designer-presentación
 
#4 Primeiros comandos no MongoDB
#4   Primeiros comandos no MongoDB#4   Primeiros comandos no MongoDB
#4 Primeiros comandos no MongoDB
 
Bases de datos (Ejemplo del videoclub)
Bases de datos (Ejemplo del videoclub)Bases de datos (Ejemplo del videoclub)
Bases de datos (Ejemplo del videoclub)
 
Modelador de base de datos ERwin
Modelador de base de datos ERwinModelador de base de datos ERwin
Modelador de base de datos ERwin
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
Curso SQL - Leccion 11
Curso SQL - Leccion 11Curso SQL - Leccion 11
Curso SQL - Leccion 11
 
Introduccion a Windows Form
Introduccion a Windows FormIntroduccion a Windows Form
Introduccion a Windows Form
 
presentacion power designer
presentacion power designer presentacion power designer
presentacion power designer
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql server
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
ejercicios diseño:_entidad relación en la creación de una BD
ejercicios diseño:_entidad relación en la creación de una BDejercicios diseño:_entidad relación en la creación de una BD
ejercicios diseño:_entidad relación en la creación de una BD
 

Destacado

Lista de ejercicios _de _álgebra _relacional_2013_i (1) (1)
Lista  de  ejercicios _de _álgebra _relacional_2013_i (1) (1)Lista  de  ejercicios _de _álgebra _relacional_2013_i (1) (1)
Lista de ejercicios _de _álgebra _relacional_2013_i (1) (1)
Lizeth Ebxx
 
Ejercicios áLgebra Relacional
Ejercicios áLgebra RelacionalEjercicios áLgebra Relacional
Ejercicios áLgebra Relacional
negriz
 
Bases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacionalBases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacional
Carlos Castillo (ChaTo)
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
Blanca Parra
 
Algebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosAlgebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datos
JosepSalvadorSotoObregon
 
Operaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacionalOperaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacional
Lili Sanchez
 

Destacado (7)

Lista de ejercicios _de _álgebra _relacional_2013_i (1) (1)
Lista  de  ejercicios _de _álgebra _relacional_2013_i (1) (1)Lista  de  ejercicios _de _álgebra _relacional_2013_i (1) (1)
Lista de ejercicios _de _álgebra _relacional_2013_i (1) (1)
 
Ejercicios De Algebra Realcional Taller 1
Ejercicios De Algebra Realcional Taller 1Ejercicios De Algebra Realcional Taller 1
Ejercicios De Algebra Realcional Taller 1
 
Ejercicios áLgebra Relacional
Ejercicios áLgebra RelacionalEjercicios áLgebra Relacional
Ejercicios áLgebra Relacional
 
Bases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacionalBases de Datos - Parte 6/10 Álgebra relacional
Bases de Datos - Parte 6/10 Álgebra relacional
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 
Algebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosAlgebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datos
 
Operaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacionalOperaciones básicas utilizadas en álgebra relacional
Operaciones básicas utilizadas en álgebra relacional
 

Similar a Algebra1

Ejercicios De Sql BD
Ejercicios De Sql BDEjercicios De Sql BD
Ejercicios De Sql BD
Carlos Arturo
 
Mi plan de negocio 2010
Mi plan de negocio 2010Mi plan de negocio 2010
Mi plan de negocio 2010
guesta98b9e
 
Manual mysql
Manual mysqlManual mysql
Manual mysql
paoyandre
 

Similar a Algebra1 (20)

Factura
FacturaFactura
Factura
 
Consultas multitablas
Consultas multitablasConsultas multitablas
Consultas multitablas
 
Ejercicios De Sql BD
Ejercicios De Sql BDEjercicios De Sql BD
Ejercicios De Sql BD
 
Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2
 
Taller de recuperacion sql 120 consultas
Taller de recuperacion sql 120 consultasTaller de recuperacion sql 120 consultas
Taller de recuperacion sql 120 consultas
 
Ejercicios
Ejercicios Ejercicios
Ejercicios
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
 
Ejercicios 2 y 4
Ejercicios 2 y 4Ejercicios 2 y 4
Ejercicios 2 y 4
 
Laboratorio2: Adempiere, Creación de la data maestra, Procesos de Compra y Venta
Laboratorio2: Adempiere, Creación de la data maestra, Procesos de Compra y VentaLaboratorio2: Adempiere, Creación de la data maestra, Procesos de Compra y Venta
Laboratorio2: Adempiere, Creación de la data maestra, Procesos de Compra y Venta
 
tics comfenalco
tics comfenalcotics comfenalco
tics comfenalco
 
Mi plan de negocio 2010
Mi plan de negocio 2010Mi plan de negocio 2010
Mi plan de negocio 2010
 
Recepción de mercancías SAP.pptx
Recepción de mercancías SAP.pptxRecepción de mercancías SAP.pptx
Recepción de mercancías SAP.pptx
 
Bd empres aok
Bd empres aokBd empres aok
Bd empres aok
 
Empresa
EmpresaEmpresa
Empresa
 
Proyectobd
ProyectobdProyectobd
Proyectobd
 
Proyectobd
ProyectobdProyectobd
Proyectobd
 
Proyectobd
ProyectobdProyectobd
Proyectobd
 
Proyectobd
ProyectobdProyectobd
Proyectobd
 
CONTABILIDAD DE NEGOCIO Y SU PASO A PASO
CONTABILIDAD DE NEGOCIO Y SU PASO A PASOCONTABILIDAD DE NEGOCIO Y SU PASO A PASO
CONTABILIDAD DE NEGOCIO Y SU PASO A PASO
 
Manual mysql
Manual mysqlManual mysql
Manual mysql
 

Algebra1

  • 1. Ejercicios de álgebra relacional (1) Tenemos el siguiente esquema relacional de base de datos: CLIENTES(Nº Cliente, Nombre, Dirección, Teléfono, Población) PRODUCTO(Cod Producto, Descripción, Precio) VENTA(Cod Producto, Nº Cliente, Cantidad, Id Venta) La tabla de clientes almacena información sobre cada posible cliente de nuestra empresa. En la tabla de productos almacenamos información sobre cada producto de la empresa. La tabla de ventas relaciona a las dos anteriores utilizando el atributo cod Producto para indicar el producto que se venda, y el atributo Nº Cliente para indicar el cliente al que vendimos el producto. Sobre ella se realizan estos ejercicios (las soluciones están al final): [1] Realizar una consulta que muestre el nombre de los clientes de Palencia [2] Indicar el código y descripción de los productos cuyo código coincida con su descripción [3] Obtener el nombre de los clientes junto con el identificador de venta y la cantidad vendida, de aquellos productos de los que se vendieron más de 500 unidades [4] Nombre de los clientes de la tabla Clientes que no aparecen en la tabla de ventas (Clientes que no han comprado nada) [5] Nombre de los clientes que han comprado todos los productos de la empresa [6] Identificador de las ventas cuya cantidad supera a la cantidad vendida en la venta número 18 [7] Productos que no se han comprado nunca en Palencia [8] Productos que se han vendido tanto en Palencia como en Valladolid
  • 2. [9] Poblaciones a las que hemos vendido todos nuestros productos Imaginemos que añadimos la tabla de facturas que se relaciona con la de ventas, de modo que a la tabla de ventas le añadimos el nº de Factura con la que se relaciona. En la tabla de factura indicamos la fecha, el número y si se pago o no (un 1 significa pagado, un 0 que no está pagada). Cada factura se corresponde con varias ventas y con un solo cliente, para lo cual se varía el diseño: FACTURA(Nº Factura, Fecha, Pagada, Nº Cliente) VENTA(Cod Producto, Nº Factura, Cantidad, Id Venta) [10] Obtener el nombre de los clientes que tienen alguna factura sin pagar [11] Clientes que han pagado todas sus facturas Soluciones Lo primero es renombrar las tablas para facilitar su manejo en las consultas: Clientes → C Pr oductos → P Ventas → V [1] ∏ nombre (σ población ="Palencia "C ) [2] ∏ cód Pr oducto , Descripción (σ cod Pr oducto = Descripción P ) [3] ∏ C . Nombre , P. Descripción ,V .Cantidad ((σ cantidad >500V )∞P∞C ) [4] ∏ nombre C − ∏ nombre (C∞V ) [5] Se aplica una división sobre toda la tabla de ventas mezclada con clientes y se divide entre la tabla de productos (quedan los clientes que tienen todas las combinaciones de la tabla de productos)
  • 3. ∏ nombre ((∏ C .nombre ,C . N ºCliente ,V .codproducto (C∞V )) : (∏ codproducto P )) [6] Dividimos la consulta en dos, primero obtenemos la fila correspondiente a la venta nº 18 y luego la combinamos con todas las demás eliminando las que tengan ventas menores σ idVenta =18V → V ' V ∞ V .cantidad >V '.Cantidad V' [7] Se resuelve sacando primero los productos que sí se compraron en Palencia y luego restándoles del conjunto total de Productos ∏V .codproducto ((σ población="Palencia"C )∞V ) → Pale ∏ codproducto P − Pale [8] Se trata de una intersección entre los productos de Palencia y los productos comprados en Valladolid ∏V .codproducto ((σ población ="Palencia"C )∞V ) → Pale ∏V .codproducto ((σ población ="Valladolid "C )∞V ) → Vall Pale I Vall [9] Necesitamos sacar la lista de poblaciones con los códigos de productos que se han vendido en ellas. Luego dividimos entre los códigos de la tabla de productos y quedarán las poblaciones en las que se han pedido todos los códigos ∏ poblacion ((∏ C . población ,V .codproduct o (C∞V )) : (∏ codprodcto P )) [10] ∏ nombre ,n º factura (σ Pagada =0 (C∞F ))
  • 4. [11] La consulta no se puede hacer como la anterior, ya que puede haber clientes que hayan pagado algunas facturas y otras no. Se parte de la consulta anterior para hacer esto: ∏ nombre (σ Pagada =0 (C∞F )) → Pagadores ∏ nombre − Pagadores