Skip to content

An Employee Management System using MySQL and PL/SQL to manage employee details, including roles, salaries, and performance, with features like stored procedures and views for data retrieval and updates.

Notifications You must be signed in to change notification settings

Aksoni07/WorkWiz

Repository files navigation

** WorkWiz : An Employee Management System**

A comprehensive database solution designed using MySQL and PL/SQL for managing biographical and organizational information of employees.


Overview

The Employee Management System is a robust database design aimed at storing and managing employee information, including their biographical data, organizational details, performance records, and salary computations. This system provides:

  • An Entity-Relationship Model (ER Model) to represent the structure of data.
  • Translation of the ER model into a Relational Schema for implementation.
  • Stored Procedures for efficient data manipulation.
  • Views for streamlined data retrieval.

Key Features

  1. Entity-Relationship Model

    • A clear representation of the relationships between different entities, such as Employees, Roles, Organizations, and Addresses.
  2. Relational Schema

    • Translated the ER model into a well-structured schema to ensure efficient data storage and normalization.
  3. Data Insertion Examples

    • Sample INSERT statements for quick setup and testing of data in tables like Employee, Employee_Role, Address_Type, Employee_Type, etc.
  4. Stored Procedures

    • Simplifies repetitive tasks like data insertion and updates, enhancing consistency and reducing manual errors.
  5. Views

    • Predefined SQL queries that make data retrieval faster and simpler, providing users with meaningful insights.

Database Schema

Tables Created:

  1. Address_Type
    Stores different types of addresses with descriptions.

    • Example:
    INSERT INTO address_type (address_id, address_type, address_type_description)
    VALUES (1, 'Home', 'Decentralized static approach');
  2. Employee_Type
    Defines employee classifications and their respective pay types and compensation details.

    • Example:
    INSERT INTO Employee_Type (employee_type_id, employee_type, employee_type_desc, pay_type, compensation_package)
    VALUES (1, 'Training', 'Configurable attitude-oriented leverage', 'Bi-Weekly', 0.03);
  3. Employee_Role
    Specifies various roles within the organization along with their descriptions.

    • Example:
    INSERT INTO Employee_Role (employee_role_id, role_name, role_desc)
    VALUES (1, 'Product Manager', 'Decentralized systemic productivity');
  4. Organization
    Maintains organizational details like client name, code, and domain.

    • Example:
    INSERT INTO Organization (organization_id, client_org_name, client_org_code, client_org_domain, availability_date)
    VALUES (1, 'Boeing', 3, 'Manufacturing', '2020-07-12');
  5. Employee
    Contains biographical and organizational details of employees.

    • Example:
    INSERT INTO employee (employee_id, employee_role_id, employee_type_id, organization_id, home_country, work_country, gender)
    VALUES (1, 28, 33, 8, 'Costa Rica', 'Denmark', 'F');
  6. Person
    Stores personal details like names, contact information, and age.

    • Example:
    INSERT INTO Person (person_id, first_name, middle_name, last_name, age, phone_number, email_id)
    VALUES (1, 'Bessy', 'Stillman', 'Maxfield', 53, '110 205 3647', 'smaxfield0@sohu.com');

Setup Instructions

  1. Clone this repository to your local machine:

    git clone https://github.com/<YourGitHubHandle>/EmployeeManagementSystem.git
  2. Navigate to the project directory:

    cd EmployeeManagementSystem
  3. Import the Project.sql file into your MySQL environment to set up the database:

    SOURCE /path/to/Project.sql;
  4. Test the database using the included INSERT statements to ensure everything is working as expected.


How It Works

  • Data Insertion: Populate tables with employee, organizational, and address details using pre-written INSERT queries.
  • Data Retrieval: Use pre-defined Views or write custom queries to fetch information about employees, roles, and organizations.
  • Automation: Utilize Stored Procedures for bulk insertion or updates.

Examples

  • Retrieve all employees working in a specific organization:

    SELECT e.employee_id, p.first_name, p.last_name, o.client_org_name
    FROM employee e
    JOIN person p ON e.person_id = p.person_id
    JOIN organization o ON e.organization_id = o.organization_id
    WHERE o.client_org_name = 'Boeing';
  • Add a new employee to the system:

    CALL AddNewEmployee('John', 'Doe', 'Smith', 30, '1234567890', 'johndoe@example.com', 'USA', 'Canada', 'M', 'Single');

Contributing

Contributions are welcome! If you'd like to contribute, please fork this repository, make your changes, and submit a pull request.

About

An Employee Management System using MySQL and PL/SQL to manage employee details, including roles, salaries, and performance, with features like stored procedures and views for data retrieval and updates.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published