<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
		<id>http://wikiserver.infomerce.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrador</id>
		<title>wikiserver - Contribucions de l’usuari [ca]</title>
		<link rel="self" type="application/atom+xml" href="http://wikiserver.infomerce.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrador"/>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php/Especial:Contribucions/Administrador"/>
		<updated>2026-05-29T19:12:19Z</updated>
		<subtitle>Contribucions de l’usuari</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18124</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18124"/>
				<updated>2024-09-20T11:05:47Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-0484 Base de dades&lt;br /&gt;
** M3 - Programació|DAW-0485 Programació&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
** MPO - Pensament computacional|DAW-OPT Lògica i programació&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18123</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18123"/>
				<updated>2024-09-20T11:03:29Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-0484 Base de dades&lt;br /&gt;
** M3 - Programació|DAW-0485 Programació&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
** MPC - Pensament computacional|DAW-OPT Lògica i programació&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18122</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18122"/>
				<updated>2024-09-20T10:59:14Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-0484 Base de dades&lt;br /&gt;
** M3 - Programació|DAW-0485 Programació&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
** MPC - Lògica i programació|DAW-OPT Lògica i programació&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18121</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18121"/>
				<updated>2024-09-20T10:57:20Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M0484 - Bases de dades|DAW-0484 Base de dades&lt;br /&gt;
** M0485 - Programació|DAW-0485 Programació&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
** MOPT - Lògica i programació|DAW-OPT Lògica i programació&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18047</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=18047"/>
				<updated>2024-07-13T14:42:18Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
** MPO - Pensament computacional|DAW-PC&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Practiques_UF2:_Llenguatges_SQL&amp;diff=17562</id>
		<title>M2 - Bases de dades / Practiques UF2: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Practiques_UF2:_Llenguatges_SQL&amp;diff=17562"/>
				<updated>2023-11-29T09:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Entorn gràfic: consultes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Entorn gràfic: consultes==&lt;br /&gt;
&lt;br /&gt;
:'''DATA LÍMIT D'ENTREGA: 10/12/2022'''&lt;br /&gt;
:'''HORA: 23:55'''&lt;br /&gt;
:'''NOM DOCUMENT: Pr_EGC_nom_1rcognom.pdf'''&lt;br /&gt;
&lt;br /&gt;
Es valorarà:&lt;br /&gt;
&lt;br /&gt;
:* Solució correcte i completa de cada consulta (ha de ser visible completament en la captura de pantalla): &lt;br /&gt;
::'''1/2 punt per consulta. Total: 8 punts'''  &lt;br /&gt;
&lt;br /&gt;
:* Presentació del document. '''Guia d'estil'''&lt;br /&gt;
::'''2 punts'''&lt;br /&gt;
&lt;br /&gt;
:* L'alumne ha de poder explicar totes les consultes que ha lliurat.&lt;br /&gt;
&lt;br /&gt;
Utilitzant query builder d'oracle, resoleu les següents consultes:&lt;br /&gt;
&lt;br /&gt;
===Grup A===&lt;br /&gt;
&lt;br /&gt;
:Alumnes: Mohammad Sami, Luis Daniel, Marc, Alejandro, Kevin, Joan, Abdelkarim, Rai, Kiara&lt;br /&gt;
&lt;br /&gt;
1. Llista tots els detalls de l'empleat SMITH &lt;br /&gt;
	&lt;br /&gt;
2. Llista el nom i la localització de tots els departaments ordenats per nom de forma ascendent. &lt;br /&gt;
&lt;br /&gt;
3. Llista el nom, job, salari dels empleats que estan treballant pel Deptno 20 o 40. &lt;br /&gt;
&lt;br /&gt;
4. Compta els empleats que estan treballant pel Deptno 20 or 40. &lt;br /&gt;
&lt;br /&gt;
5. Llista tots els empleats que s'han incorporat (hiredate) abans i després del 1982 &lt;br /&gt;
&lt;br /&gt;
6. Llista en nom, job i data de tots els empleats que s'han incorporat després del 1985 &lt;br /&gt;
&lt;br /&gt;
7. Llista la localització (loc) de  l'empleat SMITH. &lt;br /&gt;
&lt;br /&gt;
8. Listar els emps que tenen els mateixos jobs que SMITH o ALLEN. &lt;br /&gt;
&lt;br /&gt;
9. Llista tots els Grade2 and Grade 3 de la taula emps ordenats per Grade. &lt;br /&gt;
&lt;br /&gt;
10. Llista tota la informació de la taula empleatsque treballen al departament DNAME de 'ACCOUNTING' o 'RESEARCH', ordena els resultats pel nom del departament &lt;br /&gt;
&lt;br /&gt;
11. Calcula per cada Job la mitja del salari i  la mitja del salari amb les comissions. &lt;br /&gt;
	 &lt;br /&gt;
12. Llista els 5 empleats que cobren menys salari ordenats per salari de menor a major. &lt;br /&gt;
&lt;br /&gt;
13. Mostreu tots els noms dels empleats que comencen per ‘S’ o contenen una ‘L’ en la segona lletra. El resultat ha de mostrar la inicial en majúscules i la resta en minúscules. &lt;br /&gt;
&lt;br /&gt;
14. Mostreu nom i les dates sis mesos després de la contractació de tots els empleats que porten més de 350 mesos contractats. Ordenats per data de forma descendent. El format del resultat és el següent: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Nom		Data revisió &lt;br /&gt;
 	King		17 mayo 1982 &lt;br /&gt;
	Martin		28 marzo 1982 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15. Mostreu el següent resultat: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Empleat &lt;br /&gt;
Smith guanya 800 € i és clerk					 &lt;br /&gt;
Allen guanya 1600 € i és salesman &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
16. Mostreu tots els oficis dels departaments 10 i 30, sense repeticions. Ordenats per ordre alfabètic.&lt;br /&gt;
&lt;br /&gt;
===Grup B===&lt;br /&gt;
&lt;br /&gt;
:Alumnes: Ashenafi, Fidel, Javier, Jordi, Josep, Marta, Susana, Angel, Omar&lt;br /&gt;
&lt;br /&gt;
1. Mostreu el nom, salari i el salari més 150 € de tots els empleats. La tercera columna anomeneu-la Increment. &lt;br /&gt;
&lt;br /&gt;
2. Mostreu el nom, salari i el número de departament dels empleats que cobren més de 2000 €. &lt;br /&gt;
&lt;br /&gt;
3. Mostreu el nom, salari del empleats que no cobren comissió. &lt;br /&gt;
&lt;br /&gt;
4. Mostreu nom, ofici i salari de tots els empleats que cobren entre 1800 i 2500 €. Ordenats per ofici ascendent i descendent per salari. &lt;br /&gt;
&lt;br /&gt;
5. Llista tots els detalls de l'empleat SMITH &lt;br /&gt;
&lt;br /&gt;
6. Llista el nom i la localització de tots els departaments ordenats per nom de forma ascendent. &lt;br /&gt;
&lt;br /&gt;
7. Llista el nom, job, salari dels empleats que estan treballant pel Deptno 20 o 40. &lt;br /&gt;
&lt;br /&gt;
8. Compta els empleats que estan treballant pel Deptno 20 or 40. &lt;br /&gt;
&lt;br /&gt;
9. Llista tots els empleats que s'han incorporat (hiredate) abans i després del 1982 &lt;br /&gt;
&lt;br /&gt;
10. Llista en nom, job i data de tots els empleats que s'han incorporat després del 1985 &lt;br /&gt;
&lt;br /&gt;
11. Llista la localització (loc) de  l'empleat SMITH. &lt;br /&gt;
&lt;br /&gt;
12. List the emps whose jobs same as SMITH or ALLEN. &lt;br /&gt;
&lt;br /&gt;
13. Llista tots els Grade2 and Grade 3 de la taula emps ordenats per Grade. &lt;br /&gt;
&lt;br /&gt;
14. Llista tota la informació de la taula empleatsque treballen al departament DNAME de 'ACCOUNTING' o 'RESEARCH', ordena els resultats pel nom del departament &lt;br /&gt;
	&lt;br /&gt;
15. Calcula per cada Job la mitja del salari i  la mitja del salari amb les comissions. &lt;br /&gt;
&lt;br /&gt;
16. Llista els 5 empleats que cobren menys salari ordenats per salari de menor a major.&lt;br /&gt;
&lt;br /&gt;
===Grup C===&lt;br /&gt;
&lt;br /&gt;
:Alumnes: Mohammad Omar, Francisco, Adrià, Addil, Guillermo, Fernando, Sergi, Raúl&lt;br /&gt;
&lt;br /&gt;
1. Mostreu el nom, salari i salari revisat (nom de columna) de tots els empleats. Cal tenir en compte que la revisió es farà en funció del departament al que pertanyen: &lt;br /&gt;
&lt;br /&gt;
::10% pel departament 10 &lt;br /&gt;
::20% pel departament 20 &lt;br /&gt;
::15% per la resta de departaments. &lt;br /&gt;
&lt;br /&gt;
2. Mostreu el número d’empleat, nom, salari i comissió de tots els empleats que tenen una comissió superior al salari. &lt;br /&gt;
&lt;br /&gt;
3. Llista tots els detalls de l'empleat SMITH &lt;br /&gt;
&lt;br /&gt;
4. Llista el nom i la localització de tots els departaments ordenats per nom de forma ascendent. &lt;br /&gt;
&lt;br /&gt;
5. Llista el nom, job, salari dels empleats que estan treballant pel Deptno 20 o 40. &lt;br /&gt;
&lt;br /&gt;
6. Compta els empleats que estan treballant pel Deptno 20 or 40. &lt;br /&gt;
&lt;br /&gt;
7. Llista tots els empleats que s'han incorporat (hiredate) abans i després del 1982 &lt;br /&gt;
&lt;br /&gt;
8. Llista en nom, job i data de tots els empleats que s'han incorporat després del 1985 &lt;br /&gt;
&lt;br /&gt;
9. Llista la localització (loc) de  l'empleat SMITH. &lt;br /&gt;
&lt;br /&gt;
10. List the emps whose jobs same as SMITH or ALLEN. &lt;br /&gt;
&lt;br /&gt;
11. Llista tots els Grade2 and Grade 3 de la taula emps ordenats per Grade. &lt;br /&gt;
&lt;br /&gt;
12. Llista tota la informació de la taula empleatsque treballen al departament DNAME de 'ACCOUNTING' o 'RESEARCH', ordena els resultats pel nom del departament &lt;br /&gt;
&lt;br /&gt;
13. Calcula per cada Job la mitja del salari i  la mitja del salari amb les comissions. &lt;br /&gt;
&lt;br /&gt;
14. Llista els 5 empleats que cobren menys salari ordenats per salari de menor a major. &lt;br /&gt;
&lt;br /&gt;
15. Mostreu nom i número de departament de tots els analistes, managers i oficinistes, que guanyin més de 1000 €. &lt;br /&gt;
&lt;br /&gt;
16. Mostreu el nom i mesos sencers (nom de columna) treballats de tots els empleats que no pertanyen els departaments 10 i 30 . Ordenats per mesos de forma descendent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Entregar un zip amb el document amb les consultes i el resultat de la seva execució.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Entorn gràfic DDL: Query Builder==&lt;br /&gt;
&lt;br /&gt;
:'''DATA LÍMIT D'ENTREGA: 07/12/2022'''&lt;br /&gt;
:'''HORA: 23:55'''&lt;br /&gt;
:'''NOMS DOCUMENTS: Pr_DDL_(cognoms separats per guió).pdf''' i  '''Pr_script_(cognoms separats per guió).sql'''&lt;br /&gt;
:'''QUALIFICACIÓ:''' Cada grup indicarà el percentatge d'implicació en la resolució de la pràctica.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://github.com/juan-bol/Modelado Data Modeler]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Heu de lliurar dos documents: el primer en format &amp;quot;.pdf&amp;quot; contindrà el model amb la descripció de taules, camps, propietats i restriccions en format taula (com en l'exercici resum); el segon document &amp;quot;.sql&amp;quot; serà un script que contindrà totes les instruccions DDL de totes les taules i constraints, i cinc inserts de registres per a cada una de les taules. Abans de fer l'entrega cal que comproveu que el script funciona correctament, executant-lo amb el Oracle SQL Developer. &lt;br /&gt;
&lt;br /&gt;
Es valorarà:&lt;br /&gt;
&lt;br /&gt;
:* Taules i camps: &lt;br /&gt;
::'''2 punts'''&lt;br /&gt;
:* Constraints:&lt;br /&gt;
::'''2 punts''' &lt;br /&gt;
:* Utilització de recursos: seqüències, valors per defecte, funcions, diferents tipus de insercions...&lt;br /&gt;
::'''1 punt'''&lt;br /&gt;
:* Dades escollides per fer els INSERTS. &lt;br /&gt;
::'''1 punt'''&lt;br /&gt;
:* Funcionament i contingut del script. &lt;br /&gt;
::'''2 punts'''&lt;br /&gt;
:* Presentació dels documents. '''Guia d'estil'''&lt;br /&gt;
::'''2 punts'''&lt;br /&gt;
&lt;br /&gt;
:* Tots els membres del grup han de poder explicar tots els aspectes del cas lliurat.&lt;br /&gt;
&lt;br /&gt;
'''Casos i grup assignat a cada cas:'''&lt;br /&gt;
&lt;br /&gt;
1- Museu.  &lt;br /&gt;
:'''GRUP 1:''' Roger T. (R), Raúl Teran (R), Daniel Sebastian A.(R)&lt;br /&gt;
&lt;br /&gt;
2- Cursos de català, nivells i professors. &lt;br /&gt;
:'''GRUP 2:''' Abel V. (R), David P (R), Franc V (R)&lt;br /&gt;
&lt;br /&gt;
3- Restaurants, reserves, i clients.&lt;br /&gt;
&lt;br /&gt;
4- Equips, jugadors i resultats.&lt;br /&gt;
&lt;br /&gt;
5- Rutes i etapes.&lt;br /&gt;
:'''GRUP 3:''' Jay P (R), Terry Justin R. (R), Ángel Alejandro P. (R)&lt;br /&gt;
&lt;br /&gt;
6- Xarxa de municipis, ajuntaments amb varis municipis i comarques. &lt;br /&gt;
:'''GRUP 4:''' Sergio J. (M), Edison Crespo (M), Jhosett Carol (M)&lt;br /&gt;
:'''GRUP 5:''' Kilian Z. (R), Julio S. (R)&lt;br /&gt;
&lt;br /&gt;
7- Ascensions, pics, serralades i països&lt;br /&gt;
&lt;br /&gt;
8- Curses, corredors, classificacions de curses i de campionats. &lt;br /&gt;
&lt;br /&gt;
9- Borsa i inversions.&lt;br /&gt;
&lt;br /&gt;
10- Incidències. &lt;br /&gt;
:'''GRUP 7:''' Mounir Hakim(M)&lt;br /&gt;
:'''GRUP 6:''' Yinesa S. (M), Rajeev R. (R), Mohammad Omar A. (R)&lt;br /&gt;
&lt;br /&gt;
11- Hospital &lt;br /&gt;
&lt;br /&gt;
12- Esports  &lt;br /&gt;
:'''GRUP 8:''' Josep Izquierdo (M), Kevin Jiménez (M)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enunciats'''&lt;br /&gt;
&lt;br /&gt;
1- Museu. &lt;br /&gt;
&lt;br /&gt;
Es desitgen introduir les dades de totes les peces d'un museu, tot especificant-ne el tipus de peça de què es tracta, una descripció de la peça, l'any aproximat o documentat d'origen de la peça, la procedència de la mateixa, la secció on s'emmagatzema, l'estat de conservació, etc. Podeu suposar que cada secció del museu tindrà assignat un responsable. &lt;br /&gt;
&lt;br /&gt;
2- Cursos de català, nivells i professors.&lt;br /&gt;
 &lt;br /&gt;
Tenim que desenvolupar una aplicació per guardar les titulacions de català de tots els professors d'ensenyament públic, de cada professor hem d'emmagatzemar les seves dades personals i de contacte. Hem de poder consultar  l'any que es va aprovar el certificat o curs i a quin centre es va examinar. De cada centre hem de guardar l'adreça completa. De cada curs volem guardar també les àrees que té un curs, per exemple:&lt;br /&gt;
&lt;br /&gt;
Nivell D&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;250 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Àrea&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;250 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Percentatge de cada àrea en&lt;br /&gt;
relació amb el total de la prova&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;80 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Temps&lt;br /&gt;
|-&lt;br /&gt;
|Comprensió lectora i expressió escrita||12%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Expressió escrita||20%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Coneixements pràctics i teòrics del sistema lingüístic||30%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Coneixements del marc sociolingüístic i històric de la llengua||13%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Expressió oral||25%||10 min&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3-  Restaurants, reserves, i clients. &lt;br /&gt;
&lt;br /&gt;
En una cadena de restaurants necessitem emmagatzemar les reserves que es realitzen mitjançant un TPV (Terminal Punt de Venda). &lt;br /&gt;
De cada reserva volem saber el client que l'ha fet, la taula, número de persones, quin restaurant i la franja horària. D'un client necessitem el nom, cognoms, adreça,  telèfon i correu electrònic. &lt;br /&gt;
&lt;br /&gt;
4- Equips, jugadors i resultats. &lt;br /&gt;
&lt;br /&gt;
Comencem a fer una aplicació per la Lliga Catalana d'Ultimate, hem d'emmagatzemar els equips que hi participen, especificant el seu nom, la població on pertanyen, la data de creació, una adreça completa per l'enviament de correu postal, la web i un correu electrònic de contacte. De cada equip volem saber els jugadors que hi pertanyen amb les dades personals de cada jugador (data de naixement, gènere, correu electrònic, lloc de naixement, país i el que cregueu convenient). &lt;br /&gt;
La lliga consta de jornades i a cada jornada un equip disputa varis partits dels quals volem emmagatzemar els resultats. &lt;br /&gt;
&lt;br /&gt;
5- Rutes i etapes. &lt;br /&gt;
&lt;br /&gt;
Anem a fer una web tipus wikiloc de rutes de btt, senderisme, piragüisme, etc. La millora que volem implementar és que una ruta consta de varies etapes i a cada etapa guardem la distància, el temps emprat aproximat, desnivell acumulat, data de creació i la dificultat. Cada etapa té associades les poblacions per on passa i de cada població guardem els punts d'interès turístic, com per exemple, museu d'art contemporani amb entrada a 3 euros  i obert tots els matins de 10:00h a 14:00h. &lt;br /&gt;
&lt;br /&gt;
6- Xarxa de municipis, ajuntaments amb varis municipis i comarques. &lt;br /&gt;
&lt;br /&gt;
La generalitat de Catalunya vol publicar una base de dades amb les dades dels municipis de Catalunya per a que la població en pugui fer ús. &lt;br /&gt;
Un municipi pertany a només una comarca i a un ajuntament, i un ajuntament pot tenir varis municipis. &lt;br /&gt;
De cada població publicarem el número d'habitants, altitud, superfície habitada, superfície total. De cada població volem publicar els edificis monumentals que té publicant el nom, la data de construcció i la descripció. &lt;br /&gt;
&lt;br /&gt;
7- Ascensions, pics, serralades i països &lt;br /&gt;
&lt;br /&gt;
Kilian Jornet vol dissenyar una aplicació per la seva web on mostri totes les curses de muntanya on ha participat. Per això de cada cursa volem guardar la posició, el temps, el país, la data i els pics per on ha passat la cursa amb la seva alçada, latitud, serralada a la que pertany i la data de la seva primera ascensió. De les serralades volem mostrar la superfície i els països als que pertany. &lt;br /&gt;
&lt;br /&gt;
8- Curses, corredors, classificacions de curses i de campionats. &lt;br /&gt;
&lt;br /&gt;
Una empresa que organitza curses de córrer. Per a fer això necessita una base de dades on pugui guardar tots els corredors inscrits, amb les seves dades de contacte i les dades necessàries per fer les categories per sexe i edat. La empresa gestionarà varies curses en diferents dates i edicions, de cada cursa volem saber la localitat, província i país on es celebra, la distància i el desnivell acumulat. De cada cursa ha de guardar la posició i el temps emprat en fer-la. &lt;br /&gt;
&lt;br /&gt;
9- Borsa i inversions.&lt;br /&gt;
&lt;br /&gt;
Una gestoria s'encarrega de fer inversions en borsa amb el patrimoni de varis clients. De cada client hem de saber les seves dades de contacte i quantitat de diners que té en metàl·lic. Per una altra banda tenim les dades de totes les empreses que cotitzen en borsa com codi, mercat (ibex, eurostock ...), preu, variació, volum i última data/hora de modificació.&lt;br /&gt;
Quan fem una inversió d'un client necessitem saber l'acció que s'ha comprat o venut, el seu estat (compra o venda), la data , el número d'accions i l'import &lt;br /&gt;
&lt;br /&gt;
10- Incidències&lt;br /&gt;
&lt;br /&gt;
Una botiga online  de productes de electrònics ha vist la necessitat d'instal·lar en la seva web un sistema d'incidències per als seus usuaris. El sistema té els usuaris registrats amb el seu nickname, contrasenya, dades personals, adreça i data de naixement. Tots els usuaris registrats poden introduir incidències sobre un producte que hagin comprat, és per això que necessitem tenir tots els productes en la mateixa base de dades amb el seu codi, descripció i preu. També l'usuari ha de poder fer una comanda amb els productes que hagi comprat, quantitat, data de la comanda i el preu parcial per producte i el total  de la comanda. &lt;br /&gt;
&lt;br /&gt;
11- Hospital&lt;br /&gt;
&lt;br /&gt;
Una mútua dentista ha crescut molt durant els últims anys, i és per això que vol informatitzar tota la informació que ara enregistra amb fitxes de paper i llibres de visites.&lt;br /&gt;
Quan un client pot concertar telefònicament visites a un dels centres que disposa la mútua, sobre la visita necessitem saber les dades del pacient, el tipus de tractament a fer, la data i la hora.&lt;br /&gt;
Del pacient necessitem saber les dades de contacte, el número de seguretat social i l'edat. &lt;br /&gt;
Dels centres de la mútua necessitem saber els horaris que està obert, l'adreça i dades de contacte.&lt;br /&gt;
&lt;br /&gt;
12- Esports&lt;br /&gt;
&lt;br /&gt;
Tenim que desenvolupar una aplicació per gestionar lligues de hoquei, handbol, bàsquet, ultimate i waterpolo. Pot ser que més endavant hàgim d'incloure algun esport minoritari com per exemple el futbol. De cada lliga volem gestionar els equips, les jornades i els resultats dels partits. &lt;br /&gt;
De cada equip necessitem saber la localitat, l'estadi o pavelló on juga i la data de fundació de l'equip. Les jornades es celebren en 1 dia concret i dels partits sempre guardarem la data i l'hora que comença.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=17060</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=17060"/>
				<updated>2023-01-25T15:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=17059</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=17059"/>
				<updated>2023-01-25T15:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
** M9 - Implantació d'aplicacions web|ASIX-M9&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=16564</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=16564"/>
				<updated>2022-05-13T08:56:59Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* == */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://canal.uned.es/video/5e62285b5578f259600573d2 Protecció de dades en un món digital]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 16/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 23/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 31/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
Data: 28/05/21&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_b%C3%A0sica&amp;diff=16524</id>
		<title>M3 - Programació bàsica</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_b%C3%A0sica&amp;diff=16524"/>
				<updated>2022-05-06T11:29:32Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* == */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://drive.google.com/file/d/1sTKS-MNYiOJWisUQnA4em4TE7flgNrEq/view?usp=sharing Perquè un Administrador de Sistemes necessita aprendre a programar? i perquè Python és un bon llenguatge de programació per a Administradors de Sistemes?]&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 1: Programació estructurada===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF1-A1|A1. Elements d'un programa informàtic]] &lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A1-Exercicis|A1.1 Exercicis seqüencials]] / [[ASIX-M3-UF1-A1-Solucions| Solucions]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF1-A2|A2. Estructures de control. Algorismes iteratius]] &lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.1-Exercicis estructura alternativa|A2.1 Exercicis estructura alternativa]] / [[ASIX-M3-UF1-A2.1-Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.2-Exercicis avaluar expressions lògiques|A2.2 Exercicis avaluar expressions lògiques]] / [[ASIX-M3-UF1-A2.2-Solucions Exercicis avaluar expressions lògiques|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.3-Exercicis trobar expressions lògiques|A2.3 Exercicis trobar expressions lògiques]] / [[ASIX-M3-UF1-A2.3-Solucions Exercicis trobar expressions lògiques|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.4-Exercicis estructura iterativa: for|A2.4 Exercicis estructura iterativa: for]] &amp;lt;!--/ [[ASIX-M3-UF1-A2.4-Solucions Exercicis estructura iterativa: for|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.5-Exercicis estructura iterativa: recorregut|A2.5 Exercicis estructura iterativa: recorregut]]  &amp;lt;!--/ [[ASIX-M3-UF1-A2.5-Solucions Exercicis estructura iterativa: recorregut|Solucions]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.6-Exercicis estructura iterativa: cerca|A2.6 Exercicis estructura iterativa: cerca]]  &amp;lt;!--/ [[ASIX-M3-UF1-A2.6-Solucions Exercicis estructura iterativa: cerca|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*A3. Prova pràctica Pp1&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[ASIX-M3-UF1-A4|A4. Tipus de dades estructurats]] &amp;lt;!-- -- Pràctica Pt1--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.1-Exercicis cadenes|A4.1 Exercicis cadenes]] / [[ASIX-M3-UF1-A4.1- Solucions Exercicis cadenes|Solucions]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.2-Exercicis llistes|A4.2 Exercicis llistes]] / [[ASIX-M3-UF1-A4.2- Solucions Exercicis llistes|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.3-Exercicis diccionaris|A4.3 Exercicis diccionaris]] / [[ASIX-M3-UF1-A4.3- Solucions Exercicis diccionaris|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.4-Exercicis tuples|A4.4 Exercicis tuples]] &amp;lt;!-- / [[ASIX-M3-UF1-A4.4- Solucions Exercicis tuples|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.5-Exercicis classes|A4.5 Exercicis classes]] &amp;lt;!-- / [[ASIX-M3-UF1-A4.5- Solucions Exercicis classes|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*A5. Prova pràctica Pp2&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::'''Nota UF1''' = 45% Pp1 + 45% Pp2 + 10% Pt1&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF1-A2-Repàs estructures de control | Repàs estructures de control]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/josedom24/curso_programacion_python3/tree/master/ejercicios/diccionarios&lt;br /&gt;
https://plataforma.josedomingo.org/pledin/cursos/python3/curso/u35/&lt;br /&gt;
https://catedu.gitbooks.io/python-for-person-in-everybody/content/es/09-dictionaries.html#exercises&lt;br /&gt;
&lt;br /&gt;
[[https://colab.research.google.com/drive/15C6ppKs-FP_wpm8oucV38MurZnU9YBsY?usp=sharing Conceptes inicials]]&lt;br /&gt;
&lt;br /&gt;
[[https://campus.lamerce.com/mod/resource/view.php?id=8553 Què és un Algoritme?]]&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 2: Disseny modular===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF2-A1|A1. Disseny descendent]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A1.1-Exercicis disseny descendent|A1.1 Exercicis disseny descendent]] &lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF2-A2|A2. Paquets]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A2.1-Pràctiques paquets|A2.1 Pràctiques paquets]]&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF2-A3|A3. Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A3.1-Exercicis recursivitat|A3.1 Exercicis recursivitat]] /&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A3.2-Pràctiques recursivitat|A3.2 Pràctica recursivitat]]&lt;br /&gt;
&lt;br /&gt;
:*A4. Prova pràctica&lt;br /&gt;
&lt;br /&gt;
https://uniwebsidad.com/libros/algoritmos-python/capitulo-6/nuestro-primer-juego&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3: Fonaments de gestió de fitxers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF3-A1|A1. Gestió de fitxers i directoris]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF3-A1.1-Gestió de fitxers i directoris|A1.1 Exercicis gestió de fitxers i directoris]] / [[ASIX-M3-UF3-A1.1- Solucions Gestió de fitxers i directoris|Solucions]]&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF3-A2|A2. Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF3-A2.1-Exercicis fitxers de text|A2.1 Exercicis fitxers de text]] / [[ASIX-M3-UF3-A2.1- Solucions Exercicis fitxers de text|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF3-A2.2-Pràctica fitxers de text|A2.2 Pràctica fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*A3. Prova pràctica&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
[https://users.astro.ufl.edu/~warner/prog/python.html Python Basics]&lt;br /&gt;
&lt;br /&gt;
[https://issuu.com/universitatjaumei/docs/sapientia_93 Llibre Introducció a la programació amb Python3]&lt;br /&gt;
&lt;br /&gt;
[https://www.mclibre.org/consultar/python/ Apunts Pythons]&lt;br /&gt;
&lt;br /&gt;
[https://docs.python.org/es/3/ Documentació Python versions]&lt;br /&gt;
&lt;br /&gt;
[https://www.sololinux.es/informacion-del-sistema-con-python/ Informació del Sistema amb Python]&lt;br /&gt;
&lt;br /&gt;
[https://aprendeconalf.es/docencia/python/ejercicios/ Exercicis resolts]&lt;br /&gt;
&lt;br /&gt;
[http://patriciaemiguel.com/ejercicios/python/2019/03/10/ejercicios-buclewhile-python.html + Exercicis resolts]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/josedom24/python_for_admin Exercicis per administradors]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://inventwithpython.com/es/ jocs]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_b%C3%A0sica&amp;diff=16523</id>
		<title>M3 - Programació bàsica</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_b%C3%A0sica&amp;diff=16523"/>
				<updated>2022-05-06T11:26:24Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* == */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[https://drive.google.com/file/d/1sTKS-MNYiOJWisUQnA4em4TE7flgNrEq/view?usp=sharing Perquè un Administrador de Sistemes necessita aprendre a programar? i perquè Python és un bon llenguatge de programació per a Administradors de Sistemes?]&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 1: Programació estructurada===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF1-A1|A1. Elements d'un programa informàtic]] &lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A1-Exercicis|A1.1 Exercicis seqüencials]] / [[ASIX-M3-UF1-A1-Solucions| Solucions]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF1-A2|A2. Estructures de control. Algorismes iteratius]] &lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.1-Exercicis estructura alternativa|A2.1 Exercicis estructura alternativa]] / [[ASIX-M3-UF1-A2.1-Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.2-Exercicis avaluar expressions lògiques|A2.2 Exercicis avaluar expressions lògiques]] / [[ASIX-M3-UF1-A2.2-Solucions Exercicis avaluar expressions lògiques|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.3-Exercicis trobar expressions lògiques|A2.3 Exercicis trobar expressions lògiques]] / [[ASIX-M3-UF1-A2.3-Solucions Exercicis trobar expressions lògiques|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.4-Exercicis estructura iterativa: for|A2.4 Exercicis estructura iterativa: for]] &amp;lt;!--/ [[ASIX-M3-UF1-A2.4-Solucions Exercicis estructura iterativa: for|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.5-Exercicis estructura iterativa: recorregut|A2.5 Exercicis estructura iterativa: recorregut]]  &amp;lt;!--/ [[ASIX-M3-UF1-A2.5-Solucions Exercicis estructura iterativa: recorregut|Solucions]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A2.6-Exercicis estructura iterativa: cerca|A2.6 Exercicis estructura iterativa: cerca]]  &amp;lt;!--/ [[ASIX-M3-UF1-A2.6-Solucions Exercicis estructura iterativa: cerca|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*A3. Prova pràctica Pp1&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[ASIX-M3-UF1-A4|A4. Tipus de dades estructurats]] &amp;lt;!-- -- Pràctica Pt1--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.1-Exercicis cadenes|A4.1 Exercicis cadenes]] / [[ASIX-M3-UF1-A4.1- Solucions Exercicis cadenes|Solucions]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.2-Exercicis llistes|A4.2 Exercicis llistes]] / [[ASIX-M3-UF1-A4.2- Solucions Exercicis llistes|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.3-Exercicis diccionaris|A4.3 Exercicis diccionaris]] / [[ASIX-M3-UF1-A4.3- Solucions Exercicis diccionaris|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.4-Exercicis tuples|A4.4 Exercicis tuples]] &amp;lt;!-- / [[ASIX-M3-UF1-A4.4- Solucions Exercicis tuples|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF1-A4.5-Exercicis classes|A4.5 Exercicis classes]] &amp;lt;!-- / [[ASIX-M3-UF1-A4.5- Solucions Exercicis classes|Solucions]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*A5. Prova pràctica Pp2&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
::'''Nota UF1''' = 45% Pp1 + 45% Pp2 + 10% Pt1&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF1-A2-Repàs estructures de control | Repàs estructures de control]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/josedom24/curso_programacion_python3/tree/master/ejercicios/diccionarios&lt;br /&gt;
https://plataforma.josedomingo.org/pledin/cursos/python3/curso/u35/&lt;br /&gt;
https://catedu.gitbooks.io/python-for-person-in-everybody/content/es/09-dictionaries.html#exercises&lt;br /&gt;
&lt;br /&gt;
[[https://colab.research.google.com/drive/15C6ppKs-FP_wpm8oucV38MurZnU9YBsY?usp=sharing Conceptes inicials]]&lt;br /&gt;
&lt;br /&gt;
[[https://campus.lamerce.com/mod/resource/view.php?id=8553 Què és un Algoritme?]]&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 2: Disseny modular===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF2-A1|A1. Disseny descendent]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A1.1-Exercicis disseny descendent|A1.1 Exercicis disseny descendent]] &lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF2-A2|A2. Paquets]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A2.1-Pràctiques paquets|A2.1 Pràctiques paquets]]&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF2-A3|A3. Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A3.1-Exercicis recursivitat|A3.1 Exercicis recursivitat]] /&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF2-A3.2-Pràctiques recursivitat|A3.2 Pràctica recursivitat]]&lt;br /&gt;
&lt;br /&gt;
:*A4. Prova pràctica&lt;br /&gt;
&lt;br /&gt;
https://uniwebsidad.com/libros/algoritmos-python/capitulo-6/nuestro-primer-juego&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3: Fonaments de gestió de fitxers===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF3-A1|A1. Gestió de fitxers i directoris]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF3-A1.1-Gestió de fitxers i directoris|A1.1 Exercicis gestió de fitxers i directoris]] / [[ASIX-M3-UF3-A1.1- Solucions Gestió de fitxers i directoris|Solucions]]&lt;br /&gt;
&lt;br /&gt;
:*[[ASIX-M3-UF3-A2|A2. Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF3-A2.1-Exercicis fitxers de text|A2.1 Exercicis fitxers de text]] / [[ASIX-M3-UF3-A2.1- Solucions Exercicis fitxers de text|Solucions]]&lt;br /&gt;
&lt;br /&gt;
::*[[ASIX-M3-UF3-A2.2-Pràctica fitxers de text|A2.2 Pràctica fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*A3. Prova pràctica&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
[https://users.astro.ufl.edu/~warner/prog/python.html Python Basics]&lt;br /&gt;
&lt;br /&gt;
[https://issuu.com/universitatjaumei/docs/sapientia_93 Llibre Introducció a la programació amb Python3]&lt;br /&gt;
&lt;br /&gt;
[https://www.mclibre.org/consultar/python/ Apunts Pythons]&lt;br /&gt;
&lt;br /&gt;
[https://docs.python.org/es/3/ Documentació Python versions]&lt;br /&gt;
&lt;br /&gt;
[https://www.sololinux.es/informacion-del-sistema-con-python/ Informació del Sistema amb Python]&lt;br /&gt;
&lt;br /&gt;
[https://aprendeconalf.es/docencia/python/ejercicios/ Exercicis resolts]&lt;br /&gt;
&lt;br /&gt;
[http://patriciaemiguel.com/ejercicios/python/2019/03/10/ejercicios-buclewhile-python.html + Exercicis resolts]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/josedom24/python_for_admin Exercicis per administradors]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://inventwithpython.com/es/ jocs]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF1-Banc de Solucions|BSUF1]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF2-Banc de Solucions|BSUF2]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF3-Banc de Solucions|BSUF3]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
/ [[ASIX-M3-UF1-A2.1- Solucions Exercicis estructura alternativa|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.1- Solucions Exercicis disseny descendent|Solucions]]&lt;br /&gt;
/ [[ASIX-M3-UF2-A3.1- Solucions Exercicis recursivitat|Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
/ [[ASIX-M3-UF2-A1.2-Pràctiques disseny descendent|A1.2 Pràctiques disseny descendent]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF2-Proves|BPUF2]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ASIX-M3-UF3-Proves|BPUF3]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves Cadenes|BPUF1-Cadenes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16522</id>
		<title>M3 - Programació estructurada / Continguts UF3: Fitxers de text</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16522"/>
				<updated>2022-05-05T14:01:41Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Arxius de text seqüencials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Arxius de text seqüencials==&lt;br /&gt;
===Creació d’un arxiu de text d’accés seqüencial===&lt;br /&gt;
&lt;br /&gt;
Exemple: arxiu de comptes pendents de cobrament. &lt;br /&gt;
&lt;br /&gt;
El programa suposa que l'usuari introdueix els registres en ordre de número de compte.&lt;br /&gt;
&lt;br /&gt;
'''Formatter'''&lt;br /&gt;
&lt;br /&gt;
:*Objecte que permet enviar dades a diverses ubicacions, com la pantalla o a un arxiu.&lt;br /&gt;
&lt;br /&gt;
:*Es crea amb la ruta del arxiu. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sortida = new Formatter(&amp;quot;clients.txt&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Consideracions:'''&lt;br /&gt;
&lt;br /&gt;
:*Per defecte els arxius es troben en el directori des del qual es va executar el programa.&lt;br /&gt;
:*Si l'arxiu no existeix, es crearà.&lt;br /&gt;
:*Si s'obre un arxiu existent, el seu contingut es sobrescriu. En aquest punt, l'arxiu s'obre per a escriptura i l'objecte Formatter resultant es pot utilitzar per escriure dades en l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode format'''&lt;br /&gt;
&lt;br /&gt;
:*Pot efectuar un format idèntic al del mètode '''System.out.printf'''.&lt;br /&gt;
:*Envia una cadena amb format a la destinació de sortida de l'objecte Formatter&lt;br /&gt;
:*La cadena de format &amp;quot;%d %s %s %.2f&amp;quot; indica que el registre actual s'emmagatzemarà com un enter (el número de compte) seguit d'una cadena (el primer nom), una altra cadena (el cognom) i un valor real (el saldo).&lt;br /&gt;
:*Cada peça d'informació se separa de la següent, mitjançant un espai. &lt;br /&gt;
:*El valor del tipus double (el saldo) s'imprimeix amb dos dígits a la dreta del punt decimal.&lt;br /&gt;
:*Les dades en l'arxiu de text es poden veure amb un editor, o posteriorment mitjançant un programa dissenyat per llegir l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode close'''&lt;br /&gt;
&lt;br /&gt;
:*Tanca l'objecte Formatter i l'arxiu de sortida subjacent.&lt;br /&gt;
:*Si el mètode '''close''' no es crida en forma explícita, el sistema operatiu normalment tanca l'arxiu quan el programa acaba d'executar-se.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Per provar l'exemple, creeu la carpeta FitxersText dins la carpeta NetBeansProjects&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.util.Formatter;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
   public class CrearArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Formatter sortida;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
     &lt;br /&gt;
       sortida = new Formatter(&amp;quot;../FitxersText/clients.txt&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void agregarRegistres() {&lt;br /&gt;
       &lt;br /&gt;
       String cognom, nom;&lt;br /&gt;
       double saldo;&lt;br /&gt;
       int compte = 1;&lt;br /&gt;
       Scanner entrada = new Scanner(System.in);&lt;br /&gt;
       System.out.println(&amp;quot;Per finalitzar l'entrada, escriu un número de compte negatiu&amp;quot;);&lt;br /&gt;
       System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
       while (compte &amp;gt; 0 &amp;amp;&amp;amp; entrada.hasNextInt()) {&lt;br /&gt;
         compte = entrada.nextInt();&lt;br /&gt;
         if (compte &amp;gt; 0) {&lt;br /&gt;
           nom = entrada.next();&lt;br /&gt;
           cognom = entrada.next();&lt;br /&gt;
           saldo = entrada.nextDouble();&lt;br /&gt;
           sortida.format(&amp;quot;%d %s %s %.2f\n&amp;quot;, compte, nom, cognom, saldo);&lt;br /&gt;
           System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (sortida != null) {&lt;br /&gt;
         sortida.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
&lt;br /&gt;
   public class ProvaCrearArxiuText {&lt;br /&gt;
 &lt;br /&gt;
     public static void main(String args[]) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       CrearArxiuText aplicacio = new CrearArxiuText();&lt;br /&gt;
       aplicacio.obrirArxiu();&lt;br /&gt;
       aplicacio.agregarRegistres();&lt;br /&gt;
       aplicacio.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La sentència '''throws FileNotFoundException''' que apareix en els dos fitxers anterior, està indicant que es pot produir una excepció de fitxer no trobat. Quan treballem amb fitxers es poden produir diferents tipus d'excepcions (fitxer no trobat, falta de permisos, etc) que fa que el programa no funcioni amb normalitat. És responsabilitat del programador gestionar aquestes excepcions. Aquí no ho estem fent ja que el tema de control d'excepcions es veu més endavant, però cal tenir clar que la forma com es presenta el codi en aquests exemples '''NO''' és la forma correcta de fer-ho.&lt;br /&gt;
&lt;br /&gt;
===Lectura de dades d’un arxiu de text seqüencial===&lt;br /&gt;
&lt;br /&gt;
:*Objecte '''Scanner:''' per obtenir les dades d'entrada de l'arxiu.&lt;br /&gt;
:*Obrir arxiu en mode lectura. Passem un objecte File al constructor que especifica des d'on es llegiran les dades.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*Si no troba l'arxiu es provoca una excepció.&lt;br /&gt;
:*Lectura fins a fi d'arxiu (el mètode '''hasNext''' retornarà fals)&lt;br /&gt;
:*Cada registre és una línia de dades.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package provallegirarxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
   public class LlegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Scanner entrada;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       entrada = new Scanner(new File(&amp;quot;../FitxersText/clients.txt&amp;quot;));&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void llegirRegistres() {&lt;br /&gt;
&lt;br /&gt;
       System.out.printf(&amp;quot;%-9s%-15s%-18s%10s\n&amp;quot;,&amp;quot;Compte&amp;quot;,&amp;quot;Nom&amp;quot;,&amp;quot;Cognom&amp;quot;,&amp;quot;Saldo&amp;quot;);&lt;br /&gt;
       while (entrada.hasNext()) {&lt;br /&gt;
         int compte = entrada.nextInt();&lt;br /&gt;
         String nom = entrada.next();&lt;br /&gt;
         String cognom = entrada.next();&lt;br /&gt;
         double saldo = entrada.nextDouble();&lt;br /&gt;
         System.out.printf(&amp;quot;%-9d%-15s%-18s%10.2f\n&amp;quot;,compte, nom, cognom, saldo);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (entrada != null) {&lt;br /&gt;
         entrada.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
----&lt;br /&gt;
package provallegirarxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
&lt;br /&gt;
   public class ProvaLLegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   public static void main(String[] args) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       LlegirArxiuText l= new LlegirArxiuText();&lt;br /&gt;
       l.obrirArxiu();&lt;br /&gt;
       l.llegirRegistres();&lt;br /&gt;
       l.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16521</id>
		<title>M3 - Programació estructurada / Continguts UF3: Fitxers de text</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16521"/>
				<updated>2022-05-05T13:50:42Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Lectura de dades d’un arxiu de text seqüencial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Arxius de text seqüencials==&lt;br /&gt;
===Creació d’un arxiu de text d’accés seqüencial===&lt;br /&gt;
&lt;br /&gt;
Exemple: arxiu de comptes pendents de cobrament. &lt;br /&gt;
&lt;br /&gt;
El programa suposa que l'usuari introdueix els registres en ordre de número de compte.&lt;br /&gt;
&lt;br /&gt;
'''Formatter'''&lt;br /&gt;
&lt;br /&gt;
:*Objecte que permet enviar dades a diverses ubicacions, com la pantalla o a un arxiu.&lt;br /&gt;
&lt;br /&gt;
:*Es crea amb la ruta del arxiu. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sortida = new Formatter(&amp;quot;clients.txt&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Consideracions:'''&lt;br /&gt;
&lt;br /&gt;
:*Per defecte els arxius es troben en el directori des del qual es va executar el programa.&lt;br /&gt;
:*Si l'arxiu no existeix, es crearà.&lt;br /&gt;
:*Si s'obre un arxiu existent, el seu contingut es sobrescriu. En aquest punt, l'arxiu s'obre per a escriptura i l'objecte Formatter resultant es pot utilitzar per escriure dades en l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode format'''&lt;br /&gt;
&lt;br /&gt;
:*Pot efectuar un format idèntic al del mètode '''System.out.printf'''.&lt;br /&gt;
:*Envia una cadena amb format a la destinació de sortida de l'objecte Formatter&lt;br /&gt;
:*La cadena de format &amp;quot;%d %s %s %.2f&amp;quot; indica que el registre actual s'emmagatzemarà com un enter (el número de compte) seguit d'una cadena (el primer nom), una altra cadena (el cognom) i un valor real (el saldo).&lt;br /&gt;
:*Cada peça d'informació se separa de la següent, mitjançant un espai. &lt;br /&gt;
:*El valor del tipus double (el saldo) s'imprimeix amb dos dígits a la dreta del punt decimal.&lt;br /&gt;
:*Les dades en l'arxiu de text es poden veure amb un editor, o posteriorment mitjançant un programa dissenyat per llegir l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode close'''&lt;br /&gt;
&lt;br /&gt;
:*Tanca l'objecte Formatter i l'arxiu de sortida subjacent.&lt;br /&gt;
:*Si el mètode '''close''' no es crida en forma explícita, el sistema operatiu normalment tanca l'arxiu quan el programa acaba d'executar-se.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.util.Formatter;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
   public class CrearArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Formatter sortida;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
     &lt;br /&gt;
       sortida = new Formatter(&amp;quot;clients.txt&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void agregarRegistres() {&lt;br /&gt;
       &lt;br /&gt;
       String cognom, nom;&lt;br /&gt;
       double saldo;&lt;br /&gt;
       int compte = 1;&lt;br /&gt;
       Scanner entrada = new Scanner(System.in);&lt;br /&gt;
       System.out.println(&amp;quot;Per finalitzar l'entrada, escriu un número de compte negatiu&amp;quot;);&lt;br /&gt;
       System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
       while (compte &amp;gt; 0 &amp;amp;&amp;amp; entrada.hasNextInt()) {&lt;br /&gt;
         compte = entrada.nextInt();&lt;br /&gt;
         if (compte &amp;gt; 0) {&lt;br /&gt;
           nom = entrada.next();&lt;br /&gt;
           cognom = entrada.next();&lt;br /&gt;
           saldo = entrada.nextDouble();&lt;br /&gt;
           sortida.format(&amp;quot;%d %s %s %.2f\n&amp;quot;, compte, nom, cognom, saldo);&lt;br /&gt;
           System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (sortida != null) {&lt;br /&gt;
         sortida.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
&lt;br /&gt;
   public class ProvaCrearArxiuText {&lt;br /&gt;
 &lt;br /&gt;
     public static void main(String args[]) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       CrearArxiuText aplicacio = new CrearArxiuText();&lt;br /&gt;
       aplicacio.obrirArxiu();&lt;br /&gt;
       aplicacio.agregarRegistres();&lt;br /&gt;
       aplicacio.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La sentència '''throws FileNotFoundException''' que apareix en els dos fitxers anterior, està indicant que es pot produir una excepció de fitxer no trobat. Quan treballem amb fitxers es poden produir diferents tipus d'excepcions (fitxer no trobat, falta de permisos, etc) que fa que el programa no funcioni amb normalitat. És responsabilitat del programador gestionar aquestes excepcions. Aquí no ho estem fent ja que el tema de control d'excepcions es veu més endavant, però cal tenir clar que la forma com es presenta el codi en aquests exemples '''NO''' és la forma correcta de fer-ho.&lt;br /&gt;
&lt;br /&gt;
===Lectura de dades d’un arxiu de text seqüencial===&lt;br /&gt;
&lt;br /&gt;
:*Objecte '''Scanner:''' per obtenir les dades d'entrada de l'arxiu.&lt;br /&gt;
:*Obrir arxiu en mode lectura. Passem un objecte File al constructor que especifica des d'on es llegiran les dades.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*Si no troba l'arxiu es provoca una excepció.&lt;br /&gt;
:*Lectura fins a fi d'arxiu (el mètode '''hasNext''' retornarà fals)&lt;br /&gt;
:*Cada registre és una línia de dades.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package provallegirarxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
   public class LlegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Scanner entrada;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;));&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void llegirRegistres() {&lt;br /&gt;
&lt;br /&gt;
       System.out.printf(&amp;quot;%-9s%-15s%-18s%10s\n&amp;quot;,&amp;quot;Compte&amp;quot;,&amp;quot;Nom&amp;quot;,&amp;quot;Cognom&amp;quot;,&amp;quot;Saldo&amp;quot;);&lt;br /&gt;
       while (entrada.hasNext()) {&lt;br /&gt;
         int compte = entrada.nextInt();&lt;br /&gt;
         String nom = entrada.next();&lt;br /&gt;
         String cognom = entrada.next();&lt;br /&gt;
         double saldo = entrada.nextDouble();&lt;br /&gt;
         System.out.printf(&amp;quot;%-9d%-15s%-18s%10.2f\n&amp;quot;,compte, nom, cognom, saldo);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (entrada != null) {&lt;br /&gt;
         entrada.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
----&lt;br /&gt;
package provallegirarxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
&lt;br /&gt;
   public class ProvaLLegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   public static void main(String[] args) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       LlegirArxiuText l= new LlegirArxiuText();&lt;br /&gt;
       l.obrirArxiu();&lt;br /&gt;
       l.llegirRegistres();&lt;br /&gt;
       l.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16520</id>
		<title>M3 - Programació estructurada / Continguts UF3: Fitxers de text</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16520"/>
				<updated>2022-05-05T13:38:52Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Creació d’un arxiu de text d’accés seqüencial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Arxius de text seqüencials==&lt;br /&gt;
===Creació d’un arxiu de text d’accés seqüencial===&lt;br /&gt;
&lt;br /&gt;
Exemple: arxiu de comptes pendents de cobrament. &lt;br /&gt;
&lt;br /&gt;
El programa suposa que l'usuari introdueix els registres en ordre de número de compte.&lt;br /&gt;
&lt;br /&gt;
'''Formatter'''&lt;br /&gt;
&lt;br /&gt;
:*Objecte que permet enviar dades a diverses ubicacions, com la pantalla o a un arxiu.&lt;br /&gt;
&lt;br /&gt;
:*Es crea amb la ruta del arxiu. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sortida = new Formatter(&amp;quot;clients.txt&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Consideracions:'''&lt;br /&gt;
&lt;br /&gt;
:*Per defecte els arxius es troben en el directori des del qual es va executar el programa.&lt;br /&gt;
:*Si l'arxiu no existeix, es crearà.&lt;br /&gt;
:*Si s'obre un arxiu existent, el seu contingut es sobrescriu. En aquest punt, l'arxiu s'obre per a escriptura i l'objecte Formatter resultant es pot utilitzar per escriure dades en l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode format'''&lt;br /&gt;
&lt;br /&gt;
:*Pot efectuar un format idèntic al del mètode '''System.out.printf'''.&lt;br /&gt;
:*Envia una cadena amb format a la destinació de sortida de l'objecte Formatter&lt;br /&gt;
:*La cadena de format &amp;quot;%d %s %s %.2f&amp;quot; indica que el registre actual s'emmagatzemarà com un enter (el número de compte) seguit d'una cadena (el primer nom), una altra cadena (el cognom) i un valor real (el saldo).&lt;br /&gt;
:*Cada peça d'informació se separa de la següent, mitjançant un espai. &lt;br /&gt;
:*El valor del tipus double (el saldo) s'imprimeix amb dos dígits a la dreta del punt decimal.&lt;br /&gt;
:*Les dades en l'arxiu de text es poden veure amb un editor, o posteriorment mitjançant un programa dissenyat per llegir l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode close'''&lt;br /&gt;
&lt;br /&gt;
:*Tanca l'objecte Formatter i l'arxiu de sortida subjacent.&lt;br /&gt;
:*Si el mètode '''close''' no es crida en forma explícita, el sistema operatiu normalment tanca l'arxiu quan el programa acaba d'executar-se.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.util.Formatter;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
   public class CrearArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Formatter sortida;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
     &lt;br /&gt;
       sortida = new Formatter(&amp;quot;clients.txt&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void agregarRegistres() {&lt;br /&gt;
       &lt;br /&gt;
       String cognom, nom;&lt;br /&gt;
       double saldo;&lt;br /&gt;
       int compte = 1;&lt;br /&gt;
       Scanner entrada = new Scanner(System.in);&lt;br /&gt;
       System.out.println(&amp;quot;Per finalitzar l'entrada, escriu un número de compte negatiu&amp;quot;);&lt;br /&gt;
       System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
       while (compte &amp;gt; 0 &amp;amp;&amp;amp; entrada.hasNextInt()) {&lt;br /&gt;
         compte = entrada.nextInt();&lt;br /&gt;
         if (compte &amp;gt; 0) {&lt;br /&gt;
           nom = entrada.next();&lt;br /&gt;
           cognom = entrada.next();&lt;br /&gt;
           saldo = entrada.nextDouble();&lt;br /&gt;
           sortida.format(&amp;quot;%d %s %s %.2f\n&amp;quot;, compte, nom, cognom, saldo);&lt;br /&gt;
           System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (sortida != null) {&lt;br /&gt;
         sortida.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
&lt;br /&gt;
   public class ProvaCrearArxiuText {&lt;br /&gt;
 &lt;br /&gt;
     public static void main(String args[]) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       CrearArxiuText aplicacio = new CrearArxiuText();&lt;br /&gt;
       aplicacio.obrirArxiu();&lt;br /&gt;
       aplicacio.agregarRegistres();&lt;br /&gt;
       aplicacio.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La sentència '''throws FileNotFoundException''' que apareix en els dos fitxers anterior, està indicant que es pot produir una excepció de fitxer no trobat. Quan treballem amb fitxers es poden produir diferents tipus d'excepcions (fitxer no trobat, falta de permisos, etc) que fa que el programa no funcioni amb normalitat. És responsabilitat del programador gestionar aquestes excepcions. Aquí no ho estem fent ja que el tema de control d'excepcions es veu més endavant, però cal tenir clar que la forma com es presenta el codi en aquests exemples '''NO''' és la forma correcta de fer-ho.&lt;br /&gt;
&lt;br /&gt;
===Lectura de dades d’un arxiu de text seqüencial===&lt;br /&gt;
&lt;br /&gt;
:*Objecte '''Scanner:''' per obtenir les dades d'entrada de l'arxiu.&lt;br /&gt;
:*Obrir arxiu en mode lectura. Passem un objecte File al constructor que especifica des d'on es llegiran les dades.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*Si no troba l'arxiu es provoca una excepció.&lt;br /&gt;
:*Lectura fins a fi d'arxiu (el mètode '''hasNext''' retornarà fals)&lt;br /&gt;
:*Cada registre és una línia de dades.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   public class LlegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Scanner entrada;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;));&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void llegirRegistres() {&lt;br /&gt;
&lt;br /&gt;
       System.out.printf(&amp;quot;%-9s%-15s%-18s%10s\n&amp;quot;,&amp;quot;Compte&amp;quot;,&amp;quot;Nom&amp;quot;,&amp;quot;Cognom&amp;quot;,&amp;quot;Saldo&amp;quot;);&lt;br /&gt;
       while (entrada.hasNext()) {&lt;br /&gt;
         int compte = entrada.nextInt();&lt;br /&gt;
         String nom = entrada.next();&lt;br /&gt;
         String cognom = entrada.next();&lt;br /&gt;
         double saldo = entrada.nextDouble();&lt;br /&gt;
         System.out.printf(&amp;quot;%-9d%-15s%-18s%10.2f\n&amp;quot;,compte, nom, cognom, saldo);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (entrada != null) {&lt;br /&gt;
         entrada.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   public class ProvaLLegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   public static void main(String[] args) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       LlegirArxiuText l= new LlegirArxiuText();&lt;br /&gt;
       l.obrirArxiu();&lt;br /&gt;
       l.llegirRegistres();&lt;br /&gt;
       l.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16519</id>
		<title>M3 - Programació estructurada / Continguts UF3: Fitxers de text</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF3:_Fitxers_de_text&amp;diff=16519"/>
				<updated>2022-05-05T13:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Creació d’un arxiu de text d’accés seqüencial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Arxius de text seqüencials==&lt;br /&gt;
===Creació d’un arxiu de text d’accés seqüencial===&lt;br /&gt;
&lt;br /&gt;
Exemple: arxiu de comptes pendents de cobrament. &lt;br /&gt;
&lt;br /&gt;
El programa suposa que l'usuari introdueix els registres en ordre de número de compte.&lt;br /&gt;
&lt;br /&gt;
'''Formatter'''&lt;br /&gt;
&lt;br /&gt;
:*Objecte que permet enviar dades a diverses ubicacions, com la pantalla o a un arxiu.&lt;br /&gt;
&lt;br /&gt;
:*Es crea amb la ruta del arxiu. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sortida = new Formatter(&amp;quot;clients.txt&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Consideracions:'''&lt;br /&gt;
&lt;br /&gt;
:*Per defecte els arxius es troben en el directori des del qual es va executar el programa.&lt;br /&gt;
:*Si l'arxiu no existeix, es crearà.&lt;br /&gt;
:*Si s'obre un arxiu existent, el seu contingut es sobrescriu. En aquest punt, l'arxiu s'obre per a escriptura i l'objecte Formatter resultant es pot utilitzar per escriure dades en l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode format'''&lt;br /&gt;
&lt;br /&gt;
:*Pot efectuar un format idèntic al del mètode '''System.out.printf'''.&lt;br /&gt;
:*Envia una cadena amb format a la destinació de sortida de l'objecte Formatter&lt;br /&gt;
:*La cadena de format &amp;quot;%d %s %s %.2f&amp;quot; indica que el registre actual s'emmagatzemarà com un enter (el número de compte) seguit d'una cadena (el primer nom), una altra cadena (el cognom) i un valor real (el saldo).&lt;br /&gt;
:*Cada peça d'informació se separa de la següent, mitjançant un espai. &lt;br /&gt;
:*El valor del tipus double (el saldo) s'imprimeix amb dos dígits a la dreta del punt decimal.&lt;br /&gt;
:*Les dades en l'arxiu de text es poden veure amb un editor, o posteriorment mitjançant un programa dissenyat per llegir l'arxiu.&lt;br /&gt;
&lt;br /&gt;
'''Mètode close'''&lt;br /&gt;
&lt;br /&gt;
:*Tanca l'objecte Formatter i l'arxiu de sortida subjacent.&lt;br /&gt;
:*Si el mètode '''close''' no es crida en forma explícita, el sistema operatiu normalment tanca l'arxiu quan el programa acaba d'executar-se.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.util.Formatter;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
   public class CrearArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Formatter sortida;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
     &lt;br /&gt;
       sortida = new Formatter(&amp;quot;clients.txt&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void agregarRegistres() {&lt;br /&gt;
       &lt;br /&gt;
       String cognom, nom;&lt;br /&gt;
       double saldo;&lt;br /&gt;
       int compte = 1;&lt;br /&gt;
       Scanner entrada = new Scanner(System.in);&lt;br /&gt;
       System.out.println(&amp;quot;Per finalitzar l'entrada, escriu un número de compte negatiu&amp;quot;);&lt;br /&gt;
       System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
       while (compte &amp;gt; 0 &amp;amp;&amp;amp; entrada.hasNextInt()) {&lt;br /&gt;
         compte = entrada.nextInt();&lt;br /&gt;
         if (compte &amp;gt; 0) {&lt;br /&gt;
           nom = entrada.next();&lt;br /&gt;
           cognom = entrada.next();&lt;br /&gt;
           saldo = entrada.nextDouble();&lt;br /&gt;
           sortida.format(&amp;quot;%d %s %s %.2f\n&amp;quot;, compte, nom, cognom, saldo);&lt;br /&gt;
           System.out.println(&amp;quot;Escriu el numero de compte (&amp;gt; 0), nom, cognom i saldo.&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (sortida != null) {&lt;br /&gt;
         sortida.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
package provacreararxiutext;&lt;br /&gt;
   public class ProvaCrearArxiuText {&lt;br /&gt;
 &lt;br /&gt;
     public static void main(String args[]) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       CrearArxiuText aplicacio = new CrearArxiuText();&lt;br /&gt;
       aplicacio.obrirArxiu();&lt;br /&gt;
       aplicacio.agregarRegistres();&lt;br /&gt;
       aplicacio.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La sentència '''throws FileNotFoundException''' que apareix en els dos fitxers anterior, està indicant que es pot produir una excepció de fitxer no trobat. Quan treballem amb fitxers es poden produir diferents tipus d'excepcions (fitxer no trobat, falta de permisos, etc) que fa que el programa no funcioni amb normalitat. És responsabilitat del programador gestionar aquestes excepcions. Aquí no ho estem fent ja que el tema de control d'excepcions es veu més endavant, però cal tenir clar que la forma com es presenta el codi en aquests exemples '''NO''' és la forma correcta de fer-ho.&lt;br /&gt;
&lt;br /&gt;
===Lectura de dades d’un arxiu de text seqüencial===&lt;br /&gt;
&lt;br /&gt;
:*Objecte '''Scanner:''' per obtenir les dades d'entrada de l'arxiu.&lt;br /&gt;
:*Obrir arxiu en mode lectura. Passem un objecte File al constructor que especifica des d'on es llegiran les dades.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*Si no troba l'arxiu es provoca una excepció.&lt;br /&gt;
:*Lectura fins a fi d'arxiu (el mètode '''hasNext''' retornarà fals)&lt;br /&gt;
:*Cada registre és una línia de dades.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   public class LlegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
     private Scanner entrada;&lt;br /&gt;
&lt;br /&gt;
     public void obrirArxiu() throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       entrada = new Scanner(new File(&amp;quot;clients.txt&amp;quot;));&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void llegirRegistres() {&lt;br /&gt;
&lt;br /&gt;
       System.out.printf(&amp;quot;%-9s%-15s%-18s%10s\n&amp;quot;,&amp;quot;Compte&amp;quot;,&amp;quot;Nom&amp;quot;,&amp;quot;Cognom&amp;quot;,&amp;quot;Saldo&amp;quot;);&lt;br /&gt;
       while (entrada.hasNext()) {&lt;br /&gt;
         int compte = entrada.nextInt();&lt;br /&gt;
         String nom = entrada.next();&lt;br /&gt;
         String cognom = entrada.next();&lt;br /&gt;
         double saldo = entrada.nextDouble();&lt;br /&gt;
         System.out.printf(&amp;quot;%-9d%-15s%-18s%10.2f\n&amp;quot;,compte, nom, cognom, saldo);&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public void tancarArxiu() {&lt;br /&gt;
&lt;br /&gt;
       if (entrada != null) {&lt;br /&gt;
         entrada.close();&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   public class ProvaLLegirArxiuText {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   public static void main(String[] args) throws FileNotFoundException {&lt;br /&gt;
&lt;br /&gt;
       LlegirArxiuText l= new LlegirArxiuText();&lt;br /&gt;
       l.obrirArxiu();&lt;br /&gt;
       l.llegirRegistres();&lt;br /&gt;
       l.tancarArxiu();&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3&amp;diff=16422</id>
		<title>M3 - Programació</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3&amp;diff=16422"/>
				<updated>2022-03-17T14:31:52Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Exercicis taules, cadenes i nous tipus de dades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UF1: Programació Estructurada ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[ASIX-M3-UF1-Proves|BPUF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A1. L’estructura del programa informàtic&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Disseny d’algorismes iteratius &lt;br /&gt;
A4. Tractament de taules&lt;br /&gt;
A5. Tractament de cadenes&lt;br /&gt;
A6. Creació de nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
Nota NF1 = 0.2 Pe1 + 0.08 Pt1+ 0.08 Pt2 +  0.32 Pe2 + 0.32 Pe3&lt;br /&gt;
&lt;br /&gt;
Pe1: Qüestionari&lt;br /&gt;
Pt1: Pràctica taules&lt;br /&gt;
Pt2: Pràctica nou tipus de dades&lt;br /&gt;
Pe2: Prova programació: estructures de control, algoritmes de cerca i de recorregut&lt;br /&gt;
Pe3: Prova programació: taules, cadenes i nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Continguts===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Algoritmes / pseudocodi====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Pseudocodi|Pseudocodi]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Exercicis Pseudocodi |Exercicis Pseudocodi]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Variables, constants, entrada de dades i operadors====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Algorismes i programes |Algorismes i programes]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:shortcuts-80.pdf]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Declaració, inicialització i ús de variables |Declaració, inicialització i ús de variables]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Visualització i entrada de les dades en Java |Visualització i entrada de les dades en Java]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Operadors numèrics i prioritats |Operadors numèrics i prioritats]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Operadors amb dades de tipus lògic |Operadors amb dades de tipus lògic]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Estructures de control====&lt;br /&gt;
&lt;br /&gt;
===== Estructures alternatives=====&lt;br /&gt;
&lt;br /&gt;
:*Les '''estructures alternatives''' permeten prendre decisions sobre quin conjunt d’instruccions cal executar en un punt del programa. &lt;br /&gt;
&lt;br /&gt;
:*Tota estructura alternativa es basa en l’avaluació d’una expressió que ha de donar un resultat booleà: true (cert) o false (fals). Aquesta expressió s’anomena la '''condició lògica''' de l’estructura.&lt;br /&gt;
&lt;br /&gt;
:*El conjunt d’instruccions que s’executarà dependrà del resultat de la condició lògica, i actuarà com una mena d’interruptor que marca el flux que cal seguir dins del programa.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Estructura alternativa |Estructura alternativa]]&lt;br /&gt;
&lt;br /&gt;
===== Estructures iteratives=====&lt;br /&gt;
&lt;br /&gt;
Les estructures de repetició o iteratives permeten repetir una mateixa seqüència d’instruccions diverses vegades, mentre es compleixi una certa condició.&lt;br /&gt;
&lt;br /&gt;
::Anomenem '''bucle''' o cicle el conjunt d’instruccions que s’ha de repetir un cert nombre de vegades, i anomenem '''iteració''' cada execució individual del bucle.&lt;br /&gt;
&lt;br /&gt;
::Un '''bucle infinit''' és una seqüència d’instruccions dins d’un programa que itera indefinidament, normalment perquè s’espera que s’assoleixi una condició que mai no s’arriba a produir.&lt;br /&gt;
&lt;br /&gt;
::Forçosament dins de tot bucle hi ha d’haver instruccions que manipulin variables el valor de les quals permeti controlar la repetició o el final del bucle. Aquestes variables s’anomenen '''variables de control'''.&lt;br /&gt;
&lt;br /&gt;
Normalment, les variables de control dins d’un bucle es poden englobar dins d’algun d’aquests tipus de comportament:&lt;br /&gt;
&lt;br /&gt;
:* '''Comptador''': una variable de tipus enter que va augmentant o disminuint, indicant de manera clara el nombre d’iteracions que caldrà fer.&lt;br /&gt;
&lt;br /&gt;
:* '''Acumulador''': una variable en què es van acumulant directament els càlculs que es volen fer, de manera que en assolir cert valor es considera que ja no cal fer més iteracions. Si bé s’assemblen als comptadors, no són ben bé el mateix.&lt;br /&gt;
&lt;br /&gt;
:* '''Semàfor''': una variable que serveix com a interruptor explícit de si cal seguir fent iteracions. Quan ja no en volem fer més, el codi simplement s’encarrega d’assignar-li el valor específic que servirà perquè la condició avaluï false.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència for|La sentència for]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència while|La sentència while]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència do/while|La sentència do/while]]&lt;br /&gt;
&lt;br /&gt;
===== Esquemes de tractament seqüencial=====&lt;br /&gt;
&lt;br /&gt;
'''Introducció'''&lt;br /&gt;
&lt;br /&gt;
Un esquema de programació no és altra cosa que un model de solució per a a una família de problemes de programació homòlegs. L'ús d'esquemes de programació és una eina imprescindible per al programador atès que el seu ús facilita molt la solució de problemes i rebaixa considerablement la taxa d'errors de programació.&lt;br /&gt;
&lt;br /&gt;
Aquesta estratègia de treball no és única de l'àmbit de la programació sinó que també l'apliquem en altres disciplines. Per exemple, a física quan aprenem a resoldre problemes de tir parabòlic o a matemàtiques quan aprenem a calcular primitives fent integració per parts.&lt;br /&gt;
&lt;br /&gt;
La metodologia general segueix aquests passos:&lt;br /&gt;
&lt;br /&gt;
:• Identificació del tipus de problema.&lt;br /&gt;
:• Caracterització dels elements característics.&lt;br /&gt;
:• Aplicació de l'esquema.&lt;br /&gt;
&lt;br /&gt;
En aquest material introduïrem els esquemes seqüencials, és a dir els que s'apliquen a dades que tenen estructura de seqüència.&lt;br /&gt;
&lt;br /&gt;
'''Seqüències'''&lt;br /&gt;
&lt;br /&gt;
Una seqüència és un conjunt de dades de qualsevol tipus que es caracteritzen per estar disposades «en forma de fila», ja sigui des d'un punt de vista físic o conceptual. Moltes de les dades que manipula un programa tenen estructura de seqüència. Per exemple, un&lt;br /&gt;
string com ara &amp;quot;Hola nois&amp;quot;, pot ser considerat com una seqüència de caràcters ('H', 'o', 'l',...) o una matriu de reals com una seqüència de files. Més formalment, una seqüència és una conjunt de dades tal que:&lt;br /&gt;
&lt;br /&gt;
:• És finit.&lt;br /&gt;
:• Conté un element que és el primer de la seqüència&lt;br /&gt;
:• Es pot definir la relació de &amp;quot;següent&amp;quot;, que donat un element de la seqüència, diu quin ve a darrera.&lt;br /&gt;
&lt;br /&gt;
Per exemple, el enters de 1 a 10 tenen estructura de seqüència atès que són un conjunt finit, tenen un primer ben definit (l'1) i la relació de següent consisteix a sumar una unitat a l'anterior.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de recorregut|Esquema de recorregut]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de cerca|Esquema de cerca]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Tipus de dades compostes====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Taules |Taules]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Cadenes de caràcters |Cadenes de caràcters]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: El tipus char |El tipus char]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Classes |Classes]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Exercicis seqüencials, estructura alternativa i iteratius====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Seqüencials |Exercicis seqüencials]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Expressions lògiques|Exercicis avaluar expressions lògiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Fer expressions lògiques |Exercicis trobar expressions lògiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa preliminars|Exercicis d'estructura alternativa preliminars]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa |Exercicis d'estructura alternativa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: For |Exercicis amb For]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Recorregut |Exercicis de recorregut]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Cerca |Exercicis de cerca]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Iteratius |Més exercicis iteratius]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Proves exercicis seqüencials, estructura alternativa i iteratius 20/21'''&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves |Proves]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves+Solucions |Proves + Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Exercicis taules, cadenes i nous tipus de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules |Exercicis taules]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Problemes |Exercicis taules - Problemes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Pokemons |Exercici taules - Pokemons]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Cadenes |Exercicis de cadenes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: classe Character |Exercicis de classe Character]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Classes|Exercicis Classes]] / [[M3 - Programació estructurada / Exercicis UF1: Menú|Prototipus menú]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Proves exercicis taules, cadenes i nous tipus de dades 20/21'''&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves_T_C_TD |Proves]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves_T_C_TD+Solucions |Proves + Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Proves OnLine====&lt;br /&gt;
&lt;br /&gt;
- Exercicis seqüencials, estructura alternativa i iteratius&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1 Part1: Proves OnLine |Proves Online UF1 1a. Part]]&lt;br /&gt;
&lt;br /&gt;
- Exercicis taules, cadenes i nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1 Part2: Proves OnLine |Proves Online UF1 2a. Part]]&lt;br /&gt;
&lt;br /&gt;
- Tota la UF1&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / UF1: Proves OnLine |Proves Online UF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt1 |Pt1 - Taules]] / [[M3 - Programació estructurada / Continguts UF1: System.out.printf |System.out.printf]] / [[M3 - Programació estructurada / Continguts UF1: Colors |Colors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt2 |Pt2 - Classes]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Repàs UF1====&lt;br /&gt;
&lt;br /&gt;
Exercicis seqüencials: 1, 4&lt;br /&gt;
&lt;br /&gt;
Exercicis d'estructura alternativa: 2, 4, 5, 6, 11&lt;br /&gt;
&lt;br /&gt;
Exercicis amb For: 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, '''19, 20, 21, 22, 23'''&lt;br /&gt;
&lt;br /&gt;
Exercicis de recorregut: 1, 2, 3, 4, 5, 6 &lt;br /&gt;
&lt;br /&gt;
Exercicis de cerca: 1, 2, 3, 4, 5, 6&lt;br /&gt;
&lt;br /&gt;
Més exercicis iteratius: '''1, 2, 3, 4, 5'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Disseny modular i recursivitat==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Disseny modular |Disseny descendent o modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Classes i biblioteques |Classes i biblioteques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Recursivitat |Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis mètodes |Exercicis mètodes]] / [[M3 - Programació estructurada / Exercicis UF2: Colors|Colors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Mastermind |Mastermind]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat bàsics|Recursivitat bàsics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat |Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis repàs programació estructurada|Exercicis repàs programació estructurada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt1 |Pt1 - Disseny modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt2 |Pt2 - Disseny modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt3 |Pt3 - Recursivitat]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Proves disseny modular i recursivitat 2020-21'''&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Proves_DM_R |Proves]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF3: Fonament de gestió de fitxers==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Clase File |Clase File]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Fitxers de text |Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Fitxers orientats a byte |Fitxers orientats a byte]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Clase File |Clase File]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers de text |Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers orientats a byte |Fitxers orientats a byte]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF4: Programació Orientada a Objectes. Fonaments ==&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació Orientada a Objectes / Activitats UF4: Classes |Classes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=16211</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=16211"/>
				<updated>2022-01-31T16:51:35Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Disseny de bases de dades |Disseny de bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Exemples diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R - Model Relacional|Pràctica Model E/R - Model Relacional Eina gràfica]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 16/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 23/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 31/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
Data: 28/05/21&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=16123</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=16123"/>
				<updated>2022-01-13T14:41:18Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Gabinete abogados */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=16122</id>
		<title>M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF2:_Solucions_casos_pr%C3%A0ctics_Model_E/R&amp;diff=16122"/>
				<updated>2022-01-13T14:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Gabinete abogados */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar la información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica y corresponde a un solo cliente. Del asunto se debe almacenar la fecha de inicio, fecha de archivo (finalización), su estado (en trámite, archivado, etc.), así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, teléfono, etc.) Algunos asuntos son llevados por uno o varios procuradores y viceversa, de los que nos interesa también los datos personales.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para almacenar información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, la ciudad y país donde se encuentra, tamaño (m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar, el nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción. Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especies, sexo, año de nacimiento, país de origen y continente. La identificación es propia de cada zoo.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
Se quiere diseñar una base de datos relacional para gestionar un club náutico. Interesa guardar información sobre socios y patrones, pudiendo ser que haya socios que también sean patrones. De socios y patrones se guardan los datos personales. De los socios, la fecha de alta como socio y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y el patrón responsable de la salida, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club. Además de los patrones nos interesa conocer el año en el que obtuvieron la titulación y su categoría (A, B o C).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
Representad los departamentos de una empresa con las siguientes características: Un departamento tiene varios empleados, pudiendo estos estar asignados a un sólo departamento; los empleados tienen un único  director. De todos los empleados nos interesa su DNI, nombre, apellidos i teléfono y de los departamentos su identificador, nombre y ubicación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una biblioteca:&lt;br /&gt;
&lt;br /&gt;
:*Las personas socias de la biblioteca disponen de un código de socio y se precisa su dni, teléfono, nombre y apellidos.&lt;br /&gt;
:*La biblioteca almacena libros que presta a los socio, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN. De los autores interesa además su año de nacimiento y su nacionalidad.&lt;br /&gt;
:*La biblioteca también dispone de algunos libros reconocidos de autores anònimos.&lt;br /&gt;
:*De cada libro se tienen uno o varios ejemplares de los que debemos conocer su estado: deteriorado o no.&lt;br /&gt;
:*Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R para gestionar los datos de una academia:&lt;br /&gt;
&lt;br /&gt;
:*Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono, edad y estudios.&lt;br /&gt;
:*Además de los que trabajan necesitamos saber el CIF, nombre, teléfono, dirección de la empresa en la que trabajan, el cargo que tienen y los años que llevan en la misma. De los desempleados el tiempo que llevan desempleados y el último trabajo que desempeñaron.&lt;br /&gt;
:*Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el nombre, programa,las horas de duración del curso, y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, dirección, teléfono y especialidad.&lt;br /&gt;
:*Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
Tenemos una perrera municipal que, además de acoger perros sin dueño, acoge a perros con dueño. Se ha de diseñar un esquema E/R teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede ser de una raza dterminada o no. A los perros se les asigna una identificación propia de la perrera y debemos conocer su sexo, la data d'entrada en la perrera y en que estado se encuentra. De las razas nos interesa la altura, la medida, el caracter y la esperanza de vida.&lt;br /&gt;
&lt;br /&gt;
:*Un perro puede tener dueño o no. De los dueños nos interesa sus datos personales: DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Una persona puede tener más de un perro.&lt;br /&gt;
&lt;br /&gt;
:*Un perro se encuentra albergado en una jaula determinada. Las jaulas se identifican por código interno de la perrera y precisamos conocer la capacidad de cada jaula.&lt;br /&gt;
&lt;br /&gt;
:*En las jaulas pueden haber n perros.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
Se desea diseñar una base de datos sobre la información de las reservas de una empresa dedicada al alquiler de automóviles. Los supuestos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
:*Un determinado cliente puede tener en un momento dado varias reservas&lt;br /&gt;
&lt;br /&gt;
:*De cada cliente se desea almacenar su DNI, nombre, dirección y teléfono. &lt;br /&gt;
&lt;br /&gt;
:*Una reserva la realiza un único cliente, pero puede involucrar a varios coches.&lt;br /&gt;
&lt;br /&gt;
:*Es importante registrar la fecha de comienzo de la reserva y la de terminación.&lt;br /&gt;
&lt;br /&gt;
:*Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar. Del coche, interesa su matrícula, marca, modelo i color. Del garaje su dirección i metros cuadrados. Las diferentes plazas de cada garaje se asignan a los coches en función de la ocupación del mismo.&lt;br /&gt;
&lt;br /&gt;
:*Cada reserva se realiza en una agencia determinada y la codificación de las mismas es propia de cada agencia. De estas, se quire tener constancia de su dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.&lt;br /&gt;
&lt;br /&gt;
:*Las entidades cliente, coche, agencia y garaje tienen una clave alfanumérica que las identifica unívocamente.&lt;br /&gt;
&lt;br /&gt;
:*Interesa conocer los km de inicio y km finales que ha realizado cada coche en cada reserva.&lt;br /&gt;
&lt;br /&gt;
:*Cada cliente puede ser avalado por otro cliente de la empresa.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R par un empresa de comidas, teniendo en cuenta que:&lt;br /&gt;
&lt;br /&gt;
:*El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil&lt;br /&gt;
:*Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.&lt;br /&gt;
:*Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.&lt;br /&gt;
:*La mayoría de trabajadores no son ni pinches ni cocineros/as&lt;br /&gt;
:*En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre&lt;br /&gt;
:*De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.&lt;br /&gt;
:*Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.&lt;br /&gt;
:*Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.&lt;br /&gt;
:*Necesitamos también saber qué cocineros son capaces de preparar cada plato.&lt;br /&gt;
:*Cada pinche está a cargo de un cocinero o cocinera.&lt;br /&gt;
:*La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
Diseñar una Base de Datos para representar la información docente de un colegio, sabiendo que:&lt;br /&gt;
&lt;br /&gt;
La formación abarca ocho cursos (1º, 2º, 3º .. 8º) en los que se imparten diversas asignaturas, tales como Matemáticas, Física, Ciencias Naturales, Sociales, Dibujo, etc., dándose el caso de algunas asignaturas de distintos cursos que tienen el mismo nombre.&lt;br /&gt;
&lt;br /&gt;
Cada curso se reparte en varios grupos de alumnos a los que se asigna una letra: p.e. 3ºA, 2ºD, 5ºC, 1ºB, y se ubican en un aula fija para todo el curso. Las aulas, identificadas por un número, tienen una determinada capacidad de número de alumnos. De ellas interesa conocer, además, si disponen o no de conexión a la red de computadores del centro, y de pantalla para la proyección de transparencias.&lt;br /&gt;
&lt;br /&gt;
Los profesores del centro, de los que se dispone de su nombre y apellidos, DNI, dirección y teléfono, pueden impartir varias asignaturas distintas a grupos distintos. No se da el caso de que una asignatura se imparta por más de un profesor al mismo grupo. Además, cada curso tiene un profesor coordinador y cada grupo un profesor tutor.&lt;br /&gt;
&lt;br /&gt;
Acerca de los alumnos, además de su nombre y apellidos, dirección y teléfono, se desea reflejar el curso en que están matriculados y el grupo al que están asignados. También se desea representar qué alumno es el delegado de cada grupo. Como puede darse el caso, de alumnos con el mismo nombre y apellidos, cada alumno tiene asociado un (único) número de matrícula que facilita su identificación.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
Se desea informatizar parcialmente un banco determinado con los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*El banco tiene distintas sucursales que se identifican por un código y nos interesa su dirección.&lt;br /&gt;
&lt;br /&gt;
:*Cada sucursal tienen una serie de cuentas corrientes asignadas a ella que se identifican por un código y es fundamental conocer el saldo en todo momento. Una cuenta corriente pertenece a uno o varios clientes, pero solo uno de ellos es el titular. Es posible, sin embargo, que las operaciones que puede realizar cada uno de estos clientes con la cuenta no sean las mismas. Por ejemplo, si la cuenta 110245 pertenece a los clientes Pablo López y Paula Suárez, es posible que la operación de cerrar la cuenta sólo la tenga Pablo López y no Paula Suárez.&lt;br /&gt;
&lt;br /&gt;
:*Por otra parte, cada cliente, del que se guarda su DNI, nombre, apellidos y teléfono, puede tener varias cuentas y, por supuesto, pudiendo realizar operaciones distintas en cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
:*Cada cuenta puede tener domiciliaciones asociadas con ella. Se recogerá el NIF de la empresa, nombre i dirección de las domicializaciones. Estas pueden ser de pago único en el este caso debemos recoger el importe o de pago recurrente en cuyo caso debemos conocer la periodicidad del pago (semanal, mensual, bimensual, ...). Se debe tener en cuenta que muchos clientes tienen domiciliados pagos con las mismas empresas.&lt;br /&gt;
&lt;br /&gt;
:*Los clientes pueden tener otorgados préstamos sin que estos préstamos estén asociados con ninguna de las cuentas corrientes. Cada préstamo se otorga a nombre de un solo cliente, y a un cliente se le pueden otorgar más de un préstamo. Los préstamos se identican por un código único dentro del banco y nos interesa conocer el capital, el interés aplicado y el plazo para devolver el principal más el interés.&lt;br /&gt;
&lt;br /&gt;
:*Con respecto a las transacciones se requiere almacenar el número de transacción, la cuenta que la origino, la fecha y la cantidad (positiva en el caso de ingresos y negativa en caso de extracciones).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
Diseñad un esquema E/R que recoja la información correspondiente al catastro de viviendas de un determinado municipio. En el municipio existen una serie de zonas urbanas en las cuales se ha edificado un conjunto de viviendas, las cuales pueden ser:&lt;br /&gt;
&lt;br /&gt;
::*'''Viviendas unifamiliares''' o casas en las que sólo habita una familia y,&lt;br /&gt;
&lt;br /&gt;
::*'''Bloques de pisos''' en los cuales existe un conjunto de viviendas, indeterminado a priori, en cada una de las cuales habita una familia.&lt;br /&gt;
&lt;br /&gt;
Es preciso mantener la información correspondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familila de las personas que habitan o son propietarias de las viviendas. Para cada vivienda, además de la información correspondiente a las características de las mismas, es necesario conocer al propietario.&lt;br /&gt;
&lt;br /&gt;
Deben considerarse los siguientes supuestos:&lt;br /&gt;
&lt;br /&gt;
:*Toda persona habita en una y sólo una vivienda, la cual es considerada como su vivienda residencia principal. Nos interesa su DNI, nombre, apellidos y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Cada vivienda tiene uno y sólo un propietario.&lt;br /&gt;
&lt;br /&gt;
:*Las viviendas se encuentran en una única zona urbana correspondiente al municipio, de las cuales nos interesan los metros cuadrados que tienen. De las unifamiliares, también si tienen o no jardin y si hay o no garage en los bloques de piso.&lt;br /&gt;
&lt;br /&gt;
:*Las zonas urbanas en las que está dividido geográficamente el municipio tienen nombres diferentes y nos interesa su ubicación.&lt;br /&gt;
&lt;br /&gt;
:*En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nombres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren (para simplicar el problema no se considerará información sobre las calles).&lt;br /&gt;
&lt;br /&gt;
:*En el contexto del problema, una familia es un conjunto de personas que tienen relación familiar directa y que habita, o no, en una misma vivienda. Este conjunto podrá ser unario. &lt;br /&gt;
&lt;br /&gt;
:*Como se indica en el enunciado del problema las viviendas pueden ser casas unifamiliaris o bloques de pisos en los cuales existen una serie de viviendas unifamiliares.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
Construir el esquema conceptual en el modelo E/R que refleje toda la información necesaria para la gestión de las líneas de metro de una determinada ciudad. Los supuestos considerados son:&lt;br /&gt;
&lt;br /&gt;
Cada línea de metro está compuesta de un conjunto de estaciones en un orden determinado. Es importante recoger la información del orden de cada estación en la línea (cuál es la 1a estación de la línea, la 2a, ...). En cada estación interesa almacenar, para cada línea, el número estimado de segundos que se tarda en llegar desde la estación anterior de la línea y los que se tarda en alcanzar la siguiente estación de la línea.&lt;br /&gt;
&lt;br /&gt;
Cada línea tiene un identificador numérico (línea 1, línea 2, ...) y otro mediante un color (la línea azul, la línea roja, ...). Esto quiere decir que no hay dos líneas con el mismo número ni dos con el mismo color. También se quiere almacenar la hora de salida del primer tren de la línea y la del último.&lt;br /&gt;
&lt;br /&gt;
Las estaciones tienen un código numérico que las distingue de las demás. También tienen un nombre diferente para cada una. Se guardan los horarios de apertura y cierre de cada estación. Una estación pertenece al menos a una línea, aunque puede pertenecer a varias líneas.&lt;br /&gt;
&lt;br /&gt;
Cada estación tiene uno o varios accesos desde el exterior. Cada uno de dichos accesos pertenece a una única estación. Los accesos de una misma estación están numerados de forma correlativa (el primer acceso de la estación 7, el segundo acceso de la estación 7, ...). Por cada acceso se guarda la calle y número de portal más cercano a donde está situado.&lt;br /&gt;
&lt;br /&gt;
Cada tren tiene un número diferente al del resto de trenes. Se necesita guardar la fecha de compra, el modelo y la capacidad en número de vagones.&lt;br /&gt;
&lt;br /&gt;
Se guardan los trenes que están o han estado en servicio y qué línea. Un tren puede prestar o haber prestado servicio en varias líneas diferentes. Incluso puede haber prestado diferentes servicios en la misma línea (en periodos de tiempo diferentes). Se guarda la fecha de inicio del servicio del tren en la línea y la de finalización. No puede haber dos servicios diferentes del mismo tren en la misma línea y en periodos que se solapen.&lt;br /&gt;
&lt;br /&gt;
En algunas estaciones hay cocheras para aparcar los trenes cuando no están de servicio. Cada tren tiene asignada una de estas cocheras. Se puede cambiar la cochera asignada a un tren, pero no se puede quedar sin ninguna asignada. Cada cochera se distingue de las demás por la estación donde está situada (en una misma estación sólo puede haber una cochera). Además se almacena el número de trenes (máquinas) y el de vagones que puede alojar.&lt;br /&gt;
&lt;br /&gt;
Cada llegada de un tren a un andén es almacenada y se le asigna un número diferente para cada una. Se almacena a qué estación y línea corresponde la llegada y en qué sentido de la marcha (ascendente según el número de orden de la estación en la línea o descendente). También se guarda el tren que ha llegado y el número de llegada que corresponde al tren. Este último número se asigna así: la primera llegada a un andén de este tren se numeró con un uno, la segunda con un dos, etc. Teniendo esto en cuenta, no puede haber dos llegadas que contengan el mismo par (tren, número de llegada). Además se guarda la fecha y hora de&lt;br /&gt;
llegada del tren al andén y la fecha y hora de salida.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
Tenemos que diseñar una base de datos para una empresa de material informático, de la que tenemos esta información:&lt;br /&gt;
&lt;br /&gt;
:*Un equipo consta de varios componentes. Pueden ser necesarios varios componentes del mismo tipo para montar un equipo, por lo que será necesario almacenar la cantidad de componentes que se necesitan en cada caso.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede comprar equipos completos o componentes sueltos. Habrá que almacenar la cantidad de equipos o la cantidad de componentes de cada tipo que compra cada cliente. También habrá que guardar la fecha de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Tenga en cuenta que un mismo cliente puede comprar el mismo equipo o el mismo componente en diferentes fechas. El diseño de la base de datos debe permitir almacenar un histórico con todas las fechas y las cantidades de equipos o componentes que ha comprado.&lt;br /&gt;
&lt;br /&gt;
:*Cada equipo está etiquetado con un código de equipo, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Cada componente está etiquetado con un código de componente, una descripción, un precio y el stock disponible.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos los clientes son el NIF, nombre, apellidos, domicilio y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Los datos que almacenamos de los empleados son el DNI, nombre, apellidos y la sección donde trabaja. Para su identificación dentro de la empresa se les asigna un Id.&lt;br /&gt;
&lt;br /&gt;
:*Un empleado trabaja en una única sección.&lt;br /&gt;
&lt;br /&gt;
:*Una sección se identifica por un id y un nombre de sección.&lt;br /&gt;
&lt;br /&gt;
:*En cada compra realizada por un cliente interviene un empleado y será necesario guardar qué empleado es el que ha atendido a cada cliente para cada una de las compras.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |800px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
Un cliente le ha contratado para diseñar una web que permita comprar libros por Internet. Tenga en cuenta las siguientes indicaciones para modelar cómo sería la base de datos del proyecto:&lt;br /&gt;
&lt;br /&gt;
:*De cada libro guardaremos su título, isbn, año de publicación y descripción. También es interesante almacenar los datos del autor/es y de la editorial que ha publicado el libro.&lt;br /&gt;
&lt;br /&gt;
:*Los libros que se podrán comprar en la web pueden ser libros de papel o libros electrónicos (ebooks). En el caso de los libros de papel interesa guardar donde ha sido impreso y la fecha de impresión. En el caso de un ebook guardaremos el tamaño del archivo. Hay que tener en cuenta que un mismo libro tiene precios diferentes en papel y en formato ebook.&lt;br /&gt;
&lt;br /&gt;
:*De los autores nos interesa almacenar el nombre, apellidos, dirección, localidad, provincia, url de su página web y un identificador único de autor.&lt;br /&gt;
&lt;br /&gt;
:*Para las editoriales guardaremos un identificador, nombre, dirección, localidad, provincia, número de teléfono y la url de su página web.&lt;br /&gt;
&lt;br /&gt;
:*La tienda dispondrá de varios almacenes, de cada uno guardaremos un identificador, una dirección, localidad, provincia y un teléfono de contacto. &lt;br /&gt;
&lt;br /&gt;
:*Un almacén puede almacenar diferentes libros. Un mismo libro puede estar almacenado en diferentes almacenes. Nos interesa saber el número de copias de cada libro que hay en cada almacén.&lt;br /&gt;
&lt;br /&gt;
:*La base de datos debe almacenar los datos de los clientes. De cada cliente guardamos su NIF, nombre, apellidos, dirección, localidad, provincia, email y teléfono.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede tener varias cestas de la compra en el sitio web. Cada cesta de la compra está identificada por un identificador único, contiene la fecha de la compra y puede contener varios libros. Algunas cestas de la compra pueden tener más de una copia del mismo libro, por lo que será necesario almacenar la cantidad de copias que se han comprado de cada libro en cada cesta de la compra.&lt;br /&gt;
&lt;br /&gt;
:*Por motivos estadísticos interesa conocer el número de habitantes de cada localidad y la densidad (hab./km2) de las provincias, ambas se identificaran por un código.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
Realice, en el modelo E/R, el diseño de una base de datos para una agencia de viajes que, para ofrecer mejor servicio a sus clientes, considera de interés tener registrada la información referente a los diferentes tours que se pueden ofrecer. Tenga en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
:*Un tour, según su finalidad: cultural, histórica, deportiva… tiene unos determinados puntos de ruta y pueden repetirse varias veces al año.&lt;br /&gt;
&lt;br /&gt;
:*Definimos por viaje un tour concreto a realizar a partir de una fecha determinada.&lt;br /&gt;
&lt;br /&gt;
:*Los puntos de ruta de un tour pueden ser ciudades, monumentos, zonas geográficas, etc. y se consideran de visita solamente o de visita y estancia. En este último caso, el punto de ruta tiene asignado un hotel o varios.&lt;br /&gt;
&lt;br /&gt;
:*Entendemos por cliente de un viaje la persona que ha decidido hacerlo y ha hecho efectiva una señal.&lt;br /&gt;
&lt;br /&gt;
:*Un cliente puede confirmar su participación en más de un viaje (se sobreentiende que las fechas son diferentes)&lt;br /&gt;
&lt;br /&gt;
:*Las personas que participan en un viaje pueden ser alojadas en los mismos o en diferentes hoteles&lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
Se tiene que diseñar una base de datos para gestionar la '''docencia de un curso académico en un centro educativo''' para controlar las notas, matriculaciones, profesores, alumnos, etc.	El centro educativo está estructurado en departamentos. De los departamentos se quiere conocer el nombre y su código. Cada uno de los departamentos imparte la docencia de diversas materias. No se da el caso que una misma materia sea impartida por más de un departamento. También se quiere saber qué materias son previas a otras (por ejemplo no se puede cursar el crédito Sistemas Gestores de Bases de Datos Relacionales sin haber hecho el crédito Análisis y Diseño de Bases de Datos) Cada asignatura tiene uno o más grupos (por ejemplo, el grupo A de Análisis y Diseño de Bases de Datos, el grupo A, B, C, D del crédito de Estadística de cuarto ESO, que son 36 horas) Se tiene que dejar constancia de las siglas, nombre y horas de cualquiera de estas materias.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo uno de los departamentos, y los departamentos están formados por uno o más profesores. En general, los profesores están encargados de uno o más grupos, pero es posible que haya profesores que no estén encargados de ningún grupo durante el curso actual. Es posible también, que un grupo tenga más de un profesor encargado (una asignatura compartida por varios profesores) Se quiere tener constancia de todos los hechos anteriores, incluso cual es la parte del curso que está encargada a cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al inicio del curso, los alumnos se matriculan y quedan asignados a los diversos grupos, se quiere información de este hecho. Profesores y alumnos se quieren agrupar en una sola entidad llamada “PERSONAS”, que podría tener en común los atributos comunes de las otras entidades anteriores como: DNI, nombre, dirección, teléfono, etc. Se ha de tener en cuenta que las personas del centro no son sólo las anteriores, también están los P.A.S.	Sólo se quiere dejar información sobre el curso actual y no el histórico de los cursos anteriores, excepto un caso, se quiere dejar información de las notas que todos los alumnos han obtenido en las diferentes materias y en las diferentes convocatorias de examen (junio, septiembre y extraordinarias) en toda la vida del centro educativo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_centro_educativo.png |700px|center| Solució Centro educativo]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
Se propone diseñar una Base de Datos para mejorar el control de los anuncios publicitarios para la televisión, y de todo su entorno, como los canales de TV, franjas horarias, agencias de publicidad, tipos de productos que se anuncian, etc.&lt;br /&gt;
	&lt;br /&gt;
En el país hay diversas entidades de televisión. Se quiere reflejar que unas son de titularidad pública, por ejemplo CCRTV (Corporació Catalana de Ràdio i Televisió), RTVE (Radiotelevisión Española), etc. Y otras que son de titularidad privada. Todas estas entidades disponen de uno o más canales de emisión (por ejemplo, CCRTV dispone de TV3 y del Canal 33, RTVE dispone de TV1 y TV2, etc.) que se identifican siempre por un nombre.&lt;br /&gt;
&lt;br /&gt;
Todos los anuncios suponemos que se identifican por un código asignado por una supuesta “Oficina de Medios de Comunicación”. Debe considerarse la existencia de los anuncios que llamaremos equivalentes, como podrían ser aquellos que, con las mismas imágenes tienen diferente idioma, o por otras causas que no interesa precisar.&lt;br /&gt;
&lt;br /&gt;
Cada anuncio hace referencia a uno (lo más habitual) o más (excepcionalmente) tipos de producto (por ejemplo, lavadoras y detergentes), y se quiere tener constancia de estas referencias. Incluso debe pensarse que hay tipificados ciertos tipos de productos independientemente de que hayan o no, en este momento, anuncios que se refieran a ellos. Los anuncios son siempre propiedad de una única firma comercial, que es la que las paga, incluso en el caso de anunciar más de un tipo de producto. Los anuncios son filmados, normalmente, por una agencia de publicidad aunque, en algunos casos, es la misma firma comercial que, con medios propios, los produce sin intervención de ninguna agencia publicitaria.&lt;br /&gt;
&lt;br /&gt;
De las agencias de publicidad interesa conocer el nombre del director artístico. De las firmas comerciales interesa conocer el nombre del jefe de marketing. Pero de unas y otras, que podríamos considerar bajo una nueva entidad que denominaremos empresas, interesa conocer el CIF (código de identificación fiscal), nombre, dirección y teléfono.&lt;br /&gt;
&lt;br /&gt;
Las agencias de publicidad disponen de directores cinematográficos para filmar los anuncios. Interesa conocer el historial de la contratación por parte de las diferentes agencias de estos directores. Un director trabaja, en un momento dado, para una sola agencia. Las agencias quieren conocer de cada anuncio que director lo ha dirigido. De los anuncios producidos directamente por las firmas comerciales, no interesa ni se quiere tener constancia de su director.&lt;br /&gt;
&lt;br /&gt;
Tal como se ha indicado al principio, interesa también conocer la emisión de los anuncios en los diversos canales televisivos. A efectos de audiencia, las 24 horas del día no se entienden como tales horas, sino como “franjas horarias” (como puede ser: mañana, mediodía, tarde, noche…) perfectamente diferenciados. Es más, el precio vigente (único que interesa) de la emisión en cada canal, depende de la franja horaria. Para simplificar el caso, haremos la hipótesis de que el precio no depende del día de la semana. Se quiere tener constancia del número de veces que cada anuncio se ha emitido en los diferentes canales, su fecha de emisión y su correspondiente franja horaria.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hay un aspecto legal muy importante a considerar. Existen algunos tipos de productos (menos de los necesarios) que no están permitidos anunciar en ciertas franjas horarias. El incumplimiento será penalizado con multas de gravedad de 1 a 3. Interesará tener constancia de las prohibiciones legales anteriores.&lt;br /&gt;
&lt;br /&gt;
Se pide diseñar la base de datos con el modelo relacional, establecer el grado y cardinalidad de cada relación. También se deben explicar las entidades, relaciones, cardinalidades y atributos.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
Se ha de diseñar una base de datos para gestionar la docencia de un curso académico en una Facultad universitaria (curiosamente bastante parecida a la FIB), para controlar cuestiones como notas, horarios, matriculaciones, profesores, alumnos, etc.&lt;br /&gt;
&lt;br /&gt;
La Facultad la supondremos estructurada en Departamentos. Cada uno de estos departamentos imparten la docencia de varias asignaturas. No se da el caso de que una misma asignatura sea impartida por más de un departamento.&lt;br /&gt;
&lt;br /&gt;
De las asignaturas interesa saber las siglas, nombre, créditos, nivel, etc. También se desea tener constancia de que asignaturas son pre-requisitos de otras.&lt;br /&gt;
&lt;br /&gt;
Cada asignatura tiene uno o más grupos (por ejemplo: grupos 10, 20, 30 y 40 de las asignatura DUABD; grupos 10, 20 y 30 de la asignatura DT, etc.). De cada grupo interesa saber las aulas y horarios correspondientes al curso actual (entendiendo el horario por el día de la semana y el horario de inicio). Se ha de tener en cuenta que un mismo grupo puede darse en aulas diferentes siempre que sea en horario diferente. De las aulas se desea conocer cual es su capacidad.&lt;br /&gt;
&lt;br /&gt;
De los profesores interesa saber la categoría laboral y su dedicación (a tiempo parcial, o a tiempo completo). Y de los alumnos interesa conocer el número de matrícula y el año de ingreso a la Facultad. Tanto de los profesores como de los alumnos, que podríamos considerarlos como una entidad general que se podría denominar “personas”; interesa el DNI, nombre, apellido, dirección, teléfono, etc.&lt;br /&gt;
&lt;br /&gt;
Todos los profesores están adscritos a uno y sólo un departamento. En general están encargado de uno o más grupos, pero es posible que haya profesores que no tengan asignado ningún grupo (en el curso actual), y se dediquen a tareas de búsqueda o tareas administrativas. También es posible que un grupo tenga más de un profesor encargado, es decir, que cada profesor se responsabiliza de una parte de la asignatura. Se desea tener constancia de todos los hechos anteriormente esmentados e incluso de la parte de la que se encarga o se responsabiliza cada profesor.&lt;br /&gt;
&lt;br /&gt;
Al iniciar el curso, los alumnos se matriculan en varios grupos y naturalmente se desea tener información de este hecho. La base de datos debería guardar información de las notas que los alumnos han obtenido en las diferentes convocatorias de examen (febrero, junio y septiembre) de cada asignatura.&lt;br /&gt;
&lt;br /&gt;
La biblioteca de esta Facultad dispone de una gran cantidad de textos (libros, revistas, apuntes, etc.). Estos textos se identifican por un código que asigna la propia biblioteca. En los diferentes grupos de cada asignatura se recomienda uno o más textos, teniendo en cuenta un orden de preferencia o prioridad. A menudo se da el caso de que un mismo texto se recomiende a más de un grupo (especialmente si son grupos de una misma asignatura). Se desea almacenar qué textos se recomienda y cual es su prioridad en cada uno de los grupos.&lt;br /&gt;
&lt;br /&gt;
Como ya se deduce de los párrafos anteriores, sólo se desea almacenar la información del curso actual y no la información de cursos anteriores.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15883</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15883"/>
				<updated>2021-10-18T16:06:09Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Consultes Repàs BD HR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
Los esquemas de ejemplo de Oracle Database ilustran una compañía de ejemplo que opera en todo el&lt;br /&gt;
mundo para surtir pedidos de varios productos distintos. La compañía tiene tres divisiones:&lt;br /&gt;
&lt;br /&gt;
:*'''Human Resources''': realiza un seguimiento de la información sobre los empleados y las instalaciones.&lt;br /&gt;
:*'''Order Entry''': realiza un seguimiento de los inventarios y las ventas de productos a través de distintos canales.&lt;br /&gt;
:*'''Sales History''': realiza un seguimiento de los datos estadísticos de negocio para facilitar las decisiones de negocio.&lt;br /&gt;
&lt;br /&gt;
Cada una de estas divisiones se representa mediante un esquema. En este curso tendrá acceso a los&lt;br /&gt;
objetos de todos los esquemas. No obstante, el énfasis de los ejemplos, demostraciones y prácticas&lt;br /&gt;
está en el esquema de Human Resources (HR).&lt;br /&gt;
&lt;br /&gt;
Todos los scripts necesarios para crear los esquemas de ejemplo están en la carpeta&lt;br /&gt;
$ORACLE_HOME/demo/schema/ folder.&lt;br /&gt;
&lt;br /&gt;
'''Human Resources (HR)'''&lt;br /&gt;
&lt;br /&gt;
Se trata del esquema que se utiliza en este curso. En los registros de recursos humanos (HR), cada&lt;br /&gt;
empleado tiene un número de identificación, una dirección de correo electrónico, un código de&lt;br /&gt;
identificación de cargo, un salario y un gestor. Algunos empleados ganan comisiones además de su&lt;br /&gt;
salario.&lt;br /&gt;
&lt;br /&gt;
La compañía también registra información sobre cargos dentro de la organización. Cada cargo&lt;br /&gt;
dispone de un código de identificación, un cargo y un rango de salario máximo y mínimo. Algunos&lt;br /&gt;
empleados llevan bastante tiempo en la compañía y han desempeñado distintos trabajos en ella.&lt;br /&gt;
Cuando se reasigna un empleado, se registran la duración del trabajo del empleado, el número de&lt;br /&gt;
identificación del cargo y el departamento.&lt;br /&gt;
&lt;br /&gt;
La compañía de ejemplo se extiende por distintas regiones, por lo que registra la ubicación de sus&lt;br /&gt;
almacenes y departamentos. Cada empleado está asignado a un departamento y cada departamento se&lt;br /&gt;
identifica mediante un número de departamento único o una abreviatura. Cada departamento está&lt;br /&gt;
asociado a una ubicación y cada ubicación tiene una dirección completa que incluye el nombre de la&lt;br /&gt;
calle, el código postal, la ciudad, el estado o la provincia y el código de país.&lt;br /&gt;
&lt;br /&gt;
En las ubicaciones de los departamentos y almacenes, la compañía registra detalles como el nombre&lt;br /&gt;
de país, el símbolo y nombre de divisa y la región en la que está ubicado geográficamente el país.&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de HR===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_HR.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Descripciones de las Tablas de Human Resources (HR)===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_countries.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_departments.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_employees.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_job_history.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_jobs.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_locations.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_regions.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-HR | T6- Uniones]] &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-HR | T7- Subconsultas]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BD Wordpress===&lt;br /&gt;
&lt;br /&gt;
En la siguiente web tenemos una pagina de wordpress on tienda incluida. Realiza para cada sección de la pagina las consultas necesarias para mostrar los contenidos.&lt;br /&gt;
&lt;br /&gt;
http://wp.dantriano.com&lt;br /&gt;
&lt;br /&gt;
PHPMyadmin&lt;br /&gt;
&lt;br /&gt;
https://phpmyadmin.mi-alojamiento.com/?d=dantriano.com&lt;br /&gt;
&lt;br /&gt;
u: alumno&lt;br /&gt;
&lt;br /&gt;
p: lamerce19&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:EsquemaWP2.png|900px]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15882</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15882"/>
				<updated>2021-10-18T15:59:58Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Exercicis BD HR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
Los esquemas de ejemplo de Oracle Database ilustran una compañía de ejemplo que opera en todo el&lt;br /&gt;
mundo para surtir pedidos de varios productos distintos. La compañía tiene tres divisiones:&lt;br /&gt;
&lt;br /&gt;
:*'''Human Resources''': realiza un seguimiento de la información sobre los empleados y las instalaciones.&lt;br /&gt;
:*'''Order Entry''': realiza un seguimiento de los inventarios y las ventas de productos a través de distintos canales.&lt;br /&gt;
:*'''Sales History''': realiza un seguimiento de los datos estadísticos de negocio para facilitar las decisiones de negocio.&lt;br /&gt;
&lt;br /&gt;
Cada una de estas divisiones se representa mediante un esquema. En este curso tendrá acceso a los&lt;br /&gt;
objetos de todos los esquemas. No obstante, el énfasis de los ejemplos, demostraciones y prácticas&lt;br /&gt;
está en el esquema de Human Resources (HR).&lt;br /&gt;
&lt;br /&gt;
Todos los scripts necesarios para crear los esquemas de ejemplo están en la carpeta&lt;br /&gt;
$ORACLE_HOME/demo/schema/ folder.&lt;br /&gt;
&lt;br /&gt;
'''Human Resources (HR)'''&lt;br /&gt;
&lt;br /&gt;
Se trata del esquema que se utiliza en este curso. En los registros de recursos humanos (HR), cada&lt;br /&gt;
empleado tiene un número de identificación, una dirección de correo electrónico, un código de&lt;br /&gt;
identificación de cargo, un salario y un gestor. Algunos empleados ganan comisiones además de su&lt;br /&gt;
salario.&lt;br /&gt;
&lt;br /&gt;
La compañía también registra información sobre cargos dentro de la organización. Cada cargo&lt;br /&gt;
dispone de un código de identificación, un cargo y un rango de salario máximo y mínimo. Algunos&lt;br /&gt;
empleados llevan bastante tiempo en la compañía y han desempeñado distintos trabajos en ella.&lt;br /&gt;
Cuando se reasigna un empleado, se registran la duración del trabajo del empleado, el número de&lt;br /&gt;
identificación del cargo y el departamento.&lt;br /&gt;
&lt;br /&gt;
La compañía de ejemplo se extiende por distintas regiones, por lo que registra la ubicación de sus&lt;br /&gt;
almacenes y departamentos. Cada empleado está asignado a un departamento y cada departamento se&lt;br /&gt;
identifica mediante un número de departamento único o una abreviatura. Cada departamento está&lt;br /&gt;
asociado a una ubicación y cada ubicación tiene una dirección completa que incluye el nombre de la&lt;br /&gt;
calle, el código postal, la ciudad, el estado o la provincia y el código de país.&lt;br /&gt;
&lt;br /&gt;
En las ubicaciones de los departamentos y almacenes, la compañía registra detalles como el nombre&lt;br /&gt;
de país, el símbolo y nombre de divisa y la región en la que está ubicado geográficamente el país.&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de HR===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_HR.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Descripciones de las Tablas de Human Resources (HR)===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_countries.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_departments.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_employees.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_job_history.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_jobs.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_locations.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_regions.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-HR | T6- Uniones]] &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-HR | T7- Subconsultas]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BD Wordpress===&lt;br /&gt;
&lt;br /&gt;
En la siguiente web tenemos una pagina de wordpress on tienda incluida. Realiza para cada sección de la pagina las consultas necesarias para mostrar los contenidos.&lt;br /&gt;
&lt;br /&gt;
http://wp.dantriano.com&lt;br /&gt;
&lt;br /&gt;
PHPMyadmin&lt;br /&gt;
&lt;br /&gt;
https://phpmyadmin.mi-alojamiento.com/?d=dantriano.com&lt;br /&gt;
&lt;br /&gt;
u: alumno&lt;br /&gt;
&lt;br /&gt;
p: lamerce19&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:EsquemaWP2.png|900px]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15881</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15881"/>
				<updated>2021-10-18T15:59:19Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Exercicis BD HR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
Los esquemas de ejemplo de Oracle Database ilustran una compañía de ejemplo que opera en todo el&lt;br /&gt;
mundo para surtir pedidos de varios productos distintos. La compañía tiene tres divisiones:&lt;br /&gt;
&lt;br /&gt;
:*'''Human Resources''': realiza un seguimiento de la información sobre los empleados y las instalaciones.&lt;br /&gt;
:*'''Order Entry''': realiza un seguimiento de los inventarios y las ventas de productos a través de distintos canales.&lt;br /&gt;
:*'''Sales History''': realiza un seguimiento de los datos estadísticos de negocio para facilitar las decisiones de negocio.&lt;br /&gt;
&lt;br /&gt;
Cada una de estas divisiones se representa mediante un esquema. En este curso tendrá acceso a los&lt;br /&gt;
objetos de todos los esquemas. No obstante, el énfasis de los ejemplos, demostraciones y prácticas&lt;br /&gt;
está en el esquema de Human Resources (HR).&lt;br /&gt;
&lt;br /&gt;
Todos los scripts necesarios para crear los esquemas de ejemplo están en la carpeta&lt;br /&gt;
$ORACLE_HOME/demo/schema/ folder.&lt;br /&gt;
&lt;br /&gt;
'''Human Resources (HR)'''&lt;br /&gt;
&lt;br /&gt;
Se trata del esquema que se utiliza en este curso. En los registros de recursos humanos (HR), cada&lt;br /&gt;
empleado tiene un número de identificación, una dirección de correo electrónico, un código de&lt;br /&gt;
identificación de cargo, un salario y un gestor. Algunos empleados ganan comisiones además de su&lt;br /&gt;
salario.&lt;br /&gt;
&lt;br /&gt;
La compañía también registra información sobre cargos dentro de la organización. Cada cargo&lt;br /&gt;
dispone de un código de identificación, un cargo y un rango de salario máximo y mínimo. Algunos&lt;br /&gt;
empleados llevan bastante tiempo en la compañía y han desempeñado distintos trabajos en ella.&lt;br /&gt;
Cuando se reasigna un empleado, se registran la duración del trabajo del empleado, el número de&lt;br /&gt;
identificación del cargo y el departamento.&lt;br /&gt;
&lt;br /&gt;
La compañía de ejemplo se extiende por distintas regiones, por lo que registra la ubicación de sus&lt;br /&gt;
almacenes y departamentos. Cada empleado está asignado a un departamento y cada departamento se&lt;br /&gt;
identifica mediante un número de departamento único o una abreviatura. Cada departamento está&lt;br /&gt;
asociado a una ubicación y cada ubicación tiene una dirección completa que incluye el nombre de la&lt;br /&gt;
calle, el código postal, la ciudad, el estado o la provincia y el código de país.&lt;br /&gt;
&lt;br /&gt;
En las ubicaciones de los departamentos y almacenes, la compañía registra detalles como el nombre&lt;br /&gt;
de país, el símbolo y nombre de divisa y la región en la que está ubicado geográficamente el país.&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de HR===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_HR.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
===Descripciones de las Tablas de Human Resources (HR)===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_countries.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_departments.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_employees.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_job_history.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_jobs.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_locations.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_regions.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-HR | T6- Uniones]] &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-HR | T7- Subconsultas]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BD Wordpress===&lt;br /&gt;
&lt;br /&gt;
En la siguiente web tenemos una pagina de wordpress on tienda incluida. Realiza para cada sección de la pagina las consultas necesarias para mostrar los contenidos.&lt;br /&gt;
&lt;br /&gt;
http://wp.dantriano.com&lt;br /&gt;
&lt;br /&gt;
PHPMyadmin&lt;br /&gt;
&lt;br /&gt;
https://phpmyadmin.mi-alojamiento.com/?d=dantriano.com&lt;br /&gt;
&lt;br /&gt;
u: alumno&lt;br /&gt;
&lt;br /&gt;
p: lamerce19&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:EsquemaWP2.png|900px]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15782</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15782"/>
				<updated>2021-09-27T16:12:34Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* UF4: Bases de dades objecte-relacionals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 16/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 23/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 31/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
Data: 28/05/21&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15781</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15781"/>
				<updated>2021-09-27T16:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* NF2: Disseny de models lògics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 16/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 23/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 31/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
Data: 28/05/21&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF3:_PL-SQL-2&amp;diff=15780</id>
		<title>M2 - Bases de dades / Exercicis UF3: PL-SQL-2</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF3:_PL-SQL-2&amp;diff=15780"/>
				<updated>2021-09-27T16:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Solucions exercicis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Creació de procediments==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, crearà, compilarà i farà crides a procediments que emeten ordres DML i de consulta. També aprendrà a manegar excepcions en els procediments.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' si no ha realitzat un pas d'una pràctica, execute el script de solucions adequat del pas de la pràctica abans de continuar amb el següent pas o amb la següent pràctica.&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, crearà i cridarà al procediment ADD_JOB, a més a més de revisar el resultat. També crearà i cridarà a un procediment anomenat UPD_JOB per modificar un treball en la taula JOBS; tanmateix, crearà i cridarà a un procediment anomenat DEL_JOB per suprimir un treball de la taula JOBS. Per últim, crearà un procediment anomenat GET_EMPLOYEE per consultar la taula EMPLOYEES, que retorna el salari i l'identificador de treball d'un empleat quan es proporciona l'identificador de l'empleat.&lt;br /&gt;
&lt;br /&gt;
'''1.-''' Crea, compila i crida al procediment ADD_JOB i revisa el resultat.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat ADD_JOB per afegir un nou treball en la taula JOBS. Proporciona l'identificador i el càrrec utilitzant dos paràmetres.&lt;br /&gt;
&lt;br /&gt;
:'''Nota:''' pots crear el procediment (així com altres objectes) mitjançant la introducció del codi en l'àre SQL Worksheet i, a continuació, fer clic en l¡icona Run Script (F5). De aquesta forma, es crea i compila el procediment. Per saber si el procediment conté o no errors, fes clic en el nom del mateix en el node de procediments i, a continuació, selecciona Compile en el menú emergent.&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment amb IT_DBA com a identificadro del treball i Database Administrator com a càrrec. Consulta la taula JOBS i mira el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_1.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c) Crida al procediment de nou i passa-li com a identificador de treball ST_MAN i un càrrec Stock Manager. Què succeïx? Per què?&lt;br /&gt;
&lt;br /&gt;
'''2.-''' Crea un procediment anomenat UPD_JOB per modificar un treball en la taula JOBS.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat UPD_JOB per actualitzar el càrrec. Proporciona el identificador de treball i un càrrec nou utilitzant dos paràmetres. Inclou el manegador d'excepcions necessari si no s'ha produït l'actualització.&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment per canviar el càrrec de l'identificador de treball IT_DBA a Data Administrador. Consulta la taula JOBS i mira el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_2.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c)  Prova la secció del manegador d'excepcions del procediment intentant actualitza un treball que no existeixi. Pots utilitzar l'identificador de treball IT_WEB i el càrrec Web Master.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_3.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
'''3.-''' Crea un procediment anomenat DEL_JOB per suprimir un treball de la taula JOBS.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat DEL_JOB per suprimir un treball. Inclou el codi de manegador d'excepcions necessari si no s'ha suprimit cap treball.&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment mitjançant l'identificador de treball IT_DBA. Consulta la taula JOBS i mira el resultat. &lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_4.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c) Prova la secció del manegador d'excepcions del procediment intentant suprimir un treball que no existeixi. Utilitza IT_WEB com a identificador de treball. Apareixerà el missatge que has inclòs en la secció del manegador d'excepcions del procediment com a sortida.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_5.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
'''4.-''' Crea un procediment anomenat GET_EMPLOYEE per consultar la taula EMPLOYEES, que retorni el salari i l'identificador de treball d'un empleat quan es proporciona el identificador de l'empleat.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment que retorni un valor de les columnes SALARY i JOB_ID per l'identificador d'empleat especificat. Elimina els errors de sintaxi, si n'hi ha i, a continuació, recompila el codi.&lt;br /&gt;
&lt;br /&gt;
:b) Executa el procediment utilitzant les variables del host per als dos paràmetres OUT: una per al salari i l'altre per l'identificador de treball. Mostra el salari i l'identificador de treball per a l'identificador de empleat 120.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_6.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c) Crida al procediment de nou amb un EMPLOYEE_ID 300. Què succeïx? Per què?&lt;br /&gt;
&lt;br /&gt;
==Creació de funcions i depuració de subprogrames==&lt;br /&gt;
&lt;br /&gt;
'''1.-''' En aquesta pràctica, crearàs, compilaràs i utilitzaràs funcions emmagatzemades i un procediment:&lt;br /&gt;
&lt;br /&gt;
:1) Crea i crida a la funció GET_JOB per retornar un càrrec.&lt;br /&gt;
&lt;br /&gt;
::a) Crea i compila la funció anomenada GET_JOB per retornar un càrrec (job_title) a partir del identificador (job_id).&lt;br /&gt;
&lt;br /&gt;
::b) Crea una variable de host VARCHAR2 anomenada b_title, que permeti una longitud e 35 caràcters. Crida la funció amb l'identificador de treball SA_REP per que retorni el valor de la variable de host i, a continuació, imprimeix la variable de host per veure el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_funcions_1.png |500px|center| Funcions]]&lt;br /&gt;
&lt;br /&gt;
:2) Crea una funció anomenada GET_ANNUAL_COMP per retornar el salari anual d'un empleat calculat a partir del salari mensual i la comissió transferits com a paràmetres.&lt;br /&gt;
&lt;br /&gt;
::a) Crea la funció GET_ANNUAL_COMP, que accepti valors de paràmetres del salari mensual i la comissió. Un o els dos valors transferits poden ser NULL, però la funció haurà de retornar un salari anual no NULL. Utilitza la següent fórmula bàsica per calcular el salari anual:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     (salary*12) + (commission_pct*salary*12)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::b) Utilitza la funció en una sentència SELECT en la taula EMPLOYEES per als empleats del departament 30.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_funcions_2.png |500px|center| Funcions]]&lt;br /&gt;
&lt;br /&gt;
:3) Crea un procediment, ADD_EMPLOYEE, per afegir un nou empleat en la taula EMPLOYEES. El procediment cridarà a una funció VALID_DEPTID per comprovar si l'identificador (ID) de departament especificat per al nou empleat existeix en la taula DEPARTMENTS.&lt;br /&gt;
&lt;br /&gt;
::a) Crea una funció anomenada VALID_DEPTID per validar l'identificador de departament especificat i retornar un valor BOOLEAN TRUE si existeix el departament.&lt;br /&gt;
&lt;br /&gt;
::b) Crea el procediment ADD_EMPLOYEE per afegir un empleat a la taula EMPLOYEES. La fila s'ha d'afegir a la taula EMPLOYEES si la funció VALID_DEPTID retorna TRUE; en cas contrari, alertarà a l'usuari amb un missatge adequat. Proporciona els següents paràmetres:&lt;br /&gt;
&lt;br /&gt;
:::- first_name&lt;br /&gt;
:::- last_name&lt;br /&gt;
:::- email&lt;br /&gt;
:::- job: utilitza 'SA_REP' com a valor per defecte.&lt;br /&gt;
:::- mgr: utilitza 145 com a valor per defecte.&lt;br /&gt;
:::- sal: utilitza 1000 com a valor per defecte.&lt;br /&gt;
:::- comm: utilitza 0 com a valor per defecte.&lt;br /&gt;
:::- deptid: utilitza 30 com a valor per defecte.&lt;br /&gt;
:::- Utilitza la seqüència EMPLOYEES_SEQ per definir la columna employee_id.&lt;br /&gt;
:::- Defineix la columna hire_date com a TRUNC(SYSDATE).&lt;br /&gt;
&lt;br /&gt;
::c) Crida a ADD_EMPLOYEE per al nom 'Jane Harris' del departament 15, deixant els altres paràmetres amb els valors per defecte. Quin és el resultat?&lt;br /&gt;
&lt;br /&gt;
::d) Afegeix un altre empleat anomenat 'Joe Harris' en el departament 80, deixant els altres paràmetres amb els valors per defecte. Quin és el resultat?&lt;br /&gt;
&lt;br /&gt;
'''2.-''' En aquesta pràctica, es presentarà la funcionalitat bàsica del depurador de SQL Developer:&lt;br /&gt;
&lt;br /&gt;
:* Crea un procediment i una funció.&lt;br /&gt;
:* Afegeix punts de divisió en el procediment creat.&lt;br /&gt;
:* Compila el procediment i la funció per al mode de depuració.&lt;br /&gt;
:* Depura el procediment i desplaçat a la primera línia executable del codi.&lt;br /&gt;
:* Mostra i modifica les variables dels subprogrames.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' si no has realitzat un pas d'una pràctica, executa el sript de solucions adequat d'aquest pas del pràctica abans de continuar amb el següent pas o amb la següent pràctica.&lt;br /&gt;
&lt;br /&gt;
:1) Activa SERVEROUTPUT.&lt;br /&gt;
&lt;br /&gt;
:2) Executa el script sol_02_02_02.sql per crear el procediment emp_list.&lt;br /&gt;
:Examina el codi del procediment i compila el procediment. Per què apareix l'error del compilador?&lt;br /&gt;
&lt;br /&gt;
:3) Executa el script  sol_02_02_03.sql per la funció get_location.&lt;br /&gt;
:Examina el codi de la funció, compila la funció i, a continuació, corregeix els possibles errors.&lt;br /&gt;
&lt;br /&gt;
:4) Recompila el procediment emp_list. El proceiment ha de compilarse correctament.&lt;br /&gt;
&lt;br /&gt;
:5) Edita el procediment emp_list i la funció get_location.&lt;br /&gt;
&lt;br /&gt;
:6) Agrega quatre punts de divisió al procediemtn emp_list en les següents línies de codi:&lt;br /&gt;
::a) OPEN emp_cursor;&lt;br /&gt;
::b) WHILE (emp_cursor%FOUND) AND (i &amp;lt;= pMaxRows) LOOP&lt;br /&gt;
::c) v_city := get_location (emp_record.department_name);&lt;br /&gt;
::d) CLOSE emp_cursor;&lt;br /&gt;
&lt;br /&gt;
:7) Compila el procediment emp_list per a la depuració.&lt;br /&gt;
&lt;br /&gt;
:8) Depura el procediment.&lt;br /&gt;
&lt;br /&gt;
:9) Introdueix 100 com a valor del paràmetre PMAXROWS.&lt;br /&gt;
&lt;br /&gt;
:10) Examina el valor de les variables en el separador Data. Quins són els valors assignats a REC_EMP y EMP_TAB? ¿Per què?&lt;br /&gt;
&lt;br /&gt;
:11) Utilitza l'opció de depuració Step Into per anar a cada línia de codi de emp_list i passar per el bucle while només una vegada.&lt;br /&gt;
&lt;br /&gt;
:12) Examina el valor de les variables en el separador Data. Quins són els valors assignats a REC_EMP?&lt;br /&gt;
&lt;br /&gt;
:13) Segueix premen F7 fins que s'executi la línia emp_tab(i) := rec_emp;.&lt;br /&gt;
:Examina el valor de les variables en el separador Data. Quins són els valors assignats a EMP_TAB?&lt;br /&gt;
&lt;br /&gt;
:14) Utilitza el separador Data per a modificar el valor del comptador i a 98.&lt;br /&gt;
&lt;br /&gt;
:15) Segueix premen F7 fins que es vegi la llista de empleats en el separador Debugging – Log. Quants empleats apareixen?&lt;br /&gt;
&lt;br /&gt;
:16) Si utilitzes l'opció del depurador Step Over per a desplaçar-te per el codi, es desplaça per la funció get_location? ¿Per què?&lt;br /&gt;
&lt;br /&gt;
==Creació de paquets==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica. crearàs cossos i especificacions de paquets. A continuació, cridaràs a les construccions dels paquets amb dades d'exemple.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Crea una especificació del paquet i un cos del paquet anomenat JOB_PKG, amb una còpia dels procediments ADD_JOB, UPD_JOB i DEL_JOB, així com la seva funció GET_JOB.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' Utilitza el codi dels procediments i les funcions guardats prèviament al crear el paquet. Pots copiar el codi d'un procediment o una funció per a, a continuació, enganxar-lo en la secció adequada del paquet.&lt;br /&gt;
&lt;br /&gt;
:a) Crea l'especificació del paquet, inclosos els procediments i les capçaleres de funció com a construccions públiques.&lt;br /&gt;
&lt;br /&gt;
:b) Crea el cos del paquet amb les implantacions de cada un dels subprogrames.&lt;br /&gt;
&lt;br /&gt;
:c) Suprimeix els procediments i funció autònoms següents que acabes d'empaquetar amb els nodes Procedures i Functions del arbre Object Navigation:&lt;br /&gt;
&lt;br /&gt;
::i) Els procedimients ADD_JOB, UPD_JOB i DEL_JOB&lt;br /&gt;
::ii) La funció GET_JOB&lt;br /&gt;
&lt;br /&gt;
:d) Crida al procediment empaquetat ADD_JOB transferint-li com a paràmetres els valors IT_SYSAN i SYSTEMS ANALYST.&lt;br /&gt;
&lt;br /&gt;
:e) Consulta la taula JOBS per a veure el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_paquets_1.png |500px|center| Paquets]]&lt;br /&gt;
&lt;br /&gt;
'''2.''' Crea i crida un paquet que contingui construccions públiques i privades.&lt;br /&gt;
&lt;br /&gt;
:a) Crea una especificació del paquet i un cos del paquet anomenats EMP_PKG, que contingui els següents procediments i funció creats anteriorment:&lt;br /&gt;
&lt;br /&gt;
::i) Procediment ADD_EMPLOYEE com a construcció pública&lt;br /&gt;
::ii) Procedimient GET_EMPLOYEE com a construcció pública&lt;br /&gt;
::iii) Funció VALID_DEPTID com a construcció privada&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment EMP_PKG.ADD_EMPLOYEE, amb l'identificador de departament 15 per a l'empleada Jane Harris amb identificador de correu electrònic JAHARRIS. Com l'identificador de departament 15 no existeix, rebràs un missatge d'error com s'especifica en el manegador d'excepcions del procediment.&lt;br /&gt;
&lt;br /&gt;
:c) Crida al procediment empaquetat ADD_EMPLOYEE utilitzant l'identificador de departament 80 per al empleat  David Smith amb l'identificador de correu electònic DASMITH.&lt;br /&gt;
&lt;br /&gt;
:d) Consulta la taula EMPLOYEES per verificar que s'ha afegit el nou empleat.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb paquets==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, modificaràs el codi del paquet EMP_PKG que has creat anteriorment i, a continuació, sobrecarregaràs el procediment ADD_EMPLOYEE. A continuació crearàs dues funcions sobrecarregades anomenades GET_EMPLOYEE en el paquet EMP_PKG. També afegiràs un procediment públic a EMP_PKG per omplir una taula PL/SQL privada de identificadors de departament vàlids, a més a més de modificar la funció VALID_DEPTID per utilitzar el contingut de la taula PL/SQL privada amb el fi de validar els valors de identificador vàlids. També canviaràs la funció de procesament de validació VALID_DEPTID per utilitzar la taula PL/SQL privada de identificadors de departament. Per últim, reorganitzaràs els subprogrames en el cos i l'especificació del paquet per a que estiguin en seqüència alfabètica.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Modifica el codi del paquet EMP_PKG que has creat a la Pràctica 4, pas 2 i sobrecarrega el procediment ADD_EMPLOYEE.&lt;br /&gt;
&lt;br /&gt;
:a) En l'especificació del paquet, afegeix un nou procediment anomenat ADD_EMPLOYEE, que accepti els tres paràmetres següents:&lt;br /&gt;
&lt;br /&gt;
::i) First name&lt;br /&gt;
::ii) Last name&lt;br /&gt;
::iii) Department ID&lt;br /&gt;
&lt;br /&gt;
:b) Prem Run Script (F5) per crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:c) Implanta el nou procediment ADD_EMPLOYEE en el cos del paquet, de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) Formata la adreça de correu electrònic en caràcters en majúscula, utilitzant la primera lletra del nom concatenat amb les set primeres lletres del cognom.&lt;br /&gt;
::ii) El procediment cridarà al procediment ADD_EMPLOYEE existent per realitzar l'operació INSERT real utilitzant els paràmetres i el correu electrònic formatat per proporcionar els valors.&lt;br /&gt;
::iii) Prem Run Script per crear el paquet. Compila el paquet.&lt;br /&gt;
&lt;br /&gt;
:d) Crida al nou procediment ADD_EMPLOYEE utilitzant el nom Samuel Joplin per afegir-lo al departament 30.&lt;br /&gt;
&lt;br /&gt;
:e) Confirma que el nou empleat s'ha afegit a la taula EMPLOYEES.&lt;br /&gt;
&lt;br /&gt;
'''2.''' En el paquet EMP_PKG, crea dues funcions sobrecarregades anomenades GET_EMPLOYEE:&lt;br /&gt;
&lt;br /&gt;
:a) En la especificació del paquet, afegeix les següents funcions:&lt;br /&gt;
&lt;br /&gt;
::i) La funció GET_EMPLOYEE que accepta el paràmetre anomenat p_emp_id basat en el tipus employees.employee_id%TYPE. Aquesta funció ha de retornar EMPLOYEES%ROWTYPE.&lt;br /&gt;
&lt;br /&gt;
::ii) La funció GET_EMPLOYEE que accepta el paràmetre anomenat p_family_name de tipus employees.last_name%TYPE. Aquesta funció ha de retornar EMPLOYEES%ROWTYPE.&lt;br /&gt;
&lt;br /&gt;
:b) Prem Run Script per tornar a crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:c) En el cos del paquet:&lt;br /&gt;
&lt;br /&gt;
::i) Fes la primera funció GET_EMPLOYEE per consultar un empleat mitjançant l'identificador del mateix.&lt;br /&gt;
&lt;br /&gt;
::ii) Fes la segona funció GET_EMPLOYEE per utilitzar l'operador d'igualtat en el valor subministrat en el paràmetre p_family_name.&lt;br /&gt;
&lt;br /&gt;
:d) Prem Run Script per tornar a crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:e) Afegeix un procediment d'utilitat PRINT_EMPLOYEE al paquet EMP_PKG, de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) El procediment accepta EMPLOYEES%ROWTYPE com a paràmetre.&lt;br /&gt;
::ii) El procediment mostra el següent per a un empleat en una línia, mitjançant el paquet DBMS_OUTPUT:&lt;br /&gt;
&lt;br /&gt;
:::- department_id&lt;br /&gt;
:::- employee_id&lt;br /&gt;
:::- first_name&lt;br /&gt;
:::- last_name&lt;br /&gt;
:::- job_id&lt;br /&gt;
:::- salary&lt;br /&gt;
&lt;br /&gt;
:f) Prem Run Script (F5) per crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:g) Utilitza un bloc anònim per cridar a la funció EMP_PKG.GET_EMPLOYEE amb un identificador d'empleat 100 i amb cognom 'Joplin'. Utilitza el procediment PRINT_EMPLOYEE per mostrar els resultats per a cada fila tornada.&lt;br /&gt;
&lt;br /&gt;
'''3.''' Com la companyia no canvia amb freqüència les seves dades de departament, pots millorar el rendiment de EMP_PKG afegint un procediment públic, INIT_DEPARTMENTS, per omplir una taula PL/SQL privada d'identificadors de&lt;br /&gt;
departament vàlids. Modifica la funció VALID_DEPTID per utilitzar el contingut de la taula PL/SQL privada amb el fi de validar els valors dels identificadors de departament.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' el script de l'arxiu de solucions sol_04_03.sql conté el codi dels passos a, b i c.&lt;br /&gt;
&lt;br /&gt;
:a) En l'especificació del paquet, crea un procediment anomenat INIT_DEPARTMENTS sense paràmetres. Per fer-ho, afegeix el següent a la secció d'especificació del paquet abans de la especificació PRINT_EMPLOYEES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PROCEDURE init_departments;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:b) En el cos del paquet, implanta el procediment INIT_DEPARTMENTS per emmagatzemar tots els identificadors de departament en una taula d'índex PL/SQL privada anomenada valid_departments que conté valores BOOLEAN.&lt;br /&gt;
&lt;br /&gt;
::i) Declara la variable valid_departments i la seva definició de tipus boolean_tab_type abans que tots els procediments del cos.&lt;br /&gt;
&lt;br /&gt;
::Introdueix el següent al començament del cos del paquet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     TYPE boolean_tab_type IS TABLE OF BOOLEAN&lt;br /&gt;
     INDEX BY BINARY_INTEGER;&lt;br /&gt;
     valid_departments boolean_tab_type;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::ii) Utilitza el valor de la columna department_id com a índex per crear l'entrada en la taula de índex per indicar la seva presencia i assignar a l'entrada un valor de TRUE. Introdueix la declaració del procediment INIT_DEPARTMENTS al final del cos del paquet (justament després del procediment print_employees), de la sigüent forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PROCEDURE init_departments IS&lt;br /&gt;
     BEGIN&lt;br /&gt;
        FOR rec IN (SELECT department_id FROM departments)&lt;br /&gt;
          LOOP&lt;br /&gt;
            valid_departments(rec.department_id) := TRUE;&lt;br /&gt;
          END LOOP;&lt;br /&gt;
     END;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::c) En el cos, crea un bloc d'inicialització que cridi al procediment INIT_DEPARTMENTS per inicialitzar la taula, de la següent forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     BEGIN&lt;br /&gt;
        init_departments;&lt;br /&gt;
     END;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::d) Prem en Run Script (F5) per crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
'''4.''' Canvia la funció de processament de validació VALID_DEPTID per utilitzar la taula PL/SQL privada d'identificadors de departament.&lt;br /&gt;
&lt;br /&gt;
:a) Modifica la funció VALID_DEPTID per realitzar la validació utilitzant la taula PL/SQL de valors d'identificadors de departament. Prem en Run Script (F5) per crear el paquet. Compila el paquet.&lt;br /&gt;
&lt;br /&gt;
:b) Prova el codi cridant a ADD_EMPLOYEE amb el nom James Bond en el departament 15. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:c) Afegeix un nou departament. Especifica 15 como identificador del departament i 'Security' com a nom del departament. Confirma i verifica els canvis.&lt;br /&gt;
&lt;br /&gt;
:d) Prova el codi cridant a ADD_EMPLOYEE amb el nom James Bond en el departament 15. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:e) Executa el procediment EMP_PKG.INIT_DEPARTMENTS per actualitzar la taula interna PL/SQL amb les últimes dades del departament.&lt;br /&gt;
&lt;br /&gt;
:f) Prova el codi cridant a ADD_EMPLOYEE amb el nom James Bond en el departament 15. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:g) Suprimeox al empleat James Bond y el departament 15 de les seves respectives taules, confirma els canvis i refresca les dades del departament cridant al procediment EMP_PKG.INIT_DEPARTMENTS. Assegurat d'introduir SET SERVEROUTPUT ON abans.&lt;br /&gt;
&lt;br /&gt;
'''5.''' Reorganitza els subprogrames en el cos de la especificació del paquet per a que estiguin en seqüència alfabètica.&lt;br /&gt;
&lt;br /&gt;
:a) Edita la especificació del paquet i reorganitza els subprogrames de forma alfabètica. Prem en Run Script per tornar a crear la especificació del paquet. Compila l'especificació del paquet. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:b) Edita el cos del paquet i reorganitza tots els subprogrames de forma alfabètica. Prem en Run Script per tornar a crear la especificació del paquet. Recompila l'especificació del paquet. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:c) Corregeix l'error de compilació utilitzant una declaració anticipada en el cos per a la referencia de subprograma adequada. Prem en Run Script per tornar a crear el paquet i, a continuació, recompila el paquet. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
==Ús de paquets proporcionats per Oracle==&lt;br /&gt;
&lt;br /&gt;
Autoritzar al usuari HR a emprar el paquet UTL_FILE:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  SQL&amp;gt; connect sys as sysdba;&lt;br /&gt;
&lt;br /&gt;
  SQL&amp;gt; grant execute on sys.utl_file to hr;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, utilitzarà el paquet UTL_FILE per generar un informe d'arxiu de text dels empleats de cada departament. Primer cal crear i executar un procediment anomenat EMPLOYEE_REPORT, que generà un informe d'empleats en un arxiu del sistema operatiu utilitzant el paquet UTL_FILE. Aquest informe generarà una llista dels empleats que tenen un salari superior al salari mig del seu departament. Finalment, es mostrara el contingut de l'arxiu de text per pantalla.&lt;br /&gt;
&lt;br /&gt;
1. Crea un procediment anomenat EMPLOYEE_REPORT, que generi un informe d'empleats en un arxiu del sistema operatiu utilitzant el paquet UTL_FILE.&lt;br /&gt;
&lt;br /&gt;
Aquest informe generarà una llista dels empleats que tenen un salari superior al salari mig del seu departament.&lt;br /&gt;
&lt;br /&gt;
:a) El procediment rebrà dos paràmetres. El primer és el directori de sortida. El segon és el nom de l'arxiu de text.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' Utilitza el valor de la ubicació del directori UTL_FILE. Agrega una secció per manegar les excepcions que es poden produir al utilitzar el paquet UTL_FILE.&lt;br /&gt;
&lt;br /&gt;
:b) Crea i compila el procediment.&lt;br /&gt;
&lt;br /&gt;
2. Crida al procediment amb els dos arguments següents: &lt;br /&gt;
&lt;br /&gt;
:a) Utilitza REPORTS_DIR com alies per l'objecte de directori com a primer paràmtre.&lt;br /&gt;
:b) Utilitza sal_rpt.txt com a segon paràmetre.&lt;br /&gt;
&lt;br /&gt;
3. Per mostrar el contingut de l'arxiu, procedeix de la següent forma:&lt;br /&gt;
&lt;br /&gt;
:a) Fes clic dues vegades en la icona Terminal de l'escriptori. Es mostrarà la finestra Terminal.&lt;br /&gt;
:b) Situat en el directori on es trobi l'arxiu generat (/home/oracle/labs/plpu/reports),&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' pots utilitzar l'ordre pwd per mostrar el directori actual.&lt;br /&gt;
&lt;br /&gt;
:c) Llista el contingut del directori (ordre ls).&lt;br /&gt;
:d) Obre l'arxiu transferit sal_rpt.txt, amb l'editor que vulguis.&lt;br /&gt;
&lt;br /&gt;
==Creació de disparadors==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, crearàs disparadors de sentencia i de fila. També crearàs procediments que es cridaran des de els disparadors.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Les files de la taula JOBS emmagatzemen  els salaris mínims i màxims permesos per als diferents valors de JOB_ID. Escriu un codi per garantir que el salari dels empleats estigui dins del rang permés pel seu tipus de treball, per a operacions de inserció i actualització. &lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat CHECK_SALARY, de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) El procediment accepta dos paràmetres, un per a la cadena de l'identificador de treball del empleat i l'altre per al salari.&lt;br /&gt;
::ii) El procediment utilitza l'identificador de treball per a determinar el salari mínim i màxim per al treball especificat.&lt;br /&gt;
::iii) Si el paràmetre del salari, mínim i màxim inclosos, no es troba dins del rang de salaris, apareixerà una excepció d'aplicació amb el missatge “Invalid salary &amp;lt;sal&amp;gt;. Salaries for job &amp;lt;jobid&amp;gt; must be between &amp;lt;min&amp;gt; and &amp;lt;max&amp;gt;.” Substitueix els diferents elements del missatge per els valors que proporcionen els paràmetres i les variables omplerts amb consultes. Guarda l'arxiu.&lt;br /&gt;
&lt;br /&gt;
:b) Crea un disparador anomenat CHECK_SALARY_TRG en la taula EMPLOYEES que arranqui davant d'una operació INSERT o UPDATE en cada fila:&lt;br /&gt;
&lt;br /&gt;
::i) El disparador ha de cridar al procediment CHECK_SALARY per executar la lògica de negoci.&lt;br /&gt;
::ii) El disparador ha de transferir el nou identificador de treball i salari als paràmetres de procediment.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Prova el disparador CHECK_SAL_TRG utilitzant els següents casos:&lt;br /&gt;
&lt;br /&gt;
:a) Utilitza el procediment EMP_PKG.ADD_EMPLOYEE per afegir a la empleada Eleanor Beh al departament 30. Què succeeix? ¿Per què?&lt;br /&gt;
&lt;br /&gt;
:b) Actualitza el salari de l'empleat 115 a 2.000 dòlars. En un altre operació d'actualització, canvia l'identificador de treball de l'empleat a HR_REP. Què succeeix en cada cas?&lt;br /&gt;
&lt;br /&gt;
:c) Actualitza el salari de l'empleat 115 a 2.800 dòlars. Què succeeix?&lt;br /&gt;
&lt;br /&gt;
'''3.''' Actualitza el disparador CHECK_SALARY_TRG per a que arranqui només quan els valors de l'identificador de treball o el salari hagin canviat en realitat.&lt;br /&gt;
&lt;br /&gt;
:a) Implanta la regla de negoci utilizant una clàusula WHEN per comprovar si els valors JOB_ID o SALARY han canviat.&lt;br /&gt;
&lt;br /&gt;
:'''Nota:''' assegurat de que la condició manega NULL en els valors de OLD.column_name si es realitza una operació INSERT; si no es així, la operació d'inserció fallarà.&lt;br /&gt;
&lt;br /&gt;
:b) Comprova el disparador executant el procediment EMP_PKG.ADD_EMPLOYEE amb els següents valors de paràmetroes:&lt;br /&gt;
::- p_first_name: 'Eleanor'&lt;br /&gt;
::- p_last name: 'Beh'&lt;br /&gt;
::- p_Email: 'EBEH'&lt;br /&gt;
::- p_Job: 'IT_PROG'&lt;br /&gt;
::- p_Sal: 5000&lt;br /&gt;
&lt;br /&gt;
:c) Actualitza als empleats amb un treball IT_PROG incrementant el seu salari en 2.000 dòlars. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:d) Actualitza a 9.000 dòlars el salari de Eleanor Beh.&lt;br /&gt;
&lt;br /&gt;
:'''Indicació:''' utilitza una sentencia UPDATE amb una subconsulta en la clàusula WHERE.  Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:e) Canvia el treball de Eleanor Beh a ST_MAN utilitzant un altre sentencia UPDATE amb una subconsulta.  Què succeïx?&lt;br /&gt;
&lt;br /&gt;
'''4.''' Se't demana que evitis que es suprimeixi als empleats durant les hores laborables.&lt;br /&gt;
&lt;br /&gt;
:a) Escriu un disparador de sentencia anomenat DELETE_EMP_TRG en la taula EMPLOYEES per evitar que les files es suprimeixin durant hores laborables entre setmana, es a dir, de las 9:00 a.m. a las 6:00 p.m.&lt;br /&gt;
&lt;br /&gt;
:b) Intenta suprimir els empleats amb JOB_ID SA_REP que no estiguin assignats a un departamento.&lt;br /&gt;
&lt;br /&gt;
:'''Indicació:''' empleat Grant amb identificador 178.&lt;br /&gt;
&lt;br /&gt;
==Creació de disparadors compostos, de DDL i d'events de base de dades==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, implantaràs una regla de negoci senzilla per garantir la integritat de les dades dels salaris dels empleats respecte al rang de salaris vàlids per als seus treballs. Crea un disparador per a aquesta regla. Durant aquest procés, els nous&lt;br /&gt;
disparadors donaran lloc a un efecte en cascada amb disparadors creats en la secció pràctica de la lliçó anterior. L'efecte en cascada originarà una excepció de taula mutant en la taula JOBS. A continuació, crea un paquet PL/SQL i disparadors addicionals per resoldre el problema de la taula mutant.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Els empleats reben un augment de sou automàticament si el salari mínim d'un treball s'augmenta a un valor superior que els seus salaris actuals. Implanta aquest requisit amb un procediment empaquetat al que cridi el disparador de la taula JOBS. Quan intenta actualitzar el salari mínim en la tabla JOBS e intenta actualitzar els salaris dels empleats, el disparador CHECK_SALARY intenta llegir la taula JOBS, que està subjecta a canvis i obtindrà una excepció de taula mutant que es resol creant u nou paquet i disparadors addicionals.&lt;br /&gt;
&lt;br /&gt;
:a) Actualitza el paquet EMP_PKG (que vas actualitzà per última vegada en la pràctica 8), de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) Agrega un procediment anomenat SET_SALARY, que actualitzi els salaris dels empleats.&lt;br /&gt;
::ii) El procediment SET_SALARY accepta els dos paràmetres següents: el identificador de treball de aquells salaris que pot ser s'hagin d'actualitzar i el nou salari mínim per a l'identificador del treball.&lt;br /&gt;
&lt;br /&gt;
:b) Crea un disparador de fila anomenat UPD_MINSALARY_TRG en la taula JOBS, que cridi al procediment EMP_PKG.SET_SALARY quan el salari mínim de la taula JOBS s'actualitzi per a un identificador de treball especificat.&lt;br /&gt;
&lt;br /&gt;
:c) Escriu una consulta per mostrar l'identificador d'empleat, el cognom, l'identificador de treball, el salari actual i el salari mínim per als empleats que siguin programadors, es a dir, el seu JOB_ID es 'IT_PROG'. A continuació, actualitza el salari mínim en la taula JOBS per a augmentar-lo en 1.000 dòlars. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
'''2.''' Per resoldre el problema de la taula mutant, crea JOBS_PKG per mantenir en memòria una copia de les files de la taula JOBS. A continuació, modifica el procediment CHECK_SALARY per utilitzar les dades del paquet en lloc d'emetre una consulta en una taula mutant per evitar la excepció. Hauràs de crear crear un disparador de sentencia BEFORE INSERT OR UPDATE en la taula EMPLOYEES per inicialitzar l'estat del paquet JOBS_PKG abans de que arranqui el disparador de fila CHECK_SALARY.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un nou paquet anomenat JOBS_PKG amb la següent especificació:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    PROCEDURE initialize;&lt;br /&gt;
    FUNCTION get_minsalary(jobid VARCHAR2) RETURN NUMBER;&lt;br /&gt;
    FUNCTION get_maxsalary(jobid VARCHAR2) RETURN NUMBER;&lt;br /&gt;
    PROCEDURE set_minsalary(jobid VARCHAR2,min_salary NUMBER);&lt;br /&gt;
    PROCEDURE set_maxsalary(jobid VARCHAR2,max_salary NUMBER);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:b) Implanta el cos de JOBS_PKG, com es detalla a continuació:&lt;br /&gt;
&lt;br /&gt;
::i) Declara una taula d'índex PL/SQL privada anomenada jobs_tab_type indexada per un tipus de cadena basada en JOBS.JOB_ID%TYPE.&lt;br /&gt;
&lt;br /&gt;
::ii) Declara una variable privada anomendad jobstab basada en jobs_tab_type.&lt;br /&gt;
&lt;br /&gt;
::iii) El procediment INITIALIZE llegeix les files en la taula JOBS amb un bucle de cursor y utilitza el valor JOB_ID per al índex jobstab que se li assigni a la fila corresponent.&lt;br /&gt;
&lt;br /&gt;
::iv) La funció GET_MINSALARY utilitza un paràmetre p_jobid com a índex per a jobstab i retorna min_salary per a aquest element.&lt;br /&gt;
&lt;br /&gt;
::v) La funció GET_MAXSALARY utilitza un paràmetre p_jobid com a índex per a jobstab y retorna max_salary per a aquest element.&lt;br /&gt;
&lt;br /&gt;
::vi) El procediment SET_MINSALARY utilitza su p_jobid com a índex per a jobstab amb el fi de definir el camp min_salary del seu element en el valor del paràmetre min_salary.&lt;br /&gt;
&lt;br /&gt;
::vii) El procediment SET_MAXSALARY utilitza su p_jobid com a índex per a jobstab amb el fi de definir el camp max_salary del seu element en el valor del paràmetre max_salary.&lt;br /&gt;
&lt;br /&gt;
:c) Copia el procediment CHECK_SALARY de la pràctica 10, exercici 1a, i modifica el codi substituint la consulta de la taula JOBS amb  sentencies per definir les variables locals minsal y maxsal amb valors de les dades JOBS_PKG cridant a les funcions GET_*SALARY adequades. Aquest pas ha d'eliminar l'excepció de disparador mutant.&lt;br /&gt;
&lt;br /&gt;
:d) Implanta un disparador de sentencia BEFORE INSERT OR UPDATE anomenat INIT_JOBPKG_TRG que utilitzi la sintaxis CALL per cridar al procediment JOBS_PKG.INITIALIZE, amb la finalitat de garantir que l'estat del paquet sigui actual abans de que es realitzin les operacions DML.&lt;br /&gt;
&lt;br /&gt;
:e) Prova els canvis de codi executant la consulta per mostrar els empleats que son programadors i, a continuació, emet una sentencia de actualització per augmentar el salari mínim del tipus de treball IT_PROG en 1.000 en la taula JOBS. Després d'això, realitza una consulta dels empleats amb el tipus de treball IT_PROG per comprovar els canvis resultants. Els salaris de què empleats s'han definit en el mínim per als seus treballs?&lt;br /&gt;
&lt;br /&gt;
'''3.''' Donat que CHECK_SALARY_TRG arranca el procediment CHECK_SALARY, abans d'afeir o actualitzar un empleat, has de comprovar si encara funciona com s'esperava.&lt;br /&gt;
&lt;br /&gt;
:a) Prova'l agregant un nou empleat mitjançant EMP_PKG.ADD_EMPLOYEE amb els següents paràmetres: (‘Steve’,‘Morse’, ‘SMORSE’, and sal =&amp;gt; 6500). Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:b) Per corregir el problema trobat al afegir o actualitzar un empleat:&lt;br /&gt;
&lt;br /&gt;
::i) Crea un disparador de sentencia BEFORE INSERT OR UPDATE anomenat EMPLOYEE_INITJOBS_TRG en la taula EMPLOYEES que cridi al procediment JOBS_PKG.INITIALIZE.&lt;br /&gt;
&lt;br /&gt;
::ii) Utilitza la sintaxis CALL en el cos del disparador.&lt;br /&gt;
&lt;br /&gt;
:c) Prova el disparador afegint l'empleat Steve Morse de nou. Confirma el registre afegint en la taula EMPLOYEES mostrant l'identificador d'empleat, el nom i el cognom, el salari, l'identificador de treball i el identificador de departament.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Solucions exercicis ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T1 | Creació de procediments]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T2 | Creació de funcions i depuració de subprogrames]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T3 | Creació i ús de paquets]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T4 | Treballar amb paquets]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T5 | Ús del paquet UTL_FILE]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T8 | Creació de disparadors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T9 | Creació de disparadors compostos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T5 | Interacció amb el servidor Oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T6 | Creació d'estructures de control]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T7 | Tipus de dades compostes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T10 | Gestió d'excepcions]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T11 | Creació de procediments]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T12 | Creació de funcions]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF3:_PL-SQL-2&amp;diff=15779</id>
		<title>M2 - Bases de dades / Exercicis UF3: PL-SQL-2</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF3:_PL-SQL-2&amp;diff=15779"/>
				<updated>2021-09-27T16:10:21Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Solucions exercicis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Creació de procediments==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, crearà, compilarà i farà crides a procediments que emeten ordres DML i de consulta. També aprendrà a manegar excepcions en els procediments.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' si no ha realitzat un pas d'una pràctica, execute el script de solucions adequat del pas de la pràctica abans de continuar amb el següent pas o amb la següent pràctica.&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, crearà i cridarà al procediment ADD_JOB, a més a més de revisar el resultat. També crearà i cridarà a un procediment anomenat UPD_JOB per modificar un treball en la taula JOBS; tanmateix, crearà i cridarà a un procediment anomenat DEL_JOB per suprimir un treball de la taula JOBS. Per últim, crearà un procediment anomenat GET_EMPLOYEE per consultar la taula EMPLOYEES, que retorna el salari i l'identificador de treball d'un empleat quan es proporciona l'identificador de l'empleat.&lt;br /&gt;
&lt;br /&gt;
'''1.-''' Crea, compila i crida al procediment ADD_JOB i revisa el resultat.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat ADD_JOB per afegir un nou treball en la taula JOBS. Proporciona l'identificador i el càrrec utilitzant dos paràmetres.&lt;br /&gt;
&lt;br /&gt;
:'''Nota:''' pots crear el procediment (així com altres objectes) mitjançant la introducció del codi en l'àre SQL Worksheet i, a continuació, fer clic en l¡icona Run Script (F5). De aquesta forma, es crea i compila el procediment. Per saber si el procediment conté o no errors, fes clic en el nom del mateix en el node de procediments i, a continuació, selecciona Compile en el menú emergent.&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment amb IT_DBA com a identificadro del treball i Database Administrator com a càrrec. Consulta la taula JOBS i mira el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_1.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c) Crida al procediment de nou i passa-li com a identificador de treball ST_MAN i un càrrec Stock Manager. Què succeïx? Per què?&lt;br /&gt;
&lt;br /&gt;
'''2.-''' Crea un procediment anomenat UPD_JOB per modificar un treball en la taula JOBS.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat UPD_JOB per actualitzar el càrrec. Proporciona el identificador de treball i un càrrec nou utilitzant dos paràmetres. Inclou el manegador d'excepcions necessari si no s'ha produït l'actualització.&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment per canviar el càrrec de l'identificador de treball IT_DBA a Data Administrador. Consulta la taula JOBS i mira el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_2.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c)  Prova la secció del manegador d'excepcions del procediment intentant actualitza un treball que no existeixi. Pots utilitzar l'identificador de treball IT_WEB i el càrrec Web Master.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_3.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
'''3.-''' Crea un procediment anomenat DEL_JOB per suprimir un treball de la taula JOBS.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat DEL_JOB per suprimir un treball. Inclou el codi de manegador d'excepcions necessari si no s'ha suprimit cap treball.&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment mitjançant l'identificador de treball IT_DBA. Consulta la taula JOBS i mira el resultat. &lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_4.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c) Prova la secció del manegador d'excepcions del procediment intentant suprimir un treball que no existeixi. Utilitza IT_WEB com a identificador de treball. Apareixerà el missatge que has inclòs en la secció del manegador d'excepcions del procediment com a sortida.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_5.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
'''4.-''' Crea un procediment anomenat GET_EMPLOYEE per consultar la taula EMPLOYEES, que retorni el salari i l'identificador de treball d'un empleat quan es proporciona el identificador de l'empleat.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment que retorni un valor de les columnes SALARY i JOB_ID per l'identificador d'empleat especificat. Elimina els errors de sintaxi, si n'hi ha i, a continuació, recompila el codi.&lt;br /&gt;
&lt;br /&gt;
:b) Executa el procediment utilitzant les variables del host per als dos paràmetres OUT: una per al salari i l'altre per l'identificador de treball. Mostra el salari i l'identificador de treball per a l'identificador de empleat 120.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_CCC_6.png |500px|center| Creació, compilació crida de procediments]]&lt;br /&gt;
&lt;br /&gt;
:c) Crida al procediment de nou amb un EMPLOYEE_ID 300. Què succeïx? Per què?&lt;br /&gt;
&lt;br /&gt;
==Creació de funcions i depuració de subprogrames==&lt;br /&gt;
&lt;br /&gt;
'''1.-''' En aquesta pràctica, crearàs, compilaràs i utilitzaràs funcions emmagatzemades i un procediment:&lt;br /&gt;
&lt;br /&gt;
:1) Crea i crida a la funció GET_JOB per retornar un càrrec.&lt;br /&gt;
&lt;br /&gt;
::a) Crea i compila la funció anomenada GET_JOB per retornar un càrrec (job_title) a partir del identificador (job_id).&lt;br /&gt;
&lt;br /&gt;
::b) Crea una variable de host VARCHAR2 anomenada b_title, que permeti una longitud e 35 caràcters. Crida la funció amb l'identificador de treball SA_REP per que retorni el valor de la variable de host i, a continuació, imprimeix la variable de host per veure el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_funcions_1.png |500px|center| Funcions]]&lt;br /&gt;
&lt;br /&gt;
:2) Crea una funció anomenada GET_ANNUAL_COMP per retornar el salari anual d'un empleat calculat a partir del salari mensual i la comissió transferits com a paràmetres.&lt;br /&gt;
&lt;br /&gt;
::a) Crea la funció GET_ANNUAL_COMP, que accepti valors de paràmetres del salari mensual i la comissió. Un o els dos valors transferits poden ser NULL, però la funció haurà de retornar un salari anual no NULL. Utilitza la següent fórmula bàsica per calcular el salari anual:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     (salary*12) + (commission_pct*salary*12)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::b) Utilitza la funció en una sentència SELECT en la taula EMPLOYEES per als empleats del departament 30.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_funcions_2.png |500px|center| Funcions]]&lt;br /&gt;
&lt;br /&gt;
:3) Crea un procediment, ADD_EMPLOYEE, per afegir un nou empleat en la taula EMPLOYEES. El procediment cridarà a una funció VALID_DEPTID per comprovar si l'identificador (ID) de departament especificat per al nou empleat existeix en la taula DEPARTMENTS.&lt;br /&gt;
&lt;br /&gt;
::a) Crea una funció anomenada VALID_DEPTID per validar l'identificador de departament especificat i retornar un valor BOOLEAN TRUE si existeix el departament.&lt;br /&gt;
&lt;br /&gt;
::b) Crea el procediment ADD_EMPLOYEE per afegir un empleat a la taula EMPLOYEES. La fila s'ha d'afegir a la taula EMPLOYEES si la funció VALID_DEPTID retorna TRUE; en cas contrari, alertarà a l'usuari amb un missatge adequat. Proporciona els següents paràmetres:&lt;br /&gt;
&lt;br /&gt;
:::- first_name&lt;br /&gt;
:::- last_name&lt;br /&gt;
:::- email&lt;br /&gt;
:::- job: utilitza 'SA_REP' com a valor per defecte.&lt;br /&gt;
:::- mgr: utilitza 145 com a valor per defecte.&lt;br /&gt;
:::- sal: utilitza 1000 com a valor per defecte.&lt;br /&gt;
:::- comm: utilitza 0 com a valor per defecte.&lt;br /&gt;
:::- deptid: utilitza 30 com a valor per defecte.&lt;br /&gt;
:::- Utilitza la seqüència EMPLOYEES_SEQ per definir la columna employee_id.&lt;br /&gt;
:::- Defineix la columna hire_date com a TRUNC(SYSDATE).&lt;br /&gt;
&lt;br /&gt;
::c) Crida a ADD_EMPLOYEE per al nom 'Jane Harris' del departament 15, deixant els altres paràmetres amb els valors per defecte. Quin és el resultat?&lt;br /&gt;
&lt;br /&gt;
::d) Afegeix un altre empleat anomenat 'Joe Harris' en el departament 80, deixant els altres paràmetres amb els valors per defecte. Quin és el resultat?&lt;br /&gt;
&lt;br /&gt;
'''2.-''' En aquesta pràctica, es presentarà la funcionalitat bàsica del depurador de SQL Developer:&lt;br /&gt;
&lt;br /&gt;
:* Crea un procediment i una funció.&lt;br /&gt;
:* Afegeix punts de divisió en el procediment creat.&lt;br /&gt;
:* Compila el procediment i la funció per al mode de depuració.&lt;br /&gt;
:* Depura el procediment i desplaçat a la primera línia executable del codi.&lt;br /&gt;
:* Mostra i modifica les variables dels subprogrames.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' si no has realitzat un pas d'una pràctica, executa el sript de solucions adequat d'aquest pas del pràctica abans de continuar amb el següent pas o amb la següent pràctica.&lt;br /&gt;
&lt;br /&gt;
:1) Activa SERVEROUTPUT.&lt;br /&gt;
&lt;br /&gt;
:2) Executa el script sol_02_02_02.sql per crear el procediment emp_list.&lt;br /&gt;
:Examina el codi del procediment i compila el procediment. Per què apareix l'error del compilador?&lt;br /&gt;
&lt;br /&gt;
:3) Executa el script  sol_02_02_03.sql per la funció get_location.&lt;br /&gt;
:Examina el codi de la funció, compila la funció i, a continuació, corregeix els possibles errors.&lt;br /&gt;
&lt;br /&gt;
:4) Recompila el procediment emp_list. El proceiment ha de compilarse correctament.&lt;br /&gt;
&lt;br /&gt;
:5) Edita el procediment emp_list i la funció get_location.&lt;br /&gt;
&lt;br /&gt;
:6) Agrega quatre punts de divisió al procediemtn emp_list en les següents línies de codi:&lt;br /&gt;
::a) OPEN emp_cursor;&lt;br /&gt;
::b) WHILE (emp_cursor%FOUND) AND (i &amp;lt;= pMaxRows) LOOP&lt;br /&gt;
::c) v_city := get_location (emp_record.department_name);&lt;br /&gt;
::d) CLOSE emp_cursor;&lt;br /&gt;
&lt;br /&gt;
:7) Compila el procediment emp_list per a la depuració.&lt;br /&gt;
&lt;br /&gt;
:8) Depura el procediment.&lt;br /&gt;
&lt;br /&gt;
:9) Introdueix 100 com a valor del paràmetre PMAXROWS.&lt;br /&gt;
&lt;br /&gt;
:10) Examina el valor de les variables en el separador Data. Quins són els valors assignats a REC_EMP y EMP_TAB? ¿Per què?&lt;br /&gt;
&lt;br /&gt;
:11) Utilitza l'opció de depuració Step Into per anar a cada línia de codi de emp_list i passar per el bucle while només una vegada.&lt;br /&gt;
&lt;br /&gt;
:12) Examina el valor de les variables en el separador Data. Quins són els valors assignats a REC_EMP?&lt;br /&gt;
&lt;br /&gt;
:13) Segueix premen F7 fins que s'executi la línia emp_tab(i) := rec_emp;.&lt;br /&gt;
:Examina el valor de les variables en el separador Data. Quins són els valors assignats a EMP_TAB?&lt;br /&gt;
&lt;br /&gt;
:14) Utilitza el separador Data per a modificar el valor del comptador i a 98.&lt;br /&gt;
&lt;br /&gt;
:15) Segueix premen F7 fins que es vegi la llista de empleats en el separador Debugging – Log. Quants empleats apareixen?&lt;br /&gt;
&lt;br /&gt;
:16) Si utilitzes l'opció del depurador Step Over per a desplaçar-te per el codi, es desplaça per la funció get_location? ¿Per què?&lt;br /&gt;
&lt;br /&gt;
==Creació de paquets==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica. crearàs cossos i especificacions de paquets. A continuació, cridaràs a les construccions dels paquets amb dades d'exemple.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Crea una especificació del paquet i un cos del paquet anomenat JOB_PKG, amb una còpia dels procediments ADD_JOB, UPD_JOB i DEL_JOB, així com la seva funció GET_JOB.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' Utilitza el codi dels procediments i les funcions guardats prèviament al crear el paquet. Pots copiar el codi d'un procediment o una funció per a, a continuació, enganxar-lo en la secció adequada del paquet.&lt;br /&gt;
&lt;br /&gt;
:a) Crea l'especificació del paquet, inclosos els procediments i les capçaleres de funció com a construccions públiques.&lt;br /&gt;
&lt;br /&gt;
:b) Crea el cos del paquet amb les implantacions de cada un dels subprogrames.&lt;br /&gt;
&lt;br /&gt;
:c) Suprimeix els procediments i funció autònoms següents que acabes d'empaquetar amb els nodes Procedures i Functions del arbre Object Navigation:&lt;br /&gt;
&lt;br /&gt;
::i) Els procedimients ADD_JOB, UPD_JOB i DEL_JOB&lt;br /&gt;
::ii) La funció GET_JOB&lt;br /&gt;
&lt;br /&gt;
:d) Crida al procediment empaquetat ADD_JOB transferint-li com a paràmetres els valors IT_SYSAN i SYSTEMS ANALYST.&lt;br /&gt;
&lt;br /&gt;
:e) Consulta la taula JOBS per a veure el resultat.&lt;br /&gt;
&lt;br /&gt;
[[Imatge:M2UF3_paquets_1.png |500px|center| Paquets]]&lt;br /&gt;
&lt;br /&gt;
'''2.''' Crea i crida un paquet que contingui construccions públiques i privades.&lt;br /&gt;
&lt;br /&gt;
:a) Crea una especificació del paquet i un cos del paquet anomenats EMP_PKG, que contingui els següents procediments i funció creats anteriorment:&lt;br /&gt;
&lt;br /&gt;
::i) Procediment ADD_EMPLOYEE com a construcció pública&lt;br /&gt;
::ii) Procedimient GET_EMPLOYEE com a construcció pública&lt;br /&gt;
::iii) Funció VALID_DEPTID com a construcció privada&lt;br /&gt;
&lt;br /&gt;
:b) Crida al procediment EMP_PKG.ADD_EMPLOYEE, amb l'identificador de departament 15 per a l'empleada Jane Harris amb identificador de correu electrònic JAHARRIS. Com l'identificador de departament 15 no existeix, rebràs un missatge d'error com s'especifica en el manegador d'excepcions del procediment.&lt;br /&gt;
&lt;br /&gt;
:c) Crida al procediment empaquetat ADD_EMPLOYEE utilitzant l'identificador de departament 80 per al empleat  David Smith amb l'identificador de correu electònic DASMITH.&lt;br /&gt;
&lt;br /&gt;
:d) Consulta la taula EMPLOYEES per verificar que s'ha afegit el nou empleat.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb paquets==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, modificaràs el codi del paquet EMP_PKG que has creat anteriorment i, a continuació, sobrecarregaràs el procediment ADD_EMPLOYEE. A continuació crearàs dues funcions sobrecarregades anomenades GET_EMPLOYEE en el paquet EMP_PKG. També afegiràs un procediment públic a EMP_PKG per omplir una taula PL/SQL privada de identificadors de departament vàlids, a més a més de modificar la funció VALID_DEPTID per utilitzar el contingut de la taula PL/SQL privada amb el fi de validar els valors de identificador vàlids. També canviaràs la funció de procesament de validació VALID_DEPTID per utilitzar la taula PL/SQL privada de identificadors de departament. Per últim, reorganitzaràs els subprogrames en el cos i l'especificació del paquet per a que estiguin en seqüència alfabètica.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Modifica el codi del paquet EMP_PKG que has creat a la Pràctica 4, pas 2 i sobrecarrega el procediment ADD_EMPLOYEE.&lt;br /&gt;
&lt;br /&gt;
:a) En l'especificació del paquet, afegeix un nou procediment anomenat ADD_EMPLOYEE, que accepti els tres paràmetres següents:&lt;br /&gt;
&lt;br /&gt;
::i) First name&lt;br /&gt;
::ii) Last name&lt;br /&gt;
::iii) Department ID&lt;br /&gt;
&lt;br /&gt;
:b) Prem Run Script (F5) per crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:c) Implanta el nou procediment ADD_EMPLOYEE en el cos del paquet, de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) Formata la adreça de correu electrònic en caràcters en majúscula, utilitzant la primera lletra del nom concatenat amb les set primeres lletres del cognom.&lt;br /&gt;
::ii) El procediment cridarà al procediment ADD_EMPLOYEE existent per realitzar l'operació INSERT real utilitzant els paràmetres i el correu electrònic formatat per proporcionar els valors.&lt;br /&gt;
::iii) Prem Run Script per crear el paquet. Compila el paquet.&lt;br /&gt;
&lt;br /&gt;
:d) Crida al nou procediment ADD_EMPLOYEE utilitzant el nom Samuel Joplin per afegir-lo al departament 30.&lt;br /&gt;
&lt;br /&gt;
:e) Confirma que el nou empleat s'ha afegit a la taula EMPLOYEES.&lt;br /&gt;
&lt;br /&gt;
'''2.''' En el paquet EMP_PKG, crea dues funcions sobrecarregades anomenades GET_EMPLOYEE:&lt;br /&gt;
&lt;br /&gt;
:a) En la especificació del paquet, afegeix les següents funcions:&lt;br /&gt;
&lt;br /&gt;
::i) La funció GET_EMPLOYEE que accepta el paràmetre anomenat p_emp_id basat en el tipus employees.employee_id%TYPE. Aquesta funció ha de retornar EMPLOYEES%ROWTYPE.&lt;br /&gt;
&lt;br /&gt;
::ii) La funció GET_EMPLOYEE que accepta el paràmetre anomenat p_family_name de tipus employees.last_name%TYPE. Aquesta funció ha de retornar EMPLOYEES%ROWTYPE.&lt;br /&gt;
&lt;br /&gt;
:b) Prem Run Script per tornar a crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:c) En el cos del paquet:&lt;br /&gt;
&lt;br /&gt;
::i) Fes la primera funció GET_EMPLOYEE per consultar un empleat mitjançant l'identificador del mateix.&lt;br /&gt;
&lt;br /&gt;
::ii) Fes la segona funció GET_EMPLOYEE per utilitzar l'operador d'igualtat en el valor subministrat en el paràmetre p_family_name.&lt;br /&gt;
&lt;br /&gt;
:d) Prem Run Script per tornar a crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:e) Afegeix un procediment d'utilitat PRINT_EMPLOYEE al paquet EMP_PKG, de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) El procediment accepta EMPLOYEES%ROWTYPE com a paràmetre.&lt;br /&gt;
::ii) El procediment mostra el següent per a un empleat en una línia, mitjançant el paquet DBMS_OUTPUT:&lt;br /&gt;
&lt;br /&gt;
:::- department_id&lt;br /&gt;
:::- employee_id&lt;br /&gt;
:::- first_name&lt;br /&gt;
:::- last_name&lt;br /&gt;
:::- job_id&lt;br /&gt;
:::- salary&lt;br /&gt;
&lt;br /&gt;
:f) Prem Run Script (F5) per crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
:g) Utilitza un bloc anònim per cridar a la funció EMP_PKG.GET_EMPLOYEE amb un identificador d'empleat 100 i amb cognom 'Joplin'. Utilitza el procediment PRINT_EMPLOYEE per mostrar els resultats per a cada fila tornada.&lt;br /&gt;
&lt;br /&gt;
'''3.''' Com la companyia no canvia amb freqüència les seves dades de departament, pots millorar el rendiment de EMP_PKG afegint un procediment públic, INIT_DEPARTMENTS, per omplir una taula PL/SQL privada d'identificadors de&lt;br /&gt;
departament vàlids. Modifica la funció VALID_DEPTID per utilitzar el contingut de la taula PL/SQL privada amb el fi de validar els valors dels identificadors de departament.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' el script de l'arxiu de solucions sol_04_03.sql conté el codi dels passos a, b i c.&lt;br /&gt;
&lt;br /&gt;
:a) En l'especificació del paquet, crea un procediment anomenat INIT_DEPARTMENTS sense paràmetres. Per fer-ho, afegeix el següent a la secció d'especificació del paquet abans de la especificació PRINT_EMPLOYEES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PROCEDURE init_departments;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:b) En el cos del paquet, implanta el procediment INIT_DEPARTMENTS per emmagatzemar tots els identificadors de departament en una taula d'índex PL/SQL privada anomenada valid_departments que conté valores BOOLEAN.&lt;br /&gt;
&lt;br /&gt;
::i) Declara la variable valid_departments i la seva definició de tipus boolean_tab_type abans que tots els procediments del cos.&lt;br /&gt;
&lt;br /&gt;
::Introdueix el següent al començament del cos del paquet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     TYPE boolean_tab_type IS TABLE OF BOOLEAN&lt;br /&gt;
     INDEX BY BINARY_INTEGER;&lt;br /&gt;
     valid_departments boolean_tab_type;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::ii) Utilitza el valor de la columna department_id com a índex per crear l'entrada en la taula de índex per indicar la seva presencia i assignar a l'entrada un valor de TRUE. Introdueix la declaració del procediment INIT_DEPARTMENTS al final del cos del paquet (justament després del procediment print_employees), de la sigüent forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PROCEDURE init_departments IS&lt;br /&gt;
     BEGIN&lt;br /&gt;
        FOR rec IN (SELECT department_id FROM departments)&lt;br /&gt;
          LOOP&lt;br /&gt;
            valid_departments(rec.department_id) := TRUE;&lt;br /&gt;
          END LOOP;&lt;br /&gt;
     END;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::c) En el cos, crea un bloc d'inicialització que cridi al procediment INIT_DEPARTMENTS per inicialitzar la taula, de la següent forma:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     BEGIN&lt;br /&gt;
        init_departments;&lt;br /&gt;
     END;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::d) Prem en Run Script (F5) per crear i compilar el paquet.&lt;br /&gt;
&lt;br /&gt;
'''4.''' Canvia la funció de processament de validació VALID_DEPTID per utilitzar la taula PL/SQL privada d'identificadors de departament.&lt;br /&gt;
&lt;br /&gt;
:a) Modifica la funció VALID_DEPTID per realitzar la validació utilitzant la taula PL/SQL de valors d'identificadors de departament. Prem en Run Script (F5) per crear el paquet. Compila el paquet.&lt;br /&gt;
&lt;br /&gt;
:b) Prova el codi cridant a ADD_EMPLOYEE amb el nom James Bond en el departament 15. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:c) Afegeix un nou departament. Especifica 15 como identificador del departament i 'Security' com a nom del departament. Confirma i verifica els canvis.&lt;br /&gt;
&lt;br /&gt;
:d) Prova el codi cridant a ADD_EMPLOYEE amb el nom James Bond en el departament 15. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:e) Executa el procediment EMP_PKG.INIT_DEPARTMENTS per actualitzar la taula interna PL/SQL amb les últimes dades del departament.&lt;br /&gt;
&lt;br /&gt;
:f) Prova el codi cridant a ADD_EMPLOYEE amb el nom James Bond en el departament 15. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:g) Suprimeox al empleat James Bond y el departament 15 de les seves respectives taules, confirma els canvis i refresca les dades del departament cridant al procediment EMP_PKG.INIT_DEPARTMENTS. Assegurat d'introduir SET SERVEROUTPUT ON abans.&lt;br /&gt;
&lt;br /&gt;
'''5.''' Reorganitza els subprogrames en el cos de la especificació del paquet per a que estiguin en seqüència alfabètica.&lt;br /&gt;
&lt;br /&gt;
:a) Edita la especificació del paquet i reorganitza els subprogrames de forma alfabètica. Prem en Run Script per tornar a crear la especificació del paquet. Compila l'especificació del paquet. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:b) Edita el cos del paquet i reorganitza tots els subprogrames de forma alfabètica. Prem en Run Script per tornar a crear la especificació del paquet. Recompila l'especificació del paquet. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:c) Corregeix l'error de compilació utilitzant una declaració anticipada en el cos per a la referencia de subprograma adequada. Prem en Run Script per tornar a crear el paquet i, a continuació, recompila el paquet. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
==Ús de paquets proporcionats per Oracle==&lt;br /&gt;
&lt;br /&gt;
Autoritzar al usuari HR a emprar el paquet UTL_FILE:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  SQL&amp;gt; connect sys as sysdba;&lt;br /&gt;
&lt;br /&gt;
  SQL&amp;gt; grant execute on sys.utl_file to hr;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, utilitzarà el paquet UTL_FILE per generar un informe d'arxiu de text dels empleats de cada departament. Primer cal crear i executar un procediment anomenat EMPLOYEE_REPORT, que generà un informe d'empleats en un arxiu del sistema operatiu utilitzant el paquet UTL_FILE. Aquest informe generarà una llista dels empleats que tenen un salari superior al salari mig del seu departament. Finalment, es mostrara el contingut de l'arxiu de text per pantalla.&lt;br /&gt;
&lt;br /&gt;
1. Crea un procediment anomenat EMPLOYEE_REPORT, que generi un informe d'empleats en un arxiu del sistema operatiu utilitzant el paquet UTL_FILE.&lt;br /&gt;
&lt;br /&gt;
Aquest informe generarà una llista dels empleats que tenen un salari superior al salari mig del seu departament.&lt;br /&gt;
&lt;br /&gt;
:a) El procediment rebrà dos paràmetres. El primer és el directori de sortida. El segon és el nom de l'arxiu de text.&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' Utilitza el valor de la ubicació del directori UTL_FILE. Agrega una secció per manegar les excepcions que es poden produir al utilitzar el paquet UTL_FILE.&lt;br /&gt;
&lt;br /&gt;
:b) Crea i compila el procediment.&lt;br /&gt;
&lt;br /&gt;
2. Crida al procediment amb els dos arguments següents: &lt;br /&gt;
&lt;br /&gt;
:a) Utilitza REPORTS_DIR com alies per l'objecte de directori com a primer paràmtre.&lt;br /&gt;
:b) Utilitza sal_rpt.txt com a segon paràmetre.&lt;br /&gt;
&lt;br /&gt;
3. Per mostrar el contingut de l'arxiu, procedeix de la següent forma:&lt;br /&gt;
&lt;br /&gt;
:a) Fes clic dues vegades en la icona Terminal de l'escriptori. Es mostrarà la finestra Terminal.&lt;br /&gt;
:b) Situat en el directori on es trobi l'arxiu generat (/home/oracle/labs/plpu/reports),&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' pots utilitzar l'ordre pwd per mostrar el directori actual.&lt;br /&gt;
&lt;br /&gt;
:c) Llista el contingut del directori (ordre ls).&lt;br /&gt;
:d) Obre l'arxiu transferit sal_rpt.txt, amb l'editor que vulguis.&lt;br /&gt;
&lt;br /&gt;
==Creació de disparadors==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, crearàs disparadors de sentencia i de fila. També crearàs procediments que es cridaran des de els disparadors.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Les files de la taula JOBS emmagatzemen  els salaris mínims i màxims permesos per als diferents valors de JOB_ID. Escriu un codi per garantir que el salari dels empleats estigui dins del rang permés pel seu tipus de treball, per a operacions de inserció i actualització. &lt;br /&gt;
&lt;br /&gt;
:a) Crea un procediment anomenat CHECK_SALARY, de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) El procediment accepta dos paràmetres, un per a la cadena de l'identificador de treball del empleat i l'altre per al salari.&lt;br /&gt;
::ii) El procediment utilitza l'identificador de treball per a determinar el salari mínim i màxim per al treball especificat.&lt;br /&gt;
::iii) Si el paràmetre del salari, mínim i màxim inclosos, no es troba dins del rang de salaris, apareixerà una excepció d'aplicació amb el missatge “Invalid salary &amp;lt;sal&amp;gt;. Salaries for job &amp;lt;jobid&amp;gt; must be between &amp;lt;min&amp;gt; and &amp;lt;max&amp;gt;.” Substitueix els diferents elements del missatge per els valors que proporcionen els paràmetres i les variables omplerts amb consultes. Guarda l'arxiu.&lt;br /&gt;
&lt;br /&gt;
:b) Crea un disparador anomenat CHECK_SALARY_TRG en la taula EMPLOYEES que arranqui davant d'una operació INSERT o UPDATE en cada fila:&lt;br /&gt;
&lt;br /&gt;
::i) El disparador ha de cridar al procediment CHECK_SALARY per executar la lògica de negoci.&lt;br /&gt;
::ii) El disparador ha de transferir el nou identificador de treball i salari als paràmetres de procediment.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Prova el disparador CHECK_SAL_TRG utilitzant els següents casos:&lt;br /&gt;
&lt;br /&gt;
:a) Utilitza el procediment EMP_PKG.ADD_EMPLOYEE per afegir a la empleada Eleanor Beh al departament 30. Què succeeix? ¿Per què?&lt;br /&gt;
&lt;br /&gt;
:b) Actualitza el salari de l'empleat 115 a 2.000 dòlars. En un altre operació d'actualització, canvia l'identificador de treball de l'empleat a HR_REP. Què succeeix en cada cas?&lt;br /&gt;
&lt;br /&gt;
:c) Actualitza el salari de l'empleat 115 a 2.800 dòlars. Què succeeix?&lt;br /&gt;
&lt;br /&gt;
'''3.''' Actualitza el disparador CHECK_SALARY_TRG per a que arranqui només quan els valors de l'identificador de treball o el salari hagin canviat en realitat.&lt;br /&gt;
&lt;br /&gt;
:a) Implanta la regla de negoci utilizant una clàusula WHEN per comprovar si els valors JOB_ID o SALARY han canviat.&lt;br /&gt;
&lt;br /&gt;
:'''Nota:''' assegurat de que la condició manega NULL en els valors de OLD.column_name si es realitza una operació INSERT; si no es així, la operació d'inserció fallarà.&lt;br /&gt;
&lt;br /&gt;
:b) Comprova el disparador executant el procediment EMP_PKG.ADD_EMPLOYEE amb els següents valors de paràmetroes:&lt;br /&gt;
::- p_first_name: 'Eleanor'&lt;br /&gt;
::- p_last name: 'Beh'&lt;br /&gt;
::- p_Email: 'EBEH'&lt;br /&gt;
::- p_Job: 'IT_PROG'&lt;br /&gt;
::- p_Sal: 5000&lt;br /&gt;
&lt;br /&gt;
:c) Actualitza als empleats amb un treball IT_PROG incrementant el seu salari en 2.000 dòlars. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:d) Actualitza a 9.000 dòlars el salari de Eleanor Beh.&lt;br /&gt;
&lt;br /&gt;
:'''Indicació:''' utilitza una sentencia UPDATE amb una subconsulta en la clàusula WHERE.  Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:e) Canvia el treball de Eleanor Beh a ST_MAN utilitzant un altre sentencia UPDATE amb una subconsulta.  Què succeïx?&lt;br /&gt;
&lt;br /&gt;
'''4.''' Se't demana que evitis que es suprimeixi als empleats durant les hores laborables.&lt;br /&gt;
&lt;br /&gt;
:a) Escriu un disparador de sentencia anomenat DELETE_EMP_TRG en la taula EMPLOYEES per evitar que les files es suprimeixin durant hores laborables entre setmana, es a dir, de las 9:00 a.m. a las 6:00 p.m.&lt;br /&gt;
&lt;br /&gt;
:b) Intenta suprimir els empleats amb JOB_ID SA_REP que no estiguin assignats a un departamento.&lt;br /&gt;
&lt;br /&gt;
:'''Indicació:''' empleat Grant amb identificador 178.&lt;br /&gt;
&lt;br /&gt;
==Creació de disparadors compostos, de DDL i d'events de base de dades==&lt;br /&gt;
&lt;br /&gt;
En aquesta pràctica, implantaràs una regla de negoci senzilla per garantir la integritat de les dades dels salaris dels empleats respecte al rang de salaris vàlids per als seus treballs. Crea un disparador per a aquesta regla. Durant aquest procés, els nous&lt;br /&gt;
disparadors donaran lloc a un efecte en cascada amb disparadors creats en la secció pràctica de la lliçó anterior. L'efecte en cascada originarà una excepció de taula mutant en la taula JOBS. A continuació, crea un paquet PL/SQL i disparadors addicionals per resoldre el problema de la taula mutant.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Els empleats reben un augment de sou automàticament si el salari mínim d'un treball s'augmenta a un valor superior que els seus salaris actuals. Implanta aquest requisit amb un procediment empaquetat al que cridi el disparador de la taula JOBS. Quan intenta actualitzar el salari mínim en la tabla JOBS e intenta actualitzar els salaris dels empleats, el disparador CHECK_SALARY intenta llegir la taula JOBS, que està subjecta a canvis i obtindrà una excepció de taula mutant que es resol creant u nou paquet i disparadors addicionals.&lt;br /&gt;
&lt;br /&gt;
:a) Actualitza el paquet EMP_PKG (que vas actualitzà per última vegada en la pràctica 8), de la següent forma:&lt;br /&gt;
&lt;br /&gt;
::i) Agrega un procediment anomenat SET_SALARY, que actualitzi els salaris dels empleats.&lt;br /&gt;
::ii) El procediment SET_SALARY accepta els dos paràmetres següents: el identificador de treball de aquells salaris que pot ser s'hagin d'actualitzar i el nou salari mínim per a l'identificador del treball.&lt;br /&gt;
&lt;br /&gt;
:b) Crea un disparador de fila anomenat UPD_MINSALARY_TRG en la taula JOBS, que cridi al procediment EMP_PKG.SET_SALARY quan el salari mínim de la taula JOBS s'actualitzi per a un identificador de treball especificat.&lt;br /&gt;
&lt;br /&gt;
:c) Escriu una consulta per mostrar l'identificador d'empleat, el cognom, l'identificador de treball, el salari actual i el salari mínim per als empleats que siguin programadors, es a dir, el seu JOB_ID es 'IT_PROG'. A continuació, actualitza el salari mínim en la taula JOBS per a augmentar-lo en 1.000 dòlars. Què succeïx?&lt;br /&gt;
&lt;br /&gt;
'''2.''' Per resoldre el problema de la taula mutant, crea JOBS_PKG per mantenir en memòria una copia de les files de la taula JOBS. A continuació, modifica el procediment CHECK_SALARY per utilitzar les dades del paquet en lloc d'emetre una consulta en una taula mutant per evitar la excepció. Hauràs de crear crear un disparador de sentencia BEFORE INSERT OR UPDATE en la taula EMPLOYEES per inicialitzar l'estat del paquet JOBS_PKG abans de que arranqui el disparador de fila CHECK_SALARY.&lt;br /&gt;
&lt;br /&gt;
:a) Crea un nou paquet anomenat JOBS_PKG amb la següent especificació:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    PROCEDURE initialize;&lt;br /&gt;
    FUNCTION get_minsalary(jobid VARCHAR2) RETURN NUMBER;&lt;br /&gt;
    FUNCTION get_maxsalary(jobid VARCHAR2) RETURN NUMBER;&lt;br /&gt;
    PROCEDURE set_minsalary(jobid VARCHAR2,min_salary NUMBER);&lt;br /&gt;
    PROCEDURE set_maxsalary(jobid VARCHAR2,max_salary NUMBER);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:b) Implanta el cos de JOBS_PKG, com es detalla a continuació:&lt;br /&gt;
&lt;br /&gt;
::i) Declara una taula d'índex PL/SQL privada anomenada jobs_tab_type indexada per un tipus de cadena basada en JOBS.JOB_ID%TYPE.&lt;br /&gt;
&lt;br /&gt;
::ii) Declara una variable privada anomendad jobstab basada en jobs_tab_type.&lt;br /&gt;
&lt;br /&gt;
::iii) El procediment INITIALIZE llegeix les files en la taula JOBS amb un bucle de cursor y utilitza el valor JOB_ID per al índex jobstab que se li assigni a la fila corresponent.&lt;br /&gt;
&lt;br /&gt;
::iv) La funció GET_MINSALARY utilitza un paràmetre p_jobid com a índex per a jobstab i retorna min_salary per a aquest element.&lt;br /&gt;
&lt;br /&gt;
::v) La funció GET_MAXSALARY utilitza un paràmetre p_jobid com a índex per a jobstab y retorna max_salary per a aquest element.&lt;br /&gt;
&lt;br /&gt;
::vi) El procediment SET_MINSALARY utilitza su p_jobid com a índex per a jobstab amb el fi de definir el camp min_salary del seu element en el valor del paràmetre min_salary.&lt;br /&gt;
&lt;br /&gt;
::vii) El procediment SET_MAXSALARY utilitza su p_jobid com a índex per a jobstab amb el fi de definir el camp max_salary del seu element en el valor del paràmetre max_salary.&lt;br /&gt;
&lt;br /&gt;
:c) Copia el procediment CHECK_SALARY de la pràctica 10, exercici 1a, i modifica el codi substituint la consulta de la taula JOBS amb  sentencies per definir les variables locals minsal y maxsal amb valors de les dades JOBS_PKG cridant a les funcions GET_*SALARY adequades. Aquest pas ha d'eliminar l'excepció de disparador mutant.&lt;br /&gt;
&lt;br /&gt;
:d) Implanta un disparador de sentencia BEFORE INSERT OR UPDATE anomenat INIT_JOBPKG_TRG que utilitzi la sintaxis CALL per cridar al procediment JOBS_PKG.INITIALIZE, amb la finalitat de garantir que l'estat del paquet sigui actual abans de que es realitzin les operacions DML.&lt;br /&gt;
&lt;br /&gt;
:e) Prova els canvis de codi executant la consulta per mostrar els empleats que son programadors i, a continuació, emet una sentencia de actualització per augmentar el salari mínim del tipus de treball IT_PROG en 1.000 en la taula JOBS. Després d'això, realitza una consulta dels empleats amb el tipus de treball IT_PROG per comprovar els canvis resultants. Els salaris de què empleats s'han definit en el mínim per als seus treballs?&lt;br /&gt;
&lt;br /&gt;
'''3.''' Donat que CHECK_SALARY_TRG arranca el procediment CHECK_SALARY, abans d'afeir o actualitzar un empleat, has de comprovar si encara funciona com s'esperava.&lt;br /&gt;
&lt;br /&gt;
:a) Prova'l agregant un nou empleat mitjançant EMP_PKG.ADD_EMPLOYEE amb els següents paràmetres: (‘Steve’,‘Morse’, ‘SMORSE’, and sal =&amp;gt; 6500). Què succeïx?&lt;br /&gt;
&lt;br /&gt;
:b) Per corregir el problema trobat al afegir o actualitzar un empleat:&lt;br /&gt;
&lt;br /&gt;
::i) Crea un disparador de sentencia BEFORE INSERT OR UPDATE anomenat EMPLOYEE_INITJOBS_TRG en la taula EMPLOYEES que cridi al procediment JOBS_PKG.INITIALIZE.&lt;br /&gt;
&lt;br /&gt;
::ii) Utilitza la sintaxis CALL en el cos del disparador.&lt;br /&gt;
&lt;br /&gt;
:c) Prova el disparador afegint l'empleat Steve Morse de nou. Confirma el registre afegint en la taula EMPLOYEES mostrant l'identificador d'empleat, el nom i el cognom, el salari, l'identificador de treball i el identificador de departament.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Solucions exercicis ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T1 | Creació de procediments]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T2 | Creació de funcions i depuració de subprogrames]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T3 | Creació i ús de paquets]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T4 | Treballar amb paquets]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T5 | Ús del paquet UTL_FILE]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T8 | Creació de disparadors]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T9 | Creació de disparadors compostos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T5 | Interacció amb el servidor Oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T6 | Creació d'estructures de control]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T7 | Tipus de dades compostes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T10 | Gestió d'excepcions]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T11 | Creació de procediments]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions PL-SQL-2 T12 | Creació de funcions]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15778</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15778"/>
				<updated>2021-09-27T16:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 16/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 23/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 31/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
Data: 28/05/21&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15777</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15777"/>
				<updated>2021-09-27T16:09:03Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Llenguatge de definició de dades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15776</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15776"/>
				<updated>2021-09-27T16:08:53Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Llenguatge de manipulació de dades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15775</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=15775"/>
				<updated>2021-09-27T16:08:37Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15774</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=15774"/>
				<updated>2021-09-27T16:07:42Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
==Convocatòria Extraordinària DAW-M2==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;		&lt;br /&gt;
PROVA	   DIA	              HORA INICI   HORA FINAL   PROFESSOR&lt;br /&gt;
UF1	   dimarts   09/06	16:50	     19:10      Dan Triano &lt;br /&gt;
UF3-PLSQL  divendres 12/06	15:30	     19:30      Ramon Sort &lt;br /&gt;
UF2	   dimarts   16/06	16:50	     19:10      Dan Triano&lt;br /&gt;
UF4	   dimecres  17/06	15:30	     18:30      Ramon Sort&lt;br /&gt;
UF3-DCL	   divendres 19/06	15:30	     17:30      Ramon Sort&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Proves'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova PL/SQL| Online: UF3 - PL/SQL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF3 : Prova DCL| Online: UF3 - DCL ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Online UF4 : Prova BDOR| Online: UF4 - BDOR ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Període de tancament de l'Institut==&lt;br /&gt;
&lt;br /&gt;
'''Tasques a fer durant el període de confinament:'''&lt;br /&gt;
&lt;br /&gt;
===UNITAT FORMATIVA 3===&lt;br /&gt;
&lt;br /&gt;
'''Convocatòria Ordinària'''&lt;br /&gt;
&lt;br /&gt;
s'apropa la fi d'aquest curs tant excepcional i hem de planificar les proves online de la convocatòria ordinària UF3 i UF4 de M2.&lt;br /&gt;
&lt;br /&gt;
He penjat en el Google Drive el calendari de la convocatòria ordinària, detallant el contingut de cada prova.&lt;br /&gt;
&lt;br /&gt;
- 15 de maig 15:30h: primera part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 22 de maig 15:30h: segona part PL/SQL&lt;br /&gt;
&lt;br /&gt;
- 28 de maig 17:00h: UF4&lt;br /&gt;
&lt;br /&gt;
* Els que ja teniu aprovada la primera part PL/SQL no l'heu de fer.&lt;br /&gt;
&lt;br /&gt;
La base de dades i l'esquema que utilitzarem per a les proves de la UF3 les teniu a la '''carpeta BD Ex Online''' al Google Drive.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis Online (una mica més a baix d'aquesta pàgina) trobareu l'enllaç ('''Subprogrames i cursors''') on teniu les proves online que hem fet fins ara. Les podeu fer per preparar les proves.&lt;br /&gt;
&lt;br /&gt;
Per a la realització de les proves heu de tenir instal·lat '''google meet al mòbil''' i un programa per gravar la prova.&lt;br /&gt;
&lt;br /&gt;
Si teniu dubtes de com realitzarem les proves, si us plau '''no espereu al dia de la prova''' per a resoldre-les.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Calendari UF3'''&lt;br /&gt;
&lt;br /&gt;
16 de març – 22 de març: '''Estudi i exercicis dels temes 8 i 9 de PL/SQL conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
26 de març – 29 de març: '''Estudi i exercicis dels temes 1, 2 i 3 de PL/SQL desenvolupament d'unitats de programa. Inici de la pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
30 de març – 5 de abril: '''Estudi i exercicis dels temes 4 i 8 de PL/SQL desenvolupament d'unitats de programa. Pràctica de PL/SQL'''.&lt;br /&gt;
&lt;br /&gt;
Teniu disponibles a la '''wiki els exercicis i les solucions''' d'aquests temes.&lt;br /&gt;
&lt;br /&gt;
En l'apartat Exercicis conceptes fundamentals PL/SQL de la wiki trobareu '''exercicis per preparar la prova de conceptes fonamentals'''.&lt;br /&gt;
&lt;br /&gt;
Pels dubtes utilitzeu el '''Foro PL/SQL del Moodle'''.&lt;br /&gt;
&lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine subprogrames i cursors| Subprogrames i Cursors ]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===UNITAT FORMATIVA 4===&lt;br /&gt;
&lt;br /&gt;
En el DRIVE compartit trobareu tota l'explicació de l'organització de la unitat formativa.&lt;br /&gt;
&lt;br /&gt;
'''Objectes i taules amb objectes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 20/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 24/04/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 29/04/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
'''Herència'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 06/05/2020'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
'''Col·leccions'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 11/05/2020'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 18/05/2020'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
'''Exercicis Online'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Proves OnLine UF4| Prova 1: Objectes, Taules d'Objectes, Herència i Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
==Enllaços a material audiovisual de formació==&lt;br /&gt;
&lt;br /&gt;
UF3 PL/SQL:&lt;br /&gt;
&lt;br /&gt;
:* [https://youtu.be/EN6E7UGDo3Q  Tema 8-Excepcions]&lt;br /&gt;
&lt;br /&gt;
== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]] / [[M2 - Bases de dades / UF1NF3: Resum model relacional | Resum model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[https://magicplsql.com/sql-oracle/item/69-el-diccionario-de-datos Diccionari de dades]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
'''Recuperació consultes complexes'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
&lt;br /&gt;
'''Data:''' 27-11-20&lt;br /&gt;
&lt;br /&gt;
'''Requisit:''' Fer les següents entregues:&lt;br /&gt;
&lt;br /&gt;
:* 13-11-20:&lt;br /&gt;
&lt;br /&gt;
::Exercicis T4: 1, 2, 3, 4&lt;br /&gt;
::Exercicis T5: 4, 5, 6&lt;br /&gt;
::Exercicis T6: 1, 2&lt;br /&gt;
::Exercicis T7: 1&lt;br /&gt;
::Exercicis T7-1: 1, 5, 6, 7&lt;br /&gt;
::Exercicis T7-2: 1, 2, 3, 4 (5, 6, 7 opcional)&lt;br /&gt;
&lt;br /&gt;
:* 18-11-20:&lt;br /&gt;
&lt;br /&gt;
::Exercicis T4: 5, 6, 7, 8&lt;br /&gt;
::Exercicis T5: 7, 8, 9&lt;br /&gt;
::Exercicis T6: 3, 4&lt;br /&gt;
::Exercicis T7: 2&lt;br /&gt;
::Exercicis T7-1: 2, 8, 9, 10&lt;br /&gt;
::Exercicis T7-2: 8, 9, 10, 11, (12, 13, 14 opcional)&lt;br /&gt;
&lt;br /&gt;
:* 24-11-20: &lt;br /&gt;
&lt;br /&gt;
::Exercicis T4: 9, 10, 11, 12&lt;br /&gt;
::Exercicis T5: 10, 11, 12&lt;br /&gt;
::Exercicis T6: 5,6,7&lt;br /&gt;
::Exercicis T7: 3, 4&lt;br /&gt;
::Exercicis T7-1: 3, 4, 11, 12, 13&lt;br /&gt;
::Exercicis T7-2: 15, 16, 17, 18 (19, 20, 21, 22 opcional)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD] [https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[https://drive.google.com/file/d/1XLVhT4fMG-Q1FwOM0Oy5Ji-30x4VCrcE/view?usp=sharing Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://drive.google.com/file/d/1lOuK_gBnDoM07uli4gf4BMpk7z6kRJKE/view?usp=sharing La llei de protecció de dades (LOPD) en l'empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
====Objectes i taules amb objectes====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]  &lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 09/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
====Herència====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 16/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
====Col·leccions====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 23/05/2021'''&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
&lt;br /&gt;
:'''Entrega: 31/05/2021'''&lt;br /&gt;
&lt;br /&gt;
====Prova pràctica====&lt;br /&gt;
&lt;br /&gt;
Data: 28/05/21&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[DAW-M2-UF4-Banc de Solucions|BSUF4]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF1:_Classes&amp;diff=14549</id>
		<title>M3 - Programació estructurada / Continguts UF1: Classes</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3_estructurada_/_Continguts_UF1:_Classes&amp;diff=14549"/>
				<updated>2020-11-26T15:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Exemple complert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Nota: Aquest punt presenta una gran simplificació del funcionament real de les classes amb Java. A la unitat formativa 4 veurem realment com cal treballar.'''&lt;br /&gt;
&lt;br /&gt;
:*Les classes són estructures de dades complexes que permeten emmagatzemar dades de diferent o del mateix tipus. &lt;br /&gt;
:*La seva forma és lliure i està en funció de les necessitats del programa.&lt;br /&gt;
:*És necessari definir la seva forma indicant els seus camps. &lt;br /&gt;
:*Cada camp pot ser qualsevol de qualsevol tipus de dades inclòs una altra classe.&lt;br /&gt;
&lt;br /&gt;
:*En el nivell en que estem, podem considerar la definició d’una classe com si definíssim una taula de base de dades.&lt;br /&gt;
&lt;br /&gt;
==Declaració de classes==&lt;br /&gt;
&lt;br /&gt;
:*Una classe es declara en un fitxer separat amb extensió .java (des de Netbeans cal fer només “nova classe java”).&lt;br /&gt;
:*No tindrà el mètode main donat que és una definició de tipus de dades.&lt;br /&gt;
:*Cal declarar els atributs que volem que tingui aquest nou tipus de dades.&lt;br /&gt;
&lt;br /&gt;
:*Exemple Clase Client (fitxer Client.java) defineix un nou tipus de dades anomenat Client el qual pot guardar la informació bancària d’una persona:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   public class Client{&lt;br /&gt;
     String nom;&lt;br /&gt;
     String nif;&lt;br /&gt;
     String adreça;&lt;br /&gt;
     long numCompte;&lt;br /&gt;
     float saldo;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Declaració d’objectes==&lt;br /&gt;
&lt;br /&gt;
:*Objecte són les variables que no són d'un tipus de dades primitiu.&lt;br /&gt;
:*Declaració:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Client nouClient = new Client( );  &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*'''nouClient''' serà un objecte de tipus Client.&lt;br /&gt;
:*Cada vegada que es crei un nou client s'ha de fer '''new Client()''';&lt;br /&gt;
&lt;br /&gt;
:*Taules de objectes '''Client''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Client taula [ ] = new Client [50];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*Aquí declarem una taula per emmagatzemar 50 clients.&lt;br /&gt;
:*Si volem introduir 50 clients haurem de fer 50 '''new Client()''';&lt;br /&gt;
&lt;br /&gt;
==Accés als camps==&lt;br /&gt;
&lt;br /&gt;
:*Els camps d’un objecte es tracten de forma individual.&lt;br /&gt;
:*S'utilitza l’operador “punt” ( . ).&lt;br /&gt;
:*Forma general: '''objecte.nom_camp'''&lt;br /&gt;
&lt;br /&gt;
:*Exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   nouClient.nom =”Albert Canela”;&lt;br /&gt;
   nouClient.nif=”32435465H”;&lt;br /&gt;
   nouClient.adreça=”Rue del Percebe, 13”;&lt;br /&gt;
   nouClient.numCompte= 34232312;&lt;br /&gt;
   nouClient.saldo=123.45;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Exemple complert==&lt;br /&gt;
&lt;br /&gt;
Omplir una taula de quatre clients i a continuació mostra les dades dels quatre clients:&lt;br /&gt;
&lt;br /&gt;
:* Només introduirem el nom i el NIF.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package clases;&lt;br /&gt;
&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
public class Clases {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        Scanner teclat = new Scanner(System.in);&lt;br /&gt;
        Client taulaCli [ ] = new Client [4];&lt;br /&gt;
     &lt;br /&gt;
        for (int cli = 0; cli &amp;lt; taulaCli.length; cli++) {&lt;br /&gt;
           Client nouClient = new Client( );  // o utilitzant la taula directament: taulaCli[cli] = new Client( ); &lt;br /&gt;
           System.out.println(&amp;quot;Introdueix les dades del client &amp;quot; + (cli+1));&lt;br /&gt;
           System.out.print(&amp;quot;Nom: &amp;quot;);&lt;br /&gt;
           nouClient.nom = teclat.nextLine();&lt;br /&gt;
           System.out.print(&amp;quot;NIF: &amp;quot;);&lt;br /&gt;
           nouClient.nif = teclat.nextLine();&lt;br /&gt;
           taulaCli[cli] = nouClient;&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
        System.out.println(&amp;quot;Dades de tots els clients &amp;quot;);&lt;br /&gt;
        System.out.println(&amp;quot;&amp;quot;);        &lt;br /&gt;
        for (int cli = 0; cli &amp;lt; taulaCli.length; cli++) {&lt;br /&gt;
           System.out.println(&amp;quot;Client &amp;quot; + (cli+1));&lt;br /&gt;
           System.out.println(&amp;quot;  Nom: &amp;quot; + taulaCli[cli].nom );&lt;br /&gt;
           System.out.println(&amp;quot;  NIF: &amp;quot; + taulaCli[cli].nif );&lt;br /&gt;
        }             &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3&amp;diff=14548</id>
		<title>M3 - Programació</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3&amp;diff=14548"/>
				<updated>2020-11-26T15:43:02Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Pràctiques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UF1: Programació Estructurada ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A1. L’estructura del programa informàtic&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Disseny d’algorismes iteratius &lt;br /&gt;
A4. Tractament de taules&lt;br /&gt;
A5. Tractament de cadenes&lt;br /&gt;
A6. Creació de nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
Nota NF1 = 0.2 Pe1 + 0.08 Pt1+ 0.08 Pt2 +  0.32 Pe2 + 0.32 Pe3&lt;br /&gt;
&lt;br /&gt;
Pe1: Qüestionari&lt;br /&gt;
Pt1: Pràctica taules&lt;br /&gt;
Pt2: Pràctica nou tipus de dades&lt;br /&gt;
Pe2: Prova programació: estructures de control, algoritmes de cerca i de recorregut&lt;br /&gt;
Pe3: Prova programació: taules, cadenes i nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Continguts===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Algoritmes / pseudocodi====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Pseudocodi|Pseudocodi]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Exercicis Pseudocodi |Exercicis Pseudocodi]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Variables, constants, entrada de dades i operadors====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Algorismes i programes |Algorismes i programes]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:shortcuts-80.pdf]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Declaració, inicialització i ús de variables |Declaració, inicialització i ús de variables]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Visualització i entrada de les dades en Java |Visualització i entrada de les dades en Java]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Operadors numèrics i prioritats |Operadors numèrics i prioritats]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Operadors amb dades de tipus lògic |Operadors amb dades de tipus lògic]]&lt;br /&gt;
&lt;br /&gt;
====Estructures de control====&lt;br /&gt;
&lt;br /&gt;
===== Estructures alternatives=====&lt;br /&gt;
&lt;br /&gt;
:*Les '''estructures alternatives''' permeten prendre decisions sobre quin conjunt d’instruccions cal executar en un punt del programa. &lt;br /&gt;
&lt;br /&gt;
:*Tota estructura alternativa es basa en l’avaluació d’una expressió que ha de donar un resultat booleà: true (cert) o false (fals). Aquesta expressió s’anomena la '''condició lògica''' de l’estructura.&lt;br /&gt;
&lt;br /&gt;
:*El conjunt d’instruccions que s’executarà dependrà del resultat de la condició lògica, i actuarà com una mena d’interruptor que marca el flux que cal seguir dins del programa.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Estructura alternativa |Estructura alternativa]]&lt;br /&gt;
&lt;br /&gt;
===== Estructures iteratives=====&lt;br /&gt;
&lt;br /&gt;
Les estructures de repetició o iteratives permeten repetir una mateixa seqüència d’instruccions diverses vegades, mentre es compleixi una certa condició.&lt;br /&gt;
&lt;br /&gt;
::Anomenem '''bucle''' o cicle el conjunt d’instruccions que s’ha de repetir un cert nombre de vegades, i anomenem '''iteració''' cada execució individual del bucle.&lt;br /&gt;
&lt;br /&gt;
::Un '''bucle infinit''' és una seqüència d’instruccions dins d’un programa que itera indefinidament, normalment perquè s’espera que s’assoleixi una condició que mai no s’arriba a produir.&lt;br /&gt;
&lt;br /&gt;
::Forçosament dins de tot bucle hi ha d’haver instruccions que manipulin variables el valor de les quals permeti controlar la repetició o el final del bucle. Aquestes variables s’anomenen '''variables de control'''.&lt;br /&gt;
&lt;br /&gt;
Normalment, les variables de control dins d’un bucle es poden englobar dins d’algun d’aquests tipus de comportament:&lt;br /&gt;
&lt;br /&gt;
:* '''Comptador''': una variable de tipus enter que va augmentant o disminuint, indicant de manera clara el nombre d’iteracions que caldrà fer.&lt;br /&gt;
&lt;br /&gt;
:* '''Acumulador''': una variable en què es van acumulant directament els càlculs que es volen fer, de manera que en assolir cert valor es considera que ja no cal fer més iteracions. Si bé s’assemblen als comptadors, no són ben bé el mateix.&lt;br /&gt;
&lt;br /&gt;
:* '''Semàfor''': una variable que serveix com a interruptor explícit de si cal seguir fent iteracions. Quan ja no en volem fer més, el codi simplement s’encarrega d’assignar-li el valor específic que servirà perquè la condició avaluï false.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència for|La sentència for]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència while|La sentència while]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència do/while|La sentència do/while]]&lt;br /&gt;
&lt;br /&gt;
===== Esquemes de tractament seqüencial=====&lt;br /&gt;
&lt;br /&gt;
'''Introducció'''&lt;br /&gt;
&lt;br /&gt;
Un esquema de programació no és altra cosa que un model de solució per a a una família de problemes de programació homòlegs. L'ús d'esquemes de programació és una eina imprescindible per al programador atès que el seu ús facilita molt la solució de problemes i rebaixa considerablement la taxa d'errors de programació.&lt;br /&gt;
&lt;br /&gt;
Aquesta estratègia de treball no és única de l'àmbit de la programació sinó que també l'apliquem en altres disciplines. Per exemple, a física quan aprenem a resoldre problemes de tir parabòlic o a matemàtiques quan aprenem a calcular primitives fent integració per parts.&lt;br /&gt;
&lt;br /&gt;
La metodologia general segueix aquests passos:&lt;br /&gt;
&lt;br /&gt;
:• Identificació del tipus de problema.&lt;br /&gt;
:• Caracterització dels elements característics.&lt;br /&gt;
:• Aplicació de l'esquema.&lt;br /&gt;
&lt;br /&gt;
En aquest material introduïrem els esquemes seqüencials, és a dir els que s'apliquen a dades que tenen estructura de seqüència.&lt;br /&gt;
&lt;br /&gt;
'''Seqüències'''&lt;br /&gt;
&lt;br /&gt;
Una seqüència és un conjunt de dades de qualsevol tipus que es caracteritzen per estar disposades «en forma de fila», ja sigui des d'un punt de vista físic o conceptual. Moltes de les dades que manipula un programa tenen estructura de seqüència. Per exemple, un&lt;br /&gt;
string com ara &amp;quot;Hola nois&amp;quot;, pot ser considerat com una seqüència de caracters ('H', 'o', 'l',...) o una matriu de reals com una seqüència de files. Més formalment, una seqüència és una conjunt de dades tal que:&lt;br /&gt;
&lt;br /&gt;
:• És finit.&lt;br /&gt;
:• Conté un element que és el primer de la seqüència&lt;br /&gt;
:• Es pot definir la relació de &amp;quot;següent&amp;quot;, que donat un element de la seqüència, diu quin ve a darrera.&lt;br /&gt;
&lt;br /&gt;
Per exemple, el enters de 1 a 10 tenen estructura de seqüència atès que són un conjunt finit, tenen un primer ben definit (l'1) i la relació de següent consisteix a sumar una unitat a l'anterior.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de recorregut|Esquema de recorregut]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de cerca|Esquema de cerca]]&lt;br /&gt;
&lt;br /&gt;
====Tipus de dades compostes====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Taules |Taules]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Cadenes de caràcters |Cadenes de caràcters]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: El tipus char |El tipus char]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Classes |Classes]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Exercicis seqüencials, estructura alternativa i iteratius====&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Seqüencials |Exercicis seqüencials]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Expressions lògiques|Exercicis avaluar expressions lògiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Fer expressions lògiques |Exercicis trobar expressions lògiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa preliminars|Exercicis d'estructura alternativa preliminars]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa |Exercicis d'estructura alternativa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: For |Exercicis amb For]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Recorregut |Exercicis de recorregut]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Cerca |Exercicis de cerca]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Iteratius |Més exercicis iteratius]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Proves exercicis seqüencials, estructura alternativa i iteratius'''&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves |Proves]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves+Solucions |Proves + Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Exercicis taules, cadenes i nous tipus de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules |Exercicis taules]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Pokemons |Exercici taules - Pokemons]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Cadenes |Exercicis de cadenes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: classe Character |Exercicis de classe Character]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Classes|Exercicis Classes]] / [[M3 - Programació estructurada / Exercicis UF1: Menú|Prototipus menú]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves_T_C_TD |Proves]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Proves OnLine====&lt;br /&gt;
&lt;br /&gt;
- Exercicis seqüencials, estructura alternativa i iteratius&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1 Part1: Proves OnLine |Proves Online UF1 1a. Part]]&lt;br /&gt;
&lt;br /&gt;
- Exercicis taules, cadenes i nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1 Part2: Proves OnLine |Proves Online UF1 2a. Part]]&lt;br /&gt;
&lt;br /&gt;
- Tota la UF1&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / UF1: Proves OnLine |Proves Online UF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt1 |Pt1 - Taules]] / [[M3 - Programació estructurada / Continguts UF1: System.out.printf |System.out.printf]] / [[M3 - Programació estructurada / Continguts UF1: Colors |Colors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt2 |Pt2 - Classes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Repàs UF1====&lt;br /&gt;
&lt;br /&gt;
Exercicis seqüencials: 1, 4&lt;br /&gt;
&lt;br /&gt;
Exercicis d'estructura alternativa: 2, 4, 5, 6, 11&lt;br /&gt;
&lt;br /&gt;
Exercicis amb For: 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, '''19, 20, 21, 22, 23'''&lt;br /&gt;
&lt;br /&gt;
Exercicis de recorregut: 1, 2, 3, 4, 5, 6 &lt;br /&gt;
&lt;br /&gt;
Exercicis de cerca: 1, 2, 3, 4, 5, 6&lt;br /&gt;
&lt;br /&gt;
Més exercicis iteratius: '''1, 2, 3, 4, 5'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF2: Disseny modular i recursivitat==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Disseny modular |Disseny descendent o modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Classes i biblioteques |Classes i biblioteques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Recursivitat |Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis mètodes |Exercicis mètodes]] / [[M3 - Programació estructurada / Exercicis UF2: Colors|Colors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Mastermind |Mastermind]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat bàsics|Recursivitat bàsics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat |Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt1 |Pt1 - Disseny modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt2 |Pt2 - Disseny modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt3 |Pt3 - Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Fonament de gestió de fitxers==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Clase File |Clase File]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Fitxers de text |Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Fitxers orientats a byte |Fitxers orientats a byte]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Clase File |Clase File]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers de text |Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers orientats a byte |Fitxers orientats a byte]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Programació Orientada a Objectes. Fonaments ==&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació Orientada a Objectes / Activitats UF4: Classes |Classes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3&amp;diff=14547</id>
		<title>M3 - Programació</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M3_-_Programaci%C3%B3&amp;diff=14547"/>
				<updated>2020-11-26T15:42:18Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UF1: Programació Estructurada ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A1. L’estructura del programa informàtic&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Disseny d’algorismes iteratius &lt;br /&gt;
A4. Tractament de taules&lt;br /&gt;
A5. Tractament de cadenes&lt;br /&gt;
A6. Creació de nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
Nota NF1 = 0.2 Pe1 + 0.08 Pt1+ 0.08 Pt2 +  0.32 Pe2 + 0.32 Pe3&lt;br /&gt;
&lt;br /&gt;
Pe1: Qüestionari&lt;br /&gt;
Pt1: Pràctica taules&lt;br /&gt;
Pt2: Pràctica nou tipus de dades&lt;br /&gt;
Pe2: Prova programació: estructures de control, algoritmes de cerca i de recorregut&lt;br /&gt;
Pe3: Prova programació: taules, cadenes i nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Continguts===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Algoritmes / pseudocodi====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Pseudocodi|Pseudocodi]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Exercicis Pseudocodi |Exercicis Pseudocodi]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====Variables, constants, entrada de dades i operadors====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Algorismes i programes |Algorismes i programes]]&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:shortcuts-80.pdf]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Declaració, inicialització i ús de variables |Declaració, inicialització i ús de variables]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Visualització i entrada de les dades en Java |Visualització i entrada de les dades en Java]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Operadors numèrics i prioritats |Operadors numèrics i prioritats]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Operadors amb dades de tipus lògic |Operadors amb dades de tipus lògic]]&lt;br /&gt;
&lt;br /&gt;
====Estructures de control====&lt;br /&gt;
&lt;br /&gt;
===== Estructures alternatives=====&lt;br /&gt;
&lt;br /&gt;
:*Les '''estructures alternatives''' permeten prendre decisions sobre quin conjunt d’instruccions cal executar en un punt del programa. &lt;br /&gt;
&lt;br /&gt;
:*Tota estructura alternativa es basa en l’avaluació d’una expressió que ha de donar un resultat booleà: true (cert) o false (fals). Aquesta expressió s’anomena la '''condició lògica''' de l’estructura.&lt;br /&gt;
&lt;br /&gt;
:*El conjunt d’instruccions que s’executarà dependrà del resultat de la condició lògica, i actuarà com una mena d’interruptor que marca el flux que cal seguir dins del programa.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Estructura alternativa |Estructura alternativa]]&lt;br /&gt;
&lt;br /&gt;
===== Estructures iteratives=====&lt;br /&gt;
&lt;br /&gt;
Les estructures de repetició o iteratives permeten repetir una mateixa seqüència d’instruccions diverses vegades, mentre es compleixi una certa condició.&lt;br /&gt;
&lt;br /&gt;
::Anomenem '''bucle''' o cicle el conjunt d’instruccions que s’ha de repetir un cert nombre de vegades, i anomenem '''iteració''' cada execució individual del bucle.&lt;br /&gt;
&lt;br /&gt;
::Un '''bucle infinit''' és una seqüència d’instruccions dins d’un programa que itera indefinidament, normalment perquè s’espera que s’assoleixi una condició que mai no s’arriba a produir.&lt;br /&gt;
&lt;br /&gt;
::Forçosament dins de tot bucle hi ha d’haver instruccions que manipulin variables el valor de les quals permeti controlar la repetició o el final del bucle. Aquestes variables s’anomenen '''variables de control'''.&lt;br /&gt;
&lt;br /&gt;
Normalment, les variables de control dins d’un bucle es poden englobar dins d’algun d’aquests tipus de comportament:&lt;br /&gt;
&lt;br /&gt;
:* '''Comptador''': una variable de tipus enter que va augmentant o disminuint, indicant de manera clara el nombre d’iteracions que caldrà fer.&lt;br /&gt;
&lt;br /&gt;
:* '''Acumulador''': una variable en què es van acumulant directament els càlculs que es volen fer, de manera que en assolir cert valor es considera que ja no cal fer més iteracions. Si bé s’assemblen als comptadors, no són ben bé el mateix.&lt;br /&gt;
&lt;br /&gt;
:* '''Semàfor''': una variable que serveix com a interruptor explícit de si cal seguir fent iteracions. Quan ja no en volem fer més, el codi simplement s’encarrega d’assignar-li el valor específic que servirà perquè la condició avaluï false.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència for|La sentència for]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència while|La sentència while]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: La sentència do/while|La sentència do/while]]&lt;br /&gt;
&lt;br /&gt;
===== Esquemes de tractament seqüencial=====&lt;br /&gt;
&lt;br /&gt;
'''Introducció'''&lt;br /&gt;
&lt;br /&gt;
Un esquema de programació no és altra cosa que un model de solució per a a una família de problemes de programació homòlegs. L'ús d'esquemes de programació és una eina imprescindible per al programador atès que el seu ús facilita molt la solució de problemes i rebaixa considerablement la taxa d'errors de programació.&lt;br /&gt;
&lt;br /&gt;
Aquesta estratègia de treball no és única de l'àmbit de la programació sinó que també l'apliquem en altres disciplines. Per exemple, a física quan aprenem a resoldre problemes de tir parabòlic o a matemàtiques quan aprenem a calcular primitives fent integració per parts.&lt;br /&gt;
&lt;br /&gt;
La metodologia general segueix aquests passos:&lt;br /&gt;
&lt;br /&gt;
:• Identificació del tipus de problema.&lt;br /&gt;
:• Caracterització dels elements característics.&lt;br /&gt;
:• Aplicació de l'esquema.&lt;br /&gt;
&lt;br /&gt;
En aquest material introduïrem els esquemes seqüencials, és a dir els que s'apliquen a dades que tenen estructura de seqüència.&lt;br /&gt;
&lt;br /&gt;
'''Seqüències'''&lt;br /&gt;
&lt;br /&gt;
Una seqüència és un conjunt de dades de qualsevol tipus que es caracteritzen per estar disposades «en forma de fila», ja sigui des d'un punt de vista físic o conceptual. Moltes de les dades que manipula un programa tenen estructura de seqüència. Per exemple, un&lt;br /&gt;
string com ara &amp;quot;Hola nois&amp;quot;, pot ser considerat com una seqüència de caracters ('H', 'o', 'l',...) o una matriu de reals com una seqüència de files. Més formalment, una seqüència és una conjunt de dades tal que:&lt;br /&gt;
&lt;br /&gt;
:• És finit.&lt;br /&gt;
:• Conté un element que és el primer de la seqüència&lt;br /&gt;
:• Es pot definir la relació de &amp;quot;següent&amp;quot;, que donat un element de la seqüència, diu quin ve a darrera.&lt;br /&gt;
&lt;br /&gt;
Per exemple, el enters de 1 a 10 tenen estructura de seqüència atès que són un conjunt finit, tenen un primer ben definit (l'1) i la relació de següent consisteix a sumar una unitat a l'anterior.&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de recorregut|Esquema de recorregut]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de cerca|Esquema de cerca]]&lt;br /&gt;
&lt;br /&gt;
====Tipus de dades compostes====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Taules |Taules]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Cadenes de caràcters |Cadenes de caràcters]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: El tipus char |El tipus char]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF1: Classes |Classes]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
====Exercicis seqüencials, estructura alternativa i iteratius====&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Seqüencials |Exercicis seqüencials]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Expressions lògiques|Exercicis avaluar expressions lògiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Fer expressions lògiques |Exercicis trobar expressions lògiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa preliminars|Exercicis d'estructura alternativa preliminars]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa |Exercicis d'estructura alternativa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: For |Exercicis amb For]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Recorregut |Exercicis de recorregut]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Cerca |Exercicis de cerca]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Iteratius |Més exercicis iteratius]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Proves exercicis seqüencials, estructura alternativa i iteratius'''&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves |Proves]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves+Solucions |Proves + Solucions]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Exercicis taules, cadenes i nous tipus de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules |Exercicis taules]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Pokemons |Exercici taules - Pokemons]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Cadenes |Exercicis de cadenes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: classe Character |Exercicis de classe Character]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Classes|Exercicis Classes]] / [[M3 - Programació estructurada / Exercicis UF1: Menú|Prototipus menú]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1: Proves_T_C_TD |Proves]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Proves OnLine====&lt;br /&gt;
&lt;br /&gt;
- Exercicis seqüencials, estructura alternativa i iteratius&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1 Part1: Proves OnLine |Proves Online UF1 1a. Part]]&lt;br /&gt;
&lt;br /&gt;
- Exercicis taules, cadenes i nous tipus de dades&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF1 Part2: Proves OnLine |Proves Online UF1 2a. Part]]&lt;br /&gt;
&lt;br /&gt;
- Tota la UF1&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / UF1: Proves OnLine |Proves Online UF1]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt1 |Pt1 - Taules]] / [[M3 - Programació estructurada / Continguts UF1: System.out.printf |System.out.printf]] / [[M3 - Programació estructurada / Continguts UF1: Colors |Colors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt2 |Pt2 - Classes]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Repàs UF1====&lt;br /&gt;
&lt;br /&gt;
Exercicis seqüencials: 1, 4&lt;br /&gt;
&lt;br /&gt;
Exercicis d'estructura alternativa: 2, 4, 5, 6, 11&lt;br /&gt;
&lt;br /&gt;
Exercicis amb For: 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, '''19, 20, 21, 22, 23'''&lt;br /&gt;
&lt;br /&gt;
Exercicis de recorregut: 1, 2, 3, 4, 5, 6 &lt;br /&gt;
&lt;br /&gt;
Exercicis de cerca: 1, 2, 3, 4, 5, 6&lt;br /&gt;
&lt;br /&gt;
Més exercicis iteratius: '''1, 2, 3, 4, 5'''&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==UF2: Disseny modular i recursivitat==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Disseny modular |Disseny descendent o modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Classes i biblioteques |Classes i biblioteques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF2: Recursivitat |Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis mètodes |Exercicis mètodes]] / [[M3 - Programació estructurada / Exercicis UF2: Colors|Colors]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Mastermind |Mastermind]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat bàsics|Recursivitat bàsics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat |Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
===Pràctiques===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt1 |Pt1 - Disseny modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt2 |Pt2 - Disseny modular]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt3 |Pt3 - Recursivitat]]&lt;br /&gt;
&lt;br /&gt;
==UF3: Fonament de gestió de fitxers==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Clase File |Clase File]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Fitxers de text |Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Continguts UF3: Fitxers orientats a byte |Fitxers orientats a byte]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Clase File |Clase File]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers de text |Fitxers de text]]&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers orientats a byte |Fitxers orientats a byte]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Programació Orientada a Objectes. Fonaments ==&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&lt;br /&gt;
:*[[M3 - Programació Orientada a Objectes / Activitats UF4: Classes |Classes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i trigers| Paquets i triggers ]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Exercici_Resum&amp;diff=14546</id>
		<title>M2 - Bases de dades / Exercicis UF2: Exercici Resum</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Exercici_Resum&amp;diff=14546"/>
				<updated>2020-11-26T15:04:19Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exercici Resum ==&lt;br /&gt;
&lt;br /&gt;
0. Creeu un usuari nou i doneu-li permisos per crear objectes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:esquema_resum.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
1. Crea les taules segons els quadres presentats successivament. Escull els tipus de dades apropiats i assegura't d'afegir les restriccions (constraints) d'integritat.&lt;br /&gt;
&lt;br /&gt;
:a. Nom de la taula: MEMBER&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''MEMBER'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Column_Name&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |MEMBER_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |LAST_NAME&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |FIRST_NAME&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |ADDRESS&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |CITY&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |PHONE&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |JOIN_DATE&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Key Type&lt;br /&gt;
| PK|| || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Null / Unique&lt;br /&gt;
|NN,U||NN|| || || || ||NN&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Default Value&lt;br /&gt;
| || || || || || ||System Date&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Data Type&lt;br /&gt;
| Number||Varchar2||Varchar2||Varchar2||Varchar2||Varchar2||Date&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Length&lt;br /&gt;
| 10||25||25||100||30||15||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:b. Nom de la taula: TITLE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''TITLE'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Column_Name&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |TITLE_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |TITLE&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |DESCRIPTION&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |RATING&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |CATEGORY&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |RELEASE_DATE&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Key Type&lt;br /&gt;
| PK|| || || || || &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Null / Unique&lt;br /&gt;
|NN,U||NN||NN|| || || &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Check&lt;br /&gt;
| || || ||G, PG, R, NC17, NR||DRAMA, COMEDY, ACTION, CHILD, SCIFI, DOCUMENTARY||&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Data Type&lt;br /&gt;
| Number||Varchar2||Varchar2||Varchar2||Varchar2||Date&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Length&lt;br /&gt;
| 10||60||400||4||20||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:C. Nom de la taula: TITLE_COPY &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''TITLE_COPY'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Column_Name&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |COPY_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |TITLE_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |STATUS&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Key Type&lt;br /&gt;
| PK||PK,FK||  &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Null / Unique&lt;br /&gt;
|NN,U||NN,U||NN &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Check&lt;br /&gt;
| || ||AVAILABLE, DESTROYED, RENTED, RESERVED&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|FK Ref Table&lt;br /&gt;
| ||title|| &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|FK Ref Column&lt;br /&gt;
| ||title_id||&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Data Type&lt;br /&gt;
| Number||Number||Varchar2&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Length&lt;br /&gt;
| 10||10||15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:D. Nom de la taula: RENTAL&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''RENTAL'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Column_Name&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |BOOK_DATE&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |MEMBER_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |COPY_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |ACT_RET_DATE&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |EXP_RET_DATE&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |TITLE_ID&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Key Type&lt;br /&gt;
| PK||PK,FK||PK,FK|| || ||PK,FK &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Default Value&lt;br /&gt;
|System Date|| || || ||+ 2 days|| &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|FK Ref Table&lt;br /&gt;
| ||member||title_copy|| || ||title_copy&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|FK Ref Column&lt;br /&gt;
| ||member_id||copy_id || || ||title_id&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Data Type&lt;br /&gt;
| Date||Number||Number||Date||Date||Number&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Length&lt;br /&gt;
| ||10||10|| || ||10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:E. Nom de la taula: RESERVATION&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|&amp;lt;big&amp;gt;'''RESERVATION'''&amp;lt;/big&amp;gt;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Column_Name&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |RES_DATE&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |MEMBER_ID&lt;br /&gt;
! width=&amp;quot;80 px&amp;quot; |TITLE_ID&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Key Type&lt;br /&gt;
| PK||PK,FK||PK,FK  &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Null / Unique&lt;br /&gt;
|NN,U||NN,U||NN,U&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|FK Ref Table&lt;br /&gt;
| ||MEMBER||TITLE&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|FK Ref Column&lt;br /&gt;
| ||member_id||title_id&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Data Type&lt;br /&gt;
| Date||Number||Number&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Length&lt;br /&gt;
| ||10||10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Comprova que les taules i les seves restriccions s'han creat correctament. Consulta el diccionari de dades.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          TABLE_NAME&lt;br /&gt;
          ----------&lt;br /&gt;
          MEMBER&lt;br /&gt;
          RENTAL&lt;br /&gt;
          RESERVATION&lt;br /&gt;
          TITLE&lt;br /&gt;
          TITLE_COPY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          CONSTRAINT_NAME                  C  TABLE_NAME&lt;br /&gt;
          ------------------------------- --- --------&lt;br /&gt;
          MEMBER_LAST_NAME_NN              C  MEMBER&lt;br /&gt;
          MEMBER_JOIN_DATE_NN              C  MEMBER&lt;br /&gt;
          MEMBER_MEMBER_ID_PK              P  MEMBER&lt;br /&gt;
          RENTAL_BOOK_DATE_COPY_TITLE_PK   P  RENTAL&lt;br /&gt;
          RENTAL_MEMBER_ID_PK              R  RENTAL&lt;br /&gt;
          RENTAL_COPY_ID_TITLE_ID_FK       R  RENTAL&lt;br /&gt;
          RESERVATION_RESDATE_MEM_TIT_PK   P  RESERVATION&lt;br /&gt;
          RESERVATION_MEMBER_ID            R  RESERVATION&lt;br /&gt;
          RESERVATION_TITLE_ID             R  RESERVATION&lt;br /&gt;
          ...&lt;br /&gt;
          18 rows selected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Crea seqüències per identificar de forma única dada registre en les taules MEMBER i TITLE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:a. Número de membre, taula MEMBER: inici 101; sense caché. Nom de la seqüència: member_id_seq.&lt;br /&gt;
&lt;br /&gt;
:b. Número de títul, taula TITLE: inici 92; no permetre caché de valors. Nom de la seqüència: title_id_seq.&lt;br /&gt;
&lt;br /&gt;
:c. Comprova l'existència de les seqüències en el diccionari de dades. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          SEQUENCE_NAME  INCREMENT_BY  LAST_NUMBER&lt;br /&gt;
          -------------  ------------  -----------&lt;br /&gt;
          TITLE_ID_SEQ              1           92&lt;br /&gt;
          MEMBER_ID_SEQ             1          101&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Afegeix dades a les taules. Crea un script per a cada conjunt de dades a afegir.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:a. Afegeix títols de  pel·lícules a la taula TITLE. Escriu un script, anomenat p15q4.sql, per introduir la informació de les pel·lícules. Utilitza la seqüència per identificar cada títol. Comprova que les pel·lícules s'han afegit correctament.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Title&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;250 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Description&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;80 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Rating&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;80 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Category&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;80 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Release_date&lt;br /&gt;
|-&lt;br /&gt;
|Willie and Christmas Too||All of Willie's friends made a  Christmas list for Santa, but Willie has yet to add this own wish list||G||CHILD||05-OCT-95&lt;br /&gt;
|-&lt;br /&gt;
|Alien Again||Yet another installation of science fiction history. Can the heroine save the planet from the alien life form?||R||SCIFI||19-MAY-95&lt;br /&gt;
|-&lt;br /&gt;
|The Glob||A meteor crashes near a small American town and unleashed carnivorous goo in this classic||NR||SCIFI||12-AGO-95&lt;br /&gt;
|-&lt;br /&gt;
|My Day Off||With a little luck and a lot of ingenuity, a teenager skips school for a day in New York||PG||COMEDY||12-JUL-95&lt;br /&gt;
|-&lt;br /&gt;
|Miracles on Ice||A six-year-old has doubts about Santa Claus but she discovers that miracles really do exist.||PG||DRAMA||12-SEP-95&lt;br /&gt;
|-&lt;br /&gt;
|Soda Gang||After discovering a cache of drugs, a young couple find themselves pitted against a vicious gang.||NR||ACTION||01-JUN-95&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:b. Afegeix dades a la taula MEMBER. Escriu un script i anomena'l p15q4.sql, per demanar als usuaris la informació. Executa el script. Assegura't d'utilitzar la seqüència per afegir números als membres.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|First Name&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Last Name&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;120 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Address&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;85 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|State&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;85 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Phone&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;85 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Join Date&lt;br /&gt;
|-&lt;br /&gt;
|Carmen||Velasquez||283 King Street||Seatle||206-899-6666||08-MAR-90&lt;br /&gt;
|-&lt;br /&gt;
|LaDoris||Ngao||5 Modrany||Bratislava||586-355-8882||08-MAR-90 &lt;br /&gt;
|-&lt;br /&gt;
|Midori||Nagayama||68 Via Centrale||Sao Paulo||254-852-5764||17-JUN-91&lt;br /&gt;
|-&lt;br /&gt;
|Mark||Lewis||6921 King Way||Lagos||63-559-7777||07-ABR-90&lt;br /&gt;
|-&lt;br /&gt;
|Audry||Ropeburn||86 Chu Street||Hong Kong||41-559-87||18-ENE-91&lt;br /&gt;
|-&lt;br /&gt;
|Molly||Urguhart||3035 Laurier||Quebec||418-542-9988||18-ENE-91&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:c. Afegeix les següents còpies de pel·lícules, a la taula TITLE_COPY:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;150 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Title&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Copy Number&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;80 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Status&lt;br /&gt;
|-&lt;br /&gt;
|Willie and Christmas Too||1||AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
|Alien||1||AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
| ||2||RENTED&lt;br /&gt;
|-&lt;br /&gt;
|The Glob||1||AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
|My Day Off||1||AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
| ||2||AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
| ||3||RENTED&lt;br /&gt;
|-&lt;br /&gt;
|Miracles on Ice||1||AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
|Soda Gang||1||AVAILABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:d. Afegeix els següents lloguers de pel·lícules, a la taula RENTAL.&lt;br /&gt;
&lt;br /&gt;
:'''Nota:''' El títul pot variar segons la seqüència.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Title&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;100 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Copy_number&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;120 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Customer&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;85 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Book_Date&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;85 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Date_return_expected&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;85 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Date_returned&lt;br /&gt;
|-&lt;br /&gt;
|92 ||1 ||101 ||3 days ago ||1 day ago ||2 days ago&lt;br /&gt;
|-&lt;br /&gt;
|93 ||2 ||101 ||1 day ago ||1 day form now ||&lt;br /&gt;
|-&lt;br /&gt;
|95 ||3 ||102 ||2 days ago ||Today ||&lt;br /&gt;
|-&lt;br /&gt;
|97 ||1 ||106 ||4 days ago ||2 days ago ||2 days ago&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Crea una vista amb el nom TITLE_AVAIL per mostrar les pel·lícules i la seva disponibiliat, així com la data de recuperació, si està llogada. Consulta la taula complerta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          TITLE                       COPY_ID  STATUS     EXP_RET_D&lt;br /&gt;
          --------------------------  -------  ---------- -----------&lt;br /&gt;
          Alien Again                       1  AVAILABLE&lt;br /&gt;
          Alien Again                       2  RENTED     05-NOV-97&lt;br /&gt;
          Miracles on Ice                   1  AVAILABLE&lt;br /&gt;
          My Day Off                        1  AVAILABLE&lt;br /&gt;
          My Day Off                        2  AVAILABLE&lt;br /&gt;
          My Day Off                        3  RENTED     06-NOV-97&lt;br /&gt;
          Soda Gang                         1  AVAILABLE  04-NOV-97&lt;br /&gt;
          The Glob                          1  AVAILABLE&lt;br /&gt;
          Willie and Cristmas Too           1  AVAILABLE  05-NOV-97&lt;br /&gt;
          &lt;br /&gt;
          9 rows selected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Fes els següents canvis sobre les dades de les taules:&lt;br /&gt;
&lt;br /&gt;
:a. Afegeix un nou títol. La pel·lícula és &amp;quot;Interstellar Wars&amp;quot; amb el valor PG per a &amp;quot;rated&amp;quot; i classificada com Scifi. La &amp;quot;release date&amp;quot; és 07-JUL-77- La descripció és &amp;quot;Futuristic insterstellar action movie. Can the rebels save the humans from de evil Empire?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Assegura't d'afegir dos registres a la taula title_copy, per disposar de dues còpies (status Avaliable). &lt;br /&gt;
&lt;br /&gt;
:b. Afegeix dues reserves. Una reserva és per a Carmen Velasquez, que vol llogar &amp;quot;Insterstellar Wars&amp;quot;. L'altra és per Mark Lewis, que vol llogar &amp;quot;Soda Gang&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:c. La client Carmen Velasquez lloga &amp;quot;Interstellar Wars&amp;quot;, còpia 1. Esborra la reserva per a la pel·lícula. Registra la informació sobre el lloguer. Per a la data de recuperació del lloguer, assigna el valor per defecte. Verifica que el lloguer va ser registrat mitjançant la vista que vas crear prèviament.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          TITLE                       COPY_ID  STATUS     EXP_RET_D&lt;br /&gt;
          --------------------------  -------  ---------- -----------&lt;br /&gt;
          Alien Again                       1  AVAILABLE&lt;br /&gt;
          Alien Again                       2  RENTED     05-NOV-97&lt;br /&gt;
          Interstellar Wars                 1  RENTED     08-NOV-97&lt;br /&gt;
          Interstellar Wars                 2  AVAILABLE&lt;br /&gt;
          Miracles on Ice                   1  AVAILABLE&lt;br /&gt;
          My Day Off                        1  AVAILABLE&lt;br /&gt;
          My Day Off                        2  AVAILABLE&lt;br /&gt;
          My Day Off                        3  RENTED     06-NOV-97&lt;br /&gt;
          Soda Gang                         1  AVAILABLE  04-NOV-97&lt;br /&gt;
          The Glob                          1  AVAILABLE&lt;br /&gt;
          Willie and Cristmas Too           1  AVAILABLE  05-NOV-97&lt;br /&gt;
          &lt;br /&gt;
          11 rows selected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Fes les següents modificacions sobre les taules:&lt;br /&gt;
&lt;br /&gt;
:a. Afegeix una columna PRICE a la taula TITLE per registrar el preu del vídeo. La columna tindrà una longitud total de vuit dígits i dos decimals. Comprova les modificacions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                           &lt;br /&gt;
          Nombre                         Null?     Tipo &lt;br /&gt;
          ------------------------------ --------  ------------&lt;br /&gt;
          TITLE_ID                       NOT NULL  NUMBER(10) &lt;br /&gt;
          TITLE                          NOT NULL  VARCHAR2(60)&lt;br /&gt;
          DESCRIPTION                    NOT NULL  VARCHAR2(400)&lt;br /&gt;
          RATING                                   VARCHAR2(4)&lt;br /&gt;
          CATEGORY                                 VARCHAR2(20)&lt;br /&gt;
          RELEASE_DATE                             DATE&lt;br /&gt;
          PRICE                                    NUMBER(8,2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:b. Crea un scrip anomenat p15q7.sql per modificar cada vídeo amb un preu, d'acord a la següent llista:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          TITLE                       PRICE&lt;br /&gt;
          --------------------------  -----&lt;br /&gt;
          Willie and Cristmas Too        25  &lt;br /&gt;
          Alien Again                    35  &lt;br /&gt;
          The Glob                       35&lt;br /&gt;
          My Day Off                     35   &lt;br /&gt;
          Miracles on Ice                98&lt;br /&gt;
          Soda Gang                      35&lt;br /&gt;
          Interstellar Wars              29   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:c. Assegura't de que en el futur, tots els títol tindran un preu. Comprova la restricció.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          CONSTRAINT_NAME    C   SEARCH_CONDITIONS&lt;br /&gt;
          ------------------ --- ------------------&lt;br /&gt;
          TITLE_PRICE_NN     C   PRICE IS NOT NULL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Fes un script, anomena't p15q8.sql, per crear un informe anomena't &amp;quot;Històric de Clients&amp;quot;. Aquest informe reflectirà la història dels llogues de vídeos per client. Assegura't de incloure el nom del client, pel·lícula llogada, data i durada del lloguer. Mostra el total de lloguers per client, per un període especificat en l'informe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          MEMBER              TITLE                      BOOK_DATE  DURATION&lt;br /&gt;
          ------------------  -------------------------  ---------  --------&lt;br /&gt;
          LaDoris Ngao        The Glob                   04-NOV-97&lt;br /&gt;
          Molly Urguhart      Miracles on Ice            02-NOV-97         2&lt;br /&gt;
          Carmen Velasquez    Willie and Cristmas Too    03-NOV-97         1&lt;br /&gt;
                              Willie and Cristmas Too    03-NOV-97         1&lt;br /&gt;
                              Alien Again                05-NOV-97&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13863</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13863"/>
				<updated>2020-10-15T09:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13862</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13862"/>
				<updated>2020-10-15T09:27:59Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
**== |SMX ==&lt;br /&gt;
*** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13861</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13861"/>
				<updated>2020-10-15T09:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
**== |SMX ==&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13860</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13860"/>
				<updated>2020-10-15T09:26:36Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
**|&amp;lt;big&amp;gt;SMX&amp;lt;/big&amp;gt;&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13859</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13859"/>
				<updated>2020-10-15T09:26:05Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
* |SMX&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13858</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13858"/>
				<updated>2020-10-15T09:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
|SMX&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13857</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13857"/>
				<updated>2020-10-15T09:24:50Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** |SMX&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13856</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13856"/>
				<updated>2020-10-15T09:24:37Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** SMX&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13855</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13855"/>
				<updated>2020-10-15T09:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
**'''SMX'''&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13854</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13854"/>
				<updated>2020-10-15T09:23:20Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
'''SMX'''&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13853</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13853"/>
				<updated>2020-10-15T09:21:18Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestor de Bases de dades|ASIX-M2 &lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13852</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13852"/>
				<updated>2020-10-15T09:17:56Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13851</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13851"/>
				<updated>2020-10-15T09:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M2 - Gestors de bases de dades|ASIX-M2&lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13850</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=MediaWiki:Sidebar&amp;diff=13850"/>
				<updated>2020-10-15T09:15:33Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* Mòduls&lt;br /&gt;
** M6 - Seguretat Informàtica|SMX-M6&lt;br /&gt;
** M8 - Aplicacions web|SMX-M8&lt;br /&gt;
** M3 - Programació bàsica|ASIX-M3&lt;br /&gt;
** M7 - Planificació i administració de Xarxes|ASIX-M7 &lt;br /&gt;
** M10 - Administració de Bases de dades|ASIX-M10 &lt;br /&gt;
** M2 - Bases de dades|DAW-M2&lt;br /&gt;
** M3 - Programació|DAW-M3&lt;br /&gt;
** M6 - Desenvolupament web en entorn client|DAW-M6&lt;br /&gt;
** M7 - Desenvolupament web en entorn servidor|DAW-M7&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Gestor_de_Bases_de_dades&amp;diff=13849</id>
		<title>M2 - Gestor de Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Gestor_de_Bases_de_dades&amp;diff=13849"/>
				<updated>2020-10-15T09:13:25Z</updated>
		
		<summary type="html">&lt;p&gt;Administrador: Es crea la pàgina amb «==UF2: Llenguatges SQL: DML i DDL == &amp;lt;!-- &amp;lt;pre&amp;gt; NF1 A1. Consultes de selecció simples (A2. Prova pràctica) A2. La composició alternativa A3. Consultes de selecció...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NF1&lt;br /&gt;
A1. Consultes de selecció simples (A2. Prova pràctica)&lt;br /&gt;
A2. La composició alternativa&lt;br /&gt;
A3. Consultes de selecció complexes &lt;br /&gt;
A4. Instruccions per a la manipulació de dades (A5. Prova pràctica)&lt;br /&gt;
NF2&lt;br /&gt;
A6. DDL (A7. Prova pràctica)&lt;br /&gt;
&lt;br /&gt;
Nota UF2 = 75% UF2NF1 + 25% UF2NF2&lt;br /&gt;
UF2NF1: 10% Pt1 + 20% Pp1 + 70% Pp2&lt;br /&gt;
UF2NF2: 10% Pt2 + 90% Pp3&lt;br /&gt;
&lt;br /&gt;
Pt1: utilització d'una eina gràfica per a la resolució de consultes.&lt;br /&gt;
Pt2: utilització d'una eina gràfica per a la definició d'una estructura de bases de dades&lt;br /&gt;
Pp1: prova pràctica consultes de selecció simples.&lt;br /&gt;
Pp2: prova pràctica consultes de selecció complexes, DML i control de transaccions.&lt;br /&gt;
Pp3: DDL.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 GBD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	</feed>