\documentclass[10pt]{article} 
\usepackage{times}

\usepackage{fullpage}
\renewcommand{\baselinestretch}{1.1}
\usepackage{url}
\usepackage{latexsym}


\newcommand{\eat}[1]{}
\newcommand{\pt}[1]{\textbf{[#1]}}


\pagestyle{empty}


\begin{document}

\noindent\textbf{\Large \bfseries CMSC 724, Spring 2016: Homework 1} \\[3pt]
\textbf{\Large \bfseries Due Friday February 12, 2016, 6pm.} \\[3pt]
\noindent{\bf The homework is to be done by yourself. Be concise in your answers -- answers to most
questions should be at most one paragraph.}

\begin{enumerate}

\item Give an example that illustrates that IMS violates the desirable property of {\em physical data independence}.

\item Briefly explain the notion of ``currency indicators" in CODASYL.

\item Briefly explain what problems the {\em normal forms} (as a concept) were designed to address/solve, and how they solve those problems. What are the key tradeoffs 
different normal forms allow us explore?

\item What were the problems with Normalization theory that E/R model provides an effective solution for?

%\item List the new constructs proposed by Zaniolo to be added to the relational model.

\item What was the key motivation behind Object-oriented databases? Why did they not succeed?

\item Briefly explain the notion of UDFs and their key advantages.

\item Briefly explain why I/O processes are typically needed if the database server is a single multi-threaded process. Is there
        something the OS could provide to address this problem? 

\item Explain one scenario where it makes sense to assign multiple DBMS workers to a single SQL query, and discuss
the pros and cons of doing so. There is a brief discussion towards the end of Section 2.3 (in the Architecture paper).

\item List three of the responsibilities of the query rewrite module in a database system.

\item Given three reasons why databases need fine-grained control over the buffer management. 

\item Briefly explain why ``Steal/No Force'' is preferable, and what kind of problems it raises for guaranteeing ACID properties.

\item What trade-offs do Isolation Levels allow one to explore?

\item What are the three major concurrency control techniques? 

\item Clearly explain the problem of "double-buffering" when running a database system on top of an OS. How does {\em mmap} help solve that problem?

\item Briefly explain the LRU-k buffer replacement policy, and how it helps circumvent some of the concerns with using the more standard LRU for
database operations. There is a brief discussion in Section 5.3 of the "Architecture" paper.

\item What are some of the issues that come up if a database is being used on top of a RAID storage device?

\end{enumerate}

\vspace{-20pt}
\bibliographystyle{alpha}
\bibliography{midterm}


\end{document}
