This repository contains a Database Management System (DBMS) for a railway reservation project implemented using Oracle SQL Plus 21c. The project aims to provide a structured database schema for managing trains, passengers, reservations, and related information in a railway transportation environment.
| Table Name | Description | Primary Key | Foreign Keys |
|---|---|---|---|
admin |
Stores admin details | admin_id |
β |
users |
Stores customer details | user_id |
β |
transaction_type |
Stores transaction categories & discounts | type_id |
β |
train_ticket |
Stores train ticket and schedule info | ticket_id |
β |
reservation |
Stores reservations | reservation_id |
ticket_id,admin_id,customer_id |
transaction |
Stores payment transactions | transaction_id |
type_id,reservation_id,admin_id,customer_id |
- Normalized schema with
PRIMARY KEYandFOREIGN KEYconstraints - Data types selected for integrity (
VARCHAR2,DATE,TIMESTAMP,BLOB)
- Standard queries:
INSERT,SELECT,UPDATE,DELETE - Use of
%TYPEand%ROWTYPEfor safer variable declarations
Anonymous blocks for:
- Data retrieval
- Row-level manipulation
- Cursor iteration
- Conditional logic
- Loops Stored Procedure:
find_user(reservation_id, username): Prints the user name for the given reservation
Function:get_train(ticket_id): Returns train name using ticket id
| Trigger Name | Timing & Event | Description |
|---|---|---|
trigdel |
Before delete on Reservation | Deletes related transactions and associated train tickets |
trigup |
After update on Train_Ticket | Updates Reservation table if ticket_id changes |
trignew |
After insert on Transaction | Creates a reservation entry with default values |