ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Administracion De Una BD

nidiwuis30 de Septiembre de 2012

3.601 Palabras (15 Páginas)406 Visitas

Página 1 de 15

Creación de bases de datos

Una vez se han definido el diseño conceptual y el lógico de la base de datos, hay que seleccionar el Sistema de Gestión de Bases de Datos (SGBD) en el que se creará el diseño físico

Creación de la estructura de la base de datos.

Cada conjunto de relaciones que componen un modelo completo forma una base de datos.

Desde el punto de vista de SQL, una base de datos es sólo un conjunto de relaciones (o tablas), y para organizarlas o distinguirlas se accede a ellas mediante su nombre. A nivel de sistema operativo, cada base de datos se guarda en un directorio diferente.

Debido a esto, crear una base de datos es una tarea muy simple. Claro que, en el momento de crearla, la base de datos estará vacía, es decir, no contendrá ninguna tabla.

Para empezar, crearemos una base de datos para nosotros solos, y la llamaremos "prueba". Para crear una base de datos se usa una sentencia :

mysql> CREATE DATABASE prueba;

Query OK, 1 row affected (0.03 sec)

mysql>

Podemos averiguar cuántas bases de datos existen en nuestro sistema usando la sentencia :

mysql> SHOW DATABASES;

+--------------------+

| Database |

+--------------------+

| mysql |

| prueba |

| test |

+--------------------+

3 rows in set (0.00 sec)

mysql>

A partir de ahora, en los próximos capítulos, trabajaremos con esta base de datos, por lo tanto la seleccionaremos como base de datos por defecto. Esto nos permitirá obviar el nombre de la base de datos en consultas. Para seleccionar una base de datos se usa el comando , que no es exactamente una sentencia SQL, sino más bien de una opción de MySQL:

mysql> USE prueba;

Database changed

mysql>

Creación de dominios definidos por el DBA.

Para bases de datos personales, normalmente la misma persona define, construye y manipula la base de datos. Para bases de datos multiusuario grandes, con varias decenas o cientos de usuarios, diverso tipo de personal está involucrado:

• Administrador de la base de datos (DBA). Es el responsable por la administración de los recursos tanto del DBMS como de las bases de datos que tenga la organización. El DBA se encarga de autorizar el acceso a las bases de datos, coordinar y supervisar su uso, adecuar el sistema para un uso eficiente, etc.

• Diseñadores de la base de datos (o Programadores de aplicaciones). Son los responsables de identificar los datos a ser almacenados en una base de datos y de escoger las estructuras apropiadas para representar y almacenar estos datos.

• Usuarios finales. Son las personas que tienen acceso a la base de datos para hacer consultas y actualizaciones y generar reportes.

Definir el esquema general de la base de datos (tablas, atributos, llaves primarias y llaves heredadas).

Crear una tabla

La sintaxis de esta sentencia es muy compleja, ya que existen muchas opciones y tenemos muchas posibilidades diferentes a la hora de crear una tabla. Las iremos viendo paso a paso, y en poco tiempo sabremos usar muchas de sus posibilidades.

mysql> USE prueba

Database changed

mysql> CREATE TABLE gente (nombre VARCHAR(40), fecha DATE);

Query OK, 0 rows affected (0.53 sec)

mysql>

Hemos creado una tabla llamada "gente" con dos columnas: "nombre" que puede contener cadenas de hasta 40 caracteres y "fecha" de tipo fecha.

Podemos consultar cuántas tablas y qué nombres tienen en una base de datos, usando la sentencia :

mysql> SHOW TABLES;

+------------------+

| Tables_in_prueba |

+------------------+

| gente |

+------------------+

1 row in set (0.01 sec)

mysql>

Pero tenemos muchas más opciones a la hora de definir columnas. Además del tipo y el nombre, podemos definir valores por defecto, permitir o no que contengan valores nulos, crear una clave primaria, indexar...

La sintaxis para definir columnas es:

nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto]

[AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string']

[definición_referencia]

Valores nulos

Al definir cada columna podemos decidir si podrá o no contener valores nulos.

La opción por defecto es que se permitan valores nulos, NULL, y para que no se permitan, se usa NOT NULL. Por ejemplo:

mysql> CREATE TABLE ciudad1 (nombre CHAR(20) NOT NULL, poblacion INT NULL);

Query OK, 0 rows affected (0.98 sec)

Valores por defecto

Para cada columna también se puede definir, opcionalmente, un valor por defecto. El valor por defecto se asignará de forma automática a una columna cuando no se especifique un valor determinado al añadir filas.

Si una columna puede tener un valor nulo, y no se especifica un valor por defecto, se usará NULL como valor por defecto. En el ejemplo anterior, el valor por defecto para poblacion es NULL.

Por ejemplo, si queremos que el valor por defecto para poblacion sea 5000, podemos crear la tabla como:

mysql> CREATE TABLE ciudad2 (nombre CHAR(20) NOT NULL,

-> poblacion INT NULL DEFAULT 5000);

Query OK, 0 rows affected (0.09 sec)

Claves primarias

También se puede definir una clave primaria sobre una columna, usando la palabra clave KEY o PRIMARY KEY.

Sólo puede existir una clave primaria en cada tabla, y la columna sobre la que se define una clave primaria no puede tener valores NULL. Si esto no se especifica de forma explícita, MySQL lo hará de forma automática.

Por ejemplo, si queremos crear un índice en la columna nombre de la tabla de ciudades, crearemos la tabla así:

mysql> CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL PRIMARY KEY,

-> poblacion INT NULL DEFAULT 5000);

Query OK, 0 rows affected (0.20 sec)

Claves foráneas

En MySQL sólo existe soporte para claves foráneas en tablas de tipo InnoDB. Sin embargo, esto no impide usarlas en otros tipos de tablas.

La diferencia consiste en que en esas tablas no se verifica si una clave foránea existe realmente en la tabla referenciada, y que no se eliminan filas de una tabla con una definición de clave foránea. Para hacer esto hay que usar tablas InnoDB.

Hay dos modos de definir claves foráneas en bases de datos MySQL.

El primero, sólo sirve para documentar, y, al menos en las pruebas que he hecho, no define realmente claves foráneas. Esta forma consiste en definir una referencia al mismo tiempo que se define una columna:

mysql> CREATE TABLE personas (

-> id INT AUTO_INCREMENT PRIMARY KEY,

-> nombre VARCHAR(40),

-> fecha DATE);

Query OK, 0 rows affected (0.13 sec)

mysql> CREATE TABLE telefonos (

-> numero CHAR(12),

-> id INT NOT NULL REFERENCES personas (id)

-> ON DELETE CASCADE ON UPDATE CASCADE); (1)

Query OK, 0 rows affected (0.13 sec)

mysql>

Hemos usado una definición de referencia para la columna 'id' de la tabla 'telefonos', indicando que es una clave foránea correspondiente a la columna 'id' de la tabla 'personas' (1). Sin embargo, aunque la sintaxis se comprueba, esta definición no implica ningún comportamiento por parte de MySQL.

Creación de vistas de la base de datos (view).

En el modelo de datos relacional la forma de guardar la información no es la mejor para ver los datos

Una vista es una consulta, que refleja el contenido de una o más tablas, desde la que se puede acceder a los datos como si fuera una tabla.

Dos son las principales razones por las que podemos crear vistas.

• Seguridad,

• Comodidad.

Las vistas no tienen una copia física de los datos, son consultas a los datos que hay en las tablas, por lo que si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos la tabla estos cambios serán visibles desde la vista.

Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida.

CREATE VIEW <nombre_vista>

AS

(<sentencia_select>);

Ejemplo:Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su código.

CREATE VIEW vAlquileres

AS

(

SELECT nombre,

apellidos,

matricula

FROM tAlquileres,

tClientes

WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

)

Si queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo haciamos con las tablas. En este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.

ALTER VIEW vAlquileres

AS

(

SELECT nombre,

apellidos,

matricula,

fx_alquiler,

fx_devolucion

FROM tAlquileres,

tClientes

WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

)

Por

...

Descargar como (para miembros actualizados) txt (22 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com