DBMS_Lab_Exercise
DBMS_Lab_Exercise
DATA WAREHOUSE-IMPLEMENTATION
Date:19/11/2024
Aim :
To work with basic data warehousing commands.
1) For the above scenario, construct star schema and snowflake schema and also explore
OLAP operations (Pivot, Slicing, Dicing, Roll-up, Drill down) by constructing data cube
and visualizing it using python.
STAR SCHEMA:
53
SNOWFLAKE SCHEMA:
54
OLAP Operations:
Data Cube Creation:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
courses = pd.DataFrame({
'CourseID': [1244,1234,1204,1274,1284],
'CourseName': ['ED','DBMS','CProgramming','DBMS','ED'],
'Credits': [4,5,4,5,4],
'DepartmentID': [111,777,777,100,100]
})
departments = pd.DataFrame({
'DepartmentID': [111, 777,100],
'DepartmentName': ['Science', 'AI&DS','Automobile']
})
data = courses.merge(departments, on='DepartmentID')
data_cube=data.pivot_table(
index='DepartmentName',
columns='CourseName',
values='Credits',
aggfunc=np.sum,
fill_value=0)
print("Data_Cube:")
print(data_cube)
Pivot:
pivot_table = data.pivot_table(
index='DepartmentName',
columns='CourseName',
values='Credits',
55
aggfunc='sum',
fill_value=0
)
print("Pivot Table:")
print(pivot_table)
Slice:
slice_data = data[data['DepartmentName'] == 'Science']
print("\nSliced Data (Science Department):")
print(slice_data)
Dice:
dice_data = data[data['Credits'] > 3]
print("\nDiced Data (Courses with Credits > 3):")
print(dice_data)
Roll-Up:
roll_up = data.groupby('DepartmentName')['Credits'].sum()
print("\nRoll-Up Data (Sum of Credits by Department):")
print(roll_up)
56
Drill-down:
detailed_data = courses.merge(departments, on='DepartmentID')
print("\nDrill-Down Data:")
print(detailed_data[['DepartmentName','CourseName','Credits']])
Result:
The Data Warehousing operations have been executed successfully.
57