Consejos para futuros instructores<br />A/S Maia Shuster<br />mshuster@artech.com.uy<br />
Veremos…<br />Aportes útiles<br />para la hora de dictarsuscursos GeneXus<br />Sugerencias<br />Tips para enseñar fácil<br...
Diseño de transacciones<br />
Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que creen que con solo definir esta trn, están modeland...
Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que no terminan de entender diferencia:</li></ul>(A1*<b...
Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que definen transacciones de más:
 Se creantablasfísicas de más
 Se almacenandatosredundantes
Quedandefinidascomplejidadesinnecesarias</li></li></ul><li>Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alum...
Alumnos que no tienen fijados ciertos conocimientos puntuales, que les serían de gran ayuda</li></li></ul><li>Diseño de tr...
Diseño de transacciones<br />PROVIDER<br />PRODUCT<br />ENTERPRISE #1<br />ProductId*ProductName<br />ProviderId*ProviderN...
Diseño de transacciones<br />PROVIDER<br />PRODUCT<br />ENTERPRISE #1<br />Tablas fisicasresultantes:<br />
Diseño de transacciones<br />Volviendo a esta duda de los alumnos…<br /> ¿ Con solo definir esta trn, están modelando una ...
Diseño de transacciones<br />ENTERPRISE #2<br />2 ALTERNATIVAS DE DISEÑO DIFERENTES<br />GENERAN TABLAS FÍSICAS DIFERENTES...
Diseño de transacciones<br />ENTERPRISE #2<br />ALTERNATIVA #1:<br />ProviderId*<br />ProviderName<br />ProductId*<br />Pr...
Diseño de transacciones<br />ENTERPRISE #2<br />ALTERNATIVA #1:<br />ProviderId*<br />ProviderName<br />ProductId<br />Pro...
Diseño de transacciones<br />ENTERPRISE #2<br />Nulls=Yes<br />ALTERNATIVA #1:<br />ALTERNATIVA #2:<br />ProviderId*<br />...
Diseño de transacciones<br />ENTERPRISE #2<br />ALTERNATIVA #2:<br />ProviderId*<br />ProviderName<br /> (ProductId*<br />...
Diseño de transacciones<br />PROVIDER<br />PRODUCT<br />ENTERPRISE #2<br />CUSTOMER<br />INVOICE<br />¿ ALTERNATIVA #1 ?<b...
Diseño de transacciones<br />ENTERPRISE #2<br />CUSTOMER<br />PHONE<br />¿ ALTERNATIVA #1 ?<br />¿ ALTERNATIVA #2 ?<br />P...
Diseño de transacciones<br />ENTERPRISE #2<br />¿ ALTERNATIVA #2 ?<br />¿ ALTERNATIVA #1 ?<br />ProviderId*<br />ProviderN...
Diseño de transacciones<br />Volviendo a esta duda de los alumnos…<br />¿ Cuál es la diferencia .. ?<br />(A1*<br /> A2<br...
Diseño de transacciones<br />Veamos un error más que cometen los alumnos…<br /><ul><li>Definenclaves primarias con compone...
Diseño de transacciones<br />Veamos un error común más…<br />Para que alumno visualice su error de diseño<br /> recomenda...
Diseño de transacciones<br />A raíz de lo anterior, surge también explicar…<br />¿Claves primarias compuestas por conjunto...
Reglas en transaccionesy eventos de disparo<br />
Reglas en transaccionesy eventos de disparo<br />INTERACTIVAMENTE <br />REGLAS SIN EVENTO DE DISPARO<br />REGLAS CON EVENT...
Reglas en transaccionesy eventos de disparo<br />Algunos errores comunes:<br />¿Hay atributos disponibles para pasar por p...
Reglas en transaccionesy eventos de disparo<br />Algunos errores comunes:<br />¿Es correcto asignar valores a atributos… <...
Reglas en transaccionesy eventos de disparo<br />Algunos errores comunes:<br />Definiciones de reglas que involucran atrib...
Aplicación del conceptode tabla extendida<br />
Aplicación del conceptode tabla extendida<br />Actualización directa de la tabla extendida<br />En rules de transacciones<...
Acerca de enseñar fácil…<br />
Sitio de capacitaciónhttp://training.genexus.com<br />
Upcoming SlideShare
Loading in …5
×

0007 consejo para_futuros_instructores_genexus

770 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
770
On SlideShare
0
From Embeds
0
Number of Embeds
274
Actions
Shares
0
Downloads
41
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Hemos visto entonces 2 alternativas de diseño para representar una relación 1-N entre 2 actores de la realidad. ¿Cómo elegimos cuál diseñar?¡Eso dependerá de la realidad a modelar!Por ejemplo, como sabemos y hemos mencionado, entre los actores de la realidad: clientes y facturas la relación es 1-N puesto que 1 cliente tiene N facturas y 1 factura es de 1 cliente…… y para diseñar esa realidad jamás se nos ocurriría hacer un diseño 1-N del 2do estilo que vimos… es decir: en el 1er nivel Customers y en el 2do nivel Invoices….porque una factura debe poder identificarse y poder ubicarse con tan solo su nro de factura.Las facturas tienen existencia propia por si mismas, sus nros son irrepetibles, y con solo tener el nro de una factura, ya debo poder ubicarla. Entonces para la relación 1-N que hay entre los actores de la realidad: clientes y facturas, no hay duda alguna de que elegiríamos la 1er alternativa de diseño propuesta. Es decir, la que establece la relación entre Customer e Invoice mediante la clave foránea CustomerId en Invoice.
  • 0007 consejo para_futuros_instructores_genexus

    1. 1. Consejos para futuros instructores<br />A/S Maia Shuster<br />mshuster@artech.com.uy<br />
    2. 2. Veremos…<br />Aportes útiles<br />para la hora de dictarsuscursos GeneXus<br />Sugerencias<br />Tips para enseñar fácil<br />Errores más comunes que cometen los alumnos… y recomendaciones!<br />
    3. 3. Diseño de transacciones<br />
    4. 4. Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que creen que con solo definir esta trn, están modelando una relación M-N:</li></ul>(A1*<br /> A2<br /> (B1*<br /> B2)<br />
    5. 5. Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que no terminan de entender diferencia:</li></ul>(A1*<br /> A2<br /> (B1*<br /> B2)<br />(A1*<br /> A2<br /> (B1*<br /> B2)<br />B1*<br />B2<br />+<br />
    6. 6. Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que definen transacciones de más:
    7. 7. Se creantablasfísicas de más
    8. 8. Se almacenandatosredundantes
    9. 9. Quedandefinidascomplejidadesinnecesarias</li></li></ul><li>Diseño de transacciones<br />Errores comunes:<br /><ul><li>Alumnos que definen componentes de más en las claves
    10. 10. Alumnos que no tienen fijados ciertos conocimientos puntuales, que les serían de gran ayuda</li></li></ul><li>Diseño de transacciones<br />Propuesta para enseñar fácil este tema:<br />ENTERPRISE #1<br />ENTERPRISE #2<br />PROVIDER<br />PRODUCT<br />PROVIDER<br />PRODUCT<br />
    11. 11. Diseño de transacciones<br />PROVIDER<br />PRODUCT<br />ENTERPRISE #1<br />ProductId*ProductName<br />ProviderId*ProviderName<br /> (ProductId*<br />ProductName)<br />ProductId*ProductName<br /> (ProviderId* <br />ProviderName)<br />ProviderId*ProviderName<br />ProductId*ProductName<br /> (ProviderId* <br />ProviderName)<br />ProviderId*ProviderName<br /> (ProductId* <br />ProductName)<br />ProductId*ProductName<br />ProviderId*ProviderName<br />ProviderId*ProductId*<br />
    12. 12. Diseño de transacciones<br />PROVIDER<br />PRODUCT<br />ENTERPRISE #1<br />Tablas fisicasresultantes:<br />
    13. 13. Diseño de transacciones<br />Volviendo a esta duda de los alumnos…<br /> ¿ Con solo definir esta trn, están modelando una relación M-N ?<br />(A1*<br /> A2<br /> (B1*<br /> B2)<br />
    14. 14. Diseño de transacciones<br />ENTERPRISE #2<br />2 ALTERNATIVAS DE DISEÑO DIFERENTES<br />GENERAN TABLAS FÍSICAS DIFERENTES<br />PROVIDER<br />PRODUCT<br />
    15. 15. Diseño de transacciones<br />ENTERPRISE #2<br />ALTERNATIVA #1:<br />ProviderId*<br />ProviderName<br />ProductId*<br />ProductName<br />ProviderId<br />ProviderName<br />CustomerId*<br />CustomerName<br />InvoiceId*<br />InvoiceDate<br />….<br />CustomerId<br />CustomerName<br />PROVIDER<br />PRODUCT<br />
    16. 16. Diseño de transacciones<br />ENTERPRISE #2<br />ALTERNATIVA #1:<br />ProviderId*<br />ProviderName<br />ProductId<br />ProductName<br />ProductId*<br />ProductName<br />ProviderId*<br />ProviderName<br />ProductId*<br />ProductName<br />ProviderId<br />ProviderName<br />PROVIDER<br />PRODUCT<br />PROVIDER<br />PRODUCT<br />
    17. 17. Diseño de transacciones<br />ENTERPRISE #2<br />Nulls=Yes<br />ALTERNATIVA #1:<br />ALTERNATIVA #2:<br />ProviderId*<br />ProviderName<br />ProductId*<br />ProductName<br />ProviderId<br />ProviderName<br />ProviderId*<br />ProviderName<br /> (ProductId*<br />ProductName)<br />PROVIDER<br />PRODUCT<br />
    18. 18. Diseño de transacciones<br />ENTERPRISE #2<br />ALTERNATIVA #2:<br />ProviderId*<br />ProviderName<br /> (ProductId*<br />ProductName)<br />PROVIDER<br />PRODUCT<br />
    19. 19. Diseño de transacciones<br />PROVIDER<br />PRODUCT<br />ENTERPRISE #2<br />CUSTOMER<br />INVOICE<br />¿ ALTERNATIVA #1 ?<br />¿ ALTERNATIVA #2 ?<br />ProviderId*<br />ProviderName<br />ProductId*<br />ProductName<br />ProviderId<br />ProviderName<br />ProviderId*<br />ProviderName<br /> (ProductId*<br />ProductName)<br />CustomerId*<br />CustomerName<br /> (InvoiceId*<br />InvoiceDate<br /> ….)<br />CustomerId*<br />CustomerName<br />InvoiceId*<br />InvoiceDate<br />….<br />CustomerId<br />CustomerName<br />¿Cómo elegimos cuál?<br /><br />Dependerá de la realidad a modelar…<br />
    20. 20. Diseño de transacciones<br />ENTERPRISE #2<br />CUSTOMER<br />PHONE<br />¿ ALTERNATIVA #1 ?<br />¿ ALTERNATIVA #2 ?<br />ProviderId*<br />ProviderName<br />ProductId*<br />ProductName<br />ProviderId<br />ProviderName<br />ProviderId*<br />ProviderName<br /> (ProductId*<br />ProductName)<br />CustomerId*<br />CustomerName<br /> (CustomerPhoneId*<br />CustomerPhoneNumber)<br />CustomerId*<br />CustomerName<br />PhoneId*<br />PhoneNumber<br />….<br />CustomerId<br />CustomerName<br /><br />PROVIDER<br />PRODUCT<br />
    21. 21. Diseño de transacciones<br />ENTERPRISE #2<br />¿ ALTERNATIVA #2 ?<br />¿ ALTERNATIVA #1 ?<br />ProviderId*<br />ProviderName<br /> (ProductId*<br />ProductName)<br />ProviderId*<br />ProviderName<br />ProductId*<br />ProductName<br />ProviderId<br />ProviderName<br />RELACIÓN 1-N “FUERTE” <br />o<br />“RELACIONADO CON”<br />RELACIÓN 1-N “DÉBIL” <br />O<br />“PARTE DE” <br />PROVIDER<br />PRODUCT<br />
    22. 22. Diseño de transacciones<br />Volviendo a esta duda de los alumnos…<br />¿ Cuál es la diferencia .. ?<br />(A1*<br /> A2<br /> (B1*<br /> B2)<br />(A1*<br /> A2<br /> (B1*<br /> B2)<br />B1*<br />B2<br />+<br />A<br />B<br />B<br />A<br />1-N “DÉBIL” <br />
    23. 23. Diseño de transacciones<br />Veamos un error más que cometen los alumnos…<br /><ul><li>Definenclaves primarias con componentes de más…</li></ul>Realidad a ser descripta:<br /> Un médico en una fecha, solamente puede tener una consulta<br /> Se le asigna un consultorio para atender<br />Solución de alumno:<br />DoctorId*<br />DoctorName<br />MedicalAppointmentDate*<br />DoctorId*<br />RoomId*<br />DoctorName<br />RoomDescription<br />RoomFloor<br />RoomId*<br />RoomDescriptionRoomFloor<br />
    24. 24. Diseño de transacciones<br />Veamos un error común más…<br />Para que alumno visualice su error de diseño<br /> recomendamos esquematizarle las tablas que se crean con datos<br />
    25. 25. Diseño de transacciones<br />A raíz de lo anterior, surge también explicar…<br />¿Claves primarias compuestas por conjunto<br /> de atributos que determinan unicidad?<br />¿Claves primarias ficticias?<br />MedicalAppointmentId *<br />MedicalAppointmentDate<br />DoctorId<br />RoomId<br />DoctorName<br />RoomDescription<br />RoomFloor<br />MedicalAppointmentDate*<br />DoctorId*<br />RoomId<br />DoctorName<br />RoomDescription<br />RoomFloor<br />
    26. 26. Reglas en transaccionesy eventos de disparo<br />
    27. 27. Reglas en transaccionesy eventos de disparo<br />INTERACTIVAMENTE <br />REGLAS SIN EVENTO DE DISPARO<br />REGLAS CON EVENTO DE DISPARO (ON …. )<br />
    28. 28. Reglas en transaccionesy eventos de disparo<br />Algunos errores comunes:<br />¿Hay atributos disponibles para pasar por parámetro en una invocación que tiene evento de disparo “onAfterComplete”?<br />¿No? <br />¿Si?<br />¿De cuáles niveles?<br /> Sí, del primer nivel<br />
    29. 29. Reglas en transaccionesy eventos de disparo<br />Algunos errores comunes:<br />¿Es correcto asignar valores a atributos… <br />… OnAfterComplete?<br />… OnBeforeComplete?<br /> No, ya es tarde..<br />
    30. 30. Reglas en transaccionesy eventos de disparo<br />Algunos errores comunes:<br />Definiciones de reglas que involucran atributos del 2do nivel con eventos de disparo que no ocurren en dicho nivel<br />
    31. 31. Aplicación del conceptode tabla extendida<br />
    32. 32. Aplicación del conceptode tabla extendida<br />Actualización directa de la tabla extendida<br />En rules de transacciones<br />En Foreach<br />Foreach de más innecesarios<br />Para navegar tablas que están disponibles en el contexto, por el concepto de tabla extendida<br />
    33. 33. Acerca de enseñar fácil…<br />
    34. 34. Sitio de capacitaciónhttp://training.genexus.com<br />
    35. 35. ¿Preguntas?<br />
    36. 36. ¡Muchas gracias!<br />A/S Maia Shuster<br />mshuster@artech.com.uy<br />

    ×