Informtica Banco de Dados Leandro Clementino de Almeida
Ministrio da Educao e-Tec Brasil/CEMF/Unimontes Escola Tcnica Aberta do Brasil Informtica Banco de Dados Leandro Clementino de Almeida Montes Claros - MG 2011 Ministro da Educao Fernando Haddad Secretrio de Educao a Distncia Carlos Eduardo Bielschowsky Coordenadora Geral do e-Tec Brasil Iracy de Almeida Gallo Ritzmann Governador do Estado de Minas Gerais Antnio Augusto Junho Anastasia Secretrio de Estado de Cincia, Tecnologia e Ensino Superior Alberto Duque Portugal Reitor Joo dos Reis Canela Vice-Reitora Maria Ivete Soares de Almeida Pr-Reitora de Ensino Anette Marlia Pereira Diretor de Documentao e Informaes Huagner Cardoso da Silva Coordenador do Ensino Profssionalizante Edson Crisstomo dos Santos Diretor do Centro de Educao Profssonal e Tecnlogica - CEPT Masa Tavares de Souza Leite Diretor do Centro de Educao Distncia - CEAD Jnio 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 Tcnico em Agronegcio Augusto Guilherme Dias
Coordenador do Curso Tcnico em Comrcio Carlos Alberto Meira
Coordenador do Curso Tcnico em Meio Ambiente Edna Helenice Almeida Coordenador do Curso Tcnico em Informtica Frederico Bida de Oliveira Coordenadora do Curso Tcnico em Vigilncia em Sade Simria de Jesus Soares Coordenadora do Curso Tcnico em Gesto em Sade Zaida ngela Marinho de Paiva Crispim BANCO DE DADOS e-Tec Brasil/CEMF/Unimontes Elaborao Leandro Clementino de Almeida Projeto Grfco e-Tec/MEC Superviso Wendell Brito Mineiro Diagramao Hugo Daniel Duarte Silva Marcos Aurlio de Almeida e Maia Impresso e Acabamento Grfca RB Digital Designer Instrucional Anglica de Souza Coimbra Franco Ktia Vanelli Leonardo Guedes Oliveira Reviso Maria Ieda Almeida Muniz Patrcia Goulart Tondineli Rita de Cssia Silva Dionsio Presidncia da Repblica Federativa do Brasil Ministrio da Educao Secretaria de Educao a Distncia e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 3 Prezado estudante, Bem-vindo ao e-Tec Brasil/Unimontes! Voc faz parte de uma rede nacional pblica de ensino, a Escola Tcnica Aberta do Brasil, instituda pelo Decreto n 6.301, de 12 de dezem- bro 2007, com o objetivo de democratizar o acesso ao ensino tcnico pblico, na modalidade a distncia. O programa resultado de uma parceria entre o Ministrio da Educao, por meio das Secretarias de Educao a Distancia (SEED) e de Educao Profssional e Tecnolgica (SETEC), as universidades e escola tcnicas estaduais e federais. A educao a distncia no nosso pas, de dimenses continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pes- soas ao garantir acesso educao de qualidade, e promover o fortalecimen- to da formao de jovens moradores de regies distantes, geografcamente ou economicamente, dos grandes centros. O e-Tec Brasil/Unimontes leva os cursos tcnicos a locais distantes das instituies de ensino e para a periferia das grandes cidades, incenti- vando os jovens a concluir o ensino mdio. Os cursos so ofertados pelas instituies pblicas de ensino e o atendimento ao estudante realizado em escolas-polo integrantes das redes pblicas municipais e estaduais. O Ministrio da Educao, as instituies pblicas de ensino tc- nico, seus servidores tcnicos e professores acreditam que uma educao profssional qualifcada integradora do ensino mdio e educao tcnica, no s capaz de promover o cidado com capacidades para produzir, mas tambm com autonomia diante das diferentes dimenses da realidade: cul- tural, social, familiar, esportiva, poltica e tica. Ns acreditamos em voc! Desejamos sucesso na sua formao profssional! Ministrio da Educao Janeiro de 2010 Apresentao e-Tec Brasil/CEMF/ Unimontes e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 5 Indicao de cones Os cones so elementos grfcos utilizados para ampliar as formas de linguagem e facilitar a organizao e a leitura hipertextual. Ateno: indica pontos de maior relevncia no texto. Saiba mais: oferece novas informaes que enriquecem o assunto ou curiosidades e notcias recentes relacionadas ao tema estudado. Glossrio: indica a defnio de um termo, palavra ou expresso utilizada no texto. Mdias integradas: possibilita que os estudantes desenvolvam atividades empregando diferentes mdias: vdeos, flmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes nveis de aprendizagem para que o estudante possa realiz-las e conferir o seu domnio do tema estudado. e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital Sumrio 7 Palavra dos professores conteudistas ....................................... 11 Projeto instrucional ........................................................... 13 Aula 1 - Introduo ............................................................ 15 1.1 Processamento tradicional de arquivos x banco de dados ..... 17 1.2 Profssionais 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 Introduo ........................................................... 21 2.2 Modelos de dados ................................................... 22 2.3 Esquema ............................................................. 26 2.4 Instncia ............................................................. 26 Resumo ................................................................... 27 Atividades de Aprendizagem ........................................... 27 Aula 3 Modelagem Ae dados Modelo Entidade Relacionamento MER . 29 3.1 Introduo ........................................................... 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 Introduo ........................................................... 37 4.2 Relaes, domnios, 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 bsico ............................................................ 45 5.1 Conceito .............................................................. 45 5.2 Comandos de defnio de dados ................................. 45 5.3 Comandos de Manipulao de Dados ............................. 49 5.4 Restries de dados ................................................ 55 Resumo ................................................................... 58 Atividades de Aprendizagem ........................................... 58 Aula 6 Integrao de banco de dados e internet ....................... 61 6.1 SGBD web ............................................................ 61 6.2 Conexo do SGBD com internet ................................... 62 Resumo ................................................................... 63 Atividades de Aprendizagem ........................................... 64 Referncias ..................................................................... 65 Currculo do professor conteudista ......................................... 66 e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 9 Caro estudante! Neste mdulo, iniciaremos os estudos sobre banco de dados. Nele, teremos a oportunidade de aprender os principais conceitos, recursos, apli- caes e servios trabalhados em banco de dados. Por acaso, j teve a oportunidade de estudar alguma coisa sobre banco de dados? No? Ento, este momento ser muito proveitoso para todos ns. Caso j tenha algum conhecimento sobre banco de dados, os estudos realizados no sero menos importantes, pois haver um momento de relem- brar coisas e de tambm aprender assuntos novos. Dito isto, que tal comearmos nossos estudos? O termo banco de dados, assim como as tecnologias de bancos de dados, tem ganhado cada vez mais importncia e est se tornando cada dia mais til e popular, com a expanso da utilizao 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 utilizao de servios bancrios, como depsito, saque, pagamentos de contas etc. Todos esses servios so possveis graas a um bom sistema de banco de dados. Outros exemplos: se acessamos o catlogo de uma biblioteca virtual (informatizada) para consul- tar uma bibliografa; se compramos produtos, como livros, brinquedos, equi- pamentos eletrnicos etc., ou de um fornecedor por intermdio de sua pgi- na na internet (na web); se fazemos reservas em um hotel ou para a compra de passagens areas ou terrestres; quase que certamente, essas atividades envolvero uma pessoa e/ou um programa de computador que acessar um banco de dados. H alguns anos apenas, as grandes empresas se benefciavam da uti- lizao de sistemas de banco de dados, porm, a sua implementao vem ga- nhando espao at mesmo em pequenas empresas e em pequenos comrcios. Essas interaes so exemplos do que podemos denominar aplica- es tradicionais de banco de dados, nos quais, a maioria das informaes que so armazenadas e acessadas apresenta-se em formatos textual ou nu- mrico. Alm disso, cada vez mais crescente a utilizao de bancos de dados que armazenam dados multimdia, geogrfcos e vetoriais. Nos ltimos anos, os avanos tecnolgicos geraram aplicaes bastante inovadoras e in- teressantes dos sistemas de banco de dados. Neste mdulo, voc ter condies de desenvolver seus conheci- mentos sobre banco de dados, pois trataremos, aqui, dos fundamentos e da prtica desse contedo. Palavra do professor conteudista e-Tec Brasil/CEMF/Unimontes Informtica 10 Voc ter oportunidade, ao longo da leitura das aulas, de perceber que a utilizao 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 contedo deste caderno didtico foi elaborado adotando-se uma dinmica de organizao na qual partiu-se de uma introdu- o sobre a temtica, passando pelos conceitos fundamentais dela, na busca da sua compreenso sobre banco de dados e sobre a importncia deste na formao do tcnico em Informtica. 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, alm de apresentar situaes nas quais no se necessita de um SGBD. Daremos continuidade a essa iniciao na Aula II, abordando conceitos de modelos de dados e os principais, e ainda esquema e instncias. Na Aula III, voc ser apresentado modelagem de dados e ir co- nhecer, especifcamente, 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 tambm 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 integrao do banco de dados com a internet. Assim, esperamos que, ao fnal desta disciplina, voc esteja habi- litado a: especifcar projeto fsico e lgico de banco de dados; gerenciar transaes de banco de dados por intermdio do uso de mtodos, tcnicas e ferramentas que envolvam os elementos de gesto de dados e transaes; estar familiarizado com a tecnologia de banco de dados, en- volvendo linguagens de defnio, consulta a banco de dados e aspectos de segurana e integridade. Sugerimos que voc dedique tempo sufciente para fazer a leitura, realizar as atividades e retirar suas dvidas. Sempre que considerar necess- rio, volte ao texto e refaa as atividades! No se limite a este material; faa pesquisas, converse com professores e colegas. Voc ver que aprender uma interessante aventura! Bons estudos! Leandro Clementino de Almeida e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 11 Disciplina: Banco de Dados (carga horria: 60h). Ementa: Conceituao sobre banco de dados. Identifcao e an- lise de modelos de bancos de dados. Identifcao e aplicao de um mode- lo de banco de dados. Conceituao de sistemas de gerncia de banco de dados multiusurio. Conceituao e anlise de caractersticas prprias de sistemas de gerenciamento de banco de dados multiusurio: gerenciamento de transaes, controle de concorrncia, recuperao de falhas, segurana e integridade de dados. Comparao de abordagens no convencionais para bancos de dados; integrao de bancos de dados e internet. AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORRIA Aula 1. Introduo - Conceituar os principais termos de banco de dados; - distinguir processamento de arqui- vos tradicional de banco de dados; - apresentar aspectos referentes importncia da aplicao e do uso de banco de dados; - possibilitar ao aluno defnir quando no for aconselhada a utilizao 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 identifcar 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 construo de um banco de dados no MER; - possibilitar aos alunos construir o conhecimento para a criao de mo- delos e diagramas ER, com os respec- tivos relacionamentos. - 12h Projeto instrucional e-Tec Brasil/CEMF/Unimontes Informtica 12 Aula 4. Modelagem de dados Mode- lo Relacional (MR) - Conceituar e apresentar os princi- pais elementos do Modelo Relacional; - demonstrar as principais aplicaes do modelo na construo 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) - bsico - Apresentar os principais conceitos sobre linguagem de consulta estrutu- rada (SQL); - realizar estudos sobre DDL e DML; - realizar aplicaes prticas dos prin- cipais comandos SQL; - defnir e criar restries de dados em SQL. - 16h Aula 6. Integrao de banco de da- dos e internet - Apresentar a importncia do uso de SGBD integrados internet; - apresentar o processo de conexo de um sistema com o banco de dados na internet; - demonstrar como se realiza a cone- xo do sistema com o banco de dados na web. - 4h e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 13 Aula 1 - Introduo Objetivos conceituar os principais termos de banco de dados; distinguir processamento de arquivos tradicional de banco de dados; apresentar aspectos referentes importncia da aplicao e do uso de banco de dados; possibilitar ao aluno defnir quando no for aconselhada a utili- zao 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 negcios? Pois o banco de dados (BD) e as demais tecnologias em volta dele esto 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 so utilizados, incluindo negcios diversos, comrcio eletrnico, Engenharia, Medicina, Direito, Edu- cao e as Cincias da Informao, para citar apenas algumas delas. Bom, antes de continuarmos a falar deste termo to importante e til nos dias atuais, preciso defni-lo. Vamos aprender? Uma defnio bastante genrica dada por Elmasri & Navathe (2005): Um banco de dados uma coleo de dados relacionados. Os da- dos so fatos que podem ser gravados e que possuem um signifca- do implcito. Por exemplo, considere nomes, nmeros telefnicos e endereos 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 informaes so uma coleo de dados com um signi- fcado implcito, consequentemente, um banco de dados. Como a defnio anterior muito genrica, para evitar entendi- mentos equivocados, os mesmos autores descrevem ainda que um banco de dados possui as seguintes propriedades: um banco de dados uma coleo lgica coerente de dados com um signifcado inerente; uma disposio desordenada dos dados no pode ser referenciada como um banco de dados; um banco de dados projetado, construdo e populado com da- dos para um propsito especfco; um banco de dados possui um conjunto pr-defnido de usurios e aplicaes; um banco de dados representa algum aspecto do mundo real, o qual chamado de minimundo; qualquer alterao efetuada no minimundo automaticamente refetida no banco de dados. As leituras auxiliares so sempre importantes e enriquecedoras. No deixe de faz-las! Populado: o mesmo que alimentado/povoado, de acordo com Figueiredo (2011). e-Tec Brasil/CEMF/Unimontes Informtica 14 Para melhor entendimento, podemos destacar alguns ingredientes necessrios em um BD, conforme Elmasri e Navathe (2005): uma fonte de dados da qual so derivados os dados; a interao com o mundo real; o pblico que demonstra interesse nos dados contidos no banco de dados. Sendo assim, um banco de dados pode ser de qualquer tamanho e de complexidade varivel; 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 usurios) criem e manipulem seus bancos de dados. O objetivo principal de um SGBD proporcionar um ambiente efciente para o armazenamento e para a recuperao das infor- maes no banco de dados. (ELMASRI; NAVATHE, 2005). O conjunto formado por um banco de dados mais as aplicaes que manipulam esse banco (o SGBD) chamado de Sistema de Banco de Dados - SBD, conforme ilustra a fgura a seguir. Figura 1: Constituio de um SGBD. Fonte: Acervo prprio. Os bancos de dados so implementados e utilizados em diversas reas. Vamos conhec-las? A seguir, esto relacionadas algumas delas. Instituies de ensino: para informaes administrativas, de alunos, cursos, notas etc. Empresas de energia: para a gerncia do consumo de energia, gerao de contas etc. Bancos: para informaes de clientes, contas, emprstimos, f- nanciamentos e todas as transaes bancrias. Meio ambiente: para o controle das questes climticas, infor- maes sobre desmatamentos, sobre o solo etc. Transaes com carto de crdito: para compras com cartes e gerao de faturas. Telecomunicao: para manter registros de chamadas, geren- ciar contas, gerenciar informaes de conectividade, links de internet etc. Finanas: para armazenar informaes de compras, vendas etc. Indstria: para gerenciamento e controle da produo e de to- dos os itens envolvidos. e-Tec Brasil/CEMF/Unimontes Banco de Dados 15 Recursos humanos: para informaes sobre funcionrios, sal- rios, lanamentos em folha de pagamento (benefcios e impostos pagos), gerao 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 diferena que h entre fazer uso de processamento tra- dicional de arquivos para acessar informaes e utilizar um banco de dados? Bem, isto que iremos explicar ao longo deste caderno e tambm 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 caracters- tica de autoinformao que tem a capacidade de manter os dados na forma como so armazenados, constituindo, assim, em uma descrio completa do banco de dados. Essas informaes so armazenadas num local que contm a estrutura de cada arquivo, o tipo e o formato do armazenamento de todos os tipos de dados, chamado catlogo 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 informaes do catlogo do SGBD, fcando limitado a mani- pular as informaes que o mesmo conhece. No processamento tradicional de arquivos, os usurios criam e de- fnem os arquivos necessrios para cada aplicao especfca, resultando em grandes redundncias e, muitas vezes, no desperdcio de espao de armaze- namento. Normalmente, nesses arquivos, no existe qualquer estruturao dos dados nele contidos. Em banco de dados, no armazenado somente o banco em si, isto , os dados, mas sim um catlogo de dados. Em banco de dados, o acesso s informaes no requer conheci- mento das estruturas do mesmo, o que chamamos de independncia dos dados, de acordo com Elmasri e Navathe (2005). J no processamento tradi- cional de arquivos, o acesso a qualquer informao requer um conhecimento prvio da estrutura do arquivo. Em banco de dados, quando houver qualquer alterao na estrutura dos dados, os programas (SGBD) no precisam ser alterados. J em proces- samento tradicional, no. Neste caso, toda alterao na estrutura dos dados exigiria uma alterao nos programas que manipulam as informaes dos arquivos. Ainda segundo o autor supracitado, em banco de dados, as informa- es do catlogo so chamadas de metadados. Autoinformao: o mesmo que ter informao de si mesmo. e-Tec Brasil/CEMF/Unimontes Informtica 16 1.2 Profssionais e atividades envolvidas em um SGBD Por acaso, voc conhece algum profssional 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 defnir, construir e manipular o banco de dados. Porm, em um grande banco de dados, com dezenas, centenas (ou milhes) de usurios e com restries de acesso para cada um, necessrio um controle rgido sobre o mesmo e, neste sentido, podemos identifcar e destacar alguns perfs 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 aplicaes; usurio fnal. Cada um desses profssionais encarregado de uma srie de fun- es inerentes ao seu perfl. Sendo assim, segue, a seguir, uma descrio das atividades desenvolvidas por cada um deles, segundo Elmasri e Nava- the(2005). Administrador de dados (DBA): o supervisor do banco de dados, responsvel pela autorizao de acesso ao banco, pelo monitoramento e pela coordenao do uso. Est envolvido com os aspectos fsicos do banco de dados (estruturas de armazenamento, mtodos de acesso etc.). Projetistas do banco: so responsveis pela identifcao dos da- dos e pela elaborao de estruturas apropriadas para armazen-los. Para isto, necessrio compreender os requisitos necessrios aos grupos de usu- rios do banco de dados antes de sua implementao. Analista de sistemas: determina os requisitos dos usurios e desen- volve especifcaes que atendam estes requisitos. Programadores: implementam as especifcaes na forma de pro- gramas, elaborando toda a documentao. Usurio (fnal): um banco de dados existe para a utilizao do usu- rio fnal, cujo trabalho, normalmente, requer consultas e atualizaes. A maioria dos usurios utiliza programas voltados ao desempenho profssional, utilizando-os em seu dia a dia. 1.3 Vantagens e desvantagens do uso de banco de dados Que tal comearmos com as vantagens? O uso de banco de dados nos proporciona diversas vantagens em relao ao mtodo 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/Unimontes Banco de Dados 17 Controle sobre a redundncia: reduo do espao necessrio para armazenamento, eliminao da duplicao de esforos na manuteno das informaes e reduo de inconsistncia na base de dados. Compartilhamento de dados: se diversos usurios tm aplica- es integradas no BD, precisa-se de um software de controle de concorrncia para a atualizao do banco. Facilidade na def- nio da viso do usurio, especifcando uma poro do BD que tem interesse particular de um grupo de usurios. Restrio de acesso no autorizado: possui um sistema de se- gurana que garantia o acesso especfco a cada usurio (perso- nalizado para grupos ou individual), possibilitando maior segu- rana ao BD. Fornecimento de mltiplas interfaces: disponibiliza vrios ti- pos de interface de acesso aos dados, dependendo dos nveis de conhecimento entre os usurios. O BD permite o uso de lingua- gem para consulta de usurios casuais; linguagem de programa- o, para o programador de aplicaes; formulrios e menus, para acesso de outros usurios etc. Forar restries de integridade: permite a defnio de regras associadas aos dados, como identifcao do tipo de dado, dado de tipo nico, impossibilidade do dado no ser informado (ser nulo), relacionamento entre os dados armazenados etc. Isto ir difcultar a ocorrncia de erro, porm, 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 recuperao da situao anteriormente encontrada de forma gil e prtica. Outras vantagens de BD: quanto ao desenvolvimento de pa- dres, permite ao DBA defnir e forar padres (nomenclaturas, formatos, terminologias etc.), facilitando a comunicao e a co- operao entre os setores, projetos e usurios dentro da orga- nizao; Garante maior fexibilidade ao permitir alteraes na estrutura do BD. Projetar e implementar uma nova aplicao mais rpido em um BD existente do que se ele no existisse ou fosse feito sobre a abordagem tradicional de arquivos. Torna dis- ponvel o BD para todos os usurios (com permisso de acesso), devido ao controle de concorrncia e recuperao do SGBD. Contudo, cabe ressaltar tambm que existem algumas situaes 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 desnecessrio em relao aborda- gem tradicional de arquivos; requerer um alto investimento inicial com software e hardware; gerar uma sobrecarga na proviso de controle de segurana, controle de concorrncia, recuperao e integrao de funes; o banco de dados e as aplicaes so simples, bem defnidas e no necessitam de mudanas no projeto; Backup: o processo de criar cpia dos dados. Recovery: a restaurao dos dados backupeados. e-Tec Brasil/CEMF/Unimontes Informtica 18 h necessidade de processamento em tempo real de certas apli- caes, que seriam extremamente prejudicadas pela sobrecarga causada pelo uso de um SGBD; os mltiplos acessos no so necessrios. Resumo Nesta aula, voc aprendeu: conceitos envolvidos em banco de dados; a importncia de um bom banco de dados, principalmente em relao ao mtodo de processamento tradicional de arquivos; quando usar e quando no usar um banco de dados. Atividades de aprendizagem 1. Informe um conceito para defnir banco de dados. 2. Quais so as reas do mundo globalizado que se utilizam da tecnologia de banco de dados? 3. Um grupo qualquer de informaes pode ser considerado um banco de dados? Por qu? 4. Quais so os elementos essenciais para se afrmar que um determinado conjunto de informaes , de fato, um banco de dados? 5. Qual a diferena entre processamento tradicional de arquivos e banco de dados? 6. O que o catlogo do SGBD? E metadados? 7. O que signifca independncia de dados em banco de dados? e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao 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 identifcar 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 Introduo 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 compreenso de um SBD, segue, a seguir, na fgura 02, um diagrama simplifcado com a sua arquitetura. Figura 2: Diagrama simplifcado da arquitetura do sistema de banco de dados. Fonte: Disponvel em: <http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula5.html>. Acesso em 03 de abril de 2011. No fque preso apenas a este caderno; busque outras fontes de estudo sobre banco de dados. e-Tec Brasil/CEMF/Unimontes Informtica 20 A fgura 2 nos ilustra os principais elementos de um SBD: o banco de dados: dados armazenados e metadados ou catlogo 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 condies de construir projetos de banco de dados, preci- so, antes, conhecer e entender os modelos de dados. Vamos comear, ento? De acordo com Silberschatz, Korth & Saudarshan (1999), uma gran- de vantagem do uso de banco de dados o poder de abstrao dos dados que o banco permite. Neste caso, o usurio no necessita conhecer detalhes do armazenamento de dados para acess-los ou manipul-los. Os modelos de dados so um conjunto de conceitos utilizados para a descrio da estrutura de um banco de dados. A estrutura de um banco de dados deve ser entendida como sendo a defnio dos tipos de dados, dos relacionamentos e das restries que devem suportar os dados. Baseando-nos em Elmasri e Navathe (2005), os modelos de dados podem ser classifcados em trs tipos bsicos, descritos a seguir. 2.2.1 Modelo de alto nvel Tambm conhecido como modelo de dados conceituais,descreve os dados como os usurios os percebem, segundo Elmasri e Navathe (2005). Como exemplos de modelos de alto nvel, podemos destacar dois tipos, dados a seguir. Modelo Entidade Relacionamento: o Modelo Entidade Relacio- namento (E-R) baseado em uma percepo de um mundo real, que consiste em uma coleo de objetos bsicos, chamados en- tidades, e de relaes entre esses objetos, chamadas de relacio- namentos. Este modelo ser mais bem descrito na aula 3 deste caderno. A fgura 3 apresenta um exemplo do Modelo Entidade Relacionamento. Nesta fgura, est representado o modelo de um pequeno banco de dados, composto das tabelas Pessoa e Computador, que registram as informaes 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: Disponvel 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/Unimontes Banco 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 contm valores que so armazenados em variveis; es- tes valores de variveis so conhecidos como instncias dentro do objeto. Alm disso, um objeto contm conjuntos de cdigos (chamados de operaes) que operam o objeto. A principal mo- tivao para o surgimento desse modelo foi a necessidade de extrapolar os limites de armazenamento e de representao se- mntica dos dados, impostos pelo modelo relacional (tido como a melhor soluo at ento). A princpio, achava-se que o mode- lo orientado a objeto dominaria o mercado de banco de dados, porm isso no se confrmou e, o modelo relacional ainda o modelo mais empregado pelas empresas ao redor do planeta. Com sua maior fexibilidade e robustez o modelo orientado a objeto tornou-se uma boa soluo em sistemas complexos que lidam com tipos de informaes variadas (geogrfcas, multim- dia, vetoriais etc.) e em grande volume. Podemos citar como exemplos desse modelo os sistemas de informaes geogrfcas (SIG), os sistemas CAD e CAM, que so mais facilmente constru- dos usando tipos complexos de dados. Na fgura 4, a seguir, est um pequeno exemplo de banco de dados orientado a objetos, demonstrando um sistema de registro de informaes de clien- tes, dos ttulos (flmes) e de todos os movimentos/locaes de ttulos efetuados pelos clientes. (ELMASRI; NAVATHE, 2005). Figura 4: Exemplo de banco de dados do modelo orientado a objeto. Fonte: Disponvel em: <http://jpleonidas.fles.wordpress.com/2009/12/001.png>. Acesso em 05 de abril de 2011 (J. P. Leonidas). Os CADs so programas que se utilizam de tcnicas grfcas para o desenvolvimento de projetos; o CAM todo processo de fabricao controlado por computador. Os dois juntos (CAD/CAM) formam um conjunto de ferramentas muito utilizadas pela Engenharia para a criao de projetos. (SAWAYA, 1999). e-Tec Brasil/CEMF/Unimontes Informtica 22 2.2.2 Modelo de baixo nvel Conhecido como modelo de dados fsicos, descreve os detalhes de como os dados esto armazenados no computador, de acordo com Elmasri e Navathe (2005). Este modelo tem relao direta com a mquina, o hardware. Geralmente, mais til e signifcativo para os especialistas em har- dware de computador. No possui exemplos de modelos diagramados descritos na litera- tura, pois atua em nvel de hardware e, alm disso, no objeto de estudo deste caderno didtico. 2.2.3 Modelo de dados representacionais Modelo intermedirio que oferece os conceitos que podem ser en- tendidos pelos usurios fnais e tambm dispe de informaes de como os dados esto 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 trs que so descritos a seguir. Modelo relacional: utiliza um conjunto de tabelas para repre- sentar tanto os dados como a relao 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 fgura 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: Disponvel 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/Unimontes Banco de Dados 23 Modelo de rede: neste modelo, os dados so representados por um conjunto de registros, e as relaes entre esses registros so representadas por links (ligaes), os quais podem ser vistos por ponteiros (setas). Os registros so organizados no banco de dados por um conjunto arbitrrio de grfcos. O modelo em rede possibilita acesso a qualquer n da rede sem passar pela raiz da rede, diferentemente do modelo hierrquico. 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 fgura 6, ilustra o mesmo banco de dados do modelo relacional anterior, porm, agora, no modelo de rede. Figura 6: Exemplo de banco de dados do modelo em rede. Fonte: Disponvel 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 hierrquico: o modelo hierrquico assemelha-se ao mo- delo em rede, uma vez que os dados e as suas relaes so representados, respectivamente, por registros e links, tambm. A diferena principal que, no modelo hierrquico, os regis- tros esto organizados em rvores, em vez de serem em grfcos arbitrrios. Outro aspecto que o distingue do modelo em rede que, no modelo hierrquico, para se acessar qualquer n do banco (da rede), necessrio sempre passar pela raiz. Nesse modelo, os dados so estruturados em hierarquias ou rvores. Os ns das hierarquias (ou da rvore) contm ocorrncias de re- gistros; cada registro uma coleo de campos (atributos), cada um contendo apenas uma informao. O registro da hierarquia que precede aos outros o registro pai; os outros, por sua vez, so chamados de registros flhos. Um exemplo de sistema/em- presa que adotou o modelo hierrquico 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 fgura 7, apresenta o mesmo banco de dados dos dois modelos anteriores (relacional e de rede), s que, agora, no mo- delo hierrquico. e-Tec Brasil/CEMF/Unimontes Informtica 24 Figura 7: Exemplo de banco de dados do modelo hierrquico. Fonte: Disponvel 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, existem diferentes modelos de dados em BD. Porm, devido ao tempo curto para estudo da disciplina e, principal- mente, maior utilizao do modelo relacional em relao aos demais, este caderno concentrar-se- na explicao 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, porm, muito prova- velmente, em outra conotao. Portanto, para no confundirmos esquema em banco de dados com outros esquemas, vamos aprend-lo logo? Bom, como descrito, muitas vezes, as pessoas confundem os termos descrio do banco de dados com o banco de dados propriamente dito. A descrio do banco de dados conhecida como esquema do banco de dados; este defnido durante o desenvolvimento (criao) do projeto do banco de dados. Um esquema, uma vez defnido, no deve ser modifcado frequentemente; desta forma, a sua defnio requer bastante anlise e mui- tos critrios. No esquema, basicamente, ser defnida a estrutura do banco de dados (tabelas, atributos, domnios, relacionamentos, restries), conforme Date (2000). A maioria dos modelos de dados apresenta algumas convenes para a exibio de esquemas por meio de diagramas, conforme ilustram as fguras da seo 2.2. Para uma melhor compreenso de um esquema, vamos fazer uma analogia com linguagem de programao e algoritmos. Neste sentido, as va- riveis e os tipos de dados assumidos por elas seriam o esquema. Se ainda no fcou claro, no se preocupem, pois, na aula 4, sero apresentados mais exemplos de esquemas. e-Tec Brasil/CEMF/Unimontes Banco de Dados 25 2.4 Instncia Para entendermos o que uma instncia, vamos aproveitar da mes- ma analogia feita com linguagem de programao e algoritmos, apresentada na seo anterior (2.3). Entende-se por instncia do banco de dados os valo- res/dados assumidos pelas variveis 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 instncia do banco de dados, conforme concebem Elmasri e Navathe (2005). A instncia, diferentemente do esquema, altera toda vez que o banco de dados sofre qualquer modifcao de contedo. O SGBD responsvel por garantir que toda instncia do banco de dados satisfaa ao esquema do banco de dados, respeitando sua estrutura e suas restries. 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 identifcar 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 so os elementos que compem a arquitetura de um sistema de banco de dados? 2. O que so os modelos de dados? 3. Qual a principal motivao para a criao do modelo relacional? E para o modelo orientado a objeto? 4. O que so esquema e instncia em banco de dados? No deixe de acompanhar as novidades e inovaes do SGBD! Lembre-se, a aprendizagem sempre contnua! e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao 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 construo de um banco de dados no MER; possibilitar aos alunos a construo do conhecimento para a criao de modelos e diagramas ER, com os respectivos rela- cionamentos. 3.1 Introduo Agora que j conhecemos os tipos de modelos de dados, vamos iniciar nossos estudos descrevendo sobre o modelo mais simples, mas no menos til na construo do projeto de banco de dados relacional. Vamos l? O Modelo Entidade Relacionamento um modelo de dados con- ceitual de alto nvel, 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 construo de um bom projeto de banco de dados foram planejados para estar o mais prximo possvel do entendimento e da viso que o usurio tem dos dados, no se preocupando em representar como esses dados estaro realmente armazenados. A construo de um projeto de banco de dados constituda de al- gumas fases; cada uma delas, responsvel pela realizao de algumas aes especfcas, conforme ilustra a fgura 8. Na fase inicial, de partida, so ob- servados aspectos do mundo real, chamados de minimundo. A partir da, realiza-se a obteno e a anlise dos requisitos por meio de reunies e de outras formas, nas quais se discutem todas as questes pertinentes ao que se deseja do sistema de banco de dados. Vencida esta fase, renem-se to- das as informaes (requisitos) para a construo do projeto conceitual da base de dados. Na fase de projeto conceitual, desenvolvido o esquema conceitual, no qual so especifcados os esquemas do banco de dados em construo. neste momento em que mais se aplicam os modelos de entida- de relacionamento. Na fase de mapeamento do modelo de dados, tambm conhecida como projeto lgico, o objetivo transformar o esquema de mo- delo de dados de alto nvel (projeto conceitual) em um modelo de dados de implementao. At esta fase, tudo que se defne independente do SGBD a ser utilizado. Qualquer que seja o sistema gerenciador de banco de dados e-Tec Brasil/CEMF/Unimontes Informtica 28 adotado, o que foi desenvolvido at ento ser perfeitamente aproveitado. A partir da fase de mapeamento, preciso conhecer qual o SGBD que ser utilizado e realizar todo o mapeamento baseado especifcamente no sistema escolhido. A ltima etapa a fase do projeto fsico, na qual so defnidas as estruturas de armazenamento interno, os ndices, os caminhos de acesso e as organizaes 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 prprio. 3.2 Entidade, atributo e relacionamento Voc j tinha lido ou ouvido falar de algum desses termos? Prova- velmente sim, porm, talvez em outro contexto. Em se tratando do contexto de banco de dados, vamos ver o que so e como so utilizados? Comecemos falando, ento, de entidade. O principal objeto ou o objeto bsico que um modelo ER representa a entidade. Uma entidade um objeto com uma existncia prpria, podendo ser fsica (concreta) uma pessoa, um veculo, um equipamento ou abstrata (conceitual) um depar- tamento, um curso, um cargo, uma conta. (ELMASRI; NAVATHE, 2005). e-Tec Brasil/CEMF/Unimontes Banco de Dados 29 Ainda segundo Elmasri e Navathe (2005), cada entidade possui um conjunto de blocos de informaes, devidamente organizados, que a carac- teriza e a identifca. Esses blocos de informaes so chamados de atribu- tos. Para melhor compreenso, podemos ter, como exemplos de entidades, PROFESSOR, ALUNO, DISCIPLINA. A entidade PROFESSOR poderia ser consti- tuda, por exemplo, pelos atributos: Matrcula, MatrProf, NomeProf, Funo, Salrio. A entidade DISCIPLINA teria os atributos: Cdigo, NomeDisc, Pro- fDisp, CargaHorria, NumAlunosMatr. J a entidade ALUNO seria constituda dos atributos: MatrAluno, NomeAlu, Curso, Mdia. Cada um dos atributos de cada entidade ter um valor particular, e o conjunto desses valores que responsvel pela maior ocupao de espao 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 associao entre uma ou vrias entidades. Por exemplo: ao fazermos a associao entre as entidades PROFESSOR e DISCIPLINA, estaremos construindo um relaciona- mento entre ambas, que poderamos chamar de Ministra ou Leciona, deno- tando que o professor ministra ou leciona a disciplina. Para maior controle e organizao dos dados, os relacionamentos so criados com algumas restries. Essas restries chamam-se razo de cardinalidade, e especifcam a quantidade de instncias em um relaciona- mento que os elementos das entidades podem participar, segundo Elmasri e Navathe (2005). De acordo com Elmasri e Navathe (2011) a razo de cardina- lidade pode ser classifcada em trs tipos, descritos a seguir. 1:1 (l-se um para um): signifca que s pode haver uma nica instncia entre as duas entidades envolvidas, ou seja, sendo duas entidades A e B, uma ocorrncia em A estar associada com, no mximo, uma nica ocorrncia em B, e uma ocorrncia em B estar associada com, no mximo, uma nica ocorrncia 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 representao para este relacionamento est exibida na fgura 09 (como fazer esta representao ser explicado na seo 3.4, deste caderno). Figura 9: Exemplo de diagrama de relacionamento 1:1. Fonte: Acervo prprio. 1:N ou N:1 (l-se um para N ou N para um - onde N signif- ca muitos): signifca que, em uma das entidades (1), s poder haver um nica instncia relacionada; na outra entidade (N), poder haver uma ou mais instncias relacionadas, ou seja, sen- do duas entidades A e B, uma ocorrncia em A estar associada e-Tec Brasil/CEMF/Unimontes Informtica 30 com uma ou vrias ocorrncias em B, e uma ocorrncia em B estar associada com, no mximo, uma nica ocorrncia em A. Por exemplo: o relacionamento Leciona, entre as entidades PRO- FESSOR e DISCIPLINA, representado na fgura 10, normalmente possui uma razo de cardinalidade de 1:N, na qual um professor pode lecionar vrias disciplinas e uma determinada disciplina s pode ser lecionada por um nico professor. O digrama de repre- sentao desse relacionamento est ilustrado na fgura 10. Figura 10: Exemplo de diagrama de relacionamento 1:N. Fonte: Acervo prprio. M:N (l-se M para N - onde M e N signifcam muitos): signifca que poder haver uma ou vrias instncias em ambas as en- tidades envolvidas, ou seja, sendo duas entidades A e B, uma ocorrncia em A poder estar associada a uma ou vrias ocor- rncias em B, e vice-versa. Por exemplo: no relacionamento Fre- quenta, entre as entidades ALUNO e DISCIPLINA, um aluno pode frequentar vrias disciplinas, e uma mesma disciplina pode ser frequentada por vrios alunos. O diagrama para representar este relacionamento, seria conforme o exposto na fgura 11. Figura 11: Exemplo de diagrama de relacionamento M:N. Fonte: Acervo prprio. 3.3 Tipos de entidades e atributos As entidades e os atributos so classifcados em diferentes tipos. Que tal conhecermos esses tipos? Para isto, vamos comear com a classifcao dos tipos de entidades, segundo Date (2000). Entidade fraca: so as entidades que no possuem atributos- -chave prprios, isto , que dependem dos atributos-chave de uma outra entidade. Por exemplo: numa relao entre as duas entidades, DEPENDENTE e EMPREGADO, todos os elementos da entidade Dependente so 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: so as entidades que possuem seus prprios atributos-chave, ou seja, so independentes. Por exemplo: ain- e-Tec Brasil/CEMF/Unimontes Banco de Dados 31 da utilizando o exemplo anterior, a entidade EMPREGADO inde- pendente de qualquer outra entidade, ou seja, possui existncia prpria. Neste caso, a entidade Empregado uma entidade forte. Exemplos da representao de entidade fraca e de entidade forte esto na prxima seo; 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 so aqueles que no so divisveis, ou seja, o seu contedo no pode ser separado em partes, como, por exemplo: matrcula, funo, salrio. J os compostos, eles podem ser separados em partes (isto , sepa- rados em outros atributos), caso seja necessrio. 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 so aqueles constitudos de um nico valor para uma referida entidade, por exemplo: data_de_nascimento, cpf, salrio de uma entidade chamada EMPREGADO. Os multivalorados so aqueles que podem assumir mais de um valor para uma determi- nada instncia 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 contedo. No caso dos atributos multivalorados, o mais adequa- do que se estabeleam 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 atravs da diferena entre a data atual do sistema e a data_de_ nascimento informada na entidade da pessoa. Nulo: utilizado quando uma entidade no 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 ausncia de valor, ou seja, quando voc deixa de informar o valor para um determinado atributo, o mesmo ir assumir o valor nulo (como padro). Mas, ateno! Nulo diferente de espao em branco. Se voc pressionar a barra de espao em um determinado atri- buto (dependente, email, celular, por exemplo) na hora da inser- o de dados, isso no signifca nulo, e sim espao em branco. 3.4 Diagrama Entidade Relacionamento (DER) Voc tem algum conhecimento sobre DER? Sabe para que serve? Bom, se a sua resposta for no, no h problema, pois estamos aqui para explicar. Sendo assim, vamos iniciar. e-Tec Brasil/CEMF/Unimontes Informtica 32 O Modelo Entidade Relacionamento representado atravs de al- guns smbolos que compem o Diagrama Entidade Relacionamento (DER). Para cada elemento de um relacionamento (entidade, atributo, re- lacionamento, razo de cardinalidade), existe um smbolo representativo. Sendo assim, vamos apresentar cada um desses smbolos a seguir, ilustrados na fgura 12. Figura 12: Resumo de notao de diagrama ER. Fonte: Acervo prprio. Agora, vamos apresentar trs exemplos de DER, na fgura 13, para entendermos melhor a sua aplicao. Passos para construir um Modelo Entidade Relao: 1) identifcar as entidades; 2) para cada entidade, procurar identifcar os atributos necessrios e defnir a chave primria; 3) buscar identifcar todos os relacionamentos entre as entidades; 4) procurar validar o modelo obtido e repetir este processo desde o 1 passo, caso seja necessrio. Dicas para a construo de diagramas ER: - a presena de um substantivo, usualmente, indica uma entidade; - a presena de um verbo uma forte indicao de um relacionamento. e-Tec Brasil/CEMF/Unimontes Banco de Dados 33 Figura 13: a) Demonstra um relacionamento unirio Gerencia, entre a entidade EMPREGADO e ela mesma; b) ilustra o relacionamento binrio Possui, entre as entidades FUNCIONRIO e DEPENDENTE; c) exibe um relacionamento ternrio Ministra, entre as entidades PROFESSOR, DISCIPLINA e ALUNO (quando no h exigncias, pode-se omitir a razo de cardinalidade e os atributos). Fonte: Acervo prprio. 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 trs tipos, conforme os descrevemos a seguir. Unirio: tambm chamado de autorrelacionamento ou relaciona- mento recursivo, a relao de uma entidade com ela mesma, ou seja, ape- nas uma entidade participante. O item (a) da fgura 13 demonstra um bom exemplo de autorrelacionamento. Binrio: o relacionamento entre duas entidades distintas. O item (b) da fgura 13 apresenta um exemplo de relacionamento binrio. Ternrio: o relacionamento envolvendo trs entidades distintas. O item (c) da fgura 13 ilustra um exemplo de relacionamento ternrio. Podem existir relacionamentos envolvendo mais de trs entidades, porm, isto no ser objeto de estudo neste caderno didtico. e-Tec Brasil/CEMF/Unimontes Informtica 34 Resumo Nesta aula, voc aprendeu: os principais conceitos e termos envolvidos num Modelo Entida- de Relacionamento (ER); a aplicao 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 sequncia de aes para se construir uma modelagem Enti- dade Relacionamento. 4. Defna e exemplifque os termos entidade, atributo e relacionamento. 5. Construa exemplos de diagramas de relacionamento de cardinalidade 1:1, 1:N e M:N. No mnimo 1 de cada e que sejam diferentes dos exemplos do caderno da disciplina. 6. O que signifca grau de relacionamento? Quais so 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 agncias. Voc dever de- cidir quais atributos de cada entidade sero necessrios para o modelo. 8. Preencha os diagramas a seguir com as respectivas entidades e os seus rela- cionamentos; informe tambm qual o grau de cardinalidade em cada caso. a. Entidades Relacionamento Banco, agncia Administra b. Entidades Relacionamento Cliente, pedido Solicita e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 35 Aula 4 Modelagem de dados Modelo Relacional (MR) Objetivos conceituar e apresentar os principais elementos do modelo re- lacional; demonstrar as principais aplicaes do modelo na construo de projeto de banco de dados relacional; realizar o mapeamento do Modelo Entidade Relacionamento (MER) para o Modelo Relacional (MR).
4.1 Introduo Agora que aprendemos sobre o Modelo ER, que tal conhecermos o Modelo Relacional? Voc observar, inclusive, que existem algumas seme- lhanas entre ambos. O Modelo Relacional tem muita semelhana 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 coleo de relaes comumente chamadas de tabelas. Cada relao entendida como uma tabela que contm valores, e cada linha nesta tabela composta de um conjunto de dados relacionados. Os valores contidos nas linhas seriam as instncias de uma entidade ou de um relacionamento. Cada relao ou cada tabela composta de linhas e colunas. Ainda segundo o autor referenciado anteriormente, na terminologia do Modelo Re- lacional, uma tabela chamada de relao, um linha chamada de tupla e as colunas so chamadas de atributos. A fgura 14 ilustra cada um desses elementos (destacados em cores diferentes) do Modelo Relacional na tabela PRODUTO. Observem atentamente! Figura 14: Relao Produto, identifcando cada um dos elementos. Fonte: Acervo prprio. Apesar do crescimento do uso de outros modelos, o MR ainda o mais utilizado pelas empresas. e-Tec Brasil/CEMF/Unimontes Informtica 36 4.2 Relaes, domnios, tuplas e atributos Apesar de serem termos de nomenclaturas diferentes, voc ir per- ceber que eles tm praticamente a mesma funo de alguns dos termos da aula 3. Vamos conferir? As relaes em modelos relacionais, conforme dito anteriormente, representam o conjunto de informaes de uma tabela (entidade no MER). Assim como no Modelo ER, as relaes so construdas defnindo-se, primei- ramente, o esquema da relao, no qual so especifcados o nome da relao e os atributos. A especifcao dos atributos segue-se da defnio dos domnios dos mesmos. Um domnio consiste de um conjunto de valores (dados) atmi- cos que um atributo pode assumir. Um valor dito atmico quando o mesmo no pode ser dividido, separado, ou seja, ele indivisvel. Assim, de acordo com Date (2000), um domnio determinado pelo tipo de dado que um atributo pode assumir. Por exemplo: um atributo CDIGO, do tipo inteiro, s pode aceitar dados numricos (nmeros) inteiros; um atributo DESCRI- O, do tipo caractere, de tamanho 20, pode aceitar letras, nmeros, ponto, acento etc., porm, no pode ultrapassar 20 caracteres. Conforme mencionado anteriormente, as tuplas so as linhas da re- lao. Tomando o exemplo da fgura 14, a linha com | 1020 | leo | 9 | 2,15 | corresponde a uma tupla da relao ALUNO. Assim como | 1045 | Arroz | 10 | 8,99 | tambm constitui uma tupla da mesma relao. Os atributos de uma relao so representados pelas colunas. Os atributos, aqui, tm a mesma representao 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 seo, pois, dela, de- pendero muitas outras informaes constantes no restante deste caderno. Uma relao constituda de um conjunto de tuplas e atributos dis- tintos. Para uma correta distino das instncias de uma relao, o Modelo Relacional adotou o conceito de atributo-chave. De acordo com Elmasri e Navathe (2005), o atributo chave pode ser constitudo de um ou mais atri- butos, e eles so encarregados de identifcar e distinguir, de forma nica e exclusiva, cada tupla de uma relao; assim, so chamados de superchave. Toda relao ir possuir, no mnimo, uma superchave, que ser o conjunto de todos os seus atributos. Ainda segundo o mesmo autor, as chaves de uma relao podem ser classifcadas das seguintes formas, descritas a seguir. Chave primria: composta por um ou mais atributos capazes de identifcar, de forma nica e exclusiva, cada tupla da relao. Quando constituda de mais de um atributo, ela chamada de chave primria composta, e cada um dos atributos desta Os atributos-chave so essenciais em BD; por isso, procurem assimilar bem as informaes apresentadas. e-Tec Brasil/CEMF/Unimontes Banco de Dados 37 chave composta deve possuir a capacidade de, sozinho, tambm identifcar de forma nica cada tupla da relao. A chave pri- mria no MR representada colocando-se o(s) atributo(s)-chave sublinhado(s). Exemplos: o atributo Cdigo da relao PRODUTO uma chave primria, conforme ilustrado na fgura 15, item (a); numa relao ALUNO, constituda dos atributos matrcula, CPF, nome, curso, e-mail, os atributos Matrcula e CPF formam uma cha- ve primria composta, conforme ilustrado na fgura 15, item (b). a. Produto Cdigo Descrio Qtde ValorUnit b. Aluno Matrcula CPF Nome Curso e-mail Figura 15: Esquema das relaes PRODUTO e ALUNO. Fonte: Acervo prprio. Chave candidata: formada pelo conjunto de atributos capazes de se tornarem uma chave primria. Exemplo: qualquer um dos atributos Matrcula e CPF da relao ALUNO so chaves candi- datas. Chave estrangeira: formada pela chave primria de uma outra relao. Exemplo: considerando as relaes PRODUTO com os atributos cdigo, descrio, Qtde e ValorUnit, e ITENS_PEDIDO com os atributos CodProd, CodPed, Quant, o atributo CodProd da relao ITENS_PEDIDO chave estrangeira, pois representa o atributo Cdigo da relao PRODUTO, conforme ilustra a fgura 16. Na terminologia do MR, a chave estrangeira representada colocando o atributo-chave em itlico. Produto Cdigo Descrio Qtde ValorUnit Itens_Pedido CdProd CodPed Quant Figura 16: Modelo identifcando chave estrangeira. Fonte: Acervo prprio. 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 seo, 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 Informtica 38 nvel (o MER). Contudo, o uso dessa modelagem apenas parte do processo de construo do projeto de banco de dados. O resultado da modelagem ER so esquemas de observaes, 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 fm, para complementar e completar o projeto de banco de dados. A seguir, segue um resumo dos passos bsicos necessrios para se fazer o mapeamento do MER para o MR, baseado na obra de Elmasri e Nava- the (2005). Passo 1: todas as entidades so mapeadas para uma relao con- tendo os mesmos atributos do MER. Veja o exemplo da fgura 17. Figura 17: Mapeamento de entidade MER para MR. Fonte: Acervo prprio. Na fgura 17, foi apresentado o MER de uma entidade chamada Em- pregados, com os atributos CPF (onde a bolinha preenchida representa chave primria), nome e idade (as bolinhas vazias representam atributos comuns). Fazendo-se o mapeamento para o Modelo Relacional, a relao Empregados fcou como mostrado na fgura. Passo 2: para entidade fraca criada a relao contendo todos os seus atributos, tendo acrescido, como chave estrangeira, a chave primria da entidade forte (pai). Veja o exemplo da fgura 18. Figura 18: Mapeamento de entidade fraca de MER para MR. Fonte: Acervo prprio. e-Tec Brasil/CEMF/Unimontes Banco de Dados 39 Na fgura 18, foi apresentado o MER do relacionamento Possui en- tre as entidades Funcionrio, 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 relao Dependente fcou como mostrado na fgura. Passo 3: para relacionamentos 1:1 - dentre as relaes que ma- peiam as entidades participantes, escolha uma delas (a que for mais fraca, dependente) e inclua como chave estrangeira a chave primria da outra. Veja o exemplo da fgura 19. Figura 19: Mapeamento de relacionamento 1:1 de MER para MR. Fonte: Acervo prprio. Na fgura 19, foi apresentado o MER do relacionamento Retirou (com o atributo DtRetirada) entre as entidades Pessoas, com os atributos CPF, Nome e Endereo e CateirasMotorista, com os atributos Numero, Validade, DataExpedio e Categoria. Fazendo-se o mapeamento para o Modelo Rela- cional, as relaes Pessoas e CarteirasMotorista fcaram como mostrado na fgura. Passo 4: para relacionamentos 1:N escolha a relao que repre- senta a entidade presente no lado N e acrescente, como chave estrangei- ra, a chave primria da entidade do lado 1. Veja o exemplo da fgura 18, no passo 2. Passo 5: para relacionamentos M:N criada uma nova relao contendo, como chaves estrangeiras, as chaves primrias das entidades par- ticipantes mais os atributos do relacionamento. Veja o exemplo da fgura 20. e-Tec Brasil/CEMF/Unimontes Informtica 40 Figura 20: Mapeamento de relacionamento M:N de MER para MR. Fonte: Acervo prprio. Na fgura 20, foi apresentado o MER do relacionamento Participa (com o atributo DataIncio) entre as entidades Empregado, com os atributos CPF, Nome e Projeto, com os atributos Cdigo e Nome. Fazendo-se o mapea- mento para o Modelo Relacional, as relaes Empregados, Projeto e Partici- pa (que virou uma entidade) fcaram como mostrado na fgura. Resumo Nesta aula, voc aprendeu: os principais conceitos e termos envolvidos num Modelo Rela- cional; a aplicao 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. Defna e exemplifque cada um dos seguintes termos em banco de dados: relao, tupla e domnio. 2. Qual a importncia do Modelo Relacional para as organizaes? e-Tec Brasil/CEMF/Unimontes Banco de Dados 41 3. Faa o mapeamento dos seguintes modelos ER para o Modelo Relacional: a. b. 4. Pesquise e apresente trs exemplos de representao de banco de dados relacionais. Pode utilizar o prprio local de trabalho como cenrio para isto. 5. O que so atributos-chave? 6. Qual a diferena entre chave primria e superchave? 7. O que uma chave estrangeira? e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 43 Aula 5 SQL bsico Objetivos apresentar os principais conceitos sobre Linguagem de Consul- ta Estruturada (SQL); realizar estudos sobre DDL e DML; realizar aplicaes prticas dos principais comandos SQL; defnir e criar restries de dados em SQL. 5.1 Conceito Voc sabe o que signifca SQL? J leu ou ouviu falar? Bom, SQL (Structured Query Language Linguagem de Consulta Es- truturada), como o prprio nome diz, uma linguagem de defnio e de ma- nipulao de um banco de dados relacional, conforme descreve Date (2000). A SQL foi criada especifcamente para trabalhar com os SGBDs relacionais criados pelo mundo; rapidamente, se tornou o padro de linguagem de con- sulta mais utilizado no planeta. Uma das grandes vantagens do uso da SQL que ela um padro reconhecido por todos os SGBDs relacionais existentes. Qualquer que seja o SGBD escolhido pelo usurio ou pela empresa, a SQL ir se comunicar bem com ele. Caso o usurio resolva mudar de SGBD, ele no 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 no sofrero mudanas. Segundo Elmasri e Navathe (2005), a SQL formada por dois gran- des grupos de funes e comandos, chamados de DDL (Linguagem de Defni- o de Dados) e DML (Linguagem de Manipulao de Dados). 5.2 Comandos de defnio de dados Por acaso, voc j ouviu falar em comandos de defnio de dados? Sabe o que signifca? O grupo de comandos de defnio de dados conheci- do como o grupo DDL, e forma a fase inicial para a construo de qualquer banco de dados em SQL. De acordo com Elmasri e Navathe (2005), a DDL for- ma um conjunto de comandos responsveis pela criao, alterao e deleo da estrutura das tabelas e dos ndices de um banco de dados. Antes de continuarmos, importante destacar que os comandos SQL podem sofrer pequenas alteraes de um SGBD (SQL Server, Oracle, Mys- ql, PostgreSQL, DB2, Firebird etc.) para outro, principalmente nas sintaxes Nesta seo, iremos abordar os comandos de defnio de dados em SQL utilizados no modo Shell (linhas de comandos digitados num prompt de comando). e-Tec Brasil/CEMF/Unimontes Informtica 44 dos comandos. Sendo assim, todo o material sobre SQL deste caderno est baseado no MySql. Para uma maior assimilao dos contedos estudados, se- ro apresentados exemplos prticos de cada um dos comandos relacionados. Para cada exemplo, ser apresentado um problema e, em seguida, a soluo (resposta) ao problema dado. Para iniciar, comearemos falando do comando para a criao 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 aplicao. Problema: criar uma base de dados (um banco de dados) chamada AULASQL. Soluo/Resposta: CREATE DATABASE aulasql; Uma vez defnido (criado) o nome da base de dados, para poder trabalhar com esta base, preciso abri-la para a edio. Para isto, utilizamos o seguinte comando (padro do mysql): USE <nome-do-banco-de-dados> Veja um exemplo de aplicao. Problema: Abrir o banco de dados para a edio/manipulao dos dados. Soluo/Resposta: USE aulasql; At ento, ns criamos a base de dados e a abrimos para a edio. Agora, preciso criar as tabelas que faro parte deste banco de dados. Para isto, preciso aprender o comando de criao 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-primria (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 (cdigo 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 Fundao FirebirdSQL (http:// www.frebirdsql.org). Os comandos SQL devem ser sempre fnalizados com o uso do ponto e vrgula (;), conforme ilustra o exemplo anterior e os demais exemplos deste caderno. e-Tec Brasil/CEMF/Unimontes Banco de Dados 45 tipo - a especifcao do tipo de atributo (integer ou int, char(n), varchar(n), decimal(n,m), real(n,m), date...); n- nmero de dgitos ou de caracteres; m- nmero de casas decimais; NOT NULL indica que o atributo no aceita valor nulo (ou va- zio); PRIMARY KEY (nome-atributo-chave) serve para defnir qual atributo ser a chave primria da tabela. Podem ser defnidos mais de um atributo como chave; neste caso, os mesmos devem vir separados por vrgula dentro do parntese; FOREIGN KEY - nome-atributo-chave-estrangeira - REFERENCES nome-atributo-chave-primria (nome-tabela-pai) - serve para defnir qual atributo ser a chave estrangeira da tabela, ou seja, o campo que a chave primria de outra tabela. Na opo RE- FERENCES, deve ser especifcada a tabela que possui a chave primria referenciada. Para cada chave estrangeira, deve-se es- pecifcar uma sequncia do Foreign Key; ON DELETE - esta opo s se aplica com o Foreign Key e es- pecifca o que deve ser feito pelo SGBD, quando houver uma excluso de um registro na tabela pai (que contm a chave pri- mria referenciada) e houver algum registro correspondente nas tabelas flhas (com a respectiva chave estrangeira). As opes disponveis so as especifcadas a seguir. RESTRICT a opo padro. Ela no permite a excluso na tabela pai de um registro em que a chave primria exista em alguma tabela flha. CASCADE opo que executa a excluso em todas as tabe- las flhas que possuam o valor da chave que ser excluda na tabela pai. SET NULL - opo que atribui o valor NULO nos atributos das tabelas flhas que contenham o valor da chave que ser ex- cluda na tabela pai. Veja um exemplo de aplicao. Problema: Criar uma tabela de nome EMPREGADO com os seguintes atributos e restries: Cdigo do tipo inteiro, chave primria e no deve aceitar valor vazio ou nulo; Nome do tipo caracter, de tamanho 40, no deve aceitar valor vazio ou nulo; Dtnasc do tipo data; Salrio do tipo decimal, de tamanho 7 com duas casas decimais; CPF do tipo inteiro e no aceita valor vazio ou nulo. Soluo/Resposta: CREATE TABLE empregado ( codigo int not null, -- cdigo funcional nome varchar2(40) not null, -- nome do empregado As intrues Primary Key e Foreign Key sero explicadas em mais detalhes na Aula 5. e-Tec Brasil/CEMF/Unimontes Informtica 46 dtnasc date, -- data de nascimento salario decimal(7,2), -- valor do seu salrio CPF int not null, -- CPF do empregado Primary key (cdigo); -- defne cdigo como chave primria Caso a estrutura defnida com os comandos anteriores no seja a mais adequada ou que necessite de alguns ajustes, existe um comando que responsvel por fazer modifcaes na estrutura do banco. O comando em questo 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 defnidos 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 modifcar/alterar o tipo do dado do atributo. Visando uma melhor compreenso dos comandos anteriores, sero relacionados alguns exemplos prticos, a seguir. Veja alguns exemplos de aplicao. Problema 1: acrescentar o atributo fone, do tipo caractere de ta- manho 14, na tabela EMPREGADO. Soluo/Resposta: ALTER TABLE empregado ADD fone varchar(14). Problema 2: acrescentar o atributo codsetor como chave estrangei- ra, na tabela EMPREGADO. Soluo/Resposta: ALTER TABLE empregado ADD FOREIGN KEY codsetor REFERENCES (Setor). Problema 3: renomear o atributo dtnasc para datanasc na tabela EMPREGADO. Soluo/Resposta: ALTER TABLE empregado RENAME dtnasc datanasc. e-Tec Brasil/CEMF/Unimontes Banco de Dados 47 Problema 4: modifcar o tipo do atributo salrio (acrescentando 2 dgitos na parte inteira) na tabela EMPREGADO. Soluo/Resposta: ALTER TABLE empregado MODIFY salrio decimal(9,2). Problema 5: excluir o atributo fone da tabela EMPREGADO. Soluo/Resposta: ALTER TABLE empregado DROP fone. Por fm, 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 aplicao. Problema: Excluir/deletar a tabela EMPREGADO. Soluo/Resposta: DROP TABLE empregado; -- exclui/deleta a tabela EMPREGADO. 5.3 Comandos de Manipulao de Dados Agora, iremos falar dos comandos de manipulao de dados, j ou- viu algo sobre isto? Os comandos de manipulao de dados (DML) so os responsveis pela insero, excluso, alterao e consulta (pesquisa) ou recuperao de dados em um banco de dados. Dadas as suas funcionalidades, os comandos de manipulao so os mais utilizados no gerenciamento e na manipulao 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 execuo dos mesmos, para que no sejam cometidos equvocos (inconsistncias) ou ainda erros (lanamen- tos ou recuperao 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, necessrio escrever a sintaxe do comando corretamente, conforme o modelo a seguir: INSERT INTO <nome-tabela> [(<nome-atributo>, [<nome-atributo>])] VALUES (<relao dos valores a serem includos>) Onde: nome-tabela - representa o nome da tabela na qual ser includo o registro (a linha); nome-atributo - representa o nome do(s) atributo(s) que receber(o) dado(s) no momento da operao de incluso. e-Tec Brasil/CEMF/Unimontes Informtica 48 Exemplo de aplicao Problema Considerando a seguinte tabela com os seus respectivos atributos ALUNO (matricula, nome, turma, nota), inserir os dados a seguir: Matricula (tipo int) = 10105 Nome (tipo varchar) = Lus Incio Lula da Silva Turma (tipo char) = 1A Nota (tipo decimal) = 95 Soluo/Resposta: INSERT INTO Empregado (matricula, nome, turma, nota) VALUES (10105, Lus Incio Lula da Silva, 1A, 95). O nosso prximo comando a ser estudado chama-se UPDATE. O UPDATE serve para atualizar (alterar) um ou mais registros numa tabela. A forma de aplicao deste comando, ou seja, a sua sintaxe : UPDATE <nome-tabela> SET <nome-atributo> = <novo contedo do atributo> [<nome-atributo> = <novo contedo do atributo>] WHERE <condio> Onde: nome-tabela - representa o nome da tabela cujo contedo ser alterado; nome-atributo - representa o nome do(s) atributo(s) que ter(ao) seu(s) contedo(s) alterado(s) com o novo valor especifcado; condio - representa a condio para a seleo do(s) registro(s) que ser(o) atualizado(s). Quando a seleo contiver mais de um registro retornado, a alterao ir ocorrer em todos esses registros. Veja o exemplo de aplicao. Problema: Ainda considerando a tabela ALUNO (matricula, nome, turma, nota), dos exemplos anteriores, alterar a nota para 88 do aluno de matrcula igual a 1023. Soluo: UPDATE Aluno SET nota = 88 WHERE matricula=1023 Observem que no foram utilizadas aspas para a nova nota e nem para a matrcula, porque ambos so atributos do tipo inteiro. Bom, at aqui, aprendemos a inserir dados e a alterar dados. Mas e se eu quiser excluir algum dado, como eu fao? Ser que isto difcil? Respondendo: o comando para se excluir qualquer contedo de uma tabela (ou mesmo todo o contedo de uma tabela) chama-se DELETE. importante ressaltar que os atributos do tipo numricos (inteiro, decimal, foat etc.), como matricula e nota do exemplo anterior, tm os seus valores atribudos sem o uso de aspas. J os atributos do tipo caractere (char, varchar etc.), como nome e turma, tm os seus valores atribudos sempre utilizando as aspas (simples ou duplas). e-Tec Brasil/CEMF/Unimontes Banco de Dados 49 E no, no difcil utiliz-lo. Porm, preciso bastante cuidado na hora de utilizar o DELETE, pois sempre h a possibilidade de se excluir alguma infor- mao equivocadamente, se no tiver ateno. O comando DELETE pode ser utilizado de dois modos, descritos a seguir. 1. O primeiro o mais perigoso, pois ele exclui todo o contedo de uma tabela, inadvertidamente. Vamos conhecer a sua sintaxe. Ela assim: DELETE FROM <nome-tabela> Onde: nome-tabela - representa o nome da tabela cujos registros se- ro deletados. Neste caso, sero excludos todos os registros da tabela. Veja o exemplo de aplicao Problema: Excluir todos os registros da tabela ALUNO. Soluo/Resposta: DELETE FROM Aluno 2. O segundo modo de usar o DELETE selecionando (fltrando) os registros que se deseja excluir, utilizando-se da instruo Where. Veja a sintaxe abaixo: DELETE FROM <nome-tabela> WHERE <condio> Onde: nome-tabela - representa o nome da tabela cujos registros sero excludos; condio - representa a condio para a excluso dos registros. Esta condio ser responsvel por selecionar o(s) registro(s) que ser(ao) excludo(s). Veja o exemplo de aplicao Problema: Excluir todos os alunos com nota inferior a 50. Soluo/Resposta: DELETE FROM Aluno WHERE nota<50 Bom, at aqui, aprendemos os comandos responsveis por povoar um banco de dados, inserindo, alterando e excluindo dados. Espero que es- tejam gostando! A partir de agora, iremos aprender o comando de consulta (busca) de dados, chamado de SELECT. Este, com certeza, o comando mais utiliza- do no SQL. Com o SELECT, voc poder responder os mais diversos questio- e-Tec Brasil/CEMF/Unimontes Informtica 50 namentos de sua chefa, de maneira rpida e prtica. Com ele, voc poder construir inclusive relatrios, se utiliz-lo de maneira correta e criativa. Dito isto, vamos aprender, ento, como a sintaxe do SELECT? Antes, preciso dizer que existem diversas maneiras de se construir uma consulta utilizando o SELECT. Neste caderno, iremos aprender as principais maneiras de faz-lo. Para comearmos, vamos apresentar a estrutura bsica do SELECT. Ela constituda da seguinte sintaxe: SELECT <nome-atributo> [,<nome-atributo>] FROM <nome-tabela> [, <nome-tabela>] WHERE <condio> Onde: nome-atributo representa o(s) nome(s) do(s) atributo(s) que se- ro utilizados na consulta. Pode ser utilizado um ou mais; nome-tabela - representa o nome da(s) tabela(s) que contm o(s) atributo(s) que ser(ao) selecionada(s) (informadas aps o Select) ou que ser(ao) utilizada(s) para a execuo da consulta; condio - representa a condio para a seleo dos registros. A seleo poder resultar em um ou vrios registros; WHERE - especifca o critrio (a condio) de seleo dos regis- tros nas tabelas especifcadas. Agora que aprendemos como utilizar o comando Select na sua for- ma mais bsica, vamos aplicar o seu uso em exemplos prticos? Ento, va- mos l. A seguir, seguem alguns exemplos. Veja alguns exemplos de aplicao Problema 1: Selecionar o nome dos aprovados (com nota >= 70). Soluo/Resposta: SELECT nome FROM Aluno WHERE nota>=70 Problema 2: Listar todos os campos (atributos) dos alunos que esto de prova fnal/recuperao (notas >=50 e <70). Soluo/Resposta: SELECT * FROM Aluno WHERE nota>=50 AND nota <70 Problema 3: Informe o nmero de matrcula e o nome dos alunos. Soluo/Resposta: SELECT matricula, nome FROM Aluno A maioria das pesquisas de dados e informaes em sistemas so feitas utilizando-se do comando Select. Observe que, como foi pedida a seleo apenas do nome do aluno, foi informado, aps o Select, apenas o atributo nome. O asterisco (*) utilizado logo aps o Select chamado de caractere curinga, e a sua funo de representar todos os atributos da tabela informada aps o From. No lugar do asterisco, poderia ter sido usada a instruo ALL (que representa todos tambm). Tanto o (*) quanto ALL tm a mesma funo. e-Tec Brasil/CEMF/Unimontes Banco de Dados 51 E ento, estamos indo bem at aqui? timo! Sendo assim, que tal passarmos para o prximo passo do estudo do Select? Vamos agora aprender como usar o Select, utilizando mais alguns recursos. Ento, comecemos falando das funes agregadas. As funes agre- gadas so muito teis para a realizao de consultas, principalmente quando se deseja executar operaes matemticas. As principais funes agregadas so relacionadas na tabela a seguir. Tabela 1: Funes agregadas de SQL Sintaxe Objetivo da funo Avg(n*) retornar a mdia de n, ignorando nulos Count(exp) retornar a quantidade de vezes que exp satisfeita Max(exp**) retornar o maior valor de exp Min(exp) retornar o menor valor de exp Sum(n) retornar a soma dos valores de n, ignorando nulos Fonte: Acervo prprio. * n representa um atributo do tipo numrico. ** exp representa uma expresso (ou atributo) que pode ser numrica ou alfanumrica. Agora que vimos as funes, hora de apresentarmos alguns exem- plos prticos. Veja alguns exemplos de aplicao Problema 1: Quantos alunos conseguiram aprovao? Soluo/Resposta: SELECT count(*) FROM Aluno WHERE nota>=70 Problema 2: Qual a mdia das notas dos alunos? Soluo/Resposta: SELECT avg(*) FROM Aluno Problema 3: Qual a maior nota obtida e o aluno que a obteve? Soluo/Resposta: SELECT nome, max(nota) FROM Aluno e-Tec Brasil/CEMF/Unimontes Informtica 52 Problema 4: Qual a menor nota obtida pelos alunos? Soluo/Resposta: SELECT min(nota) FROM Aluno Problema 5: Para este exemplo, vamos utilizar a tabela Empregado (cdigo, nome, dtnasc, salrio, CPF), referenciada no incio da seo 5.2. Qual o gasto total da empresa com os salrios dos empregados? Soluo/Resposta: SELECT sum(salario) FROM Empregado Passadas as funes agregadas, falaremos do ORDER BY. Ele tem a funo de apresentar o resultado da consulta, ordenado de forma crescente (ASC) ou decrescente (DESC) pelos atributos informados aps o Order By. Para isto, veja como a sintaxe do Order By: SELECT <nome-atributo> [,<nome-atributo>] FROM <nome-tabela> [, <nome-tabela>] WHERE <condio> ORDER BY <nome-atributo> [,<nome-atributo>] ASC DESC Onde: nome-atributo: representa o(s) nome(s) do(s) atributo(s) a ser orde- nado em ordem crescente (ASC) ou decrescente (DESC). Se for utilizado mais de um atributo, os mesmos devem ser separados por vrgula. Veja um exemplo de aplicao Problema: Selecionar o nome e a nota dos alunos aprovados, ordenados pela nota, em ordem decrescente. Soluo/Resposta: SELECT nome, nota FROM Aluno WHERE nota>=70 ORDER BY nota DESC Outra funo que pode ser utilizada com o Select o GROUP BY. A funo Group by serve para agrupar os dados nos atributos informados. No agrupamento de um atributo, os dados so organizados (agrupados) em subconjuntos nos quais os dados coincidentes fcaro representados por uma nica linha no resultado. Veja, a seguir, com fca a sintaxe do GROUP BY. SELECT <nome-atributo> [,<nome-atributo>] FROM <nome-tabela> [, <nome-tabela>] WHERE <condio> [o Where aqui opcional] e-Tec Brasil/CEMF/Unimontes Banco de Dados 53 GROUP BY <nome-atributo> [,<nome-atributo>] HAVING <condiohaving> Onde: HAVING semelhante ao Where; ele especifca uma condio para a seleo de um grupo de dados. Esta opo s utilizada combinada com a opo GROUP BY; condiohaving representa a condio para seleo dos regis- tros agrupados pelo Group By. Para entender como isto funciona, vamos aos exemplos. Veja alguns exemplos de aplicao Problema 1: Informar as turmas e a mdia das notas de cada turma. Soluo/Resposta: SELECT turma, avg(nota) FROM Aluno GROUP BY turma Problema 2: Informar as turmas e a mdia das notas das turmas superiores a 80. Soluo/Resposta: SELECT turma, avg(nota) FROM Aluno GROUP BY turma HAVING avg(nota)>80 5.4 Restries de dados As restries em banco de dados so fundamentais para garantir a exatido, a consistncia e a integridade dos dados. A utilizao das restri- es ajuda a evitar danos acidentais no banco de dados. Existem inmeros tipos de restrio de integridade, desde uma sim- ples defnio de tipo de varivel, que ir determinar que a mesma s aceite aquele tipo de dado, uma defnio de chave primria ou estrangeira, at restries mais complexas, como gatilhos (triggers) e asseres (assertions). Neste caderno, iremos abordar as restries de integridade garan- tidas pelo SGBD: restries de vazio, de domnio, de chave e de integridade referencial. Todas essas restries so efetuadas e gerenciadas pelo prprio SGBD, no necessitando da interferncia humana. Todas elas so efetuadas pelo SGBD de forma transparente ao usurio, ou seja, so executadas auto- maticamente pelo sistema de banco de dados, sem que o usurio intervenha. Inicialmente, vamos falar das restries de vazio. De acordo com Elmasri e Navathe (2011), as restries de vazio so conseguidas por meio da defnio do tipo de atributo como NOT NULL. Quando defnimos que um atributo do tipo NOT NULL, estaremos criando uma restrio de vazio, ou seja, o atributo no aceitar que lhe seja atribudo valor vazio ou nulo. Cabe ressaltar que a SQL possui ainda muitos outros recursos, porm, a proposta deste caderno era apresentar os principais e os mais comumente utilizados. e-Tec Brasil/CEMF/Unimontes Informtica 54 Veja o exemplo de aplicao Considerando a tabela Aluno (matricula, nome, turma, nota), uti- lizada nos exemplos anteriores, vamos tentar executar a seguinte linha de comando SQL para inserir valores na tabela: INSERT INTO Aluno VALUES (, Joaquim da Silva, 2B, 75); A execuo desta sequncia SQL dar erro, pois o primeiro atributo (matrcula) do tipo NOT NULL e, portanto, obrigatoriamente, deve receber algum valor; neste caso, foi atribudo vazio a ele. Em MySql, o erro seria de um tipo assim: MySQL Erro: Null value in column matricula violates not-null cons- traint A segunda a restrio de domnio. Ainda segundo Elmasri e Na- vathe (2011), a restrio de domnio refere-se ao domnio de um atributo, ou seja, o conjunto de valores que esse atributo pode receber. Este tipo de restrio talvez a mais elementar, pois criada quando se defne o tipo do atributo (inteiro, char, varchar, decimal etc.). Veja o exemplo de aplicao Na tabela Aluno (matricula, nome, turma, nota), referenciada ante- riormente, foi criado, por exemplo, o atributo matricula como sendo do tipo inteiro (ou int). Isto signifca que foi criada uma restrio de domnio para o atributo matricula, assim, o mesmo s poder aceitar caractere numrico e do tipo inteiro. INSERT INTO Aluno VALUES (1AB9, Joaquim da Silva, 2B, 75) A execuo desta sequncia ir gerar erro, pois tentou-se atribuir a matrcula um valor que no numrico, afnal, possui letras junto aos nmeros. A terceira restrio a de chave. Conforme o mesmo autor, a res- trio de chave determina que cada linha de uma tabela deve ser identifca- da por um valor nico, ou seja, o(s) atributo(s)-chave(s) deve(m) ser nico(s) na tabela. Como exemplos de atributos-chave, vamos apresentar as chaves primria (simples ou composta) e estrangeira (explicada como integri- dade referencial). Vamos ilustrar um exemplo de declarao e defnio de cada um deles. Veja o exemplo de restrio de chave primria simples Considerando a tabela Aluno, referenciada anteriormente, vamos as- sumir que a mesma no tenha sido criada ainda e vamos simular a criao dela: CREATE TABLE Aluno (matricula int not null, nome varchar(40), e-Tec Brasil/CEMF/Unimontes Banco de Dados 55 turma char(2), nota decimal(6,2), primary key (matricula)) A defnio da matrcula como primary key (chave primria), na ltima linha do comando Create Table, delimita uma restrio de chave, no caso de chave primria simples, pois se defniu apenas um atributo como chave primria. Para o caso de chave primria composta vamos usar o seguinte exemplo: CREATE TABLE Aluno (matricula int not null, nome varchar(40), turma char(2) not null, nota decimal(6,2), primary key (matricula, turma)) A defnio da matricula e da turma como chaves primrias deter- mina uma restrio de chave, neste caso, de chave primria composta, pois se defniu dois atributos-chave. Por fm, vamos apresentar a restrio de integridade referencial, reconhecida como sendo talvez a mais importante restrio em banco de dados. Elmasri e Navathe (2005) ressalta que a restrio de integridade referencial busca garantir que valores de atributos, que so chave estran- geira em uma relao R1, possuam valores correspondentes em chaves pri- mrias da tabela referenciada R2. Vamos trazer um exemplo para tornar isto mais claro? Veja, ento, o exemplo da criao/defnio de uma restrio de integridade referencial. Para este exemplo, vamos criar trs novas tabelas: CREATE TABLE Mdico (codMedico integer not null, nome varchar(30) not null, endereco varchar(35), PRIMARY KEY (matricula) ) CREATE TABLE Consulta (codMed integer not null, codPac integer not null, data date not null, FOREIGN KEY codMed REFERENCES codMedico (Medico), FOREIGN KEY codPac REFERENCES codPaciente (Paciente) ) CREATE TABLE Paciente (codPaciente integer not null, nome varchar(30) not null, e-Tec Brasil/CEMF/Unimontes Informtica 56 endereco varchar(35), fone varchar(14), PRIMARY KEY (CodPaciente)) Uma vez criada a(s) chave(s) estrangeira(s) numa tabela, toda e qualquer manipulao de dados na(s) tabela(s) pai (onde est a chave prim- ria correspondente) ir repercutir na(s) tabela(s) flha(s). Portanto, no exem- plo anterior, quando se criaram as chaves estrangeiras com o Foreign Key na Tabela Consulta, foi determinada uma restrio de integridade referencial, onde os dados da tabela Consulta fazem referncia aos dados nas Tabelas Mdico e Paciente. Neste caso, como no foi especifcada nenhuma ao na defnio da chave estrangeira, o padro que no ser aceito; por exemplo: a exclu- so de nenhum registro nas tabelas pai que possurem o respectivo valor do atributo-chave nas tabelas flhas. Resumo Nesta aula, voc aprendeu: os conceitos envolvidos em SQL; a importncia da SQL para os sistemas e os bancos de dados relacionais e, consequentemente, para as empresas; os principais comandos SQL de DDL e de DML; a aplicao prtica dos comandos SQL em um banco de dados. a gerenciar os dados de banco de dados de forma automatizada, organizada, com segurana, integridade e confabilidade. Atividades de aprendizagem 1. Para que serve a SQL? 2. Explique as siglas DDL e DML em banco de dados. 3. Para que servem os comandos Create Database, Create Table e Use, em SQL? 4. Informe a sequncia do comando SQL para se criar a base de dados cha- mada bdteste. E tambm para se criar a tabela tbteste. 5. Qual comando SQL utilizado para se mudar o nome da tabela tbteste para TableTeste? Demonstre. 6. Apresente a sequncia de comando SQL para se criar uma tabela chama- da Cliente com os seguintes atributos e caractersticas: e-Tec Brasil/CEMF/Unimontes Banco de Dados 57 cdigo: inteiro, como chave primria; nome: varchar, de tamanho 50; endereo: varchar, de tamanho 80; sexo: char, de tamanho 1; fone: varchar, de tamanho 14; datanasc: date. 7. Informe os comandos SQL para realizar a insero dos seguintes dados na tabela Cliente: Registro 1: Cdigo = 2010 Nome = Joo Pedro e Silva Endereo = Av. Um, 100 Sexo = M Fone = (38) 3221-0101 DataNasc = 01/01/1980 Registro 2: Cdigo = 2011 Nome = Maria Aparecida Linhares Endereo = R. So Jos, 20 Sexo = F Fone = (31) 3422-0202 DataNasc = 10/12/1990 8. Qual a sequncia de comando SQL para alterar o endereo do cliente de cdigo = 2010 para Rua Porto Alves, 45, ao invs de Av. Um, 100. 9. Com base no esquema apresentado, informe a sequncia SQL para resol- ver as questes que se seguem: Esquemas Mdico (CodMed, CRM, Nome, Especialidade, CPF, Endereco, CEP, Cidade, Fone) Paciente (Codigo, Nome, Endereco, Cidade, Fone, CodMed) a. Listar todos os mdicos mostrando o nome, a especialidade e o telefone de cada um, ordenados pelo nome. b. Listar todos os campos mdico, ordenados por cidade. c. Liste o total da folha de pagamento, ou seja, o somatrio dos salrios. d. Liste os nomes dos pacientes da cidade de Belo Horizonte que foram atendidos pelo mdico Ivo Pitangui. e. Informe a quantidade de mdicos por cidade. e-Tec Brasil/CEMF/Unimontes Banco de Dados AULA 1 Alfabetizao Digital 59 Aula 6 Integrao de banco de dados e internet Objetivos apresentar a importncia do uso de SGBD integrados internet; apresentar o processo de conexo de um sistema com o banco de dados na internet; demonstrar como se realiza a conexo do sistema com o banco de dados na web. 6.1 SGBD web Voc sabe como fazer para conectar os seus sistemas a um banco de dados? E a um SGBD que funciona na web (internet)? Conhece algum SGBD que rode na rede mundial de computadores, a internet? Bom, existem diversos SGBD que funcionam na web como o prprio MySql (que est sendo utilizado nos exemplos deste caderno), o PostgreSQL, o SQL Server, o DB2, o Oracle, o Firebird e outros. No entanto, o objetivo deste caderno no o de ensinar esses SGBD, nem a programar e muito menos desenvolver aplicaes web. Nesta seo, ns iremos abordar apenas alguns conceitos sobre SGBD web e algumas informaes importantes para se conectar um sistema a um SGBD na internet. O uso de sistemas web, isto , sistemas que funcionam e so aces- sados via internet est dominando o mercado tecnolgico e se tornando o tipo de soluo mais utilizada pelas organizaes. Um sistema web tem inmeros atrativos, que comeam pela fexibilidade e acesso remoto, onde o mesmo pode ser acessado de qualquer lugar (desde que tenha uma conexo internet), e vo at a portabilidade e a disponibilidade, em que pode ser acessado utilizando-se de diferentes tipos de sistemas operacionais e em qualquer horrio, desde que o servidor do banco de dados esteja ligado, ou seja, on line. Como j foi dito, existem diversos SGBD, e cada um apresenta um con- junto de caractersticas particulares, as quais no so objeto de estudo deste caderno didtico. A escolha do SGBD que ser utilizado deve ser feita baseada nas funcionalidades e caractersticas de cada um e no que foi defnido no projeto de banco de dados, ou seja, naquilo que a empresa planejou e determinou como estrutura do seu banco de dados e tipo de informaes que sero trabalhadas. Neste caderno, optou-se por trabalhar com exemplos e funes do MySql, por se tratar de um SGBD gratuito, leve, de fcil manuseio e que detm bastante ma- terial de apoio para estudos publicados em livros e em trabalhos de pesquisa na internet, tornando-o uma tima opo de estudos prticos em nvel acadmico. Para maiores informaes e enriquecimento de contedo, procure outras referncias, como Elmasri e Navathe (2011), ou ainda sites, como Sistema de Bibliotecas da Unicamp (http://www.sbu. unicamp.br/), Portal da Capes (http://www. periodicos.capes. gov.br/), Domnio Pblico (http://www. dominiopublico.gov.br/) etc. e-Tec Brasil/CEMF/Unimontes Informtica 60 6.2 Conexo do SGBD com internet Meu caro aluno, voc acessa a internet frequentemente? Acessa sistemas de pesquisa, de cadastros de dados e sistemas de banco on line? En- to, voc, com certeza, utiliza alguma conexo com um SGBD, pois a maioria dos sistemas se utiliza de um SGBD para gerenciar e armazenar seus dados. Sendo assim, toda vez que for necessria a insero, a alterao, a excluso ou a consulta de dados no banco, o sistema o far utilizando-se das funcio- nalidades do SGBD. Para voc ter uma ideia mais clara de como seria, segue, a seguir, uma ilustrao (fgura 21) de como isto acontece. Figura 21: Conexo com banco de dados na internet. Fonte: Acervo prprio. O acesso ao banco de dados disparado, solicitado pelo usurio, e o sistema que o usurio est operando (localmente) ir se conectar internet (1 evento), procurando o servidor web no qual est o SGBD e o banco de dados (2 evento). Uma vez encontrado o banco de dados, efetuada, ento, a conexo entre o sistema e o banco (3 evento), possibilitando a troca de informaes en- tre ambos. Depois, feito o caminho de volta, em resposta ao usurio. A proposta deste caderno, no entanto, de apresentar apenas como proceder para se estabelecer uma conexo do sistema com o banco de dados MySql. Sendo assim, segue, a seguir, um pequeno passo a passo de como faz-lo. Utilizando PHP + MySql, por exemplo, seria assim: <?php /* Conectando, escolhendo o banco de dados */ $link = mysql_connect(localdoservidor, usurio, senha) or die(No foi possvel conectar ao servidor! . mysql_error()); mysql_select_db(nome do BD) or die(No foi possvel selecionar o banco de dados); ?> PHP (Personal Home Page) uma linguagem de programao de interpretao livre e utilizada para gerar contedo dinmico na rede mundial de computadores (www). (SAWAYA, 1999). e-Tec Brasil/CEMF/Unimontes Banco de Dados 61 Onde: localdoservidor = o endereo (caminho) de onde est armaze- nado o seu servidor MySql. Se estiver usando o banco de dados na sua mquina local, apenas a confgurao seria localhost; usurio = o nome do usurio do banco de dados criado; senha = a senha que foi defnida para este usurio; nome do BD = nome do banco de dados que foi criado. Uma vez feita a conexo com MySql e tambm com o banco de dados, o programador poder realizar qualquer operao permitida com o banco de dados. Para isto, ele necessitar conhecer os comandos descritos neste caderno didtico. A utilizao dos comandos em SQL, relacionados neste caderno obedecer praticamente a mesma sintaxe apresentada neste, podendo, talvez, serem necessrios alguns pequenos ajustes, dependendo do SGBD adotado. As funcionalidades dos comandos sero sempre as mes- mas, apenas as sintaxes que podero sofrer algum tipo de ajuste. Para aplicao ou utilizao dos comandos SQL, ainda necessrio saber mais uma informao importante. Usando o mysql, por exemplo, a forma mais adequada e aconselha- da do seu uso atravs da seguinte linha de: $query= Select * from [nome-da-tabela]; $result= mysql_query($query); Onde: $query: a representao da varivel em php chamada query. Em php, as variveis utilizadas so sempre precedidas do $. Esta varivel conter a sequncia de comando SQL Select * from [nome-da-tabela] a ser executado pelo BD. At este momento, o comando SQL ainda no foi executado de fato. Para isto, necessria a execuo do comando mysql_query; mysql_query($query): mysql_query o comando responsvel por executar o comando SQL direto no banco de dados. Neste caso, a execuo do comando descrito (Select ...) atribuir a varivel $result o resultado do comando empregado, isto , se executar o comando Select * from tabela, o resultado ser todos os campos da tabela referida. Resumo Nesta aula voc aprendeu: a importncia da integrao dos SGBD aos sistemas web; que a escolha do SGBD deve ser um processo criterioso; como realizar a conexo com o SGBD na web. e-Tec Brasil/CEMF/Unimontes Informtica 62 Atividades de aprendizagem 1. O que um SGBD web? 2. Relacione 4 SGBD web. 3. Explique, passo a passo, como feita a conexo com o banco de dados na internet, independente de qual seja esse SGBD. e-Tec Brasil/CEMF/Unimontes Banco de Dados 63 Referncias DATE, C. J.. Introduo a Sistemas de Bancos de Dados. Rio de Janeiro: Cam- pus, 2000. ELMASRI, Ramez; NAVATHE, Shamkant B.. Sistemas de Banco de Dados. 4 Ed. So Paulo: Pearson Addison Wesley, 2005. ______________________________________. Sistemas de Banco de Da- dos. 6 Ed. So Paulo: Pearson Addison Wesley, 2011. SANCHES, Andr Rodrigo. Fundamentos de Armazenamento e Manipulao de Dados. Disponvel em <http://www.ime.usp.br/~andrers/aulas/bd2005-1/ aula5.html>. Acessado em 03 de abril de 2011. SAWAYA, Mrcia Regina. Dicionrio de Informtica e Internet. So Paulo: No- bel, 1999. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de Ban- co de Dados. So Paulo: Makron Books, 1999. WELLING, Luke; THOMSON, Laura. PHP e MySQL desenvolvimento Web. Rio de Janeiro: Elsevier, 2005. e-Tec Brasil/CEMF/Unimontes Informtica 64 Currculo do professor conteudista Leandro Clementino de Almeida Graduado em Sistemas de Informao pela Universidade Estadual de Montes Claros/Unimontes, Especializao em Administrao de Redes Linux, pela Universidade Federal de Lavras, e Mestrando em Administrao, pela Facul- dade de Estudos Administrativos de Minas Gerais. Atualmente, professor da Universidade Estadual de Montes Claros e do e-Tec Brasil e, ainda, adminis- trador de redes do Centro de Ensino Profssional e Tecnolgico da Unimontes. e-Tec Brasil/CEMF/Unimontes Escola Tcnica Aberta do Brasil