Разработка АИС "Учет личного состава полка"
Описание предметной области (ПО).
В полку несколько батальонов, в батальоне - несколько рот, в роте несколько взводов, во взводе - несколько отделения. Личный состав полка состоит из офицеров (лейтенант, , полковник) и рядовых. По достижении возраста 60 лет офицеры увольняются в запас. Срок службы рядовых - 2 года.
Про каждого военнослужащего известно: чин (рядовой,…, полковник), должность (ком. отделения,.., ком. полка), дата рождения, дата вступления в армию, личный номер, номер отделения, номер взвода, номер роты, номер батальона, дата присвоения очередного звания (для офицеров).
Про каждое отделение известно: номер отделения, личный номер военнослужащего-командира, № взвода.
Про каждый взвод известно: номер взвода, личный номер военнослужащего-командира, № роты.
Про каждую роту известно: номер роты, личный номер военнослужащего-командира, № батальона.
Про каждое батальон известно: номер батальона, личный номер военнослужащего-командира.
Семантические допущения:
Ø Номера отделений в разных взводах, взводов в разных ротах, рот в разных батальонах могут повторяться
Ø Каждый военнослужащий в любой момент времени причислен только к одному подразделению
Ø В составе каждого отделения могут быть только рядовые
Ø Каждым подразделением, начиная со взвода, командует только офицер
Ø Каждым отделение может командовать как офицер, так и рядовой
Ø Командир подразделения причислен к своему подразделению
Ø Любое подразделение (в т.ч. и полк) может временно не иметь командира
Ø Каждый офицер должен быть командиром какого-то подразделения
Ø У каждого подразделения может быть не более одного командира
Могут быть сделаны и другие обоснованные допущения
Задание
Написать команды SQL Oracle для следующих операций манипулирования данными:
1. Выдать список личного состава полка, упорядоченный по чинам (с графами: личный №, чин, должность, № отделения, № взвода, № роты, № батальона)
2. Выдать список всех командиров полка (с графами: личный №, чин, должность, № отделения, № взвода, № роты, № батальона)
3. Выдать список всех офицеров полка (с графами: личный №, чин, должность, № отделения, № взвода, № роты, № батальона)
4. Выдать список всех рядовых полка, упорядоченный по № отделения и дате вступления в армию (с графами: личный №, чин, должность, № отделения, № взвода, № роты, № батальона)
5. Уволить офицера еще до достижения им 60 лет
6. Уволить рядового до истечения 2-летнего срока службы
7. Выдать список всех лейтенантов - командиров взводов, упорядоченный по личному номеру
8. Выдать список всех офицеров полка, которым осталось менее 2 лет до пенсии
9. Принять на службу офицера
10. Зачислить рядового
11. Выдать список должностей, которые освободятся в течение 1 года от даты Д
12. Выдать список рядовых роты Р, батальона Б, прослуживших на дату Д менее 1 года
13. Выдать список рядовых - начальников отделений
14. Выдать список майоров, каким он будет через год от даты Д (только с учетом присвоения очередных званий)
15. Выдать список всех подразделений (всех уровней), не имеющих командиров на дату Д
16. Выдать список всех командиров рот старше 45 лет на дату Д
17. Выдать список всех рядовых, подлежащих увольнению в течение 1 месяца после даты Д
18. Выдать список личного состава полка, каким он будет через 5 лет (без учета пополнения)
19. Повысить в должности офицера Х (с ком. взвода до ком. роты)
20. Перевести рядового из одного отделения в другое
21. Выдать список всех взводов, упорядоченный по их численности, включая командиров
Для упрощения SQL-запросов можно использовать представления.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.