editat perDarrera edicióDiferènciesRestaurar Revisió
daniel herrera28/09/2016 19:17
@@ -84,7 +84,29 @@
            left outer join flight_passengers fp 
               on fp.nif = p.nif ;    
 
+**Tercer exemple**
 
+Un banc té una taula de clients amb els diners que té dipositats al banc:
+
+
+
+    create table customers( nif varchar(200), name varchar(5000), balance numeric(15,2) );
+    
+    create view customers_external_view as select * from customers;
+
+Ara el banc apunta cada operació que fa, però volem que les aplicacions segueixin veient el saldo:
+
+
+    
+    create table customers( nif varchar(200), name varchar(5000), balance numeric(15,2) );
+    create table movements( nif varchar(200), moment datetime, import numeric(15,2) );
+    
+    create view customers_external_view as 
+      select c.nif, c.name, sum( m.import ) as balance
+        from customers c
+        left outer join movements m 
+          on c.nif = m.nif
+    group by c.nif, c.name ;
 
 Continguts: 
 
Restaurar
daniel herrera28/09/2016 19:05
@@ -60,7 +60,31 @@
         on ca.adress_type = 'fax' and ca.id_client = c.id
       left outer join customers_adresses ca2 
         on ca.adress_type = 'email' and ca.id_client = c.id ;
+
+
+**Sample 2**
+
+Tenim una taula de passatgers on apareix el número de vol i el seient:
+
+    :::sql
+    create table passengers ( nif varchar(200), name varchar(200), 
+                             num_flight varchar(200), num_seat varchar(200) );
+    create view passengers_external_view as select * from passengers;
+
+Trenquem la relació en dues taules: passatgers i vols. La vista externa segueix mostrant la mateixa informació.
+
+    :::sql
+    create table passengers ( nif varchar(200), name varchar(200) )
+    create table flight_passengers ( nif varchar(200), num_flight int, 
+                                      num_flight varchar(200), num_seat varchar(200) );
     
+    create view passengers_external_view as 
+       select p.*, fp.num_flight, fp.num_seat; 
+    from passengers p
+      left outer join flight_passengers fp 
+        fp.nif = p.nif ;    
+
+
 
 Continguts: 
 
Restaurar
daniel herrera28/09/2016 18:54
@@ -33,6 +33,34 @@
 >######Aquest exercici està extret del llibre [Introducció a les Bases de Dades. UF1 MP2 DAM DAW ASIX](https://www.amazon.es/Introducci%C3%B3-Bases-Dades-asix-MP02-UF1/dp/153735096X) amb permís del seu autor.
 >
 
+
+**First sample logical independence**
+
+Sample of keep logical independence through database dessign changes:
+
+Before the change a single table of customers with email and fax:
+
+
+    :::sql
+    create table customers ( id int, name varchar(200), 
+                             email varchar(200), fax varchar(200) );
+    create view customers_external_view as select * from customers;
+
+After the change the customer table is splitted on 2 tables, but external view show same information:
+    
+    :::sql
+    create table customers ( Id int, name varchar(200), email varchar(200), fax varchar(200) );
+    create table customers_adresses ( Id int, id_client int, adress_type varchar(10), adress varchar(200) );
+    
+    create view customers_external_view as 
+    select c.*,  ca2.adress as email, ca1.adress as fax 
+    from customers c
+    left outer join customers_adresses ca1 
+      on ca.adress_type = 'fax' and ca.id_client = c.id
+    left outer join customers_adresses ca2 
+      on ca.adress_type = 'email' and ca.id_client = c.id ;
+    
+
 Continguts: 
 
 Resultats d'aprenentatge: 
Restaurar
daniel herrera30/08/2016 18:51
@@ -29,7 +29,9 @@
 4) En aquests moments a stackoverflow hi ha una sola pregunta amb l'etiqueta ansi-sparc. La pregunta és d'una qualitat espantosa però és una bona oportunitat per a col·laborar en aquesta web de programadors. Posa una resposta a la pregunta [ANSI-SPARC practical explanation](https://stackoverflow.com/questions/9771884/ansi-sparc-practical-explanation) a partir dels coneixements adquirits en aquesta pràctica. No oblidis posar exemples concrets de sentències SQL com les que hi ha en aquest enunciat i de puntuar positivament als companys que hagin fet bona feina allà.
     
 
-
+>
+>######Aquest exercici està extret del llibre [Introducció a les Bases de Dades. UF1 MP2 DAM DAW ASIX](https://www.amazon.es/Introducci%C3%B3-Bases-Dades-asix-MP02-UF1/dp/153735096X) amb permís del seu autor.
+>
 
 Continguts: 
 
Restaurar
Consulteu nota legal i condicions