Aula III Introdução ao Modelo Relacional

Documentos relacionados
IFRO - Câmpus Ariquemes hayslan.bucarth@ifro.edu.br Social: hayslan. Banco de Dados. Prof. Hayslan N C Bucarth

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

O que é modelo lógico. Tipos de modelo

Modelo Relacional Prof. Msc Denival A. dos Santos

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROJETO DE BANCO DE DADOS RELACIONAL. Profº Erinaldo Sanches Nascimento

MODELAGEM DE DADOS PARTE 2

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

Fundamentos de Banco de Dados e Modelagem de Dados

Prof. Fabiano Taguchi

MODELO DE BANCO DE DADOS RELACIONAL

CONTEÚDO PROGRAMÁTICO

BCD29008 Banco de dados

Modelagem de dados usando MER. Andre Noel

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

Professor Eros Moura, DSc

Modelo Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Bancos de Dados Aula #2 - Modelos Conceituais de Dados

18/03/2012. Independência de Dados: capacidade de modificar a definição dos esquemas em. determinado nível, sem afetar o esquema do nível superior;

Prof.: Clayton Maciel Costa

Modelo Relacional. Aula 02

Revisando Banco de Dados. Modelo Relacional

Ciclo de Desenvolvimento de BD

Banco de Dados I 3 Modelagem de Dados Lógico e Físico

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

AULA 3 Classificação dos Sistemas de Informação

Revisão e Exercícios. Relacionamento. Projeto de Bancos de Dados. Chave e Domínio. Tipos de Atributos

Bancos (Bases) de Dados Aula #5 - Projeto do BD Relacional pelo

Aula 3 - Modelo Entidade-Relacionamento

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Modelo Entidade-Relacionamento. Aécio Costa

Banco de Dados Mapeamento Entidade Relacionamento para Relacional

Banco de Dados I. Aula 10 - Prof. Bruno Moreno 23/09/2011

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Modelo Relacional. Relacionamento. Processo de Projeto de. Programa. Modelo Entidade Relacionamento

DCC011 Introdução a Banco de Dados. Construindo o Esquema. 1. Propriedades de Modelos ER. Construindo Esquema Conceitual

Sistemas de Banco de Dados Prof. Flávio de Oliveira Silva, M.Sc. O esquema de uma relação é escrito da seguinte forma:

O MODELO ENTIDADE RELACIONAMENTO. Tiago Alves de Oliveira

Modelo Entidade Relacionamento Estendido (ERE)

Modelo Entidade-Relacionamento

Modelos. Banco de dados. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.

Conceitos Básicos de Banco de Dados

Abordagem ER. Capítulo 2

Modelagem Conceitual parte I

Modelagem Conceitual parte I

BCD29008 Banco de dados

Os tipos de cardinalidade dos relacionamentos usados em Mysql são:

Banco de Dados Modelagem e Normalização

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Banco de Dados. Professora: Luciana Faria

GBD PROF. ANDREZA S. AREÃO

Modelo Relacional. Banco de Dados 2º trimestre Prof. Patrícia Lucas

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1/64

Sumário. Modelo Entidade-Associação. Modelo Entidade-Associação. Entidades. André Restivo. September 21, 2010

Administração e Projeto de Banco de dados

Modelo Relacional Wendel Melo

BANCO DE DADOS. Bacharelado em Sistemas de Informação MODELAGEM DE DADOS. Profº Luciano Roberto Rocha. Itararé, 2º período

Análise e Projeto de Sistemas

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Capítulo 2 Modelo Entidade- Relacionamento. Prof. Mario Dantas

Modelo Lógico de Dados. Modelo Relacional

Tópico: Modelagem CONTEÚDO PROGRAMÁTICO

Bancos de Dados. 7. Mapeamento ER/ERE para Relacional

Banco de dados. Conteúdo: Modelo relacional Prof. Patrícia Lucas

Aulas 03, 04 e 05. Relacionamentos entre Entidades Tipos de Relacionamentos Cardinalidade Relacionamento Identificador Entidade Associativa

Modelo de dados relacional e as restrições de um BD relacional

Ciclo de Desenvolvimento de Sistemas de BD

Banco de Dados Introdução. Profa.Ms.Denise Neves

MODELAGEM DE DADOS UNIDADE 4 Modelo Entidade-Relacionamento. Luiz Leão

MATA60 BANCO DE DADOS Aula 5- Modelo Relacional. Prof. Daniela Barreiro Claro

Entidade Associativa

Informática. Banco de Dados Relacional. Professor Julio Alves.

Mapeamento Modelo Entidade Relacionamento para Modelo Relacional. Evandro E.S Ruiz, Ph.D.

Normalização de dados

Banco de Dados. Aula 4 - Prof. Bruno Moreno 02/09/2011

Aula 7 SBD ER para Relacional. Profa. Elaine Faria UFU

Banco de Dados I (MAB489)

BANCO DE DADOS. Engenharia da Computação Univasf. Modelo Entidade-Relacionamento. Aula 2. Conjuntos de Entidades - Representação Exemplo:

António Rocha Nuno Melo e Castro

Restrições de Integridade. Prof. Jefferson Silva CEFET.PHB - PI

TRANSFORMAÇÃO DO MODELO CONCEITUAL

Introdução ao PostgreSQL

Banco de Dados. André Luís Duarte Capítulo 2. exatasfepi.com.br

MODELAGEM DE DADOS PARTE 1

Unidade 3 23/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

Projeto de Banco de dados - Fundamentos

Modelo Relacional Wendel Melo

MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Prof. Rosemary Melo

2010 Diagrama Entidade - Associação

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa

Projeto de BD Relacional

Projeto de BD Relacional

Transcrição:

Aula III Introdução ao Modelo Relacional

Referência bibliográfica ANGELOTTI, E S. Banco de Dados. Ed. Livro Técnico

Introdução é um modelo lógico, utilizado em banco de dados relacionais. Nesse modelo, começamos a nos preocupar em como os dados devem ser armazenados e em como criaremos os relacionamentos do modelo conceitual. É também nessa etapa que definimos o SGBD que será utilizado, bem como os tipos de dados para cada atributo.

Introdução Este modelo tem por finalidade representar os dados como uma coleção de tabelas e cada linha de uma tabela representa uma coleção de dados relacionados. Exemplo: tblaluno

Introdução Para descrever uma tabela no modelo relacional, usamos o nome da tabela seguida dos atributos entre parênteses. Para identificar a chave primária, devem-se sublinhar o(s) atributo(s) correspondente(s) a ela. O tipo de cada atributo também deve aparecer no modelo relacional, como mostra o exemplo abaixo: Ex. tblaluno (matricula_aluno: inteiro, nome_aluno: caracter(100), data_nascimento_aluno: data)

Introdução O nome da tabela e das colunas são utilizados para facilitar a interpretação dos valores armazenados em cada linha da tabela. Todos os valores em uma coluna são necessariamente do mesmo tipo. Na terminologia do modelo relacional, tabela é a mesma coisa que uma relação; linha é a mesma coisa que um registro; coluna é igual a um campo ou um atributo; e tipo de dado é igual a um domínio

Exercício 1- Passe os elementos abaixo para o modelo relacional. a) b) c)

Chave Estrangeira e Integridade referencial Uma chave estrangeira (ou Foreign Key ou FK), é um atributo da tabela que faz referência a uma chave primária de outra tabela. No modelo relacional é a chave estrangeira que especifica o relacionamento entre as tabelas. tbturma tbaluno

Chave Estrangeira e Integridade referencial Observe que a tabela tbaluno possui o atributo codigo_turma. Esse atributo é chave primária na tabela tbturma e, portanto, é uma FK na tabela tbaluno. O atributo que é a chave estrangeira deve ser do mesmo tipo e do mesmo tamanho que a sua primária correspondente.

Chave Estrangeira e Integridade referencial Para termos essa informação de forma clara, devemos usar a notação, conforme exemplo abaixo: tbaluno (matricula_aluno:inteiro, nome_aluno: caracter(200), data_nascimento_aluno:data, codigo_turma: inteiro) codigo_turma referencia tbturma

Chave Estrangeira e Integridade referencial O valor para uma chave estrangeira deve ser um valor que já tenha sido cadastrado na chave primária correspondente ou um valor nulo. Na tbaluno, não poderíamos cadastrar que a aluna Maria pertence à turma de código 6, uma vez que não existe nenhum código 6 cadastrado em tbturma.

Chave Estrangeira e Integridade referencial Essa restrição é o que garante a integridade referencial do modelo relacional. Ou seja, ela garante que não se faça referência a valores que não existam na base de dados. Evita-se dessa forma que a base de dados tornese inconsistente. Sendo assim, a implementação de uma chave estrangeira garante a integridade referencial da base.

Chave Estrangeira e Integridade referencial Uma chave estrangeira pode também fazer referência a uma chave primária dentro da mesma tabela. Isso ocorre quando temos relacionamentos recursivos. tbaluno (matricula_aluno: inteiro, nome_aluno: caracter(200), data_nascimento_aluno: data, matricula_aluno_representante: inteiro) matricula_aluno_representante referencia tbaluno

Chave Estrangeira e Integridade referencial Nesse caso, o atributo matricula_aluno_representante poderá receber o valor nulo, caso o aluno seja o próprio representante, como mostrado no exemplo abaixo.

Chave Estrangeira e Integridade referencial Exercício: Passe as tabelas abaixo para o modelo relacional.

1. O modelo relacional é definido usando como base o modelo de ER. O modelo relacional consiste em uma coleção de tabelas e na definição de chaves estrangeiras para relacionar essas tabelas. 2. Sendo assim, construir o modelo relacional consiste em definir as tabelas e as chaves estrangeiras. 3. Serão apresentadas regras que devem ser aplicadas para fazer a conversão de um modelo no outro.

tbprofessor( matricula_professor, nome_professor, CPF_professor, nome_rua_professor, numero_rua_professor, complemento_professor) tbaluno(matricula_aluno, data_nascimento_aluno, nome_aluno) Atenção! Nos exemplos que serão apresentados daqui para frente, vamos omitir o tipo de dados da descrição do modelo relacional.

Entidade - Toda entidade do modelo de ER vira uma tabela no modelo relacional. 1. Caso a entidade tenha atributos compostos, eles devem ser decompostos. 2. Caso a entidade tenha atributos multivalorados, para cada atributo multivalorado cria-se uma nova tabela. 3. A tabela correspondente ao atributo multivalorado vai ter como atributos o atributo multivalorado em si, mais a chave primária da tabela onde o atributo multivalorado estava inserido (que vai passar como chave estrangeira para a nova tabela).

Entidade - Exemplo1 No modelo relacional fica: tbprofessor( matricula_professor, nome_professor, CPF_professor, nome_rua_professor, numero_rua_professor, complemento_professor) Foi criada uma tabela para o atributo multivalorado telefone tbtelefoneprofessor( matricula_professor, telefone_professor) matricula_professor referencia tbprofessor

Entidade - Se o atributo for multivalorado composto, a nova tabela, deverá conter o atributo multivalorado decomposto e sua chave primária será a combinação da chave estrangeira com um ou mais atributos da nova tabela. - Exemplo: tbprofessor( matricula_professor, nome_professor, CPF_professor) tbtelefoneprofessor( matricula_professor, telefone_residencial, tefefone_celular) matricula_professor referencia tbprofessor

Entidade Fraca - Para cada entidade fraca no modelo ER, é criada uma tabela no modelo relacional, incluindo todos os atributos da entidade fraca, mais a chave primária da entidade com a qual a entidade fraca se relaciona. - Exemplo: tbaluno( matricula_aluno, data_nascimento_aluno, nome_aluno) tbcontato( matricula_aluno, fone_contato, nome_contato) matricula_aluno referencia tbaluno

Relacionamento N:N - Todo relacionamento com cardinalidade Muitos para Muitos entre duas entidades, vira uma nova tabela. 1. Essa nova tabela irá conter todos os atributos descritivos do relacionamento (se houver), mais as chaves primárias das entidades que fazem parte desse relacionamento. 2. As chaves primárias que vão passar para a nova tabela passam como chaves estrangeiras. 3. A chave primária da nova tabela será composta pelas chaves estrangeiras e, se houver necessidade, por algum atributo descritivo

Relacionamento N:N - Exemplo tbprofessor( matricula_professor, nome_professor, telefone_professor) tbdisciplina( codigo_disciplina, nome_disciplina) Foi criada uma tabela para o relacionamento N:N tbprofessordisciplina( matricula_professor, codigo_disciplina, data) matricula_professor referenc ia tbprofessor codigo_disciplina referencia tbdisciplina

Relacionamento 1:N - Relacionamentos com cardinalidade 1:N não geram nova tabela. No entanto, para que se possa manter o relacionamento cria-se uma chave estrangeira na entidade que possui a cardinalidade N. - Se o relacionamento tiver atributos descritivos, esses atributos seguirão a chave estrangeira, ou seja, ficarão na mesma tabela que a chave estrangeira ficar (a de cardinalidade N).

Relacionamento 1:N - Exemplo tbescola( codigo_escola, nome_escola, cidade_escola) Foi criada uma chave estrangeira na tabela tbprofessor por esta ser a entidade que tinha a cardinalidade N. tbprofessor( matricula_professor, nome_professor, telefone_professor, CPF_professor, codigo_escola) codigo_escola referencia tbescola

Relacionamento 1:1 - Relacionamentos com cardinalidade 1:1 entre duas entidades, também não geram uma nova tabela. No entanto, deve-se escolher a chave primária de uma das entidades ligadas ao relacionamento e inseri-la como chave estrangeira na outra tabela. - A questão é a seguinte: Qual tabela deve receber a chave estrangeira? - Devemos considerar o tipo de participação das entidades no relacionamento. O tipo de participação pode ser total ou parcial.

Relacionamento 1:1 continuação -A participação total ocorre quando todos os objetos de um a entidade participam do relacionamento e a participação parcial ocorre quando apenas alguns objetos da entidade participam do relacionamento. tbprofessor( matricula_professor, nome_professor, telefone_professor, CPF_professor) tbescola( codigo_escola, nome_escola, cidade_escola, matricula_profe_diretor) matricula_profe_diretor referencia tbprofessor

Relacionamento Recursivo - Todo relacionamento recursivo gera uma chave estrangeira que faz referência à chave primária da própria tabela. Exemplo: tbaluno( matricula_aluno, nome_aluno, data_nascimento_aluno, matricula_aluno_repres) matricula_aluno_repres referencia tbaluno

Relacionamentos Ternários - Para cada relacionamento entre mais de duas entidades, cria-se uma tabela contendo todos os atributos descritivos do relacionamento (se houver) mais as chaves primárias de todas entidades ligadas ao relacionamento (que passam como chaves estrangeiras). - A chave primária da nova tabela, será composta pelos atributos chaves das entidades participantes do relacionamento que tiverem cardinalidade N e, se houver necessidade, mais algum atributo descritivo.

Relacionamentos Ternários - Exemplo tbprofturmadisc( matricula_professor, codigo_disciplina, codigo_turma, ano) matricula_professor referencia tbprofessor codigo_disciplina referencia tbdisciplina codigo_turma referencia tbtur ma tbprofessor( matricula_professor, nome_professor, telefone_professor, CPF_professor) tbdisciplina( codigo_disciplina, nome_disciplina) tbturma( codigo_turma, nome_turma)

Agregação - Uma agregação no modelo de ER vira uma tabela no modelo relacional e irá conter seus próprios atributos, mais as chaves estrangeiras de acordo com os seus relacionamentos.

Agregação - Exemplo tbcliente( codigo_cliente, nome_cliente) tbprodutro( codigo_produto, nome_produto, preco_produto) tbcompra( codigo_cliente, codigo_produto, data_compra, valor_compra) codigo_cliente refe rencia tbcliente codigo_produto refe rencia tbproduto tbprestacao( codigo_prestacao, data_prestacao, valor_prestacao, codigo_cliente, codigo_produto, data_compra) (codigo_cliente, codigo _produto, data_compra) referencia tbcompra

Especialização - A transformação de uma especialização do modelo de ER para o modelo relacional pode ser feita de 3 diferentes modos: 1. Criando uma tabela apenas para a entidade pai; 2. Criando tabelas apenas para as entidades filhas; 3. Criando uma tabela para cada entidade (tanto para a entidade pai, quanto para as filhas).

Especialização (cont) - Na terceira situação, 1. Serão criadas tabelas para todas as entidades (pai e filhas). 2. Cada tabela terá seus atributos específicos, e os atributos dos seus relacionamentos. 3. As tabelas referentes às entidades filhas também receberão como FK a PK da entidade pai. 4. A PK para cada entidade filha será a FK, que neste caso terá as duas funções (PK e FK).

Especialização - Exemplo tbpessoa( RG_pessoa, telefone_pessoa, nome_pessoa) tbprofessor( RG_pessoa, matricula_professor, CPF_professor, escolaridade_prof) RG_pessoa referencia tbpessoa tbaluno( RG_pessoa, matricula_aluno, data_nascimento_aluno, codigo_turma) codigo_turma referencia tbturma RG_pessoa referencia tbpessoa tbturma( codigo_turma, nome_turma)

Fim!!!!!