- •Основные понятия информационных систем Информация и субд
- •Файловые системы
- •Структуры файлов
- •Именование файлов
- •Области применения файлов
- •Потребности информационных систем
- •Структуры хранения данных и методы доступа к ним
- •Доступ к базе данных
- •Диспетчер дисков
- •Диспетчер файлов
- •Кластеризация
- •Наборы страниц и файлы
- •Индексирование
- •Плотное и неплотное индексирование
- •Структура типа б-дерева
- •Хеширование
- •Задание
- •Расширяемое хеширование
- •Цепочки указателей
- •Управление данными, размещенными в оперативной памяти
- •Функции и архитектура субд
- •Примеры приложений субд
- •Обзор основных компонентов субд
- •Диспетчер памяти
- •Процессор запросов
- •Диспетчер транзакций
- •Параллелизм
- •Задание. Привести схему применения двухфазной блокировки для решения проблемы незафиксированной зависимости и проблемы несовместимого анализа.
- •Журнализация
- •Поддержка языков бд
- •Типовая организация современной субд
- •Ранние подходы к организации бд
- •Основные особенности систем, основанных на инвертированных списках
- •Структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Иерархические системы
- •Иерархические структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Сетевые системы
- •Сетевые структуры данных
- •Манипулирование данными сетевой схемы
- •Ограничения целостности сетевых систем
- •Достоинства и недостатки
- •Реляционные базы данных Общие понятия и терминология реляционного подхода
- •Тип данных
- •Фундаментальные свойства отношений (таблиц)
- •Реляционная модель
- •Каталог
- •Базовые таблицы, представления, снимки и запросы
- •Отношения и предикаты
- •Null-значения; потенциальные и внешние ключи
- •Базисные операции над реляционными данными
- •5.1. Реляционная алгебра
- •5.1.1. Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Особенности теоретико-множественных операций реляционной алгебры
- •Специальные реляционные операции
- •Операция взятия проекции
- •Операция соединения отношений
- •Операция деления отношений
- •Упражнения
- •Задание
- •Операция расширения и подведения итогов
- •Операция подведения итогов
- •Задания
- •Операторы обновления
- •Упражнения по запросам
- •5.2. Реляционное исчисление
- •Кортежные переменные и правильно построенные формулы
- •Еще раз о свободных и связанных переменных
- •Целевые списки и выражения реляционного исчисления
- •Реляционное исчисление доменов
- •Список литературы
Функции и архитектура субд
По сути дела БД это просто информация, существующая в течение продолжительного времени. Хотя обычно терминомбаза данныхобозначается множество данных, управляемое СУБД.
Предполагается, что СУБД:
Обеспечивает пользователю возможность создавать новые БД и определять их схему (логическую структуру данных) с помощью специального языка, который называется языком определения данных.
Позволяет «запрашивать» данные («запрос» в терминологии БД означает вопрос по поводу данных) и изменять их с помощью языка запросов или языка манипулирования данными.
Поддерживает хранение очень больших массивов данных, измеряемых гигабайтами и более, в течение долгого времени, защищая их от случайного повреждения или неавторизованного использования и обеспечивая модификацию БД и доступ к данным путем запросов.
Контролирует доступ к данным одновременно множества пользователей, не позволяя запросу одного из них влиять на запрос другого и не допуская одновременного доступа, который может случайно испортить данные.
Первые коммерческие СУБД появились в конце шестидесятых годов. Они возникли из систем, выполнявших пункт 3 и существенно использовали файловые системы для хранения данных. Недостатком этих СУБД является то, что файловые системы не гарантируют защиты от потери данных. Кроме того, файловые системы непосредственно не выполняют пункт 2 не поддерживают язык запросов на данные в файлах. Поддержка пункта 1 , т.е. схемы данных, ограничена созданием структуры каталогов для файлов. И, наконец, файловые структуры не удовлетворяют пункту 4. Допуская параллельный доступ к файлам множества пользователей или процессов, они не предотвращают ситуации, в которой два пользователя изменяют один и тот же файл почти одновременно, поэтому изменения одного из них в файле вообще не появляются.
Важным шагом было создание СУБД, в которых данные разбивались на множество небольших элементов, вводилось множество запросов или изменений.
Примеры приложений субд
Система резервирования авиабилетов. Элементами данных этой системы являются:
Бронирование единственным клиентом билета на единственный рейс, включающее в себя информацию о номере места.
Информация об авиарейсах: аэропортах отправления, время вылета и прибытия.
Информация о ценах на билеты и наличии свободных мест.
Типичные запросы касаются информации об авиарейсах в определенное время из одного конкретного города в другой, наличии свободных мест и цен на билеты. Типичное изменение данных это бронирование определенного рейса и места. В любой момент множество агентств получают доступ к данным. СУБД должна разрешить такой параллельный доступ и предотвратить проблему одновременного бронирования одного и того же места на один и тот же рейс, а также потерю записей в случае выхода системы из строя.
Банковская система.
В этой системе элементами данных являются адреса клиентов, счета, займы и их балансы, а также связи между клиентами, например, информация о том, кто какие счета имеет право подписывать. Здесь очень важно, чтобы одновременный доступ к счету не привел к потере транзакций на банкомате. Ошибки здесь недопустимы. Например, после изъятия денег из банкомата банк должен записать этот дебет, даже если при этом отключится электроэнергия. С другой стороны, банк не имеет права сначала записать дебет, а затем не выдавать деньги потому, что отключилась электроэнергия.