ТЕМА 1 БАЗЫ ДАННЫХ, ПРИНЦИПЫ ПОСТРОЕНИЯ, ЖИЗНЕННЫЙ ЦИКЛ
1.1 История развития баз данных
История развития баз данных (БД) – это история развития систем управления данными во внешней памяти. Поэтому не случайно создание новых баз данных сдерживалось из-за несовершенства внешних запоминающих устройств.
История создания компьютерных баз данных фактически началась с появлением магнитных дисков, которые обладали существенно большей емкостью по сравнению с магнитной лентой и магнитными барабанами, а также обеспечивали большую скорость доступа к данным в режиме произвольной выборки.
Для работы любой базы данных необходима разработка специального программного обеспечения (ПО), которое позволяло бы управлять процессами ввода и вывода информации в базу данных в соответствии с запросами пользователя. На начальном этапе создания БД в качестве систем управления БД использовались системы управления файлами. Позднее появилось специальное программное обеспечение, которое назвали системой управления базой данных (СУБД). СУБД разные авторы определяют по-разному, одни понимают их как – «комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации»; другие – как «комплекс программ, который позволяет не только хранить большие массивы данных в определенном формате, но и обрабатывать их, представляя в удобном для пользователя виде»; третьи как – «настольные системы управления базами данных (СУБД), обеспечивающие организацию и хранение локальных баз данных на автономно работающих компьютерах либо централизованное хранение баз данных на файл-сервере и сетевой доступ к ним». Несмотря на разнообразие определений, всем им присущи общие признаки, которые кратко можно определить так: СУБД – это совокупность взаимосвязанных программ, обеспечивающих хранение, обработку и выдачу массива данных в соответствии с запросами пользователей.
История СУБД насчитывает более 40 лет. В 1968 г. была введена в эксплуатацию первая промышленная СУБД – система IMS фирмы IBM. В 1969 г. фирмой Software AG была разработана СУБД ADABAS, а в 1971 г. фирма Cullinetсоздала базу данных IDMS. В 1975 г. появился первый стандарт СУБД, разработанный ассоциацией по языкам систем обработки данных – Conference of Data System Language (CODASYL). Этот стандарт определил ряд фундаментальных понятий в теории систем баз данных, которые до сих пор являются основополагающими для сетевой модели данных. В 1981 г. Э.Ф. Кодд создал реляционную модель данных и применил к ней операции реляционной алгебры.
В истории развития БД нет жестких временных ограничений между этапами их создания и развития, так как они плавно переходят один в другой и даже существуют параллельно. Однако условное выделение этих этапов позволяет более четко охарактеризовать отдельные стадии развития технологии баз данных, подчеркнуть особенности, специфичные для каждого из них.
Создание и развитие баз данных неразрывно связано с совершенствованием носителей информации. Как правило, каждый из них обладает определенной емкостью, имеет устройство для чтения-записи информации на этот носитель в режиме произвольного доступа и прикладные программы, которые используют конкретный носитель информации для ввода-вывода информации во внешнюю память.
Каждая прикладная программа должна определять, на каком носителе и в каком месте хранится её информация. Но с одним носителем работает несколько прикладных программ (рисунок 1.1), что может привести к наложению информации, то есть данные одной прикладной программы будут перезаписаны другой программой. Поэтому потребовалась разработка специальных систем управления этим процессом.

Рисунок 1.1 – Взаимосвязь прикладных программ с носителями информации
Первыми такими системами стали централизованные системы управления файлами (ЦСУФ), под которыми подразумевались системы, позволяющие создавать, редактировать, копировать и перемещать файлы. Чтобы считывать данные из внешней памяти, необходимо знать имя файла, его размер и физическое расположение в области внешней памяти. Исходя из этого система управления файлами (СУФ) должна была выполнять следующие функции: 1) распределять внешнюю память; 2) отображать файлы с соответствующими адресами во внешней памяти; 3) обеспечивать доступ непосредственно к данным (рисунок 1.2).
Рисунок 1.2 – Взаимосвязь СУФ с прикладными программами и носителями информации
Рассмотрение конкретных особенностей реализации отдельных систем управления файлами выходит за рамки данной темы, поэтому ограничимся перечислением основных операции с файлами в СУФ: 1) создать файл (определенного типа и размера); 2) открыть ранее созданный файл; 3) прочитать из файла определенную запись; 4) изменить запись; 5) добавить запись в файл.
Для систем управления файлами характерны определённые недостатки:
1) они создают зависимость программы управления файлами от введенных в неё данных, потому что не знают конкретной структуры файла. Каждая программа, работающая с файлом, должна иметь внутри себя структуру данных, соответствующую структуре этого файла. При изменении структуры файла необходимо изменить структуру самой программы и входящих в нее алгоритмов, а это требует проведения повторной компиляции и отладки прикладной программы. Данное обстоятельство вызывает необходимость перекомпиляции прикладной программы и ее повторной отладки. Для информационных систем характерным является наличие большого числа пользователей, применяющих одни и те же файлы для решения своих задач. Если кто-то из пользователей изменяет структуру файла, используемого несколькими прикладными программами, то это приводит к необходимости изменения всех программ, связанных с ним. Указанная зависимость является первым недостатком файловых систем;
2) децентрализованное управление доступом к файлу (администрирование) вызвано тем, что файловые системы являются общим хранилищем файлов, принадлежащих разным пользователям. СУФ должна обеспечивать авторизацию доступа к таким файлам. В большинстве современных СУФ для защиты файлов применяется подход, впервые реализованный в операционной системе UNIX, где каждому пользователю соответствует пара целочисленных идентификаторов: идентификатор группы пользователей, к которой относится данный пользователь, и его собственный идентификатор в группе. Каждый файл сохраняет полный идентификатор пользователя, в котором фиксируется: 1) кто его создал; 2) какие действия с файлом может производить его создатель; 3) какие действия доступны для других пользователей его группы; 4) что могут делать с файлом пользователи других групп.
Таким образом, обеспечивался децентрализованный принцип управления доступом к файлу. В связи с тем, что множества файлов в информационной системе отражают информационную модель одной предметной области, этот принцип приводил к известным сложностям при построении информационных систем: файл, созданный одним пользователем (одной прикладной программой), оказывался недоступен для другой. Децентрализованный принцип управления доступом к файлам представляет второй недостаток файловых систем;
3) невозможность реализации полноценного многопользовательского доступа в СУФ является третьим недостатком файловых систем. Это объясняется следующими причинами. Если операционная система поддерживает многопользовательский режим, то вполне реальна ситуация, когда два и более пользователя одновременно пытаются работать с одним и тем же файлом. Если все пользователи только читают файл, то ничего страшного не произойдет. Но если хотя бы один из них будет изменять файл, то для корректной работы остальных пользователей потребуется взаимная синхронизация действий по отношению к этому файлу. Чтобы избежать такой ситуации, при изменении файла одним из пользователей всем другим пользователям выдается сообщение о невозможности выполнения процедуры изменения или чтения файла.
При подобном способе организации одновременная работа нескольких пользователей, связанная с модификацией данных в файле, либо вообще не могла быть реализована, либо оказалась сильно замедленной. Таким образом, можно сделать вывод, что одновременная работа нескольких пользователей с одним файлом (при модификации данных в файле) была невозможна, так как СУФ не имела возможности организовать синхронизацию действий отдельных пользователей в виду отсутствия сведений о конкретной структуре файла.
Приведенные недостатки СУФ (зависимость программ от данных, децентрализация управления доступом, невозможность полноценной многопользовательской работы) послужили толчком к появлению специальных систем управления данными, которые назвали Системами Управления Базами Данных (СУБД), по-английски Database Management System (DBMS).
1.2 Основные сведения по БД
1.2.1 Понятие базы данных (БД)
Существует несколько определений понятия «база данных».
База данных – совокупность связанных данных, правила организации которых основаны на общих принципах описания, хранения и манипулирования данными.
База данных – это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.
База данных – это поименованная совокупность структурированных данных, относящихся к определённой предметной области.
База данных – это совокупность данных, организованных по определенным правилам, которые предусматривают общие принципы описания, хранения и манипулирования данными. Обычно БД содержат данные какой-либо предметной области.
База данных – представляет совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
База данных – это организованная в соответствии с определенными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.
Последнее из определений возьмем за основное и будем на него опираться. Из рассмотренных определений следует, что база данных является проекцией предметной области, под которой следует «понимать часть реального мира, подлежащего изучению для организации управления и, в конечном счете, автоматизации…» всех операций работы с её элементами и с её отражением. В этом отражении должны быть представлены объекты предметной области, их состояние и отношения между ними. Отсюда следует, что для любой предметной области, для любой сферы человеческой деятельности может быть создана база данных, отражающая ее состояние. Однако следует отметить, что, несмотря на то, что базу данных можно назвать отражением или проекцией предметной области, нельзя считать, что эта проекция полная. Речь может идти только об отражении каких-либо частей этой области.
В современных базах данных хранятся не только данные, но и другая информация. Если, например, рассмотреть базу данных крупного банка, то в ней есть все необходимые сведения о клиентах, об их адресах, кредитной истории, состоянии расчетных счетов, финансовых операциях и т.д. Доступ к этой базе данных имеется у достаточно большого количества сотрудников банка, но среди них вряд ли найдется такое лицо, которое имеет доступ ко всей базе полностью и при этом способно единолично вносить в нее произвольные изменения.
Кроме данных, база содержит методы и средства, позволяющие каждому из сотрудников оперировать только с теми данными, которые входят в его компетенцию. В результате взаимодействия данных, содержащихся в базе, с методами, доступными конкретным сотрудникам, образуется информация, которую они потребляют и на основании которой в пределах собственной компетенции производят ввод и редактирование данных.
Таким образом, база данных состоит из объектов, информации об их состоянии и отношений между ними.
1.2.2 Объекты и отношения между ними
Под объектом понимается некоторое целое явление, понятие, предмет, процесс, действие, обладающее рядом неотъемлемых свойств (качеств). Если имеется некоторая предметная область, то базой данных для неё будет построение проекции-отражения данной предметной области. Для этого необходимо из предметной области выделить некоторые объекты. Например, для предметной области «Оптовая база» в качестве объектов могут быть: поставщики, счета, материалы, клиенты и т.д. (рисунок 1.3). Свойства и состояния этих объектов будут отражаться в базе данных «Поставка продукции».

Рисунок 1.3 – Выделение объектов из предметной области
Кроме самих объектов, существуют также и отношения между ними. Отношения между объектами характеризуют взаимосвязь объектов предметной области.
Например, отношение между объектами «Поставщики» и «Материалы» может иметь следующее значение:
- если задан поставщик, то можно найти все поставляемые им материалы;
- если задан материал, то можно найти всех поставщиков данного материала.
Отобразим объекты и отношения между ними на следующей схеме (рисунок 1.4).
Как видно из схемы, представленной на рисунке 1.4, объекты предметной области связаны между собой посредством отношений. Отношения, подобно основным объектам, являются частью данных, поэтому они также являются элементами базы данных. Значения отношений показаны на рисунке 1.4 и приведены в таблице 1.1. Эти отношения являются бинарными, так как связывают всего два объекта. В общем случае из нескольких бинарных отношений можно составить n-арное отношение.
Таблица 1.1 – Виды отношений для базы данных «Поставка продукции»
Наименование отношения |
Назначение |
ПСч |
Поставщики (П) выписывают счета (Сч) |
СчМ |
В счетах (Сч) указываются материалы (М) |
СчПр |
В счетах (Сч) может указываться продукция (Пр) |
КСч |
Клиенты (К) могут получать счета (Сч) на оплату продукции |
КПр |
Клиенты (К) покупают продукцию (Пр) |
ПрС |
Продукция (Пр) находится на складах (С) |
ПрМ |
Для производства продукции (Пр) используются материалы (М) |
МС |
Материалы (М) находятся на складах (С) |
ПрН |
На продукцию (Пр) выписываются накладные (Н) при ее перемещении |
СН |
В накладной (Н) указывается склад (С) |
НО |
В накладной (Н) также указывается отдел (О) |
НСл |
Накладные (Н) выписываются и подписываются служащими (Сл) |
ПрО |
Продукция (Пр) выпускается отделами (О) |
СлО |
Служащий (С) входит в состав отдела (О) |

Рисунок 1.4 – Объекты и отношения между ними
Отношения можно также рассматривать как специальный тип объектов, задача которых – связывать основные объекты базы данных «Поставка продукции».
1.2.3 Достоинства БД
Электронные БД по сравнению с традиционным бумажным методом содержания информации обладают следующими достоинствами:
1) компактностью, так как отпадает необходимость в наличии больших помещений, хранилищ, архивов;
2) высокой скоростью обработки информации, так как компьютер обрабатывает данные практически мгновенно (по сравнению с человеком). Это означает, что все операции поиска, изменения, группировки данных и формирования отчетов будут происходить во много раз быстрее, чем при традиционной технологии работы с информацией на бумажных носителях;
3) низкими трудозатратами, что позволяют исключить утомительную работу по перебору бумажных документов и выборке из них необходимой информации. Сокращение этой механической работы высвобождает большое количество времени на решение других, более важных задач;
4) оперативностью поиска информации, потому что время между запросом необходимой информации и ее получением снижается в десятки раз; таким образом, можно говорить о более быстром, по сравнению с традиционной бумажной технологией, получения информации;
5) возможностью неоднократного использования информации большим количеством пользователей, так как введенная одним пользователем информация становится доступной для других, причем её можно использовать неограниченное количество раз.
1.3 Принципы построения БД
Изучением этого вопроса долгое время занимались различные группы людей в учреждениях, использующих ЭВМ, в правительственных комиссиях, на вычислительных центрах коллективного пользования. Комитет CODASYL опубликовал отчеты на эту тему (CODASYL – организация, разработавшая язык КОБОЛ). Организации пользователей IBM SHARE и GUIDE в своем отчете сформулировали требования к системе управления базами данных:
1) Установление многосторонних связей. Различным программистам требуются разные логические файлы. Эти файлы получаются из одной и той же совокупности данных. Между элементами запоминаемых данных могут существовать различные связи: они могут быть как простыми, так и содержать сложные переплетения взаимосвязей. Однако метод организации данных должен быть таким, чтобы обеспечивалась возможность удобного представления этих взаимосвязей и быстрого согласования вносимых в них изменений. Система управления БД должна обеспечивать возможность получения требуемых логических файлов из имеющихся данных и существующих между ними связей. Необходимо, чтобы существовало хотя бы небольшое сходство между представлением логического файла в прикладной программе и способом физического хранения данных.
2) Производительность. Базы данных, специально разработанные для использования их оператором терминала, обеспечивают время ответа, удовлетворительное для диалога «человек - терминал». Кроме того, система БД должна обеспечивать соответствующую пропускную способность. В системах, рассчитанных на небольшой поток запросов, пропускная способность накладывает незначительные ограничения на структуру БД. В системах с большим потоком запросов, например в системах резервирования авиабилетов, пропускная способность оказывает существенное влияние на выбор организации физического хранения данных. В системах, предназначенных только для пакетной обработки, время ответа не так важно и метод физической организации может выбираться из условий обеспечения эффективной пакетной обработки.
3) Минимальные затраты. Для уменьшения затрат на создание и эксплуатацию БД выбираются такие методы организации, которые минимизируют требования к внешней памяти. При использовании этих методов физическое представление данных в памяти может сильно отличаться от того представления, которое использует прикладной программист. Преобразование одного представления в другое осуществляет программное обеспечение либо, если возможно, аппаратные или микропрограммные средства. В таких случаях приходится выбирать между затратами на алгоритм преобразования и экономией памяти.
4) Минимальная избыточность. В системах обработки, существовавших до использования систем управления БД, информационные фонды обладали очень высоким уровнем избыточности. Большинство ленточных библиотек содержало большое количество избыточных данных. Даже при использовании БД по мере возрастания информации, объединяемой в интегрированные БД, потенциальная возможность появления избыточных данных постепенно увеличивается. Избыточные данные они занимают больше памяти, чем это необходимо, и требуют более одной операции обновления. Целью организации БД должно быть уничтожение избыточных данных там, где это выгодно, и контроль за теми противоречиями, которые вызываются наличием избыточности данных.
5) Возможности поиска. Пользователь БД может обращаться к ней с самыми различными вопросами по поводу хранимых данных. В большинстве коммерческих приложений типы запросов предопределены и физическая организация данных разрабатывается для их обработки с требуемой скоростью. Возросшие требования к системам заключаются в обеспечении обработки таких запросов или формирования таких ответов, которые заранее не запланированы.
6) Целостность. Если база данных содержит данные, используемые многими пользователями, очень важно, чтобы элементы данных и связи между ними не разрушались. Необходимо учитывать возможность возникновения ошибок и различного рода случайных сбоев. Хранение данных, их обновление, процедуры включения данных должны быть такими, чтобы система в случае возникновения сбоев могла восстанавливать данные без потерь. Необходимо, чтобы вычислительная система гарантировала целостность хранимых в ней данных.
7) Безопасность и секретность. Данные в системах баз данных должны храниться в тайне и сохранности. Запоминаемая информация иногда очень важна для использующего ее учреждения. Она не должна быть утеряна или похищена. Для увеличения жизнестойкости информации в базе данных важно защищать ее от аппаратных или программных сбоев, от катастрофических и криминальных ситуаций, от некомпетентного или злонамеренного использования лицами, которые могут ее неправильно употребить.
Под безопасностью данных понимают защиту данных от случайного или преднамеренного доступа к ним лиц, не имеющих на это право, от неавторизованной модификации данных или их уничтожения.
Под секретностью понимают право отдельных лиц или организаций определять, когда, как и какое количество соответствующей информации может быть передано другим лицам или организациям.
8) Связь с прошлым (совместимость). Организации, которые в течение какого-то времени эксплуатируют системы обработки данных, затрачивают значительные средства на написание программ, процедур и организацию хранения данных. В том случае, когда фирма начинает использовать на вычислительной установке новое программное обеспечение управления базами данных, очень важно, чтобы при этом организация могла работать с уже существующими на этой установке программами и обрабатываемые данные можно было бы соответствующим образом преобразовывать. Такое условие требует наличия программной и информационной совместимости, потому что ее отсутствие может стать основным сдерживающим фактором при переходе к новым системам управления БД. Важно, однако, чтобы проблема связи с прошлым не сдерживала развитие средств управления базами данных.
9) Связь с будущим. Особенно важной представляется связь с будущим. В будущем данные и среда их хранения изменятся по многим направлениям. Любая коммерческая организация со временем претерпевает изменения. Особенно важными эти изменения оказываются для пользователей системами обработки данных. Огромные затраты, которые требуются для реализации самых простых изменений, сильно тормозят развитие этих систем. Эти затраты расходуются на преобразование данных, перезапись и отладку прикладных программ, явившихся результатом внесения изменений. Со временем число прикладных программ в организации растет, и поэтому перспектива перезаписи всех этих программ кажется нереальной. Одной из самых важных задач при разработке баз данных является возможность планирования базы данных таким образом, чтобы изменения ее можно было выполнять без модификации прикладных программ.
10) Простота использования. Средства, которые используются для представления общего логического описания данных, должны быть простыми и изящными. Интерфейс программного обеспечения должен быть ориентирован на конечного пользователя, а также учитывать возможность того, что пользователь не имеет необходимой базы знаний по теории баз данных.
1.4 Жизненный цикл базы данных
Процесс проектирования, реализации и поддержания системы БД называется жизненным циклом базы данных (ЖЦБД).Процедура создания системы называется жизненным циклом системы (ЖЦБД).
Понимание и правильное отношение к ЖЦБД очень важно и требует детального рассмотрения, так как в основе лежит подход, ориентированный на данные. Элементы данных более стабильны, чем выполняемые функции системы. Создание правильной структуры данных требует сложного анализа классов единиц данных и отношений между ними. Если построить логичную схему базы данных, то в дальнейшем можно создать любое количество функциональных систем, использующих эту схему. Функционально-ориентированный подход можно применять лишь для создания временных систем, которые рассчитаны на недолгое время функционирования.
ЖЦБД состоит из следующих этапов:
1. Предварительное планирование – планирование БД, выполняемое в процессе разработки стратегического плана БД. В процессе планирования выясняется следующее:
- какие прикладные программы используются и какие функции они выполняют;
- какие файлы связаны с каждым из этих приложений;
- какие новые приложения и файлы находятся в процессе работы.
2. Проверка осуществимости. Здесь определяется технологическая, операционная и экономическая осуществимость плана создания БД, то есть:
- технологическая осуществимость – наличие технологии для реализации запланированной БД;
- операционная осуществимость – присутствие средств и экспертов, необходимых для успешного осуществления плана создания БД;
- экономическая целесообразность – окупится ли запланированная система; возможна ли оценка издержек и будет ли выгода от создания БД.
- определение целей системы путём анализа информационных потребностей. Здесь также обязательно указывается, какую именно БД следует создавать (распределённую, целостную) и какие коммуникационные средства необходимы. Определяется выходной документ – комментарий, описывающий цели системы;
определение пользовательских требований: документация в виде обобщённой информации (комментарии, отчёты, опросы, анкеты и т. д.);
определение общих требований к оборудованию и программному обеспечению, связанных с поддержанием желаемого уровня быстродействия (выяснение количества пользователей системы, числа входных сообщений в день, количества распечаток). Указанная информация используется для выбора типов компьютеров и СУБД, объёма дисков, количества принтеров. Данные этого этапа излагаются в отчёте, содержащем примерные конфигурации оборудования и программного обеспечения;
фиксация функций системы и определение прикладных систем, которые будут выполнять эти требования. Данные представляются в виде соответствующих документов;
разработка плана поэтапного создания системы, включающего выбор исходных приложений.
4. Концептуальное проектирование – создание концептуальной схемы БД. Спецификации разрабатываются в той степени, которая необходима для перехода к реализации.
Основным выходным документом является единая инфологическая модель базы данных (или схема БД на концептуальном уровне). При разработке данной модели используются информация и функции, которые должна выполнить система.
На данном этапе желательно также определить: 1) правила для представления данных; 2) правила обработки данных для процессов; 3) правила представления данных для интерфейса.
5. Реализация – процесс превращения концептуальной модели в функциональную БД; включает следующие этапы:
1) выбор и приобретение необходимой СУБД;
2) преобразование концептуальной (инфологической) модели БД в логическую и физическую модель данных:- на основе инфологической модели данных строится схема данных для конкретной СУБД, при необходимости производится нормализация БД с целью ускорения обработки запросов во всех критичных по времени приложениях;
- определяются, какие прикладные процессы необходимо реализовать в схеме данных как хранимые процедуры;
- устанавливаются ограничения, предназначенные для обеспечения целостности данных и реализации правил использования данных;
- разрабатывается стратегия индексирования и кластеризации; выполняется оценка размеров всех таблиц, кластеров и индексов;
- определяются уровни доступа пользователей, разрабатываются и внедряются правила обеспечения безопасности и аудита. Создаются роли и синонимы для обеспечения многопользовательского доступа с согласованными уровнями полномочий доступа;
- разрабатывается сетевая топология БД и механизм бесшовного доступа к удалённым данным (реплицированная или распределённая БД)
4) заполнение базы данных;
5) создание прикладных программ, осуществляющих контроль управления БД;
6) обучение пользователей.
6. Оценка и усовершенствование схемы БД. Включает опрос пользователей с целью выяснения функциональных неучтенных потребностей. При необходимости вносятся изменения, добавления новых программ и элементов данных по мере изменения и расширения потребностей.
Таким образом, ЖЦБД включает в себя:- изучение предметной области и представление соответствующей документации;
- построение инфологической модели;
- реализацию;
- оценку выполненной работы и поддержку БД.