SlideShare a Scribd company logo
1 of 35
DB Development work for Association
      of General Contractors
    5394 Engineering Database Design
            Fall 2011, Dr. Weihang Zhu
     Project team: Vaibhav Chauhan, Fatemeh
        Hosseinzadehdastak, Ashish Patel
Presentation Outline
1.        Project Description
     a)        What is the objective of your database?
     b)        Who is your customer?
     c)        What is the requirement from your customer?
     d)        Has your application been reviewed and approved by your customer?
     e)        What have you done for the project overall?
2.        Overview description of the system’s operation and workflow
3.        E-R Diagram
4.        Relational Schema
5.        Lists of the detailed Database Structure
     a)        Tables
     b)        Queries
6.        Technical problems
7.        Conclusions and future work
8.        Acknowledgment
9.        References
Project Description -
          Objective
O Provide an application that can be used by
  the customer to meet their business needs
  efficiently, and in a robust manner.
O To challenge ourselves further, we parsed
  the customer’s existing, unstructured data
  (found to be in first-normal form), into SQL
  commands.
Project Description -
           Customer
O For this project, we reached out to a local
  membership-based trade organization that has
  national presence.
O The Association of General Contractors founded
  in 1918, and currently boasts approximately
  33,000 member firms.
O Our customer, AGC of Southwest Texas, was
  charted in 1940 and currently has 278 member
  companies. The AGC’s Director, Mike White, is a
  believer in adopting technology in the
  construction industry.
Project Description - Requirements
The member companies of the AGC pay an annual membership fee, resulting the
AGC’s need to track payment dates, and use this information to generate
     a)     An accurate list of current members (for the dissemination of
            information to members only),
     b)     A list of pending membership expirations based on last-payment
            date,
     c)     A member’s payment activity, and lastly
     d)     A list of inactive memberships .

Additionally, the AGC wanted the capability to search their database by
      a)       Individual name
      b)       Telephone number
      c)       Fax number
      d)       UCI type: Each company in the database is associated with one or many
               UCI codes that detail the specialties of that company. For example, HB
               Nield & Sons features UCI codes of 22222, 22234, 23423, 23425,
               meaning they specialize in various electrical skills.
Project Description - Customer




O Mr. White commissioned similar work in the recent past.
O Because of the low quality of this previous work and a lack of
  documentation, the database was never used by the AGC’s
  employees. They returned to their Excel spreadsheets.
Before
SELECT Contacts.Company, Contacts.Categories
FROM Contacts;



Only one Contacts
Query and one Table!
Cost AGC Paid to Private Contractor in 2009: $1,500.00
Membership Management
O 90% Customer Relationship Management
  (CRM with membership and transaction
  logging).
O 10% Other Contacts (non-member):
  O Mayor of Beaumont
  O President of Chamber of Commerce
  O Public Figure 3
  O Beaumont Hotel 1
Project Description – What we did!

1. After analyzing the raw database, we
     provided the ER diagram
2.   Relational Schema
3.   Normalization
4.   We provided the Access database
5.   We developed a GUI build in Visual Studio
     using VB.NET
Project Description - How we did it!
O   We began the process by reviewing the 52 columns of the member
    data provided initially by Mr. White, in first-normal form database.
O   Next, the exclusion of some unnecessary and often unused fields such
    as HomeTel#3 and CarPhone#, resulting in 26 columns exported to
    a CSV.
O   Then we imported the raw data into Python 3.2.2 to perform a parsing
    operation that resulted in over 2600 SQL INSERT statements.
O   Access cannot execute multiple SQL statements in a batch, and this
    was unknown to us at the time. Fortunately, Dr. Zhu, suggested using
    MySQL as a temporary storage space for the data, and exporting the
    structured data for import into Access. This process was ultimately
    successful, thanks to Dr. Zhu, and provides the AGC with a
    significant time savings.
O   We designed intuitive Windows forms that met the data entry and
    query needs of the AGC. We faced many challenges at this step.
System Operation – How it Works!!
O   Primarily, the solution is a “transaction-oriented ” database application, however it
    must act as a “display-oriented” application to deliver customer value.
O   When a member company pays their annual dues, and analyst enters a transaction
    record with the current date.
              SELECT      MembershipID, OrganizationID, Expiration_date, [Last Payment Date]
              FROM         tblTransaction
              WHERE       (DateValue([Last Payment Date]) + 365 > NOW())


O   On a monthly basis, the AGC must send out letters reminding their members to remit
    membership dues. Using the “Pending expiration” query, they can quickly generate a
    list of companies which need to be called, mailed, and emailed a reminder.
        SELECT DISTINCT tblOrganization.Organization_Name, DateValue([Last Payment Date])+365 AS Expr1
        FROM tblOrganization INNER JOIN (tblMembership INNER JOIN tblTransaction ON tblMembership.MembershipID =
        tblTransaction.MembershipID) ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID
        WHERE (((DateValue([Last Payment Date])+365)<DateValue(Now())-30 And (DateValue([Last Payment Date])
        +365)>DateValue(Now())-90));


O   If a non-local builder is searching for a local underwater welder , they will
    contact the AGC in search of a list of members that specifically mention the skill in
    their profile. Our application permits the AGC to record those skills by adding them to
    the member organization’s profile through the UCI code form and later return a list
    of active memberships.
E-R Diagram
Relational Schema
Normalized Relation Tables
Access Table Relationships
Project Description – Review Process
O We regularly met or communicated by email with AGC.
O Each of the forms delivered in the resulting application
  have been approved by him.
O He wants our team to continue development on the
  application to meet the needs of the AGC in the future.
O Mr. White foresees changes in local legislation that will
  require the AGC to retain additional data about their
  members, create filters on this information, and invite
  members based on their possession or fulfillment of
  certain criteria.
Tables
O The resulting database features 14 tables, 10 of which are
  potentially static, and 4 of which will be populated with new or
  edited records as the AGC utilizes the application in their
  operations.

O Category*, Fax_Numbers, Individuals, IndividualSkillsRelation,
  JobTitle, Membership, Organization, Organization_Addresses,
  Organization_Individual_Relation, Organization_UCI_Relation,
  Skills, StatesList, Telephone_Numbers, Transaction,
  UCIDescription

O *Category table was added by the customer very late in the
  process, and is not reflected in the original ER and Relational
  Table Diagrams.
Query 1
All memberships that will expire in 30-90 days (TodayDate-
(LastPaid+365 ) < 30)

SELECT DISTINCT tblOrganization.Organization_Name,
DateValue([Last Payment Date])+365 AS Expr1

FROM tblOrganization INNER JOIN (tblMembership INNER JOIN
tblTransaction ON tblMembership.MembershipID =
tblTransaction.MembershipID) ON
tblOrganization.ORGANIZATION_ID =
tblTransaction.OrganizationID

WHERE (((DateValue([Last Payment Date])
+365)<DateValue(Now())-30 And (DateValue([Last Payment
Date])+365)>DateValue(Now())-90));
Query 2
What are the email addresses for all active members

SELECT DISTINCT tblOrganization.[E-mail], DateValue([last
payment Date])+365 AS [Activate Status]

FROM tblOrganization INNER JOIN (tblMembership INNER
JOIN tblTransaction ON tblMembership.MembershipID =
tblTransaction.MembershipID) ON
tblOrganization.ORGANIZATION_ID =
tblTransaction.OrganizationID

WHERE (((DateValue([last payment Date])+365)>Now()));
Query 3
Inactive Members (where TodayDate-(LastPaid+365 ) < 0)

SELECT DISTINCT tblOrganization.Organization_Name,
DateValue([Last Payment Date])+365 AS Expr1

FROM tblOrganization INNER JOIN (tblMembership INNER
JOIN tblTransaction ON tblMembership.MembershipID =
tblTransaction.MembershipID) ON
tblOrganization.ORGANIZATION_ID =
tblTransaction.OrganizationID

WHERE (((DateValue([Last Payment Date])+365)>Now()));
Query 4
Query by UCI Code and Active

SELECT DISTINCT tbltelephone_numbers.[Phone#],
tblOrganization.Organization_Name, tblOrganization.[E-mail],
tblOrganization_UCI_Relation.[UIC code], DateValue([Last Payment Date])
+365 AS [activate status]

FROM ((tblOrganization INNER JOIN tblOrganization_UCI_Relation ON
tblOrganization.ORGANIZATION_ID = tblOrganization_UCI_Relation.
[Organization_ID]) INNER JOIN tbltelephone_numbers ON
tblOrganization.ORGANIZATION_ID =
tbltelephone_numbers.Organization_ID) INNER JOIN tblTransaction ON
tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID

WHERE (((tblOrganization_UCI_Relation.[UIC code])=[?]) AND
((DateValue([Last Payment Date])+365)>Now()));
Query 5
Query by Company Name, Telephone, FAX, or Address

SELECT tblOrganization.Organization_Name, tblOrganization.[E-mail],
tbltelephone_numbers.[Phone#], tblFAX_Numbers.[FAX#]

FROM (((tblFAX_Numbers INNER JOIN tblOrganization ON
tblFAX_Numbers.Organization_ID = tblOrganization.ORGANIZATION_ID)
INNER JOIN tblOrganization_Addresses ON
tblOrganization.ORGANIZATION_ID =
tblOrganization_Addresses.Organization_ID) INNER JOIN
tbltelephone_numbers ON tblOrganization.ORGANIZATION_ID =
tbltelephone_numbers.Organization_ID)

WHERE (tblOrganization_Addresses.ZIP_Code = ?) OR
(tbltelephone_numbers.[Phone#] = ?) OR (tblFAX_Numbers.[FAX#] = ?)
Query 6
Query by Individual Name

SELECT tblOrganization.Organization_Name, tblOrganization.WEBSITE,
tblOrganization.[E-mail], tblOrganization.Category_ID,
tblMembership.JoiningDate, tblMembership.Billing_Information,
tblTransaction.Expiration_date, tblTransaction.[Last Payment Date]

FROM ((((tblIndividual INNER JOIN tblOrganization_Individual_Relation ON
tblIndividual.Individual_ID =
tblOrganization_Individual_Relation.Individual_ID) INNER JOIN
tblOrganization ON tblOrganization_Individual_Relation.Organization_ID =
tblOrganization.ORGANIZATION_ID) INNER JOIN tblTransaction ON
tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID) INNER
JOIN tblMembership ON tblTransaction.MembershipID =
tblMembership.MembershipID)

WHERE (tblIndividual.First_Name = ?) OR (tblIndividual.Last_name = ?)
Technical Difficulties!!!!
The storage of new information
OFirst, we attempted to programmatically access the database , yet
often received an error (“passing null values”) when executing the UPDATE
command.
OAs an alternative, we created a newRow object and when calling the
datatable.Rows.Add(NewRow) function, we experienced a different error.
OSome of the errors we received when attempting to programmatically add
and edit data where similar to these:
    O   “The record cannot be deleted or changed because table
        'tblFAX_Numbers' includes related records.”
    O   “An INSERT INTO query cannot contain a multi-valued field.”
    O   “Reference to a non-shared member requires an object reference.”
OInstead, we used Visual Studio TableAdapters to maintain the Connection
objects. The simplest successful implementation used the
TableAdapterManager that was automatically created when dragging a
table node from the Data Sources onto a form in Design View.
Technical Difficulties - Python
 O We took a “crash course” in Python 3.2.2 using
   resources such as docs.python.org and free training
   videos readily available on YouTube.com.
 O We abandoned sub-projects such as parsing the UCI-
   Organization relation.
       O cursor positioning,
       O reading lines versus characters
       O character substitutions
 O However, we did successfully generate approximately
   2600 lines of SQL INSERT statements using the Python
   environment.
 O Access has no method for batch processing
   these statements, and thanks to Dr. Zhu, we were
   able to import the large volume of data into our
   application
The Number of Tables and Forms

 18 Tables
 19 Forms
 115 Button
Screenshot 1 - Welcome
Screenshot 2 – AUD Org
Screenshot 3 – Individual
Screenshot 4 - Membership
Screenshot 5 – Query
Screenshot 5 – Query
References
O MSDN
O Python.org
O Text Processing with Python
O Developing Web-Enabled Decision Support
    Systems
O   Sourcecodester.com
O   Stackoverflow.com
O   YouTube.com – Python Basics, Ep1-4, by
    ZJunaideen
O   http://www.penzilla.net/tutorials/python/fileio/
Conclusions & Future Work
O First, the challenges we faced, and the days we endured trying
  to answer questions from hundreds of blogs and web-how-to’s
  showed us how prevalent and version-specific Visual Studio
  and Access are as development environments.
O How much having an ER diagram and the relational tables can
  help us. The practice of normalization can help us to resolve
  clear relationships between tables and distill binary and
  ternary relationships, resulting in efficient data storage and
  makes complex queries more stable.
O We fully expect the AGC to demand 100% functionality, and
  while we feel we are technically able to deliver, we will require
  outside assistance.
O Future development projects in Objective-C and Java this
  winter.
Acknowledgment
O The teammates for their many 4am nights and dedication to
  understanding hierarchical data stability, database connections,
  parsing, creating SQL statements in-code, and teamwork.
O Like to acknowledge the patience of Mike White, the Director of the
  AGC for his co-operation and willingness to provide his time and
  experience as we learned the business processes involved in operating
  a membership-based organization.
O Dr. Zhu for his lectures and for providing us with the benefit of his
  experience. We would especially like to thank him for his attention and
  assistance in solving problems we faced with executing batch
  commands output by Python in MySQL, and importing the resulting
  data into Access.
O We would like to thank the rest of the class for their communication
  and assistance throughout the process. Learning from your challenges
  and solutions gave us a competitive motivation, but helping each other
  solve problems made us feel our class has the potential to create great
  solutions.

More Related Content

Viewers also liked

Cadena de oro del consumismo
Cadena de oro del consumismoCadena de oro del consumismo
Cadena de oro del consumismovictoriacascot
 
Paises ingles
Paises   inglesPaises   ingles
Paises inglesmapague
 
Taller Interno de Hábitos
Taller Interno de Hábitos Taller Interno de Hábitos
Taller Interno de Hábitos Stefan Pribnow
 
Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...
Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...
Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...Nayeli Amil Zeab
 
Golden ratio point of the earth
Golden ratio point of the earthGolden ratio point of the earth
Golden ratio point of the earthEnayatali Agharia
 
Soldados via sacra salas
Soldados via sacra salasSoldados via sacra salas
Soldados via sacra salashpdf
 
Why CEOs should play Magic the Gathering
Why CEOs should play Magic the GatheringWhy CEOs should play Magic the Gathering
Why CEOs should play Magic the GatheringStefan Pribnow
 
King Tutankhamen
King TutankhamenKing Tutankhamen
King TutankhamenTuhin N
 

Viewers also liked (11)

Cadena de oro del consumismo
Cadena de oro del consumismoCadena de oro del consumismo
Cadena de oro del consumismo
 
Paises ingles
Paises   inglesPaises   ingles
Paises ingles
 
Taller Interno de Hábitos
Taller Interno de Hábitos Taller Interno de Hábitos
Taller Interno de Hábitos
 
.
..
.
 
Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...
Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...
Discriminación hacia los Pueblos Indígenas en México. Una Asignatura pendient...
 
Milacron Maxima MG 4000
Milacron Maxima MG 4000Milacron Maxima MG 4000
Milacron Maxima MG 4000
 
.
..
.
 
Golden ratio point of the earth
Golden ratio point of the earthGolden ratio point of the earth
Golden ratio point of the earth
 
Soldados via sacra salas
Soldados via sacra salasSoldados via sacra salas
Soldados via sacra salas
 
Why CEOs should play Magic the Gathering
Why CEOs should play Magic the GatheringWhy CEOs should play Magic the Gathering
Why CEOs should play Magic the Gathering
 
King Tutankhamen
King TutankhamenKing Tutankhamen
King Tutankhamen
 

Similar to DB Development work

Effectively Planning for an Enterprise-Scale CMDB Implementation
Effectively Planning for an Enterprise-Scale CMDB ImplementationEffectively Planning for an Enterprise-Scale CMDB Implementation
Effectively Planning for an Enterprise-Scale CMDB ImplementationAntonio Rolle
 
Mi0036 business intelligence & tools...
Mi0036  business intelligence & tools...Mi0036  business intelligence & tools...
Mi0036 business intelligence & tools...smumbahelp
 
ClearCost Introduction 2015
ClearCost Introduction 2015ClearCost Introduction 2015
ClearCost Introduction 2015Mark S. Mahre
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus workKevinPSF
 
Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul | Embracing sim...
Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul  | Embracing sim...Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul  | Embracing sim...
Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul | Embracing sim...LeanKanbanIndia
 
Kathlenn Gaw - Consultant Profile
Kathlenn Gaw - Consultant ProfileKathlenn Gaw - Consultant Profile
Kathlenn Gaw - Consultant ProfileKathlenn Gaw
 
SEM 3 MIS SUMMER 2014 ASSIGNMENTS
SEM 3 MIS SUMMER 2014 ASSIGNMENTSSEM 3 MIS SUMMER 2014 ASSIGNMENTS
SEM 3 MIS SUMMER 2014 ASSIGNMENTSsolved_assignments
 
Week7 Submit Analysis And Gain Agreement
Week7 Submit Analysis And Gain AgreementWeek7 Submit Analysis And Gain Agreement
Week7 Submit Analysis And Gain Agreementhapy
 
CV_Mudit IBM MCA 10+ years MSBI, SQL, .NET
CV_Mudit IBM MCA 10+ years MSBI, SQL, .NETCV_Mudit IBM MCA 10+ years MSBI, SQL, .NET
CV_Mudit IBM MCA 10+ years MSBI, SQL, .NETMudit Saxena
 
SECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docx
SECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docxSECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docx
SECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docxbagotjesusa
 
CDI-MDMSummit.290213824
CDI-MDMSummit.290213824CDI-MDMSummit.290213824
CDI-MDMSummit.290213824ypai
 
Mi0036 business intelligence & tools...
Mi0036  business intelligence & tools...Mi0036  business intelligence & tools...
Mi0036 business intelligence & tools...smumbahelp
 
Mi0036 business intelligence & tools...
Mi0036  business intelligence & tools...Mi0036  business intelligence & tools...
Mi0036 business intelligence & tools...smumbahelp
 
Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2
Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2
Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2Saranya Mohan
 
Kevin Bengtson Portfolio
Kevin Bengtson PortfolioKevin Bengtson Portfolio
Kevin Bengtson PortfolioKbengt521
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
 
Bhadale group of companies - Org service module - Design doc
Bhadale group of companies - Org service module - Design docBhadale group of companies - Org service module - Design doc
Bhadale group of companies - Org service module - Design docVijayananda Mohire
 

Similar to DB Development work (20)

Effectively Planning for an Enterprise-Scale CMDB Implementation
Effectively Planning for an Enterprise-Scale CMDB ImplementationEffectively Planning for an Enterprise-Scale CMDB Implementation
Effectively Planning for an Enterprise-Scale CMDB Implementation
 
Mi0036 business intelligence & tools...
Mi0036  business intelligence & tools...Mi0036  business intelligence & tools...
Mi0036 business intelligence & tools...
 
Nithin(1)
Nithin(1)Nithin(1)
Nithin(1)
 
ClearCost Introduction 2015
ClearCost Introduction 2015ClearCost Introduction 2015
ClearCost Introduction 2015
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus work
 
Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul | Embracing sim...
Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul  | Embracing sim...Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul  | Embracing sim...
Kanban India 2023 | Jayalatha Ramachandran and Sanjay Adasul | Embracing sim...
 
Kathlenn Gaw - Consultant Profile
Kathlenn Gaw - Consultant ProfileKathlenn Gaw - Consultant Profile
Kathlenn Gaw - Consultant Profile
 
SEM 3 MIS SUMMER 2014 ASSIGNMENTS
SEM 3 MIS SUMMER 2014 ASSIGNMENTSSEM 3 MIS SUMMER 2014 ASSIGNMENTS
SEM 3 MIS SUMMER 2014 ASSIGNMENTS
 
Week7 Submit Analysis And Gain Agreement
Week7 Submit Analysis And Gain AgreementWeek7 Submit Analysis And Gain Agreement
Week7 Submit Analysis And Gain Agreement
 
CV_Mudit IBM MCA 10+ years MSBI, SQL, .NET
CV_Mudit IBM MCA 10+ years MSBI, SQL, .NETCV_Mudit IBM MCA 10+ years MSBI, SQL, .NET
CV_Mudit IBM MCA 10+ years MSBI, SQL, .NET
 
Shrikant Ramugade
Shrikant RamugadeShrikant Ramugade
Shrikant Ramugade
 
SECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docx
SECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docxSECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docx
SECTION I - EXECUTIVE SUMMARY Remember, this will be an ex.docx
 
CDI-MDMSummit.290213824
CDI-MDMSummit.290213824CDI-MDMSummit.290213824
CDI-MDMSummit.290213824
 
Mi0036 business intelligence & tools...
Mi0036  business intelligence & tools...Mi0036  business intelligence & tools...
Mi0036 business intelligence & tools...
 
Mi0036 business intelligence & tools...
Mi0036  business intelligence & tools...Mi0036  business intelligence & tools...
Mi0036 business intelligence & tools...
 
Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2
Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2
Release-3_TSD_Source_to_LZ_-_CIS_-_v1.2 2
 
Kevin Bengtson Portfolio
Kevin Bengtson PortfolioKevin Bengtson Portfolio
Kevin Bengtson Portfolio
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
 
Bhadale group of companies - Org service module - Design doc
Bhadale group of companies - Org service module - Design docBhadale group of companies - Org service module - Design doc
Bhadale group of companies - Org service module - Design doc
 
SaurabhKasyap
SaurabhKasyapSaurabhKasyap
SaurabhKasyap
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

DB Development work

  • 1. DB Development work for Association of General Contractors 5394 Engineering Database Design Fall 2011, Dr. Weihang Zhu Project team: Vaibhav Chauhan, Fatemeh Hosseinzadehdastak, Ashish Patel
  • 2. Presentation Outline 1. Project Description a) What is the objective of your database? b) Who is your customer? c) What is the requirement from your customer? d) Has your application been reviewed and approved by your customer? e) What have you done for the project overall? 2. Overview description of the system’s operation and workflow 3. E-R Diagram 4. Relational Schema 5. Lists of the detailed Database Structure a) Tables b) Queries 6. Technical problems 7. Conclusions and future work 8. Acknowledgment 9. References
  • 3. Project Description - Objective O Provide an application that can be used by the customer to meet their business needs efficiently, and in a robust manner. O To challenge ourselves further, we parsed the customer’s existing, unstructured data (found to be in first-normal form), into SQL commands.
  • 4. Project Description - Customer O For this project, we reached out to a local membership-based trade organization that has national presence. O The Association of General Contractors founded in 1918, and currently boasts approximately 33,000 member firms. O Our customer, AGC of Southwest Texas, was charted in 1940 and currently has 278 member companies. The AGC’s Director, Mike White, is a believer in adopting technology in the construction industry.
  • 5. Project Description - Requirements The member companies of the AGC pay an annual membership fee, resulting the AGC’s need to track payment dates, and use this information to generate a) An accurate list of current members (for the dissemination of information to members only), b) A list of pending membership expirations based on last-payment date, c) A member’s payment activity, and lastly d) A list of inactive memberships . Additionally, the AGC wanted the capability to search their database by a) Individual name b) Telephone number c) Fax number d) UCI type: Each company in the database is associated with one or many UCI codes that detail the specialties of that company. For example, HB Nield & Sons features UCI codes of 22222, 22234, 23423, 23425, meaning they specialize in various electrical skills.
  • 6. Project Description - Customer O Mr. White commissioned similar work in the recent past. O Because of the low quality of this previous work and a lack of documentation, the database was never used by the AGC’s employees. They returned to their Excel spreadsheets.
  • 7. Before SELECT Contacts.Company, Contacts.Categories FROM Contacts; Only one Contacts Query and one Table! Cost AGC Paid to Private Contractor in 2009: $1,500.00
  • 8. Membership Management O 90% Customer Relationship Management (CRM with membership and transaction logging). O 10% Other Contacts (non-member): O Mayor of Beaumont O President of Chamber of Commerce O Public Figure 3 O Beaumont Hotel 1
  • 9. Project Description – What we did! 1. After analyzing the raw database, we provided the ER diagram 2. Relational Schema 3. Normalization 4. We provided the Access database 5. We developed a GUI build in Visual Studio using VB.NET
  • 10. Project Description - How we did it! O We began the process by reviewing the 52 columns of the member data provided initially by Mr. White, in first-normal form database. O Next, the exclusion of some unnecessary and often unused fields such as HomeTel#3 and CarPhone#, resulting in 26 columns exported to a CSV. O Then we imported the raw data into Python 3.2.2 to perform a parsing operation that resulted in over 2600 SQL INSERT statements. O Access cannot execute multiple SQL statements in a batch, and this was unknown to us at the time. Fortunately, Dr. Zhu, suggested using MySQL as a temporary storage space for the data, and exporting the structured data for import into Access. This process was ultimately successful, thanks to Dr. Zhu, and provides the AGC with a significant time savings. O We designed intuitive Windows forms that met the data entry and query needs of the AGC. We faced many challenges at this step.
  • 11. System Operation – How it Works!! O Primarily, the solution is a “transaction-oriented ” database application, however it must act as a “display-oriented” application to deliver customer value. O When a member company pays their annual dues, and analyst enters a transaction record with the current date. SELECT MembershipID, OrganizationID, Expiration_date, [Last Payment Date] FROM tblTransaction WHERE (DateValue([Last Payment Date]) + 365 > NOW()) O On a monthly basis, the AGC must send out letters reminding their members to remit membership dues. Using the “Pending expiration” query, they can quickly generate a list of companies which need to be called, mailed, and emailed a reminder. SELECT DISTINCT tblOrganization.Organization_Name, DateValue([Last Payment Date])+365 AS Expr1 FROM tblOrganization INNER JOIN (tblMembership INNER JOIN tblTransaction ON tblMembership.MembershipID = tblTransaction.MembershipID) ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID WHERE (((DateValue([Last Payment Date])+365)<DateValue(Now())-30 And (DateValue([Last Payment Date]) +365)>DateValue(Now())-90)); O If a non-local builder is searching for a local underwater welder , they will contact the AGC in search of a list of members that specifically mention the skill in their profile. Our application permits the AGC to record those skills by adding them to the member organization’s profile through the UCI code form and later return a list of active memberships.
  • 16. Project Description – Review Process O We regularly met or communicated by email with AGC. O Each of the forms delivered in the resulting application have been approved by him. O He wants our team to continue development on the application to meet the needs of the AGC in the future. O Mr. White foresees changes in local legislation that will require the AGC to retain additional data about their members, create filters on this information, and invite members based on their possession or fulfillment of certain criteria.
  • 17. Tables O The resulting database features 14 tables, 10 of which are potentially static, and 4 of which will be populated with new or edited records as the AGC utilizes the application in their operations. O Category*, Fax_Numbers, Individuals, IndividualSkillsRelation, JobTitle, Membership, Organization, Organization_Addresses, Organization_Individual_Relation, Organization_UCI_Relation, Skills, StatesList, Telephone_Numbers, Transaction, UCIDescription O *Category table was added by the customer very late in the process, and is not reflected in the original ER and Relational Table Diagrams.
  • 18. Query 1 All memberships that will expire in 30-90 days (TodayDate- (LastPaid+365 ) < 30) SELECT DISTINCT tblOrganization.Organization_Name, DateValue([Last Payment Date])+365 AS Expr1 FROM tblOrganization INNER JOIN (tblMembership INNER JOIN tblTransaction ON tblMembership.MembershipID = tblTransaction.MembershipID) ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID WHERE (((DateValue([Last Payment Date]) +365)<DateValue(Now())-30 And (DateValue([Last Payment Date])+365)>DateValue(Now())-90));
  • 19. Query 2 What are the email addresses for all active members SELECT DISTINCT tblOrganization.[E-mail], DateValue([last payment Date])+365 AS [Activate Status] FROM tblOrganization INNER JOIN (tblMembership INNER JOIN tblTransaction ON tblMembership.MembershipID = tblTransaction.MembershipID) ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID WHERE (((DateValue([last payment Date])+365)>Now()));
  • 20. Query 3 Inactive Members (where TodayDate-(LastPaid+365 ) < 0) SELECT DISTINCT tblOrganization.Organization_Name, DateValue([Last Payment Date])+365 AS Expr1 FROM tblOrganization INNER JOIN (tblMembership INNER JOIN tblTransaction ON tblMembership.MembershipID = tblTransaction.MembershipID) ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID WHERE (((DateValue([Last Payment Date])+365)>Now()));
  • 21. Query 4 Query by UCI Code and Active SELECT DISTINCT tbltelephone_numbers.[Phone#], tblOrganization.Organization_Name, tblOrganization.[E-mail], tblOrganization_UCI_Relation.[UIC code], DateValue([Last Payment Date]) +365 AS [activate status] FROM ((tblOrganization INNER JOIN tblOrganization_UCI_Relation ON tblOrganization.ORGANIZATION_ID = tblOrganization_UCI_Relation. [Organization_ID]) INNER JOIN tbltelephone_numbers ON tblOrganization.ORGANIZATION_ID = tbltelephone_numbers.Organization_ID) INNER JOIN tblTransaction ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID WHERE (((tblOrganization_UCI_Relation.[UIC code])=[?]) AND ((DateValue([Last Payment Date])+365)>Now()));
  • 22. Query 5 Query by Company Name, Telephone, FAX, or Address SELECT tblOrganization.Organization_Name, tblOrganization.[E-mail], tbltelephone_numbers.[Phone#], tblFAX_Numbers.[FAX#] FROM (((tblFAX_Numbers INNER JOIN tblOrganization ON tblFAX_Numbers.Organization_ID = tblOrganization.ORGANIZATION_ID) INNER JOIN tblOrganization_Addresses ON tblOrganization.ORGANIZATION_ID = tblOrganization_Addresses.Organization_ID) INNER JOIN tbltelephone_numbers ON tblOrganization.ORGANIZATION_ID = tbltelephone_numbers.Organization_ID) WHERE (tblOrganization_Addresses.ZIP_Code = ?) OR (tbltelephone_numbers.[Phone#] = ?) OR (tblFAX_Numbers.[FAX#] = ?)
  • 23. Query 6 Query by Individual Name SELECT tblOrganization.Organization_Name, tblOrganization.WEBSITE, tblOrganization.[E-mail], tblOrganization.Category_ID, tblMembership.JoiningDate, tblMembership.Billing_Information, tblTransaction.Expiration_date, tblTransaction.[Last Payment Date] FROM ((((tblIndividual INNER JOIN tblOrganization_Individual_Relation ON tblIndividual.Individual_ID = tblOrganization_Individual_Relation.Individual_ID) INNER JOIN tblOrganization ON tblOrganization_Individual_Relation.Organization_ID = tblOrganization.ORGANIZATION_ID) INNER JOIN tblTransaction ON tblOrganization.ORGANIZATION_ID = tblTransaction.OrganizationID) INNER JOIN tblMembership ON tblTransaction.MembershipID = tblMembership.MembershipID) WHERE (tblIndividual.First_Name = ?) OR (tblIndividual.Last_name = ?)
  • 24. Technical Difficulties!!!! The storage of new information OFirst, we attempted to programmatically access the database , yet often received an error (“passing null values”) when executing the UPDATE command. OAs an alternative, we created a newRow object and when calling the datatable.Rows.Add(NewRow) function, we experienced a different error. OSome of the errors we received when attempting to programmatically add and edit data where similar to these: O “The record cannot be deleted or changed because table 'tblFAX_Numbers' includes related records.” O “An INSERT INTO query cannot contain a multi-valued field.” O “Reference to a non-shared member requires an object reference.” OInstead, we used Visual Studio TableAdapters to maintain the Connection objects. The simplest successful implementation used the TableAdapterManager that was automatically created when dragging a table node from the Data Sources onto a form in Design View.
  • 25. Technical Difficulties - Python O We took a “crash course” in Python 3.2.2 using resources such as docs.python.org and free training videos readily available on YouTube.com. O We abandoned sub-projects such as parsing the UCI- Organization relation. O cursor positioning, O reading lines versus characters O character substitutions O However, we did successfully generate approximately 2600 lines of SQL INSERT statements using the Python environment. O Access has no method for batch processing these statements, and thanks to Dr. Zhu, we were able to import the large volume of data into our application
  • 26. The Number of Tables and Forms  18 Tables  19 Forms  115 Button
  • 27. Screenshot 1 - Welcome
  • 28. Screenshot 2 – AUD Org
  • 29. Screenshot 3 – Individual
  • 30. Screenshot 4 - Membership
  • 33. References O MSDN O Python.org O Text Processing with Python O Developing Web-Enabled Decision Support Systems O Sourcecodester.com O Stackoverflow.com O YouTube.com – Python Basics, Ep1-4, by ZJunaideen O http://www.penzilla.net/tutorials/python/fileio/
  • 34. Conclusions & Future Work O First, the challenges we faced, and the days we endured trying to answer questions from hundreds of blogs and web-how-to’s showed us how prevalent and version-specific Visual Studio and Access are as development environments. O How much having an ER diagram and the relational tables can help us. The practice of normalization can help us to resolve clear relationships between tables and distill binary and ternary relationships, resulting in efficient data storage and makes complex queries more stable. O We fully expect the AGC to demand 100% functionality, and while we feel we are technically able to deliver, we will require outside assistance. O Future development projects in Objective-C and Java this winter.
  • 35. Acknowledgment O The teammates for their many 4am nights and dedication to understanding hierarchical data stability, database connections, parsing, creating SQL statements in-code, and teamwork. O Like to acknowledge the patience of Mike White, the Director of the AGC for his co-operation and willingness to provide his time and experience as we learned the business processes involved in operating a membership-based organization. O Dr. Zhu for his lectures and for providing us with the benefit of his experience. We would especially like to thank him for his attention and assistance in solving problems we faced with executing batch commands output by Python in MySQL, and importing the resulting data into Access. O We would like to thank the rest of the class for their communication and assistance throughout the process. Learning from your challenges and solutions gave us a competitive motivation, but helping each other solve problems made us feel our class has the potential to create great solutions.