Skip to content

Why design and make your own database?

cat database

Why DIY with a database?

This is an excellent question! There are lots of ways to use databases without having to design and build your own. We mentioned products like SIL's FieldWorks Language Explorer, also known as Flex; the Max Planck Institute's Elan; the Indigenous Languages Digital Archive, or ILDA; and the Mirama software suite, as just a few examples.

Honestly, if you find that an existing database application works well for you, and you're happy with it, that's great. People get lots of work done and live full happy lives without ever having to design and build a database on their own!

But there are situations in which making your own might be better. We'll give a few examples, you might have more.

You can't find anything that works well for your language, or your project.

Database products designed for someone else's language(s) or for someone else's type(s) of projects can be hard to adapt. Products like Elan, Miramar, and Flex are definitely built to support lots of different kinds of languages, but that doesn't mean that you won't find something about your own language situation that just doesn't fit well.

You might be able to adapt your work in a way that muscles it into these products satisfactorily, but it might be frustrating.

You are concerned about versions, vendors, privacy and costs

The database products we've mentioned here have been available for a long time (in technology world, a 'long time' is maybe 10 years - and some of these have been available for even longer than that), but since some organization or company makes and maintains them, they could be phased out or modified in ways that break your workflow. We've also mentioned these particular products because, so far as we know, they would never take your data and use it to build their own AI's, or sell it to others or whatever. Most commercial vendors cannot be trusted to keep your information private and safe in the long run. The organizations who provide us with software can also change their terms of use at pretty much any time.

Now, if you design and build your own database, you are still going to be using someone else's software (for example, SQLite is maintained by the SQLite Consortium). The difference is that database software is not generally written to sell to directly customers. Instead, it's software that engineers use to build stuff to sell to customers (or whatever). This means that the software tends to be fully local (it runs only and exactly where you tell it to - no secret saving stuff to a cloud server or similar), it is generally public-domain as well as open-source. There's no one company that can just decide to take it off the market, or change it and take away access to older versions.

Note

Open source software is software that you, or I, or anyone can go grab the actual code from; save it off locally; and mess with it. The open source movement has been really important in making it possible for people like us to learn how to build and use our own databases!

Finally, database software is generally free. You don't have to pay for a subscription, or buy the software from a vendor. In the world of 'you get what you pay for', the down-side of free software is that you have to learn how to use it, and there won't be anyone to call to fix it for you when things 'break'.

Because knowledge is power

If you learn how to design your own database, you will learn how databases work - and this means you'll have new insights that will help you use commercial or other vended database products much more effectively. You'll have a better understanding of why things break in the ways that they do, and you'll be better at trouble-shooting problems.

You'll develop a deep understanding of what's going on under the covers of LOTS of software applications. You may not end up being more fun at parties but you will definitely earn nerd points galore.

How'd we do?

You can contact John, Gus, or Amy and we'll do the best we can to help!

At this point, you might go back to the index 🚀 or head over to the CoLang Workshop first steps 🚀