68
e-Tec Brasil/CEMF/Unimontes Escola Técnica Aberta do Brasil Informática Banco de Dados Leandro Clementino de Almeida Ministério da Educação

Banco Dados

Embed Size (px)

Citation preview

Page 1: Banco Dados

e-Tec Brasil/CEMF/UnimontesEscola Técnica Aberta do Brasil

Informática

Banco de DadosLeandro Clementino de Almeida

Ministério daEducação

Page 2: Banco Dados
Page 3: Banco Dados

e-Tec Brasil/CEMF/UnimontesEscola Técnica Aberta do Brasil

Informática

Banco de DadosLeandro Clementino de Almeida

Montes Claros - MG2011

Page 4: Banco Dados

Ministro da EducaçãoFernando Haddad

Secretário de Educação a DistânciaCarlos Eduardo Bielschowsky

Coordenadora Geral do e-Tec Brasil Iracy de Almeida Gallo Ritzmann

Governador do Estado de Minas GeraisAntônio Augusto Junho Anastasia

Secretário de Estado de Ciência, Tecnologia e Ensino SuperiorAlberto Duque Portugal

ReitorJoão dos Reis Canela

Vice-ReitoraMaria Ivete Soares de Almeida

Pró-Reitora de EnsinoAnette Marília Pereira

Diretor de Documentação e InformaçõesHuagner Cardoso da Silva

Coordenador do Ensino ProfissionalizanteEdson Crisóstomo dos Santos

Diretor do Centro de Educação Profissonal e Tecnólogica - CEPTMaísa Tavares de Souza Leite

Diretor do Centro de Educação à Distância - CEADJânio Marques Dias

Coordenadora do e-Tec Brasil/UnimontesRita Tavares de Mello

Coordenadora Adjunta do e-Tec Brasil/CEMF/UnimontesEliana Soares Barbosa Santos

Coordenadores de Cursos:Coordenador do Curso Técnico em AgronegócioAugusto Guilherme Dias Coordenador do Curso Técnico em ComércioCarlos Alberto Meira Coordenador do Curso Técnico em Meio AmbienteEdna Helenice Almeida

Coordenador do Curso Técnico em InformáticaFrederico Bida de Oliveira

Coordenadora do Curso Técnico em Vigilância em SaúdeSimária de Jesus Soares

Coordenadora do Curso Técnico em Gestão em SaúdeZaida Ângela Marinho de Paiva Crispim

BANCO DE DADOSe-Tec Brasil/CEMF/Unimontes

ElaboraçãoLeandro Clementino de Almeida

Projeto Gráficoe-Tec/MEC

Supervisão Wendell Brito Mineiro

DiagramaçãoHugo Daniel Duarte SilvaMarcos Aurélio de Almeida e Maia

Impressão e AcabamentoGráfica RB Digital

Designer InstrucionalAngélica de Souza Coimbra FrancoKátia Vanelli Leonardo Guedes Oliveira

RevisãoMaria Ieda Almeida MunizPatrícia Goulart TondineliRita de Cássia Silva Dionísio

Presidência da República Federativa do BrasilMinistério da EducaçãoSecretaria de Educação a Distância

Page 5: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

3

Prezado estudante,

Bem-vindo ao e-Tec Brasil/Unimontes!

Você faz parte de uma rede nacional pública de ensino, a Escola Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezem-bro 2007, com o objetivo de democratizar o acesso ao ensino técnico público, na modalidade a distância. O programa é resultado de uma parceria entre o Ministério da Educação, por meio das Secretarias de Educação a Distancia (SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e escola técnicas estaduais e federais.

A educação a distância no nosso país, de dimensões continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pes-soas ao garantir acesso à educação de qualidade, e promover o fortalecimen-to da formação de jovens moradores de regiões distantes, geograficamente ou economicamente, dos grandes centros.

O e-Tec Brasil/Unimontes leva os cursos técnicos a locais distantes das instituições de ensino e para a periferia das grandes cidades, incenti-vando os jovens a concluir o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino e o atendimento ao estudante é realizado em escolas-polo integrantes das redes públicas municipais e estaduais.

O Ministério da Educação, as instituições públicas de ensino téc-nico, seus servidores técnicos e professores acreditam que uma educação profissional qualificada – integradora do ensino médio e educação técnica, – não só é capaz de promover o cidadão com capacidades para produzir, mas também com autonomia diante das diferentes dimensões da realidade: cul-tural, social, familiar, esportiva, política e ética.

Nós acreditamos em você!

Desejamos sucesso na sua formação profissional!

Ministério da EducaçãoJaneiro de 2010

Apresentação e-Tec Brasil/CEMF/Unimontes

Page 6: Banco Dados
Page 7: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

5

Indicação de ícones

Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual.

Atenção: indica pontos de maior relevância no texto.

Saiba mais: oferece novas informações que enriquecem o assunto ou “curiosidades” e notícias recentes relacionadas ao tema estudado.

Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto.

Mídias integradas: possibilita que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e outras.

Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado.

Page 8: Banco Dados
Page 9: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização DigitalSumário

7

Palavra dos professores conteudistas ....................................... 11Projeto instrucional ........................................................... 13Aula 1 - Introdução ............................................................ 15 1.1 Processamento tradicional de arquivos x banco de dados ..... 17 1.2 Profissionais e atividades envolvidas em um SGBD ............. 18 1.3 Vantagens e desvantagens do uso de banco de dados ......... 18 Resumo ................................................................... 20 Atividades de Aprendizagem ........................................... 20Aula 2 – Sistemas da banco de dados (SBD): conceitos e arquitetura .. 21 2.1 Introdução ........................................................... 21 2.2 Modelos de dados ................................................... 22 2.3 Esquema ............................................................. 26 2.4 Instância ............................................................. 26 Resumo ................................................................... 27 Atividades de Aprendizagem ........................................... 27Aula 3 – Modelagem Ae dados – Modelo Entidade Relacionamento – MER . 29 3.1 Introdução ........................................................... 29 3.2 Entidade, atributo e relacionamento ............................ 30 3.3 Tipos de entidades e atributos .................................... 32 3.4 Diagrama Entidade Relacionamento (DER) ...................... 33 Resumo ................................................................... 35 Atividades de Aprendizagem ........................................... 36Aula 4 – Modelagem de dados – Modelo Relacional (MR) ................. 37 4.1 Introdução ........................................................... 37 4.2 Relações, domínios, tuplas e atributos .......................... 38 4.3 Atributos-chave ..................................................... 38 4.4 Mapeamento do MER para MR ..................................... 39 Resumo ................................................................... 42 Atividades de Aprendizagem ........................................... 42Aula 5 – SQL básico ............................................................ 45 5.1 Conceito .............................................................. 45 5.2 Comandos de definição de dados ................................. 45 5.3 Comandos de Manipulação de Dados ............................. 49 5.4 Restrições de dados ................................................ 55 Resumo ................................................................... 58 Atividades de Aprendizagem ........................................... 58Aula 6 – Integração de banco de dados e internet ....................... 61 6.1 SGBD web ............................................................ 61 6.2 Conexão do SGBD com internet ................................... 62 Resumo ................................................................... 63 Atividades de Aprendizagem ........................................... 64Referências ..................................................................... 65Currículo do professor conteudista ......................................... 66

Page 10: Banco Dados
Page 11: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

9

Caro estudante!

Neste módulo, iniciaremos os estudos sobre banco de dados. Nele, teremos a oportunidade de aprender os principais conceitos, recursos, apli-cações e serviços trabalhados em banco de dados.

Por acaso, já teve a oportunidade de estudar alguma coisa sobre banco de dados? Não? Então, este momento será muito proveitoso para todos nós. Caso já tenha algum conhecimento sobre banco de dados, os estudos realizados não serão menos importantes, pois haverá um momento de relem-brar coisas e de também aprender assuntos novos.

Dito isto, que tal começarmos nossos estudos? O termo banco de dados, assim como as tecnologias de bancos de

dados, tem ganhado cada vez mais importância e está se tornando cada dia mais útil e popular, com a expansão da utilização dos computadores.

Os bancos de dados e os sistemas de bancos de dados tornaram-se componentes essenciais no cotidiano da sociedade moderna. Em nosso coti-diano, deparamo-nos com diversas atividades que envolvem alguma intera-ção com banco de dados. Um exemplo é a utilização de serviços bancários, como depósito, saque, pagamentos de contas etc. Todos esses serviços são possíveis graças a um bom sistema de banco de dados. Outros exemplos: se acessamos o catálogo de uma biblioteca virtual (informatizada) para consul-tar uma bibliografia; se compramos produtos, como livros, brinquedos, equi-pamentos eletrônicos etc., ou de um fornecedor por intermédio de sua pági-na na internet (na web); se fazemos reservas em um hotel ou para a compra de passagens aéreas ou terrestres; quase que certamente, essas atividades envolverão uma pessoa e/ou um programa de computador que acessará um banco de dados.

Há alguns anos apenas, as grandes empresas se beneficiavam da uti-lização de sistemas de banco de dados, porém, a sua implementação vem ga-nhando espaço até mesmo em pequenas empresas e em pequenos comércios.

Essas interações são exemplos do que podemos denominar aplica-ções tradicionais de banco de dados, nos quais, a maioria das informações que são armazenadas e acessadas apresenta-se em formatos textual ou nu-mérico. Além disso, é cada vez mais crescente a utilização de bancos de dados que armazenam dados multimídia, geográficos e vetoriais. Nos últimos anos, os avanços tecnológicos geraram aplicações bastante inovadoras e in-teressantes dos sistemas de banco de dados.

Neste módulo, você terá condições de desenvolver seus conheci-mentos sobre banco de dados, pois trataremos, aqui, dos fundamentos e da prática desse conteúdo.

Palavra do professor conteudista

Page 12: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática10

Você terá oportunidade, ao longo da leitura das aulas, de perceber que a utilização de banco de dados e sistemas de banco de dados faz parte do seu cotidiano e é fundamental para o conhecimento da área de informá-tica, principalmente na área de desenvolvimento.

Neste sentido, o conteúdo deste caderno didático foi elaborado adotando-se uma dinâmica de organização na qual partiu-se de uma introdu-ção sobre a temática, passando pelos conceitos fundamentais dela, na busca da sua compreensão sobre banco de dados e sobre a importância deste na formação do técnico em Informática.

Assim, na Aula I, você será introduzido nos conceitos de banco de dados, sistema gerenciador de banco de dados (SGBD), sistema de banco de dados. Será apresentado um breve comparativo entre banco de dados e processamento tradicional de arquivos, além de apresentar situações nas quais não se necessita de um SGBD. Daremos continuidade a essa iniciação na Aula II, abordando conceitos de modelos de dados e os principais, e ainda esquema e instâncias.

Na Aula III, você será apresentado à modelagem de dados e irá co-nhecer, especificamente, o Modelo Entidade Relacionamento e seus princi-pais conceitos, como entidade, atributo, relacionamento, tipos de entidades e atributos e Diagrama de Entidade Relacionamento. Na Aula IV, você conhe-cerá o modelo de dados relacional, tido como o mais utilizado no mundo, e também os principais conceitos envolvidos nesse modelo.

Na Aula V, será apresentada a linguagem estruturada de consulta (SQL) e seus principais recursos.

Finalmente, na Aula VI, você terá oportunidade de conhecer como se faz a integração do banco de dados com a internet.

Assim, esperamos que, ao final desta disciplina, você esteja habi-litado a:

• especificar projeto físico e lógico de banco de dados;• gerenciar transações de banco de dados por intermédio do uso

de métodos, técnicas e ferramentas que envolvam os elementos de gestão de dados e transações;

• estar familiarizado com a tecnologia de banco de dados, en-volvendo linguagens de definição, consulta a banco de dados e aspectos de segurança e integridade.

Sugerimos que você dedique tempo suficiente para fazer a leitura, realizar as atividades e retirar suas dúvidas. Sempre que considerar necessá-rio, volte ao texto e refaça as atividades! Não se limite a este material; faça pesquisas, converse com professores e colegas. Você verá que aprender é uma interessante aventura!

Bons estudos!Leandro Clementino de Almeida

Page 13: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

11

Disciplina: Banco de Dados (carga horária: 60h).

Ementa: Conceituação sobre banco de dados. Identificação e aná-lise de modelos de bancos de dados. Identificação e aplicação de um mode-lo de banco de dados. Conceituação de sistemas de gerência de banco de dados multiusuário. Conceituação e análise de características próprias de sistemas de gerenciamento de banco de dados multiusuário: gerenciamento de transações, controle de concorrência, recuperação de falhas, segurança e integridade de dados. Comparação de abordagens não convencionais para bancos de dados; integração de bancos de dados e internet.

AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORÁRIA

Aula 1.Introdução

- Conceituar os principais termos de banco de dados;- distinguir processamento de arqui-vos tradicional de banco de dados;- apresentar aspectos referentes à importância da aplicação e do uso de banco de dados; - possibilitar ao aluno definir quando não for aconselhada a utilização de um SGBD.

- 8h

Aula 2. Sistemas de banco de da-dos: conceitos e arquitetura

- Apresentar os principais conceitos envolvidos em sistemas de banco de dados, bem como sua arquitetura, seus componentes e, principalmente, os modelos de dados mais relevantes;- tornar o aluno capaz de identificar um modelo de dados e, com isto, criar e desenvolver a modelagem de um projeto de banco de dados em qual-quer um dos modelos apresentados.

- 8h

Aula 3.Modelagem de dados – Mo-delo Entidade Relaciona-mento (MER)

- Descrever os conceitos envolvidos na Modelagem Entidade Relacionamento;- apresentar os principais termos utilizados na construção de um banco de dados no MER;- possibilitar aos alunos construir o conhecimento para a criação de mo-delos e diagramas ER, com os respec-tivos relacionamentos.

- 12h

Projeto instrucional

Page 14: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática12

Aula 4.Modelagem de dados – Mode-lo Relacional (MR)

- Conceituar e apresentar os princi-pais elementos do Modelo Relacional;- demonstrar as principais aplicações do modelo na construção de projeto de banco de dados relacional;- realizar o mapeamento do Modelo Entidade Relacionamento (MER) para o Modelo Relacional (MR).

- 12h

Aula 5. Linguagem de consulta estruturada (SQL) - básico

- Apresentar os principais conceitos sobre linguagem de consulta estrutu-rada (SQL);- realizar estudos sobre DDL e DML;- realizar aplicações práticas dos prin-cipais comandos SQL;- definir e criar restrições de dados em SQL.

- 16h

Aula 6.Integração de banco de da-dos e internet

- Apresentar a importância do uso de SGBD integrados à internet;- apresentar o processo de conexão de um sistema com o banco de dados na internet;- demonstrar como se realiza a cone-xão do sistema com o banco de dados na web.

- 4h

Page 15: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

13

Aula 1 - Introdução

Objetivos

• conceituar os principais termos de banco de dados;• distinguir processamento de arquivos tradicional de banco de

dados;• apresentar aspectos referentes à importância da aplicação e do

uso de banco de dados; • possibilitar ao aluno definir quando não for aconselhada a utili-

zação de um SGBD.

Você já parou para pensar no crescimento do uso de computadores em nosso cotidiano? E na quantidade de empresas e de lojas comerciais que fazem uso de sistemas para gerenciar seus negócios? Pois o banco de dados (BD) e as demais tecnologias em volta dele estão entre os principais elemen-tos que provocam um grande impacto no crescimento do uso de computa-dores na sociedade moderna. O BD representa uma ferramenta essencial em quase todas as áreas nas quais os computadores são utilizados, incluindo negócios diversos, comércio eletrônico, Engenharia, Medicina, Direito, Edu-cação e as Ciências da Informação, para citar apenas algumas delas.

Bom, antes de continuarmos a falar deste termo tão importante e útil nos dias atuais, é preciso defini-lo. Vamos aprender?

Uma definição bastante genérica é dada por Elmasri & Navathe (2005):

“Um banco de dados é uma coleção de dados relacionados. Os da-dos são fatos que podem ser gravados e que possuem um significa-do implícito. Por exemplo, considere nomes, números telefônicos e endereços de pessoas que você conhece. Esses dados podem ter sido escritos em uma agenda de telefones ou armazenados em um computador, por meio de programas como o Microsoft Access ou Excel. Essas informações são uma coleção de dados com um signi-ficado implícito, consequentemente, um banco de dados.”

Como a definição anterior é muito genérica, para evitar entendi-mentos equivocados, os mesmos autores descrevem ainda que um banco de dados possui as seguintes propriedades:

• um banco de dados é uma coleção lógica coerente de dados com um significado inerente; uma disposição desordenada dos dados não pode ser referenciada como um banco de dados;

• um banco de dados é projetado, construído e populado com da-dos para um propósito específico; um banco de dados possui um conjunto pré-definido de usuários e aplicações;

• um banco de dados representa algum aspecto do mundo real, o qual é chamado de “minimundo”; qualquer alteração efetuada no minimundo é automaticamente refletida no banco de dados.

As leituras auxiliares são sempre importantes e enriquecedoras. Não deixe de fazê-las!

Populado: o mesmo que alimentado/povoado, de acordo com Figueiredo (2011).

Page 16: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática14

Para melhor entendimento, podemos destacar alguns ingredientes necessários em um BD, conforme Elmasri e Navathe (2005):

• uma fonte de dados da qual são derivados os dados;• a interação com o mundo real;• o público que demonstra interesse nos dados contidos no banco

de dados.

Sendo assim, um banco de dados pode ser de qualquer tamanho e de complexidade variável; pode ser gerado e mantido manualmente ou pode ser automatizado (computadorizado). Desta forma, um BD pode ser cria-do e mantido por um conjunto de programas desenvolvidos especialmente para isto, ou ainda melhor, por um Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD permite que as pessoas (os usuários) criem e manipulem seus bancos de dados. O objetivo principal de um SGBD é proporcionar um ambiente eficiente para o armazenamento e para a recuperação das infor-mações no banco de dados. (ELMASRI; NAVATHE, 2005).

O conjunto formado por um banco de dados mais as aplicações que manipulam esse banco (o SGBD) é chamado de “Sistema de Banco de Dados - SBD”, conforme ilustra a figura a seguir.

Figura 1: Constituição de um SGBD.Fonte: Acervo próprio.

Os bancos de dados são implementados e utilizados em diversas áreas. Vamos conhecê-las? A seguir, estão relacionadas algumas delas.

• Instituições de ensino: para informações administrativas, de alunos, cursos, notas etc.

• Empresas de energia: para a gerência do consumo de energia, geração de contas etc.

• Bancos: para informações de clientes, contas, empréstimos, fi-nanciamentos e todas as transações bancárias.

• Meio ambiente: para o controle das questões climáticas, infor-mações sobre desmatamentos, sobre o solo etc.

• Transações com cartão de crédito: para compras com cartões e geração de faturas.

• Telecomunicação: para manter registros de chamadas, geren-ciar contas, gerenciar informações de conectividade, links de internet etc.

• Finanças: para armazenar informações de compras, vendas etc.• Indústria: para gerenciamento e controle da produção e de to-

dos os itens envolvidos.

Page 17: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 15

• Recursos humanos: para informações sobre funcionários, salá-rios, lançamentos em folha de pagamento (benefícios e impostos pagos), geração de contracheques.

• Outras áreas.

Na verdade, um banco de dados pode ser utilizado em qualquer área. Tudo dependerá da necessidade.

1.1 Processamento tradicional de arquivos x banco de dados

Você sabe a diferença que há entre fazer uso de processamento tra-dicional de arquivos para acessar informações e utilizar um banco de dados? Bem, é isto que iremos explicar ao longo deste caderno e também alguns outros assuntos correlacionados.

Antes de falar do processamento de arquivos e do banco de dados propriamente dito, é preciso esclarecer que o SGBD possui uma caracterís-tica de autoinformação que tem a capacidade de manter os dados na forma como são armazenados, constituindo, assim, em uma descrição completa do banco de dados. Essas informações são armazenadas num local que contém a estrutura de cada arquivo, o tipo e o formato do armazenamento de todos os tipos de dados, chamado catálogo do SGBD. O que faz com que este possa manipular diversas bases de dados. (ELMASRI; NAVATHE, 2005).

No processamento de arquivos, o programa que manipula os dados deverá conter as informações do catálogo do SGBD, ficando limitado a mani-pular as informações que o mesmo conhece.

No processamento tradicional de arquivos, os usuários criam e de-finem os arquivos necessários para cada aplicação específica, resultando em grandes redundâncias e, muitas vezes, no desperdício de espaço de armaze-namento. Normalmente, nesses arquivos, não existe qualquer estruturação dos dados nele contidos.

Em banco de dados, não é armazenado somente o banco em si, isto é, os dados, mas sim um catálogo de dados.

Em banco de dados, o acesso às informações não requer conheci-mento das estruturas do mesmo, o que chamamos de “independência dos dados”, de acordo com Elmasri e Navathe (2005). Já no processamento tradi-cional de arquivos, o acesso a qualquer informação requer um conhecimento prévio da estrutura do arquivo.

Em banco de dados, quando houver qualquer alteração na estrutura dos dados, os programas (SGBD) não precisam ser alterados. Já em proces-samento tradicional, não. Neste caso, toda alteração na estrutura dos dados exigiria uma alteração nos programas que manipulam as informações dos arquivos.

Ainda segundo o autor supracitado, em banco de dados, as informa-ções do catálogo são chamadas de “metadados”.

Autoinformação: é o mesmo que ter informação de si mesmo.

Page 18: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática16

1.2 Profissionais e atividades envolvidas em um SGBD

Por acaso, você conhece algum profissional que trabalha com banco de dados? Ou mesmo que utilize o banco de dados por meio do acesso aos sistemas empregados no trabalho, por exemplo?

Pois bem, em um banco de dados pequeno, por exemplo, de uso pes-soal, uma única pessoa será quem vai definir, construir e manipular o banco de dados. Porém, em um grande banco de dados, com dezenas, centenas (ou milhões) de usuários e com restrições de acesso para cada um, é necessário um controle rígido sobre o mesmo e, neste sentido, podemos identificar e destacar alguns perfis de pessoas que interagem com banco de dados, conforme desta-cam Elmasri e Navathe (2005):

• administrador do banco de dados (DBA);• projetista do banco de dados;• analista de sistemas;• programador de aplicações;• usuário final.Cada um desses profissionais é encarregado de uma série de fun-

ções inerentes ao seu perfil. Sendo assim, segue, a seguir, uma descrição das atividades desenvolvidas por cada um deles, segundo Elmasri e Nava-the(2005).

Administrador de dados (DBA): é o supervisor do banco de dados, responsável pela autorização de acesso ao banco, pelo monitoramento e pela coordenação do uso. Está envolvido com os aspectos físicos do banco de dados (estruturas de armazenamento, métodos de acesso etc.).

Projetistas do banco: são responsáveis pela identificação dos da-dos e pela elaboração de estruturas apropriadas para armazená-los. Para isto, é necessário compreender os requisitos necessários aos grupos de usu-ários do banco de dados antes de sua implementação.

Analista de sistemas: determina os requisitos dos usuários e desen-volve especificações que atendam estes requisitos.

Programadores: implementam as especificações na forma de pro-gramas, elaborando toda a documentação.

Usuário (final): um banco de dados existe para a utilização do usu-ário final, cujo trabalho, normalmente, requer consultas e atualizações. A maioria dos usuários utiliza programas voltados ao desempenho profissional, utilizando-os em seu dia a dia.

1.3 Vantagens e desvantagens do uso de banco de dados

Que tal começarmos com as vantagens? O uso de banco de dados nos proporciona diversas vantagens em relação ao método de processamento tradicional de arquivos. A seguir, veremos algumas dessas vantagens e des-vantagens observadas na obra de Elmasri e Navathe (2005).

Page 19: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 17

• Controle sobre a redundância: redução do espaço necessário para armazenamento, eliminação da duplicação de esforços na manutenção das informações e redução de inconsistência na base de dados.

• Compartilhamento de dados: se diversos usuários têm aplica-ções integradas no BD, precisa-se de um software de controle de concorrência para a atualização do banco. Facilidade na defi-nição da visão do usuário, especificando uma porção do BD que tem interesse particular de um grupo de usuários.

• Restrição de acesso não autorizado: possui um sistema de se-gurança que garantia o acesso específico a cada usuário (perso-nalizado para grupos ou individual), possibilitando maior segu-rança ao BD.

• Fornecimento de múltiplas interfaces: disponibiliza vários ti-pos de interface de acesso aos dados, dependendo dos níveis de conhecimento entre os usuários. O BD permite o uso de lingua-gem para consulta de usuários casuais; linguagem de programa-ção, para o programador de aplicações; formulários e menus, para acesso de outros usuários etc.

• Forçar restrições de integridade: permite a definição de regras associadas aos dados, como identificação do tipo de dado, dado de tipo único, impossibilidade do dado não ser informado (ser nulo), relacionamento entre os dados armazenados etc. Isto irá dificultar a ocorrência de erro, porém, ele ainda poderá acon-tecer.

• Sistema de backup e recovery: possui controle do BD, no caso de falha do hardware ou do software, permitindo a recuperação da situação anteriormente encontrada de forma ágil e prática.

• Outras vantagens de BD: quanto ao desenvolvimento de pa-drões, permite ao DBA definir e forçar padrões (nomenclaturas, formatos, terminologias etc.), facilitando a comunicação e a co-operação entre os setores, projetos e usuários dentro da orga-nização; Garante maior flexibilidade ao permitir alterações na estrutura do BD. Projetar e implementar uma nova aplicação é mais rápido em um BD existente do que se ele não existisse ou fosse feito sobre a abordagem tradicional de arquivos. Torna dis-ponível o BD para todos os usuários (com permissão de acesso), devido ao controle de concorrência e à recuperação do SGBD.

Contudo, cabe ressaltar também que existem algumas situações nas quais é desaconselhado o uso de banco de dados. Vamos ver em quais situa-ções isto acontece?

As desvantagens ocorrem quando:• seu uso apresentar um custo desnecessário em relação à aborda-

gem tradicional de arquivos;• requerer um alto investimento inicial com software e hardware;• gerar uma sobrecarga na provisão de controle de segurança,

controle de concorrência, recuperação e integração de funções;• o banco de dados e as aplicações são simples, bem definidas e

não necessitam de mudanças no projeto;

Backup: é o processo de criar cópia dos dados.

Recovery: é a restauração dos dados “backupeados”.

Page 20: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática18

• há necessidade de processamento em tempo real de certas apli-cações, que seriam extremamente prejudicadas pela sobrecarga causada pelo uso de um SGBD;

• os múltiplos acessos não são necessários.

Resumo

Nesta aula, você aprendeu:• conceitos envolvidos em banco de dados;• a importância de um bom banco de dados, principalmente em

relação ao método de processamento tradicional de arquivos;• quando usar e quando não usar um banco de dados.

Atividades de aprendizagem

1. Informe um conceito para definir banco de dados.

2. Quais são as áreas do mundo globalizado que se utilizam da tecnologia de banco de dados?

3. Um grupo qualquer de informações pode ser considerado um banco de dados? Por quê?

4. Quais são os elementos essenciais para se afirmar que um determinado conjunto de informações é, de fato, um banco de dados?

5. Qual a diferença entre processamento tradicional de arquivos e banco de dados?

6. O que é o catálogo do SGBD? E metadados?

7. O que significa “independência de dados” em banco de dados?

Page 21: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

19

Aula 2 – Sistemas de banco de dados (SBD): conceitos e arquitetura

Objetivos

• apresentar os principais conceitos envolvidos em sistemas de banco de dados, bem como sua arquitetura, seus componentes e, principalmente, os modelos de dados mais relevantes;

• tornar o aluno capaz de identificar um modelo de dados e, com isto, criar e desenvolver a modelagem de um projeto de banco de dados em qualquer dos modelos apresentados.

2.1 Introdução

Já tinha ouvido falar em sistema de banco de dados (SBD)? Acredito que, alguns, sim; mas, de qualquer forma, nesta aula, iremos abordar diver-sos conceitos envolvendo sistemas de banco de dados, a arquitetura de um sistema de banco de dados e seus componentes e, principalmente, apresen-tar os modelos de dados mais conhecidos e utilizados.

Para melhor compreensão de um SBD, segue, a seguir, na figura 02, um diagrama simplificado com a sua arquitetura.

Figura 2: Diagrama simplificado da arquitetura do sistema de banco de dados.Fonte: Disponível em: <http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula5.html>. Acesso em 03 de abril de 2011.

Não fique preso apenas a este caderno; busque outras fontes de estudo sobre banco de dados.

Page 22: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática20

A figura 2 nos ilustra os principais elementos de um SBD:• o banco de dados: dados armazenados e metadados ou catálogo

de dados;• SGBD: processador/otimizador de consultas e software para

acessar os dados;• SBD: banco de dados + SGBD + programas aplicativos/consultas.

2.2 Modelos de dados

Para ter condições de construir projetos de banco de dados, é preci-so, antes, conhecer e entender os modelos de dados. Vamos começar, então?

De acordo com Silberschatz, Korth & Saudarshan (1999), uma gran-de vantagem do uso de banco de dados é o poder de abstração dos dados que o banco permite. Neste caso, o usuário não necessita conhecer detalhes do armazenamento de dados para acessá-los ou manipulá-los.

Os modelos de dados são um conjunto de conceitos utilizados para a descrição da estrutura de um banco de dados. A estrutura de um banco de dados deve ser entendida como sendo a definição dos tipos de dados, dos relacionamentos e das restrições que devem suportar os dados.

Baseando-nos em Elmasri e Navathe (2005), os modelos de dados podem ser classificados em três tipos básicos, descritos a seguir.

2.2.1 Modelo de alto nível

Também conhecido como modelo de dados conceituais,descreve os dados como os usuários os percebem, segundo Elmasri e Navathe (2005).

Como exemplos de modelos de alto nível, podemos destacar dois tipos, dados a seguir.

• Modelo Entidade Relacionamento: o Modelo Entidade Relacio-namento (E-R) é baseado em uma percepção de um mundo real, que consiste em uma coleção de objetos básicos, chamados en-tidades, e de relações entre esses objetos, chamadas de relacio-namentos. Este modelo será mais bem descrito na aula 3 deste caderno. A figura 3 apresenta um exemplo do Modelo Entidade Relacionamento. Nesta figura, está representado o modelo de um pequeno banco de dados, composto das tabelas “Pessoa” e “Computador”, que registram as informações de todas as pessoas que utilizam os computadores de uma lan house, por exemplo.

Figura 3: Exemplo de banco de dados do Modelo Entidade Relacionamento.Fonte: Disponível em: <http://lh6.ggpht.com/franciscogpneto/SLCf7mfnSuI/AAAAAAAAGM8/E77w-LNEf3o/s1600-h/image%5B3%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).

Lan house: é um local para as

pessoas acessarem a internet. Normalmente

é cobrada uma taxa. (SAWAYA, 1999)

Page 23: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 21

• Modelo orientado a objeto: Assim como o modelo ER, o modelo orientado a objetos tem por base um conjunto de objetos. Um objeto contém valores que são armazenados em variáveis; es-tes valores de variáveis são conhecidos como instâncias dentro do objeto. Além disso, um objeto contém conjuntos de códigos (chamados de operações) que operam o objeto. A principal mo-tivação para o surgimento desse modelo foi a necessidade de extrapolar os limites de armazenamento e de representação se-mântica dos dados, impostos pelo modelo relacional (tido como a melhor solução até então). A princípio, achava-se que o mode-lo orientado a objeto dominaria o mercado de banco de dados, porém isso não se confirmou e, o modelo relacional ainda é o modelo mais empregado pelas empresas ao redor do planeta. Com sua maior flexibilidade e robustez o modelo orientado a objeto tornou-se uma boa solução em sistemas complexos que lidam com tipos de informações variadas (geográficas, multimí-dia, vetoriais etc.) e em grande volume. Podemos citar como exemplos desse modelo os sistemas de informações geográficas (SIG), os sistemas CAD e CAM, que são mais facilmente construí-dos usando tipos complexos de dados. Na figura 4, a seguir, está um pequeno exemplo de banco de dados orientado a objetos, demonstrando um sistema de registro de informações de clien-tes, dos títulos (filmes) e de todos os movimentos/locações de títulos efetuados pelos clientes. (ELMASRI; NAVATHE, 2005).

Figura 4: Exemplo de banco de dados do modelo orientado a objeto.Fonte: Disponível em: <http://jpleonidas.files.wordpress.com/2009/12/001.png>. Acesso em 05 de abril de 2011 (J. P. Leonidas).

Os CADs são programas que se utilizam de técnicas gráficas para o desenvolvimento de projetos; o CAM é todo processo de fabricação controlado por computador. Os dois juntos (CAD/CAM) formam um conjunto de ferramentas muito utilizadas pela Engenharia para a criação de projetos. (SAWAYA, 1999).

Page 24: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática22

2.2.2 Modelo de baixo nível

Conhecido como modelo de dados físicos, descreve os detalhes de como os dados estão armazenados no computador, de acordo com Elmasri e Navathe (2005). Este modelo tem relação direta com a máquina, o hardware.

Geralmente, é mais útil e significativo para os especialistas em har-dware de computador.

Não possui exemplos de modelos diagramados descritos na litera-tura, pois atua em nível de hardware e, além disso, não é objeto de estudo deste caderno didático.

2.2.3 Modelo de dados representacionais

Modelo intermediário que oferece os conceitos que podem ser en-tendidos pelos usuários finais e também dispõe de informações de como os dados estão organizados dentro do computador, conforme relatam Elmasri e Navathe (2011). Normalmente, é utilizado pelos especialistas. Este modelo é o mais utilizado em SGBDs comerciais tradicionais.

Como exemplos de modelos de dados representacionais, podemos destacar os três que são descritos a seguir.

• Modelo relacional: utiliza um conjunto de tabelas para repre-sentar tanto os dados como a relação entre eles. Cada tabela possui, normalmente, diversas colunas, e cada uma possui um nome único. Este modelo será mais bem descrito na aula 4 deste caderno. A figura apresenta um exemplo de banco de dados bem simples, no qual existem apenas duas tabelas, “Empregado” e “Departamento”, sendo que cada empregado está ligado a ape-nas um departamento.

Figura 5: Exemplo de banco de dados do modelo relacional.Fonte: Disponível em: <http://lh3.ggpht.com/franciscogpneto/SMWGV0ACPjI/AAAAAAAAGrY/Zd2ORsFnAz4/image_thumb%5B2%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).

Page 25: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 23

• Modelo de rede: neste modelo, os dados são representados por um conjunto de registros, e as relações entre esses registros são representadas por links (ligações), os quais podem ser vistos por ponteiros (setas). Os registros são organizados no banco de dados por um conjunto arbitrário de gráficos. O modelo em rede possibilita acesso a qualquer nó da rede sem passar pela raiz da rede, diferentemente do modelo hierárquico. Um exemplo de sistema/empresa que utilizou o modelo em rede foi o sistema comercial CAIDMS, da Computer Associates. O exemplo apresen-tado a seguir, na figura 6, ilustra o mesmo banco de dados do modelo relacional anterior, porém, agora, no modelo de rede.

Figura 6: Exemplo de banco de dados do modelo em rede.Fonte: Disponível em: <http://lh5.ggpht.com/franciscogpneto/SMWG3zwANyI/AAAAAAAAGrg/ustUmKAn7bw/image_thumb%5B2%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).

• Modelo hierárquico: o modelo hierárquico assemelha-se ao mo-delo em rede, uma vez que os dados e as suas relações são representados, respectivamente, por registros e links, também. A diferença principal é que, no modelo hierárquico, os regis-tros estão organizados em árvores, em vez de serem em gráficos arbitrários. Outro aspecto que o distingue do modelo em rede é que, no modelo hierárquico, para se acessar qualquer nó do banco (da rede), é necessário sempre passar pela raiz. Nesse modelo, os dados são estruturados em hierarquias ou árvores. Os nós das hierarquias (ou da árvore) contêm ocorrências de re-gistros; cada registro é uma coleção de campos (atributos), cada um contendo apenas uma informação. O registro da hierarquia que precede aos outros é o registro pai; os outros, por sua vez, são chamados de registros filhos. Um exemplo de sistema/em-presa que adotou o modelo hierárquico foi o sistema comercial Information Management System, da IBM Corp (IMS), e alguns outros, como o System 2K (da SAS Inc.) e o TDMS. O exemplo a seguir, da figura 7, apresenta o mesmo banco de dados dos dois modelos anteriores (relacional e de rede), só que, agora, no mo-delo hierárquico.

Page 26: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática24

Figura 7: Exemplo de banco de dados do modelo hierárquico.Fonte: Disponível em: <http://lh5.ggpht.com/franciscogpneto/SMWHaftiOSI/AAAAAAAAGro/dAe-R1_w5HI/image_thumb%5B3%5D.png>. Acesso em 05 de abril de 2011 (Francisco G. P. Neto).

Como você pode observar, existem diferentes modelos de dados em BD. Porém, devido ao tempo curto para estudo da disciplina e, principal-mente, à maior utilização do modelo relacional em relação aos demais, este caderno concentrar-se-á na explicação mais detalhada apenas dos modelos que envolvem o relacional (o Modelo Entidade Relacionamento e o Modelo Relacional).

2.3 Esquema

Certamente, você já ouviu falar em esquema, porém, muito prova-velmente, em outra conotação. Portanto, para não confundirmos esquema em banco de dados com “outros esquemas”, vamos aprendê-lo logo?

Bom, como descrito, muitas vezes, as pessoas confundem os termos “descrição” do banco de dados com o banco de dados propriamente dito. A descrição do banco de dados é conhecida como “esquema” do banco de dados; este é definido durante o desenvolvimento (criação) do projeto do banco de dados. Um esquema, uma vez definido, não deve ser modificado frequentemente; desta forma, a sua definição requer bastante análise e mui-tos critérios.

No esquema, basicamente, será definida a estrutura do banco de dados (tabelas, atributos, domínios, relacionamentos, restrições), conforme Date (2000). A maioria dos modelos de dados apresenta algumas convenções para a exibição de esquemas por meio de diagramas, conforme ilustram as figuras da seção 2.2.

Para uma melhor compreensão de um esquema, vamos fazer uma analogia com linguagem de programação e algoritmos. Neste sentido, as va-riáveis e os tipos de dados assumidos por elas seriam o esquema.

Se ainda não ficou claro, não se preocupem, pois, na aula 4, serão apresentados mais exemplos de esquemas.

Page 27: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 25

2.4 Instância

Para entendermos o que é uma instância, vamos aproveitar da mes-ma analogia feita com linguagem de programação e algoritmos, apresentada na seção anterior (2.3). Entende-se por instância do banco de dados os valo-res/dados assumidos pelas variáveis do programa. Assim, podemos dizer que os dados (valores) armazenados em um banco de dados, em um determinado instante do tempo, formam um conjunto chamado de “instância do banco de dados”, conforme concebem Elmasri e Navathe (2005).

A instância, diferentemente do esquema, altera toda vez que o banco de dados sofre qualquer modificação de conteúdo.

O SGBD é responsável por garantir que toda instância do banco de dados satisfaça ao esquema do banco de dados, respeitando sua estrutura e suas restrições.

Resumo

Nesta aula, você aprendeu:• os principais conceitos de sistemas de banco de dados;• a arquitetura de um SBD e os componentes dessa arquitetura;• a conhecer e a identificar um modelo de dados;• a planejar e AA desenvolver a modelagem de um projeto de

banco de dados nos diferentes modelos apresentados (principal-mente o relacional).

Atividades de aprendizagem

1. Quais são os elementos que compõem a arquitetura de um sistema de banco de dados?

2. O que são os modelos de dados?

3. Qual a principal motivação para a criação do modelo relacional? E para o modelo orientado a objeto?

4. O que são esquema e instância em banco de dados?

Não deixe de acompanhar as novidades e inovações do SGBD! Lembre-se, a aprendizagem é sempre contínua!

Page 28: Banco Dados
Page 29: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

27

Aula 3 – Modelagem de dados – Modelo Entidade Relacionamento – MER

Objetivos

• descrever os conceitos envolvidos na modelagem Entidade Re-lacionamento;

• apresentar os principais termos utilizados na construção de um banco de dados no MER;

• possibilitar aos alunos a construção do conhecimento para a criação de modelos e diagramas ER, com os respectivos rela-cionamentos.

3.1 Introdução

Agora que já conhecemos os tipos de modelos de dados, vamos iniciar nossos estudos descrevendo sobre o modelo mais simples, mas não menos útil na construção do projeto de banco de dados relacional. Vamos lá?

O Modelo Entidade Relacionamento é um modelo de dados con-ceitual de alto nível, tido como o mais popular; é utilizado principalmente durante o processo de projeto de banco de dados, conforme relatam Elmasri e Navathe (2011).

No MER, os conceitos envolvidos na construção de um bom projeto de banco de dados foram planejados para estar o mais próximo possível do entendimento e da visão que o usuário tem dos dados, não se preocupando em representar como esses dados estarão realmente armazenados.

A construção de um projeto de banco de dados é constituída de al-gumas fases; cada uma delas, responsável pela realização de algumas ações específicas, conforme ilustra a figura 8. Na fase inicial, de partida, são ob-servados aspectos do mundo real, chamados de “minimundo”. A partir daí, realiza-se a obtenção e a análise dos requisitos por meio de reuniões e de outras formas, nas quais se discutem todas as questões pertinentes ao que se deseja do sistema de banco de dados. Vencida esta fase, reúnem-se to-das as informações (requisitos) para a construção do projeto conceitual da base de dados. Na fase de projeto conceitual, é desenvolvido o esquema conceitual, no qual são especificados os esquemas do banco de dados em construção. É neste momento em que mais se aplicam os modelos de entida-de relacionamento. Na fase de mapeamento do modelo de dados, também conhecida como projeto lógico, o objetivo é transformar o esquema de mo-delo de dados de alto nível (projeto conceitual) em um modelo de dados de implementação. Até esta fase, tudo que se define é independente do SGBD a ser utilizado. Qualquer que seja o sistema gerenciador de banco de dados

Page 30: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática28

adotado, o que foi desenvolvido até então será perfeitamente aproveitado. A partir da fase de mapeamento, é preciso conhecer qual o SGBD que será utilizado e realizar todo o mapeamento baseado especificamente no sistema escolhido. A última etapa é a fase do projeto físico, na qual são definidas as estruturas de armazenamento interno, os índices, os caminhos de acesso e as organizações de arquivo para os arquivos do banco de dados, conforme descrevem Elmasri e Navathe (2005).

Figura 8: Diagrama ilustrando as principais fases de um projeto de banco de dados.Fonte: Acervo próprio.

3.2 Entidade, atributo e relacionamento

Você já tinha lido ou ouvido falar de algum desses termos? Prova-velmente sim, porém, talvez em outro contexto. Em se tratando do contexto de banco de dados, vamos ver o que são e como são utilizados?

Comecemos falando, então, de entidade. O principal objeto ou o objeto básico que um modelo ER representa é a entidade. Uma entidade é um objeto com uma existência própria, podendo ser física (concreta) – uma pessoa, um veículo, um equipamento – ou abstrata (conceitual) – um depar-tamento, um curso, um cargo, uma conta. (ELMASRI; NAVATHE, 2005).

Page 31: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 29

Ainda segundo Elmasri e Navathe (2005), cada entidade possui um conjunto de blocos de informações, devidamente organizados, que a carac-teriza e a identifica. Esses “blocos” de informações são chamados de atribu-tos. Para melhor compreensão, podemos ter, como exemplos de entidades, PROFESSOR, ALUNO, DISCIPLINA. A entidade PROFESSOR poderia ser consti-tuída, por exemplo, pelos atributos: Matrícula, MatrProf, NomeProf, Função, Salário. A entidade DISCIPLINA teria os atributos: Código, NomeDisc, Pro-fDisp, CargaHorária, NumAlunosMatr. Já a entidade ALUNO seria constituída dos atributos: MatrAluno, NomeAlu, Curso, Média. Cada um dos atributos de cada entidade terá um valor particular, e o conjunto desses valores é que é responsável pela maior ocupação de espaço de armazenamento na base de dados do banco.

Agora que vimos entidade e atributo, vamos entender relaciona-mento. De acordo com Date (2000), o relacionamento é uma associação entre uma ou várias entidades. Por exemplo: ao fazermos a associação entre as entidades PROFESSOR e DISCIPLINA, estaremos construindo um relaciona-mento entre ambas, que poderíamos chamar de Ministra ou Leciona, deno-tando que o professor ministra ou leciona a disciplina.

Para maior controle e organização dos dados, os relacionamentos são criados com algumas restrições. Essas restrições chamam-se “razão de cardinalidade”, e especificam a quantidade de instâncias em um relaciona-mento que os elementos das entidades podem participar, segundo Elmasri e Navathe (2005). De acordo com Elmasri e Navathe (2011) a razão de cardina-lidade pode ser classificada em três tipos, descritos a seguir.

• 1:1 (lê-se um para um): significa que só pode haver uma única instância entre as duas entidades envolvidas, ou seja, sendo duas entidades A e B, uma ocorrência em A estará associada com, no máximo, uma única ocorrência em B, e uma ocorrência em B estará associada com, no máximo, uma única ocorrência em A. Por exemplo: o relacionamento Gera, entre as entidades PEDIDO e FATURA; pode conter a cardinalidade 1:1, indicando que um pedido só pode gerar uma única fatura, e, ainda, que uma fatura só pode ter sido gerada por um único pedido. A representação para este relacionamento está exibida na figura 09 (como fazer esta representação será explicado na seção 3.4, deste caderno).

Figura 9: Exemplo de diagrama de relacionamento 1:1.Fonte: Acervo próprio.

• 1:N ou N:1 (lê-se um para N ou N para um - onde N signifi-ca muitos): significa que, em uma das entidades (1), só poderá haver um única instância relacionada; na outra entidade (N), poderá haver uma ou mais instâncias relacionadas, ou seja, sen-do duas entidades A e B, uma ocorrência em A estará associada

Page 32: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática30

com uma ou várias ocorrências em B, e uma ocorrência em B estará associada com, no máximo, uma única ocorrência em A. Por exemplo: o relacionamento Leciona, entre as entidades PRO-FESSOR e DISCIPLINA, representado na figura 10, normalmente possui uma razão de cardinalidade de 1:N, na qual um professor pode lecionar várias disciplinas e uma determinada disciplina só pode ser lecionada por um único professor. O digrama de repre-sentação desse relacionamento está ilustrado na figura 10.

Figura 10: Exemplo de diagrama de relacionamento 1:N.Fonte: Acervo próprio.

• M:N (lê-se M para N - onde M e N significam muitos): significa que poderá haver uma ou várias instâncias em ambas as en-tidades envolvidas, ou seja, sendo duas entidades A e B, uma ocorrência em A poderá estar associada a uma ou várias ocor-rências em B, e vice-versa. Por exemplo: no relacionamento Fre-quenta, entre as entidades ALUNO e DISCIPLINA, um aluno pode frequentar várias disciplinas, e uma mesma disciplina pode ser frequentada por vários alunos. O diagrama para representar este relacionamento, seria conforme o exposto na figura 11.

Figura 11: Exemplo de diagrama de relacionamento M:N.Fonte: Acervo próprio.

3.3 Tipos de entidades e atributos

As entidades e os atributos são classificados em diferentes tipos. Que tal conhecermos esses tipos?

Para isto, vamos começar com a classificação dos tipos de entidades, segundo Date (2000).

• Entidade fraca: são as entidades que não possuem atributos--chave próprios, isto é, que dependem dos atributos-chave de uma outra entidade. Por exemplo: numa relação entre as duas entidades, DEPENDENTE e EMPREGADO, todos os elementos da entidade Dependente são dependentes da entidade Empregado, ou seja, só irá existir um dependente se houver o registro do empregado correspondente ao mesmo. Portanto, a entidade De-pendente é uma entidade fraca.

• Entidade forte: são as entidades que possuem seus próprios atributos-chave, ou seja, são independentes. Por exemplo: ain-

Page 33: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 31

da utilizando o exemplo anterior, a entidade EMPREGADO é inde-pendente de qualquer outra entidade, ou seja, possui existência própria. Neste caso, a entidade Empregado é uma entidade forte.

Exemplos da representação de entidade fraca e de entidade forte estão na próxima seção; mais detalhes na aula 4, deste caderno.

De acordo com Silberschatz, Korth & Sudarshan (1999), os atributos, no modelo ER, podem ser caracterizados pelos seguintes tipos descritos a seguir.

• Simples ou compostos: atributos simples são aqueles que não são divisíveis, ou seja, o seu conteúdo não pode ser separado em partes, como, por exemplo: matrícula, função, salário. Já os compostos, eles podem ser separados em partes (isto é, sepa-rados em outros atributos), caso seja necessário. Por exemplo: NomeProf poderia ser estruturado em PriNomeProf, SegNome-Prof e UltNomeProf. Sendo que PriNomeProf corresponderia ao primeiro nome do professor, SegNomeProf, ao segundo nome, e UltNomeProf, ao último nome do professor.

• Monovalorados ou multivalorados: atributos monovalorados são aqueles constituídos de um único valor para uma referida entidade, por exemplo: data_de_nascimento, cpf, salário de uma entidade chamada EMPREGADO. Os multivalorados são aqueles que podem assumir mais de um valor para uma determi-nada instância de um atributo. Como exemplos, podemos citar os atributos dependente, telefone e e-mail. Ainda considerando a entidade Empregado, citada anteriormente, cada um desses atributos poderia possuir nenhum, um ou mais valores em seu conteúdo. No caso dos atributos multivalorados, o mais adequa-do é que se estabeleçam limites inferiores e, principalmente, superiores para tais atributos.

• Derivados: o valor desse tipo de atributo é derivado de outro atributo ou entidade a ele relacionadas. Para um melhor enten-dimento, podemos citar o atributo idade, que pode ser obtido através da diferença entre a data atual do sistema e a data_de_nascimento informada na entidade da pessoa.

• Nulo: é utilizado quando uma entidade não possuir valor para um determinado atributo. Como exemplos, podemos citar os atributos: dependente (nem todos os empregados possuem de-pendentes), e-mail (nem todos os empregados possuem email), celular (nem todos possuem). Nulo, na verdade, é a ausência de valor, ou seja, quando você deixa de informar o valor para um determinado atributo, o mesmo irá assumir o valor nulo (como padrão). Mas, atenção! Nulo é diferente de espaço em branco. Se você pressionar a barra de espaço em um determinado atri-buto (dependente, email, celular, por exemplo) na hora da inser-ção de dados, isso não significa nulo, e sim espaço em branco.

3.4 Diagrama Entidade Relacionamento (DER)

Você tem algum conhecimento sobre DER? Sabe para que serve?Bom, se a sua resposta for não, não há problema, pois estamos aqui

para explicar. Sendo assim, vamos iniciar.

Page 34: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática32

O Modelo Entidade Relacionamento é representado através de al-guns símbolos que compõem o Diagrama Entidade Relacionamento (DER).

Para cada elemento de um relacionamento (entidade, atributo, re-lacionamento, razão de cardinalidade), existe um símbolo representativo. Sendo assim, vamos apresentar cada um desses símbolos a seguir, ilustrados na figura 12.

Figura 12: Resumo de notação de diagrama ER.Fonte: Acervo próprio.

Agora, vamos apresentar três exemplos de DER, na figura 13, para entendermos melhor a sua aplicação.

Passos para construir um Modelo Entidade

Relação:1º) identificar as

entidades;2º) para cada entidade, procurar identificar os atributos necessários

e definir a chave primária;

3º) buscar identificar todos os

relacionamentos entre as entidades;

4º) procurar validar o modelo obtido e repetir

este processo desde o 1º passo, caso seja

necessário.

Dicas para a construção de diagramas ER:

- a presença de um substantivo,

usualmente, indica uma entidade;

- a presença de um verbo é uma forte

indicação de um relacionamento.

Page 35: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 33

Figura 13: a) Demonstra um relacionamento uniário Gerencia, entre a entidade EMPREGADO e ela mesma; b) ilustra o relacionamento binário Possui, entre as entidades FUNCIONÁRIO e DEPENDENTE; c) exibe um relacionamento ternário Ministra, entre as entidades PROFESSOR, DISCIPLINA e ALUNO (quando não há exigências, pode-se omitir a razão de cardinalidade e os atributos).Fonte: Acervo próprio.

Segundo Elmasri e Navathe (2005), a quantidade de entidades par-ticipantes de um mesmo relacionamento é caracterizada como “Grau do Relacionamento”. Assim, o grau do relacionamento pode ser de três tipos, conforme os descrevemos a seguir.

Uniário: também chamado de autorrelacionamento ou relaciona-mento recursivo, é a relação de uma entidade com ela mesma, ou seja, ape-nas uma entidade participante. O item (a) da figura 13 demonstra um bom exemplo de autorrelacionamento.

Binário: é o relacionamento entre duas entidades distintas. O item (b) da figura 13 apresenta um exemplo de relacionamento binário.

Ternário: é o relacionamento envolvendo três entidades distintas. O item (c) da figura 13 ilustra um exemplo de relacionamento ternário.

Podem existir relacionamentos envolvendo mais de três entidades, porém, isto não será objeto de estudo neste caderno didático.

Page 36: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática34

Resumo

Nesta aula, você aprendeu:• os principais conceitos e termos envolvidos num Modelo Entida-

de Relacionamento (ER);• a aplicação de um modelo ER num projeto de banco de dados;• planejar e construir modelos e diagramas ER de um banco de

dados.

Atividades de aprendizagem

1. Qual o principal objetivo do Modelo Entidade Relacionamento (MER)?

2. O que é mapeamento do modelo de banco de dados?

3. Descreva a sequência de ações para se construir uma modelagem Enti-dade Relacionamento.

4. Defina e exemplifique os termos entidade, atributo e relacionamento.

5. Construa exemplos de diagramas de relacionamento de cardinalidade 1:1, 1:N e M:N. No mínimo 1 de cada e que sejam diferentes dos exemplos do caderno da disciplina.

6. O que significa grau de relacionamento? Quais são os tipos? Explique cada um deles.

7. Desenvolva um DER para que um banco possa gerenciar as contas parti-culares de cada cliente em suas respectivas agências. Você deverá de-cidir quais atributos de cada entidade serão necessários para o modelo.

8. Preencha os diagramas a seguir com as respectivas entidades e os seus rela-cionamentos; informe também qual o grau de cardinalidade em cada caso.

a.

Entidades Relacionamento

Banco, agência Administra

b.

Entidades Relacionamento

Cliente, pedido Solicita

Page 37: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

35

Aula 4 – Modelagem de dados – Modelo Relacional (MR)

Objetivos

• conceituar e apresentar os principais elementos do modelo re-lacional;

• demonstrar as principais aplicações do modelo na construção de projeto de banco de dados relacional;

• realizar o mapeamento do Modelo Entidade Relacionamento (MER) para o Modelo Relacional (MR).

4.1 Introdução

Agora que aprendemos sobre o Modelo ER, que tal conhecermos o Modelo Relacional? Você observará, inclusive, que existem algumas seme-lhanças entre ambos.

O Modelo Relacional tem muita semelhança com o Modelo ER. Eu diria que o MR é complementar ao MER.

Conforme Elmasri e Navathe (2005), o Modelo Relacional represen-ta um banco de dados como uma coleção de relações comumente chamadas de tabelas. Cada relação é entendida como uma tabela que contém valores, e cada linha nesta tabela é composta de um conjunto de dados relacionados. Os valores contidos nas linhas seriam as instâncias de uma entidade ou de um relacionamento.

Cada relação ou cada tabela é composta de linhas e colunas. Ainda segundo o autor referenciado anteriormente, na terminologia do Modelo Re-lacional, uma tabela é chamada de relação, um linha é chamada de tupla e as colunas são chamadas de atributos.

A figura 14 ilustra cada um desses elementos (destacados em cores diferentes) do Modelo Relacional na tabela PRODUTO. Observem atentamente!

Figura 14: Relação Produto, identificando cada um dos elementos.Fonte: Acervo próprio.

Apesar do crescimento do uso de outros modelos, o MR ainda é o mais utilizado pelas empresas.

Page 38: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática36

4.2 Relações, domínios, tuplas e atributos

Apesar de serem termos de nomenclaturas diferentes, você irá per-ceber que eles têm praticamente a mesma função de alguns dos termos da aula 3. Vamos conferir?

As relações em modelos relacionais, conforme dito anteriormente, representam o conjunto de informações de uma tabela (entidade no MER). Assim como no Modelo ER, as relações são construídas definindo-se, primei-ramente, o esquema da relação, no qual são especificados o nome da relação e os atributos.

A especificação dos atributos segue-se da definição dos domínios dos mesmos. Um domínio consiste de um conjunto de valores (dados) atômi-cos que um atributo pode assumir. Um valor é dito atômico quando o mesmo não pode ser dividido, separado, ou seja, ele é indivisível. Assim, de acordo com Date (2000), um domínio é determinado pelo tipo de dado que um atributo pode assumir. Por exemplo: um atributo CÓDIGO, do tipo inteiro, só pode aceitar dados numéricos (números) inteiros; um atributo DESCRI-ÇÃO, do tipo caractere, de tamanho 20, pode aceitar letras, números, ponto, acento etc., porém, não pode ultrapassar 20 caracteres.

Conforme mencionado anteriormente, as tuplas são as linhas da re-lação. Tomando o exemplo da figura 14, a linha com | 1020 | Óleo | 9 | 2,15 | corresponde a uma tupla da relação ALUNO. Assim como | 1045 | Arroz | 10 | 8,99 | também constitui uma tupla da mesma relação.

Os atributos de uma relação são representados pelas colunas. Os atributos, aqui, têm a mesma representação que no Modelo ER.

4.3 Atributos-chave

Já leram ou ouviram alguma coisa sobre atributos-chave? De qual-quer forma, é importante o bom entendimento desta seção, pois, dela, de-penderão muitas outras informações constantes no restante deste caderno.

Uma relação é constituída de um conjunto de tuplas e atributos dis-tintos. Para uma correta distinção das instâncias de uma relação, o Modelo Relacional adotou o conceito de atributo-chave. De acordo com Elmasri e Navathe (2005), o atributo chave pode ser constituído de um ou mais atri-butos, e eles são encarregados de identificar e distinguir, de forma única e exclusiva, cada tupla de uma relação; assim, são chamados de superchave. Toda relação irá possuir, no mínimo, uma superchave, que será o conjunto de todos os seus atributos.

Ainda segundo o mesmo autor, as chaves de uma relação podem ser classificadas das seguintes formas, descritas a seguir.

• Chave primária: composta por um ou mais atributos capazes de identificar, de forma única e exclusiva, cada tupla da relação. Quando é constituída de mais de um atributo, ela é chamada de chave primária composta, e cada um dos atributos desta

Os atributos-chave são essenciais em BD; por

isso, procurem assimilar bem as informações

apresentadas.

Page 39: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 37

chave composta deve possuir a capacidade de, sozinho, também identificar de forma única cada tupla da relação. A chave pri-mária no MR é representada colocando-se o(s) atributo(s)-chave sublinhado(s). Exemplos: o atributo Código da relação PRODUTO é uma chave primária, conforme ilustrado na figura 15, item (a); numa relação ALUNO, constituída dos atributos matrícula, CPF, nome, curso, e-mail, os atributos Matrícula e CPF formam uma cha-ve primária composta, conforme ilustrado na figura 15, item (b).

a. Produto

Código Descrição Qtde ValorUnit

b. AlunoMatrícula CPF Nome Curso e-mail

Figura 15: Esquema das relações PRODUTO e ALUNO.Fonte: Acervo próprio.

• Chave candidata: formada pelo conjunto de atributos capazes de se tornarem uma chave primária. Exemplo: qualquer um dos atributos Matrícula e CPF da relação ALUNO são chaves candi-datas.

• Chave estrangeira: formada pela chave primária de uma outra relação. Exemplo: considerando as relações PRODUTO com os atributos código, descrição, Qtde e ValorUnit, e ITENS_PEDIDO com os atributos CodProd, CodPed, Quant, o atributo CodProd da relação ITENS_PEDIDO é chave estrangeira, pois representa o atributo Código da relação PRODUTO, conforme ilustra a figura 16. Na terminologia do MR, a chave estrangeira é representada colocando o atributo-chave em itálico.

Produto

Código Descrição Qtde ValorUnit

Itens_PedidoCódProd CodPed Quant

Figura 16: Modelo identificando chave estrangeira.Fonte: Acervo próprio.

4.4 Mapeamento do MER para MR

Já participou de algum projeto no qual foi realizado o mapeamento de MER para MR? Tem ideia do que seja?

Nesta seção, iremos aprender o que é e como fazer um mapeamen-to desse tipo.

Embora seja crescente o uso da modelagem orientada a objeto, ainda é grande o uso, em projetos de banco de dados, da modelagem em alto

Page 40: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática38

nível (o MER). Contudo, o uso dessa modelagem é apenas parte do processo de construção do projeto de banco de dados.

O resultado da modelagem ER são esquemas de observações, ou seja, Diagramas Entidade Relacionamento (DER) que devem ser integrados, posteriormente, para originar apenas um grande e único esquema. O mape-amento do Modelo Entidade Relacionamento para o Modelo Relacional é uti-lizado justamente para este fim, para complementar e completar o projeto de banco de dados.

A seguir, segue um resumo dos passos básicos necessários para se fazer o mapeamento do MER para o MR, baseado na obra de Elmasri e Nava-the (2005).

Passo 1: todas as entidades são mapeadas para uma relação con-tendo os mesmos atributos do MER. Veja o exemplo da figura 17.

Figura 17: Mapeamento de entidade MER para MR.Fonte: Acervo próprio.

Na figura 17, foi apresentado o MER de uma entidade chamada Em-pregados, com os atributos CPF (onde a bolinha preenchida representa chave primária), nome e idade (as bolinhas vazias representam atributos comuns). Fazendo-se o mapeamento para o Modelo Relacional, a relação Empregados ficou como mostrado na figura.

Passo 2: para entidade fraca é criada a relação contendo todos os seus atributos, tendo acrescido, como chave estrangeira, a chave primária da entidade forte (pai). Veja o exemplo da figura 18.

Figura 18: Mapeamento de entidade fraca de MER para MR.Fonte: Acervo próprio.

Page 41: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 39

Na figura 18, foi apresentado o MER do relacionamento Possui en-tre as entidades Funcionário, com os atributos CodFunc, Nome, DataNasc e Idade e Dependente, com os atributos CodDep, Nome e DataN. Fazendo-se o mapeamento para o Modelo Relacional, a relação Dependente ficou como mostrado na figura.

Passo 3: para relacionamentos 1:1 - dentre as relações que ma-peiam as entidades participantes, escolha uma delas (a que for mais fraca, dependente) e inclua como chave estrangeira a chave primária da outra. Veja o exemplo da figura 19.

Figura 19: Mapeamento de relacionamento 1:1 de MER para MR.Fonte: Acervo próprio.

Na figura 19, foi apresentado o MER do relacionamento Retirou (com o atributo DtRetirada) entre as entidades Pessoas, com os atributos CPF, Nome e Endereço e CateirasMotorista, com os atributos Numero, Validade, DataExpedição e Categoria. Fazendo-se o mapeamento para o Modelo Rela-cional, as relações Pessoas e CarteirasMotorista ficaram como mostrado na figura.

Passo 4: para relacionamentos 1:N – escolha a relação que repre-senta a entidade presente no lado N e acrescente, como chave estrangei-ra, a chave primária da entidade do lado 1. Veja o exemplo da figura 18, no passo 2.

Passo 5: para relacionamentos M:N – é criada uma nova relação contendo, como chaves estrangeiras, as chaves primárias das entidades par-ticipantes mais os atributos do relacionamento. Veja o exemplo da figura 20.

Page 42: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática40

Figura 20: Mapeamento de relacionamento M:N de MER para MR.Fonte: Acervo próprio.

Na figura 20, foi apresentado o MER do relacionamento Participa (com o atributo DataInício) entre as entidades Empregado, com os atributos CPF, Nome e Projeto, com os atributos Código e Nome. Fazendo-se o mapea-mento para o Modelo Relacional, as relações Empregados, Projeto e Partici-pa (que virou uma entidade) ficaram como mostrado na figura.

Resumo

Nesta aula, você aprendeu:• os principais conceitos e termos envolvidos num Modelo Rela-

cional;• a aplicação de um Modelo Relacional num projeto de banco de

dados;• mapear um Modelo ER em um Modelo Relacional;• planejar e construir modelos relacionais de um banco de dados.

Atividades de aprendizagem

1. Defina e exemplifique cada um dos seguintes termos em banco de dados: relação, tupla e domínio.

2. Qual a importância do Modelo Relacional para as organizações?

Page 43: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 41

3. Faça o mapeamento dos seguintes modelos ER para o Modelo Relacional:a.

b.

4. Pesquise e apresente três exemplos de representação de banco de dados relacionais. Pode utilizar o próprio local de trabalho como cenário para isto.

5. O que são atributos-chave?

6. Qual a diferença entre chave primária e superchave?

7. O que é uma chave estrangeira?

Page 44: Banco Dados
Page 45: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

43

Aula 5 – SQL básico

Objetivos

• apresentar os principais conceitos sobre Linguagem de Consul-ta Estruturada (SQL);

• realizar estudos sobre DDL e DML;• realizar aplicações práticas dos principais comandos SQL;• definir e criar restrições de dados em SQL.

5.1 Conceito

Você sabe o que significa SQL? Já leu ou ouviu falar? Bom, SQL (Structured Query Language – Linguagem de Consulta Es-

truturada), como o próprio nome diz, é uma linguagem de definição e de ma-nipulação de um banco de dados relacional, conforme descreve Date (2000). A SQL foi criada especificamente para trabalhar com os SGBD’s relacionais criados pelo mundo; rapidamente, se tornou o padrão de linguagem de con-sulta mais utilizado no planeta.

Uma das grandes vantagens do uso da SQL é que ela é um padrão reconhecido por todos os SGBD’s relacionais existentes. Qualquer que seja o SGBD escolhido pelo usuário ou pela empresa, a SQL irá se comunicar bem com ele. Caso o usuário resolva mudar de SGBD, ele não irá precisar se pre-ocupar com o acesso aos seus dados se tiver adotado o SQL como linguagem de consulta, pois os seus sistemas praticamente não sofrerão mudanças.

Segundo Elmasri e Navathe (2005), a SQL é formada por dois gran-des grupos de funções e comandos, chamados de DDL (Linguagem de Defini-ção de Dados) e DML (Linguagem de Manipulação de Dados).

5.2 Comandos de definição de dados

Por acaso, você já ouviu falar em comandos de definição de dados? Sabe o que significa? O grupo de comandos de definição de dados é conheci-do como o grupo DDL, e forma a fase inicial para a construção de qualquer banco de dados em SQL. De acordo com Elmasri e Navathe (2005), a DDL for-ma um conjunto de comandos responsáveis pela criação, alteração e deleção da estrutura das tabelas e dos índices de um banco de dados.

Antes de continuarmos, é importante destacar que os comandos SQL podem sofrer pequenas alterações de um SGBD (SQL Server, Oracle, Mys-ql, PostgreSQL, DB2, Firebird etc.) para outro, principalmente nas sintaxes

Nesta seção, iremos abordar os comandos de definição de dados em SQL utilizados no modo Shell (linhas de comandos digitados num prompt de comando).

Page 46: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática44

dos comandos. Sendo assim, todo o material sobre SQL deste caderno está baseado no MySql. Para uma maior assimilação dos conteúdos estudados, se-rão apresentados exemplos práticos de cada um dos comandos relacionados. Para cada exemplo, será apresentado um problema e, em seguida, a solução (resposta) ao problema dado.

Para iniciar, começaremos falando do comando para a criação do banco de dados. Para se criar um banco de dados em SQL, usa-se o comando:

CREATE DATABASE <nome-do-banco-de-dados>;

Veja um exemplo de aplicação.Problema: criar uma base de dados (um banco de dados) chamada

AULASQL.

Solução/Resposta:CREATE DATABASE aulasql;

Uma vez definido (criado) o nome da base de dados, para poder trabalhar com esta base, é preciso abri-la para a edição. Para isto, utilizamos o seguinte comando (padrão do mysql):

USE <nome-do-banco-de-dados>

Veja um exemplo de aplicação.Problema:Abrir o banco de dados para a edição/manipulação dos dados.

Solução/Resposta:USE aulasql;

Até então, nós criamos a base de dados e a abrimos para a edição. Agora, é preciso criar as tabelas que farão parte deste banco de dados. Para isto, é preciso aprender o comando de criação de tabelas em SQL. O coman-do, neste caso, possui a seguinte sintaxe:

CREATE TABLE <nome_tabela> (nome_atributo1 < tipo > [ NOT NULL ], nome_atributo2 < tipo > [ NOT NULL ], ...... nome_atributoN < tipo >) ; PRIMARY KEY (nome-atributo-chave) FOREIGN KEY nome-atributo-chave-estrangeira REFERENCES

nome-atributo-chave-primária (nome-tabela-pai) ON DELETE [RESTRICT] ou

[CASCADE] ou [SET NULL]Onde:• nome_tabela - é o nome da tabela a ser criada;• nome_atributo - é o nome do atributo (da coluna) a ser criado

na tabela;

SQL Server – SGBD -, desenvolvido e mantido pela Microsoft (http://www.microsoft.com);

Oracle - SGBD -, desenvolvido e mantido

pela empresa Oracle (http://www.oracle.com);

MySql - SGBD -, desenvolvido pela

MySql AB, atualmente, é mantido pela Oracle

(http://www.mysql.com); PostgreSQL –

é um projeto open source (código

aberto) coordenado pelo PostgreSQL

Global Development Group (http://www.

postgresql.org) -; DB2 – SGBD -,

desenvolvido e mantido pela IBM (www.ibm.com/

software/data/db2); Firebird – SGBD -,

desenvolvido e mantido pela Fundação

FirebirdSQL (http://www.firebirdsql.org).

Os comandos SQL devem ser sempre

finalizados com o uso do ponto e vírgula (;),

conforme ilustra o exemplo anterior e os

demais exemplos deste caderno.

Page 47: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 45

• tipo - é a especificação do tipo de atributo (integer ou int, char(n), varchar(n), decimal(n,m), real(n,m), date...);

• n- número de dígitos ou de caracteres;• m- número de casas decimais;• NOT NULL – indica que o atributo não aceita valor nulo (ou va-

zio);• PRIMARY KEY (nome-atributo-chave) – serve para definir qual

atributo será a chave primária da tabela. Podem ser definidos mais de um atributo como chave; neste caso, os mesmos devem vir separados por vírgula dentro do parêntese;

• FOREIGN KEY - nome-atributo-chave-estrangeira - REFERENCES nome-atributo-chave-primária (nome-tabela-pai) - serve para definir qual atributo será a chave estrangeira da tabela, ou seja, o campo que é a chave primária de outra tabela. Na opção RE-FERENCES, deve ser especificada a tabela que possui a chave primária referenciada. Para cada chave estrangeira, deve-se es-pecificar uma sequência do Foreign Key;

• ON DELETE - esta opção só se aplica com o Foreign Key e es-pecifica o que deve ser feito pelo SGBD, quando houver uma exclusão de um registro na tabela pai (que contém a chave pri-mária referenciada) e houver algum registro correspondente nas tabelas filhas (com a respectiva chave estrangeira). As opções disponíveis são as especificadas a seguir.• RESTRICT – é a opção padrão. Ela não permite a exclusão na

tabela pai de um registro em que a chave primária exista em alguma tabela filha.

• CASCADE – opção que executa a exclusão em todas as tabe-las filhas que possuam o valor da chave que será excluída na tabela pai.

• SET NULL - opção que atribui o valor NULO nos atributos das tabelas filhas que contenham o valor da chave que será ex-cluída na tabela pai.

Veja um exemplo de aplicação.Problema:Criar uma tabela de nome EMPREGADO com os seguintes atributos

e restrições:Código – do tipo inteiro, chave primária e não deve aceitar valor

vazio ou nulo;Nome – do tipo caracter, de tamanho 40, não deve aceitar valor

vazio ou nulo;Dtnasc – do tipo data;Salário – do tipo decimal, de tamanho 7 com duas casas decimais;CPF – do tipo inteiro e não aceita valor vazio ou nulo.

Solução/Resposta:CREATE TABLE empregado ( codigo int not null, -- código funcional nome varchar2(40) not null, -- nome do empregado

As intruções Primary Key e Foreign Key serão explicadas em mais detalhes na Aula 5.

Page 48: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática46

dtnasc date, -- data de nascimento salario decimal(7,2), -- valor do seu salário CPF int not null, -- CPF do empregado Primary key (código); -- define código como chave primária

Caso a estrutura definida com os comandos anteriores não seja a mais adequada ou que necessite de alguns ajustes, existe um comando que é responsável por fazer modificações na estrutura do banco. O comando em questão é o ALTER TABLE, que é capaz de alterar a estrutura de uma tabela acrescentando, retirando e alterando nomes, formatos das colunas e a inte-gridade referencial definidos em uma determinada tabela.

A sintaxe do comando Alter Table segue logo a seguir.ALTER TABLE <nome-tabela> DROP <nome-atributo>; ADD <nome-atributo > <tipo-do-dado> [NOT NULL]; RENAME <nome-atributo > <novo-nome-atributo >; RENAME TABLE <novo-nome-tabela>; MODIFY <nome-atributo > <tipo-do-dado> [NULL]; ou [NOT NULL]

Onde:• DROP – serve para excluir um atributo;• ADD – serve para adicionar um novo atributo;• RENAME – serve para renomear um atributo;• RENAME TABLE – serve para renomear a tabela;• MODIFY – serve para modificar/alterar o tipo do dado do atributo.

Visando uma melhor compreensão dos comandos anteriores, serão relacionados alguns exemplos práticos, a seguir.

Veja alguns exemplos de aplicação.Problema 1: acrescentar o atributo fone, do tipo caractere de ta-

manho 14, na tabela EMPREGADO.Solução/Resposta:ALTER TABLE empregado ADD fone varchar(14).

Problema 2: acrescentar o atributo codsetor como chave estrangei-ra, na tabela EMPREGADO.

Solução/Resposta:ALTER TABLE empregado ADD FOREIGN KEY codsetor REFERENCES

(Setor).Problema 3: renomear o atributo dtnasc para datanasc na tabela

EMPREGADO.Solução/Resposta:ALTER TABLE empregado RENAME dtnasc datanasc.

Page 49: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 47

Problema 4: modificar o tipo do atributo salário (acrescentando 2 dígitos na parte inteira) na tabela EMPREGADO.

Solução/Resposta:ALTER TABLE empregado MODIFY salário decimal(9,2).

Problema 5: excluir o atributo fone da tabela EMPREGADO.Solução/Resposta:ALTER TABLE empregado DROP fone.

Por fim, caso queira excluir a tabela como um todo, existe o coman-do DROP TABLE. A sintaxe deste comando é:

DROP TABLE <nome-da-tabela>

Veja um exemplo de aplicação.Problema: Excluir/deletar a tabela EMPREGADO.

Solução/Resposta:DROP TABLE empregado; -- exclui/deleta a tabela EMPREGADO.

5.3 Comandos de Manipulação de Dados

Agora, iremos falar dos comandos de manipulação de dados, já ou-viu algo sobre isto?

Os comandos de manipulação de dados (DML) são os responsáveis pela inserção, exclusão, alteração e consulta (pesquisa) ou recuperação de dados em um banco de dados.

Dadas as suas funcionalidades, os comandos de manipulação são os mais utilizados no gerenciamento e na manipulação de um BD, uma vez que costumam ser aplicados diversas vezes ao longo de um dia de trabalho. Sendo assim, é preciso um cuidado maior na execução dos mesmos, para que não sejam cometidos equívocos (inconsistências) ou ainda erros (lançamen-tos ou recuperação de dados incorretos) na base de dados.

Agora, vamos falar dos comandos da DML. Para isto, iremos iniciar descrevendo sobre o comando INSERT. Você o conhece?

O comando INSERT serve para inserir um novo registro (uma nova linha) em uma tabela do BD. Para isto, é necessário escrever a sintaxe do comando corretamente, conforme o modelo a seguir:

INSERT INTO <nome-tabela> [(<nome-atributo>, [<nome-atributo>])] VALUES (<relação dos valores a serem incluídos>)

Onde:• nome-tabela - representa o nome da tabela na qual será incluído

o registro (a linha);• nome-atributo - representa o nome do(s) atributo(s) que

receberá(ão) dado(s) no momento da operação de inclusão.

Page 50: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática48

Exemplo de aplicaçãoProblema Considerando a seguinte tabela com os seus respectivos atributos

ALUNO (matricula, nome, turma, nota), inserir os dados a seguir:Matricula (tipo int) = 10105Nome (tipo varchar) = Luís Inácio Lula da SilvaTurma (tipo char) = 1ANota (tipo decimal) = 95

Solução/Resposta:INSERT INTO Empregado (matricula, nome, turma, nota) VALUES

(10105, “Luís Inácio Lula da Silva”, “1A”, 95).

O nosso próximo comando a ser estudado chama-se UPDATE. O UPDATE serve para atualizar (alterar) um ou mais registros numa tabela. A forma de aplicação deste comando, ou seja, a sua sintaxe é:

UPDATE <nome-tabela> SET <nome-atributo> = <novo conteúdo do atributo> [<nome-atributo> = <novo conteúdo do atributo>] WHERE <condição>

Onde:• nome-tabela - representa o nome da tabela cujo conteúdo será

alterado;• nome-atributo - representa o nome do(s) atributo(s) que terá(ao)

seu(s) conteúdo(s) alterado(s) com o novo valor especificado;• condição - representa a condição para a seleção do(s) registro(s)

que será(ão) atualizado(s). Quando a seleção contiver mais de um registro retornado, a alteração irá ocorrer em todos esses registros.

Veja o exemplo de aplicação.Problema:Ainda considerando a tabela ALUNO (matricula, nome, turma,

nota), dos exemplos anteriores, alterar a nota para 88 do aluno de matrícula igual a 1023.

Solução:UPDATE Aluno SET nota = 88 WHERE matricula=1023

Observem que não foram utilizadas aspas para a nova nota e nem para a matrícula, porque ambos são 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 faço? Será que isto é difícil?

Respondendo: o comando para se excluir qualquer conteúdo de uma tabela (ou mesmo todo o conteúdo de uma tabela) chama-se DELETE.

É importante ressaltar que os atributos do

tipo numéricos (inteiro, decimal, float etc.),

como matricula e nota do exemplo anterior,

têm os seus valores atribuídos sem o uso de

aspas. Já os atributos do tipo caractere (char,

varchar etc.), como nome e turma, têm os seus valores atribuídos

sempre utilizando as aspas (simples ou

duplas).

Page 51: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 49

E não, não é difícil utilizá-lo. Porém, é preciso bastante cuidado na hora de utilizar o DELETE, pois sempre há a possibilidade de se excluir alguma infor-mação equivocadamente, se não tiver atenção.

O comando DELETE pode ser utilizado de dois modos, descritos a seguir.

1º. O primeiro é o mais “perigoso”, pois ele exclui todo o conteúdo 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-

rão deletados. Neste caso, serão excluídos todos os registros da tabela.

Veja o exemplo de aplicaçãoProblema:Excluir todos os registros da tabela ALUNO.

Solução/Resposta:DELETE FROM Aluno

2º. O segundo modo de usar o DELETE é selecionando (filtrando) os registros que se deseja excluir, utilizando-se da instrução Where. Veja a sintaxe abaixo:

DELETE FROM <nome-tabela> WHERE <condição>

Onde:• nome-tabela - representa o nome da tabela cujos registros serão

excluídos;• condição - representa a condição para a exclusão dos registros.

Esta condição será responsável por selecionar o(s) registro(s) que será(ao) excluído(s).

Veja o exemplo de aplicaçãoProblema:Excluir todos os alunos com nota inferior a 50.

Solução/Resposta:DELETE FROM Aluno WHERE nota<50

Bom, até aqui, aprendemos os comandos responsáveis 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-

Page 52: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática50

namentos de sua chefia, de maneira rápida e prática. Com ele, você poderá construir inclusive relatórios, se utilizá-lo de maneira correta e criativa.

Dito isto, vamos aprender, então, 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 começarmos, vamos apresentar a estrutura básica do SELECT. Ela é constituída da seguinte sintaxe:

SELECT <nome-atributo> [,<nome-atributo>] FROM <nome-tabela> [, <nome-tabela>]WHERE <condição>

Onde:• nome-atributo – representa o(s) nome(s) do(s) atributo(s) que se-

rão utilizados na consulta. Pode ser utilizado um ou mais;• nome-tabela - representa o nome da(s) tabela(s) que contém

o(s) atributo(s) que será(ao) selecionada(s) (informadas após o Select) ou que será(ao) utilizada(s) para a execução da consulta;

• condição - representa a condição para a seleção dos registros. A seleção poderá resultar em um ou vários registros;

• WHERE - especifica o critério (a condição) de seleção dos regis-tros nas tabelas especificadas.

Agora que aprendemos como utilizar o comando Select na sua for-ma mais básica, vamos aplicar o seu uso em exemplos práticos? Então, va-mos lá. A seguir, seguem alguns exemplos.

Veja alguns exemplos de aplicaçãoProblema 1:Selecionar o nome dos aprovados (com nota >= 70).

Solução/Resposta:SELECT nome FROM Aluno WHERE nota>=70

Problema 2:Listar todos os campos (atributos) dos alunos que estão de prova

final/recuperação (notas >=50 e <70).

Solução/Resposta:SELECT * FROM Aluno WHERE nota>=50 AND nota <70

Problema 3:Informe o número de matrícula e o nome dos alunos.

Solução/Resposta:SELECT matricula, nome FROM Aluno

A maioria das pesquisas de dados e informações

em sistemas são feitas utilizando-se do

comando Select.

Observe que, como foi pedida a seleção apenas do nome do

aluno, foi informado, após o Select, apenas o

atributo nome.

O asterisco (*) utilizado logo após o Select é

chamado de “caractere curinga”, e a sua

função é de representar todos os atributos da

tabela informada após o From. No lugar do

asterisco, poderia ter sido usada a instrução

ALL (que representa todos também). Tanto o (*) quanto ALL têm a

mesma função.

Page 53: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 51

E então, estamos indo bem até aqui? Ótimo! Sendo assim, que tal passarmos para o próximo passo do estudo do Select?

Vamos agora aprender como usar o Select, utilizando mais alguns recursos.

Então, comecemos falando das funções agregadas. As funções agre-gadas são muito úteis para a realização de consultas, principalmente quando se deseja executar operações matemáticas.

As principais funções agregadas são relacionadas na tabela a seguir.

Tabela 1: Funções agregadas de SQL

Sintaxe Objetivo da função

Avg(n*) retornar a média 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 próprio.

* n – representa um atributo do tipo numérico.** exp – representa uma expressão (ou atributo) que pode ser numérica ou alfanumérica.

Agora que vimos as funções, é hora de apresentarmos alguns exem-plos práticos.

Veja alguns exemplos de aplicaçãoProblema 1: Quantos alunos conseguiram aprovação?

Solução/Resposta:SELECT count(*) FROM Aluno WHERE nota>=70

Problema 2: Qual a média das notas dos alunos?

Solução/Resposta:SELECT avg(*) FROM Aluno

Problema 3: Qual a maior nota obtida e o aluno que a obteve?

Solução/Resposta:SELECT nome, max(nota) FROM Aluno

Page 54: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática52

Problema 4: Qual a menor nota obtida pelos alunos?

Solução/Resposta:SELECT min(nota) FROM Aluno

Problema 5: Para este exemplo, vamos utilizar a tabela Empregado (código,

nome, dtnasc, salário, CPF), referenciada no início da seção 5.2. Qual o gasto total da empresa com os salários dos empregados?

Solução/Resposta:SELECT sum(salario) FROM Empregado

Passadas as funções agregadas, falaremos do ORDER BY. Ele tem a função de apresentar o resultado da consulta, ordenado de forma crescente (ASC) ou decrescente (DESC) pelos atributos informados após o Order By. Para isto, veja como é a sintaxe do Order By:

SELECT <nome-atributo> [,<nome-atributo>] FROM <nome-tabela> [, <nome-tabela>]WHERE <condição> ORDER BY <nome-atributo> [,<nome-atributo>] ASC DESCOnde: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 vírgula.

Veja um exemplo de aplicaçãoProblema:Selecionar o nome e a nota dos alunos aprovados, ordenados pela

nota, em ordem decrescente.

Solução/Resposta:SELECT nome, nota FROM Aluno WHERE nota>=70 ORDER BY nota DESC

Outra função que pode ser utilizada com o Select é o GROUP BY. A função Group by serve para agrupar os dados nos atributos informados. No agrupamento de um atributo, os dados são organizados (agrupados) em subconjuntos nos quais os dados coincidentes ficarão representados por uma única linha no resultado.

Veja, a seguir, com fica a sintaxe do GROUP BY.

SELECT <nome-atributo> [,<nome-atributo>] FROM <nome-tabela> [, <nome-tabela>]WHERE <condição> [o Where aqui é opcional]

Page 55: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 53

GROUP BY <nome-atributo> [,<nome-atributo>] HAVING <condiçãohaving>

Onde:• HAVING – semelhante ao Where; ele especifica uma condição

para a seleção de um grupo de dados. Esta opção só é utilizada combinada com a opção GROUP BY;

• condiçãohaving – representa a condição para seleção dos regis-tros agrupados pelo Group By.

Para entender como isto funciona, vamos aos exemplos.

Veja alguns exemplos de aplicaçãoProblema 1:Informar as turmas e a média das notas de cada turma.

Solução/Resposta:SELECT turma, avg(nota) FROM Aluno GROUP BY turma

Problema 2:Informar as turmas e a média das notas das turmas superiores a 80.

Solução/Resposta:SELECT turma, avg(nota) FROM Aluno GROUP BY turma HAVING

avg(nota)>80

5.4 Restrições de dados

As restrições em banco de dados são fundamentais para garantir a exatidão, a consistência e a integridade dos dados. A utilização das restri-ções ajuda a evitar danos acidentais no banco de dados.

Existem inúmeros tipos de restrição de integridade, desde uma sim-ples definição de tipo de variável, que irá determinar que a mesma só aceite aquele tipo de dado, uma definição de chave primária ou estrangeira, até restrições mais complexas, como gatilhos (triggers) e asserções (assertions).

Neste caderno, iremos abordar as restrições de integridade garan-tidas pelo SGBD: restrições de vazio, de domínio, de chave e de integridade referencial. Todas essas restrições são efetuadas e gerenciadas pelo próprio SGBD, não necessitando da interferência humana. Todas elas são efetuadas pelo SGBD de forma transparente ao usuário, ou seja, são executadas auto-maticamente pelo sistema de banco de dados, sem que o usuário intervenha.

Inicialmente, vamos falar das restrições de vazio. De acordo com Elmasri e Navathe (2011), as restrições de vazio são conseguidas por meio da definição do tipo de atributo como NOT NULL. Quando definimos que um atributo é do tipo NOT NULL, estaremos criando uma restrição de vazio, ou seja, o atributo não aceitará que lhe seja atribuído valor vazio ou nulo.

Cabe ressaltar que a SQL possui ainda muitos outros recursos, porém, a proposta deste caderno era apresentar os principais e os mais comumente utilizados.

Page 56: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática54

Veja o exemplo de aplicaçãoConsiderando 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 execução desta sequência SQL dará erro, pois o primeiro atributo (matrícula) é do tipo NOT NULL e, portanto, obrigatoriamente, deve receber algum valor; neste caso, foi atribuído 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 restrição de domínio. Ainda segundo Elmasri e Na-vathe (2011), a restrição de domínio refere-se ao domínio de um atributo, ou seja, o conjunto de valores que esse atributo pode receber. Este tipo de restrição é talvez a mais elementar, pois é criada quando se define o tipo do atributo (inteiro, char, varchar, decimal etc.).

Veja o exemplo de aplicaçãoNa tabela Aluno (matricula, nome, turma, nota), referenciada ante-

riormente, foi criado, por exemplo, o atributo matricula como sendo do tipo inteiro (ou int). Isto significa que foi criada uma restrição de domínio para o atributo matricula, assim, o mesmo só poderá aceitar caractere numérico e do tipo inteiro.

INSERT INTO Aluno VALUES (1AB9, “Joaquim da Silva”, “2B”, 75)

A execução desta sequência irá gerar erro, pois tentou-se atribuir a matrícula um valor que não é numérico, afinal, possui letras junto aos números.

A terceira restrição é a de chave. Conforme o mesmo autor, a res-trição de chave determina que cada linha de uma tabela deve ser identifica-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 primária (simples ou composta) e estrangeira (explicada como integri-dade referencial). Vamos ilustrar um exemplo de declaração e definição de cada um deles.

Veja o exemplo de restrição de chave primária simplesConsiderando a tabela Aluno, referenciada anteriormente, vamos as-

sumir que a mesma não tenha sido criada ainda e vamos simular a criação dela:CREATE TABLE Aluno (matricula int not null, nome varchar(40),

Page 57: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 55

turma char(2), nota decimal(6,2), primary key (matricula))A definição da matrícula como primary key (chave primária), na

última linha do comando Create Table, delimita uma restrição de chave, no caso de chave primária simples, pois se definiu apenas um atributo como chave primária.

Para o caso de chave primária 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 definição da matricula e da turma como chaves primárias deter-mina uma restrição de chave, neste caso, de chave primária composta, pois se definiu dois atributos-chave.

Por fim, vamos apresentar a restrição de integridade referencial, reconhecida como sendo talvez a mais importante restrição em banco de dados.

Elmasri e Navathe (2005) ressalta que a restrição de integridade referencial busca garantir que valores de atributos, que são “chave estran-geira” em uma relação R1, possuam valores correspondentes em chaves pri-márias da tabela referenciada R2.

Vamos trazer um exemplo para tornar isto mais claro?

Veja, então, o exemplo da criação/definição de uma restrição de integridade referencial.

Para este exemplo, vamos criar três novas tabelas:

CREATE TABLE Médico (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,

Page 58: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática56

endereco varchar(35), fone varchar(14), PRIMARY KEY (CodPaciente))

Uma vez criada a(s) chave(s) estrangeira(s) numa tabela, toda e qualquer manipulação de dados na(s) tabela(s) pai (onde está a chave primá-ria correspondente) irá repercutir na(s) tabela(s) filha(s). Portanto, no exem-plo anterior, quando se criaram as chaves estrangeiras com o Foreign Key na Tabela Consulta, foi determinada uma restrição de integridade referencial, onde os dados da tabela Consulta fazem referência aos dados nas Tabelas Médico e Paciente.

Neste caso, como não foi especificada nenhuma ação na definição da chave estrangeira, o padrão é que não será aceito; por exemplo: a exclu-são de nenhum registro nas tabelas pai que possuírem o respectivo valor do atributo-chave nas tabelas filhas.

Resumo

Nesta aula, você aprendeu:• os conceitos envolvidos em SQL;• a importância 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 aplicação prática dos comandos SQL em um banco de dados.• a gerenciar os dados de banco de dados de forma automatizada,

organizada, com segurança, integridade e confiabilidade.

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 sequência do comando SQL para se criar a base de dados cha-mada “bdteste”. E também 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 sequência de comando SQL para se criar uma tabela chama-da “Cliente” com os seguintes atributos e características:

Page 59: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 57

• código: inteiro, como chave primária;• nome: varchar, de tamanho 50;• endereço: varchar, de tamanho 80;• sexo: char, de tamanho 1;• fone: varchar, de tamanho 14;• datanasc: date.

7. Informe os comandos SQL para realizar a inserção dos seguintes dados na tabela “Cliente”:• Registro 1:

− Código = 2010 − Nome = João Pedro e Silva − Endereço = Av. Um, 100 − Sexo = M − Fone = (38) 3221-0101 − DataNasc = 01/01/1980

• Registro 2: − Código = 2011 − Nome = Maria Aparecida Linhares − Endereço = R. São José, 20 − Sexo = F − Fone = (31) 3422-0202 − DataNasc = 10/12/1990

8. Qual a sequência de comando SQL para alterar o endereço do cliente de código = 2010 para “Rua Porto Alves, 45”, ao invés de “Av. Um, 100”.

9. Com base no esquema apresentado, informe a sequência SQL para resol-ver as questões que se seguem:

Esquemas• Médico (CodMed, CRM, Nome, Especialidade, CPF, Endereco, CEP,

Cidade, Fone)• Paciente (Codigo, Nome, Endereco, Cidade, Fone, CodMed)

a. Listar todos os médicos mostrando o nome, a especialidade e o telefone de cada um, ordenados pelo nome.

b. Listar todos os campos médico, ordenados por cidade.

c. Liste o total da folha de pagamento, ou seja, o somatório dos salários.

d. Liste os nomes dos pacientes da cidade de Belo Horizonte que foram atendidos pelo médico “Ivo Pitangui”.

e. Informe a quantidade de médicos por cidade.

Page 60: Banco Dados
Page 61: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados

AULA 1

Alfabetização Digital

59

Aula 6 – Integração de banco de dados e internet

Objetivos

• apresentar a importância do uso de SGBD integrados à internet;• apresentar o processo de conexão de um sistema com o banco

de dados na internet;• demonstrar como se realiza a conexão 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 próprio 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 não é o de ensinar esses SGBD, nem a programar e muito menos desenvolver aplicações web. Nesta seção, nós iremos abordar apenas alguns conceitos sobre SGBD web e algumas informações importantes para se conectar um sistema a um SGBD na internet.

O uso de sistemas web, isto é, sistemas que funcionam e são aces-sados via internet está dominando o mercado tecnológico e se tornando o tipo de solução mais utilizada pelas organizações. Um sistema web tem inúmeros atrativos, que começam pela flexibilidade e acesso remoto, onde o mesmo pode ser acessado de qualquer lugar (desde que tenha uma conexão internet), e vão até a portabilidade e a disponibilidade, em que pode ser acessado utilizando-se de diferentes tipos de sistemas operacionais e em qualquer horário, 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 características particulares, as quais não são objeto de estudo deste caderno didático. A escolha do SGBD que será utilizado deve ser feita baseada nas funcionalidades e características de cada um e no que foi definido 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 informações que serão trabalhadas. Neste caderno, optou-se por trabalhar com exemplos e funções do MySql, por se tratar de um SGBD gratuito, leve, de fácil manuseio e que detém bastante ma-terial de apoio para estudos publicados em livros e em trabalhos de pesquisa na internet, tornando-o uma ótima opção de estudos práticos em nível acadêmico.

Para maiores informações e enriquecimento de conteúdo, procure outras referências, 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/), Domínio Público (http://www.dominiopublico.gov.br/) etc.

Page 62: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática60

6.2 Conexão 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-tão, você, com certeza, utiliza alguma conexão 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 necessária a inserção, a alteração, a exclusão 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 ilustração (figura 21) de como isto acontece.

Figura 21: Conexão com banco de dados na internet.Fonte: Acervo próprio.

O acesso ao banco de dados é disparado, solicitado pelo usuário, e o sistema que o usuário 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, então, a conexão entre o sistema e o banco (3º evento), possibilitando a troca de informações en-tre ambos. Depois, é feito o caminho de volta, em resposta ao usuário.

A proposta deste caderno, no entanto, é de apresentar apenas como proceder para se estabelecer uma conexão 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”, “usuário”, “senha”) or die(“Não foi possível conectar ao servidor! “ . mysql_error());

mysql_select_db(“nome do BD”) or die(“Não foi possível selecionar o banco de dados”);?>

PHP (Personal Home Page)

é uma linguagem de programação de

interpretação livre e utilizada para gerar conteúdo dinâmico na rede mundial de

computadores (www). (SAWAYA, 1999).

Page 63: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 61

Onde: • localdoservidor = é o endereço (caminho) de onde está armaze-

nado o seu servidor MySql. Se estiver usando o banco de dados na sua máquina local, apenas a configuração seria ‘localhost’;

• usuário = é o nome do usuário do banco de dados criado;• senha = é a senha que foi definida para este usuário;• nome do BD = nome do banco de dados que foi criado.

Uma vez feita a conexão com MySql e também com o banco de dados, o programador poderá realizar qualquer operação permitida com o banco de dados. Para isto, ele necessitará conhecer os comandos descritos neste caderno didático. A utilização dos comandos em SQL, relacionados neste caderno obedecerá praticamente a mesma sintaxe apresentada neste, podendo, talvez, serem necessários alguns pequenos ajustes, dependendo do SGBD adotado. As funcionalidades dos comandos serão sempre as mes-mas, apenas as sintaxes é que poderão sofrer algum tipo de ajuste.

Para aplicação ou utilização dos comandos SQL, ainda é necessário saber mais uma informação importante.

Usando o mysql, por exemplo, a forma mais adequada e aconselha-da do seu uso é através da seguinte linha de:

$query= “Select * from [nome-da-tabela]”;$result= mysql_query($query);

Onde:• $query: é a representação da variável em php chamada query.

Em php, as variáveis utilizadas são sempre precedidas do $. Esta variável conterá a sequência de comando SQL “Select * from [nome-da-tabela]” a ser executado pelo BD. Até este momento, o comando SQL ainda não foi executado de fato. Para isto, é necessária a execução do comando mysql_query;

• mysql_query($query): mysql_query é o comando responsável por executar o comando SQL direto no banco de dados. Neste caso, a execução do comando descrito (Select ...) atribuirá a variável $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 importância da integração dos SGBD aos sistemas web;• que a escolha do SGBD deve ser um processo criterioso;• como realizar a conexão com o SGBD na web.

Page 64: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática62

Atividades de aprendizagem

1. O que é um SGBD web?

2. Relacione 4 SGBD web.

3. Explique, passo a passo, como é feita a conexão com o banco de dados na internet, independente de qual seja esse SGBD.

Page 65: Banco Dados

e-Tec Brasil/CEMF/UnimontesBanco de Dados 63

Referências

DATE, C. J.. Introdução a Sistemas de Bancos de Dados. Rio de Janeiro: Cam-pus, 2000.

ELMASRI, Ramez; NAVATHE, Shamkant B.. Sistemas de Banco de Dados. 4ª Ed. São Paulo: Pearson Addison Wesley, 2005.

______________________________________. Sistemas de Banco de Da-dos. 6ª Ed. São Paulo: Pearson Addison Wesley, 2011.

SANCHES, André Rodrigo. Fundamentos de Armazenamento e Manipulação de Dados. Disponível em <http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula5.html>. Acessado em 03 de abril de 2011.

SAWAYA, Márcia Regina. Dicionário de Informática e Internet. São Paulo: No-bel, 1999.

SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de Ban-co de Dados. São Paulo: Makron Books, 1999.

WELLING, Luke; THOMSON, Laura. PHP e MySQL desenvolvimento Web. Rio de Janeiro: Elsevier, 2005.

Page 66: Banco Dados

e-Tec Brasil/CEMF/Unimontes Informática64

Currículo do professor conteudistaLeandro Clementino de Almeida

Graduado em Sistemas de Informação pela Universidade Estadual de Montes Claros/Unimontes, Especialização em Administração de Redes Linux, pela Universidade Federal de Lavras, e Mestrando em Administração, 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 Profissional e Tecnológico da Unimontes.

Page 67: Banco Dados
Page 68: Banco Dados

e-Tec Brasil/CEMF/UnimontesEscola Técnica Aberta do Brasil