55
Banco de Dados Prof. Christiano Lima Santos

Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso Introdução a Banco de Dados Modelo Relacional Modelo Entidade-Relacionamento Normalização

Embed Size (px)

Citation preview

Page 1: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Banco de DadosProf. Christiano Lima Santos

Page 2: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Conteúdo do Curso

Introdução a Banco de Dados Modelo Relacional Modelo Entidade-Relacionamento Normalização Álgebra Relacional O SGBD MySQL Introdução à linguagem SQL

Linguagem de Definição de Dados – DDL Linguagem de Manipulação de Dados - DML

Page 3: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Quem sou eu? Formação:

Graduado em Ciência da Computação (Universidade Federal de Sergipe); Especialista em Gestão de Negócios (Universidade Cidade de São Paulo); Mestre em Ciência da Computação (Universidade Federal de Sergipe);

Linha de pesquisa: Engenharia de Software.

Áreas de Interesse: Informática Educativa (Jogos Educativos e Ambientes Virtuais de

Aprendizagem); Engenharia de Software (Desenvolvimento Dirigido por Modelos); Computação Inteligente (Geração de Linguagem Natural).

Page 4: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Introdução a Banco de Dados

Parte 01

Page 5: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Sumário Armazenamento e recuperação de dados O que é um Banco de Dados? Vantagens dos Bancos de Dados sobre os Arquivos

de Dados Arquitetura em três níveis de um SGBD Modelos de Dados Linguagens de Banco de Dados

Page 6: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Dado x Informação

Dado – todo valor (numérico, textual, lógico etc.) que pode ser armazenado em um computador;

Informação – todo dado ou conjunto de dados que, após algum tipo de processamento ou manipulação, apresenta algum significado útil.

Page 7: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Armazenamento e recuperação de dados Todo sistema de informação pode lidar com

armazenamento e recuperação de dados por meio de arquivos de dados;

Page 8: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Armazenamento e recuperação de dados Entretanto, certos sistemas de informação

podem apresentar problemas ao utilizar tal forma de armazenamento e recuperação de dados; Sistemas monousuários x sistemas multiusuários; Risco de redundância e inconsistência dos dados; Recuperação, processamento ou filtragem de grandes

volumes de dados. Bancos de dados podem solucionar tais problemas.

Page 9: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

O que é um Banco de Dados? É uma coleção de dados relacionados; Podemos considerar como sendo um repositório para

armazenamento de informações persistente; Uma boa analogia pode ser um armário de arquivo.

Assim, um Sistema Gerenciador de Banco de Dados (SGBD) é um sistema que permite o armazenamento, atualização e recuperação das informações presentes nesse repositório.

Por meio de tal sistema, um usuário pode: Adicionar, alterar ou remover arquivos (tabelas) no banco de dados; Inserir, alterar, remover ou recuperar dados (registros) dos arquivos

(tabelas).

Page 10: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Exemplo de um Banco de Dados(Sistema de Biblioteca)

LivroID

Nome Autores

1 Engenharia de Software

R. Pressman

2 Banco de Dados C. J. Date3 Segurança da

InformaçãoJ. Smith

UsuarioID

Nome

1 Christiano2 Davi3 Márcio

EmprestimoID

LivroID UsuarioID

DataEmprestimo

DataDevolucao

1 1 1 01/06/2015 05/06/20152 2 1 05/06/20153 3 2 07/06/2015

Dados de Livros Dados de Usuários

Dados de Empréstimos

Page 11: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Representação simplificada de um SGBD

Fonte: (DATE, 2004)

Page 12: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Componentes de um sistema de banco de dados Hardware, em que o SGBD será mantido; Software, já que o SGBD é um software (ou conjunto de

softwares) responsável por gerenciar os dados; Procedimentos, isto é, instruções e regras que ditam

como projetar e usar o banco de dados (forma de log on, aplicações para acesso ao SGBD, política de backup etc.);

Dados, ponto central de todo SGBD; Usuários, ou seja, todos que, de alguma forma, se

utilizam do SGBD.

Page 13: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Tipos de usuário de um SGBD

1. Usuários finais – acessam o banco de dados por meio dos softwares criados pelos desenvolvedores de aplicação ou específicos para consultas a bancos de dados; Usuários simples – utilizam somente softwares criados pelos

desenvolvedores de aplicação e não precisam conhecer a estrutura do banco de dados ou linguagens para consultas;

Usuários sofisticados – podem utilizar os mesmos softwares empregados pelo grupo anterior, mas conhecem a estrutura do banco de dados e uma linguagem para consultas (geralmente SQL) e por isso podem realizar consultas mais personalizadas aos dados.

Page 14: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Tipos de usuário de um SGBD

2. Desenvolvedores de aplicação – responsáveis por desenvolver e/ou manter softwares que acessarão o banco de dados. Tais aplicações poderão recuperar, inserir, atualizar ou remover dados do banco;

Page 15: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Tipos de usuário de um SGBD

3. Projetistas de banco de dados (database designers) – responsáveis por identificar os dados, relacionamentos entre dados e quaisquer restrições sobre os dados (isto é, as regras de negócios). Assim, são responsáveis pelo projeto de banco de dados conceitual, lógico e físico;

Page 16: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Tipos de usuário de um SGBD

4. Administradores: Administradores de dados (DA) – responsáveis por

gerenciar os recursos de dados planejando, desenvolvendo e mantendo padrões, políticas e procedimentos referentes ao projeto e uso de banco de dados. Sua função é garantir que os bancos de dados da organização suportam os objetivos corporativos;

Administradores de banco de dados (DBA) – atuam diretamente sobre o SGBD, projetando melhorias para os bancos de dados bem como gerenciando seus recursos e possíveis falhas. Focam aspectos como otimização, segurança e desempenho.

Page 17: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Vantagens dos Bancos de Dados sobre Arquivos de Dados Dados podem ser compartilhados;

Melhor gerenciamento de acesso multiusuário aos dados; Redundância pode ser reduzida ou eliminada; Inconsistência pode ser evitada; Integridade pode ser mantida; Suporte a transações; Maior transparência na manipulação dos dados;

Flexibilidade de acesso aos dados.

Page 18: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Vantagens dos Bancos de Dados sobre Arquivos de Dados Requisitos conflitantes podem ser equilibrados; Redução do tempo para armazenamento,

recuperação e processamento dos dados; Segurança pode ser melhorada;

Maior proteção aos dados contra acessos indevidos ou perdas não intencionais;

“Relacionabilidade” dos dados; Possibilidade de estabelecer relacionamentos entre

diferentes tipos de dados.

Page 19: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Arquitetura em três níveis de um SGBD Nível externo – nível mais próximo dos usuários de um

sistema, referindo-se à forma como os usuários vêem os dados; A forma como um usuário ou grupo de usuários com necessidades

similares vê os dados é chamada de visão do usuário; Nível conceitual – representa a união de todas as visões de

usuário do nível externo; O banco de dados, neste nível é descrito em um esquema lógico;

Nível interno – corresponde à representação real (física) dos dados em um computador e os métodos usados para acessá-los; Também referenciado como nível físico.

Page 20: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Independência dos dados

Sistemas de banco de dados proporcionam dois tipos de independência dos dados: Independência física – o nível conceitual é

independente de mudanças no nível interno ou físico;

Independência lógica - o nível externo é independente de mudanças no nível conceitual.

Page 21: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelos de Dados

Um modelo de dados é uma coleção de ferramentas conceituais para descrever dados e seus relacionamentos e semântica bem como restrições de consistência (SILBERSCHATZ, KORTH e SUDARSHAN, 2011).

Page 22: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelos de Dados

Classificação dos modelos de dados: Modelo Relacional – usa uma coleção de

tabelas (relações) para representar dados e relacionamentos entre dados, onde cada tabela é formada por colunas (atributos) e cada linha pode ser considerada um registro. A maioria dos sistemas de bancos de dados baseiam-se no modelo relacional;

Page 23: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelos de Dados

Classificação dos modelos de dados: Modelo Entidade-Relacionamento – emprega

uma coleção de objetos (entidades) e relacionamentos entre tais objetos e é usado na modelagem de bancos de dados;

Page 24: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelos de Dados

Classificação dos modelos de dados: Modelo Orientado a Objetos – pode ser visto

como uma extensão do modelo ER com aspectos de orientação a objetos (encapsulamento, métodos etc.). O modelo objeto-relacional nasce como um híbrido dos modelos orientados a objetos e dos modelos relacionais;

Page 25: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelos de Dados

Classificação dos modelos de dados: Modelo de Dados Semiestruturados –

diferentemente dos modelos anteriores, permite que a especificação de dados de cada item apresente diferente conjunto de atributos. A linguagem de marcação XML é amplamente usada para representar dados semiestruturados.

Page 26: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelos de Dados

OBS: Antes de tais modelos, houveram o modelo em rede e o modelo hierárquico, mas devido à dificuldade de modelar os dados nos mesmos, caíram em desuso.

Page 27: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Linguagens de Banco de Dados

Linguagem de Definição dos Dados (DDL); Usada para especificar o esquema do banco de dados; Provê operações para descrever e nomear as entidades,

atributos e relacionamentos que representarão os dados para uma dada aplicação;

Linguagem de Manipulação dos Dados (DML); Usada para recuperar ou atualizar os dados em um banco; Provê operações para inserir, modificar, remover ou

recuperar os dados.

Page 28: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

ExercíciosIntrodução a Banco de Dados

Parte 01

Page 29: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Modelo RelacionalParte 02

Page 30: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Sumário

Page 31: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Introdução ao Modelo Relacional

Introduzido por E. F. Codd em 1970 (IBM); Fundamentado na teoria dos conjuntos; Lida com conceitos simples de:

Relações (tabelas); Atributos (colunas); Domínios (intervalos de valores); Tuplas (linhas/registros).

Modelo seguido pela maioria dos atuais SGBD.

Page 32: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Objetivos

Permitir um alto grau de independência dos dados;

Prover o alicerce necessário para lidar com problemas de semântica, consistência e redundância dos dados; Ideia de relações normalizadas.

Habilitar a expansão das linguagens de manipulação de dados orientadas a conjuntos.

Page 33: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Principais conceitos

Relação; Atributo; Domínio; Tupla; Esquema.

Page 34: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Relação

Representa uma tabela, isto é, um conjunto de dados que apresentam alguma relação entre si, dispostos logicamente em colunas (atributos) e linhas (tuplas).

Matematicamente, um conjunto, onde seus elementos são as tuplas, que podem ser descritas pelos seus atributos (cada atributo admitindo um valor dentro de um domínio);

Em um banco de dados relacional, cada relação possui um nome único!

Page 35: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Relação Enfim, aqui estão três exemplos de relações:

LivroID

Nome Autores

1 Engenharia de Software

R. Pressman

2 Banco de Dados C. J. Date3 Segurança da

InformaçãoJ. Smith

UsuarioID

Nome

1 Christiano2 Davi3 Márcio

EmprestimoID

LivroID UsuarioID

DataEmprestimo

DataDevolucao

1 1 1 01/06/2015 05/06/20152 2 1 05/06/20153 3 2 07/06/2015

Relação Livro Relação Usuário

Relação Empréstimo

Page 36: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Atributo

Representa uma coluna dentro de uma relação;

Um conjunto de atributos descrevem uma relação;

Em uma relação, cada atributo possui um nome único!

Page 37: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Atributo

A relação Usuário (abaixo) possui dois atributos (UsuarioID e Nome):

UsuarioID

Nome

1 Christiano2 Davi3 Márcio

Relação Usuário

Page 38: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Atributo

Um atributo pode ser do tipo: Simples – quando apresenta um valor de um

único domínio; Composto – quando seu valor é na verdade uma

tupla formada por vários domínios (ideia de “sub-atributos”);

Multivalorado – quando pode armazenar mais de um valor (ideia de listas).

Page 39: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Domínio

É o conjunto de valores admissíveis para um ou mais atributos;

Isto é, intervalo de valores que podem ser atribuídos a uma coluna da tabela;

Em uma relação, dois ou mais atributos podem admitir o mesmo domínio.

Page 40: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Domínio

Na relação Usuário, podemos dizer que: Domínio do atributo UsuarioID é o

domínio dos valores inteiros;Em MySQL, INT.

Domínio do atributo Nome é o domínio dos valores textuais;Em MySQL, CHAR ou VARCHAR.

UsuarioID

Nome

1 Christiano2 Davi3 Márcio

Relação Usuário

Page 41: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Tupla

Trata-se de uma linha de uma relação; Em outras palavras, é um registro de uma

tabela, composto por valores que satisfazem os domínios dos atributos da mesma;

Em uma relação, não podemos ter duas tuplas idênticas, isto é, com os mesmos valores!

Page 42: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Tupla

A relação Usuário possui três tuplas:

UsuarioID

Nome

1 Christiano2 Davi3 Márcio

Relação Usuário

Page 43: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Esquema

Esquema de uma relação é a relação definida por um conjunto de atributos e seus respectivos domínios; RUsuario = (UsuarioID:INT, Nome:VARCHAR(50))

Esquema de um banco de dados relacional é o conjunto de esquemas das relações, cada qual com nomes distintos. R = { RLivro, RUsuario, REmprestimo }

Page 44: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Outros conceitos

Grau – o grau de uma relação é o número de atributos que ela contém;

Cardinalidade – a cardinalidade de uma relação é o número de tuplas que ela contém;

Banco de dados relacional – uma coleção de relações normalizadas com nomes de relações distintos.

Page 45: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Propriedades das relações

Cada relação possui um nome distinto de todas as outras relações no esquema relacional a que pertence;

Cada célula da relação (normalizada) contém exatamente um único valor atômico;

Cada atributo em uma relação tem um nome distinto;

(CONNOLLY e BEGG, 2005)

Page 46: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Propriedades das relações

Os valores de um atributo são todos do mesmo domínio;

Cada tupla é distinta, não há tuplas duplicadas; A ordem dos atributos não tem significância; A ordem das tuplas não tem significância, em

teoria (pois na prática, é importante para otimizar armazenamento e indexação das mesmas)!

(CONNOLLY e BEGG, 2005)

Page 47: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Chaves de uma relação

Não há tuplas duplicadas em uma relação;

Consequentemente, há um conjunto de um ou mais atributos capazes de identificar unicamente cada tupla em uma relação, tal conjunto é a superchave; Se uma chave é composta por mais de um atributo, ela é

uma chave composta;

Page 48: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Chaves de uma relação

Uma superchave pode conter atributos não necessários para identificar unicamente uma tupla, mas se não houver tais atributos desnecessários, então ela será uma chave candidata. Unicidade e irredutibilidade são, então, propriedades de uma chave candidata;

Page 49: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Chaves de uma relação

A chave candidata que for escolhida para identificar unicamente as tuplas de uma relação é chamada de chave primária (PK);

LivroPK LivroID: INT Nome: VARCHAR(50) Autores: VARCHAR(50)

UsuarioPK UsuarioID: INT Nome: VARCHAR(50)

Page 50: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Chaves de uma relação

E se um atributo ou conjunto de atributos de uma relação refere-se a uma chave candidata de alguma relação (outra relação ou a própria), tem-se então uma chave estrangeira (FK).

LivroPK LivroID: INT Nome: VARCHAR(50) Autores: VARCHAR(50)UsuarioPK UsuarioID: INT Nome: VARCHAR(50)

EmprestimoPK EmprestimoID: INTFK LivroID: INTFK UsuarioID: int DataEmprestimo: Date DataDevolucao: Date

Page 51: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Chaves de uma relação

Resumindo: Superchave - conjunto de um ou mais atributos capazes de

identificar unicamente cada tupla em uma relação; Chave candidata - uma superchave da qual nenhum atributo

pode ser removido sem prejudicar a unicidade da tupla; Chave primária - chave candidata escolhida para identificar

unicamente as tuplas de uma relação; Chave estrangeira - atributo ou conjunto de atributos de

uma relação que se refere a uma chave candidata de alguma relação (outra relação ou a própria).

Page 52: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Restrições de integridade

Integridade de Entidade Em uma relação, nenhum atributo de uma chave primária

pode assumir valor null (nulo); Null – Representa um valor para um atributo que é

atualmente desconhecido ou não é aplicável para aquela tupla;

Page 53: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Restrições de integridade

Integridade Referencial Se uma chave estrangeira existir em uma relação, o valor

da chave estrangeira deve “casar” com o valor de uma chave candidata de alguma tupla da relação de origem ou seu valor deve ser null;

Page 54: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Restrições de integridade

Restrições Gerais Regras adicionais especificadas por usuários ou

administradores de banco de dados que definem ou restringem alguns aspectos importantes para a corporação (regras de negócio).

Page 55: Banco de Dados Prof. Christiano Lima Santos. Conteúdo do Curso  Introdução a Banco de Dados  Modelo Relacional  Modelo Entidade-Relacionamento  Normalização

Referências Bibliográficas

CONNOLLY, Thomas; BEGG, Carolyn. Database Systems – A practical approach to design, implementation and management. Ed. 4, Addison Wesley, 2005.

COURTNEY, J. F.; PARADICE, D. B.; BREWER, K. L.; GRAHAM, J. C. Database Systems for Management. Ed. 3, 2010.

DATE, C. J. An Introduction to Database Systems. Ed. 8, Pearson Education, 2004.

ELMASRI, Ramez; NAVATHE, Shamkant. Sistemas de Banco de Dados. 6ª ed. São Paulo : Pearson Addison-Wesley, 2011.

SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Database System Concepts. Ed. 6, 2011.