martes, 24 de noviembre de 2009

YO NO SE MAÑANA!!!!

Leer Mas...

jueves, 2 de julio de 2009

Temas de Base de Datos

Leer Mas...

Tipos de Datos Especiales

Tipos de Datos Especiales

Estos tipos de datos se utilizan para almacenar data binaria como imágenes, audio, cadenas de bytes, etc. Incluye los tipos raw, long raw, blob, clob, ncob, bfile. También tenemos un tipo de dato que pemrite asignarle un identificador único a cada fila de la base de datos, lso tipos de base de datos los tipos rowid, urowid.

raw(n): Almacena datos binarios de longitud fija. Los datos de tipo raw no implican conversiones de caracter. La longitud máxima de una variable de este tipo es de 32767 bytes en PL/SQL. Sin embargo en un campo de una tabal de raw sólo admite 2000 bytes en Oracle 8i. Se encuentra en desuso, se sustituye por los tipos LOB.

long raw: Almacenan cadenas binarias de ancho variable. Análogo al tipo de dato long, pero como el anterior no implican conversiones de caracter. Almacena ahsta 2Gb. Se encuentra en desuso, se le sustituye por los tipos LOB.
lob (blob, clob, nclob, bfile): Permite almacenar y manipular bloques grandes de datos no estructurados (tales como texto, imágenes, videos, sonidos, etc) en formato de binario o caracter. Una tabla puede contener varias columnas de tipo LOB. Soportan acceso aletorio. Las tablas con columnas de tipo LOB no pueden ser replicadas.

blob (binary large object) : El tamaño máximo es de (4Gb - 1) * tamaño del data block.
clob (caracter large object) : El tamaño máximo es de (4Gb - 1) * tamaño del data block.
nclob (caracter large object conteniendo caracteres Unicode) : El tamaño máximo es de (4Gb-1)* tamaño del data block.
bfile: Puntero a un archivo binario grande almaceado fuera de la base de datos. El tamaño máximo es de 4Gb.
rowid: Datos binarios de ancho fijo. Este tipo de datos sirve para almacenar identificadores únicos de registros. Este identificador es con el que trabaja internamente la base de datos Oracle para identificar dichos registros.
El rowid de una fila es un identificador único para una fila dentro de una base de datos. No hay 2 filas con el mismo rowid. Este tipo de dato sirve para guardar punteros a filas concretas.
Rowid físico almacena la dirección de la fila en las tablas, las tablas en clúster, los índices, excepto en los índices organizados (IOT).
Rowid lógico almacena la dirección de fila en tablas de índice organizado(IOT).

Ejemplo:

Valor:"AAAIugAAJAAC4AhAAI"

El formato el el siguiente: Para "OOOOOOFFFBBBBBBRRR"
OOOOOO: segmento de la base de datos(AAAIug en el ejemplo). Todos los objetos que estén en el mismo esquema y en el mismo segmento tendrán el mismo valor.
FFF: el número de fichero del tablespace relativo que contiene la fila (fichero AAJ en el ejemplo).
BBBBBB: el bloque de datos que contiene la fila (bloque AAC4Ah en el ejemplo). El número de bloque es relativo a su fichero de datos, no al tablespace. Por lo tanto, 2 filas con números de bloque iguales podrían residir en diferentes datafiles del mismo space.
RRR:el número de fila en el bloque (fila AAI en el ejemplo).

urowid(n): Cadena de base 64 que representa la dirección única de una fila en una tabla Indexada. El valor máximo para n es de 4000 bytes, siendo éste el valor predeterminado. Admite rowid a tablas que no sean de Oracle, tablas externas. Admite tanto rowid lógicos como físicos.

Leer Mas...

Tipos de Datos de Fecha y Hora e Intervalos

Tipos de Datos de Fecha y Hora e Intervalos

Los tipos de datos fecha y hora son date, timestamp, timestamp whit time zone, timestamp whit local time zone. Los tipos de datos intervalo son y interval year to monthinterval day to second.

date: Guarda información sobre la fecha, hora, día, mes, año, hora, minuto y segundo. Las variables de este tipo no son capaces de almacenar milisegundos. Su tamaño es de 7 bytes.
Almacena un valor de fecha y hora en el rango del 1 de enro de 4712 a.C al 31 de diciembre de 9999 d.C.
Para un tipo de dato date, Oracle almacena internamente los siguientes datos: f Siglo f Año f Mes f Día f Hora f Minuto f Segundo. El formato por defectos de las fechas es 'DD-MON-YYYY'. Esto es de 2 dígitos para el día, las 3 primeras siglas del mes(depende del idioma instalado), 4 dígitos del año.
Ejemplo:
'1-JAN-2005' o '2-DEC-1997'. Ese formato puede cambiar en cualquier momento.
Internamente una fecha se almacena como el número de días desde cierto punto de inicio (por ejemplo el año 0). Esto permite que las fechas pueden ser tratadas en operaciones aritméticas normales:
'1-JAN-2005' + 8 ='9-JAN-2005' '19-FEB-2000' - 15 = '4-FEB-2000'


timestamp[p]: Con las características del tipo date pero además permite almacenar fracciones de segundo. El parámetro p es la precisión que debe ser un número entre 0 y 9.el valor por defecto es 6). Incluye año, mes, día, hora, minuto y segundos.
Ejemplo:
timestamp(5)


timestamp[p] whit time zone: Almacena datos de tipo hora incluyendo la zona horaria(explícita), fraccionando los segundos. No soportado por Oracle 8i. El parámetro p es la precisión que debe ser un número entre 0 y 9.el valor por defecto es 6). Incluye año, mes, día, hora, minuto y segundos, con desplazamiento de zona horaria.
Ejemplo:
timestamp(6) whit time zone

timestamp[p] whit local time zone: Almacena datos de tipo hora, el cual debe ser un número entre 0 y 9(el valor por defecto es 6), incluyendo la zona horaria local (relativa). No soportado por Oracle 8i. Incluye año, mes, día, hora, minuto y segundos, con una zona horaria expresada como la zona horaria actual.
Ejemplo:
timestamp(8) whit local time zone
Cuando usa SELECT para mostrar los datos de este tipo, el valor de la hora será ajustado a la zona horaria de la sesión actual.

interval year(precision_año) to month: No soportado por Oracle 8i. Período de tiempo almacenado en años y meses con el número de dígitos para la parte del año especificado por precision_año.
Ejemplo:
interval year(4) to month.

interval day(p) to second(d): No soportado por Oracle 8i. El parámetro p debe ser un número entre 0 y 9(el valor por defecto es 2). El valor de d debe ser un número entre 0 y 9 (el valor por defecto es 6). Período de tiempo almacenado en días, horas, minutos y segundos.
Ejemplo:
interval day(2) to second(6).


Leer Mas...

Tipos de Datos Numéricos

Tipos de Datos Numéricos

Los tipos de datos numéricos almacenan número de punto fijo y punto flotante positivos y negativos, los vlaores cero(0) e infinito, y valores que son el resultado no definido de una operación,tal como "not a number" o NAN.

Los datos de tipo numérico son number, binary_float, binary_double.

number (p,s): Puede contener un valor numérico entero o de punto flotante, que pueden ir desde 1.0 x 10^-130 hasta 9.9....(38 nueves)...9 x 10^125. Donde p es la precisión y s es la escala. La precisión es el número de dígitos del valor, y la escala es la cantidad de dígitos a la derecha del punto decimal. Oracle garantiza los datos con precisiones de 1 a 38 y la escala de 84 a 127.
Para declarar un tipo de dato number en un CREATE o UPDATE es suficiente con:
nombre_columna number;
Opcionalmente se le puede indicar la precisión (número total de dígitos) y la escala (número de dígitos a la derecha de la coma, decimales, los cogerá de la precisión indicada):

nombre_columna number(precision, escala)
Si no se indica la precisión se tomará en función del número a guardar, si no se indica la escala se tomará escala cero.

Ejemplo:
--number(precison, escala):
saldo number(16,2)
/*Indica que puede almacenar un valor numérico de 16 posiciones, 2 de ellas decimales. Es decir 14 enteros y 2 decimales.*/

binary_float: Número de punto flotante de 32-bit.

binary_double: Número de punto flotante de 64-bit.

Leer Mas...