Baixe o app para aproveitar ainda mais
Prévia do material em texto
Inserir Título Aqui Inserir Título Aqui Projeto Conceitual de Banco de Dados Projeto de Banco de Dados Responsável pelo Conteúdo: Prof. Me. Luiz Carlos Reis Revisão Textual: Prof. Me. Luciano Vieira Francisco Nesta unidade, trabalharemos os seguintes tópicos: • Projeto Físico; • Visão Geral da Ferramenta; • Gerando o Projeto Físico. Fonte: iStock/Getty Im ages Objetivos • Gerar o modelo de Entidade de Relacionamento (DER). • Utilizar a ferramenta MySQL Workbench para a geração do projeto físico partindo do mo- delo gerado. Caro Aluno(a)! Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o último momento o acesso ao estudo, o que implicará o não aprofundamento no material trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas. Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns dias e determinar como o seu “momento do estudo”. No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões de materiais complementares, elementos didáticos que ampliarão sua interpretação e auxiliarão o pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. Bons Estudos! Projeto de Banco de Dados UNIDADE Projeto de Banco de Dados Projeto Físico Nesta fase escolheremos um Sistema de Gerenciamento de Banco de Dados (SGBD) para implementar o modelo lógico gerado na fase anterior. Trabalharemos com o banco de dados MySQL e para isso o implementaremos utilizando a ferramenta MySQL Workbench, que é um case gratuito, oferecendo as seguintes funcionalidades: • Desenvolvimento SQL – funcionalidade para consultas MySQL. Permite que o usuário se conecte a um banco de dados existente, edite e execute consultas SQL; • Modelagem de dados – permite a modelagem visual de banco de dados (criação do modelo lógico e físico); • Funcionalidade de administrador do MySQL – possui uma interface gráfica para iniciar/parar servidores, criar contas de usuário, editar arquivos de configuração etc. M ySQL Workbench pode ser baixado em: https://goo.gl/YGgkwy e instalado nos sistemas operacionais Windows, Mac OS X e nas principais distribuições Linux. Figura 1 Fonte: adaptada de MySQL Workbench. No contexto desta Unidade, focaremos no desenvolvimento do modelo lógico/físi- co e, em seguida, geraremos um script SQL. Portanto, faça o download e instale esse software. 6 7 Visão Geral da Ferramenta Primeiramente, geraremos o Diagrama de Entidade de Relacionamento (DER). Na tela principal da ferramenta, clique em File/New Model. Figura 2 Fonte: adaptada de MySQL Workbench Na tela a seguir, clique no botão Add Diagram. Figura 3 Fonte: adaptada de MySQL Workbench Na próxima Figura desenvolveremos o nosso modelo lógico para posteriormente transformá-lo no projeto físico: Figura 4 Fonte: adaptada de MySQL Workbench Na área maior implementaremos o nosso DER e utilizaremos os objetos ao lado para ir adicionando e compondo tal diagrama. 7 UNIDADE Projeto de Banco de Dados Note também que já estamos conectados em um Banco de Dados (BD), pois assim que finalizarmos o projeto físico, o mesmo será criado dentro desse BD. Adotaremos o seguinte diagrama como exemplo para a criação dentro da ferramenta: Figura 5 O primeiro passo será criar as tabelas. Para tanto, clique no objeto New Table e, em seguida, clique em uma área vazia – tal ação adicionará um objeto Table. Figura 6 Fonte: adaptada de MySQL Workbench Clique, com o botão esquerdo do mouse, duas vezes no objeto Table1. Essa ação habilitará uma tela de propriedades, na qual você precisará alterar o nome da propriedade Table Name para Aluno. 8 9 Figura 7 Fonte: adaptada de MySQL Workbench Adicionaremos, então, os atributos na tabela. Para tanto, na tela de propriedades, logo abaixo da propriedade Table Name, clique duas vezes, com o botão esquerdo do mouse, na célula abaixo da coluna Column Name. Em seguida, altere o nome do atributo para nr_rgm e selecione Primary Key (PK), onde deixaremos essa área como campo-chave. Figura 8 Fonte: adaptada de MySQL Workbench Note que utilizamos aqui o banco de dados mydb e que a tabela já foi criada. Agora, adicionaremos os outros campos da tabela Aluno. 9 UNIDADE Projeto de Banco de Dados Figura 9 Fonte: adaptada de MySQL Workbench Repita a operação para as próximas cinco tabelas, percebendo que os campos-chave estão separados na parte superior do DER e NÃO deverão ser criados nas entidades fracas, ou seja, Matrícula e Classe, visto que serão elaborados automaticamente pela ferramenta quando atribuirmos o grau de relacionamento. Figura 10 Fonte: adaptada de MySQL Workbench Para cada atributo criado na tabela existem diversas propriedades, conforme podemos verificar na Figura 10; de modo que cada propriedade, quando selecionada, agrega uma funcionalidade ao atributo. Essas propriedades são as seguintes: 10 11 • PK: Chave Primária – o atributo é uma chave primária; • NN: Não Nulo – o atributo não pode ficar vazio; • UQ: Único – o valor do atributo deve ser único em toda a tabela; • BIN: Binário – o atributo aceita apenas valores binários; • UN: Unsigned – o atributo não permite valores negativos; • ZF: Zero Fill – preenche os espaços vazios com zero à esquerda até o tamanho padrão do campo; • AI: Autoincremento – o valor do atributo é gerado automaticamente pelo SGBD. Ao final, teremos o DER conforme se vê na seguinte Figura: Figura 11 Fonte: adaptada de MySQL Workbench O próximo passo é adicionar o grau de relacionamento entre as tabelas, de modo que a ferramenta dispõe de seis possibilidades para tal configuração, vejamos: Na sequência – de cima para baixo –, os itens destacados na Figura 12 significam relacionamentos: • Um-para-um (1:1) sem adicionar atributo-chave-composto na entidade fraca; • Um-para-muitos (1:n) sem adicionar atributo-chave-composto na entidade fraca; • Um-para-um (1:1) adicionando atributo-chave-composto na entidade fraca; • Um-para-muitos (1:n) adicionando atributo-chave-composto na entidade fraca; • Muito-para-muitos (n:m). Figura 12 Fonte: adaptada de MySQL Workbench 11 UNIDADE Projeto de Banco de Dados Figura 13 Recordando o nosso exemplo, percebemos o grau de relacionamento (1:n), onde n é representado pelas “bolinhas pretas”. Assim, notamos que 1 aluno pode ter várias matrículas em diversas classes. Ademais, a tabela classe é composta de 1 escola, 1 grau e 1 período, mas esses podem estar em diversas classes. Portanto, primeiramente atribuiremos o relacionamento entre as tabelas Matrícula e Aluno. Selecione a relação one to many identifying relationship – relacionamento um-para-muitos com composição de chave primária. Figura 14 Fonte: adaptada de MySQL Workbench Com a ferramenta selecionada, clique primeiro na entidade fraca, neste caso, clique na tabela Matricula e, em seguida, na tabela Aluno. O resultado dessa ação pode ser observado na seguinte Figura: 12 13 Figura 15 Fonte: adaptada de MySQL Workbench Refaça tal operação para o outro relacionamento com Classe, lembrando-se de, primei- ramente, selecionar sempre a entidade fraca, ou seja, Matricula. Assim, teremos este DER: Figura 16 Fonte: adaptada de MySQL Workbench Perceba que ao adicionar o grau de relacionamento, o software criou automatica- mente a chave estrangeira Aluno_nr_rgm e Classe_cd_classe na entidade Matrícula, tornando-a PK. Agora, precisamos criar o relacionamento entre Classe e as outras três entidades, mas note que o relacionamento também será de 1:n, embora esse campo não deverá ser campo-chave na tabela Classe. 13 UNIDADE Projeto de Bancode Dados Assim, o tipo de relacionamento será one to many Nom-identifying relationship – relacionamento um-para-muitos sem composição de chave primária. Figura 17 Fonte: adaptada de MySQL Workbench Portanto, estabeleceremos o relacionamento da tabela Classe com as outras três tabe- las – Escola, Grau e Período –, lembrando de primeiramente selecionar sempre a entida- de fraca, ou seja, o grau de relacionamento n – tabela Classe. Assim, teremos este DER: Figura 18 Fonte: adaptada de MySQL Workbench De modo que terminamos o nosso modelo lógico. 14 15 Gerando o Projeto Físico Para gerar o script SQL referente ao modelo lógico que criamos, clique, no menu, File\ Export\ Forward Enginner SQL CREATE Script... Figura 19 Fonte: adaptada de MySQL Workbench Na próxima tela, marque as seguintes opções: Omit Schema Qualifier in Object Names; Do Not Create Users. Only Export Privileges e Don’t create view placeholder tables. Figura 20 Fonte: adaptada de MySQL Workbench 15 UNIDADE Projeto de Banco de Dados Avance, clicando no botão Next. Figura 21 Fonte: adaptada de MySQL Workbench Perceba que foi gerado todo o código SQL para a criação das tabelas referentes ao modelo lógico elaborado pela ferramenta. O script gerado poderá ser salvo em um arquivo de formato .sql e implementado dentro do banco de dados do MySQL. Figura 22 Fonte: adaptada de MySQL Workbench 16 17 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Livros Banco de Dados: Implementação em SQL, PL/SQL e Oracle 11g Seção 4.6, intitulada Notação, da obra Banco de dados: implementação em SQL, PL/ SQL e Oracle 11g, de Sandra Puga, Edson França e Milton Goya; Introdução à linguagem SQL, da obra Banco de dados: implementação em SQL, PL/SQL e Oracle 11g Seção 7.1, intitulada Introdução à linguagem SQL, da obra Banco de dados: imple- mentação em SQL, PL/SQL e Oracle 11g de Sandra Puga, Edson França e Milton Goya. Leitura Manual oficial do MySQL Workbench – em inglês https://goo.gl/oxFJAL 17 UNIDADE Projeto de Banco de Dados Referências BARBIERE, C. Modelagem de dados. Rio de Janeiro: IBPI Press, 1994. COUGO, S. P. Modelagem conceitual e projeto de banco de dados. Rio de Janeiro: Campus, 1997. HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre, RS: Bookman, 2010. 18
Compartilhar