Разработка и администрирование баз данных

Порядок проведения экзамена

Общие положения

  1. Билет состоит из одной задачи, разбитой на 3‒4 подпункта, оцениваемых индивидуально.

  2. Оценка складывается из оценок за решение основной и дополнительных задач. В каждом случае, оценка состоит из следующих элементов:

    • 60% — код решения (правильность логики, синтаксическая корректность, эффективность);
    • 40% — грамотность обоснования, наличие примеров.
  3. Компонентами задачи могут быть: разработка схемы, запросов (как конкретных, так и алгоритма формирования оных — например, веб-интерфейсом), представлений, триггеров, а равно настройка доступа (создание ролей, назначение им привилегий, etc.)

  4. Решение задач, связанных с построением или дополнением схемы, обязано включать примеры запросов для внесения новой информации и извлечения существующей.

  5. Задания до некоторой степени являются открытыми. В частности, в задании не обязательно перечислен полный набор свойств, которым должна обладать конкретная сущность. Так, например, то, что «сотрудник» должен обладать свойством «имя» — хотя бы уже для возможности различения сотрудников оператором БД — считается очевидным.

  6. В решении обязательно должен быть указан конкретный используемый язык запросов (SQL-92, SQL:2011, PostgreSQL, SQLite, etc.)

На что обратить внимание?

  1. В примерах отражены все задачи, которые могут встретиться в билетах, но их формулировка, равно как и компоновка подзадач, может несколько отличаться.

    Так, например, подзадача на управление доступом является достаточно общей и может встретиться почти в любой задаче — даже если ее нет в соответствующем примере.

  2. При решении основной задачи почти наверняка потребуется использовать такие средства, как CREATE TABLE, INSERT, SELECT.

  3. При решении подзадач могут потребоваться кроме того CREATE VIEW, CREATE TRIGGER, CREATE ROLE, GRANT, REVOKE, UPDATE, DELETE, etc.

Примеры задач

  1. Каталог магазина электронных компонентов (см., например, http://chipdip.ru/) включает для каждой позиции информацию о производителе, типе элемента (резистор, конденсатор, etc.), и номинале (например: 1 Ом, 36 пФ.)

    1. (60 баллов.) Разработайте схему базы данных, позволяющую выполнять поиск по параметрам выше, включая указание диапазона номиналов.

      Приведите пример запроса для поиска конденсаторов производства Murata с номиналами из диапазона 100‒500 пФ.

    2. (10 баллов.) Дополните схему информацией о складах организации и количестве каждого компонента на каждом из них.

    3. (5 баллов.) Дополните схему представлением (англ. view) «резисторы», включающем информацию только об имеющихся в наличии резисторах (производитель, номинал, количество на складах.)

    4. (10 баллов.) Дополните схему именами файлов изображений. Каждому компоненту может соответствовать любое количество изображений.

    5. (20 баллов.) Обобщите схему на случай произвольного количества числовых характеристик компонент. Приведите алгоритм формирования запросов для поиска элементов по совокупности характеристик.

    6. (15 баллов.) Дополните схему журналом изменений. Предусмотрите автоматическое внесение в него информации об изменении количества компонент на складе.

    7. (15 баллов.) Обоснованно настройте управление доступом для ролей «администратор», «кладовщик», «продавец», «прочие».

  2. Информационная система редакции журнала включает информацию о следующих основных сущностях:

    • автор (полное имя, адрес электронной почты, область интересов);
    • редактор;
    • статья;
    • файл (имя на файл-сервере, размер в байтах);
    • редакция статьи (основной и «прикрепленные» файлы, дата и время.)
    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше. Приведите запрос для внесения новой редакции существующей статьи.

    2. (20 баллов.) Процесс подготовки статьи к публикации начинается с приема авторской рукописи, за которым следует чередование редакторских и авторских правок, завершающийся принятием статьи к публикации. Дополните схему так, чтобы было возможно отслеживать состояние редакции (авторская, редакторская, окончательная.)

    3. (10 баллов.) Дополните схему представлением (англ. view) «наши авторы», включающем информацию обо всех авторах, статьи которых были опубликованы.

    4. (25 баллов.) В некоторых случаях имя автора может измениться после выхода статьи. Предусмотрите необходимые триггеры для автоматического, при изменении имени автора, связывания прежнего имени с его уже опубликованными статьями.

    5. (15 баллов.) Предусмотрите в схеме возможность хранения для каждого автора его имени на произвольном количестве языков (исключая 0); для каждой редакции — аннотации также на произвольном количестве языков.

    6. (20 баллов.) Обоснованно настройте управление доступом для ролей «администратор», «редактор», «автор», «прочие».

      Предусмотрите необходимые представления (англ. view) для ограничения доступа к информации. (Например, «автор» должен иметь возможность просматривать и вносить новые редакции лишь только собственных статей.)

  3. Элементами системы органического мира являются таксоны, каждый из которых имеет название (например: Люди), ранг (например: род), и связи с родительским (более высокого ранга) и дочерними (более низкого) таксонами.

    (Для лучшего понимания предметной области может быть полезно обратиться к таким ресурсам, как http://species.wikimedia.org/ и http://lifemap-ncbi.univ-lyon1.fr/.)

    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше. Укажите способ получения записей для всех таксонов, входящих в данный.

    2. (20 баллов.) Дополните схему информацией об авторе (принятого) названия таксона и синонимах. (Обратите внимание, что каждый синоним включает как собственно альтернативное название таксона, так и указание на автора такого названия.)

    3. (20 баллов.) Предусмотрите возможность помещения таксона в родительский incertae sedis. Обратите внимание, что различные таксоны, входящие в данный incertae sedis, не должны считаться «сестринскими».

  4. Каталог аудиозаписей включает информацию о следующих основных сущностях:

    • произведение (название, автор);
    • аудиозапись (произведение, исполнитель, дата выхода);
    • файл (имя, аудиозапись, формат, размер);
    • альбом.
    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше.

    2. (25 баллов.) Предусмотрите возможность хранения более подробной информации об авторстве произведения — нескольких авторов с возможным указанием вклада каждого (автор музыки, текста, оркестровки, etc.)

    3. (15 баллов.) Дополните схему представлением (англ. view) «трек», пригодным для формирования плейлиста и включающем поля «название», «музыкант», «альбом», «файл».

      Обратите внимание, что для «классических» произведений в качестве «музыканта» принято указывать композитора (например: Симфония № 5 — Людвиг ван Бетховен); для «современных» — исполнителя (например: All Along the Watchtower — Jimi Hendrix.)

  5. Информационная система складского учета включает информацию о следующих основных сущностях:

    • склад;
    • полка;
    • сотрудник;
    • учетная единица (инвентарный номер, местоположение, когда и кем поставлена на учет.)
    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше.

    2. (20 баллов.) Обобщите схему на случай произвольной вложенности местоположений учетных единиц (например: учетная единица может находится в коробке, находящейся на полке стеллажа в помещении здания.) Укажите способ получения всех учетных единиц, находящихся в данном здании, включая все его помещения, полки, etc.

    3. (15 баллов.) Предусмотрите возможность хранения информации о файлах фотографий (имя на файл-сервере, размер в байтах, дата и время съемки), позволяющих подтвердить факт наличия учетной единицы на конкретной полке в конкретный момент времени.

    4. (20 баллов.) Обоснованно настройте управление доступом для ролей «администратор», «кладовщик», «прочие».

  6. Информационная система обеспечения разработки радиоэлектронного оборудования включает информацию о следующих основных сущностях:

    • сотрудник;
    • устройство;
    • чертеж (устройство);
    • редакция чертежа (имя файла на сервере, автор, дата.)
    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше.

    2. (15 баллов.) Дополните схему информацией о типе чертежа (сборочный, корпус, печатная плата, принципиальная схема, etc.)

    3. (25 баллов.) Предусмотрите возможность хранения для каждой редакции так же информации о документах (техническом задании, паспортах на компоненты, для печатных плат — принципиальной схемы, etc.), на основании которых данный чертеж был разработан. Обратите внимание, что:

      • основанием для разработки редакции чертежа может быть редакция другого чертежа;
      • нередко набор документов, на основе которых разработана данная редакция, окажется основой и для разработки нескольких последующих редакций.
    4. (20 баллов.) Обоснованно настройте управление доступом для ролей «администратор», «сотрудник», «прочие».

  7. «Журнал успеваемости» включает информацию о следующих основных сущностях:

    • преподаватель;
    • студент;
    • курс (ведущий преподаватель);
    • задание (курс);
    • оценка (задание, студент, балл.)
    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше.

    2. (10 баллов.) Измените схему так, чтобы в различных группах за один и тот же курс могли отвечать различные преподаватели.

    3. (15 баллов.) Дополните схему журналом изменений. Предусмотрите автоматическое внесение в него информации о вносимых и изменяемых оценках.

    4. (15 баллов.) Обоснованно настройте управление доступом для ролей «администратор», «преподаватель», «прочие».

  8. Каталог данных дистанционного зондирования Земли включает информацию о следующих основных сущностях:

    • прибор;
    • сцена (прибор, дата и время сбора данных);
    • файл (имя на файл-серере, сцена, тип.)
    1. (60 баллов.) Разработайте схему базы данных, обеспечивающую хранение и доступ к информации выше.

      Приведите пример наполнения базы данных. Например, можно включить информацию о следующих данных прибора MODIS/Terra, тип MOD11_L2.006:

      • имя файла: MOD11_L2.A2000055.1525.hdf; дата и время: ;
      • имя файла: MOD11_L2.A2020109.2150.hdf; дата и время: .
    2. (15 баллов.) Дополните схему возможностью хранения географического покрытия — ограничивающего прямоугольника в координатах широта, долгота.

    3. (15 баллов.) Обобщите информацию о географическом покрытии на случай использования различных систем координат (картографических проекций.)

    4. (10 баллов.) Обоснованно настройте управление доступом для ролей «администратор», «архивариус», «прочие».