Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Atdfi103 s10 Grupo 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 29

ATDFI103

Desafío 3
Semana 10 Evaluación Sumativa
Grupal

Identificación de los Estudiantes

Fecha:
21 de Mayo de 2023
_____________________

Nombres
Profesión Ingenieria Civil industrial
Institución República – Advance
Ciudad - País Santiago, Chile
Correo electrónico
INTRODUCCIÓN

En atención a lo solicitado por el hospital Veterinario Mascota Feliz hemos diseñado un modelo que propone la integración de la
información en función al modelo de entidad relación el que permitirá, entregar información sobre la atención y los procedimientos que
se realizan a una mascota.

En este informe, les proponemos una solución eficiente para la gestión de datos en su veterinaria mediante un modelo de datos bien
diseñada y estructurada. La base de datos que proponemos cubre las necesidades específicas de su empresa y permite una gestión
segura y eficiente de la información.

Esta base de datos le permitirá almacenar y acceder rápidamente a información importante sobre los clientes, sus mascotas, sus
historiales médicos y los servicios realizados. Además, podrán generar informes detallados sobre el rendimiento de su negocio y análisis
de datos que les ayudarán a tomar decisiones informadas para el crecimiento de su veterinaria.

En este informe encontrarán información detallada sobre la propuesta de base de datos, su funcionamiento y los beneficios que puede
ofrecer a su negocio. Esperamos que esta propuesta sea de su interés y estamos disponibles para discutir cualquier pregunta o
comentario que puedan tener.
Diagrama Entidad Relación

Propuesta Base de Datos “Mascota Feliz”


Identificación de Usuarios finales.

Los usuarios a los que están pesado este modelo son los siguientes:

Administradores de sucursal: en este modelo los administradores podrán realizar estadísticas sobre el funcionamiento y las prestaciones
realizadas en una sucursal determinada; así pueden realizar estrategias para la administración eficaz de los recursos.

Funcionarios: podrán ejecutar, realizar seguimiento y controles a los procedimientos realizados a las mascotas que ingresen a la
Veterinaria.

Clientes: podrán verificar las actividades realizadas y los costos asociados a estas.

Tablas asociadas
Para la generación de la base de datos, hemos tomado las siguientes entidades, con sus atributos para que se relacionen entre sí:

Mascota Feliz

Profesional (Rut, nombre, fecha nacimiento, especialidad)


Nombre (PrimNombre, PrimApellido, SegApellido)
Veterinaria (codigo, nombre, dirección)
Servicios (Codigo_Servicio, TipoServicio, fecha, pago)
Pago (Tipo, Monto, Fecha Pago)
Fecha (Dia, hora)
Vehículo (patente, marca, modelo, año)
Insumos (código, nombre, descripción, TipoInsumo)
Mascota (raza, nombre, edad, tamaño, peso)
Tutor (Rut, nombre, dirección, email, teléfono)
Nombre (PrimNombre, PrimApellido, SegApellido)
Ficha (ID_Ficha, descripción)
Justificación
Indicar porque se eligieron las entidades, atributos, la cardinalidad y claves.

Entidades elegidas:
1. Entidad "Mascota": Se eligió esta entidad ya que, es el objeto principal de los servicios prestados por la veterinaria móvil. Se
consideraron los atributos "tipo”, “raza”, “nombre”, “edad”, “tamaño" y "peso" ya que, son los datos principales que se necesitan
para identificar a cada mascota.
2. Entidad "Tutor": Esta entidad se eligió ya que, es necesario registrar los datos del tutor para poder ubicar la dirección donde se
debe prestar el servicio a domicilio y para contactar al tutor en caso de emergencia. Los atributos elegidos son "nombre”, “rut”,
“dirección”, “email" y "teléfono".
3. Entidad "Vehículo": Esta entidad se eligió ya que, se necesita registrar los datos del vehículo que se utilizará para prestar el
servicio a domicilio. Se consideraron los atributos "patente”, “marca”, “modelo" y "año" ya que, son los datos principales para
identificar a cada vehículo.
4. Entidad "Profesional": Esta entidad se eligió ya que, es necesario registrar los datos de los profesionales que estarán a cargo de
cada vehículo y prestarán los servicios. Se consideraron los atributos "nombre”, “rut" y "especialidad" ya que, son los datos
principales para identificar a cada profesional.
5. Entidad “Veterinaria”: Esta entidad se eligió ya que, es necesario tener los datos de dónde está ubicada la veterinaria a realizar
los servicios. Se consideraron los atributos “Código”, “Nombre” y “Dirección” ya que, son los datos relevantes para identificar esta
información.
6. Entidad "Servicios": Esta entidad se eligió ya que, es necesario registrar los datos de los servicios a domicilio que se prestarán. Se
consideraron los atributos “Tipo de Servicio”, “Código de Servicio”, “Pago” y "fecha" ya que, son los datos principales para
programar y realizar los servicios.
7. Entidad "Insumos": Esta entidad se eligió ya que, es necesario registrar los datos de los insumos que se utilizarán en los servicios.
Se consideraron los atributos “Código”, “Tipo de Insumo”, “nombre" y "descripción" ya que, son los datos principales para
identificar y describir los insumos.
8. Entidad “Ficha”: Esta entidad se eligió ya que, es necesario tener un registro de cada mascota y su tutor. Se consideraron los
atributos “ID_Ficha” y “Descripción” como los datos principales para poder identificar a la mascota y su tutor.

Cardinalidades elegidas:

1. Una mascota pertenece a un único tutor, pero un tutor puede tener varias mascotas (cardinalidad 1:N)
2. Un vehículo es utilizado a lo menos por un profesional, pero un profesional puede utilizar sólo un vehículo (cardinalidad 1:N)
3. Una veterinaria puede hacer varios servicios y varios servicio pueden ser ejecutados en sólo una veterinaria (1:N)
4. Un servicio puede incluir varios insumos, y un insumo puede ser utilizado en varios servicios (cardinalidad N:M)
5. Una ficha puede incluir sólo una mascota y una mascota puede tener sólo una ficha (1:1)
6. Una veterinaria puede tener varios profesionales, pero un profesional puede trabajar en sólo una veterinaria (N:1)
7. Un vehículo puede realizar varios servicios, pero sólo un servicio puede utilizar un vehículo (N:1)
8. Una veterinaria puede atender a varias mascotas pero una mascota se puede atender en sólo una veterinaria (1:N)

Las claves de cada entidad elegidas:

1. Para la entidad "Mascota": la clave es el atributo "nombre" (PK) junto con el atributo "rut" del tutor (FK), ya que no se esperan
mascotas con el mismo nombre y tutor.
2. Para la entidad "Tutor": la clave es el atributo "rut", ya que cada tutor tiene un número único de rut.
3. Para la entidad "Vehículo": la clave es el atributo "patente", ya que cada vehículo tiene una patente única.
4. Para la entidad "Profesional": la clave es el atributo "rut", ya que cada profesional tiene un número único de rut.
5. Para la entidad "Servicios”: la clave son los atributos “Codigo de Servicio” y “Tipo de Servicio”, ya que cada servicio está asignado
a un único código y no se espera que se repita el tipo de servicio entregado.
6. Para la entidad “Insumos”: la clave es el atributo “Código”, ya que cada insumo estará asociado a un único código designado al
producto.
7. Entidad “Ficha”: la clave es el atributo “ID_Ficha”, ya que cada mascota y tutor tiene un número único en su ficha.
Normalización

La normalización de tablas en esta base de datos nos ayuda a eliminar la redundancia, mantener la integridad de los datos, mejorar el
rendimiento de las consultas y proporcionar flexibilidad y escalabilidad. Además, facilita el diseño y la comprensión de la estructura de la
base de datos.

En la normalización hemos construidos tablas para asignar las relaciones con cardinalidad de Muchos a Muchos; hemos reasignado
atributos en tablas es específicas. Con estas medidas eliminados la redundancia en los datos, generamos una escalabilidad mayor del
modelo y podemos mejorar las consultas a esta base de datos.

Normalización de tablas:

Forma_Pago (Id_Forma_Pago, Forma_Pago)


Pago (Boleta, Monto, Fecha, Forma_Pago)

Tamaño (Id_Tamaño, Tamaño)


Raza (Id_Raza, Raza)
Tipo_Mascota (id_Tipo_Mascota, Tipo_Mascota)
Mascota (Id_Mascota, Nombre, Peso, Edad, Raza, Tamaño, Tipo_Mascota)

Tutor (Rut, Nombre, Apellido, Dirección, Teléfono)

Ficha (N_Ficha, Descripción, Sucursal, Mascota, Tutor)

Ficha_Servicio (Id_Ficha_Serv, N_Ficha, Id_Servicio)

Servicio (Id_Servicio, Fecha, Boleta, Tipo_servicio, vehículo)


Tipo_Servicio (Id_Servicio, Servicio)
Vehículo (Patente, Modelo, Marca, Año)
Servicio_Insumo (Id_Serv_Insu, Id_Servicio, Cod_Insumo)
Tipo_Insumo (id_Tipo_Insumo, Tipo_Insumo)
Insumo (Cod_Insumo, Nombre, Descripción, Tipo_Insumo)

Veterinaria (Cod_Sucursal, Nombre, Direccion)

Profesional (Rut, Nombre, Apellido, Fecha_Nac, Especialidad, Sucursal)


Especialidad (Id_Especialidad, Especialidad)

Eliminamos las entidades Nombre, que se utilizaban en las entidades profesionales y tutor. Con esta eliminación las dependencias
parciales y sacamos los grupos de datos repetidos de la base de datos.

Descomponemos en tablas Tipo_Insumos, Tamaño, Raza, Tipo_Mascota y Forma_Pago, para que estos atributos no claves faciliten la
entrega de datos.

Para las realizaciones Ejecuta y Tiene, hemos construido las tablas Ficha_Servicio y Servicio_Insumo para asociar la cardinalidad M:N
(muchos a muchos)
Diagrama de Base de Datos

Ya normalizada las tablas, diagramamos la Base de datos, quedando de la siguiente manera.


Forma_Pago
Id_Forma_Pago

Forma_Pago

Pago
Boleta

M onto

Fecha

Forma_Pago

Insumo Servicio_Insumo
Cod_Insumo
Id_Serv_Insu
Servicio
Nombre
Id_Servicio Id_Servicio

Descripción
Cod_Insumo
Tipo_Servicio
Fecha

Tipo_Insumo
Boleta
Id_Servicio

Tipo_servicio
Servicio

Vehiculo

Tipo_Insumo
id_Tipo_Insumo

Tipo_Insumo

Ficha_Servicio Vehiculo
Id_Ficha_Serv Patente

N_Ficha M odelo

Id_Servicio
Tamaño M arca

Id_Tamaño Año

Tamaño

Profesional
Rut
Veterinaria
Nombre Cod_Sucursal

Apellido
Ficha Mascota
Nombre
N_Ficha
Id_M ascota
Fecha_Nac
Tipo_Mascota
Direccion
Descripción
Nombre
Especialidad
id_Tipo_M ascota
Sucursal
Peso
Sucursal
Tipo_M ascota
M ascota
Edad

Tutor
Raza

Tamaño

Especialidad Tipo_M ascota


Id_Especialidad

Especialidad

Raza
Id_Raza

Tutor
Raza
Rut

Nombre

Apellido

Dirección

Teléfono
Script Base de Datos

Para la generación de nuestra base de datos, hemos seleccionado el motor de base de datos Microsoft SQL Server. Con SQL Server
Management Studio (SSMS) la herramienta de administración y desarrollo utilizada para trabajar con bases de datos de Microsoft SQL
Server hemos administrado, configurado, desarrollado y depurado bases de datos de la Veterinaria, obteniendo así el siguiente script en
donde creamos la base de datos definiendo su nombre, tamaño, ubicación lógica y tablas pertenecientes.

Creación de Base de Datos

CREATE DATABASE [Veterinaria]


CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Unab', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\Veterinaria.mdf' , SIZE =
8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'Unab_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\
Veterinaria_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO

Creación de Tablas

USE [Veterinaria]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Especialidad](
[Id_Especialidad] [int] IDENTITY(1,1) NOT NULL,
[Especialidad] [varchar](20) NOT NULL,
CONSTRAINT [PK_Especialidad] PRIMARY KEY CLUSTERED
(
[Id_Especialidad] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Ficha](
[N_Ficha] [int] IDENTITY(1,1) NOT NULL,
[Descripción] [varchar](max) ,
[Sucursal] [int] NOT NULL,
[Mascota] [int] NOT NULL,
[Tutor] [varchar](15) NOT NULL,
CONSTRAINT [PK_Ficha] PRIMARY KEY CLUSTERED
(
[N_Ficha] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Ficha_Servicio](
[Id_Ficha_Serv] [int] IDENTITY(1,1) NOT NULL,
[N_Ficha] [int] NOT NULL,
[Id_Servicio] [int] NOT NULL,
CONSTRAINT [PK_Ficha_Servicio] PRIMARY KEY CLUSTERED
(
[Id_Ficha_Serv] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Forma_Pago](
[Id_Forma_Pago] [int] IDENTITY(1,1) NOT NULL,
[Forma_Pago] [varchar](20) NOT NULL,
CONSTRAINT [PK_Forma_Pago] PRIMARY KEY CLUSTERED
(
[Id_Forma_Pago] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Insumo](
[Cod_Insumo] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](30) NOT NULL,
[Descripción] [varchar](50) NOT NULL,
[Tipo_Insumo] [int] NOT NULL,
CONSTRAINT [PK_Insumo] PRIMARY KEY CLUSTERED
(
[Cod_Insumo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Mascota](
[Id_Mascota] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](20) NOT NULL,
[Peso] [int] NOT NULL,
[Edad] [int] NOT NULL,
[Raza] [int] NOT NULL,
[Tamaño] [int] NOT NULL,
[Tipo_Mascota] [int] NOT NULL,
CONSTRAINT [PK_Mascota] PRIMARY KEY CLUSTERED
(
[Id_Mascota] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Pago](
[Boleta] [int] IDENTITY(138942,1) NOT NULL,
[Monto] [int] NOT NULL,
[Fecha] [date] NOT NULL,
[Forma_Pago] [int] NOT NULL,
CONSTRAINT [PK_Pago] PRIMARY KEY CLUSTERED
(
[Boleta] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Profesional](
[Rut] [varchar](15) NOT NULL,
[Nombre] [varchar](50) NOT NULL,
[Apellido] [varchar](50) NOT NULL,
[Fecha_Nac] [date] NOT NULL,
[Especialidad] [int] NOT NULL,
[Sucursal] [int] NOT NULL,
CONSTRAINT [PK_Profesional] PRIMARY KEY CLUSTERED
(
[Rut] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Raza](
[Id_Raza] [int] IDENTITY(1,1) NOT NULL,
[Raza] [varchar](20) NOT NULL,
CONSTRAINT [PK_Raza] PRIMARY KEY CLUSTERED
(
[Id_Raza] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Servicio](
[Id_Servicio] [int] IDENTITY(1,1) NOT NULL,
[Fecha] [date] NOT NULL,
[Boleta] [int] NOT NULL,
[Tipo_servicio] [int] NOT NULL,
[Vehiculo] [varchar](6),
CONSTRAINT [PK_Servicio] PRIMARY KEY CLUSTERED
(
[Id_Servicio] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Servicio_Insumo](
[Id_Serv_Insu] [int] IDENTITY(1,1) NOT NULL,
[Id_Servicio] [int] NOT NULL,
[Cod_Insumo] [int] NOT NULL,
CONSTRAINT [PK_Servicio_Insumo] PRIMARY KEY CLUSTERED
(
[Id_Serv_Insu] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tamaño](
[Id_Tamaño] [int] IDENTITY(1,1) NOT NULL,
[Tamaño] [varchar](30) NOT NULL,
CONSTRAINT [PK_Tamaño] PRIMARY KEY CLUSTERED
(
[Id_Tamaño] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tipo_Insumo](
[id_Tipo_Insumo] [int] NOT NULL,
[Tipo_Insumo] [varchar](20) NOT NULL,
CONSTRAINT [PK_Tipo_Insumo] PRIMARY KEY CLUSTERED
(
[id_Tipo_Insumo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tipo_Mascota](
[id_Tipo_Mascota] [int] NOT NULL,
[Tipo_Mascota] [varchar](20) NOT NULL,
CONSTRAINT [PK_Tipo_Mascota] PRIMARY KEY CLUSTERED
(
[id_Tipo_Mascota] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tipo_Servicio](
[Id_Servicio] [int] IDENTITY(1,1) NOT NULL,
[Servicio] [varchar](20) NOT NULL,
CONSTRAINT [PK_Tipo_Servicio] PRIMARY KEY CLUSTERED
(
[Id_Servicio] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tutor](
[Rut] [varchar](15) NOT NULL,
[Nombre] [varchar](20) NOT NULL,
[Apellido] [varchar](20) NOT NULL,
[Dirección] [varchar](50) NOT NULL,
[Teléfono] [float] NOT NULL,
CONSTRAINT [PK_Tutor] PRIMARY KEY CLUSTERED
(
[Rut] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Vehiculo](
[Patente] [varchar](6) NOT NULL,
[Modelo] [varchar](10) NOT NULL,
[Marca] [varchar](10) NOT NULL,
[Año] [date] NOT NULL,
CONSTRAINT [PK_Vehiculo] PRIMARY KEY CLUSTERED
(
[Patente] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Veterinaria](
[Cod_Sucursal] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](20) NOT NULL,
[Direccion] [varchar](30) NOT NULL,
CONSTRAINT [PK_Veterinaria] PRIMARY KEY CLUSTERED
(
[Cod_Sucursal] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS
= ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Ficha] WITH CHECK ADD CONSTRAINT [FK_Ficha_Mascota] FOREIGN KEY([Mascota])
REFERENCES [dbo].[Mascota] ([Id_Mascota])
GO
ALTER TABLE [dbo].[Ficha] CHECK CONSTRAINT [FK_Ficha_Mascota]
GO
ALTER TABLE [dbo].[Ficha] WITH CHECK ADD CONSTRAINT [FK_Ficha_Tutor] FOREIGN KEY([Tutor])
REFERENCES [dbo].[Tutor] ([Rut])
GO
ALTER TABLE [dbo].[Ficha] CHECK CONSTRAINT [FK_Ficha_Tutor]
GO
ALTER TABLE [dbo].[Ficha] WITH CHECK ADD CONSTRAINT [FK_Ficha_Veterinaria] FOREIGN KEY([Sucursal])
REFERENCES [dbo].[Veterinaria] ([Cod_Sucursal])
GO
ALTER TABLE [dbo].[Ficha] CHECK CONSTRAINT [FK_Ficha_Veterinaria]
GO
ALTER TABLE [dbo].[Ficha_Servicio] WITH CHECK ADD CONSTRAINT [FK_Ficha_Servicio_Ficha] FOREIGN KEY([N_Ficha])
REFERENCES [dbo].[Ficha] ([N_Ficha])
GO
ALTER TABLE [dbo].[Ficha_Servicio] CHECK CONSTRAINT [FK_Ficha_Servicio_Ficha]
GO
ALTER TABLE [dbo].[Ficha_Servicio] WITH CHECK ADD CONSTRAINT [FK_Ficha_Servicio_Servicio] FOREIGN KEY([Id_Servicio])
REFERENCES [dbo].[Servicio] ([Id_Servicio])
GO
ALTER TABLE [dbo].[Ficha_Servicio] CHECK CONSTRAINT [FK_Ficha_Servicio_Servicio]
GO
ALTER TABLE [dbo].[Insumo] WITH CHECK ADD CONSTRAINT [FK_Insumo_Tipo_Insumo] FOREIGN KEY([Tipo_Insumo])
REFERENCES [dbo].[Tipo_Insumo] ([id_Tipo_Insumo])
GO
ALTER TABLE [dbo].[Insumo] CHECK CONSTRAINT [FK_Insumo_Tipo_Insumo]
GO
ALTER TABLE [dbo].[Mascota] WITH CHECK ADD CONSTRAINT [FK_Mascota_Raza] FOREIGN KEY([Raza])
REFERENCES [dbo].[Raza] ([Id_Raza])
GO
ALTER TABLE [dbo].[Mascota] CHECK CONSTRAINT [FK_Mascota_Raza]
GO
ALTER TABLE [dbo].[Mascota] WITH CHECK ADD CONSTRAINT [FK_Mascota_Tamaño] FOREIGN KEY([Tamaño])
REFERENCES [dbo].[Tamaño] ([Id_Tamaño])
GO
ALTER TABLE [dbo].[Mascota] CHECK CONSTRAINT [FK_Mascota_Tamaño]
GO
ALTER TABLE [dbo].[Mascota] WITH CHECK ADD CONSTRAINT [FK_Mascota_Tipo_Mascota] FOREIGN KEY([Tipo_Mascota])
REFERENCES [dbo].[Tipo_Mascota] ([id_Tipo_Mascota])
GO
ALTER TABLE [dbo].[Mascota] CHECK CONSTRAINT [FK_Mascota_Tipo_Mascota]
GO
ALTER TABLE [dbo].[Pago] WITH CHECK ADD CONSTRAINT [FK_Pago_Forma_Pago] FOREIGN KEY([Forma_Pago])
REFERENCES [dbo].[Forma_Pago] ([Id_Forma_Pago])
GO
ALTER TABLE [dbo].[Pago] CHECK CONSTRAINT [FK_Pago_Forma_Pago]
GO
ALTER TABLE [dbo].[Profesional] WITH CHECK ADD CONSTRAINT [FK_Profesional_Especialidad] FOREIGN KEY([Especialidad])
REFERENCES [dbo].[Especialidad] ([Id_Especialidad])
GO
ALTER TABLE [dbo].[Profesional] CHECK CONSTRAINT [FK_Profesional_Especialidad]
GO
ALTER TABLE [dbo].[Profesional] WITH CHECK ADD CONSTRAINT [FK_Profesional_Veterinaria] FOREIGN KEY([Sucursal])
REFERENCES [dbo].[Veterinaria] ([Cod_Sucursal])
GO
ALTER TABLE [dbo].[Profesional] CHECK CONSTRAINT [FK_Profesional_Veterinaria]
GO
ALTER TABLE [dbo].[Servicio] WITH CHECK ADD CONSTRAINT [FK_Servicio_Pago] FOREIGN KEY([Boleta])
REFERENCES [dbo].[Pago] ([Boleta])
GO
ALTER TABLE [dbo].[Servicio] CHECK CONSTRAINT [FK_Servicio_Pago]
GO
ALTER TABLE [dbo].[Servicio] WITH CHECK ADD CONSTRAINT [FK_Servicio_Tipo_Servicio] FOREIGN KEY([Tipo_servicio])
REFERENCES [dbo].[Tipo_Servicio] ([Id_Servicio])
GO
ALTER TABLE [dbo].[Servicio] CHECK CONSTRAINT [FK_Servicio_Tipo_Servicio]
GO
ALTER TABLE [dbo].[Servicio] WITH CHECK ADD CONSTRAINT [FK_Servicio_Vehiculo] FOREIGN KEY([Vehiculo])
REFERENCES [dbo].[Vehiculo] ([Patente])
GO
ALTER TABLE [dbo].[Servicio] CHECK CONSTRAINT [FK_Servicio_Vehiculo]
GO
ALTER TABLE [dbo].[Servicio_Insumo] WITH CHECK ADD CONSTRAINT [FK_Servicio_Insumo_Insumo] FOREIGN KEY([Cod_Insumo])
REFERENCES [dbo].[Insumo] ([Cod_Insumo])
GO
ALTER TABLE [dbo].[Servicio_Insumo] CHECK CONSTRAINT [FK_Servicio_Insumo_Insumo]
GO
ALTER TABLE [dbo].[Servicio_Insumo] WITH CHECK ADD CONSTRAINT [FK_Servicio_Insumo_Servicio] FOREIGN KEY([Id_Servicio])
REFERENCES [dbo].[Servicio] ([Id_Servicio])
GO
ALTER TABLE [dbo].[Servicio_Insumo] CHECK CONSTRAINT [FK_Servicio_Insumo_Servicio]
GO

Ingreso de Datos

insert into Veterinaria values ('Anipet','Vitacura 123, Vitacura');


insert into Veterinaria values ('Vetmal','Alameda 569, Santiago');
insert into Veterinaria values ('Feliz mascota','Dresden 789, San Miguel');
insert into Veterinaria values ('Hogar Animal','San Diego 63, Santiago');
insert into Veterinaria values ('Cachorritos','5 Norte 876, Maipu');

insert into Especialidad values ('Peluquería');


insert into Especialidad values ('Medicina Veterinaria');
insert into Especialidad values ('Cirugía');
insert into Especialidad values ('Rehabilitación');
insert into Especialidad values ('Imagenología');

insert into Profesional values ('16358794-K', 'Carmen','Andrade','12-09-1990',1,1);


insert into Profesional values ('23589467-0', 'Carlos','Rivera','03-25-1983',3,1);
insert into Profesional values ('17256987-5', 'Sebastián','Gonzalez','10-01-1985',2,2);
insert into Profesional values ('18456741-5', 'Felipe','Urrutía','08-19-1994',2,3);
insert into Profesional values ('16753951-7', 'Isabel','Gonzales','03-09-2000',2,4);
insert into Tipo_Insumo values ('Medicamento');
insert into Tipo_Insumo values ('Antiparasitario');
insert into Tipo_Insumo values ('Alimentos');
insert into Tipo_Insumo values ('Insumo Desachable');
insert into Tipo_Insumo values ('Vitaminas');

insert into Forma_Pago values ('Efectivo');


insert into Forma_Pago values ('Transferencia');
insert into Forma_Pago values ('Tarjeta Crédito');
insert into Forma_Pago values ('Tarjeta Debito');
insert into Forma_Pago values ('Abono');

insert into Tipo_Servicio values ('Control Domicilio');


insert into Tipo_Servicio values ('Control Sucursal');
insert Tipo_Servicio values ('Cirugía');
insert Tipo_Insumo values ('Radigrafía');
insert Tipo_Servicio values ('Compra de Alimentos');

insert into Tamaño values ('Pequeño');


insert into Tamaño values ('Mediano');
insert into Tamaño values ('Grande');

insert into Tipo_Mascota values ('Perro');


insert into Tipo_Mascota values ('Gato');

insert into Raza values ('Labrador');


insert into Raza values ('Golden retriever');
insert into Raza values ('Poodle');
insert into Raza values ('Persa');
insert into Raza values ('Siameses');

insert into Mascota values ('Kaiser', 15, 5,1,3,1);


insert into Mascota values ('Felix', 3,1,4,1,2);
insert into Mascota values ('Conan', 3,3,5,1,2);
insert into Mascota values ('Candy', 7,3,3,2,1);
insert into Mascota values ('Niña', 10,8,2,2,1);

insert into Tutor values ('16358808-0', 'Juan', 'Valdés', 'Direccióncasa 1109', 5683877316);
insert into Tutor values ('25036578-6', 'Alex', 'Valdés', 'Quinta Avenida 75, Maipu', 5675697896);
insert into Tutor values ('20316852-6', 'Daniela', 'Castro', 'Camino agricola 456, San Joaquin', 562789385);
insert into Tutor values ('25036578-K', 'Paola', 'Molina', 'Copiapo 528, Santiago', 56757369196);
insert into Tutor values ('23652418-0', 'Esteban', 'Araya', 'Camrnen 1106, Santiago', 56757369196);

insert into Pago values (35000,'01-02-2023',4);


insert into Pago values (5600,'03-26-2023',2);
insert into Pago values (10000,'01-15-2023',2);
insert into Pago values (8500,'08-31-2023',4);
insert into Pago values (6000,'01-02-2023',1);

Insert into Vehiculo values ('JBST96','Peugeot', 'expert','06-25-2023');


Insert into Vehiculo values ('GBLP62','Peugeot', 'expert','06-25-2019');
Insert into Vehiculo values ('ZPLA78','Nissan', 'Kincks','08-12-2019');
Insert into Vehiculo values ('UA0522','Nissan', 'V-15','04-10-1998');
Insert into Vehiculo values ('LKLJ01','Chevrolet','Spark', '10-03-2014');

insert into Servicio (Fecha,Boleta,Tipo_servicio) values ('01-02-2023',138942,1);


insert into Servicio (Fecha,Boleta,Tipo_servicio, Vehiculo) values ('03-26-2023',138943,2);
insert into Servicio (Fecha,Boleta,Tipo_servicio, Vehiculo) values ('01-15-2023',138944,2);
insert into Servicio (Fecha,Boleta,Tipo_servicio) values ('08-31-2023',138945,1);
insert into Servicio (Fecha,Boleta,Tipo_servicio) values ('01-02-2023',138946,1);

insert into Ficha values ('Problemas en el procedimiento',2,1,'23652418-0');


insert into Ficha values ('Proceso exitoso',3,4,'20316852-6');
insert into Ficha values ('',3,3,'25036578-6');
insert into Ficha values ('Proceso exitoso',4,2,'25036578-K');
insert into Ficha values ('Control mensual',1,3,'23652418-0');

insert into Insumo values ('Naxpet', 'Ketoprofeno', 1);


insert into Insumo values ('Invermet', 'Antiparasitario', 2);
insert into Insumo values ('Cannes', 'Alimento para Perros', 3);
insert into Insumo values ('Don Cats', 'Alimento para Gatos', 3);
insert into Insumo values ('Gaza', 'Gaza de tela', 4);
insert into Insumo values ('Jeringa', 'Jeringa 50 ml', 4);
insert into Insumo values ('Similimadrag', 'Suplemento', 5);

insert into Servicio_Insumo values (1,3);


insert into Servicio_Insumo values (1,4);
insert into Servicio_Insumo values (2,5);
insert into Servicio_Insumo values (3,3);
insert into Servicio_Insumo values (4,5);
insert into Servicio_Insumo values (5,2);

insert into Ficha_Servicio values (4,3);


insert into Ficha_Servicio values (5,4);
insert into Ficha_Servicio values (2,5);
insert into Ficha_Servicio values (3,3);
insert into Ficha_Servicio values (4,5);
insert into Ficha_Servicio values (5,2);
Consultas

En este apartado realizamos consulta a nuestra base de datos, para encontrar registros únicos asociados entre las tablas, para que estos
sean transformados en información relevante para la toma de decisiones, por parte de la Administradora de la Veterinaria.

A continuación, dejamos unos ejemplos de búsqueda, su query en a base de datos y la respuesta obtenida.

 Calcular las fichas de pacientes de cada sucursal y generar un ranking, entregando su ubicación donde el número uno es la que tiene
mayor cantidad de atenciones:

Query

Select V.Nombre As Veterinaria, count(F.N_Ficha) AS Atenciones, V.Direccion, V.Cod_Sucursal AS "Código sucursal"


from Ficha F, Veterinaria V
where F.sucursal = V.cod_sucursal
group by F.Sucursal, V.Nombre, V.Direccion, V.Cod_Sucursal
order by count(F.N_Ficha) desc

Resultado

Veterinaria Atenciones Dirección Código Sucursal


Feliz mascota 2 Dresden 789, San Miguel 3
Hogar Animal 1 San Diego 63, Santiago 4
Anipet 1 Vitacura 123, Vitacura 1
Vetmal 1 Alameda 569, Santiago 2
 Encontrar la suma del monto total recaudado y los servicios prestado por la veterinaria con mayor atención.

Query

Select V.Nombre As Veterinaria, SUM(P.Monto) AS "Monto de Ganancias", T.Servicio, count(T.Servicio) As "Cantidad de Servicios
realizados"
from Ficha F, Veterinaria V, Ficha_Servicio FS, Servicio S, Pago P, Tipo_Servicio T
where F.sucursal = V.cod_sucursal and F.N_Ficha= FS.N_Ficha and FS.Id_Servicio = S.Id_Servicio
and S.Boleta = P.Boleta and S.Tipo_servicio = T.Id_Servicio and F.Sucursal = ( Select top 1 V.Cod_Sucursal
from Ficha F, Veterinaria V where F.sucursal = V.cod_sucursal group by V.Cod_Sucursal order by count(F.N_Ficha) desc)
group by V.Nombre, T.Servicio

Resultado

Cantidad
de Servicios
Veterinaria Monto Servicio Realizados
Feliz mascota 6000 Control Domicilio 1
Feliz mascota 20000 Control Sucursal 2
 Encontrar a los profesionales con mayor realización de servicios, la veterinaria a cual pertenece, el tipo de servicio realizado y su
especialidad

Query

Select concat (P.Nombre,' ', P.Apellido) As "Profesional", count (S.Id_Servicio) As "Cantidad de Servicios realizados", V.Nombre AS
Veterinaria, T.Servicio, E.Especialidad
from Especialidad E, Profesional P, Veterinaria V, Ficha F, Ficha_Servicio FS, Servicio S, Tipo_Servicio T
where E.Id_Especialidad = P.Especialidad and P.Sucursal= V.Cod_Sucursal and V.Cod_Sucursal= F.Sucursal and F.N_Ficha = FS.N_Ficha and
FS.Id_Ficha_Serv= S.Id_Servicio
and S.Tipo_servicio = T.Id_Servicio
group by P.Nombre, P.Apellido, V.Nombre, E.Especialidad, T.Servicio

Resultado

Profesional Cantidad de Servicios Realizados Veterinaria Servicio Especialidad


Felipe Urrutía 2 Feliz mascota Control Domicilio Medicina Veterinaria
Sebastián Gonzalez 1 Vetmal Control Sucursal Medicina Veterinaria
Conclusión

También podría gustarte