Modelo relacional Fundamentos de Banco de Dados

Slides:



Advertisements
Apresentações semelhantes
Modelo Relacional e Transformação DER x Relacional
Advertisements

T I  C Módulo 2 Base de dados
Um pouco mais de cardinalidade e Relacionamentos
FABAN- UNIESP 2009 Prof. Carlos Alberto Seixas
Base de Dados para a Gestão de Informação de Natureza Pedagógica
Laboratório WEB Professora: Viviane de Oliveira Souza Gerardi.
Banco de Dados I I Banco de Dados - Conceitos e Definições
Modelo Relacional.
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.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
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
Modelo Entidade-Relacionamento
Projeto de Banco de Dados
Sistema Gerenciador de Banco de Dados SGBD
Introdução a Bancos de Dados
Universidade Federal de Santa Catarina
Modelo Relacional parte 1
Profa. Aline Vasconcelos
SCC Bancos de Dados e Suas Aplicações
Algoritmo Apresentação
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Prof. Alfredo Parteli Gomes
SQL Server 2012 Introdução a Modelagem de Dados
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Otimizador de consultas
Ano letivo CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS Docente: Ana Batista EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C
Introdução a Banco de dados
Banco de dados.
Análise de Sistemas de Informação
A abordagem de banco de dados para gerenciamento de dados
Banco de Dados Aplicado ao Desenvolvimento de Software
BANCO DE DADOS Aula 3 Josino Rodrigues Neto© Fundamentos em Banco de Dados.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Teste.
TECNOLOGIAS E LINGUAGENS PARA BANCO DE DADOS I
DESENVOLVIMENTO DE SOFTWARE AULA 7 – Sistemas de Banco de Dados
©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
UFCG/CCT/DSC Cláudio Baptista
2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
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.
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
B ANCO DE DADOS Modelo Relacional ABTécnico. M ODELOS DE DADOS Apoiando a estrutura de um BD está o modelo de dados: uma coleção de ferramentas conceituais.
Banco de Dados I Aula 4 - Projeto Conceitual de Banco de Dados
B ANCO DE DADOS Introdução ABTécnico. C ONCEITO É uma coleção de dados interrelacionados, representando informações sobre um domínio específico. Exemplos:
Plano de Ensino Conceitos e Características Tipos de Banco de Dados
Prof. Christiano Lima Santos
Modelo Relacional, Chaves e Relacionamentos
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Modelo de Entidade-relacionamento
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
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.
 O Modelo E-R (Entidade-Relação)
Professor: reno nooblath
Programação para Internet Aula 10 Introdução (Características do BD Relacional e Implementação)
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.
T ABELAS Banco de dados. Banco de dados = Conjunto de dados armazenado eletrônicamente Relação = Conjunto de elementos da mesma estrutura R ELAÇÃO.
Modelagem de Banco de Dados: Conceitos
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

Modelo relacional Fundamentos de Banco de Dados Prof. André Cypriano M. Costa amonteiro@catolica-es.edu.br acostaprofessor@gmail.com

Revisão modelo e-r O modelo E-R possui 03 conceitos básicos: entidades, atributos, e relacionamentos Entidades  coisas / objetos identificados de forma unívoca Atributos  propriedades da entidade Relacionamento  associação entre entidades Conjunto de entidades É um conjunto que abrange entidades do mesmo tipo que compartilham os mesmos atributos

Revisão modelo e-r Conjunto de Entidades: Conjunto de Entidades Atributo

Revisão modelo e-r Conjuntos de Relacionamentos: É o conjunto de todas as associações entre entidades

Revisão modelo e-r Chaves são usadas para distinguir as entidades de um dado conjunto de entidades Superchave Chaves candidatas Chave primária

Revisão modelo e-r Diagrama ER

Modelo relacional – introdução O modelo relacional estabeleceu-se como o primeiro modelo de dados para aplicações comerciais Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance O modelo relacional foi apresentado pela primeira vez por E. F. Codd em um clássico artigo intitulado “A Relational Model for Large Shared Data Banks” na Communications of the ACM em Junho de 1970

introdução Existe uma base teórica substancial nos BDs relacionais Álgebra Relacional Essa teoria dá suporte ao projeto de BD relacionais e permite um processamento eficiente das necessidades de informações de seus usuários Codd também foi o responsável por publicar os primeiros trabalhos sobre essa teoria (álgebra relacional) nos primeiros anos da década de 70 Um dos SGBD's precursores que implementaram este modelo foi o System R (IBM). Depois surgiram: DB2 (IBM), SQL-DS (IBM), Oracle, Informix, Ingres, Sybase entre outros

Conceitos do modelo relacional Um banco de dados relacional consiste de um conjunto de relações (tabelas), cada qual designada por um único nome Uma linha em uma tabela representa um relacionamento entre um conjunto de valores Uma vez que uma tabela é uma coleção de tais relacionamentos, existe uma íntima correspondência entre o conceito de tabela e o conceito matemático de relação (ou conjunto) Daí vem o nome Modelo de Dados Relacional no qual se baseiam os Bancos de Dados Relacionais

Conceitos do modelo relacional Relações Cada relação (tabela) é forma por linhas e colunas Cada linha da relação é chamada de tupla Assim, pode-se dizer que uma tabela é uma relação de tuplas Cada coluna da relação será chamada de atributo O conjunto de valores passíveis de serem assumidos por um atributo, é intitulado de domínio.

Conceitos do modelo relacional Atributo da Relação Relações Tupla Valor do Atributo

Conceitos do modelo relacional Domínio de um Atributo O domínio de um atributo é um conjunto de valores atômicos que se aplicam ao atributo Grupo de valores, a partir dos quais um ou mais atributos (colunas) retiram seus valores reais Cada domínio está associado a um tipo de dados ou formato Um atributo em uma tupla só pode representar um valor, não pode representar um conjunto de valores Exemplo: Atributo telefone  não pode receber mais de um valor (mesmo que o cliente tenha mais de um telefone). Dizemos então que o atributo não pode ser multivalorado.

Conceitos do modelo relacional Domínio de um Atributo Atributo Tipo Formato Semântica nome-agencia varchar(50) A(50) Nome das agências bancárias existentes numero-conta long int 99999999 Inteiros entre 1 e 99999999 representando o nº da conta nome-cliente Nomes próprios de pessoas saldo double -9.999.999.999,99 Números reais representado o saldo da conta bancária telefone char(10) (99) 9999-9999 Número de telefone válido

Conceitos do modelo relacional Esquema de uma Relação O esquema de uma relação, nada mais é que os campos (colunas) existentes em uma tabela Já a instância da relação consiste no conjunto de valores que cada atributo assume em um determinado instante Portanto, os dados armazenados no Banco de Dados, são formados pelas instâncias das relações O esquema relacional pode ser representado de várias formas

Conceitos do modelo relacional Esquema de uma Relação Exemplo: Area = (codigo, descricao) Curso = (codigo, matCoord, codArea, nome, periodos, anoCriacao) Professor = (matricula, codCurso, codTitulo, nome, formacao) Titularidade = (codigo, descricao) ...

Conceitos do modelo relacional Esquema de uma Relação Exemplo:

Propriedades das relações Observe as seguintes relações Nome Idade Sexo Matricula Nelson 21 M 010110 Davi 22 010100 ... Antônio 19 111111 São iguais ou diferentes? As tuplas de uma relação não tem uma ordem definida Portanto do ponto de vista conceitual, não há diferenças entre as duas relações. Aluno Nome Idade Sexo Matricula Antônio 19 M 111111 Davi 22 010100 Nelson 21 010110 ... Aluno

Propriedades das relações Observe as seguintes relações Nome Idade Sexo Matricula Nelson 21 M 010110 Davi 22 010100 ... Antônio 19 111111 São iguais ou diferentes? Não existe ordem entre os atributos, desde que seja mantida a correspondência entre atributos e valores Portanto do ponto de vista conceitual, não há diferenças entre as duas relações. Aluno Matricula Nome Sexo Idade 010110 Nelson M 21 010100 Davi 22 ... 111111 Antônio 19 Aluno

Propriedades das relações Observe as seguintes relações Válido ou não? Relação inválida! Todos os atributos são atômicos. Não há atributos multivalorados e nem compostos. Nome Telefone Sexo Data de Nascimento Dia Mês Ano Claudia 3245-9261 F 10 03 1974 ... Antônio 3246-6666 3325-9887 9187-9231 M 25 08 1977 Atributo multivalorado Atributo composto

Propriedades das relações Cada atributo numa relação tem um nome que é único dentro da relação Não há tuplas duplicadas Não pode haver duas linhas com os mesmos valores em uma tabela Cada chave primária deve ser única para cada tupla. Nenhuma chave primária pode ser nula. Uma tupla em uma relação que referencia outra relação deve referenciar uma tupla existente naquela relação (chamamos esta regra de integridade referencial).

chaves Chave Primária: Chave Estrangeira: É o atributo ou o conjunto de atributos escolhidos como meio principal de identificação de entidades dentro de um conjunto de entidades. Chave Estrangeira: Conjunto de campos em uma relação que é usado para fazer referência a uma tupla em outra relação (Deve corresponder à chave primária da segunda relação).

Chaves estrangeira Uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de outra tabela Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional

Chaves estrangeira Um conjunto de atributos de uma relação R1 é uma chave estrangeira se satisfaz às seguintes regras: Os atributos da chave estrangeira têm o mesmo domínio dos atributos da chave primária de outra relação R2. Um valor da chave estrangeira numa tupla t1 de R1 possui o mesmo valor da chave primária para alguma tupla t2 em R2 ou é NULO. A integridade referencial estabelece que todo valor de chave estrangeira numa relação deve corresponder a um valor de chave primária de uma segunda relação ou deve ser nulo

Chaves estrangeira Exemplo:

Chaves estrangeira Chave estrangeira nem sempre é estrangeira, ou seja, vir de outra tabela Uma chave estrangeira pode referenciar a sua própria relação (autorelacionamento). Ex.: Empregado(matrícula, nome, depto, salário, matr_gerente) Matricula Nome Depto Salario Matr_gerente E1 Soares D1 2.300,00 E2 Silva 4.500,00 E5 E3 Santos D2 5.000,00 Souza 5.500,00 null

Chaves estrangeira Validação da chave estrangeira pelo SGBD: Quando da inclusão de uma linha na tabela que contém a chave estrangeira O valor da chave estrangeira deve aparecer na coluna da chave primária referenciada Quando da alteração do valor da chave estrangeira O novo valor de uma chave estrangeira deve aparecer na coluna da chave primária referenciada Quando da exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira Na coluna chave estrangeira não deve aparecer o valor da chave primária que está sendo excluída

Chaves estrangeira As restrições de integridade devem ser implementadas pelo SGBD Muitos SGBD's implementam as restrições de integridade básicas que existem

Restrição de integridade Objetivo primordial de um SGBD Garantir a consistência de dados Para garantir a consistência de um banco de dados SGBD oferecem o mecanismo de restrições de integridade Uma restrição de integridade é uma regra de consistência de dados que é garantida pelo próprio SGBD IMPORTANTE: Regras de consistência que não são implementadas pelo SGBD devem ser implementadas dentro dos programas de aplicação

Restrição de integridade Tipos básicos de restrição de integridade: Integridade de domínio Especificadas através do tipo de dado de cada atributo do esquema de uma relação É especificado através de tipos primitivos de dados, tais como integer, float, char, date, time, etc. Integridade de chave Toda tupla tem um conjunto de atributos que a identifica de maneira única na relação Nenhum valor de chave primária poderá ser NULL

Restrição de integridade Tipos básicos de restrição de integridade: Integridade referencial Especificadas através de regras de relacionamento entre os esquemas das relações que compõem o esquema do banco de dados As regras de relacionamento se dá através da chave estrangeira Essas restrições são garantidas automaticamente por um SGBD relacional Não é exigido que o programador escreva procedimentos para garanti-las explicitamente

Restrição de integridade Há muitas outras restrições de integridade que não se encaixam nas categorias básicas Essas restrições são chamadas de restrições semânticas (ou regras de negócio) Exemplos de restrições semânticas: Um empregado do departamento denominado “Finanças” não pode ter a categoria funcional “Engenheiro” Um empregado não pode ter um salário maior que seu superior imediato

Transformação do modelo e-r para o modelo relacional Modelo E-R: conveniente para representar um esquema inicial e de alto nível do banco de dados Modelo Relacional representa os dados em um formato que é utilizado pelos bancos de dados Entidades  Atributos  Relacionamentos  Existe um método para transformar um esquema ER em modelo relacional? Tabelas Colunas das tabelas Chaves estrangeiras e opcionalmente tabelas

Transformação do modelo e-r para o modelo relacional Como um conjunto de entidades é representado em uma relação? Num mapeamento direto, onde os atributos da entidade tornam-se atributos da tabela e a chave torna-se chave primária Empregado codigo (PK) nome cargo

Transformação do modelo e-r para o modelo relacional Relacionamento com restrição de cardinalidades Qual é a cardinalidade que existe? 1 empregado trabalha em 1 departamento Em 1 departamento trabalham n empregados Como transformar esse relacionamento para o modelo relacional?

Transformação do modelo e-r para o modelo relacional Como relacionar o empregado ao departamento? Cria-se uma coluna nova em uma das tabelas para ser a chave estrangeira. Mas em qual tabela? A chave primária normalmente sai da entidade que tem cardinalidade 1 e vai para a entidade que tem cardinalidade n Departamento dcodigo (PK) dnome ddescr Tabela Departamento Empregado codigo (PK) nome cargo dcodigo (FK) Empregado codigo (PK) nome cargo Tabela Empregado

Transformação do modelo e-r para o modelo relacional Conjunto de relacionamentos sem restrição de cardinalidade Como transformar o relacionamento “Trabalha em” em uma tabela?

Transformação do modelo e-r para o modelo relacional Ao transformar um conjunto de relacionamentos em uma tabela, devemos ter os seguintes atributos: A chave primária de cada conjunto de entidades da relação (como chaves estrangeiras). Este conjunto de atributos forma uma superchave para a relação Todos atributos descritivos do relacionamento TrabalhaEm codigo (PK) dcodigo (PK) desde

Transformação do modelo e-r para o modelo relacional Auto-relacionamento Supervisiona codigo_sup (PK) codigo_empr (PK)

Transformação do modelo e-r para o modelo relacional Auto-relacionamento Empregado codigo_emp (PK) nome cargo codigo_empr (FK)

Transformação do modelo e-r para o modelo relacional Uma entidade fraca pode ser identificada univocamente considerando apenas a chave primária de outra entidade (que a possui) A entidade dominante e a entidade fraca devem participar em um conjunto de relacionamentos 1..n (1 dominante, muitas entidades fracas) O conjunto-entidade fraca deve ter participação total neste conjunto de relacionamentos As entidades fracas e o relacionamento identificador (quanto tiver algum atributo) são transformados em uma única tabela Quando a entidade “dominante” é removida, todas as entidades fracas também devem ser removidas

Transformação do modelo e-r para o modelo relacional PlanoDependente codigo (PK) dnome (PK) idade custo

Transformação do modelo e-r para o modelo relacional Especializações/Generalizações

Transformação do modelo e-r para o modelo relacional Especializações/Generalizações Existem 03 opções comumente utilizadas Inserir os atributos das subclasses na superclasse Inserir os atributos da superclasse nas subclasses Inserir os atributos comuns na superclasse e deixar os atributos específicos nas respectivas subclasses

Transformação do modelo e-r para o modelo relacional Especializações/Generalizações Inserir os atributos das subclasses na superclasse Pessoa identificacao(PK) nome dt_nasc curso coeficiente salario cargo

Transformação do modelo e-r para o modelo relacional Especializações/Generalizações Inserir os atributos da superclasse nas subclasses aluno identificacao (PK) nome dt_nasc curso coeficiente empregado identificacao (PK) nome dt_nasc cargo salario

Transformação do modelo e-r para o modelo relacional Especializações/Generalizações Inserir os atributos comuns na superclasse e deixar os atributos específicos nas respectivas subclasses pessoa identificacao (PK) nome dt_nasc empregado pessoa (PK) cargo salario aluno pessoa (PK) curso coeficiente

Linguagens de consulta O valor de um BD está relacionado à facilidade de se obter informações deste banco Uma importante característica do modelo relacional: Suporte a consultas de dados simples mas poderosas Consultas podem ser escritas de forma intuitiva e o SGBD é responsável por sua avaliação para execução eficiente A chave para isso é ter uma semântica precisa para consultas relacionais Possibilita que o otimizador amplamente reordene operações, assegurando que as respostas não se alterem Linguagens de consulta relacionais: Álgebra relacional; Cálculo relacional; SQL

bibliografia SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.. Sistema de banco de dados. 3 ed. São Paulo: Pearson Makron Books, 2005, Cap. 3 Slides do livro Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke, McGrow-Hill, 2003. Notas de aula sobre Modelo Relacional do Prof. Edson Thizon. Notas de aula sobre Modelo Relacional do Prof. Cláudio Batista, CCT/UFPB. Notas de aula sobre Modelo Relacional de Arnaldo Rocha e Maria Luiza Campos, IME, 2005.