Diferència entre revisions de la pàgina «M2 - Bases de dades / Apunts UF4 : Practica 2»
De wikiserver
(→Exercici 2) |
(→Exercici 3) |
||
(Hi ha 17 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) | + | *Creeu un tipus d'objecte anomenat poliedre amb els atributs: |
− | + | <pre> | |
− | :- MEMBER FUNCTION superficie RETURN number | + | idpol number(2), |
− | :- MEMBER FUNCTION volume RETURN | + | 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> | ||
− | |||
− | *Feu un bloc PL/SQL per mostrar les dades del poliedre | + | *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== | ||
Línia 23: | Línia 42: | ||
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: | 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 | + | :*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 el cos del tipus_triangle (l'àrea d'un triangle es calcula com base * alçada / 2). | ||
Línia 36: | Línia 55: | ||
:*Mostreu tots els triangles. | :*Mostreu tots els triangles. | ||
− | |||
<pre> | <pre> | ||
− | El triangle amb id: 1 amb base: 5 i alçada: 6 té un àrea de: 15 | + | 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 | 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== | ||
− | + | ||
− | + | *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: | |
− | + | <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. | ||
+ | |||
+ | Sortida: | ||
+ | <pre> | ||
+ | Pep, venedor, sou liquid avanç de l'augment: 1400 € | ||
+ | Pep, venedor, sou liquid després de l'augment: 1800 € | ||
+ | </pre> |
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 €