- •Вопросы и ответы к экзамену по курсу «sql и процедурно-ориентированные языки»
- •1. Стандарты языка sql.
- •2. Классификация команд sql.
- •3. Основные объекты структуры базы данных.
- •4. Средства определения базовых таблиц.
- •5. Индексы.
- •6. Представления.
- •7. Оператор выборки данных.
- •8. Предикаты оператора выборки данных.
- •9. Множественные операции над таблицами.
- •10. Понятие целостности данных.
- •11. Принципы организация связей между таблицами.
- •12. Типы функций sql.
- •13. Понятие транзакции.
- •14. Понятие блокировки.
- •15. Управление доступом к данным.
- •16. Формы использования sql.
- •17. Триггеры.
- •18. Хранимые процедуры.
- •19. Курсоры.
- •20. Особенности языка pl/sql.
11. Принципы организация связей между таблицами.
Существует три разновидности связи между таблицами базы данных:
"один-ко-многим";
"один-к-одному";
"многие-ко-многим".
Отношение "один-ко-многим" имеет место, когда одной записи родительской таблицы может соответствовать несколько записей дочерней. Связь "один-ко-многим" иногда называют связью "многие-к-одному". И в том, и в другом случае сущность связи между таблицами остается неизменной.
Связь "один-ко-многим" наиболее распространена для реляционных баз данных. Она позволяет моделировать также иерархические структуры данных.
Отношение "один-к-одному" имеет место, когда одной записи в родительской таблице соответствует одна запись в дочерней. Это отношение встречается намного реже, чем отношение "один-ко-многим". Его используют, если не хотят, чтобы таблица БД "распухала" от второстепенной информации. Использование связи "один-к-одному" приводит к тому, что для чтения связанной информации в нескольких таблицах приходится производить несколько операций чтения вместо одной, когда данные хранятся в одной таблице.
Отношение "многие-ко-многим" имеет место в следующих случаях:
одной записи в родительской таблице соответствует более одной записи в дочерней таблице;
одной записи в дочерней таблице соответствует более одной записи в родительской таблице.
12. Типы функций sql.
Встроенными являются функции, предопределенные в языке SQL. В SQL определено множество встроенных функций различных категорий. Эти функции делятся на три основные группы:
скалярные функции;
агрегатные функции;
функции для списка значений.
Скалярные функции (их еще называют однострочными) обрабатывают одиночное значение и возвращают также одно значение. Скалярные функции разрешается использовать везде, где допускается применение выражений.
Скалярные функции бывают следующих категорий:
строковые функции, которые выполняют определенные действия над строками и возвращают строковые или числовые значения;
числовые функции, которые возвращают числовые значения на основании заданных в аргументе значений того же типа;
функции времени и даты, которые выполняют различные действия над входными значениями времени и даты и возвращают строковое, числовое значение или значение в формате даты и времени;
функция преобразования типа.
Агрегатные функции используются для получения обобщающих значений. Они, в отличие от скалярных функций, оперируют значениями столбцов множества строк. К агрегатным функциям относятся такие функции, как SUM, вычисляющая итог, MAX и MIN, возвращающие наибольшее и наименьшее значения соответственно, AVG, вычисляющая среднее значение, и COUNT, вычисляющая количество значений в столбце.
Функции для списка значений представлены тремя функциями – MAXVALUE, MINVALUE и LIST. Функции MAXVALUE и MINVALUE в чем-то похожи на агрегатные функции MAX и MIN, однако выбирают максимальное и минимальное значение не из множества значений строк в одном столбце, а из значений, заданных в списке аргументов. Функция LIST объединяет обрабатываемые значения в единую строку.