Does the world need another database modeling tool?

We thought it did, so we built ApexSQL Model …

The key features we identified in a database modeling tool that we determined were the most compelling, and that we emphasized in ApexSQL Model included

  1. Modern, visually-appealing user interface
  2. Team-based approach, model sharing
  3. Source control integration of individual object changes
  4. Forward engineering
  5. Table editing
  6. Grouping
  7. Printing
  8. Exporting
  9. Host integration
  10. Value added features

Modern, visually-appealing user interface

https://www.apexsql.com/sliderslick/images/Model/7.png

As database modeling is a visual experience, we wanted to make the best, most visually appealing interface possible and we believe we’ve come a long way towards that goal, including

  1. Visual theming
  2. Modern colors and iconography
  3. 4K, high resolution support

We also wanted to allow users to fully customize tables allowing for full configuration of colors, icons, table elements, names and more. Using these configurable options, you can create more than a 100 different combinations of table displays and pick the one you like the best.

Simple                                        Moderate detail                          Detailed

And we also wanted to offer various styles for models like orthogonal, circular and tree that would intelligently render large, complex models into easy to manage visualizations.

To get a sense of ApexSQL Model’s various interface styles, colors and table layouts see the article Customizing table element displays in ApexSQL Model

Team-based approach, model sharing

Modeling is more fun with friends, or at least team-mates and being able to share models across the team is critical. We built ApexSQL Model on top of our source-control framework, allowing users to check models out, make changes and check them back in integrated with all of the popular source control systems like Git, Perforce and Mercurial.

This allows a full history of revisions to be maintained and team members to be able to always get the most recent version.

Source control integration of individual object changes

In addition of source control integration of model changes, we also implemented versioning of individual objects (2018 R3)

Source control is now pervasive in most SQL development teams but table editing, designing is often left out. Tables aren’t often “edited” in T-SQL like script based objects, but rather “designed”. But if a table-designer isn’t integrated with source control then this becomes a challenge to achieve full SQL source control integration

With ApexSQL Model (2018 R3) users can connect to a source control repository, map objects and check them out, to be designed, then check the changes back in. Different team members can check out different objects at the same time. Check-outs can be tracked, across the team, by seeing colored status indicators on the object explorer and model elements. Objects can be locked and users can be prevented from checking out the same objects. We even support source control policies to govern how your team interacts with source control, for example, whether locks can be overridden by other team members or not.

Now teams can design tables, in a process integrated with source control, just like they would any other object and do it in a team based environment, where everyone works on the same repository and everyone has access to the most recent changes.

Note: With the ApexSQL DevOps toolkit, new pipelines can be triggered automatically on each new table commit

Note: If you aren’t ready for iterative (check-in, check-out) source control integration, you can compare your current model file with your source control repository and synchronize to commit changes only, using ApexSQL Diff. Simply change the target data source in the forward engineering dialog to your source control repository

Forward engineering

Rather than re-invent the wheel, ApexSQL Model is built to be used with other ApexSQL tools that have already perfected forward engineering for new databases, ApexSQL Script (2018 R3), and forward engineering to existing databases, ApexSQL Diff.

So no matter how complicated your model, you can synchronize to an existing database without errors or loss of any existing data. ApexSQL Model shells out to ApexSQL Diff via its CLI and allows you to compare the model to the target database, create a synchronization script or synchronize it directly (and even silently).

Note: To implement forward engineering to an existing database requires ApexSQL Diff Professional Edition.

To forward engineer to a new database, you can also use ApexSQL Diff, or instead ApexSQL Script (2018 R3) or utilize the organic forward engineering capability of ApexSQL Model

Table editing

ApexSQL Model comes with a powerful table editor that is aware of the SQL Server version you are modeling against so it can be aware of available data types, syntax and features

ApexSQL Model supports Indexes (2018 R3), extended properties (2018 R3, triggers (2018 R3)

Grouping

Creating functional units of associated tables is very helpful in modeling. ApexSQL Model makes this easy. You can create a group, assign tables to it, and all of them will be visually associated in several different ways.

In the below images, two tables are in one group, one is in another, and the third isn’t grouped at all

This allows tables to be associated even if they aren’t located next to each other on the model. When printing, group colors can be converted to names to be printer/ink friendly

We offer three different styles of grouping including header, block and lines

We also support regions (2018 R3), for visually grouping tables in the same proximity

Printing

Data professionals require models to be printed, in all of their glory, to be laid out on a wall and mocked up, discussed with stakeholders and presented to clients so printing is a key feature that must be implemented well.

In-demand printing features include layouts, headers and footers, line numbers, water marks, printer-friendly mode (to eliminate colors, backgrounds). We believe we nailed the key printing requirements in ApexSQL Model and we hope you will agree

Exporting

The ability to export a model to an image is just as critical as printing so models can be shared with teams via any device.

ApexSQL Model allows for exports to JPEG, BMP and PNG formats

Host integration

Being able to create a model with a single click from SSMS or Visual Studio is a big time saver. ApexSQL Model integrates seamlessly in these hosts allowing you to create models and start ApexSQL Model application without having to leave your preferred environment

Value added features

ApexSQL Developer customers are able to implement value-added model features, directly from ApexSQL Model, with a single click, including

  • Model documentation with ApexSQL Doc
  • Model comparison, vs another model or a database with ApexSQL Diff
  • Best practices review with ApexSQL Enforce (2018 R3)
  • Auditing trigger generation with ApexSQL Trigger (2018 R3)
  • Test data generation with ApexSQL Generate (2018 R3)

 

December 18, 2018