Databases
Databases are fundamental to modern computing, serving as repositories for storing and organizing data. They come in two primary categories: SQL (Structured Query Language) databases and NoSQL databases.
SQL Databases
SQL databases, often referred to as relational databases, have a long history, use a structured approach to store data in tables. Each table consists of rows (records) and columns (fields), and relationships between tables are defined using foreign keys. SQL databases are well-suited for applications that require structured data.
Popular opensource SQL databases include SQLite, MySQL and PostgreSQL
NoSQL Databases
NoSQL databases, offer a more flexible approach to data storage and retrieval. They are designed to handle large datasets, distributed systems, and dynamic data structures. NoSQL databases can be categorized into several types:
- Document databases: Store data in JSON-like documents. (MongoDB, CouchDB)
- Key-value stores: Store data as key-value pairs. (Redis)
- Wide-column databases: Store data in wide tables with columns that can vary per row. (Cassandra)
- Graph databases: Store data as nodes and relationships between them. (Neo4j)
Vector Databases
Vector databases are a specialized type of database designed to efficiently store and retrieve high-dimensional numerical data, such as vectors. These databases have gained significant attention in recent years, particularly in the fields of machine learning, natural language processing, and computer vision.
Unlike traditional databases that store data in rows and columns, vector databases store data as vectors. A vector is a sequence of numbers that represents a point in a high-dimensional space. By storing data in this format, vector databases can leverage powerful algorithms for similarity search and recommendation.
Vector databases are used for recommendation systems, image and video search and RAG systems.
Popular vector databases include ElasticSearch, Milvus and Chroma.