Prévia do material em texto
1 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO BANCO DE DADOS I 2 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO A Faculdade Multivix está presente de norte a sul do Estado do Espírito Santo, com unidades em Cachoeiro de Itapemirim, Cariacica, Castelo, Nova Venécia, São Mateus, Serra, Vila Velha e Vitória. Desde 1999 atua no mercado capixaba, des- tacando-se pela oferta de cursos de gradua- ção, técnico, pós-graduação e extensão, com qualidade nas quatro áreas do conhecimen- to: Agrárias, Exatas, Humanas e Saúde, sem- pre primando pela qualidade de seu ensino e pela formação de profissionais com cons- ciência cidadã para o mercado de trabalho. Atualmente, a Multivix está entre o seleto grupo de Instituições de Ensino Superior que possuem conceito de excelência junto ao Ministério da Educação (MEC). Das 2109 institui- ções avaliadas no Brasil, apenas 15% conquistaram notas 4 e 5, que são consideradas conceitos de excelência em ensino. Estes resultados acadêmicos colocam todas as unidades da Multivix entre as melhores do Estado do Espírito Santo e entre as 50 melhores do país. MISSÃO Formar profissionais com consciência cida- dã para o mercado de trabalho, com ele- vado padrão de qualidade, sempre mantendo a credibilidade, segurança e modernidade, visando à satisfação dos clientes e colaboradores. VISÃO Ser uma Instituição de Ensino Superior reconheci- da nacionalmente como referência em qualidade educacional. GRUPO MULTIVIX 3 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO BIBLIOTECA MULTIVIX (Dados de publicação na fonte) As imagens e ilustrações utilizadas nesta apostila foram obtidas no site: http://br.freepik.com Costa, Charles Edward. Banco de Dados I /Charles Edward Costa. – Serra: Multivix, 2018. EDITORIAL Catalogação: Biblioteca Central Anisio Teixeira – Multivix Serra 2018 • Proibida a reprodução total ou parcial. Os infratores serão processados na forma da lei. FACULDADE CAPIXABA DA SERRA • MULTIVIX Diretor Executivo Tadeu Antônio de Oliveira Penina Diretora Acadêmica Eliene Maria Gava Ferrão Penina Diretor Administrativo Financeiro Fernando Bom Costalonga Diretor Geral Helber Barcellos da Costa Diretor da Educação a Distância Pedro Cunha Conselho Editorial Eliene Maria Gava Ferrão Penina (presidente do Conselho Editorial) Kessya Penitente Fabiano Costalonga Carina Sabadim Veloso Patrícia de Oliveira Penina Roberta Caldas Simões Revisão de Língua Portuguesa Leandro Siqueira Lima Revisão Técnica Alexandra Oliveira Alessandro Ventorin Graziela Vieira Carneiro Design Editorial e Controle de Produção de Conteúdo Carina Sabadim Veloso Maico Pagani Roncatto Ednilson José Roncatto Aline Ximenes Fragoso Genivaldo Félix Soares Multivix Educação a Distância Gestão Acadêmica - Coord. Didático Pedagógico Gestão Acadêmica - Coord. Didático Semipresencial Gestão de Materiais Pedagógicos e Metodologia Direção EaD Coordenação Acadêmica EaD 4 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO Aluno (a) Multivix, Estamos muito felizes por você agora fazer parte do maior grupo educacional de Ensino Superior do Espírito Santo e principalmente por ter escolhido a Multivix para fazer parte da sua trajetória profissional. A Faculdade Multivix possui unidades em Cachoei- ro de Itapemirim, Cariacica, Castelo, Nova Venécia, São Mateus, Serra, Vila Velha e Vitória. Desde 1999, no mercado capixaba, destaca-se pela oferta de cursos de graduação, pós-graduação e extensão de qualidade nas quatro áreas do conhecimento: Agrárias, Exatas, Humanas e Saúde, tanto na mo- dalidade presencial quanto a distância. Além da qualidade de ensino já comprova- da pelo MEC, que coloca todas as unidades do Grupo Multivix como parte do seleto grupo das Instituições de Ensino Superior de excelência no Brasil, contando com sete unidades do Grupo en- tre as 100 melhores do País, a Multivix preocupa- -se bastante com o contexto da realidade local e com o desenvolvimento do país. E para isso, pro- cura fazer a sua parte, investindo em projetos so- ciais, ambientais e na promoção de oportunida- des para os que sonham em fazer uma faculdade de qualidade mas que precisam superar alguns obstáculos. Buscamos a cada dia cumprir nossa missão que é: “Formar profissionais com consciência cidadã para o mercado de trabalho, com elevado padrão de quali- dade, sempre mantendo a credibilidade, segurança e modernidade, visando à satisfação dos clientes e colaboradores.” Entendemos que a educação de qualidade sempre foi a melhor resposta para um país crescer. Para a Multivix, educar é mais que ensinar. É transformar o mundo à sua volta. Seja bem-vindo! APRESENTAÇÃO DA DIREÇÃO EXECUTIVA Prof. Tadeu Antônio de Oliveira Penina Diretor Executivo do Grupo Multivix 5 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO APRESENTAÇÃO DA DISCIPLINA Caro (a) aluno (a) seja bem-vindo(a) a disciplina Banco de Dados. Ao lado da programação e desenvolvimento de sistemas, o banco de dados é uma peça essencial de qualquer aplicação/programa. Atualmente, vivemos em um ce- nário de constante troca e compartilhamento de informação, que acontece por meio dos mais diferentes tipos de dispositivos de hardware. Podemos citar aplica- ções desktop operando em computadores pessoais e também aplicações diversas em nosso cotidiano com a utilização de smartphones e tablets. O profissional de tecnologia, membro de uma equipe de desenvolvimento, precisa demonstrar do- mínio em assuntos diversos ligados a banco de dados. Na disciplina de banco de dados I é proposto o primeiro contato com essa maravilhosa tecnologia e espera-se a absorção de conceitos básicos como: a arquitetura de banco de dados, introdução e práticas em um SGBD relacional como o mundialmente consagrado MySQL. Nas unidades mais avançadas deste material introduziremos como se dá a modelagem de dados em diversos níveis, como são realizados os procedimentos de criação e manipulação de banco de dados utilizando para isso o padrão SQL. Veremos de forma objetiva questões de normalização, visões, transações e na última unidade de estudo, faremos uma introdução de banco de dados distribuídos. É importante que você sempre consulte a bibliografia deste material, além da participação ativa nos fóruns de discussão. Bons estudos! Ao final desta disciplina, esperamos que você: • Descreva conceitos básicos de banco de dados como a arquitetura de um sistema de banco de Dados e usuário de Banco de Dados. • Narre a modelagem de Dados e os modelos: relacional, hierárquicos e de redes. • Aplique o básico de SQL - linguagem de definição e manipulação de dados. • Descreva sobre projeto de banco de dados Relacional, dependência Funcional e chaves. • Discuta a normalização, visões e integração de visões. • Descreva o que são transações em banco de dados. • Esclareça o que são banco de dados distribuídos. 6 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO > FIGURA 1 - Palavras 15 > FIGURA 2 - Representação de um sistema de banco de dados 17 > FIGURA 3 - Entidades e atributos 20 > FIGURA 4 - Tipos diferentes de atributos 21 > FIGURA 5 - Tipos diferentes de atributos 22 > FIGURA 6 - Relacionamento entre duas entidades 22 > FIGURA 7 - Relacionamento UM para UM 23 > FIGURA 8 - Relacionamento UM para N 24 > FIGURA 9 - Explicação do relacionamentoUM para N 24 > FIGURA 10 - Relacionamento N para N 25 > FIGURA 11 - Exemplo de modelo entidade-relacionamento (MER) 26 > FIGURA 12 - Administrador de banco de dados 26 > FIGURA 13 - Modelo de rede 32 > FIGURA 14 - Modelo hierárquico 33 > FIGURA 15 - Tabela no modelo relacional 36 > FIGURA 16 - Tabela populada 36 > FIGURA 17 - Tabela populada 38 > FIGURA 18 - Evidenciando a chave estrangeira 39 > FIGURA 19 - MER com cardinalidade 1 para 1 40 > FIGURA 20 - MR com cardinalidade (1 para 1), apresentando dois casos 40 > FIGURA 21 - Tabelas populadas do MR (1 para 1), apresentando dois casos 40 > FIGURA 22 - MR (1 para N) e tabela populada 41 > FIGURA 23 - Mapeando N para N cria-se nova tabela (Professores-Disciplinas) 42 > FIGURA 24 - Tabelas populadas em cardinalidade N para N 42 > FIGURA 25 - Ana (uma professora) leciona várias disciplinas 43 > FIGURA 26 - Música (uma disciplina) é lecionada por vários professores 44 > FIGURA 27 - Exemplo de MR representado de forma padronizada 45 > FIGURA 28 - Comando CREATE TABLE explicado 51 > FIGURA 29 - Comando CREATE TABLE com FK 52 LISTA DE FIGURAS 7 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO > FIGURA 30 - Tabela Alunos sem normalização 65 > FIGURA 31 - Alunos em 1FN 65 > FIGURA 32 - Exemplo de instância da relação Alunos 68 > FIGURA 33 - Tabela Aluno-Cursos 69 > FIGURA 34 - Atendendo 2FN 70 > FIGURA 35 - Tabela Alunos violando a 3FN 71 > FIGURA 36 - Atendendo a 3FN 72 > FIGURA 37 - Diagrama ER banco de dados didático - Ordem de serviço 84 > FIGURA 38 - Dados populados nas tabelas físicas 85 > FIGURA 39 - Exemplo de visão atualizável em somente uma tabela 88 > FIGURA 40 - Exemplo de visão somente leitura 89 > FIGURA 41 - Inserção em Visão 89 > FIGURA 42 - Alteração de dados em Visão 89 > FIGURA 43 - Removendo dados através de Visão 90 > FIGURA 44 - Verificando engine da tabela cliente no MySQLWorkbench 99 > FIGURA 45 - Abstração de banco de dados distribuídos 100 8 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO LISTA DE TABELAS > QUADRO 1 - Principais problemas na utilização de sistemas de arquivos 18 > QUADRO 2 - Comando CREATE TABLE explicado 51 > QUADRO 3 - Tabela para exemplo de DF 67 > QUADRO 4 - Exemplo de transação em pseudocódigo 96 > QUADRO 5 - Formas de armazenamento de banco de dados distribuídos 101 9 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO SUMÁRIO 2UNIDADE 1UNIDADE 1 CONCEITOS BÁSICOS DE BANCO DE DADOS, ARQUITETURA E USUÁRIO 14 1.1 CONCEITOS BÁSICOS 14 1.1.1 DADO E INFORMAÇÃO 15 1.1.2 ARQUITETURA DE SISTEMA DE BANCO DE DADOS 16 1.1.3 SISTEMA GERENCIADOR DE BANCO DE DADOS 17 1.1.3.1 EXEMPLOS DE SGBD 19 1.2 ENTIDADE E ATRIBUTO 19 1.2.1 O QUE É ENTIDADE 20 1.2.2 O QUE É ATRIBUTO 20 1.2.3 TIPOS BÁSICOS DE ATRIBUTOS 21 1.3 RELACIONAMENTO E MER 22 1.3.1 CARDINALIDADE 23 1.4 USUÁRIOS DE BANCOS DE DADOS 26 CONCLUSÃO 28 2 MODELOS DE DADOS: DE REDES, HIERÁRQUICO E RELACIONAL 31 2.1 MODELOS DE DADOS 31 2.1.1 MODELO DE REDE 32 2.1.2 MODELO DE DADOS HIERÁRQUICO 33 2.2 MODELO DE DADOS RELACIONAL 34 2.2.1 TABELAS 35 2.2.2 CHAVE PRIMÁRIA 37 2.2.3 CHAVE ESTRANGEIRA 38 2.3 MAPEAMENTO MER PARA MR 39 2.3.1 MAPEAMENTO 1 PARA 1 39 2.3.2 MAPEAMENTO 1 PARA N 41 2.3.3 MAPEAMENTO N PARA N 42 2.4 NOTAÇÕES PRÁTICAS 44 CONCLUSÃO 45 10 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO 3 LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS. 47 3.1 LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO 47 3.2 DEFINIÇÃO DE DADOS 48 3.2.1 CRIE PARA MIM SGBD! 49 3.2.2 ELIMINE O BANCO INTEIRO! 50 3.2.3 CRIE UMA TABELA! 50 3.2.4 ALTERE MINHA TABELA, POR GENTILEZA. 53 3.2.5 ELIMINE UMA TABELA 54 3.3 MANIPULAÇÃO DE DADOS 55 3.3.1 OPERADORES LÓGICOS 55 3.3.2 INSERIR NA TABELA! 56 3.3.3 SELECIONAR DE UMA TABELA! 57 3.3.4 ALTERAR DADOS DA TABELA! 58 3.3.5 APAGAR DADOS DA TABELA! 60 4 NORMALIZAÇÃO EM PROJETOS DE BANCO DE DADOS 62 4.1 NORMALIZAÇÃO EM BANCO DE DADOS 62 4.1.1 A PRIMEIRA FORMA NORMAL 64 4.1.2 DEPENDÊNCIA FUNCIONAL 66 4.1.3 A SEGUNDA FORMA NORMAL 69 4.1.4 A TERCEIRA FORMA NORMAL 71 4.1.5 OUTRAS FORMAS NORMAIS 73 4.2 VISÃO GERAL DE UM PROJETO DE BANCO DE DADOS 74 CONCLUSÃO 76 5 VISÕES EM BANCO DE DADOS 78 5.1 VISÕES 78 5.2 VANTAGENS DA UTILIZAÇÃO DE VIEWS 80 5.3 INTRODUÇÃO À CRIAÇÃO DE VIEWS 82 5.4 EXEMPLO DE CRIAÇÃO E UTILIZAÇÃO DE VIEWS 83 5.5 ATUALIZAÇÃO DE DADOS ATRAVÉS DE VIEWS 87 CONCLUSÃO 91 3UNIDADE 4UNIDADE 5UNIDADE 11 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO 6 TRANSAÇÕES E BANCO DE DADOS DISTRIBUÍDOS 93 6.1 TRANSAÇÕES 93 6.1.1 PROPRIEDADES 94 6.1.2 SERVIÇOS DE TRANSPARÊNCIA 95 6.1.3 EXEMPLOS DE TRANSAÇÃO EM BANCO DE DADOS 96 6.2 BANCO DE DADOS DISTRIBUÍDOS 100 CONCLUSÃO 102 REFERÊNCIAS BIBLIOGRÁFICAS 103 6UNIDADE 12 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO ICONOGRAFIA ATENÇÃO PARA SABER SAIBA MAIS ONDE PESQUISAR DICAS LEITURA COMPLEMENTAR GLOSSÁRIO ATIVIDADES DE APRENDIZAGEM CURIOSIDADES QUESTÕES ÁUDIOSMÍDIAS INTEGRADAS ANOTAÇÕES EXEMPLOS CITAÇÕES DOWNLOADS 13 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO OBJETIVO Ao final desta unidade, esperamos que possa: > Descrever a diferenciação de dado e informação. > Explicar a arquitetura de um sistema de banco de dados. > Expressar o que é um SGBD e conheça dois exemplos. > Apontar o que é entidade, atributo e relacionamento em banco de dados. > Relatar como se dá a construção do modelo entidade-relacionamento. > Analisar quem são os usuários de bancos de dados. UNIDADE 1 14 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO 1 CONCEITOS BÁSICOS DE BANCO DE DADOS, ARQUITETURA E USUÁRIO Nesta unidade, serão apresentados os conceitos básicos de dados, tais como, a arqui- tetura de um sistema de banco de dados, SGBD e exemplos, conceitos importantes de entidades, atributos, além da introdução de como acontece o relacionamento em um banco de dados, sendo exemplificado com modelos simples de MER. Ao final será abordado quem são os usuários em um banco de dados e seus papéis. Esperamos que essa seja a base fundamental para guiar seus estudos nas próximas unidades. 1.1 CONCEITOS BÁSICOS Realizar o armazenamento de dados se tornou uma necessidade essencial desde o surgimento do homem. As informações devem ser armazenadas proporcionando fácil acesso e, podemos dizer que os livros são exemplos de destaque como uma das formas mais antigas de se realizar armazenamento de informações. A partir do avan- ço tecnológico e da crescente necessidade de se armazenar grandes quantidades de informações, houve o surgimento do arquivo em computadores. Nesse momento também se levou em consideração formas de acesso às informações, além obvia- mente de como armazená-las. A forma como as informações eram armazenadas neste início foi denominada como sistema de arquivos. Em sua concepção o acesso às informações era eficiente, mas a partir do momento que houve um crescimento no número de informações, surgiram problemas relacionados com a separação de dados e isolamento. Tais problemas aconteciam na consulta de dados relacionados e na inserção deles, pois eram feitas duplicidades, o que fazia com que as informações tivessem um crescimento signifi- cativo. Neste cenário ocorria muita redundância, inconsistênciade dados e também problemas relacionados à segurança da informação. 15 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Podemos então pressupor que era necessário desenvolver uma forma mais inteligen- te para realizar o armazenamento de dados, certo? Pois bem, foram pensadas formas de se criar um banco que fizesse o armazenamento de dados, mas estruturado de forma predefinida. Essa ideia tinha como premissa que os dados tivessem proprieda- des definidas, apresentando lógica e coerência e acima de tudo que fossem criados com propósitos determinados. Surgiu então o que se entende como banco de dados. Nos próximos tópicos iremos detalhar o significado de conceitos importantes na busca da melhor assimilação des- se conhecimento. 1.1.1 DADO E INFORMAÇÃO No cotidiano existe uma percepção equivocada em relação a dados significarem o mesmo que informações. Existe uma diferença importante entre estes conceitos e iremos exemplifica-lo de forma simples, veja o exemplo na figura 1. FIGURA 1 - PALAVRAS Fonte: Elaborado pelo autor Analisando as palavras da figura 1, não conseguimos obter informações concretas a não ser o significado de cada uma delas. Começou a entender a diferença entre dado e informação? Podemos até imaginar que existe uma informação fazendo uma jun- 16 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO ção dessas palavras: “a manga verde é uma fruta grande”. Mas podemos pensar tam- bém que “na manga de uma camisa verde, existem estampas de frutas grandes”. Veja que a mudança é o nível da abstração. O menor nível de abstração da informação é um dado, sendo assim um fato apresentado em sua forma primária. Os dados geram informação, que por sua vez fornecem o conhecimento. Um dado isolado não tem significado relevante e não nos leva a uma compreensão para gerar algum conhecimento ou nos fazer tomar decisões. A informação por sua vez é uma forma ordenada e organizada de dados com objetivo de transmissão de significado, em um contexto. Como são denominados os dados que descrevem um dado? Estes são chamados metadados! Pesquise a respeito. 1.1.2 ARQUITETURA DE SISTEMA DE BANCO DE DADOS O armazenamento elaborado de informações existindo formas de consultas define o que é um banco de dados. A estrutura de um banco de dados é constituída por um modelo de dados e une recursos para armazenar e recuperá-los. Um sistema de banco de dados é composto pelo banco da- dos, um sistema de software para operá-lo (SGBD) e as aplica- ções que fazem sua manipulação. Conforme figura 2. 17 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO FIGURA 2 - REPRESENTAÇÃO DE UM SISTEMA DE BANCO DE DADOS Fonte: CARDOSO, 2008. No contexto de sistema de banco de dados, o sistema gerenciador de banco de da- dos é um ator muito importante. Através dele são operacionalizadas diversas ações do banco e também são organizadas as formas como os dados são armazenados. No próximo tópico iremos detalhar o essencial sobre o SGBD – Sistema Gerenciador de Banco de Dados. 1.1.3 SISTEMA GERENCIADOR DE BANCO DE DADOS Antes de falarmos do SGBD iremos abordar rapidamente a diferença entre se utilizar um sistema de banco de dados (como visto anteriormente) ou utilizar um sistema de arquivos. Conforme quadro 1, a utilização de um sistema de arquivos traz vários pro- blemas em comparação com o uso de sistemas gerenciadores de banco de dados. 18 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO QUADRO 1 - PRINCIPAIS PROBLEMAS NA UTILIZAÇÃO DE SISTEMAS DE ARQUIVOS CRITÉRIOS NO USO DE SISTEMAS DE ARQUIVOS PROBLEMAS IDENTIFICADOS Quanto à aplicação desenvolvida Ela quem manipula os dados e deve conter as informações do sistema de arquivos, existindo com isso restrições. Quanto à estrutura dos dados É incorporada ao programa de acesso. Mudança na estrutura dos arquivos implica alterações no código dos programas. Quanto à redundância de dados Não são garantidas propriedades corretas no gerenciamento dos dados. Ocorre redundância. Mesma informação em arquivos distintos. Quanto ao acesso aos dados Existe dificuldade de acesso. Em cada consulta de informação, é preciso escrever um programa. Quanto ao tipo de dado Não fornece recursos para lidar com dados de formatos diferentes incluídos em arquivos dife- rentes. Quanto à integridade dos dados Ocorrem problemas de consultas com resulta- dos enganosos, nas relações entre informações em arquivos distintos. Fonte: Elaborado pelo autor. Adaptado de CARDOSO, 2008. Um SGBD é um pacote de programas que compõe um sistema de banco de dados. Sua utilização no gerenciamento de dados traz ao SBD (Sistema de banco de dados), várias vantagens. Um SBD é diferente de um SGBD, caso isso não tenha ficado claro, revise os tópicos que estudamos anteriormente. Vamos listar algumas vantagens da utilização de um SGBD em rela- ção ao uso de sistemas de arquivos, veja: • Um SGBD multiusuário permite que vários usuários acessem o banco de dados simultaneamente. • Prover formas complexas de relacionamento de dados • Mantem o controle de concorrência. • Fornece recursos para: recuperação de falhas (software e hardware). sua manipulação. Conforme figura 2. 19 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO 1.1.3.1 EXEMPLOS DE SGBD Até aqui já conseguimos absorver vários conceitos básicos, de forma ainda não apro- fundada das premissas de banco de dados. Nas próximas unidades da disciplina serão aprofundados os diversos conceitos de forma específica e exemplifica na prática. Va- mos agora informar dois dos principais SGBD’s utilizados no mercado da computação. • MySQL: É um sistema gerenciador de banco de dados (SGBD) adquirido em 2009 pela empresa Oracle. É mundialmente utilizado e considerado o mais popular en- tre todos. Segundo do site do Mysql, na página “Why Mysql?” (Acesso em junho de 2018), aplicações como Facebook, Twitter e até o YouTube fazem uso do MySQL em algum momento, em seus sistemas. O MySQL é um banco de dados relacional e é operado utilizando a linguagem de SQL. Não se preocupe neste momento em entender o que é bando de dados relacional e o que é a linguagem SQL. Complete seus estudos entendendo mais a respeito do SQL Server através do seu site oficial. Existem carreiras específicas de desenvolvedores com certificações que envolvem o conhe- cimento específico neste SGBD. 1.2 ENTIDADE E ATRIBUTO É importante nesse momento de estudo, introduzir o que são os termos entidade e atributo. Nas próximas unidades de estudo, trataremos da modelagem de dados e será uma premissa a compreensão desses conceitos. 20 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO 1.2.1 O QUE É ENTIDADE Em banco de dados, uma entidade é uma representação de um objeto ou conceito do mundo que vivemos – mundo real. Veja a conceituação na percepção da autora Virgínia Cardoso, em seu livro Sistemas de Banco de Dados: Para a conceituação de entidade, entende-se como coisa ou objeto do mundo real que pode ser separada ou distinguível de outro objeto. Nesse contexto, exem- plificamos com uma entidade Livro, Carro e Pessoa como entidade concreta, mas podemos encontrar en- tidades abstratas como Viagens ou um Aluguel, Com- pra ou um Empréstimo. Mesmo com essa classificação, a representação é a mesma. (CARDOSO, 2008 p. 28) 1.2.2 O QUE É ATRIBUTO Um atributo como o próprio nome nos remete é o termo formal das qualidades quedescrevem uma entidade, sendo estes específicos de cada entidade. Veja na figura 3, a representação de duas entidades e alguns atributos. FIGURA 3 - ENTIDADES E ATRIBUTOS Fonte: CARDOSO, 2008. 21 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Na representação da figura 3 existem duas entidades: alunos e viagem. Para cada uma delas existem vários atributos, como o nome na entidade aluno e data de saída na entidade viagem. Nota-se que podemos representar os atributos de duas formas, utilizando elipses ou a representação pelo ícone de um ponto e seu nome. Quando chegarmos ao estudo de modelos e a modelagem de banco de dados, essas duas formas de notação podem ser apresentadas, mas a forma de elipse é sempre a mais utilizada. Em relação à representação de entidades, por padrão sempre é utilizado um retângulo contendo seu nome. 1.2.3 TIPOS BÁSICOS DE ATRIBUTOS Existe uma particularidade em relação aos atributos. Eles podem ser representados de acordo com seu tipo. Perceba na figura 3 atributos de diferentes tipos, tais como: • Atributo simples. • Atributo multivalorado. • Atributo composto. FIGURA 4 - TIPOS DIFERENTES DE ATRIBUTOS Fonte: CARDOSO, 2008. Os atributos simples representam apenas um valor para cada elemento na entida- de. O atributo multivalorado é a representação para elementos que possuem mais 22 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO de um valor. O telefone é um exemplo: residencial, comercial etc. Neste caso, usa-se apenas uma representação do atributo telefone, mas constando duas elipses na re- presentação. Um atributo composto representa uma divisão entre outros atributos. Sua representação é como uma árvore, assim como mostrado na figura 3. Existe também o atributo-chave. Veja na figura 4 como ele é representado. O atribu- to-chave informa que se trata de um atributo que não se repete na entidade. Perceba que a matrícula na figura 4 é o atributo-chave da entidade alunos, onde ela é repre- sentada de forma sublinhada. Ou seja, a matrícula é um dado único de cada registro de aluno que temos nessa entidade. FIGURA 5 - TIPOS DIFERENTES DE ATRIBUTOS Fonte: CARDOSO, 2008. 1.3 RELACIONAMENTO E MER O relacionamento é a ligação estabelecida entre as entidades de um banco de da- dos. Veja a figura 5 como é feita essa representação. FIGURA 6 - RELACIONAMENTO ENTRE DUAS ENTIDADES Fonte: CARDOSO, 2008. 23 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Percebe-se no modelo da figura 5, que as entidades aluno e cursos se relacionam com a representação de um losango entre eles, contendo o termo cursar interna- mente a ele. As representações de relacionamento sempre utilizam um verbo, como falamos neste exemplo, o verbo cursar.ua mani- pulação. Conforme figura 2. 1.3.1 CARDINALIDADE Os relacionamentos possuem também a chamada cardinalidade. Isso significa o nú- mero de vezes que uma entidade toma parte no relacionamento, e também expres- sa possibilidades e restrições entre as entidades. De forma prática: Quantas ocorrências em uma entidade podem estar associadas a uma determinada ocorrência de outra. Vamos entender como é representada a cardinalidade na prática. Entendemos a car- dinalidade da seguinte forma: • Um para Um. • Um para N. • N para Um. Veja na figura 6 um exemplo de relacionamento de cardinalidade: um para um. FIGURA 7 - RELACIONAMENTO UM PARA UM Fonte: CARDOSO, 2008. 24 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO Perceba que o modelo ganhou números entre as ligações na figura 6. Nessa especi- ficação, um professor ministra apenas uma disciplina. E não menos importante, uma disciplina é ministrada apenas por um professor. Em outra especificação, podemos ter que um professor que pode ministrar várias matérias, e cada disciplina pode ser ministrada por um único professor. Veja o exem- plo na figura 7. FIGURA 8 - RELACIONAMENTO UM PARA N Fonte: CARDOSO, 2008. Agora a letra N está ao lado da entidade disciplinas na figura 7. Ela informa que um professor leciona várias disciplinas. É importante entender que a letra N ao lado da entidade disciplinas remete a entidade professores, perceba isso na figura 8. FIGURA 9 - EXPLICAÇÃO DO RELACIONAMENTO UM PARA N Fonte: Adaptado de CARDOSO, 2008. 25 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO As cores verde e azul foram inseridas na explicação da figura 8, para ajudar a você associar como deve ser lido/entendido o relacionamento. Visualizando da esquerda para direita (azul), estamos falando de professores em relação à disciplina, logo, da di- reita para esquerda (verde), estamos falando de disciplinas em relação à professores. Assimilar esse “movimento” pode facilitar sua compreensão entre entidades que tem um contexto de relacionamento mais complexo. Continuando nesse mesmo exemplo de relação entre professores e disciplinas, pode- mos imaginar que cada professor ministra várias disciplinas e cada disciplina é minis- trada por N professores. Um exemplo: a disciplina de banco de dados pode possuir os professores João e José, e, além disso, João e José lecionarem outras disciplinas. Perfeito, vamos representá-la na figura 9. FIGURA 10 - RELACIONAMENTO N PARA N Fonte: CARDOSO, 2008. Percebemos então, a representação de relacionamentos e cardinalidade. Com isso conseguimos introduzir o que é o modelo entidade-relacionamento. Este modelo é conhecido através da sigla MER. (A pronúncia é realizada soletrando as letras “M-E-R” e não falando: “Mér”). Segundo CARDOSO (2008), a denominação Diagrama de Entidade e Relacionamen- to (DER), comumente remete ao diagrama que é usado para ilustrar sua representa- ção gráfica. Para solidificar este aprendizado, vamos exemplificar um MER envolvendo várias en- tidades e relacionamentos. Perceba na figura 10. 26 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO FIGURA 11 - EXEMPLO DE MODELO ENTIDADE-RELACIONAMENTO (MER) Fonte: CARDOSO, 2008. Na representação da figura 9 podemos perceber diversas entidades se relacionando umas com as outras, além de que cada entidade possui diversos atributos. Faça uma reflexão no contexto desse exemplo de banco de dados. Exercite por exemplo dizen- do para você mesmo: no relacionamento entre usuários e livros, um usuário reserva um livro e um livro só pode ser reservado por um usuário. Assim por diante. 1.4 USUÁRIOS DE BANCOS DE DADOS FIGURA 12 - ADMINISTRADOR DE BANCO DE DADOS Fonte: SHUTTERSTOCK, 2018. 27 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Vários são os atores no contexto de manipulação de banco de dados. Os profissionais que atuam diretamente com o banco de dados e diretamente com o sistema geren- ciador de banco de dados (SGBD) se dividem entre: • Administrador de banco de dados (DBA): Responsável pela administração de recursos ligados ao banco de dados, como os dados em si e também o SGBD, além de ser responsável por autorizar acessos e por coordenar e monitorar o uso do banco de dados. • Projetista de banco de dados: Responsável por identificar os dados que serão armazenados no banco de dados, definindo estruturas corretas para realizar o armazenamento. Também é responsabilidade do projetista, avaliar o que é neces- sário para os grupos de usuários, fazendo com que o banco de dados seja capaz de atender os requisitos deusuários. • Analista de sistemas: O analista de sistema faz a determinação dos requisitos dos usuários que esperam pelo serviço, e fazem também o desenvolvimento de especificações para as transações atenderem a estes requisitos. Precisam ter co- nhecimento sobre recursos do SGBD. • Programadores: Desenvolvem as especificações realizadas pelo analista através de programas. São responsáveis muitas vezes pelos testes, depuração, documen- tação e manutenção. Assim como os analistas, precisam ter conhecimento sobre recursos do SGBD. Temos também os usuários finais no contexto de usuários de banco de dados. Este não tem relação com as pessoas que atuam com a estrutura do banco de dados. Para eles existem a formalização de três classificações: • Usuários casuais: Estes realizam o acesso no banco de dados ocasionalmente, mas podem também necessitar de diferentes tipos de informações a cada aces- so que realizam. Para isso, utilizam linguagens de consulta para especificar suas necessidades. • Usuários novatos: Diferentemente dos usuários casuais, estes fazem uso de partes predefinidas do banco de dados e consultas estabelecidas que já foram testadas. • Usuários sofisticados: São familiarizados com o SGBD e realizam consultas complexas. 28 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO A partir dessa divisão e classificação entre as pessoas que manipulam um banco de dados, podemos perceber de forma clara que um sistema de banco de dados é um fator fundamental dentro de uma aplicação, não somente a aplicação em si contra- tada para desenvolvimento. Uma curiosidade de carreira: Em relação aos usuários envol- vidos no desenvolvimento das aplicações (e não usuários fi- nais), muitas vezes nos deparamos com situações em que um profissional desenvolve mais de uma função. Isso acontece co- mumente entre analistas e desenvolvedores, onde na maioria das vezes um mesmo profissional exerce ambos papéis. Isso deve ser encarado com naturalidade (em perspectiva de mercado) quando se participa de equi- pes de pequeno porte, pois diversos fatores externos a uma equipe de desenvolvimento constituem essa realidade, podendo ser citado: o porte da solução em questão, a maturidade de gestão empresarial da organiza- ção que você trabalha e também os recursos financeiros que envolvem a contratação de vários profissionais para atuar em um mesmo projeto. Ob- serva-se também nesse sentido que muitos projetos podem ser contrata- dos com premissa de investimento partindo do cliente que está contra- tando a solução. Ou seja, um profissional técnico sempre precisa ter uma visão mais abrangente do seu ambiente de trabalho, não só entre seus pares diretos, mas também em relação aos seus gestores e o ambiente macro que envolve a organização e o cliente. Visualize sempre outras pers- pectivas, outros lados de uma mesma moeda. “Pense fora da caixa”! CONCLUSÃO Nesta unidade, você teve contato com os principais assuntos relacionados à introdu- ção de banco de dados. Foi apresentada a diferenciação de dados e informação, o que compõe um SBD, detalhando o sistema gerenciador de banco de dados. Vimos como o banco de dados se apresenta e também foi apresentado o que é um modelo entidade-relacionamento - MER e como ele é constituído. Detalhamos entidades, atributos e seus tipos, além da abordagem objetiva de cardinalidade. Ao final foi visto 29 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO também de forma breve os usuários envolvidos a cerca de um banco de dados. Recomenda-se que seus estudos em banco de dados, sejam aprofundados com a leitura dos livros da bibliografia básica e complementar deste material. Na próxima unidade, trataremos da modelagem de dados e os modelos de dados: relacional, hierárquicos e de Redes. Bons estudos! 30 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO OBJETIVO Ao final desta unidade, esperamos que possa: > Analisar o modelo de dados de rede. > Analisar o modelo de dados hierárquico. > Definir o modelo relacional. > Identificar o que são tabelas e chaves no modelo relacional. > Aplicar o mapeamento entre MER e MR. > Apontar notações do modelo relacional. UNIDADE 2 31 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO 2 MODELOS DE DADOS: DE REDES, HIERÁRQUICO E RELACIONAL Caro aluno, seja bem-vindo à unidade que apresentará os modelos de dados, tais como o modelo de rede e hierárquico, além do consagrado modelo relacional. Iremos aprofundar no modelo relacional, apresentando diferenças entre o modelo entidade- -relacionamento, e também como é realizado o mapeamento entre os dois modelos. Ao final, serão abordadas, de forma objetiva, as notações básicas de representação do modelo relacional. Esperamos que essa seja a base fundamental para guiar seus estudos em conceitos do uso do modelo relacional, ao qual será amplamente tratado até o final desta disciplina. 2.1 MODELOS DE DADOS Anteriormente, já fizemos uma abordagem, inclusive prática, do modelo de entida- de-relacionamento, e nesta unidade iremos abordar os modelos de rede, hierárquico e o também o consagrado modelo relacional. O modelo de dados é um conjunto de ferramentas que representa conceitos e des- creve a estrutura lógica e física de um sistema de banco de dados. O modelo tem por objetivo fornecer representação usando conceitos como objetos, juntamente às suas propriedades. O modelo de dados tem uma classificação defini- da conforme a seguir: • Modelo classificado como alto nível. • Modelo classificado como baixo nível. No modelo de alto nível, temos uma proximidade maior do modo como o usuário enxerga os dados em suas visões, conceitualmente. Já o modelo de baixo nível, é denominado de modelo físico, pois expressa a forma mais detalhada em como os 32 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO dados são armazenados realmente na máquina. De acordo com os modelos já criados, até então no mercado de tecnologia, temos modelos conceituais baseados em objetos, e os modelos conceituais baseados em registros. Como vimos, o modelo entidade-relacionamento é baseado em objetos. Diferente do modelo entidade-relacionamento, os modelos de rede, hierárquico e relacional são baseados em registros. O modelo relacional, como será focado bastante nos nos- sos esforços daqui em diante, é um destaque na utilização para criação de banco de dados corporativos em todos os níveis, atualmente. Os modelos com base em registros são utilizados na descrição de dados e disponibi- lizam recursos flexíveis. Vamos entender a seguir dois modelos pouco utilizados no mercado atualmente: modelo de dados de rede e depois o modelo hierárquico. Após, iremos entrar no es- tudo do que realmente é usual nos dias de hoje, o modelo relacional. 2.1.1 MODELO DE REDE O modelo de rede apresenta os dados como registros, como já informado diferente- mente do modelo entidade-relacionamento. Conforme podemos perceber na Figura 1, nele os dados são relacionados através de links ou também chamados ponteiros. FIGURA 13 - MODELO DE REDE Fonte: Cardoso (2008, p. 22) 33 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Dessa forma, os dados são representados em conjuntos arbitrários de gráficos. Por ser um modelo não tanto usual na realidade de análise e desenvolvimento comumente empregado nas empresas atualmente, não iremos aprofundar em sua modelagem ou conceituaçãomais avançada. Você pode pesquisar mais a respeito deste modelo aces- sando o site DevMedia, inserindo o termo: a história dos bancos de dados. 2.1.2 MODELO DE DADOS HIERÁRQUICO O modelo hierárquico teve sua utilização originalmente focada em mainframes. Nes- se modelo, os registros são conectados através de uma estruturação em árvore. A diferença entre o modelo de rede é que não são arbitrários conforme Figura 2. FIGURA 14 - MODELO HIERÁRQUICO Fonte: Cardoso (2008, p. 23) Perceba que o modelo hierárquico parte de uma raiz, formando uma árvore. Da mes- ma forma que o modelo de rede, apresenta registros na representação de dados e links para demonstrar relacionamento. 34 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO O sistema SABRE foi considerado o maior sucesso de uso desse modelo, criado pela empresa IBM juntamente à American Air- lines. O sistema SABRE foi implementado para reservas de pas- sagens aéreas e permitiu que diversas pessoas fizessem acesso os mesmos dados através de uma rede. É interessante notar que, atualmen- te, o mesmo sistema SABRE é usado para disponibilizar serviços populares de viagens baseados em ambiente Web. Podemos citar o Travelocity. Assim como o modelo de rede, não iremos aprofundar nosso estudo nesse modelo ou em sua forma de modelagem e aplicação. A seguir, você irá conhecer o modelo que mudou a forma como os bancos de dados são organizados e desenvolvidos. 2.2 MODELO DE DADOS RELACIONAL O modelo relacional, conhecido também apenas pela sigla MR, deu sequência ao modelo hierárquico. Foi proposto, em 1970, por Edgar Codd, na IBM. Este modelo se consolidou a partir de então como um marco na história de como os sistemas de banco de dados deveriam ser desenvolvidos. O sucesso foi tanto que Codd ganhou, em 1981, o prêmio Turing por originalidade em seu trabalho. O modelo relacional é utilizado nos dias atuais e daqui em diante nosso estudo será focado nele, em sua modelagem, forma de implementação lógica e meios de realizar consultas através da linguagem SQL através de um SGBD MySQL. Apesar de ser um modelo simples, com poucos conceitos, o modelo relacional é uma ferramenta muito eficiente. Vimos que o modelo entidade-relacionamento apresenta uma diagramação voltada a objetos do mundo real, utilizado em uma primeira fase de concepção de um banco de dados, ou seja, uma primeira modelagem do projeto. É importante entender que nada é perdido realizando uma modelagem entidade- -relacionamento (MER) para então se fazer uma modelagem relacional (MR). O que acontece é uma migração de um modelo para outro. Essa migração entre modelo entidade-relacionamento e modelo relacional é denominada mapeamento. 35 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Apesar de estarmos apresentando a forma teórica de se traba- lhar entre MER e MR, na prática corporativa de desenvolvi- mento de softwares, muitas empresas adotam a modelagem diretamente através do modelo relacional. É muito comum no mercado, que equipes de desenvolvimento já realizem a criação de um banco de dados diretamente no modelo relacional, utilizando, para isso ferramentas CASE para modelagem de dados. Para isso usando fortemen- te uma extensão da linguagem UML. Fique tranquilo! Você será iniciado nessas ferramentas no decorrer desta disciplina. Continuando com o modelo relacional, veja que se trata de um modelo com estru- turas de tabelas. O modelo relacional tem esse nome devido a relações mate- máticas, especificamente relacionado à álgebra/cálculo rela- cional e teoria de conjuntos, e não aos relacionamentos pro- priamente ditos. 2.2.1 TABELAS As tabelas em banco de dados relacionais são expressas assim como as conhecemos no cotidiano, linhas na horizontal e colunas na vertical. A definição teórica, no entan- to, nos informa que o modelo é composto por estruturação sintática. Essa estruturação sintática significa que as tabelas também chamadas por relação, possuem valores que são os dados do mundo real. Além dos valores, possuem linhas denominadas como tuplas ou registros. As colunas são chamadas de campos ou atri- butos. O conjunto dos atributos se chama esquema. Veja a seguir na Figura 3. Observação: Tenho certeza que você está se lembrando do modelo entidade-relacio- namento e visualizando o quanto mais simples é representar os dados no modelo relacional, dessa forma. 36 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO FIGURA 15 - TABELA NO MODELO RELACIONAL Fonte: Elaborado pelo autor, adaptado de Cardoso (2008, p. 56) As tabelas do modelo relacional apresentam valores atômicos. Não estamos falando de química, apesar de significar que os valores devem ser indivisíveis. Dessa forma, um valor de uma tupla não pode ser dividido internamente a ele mesmo. Um exem- plo: O nome João Alberto é um valor da coluna Nome. Esse valor, nessa coluna, não se divide. Caso for necessário dividir, cria-se colunas diferentes. Por exemplo, ter em uma tabela uma coluna para DDD e outra coluna o campo telefone. A divisão se faz necessária quando precisamos realizar consultas específicas, como: a quantidade de telefones do DDD 11 da tabela de clientes. Dizemos que uma tabela está populada quando ela se apresenta preenchida. Veja na Figura 4. FIGURA 16 - TABELA POPULADA Fonte: Cardoso (2008 p. 57) 37 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Perceba que cada linha (tupla) na figura 4 corresponde a uma pessoa. Para cada pes- soa, temos três atributos, matrícula, nome e endereço respectivamente. Dessa forma, são representados os registros no modelo relacional. Conjuntos de valo- res atômicos com atribuições. A tabela da Figura 4 “está presente” em todos os siste- mas que você possa imaginar, pois reúne dados de pessoas. Entre um sistema e outro, o que muda é o contexto dessas pessoas. Há pessoas que são clientes, pessoas que são alunos, pessoas que são usuários e entre outros. 2.2.2 CHAVE PRIMÁRIA As chaves de modo geral no modelo relacional são conhecidas como keys. Compa- rando com o modelo entidade-relacionamento, a chave primária no modelo relacio- nal é o mesmo que o atributo chave naquele modelo. Na Figura 4, você percebeu a coluna Matrícula sublinhada? As chaves primárias não se repetem e não aceitam valores nu- los! Elas identificam o registro para que seja possível criar os relacionamentos de conjuntos de dados no modelo relacional. Perceba na Figura 5 duas tabelas contendo registros de alunos em uma tabela e cur- sos em outra tabela. Na tabela Cursos, é possível observar a presença de um campo Matrícula fazendo referência à chave primária da tabela Alunos. Vemos claramente uma relação onde, por exemplo, o aluno José, residente no endereço Av. Das Flo- res 25, cursa a disciplina de Redes. Identifica-se isso vendo que a matrícula do José (1085123) está presente na tabela Cursos na primeira tupla da tabela Cursos. 38 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO FIGURA 17 - TABELA POPULADA Fonte: Cardoso (2008, p. 58) A falta de relação também nos entrega informações. Você percebeu que Maria não está cursando nenhuma disciplina? Isso é comum em banco de dados, da mesma forma que um aluno não está matriculado em todas as disciplinas de uma faculdade inteira, no mundo real. Correto? 2.2.3 CHAVE ESTRANGEIRA A chave estrangeira é denominada dessa forma para identificar um atributo de outra tabela. Conforme vimos no tópico anterior, a matrícula da tabela alunos está contida na tabela cursos.Essa existência dela na tabela cursos informa que ela é uma chave estrangeira, pois se trata de um campo que veio de fora, de outra tabela. Para não restar dúvidas quanto a isso, veja a Figura 6. 39 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO FIGURA 18 - EVIDENCIANDO A CHAVE ESTRANGEIRA Fonte: Elaborado pelo autor, adaptado de Cardoso (2008, p. 58) Perceba na Figura 6 que a matrícula que consta na tabela Cursos é uma chave estran- geira da tabela Alunos. Repete-se o número da matrícula. 2.3 MAPEAMENTO MER PARA MR Como já foi falado, é possível realizar o chamado mapeamento entre o modelo enti- dade-relacionamento (MER) para o modelo relacional (MR). Através do mapeamen- to, podemos migrar a modelagem, mas precisamos que o modelo entidade-rela- cionamento tenha basicamente a determinação de cardinalidade. Vamos ver nos próximos tópicos como acontecem os três tipos de mapeamentos, de acordo com a cardinalidade: 1 para 1, 1 para N e N para N. 2.3.1 MAPEAMENTO 1 PARA 1 Conforme Figura 7, temos um MER envolvendo duas entidades: alunos e professores. Observe os atributos de cada entidade, incluindo o atributo-chave e também note a representação de cardinalidade 1 para 1. 40 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO FIGURA 19 - MER COM CARDINALIDADE 1 PARA 1 Fonte: Cardoso (2008, p. 60) Já na Figura 8, temos a migração para o modelo relacional envolvendo agora duas tabelas, constando: duas tabelas, o esquema (cabeçalho de atributos) e o relaciona- mento entre a chave primária e chave estrangeira. A representação é feita de dois casos diferentes. No caso 1, há o CPF do professor (chave primária em professores) presente na tabela Disciplina como chave estrangeira. Já no caso 2, há o código da Disciplina (chave primária em disciplinas) presente na tabela Professores. FIGURA 20 - MR COM CARDINALIDADE (1 PARA 1), APRESENTANDO DOIS CASOS Fonte: Elaborador pelo autor, adaptado de Cardoso (2008, p. 61-63) Veja na Figura 9, com os dados populados, que ambas as formas se apresentam cor- retas. FIGURA 21 - TABELAS POPULADAS DO MR (1 PARA 1), APRESENTANDO DOIS CASOS Fonte: Elaborador pelo autor, adaptado de Cardoso (2008, p. 63) 41 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Analisando a diferença entre os casos de cardinalidade 1 para 1, temos uma diferen- ça interessante. Você percebeu no caso 2 que a professora Joana está com o campo código (da disciplina) vazio? Isso demonstra que Joana não leciona nenhuma disci- plina. Da mesma forma que, analisando o caso 1, não há o CPF da Joana relacionado na tabela disciplina. Qual forma escolher? Isso depende de qual forma é melhor ao projeto como um todo. Na prática, procura-se não ter tabelas com espaços em brancos ou, caso exista tal necessidade, que se tenham menos possíveis. Mas, não se preocupe com isso, que é extremamente normal, e você terá uma equipe para discutir sobre isso em sua carreira, avaliando sempre o melhor ao projeto. Adquirindo experiência, você verá também facilmente qual usar em cada caso prático. 2.3.2 MAPEAMENTO 1 PARA N Para o mapeamento 1 para N, segue-se o mesmo raciocínio. Porém, essa cardinalida- de possui somente um caso, onde a chave primária da tabela do lado de cardinalida- de 1 deve sempre ser chave estrangeira do lado N. A figura 10 mostra a representação do relacionamento e, ao lado, a tabela populada, para ficar fácil compreender. FIGURA 22 - MR (1 PARA N) E TABELA POPULADA Fonte: Elaborador pelo autor, adaptado de Cardoso (2008, p. 64) Ora, se trata da mesma representação do modelo relacional 1 para 1! Sim, e o que irá mudar são os valores contidos na tabela. Veja na tabela populada da figura 10 que a professora Ana ministra as disciplinas de artes e música. Isso é percebido, pois o seu CPF, que é chave estrangeira na tabela Disciplina, repete-se nos registros de ambas as disciplinas. O CPF da Ana é 231.654.007-22. 42 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO 2.3.3 MAPEAMENTO N PARA N O mapeamento N para N se difere dos demais, pois nesse caso, na representação em um modelo relacional, é necessário criar uma terceira tabela. Veja isso na Figura 11. FIGURA 23 - MAPEANDO N PARA N CRIA-SE NOVA TABELA (PROFESSORES-DISCIPLINAS) Fonte: Cardoso (2008, p. 67) Perceba que agora há uma tabela denominada Professores-Disciplinas. É interessante notar que ela é composta por dois campos: CPF e Código. Estes, logicamente, são as chaves estrangeiras das tabelas Professores e Disciplinas, respectivamente. Ambos são representados de forma sublinhada nessa nova tabela, o que quer dizer se tratar de uma chave primária composta, ou seja, composta por dois campos distintos das tabe- las que tem relacionamento. Veja na agora na figura 12 essas três tabelas populadas. FIGURA 24 - TABELAS POPULADAS EM CARDINALIDADE N PARA N Fonte: Cardoso (2008, p. 68) 43 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Perceba através do código da disciplina de música (268) que ela é ministrada por dois professores distintos: Ana, que tem o CPF: 231.654.007-22, e também pelo professor Pedro, de CPF: 405.900.765-12. Nota-se também que a Ana, além de ministrar mú- sica, também leciona artes, visto que o seu CPF também está atrelado ao código da disciplina 111. Essa percepção se dá na nova tabela Professores-Disciplinas. Temos então professores lecionando várias disciplinas e uma disciplina sendo lecio- nada por vários professores. Relacionamento N para N. Para não restar dúvidas nessa questão, observe a evidenciação do relacionamento nas figuras 13 e 14. Perceba a associação representada pelas cores: azul/vermelho. FIGURA 25 - ANA (UMA PROFESSORA) LECIONA VÁRIAS DISCIPLINAS Fonte: Elaborado pelo autor 44 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO FIGURA 26 - MÚSICA (UMA DISCIPLINA) É LECIONADA POR VÁRIOS PROFESSORES Fonte: Elaborado pelo autor 2.4 NOTAÇÕES PRÁTICAS Existem notações importantes a serem citadas na modelagem relacional. As chaves primárias são conhecidas também por primary key, uma tradução direta do inglês ou apenas pela sua sigla: PK. Dessa forma, é comum se referir a uma chave primária ape- nas pelas letras PK, como, por exemplo, o CPF é a PK da tabela Funcionários. Em rela- ção à chave estrangeira, também existe isso, pode-se referir a ela como foreign key, ou apenas FK, como, por exemplo, o campo CPF-Funcionários é uma FK na tabela Livros. Em relação à representação de tabelas, diferentemente da forma didática como apresentamos nos tópicos deste material, na prática, a modelagem não é realizada utilizando papel e caneta (ou tabelas de Excel!). Usa-se ferramentas de modelagem como, por exemplo, a ferramenta MySQL Workbench que, além de várias funções, 45 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO possibilita realizar modelagem relacional de um sistema de banco de dados. Perceba na Figura 15, um exemplo de representação simples, ao qual qualquer profissional ligado ao desenvolvimento de softwares consegue entender de forma padronizada. FIGURA 27 - EXEMPLO DE MR REPRESENTADO DE FORMA PADRONIZADA Fonte: Cardoso, (2008, p. 71) Veja também que, ao lado da PK em cada tabela, existe um pequeno ícone de chave, que visualmente já nos informa que se trata de uma chave primária. Mas, atenção! Existem outros íconesde chaves, não somente da PK. Entretanto, nesse momento, não iremos entrar nessas questões, pois na continuidade do estudo desta disciplina isso será evidenciado. CONCLUSÃO Nesta unidade, você teve contato os principais tópicos relacionados a modelos de dados. Vimos de forma mais aprofundada o modelo relacional, por ser um modelo amplamente utilizado no mercado de computação. Também foi apresentado como se pode fazer o mapeamento do modelo entidade-relacionamento para o modelo relacional, apresentando exemplos de mapeamentos entre cardinalidades distintas. Recomenda-se que seus estudos em banco de dados sejam aprofundados com a leitura dos livros da bibliografia básica e complementar deste material. Na próxima unidade, serão analisadas as linguagens de definição e manipulação de dados. Bons estudos! 46 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO OBJETIVO Ao final desta unidade, esperamos que possa: > Apontar o que é SQL em banco de dados. > Analisar comandos DDL para definição de dados. > Definir e aplique comandos DDL. > Identificar comandos DML para manipular dados. > Aplicar comandos DML em banco de dados relacionais. > Identificar e aplique operadores lógicos em comandos SQL. UNIDADE 3 47 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO 3 LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO DE DADOS. Como um administrador de banco de dados ou uma aplicação de software pode conversar com o SGBD a fim de existir um modelo físico de banco de dados? Pode- mos escrever de forma lógica utilizando alguma linguagem específica para manipu- lar dados diretamente em um SGBD, independentemente da linguagem de progra- mação utilizada para criação de aplicações? Essa será a base para discutir assuntos de projetos de bancos de dados, que será visto mais adiante na disciplina. Aproveite esta unidade para realizar treinos e pesquisar mais a respeito da linguagem de definição e manipulação de dados, utilizada em sistemas de banco de dados relacionais. 3.1 LINGUAGENS DE DEFINIÇÃO E MANIPULAÇÃO A partir da modelagem de um banco de dados relacional se faz necessário algo que crie o banco de dados fisicamente, para que seja possível uma aplicação interagir com os dados armazenados através de consultas padronizadas. Nessa questão, temos desde 1970 a chamada Structured Query Language, co- nhecida por sua sigla SQL. A SQL é uma linguagem declarativa padronizada para banco de dados relacionais. No início era chamada de Structured English Query Language – SEQUEL. A linguagem SQL se tornou padrão a partir de 1986 através de reconhecimento da American National Standards Institu- te - ANSI e no ano posterior da International Organization for Standardization – ISO. 48 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO A linguagem SQL formalmente se apresenta de forma dividida. Sendo: • Partes que permitem definir dados. • Partes que manipulam dados. • Partes que definem comandos para a segurança e integridade dos dados. É importante entender que a SQL é utilizada amplamente no mercado atual sendo uma premissa essencial para pro- fissionais ligados à análise e desenvolvimento de softwares a compreenda em suas formas mais básicas. Iremos tratar aqui das partes da linguagem que definem dados e das partes que ma- nipulam dados. Quando se fala linguagem, entenda simplesmente como um meio de comunicação, afinal precisamos “conversar” com o SGBD informando a ele como criar nossa estrutura de dados e posteriormente como inserir os registros, além de como alterá-los e como os excluirmos da base. Ah! Precisamos saber “perguntar” tam- bém, ou seja, consultar os dados. Ficou mais clara a questão de linguagem? 3.2 DEFINIÇÃO DE DADOS Vamos pensar brevemente o que é definir dados. Pesquisar em um livro é definir o livro? Obviamente que não! Definir um livro é, por exemplo, estabelecer suas divisões, estruturar como serão os capítulos, como eles se relacionam entre os temas do livro como um todo. Em banco de dados segue-se essa mesma lógica, definir os dados é informar como será a estruturação de tabelas, atributos e relacionamento de tabelas. Para isso te- mos comandos específicos da linguagem SQL que traduzem a modelagem relacio- nal para uma estrutura física do banco de dados. É realmente simples assim, acredite. Para formalizar, vamos chamar essa parte da SQL de Data Definition Language – DDL, ou seja, linguagem de definição de dados. 49 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Comandos de DDL são responsáveis por definir os cha- mados metadados de uma base de dados. Lembrando que metadados são dados de outro dado. Exemplo prá- tico: “O valor de um registro da tabela ABC deve ser um número inteiro de até X posições”. Vamos então compreender como podemos conversar com o SGBD para que ele crie as estruturas, para que ele exclua estruturas e também para que ele modifique as estruturas. Para facilitar a compreensão, temos que utilizar verbos simples nessa lin- guagem de comunicação padronizada: • CREATE – Para criar estruturas. • ALTER – Para alterar estruturas. • DROP – Para excluir estruturas. 3.2.1 CRIE PARA MIM SGBD! Dentro da DDL, tudo se inicia pelo comando CREATE. Ora, precisamos criar nossas tabelas! Mas antes disso precisa-se existir o banco de dados propriamente dito. Para isso realizamos a seguinte declaração: CREATE DATABASE <nome do banco de dados>; Se queremos criar um banco de dados chamado MeuBanco, temos que declarar: CREATE DATABASE MeuBanco; Perceba que ao final da declaração usa-se um ponto e vír- gula. Ele informa ao SGBD que essa declaração terminou e que, posteriormente a ela poderá existir outra. 50 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO 3.2.2 ELIMINE O BANCO INTEIRO! Da mesma forma que criamos uma nova base de dados, precisamos saber como eli- miná-la, quando isso se fizer necessário: DROP DATABASE MeuBanco; Para verificar a remoção de um banco de dados, você pode utilizar o comando: SHOW DATABASES; Em alguns SGBDs do mercado, não é disponibilizado o comando DROP DATABASE. 3.2.3 CRIE UMA TABELA! Para informar ao SGBD que precisamos criar uma tabela utilizamos também o co- mando CREATE, mas, além disso, já informamos os tipos de dados dos nossos cam- pos, ou seja, caso um campo CPF deverá aceitar apenas números ou se poderá aceitar números, ponto e traço. Compreendeu? O SGBD precisa saber de tudo detalhada- mente para conseguir operar as consultas posteriormente. Além disso, o comando de criação de tabela já informa as chaves primárias e estrangeiras da tabela em questão. Veja como é estruturado um comando de criação de tabela: CREATE TABLE <nome da tabela> (<nome do atributo> <tipo de dado> [NOT NULL],..., PRIMARY KEY (<nome do atributo1>, <nome do atributo2>,...) FOREIGN KEY (<nome do atributo>) REFERENCES (<nome da tabela>); Vendo dessa forma pode até ser difícil compreender, vamos detalhar utilizando exemplos que já tratamos nessa disciplina, por exemplo, uma tabela de alunos. 51 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO FIGURA 28 - COMANDO CREATE TABLE EXPLICADO Fonte: Elaborado pelo autor, adaptado de CARDOSO, 2008. Perceba na figura 28 que criamos um único comando utilizando várias linhas, mas informamos que ele termina no ponto e vírgula da última linha. Visualizando linha a linha temos um detalhamento completo que você pode perce- ber lendo oquadro 1. Por mais que pareça algo desnecessário, leia linha a linha do quadro associando os detalhes inerentes de cada linha do comando. QUADRO 2 - COMANDO CREATE TABLE EXPLICADO COMANDO LINHA A LINHA EXPLICAÇÃO DETALHADA Linha 1 CREATE TABLE Alunos Inicia o comando de criar a tabela Alunos e abre o parêntese para definição de campos. Linha 2 matricula int(11), Informa o atributo matrícula sendo do tipo inteiro aceitando 11 caracteres. Linha 3 nome char(20) NOT NULL, Informa o atributo nome sendo do tipo char aceitan- do 20 caracteres. E definindo que nele não pode acei- tar valor nulo. Linha 4 endereço char(30), Informa o atributo endereço sendo do tipo char acei- tando 30 caracteres. Linha 5 PRIMARY KEY (matricula)); Informa que o atributo PK é a matrícula. Perceba que matrícula está contida entre parênteses e existe um parênteses fechando depois, se trata do fechamento do parênteses aberto na linha 1. Finaliza o comando com ponto e vírgula. Fonte: Elaborado pelo autor, 2018. 52 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO Nesse momento você pode se perguntar: É necessário atentar para cada caractere de um comando SQL? A resposta cruel é que sim! A falta de uma vírgula, uma abertura de parênteses sem fechamento, ou declarações específicas da linguagem escritas de forma errada resultam em um comando ao qual o SGBD não irá conseguir inter- pretar. Tenha atenção aos detalhes e sempre crie comandos organizados em linhas, formatado para melhor leitura tanto de você como os membros da sua equipe. É muito comum existirem query’s SQL (outra forma de se fa- lar comandos SQL) extensas e ser gasto um tempo precioso de trabalho as escrevendo sem formatação adequada, ge- rando erros que deverão ser tratados, e com isso ainda mais desperdício de esforços. Vamos agora demonstrar uma criação de tabela que precise uma chave estrangeira (FK). Para isso iremos utilizar a tabela Cursos, que se relaciona com a tabela Alunos ao qual já abordamos. Temos que ter em mente que nesse exemplo, a matrícula do aluno (PK da tabela Alunos) deverá constar na tabela Cursos como uma chave estrangeira (FK). Esses con- ceitos nós já tratamos anteriormente nessa disciplina e caso não tenha ficado claro é primordial que você retorne a esses tópicos para continuar a partir daqui. FIGURA 29 - COMANDO CREATE TABLE COM FK Fonte: Elaborado pelo autor, adaptado de CARDOSO, 2008. 53 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Conforme percebemos na figura 2, temos a mesma estrutura de criação de tabela, mas agora acrescentamos a linha que informa a nossa FK. Lembre-se que independente da declaração da FK a linha acima está tratando da PK da tabela Cursos, correto? 3.2.4 ALTERE MINHA TABELA, POR GENTILEZA. Podemos solicitar ao SGBD que realize alterações na estrutura de uma tabela. Para isso utilizamos o ALTER TABLE. Sua sintaxe é definida por: ALTER TABLE <nome da tabela> [ ADD <nome do atributo> <tipo de dado>; | CHANGE <nome do atributo> <tipo de dado>;| RENAME <nome novo da tabela >| DROP < nome do atributo>; ] Acima informamos a sintaxe constando diferentes formas de utilizar o comando AL- TER. Vamos explicar detalhadamente a seguir, não se desespere. • ALTER TABLE usando cláusula ADD: É utilizado quando precisamos, por exemplo, adicionar um atributo na tabela, veja um exemplo. ALTER TABLE Alunos ADD cidade VARCHAR(20) not null; • ALTER TABLE usando cláusula CHANGE: É utilizado quando precisamos, por exemplo, modificar um atributo na tabela, veja um exemplo. ALTER TABLE Alunos CHANGE nome nomeAluno VARCHAR(40) not null; Perceba que após CHANGE, temos primeiramente a repre- sentação do atributo a ser alterado (nome) e após o novo (no- meAluno). Evidenciado de vermelho. Ou seja, nessa tabela o atributo nome passará se chamar nomeAluno, além de ser agora um VARCHAR aceitando até 40 caracteres não nulos. 54 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO • ALTER TABLE usando cláusula DROP: É utilizado quando precisamos, por exemplo, excluir um atributo na tabela. Veja um exemplo da exclusão de um possível atributo cidade da tabela alunos. ALTER TABLE Alunos DROP cidade; • ALTER TABLE usando cláusula RENAME: É utilizado quando precisamos, por exemplo, renomear a tabela. ALTER TABLE Cursos RENAME CursosEAD; • ALTER TABLE usando cláusula ADD PRIMARY KEY ou ADD FOREIGN KEY: É utilizado quando precisamos adicionar chaves na tabela caso não as tenha- mos feito no momento de criação da tabela. ALTER TABLE Alunos ADD PRIMARY KEY(matricula); ALTER TABLE Cursos ADD FOREIGN KEY(matricula) REFERENCES Alunos(matricula); 3.2.5 ELIMINE UMA TABELA Os comandos DDL chegam ao fim com a utilização do comando DROP TABLE. É sim- ples compreende-lo, veja: DROP TABLE Cursos 55 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO 3.3 MANIPULAÇÃO DE DADOS Os comandos responsáveis pela manipulação de dados são a parte da SQL denomi- nada como Data Manipulation Language – DML. A manipulação dos dados se dá por: • Inserção de dados de tabelas. • Atualização de dados de tabelas. • Exclusão de dados em uma tabela. • Seleção de dados de uma tabela. Vamos ver detalhadamente como são compostos estes comandos dentro da lin- guagem SQL a seguir, mas antes disso precisamos entender os conceitos de opera- dores lógicos. 3.3.1 OPERADORES LÓGICOS Através dos operadores lógicos é possível criar query’s SQL que nos permitem usar mais de uma única condição em uma mesma cláusula. Dessa forma podem-se produzir re- sultados únicos utilizando esses operadores. A linguagem SQL faz uso de três operadores: • AND: Com a utilização do operador AND teremos como retorno nas consultas se as duas condições forem atendidas. Exemplo: “Alunos do estado de São-Paulo AND DDD_telefone = 11” Explicação: Não haverá no retorno dessa consulta alunos de Minas-Gerais, como também não haverá retorno de alunos de São-Paulo com telefone dife- rente do DDD 11. Serão exibidos somente alunos de São-Paulo que seu tele- fone tenha DDD 11. • OR: Com a utilização do operador OR teremos como retorno nas consultas se umas das duas condições forem atendidas. Exemplo: “Alunos do estado de São-Paulo OR DDD_telefone = 11” Explicação: Aqui serão exibidos alunos de São-Paulo ou qualquer aluno que tenha DDD do telefone = 11 em seu registro. 56 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO • NOT: Com a utilização do operador NOT teremos como retorno nas consultas se não for atendida uma condição em sequência, por exemplo. Exemplo: “Alunos com DDD_telefone NOT BETWEEN 11 AND 21” Explicação: Aqui serão exibidos alunos que tenham DDD do telefone que não estão entre 11 e 21. Por exemplo, serão retornados alunos com DDD = 31. Os exemplos acima foram didáticos, mesclando “português com SQL” para conseguir transmitir a você o funcionamento dos operadores lógicos. Adiante veremos como se dão as consultas propriamente ditas, somente em SQL. 3.3.2 INSERIR NA TABELA! Agora sim iremos começar a popular os registros em nosso banco de dados. O co- mando de inserção de registros acontece com a utilização do comando INSERT, veja a sua sintaxe: INSERT INTO <nome da tabela> [(<nome dos atributos>)] VALUES (<valores dos atributos>); Imagine uma tabela que contém os dados de pilotos de corrida, e nela temos sete campos: código, nome, pais, idade, equipe, motor, pontos. O comando de inserção seria: INSERT INTO Pilotos (código, nome, pais, idade, equipe, motor, pontos) VALUES (140, ‘CarlosAlmeida’, ‘Brasil’, 26, ‘Hispania’, ‘Cosworth’,0); Perceba que dizemos ao SGBD para inserir na tabela pilotos (INSERT INTO Pilotos), nos campos (código, nome, pais, idade, equipe, motor, pontos) os seguintes VALUES (140, ‘Carlos Almeida’, ‘Brasil’, 26, ‘Hispania’, ‘Cosworth’,0); Para cada atributo dentro do primeiro parênteses, temos o seu valor correspondente no segundo parênteses do comando, de forma sequencial. 57 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Explicando de forma simples: o código será 140, o nome do piloto é Carlos Almeida, o país é o Brasil etc. Cada atributo e valor devem estar sequenciado e separado por vírgula dentro dos parênteses. Um erro será retornado caso você informe campos a mais e não estipule seus valores corretamente. Exemplo: Solicitar inserção em sete campos nos parênteses INTO Pilotos(), apresentando apenas cinco valores dentro dos parênteses VALUES(). 3.3.3 SELECIONAR DE UMA TABELA! Agora a proposta fica interessante. Um sistema de banco de dados passa a ter total sentido quando conseguimos nos beneficiar de consultas de dados para atender o que o usuário final necessita, concorda? O comando da linguagem SQL necessário para isso é o SELECT. Conforme abaixo realizamos uma seleção simples envolvendo apenas uma tabela, veja: SELECT nome FROM Pilotos Essa consulta irá retornar todos os nomes de pilotos. O FROM é essencial para infor- mar de qual tabela se trata a consulta. Vamos agora restringir um pouco os resultados utilizando um operador lógico, acompanhe: SELECT nome FROM Pilotos WHERE idade = 26 AND pontos = 0; Segue-se o mesmo raciocínio, mas agora teremos a listagem dos nomes de pilotos que tem idade = 26 e pontos = 0. Percebeu o WHERE? Onde idade = 26 e pontos = 0. Vamos continuar, agora simplesmente acrescentando mais campos a serem retornados. SELECT nome, pais, equipe FROM Pilotos WHERE idade = 26 AND pontos = 0; 58 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO A diferença agora é que queremos que seja retornado além do nome, também o país e a equipe de pilos que tenham idade = 26 e pontos = 0. Mas e seu quiser todos os campos? SELECT * FROM Pilotos WHERE idade = 26 AND pontos = 0; OK, podemos utilizar o asterisco entre o SELECT e o FROM, conforme acima. Dessa forma serão exibidos todos os atributos de pilotos, atendendo o que foi pedido no WHERE. (Idade = 26 e pontos = 0). Através do SELECT pode-se também relacionar campos de diferentes tabelas. Veremos isso de forma prática utilizando o SGBD MySQL através de aula interativa que acompanha essa unidade de estudo. Um exemplo disso seria retornar os nomes de pilotos, juntamente com dados do carro que eles pilotam (que estão relacionados em outra tabela) de um possível banco de dados de um campeonato de corrida. Além de ver isso de forma prática aqui na disciplina, aconse- lha-se que você pesquise mais a respeito das diversas formas de utilizar o SELECT através de consultas SQL, por exemplo, acessando os livros disponíveis no sistema Minha Biblioteca. Comandos SELECT possuem grande variação de utilização e é fundamental se aprofundar em suas formas de utilização. 3.3.4 ALTERAR DADOS DA TABELA! Para alterar os dados em tabelas, fazemos uso do UPDATE, conforme sintaxe: UPDATE <nome da tabela> SET <alteração> [WHERE <condição>]; Vamos seguir apresentando exemplos práticos. Imagine que precisamos alterar o atributo país de todos os pilotos para Brasil. Veja como seria o comando: UPDATE Pilotos SET pais = ‘Brasil’; 59 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO Dessa forma todos os registros da tabela Pilotos teriam agora o valor Brasil no atributo pais. Pois através da cláusula SET informamos que o valor para país deve ser = Brasil. Vamos agora alterar mais atributos: UPDATE Pilotos SET equipe = ‘Ferrari’, pontos = 0; Agora alteramos todos os registros da tabela Piloto informando que todos eles são da equipe Ferrari e estão com 0 pontos. Poderíamos ser demitidos nesse momento, pois simples- mente alteramos todos os registros de pilotos. É altamente recomendável que comandos UPDATE possuam restrições utilizando WHERE. Veja abaixo: UPDATE Pilotos SET equipe = ‘Williams’ WHERE idade > 25; Agora estamos restringindo a alteração para apenas os pilotos com idade maior que 25 anos. Percebeu o WHERE? Uma dica de carreira! Aprendemos que podemos usar o WHERE em comandos SELECT, correto? Para não corrermos risco de realizar operações UPDATE erradas, pode-se pri- meiramente realizar um SELECT para averiguar os registros que serão retornados, e sabendo que através do SELECT, por exemplo, somente cinco registros foram retornados, enten- demos logicamente que um UPDATE com mesma definição WHERE irá alterar somente cinco registros. Perceba: SELECT * FROM Pilotos WHERE idade > 25 60 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO Supondo o SELECT acima retornou apenas cinco registros, sabemos que um UPDATE que se utilize de mesmo WHERE, logicamente terá que alterar somente cinco regis- tros, ao solicitar que o UPDATE abaixo seja executado: UPDATE Pilotos SET equipe = ‘Williams’ WHERE idade > 25; Em resumo, antes de realizar um comando UPDATE, você pode realizar um comando SELECT para garantir que sua alteração irá acontecer somente com os registros que você espera que ocorra. Evite o conhecido “UPDATE sem WHERE”! 3.3.5 APAGAR DADOS DA TABELA! Antes de apresentar esse último comando da DML da linguagem SQL, o que acaba- mos de perceber na dica do “UPDATE sem WHERE”, também é válido para o coman- do de remover registros. Vamos a sua sintaxe: DELETE FROM <nome da tabela> [WHERE <condição>]; Exemplo prático: DELETE FROM Pilotos; É isso mesmo que você imaginou. Todos os dados de Pilotos foram apagados. Já aqui teríamos um comando de DELETE de forma mais restrita: DELETE FROM Pilotos WHERE idade > 24 AND pais = ‘Brasil’; Somente seriam apagadas as duplas (registros) de pilotos com idade acima de 24 anos e do país Brasil. Podemos e devemos utilizar operadores lógicos principalmente com comandos DE- LETE através da cláusula WHERE, assim como vimos com o comando de UPDATE. 61 FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BANCO DE DADOS I SUMÁRIO OBJETIVO Ao final desta unidade, esperamos que possa: UNIDADE 4 > Apontar o que é normalização em banco de dados. > Analisar tabelas básicas em 1FN, 2FN e 3FN. > Identificar outras formas normais como a FNBC e a 4FN. > Definir o que é dependência funcional visualizando exemplos práticos. > Aplicar normalização 1FN, 2FN e 3FN em tabelas relacionais. > Definir o motivo de normalizar tabelas em um projeto de banco de dados. > Definir em qual parte de um projeto de banco de dados podemos normalizar. > Definir até que ponto a normalização é benéfica na prática de um projeto de banco de dados. 62 BANCO DE DADOS I FACULDADE CAPIXABA DA SERRA/EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO 4 NORMALIZAÇÃO EM PROJETOS DE BANCO DE DADOS Estamos preparados para grandes aplicações a partir de uma modelagem de banco de dados simplificada? Conseguimos usar alguma lógica para refinar nossas tabelas a fim de evitar redundâncias? Essas preocupações nos levam a questão de normali- zação de tabelas em banco de dados. Nessa unidade iremos introduzir o que é nor- malizar e quais são as formas normais às quais podemos aplicar em nossas tabelas de banco de dados. Faremos também uma abordagem geral do processo que envolve