introdução a uma base de dados

70
1 Introdução às bases de dados O que são? Que utilidade têm?

Upload: cloudsidea

Post on 24-Jun-2015

2.006 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: introdução a uma base de dados

1

Introdução às bases de dados

O que são? Que utilidade têm?

Page 2: introdução a uma base de dados

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.

Page 3: introdução a uma base de dados

3

Exemplo: agenda telefónica

Nome Morada Telefone fixo Telefone móvel Data de

nascimento Foto

Page 4: introdução a uma base de dados

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.

Page 5: introdução a uma base 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...

Page 6: introdução a uma base de dados

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

Page 7: introdução a uma base de dados

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)

Page 8: introdução a uma base de dados

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.

Page 9: introdução a uma base de dados

9

Modelos de bases de dados

Page 10: introdução a uma base 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

Page 11: introdução a uma base de dados

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

Page 12: introdução a uma base de dados
Page 13: introdução a uma base de dados

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)

Page 14: introdução a uma base de dados
Page 15: introdução a uma base de dados

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

… … … … … … …

Page 16: introdução a uma base de dados

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:

Page 17: introdução a uma base de dados

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;

Page 18: introdução a uma base de dados

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.

Page 19: introdução a uma base de dados

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.

Page 20: introdução a uma base de dados

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

Page 21: introdução a uma base de dados

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

Page 22: introdução a uma base de dados

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)

Page 23: introdução a uma base de dados

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

Page 24: introdução a uma base de dados

24

Bases de dados relacionais

Quando as relações são causas de algumas ralações...

Page 25: introdução a uma base de dados

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!

Page 26: introdução a uma base de dados

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

Page 27: introdução a uma base de dados

27

Primeiro passo

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

Page 28: introdução a uma 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?

Page 29: introdução a uma base de dados

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?

Page 30: introdução a uma base de dados

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

Page 31: introdução a uma base de dados

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?

Page 32: introdução a uma base de dados

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

Page 33: introdução a uma base de dados

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.

Page 34: introdução a uma base de dados

34

Segundo passo

Relações fortes...

Page 35: introdução a uma base de dados

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

Page 36: introdução a uma base de dados

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

Page 37: introdução a uma base de dados

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)

Page 38: introdução a uma base de dados

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

Page 39: introdução a uma base de dados

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.

Page 40: introdução a uma 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

Page 41: introdução a uma base de dados

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.

Page 42: introdução a uma base de dados

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.

Page 43: introdução a uma base de dados

43

Campos-chave (3/9)

Regras para ser chave primária:

Não ter valores nulos;

Não existir repetição de valores;

Page 44: introdução a uma base de dados

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

Page 45: introdução a uma base de dados

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

Page 46: introdução a uma base de dados

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…

Page 47: introdução a uma base de dados

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

Page 48: introdução a uma base de dados

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

Page 49: introdução a uma base de dados

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.

Page 50: introdução a uma base de dados

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?

Page 51: introdução a uma base de dados

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!

Page 52: introdução a uma base de dados

52

Tipos de relações

Ainda bem que aqui não há ciúmes...

Page 53: introdução a uma base de dados

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.

Page 54: introdução a uma base de dados

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

Page 55: introdução a uma base de dados

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

Page 56: introdução a uma base de dados

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

Page 57: introdução a uma base de dados

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

Page 58: introdução a uma base de dados

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

Page 59: introdução a uma base de dados

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

Page 60: introdução a uma base de dados

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

Page 61: introdução a uma base de dados

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.

Page 62: introdução a uma 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.

Page 63: introdução a uma base de dados

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

Page 64: introdução a uma base de dados

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

Page 65: introdução a uma base de dados

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:

Page 66: introdução a uma base de dados

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.

Page 67: introdução a uma base de dados

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)

Page 68: introdução a uma base de dados

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)

Page 69: introdução a uma base de dados

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

Page 70: introdução a uma base de dados

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