martes 16 de diciembre de 2008

Campos Numericos en MYSQL

CAMPOS NUMERICOS ENTEROS

Después de la fase de diseño de una base de datos, y una vez se ha realizado el paso a tablas del mismo, en necesario crear las tablas correspondientes dentro de la base de datos. Para cada campo de cada una de las tablas, es necesario determinar el tipo de datos que contiene, para de esa forma ajustar el diseño de la base de datos, y conseguir un almacenamiento óptimo con la menor utilización de espacio. El presente artículo describe cada uno de los tipos de datos que puede tener un campo en Mysql, para la versión 4.xx.xx.
Los tipos de datos que puede haber en un campo, se pueden agrupar en tres grandes grupos:
Tipos numéricos
Tipos de Fecha
Tipos de Cadena
1Tipos numéricos:
Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que están en coma flotante (con decimales) y los que नो.
TinyInt: es un número entero con o sin signo। Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255
Bit ó Bool: un número entero que puede ser 0 ó 1
SmallInt: número entero con o sin signo। Con signo el rango de valores va desde -32768 a 32767। Sin signo, el rango de valores es de 0 a 65535.
MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215.
Integer, Int: número entero con o sin signo। Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295
BigInt: número entero con o sin signo। Con signo el rango de valores va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615.
Float: número pequeño en coma flotante de precisión simple। Los valores válidos van desde -3।402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. xReal,
Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308
Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena como una cadena























































Tipo de Campo

Tamaño de Almacenamiento

TINYINT

1 byte

SMALLINT

2 bytes

MEDIUMINT

3 bytes

INT

4 bytes

INTEGER

4 bytes

BIGINT

8 bytes

FLOAT(X)

4 ú 8 bytes

FLOAT

4 bytes

DOUBLE

8 bytes

DOUBLE PRECISION

8 bytes

REAL

8 bytes

DECIMAL(M,D

M+2 bytes sí D > 0, M+1 bytes sí D = 0

NUMERIC(M,D)

M+2 bytes if D > 0, M+1 bytes if D = 0


2 Tipos fecha:
A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no। Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31. Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-dia DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo:































Tamaño

Formato

14

AñoMesDiaHoraMinutoSegundo aaaammddhhmmss

12

AñoMesDiaHoraMinutoSegundo aammddhhmmss

8

ñoMesDia aaaammdd

6

AñoMesDia aammdd

4

AñoMes aamm

2

Año aa


Time: almacena una hora। El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.



























Tipo de Campo

Tamaño de Almacenamiento

DATE

3 bytes

DATETIME

8 bytes

TIMESTAMP

4 bytes

TIME

3 bytes

YEAR

1 byte


3 Tipos de cadena:
Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres.
VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres.
Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object)
La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta.
Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros.
TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres.
Blob y Text: un texto con un máximo de 65535 caracteres.
MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres.
LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación los paquetes pueden tener un máximo de 16 Mb.
Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos
Set: un campo que puede contener ninguno, uno ó varios valores de una lista। La lista puede tener un máximo de 64 valores.







































Tipo de campo

Tamaño de Almacenamiento

CHAR(n)

n bytes

VARCHAR(n)

n +1 bytes

TINYBLOB, TINYTEXT

Longitud+1 bytes

BLOB, TEXT

Longitud +2 bytes

MEDIUMBLOB, MEDIUMTEXT

Longitud +3 bytes

LONGBLOB, LONGTEXT

Longitud +4 bytes

ENUM('value1','value2',...)

1 ó dos bytes dependiendo del número de valores

SET('value1','value2',...)

1, 2, 3, 4 ó 8 bytes, dependiendo del número de valores


Diferencia de almacenamiento entre los tipos Char y VarChar






































Valor

CHAR(4)

Almace

namiento

VARCHAR(4)

Almace

namiento

''

''

4 bytes

"

1 byte

'ab'

'ab '

4 bytes

'ab'

3 bytes

'abcd'

'abcd'

4 bytes

'abcd'

'abcdefgh'

'abcd'

4 bytes

'abcd'

5 bytes

lunes 10 de noviembre de 2008

Secure Socket Layer (SSL)

Secure Socket Layer (SSL)

El protocolo SSL es un sistema diseñado y propuesto por Netscape Communications Corporation. Se encuentra en la pila OSI entre los niveles de TCP/IP y de los protocolos HTTP, FTP, SMTP, etc. Proporciona sus servicios de seguridad cifrando los datos intercambiados entre el servidor y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA, y cifrando la clave de sesión de RC4 o IDEA mediante un algoritmo de cifrado de clave pública, típicamente el RSA. La clave de sesión es la que se utiliza para cifrar los datos que vienen del y van al servidor seguro. Se genera una clave de sesión distinta para cada transacción, lo cual permite que aunque sea reventada por un atacante en una transacción dada, no sirva para descifrar futuras transacciones. MD5 se usa como algoritmo de hash.

Proporciona cifrado de datos, autenticación de servidores, integridad de mensajes y, opcionalmente, autenticación de cliente para conexiones TCP/IP.

Cuando el cliente pide al servidor seguro una comunicación segura, el servidor abre un puerto cifrado, gestionado por un software llamado Protocolo SSL Record, situado encima de TCP. Será el software de alto nivel, Protocolo SSL Handshake, quien utilice el Protocolo SSL Record y el puerto abierto para comunicarse de forma segura con el cliente.

El Protocolo SSL Handshake

Durante el protocolo SSL Handshake, el cliente y el servidor intercambian una serie de mensajes para negociar las mejoras de seguridad. Este protocolo sigue las siguientes seis fases (de manera muy resumida):

La fase Hola, usada para ponerse de acuerdo sobre el conjunto de algoritmos para mantener la intimidad y para la autenticación.

La fase de intercambio de claves, en la que intercambia información sobre las claves, de modo que al final ambas partes comparten una clave maestra.

La fase de producción de clave de sesión, que será la usada para cifrar los datos intercambiados.

La fase de verificación del servidor, presente sólo cuando se usa RSA como algoritmo de intercambio de claves, y sirve para que el cliente autentique al servidor.

La fase de autenticación del cliente, en la que el servidor solicita al cliente un certificado X.509 (si es necesaria la autenticación de cliente).

Por último, la fase de fin, que indica que ya se puede comenzar la sesión segura.

El Protocolo SSL Record

El Protocolo SSL Record especifica la forma de encapsular los datos transmitidos y recibidos. La porción de datos del protocolo tiene tres componentes:

MAC-DATA, el código de autenticación del mensaje.

ACTUAL-DATA, los datos de aplicación a transmitir.

PADDING-DATA, los datos requeridos para rellenar el mensaje cuando se usa cifrado en bloque.

jueves 30 de octubre de 2008

Todo un Galant


Todo Un Galant

martes 28 de octubre de 2008

Videos de CMMI

DOS INTERESANTES VIDEOS DE CMMI

INNOX se certifica en CMMI y celebramos todo el equipo




DIAGRAMA MODELO CASO DE USOS DEL SISTEMA

CMMI

CMMI

El CMMI es un modelo de referencia para la calidad en los procesos de desarrollo y mantenimiento de software, que incrementa la satisfacción de las necesidades de los usuarios internos del sistema (trabajadores), permitiendo la elaboración de productos de calidad, dentro del tiempo y costos previstos.
El objetivo:

CMMI tiene como objetivo el mejoramiento continuo de la calidad de los procesos y productos de una organización y provee una guía para este mejoramiento continuo estableciendo niveles de madurez: incompleto, ejecutado, gestionado, definitivo, cuantitativamente gestionado, optimizado.

CMMI es mejorar la usabilidad de modelos de madurez integrando varios modelos diferentes en un solo marco.

Niveles de capacidad de los procesos (representación continua)

Los 6 niveles definidos en CMMI para medir la capacidad de los procesos son:

•Incompleto: El proceso no se realiza, o no se consiguen sus objetivos.
•Ejecutado: El proceso se ejecuta y se logra su objetivo.
•Gestionado: Además de ejecutarse, el proceso se planifica, se revisa y se evalúa para comprobar que cumple los requisitos.
•Definido: Además de ser un proceso gestionado que se ajusta a la política de procesos que existe en la organización, alineada con las directivas de la empresa.
•Cuantitativamente gestionado: Además de ser un proceso definido se controla utilizando técnicas cuantitativas.
•Optimizando: Además de ser un proceso cuantitativamente gestionado, de forma sistemática se revisa y modifica o cambia para adaptarlo a los objetivos del negocio. Mejora continua.


lunes 27 de octubre de 2008

DHTML o HTML

Que es DHTML o HTML


A medida que vamos avanzando en la programación de páginas web nos vamos fijando nuevos objetivos para crear cada día webs más excitantes. Siguiendo este camino, llega un momento que el lenguaje HTML se nos queda corto y tenemos que servirnos de alguna tecnología superior, que nos permita realizar esos desarrollos más complejos y dinámicos.

Imaginaros por un momento que tuvieseis entre manos un gran proyecto, un proyecto que supusiese la creación masiva de páginas, como puede ser un periódico, donde cada día hay que cambiar los contenidos por completo, o una enciclopedia online, con miles de páginas y referencias, por poner dos ejemplos. Si utilizásemos únicamente HTML necesitaríamos un regimiento de maquetadores web para poder llevar a cabo el trabajo de crear tantas y tantas páginas y su actualización.

Así mismo, si quisiésemos desarrollar una aplicación en la web donde el usuario tuviese que interaccionar con la página, o una aplicación que ofreciese algún servicio, como un buscador o un gestor de correo a través de la web, también nos veríamos muy limitados con el HTML.

Además, también estamos muy limitados con el HTML a la hora de crear efectos en las páginas, animaciones que llamen un poco la atención del usuario y que permitan hacer que las páginas web sean más divertidas.

DHTML es lo que hace posible crear una páginas web que salven todas las limitaciones del


HTML como las comentadas con anterioridad. Como vemos, el DHTML es muy amplio y engloba muchas técnicas que se pueden realizas con multitud de lenguajes de programación y programas distintos .

Vamos a hacer una clasificación de DHTML para acotar un poco sus radios de acción y para que el concepto se acote en áreas de la programación web que podemos ya conocer.

DHTML de cliente

Por un lado tenemos el DHTML que se desarrolla en el ámbito de una página web, cuando la página se está viendo en la pantalla de los usuarios , es decir, en los navegadores. En estos casos, para realizar cualquier tipo de efecto o interactividad en la página tenemos como recurso al navegador, por eso se llama de cliente.

La programación en el cliente sirve para muchas cosas, ejemplos de ello son efectos diversos en las páginas, sonidos, videos, menús interactivos, control y respuesta a las acciones de un usuario en la página, control sobre los formularios, etc. Para hacer muchas de estas cosas podemos utilizar diversos lenguajes de programación como Javascript y VBScript, o incluso podemos meter aquí programas como Flash.

No obstante está más cercana a la idea del DHTML el programar scripts dentro de la página con los lenguajes del lado del cliente. Javascript para todos los navegadores y VBScript para Internet Explorer. Estos lenguajes trabajan, como se ha dicho, integrados con el navegador y dependen del modelo y de la versión de éste.

Estos lenguajes no permiten el desarrollo de cualquier proyecto en Internet, ya que al ser ejecutados en el navegador del cliente, no tienen acceso a todos los recursos del sistema del usuario, para evitar agujeros de seguridad, ni a los recursos del servidor donde están alojadas las páginas. Esta limitación, añadida a la ya comentada de su dependencia del navegador, los hacen insuficientes para desarrollos avanzados, siendo más bien un complemento de programación que el núcleo de verdaderas aplicaciones en el web.

DHTML de servidor

Por otro lado, existen una serie de lenguajes que se basan en el servidor para ejecutar sus scripts, al igual que la programación del cliente se basa en el navegador. Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los scripts y genera una página resultado, que envía al cliente. La página resultado contiene únicamente código HTML , por lo que puede ser interpretada por cualquier navegador sin lugar a errores, independientemente de su versión.

Esta independencia del navegador ya es una ventaja significativa con respecto a la programación en el cliente, pero lo es aun más que contamos con todos los recursos del servidor donde están alojadas las páginas. Estos recursos, como podrían ser gestores de bases de datos, servidores de correo o el propio sistema de archivos del servidor, son los que nos van ha permitir construir todo tipo de aplicaciones.

Como ventajas adicionales se puede destacar que el código de las páginas con los scripts nunca llega al cliente, recordamos que al navegador sólo le llega HTML, y esto implica que nuestros visitantes nunca van a poder acceder al corazón de las aplicaciones que hayamos desarrollado, es decir, a los scripts del lado del servidor.
Lenguajes del lado del servidor son ASP, desarrollado por Microsoft, PHP de código libre, JSP para programar en Java, o alguna otra interfaz como CGI, que se desarrolla en lenguajes como C o Perl.

Ciudad Digital

CIUDADES DIGITALES





Descripción general y objetivos

El programa Ciudades Digitales está concebido para ayudar a las entidades locales a implantar y difundir la sociedad de la información mediante la aplicación de servicios avanzados de telecomunicaciones y de nuevas tecnologías tanto en el marco social como en el económico.

Los destinatarios finales de estas ayudas son los propios ciudadanos que ven su entorno modificado ya sea en el ámbito doméstico, en el laboral o en las relaciones con las administraciones públicas.

Las empresas e instituciones también resultan beneficiadas ya que estos programas favorecen un cambio en la estructura y en la gestión que permite una mejor adecuación al contexto actual, de forma más competitiva e innovadora.

Estas ayudas englobadas en el marco de Ciudades Digitales, se plasman en una serie de actuaciones que cada municipio propone según las necesidades que detecta. Sin embargo, tras este programa de Ciudades Digitales subyace una idea muy clara por parte del Ministerio de Industria, Turismo y Comercio, la de trasladar el conocimiento adquirido en la realización de dichas actuaciones de unos municipios a otros permitiendo así un desarrollo exponencial de la sociedad de la información en España.




Articulación y presupuestos

Este Programa se instrumenta mediante un convenio con cada una de las Comunidades y Ciudades Autónomas a las que se les transfieren fondos, con objeto de llevar a cabo el proyecto, en general, de ciudad digital. En nuestra sección convenios se encuentran recogidos todos ellos.

Para la realización de las actuaciones englobadas en el programa de Ciudades Digitales se dispone de un presupuesto total de unos 120 millones de euros de los cuales, el Ministerio de Industria, Turismo y Comercio aporta un total de 51.432.000 euros. El resto del presupuesto proviene de la aportación de las Administraciones de las Comunidades Autónomas y de las Corporaciones Locales (Ayuntamientos, Diputaciones, Consejos Comarcales, etc.) junto con la aportación de otras entidades como operadores de telecomunicaciones, cajas de ahorro, etc. supone un total de 68.877.225 euros.

En nuestra sección presupuestos se encuentra esta información desglosada por comunidades y municipios así como la inversión del Mityc detallada según la tipología de las actuaciones.

Es importante señalar que las aportaciones económicas del Ministerio de Industria, Turismo y Comercio a los proyectos realizados en zonas Objetivo 1 tienen un retorno del 50% de fondos FEDER dentro del Programa Operativo de la Sociedad de la Información 2000-2006.

Duración y municipios implicados

Esta firma de convenios con carácter plurianual, comenzó en el año 2003 y ha conseguido que más de 40 municipios estén llevando a cabo acciones de forma integrada, acordes a una estrategia previamente diseñada. En la imagen adyacente podrá ver qué municipios han sido beneficiarios de este programa.

Tipos de actuación

La siguiente figura muestra cuáles son las principales acciones que los municipios llevan a cabo. Éstas se encuentran englobadas en diferentes líneas de actuación orientadas a desarrollar los elementos que conforman la ciudad digital.