0% found this document useful (0 votes)
7 views32 pages

Database Design and Implementation For Marketing Campaigns

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views32 pages

Database Design and Implementation For Marketing Campaigns

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

DATABASE DESIGN AND IMPLEMENTATION FOR

MARKETING CAMPAIGNS
NAME :

ROLL NO :
DATE :
SUBMITTED TO :
ENTITY IDENTIFICATION:
• PURPOSE: IDENTIFY KEY COMPONENTS TO STORE AND MANAGE BUSINESS DATA.
• PROCESS: ANALYZE BUSINESS REQUIREMENTS TO DETERMINE NECESSARY ENTITIES.
• EXAMPLE: FOR MARKETING CAMPAIGNS, ESSENTIAL ENTITIES INCLUDE CAMPAIGNS,
PERFORMANCE METRICS, BUDGET ALLOCATIONS, AND LEAD GENERATION ACTIVITIES.
• IDENTIFIED ENTITIES:
• Campaign
• Performance Metrics
• Budget Allocation
• Lead Generation Activity
ATTRIBUTE DEFINITION:

• Process: Define attributes for each entity based on business needs.


• Purpose: Establish data elements to capture essential information.
• Example: Attributes for Campaign entity:
• campaign_id (PK)
• target_audience
• cost_details
• performance_outcomes
SCHEMA CREATION
• PROCESS: DEVELOP DATABASE STRUCTURE BASED ON IDENTIFIED ENTITIES AND
ATTRIBUTES.
• IMPLEMENTATION: UTILIZE SQL COMMANDS TO CREATE TABLES.
• EXAMPLE:
1. CREATE TABLE CAMPAIGN (
CAMPAIGN_ID INT PRIMARY KEY,
TARGET_AUDIENCE VARCHAR(255),
COST_DETAILS DECIMAL(10, 2),
PERFORMANCE_OUTCOMES VARCHAR(255)
);
SCHEMA CREATION
2. CREATE TABLE PERFORMANCEMETRICS (
METRIC_ID INT PRIMARY KEY,
CAMPAIGN_ID INT,
METRIC_NAME VARCHAR(100),
METRIC_VALUE DECIMAL(10, 2),
FOREIGN KEY (CAMPAIGN_ID) REFERENCES CAMPAIGN(CAMPAIGN_ID)
);

3. CREATE TABLE BUDGETALLOCATION (


ALLOCATION_ID INT PRIMARY KEY,
CAMPAIGN_ID INT,
ALLOCATION_AMOUNT DECIMAL(10, 2),
FOREIGN KEY (CAMPAIGN_ID) REFERENCES CAMPAIGN(CAMPAIGN_ID)
);
SCHEMA CREATION
4. CREATE TABLE LEADGENERATIONACTIVITY (
ACTIVITY_ID INT PRIMARY KEY,
CAMPAIGN_ID INT,
ACTIVITY_DESCRIPTION TEXT,
FOREIGN KEY (CAMPAIGN_ID) REFERENCES CAMPAIGN(CAMPAIGN_ID)
);
NORMALIZATION:
Normalization ensures that the database schema is organized to reduce redundancy
and improve data integrity. We ensured that the schema is normalized to at least the
third normal form (3NF).

ER Diagram:
NORMALIZATION:
SQL IMPLEMENTATION AND DATA POPULATION
DATABASE MODEL:

WE BUILT THE DATABASE MODEL USING A SUITABLE PLATFORM MS SQL SERVER.THIS INVOLVED CREATING THE
TABLES BASED ON THE SCHEMA WE DESIGNED.

DATA POPULATION:

TO SIMULATE REALISTIC DATA, WE POPULATED EACH TABLE WITH AT LEAST TWO RECORDS. THIS STEP INVOLVED
INSERTING SAMPLE DATA INTO THE CAMPAIGN, PERFORMANCE METRICS, BUDGET ALLOCATION AND LEAD
GENERATION ACTIVITY TABLES
SQL IMPLEMENTATION AND DATA POPULATION
1. CAMPAIGN TABLE :
INSERT INTO CAMPAIGN (CAMPAIGN_ID, TARGET_AUDIENCE, COST_DETAILS, PERFORMANCE_OUTCOMES)
VALUES
(1, 'YOUNG ADULTS', 5000.00, 'INCREASED WEBSITE TRAFFIC BY 30%'),
(2, 'PARENTS', 7000.00, 'GENERATED 50 LEADS FOR PRODUCT X');

2. PERFORMANCE METRICS TABLE :


INSERT INTO PERFORMANCEMETRICS (METRIC_ID, CAMPAIGN_ID, METRIC_NAME, METRIC_VALUE)
VALUES
(1, 1, 'WEBSITE TRAFFIC', 35000),
(2, 1, 'CONVERSION RATE', 0.05),
(3, 2, 'LEADS GENERATED', 50),
(4, 2, 'CLICK-THROUGH RATE', 0.08);
SQL IMPLEMENTATION AND DATA POPULATION
3. BUDGET ALLOCATION :
INSERT INTO BUDGETALLOCATION (ALLOCATION_ID, CAMPAIGN_ID, ALLOCATION_AMOUNT)
VALUES
(1, 1, 2000.00),
(2, 2, 3000.00);
2. LEAD GENERATION ACTIVITY :
INSERT INTO LEADGENERATIONACTIVITY (ACTIVITY_ID, CAMPAIGN_ID, ACTIVITY_DESCRIPTION)
VALUES
(1, 1, 'SOCIAL MEDIA AD CAMPAIGN TARGETING YOUNG ADULTS'),
(2, 2, 'EMAIL MARKETING CAMPAIGN OFFERING DISCOUNT COUPONS');
QUERY DEVELOPMENT

 Basic and Conditional Retrieval:


We wrote queries to fetch data from single or multiple tables based on specific conditions. These queries
retrieve information from the Campaign and Performance Metrics tables.

Query1:
SELECT * FROM Campaign WHERE target_audience = 'Parents';
QUERY DEVELOPMENT
QUERY DEVELOPMENT

Query 2:
SELECT performance_outcomes FROM Campaign WHERE campaign_id = 1;
QUERY DEVELOPMENT

Query 3:
SELECT * FROM BudgetAllocation
WHERE campaign_id IN (SELECT campaign_id FROM Campaign WHERE cost_details > 6000.00);
QUERY DEVELOPMENT

Query 4:
SELECT l.activity_description
FROM LeadGenerationActivity l
INNER JOIN Campaign c ON l.campaign_id = c.campaign_id
INNER JOIN PerformanceMetrics p ON c.campaign_id = p.campaign_id
WHERE p.metric_name = 'Conversion Rate' AND p.metric_value > 0.05;
QUERY DEVELOPMENT
QUERY DEVELOPMENT

Query 5:
Select * from Lead Generation Activity
AGGREGATED FUNCTIONS:

Using SQL aggregate functions, we generated summary reports. These functions allowed us to calculate
metrics like average, sum, count, etc., across records in the database.
1. Aggregate Function(Average):
SELECT AVG(metric_value) AS average_conversion_rate
FROM PerformanceMetrics
WHERE metric_name = 'Conversion Rate';
AGGREGATED FUNCTIONS:
AGGREGATED FUNCTIONS:

2. Aggregate Function(Sum):
SELECT SUM(cost_details) AS total_cost FROM Campaign;
AGGREGATED FUNCTIONS:

3. Aggregate Function(Max):
SELECT MAX(metric_value) AS max_leads_generated
FROM PerformanceMetrics
WHERE metric_name = 'Leads Generated';
DATA MANIPULATION:

We demonstrated the ability to insert, update, and delete data. Insert queries add new records to the
tables, update queries modify existing records, and delete queries remove records from the tables.
1. Insert Query:
INSERT INTO Campaign (campaign_id, target_audience, cost_details)
VALUES (3, 'Social Media Ads', 3000.0),
(4, 'Email Marketing', 6000.0);
AGGREGATED FUNCTIONS:

2. Update Query:
UPDATE Campaign
SET cost_details = 8000.0
WHERE campaign_id = 3;
AGGREGATED FUNCTIONS:

3. Delete Query::
DELETE FROM Campaign
WHERE campaign_id = 2;
COMPLEX QUERIES:

We developed queries that involve joins, subqueries, and other advanced SQL features to address complex
information needs. These queries retrieve data by combining information from multiple tables or perform
calculations based on specific criteria.

1. Query 1:
SELECT c.campaign_id, c.cost_details, pm.metric_name, pm.metric_value
FROM Campaign c
LEFT JOIN PerformanceMetrics pm ON c.campaign_id = pm.campaign_id;
COMPLEX QUERIES:
COMPLEX QUERIES:

2. Query 2:
SELECT c.campaign_id, c.cost_details
FROM Campaign c
WHERE c.target_audience = 'Social Media Users';
COMPLEX QUERIES:

3. Query 3:
SELECT c.campaign_id, c.cost_details, AVG(pm.metric_value) AS avg_cost_per_lead
FROM Campaign c
LEFT JOIN PerformanceMetrics pm ON c.campaign_id = pm.campaign_id
WHERE pm.metric_name = 'Website Traffic’
GROUP BY c.campaign_id, c.cost_details;
COMPLEX QUERIES:

4. Query 4:
SELECT c.campaign_id, c.cost_details, AVG(pm.metric_value) AS avg_cost_per_lead
FROM Campaign c
LEFT JOIN PerformanceMetrics pm ON c.campaign_id = pm.campaign_id
WHERE pm.metric_name = 'Website Traffic’
GROUP BY c.campaign_id, c.cost_details;
SELECT c.campaign_id, c.cost_details,
SUM(CASE WHEN pm.metric_name = 'Website Traffic' THEN pm.metric_value ELSE 0 END) AS total_leads,
SUM(CASE WHEN pm.metric_name = 'Leads Generated' THEN pm.metric_value ELSE 0 END) AS
total_impressions,
SUM(CASE WHEN pm.metric_name = 'Website Traffic' THEN pm.metric_value ELSE 0 END) / NULLIF(SUM(CASE
WHEN pm.metric_name = 'Leads Generated' THEN pm.metric_value ELSE 0 END), 0) AS conversion_rate
FROM Campaign c
LEFT JOIN PerformanceMetrics pm ON c.campaign_id = pm.campaign_id
GROUP BY c.campaign_id, c.cost_details
HAVING SUM(CASE WHEN pm.metric_name = 'Website Traffic' THEN pm.metric_value ELSE 0 END) > 100 -- High cost
COMPLEX QUERIES:

High cost condition


AND (SUM(CASE WHEN pm.metric_name = 'Website Traffic' THEN pm.metric_value ELSE 0 END) /
NULLIF(SUM(CASE WHEN pm.metric_name = 'Leads Generated' THEN pm.metric_value ELSE 0 END), 0)) < 0.05; --
Low conversion rate condition

You might also like