Banco de Dados I 2007. Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli



Documentos relacionados
UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 2) Clodis Boscarioli

Banco de Dados I 2007 Módulo III: Linguagens de Consulta. (Aula 9) Clodis Boscarioli

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 8) Clodis Boscarioli

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

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

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Profa. Daniela Barreiro Claro

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

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

Modelagem de Banco de Dados através do ERwin

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

Modelo Relacional. Aécio Costa

Integridade dos Dados

Modelo de Dados. Modelos Conceituais

MODELO RELACIONAL - UFMA

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Modelagem de Dados. Aula 02 Arquitetura e Álgebra Relacional. Maxwell Anderson

Introdução às Bases de Dados

BANCO DE DADOS aula 6 álgebra relacional -

4.6. SQL - Structured Query Language

Modelo Entidade-Relacionamento DCC011. Modelo Entidade-Relacionamento. Processo de Projeto de Bancos de Dados

Modelo de Dados. Modelo para organização dos dados de um BD

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R. Fabricio Breve

Banco de Dados I. Introdução. Fabricio Breve

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BDII SQL Junção Revisão 8

Disciplina de Banco de Dados Parte V

Persistência e Banco de Dados em Jogos Digitais

MODELO RELACIONAL E RESTRIÇÕES DE INTEGRIDADE

Prof.: Clayton Maciel Costa

SQL DDL. Frederico D. Bortoloti

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

Modelagem de Dados. Aula 04 Introdução ao Modelo Entidade- Relacionamento. Maxwell Anderson

CICLO DE VIDA DE UM BD

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

MC536 Bancos de Dados: Teoria e Prática

Banco de Dados Modelo Entidade-Relacionamento. Frederico D. Bortoloti

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R Parte 2. Fabricio Breve

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ PRÓ-REITORIA DE GRADUAÇÃO. Curso: Informática Modalidade: Bacharelado Turno: Integral.

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto

Modelo Entidade-Relacionamento

Núcleo de Pós Graduação Pitágoras

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

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

Comandos DDL. id_modulo = id_m odulo

Junções e Índices em Tabelas

Disciplina: Unidade III: Prof.: Período:

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Aula VI -MODELO RELACIONAL

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 2) Clodis Boscarioli

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

GBC043 Sistemas de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva UFU/FACOM

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Comandos de Manipulação

Introdução ao SQL. Aécio Costa

Comparação entre Tipos de Diagramas. DEA para um Banco. Modelo Relacional. Modelos Relacional

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

NOME SEXO CPF NASCIMENTO SALARIO

Modelo Relacional. 2. Modelo Relacional (Lógico)

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

O modelo de dados relacional e as restrições de um banco de dados relacional

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

Tarefa Orientada 16 Vistas

Exercícios de Lógica Exercícios de Fixação 08

Projeto e Implementação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

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

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

PLANO DE ENSINO DE DISCIPLINA

Banco de Dados. Modelo Relacional. Prof. Enzo Seraphim

GEE051 - Banco de Dados (BD) Plano de Curso. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM /2

Persistência e Banco de Dados em Jogos Digitais

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 5) Clodis Boscarioli

Faculdade Pitágoras 24/10/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

Modelo Entidade-Relacionamento

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Aula 3 SBD Modelo Entidade Relacionamento Parte 1. Profa. Elaine Faria UFU

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

Transcrição:

Banco de Dados I 2007 Módulo II: Modelagem Entidade- Relacionamento versus Relacional (Aula 3) Clodis Boscarioli

Agenda: Exercícios de Mapeamento ME-R para MR; Restrições de Domínio; Restrições de Chave e em Valores Null; Integridade Referencial; Asserções; Gatilhos; Dependência Funcional.

Introdução Em um banco de dados relacional existem muitas relações, e as tuplas destas relações estão, em geral, relacionadas de diversas maneiras. Existem muitas limitações ou restrições em relação ao valores reais permitidos em um banco de dados. Estas limitações ou restrições são derivadas do mundo real. Podem ser: Restrições inerentes baseadas em modelo (uma relação não pode ter tuplas repetidas) Restrições baseadas em esquema; Restrições baseadas em aplicação.

Introdução Fornecem meios para assegurar que mudanças feitas no banco de dados, por usuários autorizados, não resultem em perda da consistência dos dados. Resguardam o banco de dados contra danos acidentais. Restrições no modelo entidade-relacionamento: Declarações de chave: o conjunto de inserções válidas e atualizações é restrito àquelas que não criam duas entidades com o mesmo valor numa chave candidata. Forma de um relacionamento: restringe os conjuntos relacionamentos legais entre entidades de uma coleção de conjuntos-entidade. Uma restrição de integridade pode ser um predicado arbitrário pertencente ao banco de dados. No entanto, os predicados arbitrários podem ser custosos em relação a testes. Deve-se optar por restrições de integridade que possam ser testadas com a mínima manipulação.

Restrições de Domínio São a forma mais elementar de restrições de integridade. São testadas facilmente pelo sistema toda vez que um novo item de dado é inserido no banco de dados. Vários atributos podem ter o mesmo domínio. A própria definição de restrição de domínio permite testar os valores inseridos no banco de dados. Dentro de cada tupla, o valor de cada atributo A deve ser um valor atômico no domínio dom(a).

Restrições de Domínio A cláusula check (SQL) Permite determinar um predicado que deva ser satisfeito por qualquer valor designado a uma variável. Exemplo: Garantir que o domínio relativo ao turno de trabalho de um operário contenha somente valores maiores que um dado valor (turno mínimo). Sintaxe: create domain número_conta char(10) constraint teste_nulo_numero_conta check(value not null) create domain tipo_conta char(10) Constraint teste_tipo_conta check(value in ( Corrente, Poupança ))

Restrições de Chave e em Valores Null Sempre existe um sub-conjunto de atributos de um esquema de relação R com a propriedade de que duas tuplas, em qualquer estado da relação r de R, não tenham as mesmas combinações de valores para esses atributos. Seja SK este subconjunto de atributos; então, para quaisquer tuplas distintas t1 e t2 em um estado (ou instância) da relação r de R, tem-se a restrição que: t1[sk] <> t2[sk] Valores nulos não se aplicam a chaves e a atributos definidos como not null (restrição de integridade de entidade).

Nova definição... Um esquema de banco de dados relacional S é um conjunto de esquemas de relação S = {R1, R2,..., Rm} e um conjunto de restrições de integridade IC. Uma instância de um banco e dados relacional DB de S é um conjunto dos estados da relação DB = {r1, r2,..., rm} de forma que cada ri seja uma instância de Ri, e de maneira que os estado da relação ri satisfaçam as restrições de integridade especificadas em IC.

Adendo: A Junção Natural ( X ) A junção natural (natural join) é uma operação binária que nos permite combinar certas seleções e um produto cartesiano em uma única operação. Forma-se um produto cartesiano de duas relações e promove-se uma seleção de tuplas, obedecendo à equivalência dos atributos que aparecem em ambas as relações e, finalmente, remove-se os atributos em duplicidade.

Integridade Referencial Utilizadas para garantir que um valor que aparece em uma relação para um dado conjunto de atributos também apareça para um certo conjunto de atributos em outra relação. Considere um par de relações r(r) e s(s) e a junção natural r x s. Pode existir uma tupla tr em r que não possa ser combinada a nenhuma tupla em s. Isto é, não existe nenhum ts em s tal que tr[r S] = ts[r S]. Tais tuplas são chamadas tuplas pendentes. Dependendo do conjunto de entidades ou de relacionamentos que está sendo modelado, tuplas pendentes podem ou não ser aceitáveis.

Integridade Referencial Suponha que existe uma tupla r na relação conta, com t1[nome_agência] = Agência Cascavel, mas que não exista uma tupla na relação agência para Agência Cascavel. Esta é uma situação indesejável. Espera-se que a relação agência possua todas as agências do banco. Portanto, a tupla t1 faz referência a um conta de agência inexistente. É desejável a implementação de uma regra de integridade que proíba tupla pendentes desse tipo. No entanto, nem todos os tipos de tuplas pendentes são indesejáveis. Suponha que exista uma tupla t2 na relação agência, com t2[nomeagência] = Agência Toledo, mas não há nenhuma tupla da relação conta com referência à agência Toledo. Esse caso indica que a agência Toledo não possui nenhuma conta.

Integridade Referencial Diferença entre as duas situações: o atributo nome-agência do Esquema_conta é uma chave estrangeira cuja referência é a chave primária do Esquema_agência. O atributo nome_agência do Esquema_agência não é uma chave estrangeira. Seja r1(r) e r2(r) relações com chaves primárias K1 e K2, respectivamente. Dizemos que um subconjunto α de R2 é uma chave estrangeira associada a K1 em relação a r1 se é garantido que, para todo t2 em r2, existe uma tupla t1 em r1, tal que t1[k1] = t2[α]. Exigências destes tipo são chamadas de regras de integridade referencial.

Integridade Referencial no ME-R Se derivarmos nosso esquema de banco de dados relacional a partir de diagramas E-R, então toda relação resultante de um conjunto de relacionamentos possui regras de integridade. Outra fonte de regras de integridade são os conjuntos de entidades fracas.

Modificações no Banco de Dados Modificações no banco de dados podem originar violação das regras de integridade referencial. Suponha a integridade referencial existente entre r1 e r2, onde r2 detém a chave estrangeira α em relação a chave primária K de r1. Inserção: se uma tupla t2 é inserida em r2, o sistema deve garantir que exista uma tupla t1 em r1 tal que t1[k] = t2[α] Remoção: se uma tupla t1 é removida de r1, o sistema deve tratar também o conjunto de tuplas em r2 que se referem a t1. Atualização: Se uma tupla t2 da relação r2 é atualizada e a atualização modifica valores da chave estrangeira, então é feita uma verificação similar à inserção. Se uma tupla t1 da relação r1 é atualizada e a atualização modifica os valores de uma chave primária, então deverá ser feita uma verificação similar à realizada para a remoção.

Asserções Uma asserção é um predicado que expressa uma condição que desejamos que seja sempre satisfeita no banco de dados. Restrições de domínio e regras de integridade referencial são formas especiais de asserções. Exemplos de outras asserções: A soma de todos os totais em empréstimo de cada uma das agências deve ser menor que a soma de todos os saldos das contas dessa agência. Todo empréstimo deve ter ao menos um cliente que mantenha uma conta com saldo mínimo de mil reais. Quando uma asserção é criada, o sistema verifica sua validade. Se as asserções são válidas, então qualquer modificação posterior do banco de dados será permitida somente quando não violar a asserção.

Gatilhos (Triggers) Um gatilho é um comando que é executado pelo sistema, automaticamente, em conseqüência de uma modificação no banco de dados. Exigências: Especificar as condições sob as quais o gatilho deve ser executado; Especificar as ações que serão tomadas quando um gatilho for disparado. Exemplo: Ao invés de permitir saldos negativos em conta, o banco pode criar condições para que a conta corrente seja zerada e o saldo negativo seja transformado em um empréstimo.

Dependência Funcional Próxima aula...

Referências Sistemas de Banco de Dados. (Cap. 6) Abraham Silberchatz, Henry F. Korth e S. Sudarshan. 3ª Edição. Makron Books, 1999. Introdução a Banco de Dados (Apostila). (Cap. 5-6) Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira. DCC-IME-USP, 2005. Sistemas de Banco de Dados. (Cap. 5 e 10) Ramez Elsmari e Shamkant B. Navathe. 4ª Edição. Editora Pearson Addison Wesley, 2005.