Commit 03a62689 authored by André Machado's avatar André Machado

Atualização do README.md

parent 14d4d850
# Primeiro Trabalho de Sistemas de Bando de Dados
#Primeiro trabalho de CI218 - Sistemas de Bancos de Dados - 2015/01
#bcnf - Decomposição em Boyce-Codd Normal Form
O Objetivo deste trabalho é implementar um algoritmo da
decomposição de Boyce-Codd.
Autor
-----
André Luis da Silva Machado - GRR20141403
contato: andre.machado@ufpr.br
Orientador: Dr. Eduardo Cunha de Almeida
contato: eduardo@inf.ufpr.com
Licença
-------
Este software foi desenvolvido para fins acadêmicos e é de uso exclusivo do
orientador. O uso do software, reprodução ou leitura do código fonte deve
ocorrer apenas com o consentimento do prof. dr. Eduardo Cunha de Almeida. O
descumprimento poderá ser considerado plágio.
Instalação
----------
Abra a pasta contendo os arquivos Makefile, trabalho1.c, listas.c e listas.h
no terminal e digite "make". Digitar "make limpa" irá desinstalar o programa.
Descrição
---------
Programa que que decompõe uma relação em BCNF.
Após iniciar o programa, insira uma lista de dependencias funcionais no
formato X->Y, onde X e Y são listas de atributos separados por vírgula.
O fim da entrada é demarcado pelo fim do arquivo de entrada. para entrada
via teclado, digite ctrl+D para emitir o sinal de final de arquivo.
Mais informações:
http://web.inf.ufpr.br/ealmeida/teaching/ci218/ci218-trabalho-pratico-1
Especificações
--------------
O programa utiliza uma função recursiva para decompor a relação em BCNF. No
passo da recursão, uma DF X->Y é selecionada, e a relação é decomposta em
duas relações R1(X, Y) e R2(X, resto), onde 'resto' é o conjunto de
atributos não afetados pela DF. Após isto, R1 satisfaz a BCNF. Chama-se a
função para decompor R2. A base da recursão é atingida quando não existirem
mais dependências funcionais.
Para armazenar a lista de dependências funcionais é utilizada uma lista
dinâmica. Cada nodo desta lista, possui apontadores para outras duas listas
dinâmicas, X e Y, que armazenam as listas de atributos X e Y, da DF na forma
X->Y. As relações também são armazenadas em listas dinâmicas. Cada nodo
contém um atributo.
Estas estruturas são detalhadas no arquivo listas.h. As funções utilizadas
para gerenciar estas estruturas estão no arquivo listas.c. O arquivo
trabalho1.c contém o programa principal e suas funções. Nele são encontrados
comentários que explicam melhor seu funcionamento.
Softwares de Apoio
------------------
-GNU Emacs: https://www.gnu.org/software/emacs/
-GitLab: https://gitlab.c3sl.ufpr.br/
Projeto no GitLab: https://gitlab.c3sl.ufpr.br/alsm14/Boyce-Codd/
Obs.: Por ser um trabalho acadêmico, está marcado como privado no GitLab.
Entretanto coloquei permissão de visualização do projeto para o
professor Eduardo Almeida. Assim será possivel entender todo o
desenvolvimento do projeto.
Universidade Federal do Paraná Abril 2015
#include<stdlib.h>
#include<stdio.h>
#define TAM_ATT 20
#define TAM_ATT 60
typedef char atributo[TAM_ATT];
typedef struct noAtt *apAtt;
......
......@@ -111,7 +111,7 @@ int main(){
//insere na lista X
insere_no_lAtt(no_DF->X, atributo);
}while(terminador == ',');
//le seta
//le o '>' da seta
getchar();
do{
atributo = cria_no_Att();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment