slide1
Download
Skip this Video
Download Presentation
José Maria Monteiro Mestrado em Computação - UFC

Loading in 2 Seconds...

play fullscreen
1 / 53

José Maria Monteiro Mestrado em Computação - UFC - PowerPoint PPT Presentation


  • 122 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' José Maria Monteiro Mestrado em Computação - UFC' - miranda-tyler


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Modelo Entidade-Relacionamento

José Maria Monteiro

Mestrado em Computação - UFC

slide2

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.

  • Foi desenvolvido para facilitar o projeto de banco de dados.
  • Um esquema neste modelo especifica a estrutura lógica geral do banco de dados.
slide3

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

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

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

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

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

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

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

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.

slide11

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

Restrições de Mapeamento

A dependência de existência forma uma outra importante classe de restrições.

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

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.

slide14

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

Diagrama Entidade-Relacionamento (DER)

rua

nome

numero

CPF

data

saldo

cidade

cliente

conta

cliente

conta

slide16

DER - Generalização

numero

taxa-juros

saldo

bonus

conta

É UM

Conta-poupança

Conta-corrente

slide17

DER - Agregação

id

id

nome

numero

maquinaria

horas

funcion.

projeto

trabalho

usa

Não é possível expressar relacionamentos entre relacionamentos.

slide18

DER - Agregação

id

id

nome

numero

maquinaria

horas

funcion.

projeto

trabalho

Entidade de nível superior chamada trabalho.

Agregação é uma abstração através da qual relacionamentos são tratados como entidades.

usa

slide19

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

Diagrama Entidade-Relacionamento

id

id

descrição

descrição

valor

unidade

produto

departamento

quant.

q.max

id

descrição

q.min.

loc. estoque

slide22

Diagrama Entidade-Relacionamento

id

É UM

nome

endereço

descrição

cpf

e. civil

sexo

dt. nasc.

pessoa

N

1

é de

tp. pessoa

fone

nm. contato

cgc

salário

tel contato

fornecedor

funcionário

cliente

nm. contato

tel contato

slide23

Diagrama Entidade-Relacionamento

É UM

É UM

É UM

nome

endereço

pessoa

fone

e. civil

razão

sexo

cgc

dt. nasc.

pessoa física

Pessoa jurídica

cpf

cliente

funcionário

fornecedor

slide24

Diagrama Entidade-Relacionamento

funcionário

N

departamento

1

trabalha

N

horas

ocupa

descrição

id

1

salário base

cargo

slide25

Diagrama Entidade-Relacionamento

produto

N

loc. estoque

N

armazena

quant.

slide26

Diagrama Entidade-Relacionamento

cliente

1

compra

N

faz

N

quant

id

inclui

vl.unit.

desconto

N

produto

slide27

Diagrama Entidade-Relacionamento

fornecedor

1

venda

N

faz

N

quant

id

inclui

vl.unit.

desconto

N

produto

slide28

Diagrama Entidade-Relacionamento

tipo

pessoa

1

movimentação

N

faz

N

quant

id

inclui

vl.unit.

desconto

N

produto

slide29

Mapeamento ER-Relacional

  • Primeiro Passo

produto

id

descrição

unidade

valor

quant.

q.min.

q.max

departamento

id

descrição

local de estoque

id

descrição

tipo pessoa

id

descrição

slide30

Mapeamento ER-Relacional

  • Primeiro Passo

pessoa

id

cpf

cgc

nome

e. civil

sexo

dt. nasc.

funcionário

compra

id

salário

id

desconto

cliente

venda

nm contato

id

id

desconto

fornecedor

nm contato

id

slide33

Mapeamento ER-Relacional

  • Quarto Passo

pessoa

id

cpf

cgc

nome

e. civil

sexo

dt. nasc.

id tp. pessoa

funcionário

id depart.

horas

id cargo

id

salário

compra

id

desconto

id cliente

venda

id

desconto

id fornecedor

slide34

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.

slide35

Mapeamento ER-Relacional

  • Sexto Passo

endereço

id pessoa

rua

cep

cidade

bairro

uf

país

telefone

id pessoa

ddd

fone

slide37

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

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
slide39

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
slide40

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

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

slide42

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

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

slide44

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

slide45

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

slide46

Microsoft SQL Server

  • Triggers (Gatilhos)

ELSE

DELETE reservation

FROM reservation, deleted

WHERE reservation.member_no = deleted.member_no

slide47

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
slide48

Microsoft SQL Server

  • Stored Procedures

CREATE PROC count_loanlist

AS

SELECT COUNT(*) FROM loanlist

> EXEC count_loanlist

slide49

Microsoft SQL Server

  • Stored Procedures

CREATE 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

slide50

Microsoft SQL Server

  • Stored Procedures

> EXEC book_res 7498, ‘clock%’

slide51

Microsoft SQL Server

  • Stored Procedures

CREATE PROCEDURE mathtutor

@m1 smallint,

@m2 smallint,

@result smallint OUTPUT

AS

SELECT @result = @m1 * @m2

GO

slide52

Microsoft SQL Server

  • Stored Procedures

DECLARE @guess smaliint

SELECT @guess = 50

EXECUTE mathtutor 5, 6, @guess OUTPUT

SELECT ‘O resultado é ‘, @guess

GO

ad