Baixe o app para aproveitar ainda mais
Prévia do material em texto
Portfolio – Banco de Dados em Nuvem Definição dos objetivos da aula prática: - Criar um banco de dados, algumas tabelas e descrever como conectar num provedor de nuvem. Resolução: O banco de dado em nuvem nada mais é, do que o processo de organizar e armazenar dados estruturados, semiestruturados e não estruturados como banco de dados tradicionais (local databases). Porém, os bancos de dados em nuvem oferecem, velocidade, agilidade, custos reduzidos e escalonabilidade. Atividade proposta: - Criação de banco de dados utilizando a ferramenta MySQL Workbench e descrever como conectar este banco em um provedor em nuvem. .1) Utilizando o MySQL Workbench você criará um banco de dados com o nome de (aula) e descrever como conectar este banco em um provedor em nuvem. Banco de dados criado e conectado ao servidor .2) Suponha que você precise criar tabelas para armazenar informações sobre clientes e seus endereços. Cada cliente tem apenas um endereço. Nesse caso, você pode usar um relacionamento 1 para 1, utilizando as tabelas cliente e endereco descritas abaixo: * Nome da tabela: cliente colunas a serem inseridas: cliente_id INT PRIMARY KEY, nome VARCHAR(50) email VARCHAR(50) * nome da tabela: endereco colunas a serem inseridas: endereco_id INT PRIMARY KEY, cliente_id INT UNIQUE rua VARCHAR(100) cidade VARCHAR(50) estado VARCHAR(50) pais VARCHAR(50) · Diagrama das tabelas ‘cliente’ e ‘endereco’: 3) Relacionamento 1 para muitos: Vamos supor que você queira criar tabelas para armazenar informações sobre uma empresa e seus funcionários. Uma empresa pode ter vários funcionários, mas um funcionário pertence a apenas uma empresa. Nesse caso, você pode usar um relacionamento 1 para muitos, utilizando as tabelas empresa e funcionario descritas abaixo: * Nome da tabela: empresa colunas a serem inseridas: empresa_id INT PRIMARY KEY nome VARCHAR(50) endereco VARCHAR(100) * Nome da tabela: funcionario colunas a serem inseridas: funcionario_id INT PRIMARY KEY nome VARCHAR(50) email VARCHAR(50) empresa_id INT ** Adicionar uma FOREIGN KEY com a coluna (empresa_id) na tabela empresa · Diagrama das tabelas ‘empresa’ e ‘funcionario’ 4) Relacionamento muitos para muitos: Suponha que você queira criar tabelas para armazenar informações sobre cursos e estudantes. Cada curso pode ter vários estudantes, e cada estudante pode estar matriculado em vários cursos. Nesse caso, você precisa de uma tabela de associação para representar o relacionamento muitos para muitos. * Nome da tabela: curso colunas a serem inseridas: curso_id INT PRIMARY KEY, nome VARCHAR(50), descricao VARCHAR(100) * Nome da tabela: estudante colunas a serem inseridas: estudante_id INT PRIMARY KEY, nome VARCHAR(50), email VARCHAR(50) * Nome da tabela: curso_estudante colunas a serem inseridas: CREATE TABLE curso_estudante ( curso_id INT, estudante_id INT, **Chave Primária Composta (curso_id, estudante_id) ** Adicionar uma FOREIGN KEY com a coluna (curso_id) na tabela curso ** Adicionar uma FOREIGN KEY com a coluna (estudante_id) na tabela estudante · Diagrama das tabelas ‘curso’, ‘estudante’ e ‘curso_estudante’ Para esta atividade, o servidor utilizado nesta atividade é o Google Drive, que nos oferece um serviço de armazenamento e sincronização de arquivos através do Google. Ele disponibiliza ao usuário 15GB de forma gratuita para o armazenamento, e caso o usuário deseje espaço extra, ele poderá contratar o serviço de variando de 100GB até 2TB com os valores variando de R$1,69 a R$8,69 mensalmente, como demonstrado na tabela de preços abaixo: Conclusão Na execução desta atividade, colocamos em prática o conceito da criação e configuração de um banco de dados na nuvem, utilizando a ferramenta MySQL Workbench para criar as tabelas e realizar a modelagem e relacionamentos do banco de dados, para que assim possamos subir um banco de dados em nuvem de maneira otimizada. Abaixo seguem os comandos em SQL utilizados na criação da base de dados: -- MySQL Workbench Forward Engineering SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; -- ----------------------------------------------------- -- Schema aula -- ----------------------------------------------------- -- ----------------------------------------------------- -- Table `cliente` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `cliente` ( `cliente_id` INT NOT NULL AUTO_INCREMENT, `nome` VARCHAR(50) NOT NULL, `email` VARCHAR(50) NOT NULL, PRIMARY KEY (`cliente_id`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `endereco` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `endereco` ( `endereco_id` INT NOT NULL AUTO_INCREMENT, `cliente_id` INT NOT NULL, `rua` VARCHAR(100) NOT NULL, `cidade` VARCHAR(50) NOT NULL, `estado` VARCHAR(50) NOT NULL, `pais` VARCHAR(50) NOT NULL, PRIMARY KEY (`endereco_id`, `cliente_id`), UNIQUE INDEX `cliente_id_UNIQUE` (`cliente_id` ASC) VISIBLE, CONSTRAINT `client_id` FOREIGN KEY (`cliente_id`) REFERENCES `cliente` (`cliente_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `empresa` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `empresa` ( `empresa_id` INT NOT NULL AUTO_INCREMENT, `nome` VARCHAR(50) NOT NULL, `endereco` VARCHAR(100) NOT NULL, PRIMARY KEY (`empresa_id`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `funcionario` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `funcionario` ( `funcionario_id` INT NOT NULL, `nome` VARCHAR(50) NOT NULL, `email` VARCHAR(50) NOT NULL, `empresa_id` INT NOT NULL, PRIMARY KEY (`funcionario_id`, `empresa_id`), INDEX `empresa_id_idx` (`empresa_id` ASC) VISIBLE, CONSTRAINT `empresa_id` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`empresa_id`) ON DELETE RESTRICT ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `curso` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `curso` ( `curso_id` INT NOT NULL AUTO_INCREMENT, `nome` VARCHAR(50) NOT NULL, `descricao` VARCHAR(100) NOT NULL, PRIMARY KEY (`curso_id`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `estudante` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `estudante` ( `estudante_id` INT NOT NULL, `nome` VARCHAR(50) NOT NULL, `email` VARCHAR(50) NOT NULL, PRIMARY KEY (`estudante_id`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `curso_estudante` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `curso_estudante` ( `curso_id INT` INT NOT NULL, `estudante_id` INT NOT NULL, PRIMARY KEY (`estudante_id`, `curso_id INT`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `curso_curso_estudante` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `curso_curso_estudante` ( `curso_curso_id` INT NOT NULL, `curso_estudante_estudante_id` INT NOT NULL, `curso_estudante_curso_id INT` INT NOT NULL, PRIMARY KEY (`curso_curso_id`, `curso_estudante_estudante_id`, `curso_estudante_curso_id INT`), INDEX `fk_curso_has_curso_estudante_curso_estudante1_idx` (`curso_estudante_estudante_id` ASC, `curso_estudante_curso_id INT` ASC) VISIBLE, INDEX `fk_curso_has_curso_estudante_curso1_idx` (`curso_curso_id` ASC) VISIBLE, CONSTRAINT `fk_curso_has_curso_estudante_curso1` FOREIGN KEY (`curso_curso_id`) REFERENCES`curso` (`curso_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_curso_has_curso_estudante_curso_estudante1` FOREIGN KEY (`curso_estudante_estudante_id` , `curso_estudante_curso_id INT`) REFERENCES `curso_estudante` (`estudante_id` , `curso_id INT`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `curso_estudante_has_estudante` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `curso_estudante_has_estudante` ( `curso_estudante_estudante_id` INT NOT NULL, `curso_estudante_curso_id INT` INT NOT NULL, `estudante_estudante_id` INT NOT NULL, PRIMARY KEY (`curso_estudante_estudante_id`, `curso_estudante_curso_id INT`, `estudante_estudante_id`), INDEX `fk_curso_estudante_has_estudante_estudante1_idx` (`estudante_estudante_id` ASC) VISIBLE, INDEX `fk_curso_estudante_has_estudante_curso_estudante1_idx` (`curso_estudante_estudante_id` ASC, `curso_estudante_curso_id INT` ASC) VISIBLE, CONSTRAINT `fk_curso_estudante_has_estudante_curso_estudante1` FOREIGN KEY (`curso_estudante_estudante_id` , `curso_estudante_curso_id INT`) REFERENCES `curso_estudante` (`estudante_id` , `curso_id INT`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_curso_estudante_has_estudante_estudante1` FOREIGN KEY (`estudante_estudante_id`) REFERENCES `estudante` (`estudante_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; image1.png image2.png image3.png image4.png image5.png
Compartilhar