Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Jerarquia de Datos
Jerarquia de Datos
Una base de datos jerárquica es un tipo de sistema de gestión de bases de datos que, como su nombre
indica, almacena la información en una estructura jerárquica que enlaza los registros en forma de
estructura de árbol (similar a un árbol visto al revés), en donde un nodo padre de información puede
tener varios nodos hijo, y así sucesivamente.
Esta relación jerárquica no es estrictamente obligatoria, de manera que pueden establecerse relaciones
entre nodos hermanos, y en este caso, la estructura en forma de árbol se convierte en una estructura en
forma de grafo dirigido (esta variante se denomina Bases de datos de red).
C++ tiene los siguientes tipos fundamentales:
Booleanos: bool
Vacío: void
El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por omisión los
enteros contienen signo), con lo que se consigue un rango mayor de números naturales.
Tamaños asociados
Según la máquina y el compilador que se utilice los tipos primitivos pueden ocupar un determinado
tamaño en memoria. La siguiente lista ilustra el número de bits que ocupan los distintos tipos primitivos
en la arquitectura x86.
char 8
short 16
int 32
float 32
double 64
Otras arquitecturas pueden requerir distintos tamaños de tipos de datos primitivos. C++ no dice nada
acerca de cuál es el número de bits en un byte, ni del tamaño de estos tipos; más bien, ofrece solamente
las siguientes "garantías de tipos":
De acuerdo al estándar C99, un tipo char debe ocupar exactamente un byte compuesto de un mínimo de
8 bits independientemente de la arquitectura de la máquina.
Un tipo long tiene al menos el doble tamaño en bytes que un tipo short.
Un tipo int tiene un tamaño entre el de short y el de long, ambos inclusive, preferentemente el tamaño
de un apuntador de memoria de la máquina. Su valor máximo es 2147488281, usando 32 bits.
Wchar_t
Para la versión del estándar que se publicó en 1998, se decidió añadir el tipo de dato wchar_t, que
permite el uso de caracteres UNICODE, a diferencia del tradicional char, que contempla simplemente al
código de caracteres ASCII extendido. A su vez, se ha definido para la mayoría de las funciones y clases,
tanto de C como de C++, una versión para trabajar con wchar_t, donde usualmente se prefija el carácter
w al nombre de la función (en ocasiones el carácter es un infijo). Por ejemplo:
strcpy - wstrcpy
std::string - std::wstring
std::cout - std::wcout
La palabra reservada void define en C++ el concepto de no existencia o no atribución de un tipo en una
variable o declaración. Es decir, una función declarada como void no devolverá ningún valor. Esta palabra
reservada también puede usarse para indicar que una función no recibe parámetros, como en la
siguiente declaración:
Además se utiliza para determinar que una función no retorna un valor, como en:
Cabe destacar que void no es un tipo. Una función como la declarada anteriormente no puede retornar
un valor por medio de return: la palabra clave va sola. No es posible una declaración del tipo:
En este sentido, void se comporta de forma ligeramente diferente a como lo hace en C, especialmente en
cuanto a su significado en declaraciones y prototipos de funciones.
Sin embargo, la forma especial void * indica que el tipo de datos es un puntero. Por ejemplo:
void *memoria;
Indica que memoria es un puntero a alguna parte, donde se guarda información de algún tipo. El
programador es responsable de definir estos "algún", eliminando toda ambigüedad. Una ventaja de la
declaración "void *" es que puede representar a la vez varios tipos de datos, dependiendo de la
operación de cast escogida. La memoria que hemos apuntado en alguna parte, en el ejemplo anterior,
bien podría almacenar un entero, un flotante, una cadena de texto o un programa, o combinaciones de
estos. Es responsabilidad del programador recordar qué tipo de datos hay y garantizar el acceso
adecuado.
La palabra "NULL"
Además de los valores que pueden tomar los tipos anteriormente mencionados, existe un valor llamado
NULL, sea el caso numérico para los enteros, carácter para el tipo char, cadena de texto para el tipo
string, etc. El valor NULL, expresa, por lo regular, la representación de una Macro, asignada al valor "0".
Tenemos entonces que:
El valor de las variables anteriores nos daría 0. A diferencia de la variable "caracter", que nos daría el
equivalente a NULL, '\0', para caracteres.