Решение: Поиск родственников в базе данных
Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите, сколько жителей родились в том же городе, что и хотя бы одна из их бабушек или один из их дедушек. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.
| ID | Фамилия_И.О. | Пол | Место_рождения | ID_Родителя | ID_Ребёнка |
|---|---|---|---|---|---|
| 23 | Бабель В.Г. | Ж | Ярославль | 40 | 23 |
| 24 | Бабель В.Е. | М | Вологда | 41 | 23 |
| 25 | Бабель Г.Е. | Ж | Ярославль | 23 | 24 |
| 27 | Бабель К.Е. | Ж | Вологда | 23 | 25 |
| 31 | Гиппиус А.Г. | Ж | Ярославль | 23 | 27 |
| 33 | Гиппиус А.И. | М | Вологда | 40 | 31 |
| 37 | Гиппиус В.С. | Ж | Петрозаводск | 41 | 31 |
| 38 | Гиппиус И.К. | М | Вологда | 31 | 33 |
| 39 | Гиппиус К.Е. | М | Вологда | 38 | 33 |
| 40 | Олеша Г.В. | М | Вологда | 37 | 38 |
| 41 | Олеша К.Е. | Ж | Ярославль | 39 | 38 |
| 44 | Хармс В.К. | М | Петрозаводск | 49 | 44 |
| 48 | Хармс Г.В. | М | Петрозаводск | 44 | 48 |
| 49 | Хармс К.Н. | М | Петрозаводск | … | … |
| … | … | … | … | … | … |
Решение по шагам
4 шагаПо полю ID_Родителя восстанавливаем связи между жителями: значение ID родителя указывает на строку таблицы 1 с данными этого родителя.
Проверяем жителей, для которых в приведённых фрагментах можно определить хотя бы одного дедушку или бабушку. У жителей с ID 24, 25 и 27 среди известных бабушек и дедушек есть человек, родившийся соответственно в Вологде или Ярославле, как и сам житель.
Для жителя с ID 33 один из известных дедушек или бабушек родился в Вологде. Для жителя с ID 48 родитель — житель с ID 44, а его родитель — житель с ID 49; оба родились в Петрозаводске.
Таким образом, подходят жители с ID 24, 25, 27, 33 и 48.
Где здесь ошибаются
Учитывают жителей, для которых в приведённых фрагментах невозможно установить место рождения бабушки или дедушки.
Путают ID родителя с ID ребёнка.
Считают всех родственников, не проверяя совпадение места рождения.