Форма входа

Наша реклама

Помогите сайту просмотрите рекламу

Поиск

Календарь

«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Наш опрос

Оцените мой сайт
Всего ответов: 122

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0




Вторник, 16.04.2024, 18:34
Приветствую Вас Гость | RSS
Скорая помощь для студентов
Главная | Регистрация | Вход
Введение в системы БД и БД


ЛЕКЦИЯ #1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ И СИСТЕМЫ БАЗ ДАННЫХ
ВВЕДЕНИЕ

Основным компонентом информационной системы является хранящийся в ней запас информации, причем эта информация определенным образом структурирована. Основным источником информации являются неструктурированные, «сырые» сведения. Путем их обработки получают структурированную информацию, в которой выявляется ее предназначение.
Для достоверной, своевременной и значимой информации необходимы точные данные. Такие данные должны создаваться и храниться должным образом, в формате, обеспечивающем простоту доступа и обработки. Поскольку данные представляют собой важнейший базовый ресурс, ими необходимо тщательнейшим образом управлять. Управление данными это дисциплина, которая изучает методы создания, надлежащего хранения и извлечения данных. Принимая во внимание столь важную роль, которую играет информация в нашей жизни, стоит ли удивляться, что управление данными является основой деятельности любых предприятий, правительственных органов, сферы услуг и благотворительных организаций.
Изначально для управления данными использовались системы файлов, доступных для автоматизированной обработки. По мере возникновения новых потребностей предприятия создавали все новые и новые файлы. Отдельные группы внутри организаций разрабатывали собственные приложения, накапливая необходимые данные в частных файлах. Прикладные программы разрабатывались с учетом уже имеющихся файлов данных и наоборот; много информации неявным образом содержалось в организации взаимосвязи между программой и файлом.
Постепенно приходило осознание необходимости централизованного управления данными: 1) руководители высшего звена не так легко могли получить требуемую для принятия решений информацию (необходимо было написать прикладную программу, способную обработать несколько частных файлов, каждый со своим собственным форматом, и составить на их основе необходимый отчет); 2) принятие решений сдерживалось отсутствием целостности данных (по причине дублирования данных, накапливаемых в частных файлах, и возможности непоследовательного проведения их обновления).

Приложение

Используемые данные

Закрепление пилотов за рейсами

Номер рейса, город отправления, час отправления, ФИО пилота, адрес пилота

Бронирование билетов

Номер рейса, количество мест в самолете, ФИО пассажира, его номер телефона, адрес

Расчет зарплаты пилотов

ФИО пилота, адрес, общее количество часов полета, зарплата

Как видно, одни и те же данные используются в различных приложениях. Возникает проблема избыточного хранения данных и отсутствия согласованности между ними. Если, например, пилот является одновременно пассажиром, его адрес потребуется хранить в трех экземплярах. Если пилот изменил место жительства: возможна потеря согласованности данных, если обновление не будет по какой-либо причине произведено в каждом из трех файлов. Кроме того, возрастает стоимость изменений, потому что требуется блокировать все три файла для требуемого обновления, что приостановит работу каждого из приложений целиком. При подобном хранении возникает также сложность обработки данных ad hoc (не предполагающейся первоначально).
На современном этапе в целях централизованного управления данными используют базы данных. Они являются одними из основных компонентов автоматизированных систем различных уровней и типов. Они созданы и создаются во всех сферах деятельности, начиная от предприятий, банков, административных служб и заканчивая всевозможными тренажерами и справочниками.

СИСТЕМА БАЗ ДАННЫХ

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

Данные

В общем случае данные в базе данных являются интегрированными и разделяемыми. Эти два аспекта, интеграция и разрешение общего доступа, представляют собой наиболее важное преимущество использования систем баз данных.
 Под понятием интегрированности данных подразумевается возможность представить базу данных как объединение нескольких отдельных файлов данных, полностью или частично исключающее избыточность хранения информации. Например, база данных может содержать файл данных СОТРУДНИК, включающий имена сотрудников, адреса, отделы, зарплату и т.д., и файл данных РЕГИСТРАЦИЯ, содержащий сведения о регистрации сотрудников на курсах обучения (рис. 2). Допустим, что для контроля процесса обучения необходимо знать отдел каждого зачисленного на курсы сотрудника. Совершенно очевидно, что нет необходимости включать такую информацию в файл РЕГИСТРАЦИЯ, поскольку ее всегда можно получить из файла СОТРУДНИК.
СОТРУДНИКИ ИМЯ АДРЕС ОТДЕЛ ЗАРПЛАТА …
РЕГИСТРАЦИЯ ИМЯ КУРС …

СОТРУДНИКИ

ИМЯ

АДРЕС

ОТДЕЛ

ЗАРПЛАТА


РЕГИСТРАЦИЯ

ИМЯ

КУРС

 

 

  
Рис. 2. Файлы СОТРУДНИК и РЕГИСТРАЦИЯ
 Под понятием разделяемости данных подразумевается возможность использования отдельных элементов в базе данных несколькими различными пользователями. Имеется в виду, что каждый из пользователей сможет получить доступ к одному и тому же элементу данных, возможно, для достижения различных целей. Различные пользователи могут даже получать доступ к одному и тому же элементу данных в одно и то же время (параллельный доступ). В приведенном выше примере информация об отделе в файле СОТРУДНИК может разделяться (совместно использоваться) пользователями отдела кадров и отдела обучения; причем эти две группы пользователей смогут использовать такую информацию для разных целей, как это обычно и происходит.
Одним из следствий этих двух характеристик базы данных (интегрированности и разделяемости) является то, что каждый конкретный пользователь обычно имеет дело лишь с небольшой частью всей базы данных, причем обрабатываемые различными пользователями части могут произвольным образом перекрываться. Иначе говоря, каждая база данных воспринимается ее различными пользователями по-разному. Фактически даже те два пользователя базы данных, которые работают с одними и теми же элементами данных, могут иметь значительно отличающиеся представления о них.

Аппаратное обеспечение

К аппаратному обеспечению системы баз данных относятся:
  • накопители для хранения информации, а также соответствующие устройства ввода-вывода, контроллеры устройств, каналы ввода-вывода и т.д.;
  • процессор (или процессоры) вместе с основной памятью, которая используется для поддержки работы программного обеспечения системы баз данных.
Вопросы аппаратной части системы составляют достаточно обширную тему, которую нужно рассматривать отдельно. Кроме того, проблемы, которые существуют в этой области, не являются специфическими исключительно для систем баз данных.

Программное обеспечение

Между собственно физической базой данных (т.е. данными, которые реально хранятся) и пользователями системы располагается уровень программного обеспечения – система управления базами данных, СУБД (database management system, DBMS). Все запросы пользователей на доступ к базе данных обрабатываются СУБД; все имеющиеся средства добавления файлов данных, выборки и обновления данных в этих файлах также обеспечивает СУБД. Основная задача СУБД –предоставить пользователю базы данных возможность работать с ней, не вникая в детали на уровне аппаратного обеспечения (пользователь более отстранен от этих деталей, чем прикладной программист, использующий среду программирования). Иными словами, СУБД позволяет конечному пользователю рассматривать базу данных как объект более высокого уровня по сравнению с аппаратным обеспечением, а также предоставляет в его распоряжение набор операций, выражаемых в терминах языка высокого уровня (например, набор операций, которые можно выполнять с помощью языка SQL).
Замечание. СУБД – наиболее важный, но не единственный программный компонент системы. Среди других компонентов – утилиты, средства разработки приложений, средства проектирования, генераторы отчетов, менеджер транзакций и др.

Пользователи

Пользователей можно разделить на три большие и отчасти пересекающиеся группы.
1. Прикладные программисты. Отвечают за написание прикладных программ, использующих базу данных. Для этих целей применимы многие языки программирования. Прикладные программы получают доступ к базе данных посредством выдачи соответствующего запроса к СУБД. Основная задача прикладных программистов – создать для конечных пользователей развитые средства в виде прикладных программ для работы с базой данных.
2. Конечные пользователи. Работают с системами баз данных непосредственно с рабочей станции. Конечный пользователь может получить доступ к базе данных, используя прикладную программу или же интерфейс, интегрированный в программное обеспечение самой СУБД. Безусловно, подобный интерфейс также поддерживается интерактивными приложениями, однако эти приложения не создаются пользователями программистами, а являются встроенными в СУБД. Большинство СУБД включает по крайней мере одно такое встроенное приложение, а именно – процессор языка запросов, позволяющий пользователю в диалоговом режиме вводить запросы к базе данных. Язык SQL – типичный пример языка запросов для базы данных. Общепринятый термин «язык запросов» не совсем точно отражает рассматриваемое понятие, поскольку слово «запрос» подразумевает лишь выборку, в то время как с помощью этого языка выполняются также операции обновления, вставки и удаления и др.
Кроме языка запросов, в большинстве систем также предоставляются специализированные встроенные интерфейсы, в которых пользователь в явном виде не использует команды языка запросов. Работа с базой данных осуществляется за счет выбора пользователем необходимых команд меню или заполнения требуемых полей в предоставленных формах. Такие интерфейсы, основанные на меню и формах, облегчают работу с базами данных тем, у кого меньше опыта работы с ними. Командный интерфейс, т.е. язык запросов, напротив, требует некоторого профессионального опыта работы. Однако командный интерфейс более гибок, чем некомандный; кроме того, в языках запросов обычно есть определенные функции, отсутствующие в некомандных интерфейсах.
3. Администраторы базы данных.
Администратор данных – пользователь (группа пользователей), который несет основную ответственность за данные предприятия. Должен разбираться в данных и понимать нужды предприятия по отношению к данным на уровне высшего руководства предприятия. В обязанности администратора данных входит: принятие решений о том, какие данные необходимо вносить в базу данных в первую очередь; обеспечение поддержания порядка при обслуживании данных и использовании их после занесения в базу данных. Администратор данных – управляющий, а не специалист по техническим вопросам, но для того, чтобы он мог выполнять свои функции, он должен иметь хорошее представление о возможностях базы данных на техническом уровне.
Администратор базы данных – пользователь (группа пользователей), являющийся техническим специалистом, ответственным за реализацию решений администратора данных. В отличие от предыдущего типа, должен быть профессиональным специалистом в области информационных технологий. Работа администратора базы данных заключается в создании баз данных, организации технического контроля, обеспечении необходимого быстродействия системы и ее технического обслуживания.

БАЗА ДАННЫХ

Обычно данные в базе данных называют постоянными (устойчивыми, персистентные: persistent). Под словом «постоянные» подразумеваются данные, которые отличаются от других, более изменчивых данных, таких как промежуточные результаты, входные и выходные данные и вообще все временные (transient) по своей сути данные.
Замечание. Входные данные – это информация, передаваемая системе. Такая информация может стать причиной изменений в постоянных данных (она может стать частью постоянных данных), но не является частью базы данных как таковой. Выходные данные – это сообщения и результаты, выдаваемые системой (обычно выдаются на печать или отображаются на экране). Эту информацию можно получать из постоянных данных, но ее нельзя рассматривать как часть базы данных.
Итак, данные в базе остаются постоянными, поскольку после того, как они были приняты СУБД для помещения в базу, удалить их из нее впоследствии можно лишь с помощью соответствующего явного запроса к базе данных, но не как результат побочного эффекта от выполнения некоторой программы.
Можно сказать, что база данных – это некоторый набор постоянных данных, используемых прикладными системами какого-либо предприятия.
«Базовые» данные базы данных – постоянные данные, такие, из которых могут быть выведены другие данные, которые непосредственно в базе данных не хранятся. Эти «базовые» данные могут пополняться и изменяться, но только тогда, когда они пройдут все установленные в системе баз данных проверки («фильтры») на их персистентность, корректность и «базовость».
Любое предприятие неизбежно имеет большое количество данных, связанных с его деятельностью. Это и есть постоянные данные: данные о продукции для промышленной компании, о состоянии счетов для банка, о пациентах для больницы, о студентах для университета, данные о планируемой деятельности для министерства и т.д.
Ранее вместо термина постоянные данные использовался термин операционные данные. Старый термин отражал первоначальное особое значение операционных или производственных приложений баз данных, т.е. рутинных, часто выполняющихся приложений, предназначенных для поддержки каждодневной работы предприятия. Для среды такого рода в последнее время используется термин оперативная обработка транзакций (online transaction processing, OLTP). Однако сегодня базы данных все чаще используются и в приложениях другого рода, например, в приложениях поддержки принятия решений (decision support system, DSS), и термин операционные данные для них уже не подходит. На практике сегодняшние предприятия используют две отдельные базы данных: базу с операционными данными и базу с данными для поддержки принятия решений, которую обычно называют хранилищем данных (data warehouse). В хранилищах данных часто содержится обобщенная информация (например, итоговые и средние значения), которая, в свою очередь, периодически извлекается из операционной базы данных.

НАЗНАЧЕНИЕ БАЗ ДАННЫХ

Почему используются системы с базами данных? Какие преимущества получает пользователь при работе с ними?
Отметим некоторые преимущества системы с базой данных по сравнению с традиционным «бумажным» методом ведения учета: компактность, скорость, низкие трудозатраты, актуальность.
Наиболее ценное свойство базы данных – централизованное управление данными, оно предоставляет следующие преимущества:
1. Возможность совместного доступа к данным. Возможность доступа к данным нескольких существующих приложений баз данных, а также возможность разработки новых приложений для работы с этими данными.
2. Сокращение избыточности данных. Дублирование данных, во-первых, дорого, в том смысле, что данные занимают больше памяти, чем это необходимо, а во-вторых, при этом требуется более одной операции при обновлении. Вследствие этого различные копии данных могут находиться на различных стадиях обновления, и база данных может содержать противоречивую информацию. В принципе дублирование можно ликвидировать совсем и при этом гарантировать полную непротиворечивость данных, однако иногда веские практические и технические причины (например, обеспечение требуемой производительности при работе с распределенными базами данных) требуют наличия нескольких копий хранимых данных. Такая избыточность должна строго контролироваться СУБД и должна быть предусмотрена возможность «распространения обновлений»: если обновление вносится в одну из дублированных записей, то оно должно быть автоматически распространено на все остальные записи.
3. Возможность поддержки транзакций. Транзакция – логическая единица работы, обычно включающая несколько операций базы данных. Классический пример – передача суммы денег со счета A на счет B. Очевидно, что в данном случае необходимы два изменения: изъятие денег со счета A и внесение их на счет B. Если пользователь укажет, что оба изменения входят в одну и ту же транзакцию, то система сможет реально гарантировать, что либо оба эти изменения будут выполнены, либо не будет выполнено ни одно из них, даже если до завершения процесса изменений в системе произойдет сбой. Это свойство атомарности (неделимости) транзакций.
4. Обеспечение целостности данных. Данная задача заключается в гарантированной поддержке корректности данных в базе. Противоречивость между двумя записями, представляющими один «факт», является примером утраты целостности данных. Нарушение целостности может возникнуть при наличии избыточности в хранимых данных, но даже при отсутствии избыточности база данных может содержать некорректную информацию. Например, может быть указано, что сотрудник отработал 400 рабочих часов в неделю вместо 40, или зафиксирована его принадлежность к отделу, которого не существует. Централизованное управление базой данных позволяет избежать подобных проблем, насколько их вообще возможно избежать. Для этого на уровне базы данных определяются ограничения целостности (integrity constraints) или бизнес-правила, которые будут применяться при любой попытке внести изменения в соответствующие данные. Целостность данных наиболее важна для многопользовательских систем по причине совместного доступа: один пользователь может некорректно обновить данные, от чего пострадают другие пользователи.
5. Организация защиты данных. Представляет собой возможность установления ограничений защиты (security constraints), т.е. правил, которые будут проверяться при любой попытке доступа к уязвимым данным. Можно установить различные правила для разных типов доступа (выборка, вставка, удаление и т.д.) к каждому из элементов данных в базе данных. Цетрализованная природа системы баз данных требует наличия надежной системы защиты.
6. Возможность балансировки противоречивых требований. Зная общие требования всего предприятия (а не требования каждого отдельного пользователя), администратор базы данных может структурировать базу данных таким образом, чтобы обслуживание было наилучшим для всего предприятия. Например, он может выбрать такое физическое представление данных, которое обеспечит быстрый доступ к данным для наиболее важных приложений (возможно, с потререй производительности для некоторых других приложений).
7. Независимость данных. Это, скорее, цель создания систем баз данных, а не обязательное их преимущество. Противоположность этого понятия: когда способ физической организации данных и способ доступа в ним диктуются требованиями приложения. Более того, сведения об организации данных и способе доступа к ним встроены в саму логику и программный код приложения. Подобные приложения называют зависимыми от данных, т.к. невозможно изменить физическое представление или метод доступа, не изменив самого приложения. Трудности, возникающие при этом, не имеют никакого отношения к проблеме, для решения которой было написано данное приложение: это трудности, внесенные используемой структурой управления данными.
Причины выполнения принципа независимости данных для системы баз данных. 1) Для разных приложений требуются разные представления одних и тех же данных (например, разница в формате данных). 2) Администратор базы данных должен иметь неограниченные возможности изменять физическое представление или метод доступа к данным в случае изменения требований, причем без необходимости модифицировать существующие приложения.
Принципиально важное свойство СУБД заключается в том, что она обеспечивает сразу два уровня независимости данных: физическую и логическую. Физическая независимость данных означает определенную свободу изменения программной и аппаратной среды без необходимости внесения изменений в прикладные программы, использующие базу данных. Логическая независимость данных дает высокую гарантию того, что ни работающие прикладные программы, ни используемые ими данные не будут изменяться по мере развития информационных потребностей пользователей и добавления новых приложений.
Независимость данных обеспечивается за счет специальной многоуровневой архитектуры СУБД, обеспечивающей, в частности, разделение данных и программ: описания используемых данных в прикладных программах заменяются ссылками на информационные объекты базы данных. Однако не стоит надеяться только лишь на СУБД. Не следует, например, хранить константы в программе, чтобы избежать перекомпиляции при их изменении. Поэтому с точки зрения прикладного программиста независимость данных является скорее не техникой, а дисциплиной программирования.
База данных – совокупность взаимосвязанных хранящихся вместе с отношениями между ними устойчивых данных при наличии такой минимальной избыточности, которая допускает их независимое использование оптимальным образом для одного или нескольких приложений.


Copyright MyCorp © 2024