Estructura de una Base de
Datos
MÓDULO: BASES DE DATOS RELACIONALES
SEMANA: Semana 7
Docente: Yosser Urzúa Urzua
Estudiante:
Índice
Antecedentes generales y objetivos........................................................................................3
Diccionario de datos................................................................................................................6
Conclusión.............................................................................................................................21
Bibliografía...........................................................................................................................23
Nota para el estudiante:
El índice es una tabla de contenidos con la jerarquía de títulos que expresa la
estructura del informe.
Una vez que termines de armar tu ensayo, actualiza esta tabla haciendo clic derecho
sobre la misma y marcando la opción “Actualizar campos” y luego “Actualizar toda la
tabla”.
2
Antecedentes generales y objetivos
En esta sección corresponde que presentes tu trabajo y definas el título del
proyecto, junto con describir brevemente el caso presentado.
Además, esta sección debe contener:
Objetivos generales.
Objetivos específicos.
Parte 1:
Determina instancias de inserción de datos utilizando el Lenguaje de Consultas Estructurado SQL. En
esta actividad se va a utilizar la estructura creada en la semana anterior (semana 6). Las tablas que verás
a continuación son las mismas.
1. Códigos para crear la base de datos.
2. Códigos para crear las tablas.
a. Crear una tabla que contenga las filas de la tabla empleados. Su nombre debe ser empleados.
b. Crear una tabla que contenga las filas de la tabla oficinas. Su nombre debe ser oficinas.
c. Crear una tabla que contenga las filas de la tabla productos. Su nombre debe ser productos.
d. Crear una tabla que contenga las filas de la tabla pedidos. Su nombre debe ser pedidos.
e. Crear una tabla que contenga las filas de la tabla clientes.
Su nombre debe ser clientes.
3. Códigos para crear claves primarias.
4. Códigos para crear claves foráneas.
3
--1-
Create Database Empresa;
use Empresa;
--2-
Create Table Empleados
(id_empleado int not null primary key, nombre char(50), apellido char(50),
edad int , sucursal int , cargo char(30),
fecha_ingreso datetime, jefatura int , base_ventas int, monto_ventas int);
Create Table Oficinas
(sucursal int not null primary key, direccion char(100), ciudad char(50),
region char(50), jefatura int , meta int, monto_ventasof int);
Create Table Clientes
(id_cliente int not null primary key, nombre_cli char(50), empleado_id int , credito_cli int);
Create Table Productos
(id_fabrica char(3) not null, id_producto char(5) not null , nombre_prod char(50), precio_prod int,
stock int, CONSTRAINT PK_Productos PRIMARY KEY (id_fabrica, id_producto));
4
Create Table Pedidos
(id_pedido int not null primary key, num_pedido int, fecha_pedido datetime,
id_cliente int not null, id_vendedor int not null,
id_fabrica char(3) not null, cod_producto char(5),
cantidad int, valor int );
ALTER TABLE Empleados
ADD FOREIGN KEY (sucursal) REFERENCES Oficinas(sucursal);
ALTER TABLE Clientes
ADD FOREIGN KEY (empleado_id) REFERENCES Empleados(id_empleado);
ALTER TABLE Pedidos
ADD FOREIGN KEY (id_cliente) REFERENCES Clientes(id_cliente);
ALTER TABLE Pedidos
ADD FOREIGN KEY (id_vendedor) REFERENCES Empleados(id_empleado);
Para esta actividad se pide determinar instancias de inserción de datos utilizando el Lenguaje de
Consultas Estructurado SQL a través de breves ejercicios:
A. Agregar una nueva oficina para la ciudad de Melipilla, con el número de oficina 130, con una meta de
$1.000.000 y región Metropolitana de Santiago.
INSERT INTO Oficinas
VALUES (130, ' ', 'Melipilla', 'Metropolitana de Santiago', null, 1000000, 0);
5
B. Agregar un nuevo empleado: Id_empleado 130, Nombre Mariano, Apellido Robles, Edad 28, Sucursal
44, Cargo distribuidor, Fecha_ingreso 22/02/2020, Jefatura 118, Base_Ventas $500.000, Monto_ventas
$475.000.
set dateformat dmy;
INSERT INTO Empleados
VALUES (130, 'Mariano', 'Robles', 28, 44, 'distribuidor', '22-02-2020', 118, 500000, 475000);
Parte 2:
Según requerimientos, realiza el diseño físico de un modelo relacional aplicando las sentencias del
lenguaje SQL de definición de datos.
Crear la siguiente estructura de base de datos y efectuar las consultas solicitadas.
DESARROLLO
6
Create Database Cine;
use Cine;
--Tabla Película
CREATE TABLE pelicula(
codigo_pelicula char(3) PRIMARY KEY,
titulo varchar(35),
nacionalidad varchar(50),
productora varchar(50),
fechaEstreno date,
codDirector numeric,
codCategoria numeric
);
--Tabla director
CREATE TABLE director (
codigo_director numeric PRIMARY KEY,
nombre varchar(35),
apellidos varchar(50)
);
--Tabla Categoría
CREATE TABLE categoria(
codigo_categoria numeric PRIMARY KEY,
nombre varchar(35)
);
7
--Tabla Cliente
CREATE TABLE cliente (
codigo_cliente numeric PRIMARY KEY,
nombre varchar(20),
dirección varchar(50),
teléfono varchar(9)
);
--Tabla Pago
CREATE TABLE pago (
codCliente numeric PRIMARY KEY,
fechaPago date,
monto numeric
);
--Tabla reproduce
CREATE TABLE reproduce (
fechaCom date PRIMARY KEY,
fechaTer date,
codCliente numeric,
8
codPelicula char(3)
);
ALTER TABLE pelicula
ADD FOREIGN KEY (codDirector) REFERENCES director(codigo_director);
ALTER TABLE pelicula
ADD FOREIGN KEY (codCategoria) REFERENCES categoria(codigo_categoria);
ALTER TABLE pago
ADD FOREIGN KEY (fechaPago) REFERENCES reproduce(fechaCom);
ALTER TABLE reproduce
ADD FOREIGN KEY (codCliente) REFERENCES cliente(codigo_cliente);
ALTER TABLE reproduce
ADD FOREIGN KEY (codPelicula) REFERENCES pelicula(codigo_pelicula);
--Datos pelicula
set dateformat dmy;
INSERT INTO pelicula
VALUES ('23r', 'Forrest Gump', 'EE. UU', 'Paramount Pictures', '06-07-1994', 55, 9);
INSERT INTO pelicula
9
VALUES ('50s', 'León The Professional', 'Francia', 'Columbia Pictures', '14-09-1994', 60, 10);
INSERT INTO pelicula
VALUES ('36p', 'Desde mi cielo', 'EE. UU', 'DreamWorks Pictures', '11-12-2009', 35, 3);
INSERT INTO pelicula
VALUES ('41r', 'Encanto', 'EE. UU', 'Walt Disney Pictures', '19-11-2021', 40, 7);
INSERT INTO pelicula
VALUES ('50t', 'La vida es bella', 'Italia', 'Miramax', '20-12-1997', 25, 9);
--Datos Director
INSERT INTO director VALUES (25, 'Roberto', 'Benigni');
INSERT INTO director VALUES (35, 'Peter', 'Jackson');
INSERT INTO director VALUES (40, 'Byron', 'Howard');
INSERT INTO director VALUES (55, 'Robert', 'Zemeckis');
INSERT INTO director VALUES (60, 'Luc', 'Besson');
--Datos Categoria
INSERT INTO categoria VALUES (3, 'Drama');
INSERT INTO categoria VALUES (7, 'Musical Animada');
INSERT INTO categoria VALUES (9, 'Comedia Dramática');
INSERT INTO categoria VALUES (10, 'Drama Policiaco');
INSERT INTO categoria VALUES (2, 'Infantil');
10
--Datos Cliente
INSERT INTO cliente VALUES (100, 'Miguel González', 'Av. Bernardo O'Higgins 1040', 984056031);
INSERT INTO cliente VALUES (101, 'Javiera Malloa', 'Av. Encina 220', 963477010);
INSERT INTO cliente VALUES (102, 'Barbara Figueroa', 'Los Pintores 2880', 977466302);
INSERT INTO cliente VALUES (103, 'David Ulloa', 'Los Embajadores 9990', 856142208);
INSERT INTO cliente VALUES (104, 'Pilar Plaza', 'Pje. Las Golondrinas 556', 983117900);
--Pago
set dateformat dmy;
INSERT INTO pago VALUES (100, '12-12-2022', 10500);
INSERT INTO pago VALUES (101, '10-12-2022', 30450);
INSERT INTO pago VALUES (102, '05-10-2022', 90300);
INSERT INTO pago VALUES (103, '02-07-2022', 7450);
INSERT INTO pago VALUES (104, '01-12-2020', 9990);
--Datos Reproduce
set dateformat dmy;
INSERT INTO reproduce VALUES ('12-12-2022', '19-02-2022', 100, '23r');
INSERT INTO reproduce VALUES ('10-12-2022', '17-02-2022', 101, '50s');
INSERT INTO reproduce VALUES ('05-10-2022', '12-10-2022', 102, '36p');
INSERT INTO reproduce VALUES ('02-07-2022', '09-07-2022', 103, '41r');
INSERT INTO reproduce VALUES ('01-12-2020', '08-12-2020', 104, '50t');
11
Parte 3:
Según requerimientos, organiza instancias de bases datos para su respaldo y recuperación de
información.
Con base en los ejercicios realizados en la Parte 2, se pide:
1. Crear una copia de respaldo de la base de datos creada.
Le damos clic derecho a la base de datos que deseamos respaldar, nos vamos a Tasks (Tareas),
luego a copia de seguridad (Back up).
12
Luego nos vamos a opciones de medios y nos aparecen opciones si queremos sobrescribir el respaldo,
dependiendo de lo que queramos elegimos la opción.
Finalmente completamos la copia de seguridad satisfactoriamente.
2. Indicar los pasos para restaurar la copia creada.
13
Nos vamos a Tareas, Restaurar, Base de Datos...
Nos aparecerá un cuadro de dialogo, marcamos dispositivo, le damos examinar...
Presionamos “Agregar” …
14
Aparecerá la copia de seguridad, si no aparece automáticamente, la podemos buscar en las carpetas,
seleccionamos la copia de seguridad, le damos “Aceptar” ...
Seleccionamos la copia de seguridad...
15
Hacemos Click sobre, Sobrescribir la base de datos y también sobre,” Cerrar las conexiones existentes
con la base de datos de destino”, porque si encuentra alguna conexión abierta no va a permitir
sobrescribirla...
Presionamos “Aceptar” y la base de datos se restaura correctamente.
16
Parte 4:
Según requerimientos, manipula datos sobre estructura creada en ejercicio realizado anteriormente.
Con base en los ejercicios realizados en la Parte 2 y la Parte 3, realiza las siguientes consultas:
1. Mostrar todas las películas ordenadas por título.
select * from pelicula
order by titulo;
2. Mostrar el nombre de la película que empiece con E.
SELECT * FROM pelicula WHERE titulo LIKE 'E%';
3. Mostrar los códigos de las películas que terminen con R.
SELECT * FROM pelicula WHERE codigo_pelicula LIKE '%R';
17
4. Mostrar los 3 primeros directores.
SELECT TOP 3 *
FROM director
ORDER BY codigo_director;
5. Mostrar las 3 últimas categorías.
SELECT TOP 3 *
FROM categoria
ORDER BY codigo_categoria desc;
18
6. Contar las películas por categoría
Select p.codCategoria, c.nombre, count(c.codigo_categoria) as total_x_categoria
from pelicula p inner join categoria c on
c.codigo_categoria=p.codCategoria group by p.codCategoria, c.nombre;
19
Diccionario de datos
Nombre de archivo: Tabla pelicula Fecha de creación: 02/07/2024
Descripción: tabla pelicula de bb.dd Cine.
Campo Tipo Longitud Descripción
codigo_pelicula char 3 Código de la pelicula.
titulo varchar 35 Título de la pelicula.
nacionalidad varchar 50 Nacionalidad de la película.
productora varchar 50 Productora de la película.
fechaEstreno date Fecha de estreno de la
película.
codDirector numeric Código del director.
codCategoria numeric Código de la categoría.
Relaciones: Campos llave
codigo_director de la tabla director con codDirector codigo_pelicula PK
tabla pelicula. codDirector FK
Codigo_categoria de la tabla categoria con codCategoria FK
codCategoria de la tabla pelicula.
Nombre de archivo: Tabla director Fecha de creación: 02/07/2024
Descripción: tabla director de bb.dd Cine.
Campo Tipo Longitud Descripción
codigo_director numeric Código del director.
nombre varchar 35 Nombre del director.
apellidos varchar 50 Apellidos del director.
Relaciones: Campos llave
Sin relación. codigo_director PK
Nombre de archivo: Tabla categoria Fecha de creación: 02/07/2024
Descripción: tabla categoria de bb.dd Cine
Campo Tipo Longitud Descripción
codigo_categoria numeric Código de la categoría.
nombre varchar 35 Nombre de la categoría.
Relaciones: Campos llave
Sin relación. codigo_categoria PK
20
Nombre de archivo: Tabla cliente Fecha de creación: 02/07/2024
Descripción: tabla cliente de bb.dd Cine.
Campo Tipo Longitud Descripción
codigo_cliente numeric Código del cliente.
nombre varchar 20 Nombre del cliente.
direccion varchar 50 Domicilio del cliente.
telefono varchar 9 Teléfono del cliente.
Relaciones: Campos llave
Sin relación. codigo_cliente PK
Nombre de archivo: Tabla pago Fecha de creación: 02/07/2024
Descripción: tabla pago de bb.dd Cine.
Campo Tipo Longitud Descripción
codCliente numeric Código del cliente.
fechaPago date La fecha de pago.
monto numeric El monto comprado.
Relaciones: Campos llave
fechaCom de la tabla reproduce con fechaPago de la codCliente PK
tabla pago. fechaPago FK
Nombre de archivo: Tabla reproduce Fecha de creación: 02/07/2024
Descripción: tabla reproduce de bb.dd Cine.
Campo Tipo Longitud Descripción
fechaCom date Fecha de comienzo
reproducción.
fechaTer date Fecha termino de
reproducción.
codCliente numeric Código del Cliente.
codPelicula char 3 Código de la pelicula.
Relaciones: Campos llave
codigo_cliente de la tabla cliente con codCliente de fechaCom PK
la tabla reproduce. codCliente FK
codigo_pelicula de la tabla pelicula con codPelicula codPelicula FK
de la tabla reproduce.
21
22