O trabalho prático tem por objetivo desenvolver um projeto de Banco de Dados que simula uma clínica veterinária.
O projeto foi criado utilizando PostgreSQL 14, pgAdmin 4 e ElephantSQL (GCP). Todos os dados das tabelas são fictícios. 🐱 🐹 🐶 🦎
1. Universo do Discurso
2. ER Diagram
3. Modelo Relacional
4. Principais Atividades
5. Entidades e seus Atributos
6. Comandos
7. Consulta Solicitada
Objetivo: O objetivo do sistema é gerenciar uma clínica veterinária onde é possível
realizar o cadastro de dados dos clientes, funcionários da clínica e o agendamento de
consultas.
Funcionalidades: O sistema possui as funcionalidades de cadastrar novos clientes
e funcionários, informar dados dos funcionários, informar os dados do tutor, quantidade de
animais de estimação que o tutor possui, dados sobre o animal de estimação, histórico de
consultas, agendamento de consulta, alterar data de consulta, cancelar consulta.
1: Contratação de funcionários especializados para cuidar dos animais
2: Atendimento especializado para animais.
-
Pessoa: Representa as contas cadastradas no sistema, está dividido entre Tutor e Funcionário. Uma pessoa pode ser tanto funcionário quanto tutor de um pet. Nome: Autoexplicativo.
CPF: Autoexplicativo.
Data de Nascimento: Autoexplicativo. -
Tutor: Pessoas donas de animais de estimação, responsáveis por realizar as solicitações de consultas. Herda todos os atributos de Pessoa.
ID_Tutor: ID gerado assim que o tutor é cadastrado no sistema. -
Pet: Animais de estimação dos tutores.
Nome: Autoexplicativo.
Espécie: Autoexplicativo.
Idade: Autoexplicativo.
Gênero: Autoexplicativo.
ID Carteira de Vacinação: Número da carteirinha de vacinação do Pet. -
Funcionário: Pessoas que prestam serviços estão divididas entre Veterinário(a), Técnico Veterinário(a) e Recepcionista.
Salário: Autoexplicativo.
Benefícios: Benefícios que a empresa disponibiliza para o funcionário como VT, VR e convênio.
ID_Funcionário: ID gerado assim que o funcionário é cadastrado no sistema. -
Veterinário: Funcionário da clínica, o profissional possui formação em medicina veterinária e com especialização em felinos e roedores, por exemplo. Herda os atributos de Funcionário e Pessoa.
CRMV: Registro obrigatório para atuar como médico veterinário.
Formação: Formação em Medicina Veterinária e Especialização. -
Técnico Veterinário: Funcionário da clínica, o profissional possui formação em técnico de veterinária e auxilia em atividades da consulta. Herda os atributos de Funcionário e Pessoa.
Curso_Técnico: Formação de Técnico Veterinário. -
Recepcionista: Profissional responsável por recepcionar tutores e pets na clínica veterinária, também deve administrar a agenda de consultas. Herda os atributos de Funcionário e Pessoa.
-
Consulta: Representa os dados necessários para registrar uma consulta no sistema. Herda também os atributos: ID_Veterinário, ID_Tutor, ID_Pet, ID_Tipo_Consulta.
ID_Consulta: Identificação única da consulta.
Valor: Custo da consulta na clínica.
Data: Autoexplicativo.
Horário: Autoexplicativo
Tipo_Consulta: Representa os procedimentos disponíveis para realização na clínica veterinária.
ID_Tipo_Consulta: Identificação única do procedimento a ser realizado.
Clínica_Geral: Atendimento para verificar a saúde geral do pet.
Castração: Castração de animais de ambos os sexos.
Higienização: Banho e Tosa.
Dentista: Limpeza, extração ou qualquer outro procedimento relacionado.
Fisioterapia: Recuperação física do pet pós cirurgia, pós trauma etc.
obs: a base de dados foi criada atráves da utilização do ElephantSQL.
- Cria tabela Pessoa
CREATE TABLE Pessoa (
cpf BIGINT PRIMARY KEY,
nome VARCHAR(255),
email VARCHAR(255) UNIQUE,
data_nascimento DATE
);
- Cria tabela Funcionário
CREATE TABLE Funcionario (
id_funcionario INT PRIMARY KEY,
cpf BIGINT,
FOREIGN KEY (cpf) REFERENCES Pessoa (cpf),
salario DECIMAL(16,2),
vale_refeicao VARCHAR(255),
vale_transporte VARCHAR(255),
convenio_medico VARCHAR(255));
- Cria tabela Tutor
CREATE TABLE Tutor (
id_cliente INT PRIMARY KEY,
cpf BIGINT,
FOREIGN KEY (cpf) REFERENCES Pessoa (cpf)
);
- Adiciona Foreign Key:
ALTER TABLE Tutor ADD FOREIGN KEY (id_pet) REFERENCES
Pet (id_pet)
obs: adicionar foreign key após a criação da tabela de referência.
- Cria tabela Pet
CREATE TABLE Pet (
id_pet INT PRIMARY KEY,
id_carteira_vacinacao BIGINT UNIQUE,
id_cliente INT,
FOREIGN KEY (id_cliente) REFERENCES Tutor (id_cliente),
nome_pet VARCHAR(255),
especie VARCHAR(255),
data_nascimento_pet DATE,
genero VARCHAR(10)
);
- Cria tabela Veterinário
CREATE TABLE Veterinario (
id_funcionario INT UNIQUE,
FOREIGN KEY (id_funcionario) REFERENCES Funcionario (id_funcionario),
crmv BIGINT UNIQUE,
curso_graduacao VARCHAR(255),
curso_especializacao VARCHAR(255)
);
- Cria tabela Técnico Veterinário
CREATE TABLE Tecnico_Veterinario (
id_funcionario INT UNIQUE,
FOREIGN KEY (id_funcionario) REFERENCES Funcionario (id_funcionario),
curso_tecnico VARCHAR(255)
);
- Cria tabela Recepcionista
CREATE TABLE Recepcionista (
id_funcionario INT UNIQUE,
FOREIGN KEY (id_funcionario) REFERENCES Funcionario (id_funcionario)
);
- Cria tabela Consulta
CREATE TABLE Consulta (
id_consulta INT PRIMARY KEY,
id_tipo_consulta INT,
id_funcionario INT,
id_cliente INT,
id_pet INT,
valor DECIMAL(16,2),
data_consulta DATE,
horario TIME,
FOREIGN KEY (id_funcionario) REFERENCES Veterinario (id_funcionario),
FOREIGN KEY (id_cliente) REFERENCES Tutor (id_cliente),
FOREIGN KEY (id_pet) REFERENCES Pet (id_pet)
);
- Adiciona Foreign Key
ALTER TABLE Consulta ADD FOREIGN KEY (id_tipo_consulta) REFERENCES
Tipo_Consulta (id_tipo_consulta)
- Cria tabela Tipo Consulta
CREATE TABLE Tipo_Consulta (
id_tipo_consulta INT PRIMARY KEY,
clinica_geral BOOLEAN,
castracao BOOLEAN,
higienizacao BOOLEAN,
dentista BOOLEAN,
fisioterapia BOOLEAN
);
"Liste as consultas durante o primeiro semestre de 2021? Agrupe a informação por espécie de animal tratado e mês."
- Query Utilizada:
SELECT nome_pet, especie, Data_Consulta
FROM Consulta as Cons inner join
Pet as Pet on Pet.id_pet = Cons.id_pet
WHERE Data_Consulta BETWEEN '01-01-2021' AND '06-30-2021'
GROUP BY especie, Data_Consulta, nome_pet
ORDER BY Data_Consulta
O arquivo base de dados ipetcare.sql se encontra neste repositório. 🤙 up ⬆️