Before you keep reading...
Runestone Academy can only continue if we get support from individuals like you. As a student you are well aware of the high cost of textbooks. Our mission is to provide great books to you for free, but we ask that you consider a $10 donation, more if you can or less if $10 is a burden.
Before you keep reading...
Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.
Ways of Work¶
In this chapter we will discuss how to work through the process of forming precise queries in English from initial requests that can have some level of vagueness. This vagueness is human nature- we are not precise when we speak or write.
The ways of work we will examine mostly focus on communicating, that is, getting a precise statement in an English narrative form of what a query is about.
When you master query narratives you will be sensitive to language. By “sensitive” I mean that you should be able to discern vagueness and inaccuracy and then, in concert with users, be able to state things more clearly. While in everyday discourse people often are not strictly right or precise, with a query narrative you and users make a contract about a statement of requirements — users say “this is what we want extracted from the database”, and analysts agree to get it (a set of relations). As such, the narrative needs to both be understandable by users, and be precise enough to guide implementation. Given the vagary inherent in English, being sensitive to language does not imply that you follow a rigid set of rules in formulating a narrative. You need to make judgments and struggle, in concert with users, to find just the right phrasing that communicates your intent when you formulate the query, and later, perhaps months later, when you or others revisit the query.
There are several reasons you should expect some insensitivity to language. First, people are used to not naming some things and, instead, if they can see what they want, they point to it, leaving it unnamed. For example, you might say to me “Give me those over there … no, more to the left … .” However, when using a DBMS, you think not in terms of where something is, but, instead, think in terms of what it is, that is, its content. Second, getting precise and accurate narratives takes work, and users may be surprised that this is so, and dismayed at how vague they actually are. Third, well, that’s the way people are, except when forced to be otherwise – you will not get invited to parties if you always are pedantic and use the precise style of discourse required for query narratives. Fortunately, if you say to a user “Your query as stated could mean this …, or this … , or this … — which do you want?”, she might conclude that you must be very smart (and deserve your high salary) to be able to discern those fine distinctions, and say “Great thinking; I want all of them.” So you can expect that you and users will work together to refine a broad initial statement for an analysis into many quite picky query narratives.
We will start by presenting ways of forming query narratives. Then we will present several ways of translating from narratives to operators which masters employ.