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
- Modern, visually-appealing user interface
- Team-based approach, model sharing
- Source control integration of individual object changes
- Forward engineering
- Table editing
- Host integration
- Value added features
Modern, visually-appealing user interface
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
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
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
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)
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
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
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
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