Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
internet
Sistemas de Gerenciamento de Banco de Dados
Ministrio da Educao
Coordenao Diagramao
Instituto Federal de So Paulo Juliana Ayres
Professor-autor Reviso
Matheus Franco Prof. Gustavo Aurelio Prieto e
Elizabeth Vanni
Ficha catalogrfica
Amigo(a) estudante!
O Programa apia a oferta de cursos tcnicos de nvel mdio por parte das
escolas pblicas de educao profissional federais, estaduais, municipais e, por
outro lado,a adequao da infra-estrutura de escolas pblicas estaduais e mu-
nicipais.
A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua
formao profissional e na sua caminhada no curso a distncia em que est
matriculado(a).
Indicao de cone 9
Apresentao da Disciplina 11
Referncias 87
Palavra do professor-autor
Caro aluno!
Um grande abrao!
Mdias Integradas: remete o tema para outras fontes: livros, filmes, msicas, sites,
programas de TV.
Ao final desta aula, voc aluno dever ter assimilado os conceitos fundamen-
tais sobre Banco de Dados e de Sistemas de Gerenciamento de Banco de Da-
dos, assim como os aspectos de acesso, integridade, modelagem e implemen-
tao de um banco de dados relacional.
Objetivos da aula
1.1 Introduo
Todos ns, em nosso dia a dia, temos a necessidade de armazenar e recuperar
dados. Cadernos de endereos, listas de telefones, dados
Uma soluo para este problema foi apresentada com o advento da tecnolo-
gia em Bancos de Dados (BD, Database em Ingls). Um banco de dados uma
coleo de dados relacionados. Os dados so fatos que podem ser gravados e
possuem um significado implcito. Por exemplo, considere o exemplo anterior
da ficha com dados de um aluno ou uma lista telefnica. Esses dados podem
ser armazenados em uma ficha, agenda ou no computador por meio de apli-
cativos como o Microsoft Excel ou Access. Essas informaes tm um signifi-
cado implcito, portanto formam um banco de dados.
Algumas definies mais precisas de Banco de Dados podem ser (ELMASRI &
NAVATHE, 2005):
Imagine um armrio de ao, com vrias gavetas, em cada gaveta contm algu-
ma informao (como a ficha do aluno) que esto agrupadas de acordo com
seu tipo. O armrio no caso forma de gerenciamento dos dados ali contidos,
l podemos: inserir, excluir, selecionar ou alterar algum documento que ali
contenha. Neste primeiro momento podemos pensar que um banco de dados
computacional consiste em levar os dados deste armrio de ao para o com-
putador, porm seguiremos algumas regras para que o armazenamento seja
mais eficiente.
1.2. HISTRIA
Um Banco de Dados pode apresentar diversos usurios cada qual com uma
necessidade em especial, e com um envolvimento diferente com os dados. Os
usurios podem ser classificados em categorias:
1.5. SGBD
Alguns exemplos de
1.5.1. VANTAGENS DE UM SGBD SGBDs modernos
que apresentam as
A escolha da tecnologia adequada de Banco de Dados e sua correta utilizao vantagens citadas:
trazem benefcios maioria das organizaes, tais como: MySQL, Oracle, MS
SQL Server Post-
greSQL. Para exem-
Potencial para garantir Padres: a abordagem de base de dados permite plificar nossas aulas
que o Administrador do Banco (DBA) defina e force a padronizao entre utilizaremos o SGBD
os usurios da base de dados em grandes organizaes. Isso facilita a co- MySQL, que reco-
municao e a cooperao entre vrios departamentos, projetos e usu- mendo a todos j
rios. Padres podem ser definidos para: formatos de nomes, elementos de realizarem o down-
dados, telas, relatrios, terminologias, etc. O DBA pode obrigar a padroni- load no site: http://
zao em um ambiente de base de dados centralizado, muito mais facil- www.mysql.com/
mente que em um ambiente onde cada usurio ou grupo tem o controle downloads/mysql/,
de seus prprios arquivos e software; e posteriormente
realizarem a instala-
Reduo do Tempo de Desenvolvimento de Aplicaes: um dos principais o.
argumentos de venda para o uso da abordagem de um banco de dados
o tempo reduzido para o desenvolvimento de novas aplicaes, tal como a
RESUMO DA SEMANA
Frum
Realize uma pesquisa sobre a seguinte questo: SGBDs gratuitos e pagos. Exemplos, vantagens e
desvantagens.
Atividades de aprendizagem
Para apoio comple- 1. Um conjunto de programas que apiam a criao, manuteno e opera-
mentar a esta pri- o de um banco de dados so chamadas: ________________________
meira semana sugi-
ro dois vdeos para 2. A linguagem usada para definir tabelas, esquemas e domnios de atribu-
maior contextualiza- to de dados chamada:
o:
a. ( ) linguagem de definio de armazenamento
http://www.
youtube.com/ b. ( ) linguagem de definio de banco de dados
watch?v=qgnuH_
qSI9o c. ( ) linguagem de definio de dados
a. ( ) informaes atualizadas
b. ( ) flexibilidade
c. ( ) redundncia controlada
b) ( ) vendedor do SGBD
c) ( ) todas as anteriores
e) ( ) usurios finais
________________________________________________________________
________________________________________________________________
________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Objetivos da Aula
Vamos tomar como exemplo a figura 2.1, uma agncia bancria como pai de
um relacionamento pode ter vrios clientes e um cliente pode ter vrias con-
tas, porm se um cliente pertencer a mais de uma agncia, seus dados tero
que ser replicados, o que pode causar inconsistncia e desperdcio de espao.
Vamos tomar como exemplo a figura 2.2, um equipamento pode ter vrias
bombas e motores, e estes dois podem sofrer manuteno mecnica. Assim
neste modelo perde-se a restrio hierrquica.
Vamos tomar como exemplo a figura 2.3, um aluno pode cursar vrias disci-
plinas e uma disciplina pode ser cursada por vrios alunos criando assim uma
relao muitos para muitos entre as tabelas Aluno e Disciplina.
Conjunto de Entidades: Uma entidade pode ser vista como uma pessoa,
coisa ou objeto no mundo real que distinguvel de todos os outros ob-
jetos, como por exemplo, um cliente de um banco.
2.2.1. REPRESENTAES
2.2.4. RELACIONAMENTOS
UM-PARA-UM (1 : 1):
MUITOS-PARA-MUITOS (N : M)
AUTO- RELACIONAMENTO
Para efetuar a mo- Vimos at agora o conceito de razo de cardinalidade para relacionamentos
delagem utilizando binrios. bom lembrar que os relacionamentos unrios tambm possuem
o modelo entidade este conceito. No relacionamento unrio os elementos de uma entidade se
relacionamento, relacionam a outros elementos dessa mesma entidade. Podemos verificar este
fao o download do tipo de relacionamento no exemplo abaixo:
software DIA no site
http://dia-installer.
de/index_en.html ,
nele podemos cons-
truir nossos diagra-
mas e realizarmos
a exportao para
imagens Figura 2.23: Exemplo de relacionamento unrio
RESUMO DA AULA
a. Entidade
b. Relacionamento
c. Auto-relacionamento
Um professor pode lecionar vrias disciplinas que pode ser lecionada por v-
rios professores. Um professor pode ser responsvel de diversas turmas e
cada turma tem de ter um nico professor responsvel. Cada turma tem
uma s sala onde tem as suas aulas, mas cada sala pode ter mais do que
uma turma com aulas ao longo do dia. Cada turma tem vrios alunos. Cada
aluno pertence uma e uma s turma. Cada turma pode cursar vrias dis-
ciplinas, que podem ser cursadas por turmas diferentes.
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Objetivo da aula:
3.1. Conceitos
Ao pensarmos em uma relao como uma tabela de valores, cada linha repre-
senta uma coleo de valores que esto relacionados. Esses valores podem ser
interpretados como um fato que descreve uma entidade ou uma instncia.
Utilizamos o nome da tabela e os nomes das colunas para nos ajudar a inter-
pretar o significado dos valores em cada linha da tabela, que so na verdade,
dados a respeito dos dados, chamados metadados.
Como exemplo vamos observar a figura 3.1, a primeira tabela chamada ALU-
NO porque cada linha representa fatos sobre uma entidade aluno em particu-
lar. Os nomes das colunas - Nome, Nmero, Turma, Departamento - especifi-
cam como interpretar os valores em cada linha baseando-se nas colunas que
cada valor se encontra
Uma coluna de dados possui um tipo de dado que descreve os valores que
podem aparecer nela, por exemplo, na coluna NMERO de um aluno espera-
mos um valor numrico como 17, 18 e no caracteres, este tipo de dado que
especifica os possveis valores de uma coluna chamada de domnio.
Assim, de acordo com nosso exemplo de domnio para a tabela ALUNO, o que
esperamos obter em uma linha (tupla), o conjunto de valores dos atributos
para um determinado estudante. Por exemplo, existe um aluno de nome Smi-
th, seu nmero 17, sua turma 1 e seu departamento CC.
Uma relao definida como um conjunto de tuplas. Por padro, todos os ele-
mentos de um conjunto devem ser distintos. Assim, todas as tuplas de uma
relao tambm so distintas. Isto significa que nenhuma tupla pode ter a
mesma combinao de valores para todos os seus atributos. Desta maneira,
temos que ter um valor que chamamos de atributo-chave que utilizado para
identificar de modo unvoco uma tupla em uma relao.
Vamos voltar figura 3.1, nela podemos verificar que o Nr 18 da relao ALU-
NO serve para identificar o aluno Brown
Geralmente, um esquema de relao pode ter mais que uma chave. Nos casos
em que isto ocorra, cada chave chamada chave-candidata. Por exemplo, o
esquema da relao ALUNO poderia ter um atributo adicional Cdigo, para in-
dicar o cdigo interno de alunos na escola. Assim, o esquema teria duas chaves
candidatas: Nr e Cdigo.
Como podemos verificar na figura 3.5, apenas a chave primria de uma tabela
deve ser repetida em outra tabela. o que acontece no esquema relacional
apresentado. A chave primria de FUNCIONARIO est representada na tabela
DEPENDENTE e a chave primria da tabela SETOR est representada na tabela
FUNCIONARIO, como chave estrangeira. Desta maneira, podemos saber, por
exemplo, qual o SETOR de um funcionrio (atravs do atributo Setor) ou quais
dependentes possui um FUNCIONARIO atravs do atributo CPF_Funcionario.
3.5. MAPEAMENTO
Agora, veremos como traduzir um DER para um esquema MRel. Para isto utili-
zaremos um conjunto de passos para que possamos implementar nosso ban-
co de dados em um SGBD Relacional.
Passo 1: Mapeamento dos tipos de entidades: Consiste na criao de uma re- O livro texto
lao que inclua todos os atributos de uma entidade. Assim, as entidades do deste cader-
MER so transformadas em tabelas no MRel. O atributo chave da entidade pas- no - ELMASRI &
sa a ser a chave primria da relao (tabela). Vejamos um exemplo na figura 3.9. NAVATHE, 2005
- descreve to-
das as extenses
Desta maneira, poderamos ter as seguintes tabelas no banco de dados que foi
mapeado a partir do diagrama apresentado na figura 3.14:
Fonte: Elaborado pelo autor
Nosso exemplo apresentado na figura 3.15 acima representa uma relao onde
um PROJETO pode ter vrios funcionrios trabalhando e um funcionrio pode
trabalhar em vrios projetos. No mapeamento deste relacionamento foi criada
a relao FUNCIONARIO_PROJETO. Esta relao contm os atributos do rela-
cionamento (no caso Data_Inicio) e as chaves primrias das relaes FUNCIO-
NARIO e PROJETO (Cod_Funcionario e Cod_Projeto) como chave estrangeira.
RESUMO DA AULA
ATIVIDADES DE APRENDIZAGEM
1. Defina os conceitos de:
a. Chave-primria;
b. Chave-composta;
d. Integridade referencial.
________________________________________________________________
________________________________________________________________
________________________________________________________________
a.
b.
c.
d.
Objetivo:
4.1. MySQL
Vamos analisar a figura 4.2, no MER podemos ver que possumos duas entida-
des que possuem dois relacionamentos, um relacionamento 1:N e outro 1:1,
seguindo nossos passos para mapeamento foram geradas as trs tabelas apre-
sentadas.
SHOW DATABASES;
Podemos visualizar na figura 4.6 que nosso banco de dados exemplo foi real-
mente criado, os outros bancos que aparecem so de estruturas internas ou
exemplos do MySQL.
O prximo passo ser a criao das tabelas de nosso banco de dados. Antes
disso devemos dizer que nosso banco de dados deve ser utilizado para a cria-
o de nossas tabelas. Vamos executar o seguinte comando:
USE exemplo;
1. Tipos numricos
2. Tipos de Data
3. Tipos de Cadeia
TIPOS NUMRICOS:
Existem tipos de dados numricos, que se podem dividir em dois grandes gru-
pos, os que esto em vrgula flutuante (com decimais) e os que no (inteiros)
como j viram anteriormente na disciplina de algoritmos.
TinyInt: um nmero inteiro com ou sem sinal. Com sinal a margem de valores
vlidos desde -128 at 127. Sem signo, a margem de valores de 0 at 255.
SmallInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores
vlidos desde -32768 at 32767. Sem signo, a margem de valores de 0 at
65535.
Integer, Int: nmero inteiro com ou sem sinal. Com sinal a margem de valores
vlidos desde -2147483648 at 2147483647. Sem signo, a margem de valo-
res de 0 at 429.496.295
BigInt: nmero inteiro com ou sem sinal. Com sinal a margem de valores v-
lidos desde -9.223.372.036.854.775.808 at 9.223.372.036.854.775.807. Sem
signo, a margem de valores de 0 at 18.446.744.073.709.551.615.
TIPOS DATA:
Para armazenar datas, o MySQL verifica se o ms est compreendido entre 0 e
12 e que o dia est compreendido entre 0 e 31.
Date: tipo data armazena uma data. A margem de valores vai desde o 1 de
Janeiro de 1001 ao 31 de dezembro de 9999. O formato de armazenamento
de ano-mes-dia.
Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minu-
tos e 59 segundos. O formato de armazenamento HH:MM:SS.
TIPOS DE CADEIA:
Char(n): armazena uma cadeia de longitude fixa. A cadeia poder conter desde
0 at 255 caracteres.
A partir dos tipos de dados bsicos que acabamos de conhecer, vamos cons-
truo de nossa tabela. Vamos voltar a nossa instruo bsica para a criao
de tabelas:
Para criarmos nossa tabela SETOR vamos utilizar ento a seguinte instruo:
Para visualizarmos as tabelas que nosso banco de dados possui, basta utili-
zarmos o comando SHOW TABLES. Para visualizarmos a estrutura da tabela,
devemos utilizar o comando DESCRIBE <nome_tabela>.
Agora vamos dar sequncia na criao de nossas tabelas. Temos que criar as
tabelas FUNCIONARIO e GERENTE_SETOR. Vamos criar a tabela FUNCIONARIO.
Nesta tabela teremos que implementar uma chave primria (CPF) e uma cha-
ve estrangeira (Setor_Trabalha). Vejamos o dicionrio de dados para a tabela
FUNCIONARIO.
Podemos observar na figura 4.10 que o tipo de dado para o campo CPF Bi-
gInt, isto se fez necessrio pois o tipo inteiro no comportaria o CPF de uma
pessoa, pois possui 11 dgitos.
Podemos observar na figura 4.12 que a chave primria desta relao uma
chave composta por dois atributos (Cod_Setor e Cod_Funcionario), e esta ta-
bela tambm possui duas chaves estrangeiras. Observe tambm que o campo
Cod_Funcionario do tipo BIgInt pois o campo a qual ele se relaciona deste
tipo (CPF).
DataInicio DATE,
);
Figura 4.13: Resultado da execuo das instrues para criao da tabela GERENTE_SETOR
Agora vamos ver todas nossas tabelas criadas. Qual comando devemos utilizar?
E para ver a estrutura das tabelas? Vejamos na figura 4.14
Uma tabela pode ser modificada devido a alguma necessidade que surja aps
sua criao. Podemos adicionar um campo, alterar a chave primria ou at
mesmo modificar a estrutura. O comando utilizado o ALTER TABLE <tabela>
<operao>;
Para vermos a alterao da tabela com o novo campo vamos utilizar o coman-
do DESCRIBE.
Por algum motivo pode ser necessrio excluir uma tabela criada, para isto de-
vemos utilizar a instruo DROP TABLE <nome_tabela>. Se fosse necessrio
removermos a tabela FUNCIONARIO do banco de dados EXEMPLO, usamos o
comando DROP:
RESUMO DA AULA
Envie os dicionrios de dados de cada uma das tabelas, bem como as ins-
trues necessrias para criao deste banco de dados.
Objetivos:
A partir do momento em que uma tabela est pronta, ela j pode receber da-
dos. Vejamos a sintaxe da instruo INSERT INTO que utilizada para insero
de dados em uma tabela.
A partir do exemplo que acabamos de ver acima vamos inserir mais dois regis-
tros em nossa tabela setor.
Podemos observar na figura 5.2, que tentamos incluir o setor Recepo, com o
mesmo Cdigo do setor Financeiro, assim nos foi apresentado o erro: Duplica-
Agora que nossa tabela SETOR possui dados, insira voc, dados nas tabelas
FUNCIONARIO e GERENTE_SETOR.
5.2.1. DATAS
Tambm podemos observar na figura 5.11 a listagem dos registros aps a re-
moo do setor cujo Cod_Setor=2.
Podemos observar na figura 5.12 a listagem dos registros da tabela SETOR an-
tes e depois da alterao da localizao do setor 1.
RESUMO DA AULA
a. INSERT INTO:
b. SHOW TABLE:
c. SELECT FROM:
d. UPDADE SET:
e. DELETE FROM:
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
f. Faa uma seleo utilizando a juno de tabelas onde dever ser apresen-
tado o nome do aluno e a descrio de sua turma.
Objetivos