elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Aconsejame para hacer mi propio DBMS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Aconsejame para hacer mi propio DBMS  (Leído 2,828 veces)
vladimir98

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Aconsejame para hacer mi propio DBMS
« en: 20 Julio 2017, 07:13 am »

Saludos!Soy un estudiante de ingeniería y tengo como proyecto crear mi propio DBMS (con las sentencias SELECT, INSERT, UPDATE, DROP, DELETE y CREATE) con las limitaciones que:- NO sea relacional - SI sea mono-usuario - NO contenga transacciones- SIN interfaz gráfica (todo desde consola)El punto es que no sé como empezar realmente, con lo que he encontrado hasta el momento concluí a usar Antlr como interprete de mi lenguaje y programarlo en C o en C# aun realmente no sé cual sea mas conveniente (me voy por C, pero muchos me sugieren C# pero ni idea el porque).No tengo conocimientos bastos sobre archivos aun, si pudiesen compartirme algunos links donde den información clave para este tema (desde sus propios puntos de vista) se los agradecería como nunca.Y más, vengo aca a pedir consejo y guía de algún experto en el tema, no vengo a pedir el proyecto, si alguno me pudiese apoyar se lo agradecería.


« Última modificación: 22 Julio 2017, 02:13 am por engel lex » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Aconsejame para hacer mi propio DBMS
« Respuesta #1 en: 20 Julio 2017, 14:03 pm »

Sobre el tema del lenguaje, utiliza el que mejor conozcas. C# tiene una librería más amplia y es orientado a objetos.
C es un lenguaje estructurado.

Antes que C, yo recomendaría C++, que viene siendo casi lo mismo, pero orientado am objetos y con una mayor librería estándar.
Pero si no lo has usado nunca, mejor usar el lenguaje que conozcas; este proyecto, como cualquier otro, se puede hacer en prácticamente cualquier lenguaje.

Elegido el lenguaje, viene el proyecto.
Olvídate del SQL. Empieza haciendo un programa para leer, insertar, editar y eliminar registros de 1 sola "tabla". Una vez tengas controlado este tema, lo otro es prácticamente lo mismo, añadiendo el lenguaje SQL.

El tema más crítico en este punto, es el cómo almacenarás los registros en el o los archivos. Es lo más "complejo", pero en absoluto difícil.

No tengo ningún link sobre archivos per sé, lo único que puedo decir de ellos es que son bytes, que puedes escribir y leer :D!
Si tal, una vez decidas el lenguaje, pueda ayudar más con algún tema acerca de manejar archivos en ese determinado lenguaje.

En cualquier caso, ¿Trabajaste de algún modo con archivos hasta ahora?


En línea

vladimir98

Desconectado Desconectado

Mensajes: 3


Ver Perfil
01010010 01100101 00111010 00100000 01000001 01100011 01101111 01101110 01110011
« Respuesta #2 en: 21 Julio 2017, 04:50 am »

Hola amigo! gracias por responder!Déjame decirte que pienso hacer el programa en C, y prácticamente no se gran cosa sobre los archivos (mas que todo teoría) y con lo de la estructura de almacernalo pensaba en arboles B.Muchas gracias por tus consejos, Saludos!
« Última modificación: 22 Julio 2017, 02:14 am por engel lex » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Aconsejame para hacer mi propio DBMS
« Respuesta #3 en: 21 Julio 2017, 13:27 pm »

Está bien que quieras utilizar un árbol B, pero para empezar con archivos, tal vez sea un poco bruto xP
A la hora de guardar los registros en un archivo, lo básico es serializar (para posteriormente deserializar) las estructuras/clases/registros. Un árbol es un poco más complicado. No es difícil, pero no lo haría comp primer contacto con archivos :D!

Acerca de serializar, te dejo un link en el que hablé de ese tema. Está e C++, pero no hay nada muy complicado que no sea casi igual en C. http://code0x66.blogspot.com.es/2015/04/c-serializacion-de-clases.html

Una vez serializado el registro, basta escribirlo al archivo.
La estructura de los registros en el archivo, en vez de un árbol, te diría que empieces guardándolos simplemente como un array de registros. Es más fácil de leer y más fácil de escribir.

Y para empezar, prueba con algún objeto simple, por ejemplo Persona{int edad; char* nombre;}

En el archivo, podría tener esta estructura. Los enteros en binario, no como texto plano. Podrías ponerlos como texto, pero ocuparía más espacio y habría que pensar en otras limitaciones:
Código:
Archivo:

<registro1><registro2><...><registroN>

/////

Registro:

<4 bytes: edad><2 bytes: longitud nombre><N bytes: nombre>

Y sobre el tema de manejo de archvios en C per sé, casi mejor que busques por Google, que habrá mejores tutoriales. Al final, solo necesitas abrir el archivo (fopen), escribir en él (fwrite) y leer de él (fread).
En línea

vladimir98

Desconectado Desconectado

Mensajes: 3


Ver Perfil
01010010 01100101 00111010 00100000 01000001 01100011 01101111 01101110 01110011
« Respuesta #4 en: 22 Julio 2017, 01:44 am »

Amigo muchas gracias por toda la info! y concuerdo contigo que comenzar por el camino del arbol esta muy duro xP, practicaré esos ejercicios que me dices e iré viendo (como he estado por ahora)Nuevamente gracias =) saludos
« Última modificación: 22 Julio 2017, 02:14 am por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines