Skip to content

JosephKemper/SQLStudentDataBase

Repository files navigation

Overview

This basic program manages a student database using SQLite. It provides CRUD operations (Create, Read, Update, Delete), custom search, data sorting, and calculates remaining days until graduation. Users interact with the program through a menu-driven interface simplifying student data management.

My purposes for writing this program were simply to serve as a stating point for learning SQL and get introduced to relational database management.

Software Demo Video

Relational Database

This program utilizes a relational database with the following characteristics:

Database engine: SQLite

Data model: Relational model

Table structure:

  • Table name: students
  • Columns
    • rowid: Integer (Primary Key, auto-generated)
    • student_id: String
    • first_name: String
    • last_name: String
    • email: String
    • enrollment_date: String (YYYY-MM-DD format)
    • estimated_graduation_date: String (YYYY-MM-DD format)

Relationships

  • One-to-one relationship between the student ID and the student record.

Data Integrity:

  • Primary key constraint on the rowid column ensures column ensures unique identification of each record.
  • Data type constraints ensure consistency and validity of values

Data manipulation:

  • Database functions allow for CRUD operations (Create, Read, Update, Delete) on the student records. -Custom search functionality enables retrieving data based on specific criteria.
  • Data sorting allows ordering students by enrollment date.

Development Environment

  • VS Code version 1.85.0
  • Python
  • Library random
  • Library csv
  • Library datetime
  • Library sqlite3
  • Library csv
  • Library datetime

Useful Websites

Future Work

  • Input validation: Additional input validation could be implemented for specific data formats, like email addresses and dates.
  • User interface: A more user-friendly interface, like a text menu or graphical interface, could be developed for easier interaction with the database.
  • Additional functionalities: Additional features like searching by multiple criteria, exporting data to different formats, and implementing user roles could be added.
  • Add the ability to choose the name of the database and table you are working with.
  • Add the ability to work with multiple tables (like one for GPA)
  • Add the ability to add new columns to the table

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages