Prévia do material em texto
7
(
Ciências da Computação
–
Bacharelado
)
(
ELLEN REBECA SIMÕES DE ALBUQUERQUE
)
(
Aula
prática
ciências da computação
)
(
Buíque-PE
202
4
)
(
ELLEN REBECA SIMÕES DE ALBUQUERQUE
)
(
Aula prática
ciências da computação
)
(
Aula
prática
PROGRAMAÇÃO EM BANCOS DE DADOS
apresentado como requisito parcial para a obtenção de média
semestral
n
o curso
CIÊNCIAS DA COMPUTAÇÃO
.
Orientador
(a)
:
Anderson Emidio
Tutor:
Moacy Flavio Farias de Castro
)
(
Buíque-PE
202
4
)
SUMÁRIO
CIÊNCIAS DA COMPUTAÇÃO 0
1 INTRODUÇÃO 3
2 DESENVOLVIMENTO 4
3 RESULTADOS 6
4 CONCLUSÃO 9
5 REFERÊNCIAS 10
INTRODUÇÃO
A aula prática teve como foco a criação de um banco de dados utilizando a linguagem SQL, com a posterior realização de operações de manipulação e acesso aos dados. Para alcançar esse objetivo, foram utilizados o MySQL Community Server e o MySQL Workbench como infraestrutura de suporte.
DESENVOLVIMENTO
· Etapa 1: Criação da base de dados "Loja" com estruturas de dados definidas no DER.
· Etapa 2: Criação do script "inserir.sql" para inserção de dados nas tabelas.
· Etapa 3: Elaboração do script "consulta.sql" para criar uma visão de contas não pagas.
2 RESULTADOS E DISCUSSÃO
Etapa 1: Criação da base de dados "Loja"
Utilizando o MySQL Workbench, foi criada a base de dados "Loja" com tabelas representadas no DER. Foram respeitadas as regras, como autoincremento para chaves primárias e enumeração para o campo "Situação" da tabela "ContaReceber".
O Script gerado foi o seguinte:
(
--
Schema
loja
CREATE
SC
EMA
IF
OT
EXISTS
`loja`
DEFAULT
C
ARACTER
SET
utf8
;
USE
`loja`
;
--
Table
Estado
CREATE
TABLE
IF
OT
EXISTS
`loja`.`Estado`
(
)
`ID` I T OT ULL AUTO_I CREME T,
` ome` VARC AR(50) OT ULL,
`UF` C AR(2) OT ULL, flRIMARY KEY (`ID`)
) E GI E = InnoDB;
-- Table Municipio
CREATE TABLE IF OT EXISTS `loja`.`Municipio` (
`ID` I T OT ULL AUTO_I CREME T,
`Estado_ID` I T OT ULL,
` ome` VARC AR(80) OT ULL,
`CodIBGE` I T OT ULL, flRIMARY KEY (`ID`)
) E GI E = InnoDB;
-- Add foreign key to Municipio referencing Estado ALTER TABLE `loja`.`Municipio`
ADD I DEX `fk_Municipio_Estado1_idx_idx` (`Estado_ID` ASC) VISIBLE,
ADD CO STRAI T `fk_Municipio_Estado1_idx` FOREIG KEY (`Estado_ID`)
REFERE CES `loja`.`Estado` (`ID`) O DELETE O ACTIO
O UflDATE O ACTIO ;
-- Table Cliente
CREATE TABLE IF OT EXISTS `loja`.`Cliente` (
`ID` I T OT ULL AUTO_I CREME T,
` ome` VARC AR(80) OT ULL,
`CflF` C AR(11) OT ULL,
`Celular` C AR(11) ULL,
`EndLogradouro` VARC AR(100) OT ULL,
`End umero` VARC AR(10) OT ULL,
`EndMunicipio` I T OT ULL,
`EndCEfl` C AR(8) ULL,
`Municipio_ID` I T OT ULL, flRIMARY KEY (`ID`)
) E GI E = InnoDB;
-- Add foreign key to Cliente referencing Municipio ALTER TABLE `loja`.`Cliente`
ADD I DEX `fk_Cliente_Municipio1_idx_idx` (`Municipio_ID` ASC) VISIBLE,
ADD CO STRAI T `fk_Cliente_Municipio1_idx` FOREIG KEY (`Municipio_ID`)
REFERE CES `loja`.`Municipio` (`ID`) O DELETE O ACTIO
O UflDATE O ACTIO ;
-- Table ContaReceber
CREATE TABLE IF OT EXISTS `loja`.`ContaReceber` (
`ID` I T OT ULL AUTO_I CREME T,
`Cliente_ID` I T OT ULL,
`FaturaVendaID` I T ULL,
`DataConta` DATE OT ULL,
`DataVencimento` DATE OT ULL,
`Valor` DECIMAL(18,2) OT ULL,
`Situacao` E UM('1', '2', '3') OT ULL, flRIMARY KEY (`ID`)
) E GI E = InnoDB;
-- Add foreign key to ContaReceber referencing Cliente ALTER TABLE `loja`.`ContaReceber`
ADD I DEX `fk_ContaReceber_Cliente_idx_idx` (`Cliente_ID` ASC) VISIBLE,
ADD CO STRAI T `fk_ContaReceber_Cliente_idx`
(
FOREIG
KEY
(`Cliente_ID`)
REFERE CES `loja`.`Cliente` (`ID`)
O
DELETE
O ACTIO
O
UflDATE
O
ACTIO
;
)
Os passos da criação do script são os seguintes:
1. Criação do Schema:
(
CREATE
SC
EMA
IF
OT
EXISTS
`loja`
DEFAULT
C
ARACTER
SET
utf8;
)
· Define o esquema "loja" se não existir, usando o conjunto de caracteres utf8.
2. Seleção do Schema:
(
USE
`loja`;
)
· Seleciona o esquema "loja" para a execução dos comandos subsequentes.
3. Criação da Tabela Estado:
(
CREATE
TABLE
IF
OT
EXISTS
`loja`.`Estado`
(
`ID`
I
T
OT
ULL
AUTO_I
CREME
T,
`
ome`
VARC
AR(50)
OT
ULL,
`UF`
C
AR(2)
OT
ULL,
flRIMARY
KEY
(`ID`)
)
E
GI
E
=
InnoDB;
)
· Cria a tabela "Estado" com colunas ID, Nome e UF.
· Define a coluna ID como chave primária com autoincremento.
4. Criação da Tabela Municipio:
(
CREATE
TABLE
IF
OT
EXISTS
`loja`.`Municipio`
(
`ID`
I
T
OT
ULL
AUTO_I
CREME
T,
`Estado_ID`
I
T
OT
ULL,
`
ome`
VARC
AR(80)
OT
ULL,
`CodIBGE`
I
T
OT
ULL,
flRIMARY KEY (`ID`)
)
E
GI
E
=
InnoDB;
)
· Cria a tabela "Municipio" com colunas ID, Estado_ID, Nome e CodIBGE.
· Define a coluna ID como chave primária com autoincremento.
5. Adição de Foreign Key à Tabela Municipio:
(
ALTER
TABLE
`loja`.`Municipio`
ADD
I
DEX
`fk_Municipio_Estado1_idx_idx`
(`Estado_ID`
ASC)
VISIBLE,
ADD
CO
STRAI
T
`fk_Municipio_Estado1_idx`
FOREIG
KEY
(`Estado_ID`)
REFERE
CES
`loja`.`Estado`
(`ID`)
O
DELETE
O
ACTIO
O
UflDATE
O
ACTIO
;
)
· Adiciona uma chave estrangeira (foreign key) à coluna Estado_ID na tabela Municipio, referenciando a coluna ID na tabela Estado.
6. Criação da Tabela Cliente:
(
CREATE
TABLE
IF
OT
EXISTS
`loja`.`Cliente`
(
`ID`
I
T
OT
ULL
AUTO_I
CREME
T,
`
ome`
VARC
AR(80)
OT
`Celular`
C
AR(11)
OT
ULL, ULL,
ULL,
`CflF`
C
AR(11)
)
(
`EndLogradouro`
VARC
AR(100)
OT
ULL,
`End
umero`
VARC
AR(10)
`EndMunicipio`
I
T
OT
OT
ULL,
ULL,
`EndCEfl`
C
AR(8)
ULL,
`Municipio_ID`
I
T
flRIMARY KEY (`ID`)
)
E
GI
E
=
InnoDB;
OT
ULL,
)
· Cria a tabela "Cliente" com colunas ID, Nome, CPF, Celular, EndLogradouro, EndNumero, EndMunicipio, EndCEP e Municipio_ID.
· Define a coluna ID como chave primária com autoincremento.
7. Adição de Foreign Key à Tabela Cliente:
(
ALTER
TABLE
`loja`.`Cliente`
ADD
I
DEX `fk_Cliente_Municipio1_idx_idx` (`Municipio_ID` ASC)
VISIBLE,
ADD
CO
STRAI
T
`fk_Cliente_Municipio1_idx`
FOREIG
KEY
(`Municipio_ID`)
REFERE
CES
`loja`.`Municipio`
(`ID`)
O
DELETE
O
ACTIO
O
UflDATE
O
ACTIO
;
)
· Adiciona uma chave estrangeira à coluna Municipio_ID na tabela Cliente, referenciando a coluna ID na tabela Municipio.
8. Criação da Tabela ContaReceber:
(
CREATE
TABLE
IF
OT
EXISTS
`loja`.`ContaReceber`
(
`ID`
I
T
OT
ULL
AUTO_I
CREME
T,
`Cliente_ID`
I
T
OT
`FaturaVendaID`
I
T
`DataConta`
DATE
OT
ULL,
ULL,
ULL,
)
(
`DataVencimento`
DATE
OT
ULL,
`Valor`
DECIMAL(18,2)
OT
ULL,
`Situacao` E UM('1', '2', '3')
flRIMARY
KEY
(`ID`)
)
E
GI
E
=
InnoDB;
OT
ULL,
)
· Cria a tabela "ContaReceber" com colunas ID, Cliente_ID, FaturaVendaID, DataConta, DataVencimento, Valor e Situacao.
· Define a coluna ID como chave primária com autoincremento.
9. Adição de Foreign Key à Tabela ContaReceber:
(
ALTER
TABLE
`loja`.`ContaReceber`
ADD
I
DEX
`fk_ContaReceber_Cliente_idx_idx`
(`Cliente_ID`
ASC) VISIBLE,
ADD
CO
STRAI
T
`fk_ContaReceber_Cliente_idx`
FOREIG
KEY
(`Cliente_ID`)
REFERE
CES
`loja`.`Cliente`
(`ID`)
O
DELETE
O
ACTIO
O
UflDATE
O
ACTIO
;
)
· Adiciona uma chave estrangeira à coluna Cliente_ID na tabela ContaReceber, referenciando a coluna ID na tabela Cliente.
Este script segue a ordem recomendada de criação de tabelas para evitar problemas com chaves estrangeiras.
Etapa 2: Script "inserir.sql"
· Um script contendo comandos DML foi desenvolvido para inserir dados nas tabelas do banco "Loja". Pelo menos três registros foram
adicionados por tabela, garantindo a variedade e representatividade dos dados.
O Script criado foi o seguinte:
-- Inserir dados na tabela Estado
I SERT I TO `loja`.`Estado` (` ome`, `UF`) VALUES ('São flaulo', 'Sfl'),
('Rio de Janeiro', 'RJ'),
('Minas Gerais', 'MG');
-- Inserir dados na tabela Municipio
I SERT I TO `loja`.`Municipio`(`Estado_ID`, ` ome`, `CodIBGE`) VALUES
(1, 'São flaulo', 3550308),
(2, 'Rio de Janeiro', 3304557),
(3, 'Belo orizonte', 3106200);
-- Inserir dados na tabela Cliente
I SERT I TO `loja`.`Cliente` (` ome`, `CflF`, `Celular`,
`EndLogradouro`, `End umero`, `EndMunicipio`, `EndCEfl`,
`Municipio_ID`) VALUES
('João Silva', '12345678901', '987654321', 'Rua A', '123', 1,
'01234567', 1),
('Maria Oliveira', '98765432101', '999888777', 'Rua B', '456',
2, '76543210', 2),
('Carlos Santos', '55544433322', '111222333', 'Rua C', '789',
3, '54321098', 3);
-- Inserir dados na tabela ContaReceber
I SERT I TO `loja`.`ContaReceber` (`Cliente_ID`, `FaturaVendaID`,
`DataConta`, `DataVencimento`, `Valor`, `Situacao`) VALUES (1, 101, '2023-01-01', '2023-02-01', 1000.00, '1'),
(
(2,
102,
'2023-02-01',
'2023-03-01',
1500.50,
'1'),
(3,
103,
'2023-03-01',
'2023-04-01',
2000.75,
'1');
)
Explicação Passo a Passo do Script "inserir.sql":
1. Inserir dados na tabela Estado:
(
I
SERT
I
TO
`loja`.`Estado`
(`
ome`,
`UF`)
VALUES
('São flaulo',
'Sfl'),
('Rio
de
Janeiro',
'RJ'),
('Minas
Gerais',
'MG');
)
· Insere três registros na tabela `Estado`, cada um representando um estado brasileiro com seu nome e UF.
2. Inserir dados na tabela Municipio:
(
I
SERT
I
TO
`loja`.`Municipio`
(`Estado_ID`,
`
ome`,
`CodIBGE`)
VALUES
(1,
'São
flaulo',
3550308),
(2,
'Rio
de
Janeiro',
3304557),
(3,
'Belo
orizonte',
3106200);
)
· Insere três registros na tabela `Municipio`, cada um representando uma cidade, associada a um estado através da chave estrangeira
`Estado_ID`.
3. Inserir dados na tabela Cliente:
(
I
SERT
I
TO
`loja`.`Cliente`
(`
ome`,
`CflF`,
`Celular`,
`EndLogradouro`,
`End
umero`,
`EndMunicipio`,
`EndCEfl`,
`Municipio_ID`)
VALUES
)
(
('João
Silva',
'12345678901',
'987654321',
'Rua
A',
'123',
1,
'01234567',
1),
('Maria
Oliveira',
'98765432101',
'999888777',
'Rua
B',
'456',
2,
'76543210',
2),
('Carlos
Santos',
'55544433322',
'111222333',
'Rua
C',
'789',
3,
'54321098',
3);
)
· Insere três registros na tabela `Cliente`, cada um representando uma pessoa com informações como nome, CPF, celular, endereço, e associada a uma cidade através da chave estrangeira `Municipio_ID`.
4. Inserir dados na tabela ContaReceber:
(1,
101,
'2023-01-01',
'2023-02-01',
1000.00,
'1'),
(2,
102,
'2023-02-01',
'2023-03-01',
1500.50,
'1'),
(3,
103,
'2023-03-01',
'2023-04-01',
2000.75,
'1');
· (
I
SERT
I
TO
`loja`.`ContaReceber`
(`Cliente_ID`,
`FaturaVendaID`,
`Situacao`)
VALUES
`DataConta`,
`DataVencimento`,
`Valor`,
)Insere três registros na tabela `ContaReceber`, cada um representando uma conta a receber associada a um cliente, com informações como data da conta, data de vencimento, valor e situação.
Este script popula as tabelas do banco de dados "loja" com dados de exemplo para posterior utilização e teste. Certifique-se de adaptar os valores conforme necessário para refletir os dados específicos que você deseja inserir.
Etapa 3: Script "consulta.sql"
· Foi elaborado um script que cria uma visão (VIEW) chamada "ContasNaoPagas" utilizando comandos DQL. Essa visão retorna
informações relevantes sobre as contas que ainda não foram pagas, conforme especificado no checklist.
O Script criado foi o seguinte:
(
--
Criação
da
View
para
Contas
ão
flagas
CREATE
VIEW
Contas
aoflagas
AS
SELECT
CR.ID
AS
'ID
da
conta
a
receber',
C.
ome
AS
'
ome
do
Cliente',
C.CflF
AS
'CflF
do
Cliente',
CR.DataVencimento
AS
'Data
de
Vencimento',
CR.Valor
AS
'Valor
da
Conta'
FROM
loja.ContaReceber
CR
JOI
loja.Cliente
C
O
CR.Cliente_ID
=
C.ID
W
ERE
CR.Situacao
=
'1';
)
Explicação Passo a Passo do Script "consulta.sql":
1. Criação da View para Contas Não Pagas:
· Cria uma view chamada `ContasNaoPagas` que combina dados das tabelas `ContaReceber` e `Cliente`.
· Seleciona as colunas desejadas: ID da conta a receber, Nome e CPF do Cliente, Data de Vencimento e Valor da Conta.
· Utiliza a cláusula `JOIN` para relacionar as tabelas `ContaReceber` e
`Cliente` com base na chave estrangeira `Cliente_ID`.
· Utiliza a cláusula `WHERE` para filtrar apenas as contas com situação igual a '1' (Conta registrada).
Esta view pode ser consultada posteriormente para obter informações sobre todas as contas que ainda não foram pagas.
INSTALAÇÃO E CONFIGURAÇÃO DO XAMPP E CÓPIA DE ARQUIVOS DO WORDPRESS.
(
CRIAÇÃO DO BANCO DE DADOS:
)
CONFIGURAÇÃO DO WORDPRESS:
INSTALAÇÃO DO PLUGIN WOOCOMMERCE
PRODUTOS CRIADOS
CATEGORIA CRIADA
RESULTADOS
Após estes passos, podemos concluir o projeto:
CONCLUSÃO
Todas as atividades propostas, foram executas. O resultado foi uma loja virtual eficaz com um ambiente solido e funcional. Durante o processo, adquiri conhecimento sobre servidores WEB e de banco de dados. Preparar o ambiente para um CMS (Wordpress) e configurar FrameWork de uma loja virtual. Habilidades essenciais foram adquiridas. O aprimoramento através da prática traz fluidez para vencer os desafios de um ambiente real, onde corrigir falhas e implantar sistemas com rapidez e eficácia.
REFERÊNCIAS
XAMPP, Disponível em: https://www.apachefriends.org/download.html/ Acesso em: 28/03/2024
WORDPRESS, Disponível em: https://wordpress.org/download/ Acesso em: 28/03/2024
image1.png
image2.png
image3.png
image4.jpeg
image5.jpeg
image6.jpeg
image7.jpeg
image8.jpeg
image9.jpeg
image10.png
image11.png
image12.jpeg
image13.jpeg
image14.jpeg
image15.jpeg
image16.jpeg
image17.jpeg
image18.jpeg