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

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
мНет описания правки
Нет описания правки
 
(не показаны 43 промежуточные версии 8 участников)
Строка 1: Строка 1:
<p>{{Предмет | name=Постреляционные базы данных | prepod=[[Виноградова М.В.]] | lections=? | seminars=нет |  labs=4 | dzs=1 | rks=2 | signif=по желанию | what=зачёт}}</p>
<p>{{Предмет | name=Постреляционные базы данных | prepod=[[Виноградова М.В.]] | lections=? | seminars=нет |  labs=4 | dzs=1 | rks=2 | signif=по желанию | what=экзамен}}</p>


Магистры проходят этот курс через год, потому они могут либо проходить его через год, либо сейчас, на пятом курсе.
И сразу вопрос: что такое постреляционные базы данных? На одном форуме на него ответили так:
 
<blockquote>
- ''WTF is a "post-relational" database?''<br />
- ''Marketing-ese for an object-esque layer built on top of a heirarchichal database.''
</blockquote>
 
Что в переводе будет примерно так:
 
<blockquote>
- ''Чего ещё за "постреляционные базы данных"?''<br />
- ''Маркетинговое название для объектной надстройки поверх иерархической БД.''
</blockquote>
 
Магистры проходят этот курс через год, потому они могут либо проходить его через год либо сейчас, на пятом курсе.


== Домашнее задание ==
== Домашнее задание ==
Методичку по ДЗ можно взять [http://iu5.bmstu.ru/ebook/dz.zip здесь].
Задания и варианты по годам:
{| class="wikitable"
! Год !! Ссылка
|- align="center"
| 2012 || [http://yadi.sk/d/js6KNXiw0UMPp загрузить]
|}


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


Четыре лабораторных по две пары каждая.
Четыре ''бесконечных'' лабораторных <strike>по две пары каждая</strike>.
 
СУБД Caché ({{Википедия|Caché|произносится именно с ударением на последний слог}}), взять можно [http://www.intersystems.ru/cache/devcorner/index.html тут]. Конечно, лучше не только не брать, но и [[Intersystems Cache - Врата в ад | вообще никак не прикасаться]], но увы...
 
Ещё немного разъяснений, [http://habrahabr.ru/company/intersystems/blog/235473/#comment_8042959 что же это такое, почему "постреляционное" и насколько оно объектное] (лучше прочитать все комментарии).
 
Вкратце: неистово древнее (несмотря на цифру <code>%текущий год%</code> в названии), никому не нужное и никем не использующееся ГМО.
 
Методички:
* [http://iu5.bmstu.ru/ebook/lab.zip по работе с Cashe]
 
=== ЛР №1 ===
 
* [http://yadi.sk/d/2bPGTZ1Z0PrSn методичка по ЛР №1]
* [http://yadi.sk/d/MI0ftZAl0iXXv примерный отчет по ЛР №1]
 
==== Вопросы на защите ====
 
:1. Что такое глобал? Где их можно посмотреть? Почему первый элемент пустой?
:2. Как хранятся производные классы? Записи добавляются в какую таблицу (родителя или наследника)? Как хранится глобал производных объектов?
:3. Как передавать параметры в SQL-запрос? Как их оттуда забирать?
:4. Почему вызывается метод одного класса а не другого при наследовании?
::Пример: метод <code>Inf()</code> в классе ''Курсы'' и ''Иностранные курсы''. Выбираем объект класса ''Курсы'', но который может быть приведен к производному.
::Вызывается метод <code>Inf()</code> производного.
::Вопрос: ''почему''? Ответ: ''полиморфизм''!
:5. Как проверить существование объекта через терминал (это про <code>.%ExistsId()</code>)
:6. В чем отличие метода класса от метода экземпляра класса?
:7. Как выполняется SQL-запрос из Терминала?
::Вот так:
<syntaxhighlight lang=sql>
set o=##class(%ResultSet).%New("%DynamicQuery:SQL")
do o.Prepare("select * from Lesson where ofcour->name ='"_lang_"'")
do o.Execute()
</syntaxhighlight>
::Нужно рассказать про каждую строчку что она делает.
:8. Как хранятся массивы? Какой формат у ID элемента массива?
 
=== ЛР №2 ===
 
* [http://yadi.sk/d/0u0rlgYT0PrUp методичка по ЛР №2] (пока только для 1 и 2 группы, можно брать их варианты).


СУБД Caché ({{Википедия|Caché|произносится именно с ударением на последний слог}}), взять можно [http://www.intersystems.ru/cache/devcorner/index.html тут].
==== Вопросы на защите ====
<!--- А также [http://dev.mysql.com/downloads/ MySQL] (при установке отметить пункт ''Аналитический сервер''). --->
:1. При проекции сохраняется ли семантика языка?
::''Нет: меняются названия методов (теряется %), меняется число параметеров (добавляется <code>conn</code>).''
:2. Что можно сделать через шлюз?
::''Нельзя создать хранимый объект! Потому что нельзя!''
:3. Как выбрать из XML пустые значения?
:4. Что такое XML-документ и XML-схема?
:5. Зачем нужна директива <code>path</code>?
:6. Назначение <code>sp_xml_preparedocument</code>?
:7. Что делает <code>nodes()</code>?


== РК ==
== РК ==


Два РК. Оба не обязательные, можно не писать. Но если написать хорошо, то можно претендовать на зачёт автоматом.
Два РК. Оба <strike>не обязательные, можно не писать</strike> ''обязательные'', без них не будет зачёта. Если написать хорошо и вовремя, то можно претендовать на зачёт автоматом.
 
=== РК 1 ===
 
Билет РК состоит из трёх практических упражнений. Можно посмотреть [http://yadi.sk/d/u12OqHhqr_da примеры заданий на РК].
 
=== РК 2 ===
 
Дана предметная область, её описание. Надо построить к ней запросы на всех языках, которые проходили ([[ПБД_(9)_-_Лекция_№6_-_SQL_(продолжение)#SQL | SQL]], объектное расширение SQL, [[ПБД_(9)_-_Лекция_№6_-_SQL_(продолжение)#XPath | XPath]],[[ПБД_(9)_-_Лекция_№6_-_SQL_(продолжение)#XQuery | XQuery]], [[ПБД_(9)_-_Лекция_№8_-_OQL#OQL | OQL]], [[ПБД_(9)_-_Лекция_№9_-_Datalog#Datalog | Datalog]] (с рекурсиями и кванторами) и, возможно, вообще все остальные, которые упоминались на лекциях).
 
На РК можно пользоваться <s>чем угодно, ноутбуками тоже,</s> ''только напечатанным'' / ''написанным на бумаге источниками'', в том числе книгами, потому что надо знать синтаксис языков, а его, понятно, заучивать не нужно.
 
Пример задания на РК можно посмотреть [http://yadi.sk/d/lnYcBGpo0k7e5 тут].


== Зачёт ==
== Зачёт ==


Для зачёта автоматом хорошо написать РК и выполнить дополнительные задания к ЛР.
Зачет состоит из РК1 + РК2 + дополнительные задания по всем ЛР. И выполненное ДЗ. Надо набрать 25 баллов.
 
Для зачёта автоматом надо всё то же самое, но успеть до зачётной недели. Плюс можно написать реферат и добрать нехватающие баллы.
 
Система баллов для зачёта:
{| class="wikitable"
! За что !! Максимум возможных !! За дополнительные пункты
|- align="center"
! РК 1
| 5 || -
|- align="center"
! РК 2
| 5 || -
|- align="center"
! ДЗ
| 5 || неизвестно
|- align="center"
! Лабораторные
| - || по 1 баллу за пункт
|- align="center"
! Реферат
| 4 || -
|}
 
Для автомата надо <font size="5px">все 25</font> и ни баллом меньше. Но если кто-то успеет всё сделать не просто до зачётной недели, а до середины декабря, тому для автомата требуется на целых <font size="5px">2</font> балла меньше, то есть не <font size="5px">25</font>, а всего <font size="5px">23</font>.
 
И ещё прямая речь от Виноградовой:<blockquote>''"До меня дошли слухи о "зачёте в долг". Тот, кто этому верит, за зачётом будет обращаться к тому, от кого услышал.''<br>
''Я этого никому не говорила. 25 декабря зачёт будет проставлен по реальным результатам выполненной за семестр работы"''.</blockquote>


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


[[Категория:9 семестр]]
[[Категория:9 семестр]]
[[Категория:Предметы]]
[[Категория:Предметы]]

Текущая версия от 18:07, 22 февраля 2018

Постреляционные базы данных
Преподаватель: Виноградова М.В.
Лекций: ?
Семинаров: нет
Лабораторных работ: 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/