Образцы вопросов по сертификации Firebird

Вопросы делятся на 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. {1}, {2}        
  2. {1}        
  3. {2}        
  4. Выборка будет пустой        
  5. Запрос не выполнится из-за ошибки        

Вопрос 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. {1}
  2. Выборка будет пустой
  3. Запрос не выполнится из-за ошибки

Вопрос 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. {1}
  2. Выборка будет пустой
  3. Запрос не выполнится из-за ошибки

Вопрос 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. {1, null}, {null}, {null},  {null, 1}
  2. {1, null}, {null, 1}, {null}, {null},  
  3. {null}, {null},  {null, 1}, {1, null}
  4. {null, 1}, {null, null}, {1, null}
  5. {null, 1}, {1, null}, {null, null}
  6. Выборка будет пустой
  7. Запрос не выполнится из-за ошибки

Вопрос 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;            
Выберите правильные варианты ответа:
  1. {null}    
  2. {66}    
  3. Дробное число     
  4. {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    
);    
Выберите правильные варианты ответа:
  1. t1 < t2, elapsed_ms – положительное число    
  2. t2 > t1, elapsed_ms – отрицательное число    
  3. t1 = t2, elapsed_ms – ноль    
  4. Запрос не выполнится из-за ошибки этапа компиляции    

Вопрос 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;            
Выберите правильные варианты ответа:
  1. {null}
  2. {1111}
  3. {2222}
  4. {3333}
  5. Выборка будет пустой
  6. Запрос не выполнится из-за ошибки этапа компиляции

Вопрос 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;                
Выберите правильные варианты ответа:
  1. {null}
  2. {0}
  3. {1}
  4. {2}
  5. {3}
  6. {4}
  7. {5}
  8. Запрос не выполнится из-за ошибки этапа компиляции

Вопрос 9

Таблица TABLE состоит из столбцов A и B. Построен индекс create index BY_BA on TABLE (B, A). Для какого запроса этот индекс будет использован?

Выберите правильные варианты ответа:
  1. SELECT * FROM TABLE ORDER BY A, B
  2. SELECT * FROM TABLE ORDER BY B, A
  3. SELECT * FROM TABLE ORDER BY A DESC, B DESC
  4. SELECT * FROM TABLE ORDER BY B DESC, A DESC

Вопрос 10

Если в течении транзакции #1 SNAPSHOT в параллельной транзакции #anchor_2 SNAPSHOT были вставлены новые записи и #anchor_2 была закоммичена, увидит ли транзакция #1 эти записи при чтении после комитта транзакции №2?

Выберите варианты ответа:
  • Да
  • Нет

Вопрос 11

В случае конфликта обновления между Транзакцией №1 (wait) и Транзакцией №2, в случае, если транзакция №2 завершится роллбэком произойдет следующее: 
  1. возникнет ошибка Update conflict with concurrent update 
  2. возникнет ошибка Lock conflict on nowait transaction 
  3. не возникнет ошибки, обновление Тр1 пройдет успешно
Укажите номер правильного варианта (1,2 или 3).
 

Примеры вопросов к сертификации на администратора СУБД Firebird

Вопрос 1

В случае, если Firebird под Windows обслуживает сетевые подключения, папка, где находится база данных, должна иметь следующие установки:
  1. Папка с БД должна быть shared resource и все использующие БД пользователи должны иметь разрешения на доступ к этому ресурсу на изменение 
  2. Папка с БД должна быть shared resource и все использующие БД пользователи должны иметь разрешения на доступ к этому ресурсу на чтение
  3. Папка с БД не обязана быть shared resource, но должна иметь разрешения для всех пользователей Windows (ActiveDirectory или домена), чтобы они могли работать с БД
  4. Папка с БД не обязана быть shared resource, и не должна иметь разрешений для всех пользователей Windows, которые с ней работают.
Укажите правильный вариант.

Вопрос 2

В случае, если Firebird установлен в 32-битном варианте, с базой данных Firebird смогут работать:
  1. Только 32 битные клиентские приложения
  2. Только 64 битные клиентские приложения
  3. И 32-, и 64-битные приложения
Укажите правильный вариант.

Вопрос 3

Параметр DefaultDbCachePages (для всех архитектур) устанавливает
  1. Количество страничных буферов по умолчанию в кэше каждого процесса Firebird
  2. Общее количество страничных буферов по умолчанию на все процессы Firebird
  3. Размер кэша Windows, отводимого для кэширования метаданных
Укажите правильный вариант.

Вопрос 4

Если при попытке соединения с БД Firebird появляется ошибка “Unavailaible database”, то
  1. БД повреждена
  2. Сервер не запущен
  3. Путь к БД указан неверно
  4. Используется версия клиентской библиотеки fbclient.dll (gds32.dll), отличающаяся от версии сервера Firebird
Укажите правильные варианты.

Вопрос 5

К чему приводит команда gfix db.gdb -housekeeping 0 ?
  1. в базе данных отключается сборка мусора
  2. перестает работать автоматический sweep
  3. немедленно запускается автоматический sweep
Укажите правильный вариант.

Вопрос 6

Необходимо сделать backup базы данных. При какой операции будет собран мусор в базе данных?
  1. gbak -b database.gdb
  2. gbak -b -g database.gdb
  3. gfix -sweep database.gdb
Укажите правильный вариант.

Вопрос 7

Мусор в базе данных – это
  1. не нужные ни одной транзакции записи
  2. не нужные ни одной транзакции версии записей
  3. версии записей, чья транзакция завершилась по rollback
  4. неподтвержденные даннные других транзакций
Укажите правильные варианты.

Подпишитесь на новости Firebird в России

Подписаться