Forging a NoSQL Database

RavenDB has been around for a little over a decade and is currently used by thousands of customers, including fortune 500 companies like Toyota and Verizon, but it hasn’t always been smooth sailing. Like any other software, RavenDB has had its growing pains, particularly in the early days when the company was made up of just a handful of developers.

User feedback has always played an important role in our development. Many of RavenDB’s features were added due to popular demand, and our customers have helped us find countless obscure bugs by using our software in ways we never could have imagined.

How to Best Fit Filtering into Vector Similarity Search

Attribute filtering, or simply "filtering," is a basic function desired by users of vector databases. However, such a simple function faces great complexity.

Suppose Steve saw a photograph of a fashion blogger on a social media platform. He would like to search for a similar jean jacket on an online shopping platform that supports image similarity search. After uploading the image to the platform, Steve was shown a plethora of results of similar jean jackets. However, he only wears Levi’s. Then the results of image similarity search need to be filtered by brand. But the problem is when to apply the filter? Should it be applied before or after approximate nearest neighbor search (ANNS)?

Getting Started With Apache Cassandra

Apache Cassandra® is a distributed NoSQL database that is used by the vast majority of Fortune 100 companies. By helping companies like Apple, Facebook, and Netflix process large volumes of fast-moving data in a reliable, scalable way, Cassandra has become essential for the mission-critical features we rely on today.

In this post, we will:

AWS DynamoDB Table Design in 10 Minutes

AWS DynamoDB is a serverless key and value pair NOSQL database. The schema design concept is different from traditional relational database. You can understand the DynamoDB table design within 10 minutes in this video.

Thank you for watching!

How to Do UUID as Primary Keys the Right Way

Why Do We Need Technical IDs in the First Place?

Any properly designed relational database table owns a Primary Key (PK) allowing you to uniquely and stably identify each record. Even if the primary key can be composite (built of several columns), it is a widespread good practice to dedicate a special column (often named id or id_<table name>) to this end. This special column is used to technically identify records and can be used as foreign keys in relations.

NOTE: Do not confuse technical (also named "surrogate") keys with function keys. The most important tables (so-called entities in domain-driven design) may contain an alternate human-readable ID column (like the customer ID "G2F6D"). In this article, we will focus only on technical PKs. They should only be processed and readable by machines, not humans.

Breaking Up a Monolithic Database with Kong

There are events in our life that seem to be just routine, but then unexpectedly they have a profound impact on our journey. For me, one event was attending the 2008 Gartner conference in Orlando, Florida. 

That event not only introduced me to the Salesforce ecosystem for the very first time but also to concepts like:

How We Attracted 40 Million Users to the Online Automotive Marketplace

During the years of work in IT and NIX United company, in particular, I noticed that the larger the project is and the faster the development grows, the more the team has to change the logic and improve functionality. In large projects, constant refactoring is an inevitable process. But sometimes there are problems with it. You shouldn't be afraid of them. During such moments, you have a good chance to get new skills and pump up your expertise. Having coped with all the difficulties, you’ll gain even greater client trust.

In this article, I will talk about the mistake our team kept making until we figured out how to solve this problem. I have highlighted what, in my opinion, required the greatest efficiency from the developers.

Events Are the New Data

The Oxford Dictionary defines ‘Data’ as: “Facts … collected together”. Should we instead use the specialized language of application architects, ‘Data’ can be more accurately defined as: ‘Events folded together’. ‘Folding’ represents the act of merging a particular Entity’s (State-changing) Events, in chronological order, to compute the latest Entity ‘State’ — what we typically refer to today as a Data 'Record'. Data — unlike Events — is an abstract notion. Whilst ‘Events’ represent actual changes to an Entity’s State (e.g. PurchaseOrder.Deleted), ‘Data’ represents no more than the calculated State of a particular Entity, once all preceding Events have been folded together; something that cannot even be performed should you ever lose any Events. 

At some point in history it was decided — clearly owing to restrictive hardware costs at the time — that we could not possibly store all State-changing ‘Events’ in our Data-bases, but that instead, we could only store ‘Data’: the current ‘Folded State’ of each business Entity (until such a time as even that was archived, owing to archaic hardware constraints).

Data Modeling Tools Detailed Comparison

A data modeling tool or a database modeling tool is an application that helps data modelers to create and design databases structureThus, data modeling tools make the Data modeling process easier and provide many features that help data modelers to understand their data. 

Actuallythere are many different data modeling tools available for different database platforms. This multitude of tools available makes it very difficult to choose a tool that suits the user's needs.  

MongoDB Design: Tips AND Tricks

MongoDB is a popular database that works without imposing any kind of schema. The data is stored in a JSON-like format and can contain different kinds of structures. For example, in the same collection we can have the next two documents:

JSON


To get the best out of MongoDB, you have to understand and follow some basic database design principles. Before getting to some design tips, we have to first understand how MongoDB structures the data.

How to View MongoDB Collections as Diagrams

MongoDB doesn’t need a big introduction. It’s one of the fastest-growing databases in the market, and for a good reason. MongoDB has a unique approach to working with data by focusing on flexibility.

Offering Flexibility

Compared to a relational database like MySQL that uses well-defined tables to store data, MongoDB offers more flexibility by storing the data in JSON-like objects. The objects are then stored in collections. Two objects from the same collection can have different data-fields. For example, we can have the next two objects in the same collection:

Let’s Talk About Data Generators

Having relevant data in your database is crucial for application testing, but it’s not always very easy to get. Real databases are nearly impossible to get due to data privacy, so the only real option is a data generator. 

I’m going to present some of the features that I consider important for a data generator. You can keep them in mind while you’re browsing for a generator or when you’re building your own. 

The Secrets of Indexes and Foreign Keys

Indexes and foreign keys are great tools when confronted with large databases. They can be the answer to a good design and great performance. In this article, I will go through some tips that helped me understand how to use these tools efficiently and streamline my work with complex databases. 

Every image example was done with DbSchema. I enjoy this tool because it is diagram oriented, integrates many features, and has a very good price. 

Top 4 Database Design Tools

Good database design will significantly decrease maintenance work and minimize the chances of errors in a project. As every project has different requirements, finding the right tool for it can be a difficult task.

This article compares 4 of the best database design tools. The comparison was made with 4 main points in focus:

How to Explore Databases Visually With Relational Data Browse

How to Explore Databases Visually

Relational databases are used when a project store structured data and has a fixed schema.
They can handle a lot of complex queries, database transactions and routine analysis of data. Relational databases make data browsing very accessible, but even so, they still require complex SQL Queries. This can be time-consuming, especially for a beginner in SQL syntax.

Relational Data Browse, a feature integrated by DbSchema, is an optimal solution to this problem. In this tutorial, we’ll go over the functionality of this feature.

9 of the Most Common Mistakes in Database Design

As a database designer, when you are tasked with a database project, you can expect to run into a couple of challenges during the design process and after the database is deployed to production.

Some of these problems are unavoidable and outside your control. However, a number of them can be traced back to the quality of the database design itself. The decisions you make at this preliminary phase can have a profound impact on how well the database eventually works. The following are some of the most common mistakes of database design.