Анализ описанной предметной области и решаемых задач позволили выделить следующие сущности:
1 АТС;
2 номера телефонов, подключенных к абонентам;
3 абоненты;
4 должники;
5 свободные телефонные номера;
6 междугородные разговоры;
7 городские разговоры;
8 очередь на телефон;
9 общественные телефоны.
Классификация сущностей
Сущности (1), (8), (3) имеет смысл классифицировать как стержневые сущности;
Сущности (6), (2), (4), (5) - как характеристики, так как их существование ((6), (2), (4)) невозможно без сущности (3) и существование сущности (5) невозможно без сущности (1);
Обозначающая сущность - это сущность (9), а (7) - это ассоциация между экземплярами сущности (3).
Описание инфологической модели базы данных ГТС на языке мифологического проектирования:
1 АТС (код АТС, тип АТС)
2 номера (код_АТС, номер, вид, тип)
3 абоненты (код абонента, номер, ФИО, улица, номер_дома, номер_квартиры, возраст, район, есть_льгота, есть_межгород);
4 должники (код абонента, долг_межгород, долг_абонент, сумма, дата);
5 свободные номера (номер, район, код_АТС);
6 междугородние разговоры (код разговора, код_абонента, город, сумма, время, дата);
7 городские разговоры (код разговора, код абонента, код собеседника, время, дата);
8 очередь на телефон (код очередности, адрес, район, есть_льгота,тип_АТС, тип_телефона);
9 общественные телефоны (такс код, код_АТС, адрес, район);
|
|
|
тип char(6) NOT NULL check (тип in ('оси', 'парал1, 'спар'))); Первичный ключ: номер Внешний ключ: код_АТС из (R5) \ NULL- значения не допустимы; Удаления и обновления изАТС.код_АТС каскадируются.
•ч
Ограничения:
^"^™"^^™"^™'^™^^ , . ^
1) Значение поля номер должны быть уникальными:
2) Значение поля вид должны принадлежать набору значений «внутренний», «внешний»;
3) Зачение поля тип должны принадлежать набору значений «парал», «оси», «спар»;
4) Значение поля код_АТС должны принадлежать набору значений из соответствующего поля таблицы АТС.
Create table абоненты
(код_абонентаchar(6) NOT NULL primary key,
номерchar(6) NOT NULL references номера(номер) on delete
cascade,
ФИОchar(20) NOT NULL, улица - char(20) NOT NULL,
помер_домаsmallint NOT NULL check (номер_дома>0\ номер_квартирыsmallint NOT NULL check (номер_квартиръ£>0\ возрастsmallint check (возряст> 18 and возраст<100\ сущ_лъготаchar(4) NOT NULL check (сущ_лъготаin ('да','нет')), сущ_межгородchar(4) NOT NULL check (сущ_межгородin (да1,'нет'));
Первичный ключ: код_абонента
Внешний ключ: номер из таблицы номера (R6) NULL - значения не допустимы; Удаления и обновления из номера.номер каскадируются.
Ограничения:
1) Зачение полей номер_дома, номер_квартиры должны быть больше 0.
2) Значение поля возраст должны быть больше 18, и меньше 100.
т
3) сущ_лъгота, сущ_межгород - значения этих полей должны принадлежать набору значений «да», «нет»
-ю-
4) Значение поля номер должно принадлежать набору значений из соответствующего поля таблицы номера
5) Значения поля код_абонента должны быть уникальными.
Create table должники
(код_абонёнтаchar(6) NOT NULL primary key,
долг_межгородchar(6) NOT NULL check (долг_межгородin
Сда','нет')),
долг_абонентchar(20) NOT NULL check (долг_абонентin ('да','нет')), суммаsmallint NOT NULL check (сумма>0\ датаdate NOT NULL);
Первичный ключ: код_абонента
Внешний ключ: код_абонента из таблицы абоненты (R2) NULL - значения не допустимы;
Удаления и обновления из абоненты. код_абонента каскадируются. Ограничения:
1) Значения поля код_абонента должны быть уникальными.
2) Значение поля код_абонента должен соответствовать значениям поля код_абонента из таблицы абоненты.
3) долг_межгород, долг_абонент - значения этих полей должны принадлежать набору значений «да», «нет»
4) Значение поля сумма больше нуля.
5) Значение поля долг_за _межгород не может быть равно 'да' для абонентов, у которых нет выхода на межгород (отключен за неуплату или по собственному желанию).
Create table свободныеномера(номерchar(6) NOT NULL primary key, районchar(20) NOT NULL,
код_АТСchar(6) NOT NULL references АТС(код_АТС) on delete cascade); Первичныйключ: номер Внешнийключ: код_АТСиз «ЛГС» (R1) NULL - значения не допустимы; Удаления,обновления из АТС.код_АТСкаскадируются. Внешнийключ: райониз таблицы очередь нателефон(R9)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.