Baixe o app para aproveitar ainda mais
Prévia do material em texto
e-Tec Brasil/CEMF/Unimontes Escola Técnica Aberta do Brasil Informática Banco de Dados Leandro Clementino de Almeida Ministério da Educação e-Tec Brasil/CEMF/Unimontes Escola Técnica Aberta do Brasil Informática Banco de Dados Leandro Clementino de Almeida Montes Claros - MG 2011 Ministro da Educação Fernando Haddad Secretário de Educação a Distância Carlos Eduardo Bielschowsky Coordenadora Geral do e-Tec Brasil Iracy de Almeida Gallo Ritzmann Governador do Estado de Minas Gerais Antônio Augusto Junho Anastasia Secretário de Estado de Ciência, Tecnologia e Ensino Superior Alberto Duque Portugal Reitor João dos Reis Canela Vice-Reitora Maria Ivete Soares de Almeida Pró-Reitora de Ensino Anette Marília Pereira Diretor de Documentação e Informações Huagner Cardoso da Silva Coordenador do Ensino Profissionalizante Edson Crisóstomo dos Santos Diretor do Centro de Educação Profissonal e Tecnólogica - CEPT Maísa Tavares de Souza Leite Diretor do Centro de Educação à Distância - CEAD Jânio Marques Dias Coordenadora do e-Tec Brasil/Unimontes Rita Tavares de Mello Coordenadora Adjunta do e-Tec Brasil/ CEMF/Unimontes Eliana Soares Barbosa Santos Coordenadores de Cursos: Coordenador do Curso Técnico em Agronegócio Augusto Guilherme Dias Coordenador do Curso Técnico em Comércio Carlos Alberto Meira Coordenador do Curso Técnico em Meio Ambiente Edna Helenice Almeida Coordenador do Curso Técnico em Informática Frederico Bida de Oliveira Coordenadora do Curso Técnico em Vigilância em Saúde Simária de Jesus Soares Coordenadora do Curso Técnico em Gestão em Saúde Zaida Ângela Marinho de Paiva Crispim BANCO DE DADOS e-Tec Brasil/CEMF/Unimontes Elaboração Leandro Clementino de Almeida Projeto Gráfico e-Tec/MEC Supervisão Wendell Brito Mineiro Diagramação Hugo Daniel Duarte Silva Marcos Aurélio de Almeida e Maia Impressão e Acabamento Gráfica RB Digital Designer Instrucional Angélica de Souza Coimbra Franco Kátia Vanelli Leonardo Guedes Oliveira Revisão Maria Ieda Almeida Muniz Patrícia Goulart Tondineli Rita de Cássia Silva Dionísio Presidência da República Federativa do Brasil Ministério da Educação Secretaria de Educação a Distância e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 3 Prezado estudante, Bem-vindo ao e-Tec Brasil/Unimontes! Você faz parte de uma rede nacional pública de ensino, a Escola Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezem- bro 2007, com o objetivo de democratizar o acesso ao ensino técnico público, na modalidade a distância. O programa é resultado de uma parceria entre o Ministério da Educação, por meio das Secretarias de Educação a Distancia (SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e escola técnicas estaduais e federais. A educação a distância no nosso país, de dimensões continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pes- soas ao garantir acesso à educação de qualidade, e promover o fortalecimen- to da formação de jovens moradores de regiões distantes, geograficamente ou economicamente, dos grandes centros. O e-Tec Brasil/Unimontes leva os cursos técnicos a locais distantes das instituições de ensino e para a periferia das grandes cidades, incenti- vando os jovens a concluir o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino e o atendimento ao estudante é realizado em escolas-polo integrantes das redes públicas municipais e estaduais. O Ministério da Educação, as instituições públicas de ensino téc- nico, seus servidores técnicos e professores acreditam que uma educação profissional qualificada – integradora do ensino médio e educação técnica, – não só é capaz de promover o cidadão com capacidades para produzir, mas também com autonomia diante das diferentes dimensões da realidade: cul- tural, social, familiar, esportiva, política e ética. Nós acreditamos em você! Desejamos sucesso na sua formação profissional! Ministério da Educação Janeiro de 2010 Apresentação e-Tec Brasil/CEMF/ Unimontes e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 5 Indicação de ícones Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual. Atenção: indica pontos de maior relevância no texto. Saiba mais: oferece novas informações que enriquecem o assunto ou “curiosidades” e notícias recentes relacionadas ao tema estudado. Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto. Mídias integradas: possibilita que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado. e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital Sumário 7 Palavra dos professores conteudistas ....................................... 11 Projeto instrucional ........................................................... 13 Aula 1 - Introdução ............................................................ 15 1.1 Processamento tradicional de arquivos x banco de dados ..... 17 1.2 Profissionais e atividades envolvidas em um SGBD ............. 18 1.3 Vantagens e desvantagens do uso de banco de dados ......... 18 Resumo ................................................................... 20 Atividades de Aprendizagem ........................................... 20 Aula 2 – Sistemas da banco de dados (SBD): conceitos e arquitetura .. 21 2.1 Introdução ........................................................... 21 2.2 Modelos de dados ................................................... 22 2.3 Esquema ............................................................. 26 2.4 Instância ............................................................. 26 Resumo ................................................................... 27 Atividades de Aprendizagem ........................................... 27 Aula 3 – Modelagem Ae dados – Modelo Entidade Relacionamento – MER . 29 3.1 Introdução ........................................................... 29 3.2 Entidade, atributo e relacionamento ............................ 30 3.3 Tipos de entidades e atributos .................................... 32 3.4 Diagrama Entidade Relacionamento (DER) ...................... 33 Resumo ................................................................... 35 Atividades de Aprendizagem ........................................... 36 Aula 4 – Modelagem de dados – Modelo Relacional (MR) ................. 37 4.1 Introdução ........................................................... 37 4.2 Relações, domínios, tuplas e atributos .......................... 38 4.3 Atributos-chave ..................................................... 38 4.4 Mapeamento do MER para MR ..................................... 39 Resumo ................................................................... 42 Atividades de Aprendizagem ........................................... 42 Aula 5 – SQL básico ............................................................ 45 5.1 Conceito .............................................................. 45 5.2 Comandos de definição de dados ................................. 45 5.3 Comandos de Manipulação de Dados ............................. 49 5.4 Restrições de dados ................................................ 55 Resumo ................................................................... 58 Atividades de Aprendizagem ........................................... 58 Aula 6 – Integração de banco de dados e internet ....................... 61 6.1 SGBD web ............................................................ 61 6.2 Conexão do SGBD com internet ................................... 62 Resumo ...................................................................63 Atividades de Aprendizagem ........................................... 64 Referências ..................................................................... 65 Currículo do professor conteudista ......................................... 66 e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 9 Caro estudante! Neste módulo, iniciaremos os estudos sobre banco de dados. Nele, teremos a oportunidade de aprender os principais conceitos, recursos, apli- cações e serviços trabalhados em banco de dados. Por acaso, já teve a oportunidade de estudar alguma coisa sobre banco de dados? Não? Então, este momento será muito proveitoso para todos nós. Caso já tenha algum conhecimento sobre banco de dados, os estudos realizados não serão menos importantes, pois haverá um momento de relem- brar coisas e de também aprender assuntos novos. Dito isto, que tal começarmos nossos estudos? O termo banco de dados, assim como as tecnologias de bancos de dados, tem ganhado cada vez mais importância e está se tornando cada dia mais útil e popular, com a expansão da utilização dos computadores. Os bancos de dados e os sistemas de bancos de dados tornaram-se componentes essenciais no cotidiano da sociedade moderna. Em nosso coti- diano, deparamo-nos com diversas atividades que envolvem alguma intera- ção com banco de dados. Um exemplo é a utilização de serviços bancários, como depósito, saque, pagamentos de contas etc. Todos esses serviços são possíveis graças a um bom sistema de banco de dados. Outros exemplos: se acessamos o catálogo de uma biblioteca virtual (informatizada) para consul- tar uma bibliografia; se compramos produtos, como livros, brinquedos, equi- pamentos eletrônicos etc., ou de um fornecedor por intermédio de sua pági- na na internet (na web); se fazemos reservas em um hotel ou para a compra de passagens aéreas ou terrestres; quase que certamente, essas atividades envolverão uma pessoa e/ou um programa de computador que acessará um banco de dados. Há alguns anos apenas, as grandes empresas se beneficiavam da uti- lização de sistemas de banco de dados, porém, a sua implementação vem ga- nhando espaço até mesmo em pequenas empresas e em pequenos comércios. Essas interações são exemplos do que podemos denominar aplica- ções tradicionais de banco de dados, nos quais, a maioria das informações que são armazenadas e acessadas apresenta-se em formatos textual ou nu- mérico. Além disso, é cada vez mais crescente a utilização de bancos de dados que armazenam dados multimídia, geográficos e vetoriais. Nos últimos anos, os avanços tecnológicos geraram aplicações bastante inovadoras e in- teressantes dos sistemas de banco de dados. Neste módulo, você terá condições de desenvolver seus conheci- mentos sobre banco de dados, pois trataremos, aqui, dos fundamentos e da prática desse conteúdo. Palavra do professor conteudista e-Tec Brasil/CEMF/Unimontes Informática10 Você terá oportunidade, ao longo da leitura das aulas, de perceber que a utilização de banco de dados e sistemas de banco de dados faz parte do seu cotidiano e é fundamental para o conhecimento da área de informá- tica, principalmente na área de desenvolvimento. Neste sentido, o conteúdo deste caderno didático foi elaborado adotando-se uma dinâmica de organização na qual partiu-se de uma introdu- ção sobre a temática, passando pelos conceitos fundamentais dela, na busca da sua compreensão sobre banco de dados e sobre a importância deste na formação do técnico em Informática. Assim, na Aula I, você será introduzido nos conceitos de banco de dados, sistema gerenciador de banco de dados (SGBD), sistema de banco de dados. Será apresentado um breve comparativo entre banco de dados e processamento tradicional de arquivos, além de apresentar situações nas quais não se necessita de um SGBD. Daremos continuidade a essa iniciação na Aula II, abordando conceitos de modelos de dados e os principais, e ainda esquema e instâncias. Na Aula III, você será apresentado à modelagem de dados e irá co- nhecer, especificamente, o Modelo Entidade Relacionamento e seus princi- pais conceitos, como entidade, atributo, relacionamento, tipos de entidades e atributos e Diagrama de Entidade Relacionamento. Na Aula IV, você conhe- cerá o modelo de dados relacional, tido como o mais utilizado no mundo, e também os principais conceitos envolvidos nesse modelo. Na Aula V, será apresentada a linguagem estruturada de consulta (SQL) e seus principais recursos. Finalmente, na Aula VI, você terá oportunidade de conhecer como se faz a integração do banco de dados com a internet. Assim, esperamos que, ao final desta disciplina, você esteja habi- litado a: • especificar projeto físico e lógico de banco de dados; • gerenciar transações de banco de dados por intermédio do uso de métodos, técnicas e ferramentas que envolvam os elementos de gestão de dados e transações; • estar familiarizado com a tecnologia de banco de dados, en- volvendo linguagens de definição, consulta a banco de dados e aspectos de segurança e integridade. Sugerimos que você dedique tempo suficiente para fazer a leitura, realizar as atividades e retirar suas dúvidas. Sempre que considerar necessá- rio, volte ao texto e refaça as atividades! Não se limite a este material; faça pesquisas, converse com professores e colegas. Você verá que aprender é uma interessante aventura! Bons estudos! Leandro Clementino de Almeida e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 11 Disciplina: Banco de Dados (carga horária: 60h). Ementa: Conceituação sobre banco de dados. Identificação e aná- lise de modelos de bancos de dados. Identificação e aplicação de um mode- lo de banco de dados. Conceituação de sistemas de gerência de banco de dados multiusuário. Conceituação e análise de características próprias de sistemas de gerenciamento de banco de dados multiusuário: gerenciamento de transações, controle de concorrência, recuperação de falhas, segurança e integridade de dados. Comparação de abordagens não convencionais para bancos de dados; integração de bancos de dados e internet. AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORÁRIA Aula 1. Introdução - Conceituar os principais termos de banco de dados; - distinguir processamento de arqui- vos tradicional de banco de dados; - apresentar aspectos referentes à importância da aplicação e do uso de banco de dados; - possibilitar ao aluno definir quando não for aconselhada a utilização de um SGBD. - 8h Aula 2. Sistemas de banco de da- dos: conceitos e arquitetura - Apresentar os principais conceitos envolvidos em sistemas de banco de dados, bem como sua arquitetura, seus componentes e, principalmente, os modelos de dados mais relevantes; - tornar o aluno capaz de identificar um modelo de dados e, com isto, criar e desenvolver a modelagem de um projeto de banco de dados em qual- quer um dos modelos apresentados. - 8h Aula 3. Modelagem de dados – Mo- delo Entidade Relaciona- mento (MER) - Descrever os conceitos envolvidos na Modelagem Entidade Relacionamento; - apresentar os principais termos utilizados na construção de um banco de dados no MER; - possibilitar aos alunos construir o conhecimento para a criação de mo- delos e diagramas ER, com os respec- tivos relacionamentos. - 12h Projeto instrucional e-Tec Brasil/CEMF/Unimontes Informática12 Aula 4. Modelagem de dados – Mode- lo Relacional (MR) - Conceituar e apresentar os princi- pais elementos do Modelo Relacional; - demonstrar as principais aplicações do modelo na construção de projeto de banco de dados relacional; - realizar o mapeamento do Modelo Entidade Relacionamento (MER) para o Modelo Relacional (MR). - 12h Aula 5. Linguagem de consulta estruturada (SQL) - básico - Apresentar os principais conceitos sobre linguagem de consulta estrutu- rada (SQL); - realizar estudos sobre DDL e DML; - realizar aplicações práticas dos prin- cipais comandos SQL; - definir e criarrestrições de dados em SQL. - 16h Aula 6. Integração de banco de da- dos e internet - Apresentar a importância do uso de SGBD integrados à internet; - apresentar o processo de conexão de um sistema com o banco de dados na internet; - demonstrar como se realiza a cone- xão do sistema com o banco de dados na web. - 4h e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 13 Aula 1 - Introdução Objetivos • conceituar os principais termos de banco de dados; • distinguir processamento de arquivos tradicional de banco de dados; • apresentar aspectos referentes à importância da aplicação e do uso de banco de dados; • possibilitar ao aluno definir quando não for aconselhada a utili- zação de um SGBD. Você já parou para pensar no crescimento do uso de computadores em nosso cotidiano? E na quantidade de empresas e de lojas comerciais que fazem uso de sistemas para gerenciar seus negócios? Pois o banco de dados (BD) e as demais tecnologias em volta dele estão entre os principais elemen- tos que provocam um grande impacto no crescimento do uso de computa- dores na sociedade moderna. O BD representa uma ferramenta essencial em quase todas as áreas nas quais os computadores são utilizados, incluindo negócios diversos, comércio eletrônico, Engenharia, Medicina, Direito, Edu- cação e as Ciências da Informação, para citar apenas algumas delas. Bom, antes de continuarmos a falar deste termo tão importante e útil nos dias atuais, é preciso defini-lo. Vamos aprender? Uma definição bastante genérica é dada por Elmasri & Navathe (2005): “Um banco de dados é uma coleção de dados relacionados. Os da- dos são fatos que podem ser gravados e que possuem um significa- do implícito. Por exemplo, considere nomes, números telefônicos e endereços de pessoas que você conhece. Esses dados podem ter sido escritos em uma agenda de telefones ou armazenados em um computador, por meio de programas como o Microsoft Access ou Excel. Essas informações são uma coleção de dados com um signi- ficado implícito, consequentemente, um banco de dados.” Como a definição anterior é muito genérica, para evitar entendi- mentos equivocados, os mesmos autores descrevem ainda que um banco de dados possui as seguintes propriedades: • um banco de dados é uma coleção lógica coerente de dados com um significado inerente; uma disposição desordenada dos dados não pode ser referenciada como um banco de dados; • um banco de dados é projetado, construído e populado com da- dos para um propósito específico; um banco de dados possui um conjunto pré-definido de usuários e aplicações; • um banco de dados representa algum aspecto do mundo real, o qual é chamado de “minimundo”; qualquer alteração efetuada no minimundo é automaticamente refletida no banco de dados. As leituras auxiliares são sempre importantes e enriquecedoras. Não deixe de fazê-las! Populado: o mesmo que alimentado/povoado, de acordo com Figueiredo (2011). e-Tec Brasil/CEMF/Unimontes Informática14 Para melhor entendimento, podemos destacar alguns ingredientes necessários em um BD, conforme Elmasri e Navathe (2005): • uma fonte de dados da qual são derivados os dados; • a interação com o mundo real; • o público que demonstra interesse nos dados contidos no banco de dados. Sendo assim, um banco de dados pode ser de qualquer tamanho e de complexidade variável; pode ser gerado e mantido manualmente ou pode ser automatizado (computadorizado). Desta forma, um BD pode ser cria- do e mantido por um conjunto de programas desenvolvidos especialmente para isto, ou ainda melhor, por um Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD permite que as pessoas (os usuários) criem e manipulem seus bancos de dados. O objetivo principal de um SGBD é proporcionar um ambiente eficiente para o armazenamento e para a recuperação das infor- mações no banco de dados. (ELMASRI; NAVATHE, 2005). O conjunto formado por um banco de dados mais as aplicações que manipulam esse banco (o SGBD) é chamado de “Sistema de Banco de Dados - SBD”, conforme ilustra a figura a seguir. Figura 1: Constituição de um SGBD. Fonte: Acervo próprio. Os bancos de dados são implementados e utilizados em diversas áreas. Vamos conhecê-las? A seguir, estão relacionadas algumas delas. • Instituições de ensino: para informações administrativas, de alunos, cursos, notas etc. • Empresas de energia: para a gerência do consumo de energia, geração de contas etc. • Bancos: para informações de clientes, contas, empréstimos, fi- nanciamentos e todas as transações bancárias. • Meio ambiente: para o controle das questões climáticas, infor- mações sobre desmatamentos, sobre o solo etc. • Transações com cartão de crédito: para compras com cartões e geração de faturas. • Telecomunicação: para manter registros de chamadas, geren- ciar contas, gerenciar informações de conectividade, links de internet etc. • Finanças: para armazenar informações de compras, vendas etc. • Indústria: para gerenciamento e controle da produção e de to- dos os itens envolvidos. e-Tec Brasil/CEMF/UnimontesBanco de Dados 15 • Recursos humanos: para informações sobre funcionários, salá- rios, lançamentos em folha de pagamento (benefícios e impostos pagos), geração de contracheques. • Outras áreas. Na verdade, um banco de dados pode ser utilizado em qualquer área. Tudo dependerá da necessidade. 1.1 Processamento tradicional de arquivos x banco de dados Você sabe a diferença que há entre fazer uso de processamento tra- dicional de arquivos para acessar informações e utilizar um banco de dados? Bem, é isto que iremos explicar ao longo deste caderno e também alguns outros assuntos correlacionados. Antes de falar do processamento de arquivos e do banco de dados propriamente dito, é preciso esclarecer que o SGBD possui uma caracterís- tica de autoinformação que tem a capacidade de manter os dados na forma como são armazenados, constituindo, assim, em uma descrição completa do banco de dados. Essas informações são armazenadas num local que contém a estrutura de cada arquivo, o tipo e o formato do armazenamento de todos os tipos de dados, chamado catálogo do SGBD. O que faz com que este possa manipular diversas bases de dados. (ELMASRI; NAVATHE, 2005). No processamento de arquivos, o programa que manipula os dados deverá conter as informações do catálogo do SGBD, ficando limitado a mani- pular as informações que o mesmo conhece. No processamento tradicional de arquivos, os usuários criam e de- finem os arquivos necessários para cada aplicação específica, resultando em grandes redundâncias e, muitas vezes, no desperdício de espaço de armaze- namento. Normalmente, nesses arquivos, não existe qualquer estruturação dos dados nele contidos. Em banco de dados, não é armazenado somente o banco em si, isto é, os dados, mas sim um catálogo de dados. Em banco de dados, o acesso às informações não requer conheci- mento das estruturas do mesmo, o que chamamos de “independência dos dados”, de acordo com Elmasri e Navathe (2005). Já no processamento tradi- cional de arquivos, o acesso a qualquer informação requer um conhecimento prévio da estrutura do arquivo. Em banco de dados, quando houver qualquer alteração na estrutura dos dados, os programas (SGBD) não precisam ser alterados. Já em proces- samento tradicional, não. Neste caso, toda alteração na estrutura dos dados exigiria uma alteração nos programas que manipulam as informações dos arquivos. Ainda segundo o autor supracitado, em banco de dados, as informa- ções do catálogo são chamadas de “metadados”. Autoinformação: é o mesmo que ter informação de si mesmo. e-Tec Brasil/CEMF/Unimontes Informática16 1.2 Profissionais e atividades envolvidas em um SGBD Por acaso, você conhece algum profissional que trabalha com banco de dados? Ou mesmo que utilize o banco de dados por meio do acesso aos sistemas empregados no trabalho, por exemplo? Pois bem, em um banco de dados pequeno, por exemplo, de uso pes- soal,uma única pessoa será quem vai definir, construir e manipular o banco de dados. Porém, em um grande banco de dados, com dezenas, centenas (ou milhões) de usuários e com restrições de acesso para cada um, é necessário um controle rígido sobre o mesmo e, neste sentido, podemos identificar e destacar alguns perfis de pessoas que interagem com banco de dados, conforme desta- cam Elmasri e Navathe (2005): • administrador do banco de dados (DBA); • projetista do banco de dados; • analista de sistemas; • programador de aplicações; • usuário final. Cada um desses profissionais é encarregado de uma série de fun- ções inerentes ao seu perfil. Sendo assim, segue, a seguir, uma descrição das atividades desenvolvidas por cada um deles, segundo Elmasri e Nava- the(2005). Administrador de dados (DBA): é o supervisor do banco de dados, responsável pela autorização de acesso ao banco, pelo monitoramento e pela coordenação do uso. Está envolvido com os aspectos físicos do banco de dados (estruturas de armazenamento, métodos de acesso etc.). Projetistas do banco: são responsáveis pela identificação dos da- dos e pela elaboração de estruturas apropriadas para armazená-los. Para isto, é necessário compreender os requisitos necessários aos grupos de usu- ários do banco de dados antes de sua implementação. Analista de sistemas: determina os requisitos dos usuários e desen- volve especificações que atendam estes requisitos. Programadores: implementam as especificações na forma de pro- gramas, elaborando toda a documentação. Usuário (final): um banco de dados existe para a utilização do usu- ário final, cujo trabalho, normalmente, requer consultas e atualizações. A maioria dos usuários utiliza programas voltados ao desempenho profissional, utilizando-os em seu dia a dia. 1.3 Vantagens e desvantagens do uso de banco de dados Que tal começarmos com as vantagens? O uso de banco de dados nos proporciona diversas vantagens em relação ao método de processamento tradicional de arquivos. A seguir, veremos algumas dessas vantagens e des- vantagens observadas na obra de Elmasri e Navathe (2005). e-Tec Brasil/CEMF/UnimontesBanco de Dados 17 • Controle sobre a redundância: redução do espaço necessário para armazenamento, eliminação da duplicação de esforços na manutenção das informações e redução de inconsistência na base de dados. • Compartilhamento de dados: se diversos usuários têm aplica- ções integradas no BD, precisa-se de um software de controle de concorrência para a atualização do banco. Facilidade na defi- nição da visão do usuário, especificando uma porção do BD que tem interesse particular de um grupo de usuários. • Restrição de acesso não autorizado: possui um sistema de se- gurança que garantia o acesso específico a cada usuário (perso- nalizado para grupos ou individual), possibilitando maior segu- rança ao BD. • Fornecimento de múltiplas interfaces: disponibiliza vários ti- pos de interface de acesso aos dados, dependendo dos níveis de conhecimento entre os usuários. O BD permite o uso de lingua- gem para consulta de usuários casuais; linguagem de programa- ção, para o programador de aplicações; formulários e menus, para acesso de outros usuários etc. • Forçar restrições de integridade: permite a definição de regras associadas aos dados, como identificação do tipo de dado, dado de tipo único, impossibilidade do dado não ser informado (ser nulo), relacionamento entre os dados armazenados etc. Isto irá dificultar a ocorrência de erro, porém, ele ainda poderá acon- tecer. • Sistema de backup e recovery: possui controle do BD, no caso de falha do hardware ou do software, permitindo a recuperação da situação anteriormente encontrada de forma ágil e prática. • Outras vantagens de BD: quanto ao desenvolvimento de pa- drões, permite ao DBA definir e forçar padrões (nomenclaturas, formatos, terminologias etc.), facilitando a comunicação e a co- operação entre os setores, projetos e usuários dentro da orga- nização; Garante maior flexibilidade ao permitir alterações na estrutura do BD. Projetar e implementar uma nova aplicação é mais rápido em um BD existente do que se ele não existisse ou fosse feito sobre a abordagem tradicional de arquivos. Torna dis- ponível o BD para todos os usuários (com permissão de acesso), devido ao controle de concorrência e à recuperação do SGBD. Contudo, cabe ressaltar também que existem algumas situações nas quais é desaconselhado o uso de banco de dados. Vamos ver em quais situa- ções isto acontece? As desvantagens ocorrem quando: • seu uso apresentar um custo desnecessário em relação à aborda- gem tradicional de arquivos; • requerer um alto investimento inicial com software e hardware; • gerar uma sobrecarga na provisão de controle de segurança, controle de concorrência, recuperação e integração de funções; • o banco de dados e as aplicações são simples, bem definidas e não necessitam de mudanças no projeto; Backup: é o processo de criar cópia dos dados. Recovery: é a restauração dos dados “backupeados”. e-Tec Brasil/CEMF/Unimontes Informática18 • há necessidade de processamento em tempo real de certas apli- cações, que seriam extremamente prejudicadas pela sobrecarga causada pelo uso de um SGBD; • os múltiplos acessos não são necessários. Resumo Nesta aula, você aprendeu: • conceitos envolvidos em banco de dados; • a importância de um bom banco de dados, principalmente em relação ao método de processamento tradicional de arquivos; • quando usar e quando não usar um banco de dados. Atividades de aprendizagem 1. Informe um conceito para definir banco de dados. 2. Quais são as áreas do mundo globalizado que se utilizam da tecnologia de banco de dados? 3. Um grupo qualquer de informações pode ser considerado um banco de dados? Por quê? 4. Quais são os elementos essenciais para se afirmar que um determinado conjunto de informações é, de fato, um banco de dados? 5. Qual a diferença entre processamento tradicional de arquivos e banco de dados? 6. O que é o catálogo do SGBD? E metadados? 7. O que significa “independência de dados” em banco de dados? e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 19 Aula 2 – Sistemas de banco de dados (SBD): conceitos e arquitetura Objetivos • apresentar os principais conceitos envolvidos em sistemas de banco de dados, bem como sua arquitetura, seus componentes e, principalmente, os modelos de dados mais relevantes; • tornar o aluno capaz de identificar um modelo de dados e, com isto, criar e desenvolver a modelagem de um projeto de banco de dados em qualquer dos modelos apresentados. 2.1 Introdução Já tinha ouvido falar em sistema de banco de dados (SBD)? Acredito que, alguns, sim; mas, de qualquer forma, nesta aula, iremos abordar diver- sos conceitos envolvendo sistemas de banco de dados, a arquitetura de um sistema de banco de dados e seus componentes e, principalmente, apresen- tar os modelos de dados mais conhecidos e utilizados. Para melhor compreensão de um SBD, segue, a seguir, na figura 02, um diagrama simplificado com a sua arquitetura. Figura 2: Diagrama simplificado da arquitetura do sistema de banco de dados. Fonte: Disponível em: <http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula5.html>. Acesso em 03 de abril de 2011. Não fique preso apenas a este caderno; busque outras fontes de estudo sobre banco de dados. e-Tec Brasil/CEMF/Unimontes Informática20 A figura 2 nos ilustra os principais elementos de um SBD: • o banco de dados: dados armazenados e metadados ou catálogo de dados; • SGBD: processador/otimizador de consultas e software para acessar os dados; • SBD: banco de dados + SGBD + programas aplicativos/consultas. 2.2 Modelos de dados Para ter condições de construir projetos de banco de dados, é preci- so, antes, conhecer e entender os modelos de dados. Vamos começar, então? De acordo com Silberschatz, Korth & Saudarshan (1999), uma gran- de vantagem do uso de banco de dados é o poder de abstraçãodos dados que o banco permite. Neste caso, o usuário não necessita conhecer detalhes do armazenamento de dados para acessá-los ou manipulá-los. Os modelos de dados são um conjunto de conceitos utilizados para a descrição da estrutura de um banco de dados. A estrutura de um banco de dados deve ser entendida como sendo a definição dos tipos de dados, dos relacionamentos e das restrições que devem suportar os dados. Baseando-nos em Elmasri e Navathe (2005), os modelos de dados podem ser classificados em três tipos básicos, descritos a seguir. 2.2.1 Modelo de alto nível Também conhecido como modelo de dados conceituais,descreve os dados como os usuários os percebem, segundo Elmasri e Navathe (2005). Como exemplos de modelos de alto nível, podemos destacar dois tipos, dados a seguir. • Modelo Entidade Relacionamento: o Modelo Entidade Relacio- namento (E-R) é baseado em uma percepção de um mundo real, que consiste em uma coleção de objetos básicos, chamados en- tidades, e de relações entre esses objetos, chamadas de relacio- namentos. Este modelo será mais bem descrito na aula 3 deste caderno. A figura 3 apresenta um exemplo do Modelo Entidade Relacionamento. Nesta figura, está representado o modelo de um pequeno banco de dados, composto das tabelas “Pessoa” e “Computador”, que registram as informações de todas as pessoas que utilizam os computadores de uma lan house, por exemplo. Figura 3: Exemplo de banco de dados do Modelo Entidade Relacionamento. Fonte: Disponível em: <http://lh6.ggpht.com/franciscogpneto/SLCf7mfnSuI/AAAAAAAAGM8/E77w- LNEf3o/s1600-h/image%5B3%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto). Lan house: é um local para as pessoas acessarem a internet. Normalmente é cobrada uma taxa. (SAWAYA, 1999) e-Tec Brasil/CEMF/UnimontesBanco de Dados 21 • Modelo orientado a objeto: Assim como o modelo ER, o modelo orientado a objetos tem por base um conjunto de objetos. Um objeto contém valores que são armazenados em variáveis; es- tes valores de variáveis são conhecidos como instâncias dentro do objeto. Além disso, um objeto contém conjuntos de códigos (chamados de operações) que operam o objeto. A principal mo- tivação para o surgimento desse modelo foi a necessidade de extrapolar os limites de armazenamento e de representação se- mântica dos dados, impostos pelo modelo relacional (tido como a melhor solução até então). A princípio, achava-se que o mode- lo orientado a objeto dominaria o mercado de banco de dados, porém isso não se confirmou e, o modelo relacional ainda é o modelo mais empregado pelas empresas ao redor do planeta. Com sua maior flexibilidade e robustez o modelo orientado a objeto tornou-se uma boa solução em sistemas complexos que lidam com tipos de informações variadas (geográficas, multimí- dia, vetoriais etc.) e em grande volume. Podemos citar como exemplos desse modelo os sistemas de informações geográficas (SIG), os sistemas CAD e CAM, que são mais facilmente construí- dos usando tipos complexos de dados. Na figura 4, a seguir, está um pequeno exemplo de banco de dados orientado a objetos, demonstrando um sistema de registro de informações de clien- tes, dos títulos (filmes) e de todos os movimentos/locações de títulos efetuados pelos clientes. (ELMASRI; NAVATHE, 2005). Figura 4: Exemplo de banco de dados do modelo orientado a objeto. Fonte: Disponível em: <http://jpleonidas.files.wordpress.com/2009/12/001.png>. Acesso em 05 de abril de 2011 (J. P. Leonidas). Os CADs são programas que se utilizam de técnicas gráficas para o desenvolvimento de projetos; o CAM é todo processo de fabricação controlado por computador. Os dois juntos (CAD/CAM) formam um conjunto de ferramentas muito utilizadas pela Engenharia para a criação de projetos. (SAWAYA, 1999). e-Tec Brasil/CEMF/Unimontes Informática22 2.2.2 Modelo de baixo nível Conhecido como modelo de dados físicos, descreve os detalhes de como os dados estão armazenados no computador, de acordo com Elmasri e Navathe (2005). Este modelo tem relação direta com a máquina, o hardware. Geralmente, é mais útil e significativo para os especialistas em har- dware de computador. Não possui exemplos de modelos diagramados descritos na litera- tura, pois atua em nível de hardware e, além disso, não é objeto de estudo deste caderno didático. 2.2.3 Modelo de dados representacionais Modelo intermediário que oferece os conceitos que podem ser en- tendidos pelos usuários finais e também dispõe de informações de como os dados estão organizados dentro do computador, conforme relatam Elmasri e Navathe (2011). Normalmente, é utilizado pelos especialistas. Este modelo é o mais utilizado em SGBDs comerciais tradicionais. Como exemplos de modelos de dados representacionais, podemos destacar os três que são descritos a seguir. • Modelo relacional: utiliza um conjunto de tabelas para repre- sentar tanto os dados como a relação entre eles. Cada tabela possui, normalmente, diversas colunas, e cada uma possui um nome único. Este modelo será mais bem descrito na aula 4 deste caderno. A figura apresenta um exemplo de banco de dados bem simples, no qual existem apenas duas tabelas, “Empregado” e “Departamento”, sendo que cada empregado está ligado a ape- nas um departamento. Figura 5: Exemplo de banco de dados do modelo relacional. Fonte: Disponível em: <http://lh3.ggpht.com/franciscogpneto/SMWGV0ACPjI/AAAAAAAAGrY/ Zd2ORsFnAz4/image_thumb%5B2%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto). e-Tec Brasil/CEMF/UnimontesBanco de Dados 23 • Modelo de rede: neste modelo, os dados são representados por um conjunto de registros, e as relações entre esses registros são representadas por links (ligações), os quais podem ser vistos por ponteiros (setas). Os registros são organizados no banco de dados por um conjunto arbitrário de gráficos. O modelo em rede possibilita acesso a qualquer nó da rede sem passar pela raiz da rede, diferentemente do modelo hierárquico. Um exemplo de sistema/empresa que utilizou o modelo em rede foi o sistema comercial CAIDMS, da Computer Associates. O exemplo apresen- tado a seguir, na figura 6, ilustra o mesmo banco de dados do modelo relacional anterior, porém, agora, no modelo de rede. Figura 6: Exemplo de banco de dados do modelo em rede. Fonte: Disponível em: <http://lh5.ggpht.com/franciscogpneto/SMWG3zwANyI/AAAAAAAAGrg/ ustUmKAn7bw/image_thumb%5B2%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto). • Modelo hierárquico: o modelo hierárquico assemelha-se ao mo- delo em rede, uma vez que os dados e as suas relações são representados, respectivamente, por registros e links, também. A diferença principal é que, no modelo hierárquico, os regis- tros estão organizados em árvores, em vez de serem em gráficos arbitrários. Outro aspecto que o distingue do modelo em rede é que, no modelo hierárquico, para se acessar qualquer nó do banco (da rede), é necessário sempre passar pela raiz. Nesse modelo, os dados são estruturados em hierarquias ou árvores. Os nós das hierarquias (ou da árvore) contêm ocorrências de re- gistros; cada registro é uma coleção de campos (atributos), cada um contendo apenas uma informação. O registro da hierarquia que precede aos outros é o registro pai; os outros, por sua vez, são chamados de registros filhos. Um exemplo de sistema/em- presa que adotou o modelo hierárquico foi o sistema comercial Information Management System, da IBM Corp (IMS), e alguns outros, como o System 2K (da SAS Inc.) e o TDMS. O exemplo a seguir, da figura 7, apresenta o mesmo banco de dados dos dois modelos anteriores (relacional e de rede), só que, agora, no mo- delo hierárquico. e-Tec Brasil/CEMF/Unimontes Informática24 Figura 7: Exemplo de banco de dados do modelo hierárquico. Fonte: Disponível em: <http://lh5.ggpht.com/franciscogpneto/SMWHaftiOSI/AAAAAAAAGro/dAe-R1_ w5HI/image_thumb%5B3%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto). Como você pode observar, existemdiferentes modelos de dados em BD. Porém, devido ao tempo curto para estudo da disciplina e, principal- mente, à maior utilização do modelo relacional em relação aos demais, este caderno concentrar-se-á na explicação mais detalhada apenas dos modelos que envolvem o relacional (o Modelo Entidade Relacionamento e o Modelo Relacional). 2.3 Esquema Certamente, você já ouviu falar em esquema, porém, muito prova- velmente, em outra conotação. Portanto, para não confundirmos esquema em banco de dados com “outros esquemas”, vamos aprendê-lo logo? Bom, como descrito, muitas vezes, as pessoas confundem os termos “descrição” do banco de dados com o banco de dados propriamente dito. A descrição do banco de dados é conhecida como “esquema” do banco de dados; este é definido durante o desenvolvimento (criação) do projeto do banco de dados. Um esquema, uma vez definido, não deve ser modificado frequentemente; desta forma, a sua definição requer bastante análise e mui- tos critérios. No esquema, basicamente, será definida a estrutura do banco de dados (tabelas, atributos, domínios, relacionamentos, restrições), conforme Date (2000). A maioria dos modelos de dados apresenta algumas convenções para a exibição de esquemas por meio de diagramas, conforme ilustram as figuras da seção 2.2. Para uma melhor compreensão de um esquema, vamos fazer uma analogia com linguagem de programação e algoritmos. Neste sentido, as va- riáveis e os tipos de dados assumidos por elas seriam o esquema. Se ainda não ficou claro, não se preocupem, pois, na aula 4, serão apresentados mais exemplos de esquemas. e-Tec Brasil/CEMF/UnimontesBanco de Dados 25 2.4 Instância Para entendermos o que é uma instância, vamos aproveitar da mes- ma analogia feita com linguagem de programação e algoritmos, apresentada na seção anterior (2.3). Entende-se por instância do banco de dados os valo- res/dados assumidos pelas variáveis do programa. Assim, podemos dizer que os dados (valores) armazenados em um banco de dados, em um determinado instante do tempo, formam um conjunto chamado de “instância do banco de dados”, conforme concebem Elmasri e Navathe (2005). A instância, diferentemente do esquema, altera toda vez que o banco de dados sofre qualquer modificação de conteúdo. O SGBD é responsável por garantir que toda instância do banco de dados satisfaça ao esquema do banco de dados, respeitando sua estrutura e suas restrições. Resumo Nesta aula, você aprendeu: • os principais conceitos de sistemas de banco de dados; • a arquitetura de um SBD e os componentes dessa arquitetura; • a conhecer e a identificar um modelo de dados; • a planejar e AA desenvolver a modelagem de um projeto de banco de dados nos diferentes modelos apresentados (principal- mente o relacional). Atividades de aprendizagem 1. Quais são os elementos que compõem a arquitetura de um sistema de banco de dados? 2. O que são os modelos de dados? 3. Qual a principal motivação para a criação do modelo relacional? E para o modelo orientado a objeto? 4. O que são esquema e instância em banco de dados? Não deixe de acompanhar as novidades e inovações do SGBD! Lembre-se, a aprendizagem é sempre contínua! e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 27 Aula 3 – Modelagem de dados – Modelo Entidade Relacionamento – MER Objetivos • descrever os conceitos envolvidos na modelagem Entidade Re- lacionamento; • apresentar os principais termos utilizados na construção de um banco de dados no MER; • possibilitar aos alunos a construção do conhecimento para a criação de modelos e diagramas ER, com os respectivos rela- cionamentos. 3.1 Introdução Agora que já conhecemos os tipos de modelos de dados, vamos iniciar nossos estudos descrevendo sobre o modelo mais simples, mas não menos útil na construção do projeto de banco de dados relacional. Vamos lá? O Modelo Entidade Relacionamento é um modelo de dados con- ceitual de alto nível, tido como o mais popular; é utilizado principalmente durante o processo de projeto de banco de dados, conforme relatam Elmasri e Navathe (2011). No MER, os conceitos envolvidos na construção de um bom projeto de banco de dados foram planejados para estar o mais próximo possível do entendimento e da visão que o usuário tem dos dados, não se preocupando em representar como esses dados estarão realmente armazenados. A construção de um projeto de banco de dados é constituída de al- gumas fases; cada uma delas, responsável pela realização de algumas ações específicas, conforme ilustra a figura 8. Na fase inicial, de partida, são ob- servados aspectos do mundo real, chamados de “minimundo”. A partir daí, realiza-se a obtenção e a análise dos requisitos por meio de reuniões e de outras formas, nas quais se discutem todas as questões pertinentes ao que se deseja do sistema de banco de dados. Vencida esta fase, reúnem-se to- das as informações (requisitos) para a construção do projeto conceitual da base de dados. Na fase de projeto conceitual, é desenvolvido o esquema conceitual, no qual são especificados os esquemas do banco de dados em construção. É neste momento em que mais se aplicam os modelos de entida- de relacionamento. Na fase de mapeamento do modelo de dados, também conhecida como projeto lógico, o objetivo é transformar o esquema de mo- delo de dados de alto nível (projeto conceitual) em um modelo de dados de implementação. Até esta fase, tudo que se define é independente do SGBD a ser utilizado. Qualquer que seja o sistema gerenciador de banco de dados e-Tec Brasil/CEMF/Unimontes Informática28 adotado, o que foi desenvolvido até então será perfeitamente aproveitado. A partir da fase de mapeamento, é preciso conhecer qual o SGBD que será utilizado e realizar todo o mapeamento baseado especificamente no sistema escolhido. A última etapa é a fase do projeto físico, na qual são definidas as estruturas de armazenamento interno, os índices, os caminhos de acesso e as organizações de arquivo para os arquivos do banco de dados, conforme descrevem Elmasri e Navathe (2005). Figura 8: Diagrama ilustrando as principais fases de um projeto de banco de dados. Fonte: Acervo próprio. 3.2 Entidade, atributo e relacionamento Você já tinha lido ou ouvido falar de algum desses termos? Prova- velmente sim, porém, talvez em outro contexto. Em se tratando do contexto de banco de dados, vamos ver o que são e como são utilizados? Comecemos falando, então, de entidade. O principal objeto ou o objeto básico que um modelo ER representa é a entidade. Uma entidade é um objeto com uma existência própria, podendo ser física (concreta) – uma pessoa, um veículo, um equipamento – ou abstrata (conceitual) – um depar- tamento, um curso, um cargo, uma conta. (ELMASRI; NAVATHE, 2005). e-Tec Brasil/CEMF/UnimontesBanco de Dados 29 Ainda segundo Elmasri e Navathe (2005), cada entidade possui um conjunto de blocos de informações, devidamente organizados, que a carac- teriza e a identifica. Esses “blocos” de informações são chamados de atribu- tos. Para melhor compreensão, podemos ter, como exemplos de entidades, PROFESSOR, ALUNO, DISCIPLINA. A entidade PROFESSOR poderia ser consti- tuída, por exemplo, pelos atributos: Matrícula, MatrProf, NomeProf, Função, Salário. A entidade DISCIPLINA teria os atributos: Código, NomeDisc, Pro- fDisp, CargaHorária, NumAlunosMatr. Já a entidade ALUNO seria constituída dos atributos: MatrAluno, NomeAlu, Curso, Média. Cada um dos atributos de cada entidade terá um valor particular, e o conjunto desses valores é que é responsável pela maior ocupação de espaço de armazenamento na base de dados do banco. Agora que vimos entidade e atributo, vamos entender relaciona- mento. De acordo com Date (2000), o relacionamento é uma associação entre uma ou várias entidades. Por exemplo: ao fazermos a associação entre as entidades PROFESSOR e DISCIPLINA, estaremos construindo um relaciona- mento entre ambas, que poderíamos chamar de Ministra ou Leciona,deno- tando que o professor ministra ou leciona a disciplina. Para maior controle e organização dos dados, os relacionamentos são criados com algumas restrições. Essas restrições chamam-se “razão de cardinalidade”, e especificam a quantidade de instâncias em um relaciona- mento que os elementos das entidades podem participar, segundo Elmasri e Navathe (2005). De acordo com Elmasri e Navathe (2011) a razão de cardina- lidade pode ser classificada em três tipos, descritos a seguir. • 1:1 (lê-se um para um): significa que só pode haver uma única instância entre as duas entidades envolvidas, ou seja, sendo duas entidades A e B, uma ocorrência em A estará associada com, no máximo, uma única ocorrência em B, e uma ocorrência em B estará associada com, no máximo, uma única ocorrência em A. Por exemplo: o relacionamento Gera, entre as entidades PEDIDO e FATURA; pode conter a cardinalidade 1:1, indicando que um pedido só pode gerar uma única fatura, e, ainda, que uma fatura só pode ter sido gerada por um único pedido. A representação para este relacionamento está exibida na figura 09 (como fazer esta representação será explicado na seção 3.4, deste caderno). Figura 9: Exemplo de diagrama de relacionamento 1:1. Fonte: Acervo próprio. • 1:N ou N:1 (lê-se um para N ou N para um - onde N signifi- ca muitos): significa que, em uma das entidades (1), só poderá haver um única instância relacionada; na outra entidade (N), poderá haver uma ou mais instâncias relacionadas, ou seja, sen- do duas entidades A e B, uma ocorrência em A estará associada e-Tec Brasil/CEMF/Unimontes Informática30 com uma ou várias ocorrências em B, e uma ocorrência em B estará associada com, no máximo, uma única ocorrência em A. Por exemplo: o relacionamento Leciona, entre as entidades PRO- FESSOR e DISCIPLINA, representado na figura 10, normalmente possui uma razão de cardinalidade de 1:N, na qual um professor pode lecionar várias disciplinas e uma determinada disciplina só pode ser lecionada por um único professor. O digrama de repre- sentação desse relacionamento está ilustrado na figura 10. Figura 10: Exemplo de diagrama de relacionamento 1:N. Fonte: Acervo próprio. • M:N (lê-se M para N - onde M e N significam muitos): significa que poderá haver uma ou várias instâncias em ambas as en- tidades envolvidas, ou seja, sendo duas entidades A e B, uma ocorrência em A poderá estar associada a uma ou várias ocor- rências em B, e vice-versa. Por exemplo: no relacionamento Fre- quenta, entre as entidades ALUNO e DISCIPLINA, um aluno pode frequentar várias disciplinas, e uma mesma disciplina pode ser frequentada por vários alunos. O diagrama para representar este relacionamento, seria conforme o exposto na figura 11. Figura 11: Exemplo de diagrama de relacionamento M:N. Fonte: Acervo próprio. 3.3 Tipos de entidades e atributos As entidades e os atributos são classificados em diferentes tipos. Que tal conhecermos esses tipos? Para isto, vamos começar com a classificação dos tipos de entidades, segundo Date (2000). • Entidade fraca: são as entidades que não possuem atributos- -chave próprios, isto é, que dependem dos atributos-chave de uma outra entidade. Por exemplo: numa relação entre as duas entidades, DEPENDENTE e EMPREGADO, todos os elementos da entidade Dependente são dependentes da entidade Empregado, ou seja, só irá existir um dependente se houver o registro do empregado correspondente ao mesmo. Portanto, a entidade De- pendente é uma entidade fraca. • Entidade forte: são as entidades que possuem seus próprios atributos-chave, ou seja, são independentes. Por exemplo: ain- e-Tec Brasil/CEMF/UnimontesBanco de Dados 31 da utilizando o exemplo anterior, a entidade EMPREGADO é inde- pendente de qualquer outra entidade, ou seja, possui existência própria. Neste caso, a entidade Empregado é uma entidade forte. Exemplos da representação de entidade fraca e de entidade forte estão na próxima seção; mais detalhes na aula 4, deste caderno. De acordo com Silberschatz, Korth & Sudarshan (1999), os atributos, no modelo ER, podem ser caracterizados pelos seguintes tipos descritos a seguir. • Simples ou compostos: atributos simples são aqueles que não são divisíveis, ou seja, o seu conteúdo não pode ser separado em partes, como, por exemplo: matrícula, função, salário. Já os compostos, eles podem ser separados em partes (isto é, sepa- rados em outros atributos), caso seja necessário. Por exemplo: NomeProf poderia ser estruturado em PriNomeProf, SegNome- Prof e UltNomeProf. Sendo que PriNomeProf corresponderia ao primeiro nome do professor, SegNomeProf, ao segundo nome, e UltNomeProf, ao último nome do professor. • Monovalorados ou multivalorados: atributos monovalorados são aqueles constituídos de um único valor para uma referida entidade, por exemplo: data_de_nascimento, cpf, salário de uma entidade chamada EMPREGADO. Os multivalorados são aqueles que podem assumir mais de um valor para uma determi- nada instância de um atributo. Como exemplos, podemos citar os atributos dependente, telefone e e-mail. Ainda considerando a entidade Empregado, citada anteriormente, cada um desses atributos poderia possuir nenhum, um ou mais valores em seu conteúdo. No caso dos atributos multivalorados, o mais adequa- do é que se estabeleçam limites inferiores e, principalmente, superiores para tais atributos. • Derivados: o valor desse tipo de atributo é derivado de outro atributo ou entidade a ele relacionadas. Para um melhor enten- dimento, podemos citar o atributo idade, que pode ser obtido através da diferença entre a data atual do sistema e a data_de_ nascimento informada na entidade da pessoa. • Nulo: é utilizado quando uma entidade não possuir valor para um determinado atributo. Como exemplos, podemos citar os atributos: dependente (nem todos os empregados possuem de- pendentes), e-mail (nem todos os empregados possuem email), celular (nem todos possuem). Nulo, na verdade, é a ausência de valor, ou seja, quando você deixa de informar o valor para um determinado atributo, o mesmo irá assumir o valor nulo (como padrão). Mas, atenção! Nulo é diferente de espaço em branco. Se você pressionar a barra de espaço em um determinado atri- buto (dependente, email, celular, por exemplo) na hora da inser- ção de dados, isso não significa nulo, e sim espaço em branco. 3.4 Diagrama Entidade Relacionamento (DER) Você tem algum conhecimento sobre DER? Sabe para que serve? Bom, se a sua resposta for não, não há problema, pois estamos aqui para explicar. Sendo assim, vamos iniciar. e-Tec Brasil/CEMF/Unimontes Informática32 O Modelo Entidade Relacionamento é representado através de al- guns símbolos que compõem o Diagrama Entidade Relacionamento (DER). Para cada elemento de um relacionamento (entidade, atributo, re- lacionamento, razão de cardinalidade), existe um símbolo representativo. Sendo assim, vamos apresentar cada um desses símbolos a seguir, ilustrados na figura 12. Figura 12: Resumo de notação de diagrama ER. Fonte: Acervo próprio. Agora, vamos apresentar três exemplos de DER, na figura 13, para entendermos melhor a sua aplicação. Passos para construir um Modelo Entidade Relação: 1º) identificar as entidades; 2º) para cada entidade, procurar identificar os atributos necessários e definir a chave primária; 3º) buscar identificar todos os relacionamentos entre as entidades; 4º) procurar validar o modelo obtido e repetir este processo desde o 1º passo, caso seja necessário. Dicas para a construção de diagramas ER: - a presença de um substantivo, usualmente, indica uma entidade; - a presença de um verbo é uma forte indicação de um relacionamento. e-Tec Brasil/CEMF/UnimontesBanco de Dados 33 Figura 13: a) Demonstra um relacionamento uniário Gerencia, entre a entidade EMPREGADO e ela mesma; b) ilustra o relacionamento binário Possui, entre as entidades FUNCIONÁRIO e DEPENDENTE; c) exibe um relacionamento ternário Ministra, entre as entidadesPROFESSOR, DISCIPLINA e ALUNO (quando não há exigências, pode-se omitir a razão de cardinalidade e os atributos). Fonte: Acervo próprio. Segundo Elmasri e Navathe (2005), a quantidade de entidades par- ticipantes de um mesmo relacionamento é caracterizada como “Grau do Relacionamento”. Assim, o grau do relacionamento pode ser de três tipos, conforme os descrevemos a seguir. Uniário: também chamado de autorrelacionamento ou relaciona- mento recursivo, é a relação de uma entidade com ela mesma, ou seja, ape- nas uma entidade participante. O item (a) da figura 13 demonstra um bom exemplo de autorrelacionamento. Binário: é o relacionamento entre duas entidades distintas. O item (b) da figura 13 apresenta um exemplo de relacionamento binário. Ternário: é o relacionamento envolvendo três entidades distintas. O item (c) da figura 13 ilustra um exemplo de relacionamento ternário. Podem existir relacionamentos envolvendo mais de três entidades, porém, isto não será objeto de estudo neste caderno didático. e-Tec Brasil/CEMF/Unimontes Informática34 Resumo Nesta aula, você aprendeu: • os principais conceitos e termos envolvidos num Modelo Entida- de Relacionamento (ER); • a aplicação de um modelo ER num projeto de banco de dados; • planejar e construir modelos e diagramas ER de um banco de dados. Atividades de aprendizagem 1. Qual o principal objetivo do Modelo Entidade Relacionamento (MER)? 2. O que é mapeamento do modelo de banco de dados? 3. Descreva a sequência de ações para se construir uma modelagem Enti- dade Relacionamento. 4. Defina e exemplifique os termos entidade, atributo e relacionamento. 5. Construa exemplos de diagramas de relacionamento de cardinalidade 1:1, 1:N e M:N. No mínimo 1 de cada e que sejam diferentes dos exemplos do caderno da disciplina. 6. O que significa grau de relacionamento? Quais são os tipos? Explique cada um deles. 7. Desenvolva um DER para que um banco possa gerenciar as contas parti- culares de cada cliente em suas respectivas agências. Você deverá de- cidir quais atributos de cada entidade serão necessários para o modelo. 8. Preencha os diagramas a seguir com as respectivas entidades e os seus rela- cionamentos; informe também qual o grau de cardinalidade em cada caso. a. Entidades Relacionamento Banco, agência Administra b. Entidades Relacionamento Cliente, pedido Solicita e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 35 Aula 4 – Modelagem de dados – Modelo Relacional (MR) Objetivos • conceituar e apresentar os principais elementos do modelo re- lacional; • demonstrar as principais aplicações do modelo na construção de projeto de banco de dados relacional; • realizar o mapeamento do Modelo Entidade Relacionamento (MER) para o Modelo Relacional (MR). 4.1 Introdução Agora que aprendemos sobre o Modelo ER, que tal conhecermos o Modelo Relacional? Você observará, inclusive, que existem algumas seme- lhanças entre ambos. O Modelo Relacional tem muita semelhança com o Modelo ER. Eu diria que o MR é complementar ao MER. Conforme Elmasri e Navathe (2005), o Modelo Relacional represen- ta um banco de dados como uma coleção de relações comumente chamadas de tabelas. Cada relação é entendida como uma tabela que contém valores, e cada linha nesta tabela é composta de um conjunto de dados relacionados. Os valores contidos nas linhas seriam as instâncias de uma entidade ou de um relacionamento. Cada relação ou cada tabela é composta de linhas e colunas. Ainda segundo o autor referenciado anteriormente, na terminologia do Modelo Re- lacional, uma tabela é chamada de relação, um linha é chamada de tupla e as colunas são chamadas de atributos. A figura 14 ilustra cada um desses elementos (destacados em cores diferentes) do Modelo Relacional na tabela PRODUTO. Observem atentamente! Figura 14: Relação Produto, identificando cada um dos elementos. Fonte: Acervo próprio. Apesar do crescimento do uso de outros modelos, o MR ainda é o mais utilizado pelas empresas. e-Tec Brasil/CEMF/Unimontes Informática36 4.2 Relações, domínios, tuplas e atributos Apesar de serem termos de nomenclaturas diferentes, você irá per- ceber que eles têm praticamente a mesma função de alguns dos termos da aula 3. Vamos conferir? As relações em modelos relacionais, conforme dito anteriormente, representam o conjunto de informações de uma tabela (entidade no MER). Assim como no Modelo ER, as relações são construídas definindo-se, primei- ramente, o esquema da relação, no qual são especificados o nome da relação e os atributos. A especificação dos atributos segue-se da definição dos domínios dos mesmos. Um domínio consiste de um conjunto de valores (dados) atômi- cos que um atributo pode assumir. Um valor é dito atômico quando o mesmo não pode ser dividido, separado, ou seja, ele é indivisível. Assim, de acordo com Date (2000), um domínio é determinado pelo tipo de dado que um atributo pode assumir. Por exemplo: um atributo CÓDIGO, do tipo inteiro, só pode aceitar dados numéricos (números) inteiros; um atributo DESCRI- ÇÃO, do tipo caractere, de tamanho 20, pode aceitar letras, números, ponto, acento etc., porém, não pode ultrapassar 20 caracteres. Conforme mencionado anteriormente, as tuplas são as linhas da re- lação. Tomando o exemplo da figura 14, a linha com | 1020 | Óleo | 9 | 2,15 | corresponde a uma tupla da relação ALUNO. Assim como | 1045 | Arroz | 10 | 8,99 | também constitui uma tupla da mesma relação. Os atributos de uma relação são representados pelas colunas. Os atributos, aqui, têm a mesma representação que no Modelo ER. 4.3 Atributos-chave Já leram ou ouviram alguma coisa sobre atributos-chave? De qual- quer forma, é importante o bom entendimento desta seção, pois, dela, de- penderão muitas outras informações constantes no restante deste caderno. Uma relação é constituída de um conjunto de tuplas e atributos dis- tintos. Para uma correta distinção das instâncias de uma relação, o Modelo Relacional adotou o conceito de atributo-chave. De acordo com Elmasri e Navathe (2005), o atributo chave pode ser constituído de um ou mais atri- butos, e eles são encarregados de identificar e distinguir, de forma única e exclusiva, cada tupla de uma relação; assim, são chamados de superchave. Toda relação irá possuir, no mínimo, uma superchave, que será o conjunto de todos os seus atributos. Ainda segundo o mesmo autor, as chaves de uma relação podem ser classificadas das seguintes formas, descritas a seguir. • Chave primária: composta por um ou mais atributos capazes de identificar, de forma única e exclusiva, cada tupla da relação. Quando é constituída de mais de um atributo, ela é chamada de chave primária composta, e cada um dos atributos desta Os atributos-chave são essenciais em BD; por isso, procurem assimilar bem as informações apresentadas. e-Tec Brasil/CEMF/UnimontesBanco de Dados 37 chave composta deve possuir a capacidade de, sozinho, também identificar de forma única cada tupla da relação. A chave pri- mária no MR é representada colocando-se o(s) atributo(s)-chave sublinhado(s). Exemplos: o atributo Código da relação PRODUTO é uma chave primária, conforme ilustrado na figura 15, item (a); numa relação ALUNO, constituída dos atributos matrícula, CPF, nome, curso, e-mail, os atributos Matrícula e CPF formam uma cha- ve primária composta, conforme ilustrado na figura 15, item (b). a. Produto Código Descrição Qtde ValorUnit b. Aluno Matrícula CPF Nome Curso e-mail Figura 15: Esquema das relações PRODUTO e ALUNO. Fonte: Acervo próprio. • Chave candidata: formada pelo conjunto de atributos capazes de se tornarem uma chave primária. Exemplo: qualquer um dos atributos Matrícula e CPF da relação ALUNO são chaves candi- datas. • Chave estrangeira: formada pela chave primária de uma outra relação. Exemplo: considerando as relações PRODUTO com os atributos código, descrição, Qtde e ValorUnit, e ITENS_PEDIDO com os atributos CodProd, CodPed, Quant,o atributo CodProd da relação ITENS_PEDIDO é chave estrangeira, pois representa o atributo Código da relação PRODUTO, conforme ilustra a figura 16. Na terminologia do MR, a chave estrangeira é representada colocando o atributo-chave em itálico. Produto Código Descrição Qtde ValorUnit Itens_Pedido CódProd CodPed Quant Figura 16: Modelo identificando chave estrangeira. Fonte: Acervo próprio. 4.4 Mapeamento do MER para MR Já participou de algum projeto no qual foi realizado o mapeamento de MER para MR? Tem ideia do que seja? Nesta seção, iremos aprender o que é e como fazer um mapeamen- to desse tipo. Embora seja crescente o uso da modelagem orientada a objeto, ainda é grande o uso, em projetos de banco de dados, da modelagem em alto e-Tec Brasil/CEMF/Unimontes Informática38 nível (o MER). Contudo, o uso dessa modelagem é apenas parte do processo de construção do projeto de banco de dados. O resultado da modelagem ER são esquemas de observações, ou seja, Diagramas Entidade Relacionamento (DER) que devem ser integrados, posteriormente, para originar apenas um grande e único esquema. O mape- amento do Modelo Entidade Relacionamento para o Modelo Relacional é uti- lizado justamente para este fim, para complementar e completar o projeto de banco de dados. A seguir, segue um resumo dos passos básicos necessários para se fazer o mapeamento do MER para o MR, baseado na obra de Elmasri e Nava- the (2005). Passo 1: todas as entidades são mapeadas para uma relação con- tendo os mesmos atributos do MER. Veja o exemplo da figura 17. Figura 17: Mapeamento de entidade MER para MR. Fonte: Acervo próprio. Na figura 17, foi apresentado o MER de uma entidade chamada Em- pregados, com os atributos CPF (onde a bolinha preenchida representa chave primária), nome e idade (as bolinhas vazias representam atributos comuns). Fazendo-se o mapeamento para o Modelo Relacional, a relação Empregados ficou como mostrado na figura. Passo 2: para entidade fraca é criada a relação contendo todos os seus atributos, tendo acrescido, como chave estrangeira, a chave primária da entidade forte (pai). Veja o exemplo da figura 18. Figura 18: Mapeamento de entidade fraca de MER para MR. Fonte: Acervo próprio. e-Tec Brasil/CEMF/UnimontesBanco de Dados 39 Na figura 18, foi apresentado o MER do relacionamento Possui en- tre as entidades Funcionário, com os atributos CodFunc, Nome, DataNasc e Idade e Dependente, com os atributos CodDep, Nome e DataN. Fazendo-se o mapeamento para o Modelo Relacional, a relação Dependente ficou como mostrado na figura. Passo 3: para relacionamentos 1:1 - dentre as relações que ma- peiam as entidades participantes, escolha uma delas (a que for mais fraca, dependente) e inclua como chave estrangeira a chave primária da outra. Veja o exemplo da figura 19. Figura 19: Mapeamento de relacionamento 1:1 de MER para MR. Fonte: Acervo próprio. Na figura 19, foi apresentado o MER do relacionamento Retirou (com o atributo DtRetirada) entre as entidades Pessoas, com os atributos CPF, Nome e Endereço e CateirasMotorista, com os atributos Numero, Validade, DataExpedição e Categoria. Fazendo-se o mapeamento para o Modelo Rela- cional, as relações Pessoas e CarteirasMotorista ficaram como mostrado na figura. Passo 4: para relacionamentos 1:N – escolha a relação que repre- senta a entidade presente no lado N e acrescente, como chave estrangei- ra, a chave primária da entidade do lado 1. Veja o exemplo da figura 18, no passo 2. Passo 5: para relacionamentos M:N – é criada uma nova relação contendo, como chaves estrangeiras, as chaves primárias das entidades par- ticipantes mais os atributos do relacionamento. Veja o exemplo da figura 20. e-Tec Brasil/CEMF/Unimontes Informática40 Figura 20: Mapeamento de relacionamento M:N de MER para MR. Fonte: Acervo próprio. Na figura 20, foi apresentado o MER do relacionamento Participa (com o atributo DataInício) entre as entidades Empregado, com os atributos CPF, Nome e Projeto, com os atributos Código e Nome. Fazendo-se o mapea- mento para o Modelo Relacional, as relações Empregados, Projeto e Partici- pa (que virou uma entidade) ficaram como mostrado na figura. Resumo Nesta aula, você aprendeu: • os principais conceitos e termos envolvidos num Modelo Rela- cional; • a aplicação de um Modelo Relacional num projeto de banco de dados; • mapear um Modelo ER em um Modelo Relacional; • planejar e construir modelos relacionais de um banco de dados. Atividades de aprendizagem 1. Defina e exemplifique cada um dos seguintes termos em banco de dados: relação, tupla e domínio. 2. Qual a importância do Modelo Relacional para as organizações? e-Tec Brasil/CEMF/UnimontesBanco de Dados 41 3. Faça o mapeamento dos seguintes modelos ER para o Modelo Relacional: a. b. 4. Pesquise e apresente três exemplos de representação de banco de dados relacionais. Pode utilizar o próprio local de trabalho como cenário para isto. 5. O que são atributos-chave? 6. Qual a diferença entre chave primária e superchave? 7. O que é uma chave estrangeira? e-Tec Brasil/CEMF/UnimontesBanco de Dados AULA 1 Alfabetização Digital 43 Aula 5 – SQL básico Objetivos • apresentar os principais conceitos sobre Linguagem de Consul- ta Estruturada (SQL); • realizar estudos sobre DDL e DML; • realizar aplicações práticas dos principais comandos SQL; • definir e criar restrições de dados em SQL. 5.1 Conceito Você sabe o que significa SQL? Já leu ou ouviu falar? Bom, SQL (Structured Query Language – Linguagem de Consulta Es- truturada), como o próprio nome diz, é uma linguagem de definição e de ma- nipulação de um banco de dados relacional, conforme descreve Date (2000). A SQL foi criada especificamente para trabalhar com os SGBD’s relacionais criados pelo mundo; rapidamente, se tornou o padrão de linguagem de con- sulta mais utilizado no planeta. Uma das grandes vantagens do uso da SQL é que ela é um padrão reconhecido por todos os SGBD’s relacionais existentes. Qualquer que seja o SGBD escolhido pelo usuário ou pela empresa, a SQL irá se comunicar bem com ele. Caso o usuário resolva mudar de SGBD, ele não irá precisar se pre- ocupar com o acesso aos seus dados se tiver adotado o SQL como linguagem de consulta, pois os seus sistemas praticamente não sofrerão mudanças. Segundo Elmasri e Navathe (2005), a SQL é formada por dois gran- des grupos de funções e comandos, chamados de DDL (Linguagem de Defini- ção de Dados) e DML (Linguagem de Manipulação de Dados). 5.2 Comandos de definição de dados Por acaso, você já ouviu falar em comandos de definição de dados? Sabe o que significa? O grupo de comandos de definição de dados é conheci- do como o grupo DDL, e forma a fase inicial para a construção de qualquer banco de dados em SQL. De acordo com Elmasri e Navathe (2005), a DDL for- ma um conjunto de comandos responsáveis pela criação, alteração e deleção da estrutura das tabelas e dos índices de um banco de dados. Antes de continuarmos, é importante destacar que os comandos SQL podem sofrer pequenas alterações de um SGBD (SQL Server, Oracle, Mys- ql, PostgreSQL, DB2, Firebird etc.) para outro, principalmente nas sintaxes Nesta seção, iremos abordar os comandos de definição de dados em SQL utilizados no modo Shell (linhas de comandos digitados num prompt de comando). e-Tec Brasil/CEMF/Unimontes Informática44 dos comandos. Sendo assim, todo o material sobre SQL deste caderno está baseado no MySql. Para uma maior assimilação dos conteúdos estudados, se- rão apresentados exemplos práticos de cada um dos comandos relacionados. Para cada exemplo, será apresentado um problema e, em seguida, a solução (resposta) ao problema dado. Para iniciar, começaremos falando do comando para a criação do banco de dados. Para se criar um banco de dados em SQL, usa-se o comando: CREATE DATABASE <nome-do-banco-de-dados>; Veja um exemplo de aplicação. Problema: criar uma base de dados (um banco de dados) chamada AULASQL. Solução/Resposta: CREATEDATABASE aulasql; Uma vez definido (criado) o nome da base de dados, para poder trabalhar com esta base, é preciso abri-la para a edição. Para isto, utilizamos o seguinte comando (padrão do mysql): USE <nome-do-banco-de-dados> Veja um exemplo de aplicação. Problema: Abrir o banco de dados para a edição/manipulação dos dados. Solução/Resposta: USE aulasql; Até então, nós criamos a base de dados e a abrimos para a edição. Agora, é preciso criar as tabelas que farão parte deste banco de dados. Para isto, é preciso aprender o comando de criação de tabelas em SQL. O coman- do, neste caso, possui a seguinte sintaxe: CREATE TABLE <nome_tabela> (nome_atributo1 < tipo > [ NOT NULL ], nome_atributo2 < tipo > [ NOT NULL ], ...... nome_atributoN < tipo >) ; PRIMARY KEY (nome-atributo-chave) FOREIGN KEY nome-atributo-chave-estrangeira REFERENCES nome-atributo-chave-primária (nome-tabela-pai) ON DELETE [RESTRICT] ou [CASCADE] ou [SET NULL] Onde: • nome_tabela - é o nome da tabela a ser criada; • nome_atributo - é o nome do atributo (da coluna) a ser criado na tabela; SQL Server – SGBD -, desenvolvido e mantido pela Microsoft (http:// www.microsoft.com); Oracle - SGBD -, desenvolvido e mantido pela empresa Oracle (http://www.oracle.com); MySql - SGBD -, desenvolvido pela MySql AB, atualmente, é mantido pela Oracle (http://www.mysql.com); PostgreSQL – é um projeto open source (código aberto) coordenado pelo PostgreSQL Global Development Group (http://www. postgresql.org) -; DB2 – SGBD -, desenvolvido e mantido pela IBM (www.ibm.com/ software/data/db2); Firebird – SGBD -, desenvolvido e mantido pela Fundação FirebirdSQL (http:// www.firebirdsql.org). Os comandos SQL devem ser sempre finalizados com o uso do ponto e vírgula (;), conforme ilustra o exemplo anterior e os demais exemplos deste caderno. http://www.postgresql.org http://www.postgresql.org e-Tec Brasil/CEMF/UnimontesBanco de Dados 45 • tipo - é a especificação do tipo de atributo (integer ou int, char(n), varchar(n), decimal(n,m), real(n,m), date...); • n- número de dígitos ou de caracteres; • m- número de casas decimais; • NOT NULL – indica que o atributo não aceita valor nulo (ou va- zio); • PRIMARY KEY (nome-atributo-chave) – serve para definir qual atributo será a chave primária da tabela. Podem ser definidos mais de um atributo como chave; neste caso, os mesmos devem vir separados por vírgula dentro do parêntese; • FOREIGN KEY - nome-atributo-chave-estrangeira - REFERENCES nome-atributo-chave-primária (nome-tabela-pai) - serve para definir qual atributo será a chave estrangeira da tabela, ou seja, o campo que é a chave primária de outra tabela. Na opção RE- FERENCES, deve ser especificada a tabela que possui a chave primária referenciada. Para cada chave estrangeira, deve-se es- pecificar uma sequência do Foreign Key; • ON DELETE - esta opção só se aplica com o Foreign Key e es- pecifica o que deve ser feito pelo SGBD, quando houver uma exclusão de um registro na tabela pai (que contém a chave pri- mária referenciada) e houver algum registro correspondente nas tabelas filhas (com a respectiva chave estrangeira). As opções disponíveis são as especificadas a seguir. • RESTRICT – é a opção padrão. Ela não permite a exclusão na tabela pai de um registro em que a chave primária exista em alguma tabela filha. • CASCADE – opção que executa a exclusão em todas as tabe- las filhas que possuam o valor da chave que será excluída na tabela pai. • SET NULL - opção que atribui o valor NULO nos atributos das tabelas filhas que contenham o valor da chave que será ex- cluída na tabela pai. Veja um exemplo de aplicação. Problema: Criar uma tabela de nome EMPREGADO com os seguintes atributos e restrições: Código – do tipo inteiro, chave primária e não deve aceitar valor vazio ou nulo; Nome – do tipo caracter, de tamanho 40, não deve aceitar valor vazio ou nulo; Dtnasc – do tipo data; Salário – do tipo decimal, de tamanho 7 com duas casas decimais; CPF – do tipo inteiro e não aceita valor vazio ou nulo. Solução/Resposta: CREATE TABLE empregado ( codigo int not null, -- código funcional nome varchar2(40) not null, -- nome do empregado As intruções Primary Key e Foreign Key serão explicadas em mais detalhes na Aula 5. e-Tec Brasil/CEMF/Unimontes Informática46 dtnasc date, -- data de nascimento salario decimal(7,2), -- valor do seu salário CPF int not null, -- CPF do empregado Primary key (código); -- define código como chave primária Caso a estrutura definida com os comandos anteriores não seja a mais adequada ou que necessite de alguns ajustes, existe um comando que é responsável por fazer modificações na estrutura do banco. O comando em questão é o ALTER TABLE, que é capaz de alterar a estrutura de uma tabela acrescentando, retirando e alterando nomes, formatos das colunas e a inte- gridade referencial definidos em uma determinada tabela. A sintaxe do comando Alter Table segue logo a seguir. ALTER TABLE <nome-tabela> DROP <nome-atributo>; ADD <nome-atributo > <tipo-do-dado> [NOT NULL]; RENAME <nome-atributo > <novo-nome-atributo >; RENAME TABLE <novo-nome-tabela>; MODIFY <nome-atributo > <tipo-do-dado> [NULL]; ou [NOT NULL] Onde: • DROP – serve para excluir um atributo; • ADD – serve para adicionar um novo atributo; • RENAME – serve para renomear um atributo; • RENAME TABLE – serve para renomear a tabela; • MODIFY – serve para modificar/alterar o tipo do dado do atributo. Visando uma melhor compreensão dos comandos anteriores, serão relacionados alguns exemplos práticos, a seguir. Veja alguns exemplos de aplicação. Problema 1: acrescentar o atributo fone, do tipo caractere de ta- manho 14, na tabela EMPREGADO. Solução/Resposta: ALTER TABLE empregado ADD fone varchar(14). Problema 2: acrescentar o atributo codsetor como chave estrangei- ra, na tabela EMPREGADO. Solução/Resposta: ALTER TABLE empregado ADD FOREIGN KEY codsetor REFERENCES (Setor). Problema 3: renomear o atributo dtnasc para datanasc na tabela EMPREGADO. Solução/Resposta: ALTER TABLE empregado RENAME dtnasc datanasc. e-Tec Brasil/CEMF/UnimontesBanco de Dados 47 Problema 4: modificar o tipo do atributo salário (acrescentando 2 dígitos na parte inteira) na tabela EMPREGADO. Solução/Resposta: ALTER TABLE empregado MODIFY salário decimal(9,2). Problema 5: excluir o atributo fone da tabela EMPREGADO. Solução/Resposta: ALTER TABLE empregado DROP fone. Por fim, caso queira excluir a tabela como um todo, existe o coman- do DROP TABLE. A sintaxe deste comando é: DROP TABLE <nome-da-tabela> Veja um exemplo de aplicação. Problema: Excluir/deletar a tabela EMPREGADO. Solução/Resposta: DROP TABLE empregado; -- exclui/deleta a tabela EMPREGADO. 5.3 Comandos de Manipulação de Dados Agora, iremos falar dos comandos de manipulação de dados, já ou- viu algo sobre isto? Os comandos de manipulação de dados (DML) são os responsáveis pela inserção, exclusão, alteração e consulta (pesquisa) ou recuperação de dados em um banco de dados. Dadas as suas funcionalidades, os comandos de manipulação são os mais utilizados no gerenciamento e na manipulação de um BD, uma vez que costumam ser aplicados diversas vezes ao longo de um dia de trabalho. Sendo assim, é preciso um cuidado maior na execução dos mesmos, para que não sejam cometidos equívocos (inconsistências) ou ainda erros (lançamen- tos ou recuperação de dados incorretos) na base de dados. Agora, vamos falar dos comandos da DML. Para isto, iremos iniciar descrevendo sobre o comando INSERT. Você o conhece? O comando INSERT serve para inserir um novo registro (uma nova linha) em uma tabela do BD. Para isto, é necessário escrever a sintaxe do comando corretamente, conforme o modelo a seguir: INSERT INTO <nome-tabela> [(<nome-atributo>, [<nome-atributo>])] VALUES (<relação dos valores a serem incluídos>) Onde: • nome-tabela - representa o nome da tabela na qual será incluído o registro
Compartilhar