• Nenhum resultado encontrado

SISTEMAS DE INFORMAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "SISTEMAS DE INFORMAÇÃO"

Copied!
75
0
0

Texto

(1)

ACH2025

Laboratório de Bases de Dados

Aula 2

Revisão de Conceitos

(2)

Conceitos Básicos

Campo

– representação informatizada de um

dado real / menor unidade de informação com

valor significativo para o usuário

valor significativo para o usuário

Dado

– conteúdo do campo

Registro

– conjunto de campos

Arquivo

– conjunto de registros

Banco de Dados

– armazenamento físico dos

Banco de Dados

– armazenamento físico dos

arquivos

Sistema Gerenciador de Banco de Dados (SGBD)

– software responsável pelo armazenamento e

recuperação dos dados do BD.

(3)

Problemas dos Sistemas de

Arquivos Tradicionais

• Redundância

• Inconsistência

• Inconsistência

• Dificuldade no acesso a dados

• Isolamento dos dados

• Múltiplos usuários

• Segurança

• Segurança

• Integridade

(4)

Problemas dos Sistemas de

Arquivos Tradicionais

Redundância

– Arquivos e aplicações criados e mantidos por – Arquivos e aplicações criados e mantidos por

diferentes programadores arquivos com formatos diferentes e programas escritos em diversas

linguagens de programação.

– Informação repetida em diversos lugares (arquivos).

Inconsistência

Inconsistência

– Decorrência da redundância.

– Várias cópias dos dados poderão divergir ao longo do tempo.

(5)

Problemas dos Sistemas de

Arquivos Tradicionais

Dificuldade no acesso aos dados

– Necessidade de construir programas para obter qualquer – Necessidade de construir programas para obter qualquer

informação solicitada.

Uma empresa precisa dos nomes de todos os clientes que fazem aniversário no mês Uma empresa precisa dos nomes de todos os clientes que fazem aniversário no mês

de fevereiro, mas esta solicitação não foi prevista no projeto do sistema

de fevereiro, mas esta solicitação não foi prevista no projeto do sistema existe existe somente uma aplicação para gerar a relação de todos os clientes da empresa. somente uma aplicação para gerar a relação de todos os clientes da empresa. Alternativas:

Alternativas:

Exemplo Exemplo

1) separar manualmente da lista de todos os clientes aqueles que necessita 1) separar manualmente da lista de todos os clientes aqueles que necessita 2) requisitar um programador para escrever o programa necessário.

(6)

Problemas dos Sistemas de

Arquivos Tradicionais

Isolamento dos dados

– Dados dispersos em vários arquivos e arquivos em

diferentes formatos difícil escrever novas aplicações para recuperação apropriada dos dados.

(7)

Problemas dos Sistemas de

Arquivos Tradicionais

Múltiplos usuários

– Atualizações concorrentes podem resultar em – Atualizações concorrentes podem resultar em

inconsistências.

Conta corrente com saldo = R$500,00 Conta corrente com saldo = R$500,00

Dois clientes debitam da conta A simultaneamente ($50 e $100, Dois clientes debitam da conta A simultaneamente ($50 e $100, respectivamente)

respectivamente)

Na execução dos programas, ambos lêem o saldo antigo, retiram, cada Na execução dos programas, ambos lêem o saldo antigo, retiram, cada

Exemplo Exemplo

Na execução dos programas, ambos lêem o saldo antigo, retiram, cada Na execução dos programas, ambos lêem o saldo antigo, retiram, cada um seu valor correspondente, sendo o resultado armazenado.

(8)

Problemas dos Sistemas de

Arquivos Tradicionais

Segurança

– Definir autorizações de acesso a diferentes usuários. – Definir autorizações de acesso a diferentes usuários.

Integridade

– Valores dos dados armazenados devem satisfazer a certas restrições para manutenção da consistência.

•• O valor da nota final de um aluno deve estar entre 0 e 10. Os O valor da nota final de um aluno deve estar entre 0 e 10. Os

programadores determinam o cumprimento desta restrição através programadores determinam o cumprimento desta restrição através da adição de código apropriado aos vários programas aplicativos. da adição de código apropriado aos vários programas aplicativos.

Exemplo

Exemplo da adição de código apropriado aos vários programas aplicativos.da adição de código apropriado aos vários programas aplicativos.

•• Entretanto, quando aparecem novas restrições, é difícil alterar Entretanto, quando aparecem novas restrições, é difícil alterar todos os programas para incrementá

todos os programas para incrementá--las. O problema é ampliado las. O problema é ampliado quando as restrições atingem diversos itens de dados em diferentes quando as restrições atingem diversos itens de dados em diferentes arquivos.

arquivos.

Exemplo Exemplo

(9)

Problemas dos Sistemas de

Arquivos Tradicionais

Atomicidade

– Algumas operações devem ser feitas de forma única, – Algumas operações devem ser feitas de forma única,

atômica, a fim de assegurar a integridade e consistência dos dados.

♦ um programa para transferir R$50,00 da conta A para uma conta um programa para transferir R$50,00 da conta A para uma conta B. Se ocorrer falha no sistema durante sua execução, é possível que B. Se ocorrer falha no sistema durante sua execução, é possível que os 50 reais sejam debitados da conta A sem serem creditados na

os 50 reais sejam debitados da conta A sem serem creditados na conta B, criando um estado inconsistente no banco de dados. conta B, criando um estado inconsistente no banco de dados. ♦

♦É essencial para a consistência do banco de dados que ambos, É essencial para a consistência do banco de dados que ambos,

Exemplo Exemplo

♦É essencial para a consistência do banco de dados que ambos, É essencial para a consistência do banco de dados que ambos, débito e crédito ocorram, ou nenhum deles seja efetuado. Isto é, a débito e crédito ocorram, ou nenhum deles seja efetuado. Isto é, a

(10)

Regras para que um sistema de

manipulação de dados seja um SGBD

Auto-contenção – conter dados, suas descrições, relacionamentos e formas de acesso.

Independência dos Dados – aplicações imunes a mudanças na estrutura de armazenamento e à estratégia de acesso a dados.

Abstração dos Dados – usuário não precisa saber detalhes sobre armazenamento real.

Visões – formas diferentes de ver os dados de acordo com necessidade dos usuários.

necessidade dos usuários.

Transações – gerenciar integridade sem precisar de aplicativos.

Controle automático de acesso – vários usuários, travamento eficiente.

(11)

Características de um SGBD

Controle de Redundâncias – informações armazenadas em

um único lugar.

Compartilhamento dos Dados – garantir concorrência ao

acesso dos dados, sem erro. acesso dos dados, sem erro.

Controle de Acesso – seleção de permissões por usuário.

Interfaceamento – facilidade para recuperação de informação.

Esquematização – mecanismos que possibilitem a

compreensão do relacionamento entre as tabelas e sua manutenção.

manutenção.

(12)

Abstração de Dados

SGBD:

estruturas complexas para a representação

dos dados no banco de dados.

Complexidade precisa ser escondida dos

Complexidade precisa ser escondida dos

usuários.

Níveis de abstração:

grande vantagem dos SGBD

Nível físico: mais baixo – descreve como os dados são armazenados

Nível conceitual ou lógico: quais dados são

Nível conceitual ou lógico: quais dados são

armazenados e quais relacionamentos entre eles.

(13)

Abstração de Dados

Nível de Visão Nível de Visão Visão 1

Visão 1 Visão 2Visão 2 ... Visão NVisão N

Nível Conceitual Nível Conceitual

Nível Físico Nível Físico

(14)

Instâncias e Esquemas

instância

conjunto de informações contidas em

determinado BD em um dado momento.

esquema

projeto geral do BD

mudados com

esquema

projeto geral do BD

mudados com

pouca freqüência.

• Analogia com linguagem de programação:

Type cliente = record

var ClienteNovo: cliente

Type cliente = record cliente-nome: string;

cliente-CPF: string; cliente-endereco: string; cliente-cidade: string end;

Área de memória que contém um registro do tipo cliente.

Valor de ClienteNovo em um dado momento é análogo à instância. Definição do tipo é análogo ao esquema.

(15)

Independência de Dados

Capacidade de modificar a definição dos esquemas em

Capacidade de modificar a definição dos esquemas em

determinado nível, sem afetar o esquema do nível

determinado nível, sem afetar o esquema do nível

superior

superior

superior

superior

Independência de dados física

Independência de dados física: modifica o esquema físico : modifica o esquema físico sem que, com isso, qualquer programa aplicativo precise ser sem que, com isso, qualquer programa aplicativo precise ser reescrito (ocasionais para aumento de desempenho).

reescrito (ocasionais para aumento de desempenho). Independência de dados lógica

Independência de dados lógica: modifica o esquema lógico : modifica o esquema lógico sem que, com isso, qualquer programa aplicativo precise ser sem que, com isso, qualquer programa aplicativo precise ser sem que, com isso, qualquer programa aplicativo precise ser sem que, com isso, qualquer programa aplicativo precise ser reescrito (sempre que uma estrutura lógica do BD é alterada) reescrito (sempre que uma estrutura lógica do BD é alterada)

(16)

Linguagens de Banco de Dados

• SGBDs:

– Uma linguagem para os esquemas (DDL)

– Uma linguagem para consultas e atualizações (DML) – Uma linguagem para consultas e atualizações (DML)

• Data Definition Languagem (DDL):

– Especificação do esquema de dados

– resultado da compilação de instruções DDL conjunto de tabelas que constituem o dicionário de dados ou diretório de dados

– dicionário de dados: arquivo de metadados (dados a respeito de dados) no SGBD o diretório é consultado antes que o dado real seja

no SGBD o diretório é consultado antes que o dado real seja modificado

– Estrutura de memória e método de acesso usados pelo BD: DDL especial denominada (linguagem de definição e armazenamento de dados – data storage and definition language)

(17)

Linguagem de Manipulação de Dados (DML)

• Data Manipulation Language (DML)

– manipulação de dados:

recuperação das informações armazenadas no BD inserção de novas informações no BD

remoção de informações do BD

modificação das informações do BD

– Objetivo proporcionar interação humana eficiente com o sistema.

– DML viabiliza o acesso (manipulação) dos dados – DML viabiliza o acesso (manipulação) dos dados organizados por um modelo de dados apropriado.

(18)

Modelo Entidade-Relacionamento

Projeto de um BD:

– (1) modelo conceitual

– (1) modelo conceitual

– (2) projeto lógico

Modelo Entidade-Relacionamento:

– modelo conceitual de dados

– criado em 1976 por Peter Chen

– representado graficamente pelo Diagrama

(19)

Modelo Entidade-Relacionamento

• Diagrama Entidade-Relacionamento (DER)

data cliente nome rua cidade número saldo data

(20)

Entidades e atributos

-Representação

Exemplo:

cliente nome rua cidade conta número saldo cliente conta

(21)

Representação de Relacionamentos

Exemplo:

(22)

Representação de Relacionamento Ternário

agência

conta CCA cliente

(23)

Relacionamentos e Conjuntos de Relacionamentos

Exemplo:

empregado Trabalha para

subordinado

subordinado

gerente

gerente

(24)

Relacionamentos e Conjuntos de Relacionamentos

• Uma instância de relacionamento em um esquema

E-R representa a existência de uma

associação

entre a entidade e o mundo real no qual se insere o

entre a entidade e o mundo real no qual se insere o

empreendimento que está sendo modelado.

Atributos descritivos

atributos próprios do conjunto

de relacionamentos.

Exemplo:

Exemplo: data

data

poderia ser um atributo do conjunto

poderia ser um atributo do conjunto

de relacionamentos

de relacionamentos

ClienteConta

ClienteConta

, especificando

, especificando

de relacionamentos

de relacionamentos

ClienteConta

ClienteConta

, especificando

, especificando

quando aquela conta foi movimentada pela última

quando aquela conta foi movimentada pela última

vez.

(25)

Representação do Modelo E-R

data

cliente cliente conta conta nome

rua

cidade número

saldo

(26)

Cardinalidade de mapeamentos

Há dois tipos de cardinalidade: máxima e mínima

Cardinalidade máxima:

Cardinalidade máxima:

– expressa o número máximo de entidades ao qual outra

entidade pode estar associada via um relacionamento.

úteis principalmente em relacionamentos binários

Cardinalidade mínima:

– expressa o número mínimo de entidades ao qual outra

(27)

Cardinalidade – Outras notações

Exemplo:

cardinalidade um-para-muitos

cliente 1 N produto cliente 1 compra N produto

cliente compra produto

(28)

Representação de autorrelacionamento

Papel

deve ser especificado através de

rótulos nas linhas que ligam os retângulos

aos losangos.

aos losangos.

Exemplo:

empregado Trabalha para gerente gerente subordinado subordinado N 1 empregado Trabalha para gerente gerente subordinado subordinado

(29)

Cardinalidade de Relacionamento Ternário

• Em um relacionamento R entre três entidades A, B e C, a cardinalidade de A e B dentro de R indica quantas

ocorrências de C podem estar associadas a um par de ocorrências de A e B.Exemplo: CIDADE PRODUTO DISTRIBUIÇÃO N DISTRIBUIDOR 1 N

A cada par (cidade,produto) está associado no máximo um distribuidor. A um par (cidade,distribuidor) podem estar associados muitos produtos.

(30)

Cardinalidade Mínima

• Número mínimo de entidades que são associadas a uma

ocorrência de outro conjunto de entidades através de um relacionamento.

• Consideramos apenas duas cardinalidades mínimas: • Consideramos apenas duas cardinalidades mínimas:

zero e 1

• A cardinalidade mínima 1 também recebe a denominação de associação obrigatória.

• A cardinalidade mínima 0 também recebe a denominação de associação opcional.

MÍNIMA MÍNIMA

CLIENTE (0,1) compra (1,N) PRODUTO

MÍNIMA MÍNIMA MÁXIMA MÁXIMA MÍNIMA MÍNIMA MÁXIMA MÁXIMA

(31)

Chaves Primárias

• Conceitualmente, entidades e relacionamentos são

distintos, mas como diferenciá-los no Banco de Dados?

• Para conjunto de entidades:

– Distinção superchave – Distinção superchave

Superchave conjunto de um ou mais atributos que permitem

identificar uma entidade das demais.

Exemplo:

podem ser superchaves de cliente:

CPF

Nome-cliente + CPF

Nome-cliente + data_nascimento + endereço Nome-cliente + data_nascimento + endereço (considerando que não há pessoas como mesmo nome, nascidas na mesma data, morando no

(32)

Chaves Primárias

Se

K é uma superchave

, qualquer conjunto de

atributos que contenha

K

é uma superchave.

superchave

pode conter atributos desnecessários

superchave

pode conter atributos desnecessários

O que nos interessa

superchaves menores

possíveis

aquelas em que nenhum subconjunto é

superchave

chaves candidatas

.

Exemplo

podem ser chaves candidatas:

CPF

RG + estado

não pode ser chave candidata:

(33)

Chaves Primárias

Chave Primária chave candidata escolhida pelo projetista

do BD como mecanismo principal para identificação de uma entidade como única.

Exemplo: chave primária de cliente:

CPF

Chave (primária, candidata, superchave) propriedade do

conjunto de entidade e não de uma entidade individualmente.

– Duas entidades individuais em um mesmo conjunto não podem ter,

(34)

Chaves Primárias - representação no DER

nome

data

cliente cliente conta conta CPF nome endereço número saldo (1,N) (1,N) (1,N)(1,N)

(35)

Dependência de existência

A existência de uma entidade

A

depende da

existência da entidade

B

.

A

é dependente da existência

dependente da existência de

B

.

A

é dependente da existência

dependente da existência de

B

.

Se

B

for excluído, o mesmo deve acontecer

com

A

.

A

é chamada entidade subordinada

entidade subordinada

B

é chamada entidade dominante

entidade dominante

(36)

Dependência de existência

A participação de um conjunto de entidades

E

no

conjunto de relacionamento

R

é dita

total

se

todas as entidades em E participam em pelo

todas as entidades em E participam em pelo

menos um relacionamento R.

Se somente algumas entidades em

E

participam

no relacionamento

R

, a participação do conjunto

de entidades

E

no relacionamento

R

é dita

parcial

.

parcial

.

A participação

total

está estreitamente

relacionada à

existência de dependência

(37)

Chaves Primárias – Entidade Forte e Fraca

Um conjunto de entidades

pode não possuir

atributos suficientes

para formação de uma

chave primária.

chave primária.

Exemplo:

conjunto de entidades

transação

, com os

atributos número-transação, data e valor.

movimentações em contas diferentes podem

movimentações em contas diferentes podem

ter o mesmo número de transação.

(38)

Representação de Entidade Fraca

Número-conta saldo Número-transação valor

conta movimento transação

conta

saldo

data

(1,1)

(39)

Chaves Primárias – Entidade Forte e Fraca

• Entidade fraca não possui chave primária própria • Entidade forte possui chave primária própria.

• Entidade fraca e Entidade forte

conceito de dependência. • Entidade forte entidade dominante.

• Entidade fraca entidade subordinada.

Discriminador de um conjunto de entidades fracas

conjunto de atributos que permite distingüir uma particular entidade em um subconjunto de entidades, mas não permite entidade em um subconjunto de entidades, mas não permite distingüi-la de todas as demais entidades.

(40)

Chaves Primárias – Entidade Forte e Fraca

Chave primária

de um conjunto de

entidades

fracas

chave primária da entidade forte da

qual é existencialmente dependente +

qual é existencialmente dependente +

discriminador.

Exemplo:

Chave primária de

transação

:

(

número-conta, número-transação)

(

número-conta, número-transação)

(41)

Diagrama Entidade-Relacionamento Estendido

Grande parte dos bancos de dados podem ser

modelados com os conceitos básicos do DER.

No entanto, algumas extensões permitem

No entanto, algumas extensões permitem

refinamentos que podem ser muito úteis.

Modelo Entidade-Relacionamento Estendido:

– Especialização – Generalização

– Conjuntos de entidades de nível superior e inferior – Conjuntos de entidades de nível superior e inferior – Herança de atributos

(42)

Especialização

Resultado da separação de entidades de nível

Diagrama Entidade-Relacionamento Estendido

Resultado da separação de entidades de nível

superior, formando um conjunto de entidades de

nível inferior.

Processo top-down

Por quê? Atributos não se aplicam a todas as

Por quê? Atributos não se aplicam a todas as

(43)

Exemplo:

Conjunto de entidades

conta

, com atributos

número-conta e saldo

Diagrama Entidade-Relacionamento Estendido

Cada conta pode ser classificada como:

conta-corrente: com atributos adicionais data-abertura e valor-limite

conta-poupança: com atributos adicionais taxa-juros e data-última-movimentação

Então:

Então:

(44)

Uma conta pode ser uma

conta-corrente ou uma

conta

Especialização

número

Diagrama Entidade-Relacionamento Estendido

conta-corrente ou uma

conta-poupança.

Pode também ser as

duas, ou nenhuma delas.

conta É UMA É UMA data-abertura valor-limite data-movimento agência conta-corrente conta-poupança valor-limite Taxa juros

(45)

Generalização

Processo inverso da Especialização – bottom up.

Diagrama Entidade-Relacionamento Estendido

Processo inverso da Especialização – bottom up.

Resultado da união de dois ou mais conjuntos de

entidades de nível inferior produzindo um

conjunto de entidades de nível superior.

(46)

Generalização

conta

Uma conta deve ser

uma conta-corrente ou número

Diagrama Entidade-Relacionamento Estendido

conta

É UMA É UMA

uma conta-corrente ou uma conta-poupança. E pode ser somente uma delas. data-abertura data-movimento número agência conta-corrente conta-poupança valor-limite movimento Taxa juros

(47)

Generalização e Especialização podem conviver no

mesmo conjunto de entidades

Exemplo:

cada empregado é ou um secretário ou um

encarregado-empréstimo. Cada secretário ou encarregado-empréstimo tem um

Diagrama Entidade-Relacionamento Estendido

empréstimo. Cada secretário ou encarregado-empréstimo tem um gerente, que por sua vez, é um empregado.

empregado

É UMA

É UMA É UMAÉ UMA É UMA

(48)

Pode haver sucessivos refinamentos

EMPREGADO É UMA É UMA nome código endereco

Diagrama Entidade-Relacionamento Estendido

MOTORISTA PROFESSOR É UMA É UMA CNH classe CNH titulacao especialidade É UMA É UMA valor valor--horahora classificação classificação valor valor--horahora

HORISTA SUBSTITUTO EFETIVO

data

data--contratocontrato

classificação classificação

(49)

Agregação

Limitação do Modelo E-R

não consegue

Diagrama Entidade-Relacionamento Estendido

expressar relacionamentos entre

relacionamentos.

Solução: mecanismo de agregação

transformação de um conjunto de

relacionamentos em conjunto de entidades.

relacionamentos em conjunto de entidades.

(50)

Exemplo:

empregado

que trabalha em um

projeto

e

usa diversas

máquinas

para realizar seu trabalho.

Diagrama Entidade-Relacionamento Estendido

emprega do projeto trabalha (0,N) usa quantidade (1,N) máquina (1,1)

(51)

Agregação

abstração através da qual

relacionamentos são tratados como entidades

de nível mais alto.

Diagrama Entidade-Relacionamento Estendido

de nível mais alto.

emprega do projeto trabalha (0,N) (1,N) (1,N) usa quantidade

(52)

Reduzindo Diagramas E-R a Tabelas

Conjunto de entidades

tabela com número de

colunas = número de atributos.

Entidades fortes

:

Entidades fortes

:

– Se E é um conjunto de entidades fortes com atributos a1,a2, ..., an.

E será representada por uma tabela chamada E com n

colunas distintas, cada uma correspondendo a um atributo de E.

atributo de E.

– Cada linha da tabela corresponde a uma entidade do

(53)

Reduzindo Diagramas E-R a Tabelas

Exemplo:

Número- Número-transação valor nome rua data

conta histórico transação conta saldo transação data valor cliente cliente conta rua cidade (1,N) CPF (1,N) (1,1) (0,N) CONTA CONTA número-conta saldo CONTA CONTA

(54)

Reduzindo Diagramas E-R a Tabelas

Entidades fracas

:

– Se A é um conjunto de entidades fracas com atributos a1,a2, ..., ar.

a1,a2, ..., ar.

– Se B é um conjunto de entidades fortes do qual A é

dependente.

– Se a chave primária B é constituída de atributos b1,b2, ..., bs.

A será representada por uma tabela chamada A com uma – A será representada por uma tabela chamada A com uma

coluna para cada tributo do conjunto

(55)

Reduzindo Diagramas E-R a Tabelas

Exemplo:

Número-conta saldo Número-transação valor nome rua CPF data

número- número- data valor

conta histórico transação conta saldo data cliente cliente conta cidade (1,N) CPF (1,N) (1,1) (0,N) TRANSAÇAO TRANSAÇAO número-conta número-transação data valor 900 1 01/02/1999 78,00 chave estrangeira / chave primária

(56)

Reduzindo Diagramas E-R a Tabelas

• Conjunto de relacionamentos depende da cardinalidade

máxima.

• Relacionamentos um para vários: • Relacionamentos um para vários:

chave conta Número-conta saldo cliente cliente conta nome rua cidade (1,1) CPF (1,N) CONTA CONTA CPF número-conta saldo 123.456.765-55 900 634,00 544.443.965-66 556 215,87 975.365.876-11 647 981,23 chave estrangeira CONTA CONTA

(57)

Reduzindo Diagramas E-R a Tabelas

Relacionamentos vários para um:

Número-nome

rua

CPF nome rua Cidade

número-chave estrangeira conta Número-conta saldo cliente cliente conta rua cidade (1,N) CPF (1,1) CLIENTE CLIENTE

CPF nome rua Cidade

(58)

Reduzindo Diagramas E-R a Tabelas

Relacionamentos um para um:

escolhe-se a melhor

chave para ser chave estrangeira

Número-nome

CPF nome rua Cidade

número-chave estrangeira conta Número-conta saldo cliente cliente conta rua cidade (1,1) CPF (1,1) CLIENTE CLIENTE CPF nome rua

123.456.765-55 João Av. Rio Branco

67

544.443.965-66 José R. Maria José 89

975.365.876-11 Antonio Av. das Rosas

987 Cidade Vera Cruz Ourinhos Marília número-conta 900 556 647

(59)

Reduzindo Diagramas E-R a Tabelas

Relacionamentos vários para vários

:

– Se R é um conjunto de relacionamentos envolvendo os

conjuntos de entidades E1,E2, ..., En.

conjuntos de entidades E1,E2, ..., En.

Se (Ei) é o conjunto de atributos que forma a chave

primária para o conjunto de entidades Ei

– Se R possui atributos descritivos chamados

{r

1

,r

2

, ...,

r

m

}

, R será representado por uma tabela com o seguinte conjunto de atributos:

conjunto de atributos: n

(60)

Reduzindo Diagramas E-R a Tabelas

Exemplo:

Número-conta saldo nome rua CPF data CPF número-conta data conta saldo

cliente cliente conta cidade

(1,N) (1,N)

CLIENTECONTA CLIENTECONTA

Sempre é necessário verificar se a chave primária resultante é suficiente para garantir a unicidade de chaves! CPF número-conta data 123.456.765-55 900 01/02/99 544.443.965-66 556 08/02/00 975.365.876-11 647 30/03/02 120.332.436-23 801 05/11/99

(61)

Reduzindo Diagramas E-R a Tabelas

Generalização e Especialização:

Trata-se de forma semelhante a

relacionamento um-para-um, considerando:

relacionamento um-para-um, considerando:

chave primária da entidade superior torna-se a

chave primária de todas entidades inferiores

Acrescenta-se atributo na tabela resultante da

entidade superior para distingüir entidade

entidade superior para distingüir entidade

inferior.

(62)

Reduzindo Diagramas E-R a Tabelas

Generalização e Especialização:

Número-conta saldo número-conta saldo 900 678,00 tipo 1 CONTA CONTA conta É UMA É UMA dia data abertura % juros 900 678,00 556 458,98 647 561,89 801 654,12 1 2 1 2

número-conta data abertura

900 04/01/1992 CONTA CONTA--CORRENTECORRENTE conta-corrente conta-poupança dia rendimento abertura 900 04/01/1992 801 07/08/1990 número-conta juros 556 12 dia rendimento 5 CONTA CONTA--POUPANÇAPOUPANÇA

(63)

Reduzindo Diagramas E-R a Tabelas

Agregação:

A agregação é o resultado de um

relacionamento com cardinalidade vários

relacionamento com cardinalidade vários

para vários:

o relacionamento é transformado em uma

tabela, contendo: chaves primárias dos

conjuntos de entidades envolvidos e os

atributos descritivos do relacionamento.

(64)

Reduzindo Diagramas E-R a Tabelas

Agregação:

trabalha

(1,N) (1,N)

codigof nome data-inicio codigop descrição

codigof nome

10 Ana Júlia

20 João Pedro

EMPREGADO EMPREGADO

empregado trabalha projeto

usa horas (1,N) (1,N) localização codigop descrição 23 Sistema XYZ 54 Sistema XPTO PROJETO PROJETO codigom nome-máquina 201 furadeira MÁQUINA MÁQUINA localização PRODUCAO TRABALHA TRABALHA máquina nome-máquina codigom 304 cortador 567 torno MARCENARIA PRODUCAO codigof codigop 10 23 20 54 TRABALHA TRABALHA data-início 01-04-05 10-04-05 20 23 23-04-05 codigof codigop USA USA codigom horas

(65)

Modelo Relacional

• Conceito de relação matemática (semelhante a tabela de

valores) como seu bloco de construção básica.

• Base teórica: teoria dos conjuntos e lógica de

• Base teórica: teoria dos conjuntos e lógica de

predicados de primeira ordem.

• Implementações comerciais:

– Década de 80: SGBD Oracle e sistema SQL/DS, componente do

SO MVS, da IBM.

– SGBDRs mais conhecidos: – SGBDRs mais conhecidos:

(66)

Modelo Relacional

• Banco de Dados: coleção de relações

cada relação tem um nome único.

cada relação tem um nome único.

• Informalmente, uma relação é semelhante

(67)

Modelo Relacional - Conceitos

atributos N ú m e r o A g ê n c i a V a lo r 2 5 C e n tr o 2 3 6 ,9 9 6 7 8 V ila V e r d e 1 5 9 8 ,7 0 4 3 3 S e r v id o r 6 4 ,8 1 6 7 M a tã o 4 5 ,2 3 Relação CONTA

tuplas

6 7 M a tã o 4 5 ,2 3 9 7 8 N o v a C id a d e 1 0 1 ,0 0

(68)

Restrições do Modelo Relacional

• Regras a respeito dos valores que podem ser armazenados nas relações

– Garantem que mudanças feitas no BD por usuários não resultem

em inconsistência dos dados. em inconsistência dos dados.

– Valores devem ser sempre satisfeitos em quaisquer das relações R

de um banco de dados BD.

Três categorias:

– Restrições inerentes baseadas em modelo. • Exemplo: relação não pode ter tuplas repetidas.

– Restrições baseadas em esquemas: que podem ser expressas diretamente – Restrições baseadas em esquemas: que podem ser expressas diretamente

nos esquemas do modelo de dados.

• Exemplo: intervalo de um atributo, chave estrangeira.

– Restrições baseadas em aplicação: devem ser expressas e impostas nos programas de aplicação.

(69)

Restrições baseadas em esquema

1. Restrições de domínio

– Dentro de cada tupla , o valor de cada atributo A – Dentro de cada tupla , o valor de cada atributo A

deve ser um valor atômico do domínio dom(A).

2. Restrições de chave

– Duas tuplas distintas não podem ter valores

idênticos para todos os atributos da chave primária idênticos para todos os atributos da chave primária e superchaves (unicidade de chave).

(70)

Restrições baseadas em esquema

3. Restrições de valores nulos

– Especifica que um atributo da relação não pode ser – Especifica que um atributo da relação não pode ser

nulo. Por exemplo: NOME is not null.

4. Restrições de integridade de entidade

(71)

Restrições baseadas em esquema

5. Restrições de integridade referencial

– o conceito de integridade referencial depende do

conceito de chave estrangeirachave estrangeira

conceito de chave estrangeirachave estrangeira

Chave estrangeira:Chave estrangeira:

• Dois conjuntos de atributos C e D compatíveis existe uma

ordem entre os atributos de ambos os domínios tal que o

primeiro atributo de C tenha o mesmo domínio do

primeiro atributo de D, o mesmo valendo para os segundos

atributos, e assim por diante. atributos, e assim por diante.

(72)

Restrições baseadas em esquema

chave estrangeira

chave estrangeira

conjunto de atributos

conjunto de atributos

D

D

R1

R1

que

que

não é chave

não é chave na relação R1

na relação R1,

,

mas é

mas é

compatível

compatível com a

com a

chave

chave

primária

primária de uma outra

de uma outra

compatível

compatível com a

com a

chave

chave

primária

primária de uma outra

de uma outra

relação.

relação.

A

A

restrição de integridade referencial

restrição de integridade referencial

determina que o

determina que o

valor dos atributos

valor dos atributos

D

D

numa

numa tupla

tupla qualquer

qualquer

t(D)

t(D)

da

da

relação

relação

R1

R1

onde

onde

D

D

não é chave:

não é chave:

ou é igual ao valor

t(C)

t(C)

na relação

Rk

Rk

onde

C

C

é

ou é igual ao valor

t(C)

t(C)

na relação

Rk

Rk

onde

C

C

é

chave

(73)

Restrições baseadas em esquema

Exemplo 1:

Professor

Professor ((númeronúmero--professorprofessor,nome,data,nome,data--admissão)admissão)

Disciplina

Disciplina ((códigocódigo,,nomenome--discdisc,,profprof--responsávelresponsável))

número-professor

nome

data-admissão

código nome-disc

prof-responsável

Professor

Professor DisciplinaDisciplina

professor admissão

213 Antônio 02/02/1999

responsável

(74)

Restrições baseadas em esquema

6. Outros tipos de restrições

Restrições de integridade semântica

• Exemplos: • Exemplos:

– salário do empregado deve ser menor que o do

chefe

– Número máximo de horas-extras é 35.

• Feitas através dos programas de aplicação ou da linguagem de

especificação de restrição (gatilhos e asserções)

Restrições de dependência funcional

Restrições de dependência funcional

• Estabelece relacionamento funcional entre dois conjuntos de

atributos X e Y, sendo que X determina o valor de Y em todos os estados da relação.

(75)

ACH2025

Laboratório de Bases de Dados

Aula 2

Revisão de Conceitos

Referências

Documentos relacionados

4- Retire os substantivos das frases abaixo e classifique-os: a) Essa linda mulher renovou todo o seu guarda-roupa. b) João teve uma atitude solidária ao doar os agasalhos que

Essa mudança repentina é a “passagem do aberto para fechado, da vida habitual para a vida mística.” Essas três formas de apego à vida correspondem ao

A vida em sociedade é condição necessária à sobrevivência de nossa espécie e à constituição da própria ideia de humanidade. Assim, desde suas origens, a espécie

Em 2004, quando quase toda a coleção já havia sido refeita, Meruri recebeu um convite do Museu Delle Culture Del Mondo Castello D’ Albertis de Gênova, ano em que foi eleita

OBJETO DO CONVÊNIO: AQUISIÇÃO DE EQUIPAMENTO E MATERIAL PERMANENTE PARA UNIDADE DE ATENÇÃO ESPECIALIZADA EM SAÚDE.. METAS E ETAPAS CUMPRIDAS METAS E ETAPAS

O presente trabalho foi iniciado almejando a redução de consumo de soda cáustica no processo de higienização de linhas de uma indústria de bebidas não

O deslizamento da cabeça do fêmur presente neste caso de HPP é outro ponto atípico, já que a asso- ciação das duas doenças é extremamente rara, existin- do apenas quatro

Data Documento Tipo Cliente / Fornecedor Movimento Observação Conta Vencimento Valor.