A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

José Maria Monteiro Mestrado em Computação - UFC Modelo Entidade-Relacionamento.

Apresentações semelhantes


Apresentação em tema: "José Maria Monteiro Mestrado em Computação - UFC Modelo Entidade-Relacionamento."— Transcrição da apresentação:

1 José Maria Monteiro Mestrado em Computação - UFC Modelo Entidade-Relacionamento

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

3 Entidades e Conjuntos-Entidade Entidade É um objeto que existe e é distinguível dos outros objetos. Ex: O Zé com CPF é 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.

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

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

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

7 Entidades e Conjuntos-Entidade Formalmente, um conjunto-relacionamento, é a relação matemática em n 2 conjuntos- entidade. Se E 1, E 2,..., E n são conjuntos- entidade então o conjunto-relacionamento R é um subconjunto de {(e 1, e 2,..., e n ) e 1 E 1,... e n E n } onde (e 1, e 2,..., e n ) é um relacionamento. O papel que uma entidade exerce num relacionamento é chamada de função.

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

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

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

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

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

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

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

15 Diagrama Entidade-Relacionamento (DER) cliente conta cliente conta nome CPF rua cidade numero saldo data

16 DER - Generalização conta numero saldo É UM Conta-poupança Conta-corrente taxa-juros bonus

17 trabalho funcion. projeto nome id numero horas maquinaria usa id DER - Agregação Não é possível expressar relacionamentos entre relacionamentos.

18 DER - Agregação trabalho funcion. projeto nome id numero horas 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.

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

20 Modelo Entidade-Relacionamento Exercícios

21 produto departamento descrição id Diagrama Entidade-Relacionamento valor unidade quant. q.min. q.max descrição loc. estoque iddescrição

22 Diagrama Entidade-Relacionamento pessoa nome endereço É UM fornecedor funcionário nm. contato salário cliente cpf cgc sexo e. civil dt. nasc. fone tp. pessoaé de id descrição 1 N tel contato nm. contato

23 Diagrama Entidade-Relacionamento pessoa É UM pessoa física Pessoa jurídica É UM cliente funcionário É UM fornecedor nome endereço fone cpf sexo e. civil dt. nasc. cgc razão

24 Diagrama Entidade-Relacionamento funcionário departamento trabalha 1 N cargo ocupa id descrição salário base 1 N horas

25 Diagrama Entidade-Relacionamento produto loc. estoque armazena N N quant.

26 cliente compra faz N 1 Diagrama Entidade-Relacionamento produto inclui N N id desconto quant vl.unit.

27 fornecedor venda faz N 1 produto inclui N N id desconto quant vl.unit. Diagrama Entidade-Relacionamento

28 pessoa movimentação faz N 1 produto inclui N N id desconto quant vl.unit. Diagrama Entidade-Relacionamento tipo

29 Mapeamento ER-Relacional Primeiro Passo produto descriçãoidvalorunidadequant.q.min.q.max departamento descriçãoid local de estoque descriçãoid tipo pessoa descriçãoid

30 pessoa cpfidnomecgce. civilsexodt. nasc. Mapeamento ER-Relacional Primeiro Passo funcionário salárioid cliente nm contato id fornecedor nm contato id compra descontoid venda descontoid

31 Mapeamento ER-Relacional Segundo Passo

32 Mapeamento ER-Relacional Terceiro Passo

33 Mapeamento ER-Relacional Quarto Passo pessoa cpfidnomecgce. civilsexodt. nasc.id tp. pessoa funcionário salárioid id depart.horasid cargo descontoid venda descontoid compra id cliente id fornecedor

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

35 Mapeamento ER-Relacional Sexto Passo endereço id pessoaruacepcidadebairroufpaís telefone id pessoadddfone

36 Mapeamento ER-Relacional Sétimo Passo

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

38 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

39 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

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

41 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

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

43 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

44 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

45 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

46 Microsoft SQL Server Triggers (Gatilhos) ELSE DELETE reservation FROM reservation, deleted WHERE reservation.member_no = deleted.member_no

47 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

48 Microsoft SQL Server Stored Procedures CREATE PROC count_loanlist AS SELECT COUNT(*) FROM loanlist > EXEC count_loanlist

49 Microsoft SQL Server Stored Procedures CREATE PROCedure 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 AND m.member_no GO

50 Microsoft SQL Server Stored Procedures > EXEC book_res 7498, clock%

51 Microsoft SQL Server Stored Procedures CREATE PROCEDURE smallint OUTPUT AS GO

52 Microsoft SQL Server Stored Procedures smaliint = 50 EXECUTE mathtutor 5, OUTPUT SELECT O resultado GO

53 Perguntas ?


Carregar ppt "José Maria Monteiro Mestrado em Computação - UFC Modelo Entidade-Relacionamento."

Apresentações semelhantes


Anúncios Google