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

De wikiserver
Dreceres ràpides: navegació, cerca
(Exercici 3)
 
(Hi ha 6 revisions intermèdies del mateix usuari que no es mostren)
Línia 11: Línia 11:
 
<pre>
 
<pre>
 
:- MEMBER FUNCTION superficie RETURN number        // (llargada*amplada*2)+(llargada*alçada*2)+(amplada*alçada*2)
 
:- MEMBER FUNCTION superficie RETURN number        // (llargada*amplada*2)+(llargada*alçada*2)+(amplada*alçada*2)
:- MEMBER FUNCTION volume RETURN numer             // (llargada*amplada*alçada)
+
:- 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.
+
:- MEMBER PROCEDURE mostrar                      //  Mostrarà: Id: xx Largo: xx Ancho: xx Alto: xx on xx són les dades del polígon.
 
</pre>
 
</pre>
 
*Creeu el cos del objecte poliedre.
 
*Creeu el cos del objecte poliedre.
Línia 18: Línia 18:
 
*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.
Línia 33: Línia 33:
  
  
*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>
 
<pre>
 
Id: 1 Largo: 10 Ancho: 10 Alto: 10
 
Id: 1 Largo: 10 Ancho: 10 Alto: 10
Línia 57: Línia 57:
 
<pre>
 
<pre>
 
   ID TRIANGULO.BASE TRIANGULO.ALTURA
 
   ID TRIANGULO.BASE TRIANGULO.ALTURA
1  2            10              10
+
1 1              5                6
2  1              5                5
+
2 2            10              10
 
</pre>
 
</pre>
  
:*Creeu un bloc PL/SQL per recórrer la taula triangles e invocar al mètode area, i s'obtingui el següent resultat:
+
:*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:
  
* '''Cal que utilitzeu un cursor'''
+
:: '''(1) Cal que utilitzeu un cursor'''
  
 
<pre>
 
<pre>
   El triangle amb id: 1 amb base: 5 i alçada: 6 té un àrea de: 15
+
   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
 
   El triangle amb id: 2 amb base: 10 i alçada: 10 té un àrea de: 50
 
</pre>
 
</pre>
 +
 +
:: '''Utilitzeu la funció LPAD perquè quedi alineat'''
  
 
==Exercici 3==
 
==Exercici 3==
Línia 87: Línia 89:
  
 
:- augment_sou, rep com a paràmetre la quantitat augmentar. (sou + quantitat)
 
:- 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 el cos del tipus objecte:
 
*Afegeix al tipus d'objecte Empleat el mètode setAvançament que rebrà com a paràmetre una quantitat i actualitzarà l'avançament.
 
  
 
*Creeu la taula empleats de tipus empleat
 
*Creeu la taula empleats de tipus empleat

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 €