lunes, 16 de abril de 2012

Consultas

En base de datos, una consulta es el método para acceder a los datos en las bases de datos. Con las consultas se puede modificar, borrar, mostrar y agregar datos a una base de datos. Para esto se utiliza un lenguaje de consultas. El lenguaje de consultas más utilizado en bases de datos es el SQL (Structured Query Language).
Técnicamente hablando, las consultas a una base de datos se realizan a través de un lenguaje de manipulación de datos (DML – Data Manipulation Language). SQL es un lenguaje DML, pero además posee otras características de otros lenguajes. Por ejemplo, permite también crear bases de datos.

Una consulta SQL es tipo de consulta a una base de datos empleando lenguaje SQL.

Una consulta SQL básica puede constar con un máximo de seis cláusulas, de las cuales sólo dos son obligatorias (SELECT y FROM). Las cláusulas se especifican en el siguiente orden:

SELECT < lista de atributos >
FROM < lista de tablas >
WHERE < condición >
GROUP BY < atributo(s) de agrupación >
HAVING < condición de agrupación >
ORDER BY < lista de atributos >


SELECT: indica qué atributos o funciones se van a recuperar.

FROM: especifica todas las relaciones (tablas) que se necesitan en la consulta.

WHERE: especifica las condiciones, si es que hacen falta, para seleccionar tuplas de esas relaciones, incluyendo las condiciones de reunión.

GROUP BY: especifica atributos de agrupación.

HAVING: especifica una condición que deben cumplir los grupos seleccionados, no las tuplas individuales. Las funciones agregadas integradas COUNT, SUM, MIN, MAX y AVG se usan junto con la agrupación.

ORDER BY: especifica un orden para presentar el resultado de una consulta.

Secuencia

Una secuencia (sequence) se emplea para generar valores enteros secuenciales únicos y asignárselos a campos numéricos; se utilizan generalmente para las claves primarias de las tablas garantizando que sus valores no se repitan.
Una secuencia es una tabla con un campo numérico en el cual se almacena un valor y cada vez que se consulta, se incrementa tal valor para la próxima consulta.
Sintaxis general:
create sequence NOMBRESECUENCIA
  start with VALORENTERO
  increment by VALORENTERO
  maxvalue VALORENTERO
  minvalue VALORENTERO
  cycle | nocycle;
- La cláusula "start with" indica el valor desde el cual comenzará la generación de números secuenciales. Si no se especifica, se inicia con el valor que indique "minvalue".
- La cláusula "increment by" especifica el incremento, es decir, la diferencia entre los números de la secuencia; debe ser un valor numérico entero positivo o negativo diferente de 0. Si no se indica, por defecto es 1.
- "maxvalue" define el valor máximo para la secuencia. Si se omite, por defecto es 99999999999999999999999999.
- "minvalue" establece el valor mínimo de la secuencia. Si se omite será 1.
- La cláusula "cycle" indica que, cuando la secuencia llegue a máximo valor (valor de "maxvalue") se reinicie, comenzando con el mínimo valor ("minvalue") nuevamente, es decir, la secuencia vuelve a utilizar los números. Si se omite, por defecto la secuencia se crea "nocycle".
Si no se especifica ninguna cláusula, excepto el nombre de la secuencia, por defecto, comenzará en 1, se incrementará en 1, el mínimo valor será 1, el máximo será 999999999999999999999999999 y "nocycle".
En el siguiente ejemplo creamos una secuencia llamada "sec_codigolibros", estableciendo que comience en 1, sus valores estén entre 1 y 99999 y se incrementen en 1, por defecto, será "nocycle":
create sequence sec_codigolibros
  start with 1
  increment by 1
  maxvalue 99999
  minvalue 1;
Si bien, las secuencias son independientes de las tablas, se utilizarán generalmente para una tabla específica, por lo tanto, es conveniente darle un nombre que referencie a la misma.
Otro ejemplo:
create sequence sec_numerosocios
  increment by 5
  cycle;
La secuencia anterior, "sec_numerosocios", incrementa sus valores en 5 y al llegar al máximo valor recomenzará la secuencia desde el valor mínimo; no se especifican las otras cláusulas, por lo tanto, por defecto, el valor mínimo es 1, el máximo 999999999999999999999999999 y el valor inicial es 1.
Dijimos que las secuencias son tablas; por lo tanto se accede a ellas mediante consultas, empleando "select". La diferencia es que utilizamos pseudocolumnas para recuperar el valor actual y el siguiente de la secuencia. Estas pseudocolumnas pueden incluirse en el "from" de una consulta a otra tabla o de la tabla "dual".
Para recuperar los valores de una secuencia empleamos las pseudocolumnas "currval" y "nextval".
Primero debe inicializarse la secuencia con "nextval". La primera vez que se referencia "nextval" retorna el valor de inicio de la secuencia; las siguientes veces, incrementa la secuencia y nos retorna el nuevo valor:
NOMBRESECUENCIA.NEXTVAL;
se coloca el nombre de la secuencia seguido de un punto y la pseudocolumna "nextval" (que es una forma abreviada de "next value", siguiente valor).
Para recuperar el valor actual de una secuencia usamos:
NOMBRESECUENCIA.CURRVAL;
es decir, el nombre de la secuencia, un punto y la pseudocolumna "currval" (que es una forma abreviada de "current value", valor actual).
Los valores retornados por "currval" y "nextval" pueden usarse en sentencias "insert" y "update".
Veamos un ejemplo completo:
Creamos una secuencia para el código de la tabla "libros", especificando el valor máximo, el incremento y que no sea circular:
create sequence sec_codigolibros
  maxvalue 999999
  increment by 1
  nocycle;
Luego inicializamos la secuencia
select sec_codigolibros.nextval from dual;
Recuerde que la primera vez que se referencie la secuencia debe emplearse "nextval" para inicializarla.
Ingresamos un registro en "libros", almacenando en el campo "codigo" el valor actual de la secuencia:
insert into libros values
  (sec_codigolibros.currval,'El aleph', 'Borges','Emece');
Ingresamos otro registro en "libros", almacenando en el campo "codigo" el valor siguiente de la secuencia:
insert into libros values
  (sec_codigolibros.nextval,'Matematica estas ahi', 'Paenza','Nuevo siglo');
Para ver todas las secuencias de la base de datos actual realizamos la siguiente consulta:
select *from all_sequences;
Nos muestra el propietario de la secuencia, el nombre de la misma, los valores mínimo y máximo, el valor de incremento y si es circular o no, entre otros datos que no analizaremos por el momento.
También podemos ver todos los objetos de la base de datos actual tipeando;
select *from all_objects;
En la tabla resultado aparecen todos los objetos de la base de datos, incluidas las secuencias; si es una secuencia en la columna OBJECT_TYPE se muestra "SEQUENCE".
Podemos consultar "all_objects" especificando que nos muestre el nombre de todas las secuencias:
select object_name from all_objects
  where object_type='SEQUENCE';
Para eliminar una secuencia empleamos "drop sequence". Sintaxis:
drop sequence NOMBRESECUENCIA;
Si la secuencia no existe aparecerá un mensaje indicando tal situación.
En el siguiente ejemplo se elimina la secuencia "sec_codigolibros":
drop sequence sec_codigolibros;

Secuencia

Una secuencia (sequence) se emplea para generar valores enteros secuenciales únicos y asignárselos a campos numéricos; se utilizan generalmente para las claves primarias de las tablas garantizando que sus valores no se repitan.
Una secuencia es una tabla con un campo numérico en el cual se almacena un valor y cada vez que se consulta, se incrementa tal valor para la próxima consulta.
Sintaxis general:
create sequence NOMBRESECUENCIA
  start with VALORENTERO
  increment by VALORENTERO
  maxvalue VALORENTERO
  minvalue VALORENTERO
  cycle | nocycle;
- La cláusula "start with" indica el valor desde el cual comenzará la generación de números secuenciales. Si no se especifica, se inicia con el valor que indique "minvalue".
- La cláusula "increment by" especifica el incremento, es decir, la diferencia entre los números de la secuencia; debe ser un valor numérico entero positivo o negativo diferente de 0. Si no se indica, por defecto es 1.
- "maxvalue" define el valor máximo para la secuencia. Si se omite, por defecto es 99999999999999999999999999.
- "minvalue" establece el valor mínimo de la secuencia. Si se omite será 1.
- La cláusula "cycle" indica que, cuando la secuencia llegue a máximo valor (valor de "maxvalue") se reinicie, comenzando con el mínimo valor ("minvalue") nuevamente, es decir, la secuencia vuelve a utilizar los números. Si se omite, por defecto la secuencia se crea "nocycle".
Si no se especifica ninguna cláusula, excepto el nombre de la secuencia, por defecto, comenzará en 1, se incrementará en 1, el mínimo valor será 1, el máximo será 999999999999999999999999999 y "nocycle".
En el siguiente ejemplo creamos una secuencia llamada "sec_codigolibros", estableciendo que comience en 1, sus valores estén entre 1 y 99999 y se incrementen en 1, por defecto, será "nocycle":
create sequence sec_codigolibros
  start with 1
  increment by 1
  maxvalue 99999
  minvalue 1;
Si bien, las secuencias son independientes de las tablas, se utilizarán generalmente para una tabla específica, por lo tanto, es conveniente darle un nombre que referencie a la misma.
Otro ejemplo:
create sequence sec_numerosocios
  increment by 5
  cycle;
La secuencia anterior, "sec_numerosocios", incrementa sus valores en 5 y al llegar al máximo valor recomenzará la secuencia desde el valor mínimo; no se especifican las otras cláusulas, por lo tanto, por defecto, el valor mínimo es 1, el máximo 999999999999999999999999999 y el valor inicial es 1.
Dijimos que las secuencias son tablas; por lo tanto se accede a ellas mediante consultas, empleando "select". La diferencia es que utilizamos pseudocolumnas para recuperar el valor actual y el siguiente de la secuencia. Estas pseudocolumnas pueden incluirse en el "from" de una consulta a otra tabla o de la tabla "dual".
Para recuperar los valores de una secuencia empleamos las pseudocolumnas "currval" y "nextval".
Primero debe inicializarse la secuencia con "nextval". La primera vez que se referencia "nextval" retorna el valor de inicio de la secuencia; las siguientes veces, incrementa la secuencia y nos retorna el nuevo valor:
NOMBRESECUENCIA.NEXTVAL;
se coloca el nombre de la secuencia seguido de un punto y la pseudocolumna "nextval" (que es una forma abreviada de "next value", siguiente valor).
Para recuperar el valor actual de una secuencia usamos:
NOMBRESECUENCIA.CURRVAL;
es decir, el nombre de la secuencia, un punto y la pseudocolumna "currval" (que es una forma abreviada de "current value", valor actual).
Los valores retornados por "currval" y "nextval" pueden usarse en sentencias "insert" y "update".
Veamos un ejemplo completo:
Creamos una secuencia para el código de la tabla "libros", especificando el valor máximo, el incremento y que no sea circular:
create sequence sec_codigolibros
  maxvalue 999999
  increment by 1
  nocycle;
Luego inicializamos la secuencia
select sec_codigolibros.nextval from dual;
Recuerde que la primera vez que se referencie la secuencia debe emplearse "nextval" para inicializarla.
Ingresamos un registro en "libros", almacenando en el campo "codigo" el valor actual de la secuencia:
insert into libros values
  (sec_codigolibros.currval,'El aleph', 'Borges','Emece');
Ingresamos otro registro en "libros", almacenando en el campo "codigo" el valor siguiente de la secuencia:
insert into libros values
  (sec_codigolibros.nextval,'Matematica estas ahi', 'Paenza','Nuevo siglo');
Para ver todas las secuencias de la base de datos actual realizamos la siguiente consulta:
select *from all_sequences;
Nos muestra el propietario de la secuencia, el nombre de la misma, los valores mínimo y máximo, el valor de incremento y si es circular o no, entre otros datos que no analizaremos por el momento.
También podemos ver todos los objetos de la base de datos actual tipeando;
select *from all_objects;
En la tabla resultado aparecen todos los objetos de la base de datos, incluidas las secuencias; si es una secuencia en la columna OBJECT_TYPE se muestra "SEQUENCE".
Podemos consultar "all_objects" especificando que nos muestre el nombre de todas las secuencias:
select object_name from all_objects
  where object_type='SEQUENCE';
Para eliminar una secuencia empleamos "drop sequence". Sintaxis:
drop sequence NOMBRESECUENCIA;
Si la secuencia no existe aparecerá un mensaje indicando tal situación.
En el siguiente ejemplo se elimina la secuencia "sec_codigolibros":
drop sequence sec_codigolibros;

Alterar una tabla

ALTER table customer drop Gender
Estructura de la tabla resultante:
Table customer
Column NameData Type
First_Namechar(50)
Last_Namechar(50)
Addrchar(30)
Citychar(50)
Countrychar(25)
Birth_Datedate

Insertar un campo


INSERT INTO <nombre_tabla> 
[(<campo1>[,<campo2>,...])]
values (<valor1>,<valor2>,...);

Recursividad

Definición.
Hablamos de recursividad, tanto en el ámbito informático como en el ámbito matemático, cuando definimos algo (un tipo de objetos, una propiedad o una operación) en función de sí mismo. La recursividad en programación es una herramienta sencilla, muy útil y potente.
Tipos.
Podemos distinguir dos tipos de recursividad:
Directa: Cuando un subprograma se llama a si mismo una o mas veces directamente.
Indirecta: Cuando se definen una serie de subprogramas usándose unos a otros.
Características.
Un algoritmo recursivo consta de una parte recursiva, otra iterativa o no recursiva y una condición de terminación. La parte recursiva y la condición de terminación siempre existen. En cambio la parte no recursiva puede coincidir con la condición de terminación.
Algo muy importante a tener en cuenta cuando usemos la recursividad es que es necesario asegurarnos que llega un momento en que no hacemos más llamadas recursivas. Si no se cumple esta condición el programa no parará nunca.
Ventajas e inconvenientes.
La principal ventaja es la simplicidad de comprensión y su gran potencia, favoreciendo la resolución de problemas de manera natural, sencilla y elegante; y facilidad para comprobar y convencerse de que la solución del problema es correcta.
El principal inconveniente es la ineficiencia tanto en tiempo como en memoria, dado que para permitir su uso es necesario transformar el programa recursivo en otro iterativo, que utiliza bucles y pilas para almacenar las variables.
Estructura Representación
Una tabla es una estructura homogénea en la que todos los elementos que la componen son del mismo tipo.Son estáticas, no crecen ni decrecen en tiempo de ejecución y tienen un límite preestablecido antes de la compilación.
Para acceder a los elementos de una tabla se utilizan los "índices" y estos pueden ser de cualquier tipo escalar de PASCAL (enumerados, INTEGER, CHAR, subrango, BOOLEAN).Por ello las tablas son estructuras de acceso directo o acceso por índice. 

equi-join

La sentencia join en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay tres tipo de JOIN: interno, externo, y cruzado.
En casos especiales una tabla puede unirse a sí misma, produciendo una auto-combinación, SELF-JOIN.
Matemáticamente, JOIN es composición relacional, la operación fundamental en el álgebra relacional, y generalizando es una función de composición.

equi-join

SELECT ename, job, dept.deptno, dname
FROM emp, dept
 WHERE emp.deptno = dept.deptno;
SELECT *
  FROM emp, dept
 WHERE emp.deptno = dept.deptno
   AND job = 'CLERK';
Using ANSI join syntax:
SELECT ename, dname
 FROM emp INNER JOIN dept
   ON emp.deptno = dept.deptno

SQL

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datosrelacionales que permite especificar diversos tipos de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.




vínculos_de_columna: son vínculos de integridad que se aplican a cada atributo concreto. Son:

  • NOT NULL, que indica que la columna no puede tomar el valor NULL.
  • PRIMARY KEY, que indica que la columna es la llave primaria de la tabla.
  • una definición de referencia con la que se indica que la columna es una llave externa hacia la tabla y los campos indicados en la definición. La sintaxis es la siguiente:

    REFERENCES nombre_tabla [ ( columna1 [ , columna2 ... ] ) ]
    [ ON DELETE { CASCADE | SET DEFAULT | SET NULL } ]
    [ ON UPDATE { CASCADE | SET DEFAULT | SET NULL } ]


    Las cláusulas ON DELETE y ON UPDATE indican qué acción hay que ejecutar en el caso en que una tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna referenciante (que es la que se está definiendo) podría haber valores inconsistentes. Las acciones pueden ser:

    • CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o también actualizar la columna referenciante (en el caso de ON UPDATE).
    • SET DEFAULT: asignar a la columna referenziante su valor de defecto.
    • SET NULL: asignar a la columna referenciante el valor NULL.
  • un control de valor, con el que se permite o no asignar un valor a la columna en función del resultado de una expresión. La sintaxis que se usa es:

    CHECK (expresión_condicional)

    donde expresión_condicional es una expresión que ofrece verdadero o falso.
    Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control:

    CHECK ( COLUMNA1 < 1000 )

    en dicha columna se podrán incluir sólo valores inferiores a 1000.
vínculo_de_tabla: son vínculos de integridad que se pueden referir a más columnas de la tabla. Son:

  • la definición de la llave primaria:

    PRIMARY KEY ( columna1 [ , columna2 ... ] ) Véase que en este caso, a diferencia de la definición de la llave primaria como vínculo de columna, ésta se puede formar con mas de un atributo.
  • las definiciones de las llaves externas:

    FOREIGN KEY ( columna1 [ , columna2 ... ] ) definiciones_de_referencia

    La definición_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vínculo de columna.
  • un control de valor, con la misma sintaxis y significado que el que se puede usar como vínculo de columna.
Para aclarar mejor el uso de la instrucción CREATE TABLE, veamos algunas órdenes que implementan la base de datos bibliográfica ejemplificada.

CREATE TABLE Publication (
ID INTEGER PRIMARY KEY,
type CHAR(18) NOT NULL
);


La instrucción anterior crea la tabla Publication, formada por las dos columna ID de tipo INTEGER, y type de tipo CHAR(18). ID es la llave primaria de la relación. En el atributo type hay un vínculo de no nulidad.

CREATE TABLE Book (
ID INTEGER PRIMARY KEY REFERENCES Publication(ID),
title VARCHAR(160) NOT NULL,
publisher INTEGER NOT NULL REFERENCES Publisher(ID),
volume VARCHAR(16),
series VARCHAR(160),
edition VARCHAR(16),
pub_month CHAR(3),
pub_year INTEGER NOT NULL,
note VARCHAR(255)
);


Crea la relación Book, formada por nueve atributos. La llave primaria es el atributo ID, que es también una llave externa hacia la relación Publication. Sobre los atributos title, publisher y pub_year hay vínculos de no nulidad. Además, el atributo publisher es una llave externa hacia la tabla Publisher.

CREATE TABLE Author (
publicationID INTEGER REFERENCES Publication(ID),
personID INTEGER REFERENCES Person(ID),
PRIMARY KEY (publicationID, personID)
);

Diccionario de datos

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.















Ejemplo diagrama de clases

Diagrama de calses

Un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.

Entidad fuerte

n pocas palabras y sin ser muy precisos una "entidad fuerte" (en teoría para el modelado de datos) es aquella que puede ser identificada unívocamente sin participar en la relación. Una "entidad debil" es aquella que no puede existir sin participar en la relación. Un cliente es una entidad fuerte porque puede ser identificada sin verbo (relación). Una factura es una entidad debil porque necesita un verbo (relación)...
Un cliente puede existir aunque no tenga facturas. Una factura no puede existir si no hay un cliente que la realice...
Busca información del Dr. Peter Pin-Shan Chen autor del Modelo Entidad-Relación

Entidad debil

Un diagrama o modelo entidad-relación (a veces denominado por sus siglas, E-R "Entity relationship", o, "DER" Diagrama de Entidad Relación) es una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información así como sus interrelaciones y propiedades.



Ejemplo de diagrama E-R.

Clave foranea

En el contexto de bases de datos relacionales, una clave foránea o clave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar información. Esto es una parte esencial de la normalización de base de datos. Múltiples filas en la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla referenciada. Mayormente esto se ve reflejado en una relación uno (tabla maestra o referenciada) a muchos (tabla hija o referendo).
La tabla referendo y la tabla referenciada pueden ser la misma, esto es, la clave foránea remite o hace referencia a la misma tabla. Esta clave externa es conocida en SQL:2003 como auto-referencia o clave foránea recursiva. Una tabla puede tener múltiples claves foráneas y cada una puede tener diferentes tablas referenciadas. Cada clave foránea es forzada independientemente por el sistema de base de datos. Por tanto, las relaciones en cascada entre tablas pueden realizarse usando claves foráneas. Configuraciones impropias de las claves foráneas o primarias o no forzar esas relaciones son frecuentemente la fuente de muchos problemas para la base de datos o para el modelamiento de los mismos.

Clave principal?

Una clave principal es un campo o conjunto de campos de la tabla que proporcionan a Microsoft Office Access 2007 un identificador exclusivo para cada fila. En una base de datos relacional como Office Access 2007, la información se divide en tablas distintas en función del tema. A continuación, se utilizan relaciones de tablas y claves principales para indicar a Access cómo debe volver a reunir la información. Access utiliza campos de clave principal para asociar rápidamente los datos de varias tablas y combinar esos datos de forma significativa.
Este enfoque funciona porque una vez definida la clave principal, se puede utilizar en otras tablas para hacer referencia a la tabla que contiene la clave principal. Por ejemplo, un campo Id. de cliente de la tabla Compradores podría aparecer también en la tabla Pedidos. En la tabla Compradores es la clave principal y en la tabla Pedidos es una clave externa. Una clave externa, en términos simples, es la clave principal de otra tabla.

Que es el álgebra relacional?

El álgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipoprocedimental, a diferencia del Cálculo relacional que es de tipo declarativo.
Describe el aspecto de la manipulación de datos. Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.

Que es una tabla?

Una tabla contiene datos sobre un tema en concreto, como empleados o productos. Cada registro de una tabla contiene información sobre un elemento, como un determinado empleado. Un registro se compone de campos, como un nombre, una dirección y un número de teléfono. Los registros se suelen denominar también filas y los campos, columnas.
Tabla de clientes mostrando el diseño de los registros y los campos
Llamada 1 Registro o fila
Llamada 2 Campo o columna
La base de datos puede contener muchas tablas, cada una de ellas con información sobre un tema diferente. Cada tabla, a su vez, puede contener muchos campos de diferentes tipos, como texto, números, fechas e imágenes.
En la lista siguiente se indican algunos ejemplos de tablas comunes que puede crear.
  • Una tabla de clientes con los clientes de su empresa y sus direcciones
  • Un catálogo de los productos en venta con precios e imágenes de cada artículo
  • Una tabla de tareas para controlar las tareas y los plazos
  • Un inventario de equipo o stock disponible
Debe planear y diseñar la base de datos con cuidado para asegurarse de que tiene un diseño correcto y evitar así tener que realizar muchos cambios posteriormente. Para obtener información sobre cómo planear y diseñar una base de datos, vea el artículo Conceptos básicos del diseño de una base de datos.

Que es una tupla?

En las ciencias de la computación una tupla puede tener dos significados distintos. Generalmente en los lenguajes de programación funcional y en otros lenguajes de programación, una tupla es un objeto que bien puede tener datos o diversos objetos, de forma similar a una tupla definida matemáticamente. Un objeto de este tipo es conocido también como record.

Una definición más formal del anterior párrafo sería: Conjunto de elementos de distinto tipo que se guardan de forma consecutiva en memoria.

Dominio

 Es una red de identificación asociada a un grupo de dispositivos o equipos conectados a la red Internet.
El propósito principal de los nombres de dominio en Internet y del sistema de nombres de dominio (DNS), es traducir las direcciones IP de cada nodo activo en la red, a términos memorizables y fáciles de encontrar. Esta abstracción hace posible que cualquier servicio (de red) pueda moverse de un lugar geográfico a otro en la red Internet, aun cuando el cambio implique que tendrá una dirección IP diferente.
Sin la ayuda del sistema de nombres de dominio, los usuarios de Internet tendrían que acceder a cada servicio web utilizando la dirección IP del nodo (por ejemplo, sería necesario utilizar http://192.0.32.10 en vez de http://example.com). Además, reduciría el número de webs posibles, ya que actualmente es habitual que una misma dirección IP sea compartida por varios dominios.