exemplo projeto bd assunto 2a aval bsi lc 110216153348 phpapp01

16
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO UNIVERSIDADE ABERTA DO BRASIL Curso de Bacharelado em Sistemas de Informação Curso de Licenciatura em Computação Banco de Dados Professores executores: João Murilo Dourado de Azevedo e Mônica Simões Bandeira _________________________________________________________________ 1 Exemplo de Projeto de Banco de Dados 1. Dado o Mini-mundo que representa um Banco BOM S.A , constituído de clientes , contas , agências, funcionários e transações , com as seguintes características: Agência , é o conjunto de todas as agências de um banco. Cada Agência é descrita pelos atributos agência-código, agência-nome, agência-estado-federação e agência- cidade. Cliente , é o conjunto de todas as pessoas que têm conta no Banco BOM S.A . Cada Cliente é descrito pelos atributos cliente-nome, cliente-cpf, cliente-endereço, cliente- números-telefones, cliente-profissão. Funcionário , o conjunto de todas as pessoas que trabalham no Banco BOM S.A. Cada Funcionário é descrito pelos atributos funcionário-matrícula, funcionário-cpf, funcionário-nome, funcionário-número-telefone, funcionário-dependentes. Conta, o conjunto de todas as contas mantidas no Banco BOM S.A. Cada Conta é descrita pelos atributos conta-número conta-saldo. Transação , o conjunto de todas as transações executadas no Banco BOM S.A. Cada Transação é descrita pelos atributos transação-número, transação- tipo(débito,crédito), transação-data e transação-quantia. Um cliente não pode ter mais de uma conta na mesma agência. Uma conta pode pertencer a mais de um cliente. O Banco BOM S.A. só possui cliente tipo pessoa-física. Um funcionário só pode trabalhar em uma agência. Uma transação só pode se feita por um cliente sobre uma conta. 2. Faça 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 migração do Modelo Entidade-Relacionamento para o Modelo Relacional; c) Efetuar, caso necessário, o processo de normalização até a 3. forma normal; d) Criar o Diagrama do modelo Lógico. Utilize o DBDesigner; e) Elaborar os Scripts de criação do Esquema do Banco de Dados (SQL/DDL). Utilize o gerar de SQL do DBDesigner; f) Gerar uma Instância de um Banco em Mysql, Postgres ou Firebird;

Upload: nadaverkopatus

Post on 06-Nov-2015

214 views

Category:

Documents


0 download

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 ________________________