Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Considering the following four tables: Farmer(SIN, name, age, sex, vname) Villag

ID: 3684030 • Letter: C

Question

Considering the following four tables:
   Farmer(SIN, name, age, sex, vname)
   Village(name, area, population, province)
   KKids(SIN, f_sin, m_sin, s_name)
   School(sname, vname, no_classes)
   Where: sname=school name, vname =village name, f_sin and m_sin stand for the father`s and mother`s SIN, respectively.

2) Code the following queries in XQuery:
   a) Find SIN of farmers who have some kids going to school?
   b) Find name of each school attended only by kids from the same village where the school is located?
   c) Find the name of the most crowded village(s) (most population)?
   d) Find SIN numbers of farmers who have at least one kid in every school registered in the database?
   e) Find names of villages with no schools?
   f) Find the school attended by all kids of Mark? (all kids of Mark must go to school and must attend same school)
   g) Find names of farmers whose kids go only to schools outside the Province where the farmers live? (the farmer may have kids not going to schools at all, but if some of the kids go to schools then the schools they attend must be in other Provinces)

Explanation / Answer

Solution:

(2)

Farmer = (SIN, name, age, sex, vname)

Village = (name, area, population, province)

KKids = (SIN, f_sin, m_sin, s_name)

School = (sname, vname, no_classes)

a) Find SIN of farmers who have some kids going to school?

for $e in /db/farmer

       $m in distnict($e/SIN)

   where $m = SIN

   return $e/name

b) Find name of each school attended only by kids from the same village where the school is located?

   for $e in /db/school

            $s in $e/village

            $kids in $s/kkids

    where $kkids = $s

   return $e/name