diff --git a/Captura de tela 2026-05-15 103223.png b/Captura de tela 2026-05-15 103223.png new file mode 100644 index 0000000..b792648 Binary files /dev/null and b/Captura de tela 2026-05-15 103223.png differ diff --git a/Captura de tela 2026-06-23 154645.png b/Captura de tela 2026-06-23 154645.png new file mode 100644 index 0000000..329c602 Binary files /dev/null and b/Captura de tela 2026-06-23 154645.png differ diff --git a/Ecercicio.modulo1.txt b/Ecercicio.modulo1.txt new file mode 100644 index 0000000..b904771 --- /dev/null +++ b/Ecercicio.modulo1.txt @@ -0,0 +1,89 @@ +Ecercicio +Roteiro sugerido +1:explicar o que é uma entidade; + é algo que existe no mundo real e que precisa ser representada representado em um sistema + +2. listar as entidades do negócio; + cliente/vendedor/pedido/ produto/pedido item + +3. identificar atributos de cada entidade; + Cliente; + id do cliente + tipo de pessoa (física ou jurídica) + nome social + nome fantasia + CPF ou CNPJ + Email + telefone + criado + atualizado + +Vendedor; + id do vendedor + nome do vendedor + email + telefone + ativo + Criado + atualizado + +Produto; + Id do produto + Sku(código de barra do produto) + Descrição + Valor unitário + ativo, + estoque + Criado em + Atualizado em + +Pedido + Id vendedor + Id clienta + Id pedido + obs + Valor total + Status + Hora e data + Quando criado + Atualizado em + +Pedido item + Id + Id produto + Ide pedido + Quantidade + Valor unitário + Valor total + Status + Criado em + Atualizado em + +4. desenhar o modelo em papel ou quadro;já +• desenhei mas não no papel, então refazer + +5. classificar os relacionamentos; + Cliente para pedido = 1:n + Vendedor para pedido =1:n + Pidido para produto = 1:n + Produto para pedido – n:n + +6. discutir obrigatoriedades e nulabilidade. + Vendedor, obrigatório = um pedido nunca poderá ser feito sem um cliente + Cliente = não é onbrigatorio = o vendedor pode ser opcional se vai ou não ser declarado + Pedido = o predido é obrigatório, é o cabeçario da compra, com dados e td la + Produto= obrigatório, é o item em questão sendo negociado + Pedido item =obrigatório = é onde fica todos os produtos da vendas + +4.7 Exercícios do módulo 1 + +1. Desenhar o modelo de dados em papel. + (feito no brwm) +2. Dizer qual é a chave primária de cada tabela. + (feito) +3. Dizer quais são as chaves estrangeiras. + (feito) +4. Classificar todos os relacionamentos como 1:1, 1:N ou N:N. + (feito) +5. Explicar, em voz alta, o papel de cada tabela. + diff --git a/Exercicios Modulos/Exercicio Modulo 4 b/Exercicios Modulos/Exercicio Modulo 4 new file mode 100644 index 0000000..f6734e3 --- /dev/null +++ b/Exercicios Modulos/Exercicio Modulo 4 @@ -0,0 +1,24 @@ +# Trilha de Formação — Suporte Técnico com Base em Banco de Dados e SQL + +## 7.6 Exercícios do módulo 4 + +1. Dar um exemplo de conjunto usando `clientes`. +2. Dar um exemplo de subconjunto usando `produtos`. +3. Explicar, sem SQL, o que seria a interseção entre pedidos e clientes. +4. Explicar, sem SQL, o que seria a diferença entre vendedores e vendedores com pedidos. + +1. Caso o se queira saber quais produtos um determinado cliente ainda nunca havia comprado é possivel tirar por diferença + Utilizando do conjunto diferença se é visto quais produtos determinado cliente nunca eftuou uma compra. + da mesma forma, é possivel saber quais produtos ja foram vendido a tal, vendo quais produtos intersectam com o usuario. + + +2. o subconjunto é uma pequena "parte" de um conjunto , por exemplo o conjunto `produtos`, dentro dele temos um subconjunto chamado `estoque atual` , nele contem a quantidade atual dos produtos, assim podento consultar apenas o estoque, isso facilita em caso de buscas rapidas. + +3. Na imagem [conjunto produto e criente.jpeg] é uma explicação de forma visual como um `cliente` e um produto podem intersectar em algum momento, como um produto que o cliente ja tenha comprado, na imagem é possivel visualisar a area de cliente(azul) , a area de produto(vermelho), e na area central uma cololaração laranja, essa area pertence tanto a produto quanto ao cliente, essa parte é chamada de intersecção dos dois DSconjuntos. + +4. vendedores se refere a tabela, todos os vendedores(ou tambem o conjunto principal), e vendedores com pedidos se refere a um tipo conjunto de intersecção, onde vemos qual vendedores estão associados a algum pedido, isso ajuda a organizar para saber qual vendedor esta vendendo mais, e assim ele separa, e aqueles não associados(que sobraram) sao os qua nao venderam nada, alem de ajudar organizar as bonificação por venda, se tive. + + +## considereções do modulo 4 + +O modulo foi relativamente simples, ele utiliza de maneira direta e simples o conjunto, algo ja aboradado em minhas aulas, e que particularmente nunca tive dificuldade, desta forma o entendimento ficou mais claro, decidi tambem responder a questão 3 do modulo 4 atraves de uma ilustração propria, de maneira a ficar mais claro, pretento elaborar mais relações entre conjuntos a fim de descobrir maneiras eficases de se utilizar. diff --git a/Exercicios Modulos/Projeto de acompanhamento de notas escolares b/Exercicios Modulos/Projeto de acompanhamento de notas escolares new file mode 100644 index 0000000..a904761 --- /dev/null +++ b/Exercicios Modulos/Projeto de acompanhamento de notas escolares @@ -0,0 +1,15 @@ +# Analise de desempenho escolar + +## Analise e desemvollvimento de primeiro prototipo + +1. A imagem [fluxograma escola.png] faz parte de um desemvolvimento de um futuro banco de dados, decidi por assim incluir +na trilha de aprendijagem para um melhor desemvolvimento, também por se tratar de aplicar e desemvolver minhas ablidades em situações diferentes. + +2. o projeto consiste em desemvolver um banco de dados que armazene as notas dos alunos do fundamental a fim de auxiliar o controle e facilitar buscas, contudo o foco principal do projeto e fazer com que o banco ajude o professor a acompanhar o desemvolvimento do aluno, assim em caso de queda de nota de um periodo para o outro o professor percebera essa mudança, assim podendo avaliar se é um caso isolado de uma materia, se é em todas. Assim ajudando o professor que ja possui uma rotina estressante a ter uma rotina mais organizada e possibilitando enchegar dificuldades de alunos que antes passavam despercebido pela quantidade de aluno em uma sala. + +3. o fluxograma ainda não esta completo, enquanto desemvolvia acabei me perdendo nas anotação, por isso reduzi os passos para evitar colocar dados +que possam quebrar o banco, pretendo fazer um "enchugamento para visualisar os pontos que possam causar um quebra. + +4. Tambem preciso ainda arrumar alguns pontos ja vistos, como relacionamento incossistentes, adicionar uma tabela alerta para os professores notarem alguma queda de desempenho escolar(ainda nao estou me aprofundando nessa parte), e tabem a tabela histórico esta armazenando nota, ver se não esta sobressaindo, ela deve calcular a media final. + + \ No newline at end of file diff --git a/Exercicios Modulos/Relatorio de experiencia dos modulos b/Exercicios Modulos/Relatorio de experiencia dos modulos new file mode 100644 index 0000000..fbe5d00 --- /dev/null +++ b/Exercicios Modulos/Relatorio de experiencia dos modulos @@ -0,0 +1,34 @@ +# Relatorio de experiencia dos modulos da trilha SQL + +## Modulo 1 + +1. O modulo 1 foi o mais longo ate o momento por se tratar do inicio, é a introdução a +todos os termos e conceitos que serão abordados, ele tabem prepara para a criação das tabelas. +Por ser algo mais teorico do que pratico ele exerce muito mais a capacidade de memorização dos conceitos. + Sobre o modulo, achei um dos mais faceis, aborda o assunto de maneira direta, e mesmo sendo o mais teorico + dos modulos, ele não aprofunda assuntos que podem não serem trabalhado na trilha. + +## Modulo 2 + +1. Em contra partida do modulo passado, considero esse o mais dificil dentre os modulo ja feito, +nesse modulo é a criação do conteinner no docker, esse foi o que mais me debati, a interfasse ser ingles dificultou no inicio +mais nada que um pouco de pratica não resolvesse, contudo, a liguagem para subir o docker me debatia muito, no terminal, muitas veses +não consegui enterder o erro, assim precisei recorrer ao claude e chat gpt para traduzir a mesagem, ele me ajudou a entender o erro, +embora mesmo agora teria dificuldade de sobir novamente, pretendo me aprofundar mais futuramento por que claramente ainda tenho dificuldade +nessa area. + +## Modulo 3 + +1. Esse modulo vejo mais como um complemento do modulo 2, nele se é visto a alteração de tabelas, relativamente simples, mais +o que mais achei interassante são os comentario, alterar uma tabela é simples, mais o impacto que essa alteração vai causar é +o verdadeiro desafio, pois é necessario uma interpletação dos impactos de cada mudança, e interpletar antes mesmo de efetuar a mudança para +evitar que cause um poblema ao banco de dados, esse modulo foi bem direto quanto as informação ele ensina como fazer modificação nas tabelas +de forma direta, mais deixa explicito as atenção que se deve ter ao fazer cada mudança, pois cada uma vai impactar o banco de alguma forma, +e como é importante plenejar antes de agir. + +## Modulo 4 + +1. No modulo 4 é abordado os conjuntos dentro de um banco de dados, por se tratar de conjuntos, ele se associa ao conjunto classico visto na matematica +por isso esse foi um dos modulos mais faceis de se fazes, entretanto, mesmo sendo facel merece atenção, por se tratar das "interação entre conjunto", como a intersecção ou diferença vejo esse modulo importante para a aplicação no banco de dados. + +2. Nesse modulo em um dos exercicio preferi desenhar em ums dos exercicio(exercicio 3) em vez de apenas explicar o conceito, o desenho é relativamente simple, abordando apenas a intersecção entre dois comjuntos, para desenhar utilisei da ferramente paint. R \ No newline at end of file diff --git a/Exercicios Modulos/conjunto produto e clirnte.jpeg b/Exercicios Modulos/conjunto produto e clirnte.jpeg new file mode 100644 index 0000000..fae6b11 Binary files /dev/null and b/Exercicios Modulos/conjunto produto e clirnte.jpeg differ diff --git a/Exercicios Modulos/fluxograma escolar.png b/Exercicios Modulos/fluxograma escolar.png new file mode 100644 index 0000000..2e27cd2 Binary files /dev/null and b/Exercicios Modulos/fluxograma escolar.png differ diff --git a/exe_modulo.2.3.sql b/exe_modulo.2.3.sql new file mode 100644 index 0000000..e5c1c1c --- /dev/null +++ b/exe_modulo.2.3.sql @@ -0,0 +1,79 @@ +CREATE TABLE vendedores ( + id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + nome VARCHAR(150) NOT NULL, + email VARCHAR(150) DEFAULT NULL, + telefone VARCHAR(20) DEFAULT NULL, + ativo TINYINT(1) NOT NULL DEFAULT '1', + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +); + +CREATE TABLE clientes( + id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + tipo_pessoa ENUM('FISICA','JURIDICA') NOT NULL, + pessoa_razao_social VARCHAR(150) NOT NULL, + nome_fantasia VARCHAR(150) DEFAULT NULL, + cpf_cnpj VARCHAR(18) NOT NULL, + email VARCHAR(150) DEFAULT NULL, + telefone VARCHAR(25) DEFAULT NULL, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + data_nascimento DATE DEFAULT NULL, + UNIQUE KEY uk_clientes_cpf_cnpj (cpf_cnpj) +); + +CREATE TABLE `produtos` ( + id BIGINT unsigned NOT NULL AUTO_INCREMENT, + sku VARCHAR(50) NOT NULL, + descricao VARCHAR(200) NOT NULL, + valor_unitario DECIMAL(10,2) NOT NULL, + estoque_atual DECIMAL(10,2) NOT NULL DEFAULT 0.00, + ativo TINYINT(1) NOT NULL DEFAULT 1, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + categoria VARCHAR(150) DEFAULT NULL, + UNIQUE KEY uk_produtos_sku (sku) +); + +CREATE TABLE `pedidos` ( + id BIGINT unsigned NOT NULL AUTO_INCREMENT, + cliente_id BIGINT unsigned NOT NULL, + vendedor_id BIGINT unsigned NOT NULL, + data_hora DATETIME NOT NULL, + status enum('ABERTO','FATURADO','CANCELADO') NOT NULL DEFAULT 'ABERTO', + observacaos VARCHAR(250) DEFAULT NULL, + valor_total DECIMAL(12,2) NOT NULL DEFAULT 0.00, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_pedidos_clientes FOREIGN KEY (cliente_id) REFERENCES clientes (id), + CONSTRAINT fk_pedidos_vendedores FOREIGN KEY (vendedor_id) REFERENCES vendedores (id) +); + +CREATE TABLE `pedidos_itens` ( + id BIGINT unsigned NOT NULL AUTO_INCREMENT, + pedido_id BIGINT unsigned NOT NULL, + produto_id BIGINT unsigned NOT NULL, + quantidade DECIMAL(10,2) NOT NULL, + valor_unitario DECIMAL(10,2) NOT NULL, + valor_total DECIMAL(12,2) NOT NULL, + criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + atualizado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_pedido_itens_pedidos FOREIGN KEY (pedido_id) REFERENCES pedidos (id), + CONSTRAINT fk_pedido_itens_produtos FOREIGN KEY (produto_id) REFERENCES produtos (id) +); + + + +/*comando de alterçaõ de tabela*/ + +ALTER TABLE clientes +ADD COLUMN data_nascimento DATE NULL; + +ALTER TABLE produtos +ADD COLUMN categoria VARCHAR(150) NULL; + +ALTER TABLE clientes +MODIFY COLUMN telefone VARCHAR(25); + +ALTER TABLE pedidos +ADD INDEX idx_pedidos_data_hora (data_hora); \ No newline at end of file