Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТиМП proektirovaniye_is_metodichka.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

Модель данных, основанная на ключах

При создании сущности необходимо выделить группу атрибутов, кото­рые потенциально могут стать первичным ключом (потенциальные клю­чи), затем произвести отбор атрибутов для включения в состав первичного ключа, следуя следующим рекомендациям:

• Первичный ключ должен быть подобран таким образом, чтобы по зна­чениям атрибутов, в него включенных, можно было точно идентифи­цировать экземпляр сущности.

• Никакой из атрибутов первичного ключа не должен иметь нулевое значение.

• Значения атрибутов первичного ключа не должны меняться. Если значение изменилось, значит, это уже другой экземпляр сущности.

При выборе первичного ключа можно внести в сущность дополнитель­ный атрибут и сделать его ключом. Так, для определения первичного клю­ча часто используют уникальные номера, которые могут автоматически генерироваться системой при добавлении экземпляра сущности в БД. При­менение уникальных номеров облегчает процесс индексации и поиска в БД.

Первичный ключ, выбранный при создании логической модели, может быть неудачным для осуществления эффективного доступа к БД и должен быть изменен при проектировании физической модели.

Потенциальный ключ, не ставший первичным, называется альтернатив­ным ключом (Alternate Key). ERWin позволяет выделить атрибуты альтер­нативных ключей, и по умолчанию в дальнейшем при генерации схемы БД по этим атрибутам будет генерироваться уникальный индекс. При созда­нии альтернативного ключа на диаграмме рядом с атрибутом появляются символы (АК).

Атрибуты, участвующие в неуникальных индексах, называются инвер­сионными входами (Inversion Entries). Инверсионные входы - это атрибут или группа атрибутов, которые не определяют экземпляр уникальным об­разом, но часто используются для обращения к экземплярам сущности. ERWin генерирует неуникальный индекс для каждого инверсионного входа.

При проведении связи между двумя сущностями в дочерней сущности автоматически образуются внешние ключи (foreign key). Связь образует ссылку на атрибуты первичного ключа в дочерней сущности, и эти атри­буты образуют внешний ключ в дочерней сущности. Атрибуты внешнего ключа обозначаются символами (FK) после своего имени.

Пример. Система «Служба занятости в рамках вуза».

Рассмотрим процесс построения логической модели на примере БД сту­дентов системы «Служба занятости в рамках вуза». Первым этапом явля­ется определение сущностей и атрибутов. В БД будут храниться записи о студентах, следовательно, сущностью будет студент.

Таблица 1. Атрибуты сущности «Студент»

Атрибут

Описание

1

2

Номер

Уникальный номер для идентификации пользователя

Ф.И.О.

Фамилия, имя и отчество пользователя

Пароль

Пароль для доступа в систему

Возраст

Возраст студента

Пол

Пол студента

Характеристика

Memo-поле с общей характеристикой поль­зователя

E-mail

Адреса электронной почты

Телефон

Номера телефонов студента (домашний, ра­бочий)

Опыт работы

Специальности и опыт работы студента по каждой из них

Специальность

Специальность, получаемая студентом при окончании учебного заведения

Специализация

Направление специальности, по которому обучается студент

Иностранный язык

Список иностранных языков и уровень вла­дения ими

Тестирование

Список тестов и отметки о их прохождении

Экспертная оценка

Список предметов с экспертными оценками по каждому из них

Оценки по экзаменам

Список сданных предметов с оценками

В полученном списке существуют атрибуты, которые нельзя опреде­лить в виде одного поля БД. Такие атрибуты требуют дополнительных определений и должны рассматриваться как сущности, состоящие, в свою очередь, из атрибутов. К таковым относятся: опыт работы, иностранный язык, тестирование, экспертная оценка, оценки по экзаменам. Определим их атрибуты.

Таблица 2. Атрибуты сущности «Опыт работы»

Атрибут

Описание

Специальность

Название специальности, по которой у студента есть опыт работы

Опыт

Опыт работы по данной специальности в годах

Место работы

Наименование предприятия, где приобретался опыт

Таблица 3. Атрибуты сущности «Иностранный язык»

Атрибут

Описание

Язык

Название иностранного языка, которым владеет студент

Уровень владения

Численная оценка уровня владения иностранным языком

Таблица 4. Атрибуты сущности «Тестирование»

Атрибут

Описание

Название

Название теста, который прошел студент

Описание

Содержит краткое описание теста

Оценка

Оценка, которую получил студент в результате прохождения теста

Таблица 5. Атрибуты сущности «Экспертная оценка»

Атрибут

Описание

Дисциплина

Наименование дисциплины, по которой оценивался студент

Ф.И.О. преподавателя

Ф.И.О. преподавателя, который оценивал студента

Оценка

Экспертная оценку преподавателя

Таблица 6. Атрибуты сущности «Оценки по экзаменам»

Атрибут

Описание

Предмет

Название предмета, по которому сдавался экзамен

Оценка

Полученная оценка

Составим ERD-диаграмму, определяя типы атрибутов и проставляя связи между сущностями (рис. 8). Все сущности будут зависимыми от сущности «Студент». Связи будут типа «один-ко-многим».

Рисунок 8

На полученной диаграмме рядом со связью отражается ее имя, пока­зывающее соотношение между сущностями. При проведении связи между сущностями первичный ключ мигрирует в дочернюю сущность.

Следующим этапом при построении логической модели является опре­деление ключевых атрибутов и типов атрибутов.

Таблица 7. Типы атрибутов

Атрибут

Тип

Номер

Number

Ф.И.О.

String

Пароль

String

Возраст

Number

Пол

String

Характеристика

String

E-mail

String

Специальность

String

Специализация

String

Опыт

Number

Место работы

String

Язык

String

Уровень владения

Number

Название

String

Описание

String

Оценка

Number

Дисциплина

String

Ф.И.О. преподавателя

String

Предмет

String


Выберем для каждой сущности ключевые атрибуты, однозначно опре­деляющие сущность. Для сущности «Студент» это будет уникальный но­мер, для сущности «Опыт работы» все поля являются ключевыми, так как по разным специальностям студент может иметь разный опыт рабо­ты в разных фирмах. Сущность «Тест» определяется названием, так как студент по одному тесту может иметь только одну оценку. Оценка по эк­замену определяется только названием предмета, экспертная оценка зави­сит от преподавателя, который ее составил, поэтому в качестве ключевых атрибутов выберем «Дисциплину» и «Ф.И.О. преподавателя». У сущности «Иностранный язык» уровень владения зависит только от наименования языка, следовательно, это и будет являться ключевым атрибутом.