Fabricio Breve - Página Pessoal
Português Português   English English
www.fabriciobreve.com
         
Informações Gerais
Publicações
Currículo Lattes
Trabalhos Acadêmicos
Links
Links
Análise de Sinais e Sistemas (UFSCar)
Teoria da Computação (EEP)
PHP (SENAC)
Banco de Dados I (FSL)
Redes de Computadores (FSL)
Laboratório de Programação (FSL)
Laboratório de Redes de Computadores e Sistemas Operacionais (FSL)
Sistemas Orientados a Objetos (UNESP)
Análise de Sistemas (UNESP)
Tópicos: Computação Avançada (UNESP)
Organização de Computadores (UNESP)
Redes de Computadores (UNESP)
Sistemas Operacionais II (UNESP)
 

SISTEMA GERENCIADOR DE BANCO DE DADOS

B3CA 2000

DOCUMENTAÇÃO

Adriano Gheller Bruschi RA: 981638-0

Anderson Belgamo RA: 981603-4

Elbio Arrivabene RA: 981654-7

Erik Ribeiro da Cruz RA: 981624-0

Fabricio Aparecido Breve RA: 981648-9

DESCRIÇÃO DO PROBLEMA

Introdução

Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses dados. O conjunto de dados, comumente chamado banco de dados, contém informações sobre uma empresa em particular. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente quanto eficiente para recuperação e armazenamento das informações do banco de dado.

Sistemas de banco de dados são projetados para gerir grandes volumes de informações. O gerenciamento de informações implica a definição das estruturas de armazenamento das informações e a definição dos mecanismos para a manipulação dessas informações. Ainda, um sistema de banco de dados deve garantir a segurança das informações armazenadas contra eventuais problemas com o sistema, além de impedir tentativas de acesso não autorizadas. Se os dados são compartilhados por diversos usuários, o sistema deve evitar a ocorrência de resultados anômalos.

A importância da informação na maioria das organizações tem determinado o desenvolvimento de um grande conjunto de conceitos e técnicas para administração eficaz destes dados.

O objetivo principal de um Sistema de Banco de Dados é proporcionar aos usuários uma visão abstrata dos dados. Isto é, o sistema esconde determinados detalhes de como os dados são mantidos e como estão armazenados.

Os processamentos de consultas são as atividades envolvidas em extrair dados de um banco de dados. Essas atividades incluem a tradução de consultas expressas em linguagens de alto nível do banco de dados em expressões que podem ser implementadas no nível físico do sistema de arquivos, otimizações, traduções e na avaliação das consultas.

O custo do processamento de uma consulta é determinado pelo acesso a disco, que é lento se comparado ao acesso à memória.

O conjunto de operações usadas para manipular relações no processamento de consultas a um banco de dados é a álgebra relacional. Essas operações são usadas para selecionar tuplas de uma relação individual ou para combinar tuplas de várias relações. Como um grupo de operações algébricas temos as operações para bancos de dados relacionais, que são seleção, projeção e junção.

A seleção é uma operação unária que seleciona as tuplas da relação que satisfazem o predicado. Mais de uma condição pode ser incluída em um predicado desde que ligados pelos operadores lógicos E ou OU.

A projeção é uma operação unária que seleciona as colunas da relação especificadas na lista de atributos da operação.

A junção combina uma tupla de cada relação se esta combinação satisfizer a condição (que envolve sempre atributos das duas relações).

Justificativa

O desenvolvimento deste projeto tem por finalidade aplicar os conceitos de Engenharia de Software, Bando de Dados e Linguagem de Programação Orientada a Objetos à construção de um Sistema Gerenciador de Banco de Dados com ênfase no Processamento de Consultas.

Objetivos

Implementar um Sistema Gerenciador de Banco de Dados (SGBD), com ênfase no processamento de consultas, e esse processador de consultas com alguns requisitos mínimos especificados.

Implementar também as operações de um SGBD Relacional: seleção, projeção e consulta.

Aplicar as ferramentas de modelagem da UML (Unified Modeling Language) estudadas durante o semestre, para a especificação, visualização, construção e documentação de artefatos de sistemas de software.

MODELAGEM ESTÁTICA

Diagrama de Caso de Uso

Diagrama de Classes

MODELAGEM DINÂMICA

Diagrama de Estados – Processador de Consultas

Diagrama de Estados – Sub-Estado: Lendo Consulta

Diagrama de Estados – Sub-Estado: Verificando Consulta

7Diagrama de Atividades

Diagrama de Atividades com Swimlanes

Diagrama de Seqüência – Cenário: Consulta com sucesso

Diagrama de Seqüência – Cenário: Tabela não existente

Diagrama de Seqüência – Cenário: Campo com erro

Diagrama de Seqüência – Cenário: Campo com erro

Diagrama de Colaboração

Diagrama de Componentes

Diagrama de Distribuição

DICIONÁRIOS DE DADOS

Dicionário de Dados para o SGBD

Classe

Atributos

Tipo

Tamanho

Descrição

Usuário

Nome

caracter

50

Armazena o nome do usuário

Data

caracter

9

Armazena a data que o usuário usou o sistema

Horário

inteiro

6

Armazena o horário que o usuário usou o sistema

Banco_de_Dados

Nome

caracter

30

Armazena o nome do banco de dados

Arquivo

nome

caracter

30

Armazena o nome do arquivo de dados

Registro

posicao

inteiro

2 bytes

Posição que o registro se encontra no arquivo

n_registros

inteiro

2 bytes

Número de registros que contém o arquivo

Campo

nome

caracter

30

Armazena o nome do campo

tipo

caracter

30

Armazena o tipo do campo

chave

inteiro

2 bytes

Armazena se o campo é chave ou não

n_campos

inteiro

2 bytes

Armazena o número de campos que contém o registro

Formulario

tabela

caracter

30

Armazena o nome da tabela

campo

caracter

30

Armazena o nome do campo

criterio

caracter

10

Armazena o critério da consulta

mostra

inteiro

2 bytes

Armazena 1 se mostra campo e 0 se não

Processador_Consulta

nome_consulta

caracter

30

Armazena o nome da consulta

nome_tabela

caracter

30

Armazena o nome da tabela escolhida

registro

caracter

30

Registro referente à consulta

campo

caracter

30

Armazena campo escolhido

criterio

caracter

30

Armazena o critério escolhido

condicao

caracter

30

Armazena a condição escolhida

Tabela

nome

caracter

30

Armazena o nome da tabela

n_campos

inteiro

2 bytes

Armazena a quantidade de campos da tabela

n_registros

inteiro

2 bytes

Armazena o número de registros da tabela

chave_primaria

inteiro

2 bytes

Armazena 1 se for campo chave e 0 se não

Indice

Meta-Dados

tamanho

inteiro

2 bytes

Tamanho do meta-dados

nome

caracter

30

Armazena o nome do meta-dados

n_campos

inteiro

2 bytes

Armazena o número de campos do meta-dados

tipo

caracter

30

Armazena o tipo do meta-dados

Resultado

campos

Campos resultados da consulta

botao_fechar

inteiro

2 bytes

Fecha o formulário de resultado

Armazenamento

resultado_consulta

inteiro

2 bytes

Armazena o resultado da consulta

tamanho

inteiro

2 bytes

Armazena tamanho do resultado da consulta

Dicionário de Dados para o Processador de Consulta

Nome

Tipo

Tamanho

Domínio

Significado

s_faculdade.cod_fac

caracter

6

Ex: “FCTI”, “FC”

Código da Faculdade referente à estrutura s_faculdade

s_faculdade.desc

caracter

50

Ex: “Faculdade da Ciência e Tecnologia da Informação”

Descrição da Faculdade referente à estrutura s_faculdade

s_faculdade.diretor

caracter

30

Ex: “Rafael Ferreira Alves”

Nome do diretor da Faculdade referente à estrutura s_faculdade

s_faculdade.campus

caracter

4

Ex: “TAQ”, “SBO”

Código do campus referente à estrutura s_faculdade

s_curso.sigla_curso

caracter

6

Ex: “CCOMP”

Código do curso referente à estrutura s_curso

s_curso.desc

caracter

50

Ex: “Ciência da Computação”

Descrição do curso referente à estrutura s_curso

s_curso.coord

caracter

50

Ex: “Luiz Eduardo Galvão Martins”

Nome do coordenador do curso referente à estrutura s_curso

s_curso.cod_fac

caracter

5

Ex: “FCTI”

Código da Faculdade referente à estrutura s_curso

s_aluno.ra

caracter

10

Ex: “9818091”

RA do aluno referente à estrutura s_aluno

s_aluno.nome

caracter

50

Ex: “Rafael Alberto Silva”

Nome do aluno referente à estrutura s_aluno

s_aluno.cidade

caracter

30

Ex: “Campinas”

Cidade do aluno referente à estrutura s_aluno

s_aluno.sigla_curso

caracter

6

Ex: “ARQ”

Sigla do curso referente à estrutura s_aluno

dado

AnsiString

(qualquer um dos acima)

Armazena qualquer campo de qualquer registro de qualquer tabela

c_tabela

inteiro

2 bytes

0..100

Conta o número de registros de cada tabela

selecao

inteiro

1 byte

0 e 1

índice que armazena 1 se o dado correspondente faz parte da seleção e 0 se ele não faz parte

tabelasusadas

inteiro

1 byte

0 e 1

Armazena 1 quando a tabela correspondente foi selecionada

mostrarcampo

inteiro

1 byte

0 e 1

Armazena 1 quando o campo correspondente foi selecionado

tabelatual

Inteiro

1 byte

0..2

Armazena o número da tabela que está sendo trabalhada no momento

campoatual

inteiro

1 byte

0..3

Armazena o número do campo da tabela que está sendo trabalhada no momento

op

Inteiro

1 byte

0..6

Armazena o operador que foi inserido na consulta

conect

Inteiro

1 byte

0..2

Armazena o conectivo que foi inserido na consulta

qtcampos

Inteiro

1 byte

0..10

Quantidade de campos que terá a tabela de projeção

nomecampos

AnsiString

Ex: “RA”

Armazena o nome dos campos

tamcampo

inteiro

1 byte

0..250

Armazena o tamanho que cada coluna terá na projeção

nometabela

AnsiString

Ex: “Alunos”

Armazena o nome das tabelas

tipoop

AnsiString

Ex: “==”

Armazena os tipos de operadores possíveis

tipoconect

AnsiString

"E", "OU", ""

Armazena os tipos de conectivos possíveis

nSortCol

inteiro

2 bytes

0..10

Retorna o campo que foi clicado na tabela de projeção

PROJETO DE INTERFACE

Telas de Interação para o processamento de consultas

Esta é a tela principal do Processamento de Consultas, na caixa Tabela o usuário seleciona uma das tabelas, com isso aparecerá na caixa Campos, os nomes de cada um dos campos da tabela selecionada.

O usuário seleciona um dos campos, e através da caixa mostrar pode selecionar se este campo será mostrado ou apenas utilizado para fazer uma seleção.

As caixas Critério 1 e Critério 2 podem ser usadas para estabelecer um critério de seleção para o campo que está sendo adicionado.

Ao terminar de criar os critérios para um campo, o usuário deve clicar em Adicionar, os dados aparecerão então na grade da parte inferior.

Podem ser adicionados quantos campos o usuário desejar, a junção será feita automaticamente, quando campos de mais de uma tabela forem selecionados.

Para excluir um campo já adicionado à grade, o usuário deve selecioná-lo e clicar o botão Remover.

Quando todos os campos já tiverem sido adicionados, o usuário deve clicar no botão Pesquisar.

Esta é a tela que mostrará o resultado da consulta pedida pelo usuário. Clicando no cabeçalho de cada um dos campos, o programa reordenará a tabela baseando-se no campo clicado.

CONCLUSÃO

A partir da análise do grupo, verificamos que é necessário fazer a modelagem antes de partir para a programação. Essa modelagem que foi feita no System Architect, nos permitiu uma visão de como o SGBD deveria ser construído. Foram feitos todos os diagrama (estáticos, dinâmicos e de implementação), sendo eles o de caso-de-uso, classes, estados, atividades, seqüência, colaboração, componentes e distribuição.

No diagrama de estados foram necessários sub-estados para facilitar a visualização e o entendimento de quais os estados que um objeto pode assumir e como eventos afetam estes estados e no diagrama de seqüência foram feitos vários cenários (instâncias) que ajudaram a visualizar como os objetos estavam interagindo uns com os outros.

O diagrama de maior dificuldade foi o de colaboração devido a passagem da sintaxe própria para o rótulo de mensagem no System Architect.

A maior dificuldade encontrada durante a programação foi o uso da orientação a objetos, pois já estávamos muito acostumados com o modelo estruturado.

Outra dificuldade que encontramos foi a criação da interface, pois pegamos como base a interface do Microsoft Access, mas por ser uma interface extremamente complexa não conseguimos desenvolver uma igual, e então tivemos de criar a nossa própria interface, mais simples, mas com a mesma funcionalidade.

 
eXTReMe Tracker

Webdesigner: Fabricio Breve 1997 - 2011
[email protected] - Privacidade