viernes, 23 de abril de 2010

Trabajo colaborativo

El trabajo colaborativo se define como procesos intencionales de un grupo para alcanzar objetivos específicos, más herramientas diseñadas para dar soporte y facilitar el trabajo.
En el marco de una organización, el trabajo en grupo con soporte tecnológico se presenta como un conjunto de estrategias tendientes a maximizar los resultados y minimizar la pérdida de tiempo e información en beneficio de los objetivos organizacionales.
El mayor desafío es lograr la motivación y participación activa del recurso humano. Además deben tenerse en cuenta los aspectos tecnológico, económico y las políticas de la organización. Trabajo colaborativo o groupware son palabras para designar el entorno en el cual todos los participantes del proyecto trabajan, colaboran y se ayudan para la realización del proyecto.
Elementos

Elementos del trabajo colaborativo:

Objetivos: Los mismos de la organización; particulares, bien definidos u otros

Ambiente: controlado y cerrado.

Motivación: la persona es convencida por la organización.

Tipo de proceso: se formaliza el proceso grupal.

Aporte individual: conocimiento y experiencia personal al servicio de los intereses organizacionales.

Pasos del proceso grupal: se deben definir claramente y previamente.

variables y tipos de datos en vb

Tipo de datos En Visual Basic

Boolean
Contiene valores que pueden ser sólo True o False. Las palabras clave True y False corresponden a los dos estados de las variables Boolean.

Comentarios
Utilice el tipo de datos Boolean para contener valores de dos estados como verdadero/falso, sí/no o activado/desactivado.
El valor predeterminado de Boolean es False.
Conversiones de tipoCuando Visual Basic convierte los valores de tipos de datos numéricos en Boolean, 0 pasa a ser False y todos los otros valores, True. Cuando Visual Basic convierte los valores Boolean en tipos numéricos, False pasa a ser 0 y True, -1.
Al convertir entre valores Boolean y tipos de datos numéricos, recuerde que los métodos de conversión de .NET Framework no siempre producen los mismos resultados que las palabras clave de conversión de Visual Basic. Esto se debe a que la conversión de Visual Basic conserva un comportamiento compatible con versiones anteriores. Para obtener más información, vea Solucionar problemas de tipos de datos.
Sugerencias de programaciónNúmeros negativos.Boolean no es un tipo numérico y no puede representar un valor negativo. En cualquier caso, no debería utilizar Boolean para contener valores numéricos.
Caracteres de tipo.Boolean no tiene ningún carácter de tipo de literal o de tipo de identificador.
Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Boolean.

Ejemplo

En el ejemplo siguiente, runningVB es una variable Boolean que almacena un único parámetro de tipo sí/no.
CopiarDim runningVB As Boolean' Check to see if program is running on Visual Basic engine.If scriptEngine = "VB" Then runningVB = TrueEnd If

Byte

Contiene enteros de 8 bits sin signo (1 bytes) que se sitúan en el intervalo entre 0 y 255.

Comentarios

Utilice el tipo de datos Byte para contener datos binarios.
El valor predeterminado de Byte es 0.
Sugerencias de programaciónNúmeros negativos. Dado que Byte es un tipo sin signo, no puede representar un número negativo. Si utiliza el operador menos (-) unario en una expresión que produce un resultado del tipo Byte, Visual Basic convierte primero la expresión a Short.
Conversiones de formato. Cuando Visual Basic lee o escribe archivos o cuando llama a archivos DLL, métodos y propiedades, puede convertir automáticamente entre los formatos de datos. Los datos binarios almacenados en variables Byte y matrices se conservan durante estas conversiones de formato. No debería utilizar una variable String para datos binarios, ya que su contenido puede dañarse durante la conversión entre los formatos ANSI y Unicode.
Ampliación. El tipo de datos Byte se amplía a Short, UShort, Integer y UInteger, Long, ULong, Decimal, Single y Double. Esto significa que se puede convertir Byte en cualquiera de estos tipos sin encontrar un error System.OverflowException.
Caracteres de tipo.Byte no tiene ningún carácter de tipo de literal o de tipo de identificador.
Tipo en Framework. El tipo correspondiente en .NET Framework es la estructura System.Byte.

Char

Contiene puntos de código de 16 bits (2 bytes) sin signo comprendidos entre 0 y 65535. Cada punto de código o código de carácter representa un único carácter Unicode.

Comentarios
Utilice el tipo de datos Char cuando necesite albergar únicamente un carácter individual y no necesite la sobrecarga de String. En algunos casos, puede utilizar Char(), una matriz de elementos Char, para albergar varios caracteres.
El valor predeterminado de Char es el carácter con el punto de código 0.
Caracteres UnicodeLos primeros 128 puntos de código (0–127) Unicode corresponden a las letras y símbolos de un teclado estándar de EE.UU. Estos primeros 128 puntos de código son los mismos que los definidos por el conjunto de caracteres ASCII. Los siguientes 128 puntos de código (128–255) representan caracteres especiales, como letras de alfabetos latinos, acentos, símbolos de moneda y fracciones. Unicode utiliza los puntos de código restantes (256-65535) para albergar una amplia variedad de símbolos, incluidos caracteres de texto de todo el mundo, signos diacríticos y símbolos técnicos y matemáticos.
Puede utilizar métodos como IsDigit y IsPunctuation en una variable Char para determinar su clasificación Unicode.
Conversiones de tipoVisual Basic no realiza conversiones directas entre el tipo Char y los tipos numéricos. Puede utilizar Asc, AscW (Funciones) para convertir un valor Char a un tipo Integer que represente su punto de código. Puede utilizar Chr, ChrW (Funciones) para convertir un valor Integer a un tipo Char que tenga ese punto de código.
Si el modificador de comprobación de tipos (Option Strict (Instrucción)) está habilitado, debe agregar el carácter de tipo de literal a un literal de cadena de un solo carácter para identificarlo como el tipo de datos Char. Esto se ilustra en el siguiente ejemplo:
CopiarOption Strict OnDim charVar As Char' The following statement attempts to convert a String literal to Char.' Because Option Strict is On, it generates a compiler error.charVar = "Z"' The following statement succeeds because it specifies a Char literal.charVar = "Z"C

Date

Contiene valores IEEE de 64 bits (8 bytes) que representan fechas comprendidas entre el 1 de enero del año 0001 y el 31 de diciembre de 9999, y horas comprendidas entre las 0:00:00 (medianoche) y las 11:59:59. Cada incremento representa 100 nanosegundos de tiempo transcurrido desde el comienzo del 1 de enero del año 1 del calendario gregoriano. El valor máximo representa 100 nanosegundos antes del comienzo del 1 de enero del año 10000.
Comentarios

Utilice el tipo de datos Date para albergar valores de fecha, valores de tiempo o valores de fecha y hora.
El valor predeterminado de Date es 0:00:00 (medianoche) del 1 de enero de 0001.
Requisitos de formatoDebe incluir un literal Date dentro de los signos de número (# #). Debe especificar el valor de fecha en el formato M/d/yyyy, por ejemplo #5/31/1993#. Este requisito es independiente de la configuración regional y de la configuración de formato de fecha y hora del equipo.
El motivo de esta restricción es que el significado del código nunca debe cambiar en función de la configuración regional en que se ejecuta la aplicación. Suponga que asigna un literal Date de #3/4/1998# para representar 4 de marzo de 1998. En una configuración regional que utilice el formato mm/dd/yyyy, 3/4/1998 se compila como desee. Pero suponga que implementa la aplicación en varios países. En una configuración regional que utilice el formato dd/mm/yyyy, el literal incluido en el código se compilará como Abril 3, 1998. En una configuración local que utilice el formato yyyy/mm/dd, el literal podría no ser válido (Abril 1998, 0003) y generar un error de compilación.
SolucionesPara convertir un literal de tipo Date al formato de la configuración regional o a un formato personalizado, proporcione el literal a la función Format (Función) especificando Formatos de fecha y hora predefinidos (Función Format) o Formatos de fecha y hora definidos por el usuario (Función Format). En el siguiente ejemplo se muestra esta operación.
CopiarMsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))Si lo desea, puede utilizar también uno de los constructores sobrecargados de la estructura DateTime para ensamblar un valor de fecha y hora. En el ejemplo siguiente se crea un valor para representar Mayo 31, 1993 a las 12:14 del mediodía.
CopiarDim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0) Formato de horaPuede especificar el valor de hora con un formato de 12 horas o de 24 horas, por ejemplo #1:15:30 PM# o #13:15:30#. Sin embargo, si no especifica los minutos ni los segundos, debe especificar a.m. o p.m.
Valores predeterminados de fecha y horaSi no se incluye una fecha en un literal de fecha/hora, Visual Basic establece la parte de fecha del valor en Enero 1, 0001.Si no se incluye una hora en un literal de fecha y hora, Visual Basic establece la parte de hora del valor en el inicio del día, es decir, medianoche (0:00:00).
Conversiones de tipoSi convierte un valor Date al tipo String, Visual Basic representa la fecha en función del formato corto de fecha especificado por la configuración regional en tiempo de ejecución, y representa la hora de acuerdo con el formato de hora (12 o 24 horas) especificado por la configuración regional en tiempo de ejecución.

Decimal

Contiene valores de 128 bits con signo (16 bytes) que representan números enteros de 96 bits (12 bytes) que se ajustan a una potencia variable de 10. El factor de ajuste especifica el número de dígitos a la derecha del separador decimal; comprendidos entre 0 y 28. Con un ajuste de 0 (sin decimales), el valor más grande posible es +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9228162514264337593543950335E+28). Con 28 posiciones decimales, el valor más grande es +/-7.9228162514264337593543950335 y el valor más pequeño distinto de cero es +/-0.0000000000000000000000000001 (+/-1E-28).
Comentarios

El tipo de datos Decimal proporciona el número máximo de dígitos significativos para un número. Admite hasta 29 dígitos significativos y puede representar valores que superan 7.9228 x 10^28. Es especialmente cómodo para cálculos, por ejemplo, financieros, que requieren un gran número de dígitos pero no puede tolerar errores del redondeo.
El valor predeterminado de Decimal es 0.
Sugerencias de programaciónPrecisión.Decimal no es un tipo de datos de punto flotante. La estructura Decimal contiene un valor entero binario, junto con un bit de signo y un factor de ajuste de entero que especifica qué parte del valor es una fracción decimal. Debido a esto, los números Decimal tienen una representación más precisa en la memoria que los tipos de punto flotante (Single y Double).
Rendimiento. El tipo de datos Decimal es el más lento de todos los tipos numéricos. Debe considerar la importancia de la precisión frente al rendimiento antes de elegir un tipo de datos.
Ampliación. El tipo de datos Decimal se amplía a Single o Double. Esto significa que se puede convertir Decimal a cualquiera de estos tipos sin encontrar un error System.OverflowException.
Ceros finales. Visual Basic no almacena los ceros finales en un literal Decimal. Sin embargo, una variable Decimal conserva cualquier cero final adquirido de forma computacional. Esto se ilustra en el siguiente ejemplo:

CopiarDim d1, d2, d3, d4 As Decimald1 = 2.375Dd2 = 1.625Dd3 = d1 + d2d4 = 4.000DMsgBox("d1 = " & CStr(d1) & ", d2 = " & CStr(d2) _ & ", d3 = " & CStr(d3) & ", d4 = " & CStr(d4))El resultado de MsgBox en el ejemplo anterior es el siguiente:
d1 = 2.375, d2 = 1.625, d3 = 4.000, d4 = 4
Caracteres de tipo. Al agregar el carácter de tipo de literal D a un literal, el tipo de datos se convierte en un tipo de datos Decimal. Si se agrega el carácter de tipo de identificador @ a cualquier identificador, se convierte su tipo de datos al tipo Decimal.
Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Decimal.
IntervaloPodría necesitar utilizar el carácter de tipo D para asignar un valor grande a una variable o constante Decimal. Esto se ilustra en el siguiente ejemplo:
CopiarDim bigDec1 As Decimal = 9223372036854775807 ' No overflow.Dim bigDec2 As Decimal = 9223372036854775808 ' Overflow.Dim bigDec3 As Decimal = 9223372036854775808D ' No overflow.El compilador interpreta un literal como Long a menos que le siga un carácter de tipo de literal. La declaración para bigDec1 no genera un desbordamiento porque su valor está dentro del intervalo para Long. Sin embargo, el valor para bigDec2 es demasiado grande para Long, por lo que el compilador genera un error. El carácter de tipo de literal D resuelve el problema para bigDec3 obligando al compilador a que interprete el literal como Decimal.

Double

Contiene números IEEE de punto flotante de doble precisión de 64 bits (8 bytes) con valores de –1,79769313486231570E+308 a –4,94065645841246544E-324 para números negativos y de 4,94065645841246544E-324 a 1,79769313486231570E+308 para números positivos. Los números de doble precisión almacenan aproximaciones de números reales.
Comentarios

El tipo de datos Double proporciona las magnitudes más grandes y más pequeñas posibles para un número.
El valor predeterminado de Double es 0.
Sugerencias de programaciónPrecisión. Cuando trabaje con números de punto flotante, tenga presente que no siempre tienen una representación precisa en memoria. Esto podría provocar unos resultados inesperados en ciertas operaciones, como comparación de valor y el operador Mod. Para obtener más información, vea Solucionar problemas de tipos de datos.
Ceros finales. Los tipos de datos de punto flotante no tienen ninguna representación interna de caracteres 0 finales. Por ejemplo, no distinguen entre 4,2000 y 4,2. Por consiguiente, los caracteres 0 finales no aparecen al mostrar o imprimir valores de punto flotante.
Caracteres de tipo. Al agregar el carácter de tipo de literal R a un literal, el tipo de datos se convierte en un tipo de datos Double. Si se agrega el carácter de tipo de identificador # a cualquier identificador, se convierte su tipo de datos al tipo Double.
Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Double.

Integer

Contiene enteros de 32 bits con signo (4 bytes) que se sitúan en el intervalo entre -2.147.483.648 y 2.147.483.647.
Comentarios

El tipo de datos Integer proporciona rendimiento óptimo en un procesador de 32 bits. Los demás tipos integrales son más lentos para cargarse y almacenarse de y a la memoria.
El valor predeterminado de Integer es 0.
Sugerencias de programaciónConsideraciones sobre la interoperabilidad. Si interactúa con componentes no escritos para .NET Framework, por ejemplo, objetos de automatización o COM, recuerde que Integer tiene un ancho de datos diferente (16 bits) en otros entornos. Al pasar un argumento de 16 bits a esos componentes, declárelo en el código de Visual Basic como Short en lugar de Integer.
Ampliación. El tipo de datos Integer se amplía a Long, Decimal, Single o Double. Esto significa que se puede convertir Integer en cualquiera de estos tipos sin encontrar un error System.OverflowException.
Caracteres de tipo Al agregar el carácter de tipo de literal I a un literal, el tipo de datos se convierte al tipo de datos Integer. Si se agrega el carácter de tipo de identificador % a cualquier identificador, se convierte su tipo de datos al tipo Integer.
Tipo en Framework. El tipo correspondiente en .NET Framework es la estructura System.Int32.

Long

Contiene enteros de 64 bits (8 bytes) con signo cuyo valor se sitúa entre -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807 (9,2... E+18).
Comentarios

Utilice el tipo de datos Long para incluir números enteros demasiado grandes para ajustarse en el tipo de datos Integer.
El valor predeterminado de Long es 0.
Sugerencias de programaciónConsideraciones sobre la interoperabilidad. Si interactúa con componentes no escritos para .NET Framework, por ejemplo, objetos de automatización o COM, recuerde que Long tiene un ancho de datos diferente (32 bits) en otros entornos. Al pasar un argumento de 32 bits a esos componentes, declárelo en el código de Visual Basic como Integer en lugar de Long.
Además, la automatización no admite enteros de 64 bits en Windows 95, Windows 98, Windows ME o Windows 2000. No se puede pasar ningún argumento Long de Visual Basic a un componente de automatización en estas plataformas.
Ampliación. El tipo de datos Long se amplía a Decimal, Single o Double. Esto significa que se puede convertir Byte en cualquiera de estos tipos sin encontrar un error System.OverflowException.
Caracteres de tipo Al agregar el carácter de tipo de literal L a un literal, el tipo de datos se convierte al tipo de datos Long. Si se agrega el carácter de tipo de identificador & a cualquier identificador, se convierte su tipo de datos al tipo Long.
Tipo en Framework. El tipo correspondiente en .NET Framework es la estructura System.Int64.

Object

Contiene direcciones de 32 bits (4 bytes) que hacen referencia s objetos. Se puede asignar cualquier tipo de referencia (cadena, matriz, clase o interfaz) a una variable Object. Una variable Object también puede hacer referencia a datos de cualquier tipo de valor (numérico, Boolean, Char, Date, estructura o enumeración).
Comentarios

El tipo de datos Object puede señalar a datos de cualquier tipo de datos, incluso cualquier instancia de objeto que su aplicación reconozca. Utilice Object cuando en tiempo de compilación no conoce a qué tipo de datos puede señalar la variable.
El valor predeterminado de Object es Nothing (una referencia nula).
Tipos de datosPuede asignar una variable, constante o expresión de cualquier tipo de datos a una variable Object. Para determinar el tipo de datos a los que hace referencia actualmente una variable Object, puede utilizar el método GetTypeCode de la clase System.Type. Esto se ilustra en el siguiente ejemplo:
CopiarDim myObject As Object' Suppose myObject has now had something assigned to it.Dim datTyp As IntegerdatTyp = Type.GetTypeCode(myObject.GetType())El tipo de datos Object es un tipo de referencia. Sin embargo, Visual Basic trata una variable Object como un tipo de valor cuando hace referencia a datos de un tipo de valor.
AlmacenamientoIndependientemente del tipo de datos al que haga referencia, una variable Object no contiene el valor de datos en sí, sino un puntero al valor. Siempre utiliza cuatro bytes en la memoria del sistema, pero sin incluir el almacenamiento para los datos que representan el valor de la variable. Debido al código que el puntero utiliza para buscar los datos, las variables Object que contienen tipos de valor son de acceso un poco más lento que las variables que tienen un tipo explícito

SByte

Contiene enteros de 8 bits con signo (1 bytes) que se sitúan en el intervalo entre -128 y 127.
Comentarios

Utilice el tipo de datos SByte para incluir valores enteros que no precisen el ancho total de datos de Integer ni la mitad del ancho de datos de Short. En algunos casos, Common Language Runtime puede empaquetar las variables SByte de forma que se ahorre consumo de memoria.
El valor predeterminado de SByte es 0.
Sugerencias de programaciónCompatibilidad con CLS. El tipo de datos SByte no forma parte de Common Language Specification (CLS), por lo que el código compatible con CLS no puede utilizar un componente que lo utiliza.
Ampliación. El tipo de datos SByte se amplía a Short, Integer, Long, Decimal, Single y Double. Esto significa que se puede convertir SByte en cualquiera de estos tipos sin encontrar un error System.OverflowException.
Caracteres de tipo.SByte no tiene ningún carácter de tipo de literal o de tipo de identificador.
Tipo en Framework. El tipo correspondiente en .NET Framework es la estructura System.SByte.

MFC

Microsoft Foundation Classes (MFC)

Microsoft Foundation Classes o MFC es un conjunto de clases que provee un acceso más sencillo a las API de Windows. Fueron introducidas por Microsoft en 1992 y desde ese entonces fueron apareciendo nuevas versiones con las nuevas versiones del entorno de programación Visual C++

LINQ

Language Integrated Query (LINQ)

es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET, inicialmente a los lenguajes Visual Basic .NET y C#. Muchos conceptos que LINQ ha introducido fueron originalmente probados en Cω, un proyecto de investigación de Microsoft.
LINQ define operadores de consulta estándar que permiten a lenguajes habilitados con LINQ filtrar, enumerar y crear proyecciones de varios tipos de colecciones usando la misma sintaxis. Tales colecciones pueden incluir arreglos (vectores), clases enumerables, XML, conjuntos de datos desde bases de datos relacionales y orígenes de datos de terceros. El proyecto LINQ usa características de la versión 2.0 del .NET Framework, nuevos ensamblados relacionados con LINQ, y extensiones para los lenguajes C# y Visual Basic .NET. Microsoft ha distribuido una versión previa del LINQ, consistente de estas bibliotecas y compiladores para C# 3.0 y Visual Basic 9. Otros lenguajes, como F# y Nemerle, han anunciado brindar soporte preliminar.
El objetivo de crear LINQ es permitir que todo el código hecho en Visual Studio (incluidas las llamadas a bases de datos, datasets, XMLs) sean también orientados a objetos. Antes de LINQ, la manipulación de datos externos tenía un concepto más estructurado que orientado a objetos. Además LINQ trata de facilitar y estandarizar el acceso a dichos objetos.
Orígenes de datos
Aunque LINQ soporta inicialmente consultas en colecciones en memoria, bases de datos relacionales y datos XML, es una arquitectura extensible que permite a desarrolladores de orígenes de datos adicionales el uso del LINQ, implementando los operadores de consulta estándar como métodos extensores para sus orígenes de datos, o mediante la implementación de la interfaz IQueryable que permite convertir un árbol de expresión en tiempo de ejecución para transformarlo en algún lenguaje de consultas. Los operadores de consulta estándar son usados para objetos también y permiten consultar objetos en la memoria con la misma sintaxis LINQ.

martes, 13 de abril de 2010

LENGUAJE SQL

SQL es el lenguaje de consulta universal para bases de datos.Los mandatos de SQL se dividen en tres grandes grupos diferenciados, los cuales serán tratados por separado y que unicamente se presentan aqui a modo introductorio.
DDL (Data Definition Language), es el encargado de la definición de Bases de Datos, tablas, vistas e índices entre otros.

Son comandos propios de este lenguaje:

CREATE TABLE

CREATE INDEX

CREATE VIEW

CREATE SYNONYMDML


(Data Manipulation Language),

cuya misión es la manipulación de datos. A través de él podemos seleccionar, insertar, eliminar y actualizar datos. Es la parte que más frecuentemente utilizaremos, y que con ella se construyen las consultas.

Son comandos propios de este lenguaje:

SELECT

UPDATE

INSERT

INSERT INTO

DELETE FROM

DCL (Data Control Laguage),

encargado de la seguridad de la base de datos, en todo lo referente al control de accesos y privilegios entre los usuarios.

Son comandos propios de este lenguaje:

GRANT

REVOKE

Cláusulas

Las cláusulas son condiciones de modificación utilizadas paradefinir los datos que desea seleccionar o manipular.
Comando Descripción

Cláusula FROM

La cláusula FROM lista las tablas o ficheros que contienen los datos a recuperar por la consulta. El formato de esta cláusula es:
FROM nombretabla [alias_tabla] ...
nombretabla puede ser una o mas nombres de tabla en el directorio de trabajo si se omite este, o en un directorio distinto si se especifica.
alias_tabla es un nombre que se usa para referirse a la tabla en el resto de la sentencia SELECT para abreviar el nombre original y hacerlo más manejable, en el caso de existir más de una tabla en la consulta y, también para poder realizar consultas uniendo varias veces la misma tabla. Por ejemplo,
SELECT A.NOMBRE, A.APELLIDOS FROM MATRICUL M, ALUMNOS A WHERE M.MATRICULA = A.MATRICULA AND M.GRUPO = ‘1A’ AND ANNO = 1995
es mucho más práctico y sencillo que:
SELECT ALUMNOS.NOMBRE, ALUMNOS.APELLIDOS FROM MATRICUL, ALUMNOS WHERE MATRICUL.MATRICULA = ALUMNO.MATRICULA AND MATRICUL.GRUPO = ‘1A’ AND ANNO = 1995
Las dos sentencias son idénticas y nos devolverían los nombres y apellidos del alumnado matriculado en el año 1995 y que figuran en el grupo 1A. El nombre de tablas junto al nombre de campo es obligatorio cuando existan campos con nombre idéntico en las tablas que formen parte de la sentencia. Así en el ejemplo anterior NOMBRE y APELLIDOS no lo necesitarían (aunque este puesto) pero MATRICULA si lo necesita porque en las dos tablas existe un campo con ese nombre.
Si no se pudiera utilizar alias, no se podría unir una tabla consigo misma y la siguiente consulta no se podría llevar a cabo:
SELECT A.NOMBRE, A.APELLIDOS, H.NOMBRE FROM ALUMNOS A, ALUMNOS H WHERE A.PADRE = H.PADRE
que nos devolverá el nombre de aquellos alumnos/as que tienen el mismo padre, es decir, son hermanos.

Cláusula WHERE

La cláusula WHERE dice a SQL que incluya solo ciertas filas o registros de datos en los resultados de la consulta, es decir, que tienen que cumplir los registros que se desean ver. La cláusula WHERE contiene condiciones en la forma:
WHERE expresión1 operador expresion2
expresión1 y expresion2 pueden ser nombres de campos, valores constantes o expresiones.
operador es un operador relacional que une dos expresiones. Más tarde se verán los distintos operadores que se puede utilizar.
Por ejemplo, la siguiente sentencia nos muestra el nº de alumnos que han nacido con posterioridad a 1985.
SELECT COUNT(*) FROM ALUMNOS WHERE YEAR(FECHA_NACIMIENTO) > 1985

Cláusula GROUP BY

La cláusula GROUP BY
especifica una consulta sumaria. En vez de producir un fila de resultados por cada fila de datos de la base de datos, una consulta sumaria agrupa todas las filas similares y luego produce una fila sumaria de resultados para cada grupo.
Seguido de la cláusula GROUP BY se especifican los nombres de uno o más campos cuyos resultados se desean agrupados. Tiene la forma:
GROUP BY expresión_columna
expresión_columna debe coincidir con la expresión de columna utilizada en la cláusula SELECT. Puede ser uno o más nombres de campo de una tabla, separados por coma o una o más expresiones separadas por comas. El siguiente ejemplo nos dice cuantos alumnos están matriculados en cada grupo en el año 1995:
SELECT GRUPO, COUNT(*) FROM MATRICUL WHERE ANNO = 1995 GROUP BY GRUPO
Esta sentencia nos devolverá una fila por cada grupo de alumnos. Cada una de ellas contendrá el grupo y el nº de alumnos en él.

Cláusula HAVING

La cláusula HAVING dice a SQL que incluya solo ciertos grupos producidos por la cláusula GROUP BY en los resultados de la consulta. Al igual que la cláusula WHERE, utiliza una condición de búsqueda para especificar los grupos deseados. En otras palabras, especifica la condición que deben de cumplir los grupos. Sólo es válida si previamente se ha especificado la cláusula GROUP BY.
La cláusula HAVING
tiene la forma:
HAVING expresión1 operador expresión2
expresión1 y expresión2 pueden ser nombres de campos, valores constantes o expresiones y estas no deben coincidir con una expresión de columna en la cláusula SELECT.
operador es un operador relacional que une las dos expresiones. Más tarde se verán los distintos operadores que se puede utilizar.
La sentencia siguiente nos mostrará el número de alumnos en cada grupo de 1995 cuyo numero de integrantes supera los 30:
SELECT GRUPO, COUNT(*) FROM MATRICUL WHERE ANNO = 1995 GROUP BY GRUPO HAVING COUNT(*) > 30
Operador UNION
El operador UNION combina el resultado de dos sentencias SELECT en un único resultado. Este resultado se compone de todos los registros devueltos en ambas sentencias. Por defecto, los registros repetidos se omiten. Para no quitarlos se empleará la palabra ALL. Tiene la forma:
SELECT sentencia UNION [ALL] SELECT sentencia
Cuando se utilice el operador UNION, la lista de selección para cada sentencia SELECT debe tener el mismo número de expresiones de columnas con el mismo tipo de datos y en el mismo orden. Por ejemplo,
SELECT APELLIDOS, NOMBRE FROM ALUMNOS UNION SELECT APELLIDOS, NOMBRE FROM PROFESOR UNION SELECT APELLIDOS, NOMBRE FROM PERSONAL
Este ejemplo tiene el mismo nº de columnas y cada columna en orden con el mismo tipo de datos. Nos devolverá una lista única de alumnos, profesores y personal no docente.

Cláusula ORDER BY

La cláusula ORDER BY ordena los resultados de la consulta en base a los datos de una o más columnas. Si se omite, los resultados saldrán ordenados por el primer campo que sea clave en el índice que se haya utilizado.
Por tanto, indica como deben clasificarse los registros que se seleccionen. Tiene la forma:
ORDER BY {expresión_orden [DESC ASC], ... ]
expresión_orden puede ser el nombre de un campo, expresión o el número de posición que ocupa la expresión de columna en la cláusula SELECT. Por defecto se ordenan ASCendentemente (de menor a mayor). Si se deseará de mayor a menor se empleará DESC (DESCendente). Por ejemplo, para mostrar los alumnos ordenados de mayor edad a menor, se utilizaría:
SELECT NOMBRE, APELLIDOS FROM ALUMNOS ORDER BY FECHA_NACIMIENTO DESC
Para obtener un listado de alumnos por su lugar de nacimiento ordenado por provincias y dentro de cada provincia ordenados por localidades se utilizaría:
SELECT NOMBRE+’ ‘+APELLIDOS, LOCALIDAD_NACIMIENTO, PROVINCIA_NACIMIENTO FROM ALUMNOS ORDER BY PROVINCIA, LOCALIDAD
o lo mismo de otra forma
SELECT NOMBRE+’ ‘+APELLIDOS, LOCALIDAD_NACIMIENTO, PROVINCIA_NACIMIENTO FROM ALUMNOS ORDER BY 3, 2

Operadores Lógicos

Operador Uso
AND Es
el “y” lógico. Evalúa dos condiciones y devuelve unvalor de verdad sólo si ambas son ciertas.
OR Es
el “o” lógico. Evalúa dos condiciones y devuelve unvalor de verdad si alguna de las dos es cierta.
NOT Negaciónlógica.
Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador Uso
<> Mayor
que
<> Distinto
de
<= Menor ó Igual que >= Mayor
ó Igual que
BETWEEN Utilizado
para especificar un intervalo de valores.
LIKE Utilizado
en la comparación de un modelo
In Utilizado
para especificar registros de una base de datos

Funciones de Agregado

Lasfunciones de agregado se usan dentro de una cláusula SELECTen grupos de registros para devolver un único valor que se aplica a ungrupo de registros.
Comando Descripción
AVG Utilizada
para calcular el promedio de los valores de un campo determinado
COUNT Utilizada
para devolver el número de registros de la selección
SUM Utilizada
para devolver la suma de todos los valores de un campo determinado
MAX Utilizada
para devolver el valor más alto de un campo especificado
MIN Utilizada
para devolver el valor más bajo de un campo especificado.

PROGRAMACIÓN ORIENTADA DE OBJETOS

Conceptos fundamentales



La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos.


Abstracción:
Denota las características esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.

Encapsulamiento:
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la
cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
se reduce a un agregado o rompecabezas de objetos.

Polimorfismo:
comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la
sobrecarga de operadores de C++.



Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Herencia: (por ejemplo, herencia de la clase D a la clase C) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.

Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto:atributos, identidad, relaciones y métodos.

Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto..