- •2.) Требования, предъявляемые к бд.
- •3.) Модели данных. Инфологическая модель.
- •4.) Иерархическая модель.
- •7.) Реляционная модель. Достоинства и недостатки
- •11. Основы, принципы и аспекты проектирования.
- •12. Проектирование модели бд в терминах «сущность-связь»
- •13. Проектирование модели бд в терминах «сущность-связь»
- •Понятие нормализации данных. Функциональная зависимость
- •Первая, вторая и третья нормальные формы.
- •Нф Бойса-Кодда, четвертая и пятая нормальные формы.
- •Понятие субд. Классификация субд.
- •Типовая организация современной субд.
- •Основные функции субд.
- •Языки запросов, их основные возможности.
- •Основные объекты субд «Oracle».
- •5.3.1. Символьные типы
- •Перечень символьных типов
- •Создание запросов. Основные типы условий поиска.
- •2.4.4.1. Создание запроса на выборку с помощью Мастера
- •27. Агрегирование и группировка данных
- •28.Манипулирование данными отношений
- •Базовые средства манипулирования данными
- •29. Понятие подзапроса.
- •Использование встроенных процедур и функций. Функции работы с символами, строками и датами.
- •Initcap(строка)
- •31. Использование встроенных процедур и функций. Функции работы с числами. Функции преобразования типов данных.
- •32. Создание пользовательских процедур.
- •33. Создание пользовательских функций.
- •35. Работа с курсорами
- •36. Соединение таблиц и запросов при организации запросов
- •37. Целостность баз данных.
- •38. Работа с триггерами.
- •39. Понятие транзакции. Свойства транзакций.
- •40. Взаимовлияние транзакций
- •41. Блокировки и тупиковые ситуации
- •42. Индексирование. Виды индексов
- •43. Работа с индексами
- •44. Оптимизация запросов в реляционных субд
- •45. Методы оптимизации запросов
- •46. Методы доступа к базе данных. Технологии odbc, bde.
- •47. Методы доступа к базе данных. Технологии ado, ole db
- •48. Модели организации данных.
33. Создание пользовательских функций.
CREATE [ OR REPLACE ] FUNCTION
имя_функции ([ [ метод_аргумента ][имя_аргумента ] тип_ аргумента [,…] ])
RETURNS тип_возвращаемого_значения
AS 'определение'
LANGUAGE 'язык'
[ WITH ( атрибут […])]
CREATE FUNCTION имя_функции ([[ метод_аргумента ] [имя_аргумента ] тип_ аргумента [,…] ]) - после ключевых слов CREATE FUNCTION указывается имя создаваемой функции, после чего в круглых скобках перечисляются аргументы, разделенные запятыми.
RETURNS тип_возвращаемого_значения - тип данных, возвращаемый функцией.
AS 'определение' - программное определение функции. В процедурных языках (таких, как PL/pgSQL) оно состоит из кода функции. Для откомпилированных функций С указывается абсолютный системный путь к файлу, содержащему объектный код.
LANGUAGE 'язык'. Название языка, на котором написана функция. В аргументе может передаваться имя любого процедурного языка (такого, как plpgsql или plperl, если соответствующая поддержка была установлена при компиляции), С или SQL.
[
WITH ( атрибут [. ...] ) ] - атрибут может принимать два значения: iscachable и isstrict.
iscachable. Оптимизатор может использовать предыдущие вызовы функций для ускоренной обработки будущих вызовов с тем же набором аргументов. Кэширование обычно применяется при работе с функциями, сопряженными с большими затратами ресурсов, но возвращающими один и тот же результат при одинаковых значениях аргументов.
isstrict. Функция всегда возвращает NULL в случае, если хотя бы один из ее аргументов равен NULL. При передаче атрибута isstrict результат возвращается сразу, без фактического выполнения функции.
Создание функций SQL
CREATE [ OR REPLACE ] FUNCTION
имя_функции ([ [ метод_аргумента ][имя_аргумента ] тип_ аргумента [,…] ])
RETURNS тип_возвращаемого_значения
AS '
оператор SQL;
[оператор SQL;
…]
'
LANGUAGE sql
[ WITH ( атрибут […])];
34. Организация и использование представлений
Представление (англ. view, иногда используются названия «вид», «взгляд») — виртуальная (логическая) таблица, представляющая собой поименованный запрос (синоним к запросу), который будет подставлен как подзапрос при использовании представления.
В отличие от обычных таблиц реляционной баз данных, представление не является самостоятельной частью набора данных, хранящегося в базе. Содержимое представления динамически вычисляется на основании данных, находящихся в реальных таблицах. Изменение данных в реальной таблице базы данных немедленно отражается в содержимом всех представлений, построенных на основании этой таблицы.
Типичным способом создания представлений для СУБД, поддерживающих язык запросов SQL, является связывание представления с определённым SQL-запросом. Соответственно, содержимое представления — это результат выполнения этого запроса, а возможности построения представления ограничиваются только степенью сложности диалекта SQL, поддерживаемого конкретной СУБД. Так, для типичных СУБД, таких как PostgreSQL, Interbase, Firebird, Microsoft SQL Server, Oracle, представление может содержать:
Использование
Представления используются в запросах к БД тем же образом, как и обычные таблицы. В случае SQL-СУБД имя представления может находиться в SQL-запросе на месте имени таблицы (в предложении FROM). Запрос из представления обрабатывается СУБД точно так же, как запрос, в котором на месте имени представления находится подзапрос, определяющий это представление. При этом СУБД с развитыми возможностями оптимизации запросов перед выполнением запроса из представления могут проводить совместную оптимизацию запроса верхнего уровня и запроса, определяющего представление, с целью минимизации затрат на выборку данных.
Использование представлений не даёт каких-то совершенно новых возможностей в работе с БД, но может быть очень удобно.
Представления скрывают от прикладной программы сложность запросов и саму структуру таблиц БД. Когда прикладной программе требуется таблица с определённым набором данных, она делает простейший запрос из подготовленного представления. При этом даже если для получения этих данных требуется чрезвычайно сложный запрос, сама программа этого запроса не содержит.
Использование представлений позволяет отделить прикладную схему представления данных от схемы хранения. С точки зрения прикладной программы структура данных соответствует тем представлениям, из которых программа эти данные извлекает.
