Рубрики

Системы управления базами данных | Набор 11

На экзамене GATE CS 2007 были заданы следующие вопросы.

1) Информация о коллекции студентов дается отношением studinfo (studId, имя, пол) . Регистрация отношения (studId, courseId) дает информацию о том, какой студент записался (или прошел) этот курс (ы). Предположим, что каждый курс посещают как минимум один мужчина и как минимум одна студентка. Что представляет собой следующее выражение реляционной алгебры?

(A) Курсы, в которых обучаются все ученицы.
(B) Курсы, в которых обучается надлежащая группа учениц.
(C) Курсы, в которых обучаются только студенты мужского пола.
(D) Ничего из вышеперечисленного

Ответ (Б)
Выражение, данное в вопросе, выполняет следующие шаги в последовательности.
а) Выберите ученики всех учениц и выберете все курсы всех курсов.
б) Затем запрос делает декартово произведение вышеупомянутого, выбирая два столбца из разных таблиц.
c) Наконец, он вычитает таблицу регистрации из результата шага (b) выше. Это удалит все пары ( studid, courseid ), которые присутствуют в таблице регистрации . Если все учащиеся женского пола зарегистрировались на курсах, то этот курс не будет присутствовать в вычтенном результате.
Таким образом, полное выражение возвращает курсы, на которых зачислено надлежащее множество учениц.

studinfo table
studid   name    sex
------------------------
 1        a      Male
 2        c      Female 
 3        d      Female 

enroll table
studid  courseid
------------------
 1         1
 2         1
 3         1
 2         2 
 3         3
 3         2    


Result of step b
studid     courseid
---------------------
 2             1
 2             2
 2             3
 3             1
 3             2
 3             3  


Result of step c
studid    courseid
-------------------
 2           3

2) Рассмотрим отношение сотрудника (имя, пол, supervisorName) с именем в качестве ключа. supervisorName дает имя руководителя рассматриваемого сотрудника. Что производит следующий запрос Tuple Relational Calculus?

(A) Имена сотрудников с руководителем мужского пола.
(B) Имена сотрудников без непосредственных подчиненных мужчин.
(C) Имена сотрудников без непосредственных подчиненных женщин.
(D) Имена сотрудников с женщиной-руководителем.

Ответ (С)
Запрос выбирает всех тех сотрудников, чей непосредственный подчиненный — «мужчина». Другими словами, он выбирает имена сотрудников без непосредственных подчиненных женщин.

3) Рассмотрим таблицу сотрудник (empId, имя, отдел, зарплата) и два запроса Q1, Q2 ниже. Предполагая, что в отделе 5 работает более одного сотрудника, и мы хотим найти сотрудников, которые получают более высокую зарплату, чем кто-либо в отделе 5, какое из утверждений является ИСТИННЫМ для любой произвольной таблицы сотрудников?

Q1 : Select e.empId
     From employee e
     Where not exists
        (Select * From employee s where s.department = “5” and 
                                        s.salary >=e.salary)
Q2 : Select e.empId
     From employee e
     Where e.salary > Any
    (Select distinct salary From employee s Where s.department = “5”)

(A) Q1 правильный запрос
(B) Q2 — правильный запрос
(C) Q1 и Q2 дают одинаковый ответ.
(D) Ни Q1, ни Q2 не являются правильным запросом

Ответ (Б)
Пусть сотрудник (empId, имя, отдел, зарплата) имеет следующий экземпляр.

Название отдела зарплаты
—————
e1 ——- A ——– 1 ——— 10000
e2 ——- B ——- 5 ——— 5000
e3 ——- C ——- 5 ———- 7000
e4 ——- D ——- 2 ———- 2000
e5 ——- E ——- 3 ———- 6000

Теперь фактический результат должен содержать empId: e1, e3 и e5 (потому что у них зарплата больше, чем у любого сотрудника отдела '5')

——————-
Теперь Q1:

Примечание: EXISTS (пустой набор) дает FALSE, а NOT EXISTS (пустой набор) дает TRUE.

Выберите e.empId
От сотрудника е
Где не существует
(Выберите * У сотрудника s, где s.department = «5» и
s.salary> = e.salary)

Q1 приведет только к empId e1.
——————-
тогда как Q2:

Выберите e.empId
От сотрудника е
Где e.salary> любой
(Выберите отдельную зарплату у сотрудника s, где s.department = «5»)

Q2 приведет к empId e1, e3 и e5.
——————-
Следовательно, Q2 — правильный запрос.

4) Какое из следующих утверждений, если ЛОЖЬ?
(A) Любая связь с двумя атрибутами в BCNF
(B) Отношение, в котором каждый ключ имеет только один атрибут, находится в 2NF
(C) Первичный атрибут может транзитивно зависеть от ключа в отношении 3 NF.
(D) Первичный атрибут может транзитивно зависеть от ключа в отношении BCNF.

Ответ (D)

5) Рассмотрим следующие графики, включающие две транзакции. Какое из следующих утверждений является ИСТИННЫМ?

(A) S1 и S2 конфликтно сериализуемы.
(B) S1 является сериализуемым конфликтом, а S2 не сериализуемым конфликтом.
(C) S1 не является сериализуемым конфликтом, а S2 является сериализуемым конфликтом.
(D) И S1, и S2 не конфликтуются сериализуемо.

Ответ (С)
S1 не является сериализуемым конфликтом, но S2 является сериализуемым конфликтом

Schedule S1
   T1            T2
---------------------
  r1(X)
  r1(Y)
                r2(X)
                r2(Y)
                w2(Y)
  w1(X)
The schedule is neither conflict equivalent to T1T2, nor T2T1.

Schedule S2
   T1            T2
---------------------
  r1(X)
                r2(X)
                r2(Y)
                w2(Y)
  r1(Y)
  w1(X)
The schedule is conflict equivalent to T2T1.

Пожалуйста, напишите комментарии, если вы найдете какие-либо ответы / объяснения неправильными, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше

Рекомендуемые посты:

Системы управления базами данных | Набор 11

0.00 (0%) 0 votes