Capítulo 3: Modelo Relacional!



Documentos relacionados
Estrutura das Bases de Dados Relacionais Redução a tabelas de um Esquema ER Álgebra Relacional Operações Estendidas da Álgebra Relacional Modificação

Conjuntos de entidades Conjuntos de relações Restrições de Mapeamento Chaves Diagrama ER Opções de desenho Extensões ao modelo ER Exemplo

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

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

Função dos Sistemas de Bases de Dados Visão dos dados Modelos de dados Linguagem de Definição de Dados Linguagem de Manipulação de Dados Gestão de

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

Figura 1. Figura 2. Prova Escrita de Base de Dados 5 Novembro V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos)

Bases de Dados. Conversão para Modelo Relacional. Diagrama E-A. IST DEI Bases de Dados

Modelo Entidade-Relacionamento

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

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

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

Bases de Dados. Conversão para Modelo Relacional. Modelo Entidade-Associação. IST DEI Bases de Dados

Bases de Dados. Parte II: Os Modelos ER e EER

Aula II Introdução ao Modelo de Entidade-Relacionamento

Bases de Dados 2007/2008 Exame

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

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

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

MC536 Bancos de Dados: Teoria e Prática

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

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Bases de Dados 2007/2008 Exame

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Prof.: Clayton Maciel Costa

Curso de Gestão em SI MODELAGEM DE DADOS. Rodrigo da Silva Gomes. (Extraído do material do prof. Ronaldo Melo - UFSC)

Revisão de Banco de Dados

MEMOREX BANCO DE DADOS por Paulo Marcelo

Tipos de dados complexos e objectos Tipos de dados estruturados e herança em SQL Herança de tabelas Matrizes e multi-conjuntos em SQL Identidade de

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

Dependências Funcionais

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

GBC043 Sistemas de Banco de Dados Modelo de Entidade-Relacionamento (ER)

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

Roteiro. Modelagem de Dados: Usando o Modelo Entidade-Relacionamento. BCC321 - Banco de Dados I. Processo de Projeto de Banco de Dados.

Bases de Dados. Parte III: O Modelo Relacional

MODELAGEM DE DADOS - NORMALIZAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI

UML (Unified Modelling Language) Diagrama de Classes

Profa. Daniela Barreiro Claro

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Banco de Dados Lista de Exercícios 01

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

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Projeto Conceitual Usando o Modelo-Entidade Relacionamento

Banco de Dados. MER Estendido. Profa. Flávia Cristina Bernardini

Databases. Ferramentas gráficas na modelação lógica das BD. O Modelo Entidade-Relação (Associação) O Modelo de Classes no UML

I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal)

O Modelo de Entidade Relacionamento (ER ou MER) Parte 1

Unidade II ADMINISTRAÇÃO DE. Prof. Luiz Fernando de Lima Santos

Desenvolver o projeto conceitual de Banco de dados com a utilização do Modelo Entidade-Relacionamento.

Tabelas vista de estrutura

MODELO RELACIONAL E RESTRIÇÕES DE INTEGRIDADE

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

Capítulo 5 Complemento. 5.1 Laudon, Cap. 5

Relacionamentos entre classes

Bases de Dados. Modelo Entidade-Associação. Exemplo do banco. IST DEI Bases de Dados

Modelo Entidade-Relacionamento. Modelo Entidade-Relacionamento. Modelo Entidade-Relacionamento

Especificação do Trabalho

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

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

Apostila de Banco de Dados

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

ACCESS BÁSICO. Exercício 1 NCE/UFRJ. 1. O que são bancos de dados?...

ENGENHARIA DA COMPUTAÇÃO CONTEÚDO 4 GENERALIZAÇÃO E ENTIDADE ASSOCIATIVA. Prof. Msc. Ricardo Antonello BANCO DE DADOS I

Figura 5 - Workflow para a Fase de Projeto

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS

Modelo Relacional. Aécio Costa

Modelagem de Dados MODELAGEM DE DADOS. Lista de Exercícios - AV02. Luiz Leão luizleao@gmail.com Lista de Exercícios AV1

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

Criação de relações. Joaquim Frias

Bases de Dados. Lab 1: Introdução ao ambiente

descreve relacionamentos entre objetos de dados; conduz à modelagem de dados; atributos de cada objeto => Descrição de Objetos de Dados;

Prof. Alexandre Unterstell Banco de Dados I

Facturação Guia do Utilizador

Técnicas e Linguagens para Banco de Dados I

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais

Programação III / Estruturas de Dados. Enunciado do Trabalho Prático

Sistemas de Informação

Universidade Paulista

Capítulo 4: SQL! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!

INTRODUÇÃO AO MODELO DE DADOS RELACIONAL

Curso Superior de Tecnologia em BD

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

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

Banco de Dados. Modelo Relacional. Prof. Enzo Seraphim

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Banco de Dados para Redes. Cassio Diego cassiodiego.com/bdr

Transcrição:

Capítulo 3: Modelo Relacional! Estrutura das Bases de Dados Relacionais" Redução a tabelas de um Esquema ER" Álgebra Relacional" Operações Estendidas da Álgebra Relacional" Modificação da Base de Dados" Vistas" 1!

Modelo Relacional! Os modelos ER ajudam na modelação dos dados" Mas não ajudarão como modelo para armazenamento de dados e posterior tratamento." Como é que os dados estão armazenados?" Como consultar os dados?" Como alterar os dados?" Ajudava mais ver os dados organizados em tabelas ou, usando nomenclatura matemática, em relações." Modelo Relacional" " 2!

Atributos! Todo o atributo de uma relação tem um nome" O conjunto de valores que um atributo pode tomar é chamado de domínio do atributo." Normalmente, obriga-se a que os valores dos atributos sejam atómicos, ou seja, indivisíveis:" E.g. atributos multivalor não são atómicos" E.g. atributos compostos não são atómicos" O valor especial null pertence a todos os domínios" O valor null causa complicações na definição de muitas operações" Ignoraremos o efeito dos valores nulos em grande parte da apresentação mas consideraremos posteriormente as suas implicações" 3!

Esquema de Relação e Instância! A 1, A 2,, A n são (nomes de) atributos com domínios D 1, D 2,., D n, respectivamente." E.g. customer-name com domínio {Jones, Smith, Curry, Lindsay} "customer-street com domínio {Main, North, Park} "customer-city com domínio {Harrison, Rye, Pittsfield}" R = (A 1, A 2,, A n ) é um esquema de relação! E.g. Customer-schema = (customer-name, customer-street, customercity)" r(r) é uma relação no esquema de relação R" E.g. customer(customer-schema) ou vip(customer-schema)" Formalmente, dados os conjuntos D 1, D 2,., D n,, uma relação r é um subconjunto do produto cartesiano" D 1 x D 2 x x D n! i.e., uma relação é um conjunto de tuplos (a 1, a 2,, a n ) em que a i D i! E.g. customer = {(Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield)}! 4!

Instância de Relação! Os valores correntes (instância da relação) de uma relação podem ser representados por uma tabela" Um elemento t de r é um tuplo, representado por uma linha da tabela" clientes! id! nome! morada! cidade! 13123! Luís Trindade! Rue Central! Paris! 43242! Pedro Silva! Rua da Sofia! Coimbra! 36645! Joana Sobral! Rua Dª Maria! Coimbra! 21313! Susana Dias! Av do Brasil! Lisboa! atributos" tuplos" 5!

As relações não estão ordenadas! A ordem dos tuplos é irrelevante (os tuplos podem ser armazenadas segundo qualquer ordem)" E.g. relação account com os tuplos desordenados" 6!

Base de Dados Relacional! Uma base de dados relacional é constituída por diversas relações" A informação acerca de uma empresa é dividida em partes, em que cada relação armazena uma parte dessa informação" E.g.: account : armazena informação acerca de contas depositor : regista os clientes titulares das contas customer : guarda informação acerca de clientes" O armazenamento da informação numa única relação bank(account-number, balance, customer-name, customerstreet,...) origina" Repetição de informação (e.g. dois clientes que detêm uma conta)" A necessidade de valores nulos (e.g. para representar um cliente que não possui uma conta)" A teoria da normalização (capítulo mais à frente!) especifica como se devem desenhar/analisar esquemas de relação" 7!

A relação customer! 8!

A relação depositor! 9!

Chaves! Seja K R" K é uma super-chave de R se os valores de K são suficientes para identificar todos os tuplos de cada relação r(r) possível. Por relação possível entende-se uma instância r que pode existir na empresa que estamos a modelar. Exemplo: {customer-name, customer-street} e {customer-name} são ambas super-chaves de Customer, se não for possível dois clientes terem o mesmo nome." Por vezes, em vez de customer-name, é utilizado um atributo customer-id para identificar univocamente os clientes. Omitiremos esse atributo para simplificar os exemplos." 10!

Chaves (cont.)! K é uma chave candidata se K é minimal Exemplo: {customer-name} é uma chave candidata para Customer, dado ser uma super-chave (assumindo que dois clientes não podem ter o mesmo nome), e nenhum subconjunto dela ser uma super-chave." Chave primária: uma chave candidata que é escolhida com o objectivo de identificar os tuplos numa relação." Devem ser escolhidos atributos cujos valores nunca, ou raramente, variem." Por exemplo, o e-mail é único, mas normalmente pode variar." 11!

Derivação de relações (tabelas) a partir de um DER! Uma base de dados que seja representável por um DER pode ser também representada por intermédio de um conjunto de relações (tabelas)." A conversão de um DER para um conjunto de relações (tabelas) constitui a base para a derivação do desenho de uma base de dados relacional a partir de um DER" Para cada conjunto de entidades e para cada conjunto de relações do modelo ER gera-se uma única relação (tabela) com o nome do conjunto de entidades ou conjunto de relações respectivo." 12!

Conjuntos de Entidades como Tabelas! Um conjunto de entidades forte reduz-se a uma relação (tabela) com os mesmos atributos. " Por exemplo, o conjunto de entidades person dá origem à relação (tabela) person(id,name,address)! id! name! address! address! name! id! person! 13123" Luís Trindade" Paris" 43242" Pedro Silva" Coimbra" 36645" Joana Sobral" Coimbra" 21313" Susana Dias" Lisboa" 13!

Conjuntos de Entidades Fraco! Um conjunto de entidades fraco é representado por uma relação (tabela) que inclui atributos para a chave primária do conjunto de entidades identificador (ou dominante), juntamente com os atributos para os restantes atributos do conjunto de entidades fraco. " Por exemplo, o conjunto de entidades fraco payment dá origem à relação (tabela) payment(p_number,l_number,amount,date)! loan_p! payment! amount! loan! amount! l_number! date! p_number!! p_number! l_number! amount! date! 1" L1233" 2000" 10-10-2005" 2" L1234" 1000" 10-11-2005" 2" L1233" 1000" 10-11-2005" 3" L1433" 500" 22-12-2005" 14!

Conjuntos de Relações! Um conjunto de relações é representado por uma relação (tabela) com atributos para as chaves primárias dos conjuntos de entidades participantes, e com atributos adicionais para os atributos próprios (ou descritivos) do conjunto de relações. " Por exemplo a relação (tabela) para o conjunto de relações depositor é depositor(a_number,id, access_date) " credit_rate! a_number! balance! customer! a_number! id! access_date! A122" Luís Trindade" 12-12-2005" account! depositor! address! name! id! access_date! A133" Luís Trindade" 14-12-2005" A122" Joana Sobral" 13-11-2005" A144" Susana Dias" 10-13-2004" 15!

Determinação de Chaves a partir do DER! Conjunto de entidades fortes. A chave primária do conjunto de entidades é a chave primária da relação (tabela)." Conjunto de entidades fracas. A chave primária da relação (tabela) consiste na união da(s) chave(s) primária(s) do(s) conjunto(s) de entidades dominante(s) com o discriminante do conjunto de entidades fracas." Conjunto de relações. A união das chave primárias dos conjuntos de entidades relacionados é uma super-chave da relação (tabela)." Para conjuntos de relações binários um-para-muitos, a chave primária do lado muitos é a chave primária da relação (tabela)." Para conjuntos de relações um-para-um, a chave primária de um dos conjuntos de entidades é a chave primária da relação (tabela). " Para conjuntos de relações muitos-para-muitos, a união das chaves primárias é a chave primária da relação (tabela)." 16!

Tabelas Redundantes! Conjuntos de relações muitos-para-um e um-para-muitos, totais no lado muitos podem ser representados adicionando atributos extra ao lado muitos contendo a chave primária do outro conjunto participante." E.g.: Em vez de se criar uma relação (tabela) para o conjuntos de relações l-branch, adicionar um atributo name à relação (tabela) derivada a partir do conjunto de entidades loan, obtendo loan(l_number,amount,name) name! assets! city! l_branch! loan! amount! l_number! branch! 17!

loan! Tabelas Redundantes! l_branch! l_number! amount! l_number! name! branch! A122" 10" A133" 20" A123" 15" A144" 10" A122" Sete Rios" A133" Benfica" A123" Sete Rios" A144" Sete Rios" name! assets! city! Sete Rios" 10000" Lisboa" Benfica" 250000" Lisboa" Santa Clara" 123000" Coimbra" loan! l_number! amount! name! A122" 10" Sete Rios" amount! l_number! A133" 20" Benfica" name! assets! city! l_branch! loan! A123" 15" Sete Rios" branch! A144" 10" Sete Rios" 18!

Redundância de Tabelas (Cont.)! Se a participação é parcial no lado muitos, a substituição da relação (tabela) por atributos extra pode levar à ocorrência de valores nulos. " Para conjuntos de relações um-para-um, qualquer dos lados pode receber a chave primária do outro lado." São redundantes as relações (tabelas) correspondentes aos conjuntos de relações entre o conjunto de entidades fracas e os seus conjuntos de entidades dominantes." E.g. A tabela payment já contém a informação que apareceria na tabela loan_p (i.e., as colunas l_number e p_number)." 19!

Derivação de Tabelas para a Especialização! Método 1: " Formar uma relação (tabela) para a entidade de maior nível (mais geral)" Criar uma relação (tabela) para cada conjunto de entidades de nível abaixo, incluindo a chave primária da entidade acima e os atributos locais. " tabela! atributos! person" customer" employee" id, name, address" id, credit_rating" id, salary" " Desvantagem: obter a informação acerca de employee (por exemplo) obriga à consulta de duas tabelas" 20!

Derivação de Tabelas para a Especialização! Método 2: " Formar uma relação (tabela) para cada conjunto de entidades com os atributos locais e herdados " " tabela! person" " " " customer" " employee" " Desvantagem: " atributos! id, name, address" id, name, address, credit_rating" id, name, address, salary" name e address e city podem ser duplicados para pessoas que são clientes e/ou empregados" Se a especialização é total e não há relações com person, não há necessidade de criar uma relação (tabela) para a entidade mais geral (person)" Desvantagem: " street e city podem ser duplicados para pessoas que são simultaneamente clientes e empregados" Método a ser usado apenas quando a especialização é total, disjunta, e não há relações envolvendo o conjunto de entidades mais geral." 21!

Relações Correspondentes à Agregação! Tratar o conjunto de relações agregado como se se tratasse de um conjunto de entidades, sendo a sua chave a chave do conjunto de relações." 22!

Chaves Externas! Um esquema de relação pode ter um (ou mais) atributo(s) que corresponda(m) à chave primária de outra relação. Esses atributos são designados por chaves externas.! Exemplo: customer-name e account_number da relação depositor são chaves externas de customer e account, respectivamente. " Apenas os valores que ocorrem na relação referenciada podem ocorrer nos atributos da chave externa da relação referenciadora" 23!

Integridade de referência e ER! chave1! chave2! e1! r! e2! Independentemente da cardinalidade, para o conjunto de relações r criar a tabela:" r(chave1, chave2)! chave1 em r é chave externa referindo e1! chave2 em r é chave externa referindo e2! 24!

Integridade de referência e ER! chave_de_g! g! ISA! e1! e2! A relação correspondente ao conjunto de entidades e1 (resp. e2) tem como atributo chave_de_g, para além os atributos locais de e1 (resp. e2)." chave_de_g é chave primária de e1 (resp. e2)" chave_de_g em e1 (resp. e2) é chave externa referindo g! Nada impõe (ainda) sobre restrições de pertença ou completude!! " 25!

Integridade de referência e ER! p! e! projecto! trabalha! a! b! empregado! projecto(p,a)! empregado(e,b)! ferramenta(f,c)! trabalha(p,e)! p é chave externa de projecto! e é chave externa de empregado! usa(p,e,f)! f é chave externa de ferramenta! (p,e) é chave externa de trabalha! c! usa! ferramenta! f! 26!

Diagrama de Esquema! Representação esquemática de uma Base de Dados: relações, atributos, chaves primárias e chaves externas. " 27!

DER de um Banco! headq! sup! inf! name! branch! assets! city! l_branch! loan_p! loan! payment! amount! l_number! borrower! amount! date! p_number!! credit_rate! managed! works_on! a_number! balance! customer! job! j_name! salary! employee! a_branch! interest! savings_! account! approved! account! depositor! address! name! ISA! access_date! id! disjoint" overdraft_limit! check_! account! person! ISA! 28!

Conversão em Esquemas de Relação do DER de um Banco! address! name! id! person! salary! ISA! credit_rate! employee! customer! person(id,name,address)! customer(id,credit_rate) id é chave externa de person! employee(id,salary) id é chave externa de person! 29!

Conversão em Esquemas de Relação do DER de um Banco! amount! l_number! name! assets! city! l_branch! loan! borrower! credit_rate! branch! a_number! balance! customer! a_branch! account! depositor! access_date! branch(name,assets,city) " loan(l_number,amount,name) name é chave externa de branch" account(a_number,balance,name) name é chave externa de branch" borrower(l_number,id) id é chave externa de cliente; l_number é chave externa de loan" depositor(a_number,id, access_date) id é chave externa de cliente; a_number é chave externa de account" 30!

Conversão em Esquemas de Relação do DER de um Banco! loan_p! payment! amount! loan! amount! l_number! date! p_number!! payment(p_number,l_number,amount,date) l_number é chave externa de loan! 31!

Conversão em Esquemas de Relação do DER de um Banco! name! assets! city! a_number! balance! branch! a_branch! account! interest! ISA! employee! salary! savings_! account! approved! overdraft_limit! check_! account! account(a_number,balance,name) name é chave externa de branch" savings_account(a_number,interest) a_number é chave externa de account" check_account(a_number,overdraft_limit,id) a_number é chave externa de account, id é chave externa de employee" 32!

Conversão em Esquemas de Relação do DER de um Banco! name! branch! assets! city! job(j_name)" works_on(id,j_name,name) id é chave externa de employee, j_name é chave externa de job, name é chave externa de branch" managed! works_on! managed(id,j_name,name,id.manager) (id,j_name,name) é chave externa de works_on; id.manager é chave externa de employee" job! j_name! salary! employee! ou (ver.2)" " job(j_name)" works_on(id,j_name,name,manager.id) id é chave externa de employee; j_name é chave externa de job; name é chave externa de branch; id.manager é chave externa de employee" 33!

Conversão em Esquemas de Relação do DER de um Banco! headq! sup! inf! name! branch! assets! city! branch(name,assets,city) " " headq(inf.name,sup.name) inf.name é chave externa de branch; sup.name é chave externa de branch" ou (ver.2)" " " branch(name,assets,city,sup) sup é chave externa de branch" 34!

Conjunto de tabelas! person(id,name,address)! customer(id,credit_rate) id é chave externa de person! employee(id,salary) id é chave externa de person! branch(name,assets,city) " loan(l_number,amount,name) name é chave externa de branch" account(a_number,balance,name) name é chave externa de branch" borrower(l_number,id) id é chave externa de cliente; l_number é chave externa de loan" depositor(a_number,id, access_date) id é chave externa de cliente; a_number é chave externa de account" payment(p_number,l_number,amount,date) l_number é chave externa de loan! savings_account(a_number,interest) a_number é chave externa de account" check_account(a_number,overdraft_limit,id) a_number é chave externa de account, id é chave externa de employee" job(j_name)" works_on(id,j_name,name) id é chave externa de employee, j_name é chave externa de job, name é chave externa de branch" managed(id,j_name,name,id.manager) (id,j_name,name) é chave externa de works_on; id.manager é chave externa de employee" headq(inf.name,sup.name) inf.name é chave externa de branch; sup.name é chave externa de branch! 35!

Esquema da BD de um banco! headq branch loan borrower payment PK,FK2 FK1 inf.name sup.name PK name city assets PK FK1 l_number amount branch_name PK,FK2 l_number id PK p_number l_number amount date works_on job account depositor customer PK,FK3 PK,FK2 id name j_name PK j_name PK FK1 a_number balance branch_name PK,FK2 a_number id access_date id credit_rate managed employee check_account savings_account person FK2 id name j_name manager.id id salary FK2 a_number overdraft_limit id a_number interest PK id name address 36!

Conjunto de tabelas (ver.2)! person(id,name,address)! customer(id,credit_rate) id é chave externa de person! employee(id,salary) id é chave externa de person! loan(l_number,amount,name) name é chave externa de branch" account(a_number,balance,name) name é chave externa de branch" borrower(l_number,id) id é chave externa de cliente; l_number é chave externa de loan" depositor(a_number,id, access_date) id é chave externa de cliente; a_number é chave externa de account" payment(p_number,l_number,amount,date) l_number é chave externa de loan! savings_account(a_number,interest) a_number é chave externa de account" check_account(a_number,overdraft_limit,id) a_number é chave externa de account, id é chave externa de employee" job(j_name)" works_on(id,j_name,name,manager.id) id é chave externa de employee; j_name é chave externa de job; name é chave externa de branch; id.manager é chave externa de employee" branch(name,assets,city,sup) sup é chave externa de branch" 37!

Esquema da BD de um banco (ver.2)! branch loan borrower payment name city assets sup PK FK1 l_number amount branch_name PK,FK2 l_number id PK p_number l_number amount date works_on job account depositor customer PK,FK3 PK,FK2 FK4 id name j_name manager.id PK j_name PK FK1 a_number balance branch_name PK,FK2 a_number id access_date id credit_rate employee check_account savings_account person id a_number a_number PK id salary FK2 overdraft_limit id interest name address 38!