Data Architecture#

Every business, small or large SHOULD have a data architecture. In the core a data architecture gives the overview and insights into the only one real value of your IT: Information. A data architecture gives overviews, visuals and describes e.g.:

  • What data is used where and how.

  • Who owns what data.

  • How is information created from data sources.

  • Internal and external data sources used.

  • Privacy & Security aspects of data (so be sure to have an data owner)

  • What structures, objects and relations are the core of your information model?

Tools for creating a data architecture#

To speed up the process for creating a data architecture you SHOULD use tools. Below is a selection of tools that will speed up the process of creating your data architecture. Be aware that data modelling and database design are two very different activities.  The emphase for a data architecture SHOULD be on the conceptual and logical data models. In general  physical data models are related to the sql or nosql storage engine used, in combination with scalability(performance) and security requirements.

  • Data Principles.(See the data principles section in this book.) Using data principles saves you time and cost. Especially in the long term. Selecting data principles you need in your project of a solid collection gives you a head start.

  • Protégé. Protégé is a free, open source ontology editor and knowledge-base framework. This open-source ontology editor and framework can be used for for building intelligent systems. The tool is developed by the Stanford Center for Biomedical Informatics Research and has a large and active community of users and developers.

  • Archi.  Archi™ GUI tool for creating an architecture, using the ArchiMate modelling™ language. Since Archi is targeted to all architecture aspects, this tool is usuable for creating conceptual, logical and physical data models too. ConML Nice open method and resources (visio stencils) for conceptual data modelling.

  • WWW SQL Designer.  This tool allows you to draw and create database schemas (E-R diagrams) directly in browser. A physical data model (sql) can also be imported and adjusted visually.

  • MySQL Workbench. MySQL Workbench enables a DBA, developer, or data architect to visually design, model, generate, and manage databases. It includes everything a data modeler needs for creating complex ER models, forward and reverse engineering, and also delivers key features for performing difficult change management and documentation tasks that normally require much time and effort.

  • JSON Schema. Nice short book that gives you help with creating your JSON Schema.

  • Schemaspy: Nice tool to document your database structure simply and easily. Created in 2004 and still a tool that does the job.SchemaSpy is a database metadata analyzer. It helps your database administrators and developers visualize, navigate and understand your data model. Repository on Github: schemaspy/schemaspy.

  • DrawDB: An intuitive database design editor, data-modeler, and SQL generator. DrawDB is a robust and user-friendly database entity relationship (DBER) editor right in your browser. Build diagrams with a few clicks, export sql scripts, customize your editor, and more. To use this FOSS tool no account is needed. Repository is on Github: drawdb-io/drawdb.

  • SQLAlchemy Data Model Visualizer. This Python-based utility generates high-quality, readable visualizations of your SQLAlchemy ORM models with almost no effort. With a focus on clarity and detail, it uses Graphviz to render each model as a directed graph, making it easier to understand the relationships between tables in your database schema. Architecture needs visuals for communication and good understanding. This tool helps. SQLAlchemy is a Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.

Data Architecture Templates#

To speed up the process of create your data architecture you SHOULD make use of standardized open templates. The following templates are provided: