Prévia do material em texto
EduFatecie E D I T O R A Gerenciamento de Banco de Dados Prof. Dr. Hudson Sérgio de Souza EQUIPE EXECUTIVA Editora-Chefe Profa. Dra. Denise Kloeckner Sbardeloto Editor Adjunto Prof. Dr. Flávio Ricardo Guilherme Assessoria Jurídica Profa. Dra. Letícia Baptista Rosa Ficha Catalográfica Tatiane Viturino de Oliveira Zineide Pereira dos Santos Revisão Ortográfica e Gramatical Profa. Esp. Bruna Tavares Fernandes Secretária Geovana Agostinho Daminelli Setor Técnico Fernando dos Santos Barbosa Projeto Gráfico, Design e Diagramação André Dudatt www.unifatecie.edu.br/ editora-edufatecie edufatecie@fatecie.edu.br Reitor Prof. Ms. Gilmar de Oliveira Diretor de Ensino Prof. Ms. Daniel de Lima Diretor Financeiro Prof. Eduardo Luiz Campano Santini Diretor Administrativo Prof. Ms. Renato Valença Correia Secretário Acadêmico Tiago Pereira da Silva Coord. de Ensino, Pesquisa e Extensão - CONPEX Prof. Dr. Hudson Sérgio de Souza Coordenação Adjunta de Ensino Profa. Dra. Nelma Sgarbosa Roman de Araújo Coordenação Adjunta de Pesquisa Prof. Dr. Flávio Ricardo Guilherme Coordenação Adjunta de Extensão Prof. Esp. Heider Jeferson Gonçalves Coordenador NEAD - Núcleo de Educação à Distância Prof. Me. Jorge Luiz Garcia Van Dal Web Designer Thiago Azenha Revisão Textual Kauê Berto Projeto Gráfico, Design e Diagramação André Dudatt 2021 by Editora Edufatecie Copyright do Texto C 2021 Os autores Copyright C Edição 2021 Editora Edufatecie O conteúdo dos artigos e seus dados em sua forma, correçao e confiabilidade são de responsabilidade exclusiva dos autores e não representam necessariamente a posição oficial da Editora Edufatecie. Permi- tidoo download da obra e o compartilhamento desde que sejam atribuídos créditos aos autores, mas sem a possibilidade de alterá-la de nenhuma forma ou utilizá-la para fins comerciais. Dados Internacionais de Catalogação na Publicação - CIP S729g Souza, Hudson Sérgio de Gerenciamento de banco de dados / Hudson Sérgio de Souza Paranavaí: EduFatecie, 2021. 88 p. : il. Color. ISBN 978-65-87911-07-6 1. Banco de dados - Gerência. 2. Banco de dados relacionais. I. Centro Universitário UniFatecie. II. Núcleo de Educação a Distância. III. Título. CDD: 23 ed. 005.74 Catalogação na publicação: Zineide Pereira dos Santos – CRB 9/1577 EduFatecie E D I T O R A UNIFATECIE Unidade 1 Rua Getúlio Vargas, 333 Centro, Paranavaí, PR (44) 3045-9898 UNIFATECIE Unidade 2 Rua Cândido Bertier Fortes, 2178, Centro, Paranavaí, PR (44) 3045-9898 UNIFATECIE Unidade 3 Rodovia BR - 376, KM 102, nº 1000 - Chácara Jaraguá , Paranavaí, PR (44) 3045-9898 www.unifatecie.edu.br/site As imagens utilizadas neste livro foram obtidas a partir do site Shutterstock. https://orcid.org/0000-0001-5409-4194 AUTOR Prof. Dr. Hudson Sérgio de Souza E-mail: hudson.souza@fatecie.edu.br Currículo Lattes: http://lattes.cnpq.br/3650215843884230 FORMAÇÃO ACADÊMICA ● Doutorado 2014-2018 Universidade Estadual de Maringá – UEM Área: Agronomia – ênfase: Fitopatologia / Agro-Informática – Maringá-PR ● Mestrado 2012-2014 Universidade Estadual de Maringá – UEM Área: Agronomia – ênfase: Fitopatologia / Agro-Informática – Maringá-PR ● Especialização 2018 – Universidade Tecnológica Federal do Paraná – UTFPR - EAD Curso: Especialização Informática Instrumental Aplicada à Educação 2009 – Universidade Federal do Mato Grosso do Sul UFMS – Campo Grande-MS Curso: Especialização em Educação Pedagógica em Educação a Distância 2007 – Centro Universitário de Maringá – UniCesumar – Maringá-PR Curso: Especialização em Desenvolvimento Orientado a Objetos - Java ● Graduação 2006 – Universidade Paranaense - UNIPAR – Campus Paranavaí Curso: Bacharelado em Sistemas de Informação – Paranavaí-PR Experiência na área de analista de desenvolvimento de sistemas, programador, docente da área de computação, coordenador do curso de Sistemas para Internet. APRESENTAÇÃO DO MATERIAL Seja muito bem-vindo (a) ! Prezado (a) aluno (a), se você se interessou pelo assunto desta disciplina, isso já é o início de uma grande jornada que vamos trilhar juntos a partir de agora. Proponho, junto a você, construir nosso conhecimento sobre os conceitos fundamentais do Gerenciamento de Banco de Dados, ou seja, a forma de armazenar e manipular os dados para transformá- -los em informação. Além de conhecer seus principais conceitos e definições vamos explorar as mais diversas aplicações de um banco de dados aplicado ao desenvolvimento de software. A disciplina de Gerenciamento de Banco de Dados é desenvolvida juntamente com as demais disciplinas dos cursos de computação, priorizando as disciplinas de: Análise de Projetos, Algoritmos e Lógica de Programação e Desenvolvimento Web, que atuam diretamente com o armazenamento e manipulação dos dados. Na unidade I – Conceitos de Banco de Dados, começaremos a nossa jornada pelo conceito das principais características do sistemas de banco de dados, suas transações e abordando as vantagens da utilização do SGBD. Esta noção é necessária para que possamos trabalhar a segunda unidade do livro, que versará sobre o modelo relacional. Já na unidade II – Modelo Relacional, vamos ampliar nossos conhecimentos sobre banco relacional. Para isso, vamos detalhar cada uma das etapas, criação e manipulação de usuários, permissões e dos dados atribuídos ao SGBD. Depois, nas unidade III – SQL Básico, vamos tratar especificamente dos principais comandos utilizados para manipulação de um SGBD através dos comandos SQL, as permissões e restrições atribuídas aos usuários do banco de dados, os comandos de manipulação dos dados em SQL e as consultas básicas utilizando SQL. Por fim, na unidade IV – vamos entender o papel dos tipos de consultas envolvendo NULL, as consultas aninhadas, a utilização do Joins, os comandos de alteração do Schema, a manipulação dos registros através da inserção, alteração e exclusão, as transações efetivadas, os utilização de visões e a preocupação com a segurança do dados. Aproveito para reforçar o convite a você, para junto conosco percorrer esta jornada de conhecimento e multiplicar os conhecimentos sobre tantos assuntos abordados em nosso material. Esperamos contribuir para seu crescimento pessoal e profissional. Muito obrigado e bom estudo! SUMÁRIO UNIDADE I ...................................................................................................... 3 Conceitos de Banco de Dados UNIDADE II ................................................................................................... 22 Modelo Relacional UNIDADE III .................................................................................................. 40 SQL Básico UNIDADE IV .................................................................................................. 59 Mais SQL 3 Plano de Estudo: ● Conceitos e Definições das características do SGBD; ● Tipos de transações existentes; ● Abordagem sobre as principais vantagens do uso SGBD. Objetivos da Aprendizagem: ● Conceituar e contextualizar o sistema gerenciados de banco de dados; ● Compreender os tipos de transações envolvendo armazenagem dos dados; ● Estabelecer a importância da utilização de um SGBD. UNIDADE I Conceitos de Banco de Dados Professor Dr. Hudson Sérgio de Souza 4UNIDADE I Conceitos de Banco de Dados INTRODUÇÃO Olá, caros acadêmicos! Sejam bem-vindos ao Módulo I – Conceito de Banco de Dados. Neste módulo iremos tratar sobre os temas que irão contextualizar o tema central da disciplina Gerenciamento de Banco de Dados, iniciando pelos conceitos e definições das características do Sistema de Gerenciamento de Banco de Dados (SGBD), passando a definir os tipos de transações existentes e, por fim, abordando as principais vantagens de se trabalhar utilizando um SGBD. Conhecer os princípios do SGBD é fundamental para toda empresa que necessite armazenar, buscar, alterar ou até mesmo deletar grandes volumes de dados,provenientes de clientes, produtos, transações, colaboradores ou outros dados que sejam vitais para o bom andamento da organização. 5UNIDADE I Conceitos de Banco de Dados 1. CONCEITOS E DEFINIÇÕES DAS CARACTERÍSTICAS DO SGBD Um Sistema de Gerenciamento de Banco de Dados (SGBD), proveniente do inglês Data Base Management System (DBMS), é responsável pela gestão de uma coleção de banco de dados, assim como os recursos necessários para a manipulação dos dados e do dicionário destes dados. O SGBD tem como objetivo tirar da responsabilidade do sistema do cliente de realizar o gerenciamento do acesso, da manipulação e organização dos dados armazenados no banco de dados. No banco de dados relacional, a interface possui uma Application Programming Interface/Interface de Programação de Aplicação (API) ou drivers do SGBD, utilizados para a execução comandos da linguagem Structured Query Language/ Linguagem de Consulta Estruturada (SQL). O SGBD é responsável pela forma de como os dados são armazenados, através de uma descrição completa do banco de dados, das informações da estrutura de cada Entidade (tabela), do tipo e do formato de armazenamento de cada dado, das restrições de acesso, etc. Denominamos como “dados persistentes” todos os dados que encontram-se armazenados em um banco de dados, conforme Figura 1. Basicamente, o Sistema de Gerenciamento de Banco de Dados oferece os recursos de manipulação e manutenção dos dados armazenados em Entidades (tabela) dentro de um Banco de Dados, como: cria banco de dados, insere, consulta, altera e deleta tanto os dados quanto a entidade e o banco de dados. 6UNIDADE I Conceitos de Banco de Dados Outra função ofertada pelo SGBD é a criação e manutenção da conta de usuários e seus privilégios (permissões) de acesso, há três tipos distintos de contas de usuários: ● Usuário de aplicação: utiliza o banco de dados de forma indiretamente, tendo um programa de computador servindo como interface entre o usuário e o banco de dados, além de gerenciar as ações requisitadas pelo usuário; ● Usuário de desenvolvedor: utilização do banco de dados para realizar testes gerais para certificar que as ações implementadas no sistema estejam sendo executadas corretamente; ● Usuário DBA: Administrador do Banco de Dados, possui os privilégios (permissões) para manipular o banco de dados, entidades, atributos, dados, privilégios de outros usuários, backup, restauração, entre outros. FIGURA 01 - ESQUEMA CONCEITUAL DE UM BANCO DE DADOS Fonte: O autor, 2020. Um dos principais benefícios da utilização de um banco de dados é que os registros e dados existentes em diferentes tabelas podem ser acessados, organizados e recuperados de forma fácil e rápida através da utilização de um SGBD. O banco de dados deve possuir algumas características essenciais, tais como: ● Gestão de acesso aos dados; ● Múltiplas interfaces aos usuários; ● Gestão de redundância de dados; ● Dados compartilhados; 7UNIDADE I Conceitos de Banco de Dados ● Representação de associação complexa; ● Gestão de recuperação de falhas; ● Restrições de integridade dos dados. A aplicabilidade de um SGBD é muito ampla, dentre as principais podemos citar: dados oriundos de pesquisa científica aplicada, dados de inventário, dados de biblioteca, dados contábeis, conversa de listas de discussão, dados contábeis, dados de clientes e dados de fornecedores. Algumas características são fundamentais para definir um SGBD, assim como: catálogo, independência de dados, múltiplas visões dos dados, compartilhamento e as transações. O catálogo em um SGBD ampara o banco de dados, a definição e a descrição das estruturas e dos registros armazenados no banco. A independência de dados em um SGBD possibilita aos usuários uma visão abstrata dos dados armazenados, ocultando detalhes de como os dados estão fisicamente salvos no banco. Já as múltiplas visões dos dados disponíveis em um SGBD possibilita que cada tipo de usuário possa ter a sua visão personalizada dos dados armazenados em um banco de dados. O SGBD possui as funções de compartilhamento e transações para realizar a gestão do controle de concorrência. Além disso, uma coleção organizada de dados recebe a denominação de Banco de Dados, estes dados podem se relacionar entre si de forma organizada e cronológica gerando informações importantes para futuras tomadas de decisões, passando maior segurança e credibilidade tanto para pesquisa quanto para estudos. Para as empresas os banco de dados são fundamentais para que possam continuar a crescer e alavancar novos negócios, através de informações sobre os clientes, seus fornecedores, sobre os produtos comercializados, controle de estoque, fluxo de caixa, folha de pagamentos, entre outras. 8UNIDADE I Conceitos de Banco de Dados 2. TIPOS DE TRANSAÇÕES EXISTENTES Um banco de dados relacional oferece suporte ao controle de transação e às propriedades da Atomicidade, Consistência, Isolamento e Durabilidade, comumente conhecida pela sigla ACID, uma propriedade do “tudo ou nada” de se concretizar qualquer alteração no banco de dados em sua plenitude ou desfazer todas as ações parcialmente executadas. Uma transação pode ser definida por uma sequência de operações onde são tratadas com um único bloco indivisível durante o processo de recuperação de falhas. As transações são executadas completamente ou não serão executadas, assim, caso haja uma falha em qualquer tipo de manipulação do dado em um banco de dados, esta transação poderá ser desfeita, retornando os dados originais ao banco de dados. A transação é tratada como uma unidade única, onde suas ações não suportam ser mescladas com outras operações que estejam sendo executadas no banco de dados que não participem do escopo desta transação em particular. A execução de somente um comando SQL pode significar diversos acessos a um banco de dados separadamente, onde uma transação, por sua vez, consiste na execução de diversos comandos SQL. Toda transação deve ser executada em sua totalidade, ou não será executada, caso haja alguma falha por qualquer motivo que ocorra, essa transação pode ser desfeita, sendo essa característica denominada de Atomicidade. 9UNIDADE I Conceitos de Banco de Dados Uma transação deve, sobretudo, manter a consistência dos dados armazenados no banco de dados, sendo essa característica denominada de Consistência. Neste contexto, fica evidente que o Sistema Gerenciador de Banco de Dados necessita executar tarefas especiais que garantam a execução da transação até o fim de forma ininterrupta e que não haja a interferência de execução de comandos SQL, sendo executadas no banco de dados de forma simultânea, sendo essa característica denominada de Isolamento. O sistema gerenciador de banco de dados precisa garantir que uma transação executada com êxito não venha a se perder em uma provável falha posterior, sendo que as transações devem persistir às falhas. Outra característica importante é que uma transação só pode ser desfeita através da execução de outra transação, sendo essa característica denominada de Durabilidade. 2.1 Operações de dados por transação Entre diversas possibilidades de executar operações de dados por transação, a mais utilizada é o CRUD, sigla em inglês create, read, update, delete/criar, ler, alterar, deletar. Assim, o Sistema Gerenciador de Banco de Dados (SGBD) necessita garantir que seja executada corretamente a transação, ocorrendo ou não uma falha, desta forma a transação é executada por completo ou nenhuma operação será executada, abortando a transação. Observando os códigos-fonte da linguagem SQL, observa-se que a transação é definida por meio de declarações de formato, que designam o início e o fim da declaração, devendo ser executada como se fosse uma única instrução, sendo que para manter a integridade dos dados o SGBD deve priorizar as propriedade da ACID, conforme Figura2. FIGURA 02 - TRECHO DE CÓDIGO FONTE EM LINGUAGEM SQL, INDICANDO O ESCOPO DESTINADO A OPERAÇÃO ÚNICA Fonte: O autor, 2020. 10UNIDADE I Conceitos de Banco de Dados 2. 2 Commit e Rollback O comando “Commit” se aplica quando a transação tenha sido executada com sucesso, assim o banco de dados é alterado de forma permanente e o dado gravado em disco. Para corrigir qualquer problema por falhas com naturezas diversas, será utilizado o comando “Rollback”, retornando o banco de dados ao estado de início da transação, sem a eventual transação executada parcialmente devido a falha. Podemos exemplificar através de uma transação financeira no valor de R$ 150,00 de uma conta corrente de um cliente “A” para outra conta corrente de um cliente “B” do mesmo banco, conforme Figura 3. FIGURA 03 - TRECHO DE CÓDIGO FONTE DA LINGUAGEM SQL, DESCRITO EM CÓDIGO PORTUGOL, REALIZANDO UMA TRANSAÇÃO FINANCEIRA DE TRANSFERÊNCIA DE RECURSOS DA CONTA CORRENTE DE UM CLIENTE PARA OUTRO Fonte: O autor, 2020. Onde, ● vlr_transf: recebe o valor a ser transferido de uma conta corrente para outra ● ler(A): transfere os dados físicos do banco de dados do cliente “A” para uma área de memória (buffer) ● A = A – vlr_transf: debita o valor da ser transferido (vlr_transf) do saldo da cota corrente do cliente “A” ● gravar(A): realiza a transferência dos dados do cliente “A” alocados na memória Buffer, para o banco de dados armazenado em disco; ● ler(B): transfere os dados físicos do banco de dados do cliente “B” para uma área de memória (buffer) ● A = B + vlr_transf: credita o valor transferido (vlr_transf) ao saldo da cota corrente do cliente “B” ● gravar(B): realiza a transferência dos dados do cliente “B” alocados na memória Buffer, para o banco de dados armazenado em disco. 11UNIDADE I Conceitos de Banco de Dados Em caso de sucesso da transação, o SGBD seguirá com o procedimento com o comando “Commit” efetivando a transação. Caso ocorra algum qualquer tipo de falha na transação, o SGBD executará o comando “Rollback” cancelando a transação de transferência, desfazendo todas as ações executadas, como por exemplo: Se houver uma falha de comunicação e o saldo da conta corrente do cliente “A” for insuficiente para debitar o valor da transferência, ocorre uma falha no momento de creditar o valor transferido na conta corrente do cliente “B”. 2.3 Recuperação de Falhas O sistema gerenciador de recuperação de falhas assegura que ocorra a atomicidade e a durabilidade na execução das transações. Sendo que a atomicidade desfaz as ações decorrentes das transações que não obtiveram êxito e não foi realizado o “Commit”. Já a durabilidade garante com que todas as transações com êxito e que realizaram o “Commit” para efetivar a ações, tornem-se persistentes no banco de dados físico. O algoritmo de recuperação possui três fases distintas: ● Analisar: percorrer o log do sistema para frente, partindo do último ponto de verificação, identificando as transações ativas e as transações que estavam em execução no momento da falha; ● Refazer: percorrer e refazer todas as transações que estavam em execução no momento da falha, garantindo assim que as atualizações sejam registradas no log do sistema e devidamente salvas no banco de dados físico; ● Desfazer: todas as transações que estavam em execução no momento da falha serão desfeitas, recuperando os valores iniciais anteriores ao processo que gerou a falha, e atualizando o registro de log do sistema, fazendo a varredura de trás para frente. 2.4 Controle de Concorrências Um sistema de controle de concorrência descreve uma arquitetura do sistema de gerenciamento de banco de dados do mais baixo nível, estando relacionado às operações de entrada e de saída, simultaneamente a troca dos blocos de memórias secundários para a memória principal e/ou vice-versa (ATZENI et al. 2000). 12UNIDADE I Conceitos de Banco de Dados Tanto a operação de escrita quanto a de leitura, são gerenciadas pelo módulo Scheduler (escalonador), que define se a requisição pode ou não ser satisfeita. O sistema de gerenciamento de banco de dados oferece suporte a várias aplicações que permite acesso concorrente dos dados. Quanto maior for a permissão ao nível de concorrência, melhor será o tempo de resposta do sistema. Os mecanismos de controle e concorrência facilitam os processos de paralelismo no núcleo do sistema gerenciador de banco de dados. Em um cenário de banco de dados distribuídos, torna-se fundamental a implementação de um sistema de paralelismo, sendo que os nós da rede atuam de maneira independente, mesmo o controle de concorrência sendo efetivados de forma global. 13UNIDADE I Conceitos de Banco de Dados 3. ABORDAGEM SOBRE AS PRINCIPAIS VANTAGENS DO USO SGBD Em um Sistema de Gerenciamento de Banco de Dados, normalmente os dados são armazenados em um banco de dados que pode estar alocado em uma máquina física (servidor) ou uma máquina alocada nas nuvens (servidor virtual), ambos podendo ser uma máquina de grande porte ou uma máquina de menor capacidade de quantidade de armazenamento e de potencial de processamento, onde irá receber as requisições de dados das demais estações de trabalho (computador cliente). Ao armazenar os dados dos usuários em um único local (servidor físico ou virtual) a possibilidade de haver uma redundância (repetição) dos dados é praticamente nula. O SGBD através da função de multiusuário possibilita o compartilhamento dos dados entre diversos usuários acessando o mesmo banco de dados de forma simultânea, onde vários sistemas integrados possam acessar o mesmo banco de dados. Uma das responsabilidades do SGBD é realizar o controle de concorrência, garantindo que as atualizações resultem em respostas às requisições de forma correta, possibilitando também a construção de visões distintas para cada tipo de usuário. Outra vantagens disponíveis no sistema de gerenciamento de banco de dados é o sistema de segurança, amplamente utilizado pelo Database Administrator/ Administrador de Banco de Dados (DBA), que cria regras bem definidas para cada grupo de usuário, assim como suas permissões, restrições de acesso e visibilidade dos dados e informações armazenadas dentro do banco de dados. Este pacote de segurança é aplicado tanto ao acesso aos dados por parte dos usuários quanto a utilização de softwares interligados ao sistema de gerenciamento de banco de dados. 14UNIDADE I Conceitos de Banco de Dados Um banco de dados tem capacidade de armazenar uma grande quantidade de dados que se encontram interrelacionados de diversas formas. O SGBD fornece recursos de representação da forma de relacionamento entre os dados, assim como as operações de inserção, atualização, exclusão e recuperação dos dados armazenados de forma rápida, eficiente e prática. Um Sistema de Gerenciamento de Banco de Dados propicia uma variedade de vantagens para sua utilização, tais como: ● Independência entre os dados e o sistema; ● Independência entre sistema e operação; ● Suporte a visões; ● Controle de Redundância. 3.1 Independência entre os dados e o sistema A definição de estrutura de dados em um Sistema de Gerenciamento de Banco de Dados tem por característica possuir um catálogo ou dicionário de dados, denominado como metadados, ou seja, um detalhamento sobre os dados armazenados. Desta forma, quando ocorre alteração na estrutura de dados, não afetará a alteração dos softwares de manipulação dos dados. 3.2 Independência entre sistema e operação Quando se trata de Sistema de Gerenciamento de Banco de Dados Orientado a Objetos (OO), relacional/objeto, função/procedimento, ao manipular dados armazenados em um banco de dados, as informações sobre os detalhes de armazenamento e implementação encontram-se ocultas, esta função denomina-se como abstração de dados. Caso a interface desta função permaneça inalterada no banco de dados, os sistemas que utilizam esta função não precisamser alterados/tratados quando a função mudar, esta operação é denominada como independência entre sistema e operação. 3. 3 Suporte a visões O mesmo conjunto de dados armazenados em um banco de dados fisicamente, pode ser apresentado de formas distintas a clientes específicos, por exemplo: os detalhes dos dados dos acadêmicos, notas e faltas, podem ser apresentados de forma mais simplificada aos acadêmicos e de forma mais detalhada aos docentes. 15UNIDADE I Conceitos de Banco de Dados 3.4 Controle de Redundância Uma característica do controle de redundância dos dados, que pode ser considerada como uma desvantagem, é o desperdício do espaço de armazenamento. Exemplificando: em um processo comum de arquivos onde cada usuário possui seus próprios arquivos e dados armazenados, pode ocorrer redundância, ou seja, repetições de arquivos ou dados. Durante o processo de atualização todos os arquivos ou dados devem ser atualizados simultaneamente, mantendo assim a integridade dos dados dentro do banco de dados, o que acarreta uma redundância das informações e a ocupação desnecessária de espaço em disco. 3.5 Desvantagens da utilização do SGBD Uma desvantagens da utilização do sistema de gerenciamento de banco de dados é o alto custo inicial com investimento financeiro para compra de novos hardwares e softwares, assim como a contratação de um profissional especializado em administração de banco de dados para que possa projetar a infraestrutura física das instalações e a estrutura interna para o armazenamento dos dados no banco de dados. A desvantagem da diversidade de sistemas trabalhando simultaneamente, sendo softwares desenvolvidos de linguagens de programação diferentes, salvando os dados em banco de dados e estrutura interna de armazenamentos diferentes. Estes aspectos geram dados e arquivos sendo armazenados em mais de um lugar (duplicidade), onde os conteúdos podem não ser os mesmos (inconsistência). Exemplo: Digamos que o gerente de uma loja de departamentos esportivos necessite de um relatório específico que liste todos os clientes de uma determinada rua onde ocorrerá um evento esportivo ao ar livre. O relatório deve trazer informações como: nome, rede social, telefone, tipo de modalidade esportiva e, será consultado pelo número do CEP da rua. Como o software não foi projetado inicialmente para emitir esse relatório, os desenvolvedores farão uma adequação para atender a demanda atual. Para atender a segunda, terceira e as demais demandas que surgirão no futuro, os desenvolvedores, que não necessariamente serão as mesmas pessoas, irão fazer alterações no software onde pode ocorrer inconsistência dos dados futuramente. A desvantagem de haver dados isolamento, ou seja, dados armazenados em locais diferentes e tipos de armazenamentos diferentes, se reflete no momento de desenvolver um novo módulo para a aplicação, sendo que se torna difícil recuperar os dados de onde muitas vezes não se conhece a estrutura, o local ou o próprio banco de dados onde eles se encontram armazedanos. 16UNIDADE I Conceitos de Banco de Dados A inconsistência dos dados é um fenômeno de preocupação constante, sendo que é possível que ocorra anomalias referente aos acessos concorrentes, por exemplo, no caso do aprimoramento do desempenho global de um software, obtendo um tempo de resposta menor, muitos desenvolvedores adotam práticas que permitem que múltiplos usuários tenham acesso aos mesmos dados e realizem atualizações simultâneas nos mesmos dados, o que pode vir a ocorrer uma inconsistência no conteúdo armazenado deste dado. Um exemplo clássico é o acesso e a realização simultânea de saque na conta corrente entre dois clientes bancários em uma mesma conta corrente. Existem problemas decorrentes da segurança dos dados, quando se trata de acesso a estes dados por todos os usuários do sistema sem critérios ou hierarquia de controle. Por exemplo: o usuário responsável pelo Departamento Pessoal pode ter acesso aos dados cadastrais dos colaboradores da empresa e ao cadastro do clientes, porém não deve ter acesso aos dados financeiros dos clientes, ao histórico de compras ou pedidos em aberto. Outra situação preocupante são os novos módulos de aplicação agregados ao sistema, que muitas vezes não há como restringir o acesso a dados específicos. Um problema de integridade de valores de dados armazenados, tem relação a satisfazer algum tipo de restrição de um dado, por exemplo, o controle de estoque não permite que um certo produto tenha estoque inferior a 10 unidades, no caso de uma implementação futura de um novo módulo do sistema, talvez essa restrição acabe sendo esquecida de ser implementa ou tenha passado despercebido no momento do levantamento de requisitos para implementação do novo módulo, o que será descoberto no momento em que o sistema estiver em uso prático no dia a dia da empresa. 17UNIDADE I Conceitos de Banco de Dados SAIBA MAIS INTEGRIDADE DE DADOS Nessa era da informação sob demanda não podemos nos contentar que os dados são apenas registros armazenados em um banco de dados. Sem a devida garantia de sua integridade também não é possível transformá-los em informação. De nada adianta termos imensos bancos de dados armazenando incontáveis bytes de dados, que são constantemente inseridos, modificados, eliminados, se não podemos transformá-los em informação. Fonte: PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em: https://www.devmedia.com. br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar. 2020. REFLITA Meus filhos terão computadores sim, mas antes terão livros. Sem livros, sem leitura, os nossos filhos serão incapazes de escrever, inclusive, a sua própria história. Bill Gates. Fonte: STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da Microsoft, que completa 40 anos de fundação. Disponível em: https://bit.ly/3DrAUBW. Acesso em: 30 jun. 2021. 18UNIDADE I Conceitos de Banco de Dados CONSIDERAÇÕES FINAIS Para compreender e tirar o melhor proveito das funcionalidades do Sistema de Gerenciamento de Banco de Dados (SGBD) é necessário compreender todos os contextos, características, vantagens e desvantagens desta importante ferramenta de gerenciamento. Neste sentido, foram explorados e exemplificados os conceitos e definições do SGBD, os tipos de transações existentes e análise das principais vantagens e desvantagens do uso do sistema de gerenciamento de banco de dados na prática aplicada ao armazenamento dos dados de empresas de pequeno, médio e grande porte. 19UNIDADE I Conceitos de Banco de Dados LEITURA COMPLEMENTAR TOP 10 principais SGBDs do mercado global! Mas afinal, o que é um SGBD? Os Sistemas de Gerenciamento de Banco de Dados, ou SGBDs, são conjuntos de softwares utilizados para o gerenciamento de uma base de dados, ou seja, são os programas utilizados para controlar, organizar, acessar e proteger as informações de uma empresa. Fonte: SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em: https:// becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020. 20UNIDADE I Conceitos de Banco de Dados MATERIAL COMPLEMENTAR LIVRO Título: Sistema de Gerenciamento de Banco de Dados Autor: Raghu Ramakrishnan e Johannes Gehrke. Editora: McGraw Hill. Sinopse: Este livro apresenta uma abordagem clara e atualizada dos fundamentos dos sistemas de banco de dados. Os professores podem optar por dar ênfase a aplicações de bancos de dados ou a sistemas. O livro traz muitos exemplos e aplicações, incluindo SQL e Oracle, e aplicações para a Internet. Além disso, são introduzidos padrões atuais, como JDBC e XML, e desenvolvimento de aplicações em três camadas. FILME/VÍDEO Título: O Quinto Poder Ano: 2014. Sinopse: Benedict Cumberbatch entrega uma performance brilhante como Julian Assange, o narcisista fundador do WikiLeaks, em O QUINTO PODER. Este drama baseado em fatos reais revelaa busca das importantes figuras da Internet para expor a trapaça e a corrupção do poder, transformando-os na organização mais ferozmente debatida do século 21. Depois que Assange e seu colega Daniel Domscheit-Berg (Daniel Brühl) se unem para jogar luz sobre as trevas de segredos governamentais e de crimes cor-porativos, eles se veem lutando entre si sobre o custo de expor a verdade para o público ser muito alto. Inteligente e instigante, O QUINTO PODER provoca a polêmica pergunta: “Herói ou traidor?” Link do vídeo: https:// www.youtube.com/watch?v=raCapBWlpaw 21UNIDADE I Conceitos de Banco de Dados WEB Banco de Dados Um banco de dados é uma coleção organizada de informações - ou dados - estruturadas, normalmente armazenadas eletronicamente em um sistema de computador. Um banco de dados é geralmente controlado por um sistema de gerenciamento de banco de dados (DBMS). Juntos, os dados e o DBMS com os aplicativos associados a eles, são chamados de sistema de banco de dados, geralmente abreviados para apenas banco de dados. Fonte: ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/what-is- database.html. Acesso em: 23 mar. 2020. https://www.oracle.com/br/database/what-is-database.html https://www.oracle.com/br/database/what-is-database.html 22 Plano de Estudo: ● Conceitos e Definições de Modelo Relacional; ● Introdução à Modelagem; ● Campos de estudo dos Atributos; ● Domínio e Chave Estrangeira. Objetivos da Aprendizagem: ● Conceituar e contextualizar o Modelo Relacional; ● Compreender os tipos de Atributos; ● Estabelecer a importância da Chave Estrangeira. UNIDADE II Modelo Relacional Professor Dr. Hudson Sérgio de Souza 23UNIDADE I Conceitos de Banco de Dados 23UNIDADE II Modelo Relacional INTRODUÇÃO Nesta Unidade II serão abordados os principais conceitos e definições de modelo relacional, uma introdução sobre a modelagem de banco de dados, sua forma abstrata de nomenclatura das entidades e atributos que se assemelham ao mundo real. A forma de armazenamento dos dados depende diretamente do tipo dos dados que se pretende armazenar, dessa forma existem tipos de atributos coerentes aos tipos de dados, também denominados de domínios. A base do relacionamentos do banco de dados relacional atua sobre chaves primárias e estrangeiras, para interligar diversas entidades e atributos, processando seus dados e os transformando em informações relevantes. 24UNIDADE I Conceitos de Banco de Dados 24UNIDADE II Modelo Relacional 1. CONCEITOS E DEFINIÇÕES DE MODELO RELACIONAL O pesquisador e matemático britânico Edgar Frank Codd no ano de 1970 trabalhava na IBM e descreveu os fundamentos da estrutura e funcionamento de um modelo de banco de dados relacional. O modelo relacional tem por característica a flexibilidade e adequação a diversos tipos de soluções para resolução de problemas a nível de criação e implantação de banco de dados relacional. A principal estrutura de um modelo relacional se baseia no relacionamento entre a Entidade (Tabela), a qual possui seus Atributos ou Campo (Colunas), os seus Registros ou Tuplas (Linhas) e os Dados, conforme Figura 1. FIGURA 01 - NOMENCLATURA DAS PARTES DE UMA ENTIDADE (TABELA) Fonte: O autor, 2020. 25UNIDADE I Conceitos de Banco de Dados 25UNIDADE II Modelo Relacional Segundo Korth (1995), o modelo de banco de dados relacional representa um conjunto de Entidades, cada uma com nome único, tendo cada Registro representado por uma linha da Entidade, composto por um conjunto de dados relacionados, classificados pelos atributos que definem os tipos de cada dado. O modelo relacional implementa uma estrutura de dados na forma de Entidades, as quais possuem restrições para resguardar os dados de particularidades não desejáveis, como: duplicação de informações (integridade referencial), impossibilidade de representar uma informação (chaves) e a perda da informação (integridade relacional). A arquitetura de um banco de dados relacional, conforme ANSI/SPARC, é composta por três componentes: ● Entidades: coleção de estrutura de dados, que compõe o nível conceitual; ● Linguagem SQL: os operadores, a álgebra e os cálculos relacionais; ● Integridade: coleção de restrições de integridade, que define a consistência do estado da base de dados e de suas alterações. Um modelo de banco de dados relacional pode representar os dados através de uma coleção de relações, as quais são representadas por meio de Entidades (Tabelas, onde cada Registro (Linha) se refere a uma coleção de dados relacionados entre si. Estas características contribuem no desenvolvimento de softwares que utilizam banco de dados relacional, facilitando o acesso e o processamento das consultas de dados e/ou informações processadas requisitadas pelos usuários, sendo amplamente aplicado a softwares comerciais atendendo a pequenas, médias e grandes empresas ou indústrias. Para garantir que cada Registro seja único dentro de uma Entidade, existe um Atributo denominado como Chave Primária, onde os valores desta Tupla não se repete dentro desta Entidade, normalmente trata-se de uma numeração sequencial, porém, pode ser utilizado um dado específico que não se repita dentro da Entidade, como o número do CPF, por exemplo. 26UNIDADE I Conceitos de Banco de Dados 26UNIDADE II Modelo Relacional 2. INTRODUÇÃO À MODELAGEM A modelagem de dados se aplica no desenvolvimento de estruturas de armazenamento que sejam eficientes e escaláveis, auxiliando a busca por dados ou informações processadas de forma fácil e amigável. Um dado pode ser compreendido com um valor em seu estado bruto que esteja armazenado dentro de uma estrutura de banco de dados. Por outro lado, a informação pode ser interpretada com um conjunto de dados interrelacionados, que foram tratados respeitando critérios preestabelecidos para que se tornem relevantes. O número 30 (trinta) basicamente é um dado bruto ao ser analisado isoladamente, porém, dentro de um contexto “A régua possui 30 centímetros”, este mesmo número se torna relevante para uma pessoa que busca por um instrumento de medição que possua 30 cm de comprimento. 2.1 Modelagem Conceitual O modelo conceitual trata da análise de fenômenos e elementos relevantes a uma realidade observada ou pensada, a qual será transformado em um modelo abstrato denominado Modelo de Entidade Relacionamento (MER), que pode ser descrito de forma visual através de um diagrama denominado Diagrama Entidade Relacionamento (DER). O Modelo Entidade Relacionamento (MER), comumente chamado de Modelo ER, trata-se de um modelo conceitual usado na Ciências da Computação para determinar as Entidades (objetos) que fazem parte do sistema, assim como seus atributos (características) e os relacionamentos envolvidos. 27UNIDADE I Conceitos de Banco de Dados 27UNIDADE II Modelo Relacional O MER representa o modelo abstrato da estrutura interna do banco de dados que será desenvolvida, contendo: as entidades, os atributos, entidades intermediárias, chaves primárias, chaves estrangeiras e relacionamentos usados em uma base de dados relacional. Devido a complexidade e tamanho do sistema a ser desenvolvido, atualmente a maioria dos sistemas são desenvolvidos em módulos menores, sendo que ao final todos os módulos se relacionam e se interligam, realizando trocas de informações entre si para que o sistema funcione como se fosse um único e grande módulo. Esta metodologia de dividir os problemas a serem solucionados em partes menores, garante uma melhor implementação, alternativas de soluções, rapidez na entrega do módulo pronto e a possibilidade de constantes atualizações. 2.2 Entidades As Entidades (tabelas) podem ser armazenadas em um meio físico ou lógico, conforme sua permanência no mundo real. Uma entidade física é tangível, podendo ser visualizada e tocada no mundo real, normalmente estão armazenadas dentro de servidores. Uma entidade lógica pode ser armazenada nasnuvens e sua existência se justifica pelas interações com outra entidade física, fornecendo subsídios ao domínio de negócios. A nomenclatura das entidades normalmente são baseados em substantivos abstratos ou concretos, expressando de forma clara e objetiva sua função em um determinado domínio do negócio, como por exemplo, a entidade: pessoa, produto, cliente, fornecedor, venda, itens_venda, curso, turma, disciplina, função, etc. As entidades podem ser classificadas de acordo com a forma de sua existência: ● Entidade Forte: sua existência não depende de outra entidade, essa entidade sozinha possui todos os atributos e dados para sua existência. Exemplo: um sistema de vendas, onde a entidade produto, não necessita de nenhuma outra entidade para existir; ● Entidade Fraca: sua existência depende diretamente de outra entidade para existir, sendo que isoladamente não há sentido a sua existência, por exemplo, a entidade venda depende da entidade produto para existir, não há sentido realizar uma vendo sem que haja um produto; ● Entidade Associativa: a existência desta entidade está ligada diretamente à necessidade de associar (interligar) duas outras entidades que venham a se relacionar. Uma vez que o Modelo Entidade Relacionamento (MER) não prevê em alguns casos um relacionamento direto entre entidades, foi criada uma nova entidade para justamente permitir este relacionamento. 28UNIDADE I Conceitos de Banco de Dados 28UNIDADE II Modelo Relacional 2.3 Relacionamento entre Entidades A partir da identificação das Entidades, o próximo passo é realizar o relacionamento com outras Entidades, a fim de realizar uma troca de dados dentro do sistema, os quais serão processados e se transformarão em informações úteis aos usuários. No Modelo Entidade Relacionamento há três tipos de relacionamentos disponíveis: ● Relacionamento Um-para-Um (1-1): O relacionamento ocorre entre duas Entidades, onde a referência obrigatória se dá entre dois atributos chaves. Exemplo: A entidade Pessoa possui um relacionamento (1-1) entre a Entidade Autenticação [Pessoa] 1----------1 [Autenticação], neste cenário pode-se dizer que uma Pessoa possui só e somente uma Autenticação e, que uma Autenticação está vinculado a só e somente uma Pessoa, conforme Figura 2;● Relacionamento Um-para-Muitos (1-n): O relacionamento ocorre entre duas Entidades. Porém, uma das Entidades pode se referenciar a várias unidades da outra Entidade. No entanto, as unidades da segunda Entidades só podem se relacionar com apenas uma unidade da primeira Entidade. Exemplo: A Entidade Professor possui um relacionamento 1-n (Um-para-Muitos) entre a Entidade Aluno [Professor] 1----------n [Aluno], sendo de um Professor leciona para muitos Alunos, porém cada um destes Alunos (unidades) só podem se relacionar exclusivamente com apenas um Professor, conforme Figura 3; ● Relacionamento Muitos-para-Muitos (n-n): este relacionamento pode ocorrer entre duas ou mais Entidades, sendo que cada Entidade de ambos os lados, pode conter múltiplas referências de unidades da outra Entidade. Exemplo: Um Autor pode escrever vários Livros, enquanto que um Livro também pode ser escrito por vários Autores. A entidade Autor pode ser relacionada com uma ou várias unidades da Entidade Livro, assim como a entidade Livro pode se relacionar com uma ou várias unidades da Entidade Autor, [Autor] 1,n-----------1,n [Livro]. Desta forma, um objeto do tipo Autor pode se relacionar com um ou muitos objetos do tipo Livro e vice-versa, conforme Figura 2. FIGURA 01 - TIPO DE RELACIONAMENTO MUITOS-PARA-MUITOS (*-*) EM BANCO DE DADOS FIGURA 02 – TIPO DE RELACIONAMENTO UM-PARA-UM (1-1) EM BANCO DE DADOS 29UNIDADE I Conceitos de Banco de Dados 29UNIDADE II Modelo Relacional FIGURA 3 – TIPO DE RELACIONAMENTO UM-PARA-MUITOS (1-*) EM BANCO DE DADOS Fonte: O autor, 2020. 30UNIDADE I Conceitos de Banco de Dados 30UNIDADE II Modelo Relacional 3. CAMPOS DE ESTUDO DO ATRIBUTOS 3.1 Atributos Os Atributos podem ser descritos como as características de um Entidade, que esteja inserida dentro de um Domínio. Durante o período de levantamento de dados na Análise de Requisitos, são identificados Entidades, Atributos e Relacionamentos que farão parte de um sistema, como por exemplo, em uma entidade Pessoa haverá os atributos característicos e que sejam relevantes ao sistema, como: nome, e-mail e celular. É importante ressaltar que cada tipo e aplicação de sistema possui suas características próprias a qual irão definir seus tipos de atributos que serão armazenados no banco de dados. Para um sistema comercial, os atributos mencionados anteriormente (nome, e-mail e celular), são fundamentais para um sistema aplicado a um comércio de varejo. Logo, características físicas do cliente, como: sexo, altura, peso, cor dos olhos e tipo sanguíneo, são aplicáveis a um sistema voltado a uma clínica médica. A classificação dos atributos por função, divide-se em três níveis: descritivo, nominativo e referencial. ● Descritivo: descreve características específicas de uma determinada entidade, como o nome ou etnia; ● Nominativo: além de absorver as características descritivas, possui o papel de identificar e delinear um objeto, como o código, nome, etnia, data de nascimento, endereço; ● Referencial: corresponde a ligação ocorrida entre as entidades em um relacionamento. Em uma entidade Venda o atributo “CPF”, está relacionado com o atributo “CPF” na entidade Pessoa. 31UNIDADE I Conceitos de Banco de Dados 31UNIDADE II Modelo Relacional Os atributos podem ser classificados pela sua estrutura, assim como: simples ou composto. ● Simples: com um único atributo, é possível descrever um características de uma entidade, como o nome e peso; ● Composto: para definir uma informação complexa de um entidade, são utilizados vários atributos, assim como um endereço residencial, que pode ser armazenado em atributos distintos, como a rua, o número, o bairro, o cep, a cidade, o estado e o país. Atributos específicos em uma entidade recebem a denominação de Chave Primária, que possuem o papel de representar um valor único ao identificar uma entidade dentro de um domínio, como por exemplo o atributo “cpf” de uma pessoa. Assim como um atributo referencial recebe a denominação de Chave Estrangeira, o qual normalmente está interligado a chave primária de uma outra entidade que esteja relacionada. 3.2 Tipos de Atributos Como em qualquer linguagem de programação, a linguagem de manipulação Structured Query Language/Linguagem de Consulta Estruturada (SQL) também tem seus tipos próprios de atributos (dados). O banco de dados MySQL possui capacidade de armazenamento de tipos distintos de atributos, que estão subdivididos em: numérico, data e carácter. O Quadro 1 descreve os principais tipos de atributos armazenados no banco de dados MySQL, assim como os campos, tamanhos de armazenamento e exemplo. QUADRO 01 - TIPOS DE DADOS ARMAZENADOS NO BANCO DE DADOS MYSQL TIPO CAMPO ARMAZENAMENTO EXEMPLO Numérico smallint 2 bytes 1 int 4 bytes 1 bigint 8 bytes 1 float 4 bytes 1.0 double 8 bytes 1.0 real 8 bytes 1.0 decimal(m,d) M+2 btes se D>0, M+1 byte se D=0 1.05 Data date 3 bytes 2018-07-16 datetime 8 bytes 2018-07-16 09:37:12 timestamp 4 bytes 2018-07-16 09:37:12 (utc) “fuso horário” Caractere char(n) n bytes ‘a’ varchar(n) n+1 bytes “Mauro Pedreira” Fonte: O autor, 2020. 32UNIDADE I Conceitos de Banco de Dados 32UNIDADE II Modelo Relacional Os operadores dos tipos aritméticos, relacional e lógico, são utilizados na linguagem SQL para realização de tarefas, como: somar ou substituir valores (aritméticos), realizar a comparação entre valores fixos ou variáveis (relacional) e a tomada de decisão (lógico). Estes diferentes tipos de operadores garantem uma filtragem na busca (query) dos dados armazenados no banco de dados MySQL, podendo transformar estes dados brutos em informações relevantes, conforme o Quadro 2. QUADRO 2: OPERADORESUTILIZADOS PELO BANCO DE DADOS MYSQL. OPERADOR TIPO + soma Aritmético- subtração * produto / divisão = igual Relacional > maior < menor >= maior igual <= menor igual <> diferente AND e LógicoOR ou NOT não Fonte: O autor, 2020. 33UNIDADE I Conceitos de Banco de Dados 33UNIDADE II Modelo Relacional 4. DOMÍNIO E CHAVE ESTRANGEIRA 4.1 Domínio O Domínio em um banco de dados refere-se ao conjunto de possíveis valores que podem ser armazenados a um atributo, obedecendo os critérios do tipo desse atributo. Os tipos de atributos mais comuns para a atribuição e armazenamento de domínios (valores), conforme Figura 3, são: ● Integer ou int: números inteiros – exemplo: 15; ● Decimal: números com casas decimais – exemplo: 1564.35; ● Varchar: alfanuméricos letras, número e caracteres especiais – exemplo: az- -AZ-09-”!@#$%*()_+. É importante ressaltar que existem alguns critérios que devem ser aplicados aos tipos de atributos: ● Atributo Atômico: são formados por campo únicos e não divisíveis – exemplo: altura, peso, quantidade; ● Atributo Composto: possibilita a decomposição de um atributo em vários – exemplo: nome, nome_meio, sobrenome; ● Atributo Identificador: possui um valor único e possibilita a identificação de um registro dentro de uma entidade – exemplo: id_pessoa; 34UNIDADE I Conceitos de Banco de Dados 34UNIDADE II Modelo Relacional ● Atributo candidato: em uma chave composta por três atributos, um deles será a chave primária e os demais recebem a nomenclatura de chave candidata – exemplo: cpf(PK), nome, email; ● Atributo de Chave Estrangeira: faz referência e recebe o mesmo valor que o atributo de chave primária em outra entidade – exemplo: Pessoa.id_pessoa=123456 (PK) 1-------n Livro.id_pessoa=123456 (FK). FIGURA 03 - POSSÍVEIS VALORES QUE FORAM O DOMÍNIO EM UM BANCO DE DADOS Fonte: O autor, 2020. 4.2 Chave Estrangeira (Foreign Key) O conceito de chave estrangeira se refere a um conjunto de atributos que compõem um relacionamento entre as Entidades. Sendo que o mesmo domínio (conteúdo do atributo/ dado) do atributo identificado na relação como chave primária na primeira Entidade, será obrigatoriamente atribuído e armazenado na segunda Entidade em um atributo denominado como chave estrangeira. A checagem das referências entre a chave primária da primeira Entidade com a chave estrangeira da segunda Entidade se dá através da comparação entre ambos os domínios/dados, conforme Figura 4. 35UNIDADE I Conceitos de Banco de Dados 35UNIDADE II Modelo Relacional FIGURA 04 - DIAGRAMA DE CLASSE ESTADO-CIDADE DEMONSTRANDO O RELACIONAMENTO COM CHAVE ESTRANGEIRA (FK) Fonte: O autor, 2020. A Figura 4, ilustra o diagrama de classe entre as entidades Estado e Cidade, onde a cardinalidade indica um relacionamento Um-para-Muitos (1-*), sendo que “um Estado possui muitas Cidades”. No Quadro 3, houve o preenchimento dos domínios (dados) das entidades Estado e Cidade para melhor descrever quais os atributos em ambas as Entidades são responsáveis pelo relacionamento e a comparação dos domínios/dados. A entidade Estado possui o atributo “id_estado” a qual é a Chave Primária (PK). Na entidade Cidade o atributo “id_ci-dade” representa a Chave Primária (PK) e o atributo “cid_id_estado” representa a Chave Secundária (FK) da relação Um-para-Muitos (1-*). QUADRO 3: PREENCHIMENTO DA ENTIDADES ESTADO-CIDADE COM SEUS RESPECTIVOS DOMNIOS(DADOS) Fonte: O autor, 2020. 36UNIDADE I Conceitos de Banco de Dados 36UNIDADE II Modelo Relacional SAIBA MAIS Quais são os principais bancos de dados e suas diferenças? Antes de explicar os tipos de bancos de dados disponíveis, é necessário definir suas duas categorias: banco de dados relacionais e não relacionais. Bancos de dados relacionais são fundamentados no paradigma da orientação a conjuntos. Seus dados são armazenados em estruturas denominadas tabelas. Cada tabela é composta por colunas (atributos e linhas), tuplas ou registros. Fonte: OPSERVICES. Gerenciamento de TI e Dashboards em tempo real. Disponível em: https://www. opservices.com.br/banco-de-dados/. Acesso em: 16 abr. 2020. ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/what-is-database. htm. Acesso em: 23 Mar. 2020. REFLITA “O que a nova tecnologia faz é criar novas oportunidades para fazer um trabalho que os clientes querem feito.” Tim O’Reilly. Fonte: EUNERD. 15 frases para o dia do profissional de TI. Disponível em: https://encontreumnerd.com. br/blog/dia-do-profissional-ti. Acesso em: 16 abr. 2020. KORTH, Henry F. Sistema de banco de dados. São Paulo: Markon, 1995. 37UNIDADE I Conceitos de Banco de Dados 37UNIDADE II Modelo Relacional CONSIDERAÇÕES FINAIS Os estudos abordados nesta Unidade II descreveram os principais conceitos sobre o modelo de banco de dados relacional, assim como uma visão abstrata do levantamento de requisitos, aos quais são utilizados para a construção da estrutura interna do banco de dados, com nomenclaturas semelhantes aos requisitos levantados, dando nomes às entidades e atributos. Da mesma forma como existem diversos tipos de dados diferentes, também existem tipos de dados específicos para armazenar estes dados. Para que seja possível transformar dados brutos em informações relevantes, é necessário que haja um relacionamento entre as entidades e atributos, através das chaves primárias e estrangeiras. 38UNIDADE I Conceitos de Banco de Dados 38UNIDADE II Modelo Relacional LEITURA COMPLEMENTAR A Tecnologia de Mineração de Textos Christian Aranha, Emmanuel Passos Resumo Mineração de textos, também conhecido como mineração de dados textuais ou descoberta de conhecimento de bases de dados textuais, em geral, se refere ao processo de extração de informações de interesse e padrões não triviais ou descoberta de conhecimento em documentos de texto não estruturados. Pode ser visto como uma extensão da mineração de dados ou da descoberta de conhecimento em bases de dados estruturadas. Como muitas informações (mais de 80%) estão armazenadas em formato texto, acredita-se que as técnicas de mineração de textos possuam um grande valor comercial. O objetivo deste tutorial é apresentar algumas técnicas de mineração de textos, bem como casos de uso e resultados obtidos Palavras-chave: Mineração de textos; Sistemas de Informação Inteligentes; Mine- ração de dados. Fonte: ARANHA, Christian; PASSOS, Emmanuel. A tecnologia de mineração de textos. Revista Eletrnica de Sistemas de Informação. ISSN: 1677-3071. v.5, n.2, 2006. Disponível em: http://periodicosi- bepes.org.br/index.php/reinfo/article/view/171. Acesso em: 15 abr. 2021. 39UNIDADE I Conceitos de Banco de Dados 39UNIDADE II Modelo Relacional MATERIAL COMPLEMENTAR LIVRO Título: Acessando Banco de dados com APP Inventor Autor: Vitor Amadeu Souza. Editora. Cerne. Sinopse: O intuito desta obra é apresentar como acessar um banco de dados interno (no aparelho) e externo (na internet) programando o smartphone/tablet Android usando o MIT App Inventor. Desta forma, será desenvolvido um aplicativo que permitirá salvar e resgatar informações nestas duas modalidades de banco de dados (BD). FILME/VDEO Título: Invasores: Nenhum Sistema Está a Salvo Ano: 2015. Sinopse: Benjamin (Tom Schilling), o gênio da informática, é uma pessoa solitária. Sua vida se resume ao mundo virtual, onde pode ser quem desejar. Logo, ele se junta a um grupo de hackers em Berlim que provocam atividades divertidas em busca de fama e reconhecimento de outros hackers. Mas o que começa como um jogo, acaba se intensificando a algo perigoso entre o amor e a morte. Link: https://www.youtube.com/watch?v=k97MWnFD-7g 40 Plano de Estudo: ● Conceitos e Definições de SQL; ● Linguagens DDL e DCL; ● Restrições SQL; ● Chave Estrangeira e Check. Objetivos da Aprendizagem: ● Conceituar e contextualizar o SQL; ● Compreender os tipos de restrições; ● Estabelecer a importância dos comandos básicosSQL. UNIDADE III SQL Básico Professor Dr. Hudson Sérgio de Souza 41UNIDADE III SQL Básico INTRODUÇÃO Na Unidade III vamos abordar tanto os conceitos, quanto as práticas dos comandos MySQL utilizados nos conceitos e definições do SQL, nas restrições implementadas sobre o SQL, na realização de consultas básicas junto do banco de dados MySQL, assim como os principais comandos para realização do CRUD (Create, Read, Update e Delete), os quais são utilizados para inserir dados ao banco de dados MySQL, realizar consultas, alterar os conteúdos do dados armazenados e apagar registros inteiros armazenados na Entidade do banco de dados MySQL. 42UNIDADE III SQL Básico 1. CONCEITOS E DEFINIÇÕES DE SQL 1.1 Linguagem SQL A Structured Query Languege/Linguagem de Consulta Estrutura (SQL) é a linguagem de acesso e manipulação do SGBD mais utilizada para realizar a gestão dos dados armazenados em sua base de dados. Esta linguagem possui características padrão de consulta do banco de dados, de criação da estrutura dos dados e para modificar os dados armazenados no banco de dados. A linguagem possui comandos específicos para gerenciar a segurança de acesso aos dados e dos privilégios (permissões) de acesso por parte dos usuários. Através da linguagem SQL é possível: ● Criar, alterar e remover esquemas lógicos; ● Realizar a manipulação dos dados armazenados no banco de dados; ● Possibilita a inserção de novos dados, a alteração ou remoção de dados antigos no banco de dados; ● Definir os privilégios (permissões) de acesso e transação dos usuários aos dados contidos no banco de dados. É importante salientar que a linguagem SQL é semelhante a uma linguagem de programação tradicional, como Java, PHP, Python, C++, porém, foi projetada especificamente para realizar a manipulação do banco de dados, conforme Figura 1. 43UNIDADE III SQL Básico FIGURA 01 - LINGUAGEM DE MANIPULAÇÃO SQL Fonte: O autor, 2020. A linguagem SQL possui alguns subconjuntos da linguagem, dentre as principais estão: ● A DML que manipula os registros, exemplo select; ● A DDL que manipula os objetos, exemplo create table; ● A DCL que manipula os utilizadores, exemplo revoke. 1.2 Linguagem DML A Data Manipulation Language/Linguagem de Manipulação de Dados (DML) trata-se de um subconjunto da Linguagem SQL, que realiza as funções de inserir, atualizar, consultar e deletar os dados contidos no banco de dados. Caso a linguagem DML seja utilizada de forma independente, ela passará a se chamar de Query Language/Linguagem Consulta junto com a Linguagem SQL. Os principais comandos da Linguagem DML são: ● SELECT: realiza uma consulta “query” ao banco de dados, possibilitando passar a descrição do resultado esperado; ● UPDATE: altera o valor do conteúdo de um ou mais Registros de uma Entidade; ● DELETE: remove um ou mais Registros de uma Entidade existente; ● TRUNCATE: remove todos os Registros de uma Entidade, esvaziando-a; ● COMMIT: efetiva uma transação executada no banco de dados; ● ROLLBACK: desfaz a transação corrente, fazendo com que as modificações sejam desfeitas. 44UNIDADE III SQL Básico 2. LINGUAGENS DDL E DCL 2.1 Linguagem DDL A Data Definition Language/Linguagem de Definição de Dados (DDL) é aplicada na definição da estrutura do banco de dados pelos projetistas e analistas de banco de dados. O Sistema Gerenciador de Banco de Dados (SGBD) possui um interpretador próprio para a Linguagem DDL, que se responsabiliza pela execução dos comandos, pelo processamento da DDL e por guardar o esquema determinado na estrutura interna do banco de dados. Estando os dados devidamente armazenados no banco de dados, eles ficam disponíveis para serem manipulados através de uma série de operações de acesso. A linguagem DDL dispõe de comandos para realizar a alteração das tabelas, as visões e os índices das tabelas. Os principais comandos da linguagem DDL são: ● CREATE: cria uma Entidade (objeto) dentro de um banco de dados; ● ALTER: permite alterar a estrutura de uma Entidade (objeto); ● DROP: apaga uma Entidade (objeto) de dentro de um banco de dados existente. 45UNIDADE III SQL Básico 2.2 Linguagem DCL A Data Control Language/Linguagem de Controle de Dados (DCL) realiza o controle do acesso e das transações dos dados que se encontram armazenados no banco de dados. Gerencia os diferentes níveis de acesso, através das restrições de acesso aos usuários. Os principais comandos da linguagem DCL são: ● GRANT: realiza a gestão de privilégios a um usuário para acessar ou realizar operações em um determinado Banco, Entidade ou Atributo; ● REVOKE: remove os privilégios de um usuário de executar operações; ● SET: parâmetros definidos em tempo de execução, para execução de uma tarefa; ● LOCK: bloqueia explicitamente o acesso a uma determinada Entidade, através de controle de acesso concorrente. 46UNIDADE III SQL Básico 3. RESTRIÇÕES SQL Neste módulo será abordado a forma de manipulação das restrições às Entidades através dos comandos SQL, onde as principais restrições são: ● Chave primária; ● Unique; ● Chave estrangeira; ● Check; ● Not null. A aplicação das restrições pode ser recomendado para manter a integridade referencial das Entidades dentro de um Banco de Dados. As restrições podem ser aplicadas diretamente sobre as Entidades e Tuplas através da linguagem SQL, permitindo um maior controle sobre os dados armazenados. A limitação dos dados brutos armazenados por tipos de dados, por si só já são um tipo de restrição, embora não possuam um refinamento adequado para atender as necessidades de softwares mais aprimorados. Por exemplo, o valor de um produto deve ser armazenado com as casas decimais do valor, o tipo de dado Decimal “vlr_produto decimal(15,2);” é apropriado para isso, no entanto não consegue restringir que todos dados armazenados sejam positivos. 47UNIDADE III SQL Básico Para estes casos de ajustes específicos, a linguagem SQL possibilita delimitar restrições na Tuplas (coluna) afetando somente o dados a serem armazenados, caso o usuário insira um valor não apropriado a uma Tupla violando a regra de uma restrição específica, imediatamente será gerado um erro e o dado não será armazenado. É importante conhecer as regras de restrição, devido a elas se aplicam até mesmo a valores padrão dos Atributos. 3.1 Chave Primária A chave primária é empregada para identificar de maneira única cada Registro de uma Entidade, normalmente fazendo parte do Registro atual ou um atributo artificial que não esteja no mesmo registro. A chave primária deve conter valor único, não pode haver valores nulos. Esta chave pode ser composta por um ou mais Atributos da Entidade. Chave Composta é a denominação dada ao se utilizar vários Atributos como chave primária. A definição da chave primária pode ser feita no momento de criação da Entidade, com a utilização do comando CREATE TABLE, ou após criada a Entidade, alterando a Entidade através do comando ALTER TABLE. Exemplo de atribuição da chave primária durante a criação da Entidade: Exemplo de atribuição da chave primária após a criação da Entidade, por meio de alteração da entidade: ALTER TABLE pessoa ADD PRIMARY KEY (id_pessoa); A descrição da tabela “pessoa” pode ser visualizada através do comando: 48UNIDADE III SQL Básico 3.2 Unique A restrição do tipo UNIQUE assegura que todos os dados contidos em um Atributo sejam diferentes uns dos outros. Na entidade “Carro”, o atributo “id_carro” possui um restrição que não permite incluir dados duplicados, ou seja, com o mesmo valor. Desta forma, ao forçar a inserção de um dado repetido neste atributo, irá gerar um ERRO, uma vez que já existe o mesmo valor do dados no atributo “id_carro”. Criando a Entidade “Carro”. A primeira vez que o dado for inserido, será armazenado com sucesso. Listando os dados armazenados. 49UNIDADE III SQL Básico Já na segunda, ao tentar inserir o mesmo valor do dado, irá gerar um erroe o dados não serão armazenados. Mensagem de ERRO ao tentar inserir um número já existente no Atributo “id_carro”: 50UNIDADE III SQL Básico 4. CHAVE ESTRANGEIRA E CHECK 4.1 Chave Estrangeira A função de uma Foreign Key/Chave Estrangeira entre o relacionamento de duas ou mais Entidades é de apontar o mesmo conteúdo de um Atributo de uma Chave Primária de uma Entidade “A” em um Atributo de mesma tipagem em uma Entidade “B”. Para melhor compreensão, suponha duas Entidade denominadas “Estado” e “Município”, simultaneamente, em um relacionamento com cardinalidades de Um para Muitos (1-*), onde: Um Estado possui Muitos Municípios. 51UNIDADE III SQL Básico 4.2 Check Uma restrição do tipo CHECK possibilita a realização de uma condição prévia a ser validada em operações dos tipos INSERT e UPDATE. Uma vez que o resultado da transação for validado como TRUE (verdadeiro), a operação será concluída com sucesso. Caso o resultado da transação seja validado como FALSE (falso), a operação não será concluída, retornando uma mensagem de erro. Para exemplificar será utilizado um semáforo onde serão validados três cores: vermelho, amarelo e verde. Caso sua inserção não seja exatamente uma destas três cores, a transação de inserção falhará. Criação da Entidade: Observe que não há nenhuma descrição da CONSTRAINT na descrição da Entidade. Inserindo os valores dos dados corretos na Entidade. 52UNIDADE III SQL Básico Ao inserir um dado incorreto na Entidade com a cor "azul", irá retornar uma mensagem de erro. Para confirmar que a transação que obteve falha na CONSTRAINT não inseriu nenhum dado na Entidade, será dado o comando de Select (consulta) para demonstrar qual registro encontra-se inserido. 4.3 Not Null A restrição do tipo NOT NULL aplicada a um Atributo (coluna) de uma Entidade, assegura que não aceitará a inserção (INSERT) ou alteração (UPDATE) de um dado com valor nulo (NULL). Descrição da Entidade ‘tb_profissao’. Inserindo dados corretos, observe que o segundo registro será inserido e aceito o campo vazio. 53UNIDADE III SQL Básico Tentativa de inserção de dados com o Atributo "nome" nulo, seguido da mensagem de erro de que o campo “nome” não pode ser nulo. Listando o conteúdo da Entidade. Com isso, é possível afirmar que o comando NOT NULL atribuído a um Atributo durante a criação de uma Entidade, permite que o Registro seja inserido com sucesso, uma vez que haja conteúdo no Campo identificado como NOT NULL ou que este campo esteja vazio. Porém não sendo possível a inserção de um Registro que possui um campo NULL (nulo) desde que o Atributo tenha sido atribuído NOT NULL. 54UNIDADE III SQL Básico SAIBA MAIS Diferentes tipos: Categorias de instruções (Transact-SQL) Data Manipulation Language (DML) Data Definition Language (DDL) Data Control Language (DCL) Transactional Control Language (TCL) Fonte: ROSSITO, Thomaz. Comandos: DML, DDL, DCL, TCL – SQL Server. Set. 2017. Disponível em: http://www.thomazrossito.com.br/comandos-dml-ddl-dcl-tcl-sql-server/. Acesso em: 18 set. 2020. REFLITA “Quando uma nova tecnologia passa por você, se você não faz parte dela, fará parte do caminho.” Stewart Brand. Fonte: TUTIDA, Daniel. 15 frases para o dia do profissional de TI. Disponível em: https://encontreumnerd. com.br/blog/dia-do-profissional-ti. Acesso em: 18 set. 2020. 55UNIDADE III SQL Básico CONSIDERAÇÕES FINAIS Ao final deste módulo foi possível evidenciar os principais conceitos e definições em torno do SQL, assim como as restrições que envolvem as chaves primárias e estrangeiras das Entidades e suas prerrogativas de definição automáticas de valor de chaves, o que garante a exclusividade de uma única chave que não se repete dentro da mesmo entidade. Para isso, foram apresentados os principais conceitos da chave primária, unique, chave secundária, check e not null. Uma das principais funções do banco de dados é proporcionar ações de manipulação aos elementos armazenados ao banco de dados MySQL, assim como o CRUD (Create, Read, Update e Delete), utilizado para inserir dados ao banco, realizar consultas, alterar os conteúdos dos dados armazenados e deletar registros da Entidade que encontra-se armazenada no banco de dados MySQL. 56UNIDADE III SQL Básico LEITURA COMPLEMENTAR Neste Guia Completo de SQL você encontrará todo o conteúdo que precisa para aprender sobre a SQL, linguagem de consulta estruturada utilizada por programadores e DBAs para a execução de consultas e comandos nos principais SGBDs do mercado. Fonte: DEVMedia. Guia Completo de SQL. Disponível em: https://www.devmedia. com.br/guia/guia-completo-de-sql/38314. Acesso em: 18 set. 2020. 57UNIDADE III SQL Básico MATERIAL COMPLEMENTAR LIVRO Título: Aprendendo SQL: Dominando os Fundamentos de SQL Autor: Alan Beaulieu. Editora: Novatec. Sinopse: Atualizado para os mais recentes sistemas de gerenciamento de banco de dados – incluindo MySQL 5.1, Oracle 11g e Microsoft SQL Server 2008 – este guia introdutório irá habilitar você a trabalhar com SQL rapidamente. Independentemente de precisar escrever aplicações de banco de dados, realizar tarefas administrativas ou gerar relatórios, Aprendendo SQL auxiliará você a dominar todos os fundamentos de SQL. FILME/VÍDEO Título: A Rede Social Ano: 2010. Sinopse: O filme retrata a “pré-história” da maior e mais poderosa rede social do mundo: o Facebook. Tudo começa quando o jovem Mark Zuckerberg cria um site para facilitar a comunicação entre os estudantes de Harvard. Por que assistir? Criado em 2003, o Facebook mudou para sempre a internet. De acordo com Velasco, o filme tem o mérito de mostrar ao estudante de tecnologia que, quando se pretende empreender na área, a capacidade de transformação e reinvenção faz toda a diferença. “The social network”. Link: https://www.youtube.com/watch?v=YNrbyRA5d14 58UNIDADE III SQL Básico WEB O Que É MySQL? Guia Para Iniciantes. Fonte: HOSTINGER Tutoriais. O Que É MySQL? Guia Para Iniciantes. 21 jan. 2019. Disponível em: https://www.hostinger.com.br/tutoriais/o-que-e-mysql/. Acesso em: 05 out. 2020. 59 Plano de Estudo: ● Criação do Banco de Dados e Usuários; ● Acesso ao Banco e Criação de Entidades; ● CRUD - Manipulação dos Registros; ● Gerar Consulta de Informações Relevantes. Objetivos da Aprendizagem: ● Criar de banco e usuários; ● Analisar e criar Entidades com seus respectivos registros; ● Conceituar e contextualizar os tipos de consultas. UNIDADE IV Mais SQL Professor Dr. Hudson Sérgio de Souza 60UNIDADE IV Mais SQL INTRODUÇÃO Nesta última Unidade de número IV, vamos discutir mais questões sobre os padrões SQL, com manipulações mais profundas no Banco de Dados MySQL. Serão contextualizados os passos cronológicos desde a criação do banco de dados, a criação do usuário e a sua atribuição ao banco. Além da análise e desenvolvimento das Entidades e inserção dos respectivos Registros. Realizar consulta sobre o registro de forma simples e complexa. Consultas no banco de dados MyQL com diferentes formas de ordenação. Assim como a montagem do script SQL utilizando JOINS. A realização de transações no banco de dados. Por fim, serão abordados os conceitos sobre a segurança que envolve o banco de dados. 61UNIDADE IV Mais SQL 1. CRIAÇÃO DO BANCO DE DADOS E USUÁRIOS 1.1 Acesso ao banco de dados O acesso ao banco de dados para criação de um novo banco, a criação de um usuário e a sua atribuição banco, deve ser realizado por recomendação com usuário que possui papel de Administrador do Banco (DBA), ou até mesmo como ROOT. Utilizando o Banco de Dados MySQL, o acesso ao banco pode ser realizado através da ferramenta gráfica PHPMyAdmin, acessando a URL local [http://localhost/phpmyadmin] ou remota, como por exemplo [http://srv018sifatecie.ddns.net/phpmyadmin], conforme Figura 1. FIGURA 01 - TELA DE LOGIN DA FERRAMENTA WEB PHPMYADMIN Fonte: O autor, 2020. 62UNIDADE IV Mais SQL Tendo acesso atodos os banco de dados já criados e as configurações, conforme Figura 2. FIGURA 02 - ACESSO AO BANCO DE DADOS MYSQL POR USUÁRIO COM PAPEL DE ADMINISTRADOR (ROOT) Fonte: O autor, 2020. O acesso ao banco de dados também pode ser realizado por linha de comando, utilizando o Prompt [Windows] ou o Bash [Linux]. Todavia, por políticas de segurança, o acesso como Administrador (root) por padrão vem desabilitado, só permitindo acesso localmente (localhost), conforme a Figura 3. FIGURA 03 - TABELA DE PRIVILÉGIOS DOS USUÁRIOS PARA ACESSO AO BANCO DE DADOS MYSQL, ATRAVÉS DO ACESSO REMOTO Fonte: O autor, 2020. 63UNIDADE IV Mais SQL Caso ocorra uma tentativa de acesso remoto com usuário Administrador (root), o Sistema Gerenciador de Banco de Dados (SGBD) irá recusar a conexão, permitindo somente a conexão de usuários comuns devidamente cadastrados e com suas políticas de privilégios estabelecidas previamente, conforme Figura 4. FIGURA 04 - SCRIPT PARA ACESSO REMOTO VIA BASH COM USUÁRIO ADMINISTRATIVO (ROOT) E USUÁRIO COMUM (PROF-HUDSON) Fonte: O autor, 2020. Para o Script utilizado para criação do banco de dados denominado “db_prof_hudson”, merece destaque para a configuração do tipo de caractere a ser utilizado como UTF-8, usado na Língua Portuguesa (pt-BR) contemplando acentuação e caracteres especiais. CREATE DATABASE db_prof_hudson DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Na criação de um novo usuário comum no Banco de Dados MySQL 8, o Script utilizado destaca a necessidade da identificação do tipo de senha a ser utilizada, para que este usuário possa ter acesso remoto a partir da ferramenta PHPMyAdmin, sendo necessário descrever “WITH mysql_native_password”. CREATE USER ‘prof-hudson’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123mudar’; 64UNIDADE IV Mais SQL Por fim, será passado a lista de privilégios, neste caso todos (ALL), atribuindo o usuário ao banco de dados e identificando o tipo de acesso permitido, neste caso está sendo permitido o acesso remoto (%). GRANT ALL PRIVILEGES ON db_prof_hudson.* TO ‘prof-hudson’@’%’; A partir deste momento, já pode realizar o logout do usuário Administrador (root) e realizar o login com o novo usuário comum “prof-hudson” devidamente atribuído ao banco de dados “db_prof_hudson”, conforme acesso realizado com sucesso ilustrado na Figura 4, com o Script. 65UNIDADE IV Mais SQL 2. ACESSO AO BANCO E CRIAÇÃO DE ENTIDADES 2.1 Acesso a base de dados local ou remota Para acesso a sua máquina local, será utilizado o comando: mysql -h localhost -u prof-hudson -p Enter password: 123mudar Para acesso a uma máquina remota que esteja conectada à internet, poderá ser utilizado a URL de acesso [srv018sifatecie.ddns.net] a esta máquina ou o seu endereço de IP [187.33.205.210]. mysql -h srv018sifatecie.ddns.net -u prof-hudson -p Enter password: 123mudar ou mysql -h 187.33.205.210 -u prof-hudson -p Enter password: 123mudar 66UNIDADE IV Mais SQL O comando utilizado para listar todos os banco de dados que foram atribuídos ao usuário “prof-hudson”, retorna as seguintes informações. É necessário identificar qual banco de dados será utilizado, através do comando. mysql> use db_prof_hudson; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Uma vez selecionado o banco de dados, será possível listar todas as Entidades que contenha este banco, através do comando. Na sequência será realizado uma análise de requisito e o desenvolvimento de uma Unified Modeling Language/Linguagem de Modelagem Unificada (UML identificando através do Diagrama de Entidade-Relacionamento (DER), identificando de forma gráfica as Entidades, elementos e relacionamentos que existiram dentro do banco de dados, conforme Figura 5. 67UNIDADE IV Mais SQL FIGURA 05 - DER ENTRE AS ENTIDADES “TB_FUNCIONARIO” E A “TB_DEPARTAMENTO”, COM RELACIONAMENTO 1:N. Fonte: O autor, 2020. No DER se destaca a o relacionamento 1:N entre as Entidade “tb_funcionario” com a Entidade “tb_departamento”, tendo como Chave Estrangeira (PK) o Atributo “fun_id_departamento” incorporado à Entidade “tb_funcionario”. 2.2 Criação de Entidades Seguindo as definições do Diagrama de Entidade-Relacionamento (DER) serão criadas as entidades Departamento “tb_departamento” e a Funcionário “tb_funcionario”, enfatizando o relacionamento de Um-para-Muito (1:N) existente entre as entidades. Criação da Entidade Departamento: 68UNIDADE IV Mais SQL Criação da Entidade Funcionário: Após a execução bem sucedida do Script para criação das entidades Departamento e Funcionário, é possível utilizar o comando show tables para listas se a Entidade foi realmente criada. O comando describe tb_departamento retorna a descrição da estrutura da entidade criada. Para verificar se há ou não algum registro armazenado dentro da entidade, se utiliza o comando genérico que lista todos os Atributos e todos os Registros da entidade Departamento. 69UNIDADE IV Mais SQL mysql> SELECT * FROM tb_departamento; Empty set (0.00 sec) Neste caso não será retornado nada como resposta sendo a Entidade foi recém criada e encontra-se vazia, sem nenhum Registro. Na sequência, será verificado novamente com os mesmos comandos a Entidade Funcionário. 2.3 Listar Entidades Verificar a estrutura da Entidade Funcionário. Verificar se há Registros dentro da entidade Funcionário. mysql> SELECT * FROM tb_funcionario; Empty set (0.00 sec) 70UNIDADE IV Mais SQL 3. CRUD – MANIPULAÇÃO DOS REGISTROS A manipulação dos Registros dentro de uma Entidade se dão através do famoso CRUD MySQL, onde as siglas significam respectivamente Create (inserir), Read (listar), Update (alterar) e Delete (apagar) 3.1 CREATE (Inserir) Inserir Registros na entidade Departamento. 71UNIDADE IV Mais SQL Inserir Registros na entidade Funcionário. 3.2 READ (Listar) Listar os Registros na entidade Departamento. Listar os Registros na entidade Funcionário. 3.3 UPDATE (Alterar) Alteração dos dados do Registros que estejam armazenados no Banco de Dados MySQL. Para exemplificar, serão alterados os dados do nome da cidade, do estado e o valor do salário, do Registro que possui a chave primária número 1. 72UNIDADE IV Mais SQL UPDATE tb_funcionario SET cidade=’Londrina’, estado=’PR’, salario=’4300.00’ WHERE id_funcionario=’1’; Para comprovar a alteração do Registro, será realizada a consulta com todos dos dados da Entidade ‘tb_funcionario’. SELECT * FROM tb_funcionario; FIGURA 06 - CONSULTA DE ALTERAÇÃO DO REGISTRO DO FUNCIONÁRIO Fonte: O autor, 2020. A Figura 6 demonstra uma consulta genérica trazendo todos os Atributos e todos os Registros que se encontram armazenados no Banco de Dados MySQL. Porém, é possível implementar uma consulta implementando “filtros”, que retornará um conjunto de dados passível de ser analisado e compreendido, gerando uma informação pertinente ao usuário. A Figura 7 demonstra uma consulta com filtro que retorna alguns Atributos específicos, onde o funcionário tenha uma salário acima de R$ 1.500,00 inclusive, ordenado por Estado na forma ascendente e por salário na forma descendente. 73UNIDADE IV Mais SQL FIGURA 07 - CONSULTA ELABORADA PARA RETORNO DE INFORMAÇÕES PERTINENTES Fonte: O autor, 2020. 3.4 DELETE (Apagar) A exclusão de um Registro que esteja armazenado no Banco de Dados MySQL pode ser excluído utilizando o comando DELETE e, preferencialmente, utilizando o Atributo ‘id_funcionario’ por ser um dado não nulo, numérico e numerado automaticamente. DELETE FROM tb_funcionario WHERE id_funcionario=’7’; Através da consulta, é possível evidenciar se o Atributo “id_funcionario=7” realmente foi Deletado ou não, conforme Figura 8. 74UNIDADE IV Mais SQL FIGURA 08 - CONSULTA MYSQL QUE RETORNA DADOS ESPECÍFICOS PARA CONFERÊNCIA SE A QUERY FOI EXECUTADA DE MANEIRACORRETA. Fonte: O autor, 2020 75UNIDADE IV Mais SQL 4. GERAR CONSULTA DE INFORMAÇÕES RELEVANTES As consultas ao banco de dados podem ser simples ou complexas, dependendo da necessidade do usuário. Neste exemplo, será listado todos os Atributos que possui a chave estrangeira número 2, conforme Figura 9. FIGURA 09 - CONSULTA SIMPLES NO BANCO DE DADOS MYSQL Fonte: O autor, 2020. Retornar todos os Atributos da Entidade muitas vezes não é interessante ao usuário final porque o excesso de dados pode confundir. Aplicando um filtro na consulta anterior, será retornado apenas as informações pertinentes, conforme Figura 10. 76UNIDADE IV Mais SQL FIGURA 10 - CONSULTA AO BANCO DE DADOS MYSQL APLICANDO FILTROS PARA RETORNAR SOMENTE AS INFORMAÇÕES PERTINENTES AO USUÁRIO Fonte: O autor, 2020. Outro exemplo de filtro aplicado à consulta ao Banco de Dados MySQL. SELECT nome, cidade, estado FROM tb_funcionario WHERE estado=’pr’ ORDER BY nome; 77UNIDADE IV Mais SQL Conforme os filtros aplicados à consulta forem implementados aumentando os critérios, é possível formatar a consulta de forma mais legível e organizada. Podem ser utilizados mais de um parâmetro empregado à consulta, como se observa nas cláusulas WHERE e ORDER BY, conforme Figura 11. FIGURA 11 - CONSULTA MYSQL COM NÚMERO MAIOR DE PARÂMETROS, DEFININDO UM FILTRO COM RETORNO MAIS ESPECÍFICO Fonte: O autor, 2020 A consulta ao Banco de Dados MySQL dependendo de como esteja montado a estrutura das Entidades e de seus Relacionamentos, conforme Figura 12, possibilita filtrar os dados de mais de uma Entidade e retornar informações mais pertinentes ao usuário. Para isso, é necessário estar dentro da cláusula WHERE o relacionamento entre as chaves primária e chave estrangeira. Também é possível adicionar Alias (apelido) ao nome do Atributo, tornando-os mais humanizados e compreensíveis, conforme Figura 13. 78UNIDADE IV Mais SQL FIGURA 12 - DER ENTRE AS ENTIDADES “TB_FUNCIONARIO” E A “TB_DEPARTAMENTO”, COM RELACIONAMENTO 1:N. Fonte: O autor, 2020. FIGURA 13 - CONSULTA AVANÇADA NO BANCO DE DADOS MYSQL, ENVOLVENDO DUAS DADOS DE DUAS ENTIDADES E ALIÁS AOS NOMES DOS ATRIBUTOS Fonte: O autor, 2020. 79UNIDADE IV Mais SQL 4.1 Segurança no banco de dados MySQL O Banco de Dados MySQL é muito utilizado em aplicações web, sobretudo com a Linguagem de Programação PHP. Para obtermos um nível de segurança maior, é necessário que a instalação do banco do servidor e a sua configuração interna siga alguns requisitos, tais como: ● A instalação do servidor Apache possua o módulo de suporte a PHP, instalados no diretório /chroot/httpd; ● Utilização do serviço MySQL exclusivamente pela aplicação desenvolvida em PHP, que esteja instalado no mesmo servidor; ● Uso de ferramentas de administração do Sistema Gerenciador de Banco de Dados (SGBD) como: PHPMyAdmin, MtSQLAdmin, mysql, entre outras; ● Uso do protocolo SSH para realização de Backup; ● O processo MySQL deverá rodas em UID/GID diferentes dos processos do sistema; ● Permissão somente para acesso local, sendo bloqueado o acesso remoto; ● Inserir uma senha forte para o usuário administrador (root); ● Renomear a conta de administrador; ● Desabilitar o acesso anônimo ao Banco de Dados MySQL; ● Remover os bancos e entidades de exemplo. 80UNIDADE IV Mais SQL SAIBA MAIS INSTALAÇÃO E CONFIGURAÇÕES DO SISTEMA OPERACIONAL O banco de dados é parte importante e fundamental de um ou vários sistemas de uma empresa, provendo informações necessárias para tomadas de decisões, lançamentos de produtos e regras de negócios, ou seja, é no banco de dados onde estão as informações mais valiosas de uma empresa. É fato que tanta informação valiosa em um mesmo local não é algo seguro por natureza e é aí que você, DBA, deve agir com inteligência e elaborar estratégias de segurança como: Políticas de senhas, firewall, SO, SGBD e até a própria cultura do local onde você trabalha, pois não adianta cuidar da segurança e a sua equipe ficar trafegando o usuário e senha em plain text pela rede. Fonte: MORAES, Allan. Blindando o MySQL: Configurações de segurança. Disponível em: https://www. vivaolinux.com.br/artigo/Blindando-o-MySQL-Configuracoes-de-seguranca. Acesso em: 21 out. 2020. REFLITA Meus filhos terão computadores, sim, mas antes terão livros. Sem livros, sem leitura, os nossos filhos serão incapazes de escrever – inclusive a sua própria história. Bill Gates. Fonte: STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da Microsoft, que completa 40 anos de fundação. Disponível em: https://bit.ly/3DrAUBW. Acesso em: 30 jun. 2021. 81UNIDADE IV Mais SQL CONSIDERAÇÕES FINAIS Com o término desta unidade, foi possível acompanhar o passo a passo dos tipos de acesso ao Banco de Dados MySQL de forma local ou remota, a forma correta de realizar a autenticação com usuários administrativo e comum, a criação do banco de dados e a integração do novo usuário ao banco de dados. A criação de um banco de dados deve obedecer critérios estruturais condizentes e que atendam as reais necessidades do sistema e do usuário final, este levantamento de informações pode ser realizado através do Diagrama de Entidade-Relacionamento (DER. Definindo a estrutura do banco, será utilizado Scripts para criação e manipulação do banco de dados, entidades, registros, além dos comandos básicos para realização do CRUD MySQL. A parte das consultas ao Banco de Dados MySQL é fundamental para que os dados brutos que estejam armazenados sejam tratados de tal forma que se tornem em informações pertinentes ao usuário, servindo como uma fonte de informações valiosas para a tomada de decisões administrativas. Inúmeras medidas de segurança podem ser tomadas para resguardar os dados armazenados e evitar ataques de hackers ou pessoas que não têm conhecimento específico sobre o dado que está sendo manipulado, podendo causar perdas e danos à estrutura ao banco ou aos dados armazenados. 82UNIDADE IV Mais SQL LEITURA COMPLEMENTAR Análise de Persistência de Imagens Médicas: uma comparação entre os sis- temas de bancos de dados MySQL, PostgreSQL e Derby Este artigo apresenta a análise e comparação de desempenho de persistência de imagens médicas de três Sistemas Gerenciadores de Banco de Dados Open Source, MySQL 5.1, PostgreSQL 9.0 e Derby 10.8, através de medidas de posição e dispersão amostral, histogramas e do Teste de Tukey. Fonte: DELFINO, Sérgio Roberto; POVOA, Lucas Venezian; PINTO, Ana Carla Rossinholi. Análise de Persistência de Imagens Médicas: uma comparação entre os sis- temas de bancos de dados MySQL, PostgreSQL e Derby. Retec Revista de Tecnologia. Ourinhos-SP. v.5, n.1, p.7-13, 2012. Disponível em: https://www.fatecourinhos.edu.br/retec/ index.php/retec/article/view/46/22. Acesso em 17 ago. 2021. 83UNIDADE IV Mais SQL MATERIAL COMPLEMENTAR LIVRO Título: MySQL: Comece com o principal banco de dados open source do mercado. Autor: Vinícius Carvalho. Editora: Casa do Código. Sinopse: O MySQL é praticamente onipresente nos projetos de software atuais. Boa parte deles o utiliza como banco de dados para armazenar as informações da sua aplicação, por conta da sua facilidade de instalação e configuração. Neste livro, Vinícius Carvalho introduz o leitor no mundo do banco de dados MySQL, ensinando os principais comandos DML e DDL, e ferramentas gráficas. Você vai aprender a trabalhar com procedures, manipular triggers, criar backups e vários outros recursos que fazem a diferença no dia a dia. Versão do MySQL: 8.0. FILME/VÍDEO Título: The Machine/Soldado do Futuro. Ano: 2014. Sinopse: Um veterano de inteligência artificial espera desenvolver tecnologia capaz de ajudar sua irmã doente. Sua nova parceira de trabalho, uma jovem e talentosa engenheira também do campo da inteligência artificial, é contratada após suas descobertas terem sido reconhecidas pelo Ministério da Defesa. Os dois unemforças, mas não contavam que seu invento pudesse cair nas mãos do poderoso Ministério da Defesa. Link: https://www.youtube.com/watch?v=MuGejbtt3l8 84UNIDADE IV Mais SQL WEB Uma Introdução às consultas no MySQL Bancos de dados são um componente chave em muitos websites e aplicações, e estão no centro de como os dados são armazenados e trocados pela Internet. Um dos aspectos mais importantes do gerenciamento de banco de dados é a prática de recuperar dados de um banco de dados, seja em uma base ad hoc ou parte de um processo codificado em um aplicativo. Existem várias maneiras de recuperar informações de um banco de dados, mas um dos métodos mais utilizados é realizado através do envio de consultas pela linha de comandos. Fonte: DRAKE, Mark. Uma Introdução às consultas no MySQL. 11 jan. 2019. Disponível em: https://www.digitalocean.com/community/tutorials/uma-introducao-as-con- sultas-no-mysql-pt. Acesso em: 21 out. 2020. 85 REFERÊNCIAS ALVES, William Pereira. Banco de dados. São Paulo: Érica, 2014. Minha Biblioteca. https:// integrada.minhabiblioteca.com.br/#/books/9788536518961/. VBID: 9788536518961. ARANHA, Christian; PASSOS, Emmanuel. A Tecnologia de Mineração de Textos. RESI - Revista Eletrônica de Sistemas de Informação. DOI: https://doi.org/10.21529/ RESI.2006.0502001 n.2, 2006. Disponível em: http://periodicosibepes.org.br/index.php/ reinfo/article/view/171. Acesso em: 16 abr. 2020. ATZENI, Paolo; CERI, STEFANO; Paraboschi. Database Systems: concepts, languages & architectures. São Paulo: McGraw Hill, p.349-90, 2000. BARBOZA, Fabrício Felipe Meleto; FREITAS, Pedro Henrique Chagas. Modelagem e de- senvolvimento de banco de dados. Porto Alegre-RS: Sagah, 2018. Minha Biblioteca. https:// integrada.minhabiblioteca.com.br/books/9788595025172. VBID: 9788595025172. BORNELI, Júnior. Veja 10 frases de Bill Gates, fundador da Microsoft, que completa 40 anos de fundação. 4 abr. 2015. Disponível em: https://bit.ly/3DrAUBW. Acesso em: 20 mai. 2021. DELFINO, Sérgio Roberto; POVOA, Lucas Venezian; PINTO, Ana Carla Rossinholi. Análise de Persistência de Imagens Médicas: uma comparação entre os sistemas de bancos de dados MySQL, PostgreSQL e Derby. Retec Revista de Tecnologia. Ourinhos-SP. v.5, n.1, p.7-13, 2012. Disponível em: https://www.fatecourinhos.edu.br/retec/index.php/retec/article/ view/46/22. Acesso em 17 ago. 2021. DEVMedia. Guia Completo de SQL. Disponível em: https://www.devmedia.com.br/guia/ guia-completo-de-sql/38314. Acesso em: 18 set. 2020. DRAKE, Mark. Uma Introdução às consultas no MySQL. 11 jan. 2019. Disponível em: ht- tps://www.digitalocean.com/community/tutorials/uma-introducao-as-consultas-no-mysql-pt. Acesso em: 21 out. 2020. EUNERD. 15 frases para o dia do profissional de TI. Disponível em: https://encontreumnerd. com.br/blog/dia-do-profissional-ti. Acesso em: 16 abr. 2020. HOSTINGER. Hostinger tutoriais. O Que É MySQL? Guia Para Iniciantes. 21 jan. 2019. Disponível em: https://www.hostinger.com.br/tutoriais/o-que-e-mysql/. Acesso em: 5 out. 2020. 86 KORTH, Henry F. Sistema de banco de dados. São Paulo: Markon, 1995. MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementação. 3.ed. São Paulo: Érica, 2014. Minha Biblioteca. https://integrada.minhabiblioteca.com.br/ books/9788536518978. VBID: 9788536518978. MACHADO, Felipe Nery Rodrigues. Banco de dados: Projeto e implementação. 4.ed. São Paulo: Érica, 2020. [Minha Biblioteca]. Disponível em: https://integrada.minhabiblioteca. com.br/#/books/9788536532707/cfi/2!/4/2@100:0.00. Acesso em: 5 out. 2020. MORAES, Allan. Blindando o MySQL: Configurações de segurança. Disponível em: https:// www.vivaolinux.com.br/artigo/Blindando-o-MySQL-Configuracoes-de-seguranca. Acesso em: 21 out. 2020. ONE, Key Data. SQL Tutorial: Learn SQL Query Language. Disponível em: https://www.1key- data.com/sql/sql.html. Acesso em: 5 out. 2020. OPSERVICES. Gerenciamento de TI e Dashboards em tempo real. Disponível em: https:// www.opservices.com.br/banco-de-dados/. Acesso em: 16 abr. 2020. ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/ what-is-database.html. Acesso em: 23 Mar. 2020. PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em: https://www.devmedia. com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar. 2020. RAMAKRISHNAN, Raghu; GEHRKE, Johannes. Sistemas de gerenciamento de banco de dados. 3.ed. Porto Alegre-RS: AMGH, 2011. Minha Biblioteca: https://integrada.minhabiblio- teca.com.br/books/9788563308771. VBID: 9788563308771. ROSSITO, Thomaz. Comandos: DML, DDL, DCL, TCL – SQL Server. Set. 2017. Disponível em: http://www.thomazrossito.com.br/comandos-dml-ddl-dcl-tcl-sql-server/. Acesso em: 18 set. 2020. SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em: https:// becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. Editora Pearson. Terceira Edição, 2010. 87 STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da Microsoft, que completa 40 anos de fundação. Disponível em: : https://bit.ly/3DrAUBW TUTIDA, Daniel. 15 frases para o dia do profissional de TI. Disponível em: https:// encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 18 set. 2020. W3BAI.COM. SQL tutorial. Disponível em: https://www.w3bai.com/pt/sql/default.html. Acesso em: 5 out. 2020 88 CONCLUSÃO GERAL Durante esse estudo foram abordados os principais temas sobre o Sistema Gerenciamento de Banco de Dados (SGBD) e sua gestão sobre os Bancos de Dados. Foram discutidos os processos de Transações de uma sequência de operação, tratadas em um bloco único e indivisível. Foi enfatizado sobre a estrutura de um Modelo Relacional e sua importância para o desenvolvimento de um Banco de Dados, assim como o Modelo Entidade Relacionamento (MER). Considerou-se neste estudo, os diferentes tipos de relacionamentos entre as Enti-dades e suas aplicações. Finalizando com os tipos de Linguagens de Manipulação SQL e seus Subconjuntos. +55 (44) 3045 9898 Rua Getúlio Vargas, 333 - Centro CEP 87.702-200 - Paranavaí - PR www.unifatecie.edu.br/editora-edufatecie edufatecie@fatecie.edu.br EduFatecie E D I T O R A UNIDADE I Conceitos de Banco de Dados UNIDADE II Modelo Relacional UNIDADE III SQL Básico UNIDADE IV Mais SQL