*/ -->
Управление данными (Трипутина В.В.)
72__Классификация моделей данных
Модель данных — формализованное описание информационных структур и операций над ними.
Информационная модель — модель предметной области, отражающая ее информационные аспекты.
Инфологическая модель (информационно-логическая модель) — ориентированная на человека и не зависимая от типа СУБД модель предметной области, определяющая совокупности информационных объектов, их атрибутов и отношений между объектами, динамику изменений предметной области, а также характер информационных потребностей пользователей. Инфологическая модель предметной области может быть описана моделью "сущность—связь" (моделью Чена), в основе которой лежит деление реального мира на отдельные различимые сущности, находящиеся в определенных связях друг с другом.
Даталогические модели — модели данных, ориентированные на выбранный тип СУБД: внутренняя, концептуальная, внешняя.
Внутренняя модель — модель данных низшего (физического) уровня в архитектуре СУБД, отражающая представление данных во внешней памяти и методы доступа к ним.
Внешняя модель — модель данных внешнего уровня в архитектуре СУБД, отражающая представление пользователя о базе данных (подсхема базы данных и ее описание).
Концептуальная модель — информационная модель предметной области в терминах конкретной СУБД, содержащая полный набор данных и связей между ними. В архитектуре СУБД представляет промежуточный между внешним и внутренним уровень.
Схема базы данных — описание даталогических моделей в терминах СУБД (часто используется как синоним модели данных).
Иерархическая модель — модель данных, в основе которой лежит граф типа "дерево". Вершине дерева соответствует тип записи, дуге — отношение между двумя типами записей. Иерархическая модель данных строится по принципу иерархии объектов, то есть один тип объекта является главным, все нижележащие – подчиненными. Устанавливается связь «один ко многим», то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым. Основной структурой в иерархических моделях данных является «дерево». Особенности такого представления в наличии корня – единственной точки входа в дерево, и что каждый порожденный узел имеет только одного родителя. Недостатком этой системы является высокая избыточность. Одна запись БД – это совокупность деревьев. Через эту структуру нельзя построить отношение N:N (многие ко многим).
Сетевая модель — модель данных, предназначенная для представления данных сетевой структуры и манипулирования ими. Сетевая модель данных строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора). Основной структурой в сетевых моделях данных является «сеть». При таком представлении существует несколько входов в сеть – неоднозначность доступа к данным. Особенности такого представления: один или несколько узлов могут иметь больше одного родителя; время доступа изменяется в зависимости от исходного входа. Время доступа в сетевой структуре может быть больше, чем в иерархической структуре. COBOL – идея о хранении данных независимо от программ. Автор идеи – Бахман.
Недостатком обеих этих структур является то, что при добавлении новых вершин или установлении новых связей возникают проблемы выгрузки данных из базы, перегенерации полностью структуры, загрузка данных обратно в базу. При этом возникает вероятность потерять данные при обратной загрузке.
Реляционная модель (модель Кодда,1970) — множество нормализованных отношений (таблиц), к которым применимы операции реляционной алгебры. Отношения могут находиться в одной из нормализованных форм первой (1НФ), второй (2НФ), третьей (ЗНФ) или четвертой (4НФ).Реляционная модель данных объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных.
В основе структуры данных реляционной модели лежит мощный аппарат реляционной алгебры, реляционного исчисления и теории нормализации. При проектировании реляционной модели БД используется понятия ER-модели: сущность – объект, атрибут – свойства и связь. Связи бывают нескольких типов: 1:1, 1:N (N:1), N:N. У реляционной модели есть ряд ограничений: невозможность существования двух одинаковых записей; задание типа столбца, области значений атрибута. Достоинство реляционных СУБД, обеспечившее высокую популярность, заключается в не функциональности языка запросов. Это означает, что формулируете запрос не то, как надо найти данные, а что надо найти.
Инфологическая модель должна быть отображена в компьютеро-ориентированную даталогическую модель, "понятную" СУБД. В процессе развития теории и практического использования баз данных, а также средств вычислительной техники создавались СУБД, поддерживающие различные даталогические модели.
Сначала стали использовать иерархические даталогические модели. Простота организации, наличие заранее заданных связей между сущностями, сходство с физическими моделями данных позволяли добиваться приемлемой производительности иерархических СУБД на медленных ЭВМ с весьма ограниченными объемами памяти. Но, если данные не имели древовидной структуры, то возникала масса сложностей при построении иерархической модели и желании добиться нужной производительности.
Сетевые модели также создавались для мало ресурсных ЭВМ. Это достаточно сложные структуры, состоящие из "наборов" - поименованных двухуровневых деревьев. "Наборы" соединяются с помощью "записей-связок", образуя цепочки и т.д. При разработке сетевых моделей было выдумано множество "маленьких хитростей", позволяющих увеличить производительность СУБД, но существенно усложнивших последние. Прикладной программист должен знать массу терминов, изучить несколько внутренних языков СУБД, детально представлять логическую структуру базы данных для осуществления навигации среди различных экземпляров, наборов, записей и т.п. Один из разработчиков операционной системы UNIX сказал "Сетевая база - это самый верный способ потерять данные".
Сложность практического использования иерархических и и сетевых СУБД заставляла искать иные способы представления данных. В конце 60-х годов появились СУБД на основе инвертированных файлов, отличающиеся простотой организации и наличием весьма удобных языков манипулирования данными. Однако такие СУБД обладают рядом ограничений на количество файлов для хранения данных, количество связей между ними, длину записи и количество ее полей.
Сегодня наиболее распространены
реляционные модели (реляционная модель – способ представления объектов и связей между ними в виде отношений. Отношения при реализации представлены таблицей).
Объектная модель(Буч, 1998).
В последние годы активно развивается объектно-ориентированный подход к созданию ИС. Объектные БД организованы как объекты и ссылки к объектам. Объект представляет собой данные и правила, по которым осуществляется операция с этими данными. Объект включает метод, который является частью определения объекта и запоминается вместе с объектом. В объектных БД данные запоминаются как объекты, классифицированные по типам классов и организованные в иерархическое семейство классов. Класс – коллекция объектов с одинаковыми свойствами. Объекты принадлежат классу. Классы организованы в иерархии. С данными не хранятся их описания, любая программа, если может распознать объектный язык (SQL), может обрабатывать данные своими методами.
73__Понятие базы данных. Основные характеристики баз данных
База данных — не зависимая от прикладных программ совокупность взаимосвязанных, хранящихся вместе данных и их описаний, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, допускающая минимальную избыточность и возможность использования для нескольких приложений. Взаимосвязанность означает, что данные хранятся в БД вместе с их описанием.
База Данных (БД) – это структурированная определенным образом совокупность данных, относящихся к конкретной задаче.
БД – это совокупность данных организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирование данными, данные не зависят от прикладных программ.
Минимальная избыточность – иногда БД обладают избыточностью, для упрощения запросов, но по принципам избыточности избыточность сводится к минимуму.
База данных определяется как совокупность хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений. Данные запоминаются так, чтобы они были независимы от программ, использующих эти данные.
По характеру организации данных БД могут быть разделены на неструктурированные, частично структурированные и структурированные. Этот классификационный признак относится к информации, представленной в символьном виде. К неструктурированным БД могут быть отнесены БД, организованные в виде семантических сетей. Частично структурированными можно считать БД в виде обычного текста или гипертекстовые системы. Структурированные БД требуют предварительного проектирования и описания структуры БД. Только тогда БД такого типа могут быть заполнены данными.
Функциональная пригодность информации базы данных может представлять сложную проблему для измерения и оценки соответствия требованиям реальных значений атрибутов качества. Как и для программных систем, для баз данных целесообразно использовать группу субхарактеристик, определяющих функциональные, структурные и эксплуатационные требования. На содержательном уровне функциональную пригодность многих баз данных отражают:
полнота накопленных описаний объектов — относительное число объектов или документов, имеющихся в базе данных, к общему числу объектов по данной тематике или по отношению к числу объектов в аналогичных базах данных;
идентичность — относительное число описаний объектов, не содержащих дефекты и ошибки, к общему числу документов об объектах в базах данных;
актуальность — относительное число устаревших данных об объектах в базах данных к общему числу накопленных и обрабатываемых данных.
Корректность или достоверность данных — это степень соответствия данных об объектах в базах данных реальным объектам в данный момент времени, определяющаяся изменениями самих объектов, некорректностями записей об их состоянии или некорректностями расчетов их характеристик. Сюда же можно отнести и некоторые объемно-временные характеристики сохраняемых и обрабатываемых данных:
объем базы данных — относительное число записей описаний объектов или документов, доступных для хранения и обработки, по сравнению с полным числом реальных объектов во внешней среде;
оперативность — степень соответствия динамики изменения данных состояниям реальных объектов;
глубина ретроспективы — интервал времени от даты выпуска и/или записи в базу данных самого раннего документа до настоящего времени;
динамичность — относительное число изменяемых описаний объектов к общему числу записей в базе данных за некоторый интервал времени, определяемый периодичностью издания версий базы.
Практичность (применимость) — трудно формализуемое понятие, однако, в итоге, значительно определяющее функциональную пригодность и полезность применения базы данных для определенных пользователей. В эту группу показателей входят субхарактеристики, с различных сторон отражающие функциональную понятность, удобство освоения, системную эффективность и простоту использования данных. Некоторые субхарактеристики можно оценивать экономическими показателями — затратами труда и времени специалистов на реализацию определенных функций взаимодействия с данными.
Понятность зависит от качества документации и субъективных впечатлений потенциальных пользователей. Ее можно описать качественно четкостью функциональной концепции, широтой демонстрационных возможностей, полнотой, комплектностью и наглядностью представления в эксплуатационной документации возможных функций и особенностей реализации данных. Она должна обеспечиваться корректностью и полнотой описания исходной и результирующей информации, а также всех деталей применения базы данных для пользователей.
Простота использования — возможность удобно и комфортно эксплуатировать базу данных и манипулировать данными. Она соответствует управляемости, устойчивости к дефектам данных и согласованности с ожиданиями и навыками пользователей. Некоторые атрибуты этой субхарактеристики можно оценить количественно путем измерения трудоемкости и длительности соответствующих процессов подготовки и обучения квалифицированных пользователей.
Изучаемость может определяться трудоемкостью и длительностью подготовки пользователя. Качество изучаемости зависит от внутренних свойств и сложности структуры информации базы данных, а также от субъективных характеристик квалификации конкретных пользователей. Изучаемость может также характеризоваться объемом эксплуатационной документации или объемом и качеством электронных учебников.
Мобильность баз данных, как и программ, можно характеризовать в основном длительностью и трудоемкостью их инсталляции, адаптации и замещаемости при переносе на иные аппаратные и операционные платформы.
Завершенность — способность базы данных не попадать в состояния отказов вследствие потерь, искажений, ошибок и дефектов в данных.
Устойчивость к дефектам и ошибкам — свойство базы данных автоматически поддерживать заданный уровень качества данных в случаях проявления дефектов и ошибок или нарушения установленного интерфейса с внешней средой.
Восстанавливаемость — свойство базы данных в случае отказа возобновлять требуемый уровень качества информации и корректировать поврежденные данные.
Доступность (или готовность) — свойство базы данных быть в состоянии полностью выполнять требуемую функцию в данный момент времени и при заданных условиях ее использования.
74__Методика проектирования баз данных. Этапы проектирования баз данных
При проектировании базы данных решаются две основные проблемы:
1. Отображение объектов предметной области в абстрактные объекты модели данных таким образом, чтобы это отображение не противоречило семантике предметной области и было по возможности лучшим (эффективным, удобным и т.д.). Часто эту проблему называют проблемой логического проектирования баз данных.
2. Обеспечение эффективного выполнения запросов к базе данных, т.е. рациональное расположение данных во внешней памяти, создание полезных дополнительных структур (например, индексов) с учетом особенностей конкретной СУБД. Эту проблему называют проблемой физического проектирования баз данных.
Шаги проектирования базы данных
I. Первый шаг состоит в определении информационных потребностей базы данных. Он включает в себя опрос будущих пользователей для того, чтобы понять и задокументировать их требования. Следует выяснить следующие вопросы:
сможет ли новая система объединить существующие приложения или их необходимо будет кардинально переделывать для совместной работы с новой системой;
какие данные используются разными приложениями; смогут ли Ваши приложения совместно использовать какие-либо из этих данных;
кто будет вводить данные в базу и в какой форме; как часто будут изменяться данные;
достаточно ли будет для Вашей предметной области одной базы или Вам потребуется несколько баз данных с различными структурами;
какая информация является наиболее чувствительной к скорости ее извлечения и изменения.
II. Следующий шаг включает в себя анализ объектов реального мира, которые необходимо смоделировать в базе данных.
Формирование концептуальной модели базы данных включает в себя:
идентификацию функциональной деятельности Вашей предметной области. Например, если речь идет о деятельности предприятия, то в качестве функциональной деятельности можно идентифицировать ведение учета работающих, отгрузку продукции, оформление заказов и т.п.
идентификацию объектов, которые осуществляют эту функциональную деятельность, и формирование из их операций последовательности событий, которые помогут Вам идентифицировать все сущности и взаимосвязи между ними. Например, процесс “ведение учета работающих” идентифицирует такие сущности как РАБОТНИК, ПРОФЕССИЯ, ОТДЕЛ.
идентификацию характеристик этих сущностей. Например, сущность РАБОТНИК может включать такие характеристики как Идентификатор Работника, Фамилия, Имя, Отчество, Профессия, Зарплата.
идентификацию взаимосвязей между сущностями. Например, каким образом сущности РАБОТНИК, ПРОФЕССИЯ, ОТДЕЛ взаимодействуют друг с другом? Работник имеет одну профессию (для простоты!) и значится в одном отделе, в то время как в одном отделе может находиться много работников.
III. Третий шаг заключается в установлении соответствия между сущностями и характеристиками предметной области и отношениями и атрибутами в нотации выбранной СУБД. Поскольку каждая сущность реального мира обладает некими характеристиками, в совокупности образующими полную картину ее проявления, можно поставить им в соответствие набор отношений (таблиц) и их атрибутов (полей).
Перечислив все отношения и их атрибуты, уже на этом этапе можно начать устранять излишние позиции. Каждый атрибут должен появляться только один раз; и Вы должны решить, какое отношение будет являться владельцем какого набора атрибутов.
IV. На четвертом шаге определяются атрибуты, которые уникальным образом идентифицируют каждый объект. Это необходимо для того, чтобы система могла получить любую единичную строку таблицы. Вы должны определить первичный ключ для каждого из отношений. Если нет возможности идентифицировать кортеж с помощью одного атрибута, то первичный ключ нужно сделать составным - из нескольких атрибутов. Хорошим примером может быть первичный ключ в таблице работников, состоящий из фамилии, имени и отчества. Первичный ключ гарантирует, что в таблице не будет содержаться двух одинаковых строк. Во многих СУБД имеется возможность помимо первичного определять еще ряд уникальных ключей. Отличие уникального ключа от первичного состоит в том, что уникальный ключ не является главным идентифицирующим фактором записи и на него не может ссылаться внешний ключ другой таблицы. Его главная задача - гарантировать уникальность значения поля.
V. Пятый шаг предполагает выработку правил, которые будут устанавливать и поддерживать целостность данных. Будучи определенными, такие правила в клиент-серверных СУБД поддерживаются автоматически - сервером баз данных; в локальных же СУБД их поддержание приходится возлагать на пользовательское приложение.
Эти правила включают:
определение типа данных
выбор набора символов, соответствующего данной стране
создание полей, опирающихся на домены
установка значений по умолчанию
определение ограничений целостности
определение проверочных условий.
VI. На шестом шаге устанавливаются связи между объектами (таблицами и столбцами) и производится очень важная операция для исключения избыточности данных - нормализация таблиц.
Каждый из различных типов связей должен быть смоделирован в базе данных. Существует несколько типов связей:
- связь “один-к-одному”
- связь “один-ко-многим”
- связь “многие-ко-многим”.
Связь “один-к-одному” представляет собой простейший вид связи данных, когда первичный ключ таблицы является в то же время внешним ключом, ссылающимся на первичный ключ другой таблицы. Такую связь бывает удобно устанавливать тогда, когда невыгодно держать разные по размеру (или по другим критериям) данные в одной таблице. Например, можно выделить данные с подробным описанием изделия в отдельную таблицу с установлением связи “один-к-одному” для того чтобы не занимать оперативную память, если эти данные используются сравнительно редко.
Связь “один-ко-многим” в большинстве случаев отражает реальную взаимосвязь сущностей в предметной области. Она реализуется уже описанной парой “внешний ключ-первичный ключ”, т.е. когда определен внешний ключ, ссылающийся на первичный ключ другой таблицы. Именно эта связь описывает широко распространенный механизм классификаторов. Имеется справочная таблица, содержащая названия, имена и т.п. и некие коды, причем, первичным ключом является код. В таблице, собирающей информацию - назовем ее информационной таблицей - определяется внешний ключ, ссылающийся на первичный ключ классификатора. После этого в нее заносится не название из классификатора, а код. Такая система становится устойчивой от изменения названия в классификаторах. Имеются способы быстрой “подмены” в отображаемой таблице кодов на их названия как на уровне сервера БД (для клиент-серверных СУБД), так и на уровне пользовательского приложения.
Связь “многие-ко-многим” в явном виде в реляционных базах данных не поддерживается. Однако имеется ряд способов косвенной реализации такой связи, которые с успехом возмещают ее отсутствие. Один из наиболее распространенных способов заключается во введении дополнительной таблицы, строки которой состоят из внешних ключей, ссылающихся на первичные ключи двух таблиц.
Итак, после определения таблиц, полей, индексов и связей между таблицами следует посмотреть на проектируемую базу данных в целом и проанализировать ее, используя правила нормализации, с целью устранения логических ошибок. Важность нормализации состоит в том, что она позволяет разбить большие отношения, как правило, содержащие большую избыточность информации, на более мелкие логические единицы, группирующие только данные, объединенные “по природе”. Таким образом, идея нормализации заключается в следующем. Каждая таблица в реляционной базе данных удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное значение, и никогда не может быть множества таких значений.
После применения правил нормализации логические группы данных располагаются не более чем в одной таблице. Это дает следующие преимущества:
- данные легко обновлять или удалять
- исключается возможность рассогласования копий данных
- уменьшается возможность введения некорректных данных.
Процесс нормализации заключается в приведении таблиц в так называемые нормальные формы. Существует несколько видов нормальных форм: первая нормальная форма (1НФ), вторая нормальная форма (2НФ), третья нормальная форма (3НФ), нормальная форма Бойса-Кодда (НФБК), четвертая нормальная форма (4НФ), пятая нормальная форма (5НФ). С практической точки зрения, достаточно трех первых форм - следует учитывать время, необходимое системе для “соединения” таблиц при отображении их на экране.
Этот процесс включает:
·устранение повторяющихся групп (приведение к 1НФ)
·удаление частично зависимых атрибутов (приведение к 2НФ)
·удаление транзитивно зависимых атрибутов (приведение к 3НФ).
Необходимо четко понимать, что разбиение информации на более мелкие единицы с одной стороны, способствует повышению надежности и непротиворечивости базы данных, а с другой стороны, снижает ее производительность, так как требуются дополнительные затраты процессорного времени (серверного или машины пользователя) на обратное “соединение” таблиц при представлении информации на экране. Иногда для достижения требуемой производительности нужно сделать отход от канонической нормализации, при этом ясно осознавая, что необходимо обеспечить меры по предотвращению противоречивости в данных. Поэтому всякое решение о необходимости того или иного действия по нормализации можно принимать только тщательно проанализировав предметную область и класс поставленной задачи. Может потребоваться несколько итераций для достижения состояния, которое будет желаемым компромиссом между четкостью представления и реальными возможностями техники.
VII. Седьмой шаг является последним в нашем списке, но не последним по важности в процессе проектирования базы данных. На этом шаге мы должны спланировать вопросы надежности данных и, при необходимости, сохранения секретности информации. Для этого необходимо ответить на следующие вопросы:
кто будет иметь права (и какие) на использование базы данных
кто будет иметь права на модификацию, вставку и удаление данных
нужно ли делать различие в правах доступа
каким образом обеспечить общий режим защиты информации и т.п.
Предметная область - часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации. Предметная область представляется множеством фрагментов, например, предприятие - цехами, дирекцией, бухгалтерией и т.д. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, характеризуемых различными взглядами на предметную область.
Данные, используемые для описания предметной области, представляются в виде трехуровневой схемы (так называемая модель ANSI/SPARC):
Внешнее представление (внешняя схема) данных является совокупностью требований к данным (т.е. определенным образом представленная информация) со стороны некоторой конкретной функции, выполняемой пользователем или со стороны конкретного пользователя. Концептуальная схема является полной совокупностью всех требований к данным, полученной из пользовательских представлений о реальном мире. Внутренняя схема - это сама база данных.
Воронка Сенко – внешний уровень, концептуальный уровень, внутренний уровень.
Основные этапы, на которые разбивается процесс проектирования базы данных информационной системы:
Концептуальное проектирование - сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия:
обследование предметной области, изучение ее информационной структуры
выявление всех фрагментов, каждый из которых характеризуется пользовательским представлением, информационными объектами и связями между ними, процессами над информационными объектами
моделирование и интеграция всех представлений
По окончании данного этапа получаем концептуальную модель, инвариантную к структуре базы данных. Часто она представляется в виде модели "сущность-связь".
- Продолжение »