Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка и сопровождение БД в среде MS SQL Se...doc
Скачиваний:
316
Добавлен:
14.11.2019
Размер:
1.71 Mб
Скачать

2.3. Предметная область «Хроника восхождений в альпинистском клубе»

Словесное описание предметной области. В базе данных должны записываться даты начала и завершения каждого восхождения, имена и адреса участвовавших в нем альпинистов, название и высота горы, страна и район, где эта гора расположена.

Разрабатываемая информационная система предназначена для руководства и членов альпинистского клуба.

Схема базы данных в нотации IDEF1X

Описание таблиц базы данных

п.п

Название

Идентификатор

Назначение

Тип связи

Атрибуты для связи

1.

Альпинисты

Climbers

Список членов клуба

1:М Альпинисты в группах

Ид. № альпиниста

2.

Группы

Groups

Список групп

1:М Альпинисты в группах

Ид. № группы

1:М Восхождения

Ид. № группы

3.

Альпинисты в группах

Climbers-Group

Вхождения альпинистов в группы

М:1 Альпинисты

Ид. № альпиниста

М:1 Группы

Ид. № группы

4.

Горы

Mountains

Список гор

1:М Восхождения

Ид. № горы

5.

Восхождения

Ascents

Список восхождений

М:1 Группы

Ид. № группы

М:1 Горы

Ид. № горы

Описание атрибутов таблицы Альпинисты

п/п

Название

Идентификатор

Тип

Размер

Ограничения

Знач. по умолчанию

Обязательное поле?

Признак ключа

1.

Ид. № альпиниста

ID_Climber

N

4

1÷9999

+

PK

2.

ФИО

FIO

С

35

Только буквы

+

3.

Адрес

Address

С

40

+

4.

Телефон

Phone

С

15

5.

Звание

Rank

С

20

6.

Пол

Sex

B

1

0 или 1

1

+

Описание атрибутов таблицы Группы

п/п

Название

Идентификатор

Тип

Размер

Ограничения

Знач. по умолчанию

Обязательное поле?

Признак ключа

1.

Ид. № группы

ID_Group

N

2

1÷99

+

PK

2.

Количество

Amount

N

2

1÷99

+

3.

ФИО руководителя

Leader

С

20

Только буквы

+

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

п/п

Название

Идентификатор

Тип

Размер

Ограничения

Знач. по умолчанию

Обязательное поле?

Признак ключа

1.

Ид. № альпиниста

ID_Climber

N

4

1÷9999

+

FK

2.

Ид. № группы

ID_Group

N

2

1÷99

+

FK

3.

Дата начала восхождения

Date_N

D

8

01.01.1980÷01.01.2010

+

4.

Дата окончания восхождения

Date_N

D

8

01.01.1980÷01.01.2010

+

Описание атрибутов таблицы Горы

п/п

Название

Идентификатор

Тип

Размер

Ограничения

Знач. по умолчанию

Обязательное поле?

Признак ключа

1.

Ид. № горы

ID_ moun-tain

N

3

1÷999

+

PK

2.

Название

Name

С

40

Только буквы

+

АК

3.

Высота

Height

R

7,2

0÷9999

+

4.

Страна

Country

С

20

Только буквы

Россия

+

5.

Район

Region

С

20

Только буквы

Описание атрибутов таблицы Восхождения

п/п

Название

Идентификатор

Тип

Размер

Ограничения

Знач. по умолчанию

Обязательное поле?

Признак ключа

1.

Ид. № группы

ID_Group

N

2

1÷99

+

FK

2.

Ид. № горы

ID_ moun-tain

N

3

1÷999

+

FK

3.

Дата восхождения

Date_A

D

8

01.01.1980÷01.01.2010

+

PK

4.

Успешное?

Successful

B

1

0 или 1

1

+

5.

Длительность

Duration

N

2

1÷99

6.

Количество покоривших гору

Amount

N

2

1÷99

Запросы на выборку данных

  1. Выдать список всех альпинистов, имеющих звание мастер спорта, их фамилии, адреса и телефоны. Список упорядочить по фамилии.

  2. Для каждого альпиниста выдать список групп, в которые он входил, ФИО руководителя группы, период вхождения.

  3. Предоставить информацию о том, сколько альпинистов побывало на каждой горе. Список отсортировать в алфавитном порядке по названию вершин.

  4. Показать список восхождений (групп), которые осуществлялись в указанный пользователем период времени. Для каждой группы показать ее состав.

  5. Выдать список всех альпинистов, осуществивших восхождение на горы заданной страны.

Представления

  1. Создать представление, в котором для каждой горы хранились бы все восхождения, FKлючая дату восхождения, количество дошедших до вершины, ФИО руководителя.

  2. Создать представление, в котором для каждой группы хранить список входящих в нее в разное время альпинистов с их характеристиками.

Хранимые процедуры

  1. Написать хранимую процедуру, которая при добавлении нового восхождения проверяет, не превышает ли длительность восхождения период пребывания каждого альпиниста в этой группе.

  2. Написать хранимую процедуру перехода альпиниста из одной группы в другую.

Триггеры

  1. При удалении альпиниста проверять, остались ли в группах, в которые он входил, еще альпинисты. Если нет, то удалить и группы.

  2. При изменении звания альпиниста проверять, не ниже ли оно предыдущего, что недопустимо.

  3. При добавлении нового альпиниста в группу необходимо проверять, не превысило ли число альпинистов в группе некоторую заданную границу.