Проектирование реляционных баз данных
Большинство баз данных непрерывно изменяется. Часто добавляются новые элементы данных, между ними устанавливаются новые связи и определяются новые способы их использования. При изменении базы необходимо сохранять старое представление пользователя сданных для того, чтобы избежать необходимости переписывать старые программы заново. Однако возможны и такие изменения связей между данными, которые… Читать ещё >
Проектирование реляционных баз данных (реферат, курсовая, диплом, контрольная)
При проектировании базы данных решаются две основные проблемы:
- • Каким образом отобразить объекты предметной области в абстрактные объекты модели данных, чтобы это отображение не противоречило семантике предметной области и было по возможности лучшим (эффективным, удобным и т. д.)? Часто эту проблему называют проблемой логического проектирования баз данных.
- • Как обеспечить эффективность выполнения запросов к базе данных, т. е. каким образом, имея в виду особенности конкретной БД, расположить данные во внешней памяти, создание каких дополнительных структур (например, индексов) потребовать и т. д. Эту проблему называют проблемой физического проектирования баз данных.
Проблема логического проектирования реляционной базы данных состоит в обоснованном принятии решений о том, из каких отношений должна состоять БД и какие атрибуты должны быть у этих отношений.
Проектирование реляционных баз данных с использованием нормализации
Одной из сложных проблем, с которой сталкивается большинство разработчиков баз данных, является проблема оценки: какие элементы данных следует собирать в одну запись, сегмент или кортеж. Существует много способов, которыми можно сгруппировать сотни и тысячи элементов данных; одни из этих способов лучше, другие — хуже. Некоторые из них могут привести к сложным проблемам при их использовании.
Большинство баз данных непрерывно изменяется. Часто добавляются новые элементы данных, между ними устанавливаются новые связи и определяются новые способы их использования. При изменении базы необходимо сохранять старое представление пользователя сданных для того, чтобы избежать необходимости переписывать старые программы заново. Однако возможны и такие изменения связей между данными, которые требуют модификации программ. Например, иногда оказывается необходимым расщепить запись или сегмент на две части, или же изменить ключ некоторых элементов. Изменения такого рода являются крайне нежелательными, так как они могут привести к разрушению структуры базы данных. В то же время подобные разрушения можно сделать маловероятными, если группировка элементов данных и их ключи первоначально были хорошо продуманы.
Непродуманная группировка элементов данных может повлечь за собой и проблемы семантической раздробленности, и проблемы при использовании мощных языков запросов как для баз данных реляционного типа, так и для структур данных с указателями.
В настоящей главе используется терминология реляционных баз данных. Вместе с тем излагаемые идеи применимы и к нереляционным базам данных. Многие разработчики нереляционных систем рекомендуют использовать данные, представленные в третьей нормальной форме,
Для простоты изложения вместо термина кортеж будем употреблять термины сегмент или запись.
В первом шаге нормализации данные свертываются в двумерные таблицы со столбцами простейшей структуры. При этом получается так называемая первая нормальная форма. Дальнейший процесс нормализации состоит в том, что проверяются отношения, заданные в первой нормальной форме, и некоторые из них расщепляются на более простые. Процесс состоит из двух шагов. На первом получается вторая нормальная форма, на втором — третья нормальная форма. Методы получения второй и третьей нормальной формы в общем случае довольно просты, хотя существуют многочисленные и утонченные варианты нормализации, специфичные для конкретных режимов работы с базой.
Следует отметить, что процесс нормализации не имеет отношения к физическому размещению данных. Речь идет только о пользовательском и глобальном логическом представлении данных.