Many people draw boxes connected by lines and think they do data modeling. But we data modelers know our work goes far beyond that. Here are the desired skills in data modeling and important considerations for staying relevant as a data modeler. Data modelers are essential in many situations. We are called to be part of a software development team in the early stages of a project for building the foundations of a software solution.
Feeling overwhelmed by the amount of time it will take you to learn to be a database designer? Read about the essential skills and talents you’ll need – it’s not so terrible! When you walk down the aisles of the supermarket, shopping cart in one hand and grocery list in the other, what are you thinking? If you're like me, you're imagining how to improve the organization of the shelves so that your weekly shopping is less time-consuming.
Short answer: database modelers create the large and intangible structures that hold the information of an entire organization. Anyone unfamiliar with the work that database modelers do might think that they make a living by drawing pictures of boxes linked by arrows. Not quite. There’s a lot more to a database modeler’s job than creating beautiful schematic designs. They are also in charge of implementing those models, transforming them into operational databases, and maintaining the documentation so that developers and others can interpret, understand, and use the data architecture.
In Part 1 of this series, we successfully imported the SuiteCRM database structure into our online database modeling tool. That’s when we saw that the model contains 201 tables without relationships between them. We got a wild bunch of tables that looked really messy. In this article, I will show you how you can organize such a large model. Just after importing to Vertabelo, the SuiteCRM database model looks as follows:
Vertabelo offers you a feature to assign tags to particular versions of your model. It may be used, for example, to match the versions of your database model with the versions of your application. To assign a tag to the current version of the model, click Set tag in the options menu: Enter a tag name and click Set tag. Now, this version is tagged.
Sometimes, you want the reference between two tables to reference an alternate key and not the primary key. Here's how you can do it in Vertabelo. In this example, we want to model cars and their owners using owner and car tables. The car table has an alternate key consisting of the vin column: We want the owner table to refer to the car table, but using the car table’s alternate key.
Vertabelo has a built-in mechanism of live validation that checks your model all the time and gives you hints on how to improve it. Every error, warning or tip is flagged by a dedicated icon that you cannot fail to notice. Within your workspace, the problems are indicated in two places. In the left panel you can review all problems found in your model, while on the right side you’ve got information on problems detected in the currently selected object only.
Do you know the quickest way to find a single table even in the largest diagram you can imagine? The answer is to double click the table’s name in the navigation tree! In the Model structure panel on the left, you’ve got a navigation tree with groups of all elements used in your diagram, including database objects such as tables, references and views, as well as other subsidiary elements like subject areas and text notes.
Sometimes you may want to export your database model to a PDF file, especially for documentation purposes. It often happens that your diagram is larger than the default page size set in Vertabelo. If that's the case, you should configure the printout options in the Format section. Make sure that no element in your diagram is selected. Go to the Model properties panel on the right and expand the Format section which provides some basic formatting parameters.
If you need to automatically download SQL script from Vertabelo, for example, for the purposes of your build system, you definitely should check out our Vertabelo API. It allows you to download an SQL or XML of your model by a simple HTTP request. In the command line, it may look like this: VERTABELO_API_TOKEN=put-your-api-token-here MODEL_ID=put-your-model-identifier-here curl -u $VERTABELO_API_TOKEN: \ https://my.vertabelo.com/api/sql/$MODEL_ID create-database.sql To learn more about Vertabelo API, go here.
In our previous Tip #16 and Tip #17 you could have learned that using table shortcuts makes it easier to create a well-laid-out database model. Do you know that references between shortcuts may be shown in the diagram too? Let’s go back to our example from Tip #16. Assume that we have already created all necessary subject areas. Now, we want to put shortcuts of all purchase-related elements in the Purchase subject area.
In our previous Tip #16, we showed you how to create shortcut tables using copy and paste. But did you know that you can create a shortcut of a table with only one move of your mouse? Just find the table in the navigation tree and then drag and drop it in the desired place in your diagram. Let’s assume that you want to create a reference line between two tables that are located quite far away from each other in your database diagram:
Yes, you can! Shortcuts combined with subject areas might completely change your approach to database modeling. They allow you to make your diagram much more structured, logically divided and readable. Let’s look at an example. At the beginning, we have a really standard database model for a shop. Open your database model in Vertabelo: Now, we’re going to use subject areas in the model. To start, let’s put the whole model in a subject area:
Large models often happen to be quite messy. Using subject areas, you can improve the readability of your model and make it easier to work with. The idea behind subject areas is to group tables inside them according to their purposes – it allows you to create some logical structure in your model and makes navigation through it more natural. Open your database model in Vertabelo: To create a subject area, choose Add new area from the toolbox or press 7 on your keyboard:
When it comes to sharing things like documents or photos with other people, sending files to each other is becoming less and less common – we usually prefer to send links. They are quick, convenient and neither use up disk space nor make a mess in our file system. At Vertabelo, we know how inconvenient it can be to send files and that’s why we created public links for models.
Probably you have already generated a PNG image for your model, but did you know that the image may be generated for chosen elements only? Open your database model in Vertabelo: Select the desired objects with Ctrl + Click or using Select area from the toolbox: Click Export model as PNG image in the top toolbar: And this is your PNG image:
From our previous Tip #2 you could learn how to move between columns in your table using just arrow keys. Now, we will show you how to use the Down arrow to create one or even more new columns. Probably, this is the fastest way of creating new columns in this part of the galaxy. You really have to learn this. Open your database model and select the table in which you want to create a new column.
Sometimes you may want to use a data type that is so new that Vertabelo doesn’t recognize it. In such cases, the application displays a warning that the data type is not supported. If you find these warnings too distracting, you can turn them off. In this post, we will show you how to do it. Let’s take a look at the following example. Assume that you have a database model for MySQL 5.
This one is frequently asked on our support: “In the data types panel, I can’t find the data type I need. Does this mean I cannot use it in Vertabelo?” Of course, you can. Vertabelo will never let you get stuck in a data type dead end. Even if the type you need is not listed, it doesn’t mean you cannot use it. Data types you can find under the button are just the most popular ones.
Relationships in the real world may not be as easy as we would like them to be. Sometimes we want to model a situation where one table is refering to the other more than once. Luckily, with Vertabelo, this is a piece of cake. Let’s say we want to model a rental agreement between two people: landlord and tenant. In this situation, the rental_agreement table would need to refer to the person table twice – first for the landlord and second for the tenant.
Sometimes the naming convention you use requires a specific pattern for the primary keys’ names. That’s why you may want to set your own names for each primary key in your database model instead of using default ones. Go on reading to get to know how to do this in Vertabelo. To give your own name to a primary key, select the table that contains the primary key you want to name:
You can comment on your database objects (tables, columns, views) in Vertabelo. You can also include this metadata in your database, where it can be accessed by your SQL developers or DBAs. Here’s how you can do it. Go to your database model: Click SQL generation settings in the Model properties panel on the right: Check the Include comments for database objects option: Let’s try out how it works.
Primary keys may contain more than one column. Multicolumn primary keys are frequently used for junction tables, which are used to model many-to-many relationships. Select a table: In the Table properties panel on the right, check all the columns that you want inside the key: Now, you have a multicolumn primary key created: You can check out your SQL code by clicking the SQL preview button in the top right corner:
Sometimes, you want all identifiers in your SQL script to be quoted. For example, you want them to have a particular case. Luckily, Vertabelo allows you to quote all SQL identifiers in your generated script to prevent you from any SQL name conflicts. Go to your model: Click the SQL generation settings tab in the Model properties panel on the right: Check Quote all SQL identifiers:
Sometimes there are columns in a table that don’t belong to primary key, but are still unique. To mark them as a unique, you have to create an alternate (unique) key containing it. Single-column alternate (unique) key Select the table with the column you want to make a unique. Then, click the Alternate (unique) key tab in the Table properties panel on the right: Click Add key:
Did you know that you can copy tables between models in Vertabelo? It’s useful for instance with tables that appear in almost every database model like user_account, address, client or product, or with tables that are specific for your domain. You don’t have to create all these tables from scratch. Open the model which contains the tables you want to copy and click to select them. Note that you can hold down the Ctrl key if you want to select objects located in different parts of your model:
Would you like to make your database modeling faster and more convenient? Of course you would! One way to achieve this is to learn your database modeling tool’s keyboard shortcuts. To check them when working in Vertabelo, press Ctrl + I. Our favourite Vertabelo shortcuts Down arrow in the Columns section Did you know that you can move between columns in your table using arrow keys?
From today until Christmas Eve, we’re going to publish some tips & tricks for Vertabelo. Check our blog every day for a new one! List of all available tips: How to move a column up or down Use keyboard shortcuts in Vertabelo! How to copy tables between models How to make a column unique How to quote table names in generated SQL script How to create a multicolumn primary key How to include comments in SQL script How to name a primary key How to create multiple references between two tables How to use a data type that isn’t listed in the data types panel Vertabelo reports that my data type is not supported.
Have you ever changed your mind about the order of columns in your table? You probably have! Fortunately, changing the order of columns in Vertabelo is as easy as pie. Select the table that contains the column you want to move up or down. In Table properties on the right, you can see a list of the columns. On the left of each column’s name, there is a column selector:
Even though Vertabelo doesn’t provide a direct conversion of a data model from one database engine to another, this can be easily done in a few simple steps. The user’s question We’ve been developing a web application for a while. Initially, we wanted to use MySQL for our database but finally we decided to choose Postgres. Unfortunately, the entire data model was created for MySQL. How can we quickly migrate it to the new database type?
Book and Author Importance of Data Model Quality Takeoff Checklist Merciless Review Merciless Humiliation? Is it Agile? Conclusion Book and Author Today I’m going to review “A Check List for Doing Data Model Design Reviews” by Kent Graziano. This publication is available as an e-book on Amazon.com. The book is very short – it will take you less than an hour to read it. But don’t let the small volume mislead you.
Tell us what you want! If you have your own ideas for new features or you think that something could be improved in our application, do not hesitate to share your opinion. Send your suggestions to us via our Support Service. There, you can upvote or downvote new feature requests placed by other users. That way, you can have a significant impact on the development of our application. Go to Vertabelo's Support Service »
If you’ve ever had to design a database model with hundreds of tables, views and references, you know very well how difficult is to make such huge diagram readable and comprehensible. One of the possible solutions is to use some colors to distinguish different groups of tables or subject areas. See how Vertabelo allows you to do this quick and easy. To illustrate how you can color your entity relationship diagram to increase its readability, we will use a sample uncolored database model for a simple online store:
What is jOOQ? jOOQ, which stands for "jOOQ Object Oriented Querying," is an ORM (object-relational mapping) for Java. With jOOQ you don't write statements with "SQL-like language"; like Hibernate's HQL. Instead, you write well designed and intuitive DSL code which, for someone speaking SQL, is obvious and self-explanatory. Read more » Some time ago I announced that the integration of Vertabelo and jOOQ was coming soon. While we're waiting for an official (stable) jOOQ release to support this integration, I'd like to present you with some of the details about how to use this new feature.
In this article, I’ll make a comparison of two popular database modelers: Vertabelo in version 1.21.0 and Navicat Data Modeler in version 1.0.12. Features are listed in the left-hand column and each tool’s feature support is identified under the appropriate heading. Vertabelo Navicat Data Modeler Online tool works under Chrome OS independent Standalone version available for: Linux Mac OS X Windows Model structure Tables References Sequences Views Text Notes Indexes Checks Additional SQL scripts Supported database engines PostgreSQL MySQL MS SQL Server Oracle SQLite HSQLDB IBM DB2 PostgreSQL MySQL MS SQL Server (Windows and Mac OS X editions only) Oracle SQLite SQL Azure (Windows and Mac OS X editions only) Supported data types Vertabelo supports a particular database from creation.
We hadn’t planned on adding a feature to print diagrams. Our original idea was that Vertabelo would supersede paper diagrams. Nevertheless, some of our users pointed out that they rely heavily on printouts (Export to PDF topic). So, I’d like to announce a new feature called “Export to PDF” also known as “Printing.” Note that exporting a database model to a PDF file is available for Premium and Team account plans only (see the comparison of the plans’ features in our Pricing).
In this article, I will compare two online database modelers: Vertabelo and Sea Quail Database Diagram Tool. Here is a matrix of each tool’s key features and functionality. Compared versions: Vertabelo 1.14.3, Sea Quail v.32. Vertabelo Sea Quail Model structure Tables References Sequences Views Text Notes Indexes Checks Additional SQL scripts Supported database engines PostgreSQL MySQL MS SQL Server Oracle SQLite HSQLDB IBM DB2 PostgreSQL MySQL MS SQL Server Supported data types Vertabelo supports particular database from the begining.
You may not believe it but the items in this picture are not just kids’ toys; they are important parts of the software development process! We call them “database tokens.” When there are multiple developers on the project and you are not creating a few java classes for yourself, you need a versioning system which stores files with the source code. We use GIT, which allows developers to work simultaneously on the same module or even on the same Java file.