- •Введение
- •Глава 1 информационные системы
- •1.1 Информация как ресурс
- •1.2 Файловые системы
- •1.3 Информационные системы, использующие базы данных
- •1.3.1 Иерархические и сетевые модели данных
- •1.3.2 Реляционные системы управления базами данных
- •1.4 Компоненты информационных систем
- •1.4.1 Технические средства
- •1.4.2 Программное обеспечение
- •1.4.3 Данные
- •1.4.4 Пользователи
- •1.4.5 Организационное обеспечение
- •1.4.6 Отношения между компонентами системы
- •1.5 Основы проектирования информационных систем
- •1.5.1 Жизненный цикл программного обеспечения
- •1.5.2 Модели жизненного цикла по
- •1.5.3 Подходы к проектированию ис
- •1.6 Задания и вопросы для повторения
- •2.2 Подходы к проектированию баз данных
- •2.3 Создание базы данных
- •2.4 Основы концептуального проектирования баз данных
- •Объекты и отношения
- •2.3.2. Атрибуты
- •2.3.3 Ключи
- •2.3.4 Наследование
- •2.3.5 Составные объекты
- •2.3.6 Моделирование концептуальных и физических объектов
- •2.4 Реляционная модель данных
- •2.4.1 Поддержка целостности данных
- •Процесс нормализации таблиц
- •2.4.3 Пример построения нормализованной базы данных
- •2.4.4 Преобразование концептуальной модели в реляционную
- •2.5 Элементы er-моделирования
- •2.5.1 Основные понятия модели «сущность-связь»
- •2.5.2 Основные графические обозначения элементов модели
- •2.6 Заключительный этап проектирования
- •2.7 Сравнение концептуального и реляционного моделирования
- •2.8 Вопросы и задания для повторения
- •2.9 Упражнения и задачи
- •2.10 Проекты и профессиональные вопросы
- •Глава 3 реляционная алгебра и реляционное исчисление
- •3.1 Реляционная алгебра
- •3.1.1 Обзор реляционной алгебры
- •3.1.2 Теоретико-множественные операторы
- •3.1.3 Специальные реляционные операторы
- •3.1.4 Зависимые реляционные операторы
- •3.1.5 Примитивные реляционные операторы
- •3.2 Реляционное исчисление
- •3.2.1 Целевой список и определяющее выражение
- •3.2.2 Квантор существования
- •3.2.3 Квантор всеобщности
- •3.3 Заключение
- •3.4 Вопросы на повторение
- •3.5 Упражнения и задачи
- •Глава 4 управление реляционной базой данных с помощью sql
- •4.1 Элементы Transact-sql
- •Комментарии
- •4.1.2 Алфавит
- •4.1.3 Идентификаторы
- •Выражения
- •4.1.5 Ключевые слова
- •Операторы
- •4.1.7 Логические операторы
- •Типы данных
- •- Функции Transact-sql
- •4.2 Выборка данных из таблиц
- •4.2.1 Структура команды select
- •Результаты выборки
- •Отбор столбцов
- •Select Фамилия, Город from Гостиница.Dbo.Клиент
- •4.2.4 Определение заголовков столбцов
- •Выражения в выборках
- •Отбор записей
- •Порядок вывода данных
- •Котов Кузьма Кузьмич
- •Группировка данных
- •Отбор данных для групп
- •4.2.10 Директива compute
- •Выборка данных из нескольких таблиц
- •Объединение с помощью предложения where
- •Внутреннее объединение
- •4.2.14 Объединение и опция join
- •Оператор union
- •Подзапросы и структурированные запросы
- •Создание таблицы на основе выборки
- •Предложение for browse
- •4.3 Модификация данных
- •Добавление данных
- •Изменение данных
- •Удаление строк
- •Управляющие конструкции
- •Создание таблиц базы данных
- •4.6 Транзакции и блокировки
- •4.6.1 Понятие транзакций и блокировок
- •Управление транзакциями
- •Явные транзакции
- •Автоматические транзакции
- •Неявные транзакции
- •Управление блокировками
- •4.7 Хранимые процедуры
- •4.7.1 Типы хранимых процедур
- •Создание хранимых процедур
- •4.8 Триггеры
- •Создание триггера
- •Ограничения при создании триггеров
- •Использование триггеров
- •Вопросы на повторение
- •4.10 Упражнения и задачи
- •4.11 Проекты и профессиональные вопросы
- •Заключение
- •Приложение а sql скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
2.10 Проекты и профессиональные вопросы
Побеседуйте с представителем большой организации, недавно руководившим проектом базы данных. Выясните ответы на следующие вопросы:
Каков был состав групп участников проекта? Сколько в ней было человек и каковы были их специальности? Был ли приглашен консультант?
Какую позицию заняло высшее руководство по отношению к проекту? Верило ли оно в возможность успешного завершения проекта или было настроено скептически? Какое влияние его позиция оказала на отношение остальных работников к проекту?
Каков был результат проекта? Была ли приобретена СУБД? Была ли спроектирована и установлена новая база данных? Сколько отделов и управленческих уровней обслуживает база данных и ее прикладные программы? Каковы планы организации на будущее, связанные с базой данных?
Изучите понятие жизненного цикла базы данных в данной книге и в профессиональных периодических изданиях. Попробуйте найти версии жизненного цикла базы данных, отличные от представленной в данной главе. Что общего в этих версиях? Попытайтесь синтезировать различные версии в единый общий жизненный цикл базы данных.
Создайте концептуальную модель данных для части организации. Ваша модель должна содержать как минимум пять объектных множеств, их отношения и атрибуты. Попытайтесь определить условия, при которых требуются конкретизированные множества.
Не пользуясь концептуальным моделированием, создайте реляционную схему базы данных для организации, с которой Вы контактировали или в которой Вы работали. Ваша схема должна содержать как минимум восемь реляционных таблиц, приведенных к четвертой нормальной форме.
Снова выполните проект (п. 4). На этот раз создайте концептуальную модель, которую затем преобразуйте ее в реляционную при помощи методов, рассмотренных в данной главе. Сравните результаты.
Глава 3 реляционная алгебра и реляционное исчисление
3.1 Реляционная алгебра
Базовые механизмы работы с реляционными данными основаны на теории множеств реляционной алгебры и базируются на математической логике реляционного исчисления. Все эти механизмы обладают одним важным свойством: они замкнуты относительно понятия отношения. Это означает, что выражения реляционной алгебры и формулы определяются над отношениями и результатом их вычисления также являются отношениями.
Вообще в реляционной алгебре принято оперировать следующими понятиями:
В реляционной теории одним из главных понятий является отношение. Математически отношение определяется следующим образом. Пусть даны n множеств D1, D2, ..., Dn. Тогда R есть отношение над этими множествами, если R есть множество упорядоченных наборов вида <d1, d2, ..., dn>, где: d1 – элемент из D1; d2 – элемент из D2; ..., dn – элемент из Dn. При этом наборы вида <d1, d2, ..., dn> называются кортежами, а множества D1, D2, ..., Dn – доменами. Каждый кортеж состоит из элементов, выбираемых из своих доменов. Эти элементы называются атрибутами, а их значения – значениями атрибутов.
По идее все эти понятия имеют разные названия, в зависимости от того, в какой области ими манипулируют. В таблице 3.1 приведено сопоставление терминологий, применяемых для обозначения общих понятий, но употребляемые в различных областях.
Таблица 3.1 - Сравнение понятий для разных областей
Теория БД |
Практика |
SQL Server |
Отношение (Relation) |
Таблица (Table) |
Таблица (Table) |
Кортеж (Tuple) |
Запись (Record) |
Строка (Row) |
Атрибут (Attribute) |
Поле (Field) |
Столбец (Column) |
Домен (Domain) |
Общая совокупность допустимых значений |
Количество столбцов |
Степень отношения |
Кардинальное число отношения |
Количество строк |
Обобщенное графическое представление некоторых из этих понятий схематично представлено на рисунке 3.1.
Рисунок 3.1 - Схематическое обозначение понятий реляционной
алгебры
Очень сложные запросы к базе данных могут быть выражены с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления. Именно по этой причине именно эти механизмы включены в реляционную модель данных. Конкретный язык манипулирования реляционными БД называется реляционно-полным, если любой запрос, выражаемый с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, может быть выражен с помощью оператора этого языка.
Заметим, что крайне редко алгебра или исчисление принимаются в качестве полной основы какого-либо языка БД. Обычно (как, например, в случае языка SQL) язык основывается на некоторой смеси алгебраических и логических конструкций. Тем не менее, знание алгебраических и логических основ языков баз данных часто бывает полезно на практике и позволяет выражать конечные запросы к БД в виде совокупности операторов реляционной алгебры. Это упрощает понимание запросов и делает очевидным получаемые результаты.
