diff --git a/Task 1/ER.mwb b/Task 1/ER.mwb deleted file mode 100644 index 72a8a3a7fe415c375229f14ce7e01d26ba96df4f..0000000000000000000000000000000000000000 Binary files a/Task 1/ER.mwb and /dev/null differ diff --git a/Task 1/ER.mwb.bak b/Task 1/ER.mwb.bak deleted file mode 100644 index 81353d4453ec6055f747deadfbea904d370b113d..0000000000000000000000000000000000000000 Binary files a/Task 1/ER.mwb.bak and /dev/null differ diff --git a/Task 1/Table_setup.sql b/Task 1/Table_setup.sql deleted file mode 100644 index ce9c9f0ff940a87f4931ed28833ecca4f6703040..0000000000000000000000000000000000000000 --- a/Task 1/Table_setup.sql +++ /dev/null @@ -1,33 +0,0 @@ -CREATE TABLE person ( - PersonID INT PRIMARY KEY, - Name VARCHAR(255) NOT NULL, - Email VARCHAR(255) UNIQUE NOT NULL, - DOB DATE NOT NULL -); - -CREATE TABLE address ( - AddressID INT PRIMARY KEY, - PersonID INT, - Street VARCHAR(255) NOT NULL, - City VARCHAR(100) NOT NULL, - Country VARCHAR(100) NOT NULL, - ZipCode VARCHAR(20) NOT NULL, - FOREIGN KEY (PersonID) REFERENCES person(PersonID) ON DELETE CASCADE -); - -CREATE TABLE favorites ( - FavoriteID INT PRIMARY KEY, - PersonID INT, - FavoriteBook VARCHAR(255), - FavoriteDrink VARCHAR(255), - FavoriteActivity VARCHAR(255), - FOREIGN KEY (PersonID) REFERENCES person(PersonID) ON DELETE CASCADE -); - -CREATE TABLE neighbour ( - NeighbourID INT PRIMARY KEY, - PersonID INT, - NeighbourName VARCHAR(255), - NeighbourEmail VARCHAR(255), - FOREIGN KEY (PersonID) REFERENCES person(PersonID) ON DELETE CASCADE -); diff --git a/Task 1/adress_import.sql b/Task 1/adress_import.sql deleted file mode 100644 index 59d861e0da8da3b7706ec972a56be22997f02947..0000000000000000000000000000000000000000 --- a/Task 1/adress_import.sql +++ /dev/null @@ -1,12 +0,0 @@ -LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Assessment2425DataCaseScenario.csv' -INTO TABLE Address -FIELDS TERMINATED BY ',' -LINES TERMINATED BY '\r\n' -IGNORE 1 ROWS -(@dummy1, @dummy2, @dummy3, @Street, @City, @Country, @ZipCode, @dummy4, @dummy5, @dummy6, @dummy7, @dummy8, @dummy9, @dummy10) -SET - PersonID = (SELECT PersonID FROM Person WHERE Email = @dummy2), - Street = @Street, - City = @City, - Country = @Country, - ZipCode = @ZipCode; diff --git a/Task 1/favourite_import.sql b/Task 1/favourite_import.sql deleted file mode 100644 index dea045ba135238fe708136757dacd998a0fd5d33..0000000000000000000000000000000000000000 --- a/Task 1/favourite_import.sql +++ /dev/null @@ -1,11 +0,0 @@ -LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Assessment2425DataCaseScenario.csv' -INTO TABLE Favorites -FIELDS TERMINATED BY ',' -LINES TERMINATED BY '\r\n' -IGNORE 1 ROWS -(@dummy1, @dummy2, @dummy3, @dummy4, @dummy5, @dummy6, @dummy7, @FavoriteBook, @FavoriteDrink, @FavoriteActivity, @dummy8, @dummy9, @dummy10, @dummy11) -SET - PersonID = (SELECT PersonID FROM Person WHERE Email = @dummy2), - FavoriteBook = @FavoriteBook, - FavoriteDrink = @FavoriteDrink, - FavoriteActivity = @FavoriteActivity; diff --git a/Task 1/initial_setup.sql b/Task 1/initial_setup.sql deleted file mode 100644 index 999b87f8152d508c10ed6e818a0982b08b130c1e..0000000000000000000000000000000000000000 --- a/Task 1/initial_setup.sql +++ /dev/null @@ -1,2 +0,0 @@ -CREATE DATABASE PeopleDB; -USE PeopleDB; \ No newline at end of file diff --git a/Task 1/neighbour2_import.sql b/Task 1/neighbour2_import.sql deleted file mode 100644 index 6573c29d4070366fcd73d63612671ed75eff8739..0000000000000000000000000000000000000000 --- a/Task 1/neighbour2_import.sql +++ /dev/null @@ -1,11 +0,0 @@ -LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Assessment2425DataCaseScenario.csv' -INTO TABLE Neighbour -FIELDS TERMINATED BY ',' -LINES TERMINATED BY '\r\n' -IGNORE 1 ROWS -(@dummy1, @dummy2, @dummy3, @du -mmy4, @dummy5, @dummy6, @dummy7, @dummy8, @dummy9, @dummy10, @Neighbour1, @Neighbour1Email, @Neighbour2, @Neighbour2Email) -SET - PersonID = (SELECT PersonID FROM Person WHERE Email = @dummy2), - NeighbourName = @Neighbour2, - NeighbourEmail = @Neighbour2Email; diff --git a/Task 1/neighbour_import.sql b/Task 1/neighbour_import.sql deleted file mode 100644 index a2732929fba2009803252dc4f7672ba1112d0922..0000000000000000000000000000000000000000 --- a/Task 1/neighbour_import.sql +++ /dev/null @@ -1,10 +0,0 @@ -LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Assessment2425DataCaseScenario.csv' -INTO TABLE Neighbour -FIELDS TERMINATED BY ',' -LINES TERMINATED BY '\r\n' -IGNORE 1 ROWS -(@dummy1, @dummy2, @dummy3, @dummy4, @dummy5, @dummy6, @dummy7, @dummy8, @dummy9, @dummy10, @Neighbour1, @Neighbour1Email, @Neighbour2, @Neighbour2Email) -SET - PersonID = (SELECT PersonID FROM Person WHERE Email = @dummy2), - NeighbourName = @Neighbour1, - NeighbourEmail = @Neighbour1Email; diff --git a/Task 1/person_import.sql b/Task 1/person_import.sql deleted file mode 100644 index cc861cc1b167bfd12561c26264d8980aaa9ea2a5..0000000000000000000000000000000000000000 --- a/Task 1/person_import.sql +++ /dev/null @@ -1,9 +0,0 @@ -LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Assessment2425DataCaseScenario.csv' -INTO TABLE Person -FIELDS TERMINATED BY ',' -LINES TERMINATED BY '\r\n' -IGNORE 1 ROWS -(@Name, Email, @DOB, @dummy1, @dummy2, @dummy3, @dummy4, @dummy5, @dummy6, @dummy7, @dummy8, @dummy9, @dummy10, @dummy11) -SET - PersonID = CAST(SUBSTRING_INDEX(@Name, ' ', -1) AS UNSIGNED), -- Extracts numeric ID - DOB = STR_TO_DATE(@DOB, '%m/%d/%Y'); diff --git a/Task 2/insert_data.py b/Task 2/insert_data.py deleted file mode 100644 index b6e4cb4866829de2e49914c3463d3c675d191fae..0000000000000000000000000000000000000000 --- a/Task 2/insert_data.py +++ /dev/null @@ -1,39 +0,0 @@ -import pandas as pd -from setup import collection - -# Load the Excel file (update the filename if needed) -file_path = "Assessment2425DataCaseScenario.xlsx" # Change to the correct file path -df = pd.read_excel(file_path) - -# Convert Excel data to a format suitable for MongoDB -persons_data = [] -for _, row in df.iterrows(): - person = { - "name": row["Name"], - "email": row["Email"], - "dob": row["DOB"], - "address": { - "street": row["Street"], - "city": row["City"], - "country": row["Country"], - "zip_code": str(row["Zip Code"]) # Convert zip code to string to prevent issues - }, - "favourites": { - "book": row["Favorite Book"], - "drink": row["Favorite Drink"], - "activity": row["Favorite Activity"] - }, - "neighbours": [ - {"name": row["Neighbour 1"], "email": row["Neighbour1Email"]} if pd.notna(row["Neighbour 1"]) else None, - {"name": row["Neighbour 2"], "email": row["Neighbour2Email"]} if pd.notna(row["Neighbour 2"]) else None - ] - } - - # Remove None values (if no neighbour exists) - person["neighbours"] = [n for n in person["neighbours"] if n is not None] - - persons_data.append(person) - -# Insert data into MongoDB -collection.insert_many(persons_data) -print("Excel data inserted into MongoDB successfully!") diff --git a/Task 2/queries.py b/Task 2/queries.py deleted file mode 100644 index 3852cedc2a5c8cc966eb904f45bcaeb4606ab589..0000000000000000000000000000000000000000 --- a/Task 2/queries.py +++ /dev/null @@ -1,61 +0,0 @@ -from setup import collection -from datetime import datetime - -# Function to calculate age from DOB -def calculate_age(dob): - if isinstance(dob, str): # If dob is a string, convert it - dob = datetime.strptime(dob, "%Y-%m-%d") # Adjust format if needed - - birth_year = dob.year # Extract year directly - current_year = datetime.now().year - return current_year - birth_year - -### 1️⃣ Display Person's Name and Age -print("\n--- Persons and Their Age ---") -for person in collection.find({}, {"name": 1, "dob": 1}): - age = calculate_age(person["dob"]) - print(f"Name: {person['name']}, Age: {age}") - -### 2️⃣ Group Persons by Their Favourite Drink and Return Average Age -print("\n--- Average Age by Favourite Drink ---") -pipeline = [ - { - "$group": { - "_id": "$favourites.drink", - "average_age": {"$avg": {"$subtract": [datetime.now().year, {"$toInt": {"$substr": ["$dob", 0, 4]}}]}} - } - } -] -results = collection.aggregate(pipeline) -for res in results: - print(f"Drink: {res['_id']}, Average Age: {res['average_age']}") - -### 3️⃣ Display Average Age of People Who Like Hiking -print("\n--- Average Age of People Who Like Hiking ---") -pipeline = [ - {"$match": {"favourites.activity": "Hiking"}}, - { - "$group": { - "_id": None, - "average_age": {"$avg": {"$subtract": [datetime.now().year, {"$toInt": {"$substr": ["$dob", 0, 4]}}]}} - } - } -] -result = list(collection.aggregate(pipeline)) -print(f"Average age of people who like Hiking: {result[0]['average_age']}") - -### 4️⃣ Display Total Number of People from Each City -print("\n--- Total Number of People per City ---") -pipeline = [ - {"$group": {"_id": "$address.city", "total_people": {"$sum": 1}}}, - {"$sort": {"total_people": 1}} -] -results = collection.aggregate(pipeline) -for res in results: - print(f"City: {res['_id']}, Total People: {res['total_people']}") - -### 5️⃣ Display Name of Person(s) Whose Neighbour is 'Neighbour C' -print("\n--- People Whose Neighbour is 'Neighbour C' ---") -results = collection.find({"neighbours.name": "Neighbor C"}, {"name": 1, "_id": 0}) -for person in results: - print(person["name"]) diff --git a/Task 2/setup.py b/Task 2/setup.py deleted file mode 100644 index 3fedda2731729577e67b2e18192aeb921db22944..0000000000000000000000000000000000000000 --- a/Task 2/setup.py +++ /dev/null @@ -1,10 +0,0 @@ -from pymongo import MongoClient - -# Connect to MongoDB -client = MongoClient("mongodb://localhost:27017/") - -# Create the database and collection -db = client["task2_nosql"] -collection = db["persons"] - -print("MongoDB connection successful!")