BANCO DE DADOS Aula 3 Josino Rodrigues Neto© Fundamentos em Banco de Dados.

Slides:



Advertisements
Apresentações semelhantes
01/08/2011 Professor Leomir J. Borba- –
Advertisements

Um pouco mais de cardinalidade e Relacionamentos
Abordagem Entidade Relacionamento
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
MER – Modelo de Entidade Relacionamento
Laboratório WEB Professora: Viviane de Oliveira Souza Gerardi.
Evolução dos SGBD’s (2ª Parte).
MODELO RELACIONAL Transparências baseadas no capítulo 3 do livro de KORTH e SILBERCHATZ e capítulo 7 do livro de ELMASRI e NAVATHE Juliana Amaral e Rodrigo.
Diagrama Entidade-Relacionamento – DER
O Modelo E-R Definição: Características
Funcionalidades de um SGBD
Prof.: Bruno Rafael de Oliveira Rodrigues
SISTEMAS DE INFORMAÇÃO
Sistemas de Informação Redes de Computadores
SISTEMAS DE INFORMAÇÃO
Modelo Entidade-Relacionamento
Projeto de Banco de Dados
Sistema Gerenciador de Banco de Dados SGBD
Introdução a Bancos de Dados
Banco de Dados – Modelo Relacional Universidade Federal de Santa Catarina Banco de Dados Mapeamento ER- Relacional (Material adaptado das profs. Daniela.
Modelo Relacional parte 1
Profa. Aline Vasconcelos
Prof. Carlos H. Marcondes
SCC Bancos de Dados e Suas Aplicações
Projeto de Bancos de Dados
FORMAS DE REPRESENTAÇÃO QUE SERVEM PARA DESCREVER AS ESTRUTURAS DAS INFORMAÇÕES CONTIDAS EM UM BD. Modelos de Dados.
Tecnologias de Linguagens para Banco de Dados I
Modelagem de Dados Usando o Modelo Entidade-Relacionamento
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Prof. Alfredo Parteli Gomes
SQL Server 2012 Introdução a Modelagem de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
BANCO DE DADOS APLICADO AO DESENVOLVIMENTO DE SOFTWARE
Bancos de Dados Projeto de BD
Profª Daniela TLBD.
REGRAS DE PRODUÇÃO DO MODELO LÓGICO
Introdução a Banco de dados
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Modelo de Dados Descrição formal de um estrutura de banco de dados.
Curso Técnico em Informática
Objetivos Apresentar de forma breve a Metodologia de Modelagem Orientada a Objetos (OMT). A partir de um modelo de objetos de um sistema de informação.
Banco de Dados Aplicado ao Desenvolvimento de Software
Cristina Paludo Santos URI – Campus de Santo Ângelo
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
Banco de dados 1 Modelagem de Dados Utilizando MER
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Projeto de BD Análise de Requisitos Projeto Conceitual Projeto Lógico
UFCG/CCT/DSC Cláudio Baptista
Banco de Dados I Unidade 3: Projeto de BD Relacional
Profa. Ana Karina Barbosa Abril/2008
Modelo Relacional Marcelo Mendes Manaus – 2015.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Projeto de Banco de Dados
Banco de Dados I Aula 4 - Projeto Conceitual de Banco de Dados
Banco de Dados I Aula 3 - Projeto Conceitual de Banco de Dados
4 Projeto de Banco de Dados Carlos Alberto Heuser.
Professora: Kelly de Paula Cunha
Projeto de Banco de Dados Ceça Moraes Dezembro/09.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Modelo Entidade-Relacionamento (ER)
Modelo de Entidade-relacionamento
Modelo relacional Fundamentos de Banco de Dados
Modelo Relacional Introduzido por Ted Codd, da IBM Research, em Utiliza o conceito de relação matemática. Possui base teórica na teoria dos conjuntos.
Modelagem Entidade-Relacionamento (MER)
Modelagem de Dados Aula 4. 2 Implementação de Entidades Não é aconselhável simplesmente transcrever os nomes dos atributos para nomes de colunas. Nomes.
Gestão da Tecnologia da Informação Fundamentos de Sistemas de Banco de Dados Faculdade de Tecnologia Senac Jaraguá do Sul.
Modelagem de Dados Aula 3.
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

BANCO DE DADOS Aula 3 Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 1

Revisão

(Entidade-Relacionamento) PARTE – I Modelo E-R (Entidade-Relacionamento) Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 3

MODELAGEM DE DADOS Atividade de definição de um esquema de dados em um certo nível de abstração modelagem conceitual abstração de mais alto nível objetivo: representação dos requisitos de dados do domínio independente de modelo de BD modelagem lógica representação da modelagem conceitual em um modelo de BD ênfase na eficiência de armazenamento evitar: muitas tabelas (e junções); tabelas sub-utilizadas, ... modelagem física ou implementação esquema SQL para a modelagem lógica dependente de SGBD ênfase na eficiência de acesso implementação de consultas, índices, ... Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 4

Independente de detalhes de implementação em um SGBD MODELAGEM CONCEITUAL Vantagens Independente de detalhes de implementação em um SGBD Facilita a compreensão da semântica dos dados de um domínio Melhor compreendido por usuários leigos Pode ser mapeado para qualquer modelo de BD Facilita a manutenção do modelo lógico Propicia a engenharia reversa Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 5

INTRODUÇÃO AO MODELO E-R Modelo desenvolvido por Chen em 1976; Diversas extensões e notações foram definidasao longo do tempo Provê ao usuário um alto nível de abstração, e por conseguinte facilita a construção de um esquema de BD; A estrutura lógica do BD pode ser expressa graficamente pelo diagrama E-R Um banco de dados representado por um modelo E-R, pode ser representado por uma coleção de tabelas. O mapeamento entre os modelos E-R e Relacional é relativamente simples. Existem várias ferramentas destinadas a mapear o Modelo E-R para Relacional; É também chamado de esquema E-R ou diagrama E-R Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 6

Entidade – representação abstrata de um objeto do mundo real. COMPONENTES DO MODELO Entidade – representação abstrata de um objeto do mundo real. Relacionamento – abstração de uma associação entre (ocorrências de) entidades Atributos – características de uma entidade atende Funcionário Departamento NOME MATRI ENDERECO DTA_NASC Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 7

Simples- Não há sub-atributo (Ex. salário) TIPOS DE ATRIBUTOS Simples- Não há sub-atributo (Ex. salário) Composto – múltiplos sub-atributos (Ex. endereço) Multivalorados – podem assumir um conjunto de valores Funcionário TELEFONES NOME MATRI ENDERECO DTA_NASC RUA NUM CIDADE Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 8

obrigatórios X opcionais monovalorados X multivalorados TIPOS DE ATRIBUTOS obrigatórios X opcionais monovalorados X multivalorados simples X compostos Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 9

Toda entidade deve ter uma identificação TIPOS DE ATRIBUTOS Atributos identificadores distinguem unicamente ocorrências de entidade Toda entidade deve ter uma identificação Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 10

Quantidade máxima de ocorrências de entidades CARDINALIDADE MÁXIMA Quantidade máxima de ocorrências de entidades que podem estar associadas a uma ocorrência de outra entidade (1 ou N) “um empregado está lotado no máximo em 1 departamento. Um departamento tem até N empregados lotados nele.” Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 11

CARDINALIDADE MÁXIMA Exemplos: Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 12

CARDINALIDADE MÍNIMA E MÁXIMA indica se a participação das ocorrências de entidades no relacionamento é obrigatória ou opcional “um empregado pode estar lotado no máximo em 1 departamento. Um departamento obrigatoriamente tem até N empregados lotados nele.” Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 13

CARDINALIDADE MÍNIMA E MÁXIMA Exemplos: Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 14

Representa uma associação entre ocorrências de uma mesma entidade AUTO-RELACIONAMENTO Representa uma associação entre ocorrências de uma mesma entidade Requer a identificação de papéis “um empregado pode ser supervisionado por no máximo 1 empregado. Um empregado pode supervisionar no máximo N empregados.” Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 15

Abstração de uma associação entre três (ocorrências de) entidades RELACIONAMENTO TERNÁRIO Abstração de uma associação entre três (ocorrências de) entidades Requer a identificação de papéis “um produto em uma cidade pode ser entregue por no máximo 1 distribuidor.” Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 16

ENTIDADE FRACA A identificação de suas ocorrências depende da identificação de outra(s) entidade(s) Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 17

PARTE - II Extensões do Modelo E-R Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 18

EXTENSÕES DO MODELO E-R Possuem o objetivo de aumentar o poder de expressão do modelo provendo novos meios de representações. As principais extensões são: Especialização Generalização Herança de Atributos Agregação Existem muitas outras extensões. Como por exemplo, as relacionadas com aplicações para BD Distribuídos e BD Geográficos. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 19

Definição de uma entidade que é um subconjunto de uma outra entidade Especialização Definição de uma entidade que é um subconjunto de uma outra entidade Generalização Definição de uma entidade que é um superconjunto de uma outra entidade Na prática, uma Fundamentos ou uma generalização produzem o mesmo conjunto de entidades. O que as diferem é a ordem que as entidades são geradas Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 20

Tipo de Generalização/Especialização - Total ou Parcial - No tipo total, toda ocorrência de uma entidade genérica tem que possuir uma ocorrência de uma entidade especializada - Exclusiva e não- exclusiva - No tipo exclusiva, uma ocorrência da entidade genérica só pode ter uma especialização Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 21

Agregação - Ocorre quando um conjunto de entidades e relacionamentos comportam-se como se fosse uma entidade. Podendo desta forma associar-com com outras entidades. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 22

Outra Representação para Agregação Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 23

Uma Extensão do Modelo E-R para Modelos Distribuídos PEDIDO CLIENTE VENDEDOR CTA_SALD O CTA_MOVT O REGIÃO CIDADE PRODUTO FAZ AT UA SITUA-SE EM POS SUI ATE ND E PERTENC E A ATU ALIZ A COD_CIDADE NOME UF CEP AREA PERC_VENDA COD_PED DATA_PED VL_PED SITUACAO IDENT MATRICULA CPF MATRÍCULA VL_SALDO DATA_ATU HORA_ATU CGC NOME_FANT ENDEREÇO COD_MOVTO HORA_MOVTO VL_MOVTO DATA_MOVTO IND_DEB_CRED COD_PRODD PREÇO COD_PRODOD QUANT 1 N M COD_REGIAO GER A Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 24

Uma Extensão do Modelo E-R para Modelos Distribuídos (Continuação) VENDEDOR 1 CTA_SALD O1 IDENT NOME MATRICULA CPF MATRÍCULA VL_SALDO DATA_ATU HORA_ATU 1 N REGIÃO1 CIDADE1 AT UA SITUA-SE EM COD_CIDADE UF CEP AREA PERC_VENDA COD_REGIAO PERTEN CE A VENDEDOR 2 CTA_SALD O2 REGIÃO2 CIDADE2 [COD_REGIÃO = 1] [ATUA.COD_REGIÃO = 1] [PERTENCEA.ATUA.COD_REGIÃO = 1] [SITUA-SEEM. COD_REGIÃO = 1] [COD_REGIÃO = 2] [ATUA.COD_REGIÃO = 2] [PERTENCEA.ATUA.COD_REGIÃO = 2] [SITUA-SEEM. COD_REGIÃO = 2] Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 25

PARTE - III O Modelo Relacional Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 26

• Foi introduzido por Codd (1970) BREVE HISTÓRICO • Foi introduzido por Codd (1970) • Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance. Padrão este que ainda persiste até hoje. • É um modelo formal, baseado na teoria matemática das relações. Fortemente fundamentada na Álgebra Relacional e no Cálculo Relacional. • Um dos SGBD's precursores que implementaram este modelo foi o System R (IBM). Baseado em seus conceitos surgiram: DB2 (IBM), SQL-DS (IBM), Oracle, Informix, Ingres, Sybase entre outros. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 27

• Todos os valores de uma coluna são do mesmo tipo de dados. CONCEITOS BÁSICOS • O modelo relacional representa os dados num BD como uma coleção de tabelas (relações). • Cada tabela terá um nome, que será único, e um conjunto de atributos com seus respectivos nomes e domínios. • Todos os valores de uma coluna são do mesmo tipo de dados. Exemplo de uma tabela: Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 28

CONCEITOS BÁSICOS (continuação) Terminologia do modelo: Tabela é chamada de Relação Linha é chamada de Tupla Coluna é chamada de atributo Associado a um tipo de dados há um domínio. Um domínio D é um conjunto de valores atômicos. Exemplo: IdadeAluno: inteiro entre 16 e 70. Um esquema de relação R é denotado por R(A1,A2,...,An), onde é R representa um conjunto de atributos: R = {A1,A2,...,An}. O grau de uma relação é o número de atributos que seu esquema contém. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 29

CONCEITOS BÁSICOS (continuação) Um instante (snapshot) de relação r, do esquema R(A1, A2, ...,An), denotado por r(R), é o conjunto de n-tuplas r = {t1,t2,...,tn}. Cada tupla t é uma lista ordenada de valores t = <v1,v2,...,vn> Uma instância r(R) é um subconjunto do produto cartesiano dos domínios de R. r(R) C (dom(A1) X dom(A2) X ... X dom(An)) Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 30

ASPECTOS IMPORTANTES DAS RELAÇÕES A ordem das tuplas e dos atributos não tem importância. Todo atributo possui valor atômico. Cada atributo numa relação tem um nome que é único dentro da relação. Todas as tuplas devem ser únicas (conjunto). A fundamentação matemática está sempre presente. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 31

CONCEITO DE CHAVE Superchave -Conjunto de um ou mais atributos que, tomados coletivamente nos permite identificar de maneira unívoca uma tupla em um conjunto de tuplas. Chave candidata - É uma superchave para qual nenhum subconjunto possa ser uma superchave. Chave primária é a chave candidata que é escolhida pelo projetista para identificar tuplas dentro de um conjunto de tuplas. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 32

Atributos que representam diferentes conceitos podem ter o mesmo nome. CHAVES DE UMA RELAÇÃO Convenciona-se sublinhar os atributos que compõem a chave primária. Ex.:Empregado (Matrícula, Nome, Endereço, Função,Salário) Um mesmo atributo pode ter nomes diferentes nas diversas relações em que participa. Ex.: Empregado (Matrícula, Nome, Endereço, Função, Salário, Dep) e Departamento(CodDepart, Nome, Endereço) Atributos que representam diferentes conceitos podem ter o mesmo nome. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 33

RESTRIÇÕES DE INTEGRIDADE Integridade de Chave: Toda tupla tem um conjunto de atributos que a identifica de maneira única na relação. Integridade de Entidade: Nenhum valor de chave primária poderá ser NULO. Integridade Referencial: Uma relação pode ter um conjunto de atributos que contém valores com mesmo domínio de um conjunto de atributos que forma a chave primária de uma outra relação. Este conjunto é chamado chave estrangeira. Integridade Semântica: Define aspectos comportamentais do BD. Exemplo: Nenhum aluno que não cursou ICC poderá cursar Ling. de Programação. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 34

PARTE - IV Mapeamento Modelo E-R para Modelo Relacional Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 35

MAPEAMENTO E-R -> RELACIONAL Para cada modelo conceitual E-R pode existir vários modelos Relacionais. A maioria das ferramentas de modelagem conceitual automatizam o mapeamento. Porém é importante conhecer as etapas deste mapeamento. A definição equivocada do modelo Relacional afeta a estrutura de todo o projeto. Muitas vezes a maneira como implementar as tabelas no modelo relacional dependem de decisões de projeto e não de regras pré-estabelecidas. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 36

Um simples exemplos de mapeamento Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 37

ETAPAS DO MAPEAMENTO ETAPA 1 Mapear todos os conjuntos de entidades não fracas. Caso exista atributo composto, inclua todos os atributos elementares Escolha um dos atributos chave de E como chave primária para a relação Funcionário = {FNúmero, FNome, Endereço, Salário} Departamento = {DNúmero, DNome} Projeto = {PNúmero, PNome} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 38

ETAPA 2 Para cada conjunto de entidade fraca F no esquema ER cria-se uma relação R formada por todos os atributos do conjunto de entidade fraca, mais os atributos que são chave das entidades regulares com as quais a entidade se relaciona. Dependente = {DependNome, FNúmero, DataNiver, Parentesco} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 39

ETAPA 3 Relacionamentos de cardinalidade 1 para 1 devem ser identificados e escolhida a entidade que receberá os atributos do relacionamento, assim como qual a entidade que receberá a chave estrangeira. Funcionário = {FNúmero, FNome, Endereço, Salário} Departamento = {DNúmero, Dnome, FNúmero, DataIni} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 40

ETAPA 4 Para cada conjunto relacionamento de cardinalidade 1 para N, a chave primária da entidade que participa com cardinalidade N terá a chave primária da outra entidade como chave estrangeira. Departamento = {DNúmero, Dnome, FNúmero, DataIni} Projeto = {PNúmero, Pnome, DNro} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 41

Para cada relacionamento binário M:N cria-se uma nova relação ETAPA 5 Para cada relacionamento binário M:N cria-se uma nova relação Participar = {FNum, PNum, horas} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 42

Um relacionamento ternário produzirá uma relação ETAPA 6 Um relacionamento ternário produzirá uma relação Oferecer = {OCod, CCod, FNum, Horário} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 43

ETAPA 7 Existem duas maneiras de tratar atributos multivalorados no mapeamento: 1) Sabendo uma estimativa do número de ocorrências do atributo. Assim, pode-se adicionar à relação quantos atributos forem necessários. 2) Caso do número de ocorrências do atributo seja indefinido, cria-se uma nova relação. LocalDep = {DNúmero, Localização} Departamento = {DNúmero, Dnome, FNúmero, DataIni, local1, local2, local3} Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 44

Três alternativas para mapeamento MAPEAMENTO DE ESPECIALIZAÇÕES Três alternativas para mapeamento 1. tabela única para entidade genérica e suas especializações 2. tabelas para a entidade genérica e as entidades especializadas 3. tabelas apenas para as entidades especializadas Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 45

Tabela única para entidade genérica e suas especializações Alternativa 1 Tabela única para entidade genérica e suas especializações Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 46

Tabelas para a entidade genérica e as entidades especializadas Alternativa 2 Tabelas para a entidade genérica e as entidades especializadas Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 47

Tabelas apenas para as entidades especializadas Alternativa 3 Tabelas apenas para as entidades especializadas Não deve ser aplicado para especializações parciais Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 48

EXERCÍCIO Baseado no modelo E-R, abordado em sala, para a Fórmula 1. Aplique todos os passos para o mapeamento E-R -> Relacional. Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 49

Comentários sobre Exercício Esquema muito simples de ser gerado; Aplicação da etapa 1, abordada na aula passada, define praticamente todas as tabelas; O fato do modelo E-R ter sido representado através de uma ferramenta, facilita consideravelmente o processo de mapeamento; Exemplos de Relações do Modelo PILOTO(COD_PILOTO, NOME, DATA_NASC, COD_EQUIPE, COD_PAIS) EQUIPE(COD_EQUIPE, NOME, NOME, COD_PAIS) PAIS(COD_PAIS, NOME, POPULACAO) CIRCUITO(COD_CIRCUITO, NOME, EXTENSAO, COD_PAIS) Josino Rodrigues Neto© Fundamentos em Banco de Dados Página 50