As commitment to our database literacy campaign, we're offering our Database Foundations course—for FREE!

Skip to main content
Completion requirements

Databases are the backbone of modern applications. They enable efficient storage, retrieval, and management of data. In this section, we will cover basic concepts and terminology to help you understand database fundamentals.

Definition of a Database

A database is an organized collection of structured information, or data, typically stored electronically in a computer system. Databases are designed to efficiently store, retrieve, update, and manage data. They serve as the foundation for applications ranging from simple websites to complex enterprise systems.

Data models are conceptual frameworks that define how data is organized and related within a database. They help translate real-world scenarios into structured database designs by defining:

  • Entities (objects or concepts)
  • Attributes (properties of entities)
  • Relationships (connections between entities)

Types of Databases

Relational Databases

Relational databases organize data into tables (relations) with rows and columns. They remain the most widely used database type in production environments.

Key concepts include:

  • Tables: Structured collections of data organized in rows and columns
  • Primary Keys: Unique identifiers for each record in a table
  • Foreign Keys: Fields that create relationships between tables
  • Normalization: The process of organizing data to reduce redundancy and improve data integrity
  • SQL (Structured Query Language): The standard language for interacting with relational databases

Popular relational database management systems (RDBMS) include:

  • MySQL
  • PostgreSQL
  • Oracle Database
  • Microsoft SQL Server
  • SQLite

Non-relational (NoSQL) Databases

NoSQL databases provide alternative data storage mechanisms for scenarios where relational models may not be optimal, particularly for handling unstructured data, scalability requirements, or specific performance needs.

Major types include:

  • Document Stores: Store data in flexible, JSON-like documents (MongoDB, CouchDB)
  • Key-Value Stores: Simple key-value pair storage for rapid retrieval (Redis, DynamoDB)
  • Graph Databases: Optimize the storage of entities and relationships between them (Neo4j, ArangoDB)
  • Columnar Databases: Column-oriented storage for analytical workloads (Cassandra, HBase)

Data Management

Data Integrity

Data integrity ensures accuracy, consistency, and reliability of data throughout its lifecycle. Key integrity concepts include:

  • Entity Integrity: Ensuring each row has a unique identifier
  • Referential Integrity: Maintaining valid relationships between tables
  • Domain Integrity: Ensuring values conform to defined formats or rules
  • Constraint Enforcement: Using mechanisms like CHECK constraints, NOT NULL, UNIQUE, etc.

Security

Database security involves:

  • Authentication: Verifying user identities
  • Authorization: Controlling access to database objects
  • Encryption: Protecting data at rest and in transit
  • Auditing: Tracking database activities
  • Backup and Recovery: Ensuring data can be restored after failures

Performance

Performance optimization techniques include:

  • Indexing: Creating data structures to speed up data retrieval
  • Query Optimization: Writing efficient queries
  • Partitioning: Dividing large tables into smaller, more manageable segments
  • Caching: Storing frequently accessed data in memory

Core Terminology

  • Schema: The formal structure that defines the organization of database objects
  • Transactions: Logical units of work that must be completed entirely or not at all
    • ACID Properties: Atomicity, Consistency, Isolation, Durability
  • Queries: Requests for data retrieval or manipulation
  • Indexing: Data structures that improve the speed of data retrieval operations
  • Views: Virtual tables based on the result of a database query
  • Stored Procedures: Precompiled collections of SQL statements
  • Triggers: Automated procedures that execute in response to specific database events
Last modified: Thursday, 10 April 2025, 3:36 PM