Upload
cloudsidea
View
2.007
Download
0
Embed Size (px)
Citation preview
1
Introdução às bases de dados
O que são? Que utilidade têm?
2
Uma definição de base de dados
Uma base de dados é uma colecção de dados relacionados entre si que pode ser estruturada de várias formas, de modo a corresponder às necessidades de processamento e consulta dos seus utilizadores.
De uma forma simples podemos definir uma base de dados como sendo uma colecção de dados, como por exemplo os endereços de alunos, a informação do inventário de uma escola, as referências dos livros de uma biblioteca, etc.
3
Exemplo: agenda telefónica
Nome Morada Telefone fixo Telefone móvel Data de
nascimento Foto
4
Outro exemplo: colecção de CD áudio
Título Intérprete Tipo de música Data de aquisição Modo de aquisição Faixas
N.º da faixa Título Duração
Um aspecto importante: cada CD tem apenas um título, mas várias faixas. Isto vai ser muito importante quando, daqui a pouco, começares a conceber as tuas bases de dados.
5
Outro exemplo: fichas de um médico Nome do paciente Data de nascimento Sexo Morada Contacto telefónico Profissão Consultas
Data Notas Medicação receitada
Designação do medicamento
Número de embalagens
Posologia
Nota agora que um paciente pode ir a várias consultas. E em cada consulta podem ser receitados vários medicamentos. E cada medicamento tem a sua designação, a sua posologia, etc. Esta base de dados é mais complexa do que as anteriores...
6
Que operações se podem efectuar sobre os dados?
Exemplo da agenda telefónica: Inserções – para quando queres guardar os dados de um novo amigo;
Consultas – através de perguntas como “Qual é o número de telefone da Luísa?” ou “Em que dia e mês faz anos o Diogo?”;
Alterações – necessárias, por exemplo, quando alguém muda de casa;
Eliminações – para quando queres eliminar alguém da lista (por razões que só a ti dizem respeito, claro!)
7
Ficheiros de uma base de dados são constituídos por um conjunto de
registos, estruturados em campos
Ex: conjunto de fichas em que cada ficha corresponde a um registo de uma entidade (pessoa, organização, produto) e cada registo contém um determinado conjunto de informação – campos (ex: morada, telefone, tipo)
8
O que é um SGBD?
Um conjunto de programas que permitem ao utilizador
executar operações como inserções, eliminações,
consultas e alterações sobre o conteúdo dos ficheiros
de dados, além de permitir controlar a integridade e a
segurança desses dados, é um Sistema de Gestão
de Bases de Dados.
9
Modelos de bases de dados
10
Modelos de bases de dados No Excel uma base de dados consiste
numa tabela- as linhas correspondem aos registos
- as colunas correspondem aos campos
O Excel só pode manipular bases de dados do tipo monotabela (a informação assume a forma de uma simples tabela)
Os sistemas de bases de dados monotabela são bastante limitativos
11
Exemplouma empresa que comercializa um conjunto de artigos pretendecriar uma base de dados para registar esses artigos, bem como asencomendas efectuadas pelos seus clientes, em relação aos quaisse pretende ter registados os dados habituais (nome, endereço,telefone, etc)
Cliente Endereço Telef/fax Produto Modelo Preço Data_enc Quant
Silva Lisboa 665544 Alicate A1 400 04/05/05 400
Santos porto 554466 Martelo M1 250 04/05/05 200
Costa Lisboa 335566 Alicate A1 400 04/05/05 150
Silva Lisboa 665544 Tesoura T1 150 05/06/05 220
Para registar numa única tabela as encomendas dos clientes teríamos que ter várias linhas para o mesmo cliente
Mono tabela
Monotabela
Cliente Endereço Telef/fax Produto Modelo
repete Silva Lisboa 665544 Alicate A1
Santos porto 554466 Martelo M1
Costa Lisboa 335566 Alicate A1
repete Silva Lisboa 665544 Tesoura T1
Nesta tabela os dados dos clientes repetem-se (cliente, endereço e telef/fax)
15
Bases de dados monotabela Base de dados sobre CD áudio.
Título Intérprete Data de
aquisição
Modo de
aquisição
Número da
faixa
Título da faixa
Duração da faixa
20 anos depois
Rui Veloso Setembro de 2000 Prenda de aniversário 1 Chico Fininho 2:31
20 anos depois
Rui Veloso Setembro de 2000 Prenda de aniversário 2 Sei de uma camponesa
3:07
20 anos depois
Rui Veloso Setembro de 2000 Prenda de aniversário 3 Um café e um bagaço
3:34
20 anos depois
Rui Veloso Setembro de 2000 Prenda de aniversário 4 Estrela do rock’n’roll 4:16
… … … … … … …
16
Bases de dados monotabela
Composta por uma única tabela. Cada coluna possui uma designação que a identifica (“Título”,
“Intérprete”, etc). Cada tabela tem “N” linhas.
Mas, para vários CD, fica muito grande! E com dados repetidos desnecessariamente! Apetece-me espremê-la!
De facto, este modelo possui vários problemas, tais como:
17
Redundância de dados
A redundância dos dados (excesso)
Título do CD e o nome do intérprete são
repetidos sem necessidade;
18
Dificuldades na manutenção
Dificuldade na sua manutenção
Qualquer alteração a um dado repetido teria
de ser feita em todas as ocorrências do dado.
19
Integridade dos dados
Dificuldade na manutenção da
integridade
Basta um engano na alteração de um dado
para comprometer a integridade desse
mesmo dado.
20
Monotabelas
Solução?
Número da
Faixa
Título da faixa
Duração da faixa
1 Chico Fininho 2:31
2 Sei de uma camponesa 3:07
3 Um café e um bagaço 3:34
4 Estrela do rock’n’roll 4:16
1 Love me tender 3:12
12 New York 4:16
Dividir a tabela em várias e relacioná-las
Título Intérprete Data de
aquisição
Modo de
aquisição20 anos depois
Rui Veloso Setembro de 2000 Prenda de aniversário
Memphis Elvis Presley Agosto de 1995 Compra Internet
Best Of Frank Sinatra
Setembro de 2005 Prenda de Natal
21
No exemplo da empresa
3 tabelas- para registar a informação do cliente
- para registar a informação dos artigos- para registar as encomendas
22
Tabela clientes
Cod-cliente nomecliente endereço Telef/fax
Tabela produtos
Cod_produto Produto Modelo Preço
Tabela Encomendas
Cod_cliente Cod_produto Data_enc Quant
Neste caso a tabela encomendas reflecte um relacionamento existente entre as outras duas entidades (clientes e produtos)
23
Tabelas
No modelo relacional utilizam-se tabelas para guardar os
dados. Cada linha contendo dados tem o nome de registo.
A cada coluna é dado o nome de campo.
Título IntérpreteData de
aquisiçãoModo de aquisição
20 Anos Depois
Rui Veloso 8-9-2000Prenda de aniversário
Registo
Campo
24
Bases de dados relacionais
Quando as relações são causas de algumas ralações...
25
Como são?
As bases de dados relacionais são constituídas por uma ou
mais tabelas relacionadas entre si.
Mas que tabelas? Relacionadas
como? Não estou a perceber nada!
26
Três passos
Para construir uma base de dados podemos seguir três passos:
1. Definir o objectivo da base de dados – é para guardar o quê?
2. Definir o conteúdo da base de dados através de um diagrama E-R
3. Obter as tabelas da base de dados relacional. Ou seja, um
conjunto de tabelas relacionadas entre si através de campos comuns.
Turmas
Código de turmaAno da turma
Turmas e professores
Código da turmaCódigo do professor
Professores
Código de professorNome do professor
27
Primeiro passo
O que é que se pretende guardar na base de dados?
28
Entidades e atributos (1/5)
Para conceber uma base de dados, é necessário começar
por pensar:
Qual é o tema da base de dados?
Que dados vai conter?
29
Entidades e atributos (2/5)
Antes de pensar em tabelas é necessário desenhar em termos
lógicos a BD. Para isso é preciso introduzir os conceitos de
entidade e de atributo.
Uma entidade é algo (objectos, pessoas,
acontecimentos) sobre o qual queremos guardar dados que
lhes dizem respeito, dados esses que são classificados por
atributos.
Exemplos?
30
Entidades e atributosA entidade Pode ter como atributos
Aluno o seu número
o seu nome
a sua morada
o seu telefone
a sua idade
Turma o seu código
a sua descrição
o seu ano
Sócio de um clube
o número de sócio
o seu nome
a sua morada
o seu número de BI
A entidade Pode ter como atributos
DVD o seu número
o seu título
a data da gravação
uma descrição do seu conteúdo
Automóvel a sua matrícula
a sua marca
o seu modelo
o n.º do livrete
Avaria no automóvel
matrícula do automóvel
descrição da avaria
data da entrada na oficina
31
Entidades e atributos
Por vezes, alguns atributos
podem ou devem ser
decompostos noutros
atributos que já não podem
ser mais divididos,
denominados atributos
atómicos.
O atributo inicial
é decomposto nos atributos atómicos
Morada Rua
Nº da porta
Código postal
Localidade
Código postal Código
Localidade
Nome Nomes próprios
Apelido
Data Ano
Mês
Dia
Exemplos?
32
Exercício
Indique o nome de 3 entidades e seus atributos (cinco pelo menos).
Preencha com 15 registos uma das tabelas
Guarde o seu trabalho ficheiro xls com o nome entidades e atributos
33
Entidades e atributos (5/5)
Exemplos:
Classificação de final de período a uma disciplina –
0 a 20 (número)
Data de Nascimento – 01/01/1970 (data)
Idade – 0 a 110 (número)
Telefone – 2?? ??? ??? (texto)
Ao conjunto de valores que um atributo pode tomar dá-se o nome de domínio.
34
Segundo passo
Relações fortes...
35
Relações entre entidadesEntre as entidades de uma base de dados tem de haver relações.
Entre as entidades aluno e turma existe uma relação: a turma possui
alunos;
Entre as entidades sócio do clube de vídeo e DVD existe uma relação:
sócios requisitam DVD;
Entre as entidades filme e actores existe uma relação: os filmes são
interpretados por actores;
Entre as entidades automóvel e avaria existe uma relação: automóveis
têm avarias;
Entre as entidades CD áudio e faixa existe uma relação: CD áudio são
compostos por faixas
36
Diagramas E-R (Entidade-Relação)
Para isso, terás que saber como de concebe um diagrama E-R, ou seja, um
esquema que mostra as entidades e as relações entre elas.
CD
são interpretados por
são compostos por
Intérpretes Faixas
Título
Intérprete
tipo de música
ano de edição
modo de aquisição
data de aquisição
notas
Nome
Data de nascimento
Foto
País
NotasTítulo
Duração
Número de faixa
Cidade
Número de CD
Número de intérprete
Número de faixa
Atributo chave
37
Diagramas E-R (Entidade-Relação)
Entidade Relação
Atributo
Para conceber um diagrama destes, basta pensar quais são:
- as entidades
- as relações que existem entre elas
- os atributos de cada entidade
- qual é a chave de cada entidade (o que identifica a entidade inequivocamente)
e representar esses objectos graficamente através da forma devida:
(Sem dúvidas)
38
Exercício Para as entidades
livro e utilizador_da_biblioteca Restaurante e cliente Filme e realizador
defina os respectivos atributos, a chave e crie um diagrama do tipo E-R
Grave num .DOC com o nome diagrama E-R
39
Entidades e tabelas E porque temos falado tanto de relações, em que medida se relacionam
as entidades e os atributos com as tabelas e os campos?
Eu sabia que isto estava tudo relacionado! Só ainda continuo sem perceber como...
Pois bem, se identificares bem entidades, as relações entre elas e os seus
atributos, será depois muito fácil obter as tabelas e os campos que vão
compor a base de dados.
40
Entidade = Tabela Atributos = Campos Elementos da Entidade = Registos
(cada linha da tabela)
Os campos de uma entidade devem ser valores elementares e não conjuntos de valores
41
Campos-chave (1/9)
Uma das regras da constituição de tabelas no modelo
relacional, determina que cada registo deve ser único.
Como identificar, um registo de uma tabela?
O modelo relacional utiliza um mecanismo de chaves.
As chaves não são mais do que um ou vários
campos da tabela.
42
Campos-chave (2/9)
Todos os campos, que não possuem
valores repetidos nem nulos, e
identificam um registo de forma
unívoca, tomam o nome de chave
primária.
43
Campos-chave (3/9)
Regras para ser chave primária:
Não ter valores nulos;
Não existir repetição de valores;
44
Campos-chave (4/9)
Qual a chave primária?
CD
Título Intérprete Data de aquisição Modo de aquisição
Best Of Brian Adams Julho 1995 Prenda de Natal
20 anos depois Rui Veloso Setembro de 2000 Prenda de aniversário
Memphis Elvis Presley Agosto de 1995 Compra Internet
Best Of Frank Sinatra Setembro de 2005
Best Of Cranberries Setembro de 2005 Prenda de Natal
45
Campos-chave (5/9)
Quando existem problemas na escolha das chaves, existem duas soluções possíveis,
das quais devemos escolher a mais adequada a cada situação concreta:
1. Escolher não apenas um campo, mas um conjunto de campos
para chave e assim formarmos uma chave composta.
1. Criar um novo campo para desempenhar o papel de campo-chave,
garantindo nós que nunca terá conteúdos repetidos nem nulos.
Normalmente cria-se um novo campo (artificial), numerado
automáticamente, sem repetição de valores
46
Campos-chave (6/9)
Título Intérprete Data de aquisição Modo de aquisição
20 Anos Depois
Do Lado dos Cisnes
Rui Veloso
GNR
8/9/2000
24/12/2002 Prenda de Natal
Prenda de aniversário
Campos-chave – chave composta
Número do CD
Título Intérprete Data de aquisição Modo de aquisição
1
2
20 Anos Depois
Do Lado dos Cisnes
Rui Veloso
GNR
8/9/2000
24/12/2002 Prenda de Natal
Prenda de aniversário
Campo-chave
2 soluções…
47
Campos-chave (7/9)
1ª solução: chave composta - Título e o Intérprete. Evita-se
assim a possibilidade de repetições, já que é muito pouco provável
que um mesmo intérprete lance dois CD com o mesmo título.
Pouco provável, mas não impossível... Os quatro primeiros álbuns
de Peter Gabriel tinham o seu nome como título.
CD
Título Intérprete Data
de aquisição
Modo de
aquisição
Peter Gabriel Peter Gabriel ... ...
Peter Gabriel Peter Gabriel ... ...
48
Campos-chave (8/9)
2ª solução: numerar os CD (campo Número do CD) e garantir a não
existência de CD com números idênticos e nulos.
CD
Número do CD Título Intérprete Datade
aquisição
Modode
aquisição
1 Best of Brian Adams ... ...
2 Best Of Cranberries ... ...
É esta a solução mais usada nas bases de dados. É por isso que tens um número de BI, um número de aluno, um número de sócio...
49
Exemplo considerando os campos da entidade aluno (nome,
idade, ano, morada, telefone)
Idade, ano, morada, telefone não podem servir de CHAVE pois existem pessoas que podem ter a mesma idade, estar no mesmo ano ou morar na mesma casa.
Quanto ao nome, a possibilidade de existirem 2 pessoas com o mesmo nome é muito reduzido, mesmo assim, nada garante que isso não aconteça.
Para evitar essa situação é comum recorrer-se a um campo artificial, por ex, nº de processo do aluno, código do produto, etc.
50
Campos-chave (9/9)
Quando adicionamos um campo a uma tabela apenas para que ele
seja chave, ele toma o nome de chave derivada.
Se a escolha para chave vier dos campos já existentes na tabela, essa
chave tomará o nome de chave natural.
Qual destes casos foi o do
campo Número do CD?
51
Entidades e tabelas (de novo...)
Ainda falta mais uma coisinha : conhecer os tipos de
relações que existem entre as entidades.
Mas isso é fácil, acredita em mim!
52
Tipos de relações
Ainda bem que aqui não há ciúmes...
53
Numa primeira análise...
As entidades têm relações entre si. Nas bases
de dados relacionais, são três os tipos de
relações entre entidades:
1 para 1
1 para N
N para N.
54
Relações do tipo “1 para 1” (1/2)
É um tipo de relação pouco comum. Como exemplos, temos:
A relação entre a tabela de turmas de uma escola e a tabela
dos delegados de cada turma. Cada turma tem um
representante (1:1).
A relação entre um professor e uma turma numa escola
primária: cada professor tem a sua turma (1:1).
55
Relações do tipo “1 para 1” (2/2)
Num diagrama E-R, colocamos os “1” dos lados esquerdo e direito da relação:
RepresentanteTurma tem um1 1
56
Relações do tipo “1 para N” (1/2)
É o tipo de relação mais frequente, da qual são exemplos:
Uma colecção de CD áudio, em que cada CD tem um título e uma data de
aquisição, mas várias faixas (1:N);
Uma biblioteca, em que cada colecção tem um título mas vários volumes
(1:N);
Uma turma com uma designação, mas vários alunos (1:N);
Um torneio de futebol com uma dada designação, mas várias equipas
(1:N);
Um automóvel com várias idas à oficina (1:N);
Um clube de vídeo, em que um filme pode ter vários DVD ou cassetes
(1:N).
57
Relações do tipo “1 para N” (2/2)
Num diagrama E-R, colocamos o “1” e o “N” dos lados esquerdo e direito da relação:
CDé
composto por
Faixas1 N
58
Relações do tipo “N para N” (1/2)
São exemplos:
A relação entre disciplinas e alunos de uma escola: cada
aluno frequenta aulas de várias disciplinas e cada disciplina tem
vários alunos nela inscritos (N alunos: N disciplinas);
A relação entre livros e sócios de uma biblioteca: um sócio
pode requisitar vários livros da biblioteca, podendo esse mesmo
livro ser requisitado por diferentes sócios (N livros: N sócios).
59
Relações do tipo “N para N” (2/2)
Num diagrama E-R, colocamos o “N” e o “N” dos lados esquerdo e direito da relação:
Sócios Requisitam
Livros
N N
60
Proposta de trabalho Indique dois exemplos para cada uma das
seguintes relações entre entidades 1 para 1 1 para n n para n
Grave num xls com o nome relações.xls
61
Uma nota
Embora estejamos a falar de relações entre
entidades, é das entidades do diagrama E-R
que vão surgir as tabelas da base de dados.
62
Na base de dados relacional Cada tabela tem um nome único dentro da base de dados e
corresponde a uma entidade ou relacionamento entre entidades.
Cada coluna, ou campo, tem um nome único dentro da tabela, mas podem existir campos com o mesmo nome noutra tabela da mesma base de dados
Cada campo só pode ter um valor dentro de um registo
cada linha corresponde a um registo
as várias linhas podem conter dados repetidos em alguns campos mas não podem existir duas linhas iguais.
a ordem das linhas e das colunas pode ser alterada em qualquer momento.
63
Na base de dados relacional Regras
Numa base de dados não podem existir duas tabelas com o mesmo nome
Numa tabela não podem existir campos com o mesmo nome
Não devem existir campos vazios. Se existir este campo não pode ser utilizado como chave
Só é permitido atribuir um valor em cada campo, por registo
Cada linha da tabela representa uma entidade, ou ocorrência única, por isso não podem existir linhas duplicadas
64
Exercício:Violações a estas regras, identifique-as
Nº nome Disciplinas
101 Abel Port;Mat
201 Ana Port;Ing;Mat
301 Rui Ing;Mat
310 Sandra Port;Ing;Fran
Nº nome Disciplina Disciplina2
101 Abel Port Mat
201 Ana Port Ing
220 Rui Ing Mat
201 Ana Port Ing
310 Sandra Ing Mat
Nº nome Disciplina Disciplina
101 Abel Port Mat
201 Ana Port Ing
220 Rui Ing Mat
201 Ana Port Fran
310 Sandra Ing Mat
65
TABELAS DE RELACIONAMENTO OU DE RELAÇÃO
Chave de uma tabela: campo ou conjunto de campos que conseguem identificar de forma única cada registo da tabela
A chave deve respeitar as seguintes regras: ser unívoca = o valor ser único em cada registo não nula = não podem existir valores nulos
Já vimos que:
66
TABELAS DE RELACIONAMENTO OU DE RELAÇÃO
Para estabelecer relações entre tabelas é necessário criar uma tabela de relacionamento
A tabela de relacionamento deve incluir, entre os seus campos, as chaves das tabelas que entram no relacionamento. Neste caso as chaves chama-se
externas.
67
TABELAS DE RELACIONAMENTO OU DE RELAÇÃO
Temos portanto 4 tipos de chaves:
Primária Composta (2 ou mais)
Derivada (campo artificial)
Externa (chaves das tabelas que entram no relacionamento)
68
FASES DE UM PROJECTO DE CRIAÇÃO DE UMA BASE DE DADOS
Definir cada entidade (tabela) enumerando os seus atributos (campos) e identificando os campos chave
Definir a tabela de relacionamentos
Determinar os relacionamentos entre as diferentes entidades (tabelas)
69
Como os SGBD (sistemas de gestão
de bases de dados) não conseguem
desenvolver relações de n para n,
tem que se criar uma 3ª tabela de
relacionamentos e assim ter
relação 1 para 1
70
Alunos
Codaluno
Nomealuno
Morada
telefone
Disciplinasinscritas
Codaluno
codisciplina
Disciplinas
Nomedisciplina
Anodisciplina
codisciplina
Cod aluno nome morada telefone Disciplinas
101 Abel Aveiro 222222 Port;Mat
201 Ana Aveiro 111111 Port;Ing;Mat
301 Rui Ílhavo 333333 Ing;Mat
310 Sandra Vagos 444444 Port;Ing;Fran