SlideShare uma empresa Scribd logo
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
     _________________________________________________________________



                         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;



                                                                                                1
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
_________________________________________________________________

 g)   Elabore SQL/DML para efetuar as seguintes consultas:

         i.   Relação dos clientes por ordem alfabética;
        ii.   Relação dos dependentes do cliente 10;
       iii.   Relação dos dependentes do cliente 10 com nome do cliente, nome do
              dependente e descrição do grau de parentesco;
       iv.    Relação das Contas e suas Transações;
        v.    Valor total das movimentações (transações) do mês passado;
       vi.    Relação dos clientes com saldos e movimentações no mês passado (nome
              do cliente, número da conta, saldo atual, valores debitados (tipo=’D’) e
              valores creditados (tipo=’C’)).

__________________Fim do Escopo do Projeto de BD _________________________




                                                                                        2
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
     _________________________________________________________________

                                        RESOLUÇÃO

                       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 serão melhores tratadas neste momento:

     1)   Dependente possui atributos próprios e deve ser tratado como Entidade Fraca
     2)   Telefones do Cliente é um atributo multivalorado




                                                                                              3
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
_________________________________________________________________




                                                                                       4
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
     _________________________________________________________________

b)   Derivando MR a partir do MER (Capítulo 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 Binários 1:1

O modelo tratado não possui relacionamentos binários 1:1

     Mapeando Relacionamentos Binários 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 Binários 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 não possui relacionamentos n-ários


                                                                                            5
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
    _________________________________________________________________

    Mapeando Especializações e Generalizações

O modelo tratado não possui especializações ou generalizações

    Mapeando Agregações Associativas

O modelo tratado não possui agregações 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




                                                                                            6
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
     _________________________________________________________________

c)   Normalização (Capítulo 9)

     1FN: Atributos Compostos e Multivalorados

alguns atributos multivalorados (telefones) e compostos (dependentes) foram tratados
na fase do modelo conceitual.

     O atributo endereço 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. dependência total da chave primária. Só aplicado à relações
com chaves compostas.

     3FN: Dependência Transitiva

     O Atributo profissão não 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 não 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 não depende de ter agência 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 não pode ser atributo em Cliente e Referência em
     Agência
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 município não depende de ter agência para existir

municipio(mun_codigo, mun_nome)


                                                                                            7
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
    _________________________________________________________________

agencia(age_codigo, age_nome, ufd_sigla(FK), mun_codigo(FK))
        ufd_sigla referencia unidade_federativa
        mun_codigo referencia município

    O Atributo município não pode ser atributo em Cliente e Referência em Agência
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 Nomalização

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 município

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




                                                                                            8
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
     _________________________________________________________________

d)   Modelo Lógico (MER)




                                                                                            9
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
     _________________________________________________________________

e)    Scripts de Criação 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 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
     _________________________________________________________________
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 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
     _________________________________________________________________
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 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
     _________________________________________________________________
;

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 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
     _________________________________________________________________
)
;

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 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
     _________________________________________________________________
;
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 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
     _________________________________________________________________

f)   Scripts das Consulta SQL (SQL/DML)

Aguardem em nova versão...

_________________ Fim do Exemplo de Projeto de BD ________________________




                                                                                            16

Mais conteúdo relacionado

Destaque

Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Daniel Rehn
 
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2dmc digital media center GmbH
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
dbi services
 
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & ShipmanDominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipmanjonesshipman
 
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Daniel Rehn
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
Bianca Caruso da Paixão
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Daniel Rehn
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
Atelier agile 2009_09_27
Atelier agile 2009_09_27Atelier agile 2009_09_27
Atelier agile 2009_09_27domidp
 
02.10.2011 SC B.A.T II
02.10.2011   SC B.A.T II02.10.2011   SC B.A.T II
02.10.2011 SC B.A.T II
HerdwangerSV
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.MongoDB
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
Elton Minetto
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Manuel Menezes de Sequeira
 
NotORM
NotORMNotORM
NotORM
Tiago Davi
 
Présentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@tPrésentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@t
Francois Ostyn
 
Digitale Mentalität II
Digitale Mentalität IIDigitale Mentalität II
Presentació assamblea
Presentació assamblea Presentació assamblea
Presentació assamblea
FC Barcelona
 
Lean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanbanLean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanban
Julien Fallet
 

Destaque (18)

Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 30.01.2013
 
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
 
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & ShipmanDominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
 
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
Campus M21 | Medienpraxis II: Online - Vorlesung III vom 11.02.2013
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
Atelier agile 2009_09_27
Atelier agile 2009_09_27Atelier agile 2009_09_27
Atelier agile 2009_09_27
 
02.10.2011 SC B.A.T II
02.10.2011   SC B.A.T II02.10.2011   SC B.A.T II
02.10.2011 SC B.A.T II
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
NotORM
NotORMNotORM
NotORM
 
Présentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@tPrésentation LMAX Disruptor So@t
Présentation LMAX Disruptor So@t
 
Digitale Mentalität II
Digitale Mentalität IIDigitale Mentalität II
Digitale Mentalität II
 
Presentació assamblea
Presentació assamblea Presentació assamblea
Presentació assamblea
 
Lean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanbanLean Kanban FR 2013 - Vin et kanban
Lean Kanban FR 2013 - Vin et kanban
 

Semelhante a Exemplo projeto-bd-assunto-2a-aval-bsi-lc

Orientação Profissional Trabalho de Conclusão
Orientação Profissional Trabalho de ConclusãoOrientação Profissional Trabalho de Conclusão
Orientação Profissional Trabalho de Conclusão
antonio sérgio nogueira
 
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.Douglas Scriptore
 
Modelo plano projeto de sw oo
Modelo plano projeto de sw ooModelo plano projeto de sw oo
Modelo plano projeto de sw oo
francy Mascarenhas
 
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Gabriel Cabral
 
Marketing
MarketingMarketing
BD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoBD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - Enunciado
Rodrigo Kiyoshi Saito
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados
info_cimol
 
Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...
Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...
Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...
Júnior Sued
 
Curriculum Vitae
Curriculum VitaeCurriculum Vitae
Curriculum Vitae
Renato Rangel Guimarães
 
Ativação de clientes em redes sociais - TCC
Ativação de clientes em redes sociais - TCCAtivação de clientes em redes sociais - TCC
Ativação de clientes em redes sociais - TCC
Andre Gugliotti
 
Curriculo
CurriculoCurriculo
Curriculo
Rodrigo Silva
 
Currículo Leandro de Souza Cunha 02/2020
Currículo Leandro de Souza Cunha 02/2020Currículo Leandro de Souza Cunha 02/2020
Currículo Leandro de Souza Cunha 02/2020
LeandrodeSouzaCunha
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informatica
LucianaFerreira163
 
BD I - Aula 07 A - Parte 1 - FN - Enunciado
BD I - Aula 07 A - Parte 1 - FN - EnunciadoBD I - Aula 07 A - Parte 1 - FN - Enunciado
BD I - Aula 07 A - Parte 1 - FN - Enunciado
Rodrigo Kiyoshi Saito
 
COCOMO E COCOMO II
COCOMO E COCOMO IICOCOMO E COCOMO II
COCOMO E COCOMO II
IsraelCunha
 
Trabalho de Conclusão de Disciplina
Trabalho de Conclusão de DisciplinaTrabalho de Conclusão de Disciplina
Trabalho de Conclusão de Disciplina
José Alberto
 
Conhecimentos bancarios-basa-180228141145
Conhecimentos bancarios-basa-180228141145Conhecimentos bancarios-basa-180228141145
Conhecimentos bancarios-basa-180228141145
marcondesmsv
 

Semelhante a Exemplo projeto-bd-assunto-2a-aval-bsi-lc (20)

Orientação Profissional Trabalho de Conclusão
Orientação Profissional Trabalho de ConclusãoOrientação Profissional Trabalho de Conclusão
Orientação Profissional Trabalho de Conclusão
 
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
MyHome - Sistema de Automação Residencial para Dispositivos Móveis.
 
Modelo plano projeto de sw oo
Modelo plano projeto de sw ooModelo plano projeto de sw oo
Modelo plano projeto de sw oo
 
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
 
Marketing
MarketingMarketing
Marketing
 
CV Ednaldo José Pinheiro - TI - Vendas
CV Ednaldo José Pinheiro - TI -  VendasCV Ednaldo José Pinheiro - TI -  Vendas
CV Ednaldo José Pinheiro - TI - Vendas
 
Campanha vestibular computacao
Campanha vestibular computacaoCampanha vestibular computacao
Campanha vestibular computacao
 
BD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - EnunciadoBD I - Aula 14 B - Exercicios - Enunciado
BD I - Aula 14 B - Exercicios - Enunciado
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados
 
Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...
Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...
Aplicação Web de Gerenciamento de Dados Escolar e Cálculo dos Beneficiários d...
 
Curriculum Vitae
Curriculum VitaeCurriculum Vitae
Curriculum Vitae
 
Ativação de clientes em redes sociais - TCC
Ativação de clientes em redes sociais - TCCAtivação de clientes em redes sociais - TCC
Ativação de clientes em redes sociais - TCC
 
Curriculo
CurriculoCurriculo
Curriculo
 
Currículo Leandro de Souza Cunha 02/2020
Currículo Leandro de Souza Cunha 02/2020Currículo Leandro de Souza Cunha 02/2020
Currículo Leandro de Souza Cunha 02/2020
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informatica
 
Redes
RedesRedes
Redes
 
BD I - Aula 07 A - Parte 1 - FN - Enunciado
BD I - Aula 07 A - Parte 1 - FN - EnunciadoBD I - Aula 07 A - Parte 1 - FN - Enunciado
BD I - Aula 07 A - Parte 1 - FN - Enunciado
 
COCOMO E COCOMO II
COCOMO E COCOMO IICOCOMO E COCOMO II
COCOMO E COCOMO II
 
Trabalho de Conclusão de Disciplina
Trabalho de Conclusão de DisciplinaTrabalho de Conclusão de Disciplina
Trabalho de Conclusão de Disciplina
 
Conhecimentos bancarios-basa-180228141145
Conhecimentos bancarios-basa-180228141145Conhecimentos bancarios-basa-180228141145
Conhecimentos bancarios-basa-180228141145
 

Mais de CLEAN LOURENÇO

Produtos multiídia rosinalva lopes
Produtos multiídia rosinalva lopesProdutos multiídia rosinalva lopes
Produtos multiídia rosinalva lopesCLEAN LOURENÇO
 
Produção midias poloananas_cleanlourenco
Produção midias poloananas_cleanlourencoProdução midias poloananas_cleanlourenco
Produção midias poloananas_cleanlourencoCLEAN LOURENÇO
 
IV DIA D DA MATEMÁTICA 2011
IV DIA D DA MATEMÁTICA  2011IV DIA D DA MATEMÁTICA  2011
IV DIA D DA MATEMÁTICA 2011CLEAN LOURENÇO
 
Evidências do projeto geometria e artes
Evidências do projeto geometria e artesEvidências do projeto geometria e artes
Evidências do projeto geometria e artesCLEAN LOURENÇO
 
Avaliação 6° ano - 2° b - 2011
Avaliação   6° ano - 2° b - 2011Avaliação   6° ano - 2° b - 2011
Avaliação 6° ano - 2° b - 2011CLEAN LOURENÇO
 
Matematica discreta fasciculo_3_v06
Matematica discreta fasciculo_3_v06Matematica discreta fasciculo_3_v06
Matematica discreta fasciculo_3_v06CLEAN LOURENÇO
 
Matematica discreta fasciculo_1_v7
Matematica discreta fasciculo_1_v7Matematica discreta fasciculo_1_v7
Matematica discreta fasciculo_1_v7CLEAN LOURENÇO
 
Texto Dengue - Tocantins
Texto   Dengue - TocantinsTexto   Dengue - Tocantins
Texto Dengue - TocantinsCLEAN LOURENÇO
 
Avaliação 8° ano 2° av
Avaliação 8° ano   2° avAvaliação 8° ano   2° av
Avaliação 8° ano 2° avCLEAN LOURENÇO
 
Atividade 1 números inteiros
Atividade 1   números inteirosAtividade 1   números inteiros
Atividade 1 números inteirosCLEAN LOURENÇO
 
Atividade de matemática tratamento da informação - dengue
Atividade de matemática    tratamento da informação - dengueAtividade de matemática    tratamento da informação - dengue
Atividade de matemática tratamento da informação - dengueCLEAN LOURENÇO
 
Programacao ii volume1_v_final
Programacao ii volume1_v_finalProgramacao ii volume1_v_final
Programacao ii volume1_v_finalCLEAN LOURENÇO
 
Atividade números inteiros operações
Atividade números inteiros    operaçõesAtividade números inteiros    operações
Atividade números inteiros operaçõesCLEAN LOURENÇO
 
Banco de dados_-_volume_4_v10
Banco de dados_-_volume_4_v10Banco de dados_-_volume_4_v10
Banco de dados_-_volume_4_v10CLEAN LOURENÇO
 
Livro banco de_dados_volume_03
Livro banco de_dados_volume_03Livro banco de_dados_volume_03
Livro banco de_dados_volume_03CLEAN LOURENÇO
 
Livro banco de_dados_volume_02
Livro banco de_dados_volume_02Livro banco de_dados_volume_02
Livro banco de_dados_volume_02CLEAN LOURENÇO
 
Projeto reforço escolar
Projeto reforço escolarProjeto reforço escolar
Projeto reforço escolarCLEAN LOURENÇO
 
Projeto de arte e matemática
Projeto de arte e matemáticaProjeto de arte e matemática
Projeto de arte e matemática
CLEAN LOURENÇO
 

Mais de CLEAN LOURENÇO (20)

Produtos multiídia rosinalva lopes
Produtos multiídia rosinalva lopesProdutos multiídia rosinalva lopes
Produtos multiídia rosinalva lopes
 
Produção midias poloananas_cleanlourenco
Produção midias poloananas_cleanlourencoProdução midias poloananas_cleanlourenco
Produção midias poloananas_cleanlourenco
 
V1nmerosnaturais 1.swf
V1nmerosnaturais 1.swfV1nmerosnaturais 1.swf
V1nmerosnaturais 1.swf
 
IV DIA D DA MATEMÁTICA 2011
IV DIA D DA MATEMÁTICA  2011IV DIA D DA MATEMÁTICA  2011
IV DIA D DA MATEMÁTICA 2011
 
Evidências do projeto geometria e artes
Evidências do projeto geometria e artesEvidências do projeto geometria e artes
Evidências do projeto geometria e artes
 
Avaliação 6° ano - 2° b - 2011
Avaliação   6° ano - 2° b - 2011Avaliação   6° ano - 2° b - 2011
Avaliação 6° ano - 2° b - 2011
 
Matematica discreta fasciculo_3_v06
Matematica discreta fasciculo_3_v06Matematica discreta fasciculo_3_v06
Matematica discreta fasciculo_3_v06
 
Matematica discreta fasciculo_1_v7
Matematica discreta fasciculo_1_v7Matematica discreta fasciculo_1_v7
Matematica discreta fasciculo_1_v7
 
Texto Dengue - Tocantins
Texto   Dengue - TocantinsTexto   Dengue - Tocantins
Texto Dengue - Tocantins
 
7º ano ângulos
7º ano    ângulos7º ano    ângulos
7º ano ângulos
 
Avaliação 8° ano 2° av
Avaliação 8° ano   2° avAvaliação 8° ano   2° av
Avaliação 8° ano 2° av
 
Atividade 1 números inteiros
Atividade 1   números inteirosAtividade 1   números inteiros
Atividade 1 números inteiros
 
Atividade de matemática tratamento da informação - dengue
Atividade de matemática    tratamento da informação - dengueAtividade de matemática    tratamento da informação - dengue
Atividade de matemática tratamento da informação - dengue
 
Programacao ii volume1_v_final
Programacao ii volume1_v_finalProgramacao ii volume1_v_final
Programacao ii volume1_v_final
 
Atividade números inteiros operações
Atividade números inteiros    operaçõesAtividade números inteiros    operações
Atividade números inteiros operações
 
Banco de dados_-_volume_4_v10
Banco de dados_-_volume_4_v10Banco de dados_-_volume_4_v10
Banco de dados_-_volume_4_v10
 
Livro banco de_dados_volume_03
Livro banco de_dados_volume_03Livro banco de_dados_volume_03
Livro banco de_dados_volume_03
 
Livro banco de_dados_volume_02
Livro banco de_dados_volume_02Livro banco de_dados_volume_02
Livro banco de_dados_volume_02
 
Projeto reforço escolar
Projeto reforço escolarProjeto reforço escolar
Projeto reforço escolar
 
Projeto de arte e matemática
Projeto de arte e matemáticaProjeto de arte e matemática
Projeto de arte e matemática
 

Exemplo projeto-bd-assunto-2a-aval-bsi-lc

  • 1. 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 _________________________________________________________________ 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; 1
  • 2. 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 _________________________________________________________________ g) Elabore SQL/DML para efetuar as seguintes consultas: i. Relação dos clientes por ordem alfabética; ii. Relação dos dependentes do cliente 10; iii. Relação dos dependentes do cliente 10 com nome do cliente, nome do dependente e descrição do grau de parentesco; iv. Relação das Contas e suas Transações; v. Valor total das movimentações (transações) do mês passado; vi. Relação dos clientes com saldos e movimentações no mês passado (nome do cliente, número da conta, saldo atual, valores debitados (tipo=’D’) e valores creditados (tipo=’C’)). __________________Fim do Escopo do Projeto de BD _________________________ 2
  • 3. 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 _________________________________________________________________ RESOLUÇÃO 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 serão melhores tratadas neste momento: 1) Dependente possui atributos próprios e deve ser tratado como Entidade Fraca 2) Telefones do Cliente é um atributo multivalorado 3
  • 4. 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 _________________________________________________________________ 4
  • 5. 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 _________________________________________________________________ b) Derivando MR a partir do MER (Capítulo 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 Binários 1:1 O modelo tratado não possui relacionamentos binários 1:1 Mapeando Relacionamentos Binários 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 Binários 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 não possui relacionamentos n-ários 5
  • 6. 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 _________________________________________________________________ Mapeando Especializações e Generalizações O modelo tratado não possui especializações ou generalizações Mapeando Agregações Associativas O modelo tratado não possui agregações 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 6
  • 7. 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 _________________________________________________________________ c) Normalização (Capítulo 9) 1FN: Atributos Compostos e Multivalorados alguns atributos multivalorados (telefones) e compostos (dependentes) foram tratados na fase do modelo conceitual. O atributo endereço 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. dependência total da chave primária. Só aplicado à relações com chaves compostas. 3FN: Dependência Transitiva O Atributo profissão não 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 não 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 não depende de ter agência 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 não pode ser atributo em Cliente e Referência em Agência 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 município não depende de ter agência para existir municipio(mun_codigo, mun_nome) 7
  • 8. 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 _________________________________________________________________ agencia(age_codigo, age_nome, ufd_sigla(FK), mun_codigo(FK)) ufd_sigla referencia unidade_federativa mun_codigo referencia município O Atributo município não pode ser atributo em Cliente e Referência em Agência 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 Nomalização 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 município 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 8
  • 9. 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 _________________________________________________________________ d) Modelo Lógico (MER) 9
  • 10. 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 _________________________________________________________________ e) Scripts de Criação 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
  • 11. 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 _________________________________________________________________ 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
  • 12. 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 _________________________________________________________________ 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
  • 13. 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 _________________________________________________________________ ; 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
  • 14. 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 _________________________________________________________________ ) ; 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
  • 15. 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 _________________________________________________________________ ; ALTER TABLE TRANSACAO ADD CONSTRAINT FK_TRANSACAO_CLIENTE FOREIGN KEY (CLI_NUM_CPF) REFERENCES CLIENTE (CLI_NUM_CPF) ; 15
  • 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 _________________________________________________________________ f) Scripts das Consulta SQL (SQL/DML) Aguardem em nova versão... _________________ Fim do Exemplo de Projeto de BD ________________________ 16