Base_de_Dados_curso_ferias

Download Report

Transcript Base_de_Dados_curso_ferias

Centro de Formação
São Domingos
ProjectoOi@
cultura é partilha
Curso de
Base de Dados
You should be the change that you want to see in the world"
("Você deve ser a mudança que quer ver no mundo")
= Gandhi=
Frei Joaquim José Hangalo
Centro de Formação São Domingos
Universidade Católica de Angola
Base de dados
Programação Java SE e Java EE
Interacção Homem Máquina
Programação Web (Web Standards)
Objectivo do curso
• Apresentar os fundamentos teóricos e práticos
de base de dados e de sistemas de gestão da
base de dados.
• Compreender os conceitos de modelagem,
projecto de administração de bases de dados
Conteúdo
Conceitos de Base de dados
Modelagem e Projecto de Base de dados
Modelo Entidade Relacionamento
Normalização
Conceitos e práticas para a construção e
manipulação de base de dados ( Linguagem
SQL)
Dinâmica das aulas
Exposição e Prática
Exercícios em Sala de aulas
Trabalhos de casa
Enviar os trabalhos para:
[email protected]
Certificado do Curso
Do Centro de Formação São Dominogos
Os alunos que tiverem bom aproveitamento
Nos trabalhos durante a semana
Poderão posteriormente fazer o projecto
E defende-lo conforme prática
Do Centro de Formação São Domingos
Enviar os trabalhos para:
[email protected]
Formas de Estudo
Não estudar pelos slides
Estudar através de livros, apostilas e outras
referencias indicadas
Ferramentas a utilizar
Microsoft Access 2007
MYSQL
Mysql Workbench
Outras Ferramentas
NetBeans 7.2
Astash
Bibliografica
Silberschatz, A, Korth, HF,; Sudarshan, S. Sistema
de base de dados, Makron Books, 1999
A. Heuser, Carlos Alberto, Projeto de Banco de
Dados, Instituto de Informática da UFTGS
Damas, L., SQL, FCA
Introdução a base de dados
Conceitos
Dados e Informação
Dado:
Dados são todos os elementos que servem de
base para a formação de opiniões ou para a
tomada de decisões. Um dados é apenas um
índice, um registo, uma manifestação
objectiva, passível de análise, exigindo
interpretação da pessoa para a sua
manipulação.
Dados e Informação
Dado:
Em si, os dados têm pouco valor, mas quando
classificados, armazenados e relacionados
entre si, eles permitem a obtenção de
informações.
A informação apresenta significado e
intencionalidade, aspectos que a diferenciam
do conceitos de dados.
Dados e Informação
Informação
Informação é o dado processado, trabalhado,
que permite ao executivo tomar decisões. É o
resultado do tratamento dos dados existentes
a cerca de alguém ou de alguma coisa.
Pode-se definir também a informação como um
conjunto de factos organizados de tal forma
que adquirem valor adicional além do valor do
facto em si.
Base de dados
Conceitos e definições
As bases de dados transformaram-se num
componente essencial do dia-a-dia na sociedade
moderna
Exemplo




…
depositar ou retirar dinheiro do banco
fazer uma reserva num hotel ou companhia aérea
fazer pesquisa de itens numa biblioteca informatizada
pesquisar preços de itens num supermercado
As actividades acima são exemplos de aplicações tradicionais
de base de dados. Onde a maioria das informações são
armazenadas através de textos ou números.
Há poucos anos atrás, a tecnologia permitiu novas aplicações
para base de dados
Exemplos
Bases de dados multimédia: armazenam figuras, som e
vídeo
SIGS – Sistemas de informação geográficas: armazenam e
analisam mapas, tempo e imagem de satélite
Sistemas em tempo real: controlo de fabrico e processo de
manufactura.
Base de dados: definições
Definições:
É uma colecção de dados inter-relacionados,
representado informação sobre um domínio
específico (conceito geral)
É uma colecção de dados relacionados
referentes a um mesmo assunto e organizados
de maneira útil com o propósito de servir de
base para que o utilizador recupere
informações, tire conclusões e tome decisões.
Uma base de dados é uma colecção logicamente
coerente de dados com algum significado
inerente; um arranjo aleatório de dados não
pode ser considerado uma base de dados.
• Uma Base de Dados Relacional é um sistema
de armazenamento de dados em forma
tabular baseado nos relacionamentos entre
elementos de dados buscando uma
normalização (sem redundâncias) dos dados.
Propriedades de uma base de dados
• Uma base de dados é uma colecção
logicamente coerente de dados com algum
significado inerente
• Uma base de dados é projectada, construída e
“povoada” com dados para um propósito
específico . A ela está relacionado um grupo
de utilizadores e aplicações de interesse a
estes utilizadores.
Propriedades de uma base de dados
• Uma base de dados representa um minimundo. Representa algum aspecto do mundo
real. Quaisquer alterações neste mundo real
são reflectidas na base de dados.
Uma base de dados pode ser de qualquer tamanho
e variar de complexidade. Por exemplo, a lista de
nomes, endereços e telefones de uso pessoal
pode ter dezenas de registos e possui uma
estrutura simples.
Por outro lado, o catálogo de livros de uma grande
biblioteca pode ter milhares (ou milhoes) de
registos, classificados e caracterizados com dados
do autor (primeiro e ultimo nomes), título,
editora, data de publicação, edição, etc
Uma base de dados pode ser gerada e mantida
manualmente ou por uma máquina. O catálogo
ou ficheiro de uma biblioteca é um exemplo de
uma base de dados criada e mantida
manualmente.
Uma base de dados informatizada pode ser criada e
mantida por:
• Um grupo de programas especialmente escritos
para esta tarefa; ou
• Um sistema de gestão de base de dados.
Sistema de Gestão de Base de Dados
Data Base Managemet System (DBMS)
Um sistema de gestão de base de dados (SGBD)
é uma colecção de softwares(Programas) que
habilitam o utilizador para a criação e
manutenção uma base de dados. O SGBD é
um software de propósitos gerais que facilita
o processo de definição, construção e
manipulação de bases de dados.
Sistemas de Gestão de Bases de Dados (SGBD)
• São softwares que permitem a definição de
estruturas para armazenamento de
informações e fornecimento de mecanismos
para manipula-las
Sistemas de Gestão de Bases de Dados
(SGBD)
• Exemplos
•
•
•
•
•
•
Oracle
Microsoft SQL Server
Mysql
Micorosft Access
PostgreSQL
Etc.
Recursos de um SGBD
•
•
•
•
•
•
•
•
•
Adição de novos ficheiros
Criação de novas bases de dados
Inserção de dados
Recuperação de dados
Actualização
Eliminação dos dados
Criação de visões
Atribuição de privilégios
….
Profissionais
• Administrador de Bases de dados (Database
Administrator – DBA).
• Coordena de monitora a utilização da(s) base(s) de dado(s) –
segurança, tempo de reposta, etc
• Autoriza o acesso à base de dados
• Ajusta o projecto físico quando necessário
• Adquire software e hardware necessários
• Projectista de base de dados
• Identifica os dados a serem armazenados na base de dados
• Escolhe as estruturas apropriadas para representar e
armazenar estes dados
• Faz o levantamento das necessidades dos utilizadores
(requisitos)
Profissionais
• Programador de aplicações:
• Escreve os programas aplicativos
• Realiza requisições ao SGBD
• Utilizador final
• Manipula a base de dados através de:
– Linguagens de consulta
– Programas previamente desenvolvidos
• Tipos de utilizadores:
– Leigos(operador de terminal) X sofisticados(engenheiros)
– Casuais(gerentes) X frequentes (caixas de bancos)
Tipos de Bases de Dados
Dois tipos
Analíticas (Datawarehouse)
Operacionais
Bases de dados analíticas
São fundamentalmente estáticas. Armazenam
dados de arquivo histórico
Por exemplo, uma empresa poderia armazenar
registos de vendas durante os últimos dez
anos numa base de dados analítica e poderia
utilizar esta base de dados para analisar
estratégias de marketing.
Bases de dados operacionais
São utilizadas para administrar dados mais
dinâmicos. Estes tipos de base de dados
permitem mais do que ver os dados
arquivados.
As bases de dados operacionais permitem
modificar aqueles dados (adicionar, alterar,
apagar dados, etc…)
Bases de dados operacionais
Normalmente são utilizadas para localizar
informação em tempo real.
Por exemplo, uma companhia poderia utilizar
uma base de dados operacional para saber a
quantidade armazenada de um conjunto de
produtos. Este tipo de informação é
fundamental para gerir qualquer stock
Modelo conceitual de dados
Modelo conceitual de dados
Um modelo de dados é um conjunto de
conceitos utilizados para descrever a estrutura
de uma base de dados
Um modelo de dados é a descrição formal da
estrutura de uma base de dados
Um modelo de dados permite identificar os
dados de um determinado ambiente, as
relações entres eles e as suas restrições de
integridade.
Modelo conceitual de dados
Estrutura: tipos de dados, relacionamentos e
restrições que deve suportar os dados.
A maioria dos modelos inclui uma série de
operações básicas para recuperações e
actualizações.
Modelo conceitual de dados
O Modelo de dados
descreve o tipo de informação que vai ser
armazenada numa base de dados.
Exemplo da industria:
O modelo de dados informa:
• São armazenadas informações sobre produtos
• Para cada produto, são armazenados o código, o preço e a
descrição
O Modelo de dados não informa
• Quais produtos estão armazenados na base de dados
Modelo conceitual de dados
O modelo conceitual de dados é a
representação dos conceitos e características
observadas no ambiente;
Tem como característica principal ignorar
particularidades de implementação
Modelo conceitual de dados
O modelo conceitual de dados é independente
do tipo de SGBD
regista
A estrutura dos dados que podem aparecer na
base de dados;
Não regista
a forma como estes dados estão armazenados
a nível do SGBD
Modelo conceitual de dados
O Modelo de dados é uma representação das
necessidades de dados de um determinado
ambiente e de como estes dados se
relacionam
É uma das primeiras actividades que deve ser
feita ao longo do processo de identificação e
compreensão de um ambiente, tendo em vista
as necessidades de automatização.
Modelo conceitual de dados
Construir um modelo de dados significa:
• colectar e documentar informações relevantes do ambiente
estudado;
• representar as informações, de forma clara e objectiva, e
num formato padrão que possa facilitar o entendimento dos
participantes do processo;
• definir, de maneira clara, o escopo do ambiente modelado
• Adquirir o entendimento do ambiente através de
refinamentos sucessivos do modelo;
• e representar graficamente as necessidades de informação
independentemente do Software e do Hardware a serem
utilizados na implementação do Sistema
Como qualquer representação é o resultado de um
processo de abstracção
Durante esse processo de abstracção, objectos
relevantes, associações entre eles e
características (atributos) de objectos e
associações são seleccionadas.
A relevância de um objecto, de uma associação ou
de um atributo é determinada pelos objectivos
do modelo.
Modelo conceitual de dados
• Componentes de um modelo conceitual de
dados
•
•
•
•
•
Entidades
Tipo de entidades
Atributos
Relacionamentos
E dicionário de dados
Modelo conceitual de dados
Modelos lógicos baseados em Objectos
Modelo de Entidade x Relacionamento
Modelo distribuído
Modelo Relacional Orientado a Objecto
Modelos Lógicos Baseados em Registos
Modelo Hierárquico
Modelo de Redes
Modelos de Bases de Dados
• O desenvolvimento de uma base de dados
pode ser realizado segundo diferentes
modelos conceituais.
Modelos de Bases de Dados
• Existem muitos modelos de bases de dados
mas, o mais conhecido e mais utilizado, é o
modelo Entidade – Relação, também
conhecido por Entidade – Relacionamento ou,
simplesmente, modelo ER.
Modelo Entidade - Relacionamento
Modelo Entidade-Relacionamento:
É uma técnica desenvolvida para auxiliar em projectos de Base de dados
Características:
1) Gráfica: permite representar o modelo de informação com:
• clareza;
• redução de esforço;
• facilidade de compreensão;
• facilidade de apresentação.
2) Baseado na percepção de que o mundo real é constituído de dois objetos:
• Entidade e relacionamentos.
Modelo Entidade-Relacionamento
• Criado e publicado por Peter Chen em 1976
• Técnica mais difundida de modelagem
conceitual . É um padrão de fato para
modelagem conceitual
• É representado através do diagrama entidaderelacionamento (DER)
Modelo Entidade-Relacionamento
• O modelo ER especifica o esquema da base
de dados através da identificação dos grandes
objectos informacionais com interesse para o
sistema a informatizar e nas relações entre
estes.
Modelo Entidade-Relacionamento
• Este modelo baseia-se na percepção de que o
mundo real é constituído por dois objectos:
– Entidades
– Relacionamentos
Modelo Entidade-Relacionamento
Conceitos fundamentais da modelagem ER
• Entidade
• Atributo
• Relacionamento
• Cardinalidade
– Extensão do modelo ER
• Generalização/especialização
54
ENTIDADE
• Entidade é tudo aquilo sobre o qual se deseja manter
informações;
• são elementos relevantes, abstractos ou concretos, sobre
os quais é necessário guardar informação.
–
Representam pessoas ou objectos que existem no mundo real, e
sobre os quais se quer guardar informações
–
denota um conjunto de ocorrências de um facto
•
Dica: Numa especificação(problema) são os
substantivos
• Uma entidade representa um objecto do
mundo real que possui existência própria e
cujas características ou propriedades
desejamos armazenar. O objecto representado
pode ser um objecto concreto (uma pessoa,
um carro, um livro, etc) ou abstracto (um
departamento, um projecto, um curso).
• Às características do objecto que desejamos
armazenar damos o nome de atributos. Cada
atributo de uma entidade possui um nome e
um valor específico.
Entidade
• Podendo representar :
a)Objectos concretos como Pessoas, livros,
carros...
b)Objectos abstractos como empresas, eventos,
departamentos...
Entidade
• São representadas no DER através de um
rectângulo com o nome no interior
Convenção: escreve o nome das entidade no singular com a primeira letra
maiúscula.
Entidade
Exemplos:
Pessoas (Fornecedores, Empregados, Clientes, Alunos, etc.)
Organizações (Empresas, Hospitais, Escolas, Farmácias, etc.)
Objetos (Carro, Factura, Produtos, etc.)
Símbolo:
Entidade
• Exemplos
• Sistema de informações industrial
•
•
•
•
Produtos
Tipos de produtos
Compras
Vendas
• Sistema de contas corrente ?
• Clientes
• Contas corrente
• Cheques
• Agências
62
Exercício
• Identificar entidades
Deseja-se construir uma base de dados para
um sistema de vendas. Em cada venda são
vendidos vários produtos e um determinado
produto pode aparecer em diferentes vendas.
Cada venda é efetuada por um vendedor a um
determinado cliente. Um produto está
armazenado numa prateleira de uma estante
de um determinado armazem. Um armazem
pode ter várias estantes.
63
Exercício
•
Identificar entidades
Nma clínica trabalham médicos e existem pacientes internados.
Cada médico é identificado pelo seu CM (código de Médico), possui
um nome e recebe um salário na clínica. Um médico tem formação
em diversas especialidades (ortopedia, traumatologia, etc), mas só
exerce uma delas na clínica.
Para todo paciente internado na clínica são cadastrados alguns
dados pessoais: nome, endereço, telefone(s) para contacto, data do
nascimento e sexo. Um paciente tem sempre um determinado
médico como responsável (com um horário de visita diário
predeterminado), porém vários outros médicos podem participar do
seu tratamento. Os pacientes estão sempre internados em quartos
individuais, que são identificados por um número e ficam num andar
da clínica.
ATRIBUTOS
Atributo
São as propriedades que caracterizam ou
descrevem uma entidade ou um
relacionamento;
Dado ou informação que é associado a cada
ocorrência de uma entidade ou de um
relacionamento
• Um atributo corresponde a alguma
propriedade de interesse que ajuda a
descrever uma entidade, como o nome do
funcionário ou seu salário
• Exemplo: A entidade CARRO poderia ter os
seguintes atributos : Placa, modelo, ano de
fabrico, cor, preço;
• Cada atributo possui um domínio que
identifica o conjunto de valores permitidos
para aquele atributo: nome domínio string,
salário domínio numérico;
• Atributos
– Representação Gráfica
nomeDoAtributo
TIPOS DE ATRIBUTOS
• Diversos tipos de atributos ocorrem no
modelo ER:
• simples versus composto,
• monovalorado ou univalorado versus
multivalorado,
• e armazenado versus derivado.
• Nulo
Atributos Simples (Atómicos).
• Não é possível decompor esses atributos em
unidades mais elementares.
• Exemplo:
– N.º de aluno, salário, nome próprio...
Tipos de atributos
• Compostos – São atributos que podem ser
decompostos em unidades mais elementares.
• Exemplo:
– O nome completo de uma pessoa pode ser
decomposto em nome próprio e sobrenome.
• Os atributos compostos podem ser divididos
em subpartes menores, que representam a
maioria dos atributos básicos com significados
independentes.
• Por exemplo, o atributo Endereço, pode ser
subdividido:
• em Rua, Município, Bairro, Casa...
• O valor de um atributo composto é a
concatenação dos valores componentes dos
seus atributos simples
• Os atributos compostos são úteis para
modelar as situações nas quais o utilizador
algumas vezes refere-se ao atributo como um
grupo e, noutras ocasiões, refere-se
especificamente a um de seus componentes.
• Se o atributo composto é referido apenas
como um todo, não há necessidade de
subdividi-lo em atributos componentes.
• Por exemplo, se não é necessário referir-se a
um componente individual de um endereço
(Caixa Postal, rua, e assim por diante), então o
endereço pode ser definido como um atributo
simples.
Tipos de atributos
• Compostos
• Representação gráfica
Os atributos compostos são implementados pelas suas partes
Atributos mono valorados
• São atributos que para uma mesma entidade
só recebem um valor.
• A maioria dos atributos tem um valor único
para uma dada entidade;
• Por exemplo, data de nascimento é um
atributo mono valorado de uma pessoa.
Tipos de atributos
• Multivalorados – são atributos que para uma
mesma entidade podem receber dois ou mais
valores.
• um atributo pode ter um conjunto de valores
para a mesma entidade — por exemplo, um
atributo Cor para um carro ou um atributo
Titulação para uma pessoa. Os carros com
uma cor têm um valor único, enquanto
aqueles com dois tons contêm dois valores
para Cor.
• Da mesma forma, uma pessoa pode não ter
um título académico, outra pessoa pode ter
um e, uma terceira pessoa, dois ou mais
títulos, portanto, pessoas diferentes podem
ter números de valores diferentes para o
atributo Titulação.
• Um atributo multivalorado deve ter limite
inferior e superior para restringir o número de
valores permitidos a cada entidade individual.
• Por exemplo, o atributo Cor de um carro pode
ter entre um e três valores, se presumirmos
que um carro possa ter, no máximo, três
cores.
Tipos de atributos
• Multivalorados
• Representação gráfica
• Atributos Armazenados versus Derivados.
• Em alguns casos, dois (ou mais) valores de atributos
estão relacionados — por exemplo, os atributos Idade e
DataNascimento de uma pessoa.
• Para uma entidade pessoa em particular, o valor de
Idade pode ser determinado pela data corrente (hoje)
e o valor de DataNascimento da pessoa. Portanto, o
atributo Idade é chamado atributo derivado, e é dito
derivado do atributo DataNascimento, que, por sua
vez, é chamado atributo armazenado.
• Alguns valores de atributos podem ser derivados
de entidades relacionadas; por exemplo, um
atributo NumerodeEmpregados, de uma entidade
departamento, pode ser derivado da contagem
do número de empregados relacionados (que
trabalham) neste departamento.
• Atributos derivados – podem ser calculados a
partir de outros atributos
No digrama são representados com uma elipse com
os limites descontínuos
Nulos
Nulo – é utilizado quando uma entidade não
possui ou desconhece o valor de um
determinado atributo
Exemplo: Um funcionário que não possua
dependentes terá o valor do atributo
nomeDependente nulo.
• A representação de um atributo sem valor é
colocarmos um valor especial null.
• Null também pode ser utilizado quando não
conhecemos o valor de um atributo, por
exemplo, quando é desconhecida a data de
nascimento de uma pessoa.
RELACIONAMENTOS
• Ao definir as entidades componentes de um
diagrama entidade relacionamento, nota-se
vários relacionamentos implícitos entre elas.
De facto, sempre que um atributo de um tipo
de entidade refere-se a um outro tipo de
entidade, temos um relacionamento entre as
entidades.
Relacionamento
• Um relacionamento consiste numa associação
entre entidades do negócio. Mais
concretamente, se se vir uma entidade como um
conjunto de ocorrências, existe um
relacionamento entre entidades se ocorrências
de uma destas entidades estiverem associadas a
uma ou mais ocorrências de outras entidades.
• Associações entre entidades estabelecidas de
acordo com as necessidades de gestão.
• conceito utilizado para indicar associações entre
elementos de diferentes conjuntos de entidades. Um
relacionamento binário é um par ordenado (e1, e2) onde
e1 e e2 são respectivamente elementos de E1 e E2.
• Conjunto de relacionamentos – conjunto dos pares
ordenados que associam entidades. A representação
gráfica desse conjunto é um losango.
• Conjunto de relacionamentos são
representados graficamente por meio de
losangos contendo o nome do tipo de
relacionamento conectados aos conjuntos
de entidades cujos elementos ele associa
Funcionário
trabalha no
Departamento
CLASSIFICAÇÃO DOS
RELACIONAMENTOS
Classificação dos relacionamentos
Os Relacionamentos são classificados de acordo
com as características
✔ Grau
• Número de entidades envolvidas no relacionamento
✔ Obrigatoriedade
• Entidades participam com carácter opcional ou
obrigatório no relacionamento
✔ Cardinalidade
• Relação entre o número de ocorrências numa
entidade com as respectivas ocorrências na outra com
que tem o relacionamento
Grau dos Relacionamentos
Unário || Binários || n-ários
O grau de um relacionamento corresponde ao numero de
diferentes tipos de entidades que dele participam. Os relacionamentos podem
associar um numero qualquer de tipos entidades. Os relacionamentos mais
comuns são aqueles de
grau dois (relacionamentos binários).
• Relacionamentos do tipo Trabalha NO, por
exemplo, possuem grau dois. Um exemplo
de tipo relacionamento ternário e FORNECE.
• Ele associa os tipos de entidades
FORNECEDOR, PECA e PROJECTO
Grau dos Relacionamentos
Unário || Binários || n-ários
Atributos de um relacionamento
• Atributos de um relacionamento: assim como no caso das
entidades, os relacionamentos também podem possuir certos
atributos.
• O numero de horas que um funcionário trabalha num
projecto, por exemplo, pode ser visto como um atributo do
conjunto de relacionamentos DESENVOLVE
Obrigatoriedade dos Relacionamentos
• A participação de entidades A e B num
relacionamento podem ser obrigatória
ou opcional
Restrição de Participação
• Restrição de Participação: determina se a
existência de uma entidade esta condicionada ou
não ao seu relacionamento com outra entidade.
• Existem dois tipos de restrições de participação:
total e parcial. Na primeira, uma entidade existe
somente quando ela se relaciona com outra
entidade via um relacionamento.
• Por exemplo, se a politica da empresa determina
que todo funcionário deve trabalhar em um
departamento, então a participação de
FUNCIONARIO em TRABALHA NO é total
Restrição de Participação
• Caso contrario, ou seja, se a existência de uma
entidade é independente do facto dela estar
relacionada com outra, tem-se uma restrição de
participação parcial.
• A participação de FUNCION ARIO em DESENVOLVE, por
exemplo, é parcial. Ou seja, nem todo funcionário
precisa desenvolver um projecto dentro da empresa.
• A restrição de participação total e representada
graficamente por meio de linhas duplas ligando o
conjunto de entidades ao conjunto de
relacionamentos. Já a participação parcial e
representada por meio de linhas simples.
Cardinalidade dos Relacionamentos
A cardinalidade de um relacionamento consiste no
número relacionado de ocorrências para cada uma das
entidades envolvidas no relacionamento
• Dadas duas entidades A e B as mais habituais são
✔ Relacionamento 1:1
✔ Relacionamento 1:N (um para muitos)
✔ Relacionamento M:N (muitos para muitos)
Notação Crow Foot
Cardinalidade dos Relacionamentos
Funcionário
N
colocado
1
Departamento
Os símbolos “1” e “N” nas arestas de ligação determinam
a cardinalidade ou classe do relacionamento
“N para 1” ou “muitos para um” ou “N:1”
• Uma entidade em A está associada a várias entidades em
B. Entretanto, uma entidade em B, deve estar associada a
no máximo uma entidade em A
Exemplo: Uma turma tem vários alunos, mas um aluno só pertence a uma turma
“1 para 1” ou “1:1” - Um para um (1:1)
• Uma entidade em A está associada no máximo a
uma entidade em B, e uma entidade em B está
associada a no máximo uma entidade em A
Exemplo: Um empregado está associado no máximo a um carro, e um carro está
associado no máximo a um empregado
“N para N” ou “muitos para muitos” ou “N:M”
Uma entidade em A está associada a um número
qualquer de entidades em B, e uma entidade em
B está associada a um número qualquer de
entidades em A
Exemplo: Uma conta pode estar associada a mais do que um cliente, e um cliente
pode ter mais do que uma conta associada
CHAVES
Chaves
• Um conceito fundamental no contexto do
modelo entidade-relacionamento é o de
“chave”.
• Existem diferentes tipos de chaves:
•
•
•
•
Chave Candidata
Super-Chave
Chave Primária
Chave estrangeira (externa):
Chaves
• Chave Candidata: Subconjunto dos atributos de
uma entidade que podem ser utilizados como
identificadores de uma instância. O subconjunto
não pode ser reduzido sem perder esta
qualidade.
Exemplos: {BI},{Contribuinte},{Eleitor, Município}
Chaves
• Super-Chave: O conceito de super-chave é mais
abrangente que o de “chave candidata” definido
anteriormente. Qualquer subconjunto de
atributos de uma entidade que possa identificar
univocamente qualquer instância da entidade é
considerado uma super-chave
Exemplos: {BI}, {BI, nome}, {Nº Eleitor, Municipio}, {Nº Eleitor, BI}, {Nº Eleitor, BI, Nome}, {
Nome, BI, Nº Contribuinte, Nº Eleitor, Município}
No limite, o conjunto de todos os atributos de uma entidade será sempre uma superchave.
Chaves
• Chave Primária: Escolhida entre as possíveis
chaves candidatas, identifica de forma unívoca
instancias de uma entidade. Deve respeitar as
seguintes propriedades:
• Unívoca: Os atributos da chave primária têm um
valor único para qualquer instancia de uma
entidade.
• Não redundante: Se algum dos atributos for
retirado da chave, os restantes atributos deixam de
satisfazer a propriedade anterior.
• Não nula. Nenhum dos atributos que a constituem
pode assumir o valor nulo.
A chave primária também é chamada atributo
identificador
O identificador de uma entidade, é o atributo
(ou composição de atributos) que identifica
esta entidade – ou melhor, identifica
inequivocamente uma e só uma ocorrência
desta entidade.
Chaves
• Chave Primária: Escolhida entre as possíveis
chaves candidatas, identifica de forma unívoca
instancias de uma entidade.
• Chave estrangeira (externa): Subconjunto dos
atributos de uma entidade que constituem a
chave primária de uma outra entidade. A sua
existência denota um relacionamento entre
entidades e constitui a base do modelo
relacional.
• É um atributo que definido como chave primária
numa entidade é colocado (na implementação)
na estrutura da outra, para se poder definir o
relacionamento.
Chave estrangeira - Cardinalidade
• Num relacionamento 1:1 com participação obrigatória de
ambas as entidades, é necessária apenas uma tabela, que
representa ambas entidades e o relacionamento. Os
identificadores de ambas entidades são chaves candidatas
• Num relacionamento 1:1 com classe de participação obrigatória
de apenas uma das entidades, são necessárias duas tabela.
• A tabela que representa a entidade que tem participação
obrigatória no relacionamento receberá a chave estrangeira
(chave primária da outra entidade)
cadeira
lecciona
professor
Chave estrangeira - Cardinalidade
• Num relacionamento 1:1 sem classe de
participação obrigatória de nenhuma das
entidades, são necessárias três tabelas, duas
para representada cada uma das entidades em
que a chave primeira é o identificador da
respectiva entidade e outra para representar o
relacionamento que incluirá os identificadores
de ambas as entidades
cadeira
lecciona
professor
Chave estrangeira - Cardinalidade
• Num relacionamento 1: N com classe de participação
obrigatória da entidade do lado N, são necessárias
duas tabelas, cada uma representado uma das
entidade em que a chave primária é o identificador da
respectiva entidade. Para além disso a tabela que
representa a entidade do lado N representará também
o relacionamento, incluindo assim como chave
estrangeira o identificador da outra entidade.
cadeira
lecciona
professor
Chave estrangeira - Cardinalidade
• Num relacionamento M: N são necessárias três
tabelas, duas para representada cada uma das
entidades em que a chave primeira é o
identificador da respectiva entidade e outra
para representar o relacionamento que incluirá
os identificadores de ambas as entidades
cadeira
lecciona
professor
ENTIDADES FRACAS
• Um conjunto de entidades pode não ter atributos
suficientes para formar uma chave primária. São os
conjuntos de entidades fracas.
• Um conjunto de entidades que possui uma chave
primária é dito forte.
• A chave primária de um conjunto de entidades
fracas é composto pela chave primárias do
conjunto de entidades fortes ao qual a
existência do primeiro está associada mais o
identificador do conjunto de entidades fraca.
• O relacionamento que associa o conjunto de
entidades fracas a seu proprietário é o
relacionamento identificador.
• Uma entidade fraca sempre possui uma restrição de participação
total(dependência de existência) com relação a seu relacionamento
identificador, porque uma entidade fraca não pode ser identificada
sem uma entidade proprietária
• Ao contrário, tipos de entidades regulares que efectivamente
possuem um atributo chave são às vezes chamados tipos de
entidade fortes.
• As entidades fracas precisam estar relacionadas com uma entidade
pertencente ao tipo de entidade proprietária ou identificadora.
• O relacionamento entre ambas é chamado de relacionamento
identificador.
EXERCÍCIOS
Para cada uma das situações abaixo, construa um
diagrama de entidades e relações que descreva a
informação, e proponha um conjunto de tabelas
correspondente ao diagrama.
Situação 1
Uma transportadora aérea pretende implementar uma
base de dados com a seguinte informação:
A transportadora tem vários aviões. Cada avião tem, para
além da matrícula, um nome, a marca do avião, o
número de lugares, e indicação da sua autonomia.
Na transportadora trabalham vários pilotos.
Cada avião faz vários voos. Cada voo deve ter, pelo
menos, a indicação da data e hora em que se efectua,
dos locais de partida e de destino.
Cada voo de um dado avião é pilotado por um piloto.
Situação 2
Uma fábrica pretende implementar uma base de dados para gerir os
"stocks" dos seus armazéns, as encomendas, e as vendas. Para
tornar o problema menos extenso, não vamos aqui considerar a
parte relativa às vendas. Há assim que ter em conta que:
A empresa comercializa vários produtos, cada um dos quais com um
código, um nome, e um preço. Em cada momento a empresa deve
ainda saber qual a quantidade existente no armazém de cada um
dos produtos.
Uma encomenda, que deve ter um número de encomenda e a data em
que foi feita, pode ter vários produtos, mas diz respeito apenas a
um fornecedor.
De cada fornecedor a empresa deseja guardar a informação do seu
nome, número de contribuinte, morada, forma de pagamento,
prazo de pagamento, e um código interno de tipo de fornecedor.
Situação 3
Um grupo de docentes pretende organizar uma conferência e, para guardar
toda a informação relevante, vai ter que criar uma base de dados.
Na conferência são apresentados vários artigos, cada um dos quais com um
título e um número. Cada artigo tem um ou mais autores. De cada autor,
pretende armazenar-se para além do nome, o endereço deemail, e o
nome e morada da instituição a que estão associados.
Há ainda a informação relativa aos participantes na conferência. De cada a
participante deverá ser retida a informação do seu nome, morada e
endereço de email. Além disso, distingue-se entre os participantes que são
estudantes e os que não são. Cada participante não estudante tem de
pagar antecipadamente a inscrição por transferência bancária, pelo que é
necessário guardar o número da transação. Para não pagar, o estudante
tem de enviar antecipadamente um certificado e na base de dados deve
ser armazenado o nome da universidade que o passou.
Situação 4
Uma clínica médica pretende informatizar os seus serviços. Para já querem
começar por informatizar os dados referentes a médicos, a clientes (ou
pacientes) e a consultas.
Na clínica trabalham vários médicos, de várias especialidades diferentes. De
cada médico, identificado internamente por um número de empregado, a
clínica pretende armazenar o nome, especialidade, morada e telefone.
Como é usual, os médicos dão consultas a clientes. A clínica pretende ter
sempre disponível a informação dos nomes e moradas dos seus clientes.
A cada consulta está associado um só médico e um só cliente. Actualmente as
consultas são numeradas para cada um dos médicos, ou seja para cada
médico há uma consulta 1, uma consulta 2, etc. Para a clínica é importante
manter este sistema de identificação das consultas, por forma a poderem
ser introduzidos dados relativos ao tempo em que a clínica ainda não
estava informatizada. Da consulta pretende armazenar-se a data em que
ocorreu, bem como os vários fármacos que foram receitados pelo médico
na consulta.
Situação 5
Um empresa de compra e vende de imóveis pretende informatizar os seus
serviços.
A empresa tem vários casas para venda, cada uma das quais pertencente a
um cliente da empresa. Da casa a empresa quer ter disponível a zona de
localização, o número de assoalhadas, o preço e o ano de construção. Dos
clientes deve ser armazenado o seu nome, morada e nº de telefone. Um
mesmo cliente pode ter várias casas para venda na empresa. Claro está
que, nesses casos, não se quer repetir a informação da morada e nº de
telefone do cliente.
Há ainda os clientes da empresa que, em vez de quererem vender casas,
querem comprar. Desses deve ser armazenado, para além da informação
que se guarda dos outros clientes, a informação acerca dos interesses do
cliente. Dos interesses fazem parte o nº de assoalhadas e zona de
localização da casa que pretendem comprar. Um cliente pode ter interesse
por vários tipos de casas diferentes.
De cada casa que esteja para venda na empresa, deve ainda ser armazenada
a informação de que clientes já a visitaram, e quando.
Situação 6
Pretende-se desenvolver uma base de dados para armazenar informação duma
biblioteca. Tal base de dados deverá conter pelo menos informação referente a:
todos os títulos existentes na biblioteca incluindo, de cada um deles, o ISBN (que é um
código atribuído a nível internacional e que identifica univocamente um livro), o
nome, o ou os autores, a editora, os descritores do livro, a sua classificação;
as localizações (e.g. o nº da prateleira) onde se devem encontram os vários livros (ou
exemplares) de cada um dos títulos;
as informação relevantes sobre as editoras (como nome, telefone, morada, fax, etc);
os leitores da biblioteca, cada um dos quais com um nº de leitor. Dos leitores, a
biblioteca pretende ainda ter mais alguma informação disponível, como o nome,
morada, etc;
a biblioteca pretende, como é natural, ter disponível a informação de que leitores têm
que livros requisitados.
Notas: Os descritores dos livros são como "palavras-chave" que dão indicações sobre
os temas abordados pelos livros. Para uniformizar, os descritores não são livres,
mas escolhidos de entre uma lista de possíveis descritores, sendo cada um deles
identificado por um código.