
- •Введение
- •Глава 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.3.2. Атрибуты
Элементы объектных множеств обладают некоторыми атрибутами. Значения атрибутов позволяют различать элементы объектного множества между собой. Например, у человека есть имя, дата рождения, вес, рост. Фактически, атрибут объекта – функциональное отношение объектного множества, к которому принадлежит этот объект, к другому объектному множеству. Один из перечисленных выше атрибутов показан на рисунке 2.7 как отношение. Однако часто удобно представлять атрибуты более простым образом (рисунок 2.8).
Рисунок 2.7 - Атрибут, показанный как отношение
Рисунок 2.8 - Обозначение атрибутов
При нормальном использовании атрибуты являются функциональными отношениями в направлении от объекта к атрибуту. То есть, значение атрибута однозначно определено для каждого элемента объекта. Например, у каждого человека есть только одна дата рождения и одно имя. Максимальная мощность отношения со стороны атрибута в таком отношении всегда равна одному, поэтому в диаграммах ее можно опускать. Если для некоторого элемента объектного множества значение атрибута не определено, то говорят, что этот атрибут имеет пустое значение.
Важно понимать, что атрибуты нужно в концептуальном плане отделять от объектов, которые они описывают, так как значения атрибутов могут меняться, в то время как описываемый ими объект остается прежним. Например, у человека может измениться рост, вес, семейное положение, но это будет тот же самый человек.
2.3.3 Ключи
Ключ или возможный ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр объектного множества. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать элемент объектного множества по значениям оставшихся атрибутов. Каждое объектное множество обладает хотя бы одним возможным ключом. Один из них принимается за первичный ключ. При выборе первичного ключа следует отдавать предпочтение несоставным ключам.
Составной ключ – ключ, содержащий более одного атрибута.
Нецелесообразно также использовать ключи с длинными текстовыми значениями (предпочтительнее использовать целочисленные атрибуты). Так, для идентификации студента можно использовать либо уникальный номер зачетной книжки, либо набор из фамилии, имени, отчества, номера группы и может быть дополнительных атрибутов, так как не исключено появление в группе двух студентов с одинаковыми фамилиями, именами и отчествами.
Не допускается, чтобы первичный ключ (любой атрибут, участвующий в первичном ключе) принимал неопределенное значение. Иначе возникнет противоречивая ситуация, когда появится не обладающий индивидуальностью экземпляр объектного множества. По тем же причинам необходимо обеспечить уникальность первичного ключа.
Внешние ключи предназначены для установления связей между объектными множествами. Например, если объектное множество С связывает между собой объектные множества А и В, то оно должно включать внешние ключи, соответствующие первичным ключам сущностей А и В.
Элементы объектных множеств часто могут быть представлены внутренними номерами, которые не имеют смысла вне системы. Внутренний номер часто называют идентификатором объекта или суррогатным ключом, так как он однозначно определяет объект реального мира. Суррогатные ключи целесообразно использовать в следующих случаях:
естественный атрибут должен играть роль ключа, но не обладает необходимым свойством уникальности;
выбранный в качестве внешнего ключа атрибут имеет большую длину (например, длинная строка символов). Чтобы избежать его многократного дублирования, целесообразно присвоить ему код;
естественный атрибут может менять свое значение со временем, например, название предприятия или фамилия сотрудника.
Ключ нужен не для каждого объекта. Например, в базе данных, записывающей продажи, пользователя может интересовать только продаваемый товар и объем продаж. В этом случае нет смысла создавать однозначный ключ для каждой продажи.