###BeginCaseStudy###
Topic 3, Online Bookstore
Background
You are developing an online bookstore web application that will be used by your company’s customers.
Technical RequirementsGeneral requirements:
The web store application must be an ASP.NET MVC application written
in Visual Studio.
The application must connect to a Microsoft SQL database.
The GetTop100Books() method is mission critical and must return data
as quickly as possible. It should take advantage of fast, forward-only, read-only
methods of reading data.
The ImportBooks() method must keep a copy of the data that can be
accessed while new books are being imported without blocking reads.
The Create MonthlyTotalsReport() method must lock the data and
prevent others from updating or inserting new rows until complete.
The college textbook area of the web application must get data from a
daily updated CSV file.
The children’s book area of the web application must get data directly
from a local database. It must use a connection string. It must also support
access to the stored procedures on the database. Further, it is required to have
strongly typed objects. Finally, it will require access to databases from multiple
vendors and needs to support more than one-to-one mapping of database
tables.
The cookbook functionality is contained within a client-side application
that must connect to the server using HTTP and requires access to the data
using JavaScript.
The BookApiController class must have a method that is able to perform
ad-hoc queries using OData.
The RESTful API of the bookstore must expose the following endpoints.
Application Structure
PurchaseOrders.xml
FeaturedBooks.xml
###EndCaseStudy###
You need to update the ImportBooks() method to use database transactions.
Which code segment should you use?
A.
SqlConnection.BeginTransaction(IsolationLevel.RepeatableRead);
B.
SqlConnection.BeginTransaction(IsolationLeve.ReadUnconvnited);
C.
SqlConneetion.BeginTransaction(IsolationLevel.Serializable);
D.
SqlConnection.BeginTransaction(IsolationLevel.Snapshot);
Explanation:
* scenario: The ImportBooks() method must keep a copy of the data that can be accessed while new
books are being imported without blocking reads.
* ReadUncommitted
A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.
There is a trap. There is no ReadUnconvnited isolation level (there is ReadUncommitted). Only D meets the requariments.
probably just a typo
in any case snapshot is indeed the only one that “keeps a copy of the data”
Yea, D is correct
D
https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels
https://msdn.microsoft.com/en-us/library/system.data.isolationlevel(v=vs.110).aspx
It’s D
Reduces blocking by storing a version of data that one application can read while another is modifying the same data.