WEB-BASED CASE STUDY, BBC DIGITAL MEDIA INITIATIVE REVISITED.

WEB-BASED CASE

BBC Digital Media Initiative Revisited 

The National Audit Office (NAO) scrutinizes public spending in the United Kingdom. Its memorandum on the BBC’s DMI project reported on several key findings. First, the in-house team was severely challenged by the fact that the project was already 18 months behind schedule when they began work on the project. Second, the technology team issued releases throughout the project that did not meet end-user expectations and eroded confidence in the project. Third, the BBC focused more on the technological development rather than on encouraging organization-wide changes in workflow that would encourage adoption. Finally, the NAO concluded, the DMI lacked governance arrangements for the scale, risk, and complexity of the project.

Do research online to identify the capabilities of digital asset management software. What are the top rated digital asset management software products? Who uses this software?

Given the NAO’s findings and what you discover about available off-the-shelf products, would it have been wiser for the BBC to adopt a collection of these existing products?

 What actions would be necessary to gain the cooperation of the business units to incorporate this collection of products into their work processes? 

Answer all the questions 1000 words.NO PLAYGIRIZUM. PLAGIARISM REPORT NEEDED.SUBMIT IN TIME.

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

Windows ProDiscover Forensics Lab

Advanced Computer Forensics

Windows ProDiscover Forensics Lab

This lab is a replacement for the EnCase lab (122) for students who have been unable to access EnCase through RLES. In order to do this lab, you will need to download and install ProDiscover Basic (make sure to pick 32-bit or 64-bit depending on your version of Windows) from this URL: http://www.techpathways.com/desktopdefault.aspx?tabindex=8&tabid=14 (scroll down until you see the download links at the bottom of the page). You will also need to download a copy of the image files for this lab, 123img.zip. These image files are distributed under the GPL and were originally created by Brian Carrier.

Instructions appear as bullet points, questions are numbered and bolded.

Instructions & Questions

  • Start ProDiscover Basic.
  • Create a new project for this laboratory. Give it a unique number and name.
  • Click “Add” then “Image File” and add “123img1.dd”.
  • Click the “Action” menu then generate “OS Info”. This adds some information about the image to the report, which you can view at any time during your examination by clicking on “View” then “Report”.
  1. What is the file system of this image file?
  2. What is the volume name?
  • Go to “Cluster View” and click on the image.
  1. How many clusters are used on this image file?
  • Go to “Content View” and click on the image.
  1. List all the Deleted files recovered by ProDiscover in a table – and calculate the MD5 hash value for each deleted file.
  2. Is there anything special about any of the files?
  • ProDiscover will use the time zone setting of your examiner workstation if no time zone is set for the evidence. When you acquire a computer as evidence it is important to make note of the computer’s time and time zone, especially if you need to correlate evidence from different time zones (never assume the time or time zone on a computer is correct.)
  1. Where does the Time Zone information reside in a Windows system?
  • Set the timezone by clicking on File, then Preferences. The timezone should be US Central Time in this particular case (the image file has been extracted from a computer in that timezone although it is not an image of the system partition so there is no way to find the computer’s actual timezone from the image itself).
  1. What is the latest file creation time on the image?
  2. Which files are resident files? Hint: you can right-click on a file and say “Show Cluster Numbers” to see the cluster/s in which the file is stored – you can do this for the $MFT of the disk image to see which clusters are allocated to the $MFT.
  • Add the second image to the case – “123img2.dd”
  • Go to the “Content View” and click “All Files”.
  • Go to the “View” menu and select “Gallery View”.
  1. Which files display a thumbnail in Gallery View?
  2. Are there any files with mismatching file extensions? If so, which ones? Identify their types according to their extension versus their actual type and explain how you have identified the actual type.
  • Disable Gallery View.
  • Extract all JPEG files from the image by selecting each of them. You will be prompted to add a comment about the file for the report. Record “JPEG file” and whether the file has been hidden, deleted, mislabelled or is in any other way special.
  • Right-click on a file and click “Copy All Selected Files”. Save them in a temporary directory on your computer.
  1. Paste each JPEG file from your temporary directory into your submission document as an embedded image.
  2. Do you think you have identified every JPEG file in the image? Hint: You can search for the JPEG file header by clicking on “Search”, selecting “Hex” and searching for the pattern FFD8. Do any files contain the pattern which do not appear in your temporary directory? If so, which ones?
  3. Create a table for all files on the second image, listing each file’s name and MD5 hash value.

 

Your answers to all questions should be stored in a LibreOffice document, Word document or PDF, and uploaded to Dropbox in the “EnCase Lab” folder as this exercise replaces the EnCase lab.

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

Ch7 Mini-Case III: EUREKA Discussion (7.2; 7.3, 7.4) 200 Words And 100 Words Respond

please i need this in 6 hours

Chapter 7 Wired and Wireless LAN

Purpose

To provide you the opportunity to research and illustrate the best practice recommendations for LAN design.

Directions

  1. Read the following scenario and answer the questions that follow in the discussion board area of class. Provide a thoughtful and informative response to the questions; you should be able to support your recommendations. Be sure to support your ideas with evidence gathered from reading the text or other outside sources. Be sure to give credit to the sources where you find evidence. Use an attribution like “According to the text,” or “According to Computer Weekly website” in your response. Your response should be a minimum of 200 words.
  2. Respond to at least one of your classmates’ posting. Your response should at a minimum of 100 words. A response like “I agree” or “Yes, you are correct” does not contribute to a robust discussion. Explain why you agree or disagree; share our own personal experience or knowledge gained from your readings.
  3. Submit this assignment in the Discussion Board. 

Scenario
Eureka is a telephone and Internet-based concierge services that specializes in obtaining things that are hard to find (e.g. Super Bowl tickets, first  edition books from the 1500s, Faberge eggs). It currently employs 60 staff members who collectively provide 24-hour coverage (over three shifts). They answer the phones and respond to requests entered on the Eureka! Web site. Much of their work is spent on the phone and on computers searching on the Internet. The company has just leased a new office building and is about to wire it. They have bids from different companies to install

(1) 100-Base T network

(2) Wi-Fi network What would you recommend? Why? In your proposal, include a diagram of our wired or wireless network.

Grading

This assignment is worth 50 points. I will grade your responses based on accuracy and completeness. Your initial posting should be at least 200 words and your response to at least one classmate should be at least 100 words.

i have attached a picture and its the post you will be responding too with 100 words or you can see below to respond.

In the situation of the Mini-case III, the telephone and Internet-based concierge services named Eureka, needs to wire a new office. The company has the choice between a 100Base-T network and a Wi-Fi network. According to me, I would recommend the company to install a 100Base-T network. During this study, I will explain my choice.

First of all, my choice of this type of network is related to two main reasons. The first reason is the connection speed. According to the book in Chapter 7 p.188, the 100Base-T network supports data transfer rates up to 100 Mbps. According to Webopedia website, the 100Base-T network is 10 times faster than Ethernet and often referred to as “Fast Ethernet”. It’s important to mention that because Eureka is an internet-based company which employs 60 staff members who work a lot. The employees will need a fast connection to perform their work. However, it could be challenging to use a Wi-Fi network. Even though the wireless network is faster than the wired network, the 100Base-T network will be a better choice in this case because the Wi-Fi network would be overloaded due to the amount of work in the company.

Secondly, apart from the connection speed, I chose the 100Base-T network instead of the Wi-Fi network, because of security. We all know that security is very important for telephone and internet-based companies since they have customers’ personal information on file. If Eureka installs a wired network, all personal data will be stored and only the workers will have access to that. However, the Wi-Fi network is less secured. According to Lifewire website, signals from most wireless local area networks pass through exterior walls and into nearby streets or parking lots. In the Eureka situation, insecurity of the connection will be a constraint for the company.

Definitely, installing a 100Base-T network instead of a Wi-Fi network will be advantageous for Eureka. Every employee will be reassured to do his job safely and efficiently. The company will not receive complaints from customers because workers will do their work on time.

 

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

CSIS 330 Quiz 7 Liberty University

IMPORTANT: AFTER PURCHASE, LOG IN TO YOUR ACCOUNT AND SCROLL DOWN BELOW THIS PAGE TO DOWNLOAD FILES WITH ANSWERS.

  1. Traffic cannot be forwarded between subnets without the use of a router.
  2. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network.  You know that the subnet mask will be 255.255.255.252. Therefore, what is the new slash prefix of the network address?
  3. You need to subnet a network that has 5 subnets, each with at least 16 hosts.  Which subnet mask would you use?
  4. The IP address 198.10.132.67 /26 is a network address.
  5. A new department has been established with 511 hosts that require addresses.  Currently, the company uses the 10.20.0.0/16 address space.  How many bits must the network administrator borrow to provide addresses for this subnet without wasting addresses?
  6. In subnetting, borrowing bits from the host portion of the address results in more host addresses that can be assigned but fewer subnets that can be defined.
  7. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network. You know that you need at least 6 subnets.   How many hosts per subnet will be possible in the new design?
  8. To determine whether traffic on a network is local or remote, a router uses a ______________________.
  9. Within a network, there are two addresses that cannot be assigned to devices.  These addresses are  the __________________.
  10. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network. You know that you need at least 6 subnets.  What will be the address of your first usable host in your first subnet (i.e. subnet[0])?
  11. Which of the following subnet masks is used to represent a prefix mask of / 26
  12. Using an IPv4 network address of 192.168.2.0/26, what is the last usable host address in the second subnet (i.e. subnet[1])?
  13. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network.  You know that the subnet mask will be 255.255.255.252. What is the last usable host address of the first subnet (i.e. subnet[0])?
  14. What is the first step in planning network subnets?
  15. In creating subnets for IPv6, conversion to binary is not required.
  16. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network. You know that you need at least 6 subnets.  How many bits will you need to borrow to achieve this?
  17. How many hosts per network can you have with a subnet mask of 255.255.192.0?
  18. You have an interface on a router with the IP address of 192.168.192.10 /29.  What is the broadcast address the hosts will use on this LAN?
  19. How many valid host addresses are created when 4 host bits are borrowed from the 10.20.20.0/24 network?
  20. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network.  You know that the subnet mask will be 255.255.255.252. What is the broadcast address of the first subnet (i.e. subnet[0])?
  21. What is the maximum number of IP addresses that can be assigned to hosts on a local subnet that uses the 255.255.255.224 subnet mask?
  22. How many usable hosts per sub-network will you have using a /17 address?
  23. Which one of the following is a private IP address?
  24. You are given an IPv4 network address of 192.168.10.0/24 by your ISP.  You need to subnet this network. You know that you need at least 6 subnets.  What will be the subnet mask in the new design?
  25. A ____________________ is necessary for devices on different networks to communicate.

BUY MORE MATERIALS FOR THIS COURSE:

CSIS 330 Quiz 1 Liberty University

CSIS 330 Quiz 2 Liberty University

CSIS 330 Quiz 3 Liberty University

CSIS 330 Quiz 4 Liberty University

CSIS 330 Quiz 5 Liberty University

CSIS 330 Quiz 6 Liberty University

CSIS 330 Quiz 7 Liberty University

CSIS 330 Final Exam

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

C++ Dictionaries And Hashing

Source/Assg13/assg-13.cpp

Source/Assg13/assg-13.cpp

/**
*
*
*  @description  Assignment 13 Dictionaries and Hash table
*   implementations.
*/
#include   < cassert >
#include   < iostream >
#include   "KeyValuePair.hpp"
#include   "Employee.hpp"
#include   "HashDictionary.hpp"

using   namespace  std ;

/** main
* The main entry point for this program.  Execution of this program
* will begin with this main function.
*
*  @param  argc The command line argument count which is the number of
*     command line arguments provided by user when they started
*     the program.
*  @param  argv The command line arguments, an array of character
*     arrays.
*
*  @returns  An int value indicating program exit status.  Usually 0
*     is returned to indicate normal exit and a non-zero value
*     is returned to indicate an error condition.
*/
int  main ( int  argc ,   char **  argv )
{
// -----------------------------------------------------------------------
cout  <<   "----- testing Employee record and KeyValuePair class  -----------"   <<  endl ;
KeyValuePair < int ,  string >  pair ( 42 ,   "blue" );
cout  <<   "test key: "   <<  pair . key ()   <<  endl ;
assert ( pair . key ()   ==   42 );
cout  <<   "test value: "   <<  pair . value ()   <<  endl ;
assert ( pair . value ()   ==   "blue" );

int  id  =   3 ;
Employee  e ( id ,   "Derek Harter" ,   "1234 Main Street, Commerce TX" ,   12345.67 );
cout  <<  e  <<  endl ;
assert ( e . getId ()   ==   3 );
assert ( e . getName ()   ==   "Derek Harter" );
cout  <<  endl ;

// -----------------------------------------------------------------------
cout  <<   "-------------- testing quadratic probing  -----------------------"   <<  endl ;
const   int  TABLE_SIZE  =   7 ;
HashDictionary < int ,   Employee >  dict ( TABLE_SIZE ,  EMPTY_EMPLOYEE_ID );

cout  <<   "Newly created hash dictionary should be empty, size: "   <<  dict . size ()   <<  endl ;
assert ( dict . size ()   ==   0 );

int  probeIndex  =   0 ;
//cout << "probe index: " << probeIndex
//     << " returned probe value: " << dict.probe(id, probeIndex)
//     << endl;
//assert(dict.probe(id, probeIndex) == 2);

probeIndex  =   1 ;
//cout << "probe index: " << probeIndex
//     << " returned probe value: " << dict.probe(id, probeIndex)
//     << endl;
//assert(dict.probe(id, probeIndex) == 5);

probeIndex  =   5 ;
//cout << "probe index: " << probeIndex
//     << " returned probe value: " << dict.probe(id, probeIndex)
//     << endl;
//assert(dict.probe(id, probeIndex) == 37);
cout  <<  endl ;

// -----------------------------------------------------------------------
cout  <<   "-------------- testing mid-square hashing  ----------------------"   <<  endl ;
// the following asserts will only work for 32 bit ints, leave asserts
// commented out if you have 64 bit asserts
cout  <<   "Assuming 32 bit (4 byte) ints for these tests: "   <<   sizeof ( int )   <<  endl ;
assert ( sizeof ( int )   ==   4 );

//id = 3918;
//cout << "hash key: " << id
//     << " returned hash value: " << dict.hash(id)
//     << endl;
//assert(dict.hash(id) == 1);

//id = 48517;
//cout << "hash key: " << id
//     << " returned hash value: " << dict.hash(id)
//     << endl;
//assert(dict.hash(id) == 6);

//id = 913478;
//cout << "hash key: " << id
//     << " returned hash value: " << dict.hash(id)
//     << endl;
//assert(dict.hash(id) == 5);

//id = 8372915;
//cout << "hash key: " << id
//     << " returned hash value: " << dict.hash(id)
//     << endl;
//assert(dict.hash(id) == 4);

// test that the distribution of the hash values
// over the possible slots/buckets looks relatively
// evenly distributed
int  counts [ TABLE_SIZE ]   =   { 0 };
//for (id = 0; id < 1000000; id++)
//{
//  int hash = dict.hash(id);
//  counts[hash]++;
//}

// display results
int  sum  =   0 ;
for   ( int  slot  =   0 ;  slot  <  TABLE_SIZE ;  slot ++ )
{
cout  <<   "counts for slot["   <<  slot  <<   "] = "
<<  counts [ slot ]   <<  endl ;
sum  =  sum  +  counts [ slot ];
}
// spot check results
//assert(sum == 1000000);
//assert(counts[0] == 143055);
//assert(counts[6] == 142520);
cout  <<  endl ;

// -----------------------------------------------------------------------
cout  <<   "-------------- testing dictionary insertion  --------------------"   <<  endl ;
id  =   438901234 ;
//dict.insert(id, Employee(id, "Derek Harter", "123 Main St. Commerce TX", 58.23));
id  =   192834192 ;
//dict.insert(id, Employee(id, "Alice White", "384 Bois'darc. Campbell TX", 45.45));
id  =   998439281 ;
//dict.insert(id, Employee(id, "Bob Green", "92 Washington Apt. 5 Greenville TX", 16.00));
id  =   362817371 ;
//dict.insert(id, Employee(id, "Carol Black", "8913 FM 24 Cooper TX", 28.50));
cout  <<   "After inserting "   <<  dict . size ()   <<   " employees:"   <<  endl ;
cout  <<  dict  <<  endl ;

// spot check that hash table entries were correctly performed
//assert(dict.size() == 4);
//assert(dict[3].key() == 192834192);
//assert(dict[3].value().getName() == "Alice White");
//assert(dict[1].key() == 438901234);
//assert(dict[1].value().getName() == "Derek Harter");
cout  <<  endl ;

// -----------------------------------------------------------------------
cout  <<   "-------------- testing dictionary search  -----------------------"   <<  endl ;
id  =   438901234 ;
//e = dict.find(id);
//cout << "Search for id: " << id << endl;
//cout << "   Found employee: " << e << endl;
//assert(e.getId() == id);
//assert(e.getName() == "Derek Harter");

id  =   362817371 ;
//e = dict.find(id);
//cout << "Search for id: " << id << endl;
//cout << "   Found employee: " << e << endl;
//assert(e.getId() == id);
//assert(e.getName() == "Carol Black");

id  =   239481432 ;
//e = dict.find(id);
//cout << "Unsuccessful Search for id: " << id << endl;
//cout << "   Found employee: " << e << endl;
//assert(e.getId() == EMPTY_EMPLOYEE_ID);
//assert(e.getName() == "");
cout  <<  endl ;

// return 0 to indicate successful completion
return   0 ;
}

Source/Assg13/assg13.pdf

 

Assg 13: Dictionaries and Hashing

COSC 2336 Spring 2019

April 18, 2019

Dates:

Due: Sunday May 05, by Midnight

Objectives

• More practice with using class templates

• Learn about implementing and using key/value pair Dictionary ab- straction

• Implement and learn about some basic hashing techniques, like mid- square hasing and quadratic probing for closed hashing schemes.

Description

In this assignment you will be implementing some basic mechanisms of a hash table to implement a Dictionary that uses hashing to store and search for items in its collection. You have been given many files for this assign- ment. I have provided an Employee class in “Employee.[hpp|cpp]” and a KeyValuePair class in “KeyValuePair.[hpp|cpp]”. You will not need to make any changes to these files or classes, they should work as given for this as- signment.

You will be adding and implementing some member functions to the HashDictionary class. The initial “HashDictionary.[hpp|cpp]” file contains a constructor and destructor for a HashDictionary as well as some other accessors and operators already implemented that are used for testing.

You will be implementing a closed hash table mechanism using quadratic probing of the slots. You will also implement a version of the mid-square

1

 

 

hashing function described in our textbook (Shaffer section 9.4.3 on closed hashing mechinsms).

For this assignment you need to perform the following tasks.

1. Your first task is to implement methods to define the probe sequence for closed hasing. Add a member function named probe() to the HashDictionary class. Be aware that the HashDictionary class is a templatized on <Key, Value> templates, thus when you implement the class methods you need to templatize the class methods correctly. You can look at the example implementations of size() and the con- structors to remind yourself how to do this correctly.

In any case, probe() is a member function that takes two parameters, a Key and an integer index value. We are not using secondary hashing (as described in our textbook) so the Key value will actually not be used in your function. However, keep it as a parameter as the gen- eral abstraction/API for the probe function should include it for cases where secondary hashing is used. probe() should be a const class member function, as calling it does not change the dictionary. Finally probe() will return an ineger as its result.

Your probe() funciton should implement a quadratic probing scheme as described in our Shaffer textbook section 9.4.3 on pg. 338. Use c1 = 1, c2 =2, c3 = 2 as the parameters for your quadratic probe (the tests of probe() assume your probe sequence is using these pa- rameter values for the quadratic function).

2. You second tasks is to implement a hash function for integer like keys using the described mid-square hasing function (Shaffer 9.4.1 Example 9.6 pg. 327). We will create a slight variation of this algorithm for our hashing dictionary. First of all the hash() member functions should take a Key as its only input parameter, and it will then return a regular int as its result. Since this is a hash function, the integer value should be in the range 0 – tableSize-1, so don’t forget to mod by the tableSize before returning your hash result.

hash() should work like this. First of all, you should square the key value that is passed in. Then, assuming we are working with a 32 bit int, we want to only keep the middle 16 bits of the square of the key to use for our hash. There are many ways to work with and get the bits you need, but most likely you will want to use C bitwise operators to do this. For example, a simple method to get the middle 16 bits is

2

 

 

to first mask out the upper 8 bits using the bitwise & operator (e.g. key & 0x00FFFFFF) will mask out the high order 8 bits to 0). Then once you have removed the upper most significant 8 bits, you can left shift the key by 8 bits, thus dropping out the lower least significant 8 bits (e.g. key >> 8). Performing a mask of the upper 8 bits and shifting out the lower 8 bits will result in you only retaining the middle 16 bits.

If your system is using 64 bit integers rather than 32 bit integers, perform the mid-square method but retain the middle 32 bits of the result. You can use the sizeof(int) method to determine how many bytes are in an int on your system. I will give a bonus point if you write your hash() function to correctly work for both 32 and 64 bit values by testing sizeof(int) and doing the appopriate work to get the middle bits. Again after you square the key and get the middle bits, make sure you modulo the result to get an actual has index in the correct range.

3. The third task is to add the insert()method to your HashDictionary so that you can insert new key/value pairs into the dictionary. insert() should take a constant Key reference and a constant Value reference as its input parameters (note that both of these parameters should be declared as const, and they should both be reference pa- rameters, so use the & to indicate they are passed by reference). Your insert() function does not return a result, so it will be a void func- tion.

The algorithm for insert is described in Shaffer 9.4.3 on pg. 334. You need to call and use the probe() and hash() funciton you created in the first 2 steps to correctly define/implement your closed hashing probe sequence. The basica algorithm is that you use hash() to de- termine the initial home slot, and probe() gives an offset you should add. Basically you have to search the hashTable using the probe se- quence until you find an empty slot. Once you find an empty slot, you should create a new instance of a KeyValuePair<Key, Value> object, that contains the key and value that were provided as input param- eters to your insert() function. This KeyValuePair instance should then be inserted into the table at the location where you find the first empty slot on the probe sequence. Also don’t forget to update the valueCount paramemter of the HashDictionary class that keeps track of the number of items currently in the dictionary.

3

 

 

4. Finally you will also implement the find() method to search for a particular key in your dictionary. The find() member function taks a single Key parameter as input (it should be a const Key& reference parameter). The find() functin will return a Value as a result, which will be the Value of the record associated with the given Key if it was found in the dictionary, or an empty Value() object if it was not found.

The find() method uses the same probe sequence as insert() imple- mented by your probe() and hash() methods. So you should again search along the probe sequence, until you either find the key you were given to search for, or else find an empty slot. Then at the end, if you found the key in the hashTable you should return the value that corresponds to the key that was searched for. If the search failed and you found an empty slot on your probe sequence, you should instead return an empty Value() object, which is used as an indicator for a failed search.

In this assignment you will be given a lot of starting code. As usual, there is an “assg-13.cpp” file which contains commented out tests of the code/functions you are to write. You have been given and “Em- ployee.[hpp|cpp]” file containing a simple definition of a (non-templated) class/record that holds a few pieces of information about a theoretical Employee. We use this class to create a hash dictionary for testing with the employee id as the key, and the Employee record as the associated value in our Dictionary. You have also been given a template class in the file “KeyValuePair.[hpp|cpp]”. This contains a templatized container to holding a key/value pair of items. You will not need to add any code or make any changes in the Employee or KeyValuePair class files.

You have also been given a “HashDictionary.[hpp|cpp]” file containing beginning defintions of a HashDictionary class. The member functions you need to add for this assignment should be added to these files.

Here is an example of the output you should get if your code is passing all of the tests and is able to run the simulation. You may not get the exact same statistics for the runSimulation() output, as the simulation is generating random numbers, but you should see similar values.

—– testing Employee record and KeyValuePair class ———– test key: 42 test value: blue ( id: 3, Derek Harter, 1234 Main Street, Commerce TX, 12345.67 )

4

 

 

————– testing quadratic probing ———————– Newly created hash dictionary should be empty, size: 0 probe index: 0 returned probe value: 2 probe index: 1 returned probe value: 5 probe index: 5 returned probe value: 37

————– testing mid-square hashing ———————- Assuming 32 bit (4 byte) ints for these tests: 4 hash key: 3918 returned hash value: 1 hash key: 48517 returned hash value: 6 hash key: 913478 returned hash value: 5 hash key: 8372915 returned hash value: 4 counts for slot[0] = 143055 counts for slot[1] = 143040 counts for slot[2] = 143362 counts for slot[3] = 142399 counts for slot[4] = 142966 counts for slot[5] = 142658 counts for slot[6] = 142520

————– testing dictionary insertion ——————– After inserting 4 employees: Slot: 0

Key : 362817371 Value: ( id: 362817371, Carol Black, 8913 FM 24 Cooper TX, 28.50 )

Slot: 1 Key : 438901234 Value: ( id: 438901234, Derek Harter, 123 Main St. Commerce TX, 58.23 )

Slot: 2 Key : 0 Value: ( id: 0, , , 0.00 )

Slot: 3 Key : 192834192 Value: ( id: 192834192, Alice White, 384 Bois’darc. Campbell TX, 45.45 )

Slot: 4

5

 

 

Key : 998439281 Value: ( id: 998439281, Bob Green, 92 Washington Apt. 5 Greenville TX, 16.00 )

Slot: 5 Key : 0 Value: ( id: 0, , , 0.00 )

Slot: 6 Key : 0 Value: ( id: 0, , , 0.00 )

————– testing dictionary search ———————– Search for id: 438901234

Found employee: ( id: 438901234, Derek Harter, 123 Main St. Commerce TX, 58.23 )

Search for id: 362817371 Found employee: ( id: 362817371, Carol Black, 8913 FM 24 Cooper TX, 28.50 )

Unsuccessful Search for id: 239481432 Found employee: ( id: 0, , , 0.00 )

Assignment Submission

A MyLeoOnline submission folder has been created for this assignment. You should attach and upload your completed “HashDictionary.[hpp|cpp]” source files to the submission folder to complete this assignment. You do not need to submit your “assg-13.cpp” file with the tests, nor the Employee or KeyVal- uePair files, since you should not have made changes to any of these (except to uncomment out the tests in assg-13.cpp). Please only submit the asked for source code files, I do not need your build projects, executables, project files, etc.

6

 

 

Requirements and Grading Rubrics

Program Execution, Output and Functional Requirements

1. Your program must compile, run and produce some sort of output to be graded. 0 if not satisfied.

2. (20 pts.) probe() member function implemented. Function is using quadratic probing as asked for, with correct values for c1, c2 and c3 parameters. Probe sequence appears correct and passes tests.

3. (20 pts.) hash() member function implemented correctly. Function implements the mid-square method as described. Function correctly uses only the 16 middle bits if system uses 32 bit integers.

4. (30 pts.) insert() member function implemented and working. Func- tion appears to be correctly generating probe sequence using the probe() and hash() functions. Items are correctly inserted into ex- pected location in the hash table.

5. (30 pts.) find()member function implemented and working. Function appears to be also correctly using the probe sequence in the same was as insert(). Function passes the expected tests.

Program Style

Your programs must conform to the style and formatting guidelines given for this class. The following is a list of the guidelines that are required for the assignment to be submitted this week.

1. Most importantly, make sure you figure out how to set your indentation settings correctly. All programs must use 2 spaces for all indentation levels, and all indentation levels must be correctly indented. Also all tabs must be removed from files, and only 2 spaces used for indentation.

2. A function header must be present for member functions you define. You must give a short description of the function, and document all of the input parameters to the function, as well as the return value and data type of the function if it returns a value for the member functions, just like for regular functions. However, setter and getter methods do not require function headers.

7

 

 

3. You should have a document header for your class. The class header document should give a description of the class. Also you should doc- ument all private member variables that the class manages in the class document header.

4. Do not include any statements (such as system(“pause”) or inputting a key from the user to continue) that are meant to keep the terminal from going away. Do not include any code that is specific to a single operating system, such as the system(“pause”) which is Microsoft Windows specific.

8

 

Source/Assg13/Employee.cpp

Source/Assg13/Employee.cpp

/**

*  @description  Simple example of an Employee record/class
*   we can use to demonstrate HashDictionary key/value pair
*   management.
*/
#include   < string >
#include   < iostream >
#include   < iomanip >
#include   < sstream >
#include   "Employee.hpp"
using   namespace  std ;

/** constructor
* Default constructor for our Employee record/class.  Construct an
* empty employee record
*/
Employee :: Employee ()
{
this -> id  =  EMPTY_EMPLOYEE_ID ;
this -> name  =   "" ;
this -> address  =   "" ;
this -> salary  =   0.0 ;
}

/** constructor
* Basic constructor for our Employee record/class.
*/
Employee :: Employee ( int  id ,  string name ,  string address ,   float  salary )
{
this -> id  =  id ;
this -> name  =  name ;
this -> address  =  address ;
this -> salary  =  salary ;
}

/** id accessor
* Accessor method to get the employee id.
*
*  @returns  int Returns the integer employee id value.
*/
int   Employee :: getId ()   const
{
return  id ;
}

/** name accessor
* Accessor method to get the employee name.
*
*  @returns  string Returns the string containing the full
*   employee name for this record.
*/
string  Employee :: getName ()   const
{
return  name ;
}

/** overload operator<<
* Friend function to ouput representation of Employee to an
* output stream.
*
*  @param  out A reference to an output stream to which we should
*   send the representation of an employee record for display.
*  @param  employee The reference to the employee record to be displayed.
*
*  @returns  ostream& Returns a reference to the original output
*   stream, but now the employee information should have been
*   inserted into the stream for display.
*/
ostream &   operator << ( ostream &  out ,   Employee &  employee )
{
//out << "Employee id: " << employee.id << endl
//    << "    name   : " << employee.name << endl
//    << "    address: " << employee.address << endl
//    << "    salary : " << fixed << setprecision(2) << employee.salary << endl;
out  <<   "( id: "   <<  employee . id  <<   ", "
<<  employee . name  <<   ", "
<<  employee . address  <<   ", "
<<  fixed  <<  setprecision ( 2 )   <<  employee . salary  <<   " )"   <<  endl ;

return  out ;
}

Source/Assg13/Employee.hpp

/** * @description Simple example of an Employee record/class * we can use to demonstrate HashDictionary key/value pair * management. */ #include <string> #include <iostream> using namespace std; #ifndef EMPLOYEE_HPP #define EMPLOYEE_HPP // This should really be a class constant, however this // global constant represents a flag that is used to // indicate empty slots and/or failed search. const int EMPTY_EMPLOYEE_ID = 0; /** Employee * A simple Employee class/record to demonstrate/test * our hashing dictionary assignment. * NOTE: we are using 0 as a flag to represent an unused * slot or an invalid/empty employee. This is used/assumed * by our dictionary class to determine if a slot is empty * and/or to give a failure result for a failed search. */ class Employee { private: int id; string name; string address; float salary; public: Employee(); Employee(int id, string name, string address, float salary); int getId() const; string getName() const; friend ostream& operator<<(ostream& out, Employee& employee); }; #endif // EMPLOYEE_HPP

Source/Assg13/HashDictionary.cpp

Source/Assg13/HashDictionary.cpp

/**

*  @description  Template class for definining a dictionary
*   that uses a hash table of KeyValuePair items.
*   Based on Shaffer hashdict implementation pg. 340
*/

/** constructor
* Standard constructor for the HashDictionary
*
*  @param  tableSize The size of the hash table that should be
*   generated for internal use by this dictionary for hasing.
*  @param  emptyKey A special flag/value that can be used to detect
*   invalid/unused keys.  We need this so we can indicate which
*   slots/buckets in our hash table are currently empty, and also
*   this value is used as a return result when an unsuccessful
*   search is performed on the dictionary.
*/
template   < class   Key ,   class   Value >
HashDictionary < Key ,   Value >:: HashDictionary ( int  tableSize ,   Key  emptyKey )
{
this -> tableSize  =  tableSize ;
this -> EMPTYKEY  =  emptyKey ;
valueCount  =   0 ;

// allocate an array/table of the indicated initial size
hashTable  =   new   KeyValuePair < Key ,   Value > [ tableSize ];

// initialize the hash table so all slots are initially empty
for   ( int  index  =   0 ;  index  <  tableSize ;  index ++ )
{
hashTable [ index ]. setKey ( EMPTYKEY );
}
}

/** destructor
* Standard destructor for the HashDictionary.  Be good memory managers and
* free up the dynamically allocated array of memory pointed to by hashTable.
*/
template   < class   Key ,   class   Value >
HashDictionary < Key ,   Value >::~ HashDictionary ()
{
delete []  hashTable ;
}

/** size
* Accessor method to get the current size of this dictionary,
* e.g. the count of the number of key/value pairs currently being
* managed in our hash table.
*
*  @returns  in Returns the current number of items being managed by
*   this dictionary and currently in our hashTable.
*/
template   < class   Key ,   class   Value >
int   HashDictionary < Key ,   Value >:: size ()   const
{
return  valueCount ;
}

// Place your implementations of the class methods probe(), hash(),
// insert() and find() here

/** overload indexing operator[]
* Overload indexing operator[] to provide direct access
* to hash table.  This is not normally part of the Dictionary
* API/abstraction, but included here for testing.
*
*  @param  index An integer index.  The index should be in the range 0 - tablesize-1.
*
*  @returns  KeyValuePair<> Returns a KeyValuePair object if the index into the
*   internal hash table is a valid index.  This method throws an exception if
*   the index is not a valid slot of the hash table.
*/
template   < class   Key ,   class   Value >
KeyValuePair < Key ,   Value >&   HashDictionary < Key ,   Value >:: operator []( int  index )
{
if   ( index  <   0   ||  index  >=  tableSize )
{
cout  <<   "Error: <HashDictionary::operator[] invalid index: "
<<  index  <<   " table size is currently: "
<<  tableSize  <<  endl ;
assert ( false );
}

return  hashTable [ index ];
}

/** HashDictionary output stream operator
* Friend function for HashDictionary.  We normally wouldn't have
* something like this for a Dictionary or HashTable, but for testing
* and learning purposes, we want to be able to display the contents of
* each slot in the hash table of a HashDictionary container.
*
*  @param  out An output stream reference into which we should insert
*   a representation of the given HashDictionary.
*  @param  aDict A HashDictionary object that we want to display/represent
*   on an output stream.
*
*  @returns  ostream& Returns a reference to the original given output stream,
*   but now the values representing the dictionary we were given should
*   have been sent into the output stream.
*/
template   < typename  K ,   typename  V >
ostream &   operator << ( ostream &  out ,   const   HashDictionary < K ,  V >&  aDict )
{
for   ( int  slot  =   0 ;  slot  <  aDict . tableSize ;  slot ++ )
{
out  <<   "Slot: "   <<  slot  <<  endl ;
out  <<   "     Key  : "   <<  aDict . hashTable [ slot ]. key ()   <<  endl ;
out  <<   "     Value: "   <<  aDict . hashTable [ slot ]. value ()   <<  endl ;
}
out  <<  endl ;
return  out ;
}

Source/Assg13/HashDictionary.hpp

/** * @description Template class for definining a dictionary * that uses a hash table of KeyValuePair items. * Based on Shaffer hashdict implementation pg. 340 */ #include <cassert> #include <iostream> #include “KeyValuePair.hpp” using namespace std; #ifndef HASHDICTIONARY_HPP #define HASHDICTIONARY_HPP /** HashDictionary * An implementation of a dictionary that uses a hash table to insert, search * and delete a set of KeyValuePair items. In the assignment, we will be * implementing a closed hashing table with quadratic probing. The hash function * will implement a version of the mid-square hasing function described in * our Shaffer textbook. * * @value hashTable An array of KeyValuePair items, the hash table this class/container * is managing. * @value tableSize The actual size of the hashTable array * @value valueCount The number of KeyValuePair items that are currently being * managed and are contained in the hashTable * @value EMPTYKEY A special user-supplied key that can be used to indicate empty * slots. Since how we determine what is a valid/invalid key will depend on the * key type, the user must supply this special flag/value when setting up the * hash dictionary. */ template <class Key, class Value> class HashDictionary { protected: KeyValuePair<Key, Value>* hashTable; // the hash table int tableSize; // the size of the hash table, e.g. symbol M from textbook int valueCount; // the count of the number of value items currently in table Key EMPTYKEY; // a special user-supplied key that can be used to indicate empty slots public: // constructors and destructors HashDictionary(int tableSize, Key emptyKey); ~HashDictionary(); // accessor methods int size() const; // searching and insertion // all 4 of the methods you were required to create for this // assignment should have appropriate class method signatures // defined here. // overload operators (mostly for testing) KeyValuePair<Key, Value>& operator[](int index); template <typename K, typename V> friend ostream& operator<<(ostream& out, const HashDictionary<K, V>& aDict); }; #include “HashDictionary.cpp” #endif // HASHDICTIONARY_HPP

Source/Assg13/KeyValuePair.cpp

Source/Assg13/KeyValuePair.cpp

/**

*  @description  Template class for definining Key/Value pairs,
*   suitable for dictionary and hash table implementations.
*   Based on Shaffer KVPair ADT definition, pg. 139 Fig 4.31.
*/

/** constructor
* Default constructor for a KeyValuePair.
*/
template   < class   Key ,   class   Value >
KeyValuePair < Key ,   Value >:: KeyValuePair ()
{

}

/** constructor
* Standard constructor for a KeyValuePair.
*
*  @param  key The key portion that is to be stored in this pair.
*  @param  value The value portion that is to be stored in this pair.
*/
template   < class   Key ,   class   Value >
KeyValuePair < Key ,   Value >:: KeyValuePair ( Key  key ,   Value   value )
{
this -> myKey  =  key ;
this -> myValue  =   value ;
}

/** key accessor
* Accessor method to get and return the key for this key/value pair
*
*  @returns  Key Returns an object of template type Key, which is the
*   key portion of the pair in this container.
*/
template   < class   Key ,   class   Value >
Key   KeyValuePair < Key ,   Value >:: key ()
{
return  myKey ;
}

/** key setter
* Accessor method to set the key for this key/value pair
*
*  @param  key The new value to update the key to for this pair.
*/
template   < class   Key ,   class   Value >
void   KeyValuePair < Key ,   Value >:: setKey ( Key  key )
{
this -> myKey  =  key ;
}

/** value accessor
* Accessor method to get and return the value for this key/value pair.
*
*  @returns  Value& Returns a reference to the value object in this
*   key value pair container.
*/
template   < class   Key ,   class   Value >
Value &   KeyValuePair < Key ,   Value >:: value ()
{
return  myValue ;
}

Source/Assg13/KeyValuePair.hpp

/** * @description Template class for definining Key/Value pairs, * suitable for dictionary and hash table implementations. * Based on Shaffer KVPair ADT definition, pg. 139 Fig 4.31. */ #ifndef KEYVALUEPAIR_HPP #define KEYVALUEPAIR_HPP /** KeyValue Pair * Definition of basic key/value pair container. This container of course * associates a value (usually a record like a class or struct), with * a key (can be anything). * * We do not use the comparator Strategy pattern as discussed in * Shaffer pg. 144 here. We assume that the Key type has suitably * overloaded operators for <, >, ==, <=, >= operations as needed * in order to compare and order keys if needed by dictionaries and * hash tables using a KeyValuePair. * * @value key The key for a key/value pair item/association. * @value value The value for a key/value pair, usually something like * a record (a class or struct of data we are hashing or keeping in * a dictionary). */ template <class Key, class Value> class KeyValuePair { private: Key myKey; Value myValue; public: // constructors KeyValuePair(); KeyValuePair(Key key, Value value); // accessors, getters and setters Key key(); void setKey(Key key); Value& value(); }; #include “KeyValuePair.cpp” #endif // KEYVALUEPAIR_HPP

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

Concepts Of Programming Language: Building A Scanner

Example Pseudocode

Problem: Given a sorted array a with n elements (i.e., a[0] <= a[1] <= … a[n-1]) and a number m, find if m is in the array.

 

1. Main pseudo code

 

data

given data

n: the number of integers given

a[0], …, a[n-1]: the given integers

m: given integer (to check if it is in a)

unknown data: N.A.

intermediate data:

found: indicating if is found from a

plan

// get array an from user input (numbers in a must be ordered).

n = getseries(a)

// find if is in array from index 0 to n-1

found = search(a, 0 , n-1, m)

if found print is found in a.

Otherwise print is not found in a.

 

(Pseudo code for all functions used in the main pseudocode)

 

2. Pseudo code for search function

 

Function name: search

input:

a: an array of numbers

bottom, top: bottom and top index

m: the number to search from a[bottom] to a[top]

output:

b: 1 if is in a a[bottom] to a[top]0 otherwise

Data

mid: middle index of the array

plan:

if (bottom > top) b = 0 and stop.

find the mid point mid of the array between bottom and top

if (a[mid] == mb = 1

else if (m > a[mid])

P2.1 // find if m is in a from mid+1 to top:

b = search(a, mid+1, top, m)

else P2.2 // find if m is in from bottom to mid-1

b = search(a, bottom, mid-1,m)

 

3. Pseudo code for getSeries function

 

omitted here

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

Concepts Of Programming Language: Building A Scanner

Example Pseudocode

Problem: Given a sorted array a with n elements (i.e., a[0] <= a[1] <= … a[n-1]) and a number m, find if m is in the array.

 

1. Main pseudo code

 

data

given data

n: the number of integers given

a[0], …, a[n-1]: the given integers

m: given integer (to check if it is in a)

unknown data: N.A.

intermediate data:

found: indicating if is found from a

plan

// get array an from user input (numbers in a must be ordered).

n = getseries(a)

// find if is in array from index 0 to n-1

found = search(a, 0 , n-1, m)

if found print is found in a.

Otherwise print is not found in a.

 

(Pseudo code for all functions used in the main pseudocode)

 

2. Pseudo code for search function

 

Function name: search

input:

a: an array of numbers

bottom, top: bottom and top index

m: the number to search from a[bottom] to a[top]

output:

b: 1 if is in a a[bottom] to a[top]0 otherwise

Data

mid: middle index of the array

plan:

if (bottom > top) b = 0 and stop.

find the mid point mid of the array between bottom and top

if (a[mid] == mb = 1

else if (m > a[mid])

P2.1 // find if m is in a from mid+1 to top:

b = search(a, mid+1, top, m)

else P2.2 // find if m is in from bottom to mid-1

b = search(a, bottom, mid-1,m)

 

3. Pseudo code for getSeries function

 

omitted here

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

CMIS PROJECT

1

Project 3

In this assignment you will be performing some additional queries against your Online Vehicle Sales (OVS), Inc. online transaction processing (OLTP) database and also creating some simple anonymous PL/SQL blocks.

You will also begin the creation of a data warehouse database for Online Vehicle Sales (OVS), Inc. The full data warehouse is comprised of 4 dimension tables and a fact table based on the Star Schema diagram posted in LEO’s Week #6 area. Your OLTP database tables and star schema tables will reside in the same Oracle schema.

This assignment is based on the fully populated tables from Homework #2 so it assumes you’ve completed all work for that assignment.

You can perform this assignment based on a database on Nova or any other Oracle system you wish, but you must use the Oracle RDBMS.

You should use one or more SQL script files to complete this assignment. Your script files should contain all your SQL and PL/SQL code. Do NOT submit your SQL script files. Doing so may result in confusion and will result in lost points.

Everything for this assignment must be in a single file. If you are using SQL*Plus you must put all your SQL, PL/SQL, and results together in a single SPOOL file. If you are using SQL Developer or other GUI, put all your screen snapshots in a single file for both your SQL statements and PL/SQL as they executed and the results. Failure to include all your SQL, PL/SQL, and all your results along with them will result in lost points.

Do NOT submit additional files as this only complicates the grading, and will result in lost points.

Here are the specific assignment steps. In order to earn full credit you must keep your steps in order, number your steps, and put everything in a single file.

1) Execute SELECT COUNT(*) FROM <table_name>; statements for all 6 of your OVS, Inc. OLTP tables. You should have at least the following counts: CUSTOMERS table – 100 rows, VEHICLES table – 50 rows, SALESPERSONS table – 10 rows, FINANCING_PLANS – 5 rows, SALES table – 200 rows, and SALES_FINANCINGS table – 200 rows.

2) Via a single SELECT query display the zip code, make, and count with the largest total car purchases for a zip code and make combination (there may be a tie with two or more). Show the SQL statement you used and the results returned by Oracle from executing your SQL statement right after the statement.

3) Develop a PL/SQL anonymous block that displays the total sales for a zip code for a specific zip code. You may use any of your zip codes you wish. Show the PL/SQL statements in your block, the actual execution of your block, and the results returned.

2

4) Develop a PL/SQL anonymous block that displays the zip code with the largest total car purchases. Since there can be a tie with two or more zip codes, ensure that the lowest numeric zip code is displayed. The zip code displayed should correlate to the results of Step #2. Show the PL/SQL statements in your block, the actual execution of your block, and the results returned.

5) This step begins the creation of your data warehouse. Ensure that your FINANCING_PLANS table has already been created and populated via a “SELECT * FROM financing_plans;” SQL query. This table is used by both your OLTP database and serves as a dimension table in the star schema of your data warehouse database. Your Plan_ID primary key is the Plan_Code column. Don’t worry about changing this to Plan_Code or changing any other column names you already have. Show the SQL you used and executed and the results.

6) Create the DEALERSHIPS star schema dimension table via SQL. Add at least 2 rows of data via INSERT statement(s). After populating your DEALERSHIPS table execute a “SELECT * FROM dealerships;” SQL statement to display the entire contents. Show all your SQL code for this step and the Oracle results from executing it.

7) Create the VEHICLES star schema dimension table via SQL. Change your existing OLTP VEHICLES table to OLTP_VEHICLES via the SQL RENAME command and change your SALES table’s foreign key to reference this new table name. For the Vehicle_Code primary key column use an Oracle sequence to populate the values. For the Description column use all concatenated combinations of Make and Model of vehicles you have. Use a PL/SQL block to populate the Description column by SELECTing the combinations from your OLTP_VEHICLES table and then INSERTing the combinations into your new VEHICLES table, which would best be performed via a cursor in a loop. After populating your VEHICLES table execute a “SELECT * FROM vehicles ORDER BY vehicle_code” SQL statement to display the entire contents. Show all your SQL and PL/SQL code for this step and the Oracle results from executing it.

Your submission MUST be in a single text, Word, or PDF file with all steps numbered and in order.

Project 3 grading rubric

Attribute

Meets

Does Not Meet

CREATE TABLE SQL statements

20 points

Uses an SQL script file.

Creates the DEALERSHIPS star schema dimension table.

Creates the VEHICLES star schema dimension table.

Changes your existing OLTP VEHICLES table to OLTP_VEHICLES via the SQL RENAME command and change your SALES table’s foreign key to reference this new table name.

0 points

Does not use an SQL script file.

Does not create the DEALERSHIPS star schema dimension table.

Does not create the VEHICLES star schema dimension table.

Does not change your existing OLTP VEHICLES table to OLTP_VEHICLES via the SQL RENAME command or change your SALES table’s foreign key

3

Uses an Oracle sequence to populate the Vehicle_Code values.

Uses all concatenated combinations of Make and Model of vehicles for the Description column.

Uses an Oracle RDBMS.

All SQL statements are syntactically correct and execute without error.

to reference this new table name.

Does not use an Oracle sequence to populate the Vehicle_Code values.

Does not use all concatenated combinations of Make and Model of vehicles for the Description column.

Does not use an Oracle RDBMS.

All SQL statements are not syntactically correct or execute without error.

INSERT SQL statements

25 points

Adds at least 2 rows of data via INSERT statement(s) to the DEALERSHIPS Star schema table.

All SQL statements are syntactically correct and execute without error.

0 points

Does not add at least 2 rows of data via INSERT statement(s) to the DEALERSHIPS Star schema table.

All SQL statements are not syntactically correct or execute without error.

SELECT SQL statements

5 points

Executes SELECT COUNT(*) FROM <table_name>; for all OLT tables resulting in expected counts.

Via a single SELECT query display the zip code, make, and count with the largest total car purchases for a zip code and make combination.

Ensures that your FINANCING_PLANS table has already been created and populated via a “SELECT * FROM

0 points

Does not execute SELECT COUNT(*) FROM <table_name>; for all OLT tables resulting in expected counts.

Does not, via a single SELECT query, display the zip code, make, and count with the largest total car purchases for a zip code and make combination.

Does not ensure that your FINANCING_PLANS table has already been created and

4

financing_plans.

After populating your DEALERSHIPS table execute a “SELECT * FROM dealerships;”

After populating your VEHICLES table execute a “SELECT * FROM vehicles ORDER BY vehicle_code”.

All SQL statements are syntactically correct and execute without error.

populated via a “SELECT * FROM financing_plans.

Does not, After populating your DEALERSHIPS table execute a “SELECT * FROM dealerships;”

Does not, after populating your VEHICLES table execute a “SELECT * FROM vehicles ORDER BY vehicle_code”.

All SQL statements are syntactically correct and execute without error.

All SQL statements are not syntactically correct or execute without error.

PL/SQL anonymous blocks

40 points

Develops a PL/SQL anonymous block that displays the total sales for a zip code for a specific zip code.

Develops a PL/SQL anonymous block that displays the zip code with the largest total car purchases.

Ensures that the lowest numeric zip code is displayed.

The zip code displayed should correlate to the results of Step #2 above.

Uses a PL/SQL block to populate the Description column by SELECTing the combinations from your OLTP_VEHICLES table and then INSERTing the combinations into your new VEHICLES table, which would best be performed via a cursor in a loop.

0 points

Does not develop a PL/SQL anonymous block that displays the total sales for a zip code for a specific zip code.

Does not develop a PL/SQL anonymous block that displays the zip code with the largest total car purchases.

Does not ensure that the lowest numeric zip code is displayed.

The zip code displayed does not correlate to the results of Step #2 above.

Does not use a PL/SQL block to populate the Description column by SELECTing the combinations from your OLTP_VEHICLES table and then INSERTing the combinations into your new VEHICLES table, which would

5

best be performed via a cursor in a loop.

SQL script file and SPOOL file

10 points

Submits either an SQL*Plus SPOOL file or screen snapshots of the output if using SQL Developer or another GUI.

Demonstrates DROP TABLE, CREATE TABLE, and ALTER TABLE SQL statements as they executed and the Oracle responses.

Demonstrates INSERT SQL statements as they executed and the Oracle responses.

Displays the contents of all tables from SELECT * FROM tablename; statements.

Displays all single SELECT statements queries.

Displays all PL/SQL code and execution.

Does NOT submit a SQL script file.

Includes a SET ECHO ON SQL*Plus statement in your SQL script file to ensure that all the SQL that is executed is displayed in your SPOOL file.

0 points

Does not submit either an SQL*Plus SPOOL file or screen snapshots of the output if using SQL Developer or another GUI.

Does not demonstrate DROP TABLE, CREATE TABLE, and ALTER TABLE SQL statements as they executed and the Oracle responses.

Does not demonstrate INSERT SQL statements as they executed and the Oracle responses.

Does not display the contents of all tables from SELECT * FROM tablename; statements.

Does not display all single SELECT statements queries.

Does not display all PL/SQL code and execution.

Submits a SQL script file.

Does not Include a SET ECHO ON SQL*Plus statement in your SQL script file to ensure that all the SQL that is executed is displayed in your SPOOL file.

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

Wk 1: Discussion 2 [Due Tomorrow]

Review the “Chapter Two Case: Michael Porter on TED – The Case for Letting Business Solve Social Problems” at the end of Ch. 2 of Business Driven Technology.

Answer the following questions:

  • Do you agree or disagree that business can solve social problems? Justify your answer.
  • How can the concepts discussed by Michael Porter help with the decision making process for managers at the three different managerial levels?

Respond to at least three of your peers. In your response, address any thoughts you have on if business can solve social problems and if it can help managers make decisions.

Students need to contribute three substantive posts in this discussion by the due date indicated. The substantive posts can be any combination of responses and replies.

Peer 1

If the statement was stated slightly different I would completely agree with it. I do believe that business can help with social problems, but they will not be the resolve for them. For example, many commercial grocery stores donate all the food that is past its “Selling” date to food banks and non-profits that feed the poor. Just because it has past its sell by date does not mean the food is bad, it just means you cannot legally sell the product. There are more and more non-profits to help the less fortunate in almost every community. The fact that businesses will not be the resolve for social problems is simply because they are a business they are here to make money, one of the reasons for even the handout of the food example is because they get to write that loss off on taxes.

Most businesses are broken into a few different management levels, Operations, VPs and executive staff. The operations management provide day to day decisions that affect the operations of say their bank branch which they manage. They make decisions such as who is working which teller line. VPs and support staff make decisions on who is doing what problems or incidents. The Executive staff focus on more of the business long term decisions which have an affect of the entire company.

Reference: Baltzan P (2017, Business Driven Technology (7th ed) New York, NY, McGraw-Hill

Peer 2

Do you agree or disagree that business can solve social problems? Justify your answer.

Yes, I do believe that businesses can help solve social problems. There have been an increasing number of restaurants, farmers markets, grocery stores and even some college campuses that donate fresh food that is past its’ selling prime, but still perfectly safe to eat, to food pantries who distribute it to low income families in both rural and urban food deserts. This not only helps feed many needy families but is also good for the planet. Wasted food is a huge producer of greenhouse gasses which contribute to climate change.

Publix supermarkets are active supporters of youth organizations in their communities and also donate to Habitat for Humanity. Stoneyfield farms are big contributors to environmental causes and nonprofits.          .

Bill and Melinda Gates created their foundation to help improve the health conditions for children in developing countries. They have also donated hundreds of millions of dollars to the library system to provide internet access and computers to libraries nationwide. Their foundation is also dedicated to improving our failing education system by donating millions of dollars to help schools hire and retain high-quality teachers, and educational materials. Warren Buffett is also a huge contributor to the foundation. While this is a non-profit, it does have a big social impact.

These are just a few examples of how businesses are working to help solve social problems. I also believe that when a business is involved in giving back to their communities and helping to solve social injustices or supporting environmental issues, this helps build customer goodwill which in turn can lead to increased profits. I know I would rather spend a little more with a company that does good things and gives back than one that only cares about their shareholders profits. Mr. Porter stated that we need to achieve scalability when it comes to businesses helping solve social problems. If businesses are to buy in to this, they need to see how much more profitable they could be by working on social problems and less profitable by not doing it.

·        How can the concepts discussed by Michael Porter help with the decision- making process for managers at the three different managerial levels?

Operational – These lower level managers make structured decisions that affect the day to day operations of their departments regarding internal functions, such as which machine an employee will run today or shifting people around to cover for someone who is out sick.

Managerial – These middle level managers make semi-structured decisions that affect a short-ish term time frame. Their performance indicators focus on efficiency and effectiveness.

Strategic – These high level, senior executives make unstructured decisions that affect a long term time frame. Their focus is on the effectiveness and success of the entire company.

Reference:

Baltzan, P. (2017). Business driven technology (7th ed.).

New York, NY: McGraw-Hill/Irwin.

Peer 3

After listen to the TED talk of Michael Porter, I believe business can solve Social problems, if they are willing. One of the main issues that Micheal bring up is the scale of the social issues, While the government and NGOs can make some progress the scale of the social problems are so large that they can not make large scale impacts on the problems, the resources are limited and not enough money being tax revenue and donations. Business have more resources and business create wealth from what Micheal talked about. (Porter, 2013). Since business make the wealth and money, the businesses need to be involve to have which will allow business resources to deal with the scales of the social problems. One social issue that is talked about is pollution, the conventional thing by business it is not worrying about pollution so that you make more money well the fact is business can be have less pollution and still be profitable, yes it is a balance however, if after the initial investment to be less polluting they will still be profitable and pollute less which will in-turn help with the social problem of pollution where the government and NGO can not assist.

Reference: Porter, M 2013. Retrieved from https://www.ted.com/talks/michael_porter_why_business_can_be_good_at_solving_social_problems#t-587925

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!

NETWORKING QUIZ

Mike Meyers’

CompTIA Network+® Guide to Managing and

Troubleshooting Networks

Third Edition

(Exam N10-005)

 

 

This page intentionally left blank

 

 

Mike Meyers’

CompTIA Network+® Guide to Managing and

Troubleshooting Networks

Third Edition

(Exam N10-005)

Mike Meyers

New York Chicago San Francisco Lisbon London Madrid Mexico City Milan

New Delhi San Juan Seoul Singapore Sydney Toronto

BaseTech

 

 

Copyright © 2012 by the McGraw-Hill Companies. All rights reserved. Printed in the United States of America. Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of publisher, with the exception that the program listings may be entered, stored, and executed in a computer system, but they may not be reproduced for publication.

ISBN: 978-0-07-179981-2

MHID: 0-07-179981-8

The material in this eBook also appears in the print version of this title: ISBN: 978-0-07-178911-0, MHID: 0-07-178911-1.

All trademarks are trademarks of their respective owners. Rather than put a trademark symbol after every occurrence of a trademarked name, we use names in an editorial fashion only, and to the benefi t of the trademark owner, with no intention of infringement of the trademark. Where such designations appear in this book, they have been printed with initial caps.

McGraw-Hill eBooks are available at special quantity discounts to use as premiums and sales promotions, or for use in corporate training programs. To contact a representative please e-mail us at bulksales@mcgraw-hill.com.

McGraw-Hill is an independent entity from CompTIA®. This publication and digital content may be used in assisting students to prepare for the CompTIA Network+ exam. Neither CompTIA nor McGraw-Hill warrants that use of this publication and digital content will ensure passing any exam. CompTIA and CompTIA Network+ are trademarks or registered trademarks of CompTIA in the United States and/or other countries. All other trademarks are trademarks of their respective owners.

Fluke images printed with permission of Fluke Corporation, ©Fluke Corp. Intel image printed with permission of Intel Corporation, ©Intel Corp. TRENDnet images printed with permission of Trendnet Media, ©TRENDnet. Equalizer E650GX image printed by permission of Coyote Point Systems, ©Coyote Point Systems, Inc. www.coyotepoint.com. NetGear image printed with permission of NetGear, ©NETGEAR, Inc. Hewlett-Packard images printed with permission of HP, ©Hewlett-Packard CLEAR image printed with permission of CLEAR, ©CLEAR

TERMS OF USE

This is a copyrighted work and The McGraw-Hill Companies, Inc. (“McGrawHill”) and its licensors reserve all rights in and to the work. Use of this work is subject to these terms. Except as permitted under the Copyright Act of 1976 and the right to store and retrieve one copy of the work, you may not decompile, disassemble, reverse engineer, reproduce, modify, create derivative works based upon, transmit, distribute, disseminate, sell, publish or sublicense the work or any part of it without McGraw-Hill’s prior consent. You may use the work for your own noncommercial and personal use; any other use of the work is strictly prohibited. Your right to use the work may be terminated if you fail to comply with these terms.

THE WORK IS PROVIDED “AS IS.” McGRAW-HILL AND ITS LICENSORS MAKE NO GUARANTEES OR WARRANTIES AS TO THE ACCURACY, ADEQUACY OR COMPLETENESS OF OR RESULTS TO BE OBTAINED FROM USING THE WORK, INCLUDING ANY INFORMATION THAT CAN BE ACCESSED THROUGH THE WORK VIA HYPERLINK OR OTHERWISE, AND EXPRESSLY DISCLAIM ANY WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. McGraw-Hill and its licensors do not warrant or guarantee that the functions contained in the work will meet your requirements or that its operation will be uninterrupted or error free. Neither McGraw-Hill nor its licensors shall be liable to you or anyone else for any inaccuracy, error or omission, regardless of cause, in the work or for any damages resulting therefrom. McGraw-Hill has no responsibility for the content of any information accessed through the work. Under no circumstances shall McGraw-Hill and/ or its licensors be liable for any indirect, incidental, special, punitive, consequential or similar damages that result from the use of or inability to use the work, even if any of them has been advised of the possibility of such damages. This limitation of liability shall apply to any claim or cause whatsoever whether such claim or cause arises in contract, tort or otherwise.

E-book conversion by codeMantra

Version 2.0

 

 

About the Author■■ Michael Meyers is the industry’s leading authority on CompTIA Network+ certifica- tion. He is the president and founder of Total Seminars, LLC, a major provider of PC and network repair seminars for thousands of organizations throughout the world, and a member of CompTIA.

Mike has written numerous popular textbooks, including the best-selling Mike Meyers’ CompTIA A+® Guide to Managing & Troubleshooting PCs, Mike Meyers’ CompTIA A+® Guide to Essentials, and Mike Meyers’ CompTIA A+® Guide to Operating Systems.

About the Contributor Scott Jernigan wields a mighty red pen as Editor in Chief for Total Seminars. With a Master of Arts degree in Medieval History, Scott feels as much at home in the musty archives of London as he does in the warm CRT glow of Total Seminars’ Houston head- quarters. After fleeing a purely academic life, he dove headfirst into IT, working as an instructor, editor, and writer.

Scott has written, edited, and contributed to dozens of books on computer liter- acy, hardware, operating systems, networking, and certification, including Computer Literacy—Your Ticket to IC3 Certification, and co-authoring with Mike Meyers the All-in- One CompTIA Strata® IT Fundamentals Exam Guide.

Scott has taught computer classes all over the United States, including stints at the United Nations in New York and the FBI Academy in Quantico. Practicing what he preaches, Scott is a CompTIA A+ and CompTIA Network+ certified technician, a Microsoft Certified Professional, a Microsoft Office User Specialist, and Certiport Inter- net and Computing Core Certified.

About the Technical Editor Jonathan S. Weissman earned his master’s degree in Computer and Information Science from Brooklyn College (CUNY), and holds nineteen industry certifications, including Cisco CCNA, CompTIA Security+, CompTIA i-Net+, CompTIA Network+, CompTIA A+, CompTIA Linux+, Novell CNE, Novell CNA, Microsoft Office Master, Microsoft MCAS Word, Microsoft MCAS PowerPoint, Microsoft MCAS Excel, Microsoft MCAS Access, Microsoft MCAS Outlook, and Microsoft MCAS Vista.

Jonathan is a tenured Assistant Professor of Computing Sciences at Finger Lakes Community College, in Canandaigua, NY, and also teaches graduate and under- graduate computer science courses at nearby Rochester Institute of Technology. In addi- tion, Jonathan does computer, network, and security consulting for area businesses and individuals.

Between FLCC and RIT, Jonathan has taught nearly two dozen different computer science courses, including networking, security, administration, forensics, program- ming, operating systems, hardware, and software.

Students evaluating his teaching emphasize that he simplifies their understanding of difficult topics, while at the same time makes the class interesting and entertaining.

Jonathan completely designed and configured FLCC’s newest Networking & Secu- rity Lab. Serving as IT Program Coordinator, he rewrote FLCC’s Information Technol- ogy course requirements for the degree, keeping it current with the changes in industry over the years.

This textbook is just one of the many that Jonathan has edited for thoroughness and accuracy.

BaseTech

 

 

This page intentionally left blank

 

 

vii

Acknowledgments■■ I’d like to acknowledge the many people who contributed their talents to make this book possible:

To Tim Green, my acquisitions editor at McGraw-Hill: Didn’t think I’d get the book out this quickly, did you? Thanks for your superb support and encouragement, as always.

To my in-house Editor-in-Chief, Scott Jernigan: Didn’t think we’d get the book out that fast, did you? How many 85s do you have now? Pelape still smokes them all in DPS.

To Jonathan Weissman, technical editor: Holy crap, you kicked my butt. Thanks for making my book dramatically better than it has ever been.

To LeeAnn Pickrell, copy editor: u made me write good, thx. To Michael Smyer, Total Seminars’ resident tech guru and photogra-

pher: Glad to see you staying focused. And your photos rocked as always! To Ford Pierson, graphics maven and editor: Superb conceptual art?

Check! Great editing? Check! Beating the boss in Unreal Tournament over and over again? Check, unfortunately.

To Aaron Verber, editor extraordinaire: Your quiet toils in the dark cor- ner of the office have once again paid outstanding dividends!

To Dudley Lehmer, my partner at Total Seminars: As always, thanks for keeping the ship afloat while I got to play on this book!

To Stephanie Evans, acquisitions coordinator at McGraw-Hill: You are my favorite South African ambassador since the Springboks. Thanks for keeping track of everything and (gently) smacking Scott when he forgot things.

To Molly Sharp and Jody McKenzie, project editors: It was a joy to work with you, Molly, and again with you, Jody. I couldn’t have asked for a better team! (Didn’t think I could resist making the pun, did you?)

To Andrea Fox, proofreader: You did a super job, thank you To Tom and Molly Sharp, compositors: The layout was excellent,

thanks!

To Staci Lynne ■■ Davis, vegan chef and

punk rocker: Thanks for showing me your world

and, in the process, expanding mine.

BaseTech

 

 

Key Terms, identified in red, point out important vocabulary and definitions that you need to know.

Tech Tip sidebars provide inside information from experienced IT professionals.

Cross Check questions develop reasoning skills: ask, compare, contrast, and explain.

Engaging and Motivational— Using a conversational style and proven instructional approach, the author explains technical concepts in a clear, interesting way using real-world examples.

Makes Learning Fun!— Rich, colorful text and enhanced illustrations bring technical subjects to life.

10BaseT also introduced the networking world to the RJ-45 connector (Figure 4.9). Each pin on the RJ-45 connects to a single wire inside the cable; this enables de- vices to put voltage on the indi- vidual wires within the cable. The pins on the RJ-45 are numbered from 1 to 8, as shown in Figure 4.10.

The 10BaseT standard designates some of these numbered wires for specific purposes. As mentioned earlier, although the cable has four pairs, 10BaseT uses only two of the pairs. 10BaseT devices use pins 1 and 2 to send data, and pins 3 and 6 to receive data. Even though one pair of wires sends data and another receives data, a 10BaseT device cannot send and receive simul- taneously. The rules of CSMA/CD still apply: only one device can use the segment contained in the hub without causing a collision. Later versions of Ethernet will change this rule.

An RJ-45 connector is usually called a crimp, and the act (some folks call it an art) of installing a crimp onto the end of a piece of UTP cable is called crimping. The tool used to secure a crimp onto the end of a cable is a crimper. Each wire inside a UTP cable must connect to the proper pin inside the crimp. Manufacturers color-code each wire within a piece of four-pair UTP to assist in properly matching the ends. Each pair of wires consists of a solid- colored wire and a striped wire: blue/blue-white, orange/orange-white, brown/brown-white, and green/green-white (Figure 4.11).

The Telecommunications Industry Association/Electronics Industries Alliance (TIA/EIA) defines the industry standard for correct crimping of four-pair UTP for 10BaseT networks. Two standards currently exist: TIA/ EIA 568A and TIA/EIA 568B. Figure 4.12 shows the TIA/EIA 568A and TIA/ EIA 568B color-code standards. Note that the wire pairs used by 10BaseT (1 and 2; 3 and 6) come from the same color pairs (green/green-white and orange/orange-white). Following an established color-code scheme, such as TIA/EIA 568A, ensures that the wires match up correctly at each end of the cable.

66 Mike Meyers’ CompTIA Network+ Guide to Managing and Troubleshooting Networks

Cross Check Check Your CATs!

You’ve already seen CAT levels in Chapter 3, “Cabling and Topology,” so check your memory and review the different speeds of the various CAT levels. Could 10BaseT use CAT 2? Could it use CAT 6? What types of devices can use CAT 1?

• Figure 4.9 Two views of an RJ-45 connector

• Figure 4.10 The pins on an RJ-45 connector are numbered 1 through 8.

• Figure 4.11 Color-coded pairs

The real name for RJ-45 is “8 Position 8 Contact (8P8C) modular plug.” The name RJ-45 is so dominant, however, that nobody but the nerdiest of nerds calls it by its real name. Stick to RJ-45.

AbouT ThIs book

Proven Learning Method Keeps You on Track Mike Meyers’ CompTIA Network+® Guide to Managing and Troubleshooting Networks is structured to give you comprehensive knowledge of computer skills and technologies. The textbook’s active learning methodology guides you beyond mere recall and—through thought-provoking activities, labs, and sidebars—helps you develop critical-thinking, diagnostic, and communication skills.

Information technology (IT) offers many career paths, leading to occupations in such fields as PC repair, network administration, telecommunications, Web development, graphic design, and desktop support. To become competent in any IT field, however, you need

certain basic computer skills. Mike Meyers’ CompTIA Network+® Guide to Managing and Troubleshooting Networks builds a foundation for success in the IT field by introducing you to fundamental technology concepts and giving you essential computer skills.

Important Technology skills ■

10BaseT also introduced the networking world to the RJ-45 connector (Figure 4.9). Each pin on the RJ-45 connects to a single wire inside the cable; this enables de- vices to put voltage on the indi- vidual wires within the cable. The pins on the RJ-45 are numbered from 1 to 8, as shown in Figure 4.10.

The 10BaseT standard designates some of these numbered wires for specific purposes. As mentioned earlier, although the cable has four pairs, 10BaseT uses only two of the pairs. 10BaseT devices use pins 1 and 2 to send data, and pins 3 and 6 to receive data. Even though one pair of wires sends data and another receives data, a 10BaseT device cannot send and receive simul- taneously. The rules of CSMA/CD still apply: only one device can use the segment contained in the hub without causing a collision. Later versions of Ethernet will change this rule.

An RJ-45 connector is usually called a crimp, and the act (some folks call it an art) of installing a crimp onto the end of a piece of UTP cable is called crimping. The tool used to secure a crimp onto the end of a cable is a crimper. Each wire inside a UTP cable must connect to the proper pin inside the crimp. Manufacturers color-code each wire within a piece of four-pair UTP to assist in properly matching the ends. Each pair of wires consists of a solid- colored wire and a striped wire: blue/blue-white, orange/orange-white, brown/brown-white, and green/green-white (Figure 4.11).

The Telecommunications Industry Association/Electronics Industries Alliance (TIA/EIA) defines the industry standard for correct crimping of four-pair UTP for 10BaseT networks. Two standards currently exist: TIA/ EIA 568A and TIA/EIA 568B. Figure 4.12 shows the TIA/EIA 568A and TIA/ EIA 568B color-code standards. Note that the wire pairs used by 10BaseT (1 and 2; 3 and 6) come from the same color pairs (green/green-white and orange/orange-white). Following an established color-code scheme, such as TIA/EIA 568A, ensures that the wires match up correctly at each end of the cable.

66 Mike Meyers’ CompTIA Network+ Guide to Managing and Troubleshooting Networks

Cross Check Check Your CATs!

You’ve already seen CAT levels in Chapter 3, “Cabling and Topology,” so check your memory and review the different speeds of the various CAT levels. Could 10BaseT use CAT 2? Could it use CAT 6? What types of devices can use CAT 1?

• Figure 4.9 Two views of an RJ-45 connector

• Figure 4.10 The pins on an RJ-45 connector are numbered 1 through 8.

• Figure 4.11 Color-coded pairs

The real name for RJ-45 is “8 Position 8 Contact (8P8C) modular plug.” The name RJ-45 is so dominant, however, that nobody but the nerdiest of nerds calls it by its real name. Stick to RJ-45.

10BaseT also introduced the networking world to the RJ-45 connector (Figure 4.9). Each pin on the RJ-45 connects to a single wire inside the cable; this enables de- vices to put voltage on the indi- vidual wires within the cable. The pins on the RJ-45 are numbered from 1 to 8, as shown in Figure 4.10.

The 10BaseT standard designates some of these numbered wires for specific purposes. As mentioned earlier, although the cable has four pairs, 10BaseT uses only two of the pairs. 10BaseT devices use pins 1 and 2 to send data, and pins 3 and 6 to receive data. Even though one pair of wires sends data and another receives data, a 10BaseT device cannot send and receive simul- taneously. The rules of CSMA/CD still apply: only one device can use the segment contained in the hub without causing a collision. Later versions of Ethernet will change this rule.

An RJ-45 connector is usually called a crimp, and the act (some folks call it an art) of installing a crimp onto the end of a piece of UTP cable is called crimping. The tool used to secure a crimp onto the end of a cable is a crimper. Each wire inside a UTP cable must connect to the proper pin inside the crimp. Manufacturers color-code each wire within a piece of four-pair UTP to assist in properly matching the ends. Each pair of wires consists of a solid- colored wire and a striped wire: blue/blue-white, orange/orange-white, brown/brown-white, and green/green-white (Figure 4.11).

The Telecommunications Industry Association/Electronics Industries Alliance (TIA/EIA) defines the industry standard for correct crimping of four-pair UTP for 10BaseT networks. Two standards currently exist: TIA/ EIA 568A and TIA/EIA 568B. Figure 4.12 shows the TIA/EIA 568A and TIA/ EIA 568B color-code standards. Note that the wire pairs used by 10BaseT (1 and 2; 3 and 6) come from the same color pairs (green/green-white and orange/orange-white). Following an established color-code scheme, such as TIA/EIA 568A, ensures that the wires match up correctly at each end of the cable.

66 Mike Meyers’ CompTIA Network+ Guide to Managing and Troubleshooting Networks

Cross Check Check Your CATs!

You’ve already seen CAT levels in Chapter 3, “Cabling and Topology,” so check your memory and review the different speeds of the various CAT levels. Could 10BaseT use CAT 2? Could it use CAT 6? What types of devices can use CAT 1?

• Figure 4.9 Two views of an RJ-45 connector

• Figure 4.10 The pins on an RJ-45 connector are numbered 1 through 8.

• Figure 4.11 Color-coded pairs

The real name for RJ-45 is “8 Position 8 Contact (8P8C) modular plug.” The name RJ-45 is so dominant, however, that nobody but the nerdiest of nerds calls it by its real name. Stick to RJ-45.

/ Mike Meyers’ CompTIA Network+ Guide to Managing and Troubleshooting Networks, Third Edition / Meyers / 911-1 / fm blind folio ix

 

 

consider that type of NIC. The spe- cific process by which a NIC uses electricity to send and receive data is exceedingly complicated, but luck- ily for you, not necessary to under- stand. Instead, just think of a charge on the wire as a one, and no charge as a zero. A chunk of data moving in pulses across a wire might look something like Figure 2.13.

If you put an oscilloscope on the wire to measure voltage, you’d see something like Figure 2.14. An oscilloscope is a powerful micro- scope that enables you to see elec- trical pulses.

Now, remembering that the pulses represent bi- nary data, visualize instead a string of ones and zeroes moving across the wire (Figure 2.15).

Once you understand how data moves along the wire, the next question becomes this: how does the net- work get the right data to the right system? All networks transmit data by breaking whatever is moving across the physical layer (files, print jobs, Web pages, and so forth) into discrete chunks called frames. A frame is basically a container for a chunk of data moving across a network. The NIC creates and sends, as well as receives and reads, these frames.

I like to visualize an imaginary table inside every NIC that acts as a frame creation and reading station. I see frames as those pneumatic canis- ters you see when you go to a drive-in teller at a bank. A little guy inside the network card—named Nick, naturally!—builds these pneumatic canisters (the frames) on the table, and then shoots them out on the wire to the hub (Figure 2.16).

Chapter 2: Building a Network with the OSI Model 15

Try This! What’s Your MAC Address?

You can readily determine your MAC address on a Windows computer from the command line. This works in all modern versions of Windows.

1. In Windows 2000/XP, click Start | Run. Enter the command CMD and press the ENTER key to get to a command prompt.

2. In Windows Vista, click Start, enter CMD in the Start Search text box, and press the ENTER key to get to a command prompt.

3. At the command prompt, type the command IPCONFIG /ALL and press the ENTER key.

• Figure 2.13 Data moving along a wire

• Figure 2.14 Oscilloscope of data

• Figure 2.15 Data as ones and zeroes

• Figure 2.16 Inside the NIC

A number of different frame types are used in different net- works. All NICs on the same net- work must use the same frame type or they will not be able to communicate with other NICs.

Each chapter includes Learning Objectives ■ that set measurable goals for chapter-by-chapter progress

Illustrations ■ that give you a clear picture of the technologies

Tutorials ■ that teach you to perform essential tasks and procedures hands-on

Try This!, Cross Check ■ , and Tech Tip sidebars that encourage you to practice and apply concepts in real-world settings

Notes, Tips ■ , and Warnings that guide you through difficult areas

Chapter Summaries ■ and Key Terms Lists that provide you with an easy way to review important concepts and vocabulary

Challenging End-of-Chapter Tests ■ that include vocabulary-building exercises, multiple-choice questions, essay questions, and on-the-job lab projects

This pedagogically rich book is designed to make learning easy and enjoyable and to help you develop the skills and critical-thinking abilities that will enable you to adapt to different job situations and troubleshoot problems.

Mike Meyers’ proven ability to explain concepts in a clear, direct, even humorous way makes this book interesting, motivational, and fun.

Effective Learning Tools ■

Proven Learning Method Keeps You on Track Mike Meyers’ CompTIA Network+® Guide to Managing and Troubleshooting Networks is structured to give you comprehensive knowledge of computer skills and technologies. The textbook’s active learning methodology guides you beyond mere recall and—through thought-provoking activities, labs, and sidebars—helps you develop critical-thinking, diagnostic, and communication skills.

Try This! exercises apply core skills in a new setting.

Chapter Review sections provide concept summaries, key terms lists, and lots of questions and projects.

Key Terms Lists presents the important terms identified in the chapter.

Offers Practical Experience— Tutorials and lab assignments develop essential hands-on skills and put concepts in real-world contexts.

Robust Learning Tools— Summaries, key terms lists, quizzes, essay questions, and lab projects help you practice skills and measure progress.

Notes,Tips, and Warnings create a road map for success.

consider that type of NIC. The spe- cific process by which a NIC uses electricity to send and receive data is exceedingly complicated, but luck- ily for you, not necessary to under- stand. Instead, just think of a charge on the wire as a one, and no charge as a zero. A chunk of data moving in pulses across a wire might look something like Figure 2.13.

If you put an oscilloscope on the wire to measure voltage, you’d see something like Figure 2.14. An oscilloscope is a powerful micro- scope that enables you to see elec- trical pulses.

Now, remembering that the pulses represent bi- nary data, visualize instead a string of ones and zeroes moving across the wire (Figure 2.15).

Once you understand how data moves along the wire, the next question becomes this: how does the net- work get the right data to the right system? All networks transmit data by breaking whatever is moving across the physical layer (files, print jobs, Web pages, and so forth) into discrete chunks called frames. A frame is basically a container for a chunk of data moving across a network. The NIC creates and sends, as well as receives and reads, these frames.

I like to visualize an imaginary table inside every NIC that acts as a frame creation and reading station. I see frames as those pneumatic canis- ters you see when you go to a drive-in teller at a bank. A little guy inside the network card—named Nick, naturally!—builds these pneumatic canisters (the frames) on the table, and then shoots them out on the wire to the hub (Figure 2.16).

Chapter 2: Building a Network with the OSI Model 15

Try This! What’s Your MAC Address?

You can readily determine your MAC address on a Windows computer from the command line. This works in all modern versions of Windows.

1. In Windows 2000/XP, click Start | Run. Enter the command CMD and press the ENTER key to get to a command prompt.

2. In Windows Vista, click Start, enter CMD in the Start Search text box, and press the ENTER key to get to a command prompt.

3. At the command prompt, type the command IPCONFIG /ALL and press the ENTER key.

• Figure 2.13 Data moving along a wire

• Figure 2.14 Oscilloscope of data

• Figure 2.15 Data as ones and zeroes

• Figure 2.16 Inside the NIC

A number of different frame types are used in different net- works. All NICs on the same net- work must use the same frame type or they will not be able to communicate with other NICs.

consider that type of NIC. The spe- cific process by which a NIC uses electricity to send and receive data is exceedingly complicated, but luck- ily for you, not necessary to under- stand. Instead, just think of a charge on the wire as a one, and no charge as a zero. A chunk of data moving in pulses across a wire might look something like Figure 2.13.

If you put an oscilloscope on the wire to measure voltage, you’d see something like Figure 2.14. An oscilloscope is a powerful micro- scope that enables you to see elec- trical pulses.

Now, remembering that the pulses represent bi- nary data, visualize instead a string of ones and zeroes moving across the wire (Figure 2.15).

Once you understand how data moves along the wire, the next question becomes this: how does the net- work get the right data to the right system? All networks transmit data by breaking whatever is moving across the physical layer (files, print jobs, Web pages, and so forth) into discrete chunks called frames. A frame is basically a container for a chunk of data moving across a network. The NIC creates and sends, as well as receives and reads, these frames.

I like to visualize an imaginary table inside every NIC that acts as a frame creation and reading station. I see frames as those pneumatic canis- ters you see when you go to a drive-in teller at a bank. A little guy inside the network card—named Nick, naturally!—builds these pneumatic canisters (the frames) on the table, and then shoots them out on the wire to the hub (Figure 2.16).

Chapter 2: Building a Network with the OSI Model 15

Try This! What’s Your MAC Address?

You can readily determine your MAC address on a Windows computer from the command line. This works in all modern versions of Windows.

1. In Windows 2000/XP, click Start | Run. Enter the command CMD and press the ENTER key to get to a command prompt.

2. In Windows Vista, click Start, enter CMD in the Start Search text box, and press the ENTER key to get to a command prompt.

3. At the command prompt, type the command IPCONFIG /ALL and press the ENTER key.

• Figure 2.13 Data moving along a wire

• Figure 2.14 Oscilloscope of data

• Figure 2.15 Data as ones and zeroes

• Figure 2.16 Inside the NIC

A number of different frame types are used in different net- works. All NICs on the same net- work must use the same frame type or they will not be able to communicate with other NICs.

BaseTech

 
Do you need a similar assignment done for you from scratch? Order now!
Use Discount Code "Newclient" for a 15% Discount!