Сравнение ограничений
Тип ограничения |
Объявление |
Условие проверки |
Обязательность выполнения |
Основанное на атрибуте CHECK |
Вместе с атрибутом |
При введении или при изменении атрибута |
Не обязхательно, если имеются подзапросы |
Основанное на кортеже CHECK |
Как элемент реляционной схемы |
При ведении или при изменении кортежа |
Не обязхательно, если имеются подзапросы |
Утверждение |
Как элемент БД |
При любом изменении любого из отношений |
Обязательно |
2. Порядок выполнения работы
Запишите на языке SQL следующие ограничения, применяемые к базе данных кораблей:
Каждый класс, упомянутый в Ships, должен быть упомянут и в Classes.
Каждое сражение, упомянутое в Outcomes, должно быть упомянуто и в Battles.
Каждый корабль, упомянутый в Outcomes, должен быть упомянут и в Ships.
Ни один класс не может иметь более двух кораблей.
Ни одна из стран не может иметь и линкоры и крейсеры.
Ни один корабль, имеющий более девяти орудий, не мог участвовать в одном сражении с кораблем, у которого меньше девяти орудий и который был потоплен в сражении.
Ни один корабль не мог быть спущен на воду раньше корабля того же класса, носящего имя класса.
Для каждого класса существует корабль с именем этого класса.
Запишите на языке SQL следующие ограничения, применяемые к базе данных компьютеров:
Типами принтеров могут быть только Laser и Ink-jet.
Типами продукта может быть только PC, laptop, printer.
Объем RAM должен составлять не менее 1% от объема жесткого диска.
Ни один производитель PC не может производить лаптопы.
Производитель PC должен производить и лаптопы по меньшей мере с такой же скоростью процессора.
Если объем RAM лаптопа превышает объем RAM PC, то его цена должна быть выше цены PC.
Ни один номер модели не может появляться дважды в отношениях PC, Laptop, Printer.
Если модель и ее тип упоминается в отношении Product, то эта модель должна появляться в отношении, подходящем для данного типа.
Приложение 1
База данных спектаклей
Performances
title |
year |
runningTime |
type |
theatre |
composer |
producerC# |
Aida |
1998 |
260 |
perform |
Mariinsky |
Diuseppe Verdy |
123456 |
Don Carlos |
1999 |
225 |
perform |
La Scala |
Diuseppe Verdy |
234567 |
Don Pascuale |
1997 |
125 |
concert |
Mariinsky |
Gaetano Donizetti |
null |
Macbeth |
2001 |
180 |
perform |
Mariinsky |
Pyotr Tchaikovsky |
456789 |
Swan lake |
1950 |
175 |
perform |
Mariinsky |
Pyotr Tchaikovsky |
567890 |
Giselle |
1884 |
125 |
perform |
Mariinsky |
Adolphe Adam |
789012 |
Salome |
2000 |
90 |
perform |
Mariinsky |
Richard Strauss |
890123 |
Carmen |
1998 |
22 |
perform |
Sarah Bernhart |
George Bizet |
901234 |
Apollo |
1928 |
33 |
perform |
Mariinsky |
Igor Stravinsky |
112345 |
Otello |
1976 |
180 |
perform |
La Scala |
Diuseppe Verdy |
223456 |
Romeo and Juliet |
2001 |
180 |
perform |
Covent Garden |
Sergei Prokofiev |
334567 |
Arabella |
1997 |
180 |
perform |
Covent Garden |
Peter Mussbach |
445678 |
ActsIn
perfTitle |
theatreName |
perfYear |
actorName |
Don Carlos |
La Scala |
1999 |
Olga Borodina |
Carmen |
La Canerenlola |
1998 |
Olga Borodina |
Aida |
Mariinsky |
1998 |
Olga Borodina |
Aida |
Mariinsky |
1998 |
Irina Bogacheva |
Rigoletto |
Bolshoy Theatre |
1980 |
Irina Bogacheva |
Samson and Dalila |
Mariinsky |
2003 |
Irina Bogacheva |
Carmen |
Mariinsky |
1998 |
Yury Marusin |
La Traviata |
Bolshoy Theatre |
1980 |
Yury Marusin |
Swan Lake |
Mariinsky |
1950 |
Ulyana Lopatkina |
Giselle |
Mariinsky |
1884 |
Ulyana Lopatkina |
Giselle |
Mariinsky |
1884 |
Farukh Ruzimatov |
Apollo |
Mariinsky |
1928 |
Farukh Ruzimatov |
Otello |
La Scala |
1976 |
Plassito Domingo |
Otello |
La Scala |
1976 |
Frivotti Nuggi |
Actors
name |
address |
ampoule |
gender |
bithdate |
Olga Borodina |
Saint Petersburg Garden st.10/10 |
Singer |
F |
1972-02-02 |
Irina Bogacheva |
Saint Petersburg Nevsky st.15/15 |
Singer |
F |
1950-01-01 |
Yury Marusin |
Saint Petersburg Grate Sea st.15/15 |
Singer |
M |
1945-05-05 |
Ulyana Lopatkina |
Saint Petersburg Small Sea st.25/25 |
Principal dancer |
F |
1975-05-05 |
Farukh Ruzimatov |
Saint Petersburg Nevsky st.150/15 |
Principal dancer |
M |
1973-03-03 |
Plassito Domingo |
Milan |
Singer |
M |
1966-06-06 |
Producers
name |
address |
cert# |
networth |
Alexei Stepaniuk |
Saint Petersburg Garden st.10/10 |
123456 |
110000 |
Yury Alexandrov |
Saint Petersburg Lime av.15/15 |
234567 |
210000 |
David McVicar |
London Old st. 12/2 |
456789 |
1200000 |
Lev Ivanov |
Saint Petersburg Palace quay 21 |
567890 |
400000 |
Jules Perrot |
Paris Capuchin av.112 |
789012 |
550000 |
David Freeman |
New York Fifth av.133 |
890123 |
630000 |
Rollan Petit |
Paris Capuchin av.150 |
901234 |
920000 |
George Balanchine |
Paris |
012345 |
100000 |
Valery Gergiev |
Saint Petersburg Theatre sq.1 |
001122 |
1000000 |
Karlo Fontana |
Milan |
223456 |
10000000 |
Kennet Macmillan |
London Olg St 33 |
334567 |
20000000 |
Peter Mussbach |
London Liverpool st 17 |
445678 |
22000000 |
Theatre
teatreName |
artDirector |
city |
cert# |
Mariinsky |
Valery Gergiev |
Saint Petersburg |
001122 |
La Scala |
Karlo Fontana |
Milan |
223456 |
Covent Garden |
Russel Roberts |
London |
333444 |
Bolshoy Theatre |
Valery Borisov |
Moscow |
444555 |
Grand Opera |
Rudolf Nuriev |
Paris |
555666 |