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