1) You are implementing a Relational Database for a company t that sells its pro
ID: 3864987 • Letter: 1
Question
1) You are implementing a Relational Database for a company t that sells its products on internet. The Database maintains the Customer information in a table called “CUSTOMERS”. The primary key of this table is a column called “CustomerID”. There are also columns “LastName”, “FirstName” , “City” , and “ZipCode” representing last name, first name, city in which the Customer lives and the 5 digit zip code of the customer respectively. When a customer calls the customer service department with any inquiries, the customer service representative asks the customer for his or her Customer ID and pulls the information related to that customer from the Database. However, if a caller does not remember his/her Customer ID, the Customer service representative asks the customer for his/her last name and the 5 digit zip code, pulls the information related to all the customers from the database with matching last name & zip code combination and then further narrows down the search for the customer record based on some other identifiable information about the customer. The CUSTOMER table is expected to have millions of records and the system needs to quickly retrieve a set of matching customer records based on Customer’s last name and 5 digit zip code combinations.
As the Database Designer, how could you speed up the retrieval of data from the CUSTOMER table for a given combination of customer’s last name and zip code?
2) You are implementing a NoSQL database to record the grievances of customers of an automobile company. You have freedom of recommending a Key-Value type database or a Document Database. Each of the grievance record is keyed on Customer ID, and contains certain other information like the Automobile model (examples: Camry, Civic, Corolla, Escort….), grievance category (Example: Mileage/Fuel consumption, Maintenance costs, pickup time…), and some description of the grievance. The system needs an ability to index and query the grievance records based on values for Automobile model and grievance category.
As the Database Designer, would you recommend a Key-value type of database or a Document database? Please provide explanation(s) for your recommendation.
Explanation / Answer
For the 1st part of your question as a database designer I would recommend to create a index on both both last name and zip code column that would help make the retreival faster.
CREATE INDEX IDX_DEMO ON CUSTOMER(LAST_NAME,ZIP_CODE);
for the part 2 I would recommend using key valye typeDatabase. The reasons will be as below
1. There will be frequent small read and writes.
2. the data stored are simple scalar values like String/Varchar.
3. Data will be keyed agains customer ID. Key - Value DB provides query facilities that allows us to lookup values by key.
4. It also provides caching.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.