- •Базы данных
- •Введение
- •Часть 1. Проектирование баз данных
- •1.1. Некоторые понятия и определения
- •1. 2. Модели данных
- •1.2.1. Иерархическая модель данных
- •1.2.2. Сетевая модель данных
- •1.2.3. Реляционная модель данных Основные определения
- •Типы связей между отношениями
- •1.3. Классификация баз данных
- •1.4. Цели проектирования баз данных
- •1.5. Проектирование баз данных с использованием универсального отношения
- •1.5.1. Универсальное отношение
- •1.5.2. Проблемы, вызываемые использованием универсального отношения
- •Проблема вставки
- •Проблемы обновления
- •Проблемы удаления
- •1.5.3. Нормальная форма Бойса -Кодда
- •Функциональные зависимости
- •Возможный ключ и детерминант
- •Общий подход к декомпозиции
- •Анализ исходных аномалий
- •1.5.4. Возможные потери фз при декомпозиции
- •1.5.5. Избыточные функциональные зависимости
- •Приемы удаления избыточных фз
- •Минимальное покрытие
- •Модернизированный алгоритм проектирования бд
- •1.6. Метод er - проектирования
- •1.6.1. Сущности и связи
- •1.6.2. Степень связи
- •1.6.3. Переход от диаграмм er – типа к отношениям
- •Предварительные отношения для бинарных связей степени 1:1
- •Предварительные отношения для бинарных связей степени 1:n.
- •Предварительные отношения для бинарных связей степени n:m
- •1.6.4. Дополнительные конструкции, используемые в er - методе
- •Необходимость связей более высокого порядка
- •Предварительные отношения для трехсторонних связей
- •Использование ролей
- •1.6.5. Последовательность проектирования бд при использовании er- метода
- •1.6.6. Проверка отношений на завершающейся фазе проектирования
- •1.7. Другие нормальные формы
- •1.8. Контрольные вопросы
- •Часть 2. Специальные аспекты работы с базами данных
- •2.1. Защита данных в базе
- •2.2.1. Общие вопросы защиты данных
- •2.2.2. Реализация защиты данных в различных системах
- •Управление доступом в sql
- •Реализация системы защиты в ms sql Server
- •2.2. Обеспечение целостности данных
- •2.3. Организация параллельных процессов обработки данных
- •2.4. Восстановление бд
- •2.4.1. Уровни восстановления.
- •2.4.2. Восстановление и логический элемент работы
- •Требования к лэр
- •2.4.3. Промежуточное восстановление
- •2.4.4. Длительное восстановление
- •2.5. Математический аппарат, используемый при работе с реляционной базой данных
- •2.5.1. Теоретико-множественные операции реляционной алгебры
- •2.5.2. Специальные операции реляционной алгебры
- •2.6. Контрольные вопросы
- •Часть 3. Разработка приложений для работы с базами данных
- •3.1. Краткий обзор субд
- •3.2. Субд Access
- •3.2.1. Вводные замечания
- •3.2.2. Создание базы данных
- •3.2.3. Создание и работа с таблицами
- •3.2.4. Работа с запросами
- •3.2.5. Создание форм
- •3.2.6. Отчеты в Access
- •3.2.7. Макросы в Access
- •Преобразование макросов в программы на Visual Basic
- •3.2.8. Работа с внешними данными
- •3.3. Программирование в Access
- •3.3.1. Вводные замечания
- •3.3.2. Объявление переменных
- •3.3.3. Константы
- •3.3.4. Тип данных Variant
- •3.3.5. Пользовательские типы данных
- •3.3.5.Операторы, команды и выражения в vba
- •3.3.7. Процедуры vba
- •3.3.8. Управляющие структуры в vba
- •Работа с управляющими структурами
- •3.3.9. Объекты в Access
- •3.3.10. Классы в Access
- •3.3.11. Работа с ошибками в vba
- •3.4.Работа в ms sql –Server
- •3.4.1. Основные количественные показатели системы sql-сервер
- •3.4.2. Создание баз данных
- •3.4.3. Создание таблицы
- •3.4.4. Извлечение данных
- •3.4.5. Добавление данных
- •3.4.6. Изменение данных
- •3.4.7. Удаление данных
- •3.5. Контрольные вопросы
- •Цитированная литература
- •Оглавление
- •Часть 1. Проектирование баз данных 3
- •Часть 2. Специальные аспекты работы с базами данных 71
- •Часть 3. Разработка приложений для работы с базами данных 114
3.4.4. Извлечение данных
В большинстве случаев используется упрощенный вариант команды SELECT, имеющий следующий синтаксис:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ORDER BY order_expression [ ASC | DESC ] ]
Весь запрос SELECT разбивается на отдельные разделы, каждый из которых имеет свое назначение. Большая часть этих разделов может быть опущена. Обязательными являются только разделы SELECT и FROM.
Рассмотрим кратко содержание указанных разделов.
select_list – конструкция определяет список и прохождение столбцов, которые будут включены в результат выборки, возвращаемый сервером после выполнения запроса. В разделе Select также указывается будут ли исключены или включены в выборку дублирующиеся строки, или же выбрана только часть строк. Для этого в запрос включаются ключевые слова Distinct, All и Top соответственно.
[ INTO new_table ] – конструкция позволяет сохранить результаты запроса в новой таблице.
FROM table_source – раздел определяет источники данных с которыми будет работать запрос.
[ WHERE search_condition ] – раздел предназначен для определения условий, которым должны соответствовать данные, чтобы попасть в результаты запроса.
[ GROUP BY group_by_expression ] – конструкция позволяет выполнять группировку строк таблиц по определенным критериям.
[ HAVING search_condition ] - в этом разделе задаются предикаты-условия, накладываемые на каждую группу.
[ORDER BY order_expression [ ASC | DESC ] ] – конструкция позволяет упорядочить набор данных, возвращаемого после выполнения запроса. Ключевые слова Asc и Desc обеспечивают упорядочение по возрастанию или убыванию соответственно.
Приведенный вариант синтаксиса запроса SELECT не исчерпывает все его возможности. Полный список разделов запроса следующий:
- SELECT; - INTO; - FROM; - WHERE; - GROUP BY; - HAVING; - UNION; - ORDER BY; - COMPUTE; - FOR; - OPTION.
Рассмотрим ранее не рассмотренные разделы.
UNION – раздел служит для объединения результатов выборки, возвращаемых двумя и более запросами.
COMPUTE – раздел позволяет применить к выбираемым столбцам функции агрегирования.
FOR – раздел позволяет обновлять данные при просмотре результата выборки с помощью приложений, использующих библиотеку Db –Library, или для преобразования результатов выборки в формат XML (расширенная версия языка HTML).
OPTION – с помощью этого раздела задается набор дополнительных параметров, позволяющих управлять ходом оптимизации и выполнения запроса.
3.4.5. Добавление данных
Перед тем как начать изменение данных в таблицах или выборку данных из таблиц, необходимо их вставить. Данные в таблицу SQL Server 2000 могут быть внесены различными способами.
- С помощью команды INSERT. Используя единственную команду INSERT, можно добавить как одну строку, так и множество строк. Причем разрешается указание вставляемых значений как с помощью переменных (или констант), так и с помощью запроса.
- С помощью команды SELECT INTO. В этом случае на основе результата выборки, возвращаемого запросом, сервер автоматически создает новую таблицу.
- Посредством применения механизмов массового копирования данных, используемых для вставки в таблицу множества строк, данные которых располагаются в текстовых файлах. Этот способ предполагает использование утилиты командной строки bср или команды BULK INSERT.
- С помощью программного интерфейса баз данных (Database API). Этот способ включает использование механизмов ADO, OLE DB, ODBC и DB-Library.
- С помощью возможностей Data Transformation Services. Используя эту технологию, можно выполнять сложные операции переноса и трансформации данных из множества распределенных гетерогенных источников информации, таких, например, как Oracle, Excel, Paradox, Access и многих других.
Механизмы ADO, OLE DB, ODBC и DB-Library в этой лекции не рассматриваются. Для поиска информации по управлению данными с использованием этих методов нужно обратиться к специализированной литературе. Также не рассматривается использование служб трансформации данных (Data Transformation Services).