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

2.5. Предметная область базы данных «Городская Дума»

Словесное описание предметной области. В базе хранятся имена, адреса, домашние и служебные телефоны всех членов Думы. В Думе работает порядка сорока комиссий, все участники которых являются членами Думы. Каждая комиссия имеет свой профиль, например, вопросы образования, проблемы, связанные с жильем, и так далее. Данные по каждой из комиссий включают: председатель и состав, даты включения и выхода из состава комиссии, избрания ее председателей. Члены Думы могут заседать в нескольких комиссиях. В базу заносятся время и место проведения каждого заседания комиссии с указанием депутатов Думы, которые участвуют в его организации.

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

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

п.п

Название

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

Назначение

Тип связи

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

1.

Депутаты

Deputies

Список депутатов

1:М Депутаты в комиссиях

Ид. № депутата

2.

Комиссии

Commissi-ons

Список комиссий

1:М Депутаты в комиссиях

Ид. № комиссии

1:М Заседания

Ид. № комиссии

3.

Депутаты в комиссиях

Deputies-Сommissi-on

Участие депутатов в комиссиях

М:1 Депутаты

Ид. № депутата

М:1 Комиссии

Ид. № комиссии

4.

Заседания

Meetings

Заседания комиссий

М:1 Комиссии

Ид. № комиссии

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

п/п

Название

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

Тип

Размер

Ограничения

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

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

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

1.

Ид. № депутата

ID_ Deputy

N

3

1÷999

+

PK

2.

ФИО

FIO

С

35

Только буквы

+

AK

3.

Адрес

Address

С

40

+

4.

Домашний телефон

Phone_H

С

15

5.

Служебный телефон

Phone_O

С

15

+

6.

Пол

Sex

B

1

0 или 1

1

+

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

п/п

Название

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

Тип

Размер

Ограничения

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

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

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

1.

Ид. № комиссии

ID_ Com-mission

N

2

1÷99

+

PK

2.

Наименование

Name

С

35

Только буквы

+

AK

3.

Председатель

Chairman

С

35

Только буквы

+

AK

4.

Дата избрания

Date_E

D

8

01.01.1980÷01.01.2010

+

5.

Профиль

Profile

С

80

Только буквы

+

Описание атрибутов таблицы Депутаты в комиссиях

п/п

Название

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

Тип

Размер

Ограничения

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

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

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

1.

Ид. № депутата

ID_ Deputy

N

3

1÷999

+

FK

2.

Ид. № комиссии

ID_ Com-mission

N

2

1÷99

+

FK

3.

Дата включения

Date_In

D

8

01.01.1980÷01.01.2010

+

4.

Дата выхода

Date_Out

D

8

01.01.1980÷01.01.2010

+

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

п/п

Название

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

Тип

Размер

Ограничения

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

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

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

1.

Ид. № комиссии

ID_ Com-mission

N

2

1÷99

+

FK

2.

Дата заседания

Date_M

D

8

01.01.1980÷01.01.2010

+

PK

3.

Время начала

Zero

D

8

01.01.1980÷01.01.2010

4.

Место заседания

Place

С

35

Только буквы

Зал № 5

+

5.

ФИО_ организатора

Organizer

С

35

Только буквы

+

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

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

  2. Для каждого депутата выдать список всех комиссий, членом которых он когда-либо являлся, их профиль, ФИО их председателей, дату включения и выхода.

  3. По каждой комиссии показать количество проведенных заседаний в указанный период времени.

  4. Используя самосоединение таблиц получить все пары комиссий, заседания которых проходили в один и тот же день в указанный период времени.

  5. Выдать список всех депутатов, которые заседали в заданную дату в какой-либо комиссии. В результирующей таблице должны быть указаны адреса и телефоны депутатов, название комиссии, ее профиль и председатель.

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

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

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

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

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

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

Триггеры

  1. При удалении записи о членстве депутата в комиссии проверять, является ли депутат членом какой-либо другой комиссии. Удаление недопустимо, если в результате депутат не будут входить ни в одну комиссию.

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

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