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