Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CICLO: V Ciclo
Caratula.......................................................................................................................................... Página 01
Indice.............................................................................................................................................. Página 02
Introducción.................................................................................................................................... Página 03
Conclusiones................................................................................................................................. Página 11
Bibliografía..................................................................................................................................... Página 12
Anexos........................................................................................................................................... Página 13
INTRODUCCIÓN
En el presente trabajo se ha realizado el Diseño Conceptual y Lógico de un Sistema de Base de Datos para
una Empresa dedicada al Alquiler de Películas “Pegasus EIRL”, en el cual desea tener almacenado una
Ficha Técnica de cada película donde el usuario antes de realizar el alquiler de la misma, pueda conocer
un poco el detalle técnico de cada Película (Director y Reparto).
Básicamente nos hemos basado en los datos técnicos de las películas, para poder darnos un panorama de
lo que normalmente le interesa al usuario referente a los datos de la película, actores, director, entre otros
datos.
Hemos realizado el análisis previo de la Base de Datos, obteniendo el listado de las Tablas, las Llaves
Primarias y Foráneas, Relaciones, Store Procedures para actualización entre otros datos más.
A continuación, invitamos a que puedan leer el presente informe para poder conocer a todo detalle el
análisis y la implementación realizada de este Sistema de Base de Datos y su modelo de datos.
DESARROLLO DEL TEMA DE INVESTIGACION
La empresa en cuestión, desea tener la información técnica detallada de toda su colección de películas y
quieren tenerlo en una base de datos para poder consultar en todo momento dicha Ficha Técnica.
Del Director se desea almacenar los siguientes datos: Nombres, Fecha de Nacimiento y País de Origen.
La Ficha Técnica de cada película también debe incluir el reparto de actores, donde observaremos sus
Nombres, su Nacionalidad y el Nombre del Personaje que tienen en la película.
Para todo esto, vamos a diseñar una Base de Datos que se ajuste al requerimiento identificando las Tablas,
Atributos, Claves Principales y Relaciones Existentes.
A continuación detallamos el Script de la Base de Datos, donde podemos ver la creación del mismo, así
como de las Tablas y de las Relaciones.
En esta parte podemos ver el Script de la creación de la Base de Datos, con los parámetros de
ubicación del archivo de Datos y Log por defecto, así como los valores incrementales.
USE [MASTER];
CREATE DATABASE SISPELICULA
En esta parte podemos ver el Script de la creación de las Tablas y sus respectivos Campos.
USE [SISPELICULA]
GO
/****** Object: Table [dbo].[Idioma] Script Date: 09/29/2014
21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Idioma](
[ID_Idioma] [nchar](10) NOT NULL,
[Descripcion] [nchar](15) NULL,
CONSTRAINT [PK_Idioma] PRIMARY KEY CLUSTERED
(
[ID_Idioma] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Director] Script Date: 09/29/2014
21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Director](
[ID_Director] [nchar](10) NOT NULL,
[Nombre] [nchar](10) NULL,
[Apellidos] [nchar](20) NULL,
[Nacionalidad] [nchar](15) NULL,
CONSTRAINT [PK_Director] PRIMARY KEY CLUSTERED
(
[ID_Director] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Caracteristica] Script Date:
09/29/2014 21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Caracteristica](
[ID_Caracteristica] [nchar](10) NOT NULL,
[Descripcion] [nchar](70) NULL,
CONSTRAINT [PK_Caracteristica] PRIMARY KEY CLUSTERED
(
[ID_Caracteristica] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Actores] Script Date: 09/29/2014
21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Actores](
[ID_Actor] [nchar](10) NOT NULL,
[Nombre] [nchar](10) NULL,
[Apellido] [nchar](20) NULL,
[Nacionalidad] [nchar](15) NULL,
[NombrePersonaje] [nchar](20) NULL,
CONSTRAINT [PK_Actores] PRIMARY KEY CLUSTERED
(
[ID_Actor] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Subtitulo] Script Date: 09/29/2014
21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Subtitulo](
[ID_Subtitulo] [nchar](10) NOT NULL,
[Descripcion] [nchar](30) NULL,
[IdiomaOrigen] [nchar](15) NULL,
[IdiomaTraduc] [nchar](15) NULL,
CONSTRAINT [PK_Subtitulo] PRIMARY KEY CLUSTERED
(
[ID_Subtitulo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[RepartoActores] Script Date:
09/29/2014 21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RepartoActores](
[ID_Reparto] [nchar](10) NOT NULL,
[ID_Actor] [nchar](10) NULL,
[Descripcion] [nchar](40) NULL,
CONSTRAINT [PK_RepartoActores] PRIMARY KEY CLUSTERED
(
[ID_Reparto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Pelicula] Script Date: 09/29/2014
21:34:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Pelicula](
[ID_Pelicula] [nchar](10) NOT NULL,
[ID_Director] [nchar](10) NULL,
[ID_Idioma] [nchar](10) NULL,
[ID_Caracteristicas] [nchar](10) NULL,
[ID_Reparto] [nchar](10) NULL,
[ID_Subtitulo] [nchar](10) NULL,
[Titulo] [nchar](20) NULL,
[Anio] [date] NULL,
[Nacionalidad] [nchar](15) NULL,
CONSTRAINT [PK_Pelicula] PRIMARY KEY CLUSTERED
(
[ID_Pelicula] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS =
ON) ON [PRIMARY]
) ON [PRIMARY]
GO
En esta parte podemos ver el Script de la creación de las Relaciones entre las Claves Primarias y
Foráneas de nuestro Esquema de Base de Datos.
USE [SISPELICULA]
GO
/****** Object: ForeignKey [FK_RepartoActores_Actores] Script
Date: 09/29/2014 21:34:34 ******/
ALTER TABLE [dbo].[RepartoActores] WITH CHECK ADD CONSTRAINT
[FK_RepartoActores_Actores] FOREIGN KEY([ID_Actor])
REFERENCES [dbo].[Actores] ([ID_Actor])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[RepartoActores] CHECK CONSTRAINT
[FK_RepartoActores_Actores]
GO
/****** Object: ForeignKey [FK_Pelicula_Caracteristica] Script
Date: 09/29/2014 21:34:34 ******/
ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT
[FK_Pelicula_Caracteristica] FOREIGN KEY([ID_Caracteristicas])
REFERENCES [dbo].[Caracteristica] ([ID_Caracteristica])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT
[FK_Pelicula_Caracteristica]
GO
/****** Object: ForeignKey [FK_Pelicula_Director] Script Date:
09/29/2014 21:34:34 ******/
ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT
[FK_Pelicula_Director] FOREIGN KEY([ID_Director])
REFERENCES [dbo].[Director] ([ID_Director])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT
[FK_Pelicula_Director]
GO
/****** Object: ForeignKey [FK_Pelicula_Idioma] Script Date:
09/29/2014 21:34:34 ******/
ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT
[FK_Pelicula_Idioma] FOREIGN KEY([ID_Idioma])
REFERENCES [dbo].[Idioma] ([ID_Idioma])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT [FK_Pelicula_Idioma]
GO
/****** Object: ForeignKey [FK_Pelicula_RepartoActores] Script
Date: 09/29/2014 21:34:34 ******/
ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT
[FK_Pelicula_RepartoActores] FOREIGN KEY([ID_Reparto])
REFERENCES [dbo].[RepartoActores] ([ID_Reparto])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT
[FK_Pelicula_RepartoActores]
GO
/****** Object: ForeignKey [FK_Pelicula_Subtitulo] Script Date:
09/29/2014 21:34:34 ******/
ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT
[FK_Pelicula_Subtitulo] FOREIGN KEY([ID_Subtitulo])
REFERENCES [dbo].[Subtitulo] ([ID_Subtitulo])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT
[FK_Pelicula_Subtitulo]
GO
Descripción de los Procedimientos Almacenados:
Inserción de Datos:
GO
EXEC dbo.SPInsertarDatosActores
@pID_Actor = '4593',
@pNombre = 'Juan',
@pApellido = 'Ramon',
@pNacionalidad = 'Boliviano',
@pNombrePersonaje = 'Chapulin'
GO
Modificación de Datos:
END
GO
GO
Eliminación de Datos:
END
GO
GO
Inserción de Datos:
GO
-- ************************ Ejemplo de la ejecución del SP
EXEC dbo.SPInsertarDatosDirector
@pID_Director = '8080',
@pNombre = 'Francisco',
@pApellidos = 'Lombardi Ganoza',
@pNacionalidad = 'Peruano'
GO
Modificación de Datos:
END
GO
GO
Eliminación de Datos:
END
GO
GO
Inserción de Datos:
GO
EXEC dbo.SPInsertarDatosIdioma
@pID_Idioma = '888',
@pDescripcion = 'Quechua'
GO
Modificación de Datos:
END
GO
Eliminación de Datos:
END
GO
GO
Inserción de Datos:
GO
EXEC dbo.SPInsertarDatosCaracteristica
@pID_Caracteristica = '45674',
@pDescripcion = 'Pelicula con contenido de sexo y
violencia, no apto para menores de 18 años'
GO
Modificación de Datos:
CREATE PROCEDURE SPModificarDatosCaracteristica(
@pID_Caracteristica nchar (10),
@pDescripcion nchar(70)
)
AS
BEGIN
SET NOCOUNT ON;
UPDATE Caracteristica
SET Descripcion=@pDescripcion
WHERE ID_Caracteristica=@pID_Caracteristica
END
GO
GO
Eliminación de Datos:
END
GO
GO
Inserción de Datos:
GO
EXEC dbo.SPInsertarDatosSubtitulo
@pID_Subtitulo = '753',
@pDescripcion = 'Idioma Original',
@pIdiomaOrigen = 'Catalan',
@pIdiomaTraduc = 'Ingles'
GO
Modificación de Datos:
END
GO
GO
Eliminación de Datos:
END
GO
GO
END
GO
use SISPELICULA
EXEC dbo.SPConsultarPelicula
@pID_Pelicula='12344'
GO
Consulta de Reparto de Actores:
END
GO
use SISPELICULA
EXEC dbo.SPConsultarReparto
@pID_Actor='9456',
@pID_Reparto='7845'
GO
USE SISPELICULA
GO
GO
EXEC dbo.SPInsertarDatosRepartoActores
@pID_Reparto = '1234',
@pID_Actor = '1234',
@pDescripcion = 'Suspenso'
GO
SET IMPLICIT_TRANSACTIONS ON
BEGIN TRY
/* Confirmamos la transaccion*/
END TRY
BEGIN CATCH
END CATCH
CONCLUSIONES
Podemos concluir luego de realizar el presente trabajo, que es muy importante el uso de Funciones, Vitas,
Triggers, etc. Como herramientas útiles en el manejo de información de las Bases de Datos.
Es importante también indicar que siempre es necesario realizar un levantamiento de información previo,
que es lo que nos permitirá poder identificar la necesidad y trasladarlo a una solución correcta.
Hemos visto también que la correcta utilización de las herramientas de SQL, no permitirá realizar un trabajo
óptimo y que pueda ser mantenible por otros desarrolladores.
Con todo esto podemos entender que valiéndonos de diferentes herramientas y de la manera correcta,
podemos desarrollar soluciones óptimas de Sistemas de Bases de Datos.
BIBLIOGRAFIA: