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:
Descarga e instala una aplicación cliente de acceso a MariaDB adecuada para el sistema operativo de tu máquina. Para Windows recomendamos HeidiSQL, DBeaver para Mac, pero podrás encontrar muchas más en el mercado.
Configura los parámetros de acceso al servidor de prácticas:
Tipo de red: MySQL (TCP/IP)
Nombre del host/IP: bbdd.dlsi.ua.es
Puerto: 3306
Usuario/contraseña: Las que te ha asignado la aplicación FBDweb para acceder a tu base de datos MariaDB.
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
Desde HeidiSQL, o cualquier otro cliente, conectado con un usuario con permisos en tu MariaDB/MySQL (localhost:3306) para crear bases de datos y tablas.
"Archivo/Ejecutar archivo SQL...". O abrir el fichero y ejecutar.
Opción B
Por línea de comando, se necesita que el ejecutable mysql pueda invocarse desde la ruta en la que se abre el terminal.
Extraer tol.sql del comprimido y ubicarlo en esa misma ruta.
Ejecutar mysql -u xxx -pyyy (xxx es un usuario con permisos para crear bases de datos y tablas, se le supone contraseña yyy)
Ejecutar \. ToLtodo2022.sql
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.