Скачать 60.88 Kb.
|
Лекция 9. Проектирование баз данныхПроектирование баз данных производится, если используется реляционная БД, при этом устойчивые классы объектной модели отображаются в таблицы реляционной БД. Основные понятия реляционной модели: База данных – долговременное самодокументированное хранилище данных. Самодокументация = схема данных, хранящаяся в БД. Система управления базами данных (СУБД) – ПО доступа к данным. Обеспечивает:
Структура реляционных данных – совокупность таблиц. В любой таблице фиксированное количество столбцов и произвольное – строк. Совокупность значений ячеек одной строки – запись. Оператор SQL – предложение SQL для манипуляции данными (выборка, изменение, добавление, удаление). Ограничения – условия, являющиеся частью схемы БД. Если какая-либо добавляемая запись нарушает какое-то ограничение, то она не будет добавлена. Виды ограничений: Возможный ключ (потенциальный ключ) – сочетание столбцов, уникально идентифицирующих каждую запись в таблице, такое что, все столбцы необходимы для уникальной идентификации и ни в одном нет пустых значений. Основной (первичный) ключ – возможный ключ, который предпочтительнее использовать для работы с таблицей. Есть у каждой таблицы. Внешний ключ – ссылка из другой таблицы на возможный ключ. Пример: П ервичные ключи: persID в 1-ой таблице, compID – во 2-ой. Внешний ключ – столбец employer 1-ой таблицы. Для связанных таблиц актуальна поддержка ссылочной целостности. Ссылочная целостность – это зависимость значений во внешнем ключе от значений в первичном ключе связанной таблицы (например, при удалении записи о компании необходимо: либо проверить отсутствие связанных записей о сотрудниках и отменить удаление в случае обнаружения таковых, либо каскадировать удаление, удаляя связанные записи о сотрудниках, либо обнулить значения во внешнем ключе у связанных записей). Для обеспечения ссылочной целостности применяют триггеры – процедуры, описанные на языке SQL, которые автоматически запускаются при модификации таблиц, с которыми они связаны. Триггеры не только обеспечивают целостность, с их помощью удобно реализовывать и более сложные манипуляцию с данными (бизнес-логику). Триггеры являются частным случаем хранимых процедур. Хранимая процедура – это процедура, работающая с таблицами, которая скомпилирована и хранится в виде кода в БД и может быть вызвана из клиентской программы. Хранимые процедуры выгоднее SQL-запросов, но они доступны всем приложениям, работающим с БД, что иногда нежелательно. Реляционная схема данных и объектная модель оперируют разными понятиями, в связи с чем необходима специальная работа по объектно-реляционному отображению. Отображение возможно в обе стороны: в прямую (от классов к таблицам) и в обратную (от таблиц к классам). В лекции мы будем говорить о прямом отображении, но обратное отображение подразумевается. Еще одно предваряющее замечание. Схема БД зависит не только от совокупности устойчивых классов и связей между ними, но и от практических соображений. Например, может оказаться, что решение хранить все устойчивые объекты в одной «толстой» ненормализованной таблице, вполне себя оправдывает тем, что делает приемлемой скорость большинства запросов к БД. Описывая объектно-реляционное отображение, мы будем рассматривать решения, тяготеющие к получению нормализованной БД. Переводить модель классов в схему БД предлагается в 3 этапа: отобразить классы в таблицы, отобразить ассоциации и отобразить связи обобщения. Отображение классов
П ример: При отображении ассоциаций пытаются сэкономить и не создавать дополнительные таблицы для хранения соединений между устойчивыми объектами за счет объединения нескольких таблиц в одну или добавления дополнительных столбцов в таблицы, порожденные классами, если семантика ассоциации позволяет. О тображение бинарных ассоциаций:
Вообще говоря, можно было бы использовать тот же прием, что и в «1 к 1», но получающаяся таблица будет «разреженной» – в некоторых записях будут пустые поля. Обратите внимание, что внешний ключ добавляется в таблицу, представляющую необязательный класс, поскольку записей в ней будет меньше, чем в другой.
В этом случае можно было добавить внешний ключ к какой-либо из таблиц, но не всегда допускаются пустые значения во внешнем ключе.
В примере показано, как можно представить в таблицах связи между курсами (чтобы записаться на курс функционального анализа, необходимо предварительно прослушать два курса математического анализа).
П ример:
Всякий раз, когда при реализации ассоциаций возникают связанные таблицы, возникают и ограничения целостности (в разных случаях разные), т. е. фактически добавляется не только внешний ключ и/или таблица, но и триггеры. Отображение классов связанных N-арной ассоциацией: Т ребуется таблица для хранения связи. Например, в случае тернарной (N=3) связи формируются четыре таблицы, по одной для каждого класса и одна для связи. Таблица связи будет иметь среди своих атрибутов ключи каждой из 3х других таблиц. Пример: Отображение классов-ассоциаций: Атрибуты класса-ассоциации добавляются либо в создаваемую для связи таблицу, либо (если дополнительная таблица не требуется) в ту таблицу, куда добавляется внешний ключ. П ример: Отображение квалифицированных ассоциаций Решение:
Пример: О тображение обобщения (наследования): Стратегии:
К акой именно способ выбрать диктуют соображения эффективности (скорость в обмен на объем памяти). Рассмотрим на примере. Пусть класс Person – абстрактный. При использовании 1-го подхода будут созданы 4 таблицы. У таблиц Person, Student, Employee будет дополнительный столбец – тип, в котором будет храниться реальный тип объекта. Для каждого экземпляра класса Student будут две записи, одна в таблице студентов, вторая – в таблице персон. Для экземпляра StudentEmployee – четыре записи, по одной в каждой таблице. При чем у всех их будет одинаковое значение первичного ключа. Дублирование записей позволит быстро находить всех персон, всех студентов и т. п. При втором подходе используется общая разреженная таблица. В ней также для каждой записи хранится ее тип. Неудобство состоит в том, что для любой записи о персоне есть риск «залезть» в поля, принадлежащие подклассу. Третий подход позволяет сэкономить одну таблицу – Person – для поиска всех персон в БД будет создан View, объединяющий записи 3-х созданных таблиц. Четвертый путь дает две таблицы (студентов и служащих) и два View (один для персон, второй для студентов-служащих). Литература к лекции 9
|
Тема: "Концептуальное и логическое проектирования баз данных" Курсовой проект предназначен для практического освоения проектирования реляционных баз данных (БД). В работе используется трехуровневый... | Урок 4 Класс: 11. Тема урока: «Способы организации баз данных: иерархический,... ... | ||
2. Поля Цель курса получение студентами знаний об этапах разработки баз данных; о перспективных направлений развития баз данных | А. Л. Исаев, А. М. Чеповский введение в теорию баз данных Введение в теорию баз данных: Учебно-методическое пособие по курсам «Вычислительная техника и информационная технология» и «Базы... | ||
Методические рекомендации по курсу базы данных подготовки бакалавриата... Цель данного курса дать основные понятия теории баз данных и подходы к проектированию реляционных баз данных. Представить современные... | Программа по формированию навыков безопасного поведения на дорогах... Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз... | ||
Программа по формированию навыков безопасного поведения на дорогах... Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз... | Лекция интернет: поиск научной литературы, использование баз данных Интернет, рекомендуемые в работе по научно-обоснованной профилактике неинфекционных заболеваний | ||
1 Системы с интеллектуальным интерфейсом Интеллектуальные базы данных отличаются от обычных баз данных возможностью выборки по запросу необходимой информации, которая может... | Базы данных ... | ||
Разработка и эксплуатация удаленных баз данных Тема урока: Введение в работу с удаленными базами данных. Типы sql-серверов, особенности операционной среды | Программа по формированию навыков безопасного поведения на дорогах... Создаются системы динамики потерь пищевой ценности продукта. Динамика роста и гибели микроорганизмов в процессе тепловой обработки... | ||
Рабочая программа по дисциплине В. В компьютерные сети и базы данных Цель данного курса состоит в ознакомлении студентов с основными принципами организации компьютерных сетей и баз данных | Программа дисциплины опд. Ф. 10 «базы данных» Курс относится к общепрофессиональному циклу дисциплин и имеет целью овладение знаниями в области применения баз данных в автоматизированных... | ||
Урока. Тема урока «Отмена крепостного права» План урока Актулизация... Работа с информационными средами на основе баз данных и баз знаний, позволяющие осуществить как прямой, так и удаленный доступ к... | Рабочая программа учебной дисциплины базы данных Целью дисциплины является изучение основ информационного обеспечения автоматизированных информационных систем в виде баз и банков... |