/c-relational-database

College Project: Relational database written in C (pt-br README)

Primary LanguageCMIT LicenseMIT

Projeto de ITP - Sistema gerenciador de Banco De Dados (SGBD)

Contribuidores:

João Marcos

Funcionalidade

O SGBD ITP permitirá ao usuário criar, manipular e deletar tabelas com todos os tipos de dados básicos nativos de C.

O programa tem foco em economizar RAM, pois as tabelas do banco de dados não são carregadas inteiramente na memória para uso, como acontece muito comumente em bancos de dados atuais, as operações são sempre realizadas diretamente nos arquivos.

O SGBD é um programa atualmente focado para usuários de linux, o seu uso no Windows pode não ser totalmente suportado, e precisar de alterações no código fonte, como o acesso dos diretórios, por exemplo.

Instalação

Para compilar o programa, você precisa ter o Gnu Compiler Collection (GCC) instalado, Em derivados de debian:

sudo apt install build-essential

Depois disso, você pode clonar este repositório localmente no seu computador

sudo apt install git

Agora vá até o diretório onde deseja colocar a pasta desse repositório, e o clone

cd diretorio # O diretório em que deseja intalar o sistema git clone git@github.com:marcospb19/projeto-itp.git cd projeto-itp # Para entrar na pasta criada

Para compilar, use o make.sh

./make.sh || cmake .

Para rodar, execute o executável SGBD

./sgbd || make

Pronto, você está usando o sgbd, escreva help ou leia o tópico Lista de Comandos da página para comandos do sistema.

Lista de Comandos:

"help" Mostra essa mensagem,
"exit or q" Sai do programa,
"credits" Mostra os creditos,
"license" Mostra a licença.

"list" Lista todas as tabelas,
"search" Procura por dados dentro de uma tabela, "printtable" List all data inside of a table. \

"create" Cria uma tabela,
"line" Cria uma linha dentro de uma tabela,
"column" Cria uma coluna em uma tabela,
"erase" Apaga uma linha de uma tabela,
"remove" Deleta uma tabela do sistema.

Valgrind

A ferramenta valgrind pode ser usada nesse projeto para verificar o vazamento de memória (memory leak), para isso, vocế só precisa ter o valgrind instalado e rodar o shell script que está dentro da pasta

O shell script usará o executável sgbd que precisa ser compilado pelo usuário, como foi mostrado na seção Instalação, então antes de checar por vazamento de memórias, instale corretamente o programa

Em derivados de debian

sudo apt install valgrind ./valgrind.sh

Então você pode testar o sistema, e quando encerrar, verificar o relatório de uso de memória gerado pelo valgrind, que estará em projeto-itp/log/valgrindLog.txt

Você deve encontrar no log alguns vazamentos que ainda não foram consertados

:D

Progresso:

  • 1) Criar um tabela
  • 2) Listar todas as tabelas
  • 3) Criar uma nova linha na tabela
  • 4) Editar os valores de uma tabela
  • 5) Criar uma nova coluna na tabela
  • 6) Listar todos os dados de uma tabela
  • 7) Pesquisar valor em uma coluna
  • 8) Apagar valor de uma tabela
  • 9) Apagar uma tabela
  • Modularização e documentação do pasta include
  • Uso de sistema de build automático Makefile
  • Função para demonstração gráfica reponsiva da estrutura das tabelas
  • Chave secundária relacional