1
INTRODUÇÃO A
BASES DE DADOS
O docente:
Hélder MC Muianga
helder.muianga@uem.mz (+258) 82-4727160UEM
DMI
O Docente:
Hélder MC Muianga
3
Introdução às bases de
dados
O que são? Que utilidade têm?
UEM
DMI
4
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
UEM
DMI
5
Uma definição de base de dados
Base de Dados (BD):
conjunto integrado de dados
logicamente relacionados, desenhados para serem
partilhados e usados de foma concreta para uma
multiplicidade de objectivos por múltiplos tipos de
utentes.
UEM
DMI
Exemplo: agenda telefónica
Nome
Morada
Telefone fixo
Telefone móvel
Data de nascimento
UEM
DMI
7
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.
UEM
DMI
8
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
UEM
DMI
9
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!)
UEM
DMI
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:
UEM
DMI
11
Sistema de Processamento de
Ficheiros (SPF) Versus Sistema
de Bases de Dados (SBD)
UEM
DMI
12
Sistema de Processamento
de Ficheiros
Baseia-se sobretudo nas necessidades de processamento
das várias unidades orgânicas da organização. A
medida que se vai detectando a necessidade de
UEM
DMI
13
Sistema de Processamento
de Ficheiros
Desvantagens do SPF:
Redundância de dados não controlada
Dados inconsistentes
Inflexibilidade
Reduzida partilha de dados
Dificuldades de implementação de normas
Grande esforço de manutenção
Fraca produtividade de programação
UEM
DMI
Sistema de Processamento
de Ficheiros
Dados
Dados
Dados
Dados
Aplicação
Aplicação
Aplicação
UEM
DMI
15
Sistema de Processamento
de Ficheiros
Exemplo
:
Uma instituição de ensino possui vários responsáveis
pela administração de um grande volume de dados,
sendo muitos destes dados comuns a vários sectores:
O sector
Académico
, controla as actividades de
ensino;
O sector
Administrativo
, coordena a estrutura geral
da instituição;
O sector de
pessoal
, responsável pela administração
das pessoas que trabalham na instituição.
UEM
DMI
16
Sistema de Processamento
de Ficheiros
Sector
Académico
Sector
Administrativo
Sector
do
Pessoal
Alunos
Departamentos
Departamentos
Professores
Cursos
Professores
Disciplinas
Disciplinas
Funcionários
Turmas
UEM
DMI
17
Sistema de Processamento
de Ficheiros
Cada sector possui um objectivo a alcançar e define
registos com campos e formatos que julga
adequados.
Exemplo:
professores (Académico) = (nome, BI, área de interesse)
professores (Pessoal) = (nome, BI, vencimento, categoria, data de
admissão)
Os campos semelhantes em ambos arquivos como nome e BI
podem apresentar tipos de dados (formatos) diferentes.
UEM
DMI
Sistema de Processamento
de Ficheiros
Cada aplicação define arquivos através do seu
ambiente de programa e implementa
procedimentos para ligar com os seus dados.
Exemplo:
para arquivo aluno são criados procedimentos para
UEM
DMI
19
Sistema de Processamento
de Ficheiros
O acesso aos dados é controlado pelas aplicações de cada sector
Não existem possibilidades de partilhar dados entre as aplicações
20
Modelos de bases de
UEM
DMI
21
Modelos de Bases de Dados
Modelo de ficheiro
Modelo hierárquico
Modelo em Rede
Modelo Relacional
Modelo Orientado a Objectos
Modelo Objecto-Relacional
UEM
DMI
Modelo de Ficheiro (Já
visto)
A aplicação tem relação unívoca com um
ficheiro
Programa A Ficheiros
Programa B Ficheiros
Programa A
Programa B
Dados SGBD
UEM
DMI
23
Modelo Hierárquico
Numa base de dados hierárquica os registos estão ligados numa estrutura de dados em árvore de tal modo que cada tipo de registo tenha apenas um possuidor. Por exemplo: uma encomenda é possuída por um único cliente (um filho tem apenas um pai).
Exemplo:
Sistema de pastas no Windows Organigrama duma empresa
UEM
DMI
24
Desvantagens do
Modelo Hierárquico
Redundância de dados
Não existe partilha de dados, o que faz com que o mesmo dado
exista em 2 ou mais sítios ao mesmo tempo
KING
BLAKE
KAZUKI
CLARK
KAZUKI SMITH
45
31 43
UEM
DMI
25
Desvantagens do
Modelo Hierárquico (2)
Dependência da estrutura de dados
A alteração da estrutura dos dados afecta a aplicação Por isso, é necessário conhecer a estrutura dos dados para
acessá-los.
Exemplo:
Neste caso, temos que conhecer o nome, a
idade e endereço, antes de desenvolver a aplicação que
irá aceder a base de dados
nome idade endereço
nome idade endereço
nome idade endereço
UEM
DMI
Modelo em Rede
Numa base de dados rede cada tipo de registos pode estar ligado
a um ou mais possuidores; O que expressa a ideia de grafos. Por exemplo, um paciente pode ter mais do que um médico.
NOTA: O modelo hierárquico é um subconjunto do modelo em rede.
Exemplo:
KING ALLEN
UEM
DMI
27
Desvantagens do
Modelo em Rede
Apesar deste modelo já eliminar a redundância de
dados, mantém a dependência da estrutura de
dados
A alteração da estrutura dos dados afecta a aplicação
Por isso, é necessário conhecer a estrutura dos dados para
acessá-los.
UEM
DMI
28
Modelo de Bases de
Dados Hierárquicas - Resumo
Dados que se repetem em dois ou mais
locais.
Qualquer alteração da estrutura da base de
dados implica uma alteração das aplicações
que a acedem.
Redundância de dados
UEM
DMI
29
Modelo de Bases de
Dados em Rede - Resumo
Resolve a redundância de dados
Não resolve as dependências estruturais.
Dependência estrutural de dados
UEM
DMI
Modelo Relacional
Dr. E. F. Codd propôs o modelo relacional para sistema de
base de dados em 1970
É um modelo de dados baseado na teoria de conjuntos
O modelo relacional foi o primeiro modelo de base de dados
formal
A principal proposição do modelo relacional é que todos os
dados
são representados como relações matemáticas, isto é,
um
subconjunto
do
produto Cartesiano
de
n
conjuntos
Os dados são tratados pelo cálculo relacional ou
álgebra
relacional
UEM
DMI
31
Modelo Relacional (2)
Atributo
–
característica, propriedade,...
Tupla
- conjunto de atributos que são ordenados
em pares de domínio e valor.
Relação
- conjunto desordenado de tuplas.
Exemplos de relações:
Cliente (ID Cliente, ID Taxa, Nome, Endereço, Cidade, Estado, CEP, Telefone)
Pedido_Compra (Número do pedido, ID Cliente, Factura, Data do
pedido, Data prometida, Status)
Item_Pedido(Número do pedido, Número do item, Código do produto, Quantidade)
UEM
DMI
32
Modelo Relacional (3)
Domínios
- possuem características que definem os
possíveis valores que serão armazenado em um atributo de
uma tupla.
Por exemplo: Em um atributo do tipo numérico, serão somente
armazenados números
Chave
- é um conjunto de um ou mais atributos que
determinam a unicidade de cada registro.
Existem dois tipos de chaves: Chave Primária e chave
Estrangeira.
Chave Primária– Garante unicidade de cada registo. Chave Estrangeira - é formada pela chave primária de outra
UEM
DMI
33
Modelo Relacional (4)
Arquitectura ANSI/SPARC:
A meta desta arquitectura é separar as aplicações dos
usuários da base de dados física.
Nesta arquitectura os esquemas podem ser definidos em três
níveis:
UEM
DMI
Modelo Relacional (5)
VANTAGENS (1):
Redução de redundâncias de dados
Resolve o problema das dependências
estruturais de dados
Controlo da integridade dos dados
Evita inconsistências de dados pelo uso de
UEM
DMI
35
Modelo Relacional (6)
VANTAGENS (2):
Resolve o problema das dependências
estruturais de dados
Usa a Linguagem SQL
(Structured Query
Language)
UEM
DMI
36
Modelo Relacional(7)
Resumo
Uso de Tabelas relacionadas
Os dados são guardados em tabelas compostas por linhas
e colunas
Dados obtidos através da relação entre as tabelas
Uso de Sistemas de Gestão de Bases de Dados
Relacionais (SGBDR)
SGBDR respondem aos pedidos de dados feitos pelas
aplicações-cliente.
Uso da Linguagem Estruturada
UEM
DMI
37
O que é um Sistema de
Gestão de Base de Dados?
SGBD
Recordar exemplos anteriores
UEM
DMI
SGBD
Definição 1:
UEM
DMI
39
SGBD
Definição 2:
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.
Os dados são organizados num único conjunto;
Todos os acessos físicos aos dados passam a ser feitos pelo
SGBD;
Grande vantagem dos SGBD é a separação dos programas e dos
dados.
UEM
DMI
40
SGBD
Aplicação A
Aplicação B
Aplicação C
Aplicação D
Aplicação E
Base de Dados
S
G
B
D
UEM
DMI
41
Requisitos fundamentais de
SGBD
São requisitos fundamentais de um SGBD, os seguintes:
Segurança
Integridade
Controle da concorrência
Requisitos/ Tolerância a falhas
UEM
DMI
Componentes típicos do
ambiente de Base de Dados
Administradores de dados
System Developers
Utilizadores
Interface
Com Utentes Ferramentas CASE
Repositório
Programas
Aplicativos
UEM
DMI
43
SGBD ou SGBDR
RESUMO:
Quando se faz uma procura do lado do cliente (
client side
)
para bases de dados relacionais, essa procura é entregue ao
SGBDR (1)
Depois, o SGBDR executa a procura nas tabelas (2)
O SGBDR devolve o resultado ao cliente (3)
O SGBDR fica entre as tabelas e o cliente
SGBDR
Disco
Tabelas
Exemplos de SGBDR: ORACLE, SQL Server, MySQL, MS Access e etc cliente
(1) (2)
(3) (3)
44
Bases de dados
relacionais
UEM
DMI
45
Como são?
As bases de dados relacionais são constituídas por uma ou mais tabelas
relacionadas entre si (tal como explicado no Modelo Relacional).
Mas que tabelas? Relacionadas como? Não estou a perceber nada!
UEM
DMI
Três passos
Para construir uma base de dados podemos seguir três passos:
1. Definir o objectivoda 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 turma
Ano da turma
Turmas e professores
Código da turma Código do professor
Professores Código de professor
47
Primeiro passo
O que é que se pretende guardar
na base de dados?
UEM
DMI
48
Entidades e atributos (1/5)
Para conceber uma base de dados, é necessário começar por pensar:
Qual é o tema da base de dados?
UEM
DMI
49
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 (tabela
ou relação) e de atributo.
UEM
DMI
Entidades e atributos (2/5)
Entidade – qualquer “coisa”, isto é, objecto concreto, pessoa, conceito,
factos ou acontecimentos sobre a qual o sistema tem interesse em guardar informação e que pode ser identificado de uma forma inequívoca através de suas propriedades.
Exemplos: Curso, Especialidade, Prescrição, Renovação, Produto, Veiculo, etc.
Uma entidade é representada dentro de um rectângulo.
Atributo– é qualquer propriedade de uma entidade que assume valores
UEM
DMI
51
Entidades e atributos (2/5)
TIPOS DE ATRIBUTOS
Um atributo como pode ser caracterizado pelos seguintes tipos:
Atributos Simples:
São aqueles indivisíveis. Exemplo: Nr de BI, idade, sexo, etc.
Atributos compostos:
São aqueles que podem ser divididos em partes permitindo a geração de outros atributos (preferencialmente simples).
Exemplos:
Nome (subdividindo em Apelido e Outros Nomes).
Endereco (subdividindo em avenida, bairro, quarteirão, etc.)
UEM
DMI
52
Entidades e atributos (2/5)
TIPOS DE ATRIBUTOS
Atributos monovalorados:
São aqueles que assumem um e único valor para cada elemento da entidade.
Exemplo: número de estudante (é único valor para cada um individuo), NUIT, etc.
Atributos multivalorados:
São atributos que podem assumir vários valores para cada um dos elementos da entidade.
Exemplos:
UEM
DMI
53
Entidades e atributos (2/5)
Portanto, a Base de Dados Pressupõe:
Identificar não só os processos, mas também as “coisas”, isto é, as
entidades que a organização pretende ou necessita de memorizar para que o sistema responda aos estímulos externos: Empregado, Produto;
Identificar as propriedades dessas entidades: nome, salários, preços;
Identificar o inter-relacionamento entre essas entidades tendo em conta
sempre: Integração, Partilha, Concorrência, Múltiplos objectivos para múltiplos utilizadores
UEM
DMI
Entidades e atributos
A 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
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
UEM
DMI
55
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?
UEM
DMI
56
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
UEM
DMI
57
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
UEM
DMI
Exemplo
uma empresa que comercializa um conjunto de artigos pretende criar uma base de dados para registar esses artigos, bem como as encomendas efectuadas pelos seus clientes, em relação aos quais se 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
UEM
DMI
59
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
…
…
…
…
…
…
…
UEM
DMI
60
Bases de dados monotabela
Composta por uma única tabela.
Cada colunapossui 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!
UEM
DMI
61
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;
UEM
DMI
Dificuldades na manutenção
Dificuldade na sua
manutenção
Qualquer alteração a um dado repetido teria de ser
UEM
DMI
63
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.
UEM
DMI
64Monotabelas
Solução?
Número da Faixa Título da faixa Duração da faixa1 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ção 20 anos
depois Rui Veloso Setembro de 2000
Prenda de aniversário Memphis Elvis Presley Agosto de 1995 Compra Internet
UEM
DMI
65
No exemplo da empresa
3 tabelas
- para registar a informação do cliente
- para registar a informação dos artigos
- para registar as encomendas
UEM
DMI
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
UEM
DMI
67
Tabela
No modelo relacional utilizam-se tabelas para guardar os dados.
A Tabela possui linhas e colunas A Coluna exprime o tipo de dados
A cada coluna é dado o nome de campo ou atributo.
A Linha exprime um registo (conjunto de dados)
Cada linha contendo dados tem o nome de registo ou tupla.
Linha
campo
Coluna
UEM
DMI
69
Relacionamento Entre
Tabelas
Conectar tabelas
Eliminar redundância de dados
Funcionário Pertence
Exprime Tabela/Relação
Exprime Relacionamento
Tabela Departamento
Departamento
Tabela Funcionário
UEM
DMI
70
Atributo de Uma Coluna
Cada coluna tem atributo (s)
Qual é o tipo de dados envolvidos?
Numérico, caracter, data e mais
Grande, pequeno, longo, curto
Dado Tipo Descripção
NUMBER(p,s) Número que tem um número de máximo de p dígitos, com dí gi t os com s dí gi t os à di r ei t a do pont o
VARCHAR2(s) Valor de caráter de variável-comprimento de
t amanho máxi mo s
DATE Data entre janeiro de 1,4712 A.C., e 31 de
dezembr o de 9999 D. C.
UEM
DMI
Chave (Key)
Chave Primária - Primary Key (PK)
O dado dever ter algum valor sem igual para distinguir
cada dado, chama se PK
Cada fila de dados em uma tabela é identificada
exclusivamente por uma
Primary Key
(PK)
É proibido nenhum dado, chama se “NULL”
É proibido existe igual dado ao mesmo tempo
Chave Estrangeira - Forreign Key (FK)
Você pode relacionar dados logicamente de tabelas de
múltiplas que usam
Foreign Key
(FK)
UEM
DMI
72
Chave (Key)
DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10
PK FK
PK
Null Not Null e sem igual
UEM
DMI
73
Tabela Mestre
e Transacção
Tabela Mestre
Tabela referenciada é tabela mestre
A tabela Mestre não é actualizada
frequentemente como a tabela de departamento
Tabela de transacção
Tabela que tem FK é tabela de transacção
A Tabela de transacção é actualizada
frequentemente como tabela de empregado
departamento empregado Pertence
UEM
DMI
74
Exemplo Sobre Tabelas e
Relacionamento
No começo, pense no que fazer.
Empregado e departamento
Produto e venda (compra)
Desporto e jogador
Professor e curso e mais…
Segundo, pense no tipo de relação?
Pertence, tem…
Que colunas deve ter cada tabela?
Nome de empregado, salário, idade e mais
Nome de departamento, locação e mais
Tabela A relacion Tabela B amento
Coluna A
Coluna B
Coluna C
Coluna A
Coluna B
Coluna C
UEM
DMI
76
Segundo passo
Relações fortes...
UEM
DMI
77
Relações entre entidades
Entre as entidades de uma base de dados tem de haverrelações.
Exemplos? É para já!...
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 filmessão interpretados poractores;
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 áudiosão
UEM
DMI
78
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 Notas Título Duração Número de faixa Cidade Número de CD Número de
intérprete Número de faixa
Atributo chave
UEM
DMI
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:
UEM
DMI
80
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
UEM
DMI
81
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...
UEM
DMI
82
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
UEM
DMI
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
UEM
DMI
84
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
.
UEM
DMI
85
Campos-chave
(3/9)
Regras para ser chave primária:
Não ter valores nulos;
UEM
DMI
86
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
UEM
DMI
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.
2. Criar um novo campo para desempenhar o papel de campo-chave, garantindo nós que nunca terá conteúdos repetidos nem nulos.
UEM
DMI
88
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…
UEM
DMI
89
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 ... ...
UEM
DMI
90
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 Data
de aquisição
Modo de 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...
UEM
DMI
Exemplo
considerando os campos da entidade aluno (nome, idade, ano,
morada, telefone)
Idade, ano, morada, telefonenã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.
UEM
DMI
92
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?
UEM
DMI
93
Entidades e tabelas (de
novo...)
Ainda falta mais uma coisinha : conhecer os tipos de relações que
existem entre as entidades.
94
Tipos de relações
Ainda bem que aqui não há
ciúmes...
UEM
DMI
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
UEM
DMI
96
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).
UEM
DMI
97
Relações do tipo “1 para 1”
(2/2)
Num diagrama E-R, colocamos os “1” dos lados esquerdo e direito da
relação:
Representante
Turma tem
um
UEM
DMI
98
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).
UEM
DMI
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 composté
o por
Faixas
UEM
DMI
100
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 entrelivros 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).
UEM
DMI
101
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 Requisita
m
Livros
UEM
DMI
102
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
UEM
DMI
Uma nota
Embora estejamos a falar de relações entre entidades,
é das
entidades do diagrama E-R
que vão surgir as
UEM
DMI
104
Na base de dados relacional
Cada tabela tem um nome único dentro da base de dados e corresponde a
uma entidade ou relacionamentoentre 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.
UEM
DMI
105
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 camposcom 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
UEM
DMI
106
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
UEM
DMI
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
UEM
DMI
108
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
.
UEM
DMI
109
TABELAS DE RELACIONAMENTO OU DE
RELAÇÃO
Temos portanto 4 tipos de chaves:
Primária
Composta
(2 ou mais)
Derivada
(campo artificial)UEM
DMI
110
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)
UEM
DMI
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
UEM
DMI
112
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