Построение структур данных в каждой конкретной модели выполняется только по определенным правилам. Это связано с ограничениями, вытекающими из особенностей используемых в модели типов структур данных и операций, которые можно выполнять над этими структурами. Поэтому в качестве основных компонентов модели данных рассматривают структуры, операции и ограничения. Основные компоненты МД тесно взаимосвязаны между собой и в различных конкретных моделях реализуются разными способами.
Структуры данных
Структуризация данных базируется на концепциях «агрегации» и «обобщения». Например, в файловых системах, реализующих модель «плоский файл», понятийный базис состоит из четырех основных типов логических структур данных:
• поле – наименьшая поименная единица данных;
• запись – поименованная совокупность полей;
• файл – поименованная совокупность экземпляров записей одного типа;
• набор файлов (или библиотека) – поименованная совокупность
файлов, обрабатываемых в системе.
Урок 3. Иерархические базы данных
В этой модели агрегация используется для композиции полей в запись, а обобщение – для представления множества экземпляров записей одного типа одной общей структурой более высокого уровня – файлом. В ряде систем допускается объединение в файл экземпляров записей нескольких заданных типов. Обобщение также используют для выборки из файла ПП некоторого подмножества экземпляров записей, удовлетворяющих заданному критерию выборки.
Существует много терминов, используемых для обозначения определенных типов структур данных. Широко распространена терминология, предложенная КОДАСИЛ (CODASYL – the Conference on Data Systems Languages) – Ассоциацией по языкам систем обработки данных (рис. 2.1). Схема рисунка определяет порядок композиции структур данных этой модели.

Элемент данных – наименьшая поименованная единица данных (аналог «поля» в файловых системах), к которой СУБД может адресоваться непосредственно и с помощью которой выполняется построение всех остальных структур. Имя элемента данных используют для его идентификации в схеме структуры данных высокого уровня. Значение элемента данных может быть числового (целый, вещественный) и нечислового (символьный, логический) типа. В некоторых приложениях используется «неопределенное» значение элемента данных, свидетельствующее о том, что значение соответствующего свойства объекта еще не введено в БД, а ряд других свойств, описывающих объект, уже представлены значениями.
Агрегат данных – поименованная совокупность элементов данных внутри записи, которую можно рассматривать как единое целое. Агрегат данных бывает простым или составным. Различают агрегаты типа «вектор» и типа «повторяющаяся группа». Агрегат, повторяющийся компонент которого является просто элементом данных, называется вектором. Агрегат, повторяющийся компонент которого представлен совокупностью данных, называется повторяющейся группой.
Базы данных SQL уроки для начинающих. SELECT, JOINS, GROUP BY, INSERT, UPDATE, WHERE
Запись – поименованная совокупность элементов данных или элементов данных и агрегатов – это агрегат, не входящий в состав никакого другого агрегата. Запись может иметь сложную иерархическую структуру, поскольку допускается многократное применение агрегации.
Набор – поименованная совокупность записей, образующих двухуровневую иерархическую структуру. Каждый тип набора представляет собой отношение (связь) между двумя или несколькими типами записей. Для каждого типа набора один тип записи может быть объявлен владельцем набора, тогда остальные типы записи объявляются членами набора.
Каждый экземпляр набора должен содержать только один экземпляр записи типа записи-владельца и столько экземпляров записей типа записи-члена, сколько их связано с записью-владельцем. Основное назначение набора – представление связей между записями.
Если запись используется для представления сущности, то набор для представления связей между рассматриваемыми сущностями представляют записями, входящими в набор. В схеме набора задают типы составляющих его записей, определяют тип записи-владельца и типы записей-членов, присваивают имя набору. Тип набора является основным композиционным элементом, с помощью которого строится структура всей базы данных в модели КОДАСИЛ. Заметим, что в данном случае термин не является аналогом набора файлов.
База данных – поименованная совокупность экземпляров записей различного типа, содержащая ссылки между записями, представленные экземплярами наборов. Описание структуры БД задается ее схемой.
Выше рассмотрены структуры модели данных КОДАСИЛ. Однако не во всех СУБД используют рассмотренную терминологию. Поэтому при рассмотрении МД часто бывает удобным использовать следующую терминологию: элемент данных; группа; групповое отношение; БД.
Элемент данных соответствует определению, приведенному в терминологии КОДАСИЛ.
Понятие «группа» одновременно соответствует и понятию «агрегат», и понятию «запись». Различают простую, составную и повторяющуюся группы.
Групповое отношение используют для задания связей между группами (эта структура подобна набору) в БД. Групповое отношение определяется как поименованное бинарное отношение, заданное на двух множествах экземпляров рассматриваемых групп. Различают групповые отношения видов 1:1, 1: М, М:1, М: М. В групповом отношении один тип группы назначается владельцем отношения, а второй – членом отношения. Экземпляр группового отношения представлен одним экземпляром группы типа владельца и совокупностью связанных с ним экземпляров группы типа члена отношения.
База данных – поименованная совокупность экземпляров групп и групповых отношений. В схеме БД задаются типы групп и групповых отношений.
Рассмотренные типы структур позволяют использовать различные формы представления схемы данных, включая обычное представление в виде исходного текста на ЯОД.
При графовой форме представления схемы агрегаты атрибутов, обычно используемые для представления сущностей, изображают вершинами графа, а связи между ними – соответствующими дугами. Графовая форма представления схемы БД облегчает пользователям понимание и интерпретацию данных. Пример графической диаграммы схемы БД в терминах групп и групповых отношений приведен на рис. 2.2.
Другой формой представления схемы данных, удобной для пользователя с точки зрения понимания и интерпретации, является табличная форма. При машинной обработке в качестве аналогов таблиц и их элементов могут выступать файлы, записи, поля.
Операции над данными
Динамические свойства МД выражаются множеством операций, которые определяют допустимые действия над некоторой реализацией БД для ее перевода из одного состояния в другое. Это множество операций соотносят с ЯМД.

Реализация любой конкретной операции над данными включает селекцию данных, т.е. выделение из всей совокупности именно тех данных, над которыми должна быть выполнена требуемая операция, и действие над выделенными данными, которое определяет характер операции. Условие селекции специфицируется в виде некоторого критерия отбора данных, над которыми должно быть произведено требуемое действие.
Использование для селекции логической позиции данного базируется на упорядоченности данных в памяти системы. В соответствии с этим можно выполнить селекцию данного, находящегося на первой, последней, следующей, предыдущей или n -й позиции. Этот тип селекции еще называют селекцией посредством «текущей».
В качестве текущих выступают специальные дополнительные объекты – индикаторы текущего состояния. При выполнении ПП СУБД автоматически поддерживает ее индикаторы текущего состояния. Количество и состав индикаторов определяется подсхемой, используемой ПП. Индикатор указывает на некоторый экземпляр записи в БД. В некоторых моделях данных «текущие» задаются явно, в других – неявно.
При селекции по значениям данных критерий селекции определяет простые или булевы условия отбора. Простое условие имеет вид

Из простых условий можно построить булевы условия с использованием операций И (AND), ИЛИ (OR), HE (NOT), например:
Образование = высшее AND Стаж =12.
При необходимости изменений в условии селекции порядка предшествования можно использовать круглые скобки.
По характеру проводимого действия различают следующие виды операций:
• идентификация данного и нахождение его позиции в БД;
• выборка (чтение) данного из БД;
• включение (запись) данного в БД;
• удаление данного из БД;
• модификация (изменение) данного в БД.
По характеру способа получения результата различают навигационные и спецификационные операции. Если результат операции получается путем прохождения по связям, реализованным в структуре БД, то операции называются навигационными. Навигация в БД основывается на манипулировании значениями «текущих» (или курсоров, текущих указателей и т.п.), хотя это манипулирование в некоторых языках может быть неявным. Текущий указатель – это специальный объект, значением которого является адрес считанного экземпляра записи. Результат навигационной операции – это единичный объект БД, например экземпляр записи.
Если в операции определяются только требования к результату, но не задается способ его получения, то такие операции называют спецификациоными. Спецификация требований может выполняться, например, по формулам исчисления предикатов, что имеет место в реляционной МД. Поэтому результату спецификационной операции, в общем случае, соответствует некоторое множество объектов БД. Следует отметить, что на внутреннем уровне спецификационные операции также выполняются с помощью «текущих», хотя они и не видны для пользователя.
Рассмотренные виды операций подчиняются простой схеме: вначале выполняется селекция требуемых данных, а затем выборка, включение, удаление или модификация данных. Однако в ряде случаев требуется применять более обобщенные операции, реализующие более сложные действия над данными, состоящие из нескольких операций, но выполняемые как одно целое.
Такие обобщенные операции получили название процедур БД (их еще называют хранимыми процедурами, триггерами БД и т.п.). Процедура БД – это последовательность операций, позволяющих реализовать определенный алгоритм обработки данных. Для многих процедур алгоритмы их выполнения зависят от значений данных и управляются этими значениями. Главная особенность процедуры БД (как и отдельной операции) – неделимость ее действия, т.е. процедура рассматривается как единая макрооперация. Никакая другая процедура или операция не могут обратиться к данным, которые обрабатываются стартовавшей процедурой, до тех пор, пока она не закончит свою работу.
Процедуры БД – мощные и гибкие средства, позволяющие существенно расширять динамические свойства МД.
Ограничения целостности
Логические ограничения, которые накладываются на данные, получили название ограничений целостности. Ограничения используют в моделях данных для поддержания адекватности отображения ПО хранимыми в базе данными и для обеспечения непротиворечивости данных при переводе базы данных из одного состояния в другое (выполнение любой из рассмотренных выше операций переводит БД в новое состояние) при функционировании СУБД:
Различают внутренние и явные ограничения целостности. Внутренние ограничения целостности представлены в МД правилами композиции допустимых структур данных и в конкретной схеме БД находят свое отражение в структурных спецификациях и в правилах выполнения операций. Явные ограничения целостности специфицируются в схеме БД явным образом с помощью специальных конструкций языка описания данных.
Например, для записи типа Служащий атрибут Табельный номер определен как первичный ключ. Это означает, что множество экземпляров записей типа Служащий, хранящихся в БД, не может содержать двух (или более) экземпляров с одинаковым значением атрибута Табельный номер.
Спецификация явных ограничений целостности обладает определенной автономией к структурной спецификации данных, поэтому в ЯОД включают специальные средства для задания явных ограничений либо в системе разрабатывается специальный язык спецификации ограничения целостности.
Система управления БД проверяет непротиворечивость системы ограничений и при своем функционировании обеспечивает целостность данных в БД по отношению к заданным ограничениям.
Источник: poisk-ru.ru
2. Понятие бд и субд
База данных (БД) может быть определена как совокупность предназначенных для машинной обработки структурированных данных, которые используются многими пользователями в рамках одной или нескольких организаций.
Особенностью БД является тот факт, что она рассчитана на использование при создании различных независимых программ и приложений. В этом основное отличие БД от обычных файлов данных – они используется только в конкретно разработанном для них приложении.
В соответствии с приведенным определением БД обладает следующими качествами:
— Интегрированностью данных, т.е. направлена на решение различных задач
— Структурированностью данных, т.е. отражает некоторую часть реального мира
— Взаимосвязью данных, т.е. в БД хранятся данные, связанные между собой описанием
той или иной предметной области
— Гибкостью, т.е. возможностью извлечения из данных различной информации
— Доступностью и целостностью данных
— Независимостью данных от прикладных программ
Система управления базой данных (СУБД) – специальная программа и/или пакет программ, которые управляют работой БД, обеспечивают доступ к данным и их централизованное управление. Именно СУБД обеспечивает независимость данных, а прикладные программы поддерживают логику каждой отдельной задачи.
СУБД должна обладать следующими качествами:
— Обеспечить пользователя (или прикладные программы) языковыми средствами поиска и манипулирования данными. В настоящее время в качестве такого языка широко используется
язык SQL – структурированный язык запросов
— Обеспечить поддержку логических моделей данных. Модель данных определяет логическое
представление физических данных
— Обеспечить операции создания и манипулирования логическими данными (выборка, вставка, обновление, удаление и т.д.) и одновременное управление физическими данными. Это организуется либо с помощью командного интерфейса, либо с помощью конструкций языка манипулирования данными (что зачастую совпадает)
— Обеспечить защиту и согласованность данных, поскольку при коллективном режиме работы
многих пользователей возможно использование общих физических данных
Данные, хранящиеся в БД, представляют собой некоторый факт или совокупность фактов, с помощью которых описывается конкретная предметная область и на которых базируется последующий вывод или принимаемые решения.
Элемент данных (ЭД) определяет некоторое свойство или атрибут объекта предметной области.
Экземпляром элемента данных (ЭЭД) называется некоторое конкретное значение, принимаемое элементом данных.
Поименованная совокупность элементов данных, рассматриваемая в программе как единое целое носит название агрегата данных.
Упорядоченная совокупность значений взаимосвязанных элементов данных называется логической записью.
Элементам данных присущи два свойства:
— Избыточность (один элемент данных может входить в различные записи)
— Полнота (любой элемент данных может характеризовать полностью или частично предмет, явление или событие)
В настоящее время существуют три уровня абстракции для определения структуры базы данных:
- Концептуальный (представляет собой объекты и их взаимосвязи без указания способов их физического хранения)
- Логический (версия концептуальной модели, которая может быть обеспечена средствами СУБД. Логическая модель отображается в физическую память, такую как диск, дискета, и получается физическая модель)
- Физический (Внутренней называется физическая модель, специфицирующая размещение данных, методы доступа и технику индексирования)
Источник: studfile.net
Классификация информационных систем по охвату задач (масштабности)
· Персональная информационная система предназначена для решения некоторого круга задач одного человека.
· Групповая информационная система ориентирована на коллективное использование информации членами рабочей группы или подразделения.
· Корпоративная информационная система в идеале охватывает все информационные процессы целого предприятия, достигая полной согласованности, безызбыточности и прозрачности информационных процессов. Такие системы иногда называют системами комплексной автоматизации предприятия.
Итак, мы рассмотрели небольшую классификацию ИС и следует напомнить, когда мы говорили об информационных технологиях, об информационных системах мы говорили, что в основу любой ИС положены базы данных и системы управления базами данных. Давайте рассмотрим основные определения, связанные с этими терминами.
База данных (БД) может быть определена как совокупность предназначенных для машинной обработки структурированных данных, которые используются многими пользователями в рамках одной или нескольких организаций.
Особенностью БД является тот факт, что она рассчитана на использование при создании различных независимых программ и приложений. В этом основное отличие БД от обычных файлов данных — они используется только в конкретно разработанном для них приложении.
Итак, приведем пример основного отличия БД. Например, БД студентов некоторого факультета может использоваться различными приложения если она открыта, то, безусловно, речь идёт об открытой БД. Любой пользователь, любой программист может написать приложение.
Например, какая-нибудь кафедра написала приложение отчёт об успеваемости студентов это есть одно приложение, например отчёт о посещении лекции и это второе приложение. Все эти различные приложения могут находиться на различных компьютерах и обращаться к единой базе данных. Когда мы говорим о файле данных то речь идёт о конкретном приложении работающем с этим фалом данных потому что файл данным как правило имеет специфическую внутреннюю структуру и разработчики порой скрывают эту структуру в отличии от того что БД структурой открыта и любой пользователь может при имеющихся у них соответствующих правах доступа могут изменить дополнить и обновить эту структуру. Это и есть основное отличие между БД и файлами данных.
В соответствии с приведенным определением БД обладает следующими качествами [37]:
· Интегрированностью данных, т.е. направлена на решение различных задач;
· Структурированностью данных, т.е. отражает некоторую часть реального мира;
· Взаимосвязью данных, т.е. в БД хранятся данные, связанные между собой описанием той или иной предметной области;
· Гибкостью, т.е. возможностью извлечения из данных различной информации;
· Доступностью и целостностью данных;
· Независимостью данных от прикладных программ.
Рассмотрим систему управления базой данных (СУБД).
Система управления базой данных (СУБД) – специальная программа и/или пакет программ, которые управляют работой БД, обеспечивают доступ к данным и их централизованное управление. Именно СУБД обеспечивает независимость данных, а прикладные программы поддерживают логику каждой отдельной задачи. Не всякая программа работы с БД является СУБД, для этого она должна обладать следующими качествами:
· Обеспечить пользователя (или прикладные программы) языковыми средствами поиска и манипулирования данными. В настоящее время в качестве такого языка широко используется язык SQL – структурированный язык запросов (см. раздел «Язык запросов SQL»);
· Обеспечить поддержку логических моделей данных. Модель данных определяет логическое представление физических данных (см. раздел «Логические модели данных»).
· Обеспечить операции создания и манипулирования логическими данными (выборка, вставка, обновление, удаление и т.д.) и одновременное управление физическими данными. Это организуется либо с помощью командного интерфейса, либо с помощью конструкций языка манипулирования данными (что зачастую совпадает);
· Обеспечить защиту и согласованность данных, поскольку при коллективном режиме работы многих пользователей возможно использование общих физических данных.
Существуют множество систем управления базами данных, и они используются практически повсеместно, где есть ИС и к таким БД относятся, безусловно, Access, MS SQL сервер, ORACLE сервер и ряд других это MY SQL сервер известное как бесплатно программное обеспечение, которое распространяется бесплатно и множество других СУБД, которые в настоящее используются широко и повсеместно.
Данные, хранящиеся в БД, представляют собой некоторый факт или совокупность фактов, с помощью которых описывается конкретная предметная область и на которых базируется последующий вывод или принимаемые решения. Данные характеризуют некоторую предметную область и являются информационной моделью некоторой части реального мира. С точки зрения разработчиков ИС, данные являются фиксированной информацией в определенной форме, пригодной для хранения и последующей обработки. Наименьшей семантически значимой поименованной единицей данных является элемент данных.
Элемент данных (ЭД) определяет некоторое свойство или атрибут объекта предметной области. Например, для объекта «студент» некоторой предметной области можно ввести следующие элементы данных: «дата», «ФИО», «адрес». Экземпляром элемента данных (ЭЭД) называется некоторое конкретное значение, принимаемое элементом данных. Например, для элемента данных «ФИО» экземпляром элемента данных может быть строковое значение «Петров Иван Иванович».
Поименованная совокупность элементов данных, рассматриваемая в программе как единое целое носит название агрегата данных (например, «дата, ФИО, адрес»).
Упорядоченная совокупность значений взаимосвязанных элементов данных называется логической записью.
Элементам данных присущи два свойства: избыточность и полнота.
Избыточность заключается в том, что один элемент данных может входить в различные записи.
Полнота заключается в том, что любой элемент данных может характеризовать полностью или частично предмет, явление или событие.
В настоящее время существуют три уровня абстракции для определения структуры базы данных:
Концептуальная модель представляет собой объекты и их взаимосвязи без указания способов их физического хранения. То есть концептуальная структура (или схема) состоит: из основных элементов данных предметной области (личности, факты), называемых объектами; элементарных данных, описывающих свойства и признаки объектов и называемых атрибутами; связей между экземплярами данных, которые могут быть либо ассоциациями, либо отображениями. Таким образом, концептуальная модель является, по существу, моделью предметной области.
Концептуальная модель трансформируется затем в модель данных, совместимую с выбранной СУБД. Возможно, что отраженные в концептуальной модели взаимосвязи между объектами окажутся впоследствии нереализуемыми с помощью средств выбранной СУБД. Это потребует изменения концептуальной модели.
Логической называется версия концептуальной модели, которая может быть обеспечена средствами СУБД.
Пользователям выделяются подмножества этой логической модели, называемые внешними моделями.
Если внешние модели отражают представления, которые пользователи получают на основе логической модели, то концептуальные требования отражают представления, которые пользователи первоначально желали иметь и которые легли в основу разработки концептуальной модели.
Логическая модель отображается в физическую память, такую как диск, дискета, и получается физическая модель.
Внутренней называется физическая модель, специфицирующая размещение данных, методы доступа и технику индексирования.
Первый уровень независимости данных может быть сформулирован так: если концептуальная модель спроектирована таким образом, чтобы отражать будущие расширенные требования, то вносимые в нее изменения не должны оказывать влияния на существующие внешние модели.
Второй уровень независимости данных: внешние модели не зависят от изменений физической памяти и методов доступа к базе данных.
Независимость данных является одним из важнейших требований к базе данных.
Связи в БД
Связи в БД определяют некоторую зависимость между парами элементов данных. Такую зависимость можно представлять при помощи ассоциаций и отображений. Ассоциации определяют связи между ЭД в одном направлении, отображения в прямом и обратном. Рассмотрим отображения, как наиболее общий тип связей в БД.
Отображение является средством для определения характера взаимосвязей между элементами данных, так как отображение описывает двусторонние связи между ЭД.
Выделяют несколько типов отображений: 1:1, 1: М, М:1, М: N.
При помощи отображений 1:1 («один к одному») представляют такой тип связи, когда один ЭЭД, от которого направлена связь, идентифицирует один и только один ЭЭД, к которому направлена связь, и наоборот (рис.4).
При помощи отображений 1: М («один ко многим») представляют такой тип связи, когда ЭЭД, от которого направлена связь, идентифицирует некоторое число (0,1 или несколько), к которому направлена связь, причем в данном направлении идентификация не обязательно является уникальной. Однако в обратном направлении любой ЭЭД идентифицирует один и только один ЭЭД, от которого направлена связь (рис.5).
Отображение М:1 является обратным к отношению 1: М. Достаточно поменять ЭД местами (рис.5).
При помощи отображений М: N («многие ко многим») представляют такой тип связи, когда один ЭЭД, от которого направлена связь, идентифицирует некоторое число ЭЭД, к которым направлена связь, и наоборот (идентификация не уникальна в обоих направлениях) (рис.6).
Логические модели данных
Логическая модель данных это модель, которая соответствует возможности некоторой СУБД для реализации, разработанной ранее концептуальной модели. Различают 3 вида логических моделей: иерархическая, сетевая, реляционная модель.
Иерархическая модель
Данные в этой модели представлены как коллекции записей (сегментов), связанных между собой в иерархическую структуру – дерево. Эта структура может содержать один или несколько сегментов, каждый из которых имеет свой формат и свою длину.
Пример иерархической модели данных достаточно широко известен, например это структура каталогов в операционной системе (Windows, Unix)
Сетевая модель
Сетевая модель данных используется достаточно давно и определена в стандарте CODASYL. Используется термин CODASYL-совместимые системы, т.е. системы, поддерживающие сетевую архитектуру. Основной конструкцией сетевой модели является набор. Он представляет собой поименованную совокупность записей, образующих двухуровневую иерархическую структуру, причем, один тип записи определяется как «владелец», а другие типы записей являются «членами» набора.
Если делать аналогию то иерархическая модель данных соответствует дереву в теории графов, т.е. это граф, которые не имеет циклов, и в котором из одной вершины в другую есть только один и только один пункт. Сетевая модель соответствует общему понятию графу, т.е. граф, где возможны циклы, где возможны обратные связи и это, безусловно, приносит дополнительные возможности. Сетевые модели не так хорошо распространены, области их применения достаточно специфичны, в них есть некоторые ограничения например, вставить новую запись, сложность удалить, нужны дополнительные действия, чтобы сохранить тоже самое дерево.
Реляционная модель
Основа реляционной модели – это реляционные отношения или, попросту, таблицы, т.е. БД в реляционной модели состоит из набора таблиц. Таблицы (отношения) должны удовлетворять следующим ограничениям (требованиям):
1) отношение имеет имя, которое отличается от имен всех других отношений, используемых в данной предметной области;
2) все строки таблицы должны быть уникальными, т.е. различаться хотя бы по значению одного атрибута;
3) все строки таблицы должны иметь одну и туже структуру, т.е. одно и то же количество атрибутов с соответственно совпадающими именами;
4) имена столбцов должны быть различными, а значения столбцов – однотипными (берутся из одного и того же домена);
5) значения атрибутов должны быть неделимыми (атомарными), т.е. отношения не могут иметь в качестве компонентов другое отношение;
6) порядок следования строк и столбцов в таблице не существенен, так как влияет только на скорость доступа к данным.
Строки отношений называют кортежами, записями.
Столбцы (элементарные типы) часто называют атрибутами или полями записи.
Домен представляет собой множество (набор значений), из которого извлекается значение для данного атрибута. Связи между отношениями неявно определены на перекрывающихся доменах.
Каждое отношение в таблице физически может храниться либо в отдельном небольшом файле, либо в одном большом файле в совокупности с другими таблицами. Как правило, в терминологии реляционной модели можно выделять следующие понятия [37]:
Таблица 2.1. Терминология реляционной модели
Терминология
Теоретической основой реляционной модели является реляционная алгебра. Она будет рассмотрена в следующем разделе, а здесь лишь перечислим основные достоинства реляционного подхода:
1) Использование двумерных таблиц для представления структур данных является наиболее простым способом работы с БД;
2) Реляционная модель поддается четкой формализации на основе реляционной алгебры;
3) Операции проекции, соединения и другие операции позволяют легко разрезать и склеивать отношения, получая таким образом новые, производные отношения. Это дает возможность легко извлекать разнообразную информацию из множества таблиц;
4) Упрощается контроль доступа и управление правами доступа как к целой таблице, так и к ее отдельным частями, вплоть до атрибутов и кортежей;
5) Реляционное представление дает ясную картину взаимосвязи атрибутов из различных отношений;
6) Физическое размещение таблиц файлов может оказаться немного проще, чем размещение иерархических и сетевых структур;
7) В реляционной модели значительно проще обеспечить независимость данных;
8) Существует возможность добавления, изменения и удаления некоторых атрибутов в таблице, без изменения отношения в целом, а также добавления новых отношений без серьезных последствий;
9) В реляционной модели языки манипулирования данных достаточно просты и понятны.
Нормализация отношений
Нормализация отношений – пошаговый, обратимый процесс анализа отношений на основе их первичного ключа (или потенциальных ключей) и функциональных зависимостей с последующей декомпозицией (разложением) исходных отношений.
Существует несколько причин, почему в БД следует использовать только нормализованные отношения. Прежде всего, нормализованные отношения позволят предотвратить возможность возникновения аномалий обновления, удаления и вставки, а также предотвратить излишнюю избыточность данных.
Избыточность данных всегда свидетельствует о возможности модифицировать только часть требуемых данных с помощью операции обновления, в то время как существует высокая вероятность того, что остальные данные останутся в первоначальном состоянии, что приводит к их противоречивости.
Отношение может характеризоваться как явной, так и неявной избыточностью данных. Явная избыточность заключается в том, что одни и те же значения одного или нескольких атрибутов могут появляться в отношении несколько раз. Явная избыточность довольно легко обнаруживается, что позволяет ее устранить практически сразу, как только начнется заполнение данного отношения. Неявная избыточность, где имеется неявная зависимость между атрибутами. Рассмотрим пример. Пусть имеется таблица, которая хранит информацию о посетителях гостиницы: в какой комнате остановился посетитель и какой в этой комнате телефон:
Таблица 3.1. Пример неявной избыточности
| № гостя | Комната | Телефон |
| 1 | 12 | 23-12 |
| 2 | 13 | 21-13 |
| 3 | 14 | 24-14 |
| 4 | 12 | 23-12 |
В данном случае неявная избыточность обнаруживается в том, что один и тот же № телефона имеют гости, живущие в одной комнате. Если поменяется номер у гостя №1, то у гостя № 4 — не поменяется, отсюда следует противоречие: в одной комнате два разных номера.
Аномалия добавления связана со следующими противоречиями. Если появляется необходимость включить в БД кортеж с нулевыми (пустыми) значениями некоторых атрибутов записи, то это приводит к отсутствию некоторой информации в базе. Более того, это может привести к ошибочному результату выполнения запроса, вызванному наличием пустых полей.
Аномалия удаления в ненормализованных таблицах может привести к тому, что при удалении информации об одном объекте будет удалена также информация о каких-то других объектах. Например, при необходимости удалить один или несколько атрибутов записи приходится удалять всю запись целиком. Это в свою очередь приводит к исключению информации о данном объекте в БД в целом, хотя требовалось удалить лишь некоторую часть информации об объекте (несколько полей записи).
Основная цель нормализации – создание набора отношений с заданными свойствами:
1) между атрибутами не должно быть нежелательных функциональных зависимостей;
2) группировка атрибутов должна обеспечивать минимум дублирования данных.
Функциональные зависимости
Пусть даны два атрибута А и В. Атрибут В функционально зависит от А (обозначается A®B), если каждое значение атрибута А связано только с одним значением атрибута В (в любой момент времени). А и В могут быть составными, т.е. они могут представлять собой не единичные атрибуты, а группы, состоящие из двух или более атрибутов.
С практической точки зрения смысл данного определения состоит в том, что если в функционально зависит от А, то каждый из кортежей данного отношения, имеющий одно и то же значение А, должен иметь также одно и то же значение В. Значения А и В могут изменяться время от времени, но при этом они должны изменяться так, чтобы каждое уникальное значение А имело только одно значение В, связанное с ним.
Проанализируем атрибуты «Номер сотрудника» (CNo) и «Должность» для отношения «Сотрудники». Зная значение атрибута CNo, мы однозначно сможем определить «Должность» данного сотрудника. Однако в обратном направлении мы не можем так сказать, поскольку может быть множество сотрудников с одной должностью, т.е. CNo®Должность. Аналогично можно указать, что CNo®ЗП и т.д.
Источник: infopedia.su