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

Documentos relacionados
Modelo Relacional Prof. Msc Denival A. dos Santos

Fundamentos de Banco de Dados e Modelagem de Dados

Modelo Entidade Relacionamento Estendido (ERE)

MODELO RELACIONAL Prof.: Jacson Tiola Técnico em Redes de Computadores

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

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

MODELO DE BANCO DE DADOS RELACIONAL

Modelo Lógico de Dados. Modelo Relacional

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

Revisando Banco de Dados. Modelo Relacional

Professor Eros Moura, DSc

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

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

BANCO DE DADOS. Araújo Lima. Ago / Araújo

Base de Dados. Sistemas de Informação. Base de Dados - Índice Introdução Componentes Base de Dados. Introdução. Introdução. Introdução.

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

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Sistemas de Arquivos Convencionais

Introdução ao Modelo Relacional

BCD29008 Banco de dados

O que é modelo lógico. Tipos de modelo

INTRODUÇÃO AO MODELO RELACIONAL

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

BANCO DE DADOS. Araújo Lima. Fev / Araújo

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

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

BANCO DE DADOS. Introdução. Prof. Marcelo Machado Cunha

Parte II Modelo de Dados Relacional. Evandro E. S. Ruiz

Conceitos de Modelo Relacional Restrições de um Banco de Dados

SQL Linguagem de Definição de Dados

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

MC536. Modelo Relacional

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

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

Modelo Relacional e Normalização de Dados. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Prof.: Clayton Maciel Costa

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Introdução a Bancos de Dados

Administração e Projeto de Banco de dados

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Banco de Dados I 4 Normalização

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Modelo Relacional Wendel Melo

A U L A 1 I N T R O D U Ç Ã O A B A N C O D E D A D O S E V I S Ã O G E R A L D O S Q L

Prof. Marcelo Machado Cunha

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSORA RESPONSÁVEL: Roberta Macêdo Marques Gouveia

MODELAGEM DE DADOS PARTE 1

Banco de Dados. Modelagem de Dados. Prof.: Salustiano Rodrigues

O Modelo e a Álgebra Relacional

Banco de Dados. Perspectiva Histórica dos Bancos de Dados. Prof. Walteno Martins Parreira Jr

Sistemas de Informação e Bases de Dados 2012/2013. Modelo Relacional. Alberto Sardinha 2012 IST

Introdução a Ciência da Computação Estrutura e Organização das Informações PROFESSORA CINTIA CAETANO

Modelagem Conceitual parte I

Modelagem Conceitual parte I

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Banco de Dados Modelo Relacional, Algebra Relacional, SQL

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Projeto de Banco de Dados

Abordagem relacional. Capítulo 4

Introdução a Banco de Dados. Adão de Melo Neto

Modelo Lógico de Dados (MLD) Origens do modelo relacional

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Banco de Dados I (MAB489)

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

António Rocha Nuno Melo e Castro

A linguagem SQL

Conceito de Campos e Tabelas

Banco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju

CICLO DE VIDA DE UM BD


P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

Rápida revisão do Modelo Relacional

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

CONTEÚDO PROGRAMÁTICO

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;

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

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

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

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional. Fernando Fonseca Ana Carolina

Modelo Entidade-Relacionamento (E-R)

Introdução a Banco de Dados Aula 02. Prof. Silvestri

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

Curso: Banco de Dados I. Conceitos Iniciais

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Informática Parte 3 Prof. Márcio Hunecke

Arquivo. Banco de Dados. Organização dos Arquivos. Banco de Dados. Banco de Dados. Introdução a Computação

Disciplina de Banco de Dados Parte V

P R O J E T O: C A R N A V A L. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

Banco de dados na Web

Banco de Dados Relacional

Modelo Relacional. Aula 02

Conceitos Básicos de modelagem de dados Modelo conceitual Modelo Lógico Modelo Físico

Ciclo de Desenvolvimento de BD

Restrições do modelo relacional

Transcrição:

Banco de Dados I 3 Modelagem de Dados Lógico e Físico Grinaldo Lopes de Oliveira (grinaldo( grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas * Material com créditos de colaboração dos professores Márcio Soussa, Leandro Coelho e Pablo Florentino

Agenda Aprendendo Modelo Relacional Mapeamento para o Projeto Lógico

Modelo Relacional

Modelo Relacional - Histórico Sistemas de Processamento de Arquivo Modelos Hierárquicos, em rede Sistemas Relacionais O modelo relacional foi proposto na década de 70 por Edgard F. Codd. Dominam o mercado de Banco de Dados. Ex.: DB2, Ingres, Informix, Interbase, SQL Server, Sybase, Oracle, MySQL, Firebird, PostgreSQL Sistemas Objeto/Relacional Sistemas de Objetos

Modelo Relacional - Modelos Hierárquico e Rede: Os dados são representados por uma coleção de registros e os relacionamentos por meio de links Hierárquico: É representado como uma coleção de árvores enquanto Rede É representado por meio de gráficos arbitrários.

Modelo Relacional - Fundamentos Edgard Codd percebeu que seria possível aplicar as operações conhecidas na matemática para o manuseio de conjuntos sobre estruturas de dados. Seleção, projeção, união, interseção e outras operações realizadas sobre os dados poderiam ser comprovadas através da teoria dos conjuntos. Pôde-se então, estabelecer um método formal e rigoroso para o tratamento das estruturas de dados, até então desestruturados.

Modelo Relacional - Conceitos Banco de Dados relacional Banco de dados no qual todos os dados são percebidos como tabelas Relação: Termo matemático usado para definir uma tabela. Tabela e relação são usualmente tratadas como sinônimos O termo relacional nada tem a ver com os relacionamentos entre as tabelas, mas sim com o uso de tabelas (Relações).

Modelo Relacional - Introdução Divide-se em 3 aspectos importantes: Aspecto Estrutural Dados percebidos como tabelas, e nada além de tabelas Aspecto de Integridade As tabelas satisfazem a certas regras de integridade Aspecto Manipulativo Possui operadores para manipulação dos dados, como: restrição, projeção e junção.

Modelo Relacional Aspecto Estrutural Glossário: Relação: Tupla: Atributo: Cardinalidade: Grau: Domínio: Mesmo que tabela Uma linha da tabela Uma coluna da tabela Número de tuplas em uma tabela (linhas) Número de atributos em uma tabela (Colunas) Conjunto de valores que podem ser armazenados em um atributo

Modelo Relacional Aspecto Estrutural Ex: Tabela de Clientes CODIGO# NOME CODIGO CIDADE 1010 MARIA DOS SANTOS 1011 CARLOS SANTANA 1012 JOSE HAMILTON 1013 MARIA DOS SANTOS BAIRRO 7 BARRA 4 MORUMBI 7 BARRA 7 CABULA

Modelo Relacional Aspecto Estrutural Terminologias Termo relacional formal Equivalente informal - relação - tabela - tupla - linha de registro - cardinalidade - número de linhas - atributo - coluna ou campo - grau - número de colunas - domínio - Faixa de valores legais

Modelo Relacional Aspecto Estrutural Glossário: Tabela básica: Tabela derivada: Visão: Tabela original Tabela originada a partir de tabelas originais Porção da uma tabela original

Modelo Relacional Aspecto Estrutural Uma visão da Tabela de Clientes Foi retirada a coluna bairro CODIGO# NOME CIDADE 1010 MARIA DOS SANTOS 1011 CARLOS SANTANA 1012 JOSE HAMILTON 1013 MARTA ALCÂNTARA 7 4 7 7

Modelo Relacional Aspecto Estrutural Propriedades de uma Relação (Tabela): Não existem tuplas em duplicata Tuplas não são ordenadas de cima p/ baixo A ordem pode ser especificada na consulta Atributos não são ordenados da esq. p/ dir. A ordem pode ser especificada na consulta Cada tupla contém um único valor para cada atributo (valor atômico - monovalorados)

Modelo Relacional Aspecto Estrutural O cabeçalho de uma relação representa um Predicado: CODIGO NOME CIDADE BAIRRO O Cliente de código CODIGO# chama-se NOME, mora na cidade CIDADE e no bairro BAIRRO. Cada linha de corpo representa uma proposição verdadeira baseada no predicado: Ex: O Cliente 1010, chama-se Maria dos Santos e mora na cidade de Salvador e no bairro da Barra.

Modelo Relacional Integridade É necessário incluir algumas regras de integridade ao banco de dados, informando restrições do mundo real (Regras de Negócio) Os bancos de dados estão sujeitos a um número grande de regras de integridade É necessário que o banco de dados seja consistente, isto é, tenha integridade

Modelo Relacional Integridade Não podem existir dois elementos iguais em uma relação, isto é, não temos linhas iguais ou duplicadas. O que caracteriza um elemento de uma relação é a instanciação de todos os seus domínios. É possível então eleger colunas como Candidatas a serem chave (Chaves Candidatas).

Modelo Relacional Integridade Restrição de Domínio Restrição de Chaves Restrição de Integridade Referencial Restrição de Integridade Semântica

Modelo Relacional Domínio Nada mais é que um tipo de dado. Conjunto de valores possíveis para determinados atributos ou nulo. Definido pelo sistema. Ex. int, smallint, char, varchar. Definido pelo usuário. Ex. Idade, Categoria, UF.

Modelo Relacional Integridade / Nulo Valor nulo em um atributo pode significar: O atributo não se aplica àquela tupla. O valor existe, mas é desconhecido. O valor é conhecido, mas está ausente. É uma forma de tratar a falta de informação do mundo real. Um valor Nulo não é igual a zero (0) ou (branco ou espaço). Não é igual a nada, visto que simplesmente não existe. Possui implicações para o Banco de Dados.

Modelo Relacional Integridade / Nulo Um dado atributo pode ter ou não permissão para conter nulos Nenhum componente de chave primária pode aceitar nulo Chaves estrangeiras podem ou não aceitar nulos

Modelo Relacional Integridade / Chaves Chave Primária (PK Primary Key) Identificador único para uma relação. Quando uma relação tem mais que uma chave candidata, é escolhida uma como chave primária. As demais, denominam-se chaves alternativas Como as relações não contém tuplas duplicadas podemos dizer que toda relação tem pelo menos uma chave candidata.

Modelo Relacional Integridade / Chaves Chave Primária (PK Primary Key) Uma chave primária pode ser composta por apenas um atributo ou por mais de um atributo (chave composta) Otimiza a busca de um elemento específico na relação Obs.: A localização de registros pode ser feita através de colunas identificadas como chave primária ou não.

Modelo Relacional Integridade Referencial Chave Estrangeira (FK Foreign Key) Serve para que possamos implementar os relacionamentos vistos na modelagem Ela é uma chave e, portanto, identifica de modo único uma tupla Ela não está em seu local de origem, mas sim em um local para onde foi migrada. Ela tem um local de origem e lá possui características originais.

Modelo Relacional Integridade Referencial Chave Estrangeira (FK Foreign Key) Uma chave estrangeira nada mais é do que uma chave primária de uma tabela que aparece repetida em outra. É o método usado para o estabelecimento de relacionamento entre duas tabelas. Quando a chave primária de uma tabela é movida para outra tabela, temos uma chave estrangeira

Modelo Relacional Integridade Referencial Um banco de dados não pode conter valores de chaves estrangeiras não associados Todo o banco de dados que não obedeça às regras de integridade é dito inconsistente Impõe restrições que devem ser garantidas em operações no BD. Inclusão, Atualização Deleção

Modelo Relacional Integridade Referencial Como o SGBD se comporta quando há uma tentativa de deleção ou atualização de uma chave primária referenciada em uma chave estrangeira? Restrita: A operação não é executada se houver registros associados em outras tabelas Cascata: A operação deleta ou atualiza em cascata todos os registros associadas existentes em outras tabelas

Modelo Relacional Integridade Referencial Tabela de Cidades CODIGO# DESCRIÇÃO UF 4 SÃO PAULO SP 5 RIO DE JANEIRO RJ 7 SALVADOR BA 8 RECIFE PE

Modelo Relacional Integridade Semântica Implementa Regras de Negócios do mundo real Ex: O aluno que tiver mais de duas disciplinas em dependência não pode passar para o próximo semestre Ex: Após três meses em atraso, o cliente passa para o cadastro de inadimplentes Geralmente implementado através de gatilhos (Triggers)

Modelo Relacional Aspecto Manipulativo Ex.: Operadores: Responsáveis pela manipulação dos dados Consulta Restrição: extrai linhas específicas Projeção: extrai colunas específicas Junção: Une duas tabelas Atualização, deleção e inserção

Modelo Relacional Aspecto Manipulativo Restrição: Clientes que moram em Salvador CODIGO# NOME CIDADE BAIRRO 1010 MARIA DOS SANTOS 1012 JOSE HAMILTON 1013 MARIA DOS SANTOS 7 BARRA 7 BARRA 7 CABULA

Modelo Relacional Aspecto Manipulativo Projeção: Código e Nome dos clientes CODIGO# NOME 1010 MARIA DOS SANTOS 1011 CARLOS SANTANA 1012 JOSE HAMILTON 1013 MARTA ALCÂNTARA

Modelo Relacional Aspecto Manipulativo Junção: Une Clientes e cidades CODIGO# NOME CIDAD E 1010 MARIA DOS SANTOS DESCRICAO CIDADE BAIRRO 7 SALVADOR BARRA 1011 CARLOS SANTANA 1012 JOSE HAMILTON 1013 MARIA DOS SANTOS 4 SÃO PAULO MORUMBI 7 SALVADOR BARRA 7 SALVADOR CABULA

Mapeamento para o Projeto Lógico

Projeto Lógico Regras de Derivação A obtenção de um modelo lógico é feito a partir de um modelo conceitual previamente gerado. As restrições tecnológicas são levadas em consideração Para tanto, dispomos de uma série de regras de derivação que aplicamos sobre o modelo conceitual e o transformamos em um modelo lógico.

Projeto Lógico Regras de Derivação Três atividades principais: Derivação das estruturas Básicas Entidades e Atributos Relacionamentos Derivação das Estruturas Adicionais Agregação Generalização-Especialização Normalização das Estruturas de Dados 1o FN, 2o FN, 3o FN

Projeto Lógico Derivação de Relacionamentos 1:1 sem atributos 1:N 1:N sem atributos com atributos M:N M:N sem atributos com atributos Ternários

Projeto Lógico 1:1 sem atributos Opções: 1- Acrescer a chave primária da tabela A como chave estrangeira na tabela B 2- Acrescer a chave primária da tabela B como chave estrangeira na tabela A Qual das duas opções acima devemos escolher? Devemos migrar a chave primária da tabela que nasce primeiro como chave estrangeira na outra tabela 3- Migrar todos os atributos e relacionamentos da tabela A para a tabela B, excluindo a tabela A 4- Migrar todos os atributos e relacionamentos da tabela B para a tabela A, excluindo a tabela B

Projeto Lógico 1:N sem atributos A R 1 N B Representa a maioria dos relacionamentos Única regra: 1- Acrescer a chave primária da tabela A como chave estrangeira na tabela B Obs.: A chave estrangeira pode aceitar nulo ou não a depender do grau mínimo da cardinalidade

Projeto Lógico 1:N com atributos A R 1 N B Opções: 1- Acrescer a chave primária da tabela A como chave estrangeira na tabela B e migrar os atributos do relacionamento para a entidade B 2 Criar uma tabela C para manter as associações entre A e B e alocar os atributos do relacionamento nessa nova tabela

Projeto Lógico M:N com ou sem atributos A M R N B Única regra: Criar SEMPRE uma tabela C, agregando as chaves estrangeiras das entidades originais. Caso haja atributos no relacionamento, estes deverão passar a fazer parte da nova tabela criada

Projeto Lógico Derivação de Auto-Relacionamento A R A derivação do relacionamento deve ocorrer da mesma maneira que ocorre com relacionamentos binários, isto é, a derivação vai depender unicamente da cardinalidade, como nos relacionamentos binários

Projeto Lógico Agregação A M R N B M R 1 C Como derivar uma agregação?

Projeto Lógico Generalização / Especialização 1- Criar uma tabela para a entidade generalizada e uma tabela para cada especializada, acrescendo a chave primária da tabela generalizada em cada tabela especializada 2- Criar somente uma tabela para a generalizada e migrar todos os atributos e relacionamentos para essa tabela 3 Criar somente tabelas para as entidades especializadas e migrar todos os atributos e relacionamentos da entidade generalizada para cada uma das tabelas especializadas

Tarefa Extra-Classe Recupere os exercícios de Modelagem Lógica e Física e façaos todos.

Banco de Dados I Aula 3 Modelagem de Dados Lógico e Físico Grinaldo Lopes de Oliveira (grinaldo( grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas