Зачётно-экзаменационные вопросы
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] При сдаче зачёта студент отвечает на один вопрос. При сдаче экзамена – на два. Как альтернатива сдачи зачёта преподавателем может быть предусмотрено тестирование по указанным темам.