Категория:Постреляционные базы данных (9 семестр)

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску

Постреляционные базы данных
Преподаватель: Виноградова М.В.
Лекций: ?
Семинаров: нет
Лабораторных работ: 4
Домашних заданий: 1
Рубежных контролей: 2
Ходить: по желанию
Что сдавать: зачёт

И сразу вопрос: что такое постреляционные базы данных? На одном форуме на него ответили так:

- WTF is a "post-relational" database?
- Marketing-ese for an object-esque layer built on top of a heirarchichal database.

Что в переводе будет примерно так:

- Чего ещё за "постреляционные базы данных"?
- Маркетинговое название для объектной надстройки поверх иерархической БД.

Магистры проходят этот курс через год, потому они могут либо проходить его через год либо сейчас, на пятом курсе.

Домашнее задание

Методичку по ДЗ можно взять здесь.

Задания и варианты по годам:

Год Ссылка
2012 загрузить

Лабораторные работы

Четыре бесконечных лабораторных по две пары каждая.

СУБД Caché (произносится именно с ударением на последний слог), взять можно тут. Конечно, лучше не только не брать, но и вообще никак не прикасаться, но увы...

Ещё немного разъяснений, что же это такое, почему "постреляционное" и насколько оно объектное (лучше прочитать все комментарии).

Вкратце: неистово древнее (несмотря на цифру %текущий год% в названии), никому не нужное и никем не использующееся ГМО.

Методички:

ЛР №1

Вопросы на защите

1. Что такое глобал? Где их можно посмотреть? Почему первый элемент пустой?
2. Как хранятся производные классы? Записи добавляются в какую таблицу (родителя или наследника)? Как хранится глобал производных объектов?
3. Как передавать параметры в SQL-запрос? Как их оттуда забирать?
4. Почему вызывается метод одного класса а не другого при наследовании?
Пример: метод Inf() в классе Курсы и Иностранные курсы. Выбираем объект класса Курсы, но который может быть приведен к производному.
Вызывается метод Inf() производного.
Вопрос: почему? Ответ: полиморфизм!
5. Как проверить существование объекта через терминал (это про .%ExistsId())
6. В чем отличие метода класса от метода экземпляра класса?
7. Как выполняется SQL-запрос из Терминала?
Вот так:
set o=##class(%ResultSet).%New("%DynamicQuery:SQL")
do o.Prepare("select * from Lesson where ofcour->name ='"_lang_"'")
do o.Execute()
Нужно рассказать про каждую строчку что она делает.
8. Как хранятся массивы? Какой формат у ID элемента массива?

ЛР №2

Вопросы на защите

1. При проекции сохраняется ли семантика языка?
Нет: меняются названия методов (теряется %), меняется число параметеров (добавляется conn).
2. Что можно сделать через шлюз?
Нельзя создать хранимый объект! Потому что нельзя!
3. Как выбрать из XML пустые значения?
4. Что такое XML-документ и XML-схема?
5. Зачем нужна директива path?
6. Назначение sp_xml_preparedocument?
7. Что делает nodes()?

РК

Два РК. Оба не обязательные, можно не писать обязательные, без них не будет зачёта. Если написать хорошо и вовремя, то можно претендовать на зачёт автоматом.

РК 1

Билет РК состоит из трёх практических упражнений. Можно посмотреть примеры заданий на РК.

РК 2

Дана предметная область, её описание. Надо построить к ней запросы на всех языках, которые проходили ( SQL, объектное расширение SQL, XPath, XQuery, OQL, Datalog (с рекурсиями и кванторами) и, возможно, вообще все остальные, которые упоминались на лекциях).

На РК можно пользоваться чем угодно, ноутбуками тоже, только напечатанным / написанным на бумаге источниками, в том числе книгами, потому что надо знать синтаксис языков, а его, понятно, заучивать не нужно.

Пример задания на РК можно посмотреть тут.

Зачёт

Зачет состоит из РК1 + РК2 + дополнительные задания по всем ЛР. И выполненное ДЗ. Надо набрать 25 баллов.

Для зачёта автоматом надо всё то же самое, но успеть до зачётной недели. Плюс можно написать реферат и добрать нехватающие баллы.

Система баллов для зачёта:

За что Максимум возможных За дополнительные пункты
РК 1 5 -
РК 2 5 -
ДЗ 5 неизвестно
Лабораторные - по 1 баллу за пункт
Реферат 4 -

Для автомата надо все 25 и ни баллом меньше. Но если кто-то успеет всё сделать не просто до зачётной недели, а до середины декабря, тому для автомата требуется на целых 2 балла меньше, то есть не 25, а всего 23.

И ещё прямая речь от Виноградовой:

"До меня дошли слухи о "зачёте в долг". Тот, кто этому верит, за зачётом будет обращаться к тому, от кого услышал.
Я этого никому не говорила. 25 декабря зачёт будет проставлен по реальным результатам выполненной за семестр работы".

Литература

  • Кузнецов - "Базы данных, языки и модели";
  • Гарсиа, Малина, Ульман, Уидоу - "Схемы БД";
  • Кирстеп - "Cache";
  • http://citforum.ru/database/