Ниже приведены подробные описания таблиц базы данных ГТС с классификацией сущностей и выделением первичных ключей:
Create table АТС |
(Код_АТС smallint NOT NULL Район char(20) NOT NULL, Тип_АТС smallint NOT NULL) |
*(Стержневая сущность)
Первичный ключ (Код_АТС)
Ограничения |
Значения поля Код_АТС должны быть уникальными, двузначными числами; |
Значения поля Район принимают значения Железнодорожный, Центральный, Октябрьский, Ленинский, Дзержинский (для определенности будем считать что в городе всего 5 районов), |
|
Значения поля Тип_АТС принимают значения от 1 до 3 – по числу подтипов |
Create table Очередь(Район char(20) NOT NULL,
Кабель smallint NOT NULL,
Канал smallint NOT NULL,
Тип_очереди smallint NOT NULL)
*(Характеристическая сущность – не может существовать без сущности АТС)
Первичный ключ (Район)
Внешний ключ (Район)
Ограничения |
Значения поля Район принимают значения Железнодорожный, Центральный, Октябрьский, Ленинский, Дзержинский; |
Значения поля Кабель принимают значения от 0 и выше (для установки скольких аппаратов есть кабель) |
|
Значения поля Канал принимают значения от 0 и выше (для установки скольких аппаратов есть канал) |
|
Значения поля Тип_очереди принимают значения 1 и 0 (льготная или обычная очередь соответственно) |
Create table Номера(Номер_тел integer NOT NULL,
Код_АТС smallint NOT NULL,
Код_телефона smallint,
Межгород_код smallint ,
Код_вкл_тел smallint )
*(Характеристическая сущность – не может существовать без сущности АТС)
Первичный ключ (Номер_тел)
Внешний ключ (Номер_тел,Код_АТС)
Обновление Номера каскадируются
Ограничения |
Значения поля Номер_тел – это шестизначные целые числа, причем первые две цифры должны совпадать с кодом АТС |
Значения поля Код_АТС должны быть уникальными, двузначными числами; |
|
Значения поля Код_телефона принимают значения NULL – если номер свободен, 0 - если это номер обычного телефона, 1 - если это номер спаренного телефона, 2 - если это номер параллельного телефона, 3 - если это номер общественного телефона или таксофона |
|
Значения поля Межгород_код принимают значения NULL – если номер свободен или в принципе нет выхода на межгород, 0 - если межгород подключен, 1 - если межгород отключен за неуплату, 2 - если межгород отключен по желанию абонента |
|
Значения поля Код_вкл_тел принимают значения NULL – если номер свободен, 0 - если телефон отключен 1 - если телефон подключен |
Create table Звонки(Номер_тел integer NOT NULL,
Дата data NOT NULL,
Номер_тел_назн integer NOT NULL,
Число_ звонков smallint NОТ NULL)
*(Характеристическая сущность – не может существовать без сущности Номера)
Первичный ключ (Номер_тел,Дата,Номер_тел_назн)
Внешний ключ (Номер_тел)
Ограничения |
Значения поля Номер_тел – это шестизначные целые числа |
Значения поля Дата должно быть реальной датой |
|
Значения поля Номер_тел_назн – это шестизначные целые числа,для каждого экземпляра сущности значения полей Номер_тел и Номер_тел_назн не равны |
|
Значения поля Число_звонков принимают значения от 1 и больше |
Create table Межгород_звонки(Номер_тел integer NOT NULL,
Город char(20) NOT NULL,
Дата data NOT NULL,
Длительность integer NOT NULL,
Число_ звонков smallint NОТ NULL)
*(Характеристическая сущность – не может существовать без сущности Номера)
Первичный ключ (Номер_тел,Город,Дата,Длительность)
Внешний ключ (Номер_тел)
Ограничения |
Значения поля Номер_тел – это шестизначные целые числа; |
Значения поля Город должны принадлежать множеству Москва, Санкт-Петербург, Тула, Красноярск, Бердск (для упрощения задачи предположим что связаться можно только с этими городами); |
|
Значения поля Дата должно являться реальной датой |
|
Значения поля Длительность – это целое число, обозначающее длительность разговора в минутах; |
|
Значения поля Число_звонков принимают значения от 1 и больше. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.