Базы данных. Уровни представления данных. Концептуальный уровень
Скачать 156.57 Kb.
|
История развития СУБД На фоне роста производительности компьютерных систем происходило развитие систем управления базами данных, причем именно рост производительности спровоцировал развитие СУБД, как отдельного класса. Уже к середине шестидесятых годов прошлого столетия существовало уже достаточно большое количество коммерческих систем управления базой и постоянно возрастающий интерес к базам данных только подтверждал правильность развития и требовал наличия в данной сфере системы стандартизации. Только система стандартизации могла упорядочить и немного ограничить огромное количество почти одинаковых систем управления базой данных. Для этого была организована целевая группа DТG (Dаtа Ваsе Таsk Grоuр) во главе которой стал автор комплексной базы данных Intеgrаtеd Dаtа Stоrе Чapльз Бaхмaн (Сhаrlеs Васhmаn). Целевая группа была создана в рамках СОDАSYL для организации стандартов базы данных и утверждение различных особенностей. СОDАSYL это группа отвечавшая за стандартизацию языка программирования СОВОL. Плодом работы стал тот факт, что уже в 1971 году был выдвинут свой подход – «Подход СОDАSYL», который определял некий свод утверждений и замечание для создания база данных. И спустя некоторое время начали появляться с учетом подхода первые успешные коммерческие продукты. Компания IВМ, идущая в пионерах компьютерной техники, представила свою систему управления базой данных IМS уже в 1968 году. Представленный продукт был некоторой компиляцией утилит используемых с системами System/360 на шаттлах Аполлон. Решение уже тогда укладывалось в рамки правил подход СОDАSYL с применением строгой структуризации и иерархии данных, причем за основу была взята сетевая система управления базой данных. Эти разработки, уже позже были приняты информационным сообществом как классические варианты организации работы системы управления базой данных, а Чapльз Бaхман в 1973 году получил одну из наиболее значимых наград сообщества – премию Тьюринга. Премия была присуждена за работу «Программист как навигатор». В то время в одном из отделений Сан Хосе (США) компании IВM работал сотрудником Эдгар Кодд. Он занимался разработкой систем хранения и в 1970 году написал ряд статей, которые касались моделей навигации системы управления базы данных. Они касались инновационных подходов в процессе оптимальной организации систем управления баз данных. Считается что своей работой он внес существенный вклад в развитие систем управления баз данных и стал одним из основоположников теории реляционных баз данных. Применяя операции реляционной алгебры, Эдгар Кодд в 1981 году создал реляционную модель данных. Когда используется база данных, предполагается, что несколько различных пользователей могут работать с разными прикладными задачами. За сохранность файлов при решении задач в прикладной программе отвечает программист, работающий с этой задачей. Это касается отдельных файлов. Когда работа происходит с различными интегрированными данными, количество информации и различных отдельных файлов существенно возрастает, что приводит к невозможности сохранение достоверности лежащее на программисте. Он уже физически не может отвечать за это. В этом случае любое расширение решаемых возможностей приводит к дополнительному появлению новых типов записей и как следствие к новым взаимоотношениями между этими записями. Трудно мирится с тем фактом, что такое изменение должно повлиять на ранее разработанные и успешно функционирующие прикладные программы самой системы. И в обратном направлении тоже есть существенное ограничение. Возможное изменение прикладной программы не должно влиять на изменение структуры базы данных. Видно что эти ограничения приводят к необходимости отделения прикладных программ от базы данных. Роль отделяющего элемента, или интерфейса между прикладными программами и базой данных, обеспечивающего их независимость, играет программный комплекс, который называется системой управления базами данных (СУБД) (Рис. 2.1). СУБД – программный комплекс поддержки интегрированной совокупности данных, предназначенный для создания, ведения и использования базы данных многими пользователями (прикладными программами). Рисунок 2.1 – Обеспечение независимости прикладных программ и базы данных Прежде чем рассказать о классификации банков данных повторим его определение. Банк данных – система языковых, алгоритмических, программных, технических и организационных средств поддержки интегрированной совокупности данных, а также сами эти данные, представленные в виде баз данных. Классификация банков данных (БнД) Банки данных являются сложными системами, и классифицировать можно по разным признакам. Классификация баз данных. Как уже говорилось, база данных является центральным, ключевым компонентом банка данных и большая часть признаков по которым может быть произведена классификация, относятся именно к базе данных. По форме представления информации различают видео- и аудиосистемы, а также системы мультимедиа. Это показатель того, в каком виде информация выдается пользователю. Это может быть в виде изображения (фотографии, рисунки, чертежи и т.д.), в виде звука или имеется возможность использовать разные разных форм отображения информации и их комбинацию. С практической стороны наибольшее распространение имеют базы данных, содержащие обычные символьные данные. Они, в свою очередь, могут быть классифицированы на неструктурированные, частично структурированные и структурированные. К неструктурированным базам данных могут быть отнесены БД, организованные в виде семантических сетей. Частично структурированными можно считать базы данных в виде обычного текста или гипертекстовой системы. Структурированные базы данных имеют большую практическую значимость и поэтому могут делиться дополнительно. Они могут разделяться по типу используемой модели: иерархические; сетевые; реляционные; смешанные; мультимодельные. С коммерческой точки зрения выделяются в использовании реляционные системы (базы данных). По типу модели можно классифицировать не только базы данных, но и системы управления базами данных и даже банки данных. Деление баз данных по типу хранимой информации производится на документальные, фактографические и лексикографические. Если подразделить документальные базы данных то можно еще получить библиографические, реферативные и полнотекстовые. Лексикографические базы данных, представляют из себя, различные словари. Базы данных можно классифицировать по характеру организации хранения данных и обращения к ним. В этом случае различают локальные (персональные), общие (интегрированные) и распределенные базы данных. Классификация может быть осуществлена по охвату предметной области. Эту классификация можно производить по различным признакам. По территориальному, это может быть мир, страна, город, регион и т.д. По временному признаку это может быть год, месяц, с начала века и т.п. Так же могут быть признаки ведомственные и проблемные. Классификация систем управления баз данных. Деление систем управления базами данных, так же как и самих баз данных, осуществляется по множественным признакам. Причем приведенное деление не является окончательным. Системы управления базами данных можно разделить по языкам общения. В этом случае они могут быть открытыми (используются универсальные языки программирования), замкнутыми (собственные языки общения с пользователями) и смешанными. Система управления базами данных имеет в своей архитектуре уровни, соответственно может разделяться по числу уровней. Могут быть одноуровневыми, двухуровневыми и трехуровневыми. Архитектурный уровень системы управления базой данных это функциональный компонент, механизмы которого служат для поддержки некоторого уровня абстракции данных. Функциональное предназначение является центровым в классификации и под ним понимается разделение систем управления базами данных по выполняемым функциям. Он делятся по этому признаку на информационные и операционные. Информационные системы управления базами данных позволяют организовать хранение информации и доступ к ней. При этом, для выполнения более сложной обработки необходимы дополнительные специальные программы. Операционные системы управления базами данных выполняют более сложную обработку. Они могут давать возможность автоматически получать различные агрегированные показатели, не хранящиеся непосредственно в базе данных, могут изменять алгоритм обработки и т.д. Рассмотрим классификацию систем управления базами данных по сфере возможного применения. Это очень важный признак, который учитывает спрос и соответственно выдает предложение. Это признак который дает развитие базам данных. По этому признаку различают универсальные и специализированные, обычно проблемно-ориентированные системы управления базами данных. Набор типов данных, которые поддерживает система управления базами данных, различен. Разные типы данных допустимы для разных систем управления базами данных и этот набор может быть различен. В современных системах управления базами данных наблюдается тенденция к расширению числа используемых типов данных. Имеются системы управления базами данных, которые дают возможность разработчику добавлять новые типы данных и новые операции над этими данными. Такие системы называются расширяемыми системами баз данных (РСБД). Расширяемые системы баз данных являются концепцией развития баз данных и представляют в этом взгляде объектно-ориентированные системы баз данных, обладающие достаточно мощными выразительными возможностями, чтобы непосредственно моделировать сложные объекты. В заключении классификации систем управления базами данных можно представить генераторы системы управления базы данных, как новое направление в развитии программного обеспечения банков данных. Генераторы системы управления базы данных позволяют разработчику строить собственную систему управления базами данных нового типа без полного переписывания программного кода из заготовок. Классификация банков данных по экономико-организационным признакам. В заключении рассмотрим группу признаков, которая непосредственно связана с банком данных в целом. По условиям предоставления услуг банки данных могут быть бесплатными и платными. Если рассмотреть платные банки данных, то их можно разделить на бесприбыльные и коммерческие. Бесприбыльные банки данных функционируют на принципе самоокупаемости и не ставят своей целью получение прибыли. Эти банки данных представляются какими-либо социально значимыми информационными системами, имеющими широкий круг пользователей, или научными, библиотечными информационными системами Целью создания коммерческих банков данных является получение прибыли от информационной деятельности. Банки данных по форме собственности могут делиться на государственные и негосударственные. По степени доступности различают общедоступные и с ограниченным кругом пользователей. В литературе встречаются и другие аспекты классификации банков данных, но приведенные выше являются наиболее значимыми. Требования к банкам данных. Функции системы управления базами данных Требования к банкам данных позволяют конкурировать между собой только достойным программным продуктам. Особенности банков данных, их организация позволяют сформулировать основные требования, предъявляемые к банкам данных: 1. Адекватность отображения предметной области (полнота, целостность и непротиворечивость данных, актуальность информации, т.е. ее соответствие состоянию объекта на данный момент). 2. Дружелюбность интерфейсов и малое время на освоение системы, особенно для конечных пользователей. 3. Возможность взаимодействия пользователей разных категорий и в разных режимах, обеспечение высокой эффективности доступа для разных приложений. 4. Обеспечение взаимной независимости программ и данных. 5. Обеспечение секретности и конфиденциальности для некоторой части данных; определение групп пользователей и их полномочий. 6. Обеспечение надежности функционирования банков данных; защита данных от случайного и преднамеренного разрушения; возможность быстрого и полного восстановления данных в случае их разрушения; технологичность обработки данных, приемлемые характеристики функционирования банков данных (стоимость обработки, время реакции системы на запросы, требуемые машинные ресурсы и др.). Приведем преимущества банка данных по сравнению с традиционным бумажным методом содержания записей и расставим их по порядку начиная с главного: · Низкие трудозатраты при работе. · Скорость работы. · Применимость (нужная информация доступна в любой момент времени). · Компактность. · В многопользовательской среде - централизованное управление данными. Рассмотрев требования, предъявляемые к банкам данных и их преимущества теперь рассмотрим основные функции системы управления базой данных как особенно значимого компонента банка данных. Перечислим основные функции системы управления базами данных. Первая функция – определение структуры создаваемой базы данных, ее инициализация и проведение начальной загрузки. Создание структуры базы данных происходит в режиме диалога, причем запрос самой системой управления базой данных у пользователя необходимых данных происходит последовательно. В большей части современных СУБД база данных представляет из себя множество таблиц. Данная функция позволяет описать и создать в памяти структуру таблицы, провести начальную загрузку данных в таблицы. Примеры таких действий для системы управления базой данных MS Access представлены на рисунке 2.2. Рисунок 2.2 – Формирование структуры базы данных в СУБД Access Вторая функция – предоставление пользователям возможности манипулирования данными. К этой функции относится выборка необходимых данных, выполнение вычислений, разработка интерфейса ввода/вывода и визуализация. Возможности системы управления базой данных по предоставлению пользователю возможности манипулирования данными представляются либо на основе использования специального языка программирования, входящего в состав системы управления базой данных, либо с помощью графического интерфейса. В системе управления базой данных MS Access реализация этой функции может быть реализована путем созданием запросов и форм ввода с помощью графического интерфейса (Рис. 2.3). Рисунок 2.3. – Формирование запроса на выборку в системе управления базами данных MS Access Для клиент-серверных архитектур систем управления базами данных существуют специальные средства, позволяющие выполнять запросы, а так же программные средства, позволяющие создавать графический интерфейс пользователя. Третья функция – обеспечение независимости прикладных программ и данных. В данной функции имеется ввиду и логическая и физическая независимость. Система управления базой данных поддерживает два независимых взгляда на базу данных. Поддержание взгляда пользователя и взгляда системы является важнейшим свойством системы управления базой данных. Взгляд пользователя воплощается в логическом представлении данных, и его отражении в прикладных программах. Взгляд системы это физическое представление данных в памяти запоминающего устройства. Логическая независимость данных дает возможность изменять логическое представление базы данных без необходимого изменения физической структуры хранения данных. Изменение логического представления базы данных, относящееся к прикладным программам не требует изменение структуры хранения данных. Физическая независимость данных дает возможность изменять способы организации базы данных в запоминающем устройстве системы и не требовать изменения логического представления данных в прикладных программах. В этом случае изменяя способы организации данных не потребуется изменение прикладных программ. Четвертая функция – защита логической целостности базы данных. Цель данной функции это повышение достоверности данных в базе данных. Когда может быть нарушена достоверности данных в базе данных? При вводе данных в базу данных или при несанкционированных действиях различных процедур обработки данных, получающих и вносящие в базы данных ошибочные или неправильно корректированные данные. Повысить достоверность данных в системе можно путем объявления ограничения целостности. Ограничение целостности занимаются выявлением ошибочных или неправильно корректированных данных. Соответствие вводимых данных их типу, описанному при создании структуры проверяется во всех современных системах управления базами данных. Система не позволит ввести недопустимую дату, не существующее время, не даст возможность ввести символ в поле числового типа, и т.п. В развитых системах ограничения целостности описывает программист, исходя из смыслового содержания задачи, и их проверка осуществляется при каждом последующем обновлении данных. Более подробно разные аспекты логической целостности базы данных будем рассматривать в последующих разделах курса. Пятая функция – защита физической целостности. Во время работы информационной системы, частью которой является база данных, возможны различные сбои. Они могут происходить из-за отключения электропитания и приводить к повреждению носителей информации в системе. При этом дальнейшая работа становится под угрозу из-за нарушения связей между данными. В современных системах управления базами данных имеется целый комплекс мероприятий и средств, для восстановления базы данных. Основное понятие, используемое для восстановления данных, является транзакция. Транзакция – это единица действий, производимых с базой данных. Транзакция может включать в свой состав несколько операторов изменения базы данных. Но при этом есть основное правило транзакции – либо выполняются все операторы транзакции, либо не выполняется ни один. Система управления базой данных ведет журнал транзакций. Рассмотрим необходимость использования транзакций в базах данных на примере проведения банковских операций. Предположим, что база данных используется в некотором банке и один из клиентов желает перевести деньги на счет другого клиента банка. В базе данных хранится информация о количестве денег у каждого из клиентов. Нам необходимо сделать два изменения в базе данных – уменьшить сумму денег на счете одного из клиентов и, соответственно, увеличить сумму денег на другом счете. Надо заметить, что реальный перевод денег в банке представляет собой гораздо более сложный процесс, затрагивающий много таблиц, а возможно, и много баз данных. Однако суть остается та же – нужно либо совершить все действия (увеличить счет одного клиента и уменьшить счет другого), либо не выполнить ни одно из этих действий – основное правило транзакции. Нельзя уменьшить сумму денег на одном счете, но не увеличить сумму денег на другом. Предположим также, что после выполнения первого из действий (уменьшения суммы денег на счете первого клиента) произошел сбой. Например, могла прерваться связь клиентского компьютера с базой данных или на клиентском компьютере мог произойти системный сбой, что привело к перезагрузке операционной системы. Что в этом случае стало с базой данных? Команда на уменьшение денег на счете первого клиента была выполнена, а вторая команда – на увеличение денег на другом счете – нет, что привело бы к противоречивому, неактуальному состоянию базы данных. Использование механизма транзакций позволяет находить решение в этом и подобных случаях. Перед выполнением первого действия выдается команда начала транзакции. В транзакцию включается операция снятия денег на одном счете и увеличения суммы на другом счете наших клиентов. Оператор завершения транзакций обычно называется COMMIT. Поскольку после выполнения первого действия транзакция не была завершена, изменения не будут внесены в базу данных. Изменения вносятся (фиксируются) только после завершения транзакции. До выдачи данного оператора сохранения данных в базе не произойдет. В нашем примере, поскольку оператор фиксации транзакции не был выдан, база данных не изменяется а «откатывается» к первоначальному состоянию – иначе говоря, суммы на счетах клиентов останутся те же, что и были до начала транзакции. Администратор базы данных может отслеживать состояние транзакций и в необходимых случаях вручную «откатывать» транзакции. Кроме того, в очевидных случаях система управления базой данных самостоятельно принимает решение об «откате» транзакции. Бывают транзакции, которые длятся несколько часов или даже несколько дней, а бывают и короткие, как в рассмотренном примере. Увеличение количества разнообразных действий в рамках одной транзакции неминуемо приведет к увеличения занимаемых системных ресурсов. Соответственно желательно делать транзакции по возможности более короткими. В упомянутый выше журнал транзакций заносятся все транзакции – и зафиксированные, и не зафиксированные т.е. завершившиеся «откатом». Ведение журнала транзакций совместно с созданием резервных копий базы данных позволяет достичь высокой надежности, эффективности и восстанавливаемости базы данных. Если предположить, что база данных была испорчена в результате аппаратного сбоя компьютера, на котором был установлен сервер системы управления базой данных. Что в этом случае используется для восстановления базы данных? Для восстановления базы данных, в этом случае используется последняя сделанная резервная копия базы данных и журнал транзакций. Нужно отметить, в этом случае уже учитываются только те транзакции, которые были зафиксированы после создания резервной копии. Почти все современные системы управления базой данных дают возможность администратору восстановить базу данных с помощью резервной копии и журнала транзакций. В таких современных системах в определенный момент базы данных копируется на резервные носители, автоматически создаются резервные копии. Все обращения к базам данных фиксируются программно в журнал изменений. Если база данных повреждена, запускается процедура восстановления, в процессе которой в резервную копию из журнала изменений вносятся все произведенные изменения. Шестая функция – управление полномочиями пользователей на доступ к базе данных. Доступ к данным является самым сложным моментом, который регулируется кроме всего административно и уголовно. Пользователи могут иметь разные полномочия по работе с данными. Некоторые данные должны быть недоступны. Некоторые действия должны быть недоступны определенным пользователям. В системе управления базой данных имеется определенный механизм, задача которого разграничить полномочия пользователей. Это происходит либо с помощью паролей, либо с помощью процедуры описания полномочий. Седьмая функция – синхронизация работы нескольких пользователей. Может возникнуть такая ситуация, когда одновременно несколько пользователей выполняют одновременно операцию с одними и теми же данными. Эта ситуация может привести к нарушению логической целостности данных, поэтому система должна предусматривать меры, не допускающие обновление данных другим пользователям. Обновления не должны производится пока работающий с этими данными пользователь полностью не закончит с ними работать. В этой функции так же есть ключевое понятие и называется оно блокировка. Блокировки необходимы для того, чтобы запретить различным пользователям возможность одновременно работать с базой данных (вносить изменения в базу данных), поскольку это может привести к ошибкам. Этот запрет в системе управления базой данных реализуется установкой блокировки на объекты, которые использует транзакция. Блокировки по типам различают: табличные, страничные, строчные и другие, которые отличаются друг от друга количеством заблокированных записей. Чаще других используется строчная блокировка – при обращении транзакции к одной строке блокируется только эта строка, остальные строки остаются доступными для изменения. Рассмотрим как производится процесс внесения изменений в базу данных. Этот процесс включает следующую последовательность действий. В начале выдается оператор начала транзакции, затем выдается оператор изменения данных, далее система управления базой данных анализирует оператор и пытается установить блокировки, необходимые для его выполнения, в случае успешной блокировки оператор выполняется, затем процесс повторяется для следующего оператора транзакции. После того, как все операторы успешно выполнены внутри транзакции выполняется оператор фиксации транзакции. Система управления базой данных фиксирует изменения, сделанные транзакцией, и снимает блокировки. В случае неуспешного выполнения какого-либо из операторов транзакция «откатывается», данные получают прежние значения, блокировки снимаются. Восьмая функция – управление ресурсами среды хранения. База данных располагается во внешнем запоминающем устройстве. При работе в базе данных заносятся новые данные путем занимания памяти и удаляются данные, при этом память освобождается. Система управления базы данных выделяет ресурсы памяти для новых данных, перераспределяет освободившуюся память, организует ведение очереди запросов к внешней памяти и т.п. Девятая функция – поддержка деятельности системного персонала. Эксплуатация базы данных приводит к ситуации, когда может возникать необходимость изменения параметров системы управления базой данных, выбора новых методов доступа, изменения структуры хранимых данных, а также выполнения ряда других общесистемных действий. Изменения осуществляются в определенных пределах. Система управления базой данных дает возможность выполнения этих и других действий для поддержки деятельности базы данных обслуживающему системному персоналу, называемому администратором базы данных. |