Prévia do material em texto
UNIVERSIDADE UNOPAR
ENGENHARIA DE SOFTWARE
ALUNO: LENNON FONSECA DO Ó
PROFESSOR: ANDERSON EMIDIO DE MACEDO GONCALVES
ATIVIDADE PRÁTICA PROGRAMAÇÃO E
DESENVOLVIMENTO DE BANCO DE DADOS
SÃO PAULO, SÃO PAULO - Março de 2024
SUMÁRIO
1 INTRODUÇÃO ..........................................................................3
2 DESENVOLVIMENTO .........................................................4
2.1 PRIMEIRO PASSO ..............................................................4
2.2 SEGUNDO PASSO ...........................................................6
2.3 TERCEIRO PASSO ...........................................................7
3 CONCLUSÃO ........................................................................7
1 INTRODUÇÃO
A capacidade de criar e gerenciar bancos de dados de forma
eficiente é
essencial para o sucesso de empresas e organizações que lidam com
grandes
volumes de informações. Portanto, a atividade prática de
Programação e Gestão de
Bancos de Dados é uma oportunidade valiosa para aplicar os
conceitos teóricos
aprendidos em sala de aula e aprofundar a compreensão sobre a
criação e
manipulação de bancos de dados utilizando a linguagem SQL.
Nesse contexto, destacam-se o MySQL Community Server e o
MySQL
Workbench como ferramentas essenciais, reconhecidas por sua
eficiência e
facilidade de uso. O MySQL Workbench, em particular, é uma
ferramenta visual que
simplifica o processo de design, desenvolvimento e manutenção de
bancos de
dados MySQL.
Durante essa atividade, é realizado o estabelecimento da estrutura
de um
banco de dados por meio de um diagrama entidade-relacionamento
predefinido.
Essa etapa proporciona a prática de habilidades em traduzir
requisitos em
elementos estruturais do banco de dados, como tabelas,
relacionamentos e chaves
primárias.
Além disso, há a inserção de dados no banco de dados criado e a
realização
de consultas por meio da criação de uma visão (View). Essas práticas
promovem a
compreensão de como os dados são armazenados, manipulados e
acessados em
um ambiente real.
Portanto, atividades práticas como essa proporcionam uma
experiência
enriquecedora, permitindo adquirir conhecimentos teóricos e
práticos necessários
para se tornar um profissional mais capacitado e preparado para
enfrentar os
desafios do mundo da programação e desenvolvimento de banco de
dados.
2 DESENVOLVIMENTO
Foi proposto a:
- Criação da estrutura de um banco de dados (tabelas) com a
linguagem SQL
por meio de um diagrama entidade-relacionamento pré-definido.
- Inserção de dados no banco de dados criado.
- Consulta aos dados armazenados por meio da criação de uma
visão (View).
2.1 PRIMEIRO PASSO
Criamos uma base de dados denominada ‘Loja’ utilizando MySQL
Server por meio do software MySQL Workbench. Nessa base de
dados, foram adicionadas
as estruturas de dados utilizando os comandos de definição de
dados (DDL) da
linguagem SQL, seguindo o modelo definido no DER. Durante a
criação do banco de
dados, foram aplicadas algumas regras, como o uso de chaves
primárias com
autoincremento em todas as tabelas, o respeito aos relacionamentos,
tipos,
precisões e restrições de não nulo.
Um exemplo disso é o campo "situação" na tabela "ContaReceber",
que foi
definido como ENUM e possui apenas os valores 1, 2 ou 3,
correspondendo a 1 -
Conta registrada, 2 - Conta cancelada e 3 - Conta paga.
USE Loja;
CREATE TABLE Cliente (
ID INT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(80) NOT NULL,
CPF VARCHAR(11) NOT NULL,
Celular VARCHAR(11),
EndLogradouro VARCHAR(100) NOT NULL,
EndNumero VARCHAR(10) NOT NULL,
EndMunicipio INT NOT NULL,
EndCEP VARCHAR(8),
CONSTRAINT fk_Cliente_Municipio1 FOREIGN KEY (EndMunicipio)
REFERENCES Municipio(ID)
);
CREATE TABLE Estado (
ID INT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(50) NOT NULL,
UF CHAR(2) NOT NULL
);
CREATE TABLE Municipio (
ID INT AUTO_INCREMENT PRIMARY KEY,
Estado_ID INT NOT NULL,
Nome VARCHAR(80) NOT NULL,
CodIBGE INT NOT NULL,
CONSTRAINT fk_Municipio_Estado1 FOREIGN KEY (Estado_ID)
REFERENCES Estado(ID)
);
CREATE TABLE ContaReceber (
ID INT AUTO_INCREMENT PRIMARY KEY,
Cliente_ID INT NOT NULL,
FaturaVendaID INT NOT NULL,
DataConta DATE NOT NULL,
DataVencimento DATE NOT NULL,
Valor DECIMAL(18, 2) NOT NULL,
Situacao ENUM("1", "2", "3") NOT NULL,
CONSTRAINT fk_ContaReceber_Cliente FOREIGN KEY (Cliente_ID)
REFERENCES Cliente(ID)
);
CREATE INDEX idx_Cliente_Municipio ON Cliente (EndMunicipio);
CREATE INDEX idx_ContaReceber_Cliente ON ContaReceber
(Cliente_ID);
CREATE INDEX idx_ContaReceber_Situacao ON ContaReceber
(Situacao);
2.2 SEGUNDO PASSO
Em um estágio posterior, foi desenvolvido um script denominado
"inserir.sql",
contendo instruções de manipulação (DML), com o propósito de
popular todas as
tabelas presentes no banco de dados. Foram incluídos três registros
por tabela. O
script a seguir foi utilizado:
-- Inserir dados na tabela Cliente
INSERT INTO Cliente (Nome, CPF, Celular, EndLogradouro, EndNumero,
EndMunicipio, EndCEP) VALUES
('João da Silva', '12345678901', '11987654321', 'Rua A', '123', 1,
'01001000'),
('Maria Oliveira', '23456789012', '21987654321', 'Rua B', '456', 3,
'20000001'),
('José Santos', '34567890123', '31987654321', 'Rua C', '789', 2,
'13000001');
-- Inserir dados na tabela Estado
INSERT INTO Estado (Nome, UF) VALUES
('São Paulo', 'SP'),
('Rio de Janeiro', 'RJ'),
('Minas Gerais', 'MG');
-- Inserir dados na tabela Municipio
INSERT INTO Municipio (Estado_ID, Nome, CodIBGE) VALUES
(1, 'São Paulo', 3550308),
(1, 'Campinas', 3509502),
(2, 'Rio de Janeiro', 3304557);
-- Inserir dados na tabela ContaReceber
INSERT INTO ContaReceber (Cliente_ID, FaturaVendaID, DataConta,
DataVencimento, Valor, Situacao) VALUES
(1, 1, '2022-01-01', '2022-02-01', 1000.00, '1'),
(2, 2, '2022-01-02', '2022-02-02', 2000.00, '2'),
(3, 3, '2022-01-03', '2022-02-03', 3000.00, '3');
2.3 TERCEIRO PASSO
Por último, através das instruções de consulta (DQL) da linguagem
SQL, foi
desenvolvido um script intitulado "consulta.sql":
CREATE VIEW contas_nao_pagas AS
SELECT cr.ID AS 'ID Conta',
c.Nome AS 'Nome Cliente',
c.CPF AS 'CPF Cliente',
cr.DataVencimento AS 'Data de Vencimento',
cr.Valor AS 'Valor'
FROM ContaReceber cr
JOIN Cliente c ON cr.Cliente_ID = c.ID
WHERE cr.Situacao = '1';
SELECT * FROM contas_nao_pagas;
3 CONCLUSÃO
Esta atividade foi bastante proveitosa para aplicar as informações
obtidas em
sala de aula. Utilizando as ferramentas MySQL Server e MySQL
Workbench, foram
empregadas as instruções de definição, manipulação e consulta da
linguagem SQL.
Adicionalmente, foram estritamente seguidas as diretrizes e boas
práticas durante a
criação do banco de dados, como a configuração das chaves
primárias com
incremento automático, a aderência aos relacionamentos
estabelecidos e a definição
adequada dos tipos, precisões e restrições de não nulo.
Na fase subsequente, foram utilizadas as instruções de manipulação
(DML)
para preencher as tabelas do banco de dados, inserindo três
registros em cada uma
delas. Por fim, por meio das instruções de consulta (DQL), foi
elaborado um script
que criou uma visualização (VIEW) contendo as contas pendentes de
pagamento
(situação = 1), juntamente com informações relevantes, como o ID da
conta, nome e
CPF do cliente associado, data de vencimento e valor da conta.