1. Introducción
La instalación en Windows es muy sencilla, basta con hacer doble clic sobre el
archivo descargado, elegir los programas que queremos instalar y pulsar siguiente. Si
no queremos instalar programas innecesarios al menos debemos elegir Apache,
MySQL, Php y phpMyAdmin.
2. Tipos de tablas.
1
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Al crear una tabla InnoDB se generan dos archivos en disco con las extensiones
frm e ibd. El primero guarda la definición de la tabla y el segundo información relativa a
los índices. La existencia de estos archivos ibd depende de la configuración del
servidor en cuanto al almacenamiento de los índices de tablas innodb. Puede existir un
archivo por tabla o bien almacenarse de forma conjunta. MariaDb viene configurado
para crear un archivo de índices por tabla.
Entre los tipos de tabla no transaccionales destaca MyISAM, con un rápido acceso
a datos y soporte para índices de texto completo (fulltext). Cada tabla MyISAM se
organiza en tres ficheros con distintas extensiones:
3. Tipos de datos
Al crear una tabla es necesario especificar que campos la forman y que tipos de
datos tienen asociados estos campos. El tipo de dato de cada campo determina la
información que podrá guardarse en dicho campo. Así, si debemos guardar el precio
de un producto será necesario utilizar un tipo de datos numérico; si lo que queremos
es almacenar la fecha de nacimiento de una persona, el tipo de datos a utilizar será
fecha y si el dato a almacenar es el nombre o descripción de un producto el tipo de
datos elegido será texto o cadena.
2
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
- TechOnTheNet: https://www.techonthenet.com/mariadb/datatypes.php.
- Set (valor1, valor2, …, valorN). Un campo de tipo set puede almacenar cero o
varios miembros del grupo de valores indicados entre los paréntesis.
Todos los tipos numéricos pueden almacenarse con los modificadores Unsigned y
Zerofill. Con el primero el rango de valores cambia, ya que no permiten negativos y los
números almacenados irán desde 0 hasta el máximo permitido en cada caso
(consultar la web indicada). Zerofill permite rellenar con ceros por la izquierda campos
enteros cuando el número de dígitos guardados en dicho campo sea inferior al número
indicado como ancho en la definición de dicho campo.
3
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
- DateTime. Permite almacenar valores con fecha y hora. El rango de valores está
comprendido entre '1000-01-01 00:00:00' y '9999-12-31 23:59:59'. El formato utilizado
para mostrar los valores es 'AAAA-MM-DD HH:MM:SS'.
- Time. Para columnas que guarden horas. El rango de valores debe estar
comprendido entre '-838:59:59' y '838:59:59'.
4. El lenguaje SQL
Como se comentó al principio del tema, tras obtener el esquema lógico de una
base de datos, debemos implementar el mismo en el SGBD elegido. El siguiente paso
será por tanto crear la base de datos, sus tablas y relaciones.
Para todo ello se utiliza el lenguaje SQL (Structured Query Language). El SQL es
un lenguaje que se compone de una serie comandos u órdenes que permiten al
usuario crear bases de datos, tablas , relaciones, índices, etc. También incluye
sentencias para trabajar con los datos de esas tablas y para controlar el acceso a los
mismos. Por eso está compuestos por tres grupos de sentencias:
4
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Símbolos:
Para entender mejor todo esto, estudiaremos la sentencia SELECT que permite
seleccionar datos de tablas de una base de datos. Para probar los ejemplos que
siguen, será necesario tener instalado Xampp y además tener en el servidor la base de
datos “Oposiciones” cuyo script puedes descargar en el apartado recursos.
Su sintaxis:
5
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
6
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Use prueba
- Eliminar una base de datos. Debe tenerse en cuenta que al eliminar una base
de datos se perderá toda la información que ésta almacena, por tanto esta
orden no debe ser ejecutada a la ligera.
7
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Una vez creada la base de datos se crearán las tablas que la forman, con sus
nombres, columnas, relaciones, índices, etc.
Es necesario mencionar que todas las órdenes SQL que estudiaremos y las que ya
hemos visto, pueden llevarse a cabo gráficamente, pero este no es el objetivo de este
curso.
Crear una tabla consiste en darle un nombre a la misma, a cada una de sus
columnas, asociarle tipos de datos a estas columnas y crear restricciones como
claves primarias, ajenas, etc.
Una tabla puede incluir restricciones de clave primaria, ajena, índices, campos que
permiten nulos o no, valores por defecto en algún campo, etc.
Existen restricciones que sólo afectan a un campo y otras que afectan a más de
uno. Esta característica hace que se deban indicar de forma distinta como se explica a
continuación.
8
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
- NOT NULL | NULL. Indica si el campo permite nulos o no. Por defecto permite
nulos.
- DEFAULT ValorPorDefecto. Sirve para guardar un valor por defecto en esa
columna cuando no se le asigne ningún valor.
- AUTO_INCREMENT. Los campos enteros con esta restricción se
autoincrementarán al añadir filas. No se les puede asignar valores.
- PRIMARY KEY. Una tabla sólo puede tener una clave primaria, además este
campo no permite nulos. Con esta restricción indicamos que la columna
asociada será la clave primaria.
- INDEX. Indica que la columna lleva asociado un índice y por tanto su contenido
se almacena en una tabla de índices que agiliza las operaciones de búsqueda
sobre las tablas.
- UNIQUE: Indica que la columna lleva asociado un índice único, es decir, que no
permite duplicados. Por ejemplo: en la tabla Clientes anterior, se ha elegido el
CodCliente como PRIMARY KEY, pero el atributo DNI de igual forma no puede
repetirse. Para recoger esta restricción lo podemos definir como UNIQUE. Se
utiliza por tanto, para crear claves alternativas.
- REFERENCES: Se usa para especificar que esa columna es clave ajena que
referencia (apunta) a una columna que es clave primaria en otra tabla.
Si dentro de una misma ventana SQL se escriben varias órdenes SQL deben
separarse por punto y coma (;). En el caso que nos ocupa los dos CREATE TABLE
están separados por punto y coma.
Debe tenerse en cuenta que las tablas se crean en la base de datos activa, por
lo que hay que prestar especial atención a seleccionar la base de datos sobre la
que se va a trabajar.
9
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Restricciones que afectan a varias columnas. Al crear una tabla y tras haber
definido sus columnas individuales con nombres, tipos de datos y restricciones de una
sola columna, llega el momento de declarar las restricciones formadas por más de una
columna. Su sintaxis:
10
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
11
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Ejemplo:
En la tabla Habitaciones se crea una clave principal formada por dos campos y se
le asigna el nombre PK_HAB.
En la tabla Reservas:
- Un índice único, UQ_RESERVA, para los campos indicados. Es útil para que
no pueda repetirse hotel + habitación + fecha entrada.
- Una clave ajena, FK_HAB que apunta a la tabla Habitaciones. En
REFERENCES se indica la tabla a la que apunta y su clave principal entre
paréntesis. Los campos que forman la clave ajena se indican tras FOREIGN
KEY. Las iniciales FK vienen de FOREIGN KEY, clave ajena en inglés.
Por defecto, las tablas creadas en MariaDB son del tipo InnoDb. Si queremos
cambiar el tipo de motor debemos especificarlo en la sentencias CREATE TABLE
de la siguiente forma: Create Table (definición de la tabla) Engine=TipoMotor;
12
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Permite modificar la estructura de una tabla: añadir una nueva columna, cambiar el
tipo de una columna, establecer una clave primaria, eliminar una columna, establecer
una clave ajena, etc. La sintaxis general de esta sentencia admite muchas opciones,
las más importantes son:
- ADD [COLUMN]. Añadir una nueva columna a la tabla. Con FIRST la columna
será la primera y con AFTER se añade “después de” la que se indique.
- ADD INDEX. Añadir un nuevo índice.
- ADD [CONSTRAINT]… Añadir restricciones de clave primaria, ajena, índice
único.
- CHANGE [COLUMN]. Permite cambiar el nombre de una columna y su
definición.
- DROP [COLUMN]. Eliminar una columna.
- DROP PRIMARY KEY. Eliminar la clave primaria.
- DROP INDEX NombreIndice. Eliminar un índice.
- DROP FOREIGN KEY Símbolo. Eliminar una restricción de clave ajena.
- ALTER COLUMN NombreColumna. Modificar la definición de una columna.
- MODIFY [COLUMN]. Modificar la definición de la columna. No puede
modificarse su nombre.
- RENAME NuevoNombreTabla. Modificar nombre de tabla.
13
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Ejemplos:
14
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Su sintaxis:
En este caso se elimina antes la tabla subordinada, la que contiene la clave ajena,
y luego la principal.
Los índices agilizan el acceso a los datos de las tablas. Suelen crearse para
columnas que se utilizan a menudo en las búsquedas. Funcionan de forma parecida a
como lo hace el índice de un libro de papel, es decir, buscamos una palabra o capítulo
en el índice y este nos indica la página en la que está la información que buscamos.
Los índices aportan la ventaja de un acceso más rápido a los datos, pero tienen
inconvenientes. Es necesario un espacio de almacenamiento extra y además deben
reorganizarse con las altas, bajas y modificaciones de datos.
Pueden crearse índices con la sentencias CREATE TABLE y ALTER TABLE como
se ha visto, o bien mediante la orden CREATE INDEX que se detalla a continuación.
15
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Las vistas son sentencias SELECT a las que se les da un nombre para
almacenarlas en la base de datos y poder usarlas cuando sea necesario.
Para trabajar con vistas se dispone de las sentencias: CREATE VIEW, ALTER
VIEW y DROP VIEW.
Ejemplo de una vista que incluye una SELECT que muestra nombre de hotel,
numero de habitación y su precio base.
16
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Para probar estas sentencias podemos hacer uso de un cliente de texto que viene
con el paquete Xampp.
- u root. Aquí se especifica el usuario con el que vamos a conectar. En este caso
root.
17
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
Una vez conectados podemos probar las órdenes SQL vistas hasta ahora,
terminando siempre cada sentencia con punto y coma.
18
IES Suárez de Figueroa- @vanza
Administración de sistemas informáticos en red
Gestión de bases de datos Unidad 3. Diseño físico de bases de datos
19