From 3f80ba9039228250e51c58c86548be8103ca969d Mon Sep 17 00:00:00 2001 From: y2-youssef <youssef2.youssef@live.uwe.ac.uk> Date: Tue, 1 Apr 2025 20:00:20 +0000 Subject: [PATCH] Update 12 files - /Task 1/ER.mwb - /Task 1/ER.mwb.bak - /Task 1/Table_setup.sql - /Task 1/adress_import.sql - /Task 1/favourite_import.sql - /Task 1/initial_setup.sql - /Task 1/neighbour2_import.sql - /Task 1/neighbour_import.sql - /Task 1/person_import.sql - /Task 2/insert_data.py - /Task 2/queries.py - /Task 2/setup.py --- Task 1/ER.mwb | Bin 10125 -> 0 bytes Task 1/ER.mwb.bak | Bin 8931 -> 0 bytes Task 1/Table_setup.sql | 33 ------------------- Task 1/adress_import.sql | 12 ------- Task 1/favourite_import.sql | 11 ------- Task 1/initial_setup.sql | 2 -- Task 1/neighbour2_import.sql | 11 ------- Task 1/neighbour_import.sql | 10 ------ Task 1/person_import.sql | 9 ------ Task 2/insert_data.py | 39 ---------------------- Task 2/queries.py | 61 ----------------------------------- Task 2/setup.py | 10 ------ 12 files changed, 198 deletions(-) delete mode 100644 Task 1/ER.mwb delete mode 100644 Task 1/ER.mwb.bak delete mode 100644 Task 1/Table_setup.sql delete mode 100644 Task 1/adress_import.sql delete mode 100644 Task 1/favourite_import.sql delete mode 100644 Task 1/initial_setup.sql delete mode 100644 Task 1/neighbour2_import.sql delete mode 100644 Task 1/neighbour_import.sql delete mode 100644 Task 1/person_import.sql delete mode 100644 Task 2/insert_data.py delete mode 100644 Task 2/queries.py delete mode 100644 Task 2/setup.py diff --git a/Task 1/ER.mwb b/Task 1/ER.mwb deleted file mode 100644 index 72a8a3a7fe415c375229f14ce7e01d26ba96df4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10125 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 diff --git a/Task 1/ER.mwb.bak b/Task 1/ER.mwb.bak deleted file mode 100644 index 81353d4453ec6055f747deadfbea904d370b113d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8931 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 diff --git a/Task 1/Table_setup.sql b/Task 1/Table_setup.sql deleted file mode 100644 index ce9c9f0..0000000 --- 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 59d861e..0000000 --- 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 dea045b..0000000 --- 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 999b87f..0000000 --- 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 6573c29..0000000 --- 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 a273292..0000000 --- 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 cc861cc..0000000 --- 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 b6e4cb4..0000000 --- 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 3852ced..0000000 --- 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 3fedda2..0000000 --- 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!") -- GitLab