Исключительная концептуальная простота. ER-модель дает очень простое и наглядное представление об основных логических объектах БД и существующих между ними связях, поэтому использование такой модели значительно упрощает разработку и организацию сложных баз данных.
Наглядное представление. ER-модель дает проектировщикам баз данных, программистам и конечным пользователям простое наглядное представление о данных и связях между ними. Поэтому ER-модель является чрезвычайно эффективным средством, интегрирующим различные представления о данных в единую рабочую среду.
Хорошая интеграция с реляционной моделью данных. ER-модель хорошо интегрируется с реляционной моделью БД. Такая интеграция помогает эффективно структурировать процесс проектирования реляционных БД.
Недостатки ER-моделирования
Недостаточные возможности представления ограничений. С помощью ER-модели легко изобразить ограничения, имеющие непосредственное отношение к связности. Например, ограничение «автор может работать над несколькими книгами, или более чем над одной книгой, но не более чем над тремя книгами» легко изображаются средствами ER-модели. Однако некоторые ограничения, например, «оплата автору может варьироваться в диапазоне от 4 до 25 %» или «автор не имеет права работать больше 10 часов подряд», в ER-модели представить невозможно, и они должны обрабатываться на уровне приложений.
Ограниченные возможности представления отношений. Связи представляются как нечто, происходящее между сущностями. Поэтому связи между атрибутами внутри сущностей не могут быть представлены средствами ER-модели.
Отсутствие языка манипулирования данными. Сторонники реляционной модели обычно указывают на отсутствие команд манипулирования данными в ER- модели. Отсутствие таких команд делает ER-модель «неполной».
|
Утеря информационного наполнения. ER-модель сильно «переполнится», если в ней отобразить все ее атрибуты. Поэтому проектировщики баз данных обычно избегают полного отображения атрибутов, таким образом, сужая информационное наполнение ER-модели.
Все недостатки ER-модели верны лишь в отношении теоретической модели. В современных средствах моделирования данных (таких как программа ErWin Data Modeler) применяется расширенная ER-модель, практически лишенная всех перечисленных недостатков.
Реляционные базы данных
Наиболее распространенным типом баз данных являются так называемые реляционные базы данных. Реляционная модель данных была предложена Е. Ф. Коддом (Е. Е Codd), известным исследователем в области баз данных, в 1969 г., когда он был сотрудником IBM.
Реляционная база данных представляет собой хранилище данных, содержащее набор двухмерных таблиц. Набор средств для управления подобным хранилищем называется реляционной системой управления базами данных (РСУБД). РСУБД может содержать утилиты, приложения, сервисы, библиотеки, средства создания приложений, и др.
Любая таблица реляционной базы данных состоит из строк (называемых также записями) и столбцов (называемых также полями).
Строки таблицы содержат сведения (факты) об однотипных объектах: документах, людях и пр. На пересечении столбца и строки находятся конкретные значения содержащихся в таблице данных.
|
Данные в таблицах удовлетворяют следующим принципам:
– каждое значение в ячейке, находящейся на пересечении строки и столбца, должно быть атомарным, то есть не расчленяемым на несколько значений;
– значения данных в одном и том же столбце должны принадлежать одному и тому же типу, доступному для использования в данной СУБД;
– каждая запись в таблице уникальна, то есть в таблице не существует двух записей с полностью совпадающим набором значений ее полей;
– каждое поле имеет уникальное имя;
последовательность полей в таблице несущественна;
– последовательность записей в таблице несущественна.
Несмотря на то, что строки таблиц считаются неупорядоченными, любая система управления базами данных позволяет сортировать строки и столбцы. Так как последовательность столбцов в таблице несущественна, обращение к ним производится по имени, и эти имена для данной таблицы уникальны. Для того чтобы база данных (или система управления базой данных) была полностью реляционной, она должна соответствовать 12 правилам Кодда, сформулированными в 1985 г.
1. Правило информации
Вся информация реляционной базы данных на логическом уровне в полной мере представляется только одним способом – значениями в таблицах.
2. Правило гарантированного доступа.
Гарантируется, что каждый элемент данных (атомарное значение) реляционной базы данных логически доступен через комбинацию из имени таблицы, значения первичного ключа и имени столбца.
3. Правило систематической трактовки значений null.
Значения null (заметим, что они отличаются как от пустой строки символов, так и от строки пробелов) поддерживаются в полностью реляционной СУБД для представления отсутствующей информации систематически и независимо от типа данных.
|
4. Правило наличия динамического оперативного каталога на основе реляционной модели.
Описание базы данных представляется на логическом уровне так же, как обычные данные, значит, уполномоченные пользователи могут применять для обращения к этому описанию тот же самый реляционный язык, что и для работы с обычными данными.
5. Правило наличия исчерпывающего подъязыка данных.
Реляционная система может поддерживать несколько языков и различных режимов работы с устройствами ввода-вывода, однако должен существовать по меньшей мере один язык, операторы которого точно отражают реляционную модель с вполне определенными синтаксическими конструкциями в виде строк, символов и с исчерпывающей поддержкой следующего:
– описания данных;
– описания представлений;
– манипуляций данными;
– ограничений целостности;
– границ транзакций (начала, завершения и отката).
6. Правило обновления представлений.
Все представления, обновляемые теоретически, должны обновляться практически.
7. Правило ввода, обновления и удаления данных на высоком уровне.
Возможность работы с базовым или производным отношением в качестве одного операнда применима не только к считыванию, но и к вводу, обновлению и удалению данных.
8. Правило физической независимости данных.
Прикладные программы и терминальные операции остаются логически неповрежденными при любом изменении области хранения информации или механизма доступа.
9. Правило логической независимости данных.
Прикладные программы и терминальные операции остаются логически неповрежденными при внесении в базовые таблицы любого рода изменений, сохраняющих информацию и теоретически допускающих возможность оставить информацию неповрежденной.
10. Правило независимости целостности.
При помощи подъязыка реляционных данных должна существовать возможность описания ограничений целостности, специфичных для конкретной реляционной базы данных, и сохранения их в каталоге, а не в прикладных программах.
Для этого должны соблюдаться как минимум два ограничения:
– сущностная целостность: ни один из компонентов первичного ключа не может принимать значения null;
– ссылочная целостность: для каждого значения внешнего ключа, отличного от других и не являющегося значением null, в реляционной базе должно существовать соответствующее значение первичного ключа из того же домена.
11. Правило независимости распределения.
В реляционной СУБД распределение независимо. Распределенная база данных с точки зрения пользователя не должна отличаться от централизованной.
12. Правило соблюдения правил (запрет обхода правил).
Если в реляционной системе имеется язык низкого уровня («одна запись за раз»), его нельзя использовать для нарушения или пропуска правил или ограничений целостности, установленных в реляционном языке более высокого уровня («несколько записей за раз»).