- •1.Системы баз данных.
- •10. Реляционная модель. Терминология.
- •25. Процесс нормализации.
- •Vsize ( выраж ). Возвpащает количество байтов, котоpое занимает "выраж" во внутpеннем пpедставлении oracle. 33. Групповые функции.
- •35. Упорядочивание данных, найденных запросом.
- •41. Управление транзакциями.
- •46. Коррелированные подзапросы.
- •51. Именование объектов в базе данных.
46. Коррелированные подзапросы.
Запросы с коррелированными вложенными подзапросами обрабатываются системой в обратном порядке. Сначала выбирается первая строка рабочей таблицы, сформированной основным запросом, и из нее выбираются значения тех столбцов, которые используются во вложенном подзапросе (вложенных подзапросах). Если эти значения удовлетворяют условиям вложенного подзапроса, то выбранная строка включается в результат. Затем выбирается вторая строка и т.д., пока в результат не будут включены все строки, удовлетворяющие вложенному подзапросу (последовательности вложенных подзапросов). 47. Использование операторов SOME, ALL, EXISTS.
Оператор ANY | SOME сравнивает значение со всеми значениями из подзапроса. При этом в зависимости от знака равенства смысл оператора изменяется. Таким образом, если использовать знак равенства вместе с ANY у нас получится эквивалент оператору IN. При этом если будет применяться знак < и ANY то будет иметь смысл меньше максимального значения из списка. Если же > и ANY то будет иметь смысл больше минимального значения из списка. Операторы ANY и SOME эквивалентны. Оператор ALL сравнивает значение со всеми значениями из подзапроса. При этом в зависимости от знака равенства смысл оператора изменяется. При этом если будет применяться знак < и ALL то будет иметь смысл меньше минимального значения из списка. Если же > и ALL то будет иметь смысл больше максимального значения из списка. Оператор EXISTS берет подзапрос, как аргумент, и оценивает его как верный, если подзапрос возвращает какие-либо записи, и неверный, если тот не делает этого. То есть если наш подзапрос возвращает хотя бы одну строку то - это выражение принимается за истину. 48. Последовательности как объекты баз данных.
Очень часто перед разработчиками базы данных встает задача генерирования уникальной последовательности значений. Для решения таких целей используется такой объект базы данных как последовательность (sequence). SEQUENCE используется для следующих целей: - Автоматической генерации случайного числа. - Этот объект можно сделать общедоступным, что обычно и делают. - Часто специально используется для генерации PRIMARY KEY. - Используется в коде приложений, является часто используемым объектом разработчиков. - Ускоряет доступ данным при использовании столбцов основанных на последовательности при кешировании данных. Рассмотрим синтаксис создания sequence: CREATE SEQUENCE sequence_name [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCASHE}] где INCREMENT BY - определяет шаг между двумя уникальными числами, генерируемыми последовательностью. Наиболее часто используемым значением, которое также является значением по умолчанию, является - шаг равный единице. При этом вы также можете использовать и отрицательные значения для убывающей последовательности. START WITH - указывает первое значение последовательности, по умолчанию это значение равно единице. MAXVALUE n - указывает на максимальное значение, которое может быть сгенерировано последовательностью. NOMAXVALUE в качестве максимального значения принимается 10 в 27 степени для возрастающий последовательности и значение равной -1 для убывающей последовательности. MINVALUE n указывает на минимальное значение последовательности. NOMINVALUE - в качестве минимального значения принимается 1 для возрастающий последовательности и значение равное 10 в 26 степени для убывающей последовательности. CYCLE – образует циклическую последовательность.
NOCYCLE - это опция нужна для того, чтобы в случае, если значение последовательности дойдет до максимально положенного значения - последовательность не начнет свой путь сначала, а выдаст ошибку. CACHE n - указывает сколько значений последовательности заранее ОRACLE будет держать в памяти. По умолчанию это значение равно 20. NOCACHE - указывает, что значений последовательности в памяти ORACLE содержаться не должно. 49. Представления (VIEWS). Назначение, создание, хранение.
С помощью оператора CREATE VIEW можно создать виртуальную (логическую) таблицу. Такая логическая таблица существует только в памяти, хотя с ней можно работать как с реальной таблицей. И в этом случае можно создавать представления (views), не беспокоясь о том, что пользователь может по неосторожности удалить данные или добавить некорректную информацию в реальную таблицу. С их помощью можно обеспечить пользователям доступ ко всем данным, не беспокоясь о том, что они могут быть повреждены в реальных таблицах. А возможность предоставить пользователям доступ только к определенной части информации также обеспечивает конфиденциальность и повышает защищенность данных. Представления обновляются динамически. Их можно использовать в качестве основы для отчета. Виртуальная таблица (представление, view), которая содержит информацию о сотрудниках 10 отдела: CREATE VIEW emp_10 AS SELECT * FROM emp WHERE deptno=10; 50. Синонимы как объекты баз данных.
Синоним (Synonym) - это альтернативное имя (псевдоним) для объекта схемы. Если для какого-либо объекта базы данных Oracle существует синоним, то к объекту из SQL запроса можно обращаться либо по его настоящему имени, либо по синониму. Так же они обеспечивают некоторый уровень безопасности, поскольку скрывают имя объекта и его владельца, а так же делают прозрачным местоположение удаленных объектов распределенных баз данных. Синонимы позволяют переименовывать и перемещать базовые объекты. При том переопределяется только синоним, а приложение не требует никаких модификаций. Различают два типа синонимов: - Частный (PRIVATE) - синонимы содержатся в схеме конкретного пользователя и доступны только самому пользователю, и тем, кому он предоставил соответствующие права доступа. - Общий (PUBLIC) - этими синонимами владеет специальная группа пользователей - PUBLIC, в результате чего эти синонимы доступны всем пользователям базы данных. Создание синонимов. Чтобы создать частный синоним необходима привилегия CREATE SYNONYM, для того чтобы иметь права на создание синонима в схеме другого пользователя, необходима привилегия CREATE ANY SYNONYM. Для создания общих синонимов, необходима привилегия CREATE PUBLIC SYNONYM. Для создания синонимов используется конструкция CREATE SYNONYM или CREATE PUBLIC SYNONYM, в зависимости от типа создаваемого синонима. При создании наличие реального объекта и привилегий доступа к нему не требуется. CREATE SYNONYM [имя_синонима] FOR [имя_объекта] CREATE PUBLIC SYNONYM [имя_синонима] FOR [имя_объекта] Удаление синонимов В своей схеме пользователь может удалять любые частные синонимы. Для удаления частных синонимов в схеме другого пользователя, необходима привилегия DROP ANY SYNONYM, для удаления общих - DROP PUBLIC SYNONYM. Для удаления используется оператор - DROP SYNONYM. Для удаления общего синонима - DROP PUBLIC SYNONYM. При удалении синонима, его определение удаляется из словаря данных. Все объекты, ссылающиеся на удаленный синоним остаются, однако они становятся недействительными и их использование невозможно. Объекты, для которых создавался синоним, остаются без изменений и доступны для использования. Если объект, для которого создавался синоним, был пересоздан, то синоним требуется перекомпилировать. Для этого используется предложение: ALTER SYNONYM [имя_синонима] COMPILE; Пример: CREATE PUBLIC SYNONYM s_emp FOR SCOTT.emp; Теперь запрос SELECT * FROM SCOTT.emp
можно заменить на: SELECT * FROM s_emp;
