exemplo projeto bd assunto 2a aval bsi lc 110216153348 phpapp01
DESCRIPTION
Exemplo de um projeto de Banco de dados.TRANSCRIPT
-
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
_________________________________________________________________
1
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 agncia-cidade.
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, cliente-nmeros-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, transao-tipo(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
_________________________________________________________________
2
g) Elabore SQL/DML para efetuar as seguintes consultas:
i. Relao dos clientes por ordem alfabtica; ii. Relao dos dependentes do cliente 10; iii. Relao dos dependentes do cliente 10 com nome do cliente, nome do
dependente e descrio do grau de parentesco; iv. Relao das Contas e suas Transaes; v. Valor total das movimentaes (transaes) do ms passado; vi. 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
_________________________________________________________________
3
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) Dependente possui atributos prprios e deve ser tratado como Entidade Fraca 2) 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
_________________________________________________________________
4
-
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
_________________________________________________________________
5
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
_________________________________________________________________
6
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
_________________________________________________________________
7
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
_________________________________________________________________
8
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
_________________________________________________________________
9
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
_________________________________________________________________
10
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);
-
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
_________________________________________________________________
11
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)
;
-
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
_________________________________________________________________
12
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)
)
-
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
_________________________________________________________________
13
;
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)
-
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
_________________________________________________________________
14
)
;
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)
-
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
_________________________________________________________________
15
;
ALTER TABLE TRANSACAO
ADD CONSTRAINT FK_TRANSACAO_CLIENTE FOREIGN KEY (CLI_NUM_CPF)
REFERENCES CLIENTE (CLI_NUM_CPF)
;
-
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
_________________________________________________________________
16
f) Scripts das Consulta SQL (SQL/DML)
Aguardem em nova verso...
_________________ Fim do Exemplo de Projeto de BD ________________________