Computer Science Homework Help

SNHU Database Indexing and Authentication Computer Science Task

 

Overview

In this milestone you will import the Austin Animal Center (AAC) CSV file that you will be using for Project One into MongoDB. You will then formulate both a single and a compound index that will optimize the queries for the scenario. Recall that you can use the explain function to verify the use of indexes in your queries. Finally, you will be asked to create an admin and a user account in Mongo to address security needs.

Note: Every time you connect to your Apporto environment, please start your MongoDB server with either of the command lines:

#start mongo without authentication
/usr/local/bin/mongod_ctl start-noauth

Copy the port number given in the output, for example:

Image of MongoDB command line response, with example Port numbers

Note: Be sure to begin working on your milestone early in the week. One natural stopping point would be after the completion of Part I.

Prompt

Part I: Importing and Indexing a Data Set
You have been asked to import a file for the Grazioso Salvare project. In order to do so, you must complete the following steps:

  1. In Apporto, open the terminal window to access the Linux shell. Upload the Austin Animal Center (AAC) Outcomes data set into MongoDB by importing a CSV file using the appropriate MongoDB import tool. Use the database name “AAC” and collection name “animals”. Complete the import using the mongoimport tool and take screenshots of both the import command and its execution.

    Tip: How to import a CSV file is covered in the mongoimport documentation in the Module Three Resources. The Austin Animal Center (AAC) Outcomes data set has already been uploaded into Apporto in the /usr/local/datasets/ directory. The filename is “aac_shelter_outcomes.csv”.

  1. After importing your data set, start up the mongo shell. Create a simple index on the key “breed”. Show an example query that will use this index and verify that the index will be used with the explain function. Take screenshots of your example query.
  1. Create a compound index that will improve the performance of queries looking for breeds that have an “outcome_type” of “Transfer”. Show an example query that will use this compound index and confirm the index will be used with the explain function. Take screenshots of your example query.

Part II: User Authentication
To comply with your client’s security needs, you have been asked to ensure user authentication to the database by setting up both administrator and user accounts. To achieve this, follow the steps below.

  1. Create an administrator account in the mongo shell by following steps #2–3 of the MongoDB Manual Enable Access Control tutorial. Then exit the mongo shell.

    IMPORTANT: Write down the password for the admin account and keep it somewhere safe. You will need to use this account later in the course.

  1. Enable user authentication for the database by typing the following commands exactly into the Linux shell in Apporto:
    /usr/local/bin/mongod_ctl stop
    /usr/local/bin/mongod_ctl start
    

    You can verify that you have enabled user authentication by accessing MongoDB with your new username/password. Type the following command into the Linux shell to start mongo:

    mongo --authenticationDatabase "admin" -u "admin" -p
    

    This will prompt you to enter your password. Then use the command to show databases to verify that you have set up authentication correctly. If you are not logged in with your admin account, no databases will be viewable.

    Note: These commands have been customized for the Apporto environment. If you are accessing MongoDB on your own machine, refer to the MongoDB Manual Enable Access Control tutorial.

    If you accidentally messed up user authentication, or if you forgot your password, you can disable user authentication with this set of commands:

    /usr/local/bin/mongod_ctl stop
    /usr/local/bin/mongod_ctl start-noauth
    
  1. Create a new user account called “aacuser” for the database AAC in the mongo shell. Refer to steps #6–7 of the MongoDB Manual Enable Access Control tutorial, linked above, to help you with this task. You will need to modify the commands so that the account name is “aacuser”.

    IMPORTANT: Write down the password for the aacuser account and keep it somewhere safe. You will need to use this account later in the course.

  1. Take a screenshot of your login process to MongoDB using the mongo shell. Be sure you can access MongoDB and list the databases using both the admin and aacuser accounts, as this will verify that your accounts are working. You should be able to include the login commands for both accounts in one screenshot, but if you can not, include two screenshots to show both login commands.