Получение реляционной схемы из диаграммы классов. Основные проблемы и рекомендации.
Рекомендации: · не увлекайтесь определением операций в классах · старайтесь избегать множественное наследие и осторожно использовать одиночное · реализ. в СУБД с точно заданными кратностями возможно, но предпочтит. доп. триггеров и ограничений (уменьшает эффективность) · агрег. ассоциации не естественны, компоретные (ПОПРАВЬТЕ, НЕ РАЗОБРАЛ) влияют только на способ поддержки ссылочной целостности · однонаправленные связи естественны только для объектно-ориентированных СУБД. Для реляционных БД поддержка вызывает дополнительные накладные расходы, значит, снижается эффективность. · не злоупотребляйте ограничениями (снижается эффективность)
42. Язык баз данных SQL. Основные отличия SQL-ориентированной модели от реляционной модели. Стандарт SQL:2003 – основные тома. Структура языка SQL (три различных схемы). В стандартах SQL определяется собственная модель данных, она похожа на реляционную, но значительно отличается. Итак, 2 важных отличия: · В SQL данные – это набор таблиц, каждая таблица содержит мультимножество строк, соответствующих заголовку таблицы. В реляционной модели “фундаментальная абстрактная «родовая» структура данных отношение, представляет собой множество кортежей.” (прим.Валеры. Я сам не понял смысла, извините) · В SQL для таблицы поддерживается порядок столбцов, соответствующий порядку их определения. В реляционной модели атрибуты отношения не упорядочены. Другими словами, таблица – это вовсе не отношение, хотя во многом они похожи.
Отмечается, что из этого следует, что: · в SQL отсутствует обязательное предписание об ограничении целостности сущности. · В базе данных могут существовать таблицы, для которых не определен первичный ключ. С другой стороны, если для таблицы определен первичный ключ, то для нее ограничение целостности сущности поддерживается так же как и в реляционной модели данных. Ссылочная целостность в модели данных SQL поддерживается в обязательном порядке, но в трех разных вариантах, лишь один из которых полностью соответствует реляционной модели. Это связано с интенсивным использованием в SQL неопределенных значений. Стандарт SQL:2003 – основные тома:
Структура языка SQL 1. Классификация, ориентированная на производителей СУБД (изнутри). Здесь каждая компания может выбрать уровни, которые они реализуют для своей БД. Язык разбивается на базовый (entry),промежуточный(intermediate) и полный (full) уровни. 2. Классификация, ориентированная на программиста приложений БД(снаружи): Прямой – например,интерактивная консоль(вы пишете SELECT * FROM…, и вам сразу выдают результат) встраиваемый – например, реализация библиотек для языков программирования, что бы можно было в этих программах использовать SQL, динамический – здесь сам SQL запрос может динамически формироваться по ходу программы(в предыдущем сама “строка SQL запросы” была как бы “постоянна”).
|