Software
Here are links to software that is useful for the course.
1. Diagram Editors
These are tools for drawing diagrams. Any tool that can draw a basic ER diagram is sufficient, but note that all examples in the course are based on astah.
-
Astah Links to an external site. is a diagram editor, mainly made for UML, but it also has some support for ER diagrams. This is the diagram editor used in all lectures and examples. It can translate an ER diagram to SQL. All participants in the course are entitled to a license for astah professional, which can be found at the page Astah License. Don't use the free trial version!
-
Lucidchart is web-based, no installation is required and it's quite easy to learn. It's primarily a drawing program, but it can export and import SQL in order to create or model a database. There are licenses for TIDAB, TIEDB and TITEH students. There is also a free version, but it is limited to three editable documents.
- Both PostgreSQL and MySQL have tools for database administration. The PostgresSQL tool is pgAdmin Links to an external site. and the MySQL tool is MySQL Workbench Links to an external site.. One of their functionalities is a diagram editor for ER diagrams. They understand an ER diagram and can translate it to a database. They both have quite a lot of functionality, and are more complicated to learn than Lucidchart or astah. They're also very tightly connected to the respective DBMS, pgAdmin handles only PostGreSQL databases and MySQL Workbench handles only MySQL databases.
- draw.io Links to an external site. is a free, web-based drawing program that has quite good support for database modelling.
- ERAlchemy Links to an external site. is a popular python-based tool for ER diagrams (compatible with popular databases) for those that prefer to use code rather than drag-and-drop interfaces.
2. Database Management Systems
- PostgreSQL Links to an external site. and MySQL Links to an external site. are two very frequently used open-source database management systems, which are both much used in commercial applications of any scale. Both are well-suited for this course in terms of functionality. You're however strongly encouraged to use PostgreSQL since that's what all teachers are using, which means you can get help. If you chose MySQL you wont get much help with problem solving. Also, when looking for documentation on MySQL it might not be clear what's available in the free community version, and what's only available in paid versions.
- Here are two important sites with PostgreSQL documentation:
- The official PostgreSQL documentation Links to an external site.
- PostgreSQL Tutorial Links to an external site. is a web site with extensive PostgreSQL documentation. It's easier to follow and has more examples than the official documentation, but does not cover all details.
- You must also install a database management tool, which will be used used for example to create and modify databases, insert data and query data. PostgreSQL has two such tools, the built-in CLI tool psql and the GUI tool pgAdmin. Links to an external site.
- SQLite Links to an external site. is lightweight and made to provide a local data storage for individual applications and devices, and is very frequently used for that purpose. You are not allowed to use SQLite in the project, since it is not intended to provide a shared storage for enterprise data. It is, however, very useful for experimenting.
3. Programming
The programming project requires building applications that connect to a database using any language or SDK (e.g., Java, Python, Scala, C#, Javascript). Thus, it is strongly recommended that you use an IDE for programming assignments, e.g. IntelliJ, Visual Studio Code, NetBeans or Eclipse.