CTO 101 — S01: Database — Chap01: Relational Database
This is the first post of the series of how to choose the tech stacks for new developments for CTOs. Our mission is to gather best resources that a CTO or technical founder needs to perform his tasks. This series targets start-ups or small teams that are struggling to choose their technology stack and basically looking for viable solutions which are well documented and have good community support. As the first post in this series, I go over database management systems and how to choose between them.
It wasn’t long ago that relational databases used to be the most trusted technology to be used as the heart of any application. But, now with far more complex data intensive systems and variety of different use-cases, new databases with more complex data structure are coming into existence. In the following, I mention more popular types of databases and most popular database system in each category.
Relational Database Management System
RDBMS uses table schema to manage the data. A table is composed of records(Rows) which they have variety of related attributes(columns). read more
Most popular: Oracle, MySQL, Microsoft SQL Server, PostgreSQL, DB2 Relational DBMS, Microsoft Access, SQLite, IBM Informix, SAP Sybase
Where to use:
- All kind of information systems or enterprise projects where data schema is defined such as financial records, personnel data, etc.
- When data is very important and you need the highest stability and all transactions to the data should take place perfectly, almost all of relational databases follow ACID principles so they are quite safe.
What is new: For all MySQL users I recommend to check MariaDB, It’s a fork of MySQL and it’s there since 2009, in many benchmarks it outperforms the MySQL, I personally shifted a server to MariaDB and there is almost no overhead configuration or extra work.
The second worth to mention RDBMS is Postgresql with its now not really new NoSQL features such as HStore and JSONB.
Hstore is a data type that can be easily added to any table and works as key value storage. That’s awesome that you can have a hash table as an attribute in any table it just makes the new possibility for the whole process of normalization. Anyway, what makes this special is the GiST(Generalized Search Tree) and GIN(Generalized Inverted Index) indexing methods.
JSONB as its name is saying is a JSON storage but in binary format and along GIN and GiST indexing provide a blazing fast CRUD for JSON which is almost the same as any other NoSQL database. So what do you think, a rock-solid relational database plus NoSQL features, probably next time you heard MongoDB you might as well wanna give PostgreSQL a try.(MongoDB vs PostgreSQL)
Please share this and check out the other Databases in this series:
- CTO 101 — S01: Database — Chap01: Relational Database
- CTO 101 — S01: Database — Chap02: Key-value stores
- CTO 101 — S01: Database — Chap03: Wide Column Stores
- CTO 101 — S01: Database — Chap04: Document Stores
- CTO 101 — S01: Database — Chap05: Graph DBMS
- CTO 101 — S01: Database — Chap06: RDF Store
- CTO 101 — S01: Database — Chap07: Time Series DBMS
- CTO 101 — S01: Database — Chap08: Object Oriented DBMS
- CTO 101 — S01: Database — Chap09: Search Engine