Зачётно-экзаменационные вопросы

PL/SQL

Диалект SQL в СУБД Oracle

СУБД Oracle версии 1 (под другим названием) появилась в 1978 г. и была написана на языке ассемблера для PDP-11 под ОС RSX. Oracle версии 2 появилась в 1979 г. и стала "первой коммерческой реляционной СУБД с использованием SQL", а в версии 3 ее ядро было переписано на языке С. С версии 8 фирма Oracle называет свою СУБД "объектно-реляционной". Фактически же это была и остается SQL-ориентированная СУБД, использующая собственный диалект SQL.

В силу истории происхождения диалект SQL фирмы Oracle естественно оценивать с трех сторон, определяющих одновременно и факторы влияния на существующий его вид:

· реляционной теории,

· стандартного SQL,

· фирмы-разработчика.

Во всех случаях можно говорить о понимании вопроса соответствующей стороной и об усилиях на проработку того или иного свойства (а в случае фирмы-разработчика — еще и усилий на программирование).

Oracle "в значительной степени" (но не полностью и не в точности) поддерживает уровень Core SQL:2003, некоторые возможности уровня Optional Features SQL:2003 и набор собственных нестандартизованных свойств. Точное перечисление соответствия диалекта SQL Oracle стандарту приводится в документации по СУБД Oracle.

Некоторые собственные свойства диалекта SQL Oracle:

· типы данных;

· дополнительные к стандарту функции;

· дополнительные конструкции SQL.

Объем диалекта SQL в Oracle по отношению к стандартам пояснен следующим рисунком.

 

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

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

Три понятия — реляционная модель, стандартный язык SQL и диалект SQL в Oracle — безусловно связаны, но связи эти вольные. Стандарт SQL является промышленным стандартом, создаваемым под влиянием реляционной модели, но не воплощающим реляционного языка запросов. Одновременно диалект SQL в Oracle создается для СУБД конкретного типа под влиянием стандарта SQL, но не придерживаясь его как догмы. Стандарт SQL и диалекты SQL всех производителей (включая Oracle) существуют в большой степени самостоятельно, оказывая воздействие друг на друга, но не воспроизводя друг друга в точности.

PL/SQL есть процедурный язык, встроенный в СУБД Oracle для возможности работать с хранимой в БД Oracle программной логикой. Наличие процедурного языка предусмотрено стандартом SQL (начиная с SQL:1999), однако все собственные реализации разработчиков имеют, в отличие от случая с SQL, крайне мало общего между собой и с описаниями стандарта.

Процедурный язык Oracle позволяет создавать в БД триггерные процедуры, моделировать логику предметной области ("бизнес-логику"), проявлять самодеятельность БД, например, в виде переноса данных или обращения к Интернету, организовывать более сложную, нежели табличную в SQL, защиту доступа.

Для проектировщика БД PL/SQL дополняет SQL и табличную организацию данных. Хотя все данные в БД Oracle хранятся исключительно в виде таблиц, для моделирования действий с данными по правилам предметной области возможностей SQL нередко не хватает. Это случается, например, когда единый с точки зрения приложения составной набор свойств хранится в виде совокупности значений в разных таблицах. Согласованное изменение таких свойств исключительно посредством команд SQL часто неудобно или даже невозможно. Это можно воспринимать как недостаточность языка SQL (хотя последняя отчасти и устраняется объектными возможностями языка). В таких случаях подобные изменения "запаковывают" в подпрограмму, к которой и будет прибегать прикладной разработчик для воздействия на данные. Сама фирма Oracle пользуется этим очень активно, что проявляется в наличии номенклатуры "встроенных пакетов" на PL/SQL, активно приумножающихся числом в каждой очередной версии СУБД. В версии 11 количество только документированных встроенных пакетов превышает 200. Большая часть из них осуществляет изменения данных в служебных таблицах БД через функции и процедуры PL/SQL.

Этим же путем — процедурного изменения данных в БД — часто следуют прикладные разработчики.

Операторы DML и SELECT из SQL могут употребляться на правах предложений языка PL/SQL. Это дает основание фирме Oracle иногда называть PL/SQL "процедурным расширением" SQL. Эффективность обработки СУБД таких операторов выше, чем у поступивших из внешней программы на общеупотребимом языке программирования.

 

к учебной дисциплине «История»[1]

 

1. Предмет истории как науки: цели и задачи ее изучения.

2. Антропогенез и периодизация древнейшей истории. Переход от первобытности к цивилизации.

3. Становление цивилизаций Древнего Востока. Восточные государства-деспотии.

4. Античная цивилизация. Древняя Греция. Древний Рим.

5. Средневековье как этап всемирной истории. Проблемы периодизации средневековой истории.

6. Становление цивилизации в Восточной Европе. Формирование древнерусской государственности. Принятие христианства.

7. Политическая раздробленность. Монгольские завоевания, нашествие Чингисхана на Русь, зависимость Руси от Золотой Орды.

8. Объединение русских земель вокруг Москвы и становление Московского государства.

9. Значение Великих географических открытий во всемирно-историческом процессе.

10. Понятие «Новое время». Проблемы периодизации истории Нового времени.

11. Правление Ивана IV. Опричнина и ее последствия.

12. Смутное время. Начало правления династии Романовых.

13. Преобразования Петра I. Северная война 1700-1721 гг. и ее итоги.

14. Эпоха дворцовых переворотов. Правление Екатерины II. Правление Павла I.

15. Правление Александра I. Отечественная война 1812 г. Выступление декабристов.

16. Внутренняя и внешняя политика России в период правления Николая I.

17. Правление Александра II и его реформы.

18. Экономическое и общественно-политическое развитие в период правления Александра III.

19. Международные отношения в начале XX века. Русско-японская война.

20. Революция 1905 г. Общественно-политическое развитие России.

21. Аграрная реформа Столыпина.

22. Первая мировая война: причины войны, ход, итоги.

23. Россия в 1917 г.: Февральская революция, политический кризис, октябрьская революция 1917 г.

24. Советская Россия и Советский Союз в 1918-1941 гг.: гражданская война, образование СССР, внутренняя и внешняя политика

25. Вторая мировая война. Великая Отечественная война 1941-1945 гг.

26. Советский Союз в 50-80-е гг. XX в: Советский Союз в послевоенное время, XX съезд КПСС и развенчание культа личности Сталина, эпоха «застоя» и нарастание кризисных явлений.

27. Перестройка и распад СССР: кризис советской системы, «Перестройка» и её результаты, распад СССР и его последствия.

28. Россия в 90-е гг. XX в. – первом десятилетии XXI в.: внутренняя и внешняя политика.


[1] При сдаче зачёта студент отвечает на один вопрос. При сдаче экзамена – на два. Как альтернатива сдачи зачёта преподавателем может быть предусмотрено тестирование по указанным темам.