
- •Вторая часть лекций по базам данных. Модели Данных.
- •2.1. Базы данных, субд, банк данных.
- •1. Определение структуры создаваемой базы данных, ее инициализация и проведение начальной загрузки.
- •2. Предоставление пользователям возможности манипулирования данными (выполнение вычислений, разработка интерфейса ввода/вывода, визуализация).
- •3. Обеспечение логической и физической независимости данных.
- •4. Защита логической целостности базы данных.
- •5. Защита физической целостности.
- •6. Управление полномочиями пользователей на доступ к базе данных.
- •7. Синхронизация работы нескольких пользователей.
- •8. Управление ресурсами среды хранения.
- •9. Поддержка деятельности системного персонала.
- •2.2. Различные модели организации работы пользователей с базой данных
- •2.2.1. Модель с централизованной архитектурой
- •2.2.2. Модель с автономными персональными эвм
- •2.2.3. Модель вычислений с сетью и файловым сервером (архитектура «файл-сервер»)
- •2.2.4. Распределенная модель вычислений (архитектура «клиент – сервер»)
- •2.2.5. Распределенная модель вычислений (Клиент – сервер. Трехзвенная (многозвенная) архитектура)
- •2.3. Концептуальное моделирование базы данных
- •2.3.1. Сложный пример предметной области
- •2.3.2. Способы описания предметной области
- •2.3.3. Описание информационного представления предметной области
- •2.3.4. Описание информационных потребностей пользователя
- •2.3.5. Различные представления о данных в базах данных
- •2.3.6. Построение концептуальной модели
- •2.3.7. Средства автоматизированного проектирования концептуальной модели
- •2.4. Модели данных субд как инструмент представления концептуальной модели
- •2.4.1. Общие представления о модели данных
- •2.4.2. Сетевая модель данных
- •2.4.3. Иерархическая модель данных
- •2.4.4. Реляционная модель данных
- •2.5. Базовые понятия реляционной модели данных
- •2.5.1. Общая характеристика реляционной модели данных
- •1. Типы данных
- •2. Домены
- •3. Отношения, атрибуты, кортежи отношения
- •3. Свойства отношений
- •4. Первая нормальная форма
- •2.5.2. Манипулирование данными в реляционной модели
- •1. Объединение
- •2. Пересечение
- •3. Вычитание
- •4. Декартово произведение
- •5. Выборка (ограничение, селекция)
- •6. Проекция
- •7. Соединение
- •8. Деление
- •3.2.2. 1Нф (Первая Нормальная Форма)
- •3.2.3. Функциональные зависимости
- •3.2.4. 2Нф (Вторая Нормальная Форма)
- •3.2.5. 3Нф (Третья Нормальная Форма)
- •3.2.6. Алгоритм нормализации (приведение к 3нф)
- •3.2.7. Сравнение нормализованных и ненормализованных моделей
- •3.2.8. Нфбк (Нормальная Форма Бойса-Кодда)
- •3.2.9. 4Нф (Четвертая Нормальная Форма)
- •3.2.10. 5Нф (Пятая Нормальная Форма)
- •3.2.11. Продолжение алгоритма нормализации (приведение к 5нф)
- •3.3. Элементы модели "сущность-связь"
- •3.3.1. Основные понятия er-диаграмм
- •3.3.2. Пример разработки простой er-модели
- •3.3.2. Концептуальные и физические er-модели
- •Типы данных
- •Константы
- •Выражения
- •Встроенные функции
- •Отсутствующие значения
- •3.1.2. Простые запросы на выборку
- •Инструкция select
- •Простые запросы
- •Повторяющиеся строки (предикат distinct)
- •Отбор строк (предложение where)
- •Условие отбора
- •Составные условия отбора (операторы or, and, not)
- •Сортировка результатов запроса (предложение order by)
- •Объединение результатов нескольких запросов (оператор union)
- •3.1.3. Многотабличные запросы на выборку (объединения) Простое объединение таблиц (объединение по равенству)
- •Объединение таблиц по неравенству
- •Особенности многотабличных запросов
- •Внутренняя структура объединения таблиц
- •Внешнее объединение таблиц
Условие отбора
В SQL используется множество условий отбора, позволяющих эффективно создавать различные типы запросов. Ниже рассматриваются gять основных условий отбора (в стандарте ANSI/ISO они называются предикатами):
Сравнение. Значение одного выражения сравнивается со значением другого выражения. Используются следующие операторы (=, <>, <, <=,>, >=). Например:
Проверка на принадлежность диапазону. Проверяется, попадает ли указанное значение в определенный диапазон. Используется оператор BETWEEN … AND.
Необходимо отметить, что проверка на принадлежность диапазону не расширяет возможности SQL поскольку ее можно выразить в виде двух сравнений.
Проверка на членство в множестве. Проверяется, совпадает ли значение выражения с одним из значений заданного множества. Используется оператор IN.
С помощью проверки NOT IN можно убедиться в том, что элемент данных не является членом заданного множества. Все элементы в списке заданных значений должны иметь один и тот же тип данных, который должен быть сравним с типом данных проверяемого выражения.
Проверка на соответствие шаблону. Проверяется, соответствует ли строковое значение, содержащееся в столбце, определенному шаблону. Используется оператор LIKE.
Поверка на соответствие шаблону (оператор LIKE), схематически изображенная на рис., позволяет определить, соответствует ли значение данных в столбце некоторому шаблону. Шаблон представляет собой строку, в которую может входить один или более подстановочных знаков. Эти знаки интерпретируются особым образом.
Подстановочные знаки:
% совпадает с любой последовательностью из нуля или более символов.
_(символ подчеркивания) совпадает с любым отдельным символом.
При проверке строк на соответствие шаблону может оказаться, что подстановочные знаки входят в строку символов в качестве литералов. Например, нельзя проверить, содержится ли знак процента в строке, просто включив его в шаблон, поскольку СУБД будет считать этот знак подстановочным. Как правило, это не вызывает серьезных проблем, поскольку подстановочные знаки довольно редко встречаются в именах, названиях товаров и других текстовых данных, которые обычно хранятся в базе данных.
В стандарте ANSI/ISO определен способ проверки наличия в строке литералов, использующихся в качестве подстановочных знаков. Для этого применяются символы пропуска. Когда в шаблоне встречается такой символ, то символ, следующий непосредственно за ним, считается не подстановочным знаком, а литералом (происходит пропуск символа) Непосредственно за символом пропуска может следовать либо один из двух подстановочных знаков, либо сам символ пропуска, поскольку он тоже приобретает в шаблоне особое значение.
Символ пропуска определяется в виде строки, состоящей из одного символа, и предложения ЕSСАРЕ.
Проверка на равенство значению NULL. Проверяется, содержится ли в столбце значение. Используется оператор IS NULL.
В отличие от условий отбора, описанных выше, проверка на NULL не может возвратить значение NULL в качестве результата. Она всегда возвращает TRUE или FALSE.