- •Оглавление
- •1. Основные понятия информационных систем
- •1.1. История возникновения информационных систем
- •1.2. Современное понятие информационной системы
- •2. Автоматизированные информационные системы
- •2.1. Преимущества автоматизированных информационных систем
- •2.2. Классификация аис
- •2.2.1. Классификация по типу хранимых данных.
- •2.2.2. Классификация по характеру обработки данных.
- •2.2.3. Классификация по степени интеграции данных и автоматизации управления.
- •2.2.4. Классификация по степени распределенности.
- •2.2.5 Классификация аис по другим признакам
- •3. Банки данных
- •3.1. Понятие банка данных
- •3.2. Преимущества банков данных
- •3.3. Предпосылки широкого использования банков данных
- •3.4. Общие требования к банкам данных
- •3.5. Компоненты банка данных
- •3.5.1. Информационная компонента
- •3.5.2. Программные средства банков данных
- •3.5.3. Языковые средства БнД
- •3.5.4. Технические средства банков данных
- •3.5.5. Организационно-методические средства.
- •4. Виды банков данных
- •4.1. Банки документов
- •4.2. Банки знаний
- •4.3. Экспертные системы
- •4.4. Хранилища данных
- •5. Системы управления базами данных (субд)
- •5.1. Назначение и состав субд
- •5.2. Классификация субд
- •5.3. Архитектура субд
- •5.4. Функции субд
- •5.5. Основные распространенные субд
- •6. Основы проектирования баз данных
- •6.1. Основные понятия в теории баз данных
- •6.2. Связи между сущностями
- •6.3. Этапы проектирования базы данных
- •6.3.1. Инфологическое моделирование
- •6.3.2. Даталогическое моделирование
- •6.3.3. Физическое моделирование
- •7. Модели данных
- •7.1. Иерархическая модель данных
- •7.2. Сетевая модель данных
- •7.3. Понятие реляционной модели данных
- •7.3. Постреляционная модель данных
- •7.4. Объектно-ориентированная модель данных
- •7.5. Объектно-реляционная модель данных
- •8. Реляционная модель данных
- •8.1. Понятие «отношения» в реляционной модели данных
- •8.2. Свойства отношений
- •8.3. Требования к реляционным базам данных
- •8.4. Основные математические понятия
- •9. Нормализация баз данных
- •9.1. Первая нормальная форма
- •9.2. Вторая нормальная форма
- •9.3. Третья нормальная форма
- •9.4. Нормальная форма Бойса – Кодда
- •9.5. Многозначные зависимости
- •9.6. Четвертая нормальная форма
- •9.7. Пятая нормальная форма
- •9.8. Принципы выбора нормальной формы для проектируемой базы данных
- •10. Введение в язык запросов sql
- •10.1. Назначение языка sql
- •10.2. Достоинства языка sql
- •10.3. Состав языка sql
- •10.4. Трехзначная логика
- •10.5. Основные типы данных языка sql
- •11. Sql. Некоторые Операторы языка определения данных
- •11.1. Оператор create table
- •11.2. Оператор alter table
- •11.3. Оператор drop table
- •12. Sql. Операторы изменения данных
- •12.1. Оператор insert into
- •12.2. Оператор update
- •12.3. Оператор delete from
- •13. Sql. Выбор информации из базы данных
- •13.1. Общее описание оператора select
- •13.1.1. Назначение оператора select
- •13.1.2. Синтаксическая диаграмма оператора select
- •13.2. Обязательные предложения оператора select
- •13.2.1. Предложение select.
- •13.2.2. Предложение from.
- •13.2.3. Примеры простейших запросов на выборку.
- •13.3. Отбор строк (предложение where)
- •13.3.1. Сравнение
- •13.3.2. Проверка на принадлежность диапазону значений (between)
- •13.3.3. Проверка на членство во множестве (in)
- •13.3.4. Проверка на соответствие шаблону (like)
- •13.3.5. Отслеживание отсутствия значений (null)
- •13.3.6. Составные условия отбора строк
- •13.4. Сортировка результатов запроса (предложение order by)
- •13.5 Примерный порядок выполнения простых однотабличных запросов
- •13.6. Многотабличные запросы
- •13.6.1. Полные имена столбцов.
- •13.6.2. Псевдонимы таблиц.
- •13.6.3. Особенности многотабличных запросов.
- •13.6.4. Примеры многотабличных запросов.
- •13.6.5. Соединение таблиц в предложении from.
- •13.6.6. Примерный порядок выполнения многотабличных запросов
- •13.7. Итоговые запросы на чтение
- •13.7.1. Агрегатные функции.
- •13.7.2. Группировка строк (предложение group by)
- •13.7.3. Отбор групп строк (предложение having)
- •13.7.4. Примерный порядок выполнения итоговых запросов
- •13.8. Вложенные запросы на чтение (подзапросы)
- •13.8.1. Использование вложенных запросов
- •13.8.2. Сравнение с результатом вложенного запроса
- •13.8.3. Проверка на принадлежность результатам вложенного запроса
- •13.8.4. Проверка на существование (exists)
- •13.8.5. Многократное сравнение (any, all)
- •13.9. Объединение результатов нескольких запросов
5.3. Архитектура субд
СУБД имеет многоуровневую архитектуру, в которой можно выделить три основных уровня: внешний, концептуальный и внутренний. Другими словами для создания базы данных необходимо описать ее логическую структуру (схема данных, логическая схема данных, концептуальная схема данных), организацию в среде хранения (схема хранения, внутренняя схема), а также способы видения базы данных пользователями (внешние схемы).
Внешний уровень описывает ту часть базы данных, которая относится к каждому пользователю. На внешнем уровне каждый пользователь имеет дело с представлением "реального мира", выраженным в наиболее удобной для него форме. Внешнее представление содержит только те сущности, атрибуты и связи "реального мира", которые интересны пользователю.
Концептуальный уровень содержит логическую структуру всей базы данных (с точки зрения АБД). Фактически это полное представление требований к данным, которое при этом не зависит от способа их хранения. На концептуальном уровне представлены следующие компоненты: все сущности, их атрибуты и связи; накладываемые на данные ограничения; ограничения безопасности и целостности данных.
Внутренний уровень есть физическое представление базы данных в компьютере. Внутренняя схема состоит из отдельных экземпляров записей, физически хранимых во внешних носителях. На внутреннем уровне также хранится следующая информация: распределение дискового пространства для хранения данных и индексов, сведения о размещении записей; сведения о сжатии данных и выбранных методах их шифрования.
Строго говоря, ниже внутреннего уровня находится физический уровень, который контролируется операционной системой, но под управлением СУБД.
5.4. Функции субд
СУБД – это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных.
С точки зрения пользователя СУБД реализует функции хранения, изменения (добавления, обновления и удаления) и обработки информации, а также разработки и получения различных выходных документов.
В более развернутом виде можно сказать, что СУБД выполняют такие функции как управление ресурсами среды хранения, обеспечение логической и физической независимости данных, защита логической и физической целостности базы данных, управление полномочиями пользователей на доступ к базе данных, организация параллельного доступа пользователей к базе данных, настройка на конкретные условия применения, поддержка деятельности системного персонала.
СУБД позволяет различать и поддерживать два независимых взгляда на базу данных – взгляд пользователя, воплощаемый в логическом представлении данных, и взгляд системы – «физическое» представление, характеризующее организацию хранимых данных. Пользователя не интересуют при его работе с базой данных байты и биты, представляющие данные в среде хранения, их размещение в памяти, указатели поддерживающие связи между различными структурными компонентами хранимых данных, выбранные методы доступа. В то же время все эти факторы важны для выполнения функций управления данными самой СУБД.
Обеспечение логической независимости данных – одна из важнейших функций СУБД, предоставляющая определенную степень свободы вариации «логического» представления базы данных без необходимости соответствующей модификации «физического» представления. Отметим, что логическая независимость данных обеспечивается средствами механизмов многоуровневой архитектуры СУБД.
Под физической независимостью данных понимается способность СУБД предоставлять некоторую свободу модификации способов организации баз данных в среде хранения, не вызывая необходимости внесения соответствующих изменений в логическое представление (прикладные программы). Физическая независимость данных реализуется в СУБД за счет тех же самых трансформационных механизмов архитектуры системы, которые обеспечивают логическую независимость данных.
Поддержка логической целостности (непротиворечивости) базы данных осуществляется посредством задания ограничений целостности. Ограничения целостности базы данных объявляются в схеме базы данных, и их проверка осуществляется при каждом обновлении объектов данных или связей между ними. Во многих СУБД ограничения целостности поддерживаются только на стадии ввода данных в базу данных и ассоциируются с используемыми экранными формами ввода.
Нарушения логической целостности базы данных могут быть связаны не только с вводом в нее недостоверных данных. Они могут являться также следствием несвоевременного прерывания выполнения процедур обработки данных. Для исключения таких ситуаций в многопользовательских СУБД предусматривается механизм транзакций.
Проблема обеспечения физической целостности базы данных возникает в связи с возможными ее разрушениями в результате сбоев и отказов оборудования, повреждений носителей данных. Развитые СУБД располагают средствами восстановления разрушенной базы данных, основанные чаще всего на использовании ее контрольных копий и журнализации изменений.
В многопользовательских СУБД предусматриваются механизмы разграничения полномочий доступа (управления доступом) пользователей к базе данных, поскольку в ней могут храниться данные, которые должны быть доступны лишь ограниченному кругу пользователей.
Механизмы управления доступом обычно основываются на принципах паролей, сопоставление так называемых замков управления доступом, ассоциированных с защищенными объектами, и ключей, специфицируемых пользователем, либо на явной спецификации полномочий доступа.
Организация параллельного доступа пользователей к базе данных является довольно сложной задачей. Здесь нужно исключать коллизии, связанные с одновременным обновлением данных разными пользователями, с возможностью чтения одним пользователем объекта базы данных, который успел лишь частично обновить другой показатель. Такие коллизии привели бы к нарушению логической целостности базы данных. Для их предотвращения в СУБД предусматривается техника транзакций и блокирования ресурсов данных. Транзакцией называют последовательность операций пользователя над базой данных, которая сохраняет ее логическую целостность. Если например из базы данных нужно удалить сведения о некотором поставщике в связи с тем, что он прекращает дальнейшие поставки, то вслед за этим необходимо удалить и сведения о запланированных этим поставщиком поставках продукции. Иначе база будет содержать сведения о поставках неизвестного системе поставщика. Ясно, что в мультипользовательской среде такую последовательность операций нельзя прерывать до полного ее завершения для обработки запросов других пользователей системы.
На время исполнения транзакции, модифицирующей некоторые ресурсы данных необходимо блокировать эти ресурсы с тем, чтобы не допустить к ним доступа для других транзакций. В различных СУБД используются различные методы блокирования. В одних системах предусматривается автоматическое блокирование ресурсов на время их обновления, в других оно должно явно запрашиваться в пользовательских транзакциях. Используются и комбинированные стратегии блокирования. Блокирование может предусматривать монопольное использование ресурса данной транзакцией или допускать его совместное использование с другими транзакциями.
Разрешая таким образом проблему параллельного доступа, блокирование ресурсов вместе с тем порождает новую проблему - возможность возникновения тупиковой ситуации, когда группа из двух или более транзакций монопольно захватывает ресурсы таким образом, что каждая из них ожидает освобождения какого-либо ресурса, монопольно захваченного (блокированного) другой транзакцией из этой группы. В некоторых СУБД реализованы специальные автоматические механизмы предотвращения тупиковых ситуаций либо механизмы, обеспечивающие выход из тупиковой ситуации за счет отката образующих ее транзакций.
Настройка СУБД на конкретные условия применения может включать модификацию параметров организации среды хранения данных, выбор новых, более эффективных для данного случая методов доступа из числа предоставляемых системой. Обычно она допускает также изменение структуры хранимых данных или их размещения в среде хранения (реорганизацию базы данных) с целью повышения производительности системы или возвращения освобожденной памяти для повторного использования. Кроме того, предусматривается возможность логической реструктуризации базы данных – модификации концептуальной схемы с последующим приведением базы данных в соответствие с вновь сформированной схемой, а также ряд других функций для поддержки деятельности системного персонала, ответственного за эксплуатацию базы данных. Такой персонал называют администраторами базы данных.
Для управления настройкой системы используются ее языковые средства. Характер и возможности языковых средств СУБД определяются главным образом моделью данных, поддерживаемых этой системой.
Перечисленные выше функции СУБД, в свою очередь, используют следующие основные функции более низкого уровня (низкоуровневые функции):
- управление данными во внешней памяти (на дисках);
- управление буферами оперативной памяти;
- управление транзакциями;
- журнализация изменений, резервное копирование и восстановление базы данных;
- поддержка языков БД (ЯОД, ЯМД).