Пример
Выделить основные абстракции (сущность, атрибут, связь) в предметной области и определить их параметры.
Определим следующие сущности: СТУДЕНТ, ЭКЗАМЕН, ОЦЕНКА. Определим атрибуты сущностей. Пусть для упрощения сущность СТУДЕНТ характеризуется только фамилией. Фамилию мы и возьмем в качестве атрибута. Так как фамилия может неоднозначно идентифицировать объект, введем дополнительный атрибут Код студента, уникальный для каждого студента. Таким образом, сущность СТУДЕНТ характеризуется двумя атрибутами код студента, фамилия. Аналогично определим сущность ЭКЗАМЕН с атрибутами код экзамена, предмет, дата экзамена и сущность ОЦЕНКА с атрибутом значение оценки (оценка). Между этими сущностями существуют следующие связи: студент сдавал экзамен, студент получил оценку, по экзамену получены следующие оценки.
Сформировать максимально полный перечень возможных запросов к базе данных на основе анализа предметной области.
По смыслу задачи к базе данных возможны следующие запросы: Какие оценки получил студент с заданной фамилией (кодом);
Какие студенты получили заданное значение оценки;
Какие экзамены сдал студент с заданной фамилией (кодом);
Какую оценку по конкретному предмету получил студент с заданной фамилией (кодом).
Построить концептуальную модель в виде ER-диаграммы. Нарисуем возможный вариант ER-диаграмм
Оценка по экзамену
Рис. 2. ER диаграмма
По этой диаграмме можно ответить на все вопросы, кроме последнего. В этом случае предлагается ввести новую агрегированную сущность. Определим эту сущность как ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ с атрибутами код студента, фамилия, код экзамена, предмет, дата экзамена, оценка. Нарисуем второй вариант ER-диаграммы.
Рис. 3. ER-диаграмма 2
По этой диаграмме можно ответить на все вопросы, но здесь очевидно дублирование информации и возможны аномалии удаления, добавления.
Представить концептуальную модель в терминах реляционной модели.
В терминах концептуальной модели эта модель представляется следующей таблицей 1.
Таблица 1 Реляционная модель
Код
студента
|
Фамилия
|
Код
экзамена
|
Предмет
|
Дата
|
Оценка
|
Описать домены (допустимые множества значений, которые могут принимать атрибуты), указывая типы соответствующих данных и их характеристики.
Код студента принимает значения из множества целых чисел, максимальная длина числа 4 знака.
Фамилия принимает символьное значение, максимальная длина 20 символов.
Код экзамена принимает значения из множества целых чисел, максимальная длина числа 4 знака.
Предмет принимает символьное значение, максимальная длина 20 символов.
Дата экзамена принимает значение дата в формате 00.00.00. Оценка принимает целое значение от 2 до 5.
Определить ключи и внешние ключи (если они есть).
Ключом данного отношения является совокупность атрибутов код студента, код экзамена.
Выписать функциональные зависимости (рассматривая возможные значения полей таблицы).
Отношение R1 представляет объект СТУДЕНТ с атрибутами: код студента (первичный ключ), фамилия.
Отношение R3 представляет объект ЭКЗАМЕН c атрибутами: код экзамена (первичный ключ), предмет, дата.
Отношение R4 представляет объект ОЦЕНКА c атрибутами: код студента (внешний ключ), код экзамена (внешний ключ), оценка. Первичный ключ здесь составной: код студента, код экзамена.
Для наглядности представим полученную модель в виде ER- диаграммы (рис.4).
Рис.4. ER диаграмма базы данных
Эта диаграмма и является нужным вариантом. Таким образом, полученная реляционная модель включает три отношения.
Достарыңызбен бөлісу: |