miércoles, 11 de diciembre de 2013

CONCEPTOS DE ORACLE Y SUS HERRAMIENTAS


1. ORACLE DATABASE: Es un sistema de gestión de base de datos objeto-relacional (uORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle Database como uno de los sistemas de bases de datos más completos, destacando:
-          soporte de transacciones,
-          estabilidad,
-          escalabilidad y
-          soporte multiplataforma.

Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco; recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQLMySQL o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.

2. Procesos en segundo plano (Oracle): Las relaciones entre las estructuras físicas y de memoria de la base de datos se mantienen y aplican mediante procesos en segundo plano. Estos procesos son propios de la base de datos y su número varía en función de la configuración de la base de datos. La base de datos gestiona estos procesos y necesitan muy poco trabajo administrativo.

En Oracle los procesos pueden ser de estos tipos:
- Proceso de usuario: Lanzado por el usuario para pedir interacción con la base de datos.
- Proceso de servidor: Hacen de enlace entre los procesos de usuarios y el servidor Oracle. Se utilizan como manejadores de los procesos de usuario. Los comandos de usuario se envían a estos procesos que se encargan de solicitar peticiones a la base de datos mediante el interfaz de programas de Oracle (OPI, Oracle Program Interface).
- Procesos en segundo plano (background): Cada instancia de Oracle arranca una serie de procesos background.

3. Procesos Background (en segundo plano), describalos y explíquelos

DBWR: Databasewriter
LGWR: Log Writer
CKPT: Checkpoint
SMON: Monitor de sistema
PMON: Monitor de procesos
ARCH: Proceso archivador
RECO: Proceso de recuperación

- DBWR: Este proceso es el que se encarga de escribir a disco. Es el único con permiso de escritura en disco, o sea en la base de datos. Cuando nosotros escribimos, hacemos un commit en la base de datos, realmente no está escribiendo en disco, sino que está marcando una serie de bloques de datos como que son susceptibles de ser escritos en disco, es decir, marca los datos como "confirmados", pero no escribe, si no que espera a que otra transacción los requiera para llevarlos a disco y así ahorrar un "viaje" o una operación.

Por eso mismo cuando la base de datos cae o la paramos con la opción "abort", queda inconsistente, ya que puede tener datos en bufferes "confirmados" que realmente no están escritos en disco. Por eso cuando volvemos a arrancar, necesita realizar una recuperación.

- LGWR: Este proceso es que se encarga de escribir el contenido del búfer del registro de rehacer en los ficheros de registro de rehacer en línea. Se realizan las escrituras por lotes. El buffer del registro de rehacer (redo log), contiene siempre el estado más reciente de la base de datos, ya que es posible que el proceso DBWR espere antes de escribir los bloques modificados desde los búferes de bloques de datos a los archivos de datos. Los archivos de registro de rehacer son ficheros secuenciales lo que indica que cuando acaba de escribir en uno, empieza por otro y así sucesivamente.

- CKPT: Este proceso es el encargado de realizar un "punto de comprobación". Cuando se sucede un punto de comprobación, CKPT hace que DBWR escriba todos los bloques que se hayan modificado desde el último punto de comprobación, y actualice los archivos de control y las cabeceras de los archivos de datos para registrar el punto de comprobación. Los puntos de comprobación de producen de forma automática cuando se llena un archivo de registro de rehacer en línea.

Se puede configurar el checkpoint en el fichero de inicialización de parámetros con el parámetro: LOG_CHEKPOINT_INTERVAL.

- SMON: Este proceso realiza la recuperación de la instancia, según sea preciso usando los registros de rehacer en línea... (antes hablamos de que si oracle se para necesitaría hacer una recuperación si se para anormalmente, pues lo realiza así). Limpia la base de datos de transacciones inservibles. También cumple la función de agrupar extensiones libres contiguas en la base de datos. Smon solo agrupa el espacio libre en espacios de tablas cuyo valor de almacenamiento predeterminado sea distinto de 0.

- PMON: Realiza limpiezas de procesos fallidos de usuarios. Libera recursos que estuviera usando el usuario. Sirve por ejemplo cuando hay bloqueos. Libera bloqueos y pone a disposición para otros usuarios.

- ARCH: Proceso que escribe en los registros de rehacer en línea de forma cíclica, es decir, después de llenar el primero, va al segundo, cuando lo llena, va al tercero y así sucesivamente. Una vez terminado el último fichero de rehacer en línea, LGWR empieza a sobrescribir los contenidos del primero. Cuando la base de datos se ejecuta en modo ARCHIVELOG, ARCH realiza una copia del cada uno de ficheros de rechace en línea antes de ser sobrescrito.

- RECO: Este proceso es el encargado de realizar las recuperaciones de fallos en las bases de datos distribuidas. Este proceso trata de acceder a las bases de datos implicadas en transacciones distribuidas dudas e intenta resolver las transacciones.
  
Procesos en Oracle opcionales en segundo plano

La base de datos Oracle viene con una serie de procesos adicionales que son opcionales. Por ejemplo, Oracle cuenta con un programa que le permite programar los tiempos que algunos programas de bases de datos se ejecutará. Este programa se conoce como el proceso planificador de tareas. El planificador de tareas es un programa opcional que debe ser habilitado para que funcione. Cuando el programador de tareas está activada, un proceso (programa) se pondrá en marcha para controlar el trabajo del programador. Esto se conoce como el proceso de cola de trabajos. Estos son los procesos opcionales más comunes:

* Cola de proceso (CJQ) - Se utiliza para el trabajo del programador. El planificador de trabajo incluye un programa principal (el coordinador) y los programas de esclavos que el coordinador se ejecuta. El job_queue_processes parámetro controla el número de puestos de trabajo en paralelo de trabajo del planificador se pueden ejecutar al mismo tiempo.

* Proceso de Archiver (ARCN) - Se utiliza para archivar los registros de rehacer en línea (que veremos más adelante en este capítulo) en el disco. En los casos en que sea necesario, Oracle Database 10g se iniciará el proceso ARCN automáticamente. Si los procesos adicionales ARCN se necesitan, entonces la base de datos Oracle comenzará hasta 9 procesos adicionales.

* Cola de Process Monitor (QMNn) - Se utiliza para gestionar flujos de Oracle AdvancedQueueing.

* Mmon, MMNL, MMAN - Se utiliza para realizar varias tareas de administración de base de datos.

4. Enuncie y describa las Ediciones de Oracle

Existen cinco ediciones distintas de base de datos Oracle con opciones específicas, para cada una de ellas.

Oracle Database Standard Edition One: Ofrece facilidad de uso, potencia y rendimiento para grupos de trabajo, a nivel de departamentos y aplicaciones Web. Desde los entornos de un solo servidor para pequeñas empresas a los entornos de sucursales altamente distribuidos.

Oracle Database Standard Edition: Ofrece las funcionalidades de la edición Standard Edition One, con el apoyo de máquinas más grandes y la agrupación de los servicios con Oracle Real Application Clusters (Oracle RAC). La funcionalidad no se incluía ni como opción en versiones estándar anteriores.

Oracle Database Enterprise Edition: Ofrece el rendimiento, la disponibilidad, la escalabilidad y la seguridad necesaria para las aplicaciones de misión crítica, tales como el procesamiento de grandes volúmenes de transacciones en línea (OLTP), almacenes de datos en consultas intensivas y exigentes aplicaciones de Internet.

Oracle Database Express Edition (Oracle Database XE): Es una edición básica de la base de datos de Oracle. Es rápida de descargar, fácil de instalar y administrar, y es libre de desarrollar, implementar y distribuir. Es fácil de actualizar a las otras ediciones de Oracle sin migraciones costosas y complejas. Oracle Database XE se puede instalar en cualquier máquina tamaño con cualquier número de CPUs, almacena hasta 11 GB de datos de usuario, con un máximo de 1 GB de memoria, y con una sola CPU en la máquina host. Existe un foro en línea, para dar soporte.

Oracle Database Personal: Soporta los entornos de desarrollo de un solo usuario y el despliegue que requieren la plena compatibilidad con Oracle Database Standard Edition One, Oracle Database Standard Edition y Oracle Database Enterprise Edition.

Le diferencia la excepción de la no opción de Oracle Real Application Clusters.
Personal Edition sólo está disponible en los sistemas operativos Windows y Linux. Tampoco incluye los módulos de administración no están incluidos.

5. Cuál es la edicion de uso libre o que podemos usar?

El producto es Oracle 10g Express Edition (Oracle Database XE) y, obviamente, tiene sus limitaciones.

Sólo puede utilizar 1 procesador del servidor donde esté instalada, un máximo de 1 Gb de RAM, y tiene limitado el almacenamiento a 4 Gb de datos de usuario. Cuando se superen estas limitaciones, Oracle ofrece un sencillo proceso de actualización a otras versiones más completas, y en las que sí que hay que pagar licencias.

7. Describa las herramientas de oracle para el programador analista
Oracle ofrece un grupo completo e integrado de herramientas para la inteligencia de negocios y el desarrollo de aplicaciones, el cual respalda cualquier entorno de desarrollo, cualquier plataforma de tecnología y cualquier sistema operativo.

Los arquitectos y desarrolladores que tienen pensamientos adelantados utilizan estas herramientas para abordar la complejidad de sus entornos de IT y aplicaciones con la Arquitectura Orientada a Servicios (SOA), que facilita el desarrollo de aplicaciones empresariales como servicios modulares de negocio que pueden integrarse y reutilizarse fácilmente, creando una infraestructura de IT realmente flexible y adaptable.

8. Defina los siguientes herramientas y su función:
-SQL: El lenguaje de consulta estructurada o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.

-SQL*Plus: Es un programa de línea de comandos de Oracle que puede ejecutar comandos SQL y PL/SQL de forma interactiva o mediante un script.

SQL*Plus opera como una herramienta relativamente simple con una interfaz de líneas de comando básica. Los programadores y los administradores de bases de datos (DBA's) lo usan de forma muy común como interfaz fundamental en la mayoría de las instalaciones de software de Oracle.
-PL/SQL (Procedural Language/Structured Query Language): Es un lenguaje de programación incrustado en Oracle.
PL/SQL soportara todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características:
-          El manejo de variables.
-          Estructuras modulares.
-          Estructuras de control de flujo y toma de decisiones.
-          Control de excepciones.
-           
El lenguaje PL/SQL está incorporado en:
-          Servidor de la base de datos.
-          Herramientas de Oracle (Forms, Reports, ...).
-          En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus.
-          Los programas o paquetes de PL/SQL se pueden almacenar en la base de datos como otro objeto, y todos los usuarios que estén autorizados tienen acceso a estos paquetes. Los programas se ejecutan en el servidor para ahorrar recursos a los clientes.

- SQL FORMS: Es la herramienta de Oracle que permite, de un modo sencillo y eficiente, diseñar pantallas para el ingreso, modificaciones, bajas y consultas de registros. El usuario podrá, una vez definida la forma, trabajar con ella sin necesidad de generar códigos, dado que Oracle trae incorporado un conjunto de procedimientos y funciones asociados a las teclas de funciones, como por ejemplo la tecla [F7], que se usa para iniciar una consulta.

La herramienta fundamental de SQL es la sentencia SELECT, que permite seleccionar registros desde las tablas de la Base de Datos, devolviendo aquellos que cumplan las condiciones establecidas y pudiendo presentar el resultado en el orden deseado.

- SQL (Structured Query Languague = Lenguaje de Consulta estructurado): La orden FROM identifica la lista de tablas a consultar. Si alguna de las tablas a consultar no es propiedad del usuario, debe especificarse el nombre del propietario antes que el nombre de la tabla en la forma nombre_propietario.nombre_tabla.

La orden WHERE decide los registros a seleccionar según las condiciones establecidas, limitando el número de registros que se muestran.

La orden ORDER BY indica el orden en que aparece el resultado de la consulta.

- ORACLE REPORT: es una poderosa herramienta que tiene por objetivo el diseño y la generación de informes. Permite la creación de reportes en archivos jsp (Java Server pages), rdf, xml, rtf entre otros, pero siendo los más usados los anteriormente citados. De igual manera permite enviar el resultado de los informes a archivos de texto, pdf, html, xml, rtf, de texto delimitados, entre otros, lo cual permite su lectura y publicación en diversos formatos.


 - ORACLE GRAPHICS: el desarrollo de Graficos por medio de herramientas de Oracle.

9. - TABLESPACE: Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos Oracle.

- VIEW: Una vista es una alternativa para mostrar datos de varias tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos, en la base de datos se guarda la definición de la vista y no el resultado de ella.

- COMMIT: Guarda los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual (LOCK TABLE).

- GRANT: Esta sentencia sirve para dar permisos (o privilegios) a un usuario o a un rol.
Un permiso, en oracle, es un derecho a ejecutar un sentencia (system privileges) o a acceder a un objeto de otro usuario (object privileges).
El conjunto de permisos es fijo, esto quiere decir que no se pueden crear nuevos tipos de permisos.
Si un permiso se asigna a rol especial PUBLIC significa que puede ser ejecutado por todos los usuarios.

- REVOKE: Esta sentencia sirve para quitar permisos (o privilegios) a un usuario o a un rol.

- TABLE: las tablas son la unidad básica de almacenamiento de datos en Oracle. Los datos son almacenados en filas y columna se define a través de: Nombre, conjunto de columnas (nombre y tipo).

- INDEX: Los índices se usan para mejorar el rendimiento de las operaciones sobre una tabla.
En general mejoran el rendimiento las SELECT y empeoran (minimamente) el rendimiento de los INSERTy los DELETE.
Una vez creados no es necesario nada más, oracle los usa cuando es posible (ver EXPLAIN PLAN).

En oracle existen tres tipos de indices:
1) Table Index
2) Bitmap Join Index
3) Cluster Index

- FUNCTION: Oracle ofrece varios tipos de funciones para realizar distintas operaciones. Hemos empleado varias de ellas.
Se pueden emplear las funciones del sistema en cualquier lugar en el que se permita una expresión en una sentencia "select".

Las funciones, como los procedimientos almacenados son bloques de código que permiten agrupar y organizar sentencias SQL que se ejecutan al invocar la función.

Las funciones tienen una estructura similar a la de los procedimientos. Como los procedimientos, las funciones tienen una cabecera, una sección de declaración de variables y el bloque "begin...end" que encierra las acciones. Una función, además contiene la cláusula "return".
Una función acepta parámetros, se invoca con su nombre y retorna un valor.

- PROCEDURE: Un procedimiento es un subprograma que realiza una acción específica.

Debe declarar y definir un procedimiento ante la invoca. Usted puede declarar y definir al mismo tiempo, o puede declararlo primero y luego definir más adelante en el mismo bloque o subprograma.

- PACKAGE: Es una colección encapsulada de procedimientos relacionados, funciones y otros objetos de programa almacenados juntos en la base de datos. La especificación del paquete declara estos objetos. El cuerpo del paquete, se especifica posteriormente, define estos objetos.

- TRIGGER: Es un bloque PL/SQL asociado a una tabla, que se ejecuta como consecuencia de una determinada instrucción  SQL (una operación DML: INSERT, UPDATE o DELETE) sobre dicha tabla.

- INSTANCE: Una instancia de Base de datos es el conjunto formado por los procesos y las estructuras de memoria que se encuentran en un servidor.

- ROLLBACK: Deshace los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual (LOCK TABLE).







martes, 1 de octubre de 2013

ACTIVIDAD VS EXPRESS 2012


1. Cuando se inicia visual Basic, se crea un proyecto nuevo con un formulario. El IDE de Visual Basic consta de los siguientes elementos:

BARRA DE MENUS: Presenta los comandos que se usan para trabajar con Visual Basic. Además de los menús estándar Archivo, Edición, Ver, Ventana y ayuda, contiene otros menús para tener accesos a funciones específicas de programación, como proyecto, formato o depuración.

BARRA DE HERRAMIENTAS: Permite un acceso directo (solo un clic) a muchas de las operaciones más frecuentes utilizadas durante el desarrollo de aplicaciones.

CUADRO DE HERRAMIENTAS: Contiene todos los objetos u controles que se pueden añadir a los formularios para crear aplicaciones.

DISEÑADOR DE FORMULARIOS: Funciona como una ventana en la que se puede personalizar el diseño de la interfaz de usuario (ventana) de una aplicación.

EXPLORADOR DE PROYECTOS: Lista de los Archivos (formularios, módulos, etc.) del proyecto actual. Un proyecto es una colección de archivos que utiliza para construir una aplicación.

VENTANA DE PROPIEDADES: Lista los valores de las propiedades del formulario o control seleccionado que pueden ser modificados durante el diseño del formulario o control.

VENTANA DE CODIGO: Funciona como un editor para escribir el código (sentencias) de la aplicación.

OBTENCION DE AYUDA DEL SISTEMA

AYUDA EN LINEA: Visual Basic proporciona una amplia ayuda en línea. El archivo de ayuda contiene mucho código de ejemplo que se puede copiar directamente a una aplicación.

LIBROS EN PANTALLA: Para acceder a los libros en pantalla, haga clic en libros en pantalla dentro del menú ayuda de Visual Basic.

VENTANA DE CODIGO: Proporciona de manera automática información relevante a medida que se ingresa código.

2.


3. CREAR PROYECTO:
3.1. Iniciar Visual Studio 2012
3.2. En el menú ARCHIVO, elija NUEVO y haga clic en PROYECTO, aparecerá el cuadro de dialogo NUEVO PROYECTO.
3.3. En el panel PLANTILLAS INSTALADAS, expanda Visual Basic o Visual C# y, a continuación, seleccione WINDOWS.
3.4. Encima del panel central, seleccione la versión de .NET Framework de destino en la lista desplegable.
3.5. En el panel central, seleccione la plantilla APLICACIÓN DE WINDOWS FORMS.
3.6. En el cuadro de texto NOMBRE, especifique un nombre para el proyecto.
3.7. En el cuadro de texto UBICACIÓN, especifique una carpeta para guardar el proyecto.
3.8. Haga clic en ACEPTAR.
El diseñador de Windows Forms se abrirá y mostrara Form 1 Proyecto.

4. RUTA DE DONDE CREA PROYECTO EL VISUAL STUDIO:

RUTA: c:\users\administrador\documents\visual studio 2012\ projects.

5. ESTRUCTURA DE UN PROYECTO:
Al iniciar un proyecto o archivo y abrir el editor de código, vera que hay código en lugar que le corresponde y en el orden correcto. Cualquier código que escriba debe seguir la siguiente secuencia:

5.1. Instrucciones Option
5.2. Instrucciones Imports
5.3. Instrucciones Namespace y elementos del nivel de espacio de nombres.

Si escribe instrucciones en un orden distinto, puede producirse errores de compilación. Un programa también puede contener instrucciones de compilación condicional. Pueden incluirse en el archivo de código fuente entre las instrucciones de la secuencia anterior.

6. FORMULARIO: Es el principal medio de comunicación entre el usuario y la aplicación. Los usuarios interactúan con los controles sobre el formulario para ingresarle datos y obtener resultados.

7. VISTAS: Diseños y Evento.

DISEÑO: Para personalizar y estandarizar a la manera que se desea; y de esta forma también va a ser visible.

EVENTO: Son acciones reconocidas por un formulario o control. Los eventos ocurren a medida que el usuario interactúa con los objetos de la aplicación.

8. CONTROL: Es básicamente un elemento de formulario, que puede recibir una información del usuario, los controles son la base de las interfaces graficas de usuario en estos lenguajes.

CATEGORIAS:

- Controles comunes
- Contenedores
- Menús y barras de herramientas
- Datos
- Componentes
- Impresión
- Cuadros de dialogo
- Interoperabilidad WPF
- Visual Basic Power Packs

Dentro de cada una de estas categorías están los controles.

9. PARA EJECUTAR EL PROGRAMA:

9.1. Después de haber realizado todo el proyecto se va a la opción depurar.
9.2. En el menú Depurar del IDE de Visual Basic, haga clic en iniciar depuración.
9.3. Para cerrar el programa, en el menú Depuración, haga clic en detener depuración.

La primera vez que hice este procedimiento, no me arrojo ningún error de línea, ya que no tengo escrito ningún código fuente. Al final el me muestra unos resultados obtenidos de la depuración sin errores de compilación, pero me muestra unos mensajes donde dice que el subproceso termino con código 0, luego cargó el proyecto y sale otro mensaje diciendo que el subproceso termino con código 0, al finalizar dice que el programa administrado termino con código -1.

viernes, 27 de septiembre de 2013

CLASES Y ATRIBUTOS EN VISUAL BASIC


1. CONSTRUCTOR DE UNA CLASE: Un constructor es una subrutina cuya misión es inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo objeto.
Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos. Al utilizar un constructor, el compilador determina cuál de los objetos va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis.

2. DESTRUCTOR DE UNA CLASE: Un destructor en programación orientada a objetos es una función miembro especial llamadas automáticamente en la ejecución del programa, y por tanto no tienen por qué ser llamadas explícitamente por el programador. Sus principales cometidos son:
- Liberar los recursos computacionales que el objeto de dicha clase haya adquirido en su tiempo de ejecución al expirar éste.
- Quitar los vínculos que pudiesen tener otros recursos u objetos con éste.
Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto.

4. Como definir una clase:
4.1. Cree un proyecto haciendo clic en Nuevo proyecto en el menú Archivo. Aparecerá el cuadro de diálogo Nuevo proyecto.

4.2. Seleccione Aplicación para Windows de la lista de plantillas del proyecto de Visual Basic para mostrar el nuevo proyecto.

4.3. Agregue una clase nueva al proyecto haciendo clic en Agregar clase en el menú Proyecto. Aparecerá el cuadro de diálogo Agregar nuevo elemento.

4.4. Seleccione la plantilla Clase.

4.5. Asigne a la nueva clase el nombre UserNameInfo.vb y, a continuación, haga clic en Agregar para mostrar el código de la nueva clase.

VB
Public Class UserNameInfo
End Class

4.6. Defina un campo privado para la clase; para ello, agregue el siguiente código entre las instrucciones Class y End Class:

VB
Private userNameValue As String

4.7. Defina una propiedad para la clase agregando el código siguiente:

Public Property UserName() As String
    Get
        ' Gets the property value.
        Return userNameValue
    End Get
    Set(ByVal Value As String)
        ' Sets the property value.
        userNameValue = Value
    End Set
End Property

4.8. Defina un método para la clase agregando el código siguiente:
 
Public Sub Capitalize()
    ' Capitalize the value of the property.
    userNameValue = UCase(userNameValue)
End Sub

4.9. Defina un constructor parametrizado para la clase nueva agregando un procedimiento denominado Sub New:

Public Sub New(ByVal UserName As String)
    ' Set the property value.
    Me.UserName = UserName
End Sub
 
Cuando se crea un objeto basado en esta clase, se llama al constructor Sub New automáticamente. Este constructor establece el valor del campo que contiene el nombre de usuario.

5. METODO CONSTRUCTOR: Toda clase debe tener lo que se denomina un método constructor, que es el primero que se ejecuta cuando es instanciado un objeto de la clase, y en él se escribe el código de inicialización para el objeto.

Dentro de VB.NET el método constructor para una clase se debe llamar New( ).

6. INSTANCIA DE UNA CLASE: Una vez que tenemos una clase definida, lo único de lo que disponemos es de una especie de plantilla o molde a partir del cual podemos crear objetos en memoria.
Lo podemos hacer de dos formas, pero como veremos siempre será mediante la instrucción new que es la encargada de crear el objeto en la memoria y asignar la dirección del mismo a la variable usada en la parte izquierda de la asignación.
Declarar primero la variable y después instanciarla.

Lo primero que tenemos que hacer es declarar una variable del tipo que queremos instanciar, esto lo hacemos de la misma forma que con cualquier otro tipo de datos:

Cliente cli1;

Con esta línea de código lo que estamos indicando es que tenemos intención de usar una variable llamada cli1 para acceder a una clase de tipo Cliente. Esa variable, cuando llegue el momento de usarla, sabrá todo lo que hay que saber sobre una clase Cliente, pero hasta que no tenga una "referencia" a un objeto de ese tipo no podremos usarla.

La asignación de una referencia a un objeto Cliente la haremos usando la instrucción new seguida del nombre de la clase:

cli1 = new Cliente();

A partir de este momento, la variable cli1 tiene acceso a un nuevo objeto del tipo Cliente, por tanto podremos usarla para asignarle valores y usar cualquiera de los miembros que ese tipo de datos contenga:

cli1.Nombre = "Antonio";
cli1.Apellidos = "Ruiz Rodríguez";

cli1.Saludar();





viernes, 20 de septiembre de 2013

Investigación de Conceptos de Programación Orientada a Objetos

1. HERENCIA: La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programación).

Dependiendo del lenguaje que se utilice, el diseñador también puede controlar qué miembros de las superclases son visibles en las subclases. En el caso de java y C++ los especificadores de acceso (private, protected, public) de los miembros de la superclase afectan también a la herencia:

-          Private: Ningún miembro privado de la superclase es visible en la subclase.
-          Protected: Los miembros protegidos de la superclase son visibles en la subclase, pero no visibles para el exterior.
-          Public: Los miembros públicos de la superclase siguen siendo públicos en la subclase.

- Herencia simple: Una clase sólo puede heredar de una clase base y de ninguna otra.
- Herencia múltiple: Una clase puede heredar las características de varias clases base, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseñadores de lenguajes. Algunos de ellos han preferido no admitir la herencia múltiple debido a que los potenciales conflictos entre métodos y variables con igual nombre, y eventualmente con comportamientos diferentes crea un desajuste cognitivo que va en contra de los principio de la programación orientada a objetos.

EJEMPLO: programación en Java

import javax.*;
import javax.swing.JOptionPane;
public class Mamifero{    
    private int patas;
    private String nombre;
    public void imprimirPatas(){
      JOptionPane.showMessageDialog(null," Tiene " + patas + " patas\n", "Mamifero", JOptionPane.INFORMATION_MESSAGE);
    }
    public Mamifero(String nombre, int patas){
      this.nombre = nombre;
      this.patas = patas;
    }
}
public class Perro extends Mamifero {
    public Perro(String nombre){
      super(nombre, 4);
    }
}
public class Gato extends Mamifero {
    public Gato(String nombre){
      super(nombre, 4);
    }
}
public class CrearPerro {
    public static void main(String[] args) {
      Perro perrito = new Perro("Pantaleon");
      perrito.imprimirPatas();   /*Está en la clase mamífero*/
    }
}

2. POLIMORFISMO: En programación orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas.

Se puede clasificar el polimorfismo en dos grandes clases:
Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible.
Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explícitos y declarados uno por uno antes de poder ser utilizados.

EJEMPLO:




3. ENCAPSULAMIENTO: se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que sólo se pueda cambiar mediante las operaciones definidas para ese objeto.

Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa.

FORMAS DE ENCAPSULAR:

1.       Estándar (Predeterminado)
2.       Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y cualquier parte del programa.
3.       Protegido: Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4.       Semi cerrado: Solo es accesible desde la clase heredada
5.       Cerrado: Solo es accesible desde la Clase.

En el encapsulamiento hay analizadores que pueden ser semánticos y sintácticos.

EJEMPLO:

  
4. ABSTRACCION: Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de lenguajes pueden implementar los modelos abstractos. La abstracción ofrecida por los lenguajes de programación se puede dividir en dos categorías: abstracción de datos (pertenecientes a los datos) y abstracción de control (perteneciente a las estructuras de control).

A grandes rasgos, la abstracción, permite que dispongamos de las características de un objeto que necesitemos. Si necesitamos el objeto Persona, podríamos poner nombre, edad, dirección, estado civil, etc. Si lo necesitamos en un sistema administrativo, pero, si lo requerimos para el área de biología, dentro de sus atributos quizá tengamos, ADN, RND, Gen x1, Gen x2, etc., y los atributos antes mencionados no sean requeridos. En general, podemos decir que Persona cuenta con todos los atributos mencionados aquí, pero por el proceso de abstracción excluimos todos aquellos que no tienen cabida en nuestro sistema. Se define como un método por el cual se rescatan los datos relevantes y se ignoran los irrelevantes.

EJEMPLO: Modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2. La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.





5. INTERFAZ: Esta noción se utiliza para nombrar a la conexión física y funcional entre dos sistemas o dispositivos de cualquier tipo dando una comunicación entre distintos niveles.

Además, la palabra interfaz se utiliza en distintos contextos:

1.       Interfaz como instrumento: desde esta perspectiva la interfaz es una "prótesis" o "extensión" (McLuhan) de nuestro cuerpo. El ratón es un instrumento que extiende las funciones de nuestra mano y las lleva a la pantalla bajo forma de cursor. Así, por ejemplo, la pantalla de una computadora es una interfaz entre el usuario y el disco duro de la misma.

2.       Interfaz como superficie: algunos consideran que la interfaz nos trasmite instrucciones ("affordances") que nos informan sobre su uso. La superficie de un objeto (real o virtual) nos habla por medio de sus formas, texturas, colores, etc.

3.       Interfaz como espacio: desde esta perspectiva la interfaz es el lugar de la interacción, el espacio donde se desarrollan los intercambios y sus manualidades.

EJEMPLO:



6. CLASE: Es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán. Un objeto creado a partir de una determinada clase se denomina una instancia de esa clase.

Es un conjunto coherente que consiste en un tipo particular de metadatos. Una clase tiene una interfaz y una estructura. La interfaz describe cómo interactuar con la clase y sus instancias con métodos, mientras que la estructura describe cómo los datos se dividen en atributos dentro de una instancia. Una clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona apoyo en tiempo de ejecución para la manipulación de los metadatos relacionados con la clase. En el diseño orientado a objetos, una clase es el tipo más específico de un objeto en relación con una capa específica.


EJEMPLO:

 
 



















7. ATRIBUTOS: Un atributo es una característica de la clase.

EJEMPLO:
Clase cliente.
Atributos nombre, apellido.

-En java creas los atributos de la siguiente forma: Tipo de dato nombre Atributo.

EJEMPLO:
String nombre,  String Apellido.

El atributo debe tener una forma de asignar valor y de obtener valor.

EJEMPLO:
AsignarNombre(), ObtieneNombre()
AsignarApellido(), ObteneApellido()
Eso es lo único que hace el atributo, asignar un valor u obtenerlo.

En síntesis, el Atributo o propiedad, son las características de las clases.

8. METODO: Un método por su parte. Es un conjunto de sentencias que hacen algo específico en la clase.

EJEMPLO:
Insertar cliente();
Para definir un método en Java: Ámbito TipoDeDato  NombreMetodo().

EJEMPLO:
Public void insertaCliente()

El cuerpo del método hace cosas con los atributos, los inserta en una base de datos, los muestra por pantalla, los pasa a otro método para ser procesados y demás.

Los métodos son como pequeños programas que pertenecen a una misma clase,

En síntesis, Los métodos, son las instrucciones que manejan los atributos o propiedades.

9. INSTANCIA: Se refiere a una realización específica de una clase o prototipo determinados.
En general, cuando se ejecuta un programa en un computador, se dice que éste se instancia. En lenguajes que crean objetos a partir de clases, un objeto es una instancia de una clase. Esto es, es un miembro de una clase que tiene atributos en lugar de variables.
En un contexto del mundo real, podríamos pensar en "Perro" como una clase y en un perro concreto en una instancia de esta clase.

EJEMPLO:



10. AGREGACION: Es una relación que se derivó de la asociación, por ser igualmente estructural, es decir que contiene un atributo, que en todos los casos, será una colección, es decir un Array, Vector, Collections, etc, y además de ello la clase que contiene la colección debe tener un método que agregue los elementos a la colección.

11. CONCURRENCIA: Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.
Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.


EJEMPLO:


12. PERSISTENCIA: Es la capacidad del programador para conseguir que sus datos sobrevivan a la ejecución del proceso que los creo, de forma que puedan ser reutilizados en otro proceso. Cada objeto, independiente de su tipo, debería poder llegar a ser persistente sin traducción explicita. También, debería ser implícito que el usuario no tuviera que mover o copiar los datos expresamente para ser persistentes.

EJEMPLO: