Base de datos - informatica multitech

Anuncio
Base de datos.
Las bases de datos existen desde que el ser humano empezó a almacenar
datos en algún soporte. Si por datos entendemos dibujos, que lo son, entonces
las primeras bases de datos fueron las paredes de las cuevas donde nuestros
ancestros dibujaron las pinturas rupestres.
Posteriormente los egipcios crearon grandes estructuras arquitectónicas que
usaron, entre otras cosas, como soporte para almacenar datos y narrar la
historia del antiguo Egipto en sus paredes. El tiempo transcurrió hasta el punto
de que el significado de todos esos símbolos se perdió, sin embargo la base de
datos perduró lo suficiente para que alguien consiguiera descifrar los
jeroglíficos a tiempo, de modo que todos esos datos, esa faraónica base de
datos, cobró de nuevo todo su sentido. De hecho el valor de toda esa
información es mayor que todos los tesoros que pudiesen esconder tumbas y
templos. Los arqueólogos esperan encontrar en los nuevos hallazgos, antes
que objetos y tesoros, nuevos jeroglíficos que les permitan conocer algún
episodio olvidado de la historia de esta fascinante civilización. En ocasiones es
esa misma información la que proporciona las pistas para descubrir nuevos
hallazgos.
En la actualidad las bases de datos informáticas han quitado todo el
protagonismo a sus antecesoras, los archivos de papel, que aun se siguen
usando en algunos ámbitos concretos. De bases de datos informáticas han
habido de varios tipos, pero las que más han proliferando son las que se
tratarán en este curso, las bases de datos relacionales. Mencionar que antes
de estas últimas se usaron las bases de datos jerárquicas y posteriormente las
bases de datos en red, actualmente sistemas en desuso.
Para encauzar el aprendizaje del lenguaje de consulta SQL empezaremos por
conocer la estructura de almacenamiento que usa una base de datos
relacional. En este caso no son paredes, ni montones de papel lo que se usa
para almacenar la información, sino que se almacena en soportes informáticos
bajo una estructura lógica de almacenamiento, como la tiene un archivo de
papel, por ejemplo: edificio, planta, pasillo, ubicación, ficha. De este modo es
posible recuperar la información que interesa de un modo ágil, gracias a los
incides y la estructura organizada del archivo. A continuación se verá como
estructura la información una base de datos relacional, pero antes,
establezcamos
una
pocas
definiciones.
Base de datos relacional: Una base de datos (BD), o mejor dicho, un sistema
gestor de bases de datos (SGBD), es un software que gestiona una o más
bases de datos y nos permite explotar los datos almacenados en ellas de forma
relativamente simple mediante SQL. Esta es una definición muy simplificada,
pero para que el aprendizaje sea distendido lo supondremos así, de ese modo
podemos centrarnos en aprender como y con que propósito accedemos a los
datos, dejando para el final como creamos, alimentamos o modificamos la
BD.Algunos ejemplos de SGBD son: Oracle, MySQL, MS SQL Server etc.
Estructura mínima de almacenamiento:

Tabla: Objeto de almacenamiento perteneciente a una BD. Es una
estructura en forma de cuadrante donde se almacenan registros o filas
de datos. Cada tabla tiene un nombre único en la BD.

Registro: Cada una de las filas de una tabla, esta compuesto por
campos o atributos.

Campo: Cada uno de los “cajoncitos” de un registro donde se guardan
los datos. Cada campo tiene un nombre único para la tabla de la cual
forma parte, además es de un tipo (naturaleza) determinado, por tanto
no podemos guardar limones en el cajón de las naranjas, en términos
informáticos y a modo de ejemplo, no encontraremos un dato
alfanumérico (letras y números) en un campo diseñado para guardar
datos numéricos.
Por el momento estas son las definiciones que necesitamos, veamos ahora
un ejemplo concreto de tabla.
Ejemplo de tabla: Tabla EMPLEADOS
Cada registro o fila de datos contiene información de un empleado. En el
ejemplo observamos que la tabla tiene un diseño de siete campos y que
almacena cuatro registros. El nombre de cada campo viene dado por la fila de
encabezado. El dato que contiene el campo ID_EMPLEADO identifica cada
registro, pero por ahora no le demos importancia a esto.
Los registros o miembros de una tabla tienen en común sus atributos, no el
dato en sí, que lo más probable es que difiera de un registro a otro, pero sí el
hecho de que todos ellos poseen esos atributos. En el ejemplo los miembros de
la tabla EMPLEADOS tiene en común que todos ellos son personas empleadas
en una empresa, que tienen un nombre y un salario, una fecha de nacimiento,
etc... Por lo tanto las tablas de una BD guardan información de individuos o
unidades de una misma naturaleza con una serie de atributos en común.
CREACION DE TABLAS.
Las tablas son la estructura básica donde se almacena la información en la
base de datos. Las tablas se dividen en filas y columnas. Cada fila representa
una parte de los datos, y cada columna puede pensarse como la
representación de un componente de aquella parte de los datos. Entonces, por
ejemplo, si tenemos una tabla para registrar la información del cliente, las
columnas pueden incluir información tal como Primer Nombre, Apellido,
Dirección, Ciudad, País, Fecha de Nacimiento y demás. Como resultado,
cuando especificamos una tabla, incluimos los títulos de columna y los tipos de
datos para esta columna en particular.
Entonces ¿Qué son los tipos de datos? Generalmente, los datos se generan en
formas variadas. Podría ser un entero (tal como 1), un número real (tal como
0,55), una línea (tal como 'sql'), una fecha/expresión de tiempo (tal como '25ene-2000 03:22:22'), o incluso en formato binario. Cuando especificamos una
tabla, necesitamos especificar el tipo de dato asociado con cada columna (es
decir, especificaremos que „First_Name‟ es de char(50) tipo – lo que significa
que es una línea con 50 caracteres).
La sintaxis SQL para CREATE TABLE es
CREATE TABLE "nombre_tabla"
("columna 1" "tipo_de_datos_para_columna_1",
"columna 2" "tipo_de_datos_para_columna_2",
... );
Entonces, si debemos crear una tabla para el cliente tal como se especifica
anteriormente, ingresaríamos
CREATE TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date datetime);
A veces, deseamos brindar un valor predeterminado a cada columna. Se utiliza
un valor predeterminado cuando no especifica un valor de columna cuando
ingresa datos a la tabla. Para establecer un valor predeterminado, agregue
“[valor] Predeterminado” luego de la instrucción de tipo de datos. En el ejemplo
anterior, si deseamos predeterminar una columna “Address” como
“Desconocida” y Ciudad como “Barcelona”, ingresaríamos
CREATE TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50) default 'Unknown',
City char(50) default 'Barcelona',
Country char(25),
Birth_Date datetime);
Puede colocar restricciones para limitar el tipo de dato que puede ingresarse en
una tabla. Dichas restricciones pueden especificarse cuando la tabla se crea
por primera vez a través de la instrucción CREATE TABLE, o luego de crear la
tabla a través de la instrucción ALTER TABLE.
Los tipos comunes de restricciones incluyen las siguientes:
- NOT NULL
- UNIQUE
- CHECK
- Clave primaria
- Clave externa
Cada uno se describe en detalle a continuación.
NOT NULL
En forma predeterminada, una columna puede ser NULL. Si no desea permitir
un valor NULL en una columna, querrá colocar una restricción en esta columna
especificando que NULL no es ahora un valor permitido.
Por ejemplo, en la siguiente instrucción,
CREATE TABLE Customer
(SID integer NOT NULL,
Last_Name varchar (30) NOT NULL,
First_Name varchar(30));
Las columnas “SID” y “Last_Name” no incluyen NULL, mientras que
“First_Name” puede incluir NULL.
UNIQUE
La restricción UNIQUE asegura que todos los valores en una columna sean
distintos.
Por ejemplo, en la siguiente instrucción,
CREATE TABLE Customer
(SID integer Unique,
Last_Name varchar (30),
First_Name varchar(30));
La columna “SID” no puede incluir valores duplicados, mientras dicha
restricción no se aplica para columnas “Last_Name” y “First_Name”.
Por favor note que una columna que se especifica como clave primaria también
puede ser única. Al mismo tiempo, una columna que es única puede o no ser
clave primaria.
CHECK
La restricción CHECK asegura que todos los valores en una columna cumplan
ciertas condiciones.
Por ejemplo, en la siguiente instrucción,
CREATE TABLE Customer
(SID integer CHECK (SID > 0),
Last_Name varchar (30),
First_Name varchar(30));
La columna “SID” sólo debe incluir enteros mayores a 0.
CLAVE PRIMARIA: La clave primaria se utiliza para identificar en forma única
cada línea en la tabla. Puede ser parte de un registro real, o puede ser un
campo artificial (uno que no tiene nada que ver con el registro real). Una clave
primaria puede consistir en uno o más campos en una tabla. Cuando se utilizan
múltiples campos como clave primaria, se los denomina claves compuestas.
Las claves primarias pueden especificarse cuando se crea la tabla
(utilizando CREATE TABLE) o cambiando la estructura existente de la tabla
(utilizando ALTER TABLE).
A continuación se presentan ejemplos para la especificación de una clave
primaria cuando se crea una tabla:
MySQL:
CREATE TABLE Customer
(SID integer,
Last_Name varchar(30),
First_Name varchar(30),
PRIMARY KEY (SID));
First_Name varchar(30));
A continuación se presenta un ejemplo para la especificación de una clave
primaria al modificar una tabla:
MySQL:
ALTER TABLE Customer ADD PRIMARY KEY (SID);
CLAVE EXTERNA: Una clave externa es un campo (o campos) que señala la
clave primaria de otra tabla. El propósito de la clave externa es asegurar la
integridad referencial de los datos. En otras palabras, sólo se permiten los
valores que se esperan que aparezcan en la base de datos.
Por ejemplo, digamos que tenemos dos tablas, una tabla CUSTOMER que
incluye todos los datos del CUSTOMER, y la tabla ORDERS que incluye los
pedidos del CUSTOMER. La restricción aquí es que todos los pedidos deben
asociarse con un CUSTOMER que ya se encuentra en la tabla CUSTOMER.
En este caso, colocaremos una clave externa en la tabla ORDERS y la
relacionaremos con la clave primaria de la tabla CUSTOMER. De esta forma,
nos aseguramos que todos los pedidos en la tabla ORDERS estén
relacionadas con un CUSTOMER en la tabla CUSTOMER. En otras palabras,
la tabla ORDERS no puede contener información de un CUSTOMER que no se
encuentre en la tabla CUSTOMER.
La estructura de estas dos tablas será la siguiente:
Tabla CUSTOMER
Nombre de Columna Característica
SID
Clave Primaria
Last_Name
First_Name
Tabla ORDERS
Nombre de Columna Característica
Order_ID
Clave Primaria
Order_Date
Customer_SID
Clave Externa
Amount
En el ejemplo anterior, la columna Customer_SID en la tabla ORDERS es una
clave externa señalando la columna SID en la tabla CUSTOMER.
A continuación se muestran ejemplos de cómo especificar la clave externa a la
hora de crear la tabla ORDERS:
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
PRIMARY KEY (Order_ID),
FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID));
A continuación se presentan ejemplos para la especificación de una clave
externa al modificar una tabla: Esto asume que se ha creado la tabla ORDERS,
y que la clave externa todavía no se ha ingresado:
MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);
Descargar