0% encontró este documento útil (0 votos)
7 vistas8 páginas

Proyecto Final

El documento describe la transformación de un modelo entidad-relación a un esquema relacional, incluyendo la creación de tablas y relaciones en MySQL para gestionar datos de trabajadores, departamentos, contratos, nóminas y categorías profesionales. Se presentan ejemplos de inserción de datos y consultas SQL utilizando diferentes tipos de JOIN para obtener información relacionada entre las tablas. Además, se menciona la experiencia adquirida al realizar la actividad, destacando la importancia de entender las relaciones entre los datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas8 páginas

Proyecto Final

El documento describe la transformación de un modelo entidad-relación a un esquema relacional, incluyendo la creación de tablas y relaciones en MySQL para gestionar datos de trabajadores, departamentos, contratos, nóminas y categorías profesionales. Se presentan ejemplos de inserción de datos y consultas SQL utilizando diferentes tipos de JOIN para obtener información relacionada entre las tablas. Además, se menciona la experiencia adquirida al realizar la actividad, destacando la importancia de entender las relaciones entre los datos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Universidad Autónoma de Santo Domingo

Presentación

Nombre:

Matrícula:

Asignatura:

Sección: W04

Tema:

Maestra: Noemi Cuevas


Transformación del Modelo E/R a Esquema Relacional

Entidades:

Trabajadores:

 dni (PK)
 nombre
 apellidos
 dirección
 teléfono
 nº ss

Departamentos:

 cod_departamento (PK)
 nombre

Contratos:

 n_contrato (PK)
 fecha_inicial
 fecha_final
 dni (FK → Trabajadores)
 id_categoria (FK → Categorías Profesionales)

Nóminas:

 n_contrato (PK, FK → Contratos)


 fecha
 salario

Categorías Profesionales:

 id_categoria (PK)
 nombre
Relaciones:

Trabajar (1,N desde Trabajadores hacia Departamentos)

 FK cod_departamento en Trabajadores.

Coordinar (1,1 desde Trabajadores a Departamentos)

 Añadir FK dni_coordinador en Departamentos.

Pertenecer (0,N desde Contratos a Categorías Profesionales)

o FK id_categoria en Contratos.

Creación de Base de Datos y Tablas en MySQL


CREATE DATABASE Organigrama;

USE Organigrama;

CREATE TABLE CategoriasProfesionales (

id_categoria INT PRIMARY KEY,

nombre VARCHAR(50)

);
CREATE TABLE Departamentos (

cod_departamento INT PRIMARY KEY,

nombre VARCHAR(50),

dni_coordinador VARCHAR(10)

);

CREATE TABLE Trabajadores (

dni VARCHAR(10) PRIMARY KEY,

nombre VARCHAR(50),

apellidos VARCHAR(50),

direccion VARCHAR(100),

telefono VARCHAR(20),

nss VARCHAR(15),

cod_departamento INT,

FOREIGN KEY (cod_departamento) REFERENCES Departamentos(cod_departamento)

);

ALTER TABLE Departamentos

ADD FOREIGN KEY (dni_coordinador) REFERENCES Trabajadores(dni);

CREATE TABLE Contratos (

n_contrato INT PRIMARY KEY,

fecha_inicial DATE,

fecha_final DATE,

dni VARCHAR(10),

id_categoria INT,

FOREIGN KEY (dni) REFERENCES Trabajadores(dni),

FOREIGN KEY (id_categoria) REFERENCES CategoriasProfesionales(id_categoria)

);

CREATE TABLE Nominas (

n_contrato INT,
fecha DATE,

salario DECIMAL(10,2),

PRIMARY KEY (n_contrato, fecha),

FOREIGN KEY (n_contrato) REFERENCES Contratos(n_contrato)

);

Inserción de Datos
INSERT INTO CategoriasProfesionales VALUES
(1, 'Administrativo'),
(2, 'Técnico'),
(3, 'Gerente'),
(4, 'Analista'),
(5, 'Contador');

INSERT INTO Departamentos VALUES


(10, 'Finanzas', NULL),
(20, 'Recursos Humanos', NULL);

INSERT INTO Trabajadores VALUES


('T01', 'Ana', 'Gómez', 'Calle A', '123456789', '123-45', 10),
('T02', 'Luis', 'Pérez', 'Calle B', '987654321', '678-90', 10),
('T03', 'Laura', 'López', 'Calle C', '555123456', '112-23', 20),
('T04', 'Carlos', 'Ruiz', 'Calle D', '444123456', '334-56', 20),
('T05', 'Marta', 'Díaz', 'Calle E', '222333444', '445-78', 10);

-- Asignar coordinadores
UPDATE Departamentos SET dni_coordinador = 'T01' WHERE cod_departamento = 10;
UPDATE Departamentos SET dni_coordinador = 'T03' WHERE cod_departamento = 20;

INSERT INTO Contratos VALUES


(100, '2024-01-01', '2024-12-31', 'T01', 1),
(101, '2024-02-01', '2024-11-30', 'T02', 2),
(102, '2024-03-01', '2024-10-31', 'T03', 3),
(103, '2024-04-01', '2024-09-30', 'T04', 4),
(104, '2024-05-01', '2024-08-31', 'T05', 5);

INSERT INTO Nominas VALUES


(100, '2024-05-01', 1500.00),
(101, '2024-05-01', 1600.00),
(102, '2024-05-01', 1700.00),
(103, '2024-05-01', 1800.00),
(104, '2024-05-01', 1900.00);

Consultas JOIN (INNER, LEFT, RIGHT).


-- INNER JOIN: Trabajadores y su Departamento

SELECT t.nombre, t.apellidos, d.nombre AS departamento

FROM Trabajadores t

INNER JOIN Departamentos d ON t.cod_departamento = d.cod_departamento;

-- LEFT JOIN: Todos los contratos y su categoría (aunque no tenga)

SELECT c.n_contrato, c.fecha_inicial, cp.nombre AS categoria

FROM Contratos c

LEFT JOIN CategoriasProfesionales cp ON c.id_categoria = cp.id_categoria;


-- RIGHT JOIN: Nóminas y contratos (aunque un contrato no tenga nómina en ese mes)

SELECT n.fecha, n.salario, c.dni

FROM Nominas n
RIGHT JOIN Contratos c ON n.n_contrato = c.n_contrato;

Experiencia durante el proceso de realización de la actividad.

Este proyecto fue una práctica que me permitió usar solicitudes reales de SQL y observar los
resultados directamente del rendimiento de consultoría JOIN (INNER, LEFT, RIGHT) en
phpMyAdmin. Las consultas JOIN (INNER, LEFT, RIGHT) me ayudaron a imaginar cómo están
relacionados los datos entre las diferentes tablas, algo importante para la base de datos procesada
correctamente en situaciones reales.

También podría gustarte