Учебное пособие Санкт-Петербург «бхв-петербург»


NOT NULL, -- Номер билета



Download 1,88 Mb.
Pdf ko'rish
bet89/256
Sana21.02.2022
Hajmi1,88 Mb.
#24505
TuriУчебное пособие
1   ...   85   86   87   88   89   90   91   92   ...   256
Bog'liq
morgunov e p postgresql osnovy yazyka sql

NOT NULL, -- Номер билета
flight_id
integer
NOT NULL, -- Идентификатор рейса
fare_conditions varchar( 10 )
NOT NULL, -- Класс обслуживания
amount
numeric( 10, 2 ) NOT NULL, -- Стоимость перелета
CHECK ( amount >= 0 ),
CHECK ( fare_conditions IN ( 'Economy', 'Comfort', 'Business' ) ),
PRIMARY KEY ( ticket_no, flight_id ),
FOREIGN KEY ( flight_id )
REFERENCES flights ( flight_id ),
FOREIGN KEY ( ticket_no )
REFERENCES tickets ( ticket_no )
);
Последняя таблица нашей базы — это «Посадочные талоны» (boarding_passes).
Все атрибуты, представленные в ней, за исключением атрибута «Номер посадочного
талона» (boarding_no), вам уже известны из других таблиц. А номер посадочного
талона — это просто целое число, порядковый номер пассажира при регистрации би-
летов на конкретный рейс, поэтому тип данных выбирается integer.
Обратите внимание, что эта таблица имеет связь типа 1:1 с таблицей «Перелеты». Это
объясняется тем, что пассажир, купивший билет на конкретный рейс, при регистра-
ции получает только один посадочный талон. Конечно, если пассажир не явился на
регистрацию, он не получает талона. Поэтому число строк в таблице «Посадочные
талоны» может в общем случае оказаться меньше числа строк в таблице «Переле-
ты». Логично ожидать, что первичные ключи у этих двух таблиц будут одинаковы-
ми: они включают атрибуты «Номер билета» (ticket_no) и «Идентификатор рейса»
(flight_id). Поскольку таблица «Перелеты» все же является главной в этой связке
таблиц, то в таблице «Посадочные талоны» создается внешний ключ, ссылающийся
на нее. А поскольку тип связи между таблицами — 1:1, то внешний ключ совпадает с
первичным ключом.
Известно, что номер конкретного места в самолете пассажир получает при регистра-
ции билета, а не при его бронировании, поэтому атрибут «Номер места» (seat_no)
находится в таблице «Посадочные талоны», а не в таблице «Перелеты».
Нельзя допустить, чтобы на одно место в салоне были направлены два и более пас-
сажиров, поэтому создается уникальный ключ с атрибутами «Идентификатор рейса»
(flight_id) и «Номер места» (seat_no). Еще один уникальный ключ призван га-
рантировать несовпадение номеров посадочных талонов на данном рейсе, он вклю-
чает атрибуты «Идентификатор рейса» (flight_id) и «Номер посадочного талона»
(boarding_no).
114


5.2. Создание и удаление таблиц

Download 1,88 Mb.

Do'stlaringiz bilan baham:
1   ...   85   86   87   88   89   90   91   92   ...   256




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish