1 bases de dados relacionais. 2 como são? as bases de dados relacionais são constituídas por uma...

43
1 Bases de dados relacionais

Upload: milton-olivares-nunes

Post on 07-Apr-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

1

Bases de dados relacionais

Page 2: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

2

Como são?

As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si.

Page 3: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

3

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ê? Dados

de alunos, de professores, de DVD, de receitas de cozinha, de uma colecção de selos,...

2. Definir o conteúdo da base de dados e descrevê-lo num 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.

TurmasCódigo de turmaAno da turma

Turmas e professores

Código da turmaCódigo do professor

ProfessoresCódigo de professorNome do professor

Page 4: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

4

Primeiro passo

O que é que se pretende guardar na base de dados?

Page 5: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

5

Entidades e atributos (1/3)

Para conceber uma base de dados, é necessário começar por pensar:

Qual é o tema da base de dados?

Que dados vai conter?

Page 6: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

6

Entidades e atributos (2/3)

Para a escolha das tabelas a criar e dos seus conteúdos é conveniente ficar com uma ideia dos 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 de Entidades: Aluno, Professor, Disciplina, exame. Atributos consistem nas características de uma entidade. Exemplos de atributos para a

entidade aluno, os seus atributos poderão ser: número, nome, idade, morada, etc.

Page 7: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

7

Entidades e atributos (3/3)

A entidade Pode ter como atributos

Aluno

o seu número

o seu nome

a sua morada

o ano que frequenta

a turma a que pertence

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

o seu modelo

o n.º do livrete

o nome do seu dono

Avaria no automóvel

matrícula do automóvel

descrição da avaria

data da entrada na oficina

Page 8: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

8

Segundo passo

Definir as relações/associações entre as entidades.

Page 9: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

9

Associações

As associações representam a forma como as entidades se relacionam entre si.

Esta fase termina com a elaboração gráfica que modeliza o sistema, o Diagrama de Entidade e Associações (D.E.A.).

Existem três tipos de associações: Associações Unárias Associações Binárias Associações Complexas ou ternárias

Page 10: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

10

Tipos de associações

Associações Unárias Este tipo de associação é caracterizada pela relação entre uma

entidade e ela própria.

Associações Binárias Este tipo de associação é caracterizada quando de alguma forma

duas entidades se relacionam entre si.

Associações Complexas ou ternárias Este tipo de associação é caracterizada pela relação existente

entre mais do que duas entidades.

Page 11: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

11

Relações entre entidades

Entre as entidades de uma base de dados tem de haver relações.

Exemplos: 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.

Page 12: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

12

Entidades e tabelas

Em que medida se relacionam as entidades e os atributos com as tabelas e os campos?

Se identificarmos bem as entidades, as relações entre elas e os seus atributos, será muito fácil obter as tabelas e os campos que vão compor a base de dados

Page 13: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

13

Modelo de dados

Modelos Lógicos baseados em Objectos

Utilizados na descrição dos dados ao nível conceptual e ao nível de visualização

DIAGRAMA ENTIDADE ASSOCIAÇÃO (DEA) O modelo de dados ER é baseado na percepção de que o mundo real é

constituído por dois tipos de objectos: ENTIDADES: podem representar pessoas (funcionários,

alunos, ...), organizações (escolas, empresas,...), coisas (livros, Cd’s,...)

RELACIONAMENTO: Relações entre as várias entidades.

Page 14: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

14

Diagramas E-A (Entidade-Associação)

O diagrama E-A é um esquema que mostra as entidades e as relações entre elas.

Page 15: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

15

Diagramas E-A (Entidade-Associação)

Entidade Relação Atributo

Para concebermos um diagrama destes, basta pensarmos quais são:

- as entidades

- as relações que existem entre elas

- os atributos de cada entidade

- qual é a chave de cada entidade

e representar esses objectos graficamente através da forma devida:

Atributo chave

Page 16: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

16

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

Page 17: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

17

Tipos de relações

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 e N para M.

Page 18: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

18

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

Page 19: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

19

Relações do tipo “1 para N” (2/2)

Num diagrama E-A, colocamos o “1” e o “N” dos lados esquerdo e direito da relação:

CDé

composto por

Faixas1 N

Page 20: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

20

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 representantes de cada turma a um concurso da escola. 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).

Page 21: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

21

Relações do tipo “1 para 1” (2/2)

Num diagrama E-A, colocamos os “1” dos lados esquerdo e direito da relação:

RepresentanteTurma tem um

1 1

Page 22: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

22

Relações do tipo “M 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 (M 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 (M livros: N sócios).

Page 23: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

23

Relações do tipo “M para N” (2/2)

Num diagrama E-A, colocamos o “M” e o “N” dos lados esquerdo e direito da relação:

Sócios Requisitam Livros

M N

Page 24: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

24

Uma nota

Embora estejamos a falar de relações entre entidades, é das entidades do diagrama E-A que vão surgir as tabelas da base de dados.

E as relações entre as entidades vão ditar as tabelas.

Page 25: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

25

Relação 1:N

Imagina o caso de uma base de dados com as turmas de uma escola e os seus alunos;

trata-se de uma relação 1:N entre as entidades Turma e Alunos, já que cada turma possui “N” alunos.

Page 26: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

26

Regra de passagem do diagrama E-A para tabelas relacionadas

Numa relação 1:N, é necessária a criação de duas tabelas correspondentes às duas entidades e em que a chave da entidade “do lado 1” tem de aparecer na tabela “do lado N”.

Turma composta por

Alunos

Código Ano Número Nome Morada

Turmas

Código da turmaAno

Alunos

Código da turmaNúmero do alunoNome Morada

1 N

Chave externa

Page 27: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

27

Relação 1:1

Supõe que na tua escola se organiza um torneio de futebol em que:- todas as turmas têm de participar com uma equipa;- cada turma tem de ter um professor de Educação Física para treinador;- cada professor só treina a equipa de uma turma;A relação entre as turmas e os professores de educação física é de 1:1

Page 28: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

28

Regra de passagem do diagrama E-A para tabelas relacionadas

Numa relação 1:1, é recomendável a criação de uma única tabela em que a chave pode ser qualquer das chaves das entidades envolvidas.

Turmas e professores

Código da turmaAno da turmaCódigo do professorNome do professor

Turma treinada por

Professor

CódigoAno

Código Nome

1 1

Page 29: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

29

Relação M:N

Supõe o caso, comum entre os professores das disciplinas de Informática, em que cada professor pode leccionar mais do que uma disciplina e cada disciplina é leccionada por vários professores. É uma relação M:N.

Page 30: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

30

Regra de passagem do diagrama E-A para tabelas relacionadas

Numa relação M:N, é necessária a criação de três tabelas: duas correspondentes a cada uma das duas entidades e uma terceira, de ligação entre as duas, composta pelas chaves de ambas.

Professor lecciona Disciplina

CódigoNome

Código DesignaçãoAno

Professores

Código de professorNome

Professores/Disciplinas

Código de professorCódigo de disciplina

Disciplina

Código de disciplinaAnoDesignação

N N

Page 31: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

31

Para resumir isto tudo

RelaçãoNúmero

de tabelas

Comentário

1 A chave primária pode ser a chave de qualquer das entidades.

2A chave da tabela da entidade do lado 1 tem de ser atributo da tabela da entidade do lado N.

3 A tabela do relacionamento terá como atributos as chaves de ambas as entidades

1:1

1:N

M:N

Page 32: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

32

Um exemplo

Uma base de dados de uma colecção de CD áudio.

Concebe uma base de dados relacional de uma forma intuitiva, usando o exemplo da colecção pessoal de CD áudio.

Page 33: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

33

A colecção de CD áudio

Passo 1: O propósito da base de dados

A base de dados será sobre uma colecção pessoal de CD áudio. Queremos que a nossa colecção contenha dados sobre os CD e sobre os seus intérpretes. Assim, faça um esboço da Base de Dados.

Page 34: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

34

A colecção de CD áudio

CDNúmero do CDTítulo do CDCapaTipo de músicaAno de ediçãoNotas

FaixasNúmero da faixaTítulo da faixaDuração

IntérpretesNúmero do intérpreteNome do intérpreteFotoData de nascimentoPaís de origemNotas

Page 35: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

35

A colecção de CD áudio

Passo 2: estabelecer as relações entre as entidades

É a altura de criar o diagrama E-A. Para não tornar o diagrama muito pesado, vamos incluir apenas as entidades e as suas relações.

Page 36: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

36

A colecção de CD áudio

CD compostos por

Faixas

interpretadas por

Intérpretes

1 NN

M

Page 37: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

37

A colecção de CD áudio

Chaves das Tabelas

CD – o título do CD não é um bom candidato, na medida em que podem existir CD com títulos idênticos. Visto que os outros atributos são ainda piores candidatos, criámos um campo específico para ser chave: Número de CD, começando no número 1 e crescendo até onde for preciso.

Page 38: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

38

A colecção de CD áudio

Faixas – o número da faixa não é um bom candidato, na medida em que podem existir faixas com o mesmo número. Assim, atribuímos o campo Código da faixa com um número sequencial começando no número 1 e crescendo até onde for preciso.

Page 39: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

39

A colecção de CD áudio

Intérpretes – Prevenindo a hipótese de poder haver intérpretes com nomes iguais, criámos aqui um novo campo denominado Número do intérprete, que será um número associado a cada intérprete e que só vai ser usado internamente pelo SGBD. Este “número do intérprete” funciona como um “número de sócio”.

Page 40: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

40

A colecção de CD áudio

Passo 3: determinar as tabelas, os seus campos e as suas relações. Já temos as três entidades com os seus campos-chave definidos e as

suas relações. Vamos agora tratar das tabelas que delas derivam, de acordo com as regras.

Page 41: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

41

A colecção de CD áudio

Relação entre CD e Faixas: é uma relação 1:N, na medida em que cada CD possui várias faixas. Então, obtemos as seguintes tabelas:

CD

Número do CDTítulo Tipo de músicaAno da ediçãoData de aquisiçãoNotas

FaixasCódigo_faixaNúmero da faixaTítuloDuraçãoNúmero do CD

N1

Page 42: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

42

A colecção de CD áudio

relação entre Faixas e Intérpretes: é uma relação N-M, visto que, uma faixa pode ter vários intérpretes e um intérprete pode estar em várias faixas. Assim, as chaves primárias de ambas estarão na tabela de relacionamento.

IntérpretesNúmero do intérpreteNomeFotoData de nascimentoPaís de origemNotas

FaixasCódigo da faixaNúmero da faixaTítuloDuraçãoNúmero do IntérpreteNúmero do CD

11Faixas/Intérpretes

Número do intérpreteCódigo da faixa

N N

Page 43: 1 Bases de dados relacionais. 2 Como são?  As bases de dados relacionais são constituídas por uma ou mais tabelas relacionadas entre si

43

A base de dados de CD áudio

CDNúmero do CDTítulo Tipo de músicaAno da ediçãoData de aquisiçãoNotas

N

1

IntérpretesNúmero do intérpreteNomeFotoData de nascimentoPaís de origemNotas

FaixasCódigo da faixaNúmero da faixaTítuloDuraçãoNúmero do IntérpreteNúmero do CD

11Faixas/Intérpretes

Número do intérpreteCódigo da faixa

N N