josé maria monteiro mestrado em computação - ufc
DESCRIPTION
Modelo Entidade-Relacionamento. José Maria Monteiro Mestrado em Computação - UFC. Modelo Entidade-Relacionamento. Modelo de dados baseado na percepção do mundo real que consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre esses objetos. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/1.jpg)
José Maria MonteiroMestrado em Computação - UFC
Modelo Entidade-Relacionamento
![Page 2: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/2.jpg)
Modelo de dados baseado na percepção do mundo real que consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre esses objetos.
Modelo Entidade-Relacionamento
Foi desenvolvido para facilitar o projeto de banco de dados.
Um esquema neste modelo especifica a estrutura lógica geral do banco de dados.
![Page 3: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/3.jpg)
Entidades e Conjuntos-Entidade
Entidade
É um objeto que existe e é distinguível dos outros objetos. Ex: O Zé com CPF 87464553-8 é uma entidade, pois identifica unicamente uma pessoa particular no universo.
Conjunto-Entidade
Conjunto de entidades do mesmo “tipo”. Ex: O conjunto de todas as pessoas com conta num banco pode ser definido como o conjunto-entidade cliente.
![Page 4: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/4.jpg)
Entidades e Conjuntos-Entidade
Uma entidade é representada por um conjunto de atributos.
Para cada atributo existe um conjunto de valores possíveis (Domínio).
Formalmente, um atributo é uma função que mapeia um conjunto de entidades em um domínio. Então, toda entidade é descrita por um conjunto de pares (atributo,valor), um para cada atributo do conjunto-entidade.
![Page 5: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/5.jpg)
Entidades e Conjuntos-Entidade
Um banco de dados inclui uma coleção de conjuntos-entidade, cada qual contendo qualquer número de entidades do mesmo tipo.
![Page 6: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/6.jpg)
Relacionamentos e Conjuntos-Relacionamento
Relacionamento
É uma associação entre diversas entidades. Ex: O Zé é um cliente com conta bancária número 401.
Conjunto-Relacionamento
Conjunto de relacionamentos do mesmo “tipo”. Ex: O conjunto de todos os relacionamentos entre clientes e suas respectivas contas.
![Page 7: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/7.jpg)
Entidades e Conjuntos-Entidade
Formalmente, um conjunto-relacionamento, é a relação matemática em n 2 conjuntos-entidade. Se E1, E2 , ... , En são conjuntos-entidade então o conjunto-relacionamento R é um subconjunto de {(e1 , e2 , ... , en) e1 E1 , ... en En } onde (e1 , e2 , ... , en) é um relacionamento.
O papel que uma entidade exerce num relacionamento é chamada de função.
![Page 8: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/8.jpg)
Entidades e Conjuntos-Entidade
Um relacionamento pode também ter atributos descritivos. Ex: A data pode ser um atributo do conjunto relacionamento ClienteConta, a fim de indicar a última data na qual o cliente acessou a sua conta.
![Page 9: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/9.jpg)
Restrições de Mapeamento
Podemos definir certas restrições com as quais o conteúdo do banco de dados tem de estar de acordo.
Uma restrição importante é o mapeamento de cardinalidade, que expressa o número de entidades as quais outra entidade pode ser associada via um conjunto-relacionamento.
![Page 10: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/10.jpg)
Restrições de Mapeamento
Um-para-um
Uma entidade em A está associada no máximo a uma entidade em B, e uma entidade em B está associada no máximo a uma entidade em A.
Um-para-muitos
Uma entidade em A está associada a qualquer número de entidades em B. Uma entidade em B, entretanto, está associada a no máximo uma entidade em A.
NB. Consideremos um conjunto-relacionamento R (Binário) entre os conjuntos-entidade A e B.
![Page 11: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/11.jpg)
Restrições de Mapeamento
Muitos-para-um
Uma entidade em A está associada no máximo a uma entidade em B, e uma entidade em B está associada a qualquer número de entidades em A.
Muitos-para-muitos
Uma entidade em A está associada a qualquer número de entidades em B. Uma entidade em B está associada a qualquer número de entidades em A.
![Page 12: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/12.jpg)
Restrições de Mapeamento
Se a existência da entidade x depende da existência da entidade y, então x é dito existente-dependente de y. A entidade Y é chamada de entidade dominante, e x é chamada de entidade subordinada.
A dependência de existência forma uma outra importante classe de restrições.
![Page 13: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/13.jpg)
Conjunto-Entidade Fraco X Conjunto-Entidade Forte
Conjunto-Entidade Fraco
Quando o conjunto-entidade não tem atributos suficientes para formar uma chave primária.
Conjunto-Entidade Forte
Conjunto-entidade que possui uma chave primária.
Um membro de um conjunto-entidade forte é por definição uma entidade dominante, enquanto um membro de um conjunto-entidade fraco é uma entidade subordinada.
![Page 14: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/14.jpg)
Diagrama Entidade-Relacionamento (DER)
A estrutura lógica geral de um banco de dados pode ser expressa graficamente por um diagrama E-R.
Retângulos : Representam Conjuntos-Entidades Fortes
Retângulo com Duplo Contorno: Representam Conjuntos-Entidades Fracos.
Elipses: Representam Atributos.
Losangos: Representam Conjuntos-Relacionamentos
Linhas: Ligam Atributos a Conjunto-Entidade, Atributos a Conjunto-Relacionamento e Conjunto-Entidade a Conjuntos-Relacionamentos.
Label sobre uma Linha: Representa Indicadores de Papéis.
![Page 15: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/15.jpg)
Diagrama Entidade-Relacionamento (DER)
cliente conta
cliente conta
nome
CPF
rua
cidade numero
saldodata
![Page 16: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/16.jpg)
DER - Generalização
conta
numero saldo
É UM
Conta-poupança Conta-corrente
taxa-juros bonus
![Page 17: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/17.jpg)
trabalhofuncion. projeto
nomeid
numerohoras
maquinaria
usa
id
DER - Agregação
Não é possível expressar
relacionamentos entre relacionamentos.
![Page 18: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/18.jpg)
DER - Agregação
trabalhofuncion. projeto
nomeid
numerohoras
maquinaria
usa
id
Agregação é uma abstração através da qual
relacionamentos são tratados como entidades.
Entidade de nível superior chamada trabalho.
![Page 19: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/19.jpg)
Modelo Entidade-Relacionamento
Conclusões
O modelo de dados entidade-relacionamento fornece um alto grau de flexibilidade no projeto de um banco de dados para modelar um determinado empreendimento.
![Page 20: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/20.jpg)
Modelo Entidade-Relacionamento
Exercícios
![Page 21: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/21.jpg)
produto departamento
descriçãoid id
Diagrama Entidade-Relacionamento
valor
unidade
quant.
q.min.
q.max
descrição
loc. estoque
id descrição
![Page 22: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/22.jpg)
Diagrama Entidade-Relacionamento
pessoa
nome endereço
É UM
fornecedor funcionário
nm. contatosalário
cliente
cpf
cgc
sexoe. civil
dt. nasc.
fonetp. pessoaé de
id
descrição
1N
tel contato
tel contatonm. contato
![Page 23: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/23.jpg)
Diagrama Entidade-Relacionamento
pessoa
É UM
pessoa física Pessoa jurídica
É UM
cliente funcionário
É UM
fornecedor
nome endereço
fone
cpf
sexoe. civil
dt. nasc.cgc
razão
![Page 24: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/24.jpg)
Diagrama Entidade-Relacionamento
funcionário departamentotrabalha 1N
cargo
ocupa
id descrição
salário base
1
N
horas
![Page 25: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/25.jpg)
Diagrama Entidade-Relacionamento
produto loc. estoquearmazena NN
quant.
![Page 26: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/26.jpg)
cliente comprafaz N1
Diagrama Entidade-Relacionamento
produto
inclui
N
N
id
desconto
quant
vl.unit.
![Page 27: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/27.jpg)
fornecedor vendafaz N1
produto
inclui
N
N
id
desconto
quant
vl.unit.
Diagrama Entidade-Relacionamento
![Page 28: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/28.jpg)
pessoa movimentaçãofaz N1
produto
inclui
N
N
id
desconto
quant
vl.unit.
Diagrama Entidade-Relacionamento
tipo
![Page 29: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/29.jpg)
Mapeamento ER-Relacional
Primeiro Passo
produto
descriçãoid valorunidade quant. q.min. q.max
departamento
descriçãoid
local de estoque
descriçãoid
tipo pessoa
descriçãoid
![Page 30: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/30.jpg)
pessoa
cpfid nomecgc e. civil sexo dt. nasc.
Mapeamento ER-Relacional
Primeiro Passo
funcionário
salárioid
cliente
nm contatoid
fornecedor
nm contatoid
compra
descontoid
venda
descontoid
![Page 31: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/31.jpg)
Mapeamento ER-Relacional
Segundo Passo
![Page 32: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/32.jpg)
Mapeamento ER-Relacional
Terceiro Passo
![Page 33: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/33.jpg)
Mapeamento ER-Relacional
Quarto Passo
pessoa
cpfid nomecgc e. civil sexo dt. nasc. id tp. pessoa
funcionário
salárioid id depart. horas id cargo
descontoid
venda
descontoid
compra
id cliente
id fornecedor
![Page 34: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/34.jpg)
Mapeamento ER-Relacional
Quinto Passo
estoque
id prod. id loc. est. quant.
compra itens
id compra id prod.. quant. vl. unit.
venda itens
id venda id prod.. quant. vl. unit.
![Page 35: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/35.jpg)
Mapeamento ER-Relacional
Sexto Passo
endereço
id pessoa rua cep cidade bairro uf país
telefone
id pessoa ddd fone
![Page 36: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/36.jpg)
Mapeamento ER-Relacional
Sétimo Passo
![Page 37: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/37.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
Um trigger é um tipo especial de stored procedure que é invocado (disparado) quando ocorre uma tentativa de modificação nos dados da tabela (relação) à qual ele está associado (vinculado). Isto ocorre quando modificações são feitas na tabela usando-se as cláusulas (operações) INSET, UPDATE ou DELETE.
![Page 38: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/38.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
Os triggers são usados para garantir regras de negócio e integridade dos dados, ou para ações complexas, tais como automaticamente atualizar um resumo dos dados.
Caso a execução de um trigger possa violar alguma restrição então ele não será executado.
São automaticamente disparados pelo SQL Server
Não podem ser executados diretamente por um usuário
![Page 39: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/39.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
Não podem ultrapassar 16 níveis
Cada tabela tem no máximo 3 triggers (para ações de INSERT, DELETE e UPDATE)
Triggers não podem ser criados sobre visões ou tabelas temporárias
Um trigger não pode incluir cláusulas SELECT que retornem resultado para o usuário
![Page 40: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/40.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
Não podem ser executados em um trigger: Todos os “CREATE” Todos os “DROP” Alter Table e Alter Database Select Into (Pois este comando cria uma tabela
temporária)
![Page 41: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/41.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
CREATE TRIGGER load_insert
ON loan
FOR INSERT
AS
UPDATE Copy
SET on_loan = ‘Y’
FROM copy, inserted
WHERE copy.isbn = inserted.isbn
AND copy.copy_no = inserted.copy_no
![Page 42: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/42.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
Quando um UPDATE é executado sobre uma tabela que possui um UPDATE TRIGGER, as tuplas originais são movidas para uma DELETE TABLE, enquanto as tuplas atualizadas (com os novos valores) são inseridas em uma INSERTED TABLE, só então a tabela começa a ser atualizada.
![Page 43: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/43.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
CREATE TRIGGER member_update
ON member
FOR UPDATE
AS
IF UPDATE (member_no)
BEGIN
RAISERROR(‘Tabela não pode ser atualizada’)
ROLLBACK TRANSACTION
END
![Page 44: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/44.jpg)
Microsoft SQL Server
Triggers (Gatilhos)CREATE TRIGGER adult_insert
ON adult
FOR INSERT
AS
IF (SELECT COUNT(*)
FROM member, inserted
WHERE member.member_no = inserted.member_no) =0
BEGIN
PRINT ‘A atualização não pode ser executada’
PRINT ‘Nenhuma entidade em MEMBER para este ADULT’
ROLLBACK TRANSACTION
END
![Page 45: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/45.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
CREATE TRIGGER member_delete
ON member FOR DELETE
AS
IF (SELECT COUNT(*)
FROM loan, deleted
WHERE loan.member_no = deleted.member_no) > 0
BEGIN
PRINT ‘A transação não pode ser executada.’
PRINT ‘Este membro possui livro não devolvido’
ROLLBACK TRANSACTION
END
![Page 46: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/46.jpg)
Microsoft SQL Server
Triggers (Gatilhos)
ELSE
DELETE reservation
FROM reservation, deleted
WHERE reservation.member_no = deleted.member_no
![Page 47: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/47.jpg)
Microsoft SQL Server
Stored Procedures
São cláusulas SQL pré-compiladas e armazenadas no servidor
São invocadas por uma aplicação ou usuário e não automaticamente pelo SQL Server
![Page 48: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/48.jpg)
Microsoft SQL Server
Stored Procedures
CREATE PROC count_loanlist
AS
SELECT COUNT(*) FROM loanlist
> EXEC count_loanlist
![Page 49: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/49.jpg)
Microsoft SQL Server
Stored ProceduresCREATE PROCedure book_res
@member_no smallint,
@title normstring = ‘%’
AS
SELECT m.member_no, m.lastname, title.log_date, r.isbn
FROM member m, title t, item i, reservation r
WHERE m.member_no = r.member_no
AND r.isbn = i.isbn
AND i.title_no = t.title_no
AND t.title LIKE @title
AND m.member_no = @member_no
GO
![Page 50: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/50.jpg)
Microsoft SQL Server
Stored Procedures
> EXEC book_res 7498, ‘clock%’
![Page 51: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/51.jpg)
Microsoft SQL Server
Stored Procedures
CREATE PROCEDURE mathtutor
@m1 smallint,
@m2 smallint,
@result smallint OUTPUT
AS
SELECT @result = @m1 * @m2
GO
![Page 52: José Maria Monteiro Mestrado em Computação - UFC](https://reader033.vdocuments.net/reader033/viewer/2022061614/56812bd4550346895d90376b/html5/thumbnails/52.jpg)
Microsoft SQL Server
Stored Procedures
DECLARE @guess smaliint
SELECT @guess = 50
EXECUTE mathtutor 5, 6, @guess OUTPUT
SELECT ‘O resultado é ‘, @guess
GO