SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
Base de Dados
Diagramas E-A (cont.)
2018/2019
TPC1
• Numa empresa cada empregado tem no máximo uma habilitação mas
uma dada habilitação pode ser possuída por vários empregados.
• Um empregado está habilitado a operar determinado tipo de
máquina se tiver uma de entre várias habilitações, mas cada
habilitação está associada com a operação de um único tipo de
máquina.
• Possuir uma dada habilitação permite ao empregado manter vários
tipos de máquinas apesar de a manutenção de um tipo de máquina
requerer uma habilitação específica.
TPC1 (cont)
a) Desenhe o diagrama E-A usando as seguintes entidades e
associações:
Entidade Associação Entidade
Habilitação Possuída_por Empregado
Tipo_Máquina Necessita_para_Operação Habilitação
Habilitação Permite_Manutenção Tipo_Máquina
b) Redesenhe o diagrama com as associações
Necessita_para_Operação e Permite_Manutenção combinados numa
só associação M:N Operação_ou_Manutenção
Revisão
• Diagramas E-A
• Entidades, atributos e associações
• Associações 1:1, 1:N, M:N
• Obrigatoriedade de participação
• Decomposição de relações M:N
Sumário
• Associações Complexas
• Situações Ambíguas
• Entidades fracas
• Associação unária e Papel
• Generalização e Especialização
• Agregação
• Restrições não-formalizáveis
• Erros comuns
Exemplo
• Qualquer fornecedor fornece qualquer peça a qualquer cliente
Fornecedor Peça Cliente
F1 P1 C1
F2 P1 C2
F2 P2 C1
Solução: 3 associações?
• Que fornecedores fornecem que peças?
• Que peças são fornecidas a que clientes?
• Que fornecedores fornecem que clientes?
• Que fornecedores fornecem que peças a que clientes?
Fornecedor Peça Cliente
F1 P1 C1
F2 P1 C2
F2 P2 C1
Associações Complexas
• Relacionam mais do que duas entidades entre si
• Devem ser usadas apenas quando o conceito não pode ser
representado por um conjunto de associações binárias
Associações Complexas Grau 1:1:1
• A cada par de ocorrências das entidades B e C está associada apenas
uma ocorrência de A (ou nenhuma)
• Análogo para B e C
Associações Complexas Grau (1:1:N)
• A cada par de ocorrências das entidades B e C está associada uma, várias
ou nenhuma ocorrência de A
• A cada par de ocorrências de A e C está apenas uma ocorrência de B
• A cada par de ocorrências de A e B está apenas uma ocorrência de C
• Análogo para 1:M:N e M:N:P
Associações Complexas Grau 1:1:1
• A cada par de ocorrêmcoas das entidades B e C está associada apenas
uma ocorrência de A (ou nenhuma)
• Análogo para B e C
Solução: 3 associações?
• Que fornecedores fornecem que peças a que clientes?
Fornecedor Peça Cliente
F1 P1 C1
F2 P1 C2
F2 P2 C1
Solução: Associação Complexa (M:N:P)
• Qualquer fornecedor fornece qualquer peça a qualquer cliente
• Decompor em associações 1:N
Solução: Associação Complexa (M:N:P)
• Qualquer fornecedor fornece qualquer peça a qualquer cliente
Fornecimento
Situações Ambíguas (Fan Trap)
• Permite responder às questões:
• Quais os empregados de uma direção?
• Quais os departamentos de uma direção?
• A que direção pertence um empregado?
• A que direção pertence um departamento?
• A que departamento pertence um empregado?
• Quais os empregados de um departamento?
Fan Trap
N:1/1:N
Situações Ambíguas (Chasm Trap)
• E se um empregado pertencer a uma direção mas não pertencer a um
departamento?
Chasm Trap
1:N/1:N
Solução
• Solução com 3 associações
Exercício 1
• Numa companhia cada departamento possui um carro que só pode
ser usado por empregados do departamento devidamente
autorizados. Considere a estrutura
Carro (N_registo, marca)
Departamento (Nome_dep, localização)
Empregado (N_emp, nome_emp, categoria)
Exercicio 1 (cont.)
• Se souber o número de um empregado autorizado, a estrutura
permitirá determiner qual o carro utilizado?
• Se souber o número de registo de um carro poderá saber que
empregados estão autorizados a usá-lo?
• Como pode o diagrama ser estendido (por adição de uma associação)
para que represente utilizadores autorizados?
• Como podem ser representados utilizadores autorizados se for
permitido um novo atributo?
Exercício 2
• Um modelo conceptual representa autores e a classificação por temas
dos seus livros. Discuta as vantagens:
Associação unária e Papel
• O papel pode ser especificado para evitar ambiguidades
funcionário
supervisiona
supervisor supervisionado
1 N
Generalização e Especialização
• Quando entidades obedecem a hierarquia de especialização
• Disjoint/Overlapping (default)
• Herança e atributos
empregado
CC nome
IS-A
freelancer
tarifa_horária
horas_trabalho
contratado
salário_mensal
disjoint
Agregação
• Projetos (executados por departamentos) podem ser monitorizados
por um empregado
Empregado
CC nome
até
monitoriza Projeto Departamento
desde
pid inicio did nome
executa
Restrições não formalizáveis
• Não conseguimos representar todo o tipo de restrições no diagrama
E-A
• Descritos como anexo ao diagrama E-A
Empregado Departamento
trabalha
cc did nome
N 1
nome
orçamento
desde até
Restrições de Integridade:
(IC-1) Empregados têm de trabalhar pelo menos três meses num departamento
Erros comuns
• Usar atributos que podem ser calculados (# funcionários)
• Entidades sem atributos
• Restrições anexas que podem ser modeladas
• Entidades com uma única instância (e.g. empresa para base de dados
da empresa)
• Partes isoladas do diagrama
• Agregação de várias associações (agregação deve apenas conter uma
associação)
Resumo
Base de Dados
Modelo Relacional
2018/2019
Sumário
• Estrutura de Bases de Dados Relacionais
• Modelo Relacional
• Estruturas, atributos
• Base de dados relacional
• Chaves
Modelo Relacional
• Criado em 1970 por Edgar F. Codd
• O modelo relacional é independente da implementação
• Facilmente traduzido para base de dados relacionais, mas também
para muitas outras aplicações
• Um modelo formal simples e elegante baseado na teoria dos
conjuntos: permite rapida deteção de anomalias
Ideias fundamentais
• Tudo é representado por relações (conjunto de tuplos)
• Todos os elementos de uma relação devem respeitar o seu esquema
• Todas as operações sobre os dados são operações sobre conjuntos
• Situações que não podem ocorrer são especificadas como restrições
Exemplo de uma Relação
• Como tabela
• Ou como conjunto:
Cliente {(Silva, Av. da Liberdade, Lisboa), (Antunes, Rua da Prata, Lisboa), (Costa,
Av. Aliados, Porto)}
cliente_nome cliente_rua cliente_cidade
Silva Av. da Liberdade Lisboa
Antunes Rua da Prata Lisboa
Costa Av. Aliados Porto
Estrutura Básica
• Formalmente, dados conjuntos D1, D2, …, Dn, a relação r é um subconjunto de D1 x D2 x … x Dn
Logo, a relação é um conjunto de n-tuplos (a1, a2, …, an) onde ai e Di
• Exemplo: Se
• cliente_nome = {Silva, Antunes, Costa}
• cliente_rua = {Av. Da Liberdade, Rua da Prata, Av. Aliados}
• cliente_cidade = {Lisboa, Porto}
Então
r = {(Silva, Av. da Liberdade, Lisboa), (Antunes, Rua da Prata, Lisboa),
(Costa, Av. Aliados, Porto)}
É uma relação sobre
cliente_nome x cliente_rua x cliente_cidade
Tipo de Atributos
• Cada atributo de uma relação tem um nome
• O conjunto de valores permitidos por cada atributo é designado por
domínio
• Valores dos atributos são necessariamente atómicos
i.e. um único valor indivisivel
Exemplo Entidade
• Consideremos a entidade Pessoa com os atributos: NISS, primeiro
nome, último nome, idade
• Pessoa(NISS, primeiro_nome, ultimo_nome, idade)
• Onde os domínios dos atributos são:
• NISS – conjunto, S, dos números de segurança social
• primeiro_nome – conjunto, A, de sequências finitas de letras
• ultimo_nome – conjunto, A, de sequências finitas de letras
• idade – conjunto, N, dos inteiros positivos < 150
• Função: (NISS, primeiro_nome, ultimo_nome, idade): Pessoa −> S x A x A x N
Esquema da Relação
• A1, A2, …, An são atributos
• R = (A1, A2, …, An) é o esquema da relação
• Exemplo
Cliente=(cliente_nome, cliente_rua, cliente_cidade)
• r(R) é uma relação no esquema R
• Exemplo
cliente(Cliente)
• Ou
cliente(cliente_nome, cliente_rua, cliente_cidade)
Instâncias da Relação
• Os valores (instâncias) de uma relação são especificados por uma
tabela
• Um elemento t de r é um tuplo, representado por uma linha da tabela
cliente_nome cliente_rua cliente_cidade
Silva Av. da Liberdade Lisboa
Antunes Rua da Prata Lisboa
Costa Av. Aliados Porto
Atributos (colunas)
tuplos
(linhas)
Propriedades das Relações
• Não contém tuplos duplicados (é um conjunto)
• Não contém nome de atributos duplicados
• A ordem dos tuplos é irrelevante
• A ordem dos atributos é irrelevante
Base de Dados Relacional
• A Base de Dados consiste em múltiplas relações cujo conteúdo varia no tempo
• Esquema relacional é a descrição das estrutura das relações de BD Relacional
• A informação sobre a empresa é decomposta por partes, onde cada relação
guarda uma parte da informação
• conta: guarda informação sobre contas
• titular: guarda informação sobre a titularidade de clientes sobre contas
• cliente: guarda informação sobre clientes
• Porque não armazenar toda a informação numa só relação?
banco(conta_numero, saldo, cliente_nome, …)
A base de dados banco
conta_numero agencia_nome saldo
A-102 Lumiar 500
A-217 Campolide 1000
A-222 Caparica 1500
A-201 Campanhã 700
cliente_nome cliente_rua cliente_cidade
Silva Av. da Liberdade Lisboa
Antunes Rua da Prata Lisboa
Costa Av. Aliados Porto
Pereira Av. da Liberdade Lisboa
Nunes Rua Forte Almada
cliente_nome conta_numero
Silva A-102
Antunes A-101
Antunes A-305
Costa A-201
Pereira A-217
Nunes A-222
Chaves
• Seja K ⊆ R
• K é superchave de R se os valores para K forem suficientes para identificar
um único tuplo de cada possivel relação r(R)
• Possivel r significa uma relação que poderia existir na organização que estamos a
modelar
• Exemplo: {cliente_nome, cliente_rua} e {cliente_nome} são ambos supercahve de
cliente, se não for possivel ter dois clientes com o mesmo nome
• K é uma chave candidate se K é mínimo
• Exemplo: {cliente_nome} é chave candidate para cliente, uma vez que é superchave
mas não contém subconjuntos que sejam superchave
• Chave primária é uma chave candidate usada como identificador principal
de um tuplo
Chaves na relação cliente
• Será {cliente_nome, cliente_rua, cliente_cidade} uma superchave?
• Será {nome_rua} chave candidate?
• Será {nome_rua, nome_cidade} superchave?
cliente_nome cliente_rua cliente_cidade
Silva Av. da Liberdade Lisboa
Antunes Rua da Prata Lisboa
Costa Av. Aliados Porto
Pereira Av. da Liberdade Lisboa
Nunes Rua Forte Almada
Chaves na relação titular
• Quais as chaves candidatas?
cliente_nome conta_numero
Silva A-102
Antunes A-101
Antunes A-305
Costa A-201
Pereira A-217
Nunes A-222
Chaves Estrangeiras
• Uma chave estrangeira é uma conjunte de atributos que referencia a
chave primária (ou chave candidata) de outra tabela
• Obriga a que um valor que apareça numa relação apareça igualmente
numa segunda relação
• Exemplo: Se “Lumiar” é o nome de uma agência que aparece nos tuplos de
uma relação conta, então existe obrigatoriamente um tuplo na relação
agências com valor “Lumiar”
Exemplos de Chaves Estrangeiras
conta_numero agencia_nome saldo
A-102 Lumiar 500
A-217 Campolide 1000
A-222 Caparica 1500
A-201 Campanhã 700
cliente_nome cliente_rua cliente_cidade
Silva Av. da Liberdade Lisboa
Antunes Rua da Prata Lisboa
Costa Av. Aliados Porto
Pereira Av. da Liberdade Lisboa
Nunes Rua Forte Almada
cliente_nome conta_numero
Silva A-102
Antunes A-101
Antunes A-305
Costa A-201
Pereira A-217
Nunes A-222
Base de Dados
SQL
2018/2019
Sumário
• Linguagem de Definição de Dados
• Criar Base de Dados
• Popular Base de Dados
• Trabalho prático
• Linguagem de Manipulação de Dados
• Query
• Trabalho prático
Base de Dados exemplo
• conta(conta_numero, agencia_nome, saldo)
• agencia(agencia_nome, agencia_cidade)
• cliente(cliente_nome, cliente_rua, cliente_cidade)
• emprestimo(emprestimo_numero, agencia_nome, quantia)
• titular(nome_cliente, conta_numero)
• devedor(nome_cliente, emprestimo_numero)
Linguagem de Definição de Dados
• Permite a especificação não só do conjunto de relações como
também a informação sobre cada relação incluindo:
• O esquema de cada relação
• O domínio de valores associados a cada atributo
• Restrições de integridade
• O conjunto de índices a manter para cada relação
• Informação de segurança e autorização sobre cada relação
• A estrutura física de armazenamento de uma relação no disco
Tipos de domínios em SQL
• char(n) – string de caracteres de tamanho fixo, tamanho n
especificado pelo utilizador
• Varchar(n) – string de comprimento variável com número máximo de
caracteres n especificado pelo utilizador
• Integer – inteiro
• Numeric(p,d) – número de virgula fixa, com precisão do número de
digitos p e d especificado pelo utilizador
• … muitos outros
Criação de Tabelas
• Em SQL uma relação é definida usando o comando create table:
CREATE TABLE r (
A1 D1, A1 D2, …, An Dn,
constraint1, …, constraintm
)
• r é o nome da relação
• cada Ai é um atributo no esquema da relação r
• Di é o tipo de valores no domínio do atributo Ai
CREATE TABLE agencia (
agencia_nome char(15),
agencia_cidade char(30)
)
Restrições de Integridade
• Assegurar valores não nulos: not null
• Definir identificador: primary key (A1, …, An)
CREATE TABLE agencia (
agencia_nome CHAR(15),
agencia_cidade CHAR(30) NOT NULL,
PRIMARY KEY (agencia_nome)
)
• Chave primária implica que atributo não é null
Apagar e Alterar Tabelas
• O comando drop table apaga toda a informação da relação
DROP TABLE r
• O comando alter table é usado para adicionar ou remover atributos
de uma relação já existente
ALTER TABLE r ADD A D
ALTER TABLE r DROP A
• Onde A é o nome do atributo e D o dominio do atributo
• Ao adicionar um atributo, este assumirá o valor null para todos os tuplos já
existentes
• A remoção de atributos não é suportada por muitos sistemas de BD
Inserção de Tuplos
• O comando insert into permite inserir novos tuplos na tabela
• Inserir um novo tuplo na tabela conta:
INSERT INTO conta
VALUES (‘A-9732’, ‘Campolide’, 1200)
Ou
INSERT INTO conta (agencia_nome, saldo, conta_numero) VALUES (‘Campolide’,
1200, ‘A-9732’)
Classroom: TP_Folha1
Estrutura Básica de uma Query
• O formato típico de uma query SQL é:
SELECT A1, A2, …, An
FROM r1, r2, …, rm
WHERE P
• Ai representa um atributo
• Ri representa uma relação
• P é o predicado
• O resultado de uma query é uma relação
A clausula SELECT
• O comando SELECT lista os atributos desejados no resultado da query
• Exemplo: encontrar nomes de todas as agências na relação
empréstimo:
SELECT agencia_nome
FROM emprestimo
• Nota: As palavras-chave SQL são case insensitive
A clausula SELECT (cont)
• O SQL permite duplicados nas relações assim como no resultado da
query
• Para forçar a eliminação de resultados duplicados, podemos usar a
palavra chave DISTINCT na query
• Exemplo: encontrar nomes de todas as agências na relação
empréstimo e remover duplicados:
SELECT DISTINCT agencia_nome
FROM emprestimo
A clausula SELECT (cont)
• Um asterisco no comando select significa “todos os atributos”
SELECT *
FROM emprestimo
• O comando SQL pode conter expressões aritméticas que envolvam
operações +,-,* e / operando sobre constants e/ou atributos de
tuplos
SELECT empréstimo_numero, quantia*100
FROM emprestimo
• Retorna uma relação com o valor da quantia multiplicado por 100.
A clausula WHERE
• A clausula WHERE especifica as condições que o resultado deve satisfazer
• Exemplo: encontrar todos os número de empréstimo para empréstimos
feitos na agência de Campolide e cuja quantia é superior a 1200€
SELECT empréstimo_numero
FROM empréstimo
WHERE agencia_nome = ‘Campolide’ AND quantia > 1200
• Resultados de comparações podem ser combinados através de operadores
lógicos AND, OR ou NOT
• As comparações podem ser aplicadas ao resultado de expressões
aritméticas
A clausula WHERE
• O SQL possui um operador de comparação BETWEEN
• Exemplo: encontrar todos os número de empréstimo para
empréstimos cuja quantia é superior a 1200€ e menor que 5000€
SELECT empréstimo_numero
FROM empréstimo
WHERE quantia BETWEEN 1200 AND 5000
A clausula FROM
• A cláusula FROM lista as relações envolvidas na query
• Corresponde ao produto cartesiano da operação
• Exemplo: encontrar produto cartesiano titular x emprestimo
SELECT *
FROM titular, empréstimo
A clausula FROM (cont)
• Exemplo: encontrar nome, número de empréstimo e quantia de
todos os clientes que têm um empréstimo na agência de Campolide
SELECT cliente_nome, empréstimo.empréstimo_numero, quantia
FROM devedor, empréstimo
WHERE empréstimo.empréstimo_numero = devedor.empréstimo_numero
AND agencia_nome = ‘Campolide’
Renomear
• O SQL permite renomear as relações e atributos utilizando a clausula
AS:
nome_antigo AS novo_nome
• Exemplo: encontrar nome, número de empréstimo e quantia de
todos os clientes; muda o nome da coluna emprestimo_numero para
emprestimo_id
SELECT cliente_nome, empréstimo.empréstimo_numero AS empréstimo_id, quantia
FROM devedor, empréstimo
WHERE empréstimo.empréstimo_numero = devedor.empréstimo_numero
Variáveis Tuplo
• Variáveis de tuplo são definidas na clausula FROM através da
utilização (opcional) da cláusula AS:
• Exemplo: encontrar nome, número de empréstimo e quantia de
todos os clientes que têm empréstimo
SELECT D.cliente_nome, D.empréstimo_numero, E.quantia
FROM devedor AS D, empréstimo AS E
WHERE E.empréstimo_numero = D.empréstimo_numero
Operadores de Strings
• O operador LIKE permite pesquisar strings utilizando padrões descritos
com dois caracteres especiais
• Percentagem (%) – coincide com qualquer substring
• Underscore (_) – coincide com qualquer caracter
• Exemplo: encontrar nome de todos os clientes cujo nome da rua contenha
Liberdade
SELECT cliente_nome
FROM cliente
WHERE cliente_rua LIKE ‘%Liberdade%’
• O SQL suporta muitas outras operações sobre strings
Ordenação de Tuplos
• Listar por ordem alfabética os nome de todso os clientes com um
empréstimo na agência de Campolide
SELECT DISTINCT D.cliente_nome
FROM devedor AS D, empréstimo AS E
WHERE E.empréstimo_numero = D.empréstimo_numero
AND agencia_nome = ‘Campolide’
ORDER BY cliente_nome
• Para especificar ordem o sentido da ordem podemos usar a palavra
DESC ou ASC (default)
ORDER BY cliente_nome DESC
Classroom: TP_Folha2

Mais conteúdo relacionado

Semelhante a Base de Dados - Diagramas E-A (cont.)

Modelagem de dados usando o mer parte 1
Modelagem de dados usando o mer parte 1Modelagem de dados usando o mer parte 1
Modelagem de dados usando o mer parte 1Elaine Cecília Gatto
 
Aula3BD-Modelo-Entidade-Relacionamento1.pdf
Aula3BD-Modelo-Entidade-Relacionamento1.pdfAula3BD-Modelo-Entidade-Relacionamento1.pdf
Aula3BD-Modelo-Entidade-Relacionamento1.pdfDanielaJoaoGoularted
 
TI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosTI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosEstratégia Concursos
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalMariana Hiyori
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.pptAlan5263
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaGabriel Moura
 
Banco de Dados 1 - Semana 5
Banco de Dados 1 - Semana 5Banco de Dados 1 - Semana 5
Banco de Dados 1 - Semana 5Eder Samaniego
 
bd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfbd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfssuser69006f
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Cláudio Amaral
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 
Introdução ao BI
Introdução ao BIIntrodução ao BI
Introdução ao BIpichiliani
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Miguel Aquino
 
Evoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoEvoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoRafael Portela
 
Analise estruturada
Analise estruturadaAnalise estruturada
Analise estruturadaUNIPsystem
 

Semelhante a Base de Dados - Diagramas E-A (cont.) (20)

Modelagem de dados usando o mer parte 1
Modelagem de dados usando o mer parte 1Modelagem de dados usando o mer parte 1
Modelagem de dados usando o mer parte 1
 
Aula3BD-Modelo-Entidade-Relacionamento1.pdf
Aula3BD-Modelo-Entidade-Relacionamento1.pdfAula3BD-Modelo-Entidade-Relacionamento1.pdf
Aula3BD-Modelo-Entidade-Relacionamento1.pdf
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
TI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de DadosTI para Concursos: Modelagem Conceitual de Bancos de Dados
TI para Concursos: Modelagem Conceitual de Bancos de Dados
 
Banco de Dados Relacional Estendido
Banco de Dados Relacional EstendidoBanco de Dados Relacional Estendido
Banco de Dados Relacional Estendido
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semana
 
Banco de Dados 1 - Semana 5
Banco de Dados 1 - Semana 5Banco de Dados 1 - Semana 5
Banco de Dados 1 - Semana 5
 
bd_aula02-IPMY.pdf
bd_aula02-IPMY.pdfbd_aula02-IPMY.pdf
bd_aula02-IPMY.pdf
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Banco de Dados Relacional Estendido
Banco de Dados Relacional EstendidoBanco de Dados Relacional Estendido
Banco de Dados Relacional Estendido
 
Aplicativo aula02
Aplicativo aula02Aplicativo aula02
Aplicativo aula02
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Introdução ao BI
Introdução ao BIIntrodução ao BI
Introdução ao BI
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
Evoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de ContratoEvoluindo Apps e Serviços com Testes de Contrato
Evoluindo Apps e Serviços com Testes de Contrato
 
Analise estruturada
Analise estruturadaAnalise estruturada
Analise estruturada
 
02 arquivos
02 arquivos02 arquivos
02 arquivos
 

Mais de Mariana Hiyori

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus OlímpicoMariana Hiyori
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados RelacionaisMariana Hiyori
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalMariana Hiyori
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularMariana Hiyori
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de ComputadoresMariana Hiyori
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2Mariana Hiyori
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoMariana Hiyori
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)Mariana Hiyori
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)Mariana Hiyori
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)Mariana Hiyori
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)Mariana Hiyori
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)Mariana Hiyori
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)Mariana Hiyori
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)Mariana Hiyori
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)Mariana Hiyori
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)Mariana Hiyori
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do ConventoMariana Hiyori
 
SQL - Operações Relacionais
SQL - Operações RelacionaisSQL - Operações Relacionais
SQL - Operações RelacionaisMariana Hiyori
 
Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011Mariana Hiyori
 
Deco Proteste - Viver em Condomínio
Deco Proteste - Viver em CondomínioDeco Proteste - Viver em Condomínio
Deco Proteste - Viver em CondomínioMariana Hiyori
 

Mais de Mariana Hiyori (20)

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus Olímpico
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra Relacional
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade Curricular
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - Resumo
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do Convento
 
SQL - Operações Relacionais
SQL - Operações RelacionaisSQL - Operações Relacionais
SQL - Operações Relacionais
 
Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011Dinheiros & Direitos - Julho/Agosto 2011
Dinheiros & Direitos - Julho/Agosto 2011
 
Deco Proteste - Viver em Condomínio
Deco Proteste - Viver em CondomínioDeco Proteste - Viver em Condomínio
Deco Proteste - Viver em Condomínio
 

Último

Livro infantil: A onda da raiva. pdf-crianças
Livro infantil: A onda da raiva. pdf-criançasLivro infantil: A onda da raiva. pdf-crianças
Livro infantil: A onda da raiva. pdf-criançasMonizeEvellin2
 
1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf
1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf
1. Aula de sociologia - 1º Ano - Émile Durkheim.pdfaulasgege
 
Peça de teatro infantil: A cigarra e as formigas
Peça de teatro infantil: A cigarra e as formigasPeça de teatro infantil: A cigarra e as formigas
Peça de teatro infantil: A cigarra e as formigasBibliotecaViatodos
 
UFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdfUFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdfManuais Formação
 
Apresentação sobre Robots e processos educativos
Apresentação sobre Robots e processos educativosApresentação sobre Robots e processos educativos
Apresentação sobre Robots e processos educativosFernanda Ledesma
 
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdfROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdfMarcianaClaudioClaud
 
Gramática - Texto - análise e construção de sentido - Moderna.pdf
Gramática - Texto - análise e construção de sentido - Moderna.pdfGramática - Texto - análise e construção de sentido - Moderna.pdf
Gramática - Texto - análise e construção de sentido - Moderna.pdfKelly Mendes
 
Modelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresModelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresAna Isabel Correia
 
472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...
472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...
472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...GisellySobral
 
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PEEdital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PEblogdoelvis
 
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdfCarinaSofiaDiasBoteq
 
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...Eró Cunha
 
SQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfSQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfAndersonW5
 
O que é, de facto, a Educação de Infância
O que é, de facto, a Educação de InfânciaO que é, de facto, a Educação de Infância
O que é, de facto, a Educação de InfânciaHenrique Santos
 
ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024
ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024
ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024azulassessoria9
 
Nós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
Nós Propomos! Canil/Gatil na Sertã - Amigos dos AnimaisNós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
Nós Propomos! Canil/Gatil na Sertã - Amigos dos AnimaisIlda Bicacro
 
4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdfLindinhaSilva1
 
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptxSlides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptxLuizHenriquedeAlmeid6
 
Acróstico - Maio Laranja
Acróstico  - Maio Laranja Acróstico  - Maio Laranja
Acróstico - Maio Laranja Mary Alvarenga
 

Último (20)

Livro infantil: A onda da raiva. pdf-crianças
Livro infantil: A onda da raiva. pdf-criançasLivro infantil: A onda da raiva. pdf-crianças
Livro infantil: A onda da raiva. pdf-crianças
 
Poema - Aedes Aegypt.
Poema - Aedes Aegypt.Poema - Aedes Aegypt.
Poema - Aedes Aegypt.
 
1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf
1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf
1. Aula de sociologia - 1º Ano - Émile Durkheim.pdf
 
Peça de teatro infantil: A cigarra e as formigas
Peça de teatro infantil: A cigarra e as formigasPeça de teatro infantil: A cigarra e as formigas
Peça de teatro infantil: A cigarra e as formigas
 
UFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdfUFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdf
 
Apresentação sobre Robots e processos educativos
Apresentação sobre Robots e processos educativosApresentação sobre Robots e processos educativos
Apresentação sobre Robots e processos educativos
 
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdfROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
 
Gramática - Texto - análise e construção de sentido - Moderna.pdf
Gramática - Texto - análise e construção de sentido - Moderna.pdfGramática - Texto - análise e construção de sentido - Moderna.pdf
Gramática - Texto - análise e construção de sentido - Moderna.pdf
 
Modelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresModelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autores
 
472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...
472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...
472037515-Coelho-Nelly-Novaes-Literatura-Infantil-teoria-analise-e-didatica-p...
 
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PEEdital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
 
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
 
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...Regulamento do Festival de Teatro Negro -  FESTIAFRO 2024 - 10ª edição -  CEI...
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
 
SQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdfSQL Parte 1 - Criação de Banco de Dados.pdf
SQL Parte 1 - Criação de Banco de Dados.pdf
 
O que é, de facto, a Educação de Infância
O que é, de facto, a Educação de InfânciaO que é, de facto, a Educação de Infância
O que é, de facto, a Educação de Infância
 
ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024
ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024
ATIVIDADE 1 - ENF - ENFERMAGEM BASEADA EM EVIDÊNCIAS - 52_2024
 
Nós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
Nós Propomos! Canil/Gatil na Sertã - Amigos dos AnimaisNós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
Nós Propomos! Canil/Gatil na Sertã - Amigos dos Animais
 
4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf
 
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptxSlides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
Slides Lição 07, Central Gospel, As Duas Testemunhas Do Final Dos Tempos.pptx
 
Acróstico - Maio Laranja
Acróstico  - Maio Laranja Acróstico  - Maio Laranja
Acróstico - Maio Laranja
 

Base de Dados - Diagramas E-A (cont.)

  • 1. Base de Dados Diagramas E-A (cont.) 2018/2019
  • 2. TPC1 • Numa empresa cada empregado tem no máximo uma habilitação mas uma dada habilitação pode ser possuída por vários empregados. • Um empregado está habilitado a operar determinado tipo de máquina se tiver uma de entre várias habilitações, mas cada habilitação está associada com a operação de um único tipo de máquina. • Possuir uma dada habilitação permite ao empregado manter vários tipos de máquinas apesar de a manutenção de um tipo de máquina requerer uma habilitação específica.
  • 3. TPC1 (cont) a) Desenhe o diagrama E-A usando as seguintes entidades e associações: Entidade Associação Entidade Habilitação Possuída_por Empregado Tipo_Máquina Necessita_para_Operação Habilitação Habilitação Permite_Manutenção Tipo_Máquina b) Redesenhe o diagrama com as associações Necessita_para_Operação e Permite_Manutenção combinados numa só associação M:N Operação_ou_Manutenção
  • 4. Revisão • Diagramas E-A • Entidades, atributos e associações • Associações 1:1, 1:N, M:N • Obrigatoriedade de participação • Decomposição de relações M:N
  • 5. Sumário • Associações Complexas • Situações Ambíguas • Entidades fracas • Associação unária e Papel • Generalização e Especialização • Agregação • Restrições não-formalizáveis • Erros comuns
  • 6. Exemplo • Qualquer fornecedor fornece qualquer peça a qualquer cliente Fornecedor Peça Cliente F1 P1 C1 F2 P1 C2 F2 P2 C1
  • 7. Solução: 3 associações? • Que fornecedores fornecem que peças? • Que peças são fornecidas a que clientes? • Que fornecedores fornecem que clientes? • Que fornecedores fornecem que peças a que clientes? Fornecedor Peça Cliente F1 P1 C1 F2 P1 C2 F2 P2 C1
  • 8. Associações Complexas • Relacionam mais do que duas entidades entre si • Devem ser usadas apenas quando o conceito não pode ser representado por um conjunto de associações binárias
  • 9. Associações Complexas Grau 1:1:1 • A cada par de ocorrências das entidades B e C está associada apenas uma ocorrência de A (ou nenhuma) • Análogo para B e C
  • 10. Associações Complexas Grau (1:1:N) • A cada par de ocorrências das entidades B e C está associada uma, várias ou nenhuma ocorrência de A • A cada par de ocorrências de A e C está apenas uma ocorrência de B • A cada par de ocorrências de A e B está apenas uma ocorrência de C • Análogo para 1:M:N e M:N:P
  • 11. Associações Complexas Grau 1:1:1 • A cada par de ocorrêmcoas das entidades B e C está associada apenas uma ocorrência de A (ou nenhuma) • Análogo para B e C
  • 12. Solução: 3 associações? • Que fornecedores fornecem que peças a que clientes? Fornecedor Peça Cliente F1 P1 C1 F2 P1 C2 F2 P2 C1
  • 13. Solução: Associação Complexa (M:N:P) • Qualquer fornecedor fornece qualquer peça a qualquer cliente • Decompor em associações 1:N
  • 14. Solução: Associação Complexa (M:N:P) • Qualquer fornecedor fornece qualquer peça a qualquer cliente Fornecimento
  • 15. Situações Ambíguas (Fan Trap) • Permite responder às questões: • Quais os empregados de uma direção? • Quais os departamentos de uma direção? • A que direção pertence um empregado? • A que direção pertence um departamento? • A que departamento pertence um empregado? • Quais os empregados de um departamento? Fan Trap N:1/1:N
  • 16. Situações Ambíguas (Chasm Trap) • E se um empregado pertencer a uma direção mas não pertencer a um departamento? Chasm Trap 1:N/1:N
  • 17. Solução • Solução com 3 associações
  • 18. Exercício 1 • Numa companhia cada departamento possui um carro que só pode ser usado por empregados do departamento devidamente autorizados. Considere a estrutura Carro (N_registo, marca) Departamento (Nome_dep, localização) Empregado (N_emp, nome_emp, categoria)
  • 19. Exercicio 1 (cont.) • Se souber o número de um empregado autorizado, a estrutura permitirá determiner qual o carro utilizado? • Se souber o número de registo de um carro poderá saber que empregados estão autorizados a usá-lo? • Como pode o diagrama ser estendido (por adição de uma associação) para que represente utilizadores autorizados? • Como podem ser representados utilizadores autorizados se for permitido um novo atributo?
  • 20. Exercício 2 • Um modelo conceptual representa autores e a classificação por temas dos seus livros. Discuta as vantagens:
  • 21. Associação unária e Papel • O papel pode ser especificado para evitar ambiguidades funcionário supervisiona supervisor supervisionado 1 N
  • 22. Generalização e Especialização • Quando entidades obedecem a hierarquia de especialização • Disjoint/Overlapping (default) • Herança e atributos empregado CC nome IS-A freelancer tarifa_horária horas_trabalho contratado salário_mensal disjoint
  • 23. Agregação • Projetos (executados por departamentos) podem ser monitorizados por um empregado Empregado CC nome até monitoriza Projeto Departamento desde pid inicio did nome executa
  • 24. Restrições não formalizáveis • Não conseguimos representar todo o tipo de restrições no diagrama E-A • Descritos como anexo ao diagrama E-A Empregado Departamento trabalha cc did nome N 1 nome orçamento desde até Restrições de Integridade: (IC-1) Empregados têm de trabalhar pelo menos três meses num departamento
  • 25. Erros comuns • Usar atributos que podem ser calculados (# funcionários) • Entidades sem atributos • Restrições anexas que podem ser modeladas • Entidades com uma única instância (e.g. empresa para base de dados da empresa) • Partes isoladas do diagrama • Agregação de várias associações (agregação deve apenas conter uma associação)
  • 27. Base de Dados Modelo Relacional 2018/2019
  • 28. Sumário • Estrutura de Bases de Dados Relacionais • Modelo Relacional • Estruturas, atributos • Base de dados relacional • Chaves
  • 29. Modelo Relacional • Criado em 1970 por Edgar F. Codd • O modelo relacional é independente da implementação • Facilmente traduzido para base de dados relacionais, mas também para muitas outras aplicações • Um modelo formal simples e elegante baseado na teoria dos conjuntos: permite rapida deteção de anomalias
  • 30. Ideias fundamentais • Tudo é representado por relações (conjunto de tuplos) • Todos os elementos de uma relação devem respeitar o seu esquema • Todas as operações sobre os dados são operações sobre conjuntos • Situações que não podem ocorrer são especificadas como restrições
  • 31. Exemplo de uma Relação • Como tabela • Ou como conjunto: Cliente {(Silva, Av. da Liberdade, Lisboa), (Antunes, Rua da Prata, Lisboa), (Costa, Av. Aliados, Porto)} cliente_nome cliente_rua cliente_cidade Silva Av. da Liberdade Lisboa Antunes Rua da Prata Lisboa Costa Av. Aliados Porto
  • 32. Estrutura Básica • Formalmente, dados conjuntos D1, D2, …, Dn, a relação r é um subconjunto de D1 x D2 x … x Dn Logo, a relação é um conjunto de n-tuplos (a1, a2, …, an) onde ai e Di • Exemplo: Se • cliente_nome = {Silva, Antunes, Costa} • cliente_rua = {Av. Da Liberdade, Rua da Prata, Av. Aliados} • cliente_cidade = {Lisboa, Porto} Então r = {(Silva, Av. da Liberdade, Lisboa), (Antunes, Rua da Prata, Lisboa), (Costa, Av. Aliados, Porto)} É uma relação sobre cliente_nome x cliente_rua x cliente_cidade
  • 33. Tipo de Atributos • Cada atributo de uma relação tem um nome • O conjunto de valores permitidos por cada atributo é designado por domínio • Valores dos atributos são necessariamente atómicos i.e. um único valor indivisivel
  • 34. Exemplo Entidade • Consideremos a entidade Pessoa com os atributos: NISS, primeiro nome, último nome, idade • Pessoa(NISS, primeiro_nome, ultimo_nome, idade) • Onde os domínios dos atributos são: • NISS – conjunto, S, dos números de segurança social • primeiro_nome – conjunto, A, de sequências finitas de letras • ultimo_nome – conjunto, A, de sequências finitas de letras • idade – conjunto, N, dos inteiros positivos < 150 • Função: (NISS, primeiro_nome, ultimo_nome, idade): Pessoa −> S x A x A x N
  • 35. Esquema da Relação • A1, A2, …, An são atributos • R = (A1, A2, …, An) é o esquema da relação • Exemplo Cliente=(cliente_nome, cliente_rua, cliente_cidade) • r(R) é uma relação no esquema R • Exemplo cliente(Cliente) • Ou cliente(cliente_nome, cliente_rua, cliente_cidade)
  • 36. Instâncias da Relação • Os valores (instâncias) de uma relação são especificados por uma tabela • Um elemento t de r é um tuplo, representado por uma linha da tabela cliente_nome cliente_rua cliente_cidade Silva Av. da Liberdade Lisboa Antunes Rua da Prata Lisboa Costa Av. Aliados Porto Atributos (colunas) tuplos (linhas)
  • 37. Propriedades das Relações • Não contém tuplos duplicados (é um conjunto) • Não contém nome de atributos duplicados • A ordem dos tuplos é irrelevante • A ordem dos atributos é irrelevante
  • 38. Base de Dados Relacional • A Base de Dados consiste em múltiplas relações cujo conteúdo varia no tempo • Esquema relacional é a descrição das estrutura das relações de BD Relacional • A informação sobre a empresa é decomposta por partes, onde cada relação guarda uma parte da informação • conta: guarda informação sobre contas • titular: guarda informação sobre a titularidade de clientes sobre contas • cliente: guarda informação sobre clientes • Porque não armazenar toda a informação numa só relação? banco(conta_numero, saldo, cliente_nome, …)
  • 39. A base de dados banco conta_numero agencia_nome saldo A-102 Lumiar 500 A-217 Campolide 1000 A-222 Caparica 1500 A-201 Campanhã 700 cliente_nome cliente_rua cliente_cidade Silva Av. da Liberdade Lisboa Antunes Rua da Prata Lisboa Costa Av. Aliados Porto Pereira Av. da Liberdade Lisboa Nunes Rua Forte Almada cliente_nome conta_numero Silva A-102 Antunes A-101 Antunes A-305 Costa A-201 Pereira A-217 Nunes A-222
  • 40. Chaves • Seja K ⊆ R • K é superchave de R se os valores para K forem suficientes para identificar um único tuplo de cada possivel relação r(R) • Possivel r significa uma relação que poderia existir na organização que estamos a modelar • Exemplo: {cliente_nome, cliente_rua} e {cliente_nome} são ambos supercahve de cliente, se não for possivel ter dois clientes com o mesmo nome • K é uma chave candidate se K é mínimo • Exemplo: {cliente_nome} é chave candidate para cliente, uma vez que é superchave mas não contém subconjuntos que sejam superchave • Chave primária é uma chave candidate usada como identificador principal de um tuplo
  • 41. Chaves na relação cliente • Será {cliente_nome, cliente_rua, cliente_cidade} uma superchave? • Será {nome_rua} chave candidate? • Será {nome_rua, nome_cidade} superchave? cliente_nome cliente_rua cliente_cidade Silva Av. da Liberdade Lisboa Antunes Rua da Prata Lisboa Costa Av. Aliados Porto Pereira Av. da Liberdade Lisboa Nunes Rua Forte Almada
  • 42. Chaves na relação titular • Quais as chaves candidatas? cliente_nome conta_numero Silva A-102 Antunes A-101 Antunes A-305 Costa A-201 Pereira A-217 Nunes A-222
  • 43. Chaves Estrangeiras • Uma chave estrangeira é uma conjunte de atributos que referencia a chave primária (ou chave candidata) de outra tabela • Obriga a que um valor que apareça numa relação apareça igualmente numa segunda relação • Exemplo: Se “Lumiar” é o nome de uma agência que aparece nos tuplos de uma relação conta, então existe obrigatoriamente um tuplo na relação agências com valor “Lumiar”
  • 44. Exemplos de Chaves Estrangeiras conta_numero agencia_nome saldo A-102 Lumiar 500 A-217 Campolide 1000 A-222 Caparica 1500 A-201 Campanhã 700 cliente_nome cliente_rua cliente_cidade Silva Av. da Liberdade Lisboa Antunes Rua da Prata Lisboa Costa Av. Aliados Porto Pereira Av. da Liberdade Lisboa Nunes Rua Forte Almada cliente_nome conta_numero Silva A-102 Antunes A-101 Antunes A-305 Costa A-201 Pereira A-217 Nunes A-222
  • 46. Sumário • Linguagem de Definição de Dados • Criar Base de Dados • Popular Base de Dados • Trabalho prático • Linguagem de Manipulação de Dados • Query • Trabalho prático
  • 47. Base de Dados exemplo • conta(conta_numero, agencia_nome, saldo) • agencia(agencia_nome, agencia_cidade) • cliente(cliente_nome, cliente_rua, cliente_cidade) • emprestimo(emprestimo_numero, agencia_nome, quantia) • titular(nome_cliente, conta_numero) • devedor(nome_cliente, emprestimo_numero)
  • 48. Linguagem de Definição de Dados • Permite a especificação não só do conjunto de relações como também a informação sobre cada relação incluindo: • O esquema de cada relação • O domínio de valores associados a cada atributo • Restrições de integridade • O conjunto de índices a manter para cada relação • Informação de segurança e autorização sobre cada relação • A estrutura física de armazenamento de uma relação no disco
  • 49. Tipos de domínios em SQL • char(n) – string de caracteres de tamanho fixo, tamanho n especificado pelo utilizador • Varchar(n) – string de comprimento variável com número máximo de caracteres n especificado pelo utilizador • Integer – inteiro • Numeric(p,d) – número de virgula fixa, com precisão do número de digitos p e d especificado pelo utilizador • … muitos outros
  • 50. Criação de Tabelas • Em SQL uma relação é definida usando o comando create table: CREATE TABLE r ( A1 D1, A1 D2, …, An Dn, constraint1, …, constraintm ) • r é o nome da relação • cada Ai é um atributo no esquema da relação r • Di é o tipo de valores no domínio do atributo Ai CREATE TABLE agencia ( agencia_nome char(15), agencia_cidade char(30) )
  • 51. Restrições de Integridade • Assegurar valores não nulos: not null • Definir identificador: primary key (A1, …, An) CREATE TABLE agencia ( agencia_nome CHAR(15), agencia_cidade CHAR(30) NOT NULL, PRIMARY KEY (agencia_nome) ) • Chave primária implica que atributo não é null
  • 52. Apagar e Alterar Tabelas • O comando drop table apaga toda a informação da relação DROP TABLE r • O comando alter table é usado para adicionar ou remover atributos de uma relação já existente ALTER TABLE r ADD A D ALTER TABLE r DROP A • Onde A é o nome do atributo e D o dominio do atributo • Ao adicionar um atributo, este assumirá o valor null para todos os tuplos já existentes • A remoção de atributos não é suportada por muitos sistemas de BD
  • 53. Inserção de Tuplos • O comando insert into permite inserir novos tuplos na tabela • Inserir um novo tuplo na tabela conta: INSERT INTO conta VALUES (‘A-9732’, ‘Campolide’, 1200) Ou INSERT INTO conta (agencia_nome, saldo, conta_numero) VALUES (‘Campolide’, 1200, ‘A-9732’)
  • 55. Estrutura Básica de uma Query • O formato típico de uma query SQL é: SELECT A1, A2, …, An FROM r1, r2, …, rm WHERE P • Ai representa um atributo • Ri representa uma relação • P é o predicado • O resultado de uma query é uma relação
  • 56. A clausula SELECT • O comando SELECT lista os atributos desejados no resultado da query • Exemplo: encontrar nomes de todas as agências na relação empréstimo: SELECT agencia_nome FROM emprestimo • Nota: As palavras-chave SQL são case insensitive
  • 57. A clausula SELECT (cont) • O SQL permite duplicados nas relações assim como no resultado da query • Para forçar a eliminação de resultados duplicados, podemos usar a palavra chave DISTINCT na query • Exemplo: encontrar nomes de todas as agências na relação empréstimo e remover duplicados: SELECT DISTINCT agencia_nome FROM emprestimo
  • 58. A clausula SELECT (cont) • Um asterisco no comando select significa “todos os atributos” SELECT * FROM emprestimo • O comando SQL pode conter expressões aritméticas que envolvam operações +,-,* e / operando sobre constants e/ou atributos de tuplos SELECT empréstimo_numero, quantia*100 FROM emprestimo • Retorna uma relação com o valor da quantia multiplicado por 100.
  • 59. A clausula WHERE • A clausula WHERE especifica as condições que o resultado deve satisfazer • Exemplo: encontrar todos os número de empréstimo para empréstimos feitos na agência de Campolide e cuja quantia é superior a 1200€ SELECT empréstimo_numero FROM empréstimo WHERE agencia_nome = ‘Campolide’ AND quantia > 1200 • Resultados de comparações podem ser combinados através de operadores lógicos AND, OR ou NOT • As comparações podem ser aplicadas ao resultado de expressões aritméticas
  • 60. A clausula WHERE • O SQL possui um operador de comparação BETWEEN • Exemplo: encontrar todos os número de empréstimo para empréstimos cuja quantia é superior a 1200€ e menor que 5000€ SELECT empréstimo_numero FROM empréstimo WHERE quantia BETWEEN 1200 AND 5000
  • 61. A clausula FROM • A cláusula FROM lista as relações envolvidas na query • Corresponde ao produto cartesiano da operação • Exemplo: encontrar produto cartesiano titular x emprestimo SELECT * FROM titular, empréstimo
  • 62. A clausula FROM (cont) • Exemplo: encontrar nome, número de empréstimo e quantia de todos os clientes que têm um empréstimo na agência de Campolide SELECT cliente_nome, empréstimo.empréstimo_numero, quantia FROM devedor, empréstimo WHERE empréstimo.empréstimo_numero = devedor.empréstimo_numero AND agencia_nome = ‘Campolide’
  • 63. Renomear • O SQL permite renomear as relações e atributos utilizando a clausula AS: nome_antigo AS novo_nome • Exemplo: encontrar nome, número de empréstimo e quantia de todos os clientes; muda o nome da coluna emprestimo_numero para emprestimo_id SELECT cliente_nome, empréstimo.empréstimo_numero AS empréstimo_id, quantia FROM devedor, empréstimo WHERE empréstimo.empréstimo_numero = devedor.empréstimo_numero
  • 64. Variáveis Tuplo • Variáveis de tuplo são definidas na clausula FROM através da utilização (opcional) da cláusula AS: • Exemplo: encontrar nome, número de empréstimo e quantia de todos os clientes que têm empréstimo SELECT D.cliente_nome, D.empréstimo_numero, E.quantia FROM devedor AS D, empréstimo AS E WHERE E.empréstimo_numero = D.empréstimo_numero
  • 65. Operadores de Strings • O operador LIKE permite pesquisar strings utilizando padrões descritos com dois caracteres especiais • Percentagem (%) – coincide com qualquer substring • Underscore (_) – coincide com qualquer caracter • Exemplo: encontrar nome de todos os clientes cujo nome da rua contenha Liberdade SELECT cliente_nome FROM cliente WHERE cliente_rua LIKE ‘%Liberdade%’ • O SQL suporta muitas outras operações sobre strings
  • 66. Ordenação de Tuplos • Listar por ordem alfabética os nome de todso os clientes com um empréstimo na agência de Campolide SELECT DISTINCT D.cliente_nome FROM devedor AS D, empréstimo AS E WHERE E.empréstimo_numero = D.empréstimo_numero AND agencia_nome = ‘Campolide’ ORDER BY cliente_nome • Para especificar ordem o sentido da ordem podemos usar a palavra DESC ou ASC (default) ORDER BY cliente_nome DESC