Вопросы делятся на 2 категории: вопросы по разработке SQL и управлению транзакциями и вопросы по администированию СУБД Firebird.
Примеры вопросов к сертификации на разработчика СУБД Firebird
Вопрос 1
Дано:
recreate table test1(id int);
recreate table test2(id int, id1 int, x int);
insert into test1 values(1);
insert into test1 values(2);
insert into test1 values(3);
insert into test2 values( 3, 1, null );
insert into test2 values( 4, 1, 1 );
insert into test2 values( 5, 2, null );
insert into test2 values( 6, 2, null );
Что выдаст запрос:
select *
from test1 a
where singular( select distinct nullif( mod(x,2), 0) from test2 x where x.id1 = a.id );
Выберите правильные варианты ответа:
- {1}, {2}
- {1}
- {2}
- Выборка будет пустой
- Запрос не выполнится из-за ошибки
Вопрос 2
Дано:
recreate table test1(id int, x int);
recreate table test2(id int, x int);
recreate table test3(id int, x int);
insert into test1 values( 1, 20 );
insert into test1 values( 2, 30 );
insert into test2 values( 1, 19 );
insert into test2 values( 2, 31 );
insert into test2 values( 3, null );
Что выдаст запрос:
select 1
from rdb$database
where exists(
select * from test1 a
where
a.x > all(select x from test2)
or
a.x > any(select x from test3)
);
Выберите правильные варианты ответа:
- {1}
- Выборка будет пустой
- Запрос не выполнится из-за ошибки
Вопрос 3
Дано:
recreate table test1(id int, x int);
recreate table test2(id int, x int);
recreate table test3(id int, x int);
insert into test1 values(1, 20);
insert into test1 values(2, 30);
insert into test2 values(1,19);
insert into test2 values(2,31);
insert into test2 values(3,null);
Что выдаст запрос:
select 1
from rdb$database
where exists(
select * from test1 a
where
a.x not in (select x from test2)
or
a.x not in (select x from test3)
);
Выберите правильные варианты ответа:
- {1}
- Выборка будет пустой
- Запрос не выполнится из-за ошибки
Вопрос 4
Дано:
recreate table test(x int, y int, constraint test_unq unique(x,y));
insert into test values( 1, null );
insert into test values( null, 1 );
insert into test values( null, null );
Что выдаст запрос (порядок строк – важен):
select distinct x, y
from test;
Выберите правильные варианты ответа:
- {1, null}, {null}, {null}, {null, 1}
- {1, null}, {null, 1}, {null}, {null},
- {null}, {null}, {null, 1}, {1, null}
- {null, 1}, {null, null}, {1, null}
- {null, 1}, {1, null}, {null, null}
- Выборка будет пустой
- Запрос не выполнится из-за ошибки
Вопрос 5
Дано:
recreate table test(x int, y int);
insert into test values(1, 100);
insert into test values(1, 80);
insert into test values(1, 20);
insert into test values(1, null);
Что выдаст следующий запрос:
select avg(y)
from test
group by x;
Выберите правильные варианты ответа:
- {null}
- {66}
- Дробное число
- {67}
Вопрос 6
Что выдаст следующий запрос:
select t1, t2, datediff(millisecond from t1 to t2) as elapsed_ms
from (
select timestamp 'now' as t1, count(*) cnt, timestamp 'now' as t2
from rdb$types a, rdb$types b, (select 1 i from rdb$types rows 20) c
);
Выберите правильные варианты ответа:
- t1 < t2, elapsed_ms – положительное число
- t2 > t1, elapsed_ms – отрицательное число
- t1 = t2, elapsed_ms – ноль
- Запрос не выполнится из-за ошибки этапа компиляции
Вопрос 7
Дано:
recreate table test1(id int, x int);
recreate table test2(id int, x int);
recreate table test3(id int, x int);
recreate table test4(id int, x int);
insert into test1 values(1, 1111);
insert into test2 values(2, 2222);
insert into test3 values(3, null);
insert into test4 values(4, 3333);
Что выдаст следующий запрос:
select coalesce(a.x, b.x, c.x, d.x)
from test1 a
right join test2 b on a.x = b.x
left join test3 c on b.x = c.x
right join test4 d on c.x = d.x;
Выберите правильные варианты ответа:
- {null}
- {1111}
- {2222}
- {3333}
- Выборка будет пустой
- Запрос не выполнится из-за ошибки этапа компиляции
Вопрос 8
Дано:
recreate table test(x int, y int, z int, constraint test_unq unique(x,y,z) );
insert into test values( null, 1111, null);
insert into test values( null, null, null);
insert into test values( 1111, null, null);
insert into test values( null, null, 1111);
insert into test values( null, null, null);
Что будет выведено запросом:
select count(*) - count(distinct minvalue(x,y,z) ) from test;
Выберите правильные варианты ответа:
- {null}
- {0}
- {1}
- {2}
- {3}
- {4}
- {5}
- Запрос не выполнится из-за ошибки этапа компиляции
Вопрос 9
Таблица TABLE состоит из столбцов A и B. Построен индекс create index BY_BA on TABLE (B, A). Для какого запроса этот индекс будет использован?
Выберите правильные варианты ответа:
- SELECT * FROM TABLE ORDER BY A, B
- SELECT * FROM TABLE ORDER BY B, A
- SELECT * FROM TABLE ORDER BY A DESC, B DESC
- SELECT * FROM TABLE ORDER BY B DESC, A DESC
Вопрос 10
Если в течении транзакции #1 SNAPSHOT в параллельной транзакции #anchor_2 SNAPSHOT были вставлены новые записи и #anchor_2 была закоммичена, увидит ли транзакция #1 эти записи при чтении после комитта транзакции №2?
Выберите варианты ответа:
Вопрос 11
В случае конфликта обновления между Транзакцией №1 (wait) и Транзакцией №2, в случае, если транзакция №2 завершится роллбэком произойдет следующее:
- возникнет ошибка Update conflict with concurrent update
- возникнет ошибка Lock conflict on nowait transaction
- не возникнет ошибки, обновление Тр1 пройдет успешно
Укажите номер правильного варианта (1,2 или 3).
Примеры вопросов к сертификации на администратора СУБД Firebird
Вопрос 1
В случае, если Firebird под Windows обслуживает сетевые подключения, папка, где находится база данных, должна иметь следующие установки:
- Папка с БД должна быть shared resource и все использующие БД пользователи должны иметь разрешения на доступ к этому ресурсу на изменение
- Папка с БД должна быть shared resource и все использующие БД пользователи должны иметь разрешения на доступ к этому ресурсу на чтение
- Папка с БД не обязана быть shared resource, но должна иметь разрешения для всех пользователей Windows (ActiveDirectory или домена), чтобы они могли работать с БД
- Папка с БД не обязана быть shared resource, и не должна иметь разрешений для всех пользователей Windows, которые с ней работают.
Укажите правильный вариант.
Вопрос 2
В случае, если Firebird установлен в 32-битном варианте, с базой данных Firebird смогут работать:
- Только 32 битные клиентские приложения
- Только 64 битные клиентские приложения
- И 32-, и 64-битные приложения
Укажите правильный вариант.
Вопрос 3
Параметр DefaultDbCachePages (для всех архитектур) устанавливает
- Количество страничных буферов по умолчанию в кэше каждого процесса Firebird
- Общее количество страничных буферов по умолчанию на все процессы Firebird
- Размер кэша Windows, отводимого для кэширования метаданных
Укажите правильный вариант.
Вопрос 4
Если при попытке соединения с БД Firebird появляется ошибка “Unavailaible database”, то
- БД повреждена
- Сервер не запущен
- Путь к БД указан неверно
- Используется версия клиентской библиотеки fbclient.dll (gds32.dll), отличающаяся от версии сервера Firebird
Укажите правильные варианты.
Вопрос 5
К чему приводит команда gfix db.gdb -housekeeping 0 ?
- в базе данных отключается сборка мусора
- перестает работать автоматический sweep
- немедленно запускается автоматический sweep
Укажите правильный вариант.
Вопрос 6
Необходимо сделать backup базы данных. При какой операции будет собран мусор в базе данных?
- gbak -b database.gdb
- gbak -b -g database.gdb
- gfix -sweep database.gdb
Укажите правильный вариант.
Вопрос 7
Мусор в базе данных – это
- не нужные ни одной транзакции записи
- не нужные ни одной транзакции версии записей
- версии записей, чья транзакция завершилась по rollback
- неподтвержденные даннные других транзакций
Укажите правильные варианты.