BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo...

31
BANCO DE DADOS - CONCEITOS HORACIO RIBEIRO Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS

Transcript of BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo...

Page 1: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

BANCO DE DADOS - CONCEITOSHORACIO RIBEIRO

Arquiteturas de Banco de dados

Projeto de banco de dados

Modelo relacional

Algebra relacional

ASSUNTOS TRATADOS

Page 2: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

BANCO DE DADOS - CONCEITOSArquiteturas tradicionais de sistemas gerenciadores de banco de dados

Modelos de redes

Dependente (pedro, filho, 12-10-1978)( ) ( ) ( )

Empregado (luiz , Rua xxxx , 261-23)( ) ( ) ( )

Dependente (pedro, filho, 12-10-1978)( ) ( )

Dependente (pedro, filho, 12-10-1978)( ) ( ) ( )

Os registros tem endereços fisicos para serem usados nas estruturas de navegaçao

Page 3: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

BANCO DE DADOS - CONCEITOS

Modelos de Redes Criação do grupo CODASYL - padronização

- padronização das estruturas de navegação

- abordagem po niveis de abstração modelo ANSI/SPARC (American National Standards Institute) SPARC (Standards Planning And Requirements Committee).- Modelo “duro para alteraçoes” e de alta performace de acesso.

Page 4: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

BANCO DE DADO CONCEITOS

modelo relacional - Normalizado Fundamentado na teoria de conjuntos, combinado com a idéia que

não é relevante para o usuário saber onde os dados estão nem como os dados estão armazenados. O usuário, para lidar com estes objetos, conta com um conjunto de operadores e funções de alto nível, constantes na álgebra relacional.

Definição Matemática de Relação Sejam conjuntos, não necessariamente disjuntos D1, D2, ..., Dn

de valores atômicos R é uma relação sobre estes conjuntos (domínios de R), se e

somente se R é um conjunto de n-uplas (tuplas) ordenadas <d1, d2, ... , dn>, tal que para i=1,2,...,n di pertence a Di

Exemplo: A = {1, 2, 3, 4, 5} B = {2, 3, 4, 6, 7} R = B é o dobro de A R = {(2,1), (4,2),

(6,3)}

Page 5: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Modelo Relacional Relação = Tabela bi-dimensional, composta de linhas e colunas de

dados.  Relação recursiva = relaciona o objeto a si mesmo.  Atributo = Coluna  Grau de uma relação = Número de atributos  Tupla = Cada linha da relação Domínio de um atributo = Conjunto ao qual pertence os valores de

um atributo  Valor nulo de um atributo de uma tupla = Atributo inaplicável ou

com valor desconhecido Esquema de Banco de Dados Relacional = Nomes das relações

seguidos pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras identificadas.

Banco de Dados

Relacional

Page 6: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Modelo Relacional

Atributo Identificador: A atributo ou conjunto de atributos que será utilizado para identificar instâncias de uma entidade. Faz parte do modelo conceitual.

Chave:designa o conceito de item de busca, isto é, um atributo ou conjunto de atributos que será utilizado nas consultas à base de dados.É um conceito lógico da aplicação.

Índice:É um recurso físico que visa otimizar a recuperação de uma informação, via um método de acesso. Seu objetivo principal está relacionado com a performance de uma aplicação.

Uma chave pode ser utilizada como índice, mas um índice não é, necessariamente, uma chave

Page 7: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Chave Candidata– Deve ser única, ou seja, nenhuma tupla de uma mesma relação pode ter o

mesmo valor para o atributo escolhido como chave candidata– Deve ser irredutível, nenhum subconjunto da chave candidata pode ter

sozinho a propriedade de ser único.– Pode ser :

Simples : quando é composta por apenas um atributo Composta : quanto possui mais de um atributo para formar a chave

Chave primária – É um caso especial da chave candidata. É a escolhida entre as candidatas

para identificar unicamente uma tupla.

Chave estrangeira

– É quando um atributo de uma relação é chave primária em outra.

– Constitui um conceito de vital importância no modelo relacional: é o elo de ligação lógica entre as tabelas (relacionamentos)

– Através das operações com as chaves estrangeiras que se garante a INTEGRIDADE REFERENCIAL do banco de dados:

Modelo Relacional

Page 8: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Regras de Integridade Regras que devem ser obedecidas em todos os estados válidos da base de dados (podem envolver uma ou mais linhas de uma ou mais tabelas)

Integridade da Entidade

O valor da chave não pode ser vazio

A chave primária serve como representante na base de dados de uma entidade – se a chave primária for vazia, alinha não corresponde a nenhuma entidade

Integridade de Chave Primária

O chave primária tem que ser única

Integridade Referencial

As chaves estrangeiras tem que ser respeitadas, ou seja, se existe um determinado valor para o atributo na tabela onde ele é chave estrangeira este valor deve existir na tabela onde ele é chave primária

Restrições de Integridades Semânticas

Todas as demais regras que devem ser obedecidas por todos os estados válidos da base de dados

Modelo Relacional

Page 9: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.
Page 10: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Principais características de um SGBD

Restrições de Integridade

“A maioria dos SGBD provem certas restrições de integridade que devem ser aplicadas aos dados. O SGBD deve ter mecanismos para possibilitar a definição das restrições e assegurar o respeito a estas. Um exemplo de restrição de integridade é a definição de um tipo de dado (data type) para cada item de dado.

Exemplo: Ao definir o tipo cores como: azul, vermelho, amarelo e

verde. E em seguida definir um atributo cor_parede como do tipo cores. O SGBD aceitará apenas os tipos definidos ou seja azul, vermelho, amarelo e verde como válidos para este atributo.

Pergunta: o que aconteceria se o usuário informasse a cor branco para o atributo cor_parede?

Page 11: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Arquitetura de três esquemas

• A arquitetura de três esquemas possui três níveis:– Nível interno : descreve a estrutura de armazenagem

física do banco de dados através da descrição completa dos dados armazenados e dos caminhos de acesso para o banco de dados,

– Nível conceitual : descreve a estrutura de um banco de dados corporativo para uma comunidade de usuários. O esquema conceitual esconde os detalhes das estruturas físicas de armazenagem e concentrando-se nas descrições da entidades, tipos de dados, relacionamentos, operações do usuário e restrições.

– Nível externo : descreve uma parte do banco de dados de interesse de um grupo de usuários em particular e esconde o resto do banco de dados para esse grupo.

Page 12: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Arquitetura de Três Esquemas

VisãoExterna 1

VisãoExterna 1

VisãoExterna n

VisãoExterna n

Esquema ConceitualEsquema Conceitual

Esquema InternoEsquema Interno

Usuários finais

. . .Esquema EXTERNO

Esquema CONCEITUAL

Esquema INTERNO

mapeamento externo/conceitual

mapeamento conceitual/interno

Page 13: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Visões

Exemplo: Empresa aérea

1- Funcionários(Nome, CPF, DataNasc, Telefone, DataAdmissão)

2- Equipamentos(NumAvião, Marca, Tipo, Capacidade,NumTripulação, DataRevisão)

3- Funções(NomeFunção, Salário, Qualificação,TipoEquipam)

4- Vôo(NumVôo, Linha, Equipamento, NumHoras, ServiçoBordo, HorárioSaída)

Aplicações:

• Folha pagamento (1,3)• Equipe tripulação (1,2,3)• Manutenção equip (1, 2, 3)• Reserva vôo (2,4)• Escala manutenção (1,2,3)

Page 14: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Independência de Dados ( reformulando......)

Capacidade de mudar o esquema num nível de um sistema de banco de dados sem ter que mudar o esquema no nível seguinte mais alto.

Independência lógica de dados:

Capacidade de mudar o esquema conceitual sem ter que mudar esquemas externos ou programas de aplicação.

Independência física de dados:

Capacidade de mudar o esquema interno sem ter que mudar o esquema conceitual

Page 15: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Principais características de um SGBD

Independência de Dados “Consiste na capacidade de permitir que haja evolução

na descrição dos dados da empresa, sem que os sistemas ou aplicações tenhas que ser alterados”

“Imunidade das aplicações às mudanças na estrutura de armazenagem e estratégias de acesso”

A independência dos dados em relação a aplicação representa o um avanço no sentido de tornar qualquer modificação das estruturas dos arquivos imperceptível para os programas. Desta forma, as mudanças na organização dos dados não gera qualquer necessidade de alteração dos programas que o manipulam. Exemplo: Inclusão de um novo campo (atributo) em

um arquivo (tabela) é feita sem que sejam alterados os programas, pois nos programas não estão definidos as estruturas dos arquivos.

Page 16: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

PROJETO (DESIGN) DE BANCOS DE DADOS

Requisitos de Dados

Projeto Conceitual

Projeto Lógico

Projeto Físico

Esquema Conceitual

Esquema Físico

Esquema Lógico

Coleta e Análisede Requisitos

Mini-Mundo

Independentede SGBD

Específico paraum SGBD

Foco : dados

Page 17: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Modelo logico

aluno curso

Cod-aluno Nome cpf

Cod-curso Nome Carga-hor.

ALUNO (cod-aluno, nome, CPFCURSO(cod-curso, nome, carga-hor.

Page 18: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Regra 1: todo conjunto apontado por um Recebe a chave do apontado.

ALUNO (cod-aluno, nome, CPF, cod-curso)CURSO(cod-curso, nome, carga-hor.)

Isto já permite a ligação entre as duas relações.

Page 19: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Regra do foguete

aluno cursoCod-curso curso

Nome do atributo a ser exportado

Nome que o atributo recebe na tabela que o importa

Page 20: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Regra 2

aluno

Cod-alunoNomeCPFendereço

aprovado

NotaData-aprovaçao

{disjunto}

Primeiro grau

segundo grau

Nível superiorgrau

ALUNO ( cod-aluno, nome, CPF, endereço, ind-aprovado, indc-flag-tipo)APROVADO (cod-aluno, nota, data-aprovacao)PRIMEIRO GRAU (cod-aluno)SEGUNDO-GRAU(cod-aluno)NIVEL-SUPERIOR (cod-aluno)As relações PRIMEIRO GRAU, SEGUNDO-GRAU, NIVEL-SUPERIOR são eliminadas pois não acrescentam nenhuma informação nova.

Page 21: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Regra 3

aluno curso

Cod-aluno

Nome

cpf

Cod-curso

Nome

Carga-hor.

ESQUEMAS RELACIONAIS:

ALUNO (cod-aluno, nome, CPF)CURSO(cod-curso, nome, carga-hor.)ALUNO/CURSO (cod-aluno, cod-curso)

Page 22: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Convertendo o Diagrama ER para Tabelas Relacionais

Para cardinalidade 1:1Incluir todos os atributos numa tabela simples. O nome da tabela relacional pode ser o nome de uma das entidades que participam do relacionamento, um nome composto formado pela combinação dos nomes das duas entidades ou um novo nome que represente o significado dos dados na tabela.Para cardinalidade 1:N

Incluir o “identificador”do lado “um” como um atributo no lado “muitos”. O dentificador colocado do lado “muitos” é chamado de chave estrangeira.

Para cardinalidade N:M Criar uma nova tabela e colocar as chaves primárias de cada uma das entidades como atributos na nova tabela. A nova tabela é chamada de tabela associativa. O identificador da tabela é uma chave composta formada pelas chaves primárias das duas tabelas que participam do relacionamento. Cada identificador colocado na nova tabela é uma chave estrangeira.

Em cada entidade onde o limite inferior para a cardinalidade é 0 e o limite superior é 1, temporariamente classifique o limite superior como N. Aplique as regras abaixo, observando apenas os valores máximos para as cardinalidades

Page 23: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Convertendo o Diagrama ER para Tabelas Relacionais

ensinaFaculdade Curso

matricula

Aluno

Tem Alu_Esp utiliza

EndereçoResidencial

Especiali-zação

Armario

0:1N 0:4

0:7

0:N

1:1 0:1N

1:N

1:1 1:1 0:1N

Estes são rótulos temporários para os limites de cardinalidade superior.

Page 24: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Convertendo o Diagrama ER para Tabelas Relacionais

TemAluno

Sobrenome

StreetCPF

Endereçoresidencial

Rua Cidade Estado

Aluno (NumMatr, CPF, Nome, Sobrenome, Rua, Cidade , Estado)

Colocando Atributos

1 : 1 1 : 1Nome

NumMatr

Page 25: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Convertendo o Diagrama ER para Tabelas Relacionais

Alu_EspAluno Especiali-zação

1:N 1:1

EstadoCidade

Rua

Sobrenome

Nome

CPF Cd-ident

Descrição

Aluno (NumMatr,CPF, Cd-ident, Nome, Sobrenome, Rua, Cidade, Estado)

Especialização (Cd-ident, Descrição)

Colocando chave estrangeira

NumMatr

Page 26: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Convertendo o Diagrama ER para Tabelas Relacionais

matriculaCurso Aluno1:7 0:N

CreditosEstado Cidade

NomeCurso

Nome

Cd_id

CPF

Sobrenome

Colocando chaves estrangeiras

Rua

Curso (Cd-id, NomeCurso, Creditos)

Matricula (Cd_id, NumMatr)

Aluno (NumMatr,CPF, Nome, Sobrenome,

Rua, Cidade, Estado)

Nova tabela de associação

NumMatr

Page 27: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

ALGEBRA RELACIONAL

( {conjunto de elementos}, {conjunto de operações}, {propriedades das operações} )

EXEMPLO: a álgebra dos naturais ({conjunto dos naturais},{ +,-,*,/} ,{associativa, distributiva, neutro,...})

Page 28: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Os operadores da álgebra relacional podem ser divididos em dois grupos:

•Operadores de Conjuntos: são operadores típicos definidos pela álgebra para conjunto, tais como união, interseção, diferença e produto cartesiano.

• Operadores de relações: são operadores especiais definidos especialmente para a manipulação de tuplas, tais como, Select, Project e Join.

Page 29: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

SELEÇÃO (): operação aplicada sobre uma relação de modo a selecionar um sub-conjunto de tuplas (com todos os seus atributos) que satisfaçam a um determinada condição (simples ou composta). O sub-conjunto selecionado forma uma relação resultante temporária. Esta condição aplica-se apenas em uma única relação sendo verificada individualmente para cada tupla da relação. Exemplo: Dado uma relação dos funcionários da empresa, selecionar aqueles que recebem salário > 1000,00 reais.A operação SELECT é denotada por:

<condição de seleção> ( <nome da relação> )

Page 30: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Projeção

As operações project e select podem ser utilizadas de forma combinada, permitindo que apenas determinadas colunas de determinadas tuplas possam ser selecionadas.A forma geral de uma operação sequencializada é:

∏<lista de atributos> (<condição de seleção> (<nome da relação>))

Page 31: BANCO DE DADOS - CONCEITOS Arquiteturas de Banco de dados Projeto de banco de dados Modelo relacional Algebra relacional ASSUNTOS TRATADOS.

Produto cartesiano A X BConsiste em se combinar todas as linhas da relação A com a relação B

A = ALUNONOME TELJOAO 12LUIZ 25

B = DISCIPLINACOD-DIS NOME CREDITOS

1MATEM. 152INGLES 203PORT. 15

A X B = ALUNO X DISCIPLINANOME TEL COD-DIS NOME CREDITOSJOAO 12 1MATEM. 15JOAO 12 2INGLES 20JOAO 12 3PORT. 15LUIZ 25 1MATEM. 15LUIZ 25 2INGLES 20LUIZ 25 3PORT. 15