Diferència entre revisions de la pàgina «M2 - Bases de dades / Apunts UF4 : Practica 2»

De wikiserver
Dreceres ràpides: navegació, cerca
(Exercici 1)
(Exercici 3)
 
(Hi ha 19 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
==Exercici 1==
 
==Exercici 1==
  
*Creeu un tipus d'objecte anomenat poliedre amb els atributs: llargada number(2), amplada number(2) i alçada number(2); i 3 mètodes MEMBER:
+
*Creeu un tipus d'objecte anomenat poliedre amb els atributs:  
 
+
<pre>
:- MEMBER FUNCTION superficie RETURN number
+
idpol number(2),
:- MEMBER FUNCTION volume RETURN numer
+
llargada number(2),  
:- MEMBER PROCEDURE mostrar()
+
amplada number(2),
 
+
alçada number(2);  
 +
</pre>
 +
i 3 mètodes MEMBER:
 +
<pre>
 +
:- MEMBER FUNCTION superficie RETURN number       // (llargada*amplada*2)+(llargada*alçada*2)+(amplada*alçada*2)
 +
:- MEMBER FUNCTION volume RETURN number            // (llargada*amplada*alçada)
 +
:- MEMBER PROCEDURE mostrar                     //  Mostrarà: Id: xx Largo: xx Ancho: xx Alto: xx on xx són les dades del polígon.
 +
</pre>
 
*Creeu el cos del objecte poliedre.
 
*Creeu el cos del objecte poliedre.
  
 
*Creeu una taules d'objectes de tipus poliedre.
 
*Creeu una taules d'objectes de tipus poliedre.
  
*Afegiu 2 poliedres a la taula amb les següents mides: (10,10,10) i (3,4,5).
+
*Afegiu 2 poliedres a la taula amb les següents mides: (1,10,10,10) i (2,3,4,5).
  
 
*Mostreu tots els poliedres de la taula.
 
*Mostreu tots els poliedres de la taula.
 +
<pre>
 +
  IDPOL LARGO ANCHO ALTO
 +
1    1    10    10  10
 +
2    2    3    4    5
 +
</pre>
 +
*Mostreu el volum i la superfície del poliedre de llargada 10.
 +
<pre>
 +
  P.SUPERFICIe()  P.VOLUMEN()
 +
1            600        1000
 +
</pre>
  
*Mostreu el volum i la superfície del poliedre de llargada 10.
 
  
*Feu un bloc PL/SQL per mostrar les dades del poliedre de llargada 10. Utilitzeu el procediment mostrar().
+
*Feu un bloc PL/SQL per mostrar les dades del poliedre amb Id 1. Utilitzeu el procediment mostrar().
 +
<pre>
 +
Id: 1 Largo: 10 Ancho: 10 Alto: 10
 +
</pre>
  
 
==Exercici 2==
 
==Exercici 2==
 +
 +
Es vol emmagatzemar en una taula de la BBDD centenars de triangles. De cada triangle, es vol la base i l'alçada. També és precisa recuperar l'àrea de cada triangle. Creeu el següent esquema:
 +
 +
:*Un tipus d'objecte anomenat tipus_triangle amb els atributs base number(3), alçada number(3) i una mètode anomenada area return number.
 +
 +
:*Creeu el cos del tipus_triangle (l'àrea d'un triangle es calcula com base * alçada / 2).
 +
 +
:*Creeu una taula anomenada triangles per emmagatzemar els triangles, amb les columnes Id number(3) i triangle de tipus tipus_triangle.
 +
 +
:*Afegiu dos triangles amb les següents valors:
 +
 +
::- Id=1, base=5, alçada=6
 +
::- Id=2, base=10, alçada=10
 +
 +
:*Mostreu tots els triangles.
 +
 +
<pre>
 +
  ID TRIANGULO.BASE TRIANGULO.ALTURA
 +
1  1              5                6
 +
2  2            10              10
 +
</pre>
 +
 +
:*Creeu un bloc PL/SQL per recórrer'''(1)''' la taula triangles e invocar al mètode area, i s'obtingui el següent resultat:
 +
 +
:: '''(1) Cal que utilitzeu un cursor'''
 +
 +
<pre>
 +
  El triangle amb id: 1 amb base:  5 i alçada:  6 té un àrea de: 15
 +
  El triangle amb id: 2 amb base: 10 i alçada: 10 té un àrea de: 50
 +
</pre>
 +
 +
:: '''Utilitzeu la funció LPAD perquè quedi alineat'''
  
 
==Exercici 3==
 
==Exercici 3==
  
==Exercici 2==
+
*Creeu el tipus d'objecte Empleat amb els atributs:
Se desea modelar un objeto triángulo para almacenar sus características
+
 
(la base y la altura) y almacenar en la BBDD cientos de triángulos
+
:- Id varchar(10)
pudiendo calcular el área de cada triángulo, se podría crear el siguiente
+
:- Nom varchar(10)
esquema:
+
:- Carrec varchar(9)
+
:- DataIng date
+
:- Sou number(9)
Un tipo llamado tipo_triángulo con los atributos base number, altura
+
:- Comissio number (9)
number y una función llamada area return number.
+
:- avançament number (9)
(el área de un triángulo se calcula como base*altura/2)
+
 
Crear el cuerpo body para dicho tipo.
+
*i els mètodes:
 Crear una tabla relacional llamada triangulos para almacenar los
+
 
triángulos, con las columnas Id number y triangulo de tipo_triangulo.
+
:- sou_liquid, retorna un number. (sou + comissio - avançament)
 Insertar dos triángulos con los siguientes valores
+
 
Id=1, base=5, altura=5
+
:- augment_sou, rep com a paràmetre la quantitat augmentar. (sou + quantitat)
Id=2, base=10, altura=10
+
 
 Listar todos los triángulos.
+
:- setAvançament, rep com a paràmetre una quantitat i actualitzarà l'avançament.
 Crear un bloque PL/SQL para recorrer la tabla triángulos e invocar al
+
 
método área, de forma que en el resultado obtengamos esto:
+
*Creeu el cos del tipus objecte:
 +
 
 +
*Creeu la taula empleats de tipus empleat
 +
 
 +
*Afegiu tres empleats amb les següents dades:
 +
<pre>
 +
  '1', 'Elena', 'director', sysdate, 2000,300,0
 +
  '2', 'Pep', 'venedor', sysdate, 1000,400,0
 +
  '3', 'Joan', 'venedor', sysdate, 1000,300,0
 +
</pre>
 +
 
 +
*Feu un bloc PL/SQL que:
  
 +
:- mostri el sou liquid del empleat amb Id=2.
 +
:- li augmenti el sou en 400€.
 +
:- mostri el resultat del sou desprès de l'augment.
  
==Exercici 3==
+
Sortida:
+
<pre>
Crear el tipo Empleado con los atributos
+
  Pep, venedor, sou liquid avanç de l'augment: 1400 €
Rut varchar(10)
+
  Pep, venedor, sou liquid després de l'augment: 1800 €
Nombre varchar(10)
+
</pre>
Cargo varchar(9)
 
fechaIng date
 
sueldo number(9)
 
somision number (9)
 
anticipo number (9)
 
la función sueldo_liquido devuelve un number y el procedimiento
 
aumento_sueldo que recibe como parámetro el aumento que es number.
 
 
Crear el body para dicho tipo desarrollando la función y el
 
procedimiento.
 
El sueldo liquido se calculará como el (sueldo +comisión )- anticipo.
 
Aumento de sueldo se calculara como el sueldo+aumento
 
 Altera el tipo Empleado y añade el procedimiento
 
setAnticipo que recibe como parámetro el anticipo de tipo number.
 
 Crea el body para el nuevo método setAnticipo
 
 Crear una tabla empleados de tipo empleado
 
 Insertar dos o tres empleados, con estos datos
 
Crear un bloque PL/SQL para listar el sueldo liquido del empleado
 
rut= 2.
 
Aumentarle el sueldo con 400 euros.
 
Listar el sueldo aumentado.
 
La salida será como la siguiente:
 

Revisió de 11:05, 25 maig 2022

Exercici 1

  • Creeu un tipus d'objecte anomenat poliedre amb els atributs:
idpol number(2),
llargada number(2), 
amplada number(2),
alçada number(2); 

i 3 mètodes MEMBER:

:- MEMBER FUNCTION superficie RETURN number        // (llargada*amplada*2)+(llargada*alçada*2)+(amplada*alçada*2)
:- MEMBER FUNCTION volume RETURN number             // (llargada*amplada*alçada)
:- MEMBER PROCEDURE mostrar                      //  Mostrarà: Id: xx Largo: xx Ancho: xx Alto: xx on xx són les dades del polígon.
  • Creeu el cos del objecte poliedre.
  • Creeu una taules d'objectes de tipus poliedre.
  • Afegiu 2 poliedres a la taula amb les següents mides: (1,10,10,10) i (2,3,4,5).
  • Mostreu tots els poliedres de la taula.
  IDPOL LARGO ANCHO ALTO
1     1    10    10   10
2     2     3     4    5
  • Mostreu el volum i la superfície del poliedre de llargada 10.
  P.SUPERFICIe()  P.VOLUMEN()
1            600         1000


  • Feu un bloc PL/SQL per mostrar les dades del poliedre amb Id 1. Utilitzeu el procediment mostrar().
Id: 1 Largo: 10 Ancho: 10 Alto: 10

Exercici 2

Es vol emmagatzemar en una taula de la BBDD centenars de triangles. De cada triangle, es vol la base i l'alçada. També és precisa recuperar l'àrea de cada triangle. Creeu el següent esquema:

  • Un tipus d'objecte anomenat tipus_triangle amb els atributs base number(3), alçada number(3) i una mètode anomenada area return number.
  • Creeu el cos del tipus_triangle (l'àrea d'un triangle es calcula com base * alçada / 2).
  • Creeu una taula anomenada triangles per emmagatzemar els triangles, amb les columnes Id number(3) i triangle de tipus tipus_triangle.
  • Afegiu dos triangles amb les següents valors:
- Id=1, base=5, alçada=6
- Id=2, base=10, alçada=10
  • Mostreu tots els triangles.
  ID TRIANGULO.BASE TRIANGULO.ALTURA
1  1              5                6
2  2             10               10
  • Creeu un bloc PL/SQL per recórrer(1) la taula triangles e invocar al mètode area, i s'obtingui el següent resultat:
(1) Cal que utilitzeu un cursor
  El triangle amb id: 1 amb base:  5 i alçada:  6 té un àrea de: 15
  El triangle amb id: 2 amb base: 10 i alçada: 10 té un àrea de: 50
Utilitzeu la funció LPAD perquè quedi alineat

Exercici 3

  • Creeu el tipus d'objecte Empleat amb els atributs:
- Id varchar(10)
- Nom varchar(10)
- Carrec varchar(9)
- DataIng date
- Sou number(9)
- Comissio number (9)
- avançament number (9)
  • i els mètodes:
- sou_liquid, retorna un number. (sou + comissio - avançament)
- augment_sou, rep com a paràmetre la quantitat augmentar. (sou + quantitat)
- setAvançament, rep com a paràmetre una quantitat i actualitzarà l'avançament.
  • Creeu el cos del tipus objecte:
  • Creeu la taula empleats de tipus empleat
  • Afegiu tres empleats amb les següents dades:
   '1', 'Elena', 'director', sysdate, 2000,300,0
   '2', 'Pep', 'venedor', sysdate, 1000,400,0
   '3', 'Joan', 'venedor', sysdate, 1000,300,0
  • Feu un bloc PL/SQL que:
- mostri el sou liquid del empleat amb Id=2.
- li augmenti el sou en 400€.
- mostri el resultat del sou desprès de l'augment.

Sortida:

   Pep, venedor, sou liquid avanç de l'augment: 1400 €
   Pep, venedor, sou liquid després de l'augment: 1800 €