Modelo Relacional Prof. Msc Denival A. dos Santos

Documentos relacionados
MODELO DE BANCO DE DADOS RELACIONAL

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)

Introdução ao Modelo Relacional

INTRODUÇÃO AO MODELO RELACIONAL

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

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

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

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

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

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

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

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

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

A linguagem SQL

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

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

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

BCD29008 Banco de dados

Banco de Dados. Linguagem SQL

Restrições do modelo relacional

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

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

Banco de Dados I Introdução SQL

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

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

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

Abordagem relacional. Capítulo 4

Professor Eros Moura, DSc

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

Bancos (Bases) de Dados Aula #4 Modelo Relacional

SQL Linguagem de Definição de Dados

MC536. Modelo Relacional

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

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

Teste Exemplo Revisão da tentativa 1

Modelo Lógico de Dados. Modelo Relacional

Chave alternativa. Angélica Toffano Seidel Calazans Abordagem Relacional

Revisando Banco de Dados. Modelo Relacional

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

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

BCD29008 Banco de dados

Sistemas de Informação e Bases de Dados 2012/2013. Restrições de Integridade em SQL

SQL Básica. Andre Noel

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

Unidade 2 Modelo Conceitual

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

MODELO RELACIONAL PARTE 2

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

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Prof.: Clayton Maciel Costa

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

Modelo Relacional Wendel Melo

A linguagem SQL

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

Material Teórico. Organização de Dados. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Administração e Projeto de Banco de dados

Banco de Dados Modelo Relacional, Algebra Relacional, SQL

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

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

BANCO DE DADOS I Atualizado em 13 de maio de 2009

O Modelo Relacional. Criando relações em SQL

O Modelo Relacional. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento)


O Modelo e a Álgebra Relacional

Fundamentos de Banco de Dados e Modelagem de Dados

MODELAGEM DE DADOS PARTE 1

Banco de Dados Modelagem e Normalização

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

Linguagem de Consulta Estruturada (SQL)

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

Modelo Entidade Relacionamento Estendido (ERE)

Bibliografia. Bases de Dados 2012/2013 Modelo Relacional. Helena Galhardas. Raghu Ramakrishnan, Database Management Systems, Cap. 3 10/2/ IST

Bancos (Bases) de Dados

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

Revisão de Bancos de Dados

Modelo Entidade-Relacionamento (E-R)

conteúdos. bases de dados, SGBD e aplicações. conceitos. modelo relacional (DER) conceitos

Sistemas de Banco de Dados

BCD29008 Banco de dados

Tabelas. Banco de Dados I MySQL

Manipulação de Dados com SQL

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

Bases de Dados. DDL Data Definition Language

Conceito de Campos e Tabelas

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Introdução a Banco de Dados Prof. Msc Denival A. dos Santos

MODELAGEM DE DADOS PARTE 2

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Prof. Luiz Fernando. Unidade I ADMINISTRAÇÃO

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

GES013 Sistema de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva ilmerio arroba ufu.br UFU/FACOM

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Informática I. Aula 8. Aula 8-25/09/2006 1

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS O MODELO RELACIONAL

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Modelo Relacional. Aula 02

Transcrição:

Modelo Relacional Prof. Msc Denival A. dos Santos

Introdução Criado por Edgar F. Codd em 70 (primeiros sistemas relacionais: 1977 78: System R e Ingres); O modelo relacional é um modelo lógico fundamentado nos conceitos de uma relação matemática (teoria de conjuntos); A abordagem relacional está baseada no princípio de que as informações em uma base de dados podem ser consideradas como relações matemáticas e que estão representadas de maneira uniforme, através de tabelas bidimensionais; Definição clássica: São conjuntos de dados vistos segundo um conjunto de TABELAS e as operações sobre essas tabelas são feitas por linguagens que manipulam a álgebra relacional, manipulando conjuntos de uma só vez. Página 2

Introdução O modelo relacional é hoje o modelo dominante para aplicações comerciais de banco de dados. Oracle SQL Server DB2 Informix Interbase Firebird MySQL Etc. Levou ao desenvolvimento de uma poderosa linguagem de consulta, o SQL (Structured Query Language). Padrões ANSI SQL-86, ISO SQL-92 (SQL2), ISO SQL-99 (SQL3), SQL-2003, SQL-2006, SQL-2008, SQL-2011. Página 3

Relação O modelo relacional é um modelo lógico onde os dados são representados em relações ou tabelas. Neste modelo, um banco de dados é um conjunto de relações; A terminologia tabela é mais comum nos produtos comerciais e na prática. Já a terminologia relação foi utilizada na literatura original sobre a abordagem relacional (daí a denominação relacional), sendo mais comum na área acadêmica e nos livros texto; Dá-se o nome de instância de uma relação ao conjunto de linhas de uma relação; Cada relação define uma tabela onde cada coluna é um atributo e cada linha uma tupla; Neste modelo, começa a preocupação em como os dados devem ser armazenados em como criar os relacionamento do modelo conceitual; Nesta etapa é definido o SGBD que será utilizado, bem como os tipos de dados para cada atributo. Página 4

Terminologias do modelo Domínio é uma coleção de valores atômicos, ou seja, valores indivisíveis dentro do contexto da situação a ser representada pelo banco de dados. Exemplo: idade = inteiro; cep = conjutno de 8 caracteres, etc. Atributo é um dado com nome e domínio definido, também chamado de campo da tabela. Também conhecido como coluna ou campo. Exemplo: nome: string; idade: string; sexo [M,F], etc. Grau número de atributos de uma relação. Cardinalidade quantidade de tuplas da relação. Tuplas conjunto de atributos com valores determinados. Também conhecida como linhas ou registros. Não há tuplas duplicadas em uma mesma relação Página 5

Terminologia do modelo - exemplo Página 6

As 12 regras de Codd Codd, ao definir o modelo relacional, estabeleceu um conjunto de 12 regras para a determinação de um banco de dados ser realmente relacional. São elas: 1 Toda informação num banco de dados relacional é apresentada a nível lógico por valores em tabelas; 2 Todo dado em um banco de dados relacional tem a garantia de ser logicamente acessível, recorrendo-se a uma combinação do nome da tabela, um valor de chave e o nome da coluna; 3 Tratamento sistemático de valores nulos (ausência do dado); 4 O dicionário de dados (catálogo) relacional ativo é baseado no modelo relacional; 5 O SGBD relacional deve ter uma linguagem para definição, detalhamento e manipulação dos dados; Página 7

As 12 regras de Codd 6 Tratamento das atualizações de visões dos dados; 7 Tratamento de alto nível para inserção, atualização e eliminação dos dados; 8 Independência dos dados físicos (mudança na memória e no método de acesso); 9 Independência de dados lógicos (mudanças de qualquer tipo nas tabelas básicas, ex: divisão de uma tabela por linha ou coluna); 10 Independência das restrições de integridade; 11 Independência de distribuição; 12 Não subversão das regras de integridade ou restrições quando se utiliza uma linguagem de baixo nível. Página 8

Chave Conceito básico para estabelecer relações entre linhas de tabelas de um banco de dados relacional é o da chave. Em um banco de dados relacional, há ao menos cinco tipos de chaves a considerar: Super chave, Chave candidata, Chave primária, Chave alternativa, e Chave estrangeira. Página 9

Super chave Uma superchave é um conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar de maneira unívoca uma entidade em um conjunto de entidades. Por exemplo: o atributo cpf do conjunto de entidades cliente é suficiente para distinguir uma entidade cliente de outra. Assim, o cpf é uma superchave. Do mesmo modo, a combinação de nome_cliente e cpf é superchave para o conjunto de entidades cliente. Já o nome_cliente não é superchave de cliente, pois algumas pessoas podem ter o mesmo nome. Página 10

Chave candidata Uma chave candidata é uma superchave para qual nenhum subconjunto possa ser uma superchave. É possível que vários conjuntos diferentes de atributos possam servir como superchave, porém, nem todos serão chaves candidatas. Exemplo: suponha uma combinação de nome_cliente e rua_cliente seja suficiente para distinguir todos os membros do conjunto de entidades cliente, assim como o atributo cpf, sozinho. Então (cpf) e (nome_cliente, rua_cliente) são chaves candidatas. Embora os atributos (cpf, nome_cliente), juntos, possam, distinguir as entidades cliente, sua combinação não forma uma chave candidata, uma vez que cpf, sozinho, é uma chave candidata. É comum designar uma das chaves candidatas como chave primária da relação. As outras chaves candidatas são designadas como chave únicas (unique keys). Página 11

Chave primária Uma chave primária é a chave candidata que é escolhida pelo projetista do banco de dados como de significado principal para a identificação de entidades dentro de um conjunto de entidades. A chave primária (ou primary key ou ainda PK) é um atributo da entidade que identifica apenas um objeto dessa entidade. Portanto, o valor dentro de uma chave primária não poderá se repetir e também não poderá receber um valor nulo. Exemplo: Por exemplo, a entidade PROFESSOR tem tanto o atributo CPF quanto o atributo MATRICULA não se repetem, uma vez que esses atributos são únicos para cada indivíduo. Neste caso, qualquer um dos atributos poderia ser definido como uma chave primária. Então, qual escolher como chave primária? Solução: vai depender da modelagem, neste caso a matricula seria a melhor escolha, uma vez que a maioria das consultas seriam feitas considerando a MATRICULA e não o CPF. Página 12

Chave primária Um ponto importante a considerar durante a decisão de qual atributo deverá ser a chave primária é que se deve dar preferência a atributos numéricos (inteiros) em vez de atributos do tipo caractere, data ou hora. Uma chave primária pode ser: Simples é aquela que será formada por apenas um atributo. Exemplo: matricula_professor. Composta (ou concatenada) é composta por dois ou mais atributos. Exemplo: numero_compra, codigo_produto. Observação: Não existe mais de uma chave primaria por relação. O que poderá existir é uma chave primária composta por mais de um atributo. Página 13

Chave primária - exemplo Em um SGBD relacional, a chave primária é diferenciada dos demais atributos por possuir na sua representação textual (esquema) o atributo que será a chave primária da relação sublinhado (ou com um asterisco, ou com a sigla PK). Exemplo: TipoDeProduto (CodTipoProd, DescrTipoProd) Produto(CodProd, DescrProd, PrecoProd, QuantProd, CodTipoProd) Página 14

Chave estrangeira Um conceito muito importante quando se fala de modelo relacional é o conceito de chave estrangeira (ou Foreign key ou FK); Uma chave estrangeira é um atributo da tabela que faz referência a uma chave primária de outra tabela ou da própria tabela; Página 15

Chave estrangeira Exemplo: Página 16 Pai( CodPai (PK), nome) Filho (CodFilho (PK), nome, CodPai (FK)) Uma das notações utilizadas na literatura nos permite identificar mais facilmente a que chave primária de qual tabela a chave estrangeira faz referência. Nesta notação temos: Exemplo: Pai( CodPai (PK), nome) Filho (CodFilho (PK), nome, CodPai) CodPai referencia Pai Observação: Uma chave estrangeira sempre faz referência a uma chave primária. A chave estrangeira nunca fará referência a um atributo que não seja uma chave primária. O nome do atributo que é chave estrangeira não precisa ser igual ao nome da chave primária correspondente.

Restrições de integridade - RI Condição que é especificada sobre um esquema de relação e deve ser satisfeita para qualquer instância do BD. RIs são especificadas na definição do esquema; RIs são checadas pelo SGBD quando o BD é modificado. Objetivos Evitar que o BD entre em um estado inconsistente RIs podem ser especificadas e forçadas em diferentes níveis. Durante a criação de um esquema de relação Exemplo: o domínio de um atributo. Durante a execução de uma aplicação o SGBD impede operações que violem as RIs. Página 17

Restrições de integridade - RI Um dos objetivos primordiais de um SGBD é a integridade de dados. Dizer que os dados de um banco de dados estão íntegros significa dizer que eles refletem corretamente a realidade representada pelo banco de dados e que são consistentes entre si. O controle de integridade de dados embutido nos SGDBs garante que todos os dados inclusos ou alterados no banco estarão de acordo com regras criadas para estes. No abordagem relacional, costuma-se classificar as restrições de integridade nas seguintes categorias: Integridade de domínio - restrições deste tipo especificam que o valor de um campo deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna); Integridade de chave - não podem existir duas tuplas de uma relação com valores iguais na chave primária; Integridade de vazio (entidade) a chave primária não pode conter um valor nulo (NULL). O NULL não é o valor 0 (zero) nem o caractere branco, é simplesmente a não existência de conteúdo neste campo; Integridade referencial - é a restrição que define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada. Página 18

Integridade Referencial com opção de exclusão Notação: onde op é a opção de exclusão, dentro as seguintes: Bloqueio (restrict): se alguma tupla referencia a tupla a ser excluída, através de uma chave estrangeira, a exclusão não é efetuada; Propagação (cascade): todas as tuplas que referenciam a tupla a ser exclída, através de uma chave estrangeira, são excluídas também automaticamente; Substituição por nulos (set null): todas as tuplas que referenciam a tupla a ser excluída, através de uma chave estrangeira, têm os valores dos atributos da chave estrangeira modificada para nulo (se for permitido nulo) e a exclusão é efetuada. Página 19

Operações de atualização sobre relações Inserção (insert) insere novas tuplas em uma relação. Pode violar qualquer dos quatro tipos de restrições discutidas. Exclusão (delete) exclui tuplas de uma relação Pode violar somente restrições de integridade referencial. Modificação (update ou modify) muda os valores de alguns atribuitos em tuplas existentes. Modificar um atributo que não é chave primária nem chave estrangeira pode violar somente a restrição de domínio; Modificar a chave primária é similar a excluir uma tupla e inserir uma outra no seu lugar; assim, pode violar qualquer das quatro restrições discutidas; Modificar uma atributo de uma chave estrangeira pode violar a restrição de integridade referencial ou de domínio. Página 20

Diagrama de tabelas relacionais - DTR O diagrama de tabelas relacionais é uma representação gráfica deste modelo, normalmente utilizamos a notação Crow s Foot de James Martin (comumente conhecida como Pé de Galinha, devido a simbologia utilizada). A maioria das ferramentas CASE atuais implementam apenas este diagrama. Página 21

Diagrama de tabelas relacionais - DTR 1:1 1:N N:N Observação: Em BD relacionais não é possível implementar uma relacionamento N:M. Quando acontecer deve ser transformado em 1:N M:1. 1:N M:1 Página 22

Dicionário de dados Após o modelo relacional ter sido descrito ou diagramado, é necessário criar um Dicionário de dados para a base de dados. O dicionário de dados tem por objetivo descrever as propriedade de uma tabela, sua estrutura física e as restrições que cada atributo possui. Assim, o desenvolvedor irá implementar o banco de dados saberá exatamente como a base deve ser criada; No dicionário de dados cada tabela do modelagem deverá ser descrita e deverá conter os seguintes campus: nome do atributo, descrição do atributo, tamanho, tipo, restrições (valor nulo, regra de domínio, chaves, valor default e unique). Página 23

Dicionário de dados - exemplo Página 24