lunes, 21 de diciembre de 2020

Aprender bases de datos desde cero

Puede que te haya ocurrido que al intentar instalar tu servidor de base de datos en Windows, utilizando los instaladores de Oracle, por algún motivo no te haya funcionado y por eso estés aquí, buscando alternativa. También puede ser que simplemente te guste más utilizar Ubuntu. Sea cual sea tu caso, voy a mostrarte cómo instalar tu servidor de base de datos en Ubuntu para que puedas prácticar SQL. Qué coño, además voy a ayudarte a que aprendas a hacer consultas SQL. Y si me da por ahí, pues ya de paso pues también te ayudo con los modelos entidad - relación. Voy a ir actualizando esta entrada poco a poco, incluyendo además vídeos con explicaciones, por lo que te recomiendo que estés atento si te gusta cómo explico.

 

Ejercicio 1

A continuación se resolverán ejercicios de bases de datos. Se dedicará un vídeo al modelo entidad relación y otro al modelo SQL. 

Enunciado
 
“Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes (nombre, apellidos, dni, dirección y fecha de nacimiento).
Cada producto tiene un nombre y un código, así como un precio unitario.
Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por varios clientes.
Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes productos. De cada proveedor se desea conocer el NIF, nombre y dirección”.

A continuación se muestra la solución del modelo entidad - relación. Recomiendo visualizar el vídeo para tener más detalles.


 

Se adjunta el vídeo explicativo del modelo entidad - relación.
 
 

 
Tras hacer el modelo entidad - relación, vamos a pasarlo al modelo relacional.


Les recomiendo ver el siguiente vídeo si quieren ver cómo se hace paso a paso el modelo relacional.

 

 
 A continuación, se crean las tablas en SQL.


create table clientes (
DNI varchar (15),
nombre varchar (25),
apellidos varchar (25),
fechnac date,
CONSTRAINT PK_Clientes PRIMARY KEY (DNI)
);

create table proveedores (
NIF varchar (15),
nombre varchar (30),
direccion varchar (50),
CONSTRAINT PK_Proveedores PRIMARY KEY (NIF)
);

create table productos (
codigo int,
nombre varchar (25),
precio float (6, 2),
nif_prov varchar (15),
CONSTRAINT PK_Productos PRIMARY KEY (Codigo),
CONSTRAINT FK_Productos FOREIGN KEY (nif_prov) REFERENCES proveedores(NIF)
);

create table cli-pro (
DNI_Cli varchar (15),
Cod_prod int,
fecha date,
cantidad int, CONSTRAINT PK_CliPro PRIMARY KEY (DNI_Cli, Cod_prod),
CONSTRAINT FK1_CliPro FOREIGN KEY (DNI_Cli) REFERENCES clientes(DNI),
CONSTRAINT FK2_CliPro FOREIGN KEY (Cod_prod) REFERENCES productos(codigo)
);

En el siguiente vídeo creo las tablas en SQL.



 
Si tienen alguna duda con respecto a este ejercicio, no duden en dejar un comentario.
 

“Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España. Los encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el dni, nombre, teléfono, dirección, salario y población en la que vive. De los paquetes transportados interesa conocer el código de paquete, descripción, destinatario y dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete sólo puede ser distribuido por un camionero. De las provincias a las que llegan los paquetes interesa guardar el código de provincia y el nombre. Un paquete sólo puede llegar a una provincia. Sin embargo, a una provincia pueden llegar varios paquetes.

De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo, tipo y potencia. Un camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser conducido por varios camioneros”.

Modelo entidad - relación.


 

Si quieren, pueden visualizar el siguiente vídeo donde les explico cómo hacer el ejercicio paso a paso.

 



Modelo relacional.

Próximamente. 

Creación de tablas en SQL.

Próximamente. 

 

“Se desea diseñar la base de datos de un Instituto. En la base de datos se desea guardar los datos de los profesores del Instituto (DNI, nombre, dirección y teléfono). Los profesores imparten módulos, y cada módulo tiene un código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea guardar el nº de expediente, nombre, apellidos y fecha de nacimiento. Los profesores pueden impartir varios módulos, pero un módulo sólo puede ser impartido por un profesor. Cada curso tiene un grupo de alumnos, uno de los cuales es el delegado del grupo”.

 

Modelo entidad - relación.



 

En el siguiente vídeo, les explico cómo hacer este ejercicio.

 



Modelo relacional.

Próximamente. 

Creación de tablas en SQL.

Próximamente. 


La empresa dispone de una serie de coches para su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada coche.

Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y número de teléfono: además, los clientes se diferencian por un código interno de la empresa que se incrementa automáticamente cuando un cliente se da de alta en ella. Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente.

El concesionario también se encarga de llevar a cabo las revisiones que se realizan a cada coche. Cada revisión tiene asociado un código que se incrementa automáticamente por cada revisión que se haga. De cada revisión se desea saber si se ha hecho cambio de filtro, si se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. Los coches pueden pasar varias revisiones en el concesionario”

 

Modelo entidad - relación.

 

A continuación, les dejo el vídeo donde explico paso a paso cómo se realiza el modelo entidad relación.




Modelo relacional.

Próximamente. 

Creación de tablas en SQL.

Próximamente.

 

Dudas y sugerencias

Si tienen alguna duda o les ha surgido algún problema durante la instalación, no duden en dejar un comentario.

1 comentario: