Baixe o app para aproveitar ainda mais
Prévia do material em texto
TÉCNICAS DE PROGRAMAÇÃO Neusa Liberato Evangelista Criando Banco de Dados 01 RAZÕES PARA ESTUDAR CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃOCRIANDO O BANCO DE DADOS PARA PRÁTICA Instalar o Docker Baixar a imagem do Postgres Criar volume de persistênia dos dados Executar o contêiner Postgres 01 02 03 04 05 Acessar o contêiner 06 Criar banco e estruturas07 Compreender necessidade 02 RAZÕES PARA ESTUDAR CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO DOCKER Docker é uma plataforma de software que permite criar, implantar e gerenciar aplicativos em contêineres. Contêiner é uma unidade de software leve e portátil que inclui tudo o necessário para executar um aplicativo. Uma "imagem" no contexto do Docker é um pacote que inclui todas as dependências necessárias para executar um contêiner, como o sistema operacional, bibliotecas, código do aplicativo e configurações. CRIANDO O BANCO DE DADOS PARA PRÁTICA 03 Instalar o Docker seguindo instruções do site oficial de acordo com a plataforma. docker pull postgres https://docs.docker.com/engine/install/ CRIANDO O BANCO DE DADOS PARA PRÁTICA 01 Baixar a imagem do Postgres executando o comando. 02 No Windows podemos e vamos usar o Docker Desktop com WSL (Windows Subsystem for Linux). A instalação só pode ser feita pelo administrador da máquina. As imagens são baixadas do huber.docker.com. https://docs.docker.com/engine/install/ 04 Criar volume de persistência dos dados docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=sua-senha -v C:/postgres:/var/lib/postgresql/data postgres CRIANDO O BANCO DE DADOS PARA PRÁTICA 03 Executar o contêiner Postgres04 Criar diretório para os dados em sua máquina (home). docker start postgres 05 RAZÕES PARA ESTUDAR CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO Explicando os parâmetros: docker run: comando para criar e executar um contêiner a partir de uma imagem. -d: indica que o contêiner será executado em segundo plano. --name postgres: nome do contêiner. Neste caso, "postgres". -p 5432:5432: porta 5432 do contêiner para porta 5432 do host. 5432 é a porta padrão do Postgres. -e POSTGRES_PASSWORD=sua-senha: define a variável de ambiente POSTGRES_PASSWORD com a senha escolhida. -v diretório_físico:subdiretório_virtual: define o diretório onde os dados do Postgres serão armazenados. postgres: nome da imagem sendo utilizada para criar o contêiner. CRIANDO O BANCO DE DADOS PARA PRÁTICA 06 05 Acessar o contêiner CRIANDO O BANCO DE DADOS PARA PRÁTICA psql é o utilitário de linha de comando para interagir com o banco de dados PostgreSQL. docker exec -it postgres psql -U postgres Comandos úteis do psql: \l: Lista todos os bancos de dados disponíveis. \c <nome_do_banco>: Conecta ao banco de dados especificado. \dt: Lista todas as tabelas no banco de dados atual. \d <nome_da_tabela>: Descreve a estrutura da tabela especificada. \du: Lista todos os papéis de usuários (usuários e grupos de usuários). \dn: Lista todos os esquemas no banco de dados atual. \dp: Mostra as permissões dos objetos de banco de dados. \i <arquivo.sql>: Executa os comandos SQL contidos no arquivo especificado. \q: Sai do psql. 07 06 Compreender necessidade Cliente: Hospital Módulo: Atendimento em emergência hospitalar Necessidade: Backend para agilizar o acolhimento inicial dos clientes da emergência. O Frontend será no portal do hospital e esse novo módulo deve receber as informações para serem incluídas na base de dados e deve permitir consultar os dados cadastrados. CRIANDO O BANCO DE DADOS PARA PRÁTICA 08 06 Compreender necessidade Solicitar apenas dados essenciais dos clientes (LGPD).1. Realizar todas as validações e retornar mensagens claras e auto-explicativas. 2. Se o cliente ou seu acompanhante já foi atendido alguma vez, obter os dados já cadastrados pelo nome, parte do nome, número de documento ou telefone. 3. CRIANDO O BANCO DE DADOS PARA PRÁTICA Requisitos funcionais 09 06 Compreender necessidade CRIANDO O BANCO DE DADOS PARA PRÁTICA nome (obrigatório) data de nascimento (obrigatório) telefone para contato com identificação se do cliente ou do acompanhante (obrigatório) número de documento (preferência CPF) mas pode ser RG ou passaporte (opcional se menor de 18 anos) Requisitos funcionais - dados 10 06 Compreender necessidade CRIANDO O BANCO DE DADOS PARA PRÁTICA tipo de atendimento (respiratório, traumatológico, ginecológico, obstétrico ou clínico geral) nome do acompanhante número de documento do acompanhante dados do acompanhante são obrigatório nos casos de cliente seja menor de 18 anos ou maior de 70 anos, ou não possa responder por si por qualquer motivo. Requisitos funcionais - dados 11 06 Compreender necessidade CRIANDO O BANCO DE DADOS PARA PRÁTICA Desempenho: tempo de resposta das operações de inclusão e consulta inferiores a 40 segundos. Escalabilidade: responder com mesmo desempenho a no mínimo 30 atendimentos simultâneos. Disponibilidade: 24 x 7. Atualizações devem realizadas em dias de menor atendimento, com a anuência do hospital. Inoperância não deve ultrapassar 10 minutos. Requisitos não funcionais 12 06 Compreender necessidade CRIANDO O BANCO DE DADOS PARA PRÁTICA Segurança: Respeito a LGPD. Prevenir acesso não autorizado direto à API. Manutenibilidade: código legível com documentação adequada e utilização de boas práticas de desenvolvimento. Interoperabilidade: capacidade de interagir e integrar-se facilmente com outros sistemas e tecnologias, seguindo padrões e protocolos abertos e amplamente reconhecidos. Requisitos não funcionais 13 06 Compreender necessidade CRIANDO O BANCO DE DADOS PARA PRÁTICA Modelo sugerido 14 07 Criar banco de dados e estruturas CRIANDO O BANCO DE DADOS PARA PRÁTICA postgres-# CREATE DATABASE uni7; postgres-# \c uni7 Quando entrar novamente no psql pode já informar a que banco ser conectar: docker exec -it psql -h localhost -p 5432 -U postgres -d uni7 15 07 Criar banco de dados e estruturas CRIANDO O BANCO DE DADOS PARA PRÁTICA postgres-# CREATE SCHEMA hospital; postgres-# SET SEARCH_PATH TO hospital; SET SEARCH_PATH garante que as estruturas são criadas, referenciadas dentro do esquema especificado. Por segurança, é sempre indicado informar o schema antes do nome da estrutura pois não sabemos em que usuário/schema será exeuctado o comando. 16 07 Criar banco de dados e estruturas CRIANDO O BANCO DE DADOS PARA PRÁTICA -- TABELA DOMINIO TIPO DE ATENDIMENTO CREATE TABLE hospital.tipo_atendimento ( id_tipo_atendimento SERIAL PRIMARY KEY, nome_tipo_atendimento VARCHAR(20) NOT NULL); INSERT INTO hospital.tipo_atendimento (id_tipo_atendimento, nome_tipo_atendimento) VALUES (1, 'Respiratório'),(2, 'Traumatológico'),(3, 'Ginecológico'),(4, 'Obstrético'),(5, 'Clínico Geral'); O PostgreSQL opera no modo de autocommit por padrão, ou seja, cada comando DML é tratado como uma transação separada e é automaticamente confirmado ao ser concluído com sucesso. Isso difere de alguns outros sistemas de banco de dados onde uma transação explícita é necessária para confirmar as alterações. 17 07 Criar banco de dados e estruturas CRIANDO O BANCO DE DADOS PARA PRÁTICA --TABELA DOMINIO TIPO DE DOCUMENTO CREATE TABLE hospital.tipo_documento (id_tipo_documento SERIAL PRIMARY KEY, nome_tipo_documento VARCHAR(20) NOT NULL); INSERT INTO hospital.tipo_documento (id_tipo_documento, nome_tipo_documento) VALUES (1, 'CPF'), (2, 'RG'), (3, 'Passaporte'); 18 07 Criar banco de dados e estruturas CRIANDO O BANCO DE DADOS PARA PRÁTICA --TABELA PARA DADOS DAS PESSOAS CREATE TABLE hospital.pessoa (id_pessoa SERIAL PRIMARY KEY, nome VARCHAR(200) NOT NULL, numero_documento INTEGER, id_tipo_documento INTEGER, telefone VARCHAR(15), data_nascimento DATE NOT NULL, FOREIGN KEY (id_tipo_documento) REFERENCES hospital.tipo_documento (id_tipo_documento)); 1918 07 Criar banco de dados e estruturas CRIANDO O BANCO DE DADOS PARA PRÁTICA -- TABELA PARA DADOS DOS ATENDIMENTOSCREATE TABLE hospital.atendimento ( id_atendimento SERIAL PRIMARY KEY, id_pessoa_paciente INTEGER NOT NULL, id_pessoa_acompanhante INTEGER, data_hora_entrada TIMESTAMP, id_tipo_atendimento INTEGER, FOREIGN KEY (id_tipo_atendimento) REFERENCES hospital.tipo_atendimento, FOREIGN KEY (id_pessoa_paciente) REFERENCES hospital.pessoa, FOREIGN KEY (id_pessoa_acompanhante) REFERENCES hospital.pessoa); OBRIGADA Neusa Liberato Evangelista
Compartilhar