2020-05-17 15:35:06 +00:00
# <img src="doc/logo-display-only.svg" width="50%" style="display: block; margin: 0 auto;" alt="Rakenne" />
2020-05-17 15:08:31 +00:00
2020-05-17 15:38:25 +00:00
Rakenne is a database modeling tool for command line written in Crystal.
For now, It is a toy project to improve author's skills with the language and its various libraries. **It is not supposed to work (yet). Please don't use it in production.** :warning:
2020-05-17 15:08:31 +00:00
2020-05-17 15:37:06 +00:00
Note: _rakenne_ means _structure_ in Finnish.
2020-05-17 15:08:31 +00:00
2020-05-17 15:35:06 +00:00
## Roadmap
2020-05-17 15:08:31 +00:00
2020-05-17 15:35:06 +00:00
* provide a DSL for modeling database
* describe entity-relationship diagrams (ERD) using MERISE notation
* describe physical diagrams (PD)
* provide a command-line tool for all operations
* render models into diagrams
2020-05-17 15:08:31 +00:00
* ERD to MERISE MCD diagrams
* ERD to Chen notation diagrams
* PD to MERISE MLD diagrams
2020-05-17 15:35:06 +00:00
* validate model
* convert across different database reprentations
2020-05-17 15:08:31 +00:00
* to convert ERD to PD
* to convert PD to database specific SQL
* to reverse-engineer database-specific SQL to PD
* to reverse-engineer PD to ERD
2020-05-17 15:35:06 +00:00
* support multiple physical models
2020-05-17 15:08:31 +00:00
* sql
* nosql
2020-05-17 15:35:06 +00:00
* support multiple SQL and NoSQL languages
2020-05-17 15:08:31 +00:00
* SQL: postgresql
* SQL: mariadb
* NoSQL: redis
* NoSQL: mongodb
* NoSQL: cassandra CQL
## References
* https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model
* https://www.lucidchart.com/pages/er-diagrams
* https://www.youtube.com/watch?v=LR0Ip5Jenbk