Основы информационных систем. Базы данных

User Rating: 2 / 5

Star ActiveStar ActiveStar InactiveStar InactiveStar Inactive
 

Основы информационных систем. Базы данных
Основы информационных систем. Базы данных 1
Основные понятия 1
Классификация БД 3
Модели данных 4
Виды связей в реляционных базах данных 11
Проектирование баз данных 13
Контрольные вопросы 16
Основные понятия
Одним из направлений современной информатики являются информационные системы.
Информационная система представляет собой аппаратно-программный комплекс, обеспечивающий выполнение следующих функций:
• ввод данных об объектах некоторой предметной области;
• надежное хранение и защита данных во внешней памяти вычислительной системы;
• дополнение, удаление, изменение данных;
• сортировка, выборка данных по запросам пользователей;
• выполнение специфических для данной предметной области преобразований информации;
• предоставление пользователям удобного интерфейса;
• обобщение данных и составление отчетов.
Успешно решаются эти задачи, если данные в информационной системе структурированы.
Структурирование — это введение соглашений о способах представления данных.
Неструктурированными называют данные, записанные, например, в текстовом файле. Пример структурированных данных – табличная форма.
Структурирование данных рассмотрим на примере студенческой группы. Каждый член группы во многом индивидуален, и характеризовать его можно с разных сторон. Но деканат, скорее всего, заинтересуют следующие данные (предметная область): фамилия студента, имя, отчество, курс, наименование группы, массив оценок по изучаемым дисциплинам. Таким образом, из всего многообразия данных выбираются только некоторые, т.е. создается информационная модель объекта. Данные упорядочиваются по порядку следования, по применяемым типам (форматам) данных, после чего они могут быть обработаны автоматом, каковым является компьютер.
Совокупность взаимосвязанных данных называется структурой данных. Совокупность структурированных данных, относящихся к одной предметной области, называется базой данных (БД). Совокупность программ, реализующих в БД функции ИС в удобной для пользователя форме, называется системой управления базой данных (СУБД).
Система управления базами данных (СУБД) — это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации.
Основная функция СУБД – это предоставление пользователю БД возможности работы с ней, не вникая в детали на уровне аппаратного обеспечения. Т.е. все запросы пользователя к БД, добавление и удаление данных, выборки, обновление данных – все это обеспечивает СУБД.
Иными словами, СУБД поддерживает пользовательские операции высокого уровня. Сюда включены и операции, которые можно выполнить с помощью языка SQL.
SQL - это специальные язык БД. Сейчас он поддерживается большинством СУБД, кроме того, он является официальным стандартом языка для работы с реляционными системами. Название SQL вначале было аббревиатурой от Structured Query Language – язык структурированных запросов, и его произносили как «сиквел». Сейчас название языка уже не считается аббревиатурой и поизносится «эс-кью-эль».
Программы, производящие специфическую обработку данных в БД, составляют пакет прикладных программ (ППП).
Итак, можно заключить, что ИС — это организационное объединение аппаратного обеспечения (АО), одной или нескольких баз данных (БД), системы управления базами данных (СУБД) и пакетов прикладных программ (ППП).
Классификация БД
По технологии обработки данных БД подразделяются на централизованные и распределенные.
Централизованная БД хранится целиком в памяти одной вычислительной системы. Если система входит в состав сети, то возможен доступ к этой БД других систем.
Распределенная БД состоит из нескольких, возможно пересекающихся или дублирующих друг друга БД, хранимых в памяти разных вычислительных систем, объединенных в сеть.
По способу доступа к данным БД распределяются на локальный и удаленный (сетевой) доступ.
Локальный доступ предполагает, что СУБД обрабатывает БД, которая хранится на том же компьютере.
Удаленный доступ — это обращение к БД, которая которая хранится на одном из компьютеров, входящих в компьютерную сеть. Удаленный доступ может быть выполнен по принципу файл-сервер или клиент-сервер.
Архитектура файл-сервер предполагает выделение одного из компьютеров сети (сервер) для хранения централизованной БД. Все остальные компьютеры сети (клиенты) исполняют роль рабочих станций, которые копируют требуемую часть централизованной БД в свою память, где и происходит обработка. Однако при большой интенсивности запросов к централизованной БД увеличивается нагрузка на каналы сети, что приводит к снижению производительности ИС в целом.
Архитектура клиент-сервер предполагает, что сервер, выделенный для хранения централизованной БД, дополнительно производит обработку клиентских запросов. Клиенты получают по сети уже обработанные данные. Учитывая широкое распространение БД в самых различных областях, в последнее время архитектура клиент-сервер применяется и на одиночных вычислительных системах. В этом случае клиент — программа, которой понадобились данные из БД, посылает запрос серверу — программе, управляющей ведением БД, на специальном универсальном языке запросов. Сервер пересылает программе данные, являющиеся результатом поиска в БД по ее запросу. Этот способ удобен тем, что программа — клиент не обязана содержать все функции поддержания и ведения БД, этим занимается сервер. В результате упрощается написание программ — клиентов. Кроме того, к серверу может обращаться любое количество клиентов.
Модели данных
Ядром любой базы данных является модель данных. Модель данных представляет собой множество структур данных, ограничений целостности и операций манипулирования дан¬ными. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними.
Модель данных — совокупность структур данных и операций их обработки.
СУБД основывается на использовании иерархической, сетевой или реляционной модели, на комбинации этих моделей или на некотором их подмножестве.
Рассмотрим три основных типа моделей данных: иерархическая, сетевая и реляционная.
Иерархическая модель данных
Иерархическая структура представляет совокупность элементов, связанных между собой по определенным правилам. Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево), вид которого представлен на рис. 1
К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь.
Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа.
Свойства иерархической модели:
• каждый узел более низкого уровня связан только с одним узлом вышестоящего;
• иерархический граф имеет только одну вершину, неподчиненную никакому другому узлу;
• к каждому объекту существует только один путь от вершины (это следствие из первых);
• не существует связей, «перескакивающих» через уровень.
ПРИМЕР: файловая структура, управление учреждением, ….
К каждой записи базы данных существует только один (иерархический) путь от корневой записи. Например, как видно из рис. 1, для записи С4 путь проходит через записи А и ВЗ.
Графическое изображение иерархической структуры БД


Рисунок 1
Уровень 1
Уровень 2
Уровень 3

Пример, представленный на следующем рис., иллюстрирует использование иерархической модели базы данных.
Для рассматриваемого примера иерархическая структура правомерна, так как каждый студент учится в определенной (только одной) группе, которая относится к определенному (только одному) институту.
Институт (специальность, название, директор)
Пример иерархической структуры БД
Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом.
На рис. 2 изображена сетевая структура базы данных в виде графа.
Рис. 2 Графическое изображение сетевой структуры
Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Графическое изображение описанной в примере сетевой структуры, состоящей только из двух типов записей, показано на рис. 15.11. Единственное отношение представляет собой сложную связь между записями в обоих направлениях.

Пример сетевой структуры БД
Реляционная модель данных
Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
• каждый элемент таблицы — один элемент данных;
• все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
• каждый столбец имеет уникальное имя;
• одинаковые строки в таблице отсутствуют;
• порядок следования строк и столбцов может быть произвольным.
Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе. Пример реляционной таблицы
№ личного дела Фамилия Имя Отчество Дата рождения Группа
16493 Сергеев Петр Михайлович 01.01.76 111
16593 Петрова Анна Владимировна 15.03.75 112
16693 Анохин Андрей Борисович 14.04.76 111
Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы — атрибутам отношений, доменам, полям.
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ. В данном примере ключевым полем таблицы является "№ личного дела".
Реляционная модель данных является наиболее универсальной, к ней могут быть сведены другие модели.
Важнейшим понятием реляционных моделей данных является сущность. Сущность - это объект любой природы, данные о котором хранятся в БД. Данные о сущности хранятся в двумерных таб¬лицах, которые называют реляционными.
Каждая реляционная таблица должна обладать следующими свойствами:
• один элемент таблицы — один элемент данных;
• все столбцы таблицы содержат однородные по типу данные (целочисленный, числовой, текстовый, и т.д.);
• каждый столбец имеет уникальное имя;
• число столбцов задается при создании таблицы;
• порядок записей в отношении может быть произвольным;
• записи не должны повторяться;
• количество записей в отношении не ограничено.
Объекты, их взаимосвязи и отношения представлены в виде таблиц. Формальное построение таблиц связано с фундаментальным понятием отношение (термин реляционная исходит от английского слова relation — отношение).
В реляционной таблице каждый столбец есть домен (его альтернативное название поле), а совокупность элементов каждой строки — кортеж (или запись).
Строка заголовков называется схемой отношения. Например, схема отношения СТУДЕНТ может быть следующей:
СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА), здесь СТУДЕНТ - отношение, а ФАМИЛИЯ, ИМЯ и т.д. — атрибуты.
В отношении каждый конкретный экземпляр сущности представляется строкой, которая называется кортежем (или записью).
Следующий рисунок представляет отношение СТУДЕНТ.

Отношение СТУДЕНТ
Первичным ключом отношения называется поле или группа полей, однозначно определяющие запись. В отношении СТУДЕНТ первичным ключом может быть поле ФАМИЛИЯ, если во всем списке нет однофамильцев — это будет простой ключ. Если есть однофамильцы, то совокупность полей — фамилия, имя, отчество — создадут составной первичный ключ. На практике обычно в качестве ключевого выбирают поле, в котором совпадения заведомо исключены.
Для рассматриваемого примера таким полем может служить номер зачетной книжки студента.
Свойства первичного ключа:
• уникальность — в таблице может быть назначен только один первичный ключ, у составного ключа поля могут повторяться, но не все;
• неизбыточность — не должно быть полей, которые, будучи удаленными из первичного ключа, не нарушат его уникальность;
• в состав первичного ключа не должны входить поля типа, комментарий и графическое.
Чтобы избежать повторяющихся записей, приходят к связыванию таблиц. Например, если в отношении СТУДЕНТ надо описать вуз, в котором он обучается, то, на первый взгляд, можно было бы включить в отношение следующие поля СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА, НАЗВАНИЕ вуза, АДРЕС). Но при заполнении такой таблицы для каждого студента придется указывать довольно длинное наименование вуза и его адрес, что неудобно. Более того, любая незначительная ошибка во вводе этих полей приведет к нарушению непротиворечивости базы данных. Например, ошибка в адресе вуза приведет к тому, что в БД появятся два вуза с одинаковым наименованием и разными адресами. Поступают в таком случае так: в отношение СТУДЕНТ вводят поле «код вуза» (целое число) и добавляют еще одно отношение ВУЗ (код вуза, название, адрес). СТУДЕНТ и ВУЗ при этом будут связаны по полю «код вуза».

При работе с такими таблицами повторяться могут только данные в поле «КОД вуза», а все необходимые сведения о вузе можно взять из отношения ВУЗ. Заметим при этом, что ввод в поле «КОД вуза» целого числа, вместо длинного названия, принесет гораздо меньше ошибок. В отношении ВУЗ поле «КОД вуза» будет первичным ключом, а в отношении СТУДЕНТ поле «КОД вуза» будет внешним ключом.
Для связи реляционных таблиц необходимо ввести в обе таблицы одинаковые по типу поля, по которым определится связь между записями обеих таблиц. Связи бывают нескольких типов «один к одному», «один ко многим», «многие ко многим». В вышеприведенном примере была установлена связь «один ко многим», т.е. одной записи в таблице ВУЗ соответствуют многие записи в таблице СТУДЕНТ.
Виды связей в реляционных базах данных
Все информационные объекты предметной области связаны между собой. Различаются связи нескольких типов, для которых введены следующие обозначения
• один к одному (1:1);
• один ко многим (1:М);
• многие ко многим (М:М).'
Рассмотрим эти видысвязей на примере.
Пример. Дана совокупность информационных объектов, отражающих учебный процесс в вузе:
СТУДЕНТ (Номер, Фамилия, Имя, Отчество, Пол, Дата рождения, Группа)
СЕССИЯ (Номер, Оценка1, Оценка2, ОценкаЗ, Оценка4, Результат)
СТИПЕНДИЯ (Результат, Процент)
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия, Имя, Отчество)
Связь один к одному (1:1) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует не более одного экземпляра информационного объекта В и наоборот.
Графическое изображение отношения 1:1


Примером связи 1:1 может служить связь между информационными объектами СТУДЕНТ и СЕССИЯ:
СТУДЕНТ  СЕССИЯ
Каждый студент имеет определенный набор экзаменационных оценок в сессию.
При связи один ко многим (1:М) одному экземпляру информационного объекта А соответствует О, 1 или более экземпляров объекта В, но каждый экземпляр объекта В свя¬зан не более чем с 1 экземпляром объекта А.


Примером связи 1:М служит связь между информационными объектами СТИПЕНДИЯ и СЕССИЯ:
СТИПЕНДИЯ СЕССИЯ
Установленный размер стипендии по результатам сдачи сессии может повторяться многократно для различных студентов.
Связь многие ко многим (М:М) предполагает, что в каждый момент времени одному экземпляру информационного объекта А соответствует О, 1 или более экземпляров объекта В и наоборот. На рис. графически представлено указанное соответствие.


Примером данного отношения служит связь между информационными объектами СТУДЕНТ и ПРЕПОДАВАТЕЛЬ:
СТУДЕНТ ПРЕПОДАВАТЕЛЬ
Один студент обучается у многих преподавателей, один преподаватель обучает многих студентов.
Взаимосвязь моделей данных образует так называемую информационно-логическую (инфологическую) модель.
Информационно-логическая (инфологическая) модель предметной области отражает предметную область в виде совокупности информационных объектов и их структурных связей.
Пример графического представления инфологической модели.

Проектирование баз данных
Проектирование базы данных является одним из этапов жизненного цикла ИС. Ввиду сложности этот этап выполняется, как правило, коллективом разработчиков и включает следующие работы:
• анализ предметной области;
• проектирование и непосредственно кодирование (создание запросов и приложений);
• тестирование и сопровождение.
Анализ предметной области
Проектирование баз данных начинается с анализа предметной области, в которой будет работать ИС. Как правило, этот этап выполняется разработчиками ИС совместно с заказчиком. Обычным языком описываются информационные объекты, их свойства, их взаимосвязи, описываются пожелания будущих пользователей. Результатом такой работы является техническое задание на разработку ИС.
В техническом задании более строго указывается список исходных данных, список запросов к ИС, список выходных данных, оговаривается интерфейс, определяющий переход от представления данных в БД к представлению, принятому среди пользователей, и обратно. В общем случае пользователи представляют данные в виде документов различных видов, от произвольных текстов до справок и таблиц фиксированного формата. Затем собственно и начинается проектирование базы данных.
Проектирование баз данных осуществляется на двух уровнях — физическом и логическом. На физическом уровне решаются вопросы размещения данных на внешних носителях. Во многом эта работа выполняется СУБД автоматически без участия разработчика.
На логическом уровне составляется общий список полей, который может насчитывать от единиц до тысяч. Описывают каждое поле по типу данных. Общий список полей разбивается на основные таблицы. Дальнейшее рассмотрение информационной структуры приводит к разбиению — нормализации — основных таблиц на более мелкие с целью избежания многократно повторяющихся данных в записях, что уменьшает объем памяти, занимаемый базой данных на диске, и обеспечивает непротиворечивость данных в БД.
Процесс нормализации имеет итерационный (пошаговый) характер, осуществляется методом нормальных форм. Суть метода состоит в последовательном переводе таблицы из одной нормальной формы в другую, причем каждая последующая устраняет определенный вид функциональной зависимости между полями таблицы. Всего в теории описаны шесть нормальных форм, на практике чаще всего применяются первые три.
Первая нормальная форма. Отношение называется приведенным к первой нормальной форме, если все его атрибуты неделимы. Например, отношение, содержащее поле ФИО, не приведено к первой нормальной форме, если в запросах БД требуется выделить отдельно фамилию или имя. Разработчики БД изначально строят так исходное отношение, чтобы оно было в первой нормальной форме.
Вторая нормальная форма. Для приведения отношений ко второй нормальной форме введем понятие функциональной зависимости.
Функциональная зависимость полей — это зависимость, при которой в строке определенному значению ключевого поля соответствует только одно значение не ключевого поля. Функционально не ключевое поле зависит от составного ключа, но не зависит от любого поля, входящего в составной ключ.
Например, в отношении СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА) первичным ключом является совокупность полей ФАМИЛИЯ + ИМЯ + ОТЧЕСТВО. Поля ФАКУЛЬТЕТ, КУРС, ГРУППА функционально полно зависят от составного ключа.
Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждое не ключевое поле функционально полно зависит от составного ключа. Например, в отношении УСПЕВАЕМОСТЬ (НОМЕР ЗАЧЕТКИ, ФАМИЛИЯ, ДИСЦИПЛИНА, ОЦЕНКА) составным ключом является совокупность НОМЕР ЗАЧЕТКИ + ДИСЦИПЛИНА. Это отношение находится в первой нормальной форме, но оно не находится во второй нормальной форме, так как поле ФАМИЛИЯ не имеет полной функциональной зависимости от составного ключа. Для перевода этого отношения во вторую нормальную форму необходимо исключить из него поле ФАМИЛИЯ, так как оно функционально зависит от НОМЕРА ЗАЧЕТКИ. Т.е. исходное отношение необходимо разбить на два связанных отношения УСПЕВАЕМОСТЬ (НОМЕР ЗАЧЕТКИ, ДИСЦИПЛИНА, ОЦЕНКА) и СПИСОК (НОМЕР ЗАЧЕТКИ, ФАМИЛИЯ). Связь здесь осуществляется по полю НОМЕР ЗАЧЕТКИ.
Третья нормальная форма. Третья нормальная форма позволяет устранить транзитивную зависимость. Транзитивная зависимость су¬ществует в отношении, если существуют два описательных поля, в которых первое зависит от ключа, а второе зависит от первого. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме, и каждое не ключевое поле не транзитивно зависит от ключа.
Например, в отношении СТУДЕНТ (ФАМИЛИЯ, ФАКУЛЬТЕТ, НАЗВАНИЕ вуза, АДРЕС) поле АДРЕС транзитивно (через поле НАЗВАНИЕ вуза) зависит от ключа ФАМИЛИЯ. При заполнении экземплярами такого отношения поле АДРЕС будет многократно по¬вторяться. Для устранения транзитивной зависимости в классе ис¬пользуется расщепление отношения на несколько. Например, отношение СТУДЕНТ расщепляется на два:
СТУДЕНТ (ФАМИЛИЯ, ФАКУЛЬТЕТ, НАЗВАНИЕ вуза),
ВУЗ (НАЗВАНИЕ вуза, АДРЕС) связь по полю НАЗВАНИЕ вуза.
Процесс нормализации заканчивается созданием схемы данных, в которой указываются все нормализованные таблицы с их полями и взаимосвязями между ними. Указываются типы взаимосвязей.
Проектирование
Дальнейшая работа над проектом связана с конкретной СУБД, поэтому, предварительно учитывая требования заказчика и намеченную архитектуру ИС, выбирают СУБД.
Контрольные вопросы
1. Какие функции выполняет информационная система?
2. Что такое структурирование данных?
3. Что такое база данных, СУБД?
4. Что такое SQL?
5. Какие существуют виды баз данных?
6. Что такое модель данных. Какие существуют виды моделей данных?
7. Что такое сущность?
8. Какими свойствами должны обладать реляционные базы данных?
9. Что такое поле, запись?
10. Что такое первичный ключ? Внешний ключ? Составной ключ?
11. Какие существуют виды связей? Приведите примеры.
12. Какие сведения образуют инфологическую модель предметной области?
13. В чем различие физического и логического проектирования?
14. В чем суть процесса нормализации?
15. Перечислите основные объекты СУБД MS Access.