Tienda Online Relacional

Esquema relacional de base datos

provincia (

codp varchar(2),

nombre varchar(25) )

CP (codp)


localidad (

codm varchar(4),

pueblo varchar(50),

provincia varchar(2))

CP (codm,provincia)

CAj (provincia) —> provincia

VNN (pueblo)


usuario (

email varchar(50),

nombre varchar(35),

apellidos varchar(55),

dni varchar(12),

telefono varchar(15),

calle varchar(45),

calle2 varchar(45),

codpos varchar(5),

pueblo varchar(4),

provincia varchar(2),

nacido date)

CP (email)

CAlt (dni)

CAj (pueblo, provincia) —> localidad VNN 

VNN (apellidos)

VNN (nombre)


direnvio (

email varchar(50),

calle varchar(45),

calle2 varchar(45),

codpos varchar(5),

pueblo varchar(4),

provincia varchar(2))

CP (email)

CAj (pueblo, provincia) —> localidad VNN 

CAj (email) —> usuario


marca (

marca varchar(15),

empresa varchar(60),

logo blob )

CP (marca)

articulo (

cod varchar(7),

nombre varchar(45),

pvp decimal(7,2),

marca varchar(15),

imagen blob,

urlimagen varchar(100),

especificaciones text)

CP (cod)

CAj (marca) —> marca


camara (

cod varchar(7),

resolucion varchar(15),

sensor varchar(45),

tipo varchar(45),

factor varchar(10),

objetivo varchar(15),

pantalla varchar(20),

zoom varchar(40))

CP (cod)

CAj (cod) —> articulo


tv (

cod varchar(7),

panel varchar(45),

pantalla smallint(6),

resolucion varchar(15),

hdreadyfullhd varchar(6),

tdt tinyint(1) )

CP (cod)

CAj (cod) —> articulo


memoria (

cod varchar(7),

tipo varchar(30) )

CP (cod)

CAj (cod) —> articulo


objetivo (

cod varchar(7),

tipo varchar(15),

montura varchar(15),

focal varchar(10),

apertura varchar(10),

especiales varchar(35) )

CP (cod)

CAj (cod) —> articulo

pack (

cod varchar(7) )

CP (cod)

CAj (cod) —> articulo


ptienea (

pack varchar(7),

articulo varchar(7))

CP (pack,articulo)

CAj (articulo) —> articulo 

CAj (pack) —> pack


stock (

articulo varchar(7),

disponible int(11),

entrega set( 'Descatalogado', 'Próximamente', '24 horas', '3/4 días', '1/2 semanas' ) )

CP (articulo)

CAj (articulo) —> articulo 


cesta (

articulo varchar(7),

usuario varchar(50),

fecha datetime )

CP (articulo,usuario)

CAj (articulo) —> articulo

CAj (usuario) —> usuario


pedido (

numPedido int(11),

usuario varchar(50),

fecha datetime ) 

CP (numPedido)

CAj (usuario) —> usuario VNN 

VNN (fecha)


linped (

numPedido int(11),

linea int(11),

articulo varchar(7),

importe decimal(9,2),

cantidad int(11) )

CP (linea,numPedido)

CAj (articulo) —> articulo VNN 

CAj (numPedido) —> pedido

VNN (importe)

Acceso remoto al servidor MariaDB de la asignatura

Para conectarse al servidor MariaDB de la asignatura desde cualquier lugar deberemos tener en cuenta los siguientes pasos:

Acceso desde fuera de la red de la Universidad de Alicante

Si intentas entrar desde fuera de la Universidad lo más probable es que te aparezca un error de acceso debido a un control de seguridad. En ese caso haz click aquí para solicitar el acceso y en menos de un minuto deberás poder entrar. Este permiso dura, aproximadamente, 24 horas.

Importación de copia de respaldo

Otra opción de trabajo, no excluyente con el acceso remoto a nuestro servidor, es trabajar contra un servidor MariaDB local, instalado en nuestra máquina. Ya no accedes a Internet, trabajas en tu propio ordenador. Para ello necesitas instalar MariaDB e importar nuestras bases de datos. En las copias de respaldo que te ofrecemos aquí se incluye la creación de tablas y la inserción de filas, de tal forma que se obtiene una copia exacta de la base de datos usada en prácticas de FBD.

Suponemos que se dispone de un servidor MariaDB/MySQL ejecutándose en localhost, y un cliente que permita acceder a él. Normalmente, la configuración del cliente será parecida a la mostrada anteriormente, pero cambiando el host por 127.0.0.1, y las credenciales del usuario las que se hayan establecido en tu servidor local —root, si no se ha especificado un usuario no administrador—.

Es importante que el servidor de base de datos esté configurado acorde a los requisitos de la asignatura, especialmente en cuanto al comportamiento de group by (agregaciones). Para ello, ejecuta en el cliente conectado a tu servidor:

SET @@GLOBAL.sql_mode=CONCAT(@@SQL_MODE,',ONLY_FULL_GROUP_BY,ANSI');

SET @@SESSION.sql_mode=@@GLOBAL.sql_mode;

Los enlaces contienen un fichero de texto (.sql) con codificación de caracteres UTF-8. Dependiendo del sistema operativo, y del servidor y cliente de MariaDB/MySQL, es posible que se deba convertir a otra codificación de caracteres si se quiere mantener acentos y demás caracteres regionales —el bloc de notas permite "guardar como" en diferentes codificaciones—.

Descárgate el ToLtodo2022.sql (versión en inglés, OnlineStoreFull2022.sql), el volcado de la base de datos Tienda Online. También puedes descargarte EjemploTodo20190727.sql, el volcado de la base de datos Ejemplo que se utiliza en las lecciones.

Creación de la base de datos

Opción A

Opción B

Nota importante: el fichero está codificado en UTF-8. Dependiendo del sistema operativo y cliente que se utilicen podría ser necesario traducirlo a otra codificación para leer correctamente los caracteres propios de nuestro idioma. En MS Windows se puede hacer fácil con el bloc de notas.