Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Projects in Spring 2026

3 Member Projects List

1. Indexing

(3 Students)

Responsibilities

  • Provide index structures for faster data access:
    • Primary Key Index
    • Clustered Index
    • Secondary Index on Keys
    • Secondary Index on Non-Key Attributes
  • Implement:
    • Hash Index
    • Tree Index
  • Support:
    • Index Scanning
    • Range Search
  • Maintain indexes during:
    • INSERT
    • UPDATE
    • DELETE operations
  • Evaluate and compare the performance of all index structures.

2. JOIN Algorithms

(3 Students – One Join Algorithm per Student)

Responsibilities

  • Implement the following join algorithms:
    • Nested Loop Join
    • Sort-Merge Join
    • Hash Join
  • Support combining tuples from multiple relations.
  • Evaluate join conditions.
  • Handle joins on large datasets.
  • Evaluate and compare the performance of all join algorithms.

2 Member Projects List

3. Buffer Manager

(2 Students)

Responsibilities

  • Manage the in-memory buffer pool.
  • Maintain mapping between disk pages and memory frames.
  • Handle page fetching and eviction.
  • Manage page flushing to disk.
  • Support page replacement policies.

4. Catalog Manager

(2 Students)

Responsibilities

  • Maintain system metadata.
  • Store catalog information as database pages.
  • Manage metadata for:
    • Tables
    • Columns
    • Data Types
    • Databases
    • Constraints
  • Support:
    • Primary Keys
    • Unique Constraints
    • NOT NULL Constraints
    • Foreign Keys
  • Store index metadata.
  • Cache catalog pages using the buffer manager.
  • Handle catalog bootstrapping.

5. Sorting and Ordered File Manager

(2 Students)

Responsibilities

  • Store relations in sorted order based on one or more attributes.
  • Sort unordered files if they are not sorted.
  • Implement sorting algorithms:
    • In-Memory Sorting
    • External Sorting
  • Support ORDER BY processing on relations.
  • Enable:
    • Range-based scans
    • Ordered scans on sorted files
  • Handle insertion into ordered files while preserving sort order.

6. Free Space Manager and Heap File Manager

(2 Students)

Responsibilities

  • Track available free space on disk pages.
  • Manage free page lists.
  • Identify suitable pages for insertion.
  • Reclaim unused pages.
  • Coordinate space reuse across the system.
  • Handle page allocation and deallocation.
  • Maintain file-level metadata.

1 Member Projects List

7. Support for Different SQL-99 Fixed Length Data Types

(Individual Project – Max 4 Students)

Each student will implement a subset of SQL-99 fixed-length data types.

Collectively, the team supports all SQL-99 fixed-length data types.

All students will collectively decide the common system-wide data type framework and APIs.

Each student will then implement their chosen SQL-99 fixed-length data types using that framework.

Responsibilities

  • Define how data will be stored on disk:
    • On-disk binary format
  • Define a system-wide data type framework.
  • Create APIs to:
    • Store data
    • Retrieve data
  • Implement:
    • Type validation
    • Constraints
  • Determine how a row will be formed using the data types.
  • Implement:
    • Type serialization (Value -> Bytes)
    • Type deserialization (Bytes -> Value)
  • Specify:
    • Byte alignment rules
    • Padding rules
  • Handle:
    • Invalid values
    • Out-of-range values
  • Support comparison operations:
    • >
    • <
    • =
    • Other relational operators
  • Handle NULL values.
  • Implement all functions related to fixed-length data types available in RDBMS systems.

8. Support for Variable Length Data Types

(Individual Project – Max 3 Students)

Each student will implement a distinct subset of variable-length data types.

No two students should work on the same data type.

Responsibilities

  • Support variable-length data types:
    • VARCHAR
    • TEXT
    • BLOB
    • JSON
    • Arrays
    • User-defined data types
  • Create APIs to:
    • Retrieve
    • Store
    • Delete
    • Update variable-length data
  • Handle:
    • Value encoding
    • Value decoding
  • Handle very large values:
    • Data size larger than a page size
  • Implement comparison between values.
  • Support NULL value representation for variable-length data types.

9. Aggregate Operators, Filtering, and Projections

(Individual Project – Max 3 Students)

Each student will implement a distinct query processing operator:

  • Selection
  • Projection
  • Aggregation
  • Subqueries

Collectively, the team supports filtering, projection, aggregation operations, and subqueries required for SQL query execution.


9.1 Selection Operator (WHERE Clause Processing)

Responsibilities
  • Apply filtering conditions on tuples.
  • Support comparison operators:
    • =
    • <
    • >
    • <=
    • >=
    • !=
  • Support logical operators:
    • AND
    • OR
  • Handle data types:
    • INT
    • FLOAT
    • DATE
    • STRING
  • Evaluate predicates row by row.
  • Support NULL semantics in conditions.

9.2 Projection Operator (SELECT Attribute Processing)

Responsibilities
  • Select specified attributes from tuples.
  • Support:
    • Column reordering
    • Column elimination
  • Construct output tuples.
  • Maintain output schema.

9.3 Aggregate Functions Operator

Responsibilities
  • Implement aggregate functions:
    • COUNT
    • MIN
    • MAX
    • SUM
    • AVG
  • Handle different data types.
  • Implement:
    • GROUP BY
    • HAVING
  • Support NULL value handling.
  • Maintain aggregate state.
  • Produce aggregate results.

10. Update / Delete and Space Reorganization

(1 Student)

Responsibilities

  • Support deletion of records.
  • Support update of existing records.
  • Manage reuse of freed space.
  • Handle record relocation when required.
  • Perform page reorganization and compaction.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors