Sei sulla pagina 1di 16

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO

UNIVERSIDADE ABERTA DO BRASIL


Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________

Exemplo de Projeto de Banco de Dados

1.

Dado o Mini-mundo que representa um Banco BOM S.A, constitudo de clientes,


contas, agncias, funcionrios e transaes, com as seguintes caractersticas:
Agncia, o conjunto de todas as agncias de um banco. Cada Agncia descrita
pelos atributos agncia-cdigo, agncia-nome, agncia-estado-federao e agnciacidade.
Cliente, o conjunto de todas as pessoas que tm conta no Banco BOM S.A. Cada
Cliente descrito pelos atributos cliente-nome, cliente-cpf, cliente-endereo, clientenmeros-telefones, cliente-profisso.
Funcionrio, o conjunto de todas as pessoas que trabalham no Banco BOM S.A.
Cada Funcionrio descrito pelos atributos funcionrio-matrcula, funcionrio-cpf,
funcionrio-nome, funcionrio-nmero-telefone, funcionrio-dependentes.
Conta, o conjunto de todas as contas mantidas no Banco BOM S.A. Cada Conta
descrita pelos atributos conta-nmero conta-saldo.
Transao, o conjunto de todas as transaes executadas no Banco BOM S.A. Cada
Transao

descrita
pelos
atributos
transao-nmero,
transaotipo(dbito,crdito), transao-data e transao-quantia.
Um cliente no pode ter mais de uma conta na mesma agncia.
Uma conta pode pertencer a mais de um cliente.
O Banco BOM S.A. s possui cliente tipo pessoa-fsica.
Um funcionrio s pode trabalhar em uma agncia.
Uma transao s pode se feita por um cliente sobre uma conta.

2.

Faa as atividades do Projeto de Banco de Dados do Banco BOM S.A. conforme


requerido nos itens abaixo:
a)

Criar o Diagrama Entidade-Relacionamento incluindo Entidades, Relacionamentos,


Atributos e Cardinalidade. Utilize o BRModelo;

b)

Efetuar a migrao do Modelo Entidade-Relacionamento para o Modelo


Relacional;

c)

Efetuar, caso necessrio, o processo de normalizao at a 3. forma normal;

d)

Criar o Diagrama do modelo Lgico. Utilize o DBDesigner;

e)

Elaborar os Scripts de criao do Esquema do Banco de Dados (SQL/DDL). Utilize


o gerar de SQL do DBDesigner;

f)

Gerar uma Instncia de um Banco em Mysql, Postgres ou Firebird;

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
g)

Elabore SQL/DML para efetuar as seguintes consultas:


i.
ii.
iii.
iv.
v.
vi.

Relao dos clientes por ordem alfabtica;


Relao dos dependentes do cliente 10;
Relao dos dependentes do cliente 10 com nome do cliente, nome do
dependente e descrio do grau de parentesco;
Relao das Contas e suas Transaes;
Valor total das movimentaes (transaes) do ms passado;
Relao dos clientes com saldos e movimentaes no ms passado (nome
do cliente, nmero da conta, saldo atual, valores debitados (tipo=D) e
valores creditados (tipo=C)).

__________________Fim do Escopo do Projeto de BD _________________________

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
RESOLUO
Projeto de Banco de Dados do Banco BOM S.A

a)

Modelo Conceitual (MER) (Volume 2)

Analisando melhor o modelo Conceitual podemos identificar algumas anomalias


iniciais (1FN) que sero melhores tratadas neste momento:
1)
2)

Dependente possui atributos prprios e deve ser tratado como Entidade Fraca
Telefones do Cliente um atributo multivalorado

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
b)

Derivando MR a partir do MER (Captulo 8)


Mapeando Entidades Fortes

funcionario(fun_num_cpf, fun_nome, fun_num_telefone)


cliente(cli_num_cpf, cli_nome, cli_endereco, cli_numeros_telefones, cli_profissao)
agencia(age_codigo, age_nome, age_sigla_unidade_federativa, age_nome_municipio)
conta(cta_numero, cta_saldo)
transacao(trn_numero, trn_cod_tipo, trn_data, trn_valor)

Mapeando Atributos Multivalorados


cliente(cli_num_cpf, cli_nome, cli_endereco, cli_profissao)
cliente_telefone(cli_num_cpf(FK), tel_numero)
cli_num_cpf referencia cliente

Mapeando Entidades Fracas


dependente(fun_num_cpf(FK), dep_sequencia, dep_nome, dep_grau_parentesco)
fun_num_cpf referencia funcionario

Mapeando Relacionamentos Binrios 1:1


O modelo tratado no possui relacionamentos binrios 1:1

Mapeando Relacionamentos Binrios 1:N


funcionario(fun_num_cpf, fun_nome, fun_num_telefone, age_codigo(FK))
age_codigo referencia agencia
conta(cta_numero, cta_saldo, age_codigo(FK))
age_codigo referencia agencia
transacao(trn_numero, trn_cod_tipo, trn_data, trn_valor, cta_numero(FK))
cta_numero referencia conta
transacao(trn_numero, trn_cod_tipo, trn_data, trn_valor,
cta_numero(FK), cli_codigo(FK))
cta_numero referencia conta
cli_codigo referencia cliente

Mapeando Relacionamentos Binrios M:N


cliente_conta(cli_num_cpf(FK), cta_numero(FK))
cli_num_cpf referencia cliente
cta_numero referencia numero

Mapeando Relacionamentos n-rios


O modelo tratado no possui relacionamentos n-rios

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
Mapeando Especializaes e Generalizaes
O modelo tratado no possui especializaes ou generalizaes

Mapeando Agregaes Associativas


O modelo tratado no possui agregaes associativas

Resultado do Mapeamento MER para MR


funcionario(fun_num_cpf, fun_nome, fun_num_telefone, age_codigo(FK))
age_codigo referencia agencia
cliente(cli_num_cpf, cli_nome, cli_endereco, cli_profissao)
cliente_telefone(cli_num_cpf(FK), tel_numero)
cli_num_cpf referencia cliente
dependente(fun_num_cpf(FK), dep_sequencia, dep_nome, dep_grau_parentesco)
fun_num_cpf referencia funcionario
agencia(age_codigo, age_nome, age_sigla_unidade_federativa, age_nome_municipio)
conta(cta_numero, cta_saldo, age_codigo(FK))
age_codigo referencia agencia
cliente_conta(cli_num_cpf(FK), cta_numero(FK))
cli_num_cpf referencia cliente
cta_numero referencia numero
transacao(trn_numero, trn_cod_tipo, trn_data, trn_valor,
cta_numero(FK), cli_codigo(FK))
cta_numero referencia conta
cli_codigo referencia cliente

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
c)

Normalizao (Captulo 9)
1FN: Atributos Compostos e Multivalorados

alguns atributos multivalorados (telefones) e compostos (dependentes) foram tratados


na fase do modelo conceitual.

O atributo endereo de cliente que pode ser considerado um atributo composto


cliente(cli_num_cpf, cli_nome, cli_profissao, cli_end_logr, cli_end_numero,
cli_end_bairro, cli_end_municipio, cli_end_unidade_federativa,
cli_end_num_cep)

2FN: Atributos Compostos e Multivalorados


O modelo j est na 2FN. dependncia total da chave primria. S aplicado relaes
com chaves compostas.

3FN: Dependncia Transitiva


O Atributo profisso no depende de ter clientes para existir
profissao(pro_codigo, pro_descricao)
cliente(cli_num_cpf,
cli_nome,pro_codigo(FK),
cli_end_logr,
cli_end_numero,
cli_end_bairro, cli_end_municipio,cli_end_unidade_federativa, cli_end_num_cep)
pro_codigo referencia profissao

O Atributo grau de parentesco no depende de ter dependentes para existir


grau_parentesco(gpa_codigo, gpa_descricao)
dependente(fun_num_cpf(FK), dep_sequencia, dep_nome, gpa_codigo(FK))
fun_num_cpf referencia funcionario
gpa_codigo referencia grau_parentesco

O Atributo unidade federativa no depende de ter agncia para existir


unidade_federativa(ufd_sigla, ufd_nome)
agencia(age_codigo, age_nome, ufd_sigla(FK), age_nome_municipio)
ufd_sigla referencia unidade_federativa

O Atributo unidade federativa no pode ser atributo em Cliente e Referncia em


Agncia
cliente(cli_num_cpf, cli_nome, pro_codigo(FK), cli_end_logr, cli_end_numero,
cli_end_bairro, cli_end_municipio, ufd_sigla(FK), cli_end_num_cep)
pro_codigo referencia profissao
ufd_sigla referencia unidade_federativa

O Atributo nome do municpio no depende de ter agncia para existir


municipio(mun_codigo, mun_nome)

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
agencia(age_codigo, age_nome, ufd_sigla(FK), mun_codigo(FK))
ufd_sigla referencia unidade_federativa
mun_codigo referencia municpio

O Atributo municpio no pode ser atributo em Cliente e Referncia em Agncia


cliente(cli_num_cpf, cli_nome, pro_codigo(FK),cli_end_logr, cli_end_numero,
cli_end_bairro, mun_codigo(FK),ufd_sigla(FK), cli_end_num_cep)
pro_codigo referencia profissao
ufd_sigla referencia unidade_federativa
mun_codigo referencia municipio

Resultado da Nomalizao
funcionario(fun_num_cpf, fun_nome, fun_num_telefone, age_codigo(FK))
age_codigo referencia agencia
profissao(pro_codigo, pro_descricao)
cliente(cli_num_cpf, cli_nome, pro_codigo(FK), cli_end_logr, cli_end_numero,
cli_end_bairro, mun_codigo(FK), ufd_sigla(FK), cli_end_num_cep)
pro_codigo referencia profissao
ufd_sigla referencia unidade_federativa
mun_codigo referencia municipio
cliente_telefone(cli_num_cpf(FK), tel_numero)
cli_num_cpf referencia cliente
grau_parentesco(gpa_codigo, gpa_descricao)
dependente(fun_num_cpf(FK), dep_sequencia, dep_nome, gpa_codigo(FK))
fun_num_cpf referencia funcionario
gpa_codigo referencia grau_parentesco
unidade_federativa(ufd_sigla, ufd_nome)
municipio(mun_codigo, mun_nome)
agencia(age_codigo, age_nome, ufd_sigla(FK), mun_codigo(FK))
ufd_sigla referencia unidade_federativa
mun_codigo referencia municpio
conta(cta_numero, cta_saldo, age_codigo(FK))
age_codigo referencia agencia
cliente_conta(cli_num_cpf(FK), cta_numero(FK))
cli_num_cpf referencia cliente
cta_numero referencia numero
transacao(trn_numero, trn_cod_tipo, trn_data, trn_valor,
cta_numero(FK), cli_codigo(FK))
cta_numero referencia conta
cli_codigo referencia cliente

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
d)

Modelo Lgico (MER)

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
e)

Scripts de Criao do Esquema do BD (SQL/DDL)


Esquema para MySQL

CREATE TABLE AGENCIA (


AGE_CODIGO
INTEGER UNSIGNED NOT NULL
,UFD_SIGLA
VARCHAR(2) NOT NULL
,MUN_CODIGO
INTEGER UNSIGNED NOT NULL
,AGE_NOME
VARCHAR(50) NOT NULL
,CONSTRAINT PK_AGENCIA PRIMARY KEY (AGE_CODIGO)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_AGENCIA_1_UFD_SIGLA ON AGENCIA (UFD_SIGLA);
CREATE INDEX IXFK_AGENCIA_2_MUN_CODIGO ON AGENCIA (MUN_CODIGO);
CREATE TABLE CLIENTE (
CLI_NUM_CPF
INTEGER UNSIGNED AUTO_INCREMENT(11) NOT NULL
,PRO_CODIGO
INTEGER UNSIGNED NOT NULL
,MUN_CODIGO
INTEGER UNSIGNED NOT NULL
,UFD_SIGLA
VARCHAR(2) NOT NULL
,CLI_NOME
INTEGER UNSIGNED NULL
,CLI_END_LOGR
VARCHAR(50) NULL
,CLI_END_NUMERO
INTEGER UNSIGNED NULL
,CLI_END_BAIRRO
VARCHAR(30) NULL
,CLI_END_NUM_CEP
VARCHAR(8) NULL
,CONSTRAINT PK_CLIENTE PRIMARY KEY (CLI_NUM_CPF)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_CLIENTE_1_PRO_CODIGO ON CLIENTE (PRO_CODIGO);
CREATE INDEX IXFK_CLIENTE_2_UFD_SIGLA ON CLIENTE (UFD_SIGLA);
CREATE INDEX IXFK_CLIENTE_3_MUN_CODIGO ON CLIENTE (MUN_CODIGO);
CREATE TABLE CLIENTE_CONTA (
CLI_NUM_CPF
VARCHAR(11) NOT NULL
,CTA_NUMERO
INTEGER UNSIGNED NOT NULL
,CONSTRAINT PK_CLIENTE_CONTA PRIMARY KEY (CLI_NUM_CPF, CTA_NUMERO)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_CLIENTE_CONTA_1_CLI_NUM_CPF ON CLIENTE_CONTA (CLI_NUM_CPF);
CREATE INDEX IXFK_CLIENTE_CONTA_2_CTA_NUMERO ON CLIENTE_CONTA (CTA_NUMERO);
CREATE TABLE CONTA (
CTA_NUMERO
INTEGER UNSIGNED NOT NULL
,AGE_CODIGO
INTEGER UNSIGNED NOT NULL
,CTA_SALDO
DECIMAL(12,2) NOT NULL DEFAULT 0
,CONSTRAINT PK_CONTA PRIMARY KEY (CTA_NUMERO)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_CONTA_1_AGE_CODIGO ON CONTA (AGE_CODIGO);
CREATE TABLE DEPENDENTE (
DEP_NUM_SEQUENCIA
INTEGER UNSIGNED NOT NULL
,CLI_NUM_CPF
VARCHAR(11) NOT NULL
,GPA_CODIGO
INTEGER UNSIGNED NOT NULL
,DEP_NOME
VARCHAR(50) NOT NULL
,CONSTRAINT PK_DEPENDENTE PRIMARY KEY (DEP_NUM_SEQUENCIA, CLI_NUM_CPF)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_DEPENDENTE_1_CLI_NUM_CPF ON DEPENDENTE (CLI_NUM_CPF);
CREATE INDEX IXFK_DEPENDENTE_2_GPA_CODIGO ON DEPENDENTE (GPA_CODIGO);

10

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
CREATE TABLE FUNCIONARIO (
FUN_NUM_CPF
VARCHAR(11) NOT NULL
,AGE_CODIGO
INTEGER UNSIGNED NOT NULL
,FUN_NOME
VARCHAR(50) NOT NULL
,FUN_NUM_TELEFONE
VARCHAR(20) NULL
,CONSTRAINT PK_FUNCIONARIO PRIMARY KEY (FUN_NUM_CPF)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_FUNCIONARIO_1_AGE_CODIGO ON FUNCIONARIO (AGE_CODIGO);
CREATE TABLE GRAU_PARENTESCO (
GPA_CODIGO
INTEGER UNSIGNED AUTO_INCREMENT NOT NULL
,GPA_DESCRICAO
VARCHAR(40) NOT NULL
,CONSTRAINT PK_GRAU_PARENTESCO PRIMARY KEY (GPA_CODIGO)
)
TYPE=InnoDB
;
CREATE TABLE MUNICIPIO (
MUN_CODIGO
INTEGER UNSIGNED AUTO_INCREMENT NOT NULL
,MUN_NOME
VARCHAR(40) NOT NULL
,CONSTRAINT PK_MUNICIPIO PRIMARY KEY (MUN_CODIGO)
)
TYPE=InnoDB
;
CREATE TABLE PROFISSAO (
PRO_CODIGO
INTEGER UNSIGNED AUTO_INCREMENT NOT NULL
,PRO_DESCRICAO
VARCHAR(50) NOT NULL
,CONSTRAINT PK_PROFISSAO PRIMARY KEY (PRO_CODIGO)
)
TYPE=InnoDB
;
CREATE TABLE TELEFONE (
CLI_NUM_CPF
VARCHAR(11) NOT NULL
,TEL_NUMERO
INTEGER UNSIGNED NOT NULL
,CONSTRAINT PK_TELEFONE PRIMARY KEY (CLI_NUM_CPF, TEL_NUMERO)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_TELEFONE_1_CLI_NUM_CPF ON TELEFONE (CLI_NUM_CPF);
CREATE TABLE TRANSACAO (
TRN_NUMERO
INTEGER UNSIGNED AUTO_INCREMENT NOT NULL
,CLI_NUM_CPF
VARCHAR(11) NOT NULL
,CTA_NUMERO
INTEGER UNSIGNED NOT NULL
,TRN_COD_TIPO
CHAR(1) NULL
,TRN_DATA
TIMESTAMP NULL
,TRN_VALOR
DECIMAL(12,2) NULL
,CONSTRAINT PK_TRANSACAO PRIMARY KEY (TRN_NUMERO)
)
TYPE=InnoDB
;
CREATE INDEX IXFK_TRANSACAO_1_CTA_NUMERO ON TRANSACAO (CTA_NUMERO);
CREATE INDEX IXFK_TRANSACAO_2_CLI_NUM_CPF ON TRANSACAO (CLI_NUM_CPF);
CREATE TABLE UNIDADE_FEDERATIVA (
UFD_SIGLA
VARCHAR(2) NOT NULL
,UFD_NOME
VARCHAR(40) NOT NULL
,CONSTRAINT PK_UNIDADE_FEDERATIVA PRIMARY KEY (UFD_SIGLA)
)
TYPE=InnoDB
;
ALTER TABLE AGENCIA
ADD CONSTRAINT FK_AGENCIA_UNIDADE_FEDERATIVA FOREIGN KEY (UFD_SIGLA)
REFERENCES UNIDADE_FEDERATIVA (UFD_SIGLA)
;
ALTER TABLE AGENCIA
ADD CONSTRAINT FK_AGENCIA_MUNICIPIO FOREIGN KEY (MUN_CODIGO)
REFERENCES MUNICIPIO (MUN_CODIGO)
;

11

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
ALTER TABLE CLIENTE
ADD CONSTRAINT FK_CLIENTE_PROFISSAO FOREIGN KEY (PRO_CODIGO)
REFERENCES PROFISSAO (PRO_CODIGO)
;
ALTER TABLE CLIENTE
ADD CONSTRAINT FK_CLIENTE_UNIDADE_FEDERATIVA FOREIGN KEY (UFD_SIGLA)
REFERENCES UNIDADE_FEDERATIVA (UFD_SIGLA)
;
ALTER TABLE CLIENTE
ADD CONSTRAINT FK_CLIENTE_MUNICIPIO FOREIGN KEY (MUN_CODIGO)
REFERENCES MUNICIPIO (MUN_CODIGO)
;
ALTER TABLE CLIENTE_CONTA
ADD CONSTRAINT FK_CLIENTE_CONTA_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
ALTER TABLE CLIENTE_CONTA
ADD CONSTRAINT FK_CLIENTE_CONTA_CONTA FOREIGN KEY (CTA_NUMERO)
REFERENCES CONTA (CTA_NUMERO)
;
ALTER TABLE CONTA
ADD CONSTRAINT FK_CONTA_AGENCIA FOREIGN KEY (AGE_CODIGO)
REFERENCES AGENCIA (AGE_CODIGO)
;
ALTER TABLE DEPENDENTE
ADD CONSTRAINT FK_DEPENDENTE_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
ALTER TABLE DEPENDENTE
ADD CONSTRAINT FK_DEPENDENTE_GRAU_PARENTESCO FOREIGN KEY (GPA_CODIGO)
REFERENCES GRAU_PARENTESCO (GPA_CODIGO)
;
ALTER TABLE FUNCIONARIO
ADD CONSTRAINT FK_FUNCIONARIO_AGENCIA FOREIGN KEY (AGE_CODIGO)
REFERENCES AGENCIA (AGE_CODIGO)
;
ALTER TABLE TELEFONE
ADD CONSTRAINT FK_TELEFONE_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
ALTER TABLE TRANSACAO
ADD CONSTRAINT FK_TRANSACAO_CONTA FOREIGN KEY (CTA_NUMERO)
REFERENCES CONTA (CTA_NUMERO)
;
ALTER TABLE TRANSACAO
ADD CONSTRAINT FK_TRANSACAO_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)

Esquema para Postgres


CREATE TABLE AGENCIA (
AGE_CODIGO
INTEGER NOT NULL
,UFD_SIGLA
VARCHAR(2) NOT NULL
,MUN_CODIGO
INTEGER NOT NULL
,AGE_NOME
VARCHAR(50) NOT NULL
,CONSTRAINT PK_AGENCIA PRIMARY KEY (AGE_CODIGO)
)
;
CREATE INDEX IXFK_AGENCIA_1_UFD_SIGLA ON AGENCIA (UFD_SIGLA);
CREATE INDEX IXFK_AGENCIA_2_MUN_CODIGO ON AGENCIA (MUN_CODIGO);
CREATE TABLE CLIENTE (
CLI_NUM_CPF
SERIAL(11) NOT NULL
,PRO_CODIGO
INTEGER NOT NULL
,MUN_CODIGO
INTEGER NOT NULL
,UFD_SIGLA
VARCHAR(2) NOT NULL
,CLI_NOME
INTEGER
,CLI_END_LOGR
VARCHAR(50)
,CLI_END_NUMERO
INTEGER
,CLI_END_BAIRRO
VARCHAR(30)
,CLI_END_NUM_CEP
VARCHAR(8)
,CONSTRAINT PK_CLIENTE PRIMARY KEY (CLI_NUM_CPF)
)

12

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
;
CREATE INDEX IXFK_CLIENTE_1_PRO_CODIGO ON CLIENTE (PRO_CODIGO);
CREATE INDEX IXFK_CLIENTE_2_UFD_SIGLA ON CLIENTE (UFD_SIGLA);
CREATE INDEX IXFK_CLIENTE_3_MUN_CODIGO ON CLIENTE (MUN_CODIGO);
CREATE TABLE CLIENTE_CONTA (
CLI_NUM_CPF
VARCHAR(11) NOT NULL
,CTA_NUMERO
INTEGER NOT NULL
,CONSTRAINT PK_CLIENTE_CONTA PRIMARY KEY (CLI_NUM_CPF, CTA_NUMERO)
)
;
CREATE INDEX IXFK_CLIENTE_CONTA_1_CLI_NUM_CPF ON CLIENTE_CONTA (CLI_NUM_CPF);
CREATE INDEX IXFK_CLIENTE_CONTA_2_CTA_NUMERO ON CLIENTE_CONTA (CTA_NUMERO);
CREATE TABLE CONTA (
CTA_NUMERO
INTEGER NOT NULL
,AGE_CODIGO
INTEGER NOT NULL
,CTA_SALDO
DECIMAL(12,2) NOT NULL DEFAULT 0
,CONSTRAINT PK_CONTA PRIMARY KEY (CTA_NUMERO)
)
;
CREATE INDEX IXFK_CONTA_1_AGE_CODIGO ON CONTA (AGE_CODIGO);
CREATE TABLE DEPENDENTE (
DEP_NUM_SEQUENCIA
INTEGER NOT NULL
,CLI_NUM_CPF
VARCHAR(11) NOT NULL
,GPA_CODIGO
INTEGER NOT NULL
,DEP_NOME
VARCHAR(50) NOT NULL
,CONSTRAINT PK_DEPENDENTE PRIMARY KEY (DEP_NUM_SEQUENCIA, CLI_NUM_CPF)
)
;
CREATE INDEX IXFK_DEPENDENTE_1_CLI_NUM_CPF ON DEPENDENTE (CLI_NUM_CPF);
CREATE INDEX IXFK_DEPENDENTE_2_GPA_CODIGO ON DEPENDENTE (GPA_CODIGO);
CREATE TABLE FUNCIONARIO (
FUN_NUM_CPF
VARCHAR(11) NOT NULL
,AGE_CODIGO
INTEGER NOT NULL
,FUN_NOME
VARCHAR(50) NOT NULL
,FUN_NUM_TELEFONE
VARCHAR(20)
,CONSTRAINT PK_FUNCIONARIO PRIMARY KEY (FUN_NUM_CPF)
)
;
CREATE INDEX IXFK_FUNCIONARIO_1_AGE_CODIGO ON FUNCIONARIO (AGE_CODIGO);
CREATE TABLE GRAU_PARENTESCO (
GPA_CODIGO
SERIAL NOT NULL
,GPA_DESCRICAO
VARCHAR(40) NOT NULL
,CONSTRAINT PK_GRAU_PARENTESCO PRIMARY KEY (GPA_CODIGO)
)
;
CREATE TABLE MUNICIPIO (
MUN_CODIGO
SERIAL NOT NULL
,MUN_NOME
VARCHAR(40) NOT NULL
,CONSTRAINT PK_MUNICIPIO PRIMARY KEY (MUN_CODIGO)
)
;
CREATE TABLE PROFISSAO (
PRO_CODIGO
SERIAL NOT NULL
,PRO_DESCRICAO
VARCHAR(50) NOT NULL
,CONSTRAINT PK_PROFISSAO PRIMARY KEY (PRO_CODIGO)
)
;
CREATE TABLE TELEFONE (
CLI_NUM_CPF
VARCHAR(11) NOT NULL
,TEL_NUMERO
INTEGER NOT NULL
,CONSTRAINT PK_TELEFONE PRIMARY KEY (CLI_NUM_CPF, TEL_NUMERO)

13

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
)
;
CREATE INDEX IXFK_TELEFONE_1_CLI_NUM_CPF ON TELEFONE (CLI_NUM_CPF);
CREATE TABLE TRANSACAO (
TRN_NUMERO
SERIAL NOT NULL
,CLI_NUM_CPF
VARCHAR(11) NOT NULL
,CTA_NUMERO
INTEGER NOT NULL
,TRN_COD_TIPO
CHAR(1)
,TRN_DATA
TIMESTAMP
,TRN_VALOR
DECIMAL(12,2)
,CONSTRAINT PK_TRANSACAO PRIMARY KEY (TRN_NUMERO)
)
;
CREATE INDEX IXFK_TRANSACAO_1_CTA_NUMERO ON TRANSACAO (CTA_NUMERO);
CREATE INDEX IXFK_TRANSACAO_2_CLI_NUM_CPF ON TRANSACAO (CLI_NUM_CPF);
CREATE TABLE UNIDADE_FEDERATIVA (
UFD_SIGLA
VARCHAR(2) NOT NULL
,UFD_NOME
VARCHAR(40) NOT NULL
,CONSTRAINT PK_UNIDADE_FEDERATIVA PRIMARY KEY (UFD_SIGLA)
)
;
ALTER TABLE AGENCIA
ADD CONSTRAINT FK_AGENCIA_UNIDADE_FEDERATIVA FOREIGN KEY (UFD_SIGLA)
REFERENCES UNIDADE_FEDERATIVA (UFD_SIGLA)
;
ALTER TABLE AGENCIA
ADD CONSTRAINT FK_AGENCIA_MUNICIPIO FOREIGN KEY (MUN_CODIGO)
REFERENCES MUNICIPIO (MUN_CODIGO)
;
ALTER TABLE CLIENTE
ADD CONSTRAINT FK_CLIENTE_PROFISSAO FOREIGN KEY (PRO_CODIGO)
REFERENCES PROFISSAO (PRO_CODIGO)
;
ALTER TABLE CLIENTE
ADD CONSTRAINT FK_CLIENTE_UNIDADE_FEDERATIVA FOREIGN KEY (UFD_SIGLA)
REFERENCES UNIDADE_FEDERATIVA (UFD_SIGLA)
;
ALTER TABLE CLIENTE
ADD CONSTRAINT FK_CLIENTE_MUNICIPIO FOREIGN KEY (MUN_CODIGO)
REFERENCES MUNICIPIO (MUN_CODIGO)
;
ALTER TABLE CLIENTE_CONTA
ADD CONSTRAINT FK_CLIENTE_CONTA_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
ALTER TABLE CLIENTE_CONTA
ADD CONSTRAINT FK_CLIENTE_CONTA_CONTA FOREIGN KEY (CTA_NUMERO)
REFERENCES CONTA (CTA_NUMERO)
;
ALTER TABLE CONTA
ADD CONSTRAINT FK_CONTA_AGENCIA FOREIGN KEY (AGE_CODIGO)
REFERENCES AGENCIA (AGE_CODIGO)
;
ALTER TABLE DEPENDENTE
ADD CONSTRAINT FK_DEPENDENTE_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
ALTER TABLE DEPENDENTE
ADD CONSTRAINT FK_DEPENDENTE_GRAU_PARENTESCO FOREIGN KEY (GPA_CODIGO)
REFERENCES GRAU_PARENTESCO (GPA_CODIGO)
;
ALTER TABLE FUNCIONARIO
ADD CONSTRAINT FK_FUNCIONARIO_AGENCIA FOREIGN KEY (AGE_CODIGO)
REFERENCES AGENCIA (AGE_CODIGO)
;
ALTER TABLE TELEFONE
ADD CONSTRAINT FK_TELEFONE_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
ALTER TABLE TRANSACAO
ADD CONSTRAINT FK_TRANSACAO_CONTA FOREIGN KEY (CTA_NUMERO)
REFERENCES CONTA (CTA_NUMERO)

14

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
;
ALTER TABLE TRANSACAO
ADD CONSTRAINT FK_TRANSACAO_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;

15

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO


UNIVERSIDADE ABERTA DO BRASIL
Curso de Bacharelado em Sistemas de Informao
Curso de Licenciatura em Computao
Banco de Dados
Professores executores: Joo Murilo Dourado de Azevedo e Mnica Simes Bandeira

_________________________________________________________________
f)

Scripts das Consulta SQL (SQL/DML)

Aguardem em nova verso...

_________________ Fim do Exemplo de Projeto de BD ________________________

16

Potrebbero piacerti anche