You are on page 1of 53

PROGRAMACIN II

Introduccin a la Materia.
Unidad I

A.I.A. - Roeschlin Sebastin Daniel 1


Introduccin a la Materia

Presentacin del Docente.


Horarios de Sala de Informtica. (En Clase y fuera de Clase)
Reglas de Regularidad:
Exmenes Parciales (2 con 1 Recuperatorio c/u.) - Asistencia.
Trabajo Prctico Integrador
Metodologa de Trabajo en Clase.
Reglas de Convivencia.
Glosario. Importancia de la concurrencia a clases. La toma de apuntes vs. dictado.
Investigacin vs. Apuntes de ctedra.
Presentacin del Contenido de la Materia.
Temario, Bibliografa y Publicaciones.
Herramientas de Trabajo. (S-Designor Access 2000 Case Studio)
Esquema General de un Equipo de Desarrollo.
Tareas y funciones del Analista Programador.
Analista Programador vs. Programador y Tcnico Reparador.
A.I.A. - Roeschlin Sebastin Daniel 2
Articulacin de Asignaturas
Programacin I Sistemas de Computacin I
- Lgica y Codificacin - Hardware / S.O. / Utilitarios

Programacin II
- Arquitectura de BD. Sistemas de Computacin II
- Manipulacin de Datos. - Hardware / Redes
- Programacin Visual.

Lenguajes Gener. Informes Sistemas de Computacin III


Anlisis Estructurado
- Programacin Visual - Arquitectura (Prog. Redes)
- Relevamiento, Anlisis
- (Visual Basic 6.0) y Diseo

Seminario
- Trabajo de Campo
A.I.A. - Roeschlin Sebastin Daniel 3
Unidad I

Fundamentos de las Bases de Datos.


Lenguajes de Programacin vs. Bases de Datos.
Modelo de Archivos vs. Modelos Relacionales.
Archivos, Entidades, Relaciones y Tablas
Bases de Datos Desktop vs. Clientes/Servidor.
Concepto y utilidades Ventajas y Desventajas.
El Lenguaje de Programacin y las Bases de Datos Clientes/Servidor.
La Construccin de un Sistema Informtico
Los Planos para construir (Quin Planifica y quin construye)
La Casa para la mascota. La Casa para una Familia. Un Edificio de 10 pisos.
El anlisis y la documentacin antes de fracaso asegurado.
Introduccin a la Normalizacin de Datos.
Entidades, Relaciones y Tablas
Qu es y para que sirve la Normalizacin de datos.
Ejemplos Datos que necesitan normalizarse.

A.I.A. - Roeschlin Sebastin Daniel 4


Unidad I EL MODELO RELACIONAL

Modelo Conceptual de Datos

Modelo Conceptual de Datos


vs. Modelo Fsico de Datos.

Prototipado de Software

A.I.A. - Roeschlin Sebastin Daniel 5


Unidad I EL MODELO RELACIONAL
Modelo Conceptual de Datos
Definicin de Entidades, Atributos, Relaciones y Cardinalidades.
Diseo del modelo conceptual en forma manual.
Desarrollo Ejemplo Agenda de Clientes
Clientes, Localidades, Provincias, Zonas

Modelo Fsico de Datos.


Desde Entidades -> Tablas
Desde Atributos -> Campos (Tipos de Datos ms comunes)
Las Cardinalidades y Claves Primarias (PK) y Foreingkey (FK)
Utilizacin de Herramientas Case (Case-Studio)
Desarrollo Ejemplo Agenda de Clientes
Clientes, Localidades, Provincias, Zonas

A.I.A. - Roeschlin Sebastin Daniel 6


Unidad I EL MODELO RELACIONAL

Modelo Fsico de Datos.


Tablas Intermedias o Relacionantes.
Cardinalidades 1,0 y 0,1
Datos Obligatorios (Not Null)
Datos nicos (Unique)
La Integridad Referencial

Objetivo, Funcionalidad y Utilidad del


Prototipado
Prototipado en Papel del Ejemplo Agenda de Clientes

A.I.A. - Roeschlin Sebastin Daniel 7


Unidad I EL MODELO RELACIONAL

Utilizar un poco ms Case Studio

Prototipar con CASE Studio.

Cambiar Modelo Fsico segn Base de Datos.

Disear DE-R de grandes proyectos.


Utilizar Sub-Modelos.

Generar archivo Script y Crear Base de Datos

A.I.A. - Roeschlin Sebastin Daniel 8


Unidad I TP INTEGRADOR Y EJECITACIN

Presentacin del Trabajo Prctico Integrador.


Objetivos para la Etapa N 1 Fecha Parcial 1
Ejercitacin en Mquina utilizando Herramienta Case-Studio
Los Ejercicios propuestos para la prctica en clase, sern desarrollados
nicamente en Clase y el Docente deber ir agregando complejidad a cada
uno de ellos hasta obtener mnimamente 1 Tabla Relacionante.
(GuaDeEjerciciosParaClase.pdf)
Ejercicio N 1
Ejercicio N 2
Ejercicio N 3
Ejercicio N 4
Ejercicio N 5
Concepto y Ejemplos de la Ingeniera Inversa.
Planteo de Dudas y Conclusiones Unidad I.
A.I.A. - Roeschlin Sebastin Daniel 9
Unidad II
Diseo de Interface I

A.I.A. - Roeschlin Sebastin Daniel 10


Unidad II

Los Lenguajes de Programacin y su


Importancia en el Desarrollo.
La Importancia de la Metodologa del
Desarrollo.
Gestin de Interfaces
Ventajas de una buena Gestin
El desarrollo orientado al Prototipado.
Patrones de Diseo (Tabla de Patrones)
Presentacin y utilizacin del Ejemplo
Agenda.(compilado)
A.I.A. - Roeschlin Sebastin Daniel 11
A.I.A. - Roeschlin Sebastin Daniel 12
A.I.A. - Roeschlin Sebastin Daniel 13
A.I.A. - Roeschlin Sebastin Daniel 14
A.I.A. - Roeschlin Sebastin Daniel 15
A.I.A. - Roeschlin Sebastin Daniel 16
A.I.A. - Roeschlin Sebastin Daniel 17
Unidad III
Bases de Datos Tipo Servidor y El Lenguaje SQL

A.I.A. - Roeschlin Sebastin Daniel 18


Unidad III

Bases de Datos Tipo Servidor.


El Lenguaje de Definicin de Datos DDL.
Manipulacin de Datos. MDL
Lenguaje Estndar de Consultas. SQL
Disparadores (Triggers).
Procedimientos Almacenados. Store Procedure
Vistas.View
A.I.A. - Roeschlin Sebastin Daniel 19
Bases de Datos Tipo Servidor
Motor Transaccional.
Mayor velocidad de procesamiento, con grandes
volmenes de informacin.
Mayor cantidad de conexiones simultneas.
Mayor seguridad.
Sistemas de Backup automticos.
Sistemas de Sincronizacin de Datos.
Sistemas de Anlisis de rendimiento.
Sistemas de ayudas para mejorar la performance.
Sistemas de Monitoreo.

A.I.A. - Roeschlin Sebastin Daniel 20


Definicin, Manipulacin y Consulta de Datos.

El Lenguaje de Definicin de Datos DDL.


Create Alter y Drop
Table
DataBase
Index
Constraint
Manipulacin de Datos. MDL
Insert, Delete, Update
Lenguaje Estndar de Consultas. SQL
Consultas estndares interpretadas por cualquier motor de base
de datos relacional.
Select idCliente, ApeNomCliente From Clientes;

A.I.A. - Roeschlin Sebastin Daniel 21


Lenguaje del lado del Servidor
Disparadores (Triggers).
Se disparan o ejecutan automticamente luego de haber sucedido el evento en el que
estn programados.
Cada motor de base de datos tiene su propio lenguaje para la definicin de triggers.
Dependemos o nos atamos al motor de BD.
Son ms giles que instrucciones MDL disparadas desde el cliente.
Procedimientos Almacenados. Store Procedure
Se disparan o ejecutan cuando el usuario lo solicita.
Cada motor de base de datos tiene su propio lenguaje para la definicin de Store
Procedure.
Dependemos o nos atamos al motor de BD.
Son ms giles que instrucciones MDL disparadas desde el cliente.
Vistas.View
Se consultan cuando el usuario lo solicita.
Consultas fsicas que ocupan espacio en BD y se actualizan automticamente.
Se utilizan cuando se detectan consultas muy usuales en las que se necesita alto
rendimiento.

A.I.A. - Roeschlin Sebastin Daniel 22


Ejercitacin de SQL y MDL utilizando DeskTop
Utilizando NeptunoEjemplo.mdb:
La interfaz QBE
Vista en Diseo
Vista Hoja de Datos
Vista SQL
Instrucciones MDL
Insert, Delete y UpDate Fundamentos de SQL 69 / 93 / 115
Instrucciones SQL
Instrucciones SQL Simples.
Instrucciones SQL con Ordenamiento.
Instrucciones SQL con Agrupamiento.
Instrucciones SQL con Parmetros.
Instrucciones SQL con Campos Calculados.
A.I.A. - Roeschlin Sebastin Daniel 23
Unidad III Creacin de una BD Cliente / Servidor

Creacin de la Base de Datos:


La Importancia de la Normalizacin.
Concepto de un Anlisis Estructural de la BD:
1.Determinar el Nombre de la Base de Datos.
2.Tamao Mnimo de la BD.
3.Tamao Mximo Esperable de la BD.
4.Tamao Mnimo Registro de Transacciones.
5.Tamao Mximo Registro de Transacciones.
6.Factor de Crecimiento.
7.Ubicacin Fsica de la BD.
8.Ubicacin Fsica del Registro de Transacciones.
A.I.A. - Roeschlin Sebastin Daniel 24
Unidad III - Creacin de una BD Cliente / Servidor

Anlisis Estructural de la BD:


Determinar el Nombre de la Base de Datos.
Tamao Mnimo de la BD
No Existen reglas para el clculo. 10mb y 5mb es lo ms
comnmente utilizado.
Tamao Mnimo del Registro de Transacciones
El Reg. de Transacciones, se utiliza como respaldo de
las transacciones realizadas.

A.I.A. - Roeschlin Sebastin Daniel 25


Unidad III - Creacin de una BD Cliente / Servidor

Anlisis Estructural de la BD:


Tamao Mximo Esperable de la BD y Registro de
Transacciones:
Utilizar ilimitado si lo permite la base de datos, sino asignar lo ms
que permita el dispositivo de almacenamiento, Sistema Operativo y
Motor de Base de Datos.
Factor de Crecimiento:
Se puede expresar en Mb o Porcentajes, segn BD.
Si es en Mb. Se asigna la misma cantidad que el valor inicial de la
BD, para que en el peor de los casos puede integrar todo un
bloque sin problemas.
Si es en Porcentaje, se deber calcular un Factor de crecimiento,
para predecir cuando se acabar el espacio. (Se calcula segn el
tiempo que demora en tomar nuevamente el mnimo de la BD.)
A.I.A. - Roeschlin Sebastin Daniel 26
Unidad III - Creacin de una BD Cliente / Servidor

Anlisis Estructural de la BD:


Ubicacin Fsica de la BD y el Registro de
Transacciones:
Las ubicaciones de ambos deben ser diferentes.
Uno en el C:\ y otro en el D:\ para resguardo por si se rompe
un disco
Se pierde la ultima informacin pero con el Backup y el
Registro de Transacciones se logra restaurar toda la base de
datos.

A.I.A. - Roeschlin Sebastin Daniel 27


Unidad III Instrucciones DDL (Ej. SQL Server)

Create DataBase Prueba (1)


On (
Name = Prueba_Dat, (1)
FileName = C:\PruebaDat.mdf, (8)
Size = 10, (2)
MaxSize = 50, (3)
FileGrowth = 5 ) (6)
Log On (
Name = Prueba_log, (1)
FileName = E:\PruebaLog.LDF, (8)
Size = 5, (4)
MaxSize = 25, (5)
FileGrowth = 5) ;(6)

A.I.A. - Roeschlin Sebastin Daniel 28


Unidad III Instrucciones DDL

Creacin de ndices Fundamentos de SQL Pag. 141


Relacin con el ndice Telefnico y una Tabla Indexada.
Las Claves Primarias y Ajenas siempre estn indexadas para optimizar
las uniones entre tablas.
Indices:
nicos (Unique)
Con Unidades de Asignacin (Clustered), stos deben ser nicos asignan
una unidad a cada fila manteniendo ordenada la tabla. Si se agrega un
nuevo apellido no interesa que comience con Alvarez, se ingresar ltimo
en el ndice generndose una unidad de asignacin distinta las dems y
sa persona luego ser ubicada por su unidad de asignacin y no por su
apellido.
Simples o con Duplicados (NonClustered), son ndices simples que
permiten duplicaciones en una misma tabla, se utilizan generalmente en
las claves ajenas.
Cuando se crea la Tabla:
Create Table Persona(IdPersona Int Not Null) Primary Key Clustered;
A.I.A. - Roeschlin Sebastin Daniel 29
Unidad III Instrucciones DDL

Creacin de ndices Fundamentos de SQL Pag. 141


Create Clustered Index idPersona_Ind on Persona
(idPersona);
Create Unique Asc Index IdLocalidad_Ind on
Localidades(idLocalidad);
Indice Simple:
Create Asc Index ApeNom_Ind on Personas(ApeNom);
Restricciones (Constraint) vs. Integridad Referencial
Constraint: Claves Primarias, Secundarias y Reglas de Validaciones
(Check).
Create Tabla Personas(idPersona int not null, Edad int not
null,Constraint idPersona_chk Primary Key Clustered Check (Edad
>= 18 and Edad < 100));
A.I.A. - Roeschlin Sebastin Daniel 30
Unidad III Instrucciones DDL

Restricciones (Constraint)
Alter Table Persona add
Constraint FK_idLocalidad Foreing Key (idLocalidad)
References Localidades;
Imponer la Exclusividad sin Indices:
Alter Table Persona add
Constraint U_Persona Unique NonClustered (ApeNom,NroDocumento).
Alter Table :
Persona Add Direccion VarChar(20);
Persona Drop Column Direccion;
Drop:
Column, Table (es definitivo!!!), Index o Constraint.
A.I.A. - Roeschlin Sebastin Daniel 31
Unidad III Instrucciones MDL

Instrucciones MDL Fundamentos de SQL 69/93/115


Insert
Insert into Personas (idPersona, ApeNom, Direccion) Values (10,Juan
Perez,Null)
Insert into Personas2 Select idPersona,ApeNom, Direccion From
Personas where idPersona > 100
Si no se respeta el orden de ingreso de los campos, se deber
especificar el orden como en la primera instruccin.
UpDate
UpDate Personas Set Contratado = 1, Meses = 3
UpDate Personas Set Contratado = 1 Where Antiguedad > 3
Delete
Delete From Personas Where Contratado = 0

A.I.A. - Roeschlin Sebastin Daniel 32


Unidad III Vistas, Procedimientos Almacenados y Disparadores

Vistas
Concepto y Utilizacin.
Ventajas y Desventajas.

Ejemplo:

Create View ClientesCtaCte (CodCli, ApeNom, NroCta) as


Select idCliente, ApeNom, NroCta
From Clientes, CtaCte
Where Clientes.idCliente = CtaCte.idCliente;

A.I.A. - Roeschlin Sebastin Daniel 33


Unidad III Vistas, Procedimientos Almacenados y Disparadores

Procedimientos Almacenados
Concepto y Utilizacin.
Ventajas y Desventajas.
Ejemplo:
Set Term !!;
Create Procedure SumaCostoCapacitaciones
(idDepartamento Integer)
Returns (CostoTotalCapacitaciones Decimal(12,2))
As Begin
Select Sum(CostoCapacitacion)
From Capacitaciones
Where idDpto = :idDepartamento
InTo :CostoTotalCapacitaciones;
Exit;
Set Term; !!

A.I.A. - Roeschlin Sebastin Daniel 34


Unidad III Vistas, Procedimientos Almacenados y Disparadores

Disparadores - Triggers
Concepto y Utilizacin.
Ventajas y Desventajas.
Ejemplo:
Set Term !!
Create Trigger trgClientesHistoricos for Clientes
Active Before Delete Position 0
As Begin
Insert into ClientesHistoricos
Values (NroCli, ApeNom, Direccion);
End!!
Set Term;!!
A.I.A. - Roeschlin Sebastin Daniel 35
Ejercitacin de SQL y MDL utilizando
INTERBASE

Utilizando InterBase 6.0


IBConsole
Verificar estado del Servidor de Datos
Ingreso a InterBase como Administrador de Datos
Conexin Remota o Local
SYSDBA
masterkey
Registrar y/o Crear una Base Nueva
Interactive SQL
Ver y Utilizar la Ayuda de IB 6.0
Crear Clientes y Localidades
Utilizando NeptunoEjemplo.gdb:
Probar algunas Instrucciones MDL
Probar algunas Instrucciones SQL
Generar una Estructura Cliente / Servidor con Access e InterBase 6.0
A.I.A. - Roeschlin Sebastin Daniel 36
Unidad IV
Diseo de Interfaces II

A.I.A. - Roeschlin Sebastin Daniel 37


Unidad IV

Gestin de Interfaces Complejas


Concepto y Utilizacin de los Objetos.
Utilizacin de Mdulos
Libreras DLL y OCX
Objetivos y Utilidad en Dividir la Aplicacin de
las Tablas.

A.I.A. - Roeschlin Sebastin Daniel 38


Unidad IV

Gestin de Interfaces Complejas


Utilizacin de Instrucciones SQL en las Interfaces.
Maestro / Detalles
Campos calculados.
Concepto y Utilizacin de los Objetos.
RecordSet
DoCmd
Application
A.I.A. - Roeschlin Sebastin Daniel 39
Unidad IV

Utilizacin de Mdulos
Definicin de Procedimientos vs. Funciones.
Libreras DLL y OCX
Utilizacin de Libreras (dll)
Respeto del Modelo en Capas.
Instalacin y Actualizacin de Libreras.
Utilizacin de Controles (ocx)
Instalacin y Actualizacin de Controles.
Objetivos y Utilidad en Dividir la Aplicacin de las Tablas.
Crear una Interfaces Principal
Compilar y Cerrar la Aplicacin
Trabajos de Ejercitacin 1, 2, 3 y 4 de la gua.
A.I.A. - Roeschlin Sebastin Daniel 40
Unidad V
Diseo de Informes

A.I.A. - Roeschlin Sebastin Daniel 41


Unidad V

Informes Simples
Ordenar Datos
Agrupar Datos
Calcular Datos
Informes con Filtros
Informes Complejos
Informes Anidados
Ejercitacin gua prctica:
Ejercicios 1, 2, 3 y 4

A.I.A. - Roeschlin Sebastin Daniel 42


Unidad VI
Modelos de Conexionado

A.I.A. - Roeschlin Sebastin Daniel 43


Unidad VI

Definicin, concepto y utilizacin sistemas


FrontEnd y BackEnd.
Diseo de sistemas en Capas.
Definicin de un Modelo de Conexionado.
Sistemas Enlazados a Datos.
Sistemas No Enlazados a Datos.

A.I.A. - Roeschlin Sebastin Daniel 44


Unidad VI
FrontEnd / BackEnd y el Diseo de Sistemas en Capas

Definicin, concepto y utilizacin de sistemas


FrontEnd y BackEnd.
Diseo de sistemas en Capas.
1.Capa de Presentacin (UI)
1.Interfaz de Usuario. (Form o IE)
2.Gestion Datos.

2.Capa de Negocios
1.Reglas de Negocios (a nivel de Casos de Usos)
2.Objetos de Negocios (Clases -> Objetos)
3.Capa de Acceso a Datos
4.Base de Datos
A.I.A. - Roeschlin Sebastin Daniel 45
Unidad VI - Definicin de un Modelo de Conexionado.

Definicin y utilidad de los Modelos de Conexionado.


ODBC (Conectividad Abierta a Bases de Datos)
OLE DB (Vinculacin e Insercin de Objetos de Bases de
Datos)
DAO (Objetos de Acceso a Datos)
RDO (Acceso a Datos Remotos)
ADO (Objetos de Datos ActiveX)
ADC (Advanced Data Connector) o RDS (Remote Data Service)
ADO.NET (ActiveX Data Object . NET)
Ubicacin dentro del desarrollo en Capas
A.I.A. - Roeschlin Sebastin Daniel 46
Unidad VI - ODBC

ODBC (Conectividad Abierta a Bases de Datos)


Administrador ODBC
Localiza Controlador ODBC
Convierte Instruccin SQL
Conecta a Base de Datos
Ventajas y Desventajas:
Conexin a todas las BD que tengan el Driver ODBC. (V)
La Conexin es directa, casi sin intermediarios. (V)
Crear la conexin en cada Cliente o utilizar la API (Interfaz para la Programacin de
Aplicaciones) de Windows. (D)
Al cambiar la direccin de la Base de Datos, se deber re-direccionar todos los
clientes. (D)
Aplicacin Servidor de Datos
Administrador ODBC
Driver ODBC
A.I.A. - Roeschlin Sebastin Daniel 47
Unidad VI OLE DB

OLE DB (Vinculacin e Insercin de Objetos de Bases de


Datos)
Utiliza el Modelo de Objeto Componentes (COM) Componentes y
Clases de Microsoft y Tecnologa DNA (Acceso Universal Datos).
Accede a todo tipo de datos compatibles con OLE DB. (Base Datos,
Excel, Word, E-mail)
Intermediario absoluto entre la Aplicacin y los Datos.
Acceso a Bases de Datos Nativas o con conexin a ODBC mediante una
cadena de conexin desde la Aplicacin.

Aplicacin Acceso ODBC


Objetos OLE DB Servidor de Datos
Acceso Nativo
A.I.A. - Roeschlin Sebastin Daniel 48
Unidad VI OLE DB (DAO y RDO)

DAO (Objetos de Acceso a Datos)


Primer proveedor que utiliz OLE DB.
Utiliza el Motor Microsoft Jet de cada cliente.
Aplicacin (Access SQL)
-> Motor Jet
-> OLE DB
-> Accede a Datos (ODBC o Nativos)
RDO (Acceso a Datos Remotos)
dem DAO pero no utiliza el Motor Jet de cada cliente, por lo que se
encuentra ms cerca de la Capa ODBC.
Incluido en las Herramientas Empresariales de VB 4 y 5.
Diferencias entre DAO y RDO:
Slo accede a Bases de Datos ODBC.
Utiliza el Motor ODBC del Servidor.
Mejor Rendimiento.
A.I.A. - Roeschlin Sebastin Daniel 49
Unidad VI OLE DB (ADO y ADC)

ADO (Objetos de Datos ActiveX)


Modelo de Programacin independiente al modelo de acceso a datos.
Entorno tpico es sobre Aplicaciones Internet/Intranet.
Es un conjunto de Objetos que trabaja con cursores del lado del
servidor.
Basado en OLE DB, por lo que tiene acceso a multitud de datos.
La conexin a Datos se establece por medio de un nico objeto, no
como en DAO.
ADC (Advanced Data Connector) o RDS (Remote Data
Service)
Utiliza los objetos de ADO con la diferencia que los cursores se
trabajan del lado del cliente.
Basados en ActiveX lo que permite que los desarrolladores puedan
visualizar y actualizar los datos en Browser con un mnimo de
programacin.
A.I.A. - Roeschlin Sebastin Daniel 50
Unidad VI OLE DB (ADO y ADC)

ADO.NET (ActiveX Data Object . NET)


Acceso a Datos (Framework.NET)
Diseado para trabajar desconectado a BD.

Sistema Enlazados a datos:


Fcil desarrollo y mantenimiento.
Metodologa de programacin rudimentaria.
Consumidores de Recursos.
Poco escalables.
Sistemas No Enlazados a Datos:
Todo lo contrario.
A.I.A. - Roeschlin Sebastin Daniel 51
UNIDAD VII

INSTALACIN Y DISTRIBUCIN DE
APLICACIONES

A.I.A. - Roeschlin Sebastin Daniel 52


Unidad VII

Pautas para la generacin de Ayuda.


Utilizacin de Videos o Confeccionar Ayudas Convencionales con
software diseados para general archivos HLP.
Distribucin de Nuevas Versiones y libreras
Plano de Implementacin y registro de cambios.
Software para la Distribucin.
Utilizar Software para el proyecto de Implementacin. Ejemplo
InnoSetup.
Integracin con la Web.
Se pueden desarrollar aplicativos de instalacin desde un servidor web
que sea disparados por el usuario o la terminal al momento de
conectarse a la red.
A.I.A. - Roeschlin Sebastin Daniel 53

You might also like