- •Министерство образования и науки рф Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
- •Введение в базы данных
- •Учебное пособие
- •Воронеж 2012
- •Понятие информационной системы
- •Процессы в информационной системе
- •Этапы развития информационных систем
- •Структура информационной системы. Типы обеспечивающих подсистем
- •Математическое и программное обеспечение
- •Правовое обеспечение
- •Классификация информационных систем по признаку структурированности задач
- •Понятие структурированности задач
- •Типы информационных систем, используемые
- •Классификация ис по характеру использования информации
- •Классификация ис по сфере применения
- •Классификация ис по степени автоматизации
- •Контрольные вопросы
- •2. Введение в субд
- •2.1. Понятие базы и банка данных
- •2.2. Средства реализации баз данных
- •2.2.1. Программные средства банка данных
- •2.2.2. Языковые средства
- •2.2.3. Технические и организационно-методические средства
- •2.2.4. Требования к банкам данных
- •2.3. Функции субд
- •2.4. Классификация банков данных
- •2.4.1. Классификация баз данных
- •2.4.2. Классификация субд
- •2.4.3. Классификация БнД по экономико-организационным признакам
- •2.5. Концепция централизованного управления
- •Преимущества централизованного управления данными
- •2.6. Трехуровневая архитектура системы баз данных
- •2.7. Пользователи банков данных
- •2.8. Архитектура клиент/сервер
- •Контрольные вопросы
- •3. Модели и типы данных
- •3.1. Иерархическая модель
- •3.2. Сетевая модель
- •3.3. Реляционная модель
- •3.4. Постреляционная модель
- •3.5. Многомерная модель
- •3.6. Типы данных
- •Контрольные вопросы
- •4. Применение Баз данных в корпоративных информационных системах
- •4.1. Корпоративная информационная система
- •Контуром оперативного управления
- •4.2. Контур административного управления
- •4.2.1. Наполнение баз данных на примере модуля «Управление персоналом»
- •4.3. Контур оперативного управления
- •4.3.1. Пример организации модуля «Управление продажами (сбыт)»
- •Базы данных модуля «Автотранспорт»
- •4.4. Контур бухгалтерского учета
- •Контрольные вопросы
- •5. Справочно-правовые базы данных
- •5.1. Общая характеристика справочно-правовых баз
- •5.2. Наиболее популярные юридические базы данных
- •5.2.1. База юсис
- •5.2.2. Информационно-поисковая система "Кодекс"
- •5.2.3. Справочно-правовая система "Гарант"
- •5.2.4. Справочно-правовая система «Консультант Плюс»
- •5.2.5. Программный комплекс "Эталон"
- •Контрольные вопросы
- •6. Проектирование баз данных
- •6.1. Этапы проектирования
- •6.2. Инфологическое моделирование
- •6.2.1. Компоненты инфологической модели Модель «сущность — связь»
- •6.2.2. Классификация бинарных связей
- •6.2.3. Моделирование локальных представлений
- •6.2.4. Объединение моделей локальных представлений
- •6.3. Даталогическое проектирование
- •6.4. Проектирование реляционных баз данных
- •6.5. Нормализация отношений
- •Контрольные вопросы
- •7. Реляционная модель данных
- •Общие понятия
- •7.2. Реляционные объекты данных
- •7.2.1. Основные понятия
- •7.2.2. Фундаментальные свойства отношений
- •7.2.3. Виды отношений
- •Целостность реляционных данных
- •Реляционные операторы
- •7.4.1. Реляционная алгебра
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формулы
- •Назначение реляционной алгебры
- •Операции расширения и подведения итогов
- •Операторы обновления
- •7.4.2. Реляционное исчисление
- •Контрольные вопросы
- •8. Язык реляционных баз данных sql
- •8.1. Функции и основные возможности
- •8.2. Средства определения схемы
- •8.2.1. Определение таблицы
- •8.2.2. Определение ограничений целостности таблицы
- •8.2.3. Определение представлений
- •8.3. Структура запросов
- •8.3.1. Спецификация курсора
- •8.3.2. Оператор выборки
- •8.3.3. Подзапрос
- •8.3.4 Табличное выражение
- •Раздел where
- •Предикат сравнения
- •Предикат between
- •Предикат in
- •Предикат null
- •Предикат с квантором
- •Предикат exists
- •Раздел group by
- •Раздел having
- •8.4. Агрегатные функции и результаты запросов
- •8.5. Операторы обновления
- •Оператор изменения записей
- •Контрольные вопросы
- •9. Внутренняя организация реляционных субд
- •9.1. Хранение отношений
- •9.2. Индексы
- •9.3. Журнальная информация
- •9.4. Служебная информация
- •Контрольные вопросы
- •10. Настольные субд
- •10.1. Общие сведения о настольных субд
- •10.2. Наиболее популярные настольные субд
- •Контрольные вопросы
- •11. Серверные субд
- •11.1. Характерные черты современных серверных субд
- •Наиболее популярные серверные субд
- •Контрольные вопросы
- •Заключение
- •Корелина Татьяна Валерьевна введение в базы данных
- •394006 Воронеж, ул. 20-летия Октября, 84
9.4. Служебная информация
Для корректной работы подсистемы управления данными во внешней памяти необходимо поддерживать информацию, которая используется только этой подсистемой и не видна подсистеме языкового уровня. Набор структур служебной информации зависит от общей организации системы, но обычно требуется поддержание следующих служебных данных:
• внутренних каталогов, описывающих физические свойства объектов базы данных, например, число атрибутов отношения, их размер и, возможно, типы данных; описание индексов, определенных для данного отношения и т.д;
• описателое свободной и занятой памяти в страницах отношения. Такая информация требуется для нахождения свободного места при занесении кортежа;
• связывания страниц одного отношения. Если в одном файле внешней памяти могут располагаться страницы нескольких отношений (обычно к этому стремятся), то нужно каким-то образом связать страницы одного отношения. Тривиальный способ использования прямых ссылок между страницами часто приводит к затруднениям при синхронизации транзакций (например, особенно трудно освобождать и заводить новые страницы отношения). Поэтому стараются использовать косвенное связывание страниц с использованием служебных индексов. В частности, известен общий механизм для описания свободной памяти и связывания страниц на основе B-деревьев.
Контрольные вопросы
1. Какие разновидности объектов существуют во внешней памяти базы данных?
2. Чем отличается покортежное хранение отношений от хранения отношения по столбцам?
3. Дайте определение одномерного линейного списка и адресной функции.
4. Какие методы существуют при реализации адресной функции?
5. В чем заключается последовательное распределение памяти?
6. Какие существуют варианты реализации связанного распределения памяти?
7. Приведите примеры связанных линейных списков и двунаправленных линейных списков.
8. Какие типы указателей используются при практической реализации списковых структур?
9. Дайте определение хеш-функции. В чем заключается метод хеширования?
10. Для чего предназначены индексы?
11. Приведите пример организации индексов на основе B-деревьев.
12. Каким образом осуществляется построение неплотного индекса? Приведите пример.
13. Чем отличаются плотный и неплотный индексы?
14. Каким образом осуществляется поиск в B-дереве?
15. Что представляет собой системный журнал БД, каково его назначение?
16. Какая служебная информация должна храниться в БД?
10. Настольные субд
10.1. Общие сведения о настольных субд
Настольные СУБД как таковые не содержат специальных приложений и сервисов, управляющих данными, — взаимодействие с ними осуществляется с помощью файловых сервисов операционной системы. Нередко подобные СУБД имеют в своем составе и средства разработки, ориентированные на работу с данными формата, характерного для этой СУБД, и позволяющие создать более или менее комфортный пользовательский интерфейс. Что же касается обработки данных — она целиком и полностью осуществляется в пользовательском (клиентском) приложении.
Следующим шагом в развитии настольных СУБД было появление их сетевых многопользовательских версий, позволяющих обрабатывать данные, находящиеся в общедоступном хранилище (например, на сетевом диске) нескольким пользователям одновременно. От чисто настольных СУБД их многопользовательские версии отличаются наличием механизма блокировок частей файлов данных (содержащих одну или несколько записей таблицы), что позволяет обращаться к одному и тому же файлу нескольким пользователям одновременно.
Недостатки подобных СУБД не очевидны и становятся заметны, как правило, при росте хранимых объемов данных и увеличении числа пользователей. Обычно они проявляются в снижении производительности и в возникновении сбоев при обработке данных после некоторого времени использования клиентских приложений. Причина подобных проблем кроется в основном принципе работы таких СУБД и основанных на них информационных систем, заключающемся в обработке данных внутри пользовательского приложения. Например, если с помощью такой системы требуется выполнить запрос согласно какому-либо критерию (например, выбрать заказы, обработанные за последние два часа, из таблицы заказов), то, в лучшем случае (если эта таблица проиндексирована по времени поступления заказа), приложение должно прочесть с сетевого диска весь индекс, найти в нем сведения о местоположении записей в файлах, содержащих таблицу, и затем прочесть эти части файлов. В общем же случае, когда таблица не проиндексирована по данному полю, ее необходимо загрузить с сетевого диска и проанализировать.
Еще одна проблема настольных СУБД заключается в возможности нарушения ссылочной целостности данных, так как единственным механизмом, контролирующим ее, является пользовательское приложение. Поэтому все пользовательские приложения должны содержать соответствующий код и доступ к файлам базы данных из любых других приложений должен быть запрещен. В наиболее популярных настольных СУБД (например, Microsoft Access, Corel Paradox) код, контролирующий стандартную ссылочную целостность, содержится в библиотеках, используемых всеми приложениями, работающими с этой базой данных, а сама база данных при этом может содержать описание правил ссылочной целостности.
Следующим этапом развития СУБД для персональных компьютеров были так называемые серверные СУБД. Они будут рассмотрены в следующей главе.
Архитектура «клиент/сервер», для которой предназначены серверные СУБД, является в определенной степени возвратом к прежней «мэйнфреймовой» модели, основанной на централизации хранения и обработки данных на одном выделенном компьютере, где функционирует специальное приложение или сервис, называемый сервером баз данных. Сервер баз данных отвечает за работу с файлами базы данных, поддержку ссылочной целостности, резервное копирование, обеспечение авторизованного доступа к данным, протоколирование операций и, конечно, за выполнение пользовательских запросов на выбор и модификацию данных и метаданных. Клиентские приложения, являющиеся источниками этих запросов, функционируют на персональных компьютерах в сети.
Не останавливаясь подробно на достоинствах и недостатках подобной архитектуры, отметим лишь, что при использовании серверных СУБД выполнение запросов производится самим сервером, поэтому клиентские приложения получают от сервера только результаты самого запроса и не требуют передачи всего индекса или всей таблицы, что существенно снижает сетевой трафик при обработке запросов. Отметим также, что многие объекты, предназначенные для реализации бизнес-правил, такие как хранимые процедуры и триггеры, доступны лишь в серверных СУБД.
Рассмотрев, какими бывают базы данных, вернемся к настольным СУБД и поговорим о наиболее популярных из них.