Você está na página 1de 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
e-Tec Brasil/CEMF/Unimontes
Escola Técnica Aberta do Brasil

Informática

Banco de Dados
Leandro Clementino de Almeida

Montes Claros - MG
2011
Presidência da República Federativa do Brasil
Ministério da Educação
Secretaria de Educação a Distância
Ministro da Educação Coordenadores de Cursos:
Fernando Haddad Coordenador do Curso Técnico em
Agronegócio
Secretário de Educação a Distância Augusto Guilherme Dias
Carlos Eduardo Bielschowsky
Coordenador do Curso Técnico em Comércio
Coordenadora Geral do e-Tec Brasil Carlos Alberto Meira
Iracy de Almeida Gallo Ritzmann
Coordenador do Curso Técnico em Meio
Governador do Estado de Minas Gerais Ambiente
Antônio Augusto Junho Anastasia Edna Helenice Almeida

Secretário de Estado de Ciência, Tecnologia Coordenador do Curso Técnico em


e Ensino Superior Informática
Alberto Duque Portugal Frederico Bida de Oliveira

Coordenadora do Curso Técnico em


Vigilância em Saúde
Simária de Jesus Soares

Reitor Coordenadora do Curso Técnico em Gestão


João dos Reis Canela em Saúde
Zaida Ângela Marinho de Paiva Crispim
Vice-Reitora
Maria Ivete Soares de Almeida BANCO DE DADOS
e-Tec Brasil/CEMF/Unimontes
Pró-Reitora de Ensino
Anette Marília Pereira Elaboração
Leandro Clementino de Almeida
Diretor de Documentação e Informações
Huagner Cardoso da Silva Projeto Gráfico
e-Tec/MEC
Coordenador do Ensino Profissionalizante
Edson Crisóstomo dos Santos Supervisão
Wendell Brito Mineiro
Diretor do Centro de Educação Profissonal e
Tecnólogica - CEPT Diagramação
Hugo Daniel Duarte Silva
Maísa Tavares de Souza Leite
Marcos Aurélio de Almeida e Maia
Diretor do Centro de Educação à Distância
Impressão e Acabamento
- CEAD
Gráfica RB Digital
Jânio Marques Dias
Designer Instrucional
Coordenadora do e-Tec Brasil/Unimontes Angélica de Souza Coimbra Franco
Rita Tavares de Mello Kátia Vanelli Leonardo Guedes Oliveira

Coordenadora Adjunta do e-Tec Brasil/ Revisão


CEMF/Unimontes Maria Ieda Almeida Muniz
Eliana Soares Barbosa Santos Patrícia Goulart Tondineli
Rita de Cássia Silva Dionísio
AULA 1

Apresentação
Alfabetizaçãoe-Tec
DigitalBrasil/CEMF/
Unimontes

Prezado estudante,

Bem-vindo ao e-Tec Brasil/Unimontes!

Você faz parte de uma rede nacional pública de ensino, a Escola


Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezem-
bro 2007, com o objetivo de democratizar o acesso ao ensino técnico público,
na modalidade a distância. O programa é resultado de uma parceria entre
o Ministério da Educação, por meio das Secretarias de Educação a Distancia
(SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e
escola técnicas estaduais e federais.
A educação a distância no nosso país, de dimensões continentais e
grande diversidade regional e cultural, longe de distanciar, aproxima as pes-
soas ao garantir acesso à educação de qualidade, e promover o fortalecimen-
to da formação de jovens moradores de regiões distantes, geograficamente
ou economicamente, dos grandes centros.
O e-Tec Brasil/Unimontes leva os cursos técnicos a locais distantes
das instituições de ensino e para a periferia das grandes cidades, incenti-
vando os jovens a concluir o ensino médio. Os cursos são ofertados pelas
instituições públicas de ensino e o atendimento ao estudante é realizado em
escolas-polo integrantes das redes públicas municipais e estaduais.
O Ministério da Educação, as instituições públicas de ensino téc-
nico, seus servidores técnicos e professores acreditam que uma educação
profissional qualificada – integradora do ensino médio e educação técnica,
– não só é capaz de promover o cidadão com capacidades para produzir, mas
também com autonomia diante das diferentes dimensões da realidade: cul-
tural, social, familiar, esportiva, política e ética.

Nós acreditamos em você!

Desejamos sucesso na sua formação profissional!

Ministério da Educação
Janeiro de 2010

Banco de Dados 3 e-Tec Brasil/CEMF/Unimontes


AULA 1

Alfabetização Digital
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.

Banco de Dados 5 e-Tec Brasil/CEMF/Unimontes


AULA 1

Alfabetização Digital
Sumário

Palavra dos professores conteudistas........................................ 11


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

Banco de Dados 7 e-Tec Brasil/CEMF/Unimontes


AULA 1

Alfabetização Digital
Palavra do professor conteudista

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.

Banco de Dados 9 e-Tec Brasil/CEMF/Unimontes


Você terá oportunidade, ao longo da leitura das aulas, de perceber
que a utilização de banco de dados e sistemas de banco de dados faz parte
do seu cotidiano e é fundamental para o conhecimento da área de informá-
tica, principalmente na área de desenvolvimento.
Neste sentido, o conteúdo deste caderno didático foi elaborado
adotando-se uma dinâmica de organização na qual partiu-se de uma introdu-
ção sobre a temática, passando pelos conceitos fundamentais dela, na busca
da sua compreensão sobre banco de dados e sobre a importância deste na
formação do técnico em Informática.
Assim, na Aula I, você será introduzido nos conceitos de banco de
dados, sistema gerenciador de banco de dados (SGBD), sistema de banco
de dados. Será apresentado um breve comparativo entre banco de dados
e processamento tradicional de arquivos, além de apresentar situações nas
quais não se necessita de um SGBD. Daremos continuidade a essa iniciação
na Aula II, abordando conceitos de modelos de dados e os principais, e ainda
esquema e instâncias.
Na Aula III, você será apresentado à modelagem de dados e irá co-
nhecer, especificamente, o Modelo Entidade Relacionamento e seus princi-
pais conceitos, como entidade, atributo, relacionamento, tipos de entidades
e atributos e Diagrama de Entidade Relacionamento. Na Aula IV, você conhe-
cerá o modelo de dados relacional, tido como o mais utilizado no mundo, e
também os principais conceitos envolvidos nesse modelo.
Na Aula V, será apresentada a linguagem estruturada de consulta
(SQL) e seus principais recursos.
Finalmente, na Aula VI, você terá oportunidade de conhecer como
se faz a integração do banco de dados com a internet.
Assim, esperamos que, ao final desta disciplina, você esteja habi-
litado a:
• especificar projeto físico e lógico de banco de dados;
• gerenciar transações de banco de dados por intermédio do uso
de métodos, técnicas e ferramentas que envolvam os elementos
de gestão de dados e transações;
• estar familiarizado com a tecnologia de banco de dados, en-
volvendo linguagens de definição, consulta a banco de dados e
aspectos de segurança e integridade.

Sugerimos que você dedique tempo suficiente para fazer a leitura,


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

Bons estudos!
Leandro Clementino de Almeida

e-Tec Brasil/CEMF/Unimontes 10 Informática


AULA 1

Alfabetização Digital
Projeto instrucional

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.

CARGA
AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS
HORÁRIA
Aula 1. - Conceituar os principais termos de
Introdução banco de dados;
- distinguir processamento de arqui-
vos tradicional de banco de dados;
- apresentar aspectos referentes à
- 8h
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.
Aula 2. - Apresentar os principais conceitos
Sistemas de envolvidos em sistemas de banco de
banco de da- dados, bem como sua arquitetura,
dos: conceitos seus componentes e, principalmente,
e arquitetura os modelos de dados mais relevantes;
- 8h
- 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.
- Descrever os conceitos envolvidos na
Aula 3. Modelagem Entidade Relacionamento;
Modelagem de - apresentar os principais termos
dados – Mo- utilizados na construção de um banco
delo Entidade de dados no MER; - 12h
Relaciona- - possibilitar aos alunos construir o
mento (MER) conhecimento para a criação de mo-
delos e diagramas ER, com os respec-
tivos relacionamentos.

Banco de Dados 11 e-Tec Brasil/CEMF/Unimontes


Aula 4. - Conceituar e apresentar os princi-
Modelagem de pais elementos do Modelo Relacional;
dados – Mode- - demonstrar as principais aplicações
lo Relacional do modelo na construção de projeto
- 12h
(MR) de banco de dados relacional;
- realizar o mapeamento do Modelo
Entidade Relacionamento (MER) para
o Modelo Relacional (MR).
Aula 5. - Apresentar os principais conceitos
Linguagem sobre linguagem de consulta estrutu-
de consulta rada (SQL);
estruturada - realizar estudos sobre DDL e DML;
- 16h
(SQL) - básico - realizar aplicações práticas dos prin-
cipais comandos SQL;
- definir e criar restrições de dados
em SQL.
Aula 6. - Apresentar a importância do uso de
Integração de SGBD integrados à internet;
banco de da- - apresentar o processo de conexão de
dos e internet um sistema com o banco de dados na
- 4h
internet;
- demonstrar como se realiza a cone-
xão do sistema com o banco de dados
na web.

e-Tec Brasil/CEMF/Unimontes 12 Informática


AULA 1

Alfabetização Digital
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 As leituras auxiliares


em nosso cotidiano? E na quantidade de empresas e de lojas comerciais que são sempre importantes
e enriquecedoras. Não
fazem uso de sistemas para gerenciar seus negócios? Pois o banco de dados deixe de fazê-las!
(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- Populado: o mesmo que
do implícito. Por exemplo, considere nomes, números telefônicos alimentado/povoado, de
e endereços de pessoas que você conhece. Esses dados podem ter acordo com Figueiredo
sido escritos em uma agenda de telefones ou armazenados em um (2011).
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.

Banco de Dados 13 e-Tec Brasil/CEMF/Unimontes


Para melhor entendimento, podemos destacar alguns ingredientes
necessários em um BD, conforme Elmasri e Navathe (2005):
• uma fonte de dados da qual são derivados os dados;
• a interação com o mundo real;
• o público que demonstra interesse nos dados contidos no banco
de dados.

Sendo assim, um banco de dados pode ser de qualquer tamanho e


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

Figura 1: Constituição de um SGBD.


Fonte: Acervo próprio.

Os bancos de dados são implementados e utilizados em diversas


áreas. Vamos conhecê-las? A seguir, estão relacionadas algumas delas.
• Instituições de ensino: para informações administrativas, de
alunos, cursos, notas etc.
• Empresas de energia: para a gerência do consumo de energia,
geração de contas etc.
• Bancos: para informações de clientes, contas, empréstimos, fi-
nanciamentos e todas as transações bancárias.
• Meio ambiente: para o controle das questões climáticas, infor-
mações sobre desmatamentos, sobre o solo etc.
• Transações com cartão de crédito: para compras com cartões
e geração de faturas.
• Telecomunicação: para manter registros de chamadas, geren-
ciar contas, gerenciar informações de conectividade, links de
internet etc.
• Finanças: para armazenar informações de compras, vendas etc.
• Indústria: para gerenciamento e controle da produção e de to-
dos os itens envolvidos.

e-Tec Brasil/CEMF/Unimontes 14 Informática


• 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. Autoinformação:
Antes de falar do processamento de arquivos e do banco de dados é o mesmo que ter
informação de si
propriamente dito, é preciso esclarecer que o SGBD possui uma caracterís- mesmo.
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”.

Banco de Dados 15 e-Tec Brasil/CEMF/Unimontes


1.2 Profissionais e atividades envolvidas em um
SGBD
Por acaso, você conhece algum profissional que trabalha com banco
de dados? Ou mesmo que utilize o banco de dados por meio do acesso aos
sistemas empregados no trabalho, por exemplo?
Pois bem, em um banco de dados pequeno, por exemplo, de uso pes-
soal, uma única pessoa será quem vai definir, construir e manipular o banco
de dados. Porém, em um grande banco de dados, com dezenas, centenas (ou
milhões) de usuários e com restrições de acesso para cada um, é necessário um
controle rígido sobre o mesmo e, neste sentido, podemos identificar e destacar
alguns perfis de pessoas que interagem com banco de dados, conforme desta-
cam Elmasri e Navathe (2005):
• administrador do banco de dados (DBA);
• projetista do banco de dados;
• analista de sistemas;
• programador de aplicações;
• usuário final.
Cada um desses profissionais é encarregado de uma série de fun-
ções inerentes ao seu perfil. Sendo assim, segue, a seguir, uma descrição
das atividades desenvolvidas por cada um deles, segundo Elmasri e Nava-
the(2005).
Administrador de dados (DBA): é o supervisor do banco de dados,
responsável pela autorização de acesso ao banco, pelo monitoramento e
pela coordenação do uso. Está envolvido com os aspectos físicos do banco de
dados (estruturas de armazenamento, métodos de acesso etc.).
Projetistas do banco: são responsáveis pela identificação dos da-
dos e pela elaboração de estruturas apropriadas para armazená-los. Para
isto, é necessário compreender os requisitos necessários aos grupos de usu-
ários do banco de dados antes de sua implementação.
Analista de sistemas: determina os requisitos dos usuários e desen-
volve especificações que atendam estes requisitos.
Programadores: implementam as especificações na forma de pro-
gramas, elaborando toda a documentação.
Usuário (final): um banco de dados existe para a utilização do usu-
ário final, cujo trabalho, normalmente, requer consultas e atualizações. A
maioria dos usuários utiliza programas voltados ao desempenho profissional,
utilizando-os em seu dia a dia.

1.3 Vantagens e desvantagens do uso de banco


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

e-Tec Brasil/CEMF/Unimontes 16 Informática


• 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 Backup:
associadas aos dados, como identificação do tipo de dado, dado é o processo de criar
cópia dos dados.
de tipo único, impossibilidade do dado não ser informado (ser
nulo), relacionamento entre os dados armazenados etc. Isto irá Recovery:
dificultar a ocorrência de erro, porém, ele ainda poderá acon- é a restauração dos
tecer. dados “backupeados”.
• 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;

Banco de Dados 17 e-Tec Brasil/CEMF/Unimontes


• há necessidade de processamento em tempo real de certas apli-
cações, que seriam extremamente prejudicadas pela sobrecarga
causada pelo uso de um SGBD;
• os múltiplos acessos não são necessários.

Resumo
Nesta aula, você aprendeu:
• conceitos envolvidos em banco de dados;
• a importância de um bom banco de dados, principalmente em
relação ao método de processamento tradicional de arquivos;
• quando usar e quando não usar um banco de dados.

Atividades de aprendizagem
1. Informe um conceito para definir banco de dados.

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


de banco de dados?

3. Um grupo qualquer de informações pode ser considerado um banco de


dados? Por quê?

4. Quais são os elementos essenciais para se afirmar que um determinado


conjunto de informações é, de fato, um banco de dados?

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


de dados?

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

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

e-Tec Brasil/CEMF/Unimontes 18 Informática


AULA 1

Aula 2 – Sistemas
Alfabetização de banco de dados
Digital
(SBD): conceitos e arquitetura

Objetivos
• apresentar os principais conceitos envolvidos em sistemas de
banco de dados, bem como sua arquitetura, seus componentes
Não fique preso apenas
e, principalmente, os modelos de dados mais relevantes; a este caderno; busque
• tornar o aluno capaz de identificar um modelo de dados e, com outras fontes de estudo
isto, criar e desenvolver a modelagem de um projeto de banco sobre banco de dados.
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.

Banco de Dados 19 e-Tec Brasil/CEMF/Unimontes


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

Lan house: Também conhecido como modelo de dados conceituais,descreve


é um local para as os dados como os usuários os percebem, segundo Elmasri e Navathe (2005).
pessoas acessarem a
internet. Normalmente Como exemplos de modelos de alto nível, podemos destacar dois
é cobrada uma taxa. tipos, dados a seguir.
(SAWAYA, 1999) • 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).

e-Tec Brasil/CEMF/Unimontes 20 Informática


• 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 Os CADs são programas
títulos efetuados pelos clientes. (ELMASRI; NAVATHE, 2005). 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).

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).

Banco de Dados 21 e-Tec Brasil/CEMF/Unimontes


2.2.2 Modelo de baixo nível

Conhecido como modelo de dados físicos, descreve os detalhes de


como os dados estão armazenados no computador, de acordo com Elmasri e
Navathe (2005). Este modelo tem relação direta com a máquina, o hardware.
Geralmente, é mais útil e significativo para os especialistas em har-
dware de computador.
Não possui exemplos de modelos diagramados descritos na litera-
tura, pois atua em nível de hardware e, além disso, não é objeto de estudo
deste caderno didático.

2.2.3 Modelo de dados representacionais

Modelo intermediário que oferece os conceitos que podem ser en-


tendidos pelos usuários finais e também dispõe de informações de como os
dados estão organizados dentro do computador, conforme relatam Elmasri e
Navathe (2011). Normalmente, é utilizado pelos especialistas. Este modelo é
o mais utilizado em SGBDs comerciais tradicionais.
Como exemplos de modelos de dados representacionais, podemos
destacar os três que são descritos a seguir.
• Modelo relacional: utiliza um conjunto de tabelas para repre-
sentar tanto os dados como a relação entre eles. Cada tabela
possui, normalmente, diversas colunas, e cada uma possui um
nome único. Este modelo será mais bem descrito na aula 4 deste
caderno. A figura apresenta um exemplo de banco de dados bem
simples, no qual existem apenas duas tabelas, “Empregado” e
“Departamento”, sendo que cada empregado está ligado a ape-
nas um departamento.

Figura 5: Exemplo de banco de dados do modelo relacional.


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

e-Tec Brasil/CEMF/Unimontes 22 Informática


• 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.

Banco de Dados 23 e-Tec Brasil/CEMF/Unimontes


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.

e-Tec Brasil/CEMF/Unimontes 24 Informática


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
Não deixe de
instante do tempo, formam um conjunto chamado de “instância do banco de acompanhar as
dados”, conforme concebem Elmasri e Navathe (2005). novidades e inovações
do SGBD! Lembre-se, a
A instância, diferentemente do esquema, altera toda vez que o
aprendizagem é sempre
banco de dados sofre qualquer modificação de conteúdo. contínua!
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?

Banco de Dados 25 e-Tec Brasil/CEMF/Unimontes


AULA 1

Aula 3 – Modelagem
Alfabetização Digitalde 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

Banco de Dados 27 e-Tec Brasil/CEMF/Unimontes


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

Figura 8: Diagrama ilustrando as principais fases de um projeto de banco de dados.


Fonte: Acervo próprio.

3.2 Entidade, atributo e relacionamento


Você já tinha lido ou ouvido falar de algum desses termos? Prova-
velmente sim, porém, talvez em outro contexto. Em se tratando do contexto
de banco de dados, vamos ver o que são e como são utilizados?
Comecemos falando, então, de entidade. O principal objeto ou o
objeto básico que um modelo ER representa é a entidade. Uma entidade é
um objeto com uma existência própria, podendo ser física (concreta) – uma
pessoa, um veículo, um equipamento – ou abstrata (conceitual) – um depar-
tamento, um curso, um cargo, uma conta. (ELMASRI; NAVATHE, 2005).

e-Tec Brasil/CEMF/Unimontes 28 Informática


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

Banco de Dados 29 e-Tec Brasil/CEMF/Unimontes


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

Figura 10: Exemplo de diagrama de relacionamento 1:N.


Fonte: Acervo próprio.

• M:N (lê-se M para N - onde M e N significam muitos): significa


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

Figura 11: Exemplo de diagrama de relacionamento M:N.


Fonte: Acervo próprio.

3.3 Tipos de entidades e atributos


As entidades e os atributos são classificados em diferentes tipos.
Que tal conhecermos esses tipos?
Para isto, vamos começar com a classificação dos tipos de entidades,
segundo Date (2000).
• Entidade fraca: são as entidades que não possuem atributos-
-chave próprios, isto é, que dependem dos atributos-chave de
uma outra entidade. Por exemplo: numa relação entre as duas
entidades, DEPENDENTE e EMPREGADO, todos os elementos da
entidade Dependente são dependentes da entidade Empregado,
ou seja, só irá existir um dependente se houver o registro do
empregado correspondente ao mesmo. Portanto, a entidade De-
pendente é uma entidade fraca.
• Entidade forte: são as entidades que possuem seus próprios
atributos-chave, ou seja, são independentes. Por exemplo: ain-

e-Tec Brasil/CEMF/Unimontes 30 Informática


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.

Banco de Dados 31 e-Tec Brasil/CEMF/Unimontes


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-
Passos para construir
um Modelo Entidade lacionamento, razão de cardinalidade), existe um símbolo representativo.
Relação: Sendo assim, vamos apresentar cada um desses símbolos a seguir, ilustrados
1º) identificar as
entidades; na figura 12.
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.

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.

e-Tec Brasil/CEMF/Unimontes 32 Informática


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.

Banco de Dados 33 e-Tec Brasil/CEMF/Unimontes


Resumo
Nesta aula, você aprendeu:
• os principais conceitos e termos envolvidos num Modelo Entida-
de Relacionamento (ER);
• a aplicação de um modelo ER num projeto de banco de dados;
• planejar e construir modelos e diagramas ER de um banco de
dados.

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

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

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


dade Relacionamento.

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

5. Construa exemplos de diagramas de relacionamento de cardinalidade


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

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


um deles.

7. Desenvolva um DER para que um banco possa gerenciar as contas parti-


culares de cada cliente em suas respectivas agências. Você deverá de-
cidir quais atributos de cada entidade serão necessários para o modelo.

8. Preencha os diagramas a seguir com as respectivas entidades e os seus rela-


cionamentos; informe também qual o grau de cardinalidade em cada caso.
a.
Entidades Relacionamento
Banco, agência Administra

b.
Entidades Relacionamento
Cliente, pedido Solicita

e-Tec Brasil/CEMF/Unimontes 34 Informática


AULA 1

Aula 4 – Modelagem
Alfabetização Digitalde 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).

Apesar do crescimento
4.1 Introdução do uso de outros
modelos, o MR ainda é
o mais utilizado pelas
Agora que aprendemos sobre o Modelo ER, que tal conhecermos o empresas.
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.

Banco de Dados 35 e-Tec Brasil/CEMF/Unimontes


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.

Os atributos-chave são 4.3 Atributos-chave


essenciais em BD; por
isso, procurem assimilar
bem as informações Já leram ou ouviram alguma coisa sobre atributos-chave? De qual-
apresentadas. 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

e-Tec Brasil/CEMF/Unimontes 36 Informática


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

a. Produto
Código Descrição Qtde ValorUnit

b. Aluno
Matrícula CPF Nome Curso e-mail

Figura 15: Esquema das relações PRODUTO e ALUNO.


Fonte: Acervo próprio.

• Chave candidata: formada pelo conjunto de atributos capazes


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

Produto
Código Descrição Qtde ValorUnit

Itens_Pedido
CódProd CodPed Quant

Figura 16: Modelo identificando chave estrangeira.


Fonte: Acervo próprio.

4.4 Mapeamento do MER para MR


Já participou de algum projeto no qual foi realizado o mapeamento
de MER para MR? Tem ideia do que seja?
Nesta seção, iremos aprender o que é e como fazer um mapeamen-
to desse tipo.
Embora seja crescente o uso da modelagem orientada a objeto,
ainda é grande o uso, em projetos de banco de dados, da modelagem em alto

Banco de Dados 37 e-Tec Brasil/CEMF/Unimontes


nível (o MER). Contudo, o uso dessa modelagem é apenas parte do processo
de construção do projeto de banco de dados.
O resultado da modelagem ER são esquemas de observações, ou
seja, Diagramas Entidade Relacionamento (DER) que devem ser integrados,
posteriormente, para originar apenas um grande e único esquema. O mape-
amento do Modelo Entidade Relacionamento para o Modelo Relacional é uti-
lizado justamente para este fim, para complementar e completar o projeto
de banco de dados.
A seguir, segue um resumo dos passos básicos necessários para se
fazer o mapeamento do MER para o MR, baseado na obra de Elmasri e Nava-
the (2005).
Passo 1: todas as entidades são mapeadas para uma relação con-
tendo os mesmos atributos do MER. Veja o exemplo da figura 17.

Figura 17: Mapeamento de entidade MER para MR.


Fonte: Acervo próprio.

Na figura 17, foi apresentado o MER de uma entidade chamada Em-


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

Passo 2: para entidade fraca é criada a relação contendo todos os


seus atributos, tendo acrescido, como chave estrangeira, a chave primária
da entidade forte (pai). Veja o exemplo da figura 18.

Figura 18: Mapeamento de entidade fraca de MER para MR.


Fonte: Acervo próprio.

e-Tec Brasil/CEMF/Unimontes 38 Informática


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.

Banco de Dados 39 e-Tec Brasil/CEMF/Unimontes


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

Na figura 20, foi apresentado o MER do relacionamento Participa


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

Resumo
Nesta aula, você aprendeu:
• os principais conceitos e termos envolvidos num Modelo Rela-
cional;
• a aplicação de um Modelo Relacional num projeto de banco de
dados;
• mapear um Modelo ER em um Modelo Relacional;
• planejar e construir modelos relacionais de um banco de dados.

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

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

e-Tec Brasil/CEMF/Unimontes 40 Informática


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?

Banco de Dados 41 e-Tec Brasil/CEMF/Unimontes


AULA 1

Alfabetização Digital
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 Nesta seção, iremos


abordar os comandos
de definição de dados
Por acaso, você já ouviu falar em comandos de definição de dados? em SQL utilizados no
Sabe o que significa? O grupo de comandos de definição de dados é conheci- modo Shell (linhas de
do como o grupo DDL, e forma a fase inicial para a construção de qualquer comandos digitados num
prompt de comando).
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

Banco de Dados 43 e-Tec Brasil/CEMF/Unimontes


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.
SQL Server – SGBD -,
desenvolvido e mantido
Para cada exemplo, será apresentado um problema e, em seguida, a solução
pela Microsoft (http:// (resposta) ao problema dado.
www.microsoft.com); Para iniciar, começaremos falando do comando para a criação do
Oracle - SGBD -,
desenvolvido e mantido banco de dados. Para se criar um banco de dados em SQL, usa-se o comando:
pela empresa Oracle CREATE DATABASE <nome-do-banco-de-dados>;
(http://www.oracle.com);
MySql - SGBD -,
desenvolvido pela Veja um exemplo de aplicação.
MySql AB, atualmente, Problema: criar uma base de dados (um banco de dados) chamada
é mantido pela Oracle AULASQL.
(http://www.mysql.com);
PostgreSQL –
é um projeto open Solução/Resposta:
source (código
CREATE DATABASE aulasql;
aberto) coordenado
pelo PostgreSQL
Global Development Uma vez definido (criado) o nome da base de dados, para poder
Group (http://www.
postgresql.org) -; trabalhar com esta base, é preciso abri-la para a edição. Para isto, utilizamos
DB2 – SGBD -, o seguinte comando (padrão do mysql):
desenvolvido e mantido USE <nome-do-banco-de-dados>
pela IBM (www.ibm.com/
software/data/db2);
Firebird – SGBD -, Veja um exemplo de aplicação.
desenvolvido e Problema:
mantido pela Fundação
FirebirdSQL (http:// Abrir o banco de dados para a edição/manipulação dos dados.
www.firebirdsql.org).
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:
Os comandos SQL
devem ser sempre CREATE TABLE <nome_tabela>
finalizados com o uso (nome_atributo1 < tipo > [ NOT NULL ],
do ponto e vírgula (;), nome_atributo2 < tipo > [ NOT NULL ],
conforme ilustra o
exemplo anterior e os ......
demais exemplos deste nome_atributoN < tipo >) ;
caderno.
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;

e-Tec Brasil/CEMF/Unimontes 44 Informática


• 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
As intruções Primary
vazio ou nulo; Key e Foreign Key serão
Nome – do tipo caracter, de tamanho 40, não deve aceitar valor explicadas em mais
vazio ou nulo; detalhes na Aula 5.
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

Banco de Dados 45 e-Tec Brasil/CEMF/Unimontes


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

Caso a estrutura definida com os comandos anteriores não seja a


mais adequada ou que necessite de alguns ajustes, existe um comando que
é responsável por fazer modificações na estrutura do banco. O comando em
questão é o ALTER TABLE, que é capaz de alterar a estrutura de uma tabela
acrescentando, retirando e alterando nomes, formatos das colunas e a inte-
gridade referencial definidos em uma determinada tabela.
A sintaxe do comando Alter Table segue logo a seguir.
ALTER TABLE <nome-tabela>
DROP <nome-atributo>;
ADD <nome-atributo > <tipo-do-dado> [NOT NULL];
RENAME <nome-atributo > <novo-nome-atributo >;
RENAME TABLE <novo-nome-tabela>;
MODIFY <nome-atributo > <tipo-do-dado> [NULL]; ou
[NOT NULL]

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

Visando uma melhor compreensão dos comandos anteriores, serão


relacionados alguns exemplos práticos, a seguir.

Veja alguns exemplos de aplicação.


Problema 1: acrescentar o atributo fone, do tipo caractere de ta-
manho 14, na tabela EMPREGADO.
Solução/Resposta:
ALTER TABLE empregado ADD fone varchar(14).

Problema 2: acrescentar o atributo codsetor como chave estrangei-


ra, na tabela EMPREGADO.
Solução/Resposta:
ALTER TABLE empregado ADD FOREIGN KEY codsetor REFERENCES
(Setor).
Problema 3: renomear o atributo dtnasc para datanasc na tabela
EMPREGADO.
Solução/Resposta:
ALTER TABLE empregado RENAME dtnasc datanasc.

e-Tec Brasil/CEMF/Unimontes 46 Informática


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.

Banco de Dados 47 e-Tec Brasil/CEMF/Unimontes


Exemplo de aplicação
Problema
Considerando a seguinte tabela com os seus respectivos atributos
ALUNO (matricula, nome, turma, nota), inserir os dados a seguir:
Matricula (tipo int) = 10105
Nome (tipo varchar) = Luís Inácio Lula da Silva
Turma (tipo char) = 1A
Nota (tipo decimal) = 95

Solução/Resposta:
INSERT INTO Empregado (matricula, nome, turma, nota) VALUES
(10105, “Luís Inácio Lula da Silva”, “1A”, 95).

É importante ressaltar O nosso próximo comando a ser estudado chama-se UPDATE. O


que os atributos do
tipo numéricos (inteiro,
UPDATE serve para atualizar (alterar) um ou mais registros numa tabela. A
decimal, float etc.), forma de aplicação deste comando, ou seja, a sua sintaxe é:
como matricula e nota UPDATE <nome-tabela>
do exemplo anterior,
têm os seus valores SET <nome-atributo> = <novo conteúdo do atributo>
atribuídos sem o uso de [<nome-atributo> = <novo conteúdo do atributo>]
aspas. Já os atributos
WHERE <condição>
do tipo caractere (char,
varchar etc.), como
nome e turma, têm os Onde:
seus valores atribuídos • nome-tabela - representa o nome da tabela cujo conteúdo será
sempre utilizando
as aspas (simples ou alterado;
duplas). • 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.

e-Tec Brasil/CEMF/Unimontes 48 Informática


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ção


Problema:
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ção
Problema:
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-

Banco de Dados 49 e-Tec Brasil/CEMF/Unimontes


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
A maioria das pesquisas
Select) ou que será(ao) utilizada(s) para a execução da consulta;
de dados e informações
em sistemas são • condição - representa a condição para a seleção dos registros. A
feitas utilizando-se do seleção poderá resultar em um ou vários registros;
comando Select. • 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.
Observe que, como
foi pedida a seleção Veja alguns exemplos de aplicação
apenas do nome do Problema 1:
aluno, foi informado,
após o Select, apenas o Selecionar o nome dos aprovados (com nota >= 70).
atributo nome.
Solução/Resposta:
SELECT nome FROM Aluno WHERE nota>=70

Problema 2:
Listar todos os campos (atributos) dos alunos que estão de prova
O asterisco (*) utilizado
final/recuperação (notas >=50 e <70).
logo após o Select é
chamado de “caractere Solução/Resposta:
curinga”, e a sua
função é de representar SELECT * FROM Aluno WHERE nota>=50 AND nota <70
todos os atributos da
tabela informada após Problema 3:
o From. No lugar do
asterisco, poderia ter Informe o número de matrícula e o nome dos alunos.
sido usada a instrução
ALL (que representa
todos também). Tanto
Solução/Resposta:
o (*) quanto ALL têm a SELECT matricula, nome FROM Aluno
mesma função.

e-Tec Brasil/CEMF/Unimontes 50 Informática


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ção


Problema 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

Banco de Dados 51 e-Tec Brasil/CEMF/Unimontes


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
DESC
Onde:
nome-atributo: representa o(s) nome(s) do(s) atributo(s) a ser orde-
nado em ordem crescente (ASC) ou decrescente (DESC). Se for utilizado mais
de um atributo, os mesmos devem ser separados por vírgula.

Veja um exemplo de aplicação


Problema:
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]

e-Tec Brasil/CEMF/Unimontes 52 Informática


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ção


Problema 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 Cabe ressaltar que a
SQL possui ainda muitos
outros recursos, porém,
5.4 Restrições de dados a proposta deste
caderno era apresentar
os principais e os mais
As restrições em banco de dados são fundamentais para garantir a comumente utilizados.

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.

Banco de Dados 53 e-Tec Brasil/CEMF/Unimontes


Veja o exemplo de aplicação
Considerando a tabela Aluno (matricula, nome, turma, nota), uti-
lizada nos exemplos anteriores, vamos tentar executar a seguinte linha de
comando SQL para inserir valores na tabela:
INSERT INTO Aluno VALUES (“”, “Joaquim da Silva”, “2B”, 75);

A 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ção


Na tabela Aluno (matricula, nome, turma, nota), referenciada ante-
riormente, foi criado, por exemplo, o atributo matricula como sendo do tipo
inteiro (ou int). Isto 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 simples


Considerando 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),

e-Tec Brasil/CEMF/Unimontes 54 Informática


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,

Banco de Dados 55 e-Tec Brasil/CEMF/Unimontes


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:

e-Tec Brasil/CEMF/Unimontes 56 Informática


• 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.

Banco de Dados 57 e-Tec Brasil/CEMF/Unimontes


AULA 1

Aula 6 – Integração
Alfabetização de banco de dados e
Digital
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 Para maiores
informações e
o tipo de solução mais utilizada pelas organizações. Um sistema web tem enriquecimento de
inúmeros atrativos, que começam pela flexibilidade e acesso remoto, onde o conteúdo, procure
mesmo pode ser acessado de qualquer lugar (desde que tenha uma conexão outras referências,
como Elmasri e Navathe
internet), e vão até a portabilidade e a disponibilidade, em que pode ser (2011), ou ainda sites,
acessado utilizando-se de diferentes tipos de sistemas operacionais e em como Sistema de
Bibliotecas da Unicamp
qualquer horário, desde que o servidor do banco de dados esteja ligado, ou (http://www.sbu.
seja, on line. unicamp.br/), Portal
Como já foi dito, existem diversos SGBD, e cada um apresenta um con- da Capes (http://www.
periodicos.capes.
junto de características particulares, as quais não são objeto de estudo deste gov.br/), Domínio
caderno didático. A escolha do SGBD que será utilizado deve ser feita baseada Público (http://www.
nas funcionalidades e características de cada um e no que foi definido no projeto dominiopublico.gov.br/)
etc.
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.

Banco de Dados 59 e-Tec Brasil/CEMF/Unimontes


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.
PHP
(Personal Home Page) A proposta deste caderno, no entanto, é de apresentar apenas
é uma linguagem como proceder para se estabelecer uma conexão do sistema com o banco
de programação de de dados MySql. Sendo assim, segue, a seguir, um pequeno passo a passo de
interpretação livre e
utilizada para gerar como fazê-lo.
conteúdo dinâmico Utilizando PHP + MySql, por exemplo, seria assim:
na rede mundial de
computadores (www).
(SAWAYA, 1999). <?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”);
?>

e-Tec Brasil/CEMF/Unimontes 60 Informática


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.

Banco de Dados 61 e-Tec Brasil/CEMF/Unimontes


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.

e-Tec Brasil/CEMF/Unimontes 62 Informática


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.

Banco de Dados 63 e-Tec Brasil/CEMF/Unimontes


Currículo do professor conteudista
Leandro 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.

e-Tec Brasil/CEMF/Unimontes 64 Informática


e-Tec Brasil/CEMF/Unimontes
Escola Técnica Aberta do Brasil