Разработка защищенной базы данных
Заказать уникальную курсовую работу- 61 61 страница
- 11 + 11 источников
- Добавлена 09.01.2024
- Содержание
- Часть работы
- Список литературы
Введение 6
1 Описание предметной области и схемы модели данных 7
1.1 Описание деловых процессов, происходящих при работе предприятия 7
1.2 Разработка ER-модели (entity-relationship model) для предметной области 9
2 Реализация базы данных 14
2.1 Создание и заполнение базы данных 14
3 Реализация механизмов обеспечения безопасности БД 19
3.1 Разработка ограничения целостности 19
3.2 Разработка вложенных запросов 21
3.3 Разработка запросов, в которых задействованы все таблицы 22
3.4 Разработка функций и триггеров 23
3.5 Разработка хранимых процедур 24
3.6 Разработка функций на процедурном языке 25
3.8 Реализация представлений 26
3.7 Реализация индексов 28
3.8 Создание пользователей 30
3.9 Реализация шифрования данных 32
3.10 Реализация аудита изменений данных 33
3.11 Реализация резервного копирования БД 36
3.12 Реализация репликации 38
4 Разработка приложения 40
4.1 Планирование этапов разработки приложения БД 40
4.2 Разработка интерфейса 44
Заключение 45
Список использованных источников 46
Приложение А 48
Приложение Б 51
П. Стружкин, В. В. Годин. — Москва : Издательство Юрайт, 2023. — 477 с. — (Высшее образование). — ISBN 978-5-534-00229-4. — URL :https://urait.ru/bcode/511019 (дата обращения: 26.11.2023)ПриложениеАТаблица А.1. Сущность «Address»АтрибутыТип данныхПервичный ключВнешний ключID_AddressINTEGER+-AdressCHARACTER(60)--Таблица А.2. Сущность «Bank»АтрибутыТип данныхПервичный ключВнешний ключID_BankINTEGER+-BankCHARACTER(60)--Таблица А.3. Сущность «Cinema»АтрибутыТип данныхПервичный ключВнешний ключID_CinemaINTEGER+-CinemaCHARACTER(20)--INNcinemaCHARACTER(10)--ID_AdressINTEGER-+ChiefINTEGER-+OwnerINTEGER-+ID_BankINTEGER-+ID_DistrictINTEGER-+PhoneCHARACTER(10)--AccountCinemaCHARACTER(20)--CapacityNUMERIC(4,0)--Таблица А.4. Сущность «Company»АтрибутыТип данныхПервичный ключВнешний ключID_CompanyINTEGER+-CompanyCHARACTER(40)--Таблица А.5. Сущность «District»АтрибутыТип данныхПервичный ключВнешний ключID_DistrictINTEGER+-DistrictCHARACTER(20)--Таблица А.6. Сущность «Employ»АтрибутыТип данныхПервичный ключВнешний ключId_employINTEGER+-EmployCHARACTER(60)--Таблица А.7. Сущность «Film»АтрибутыТип данныхПервичный ключВнешний ключID_FilmINTEGER+-FilmCHARACTER(20)--CommentCHARACTER(255)--YearNUMERIC(4,0)--ExpenseDECIMAL(15)--Translateboolean--ScriptINTEGER-+ProducerINTEGER-+ID_CompanyINTEGER-+Таблица А.8. Сущность «People»АтрибутыТип данныхПервичный ключВнешний ключId_PeopleINTEGER+-PeopleCHARACTER(60)--Таблица А.9. Сущность «Provider»АтрибутыТип данныхПервичный ключВнешний ключID_ProviderINTEGER+-ProviderCHARACTER(40)--INNCHARACTER(10)--AccountCHARACTER(20)--Signboolean--ID_AdressINTEGER-+ID_BankINTEGER-+Таблица А.10. Сущность «Rent_cert»АтрибутыТип данныхПервичный ключВнешний ключId_rent_certINTEGER+-ID_FilmINTEGER-+ID_ProviderINTEGER-+CostMONEY--Date_rent_certDATE--Таблица А.11. Сущность «Rental»АтрибутыТип данныхПервичный ключВнешний ключID_RentalINTEGER+-DateStartDATE--DateStopDATE--PhoneWorkerINTEGER--SummaMONEY--TaxMONEY--WorkerINTEGER-+ID_CinemaINTEGER-+Id_rent_certINTEGER-+Приложение БЛистинг Б.1. Скрипт на создание таблицы «Provide»CREATE TABLE "Provider"( "ID_Provider" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Provider" Character(40), "INN" Character(10), "Account" Character(20), "Sign" Boolean, "Address_prov" Integer, "Bank_prov" Integer)WITH ( autovacuum_enabled=true);CREATE INDEX "IX_Relationship1" ON "Provider" ("Address_prov");CREATE INDEX "IX_Relationship2" ON "Provider" ("Bank_prov");ALTER TABLE "Provider" ADD CONSTRAINT "PK_Provider" PRIMARY KEY ("ID_Provider");ALTER TABLE "Provider"ADD CONSTRAINT "Владеетрасчетнымсчетом"FOREIGN KEY ("Bank_prov") REFERENCES "Bank" ("ID_Bank") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Provider" ADD CONSTRAINT "Имеетадрес" FOREIGN KEY ("Address_prov") REFERENCES "Address" ("ID_Address") ON DELETE NO ACTION ON UPDATE NO ACTION;ЛистингБ.2. Скрипт на создание таблицы «Film»CREATE TABLE "Film"( "ID_Film" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Film" Character(20), "Comment" Character varying, "Year" Numeric(4,0), "Expense" Money, "Translate" Boolean, "Company" Integer NOT NULL, "Script" Integer NOT NULL, "Producer" Integer NOT NULL)WITH ( autovacuum_enabled=true);CREATE INDEX "IX_Relationship4" ON "Film" ("Company");CREATE INDEX "IX_Relationship5" ON "Film" ("Script");CREATE INDEX "IX_Relationship6" ON "Film" ("Producer");ALTER TABLE "Film" ADD CONSTRAINT "PK_Film" PRIMARY KEY ("ID_Film");ALTER TABLE "Film" ADD CONSTRAINT "Имеетрежиссера" FOREIGN KEY ("Producer") REFERENCES "People" ("Id_People") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Film" ADDCONSTRAINT "Имеетавторасценария"FOREIGN KEY ("Script") REFERENCES "People" ("Id_People") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Film" ADDCONSTRAINT "Естькомпанияпроизводитель"FOREIGN KEY ("Company") REFERENCES "Company" ("ID_Company") ON DELETE NO ACTION ON UPDATE NO ACTION;ЛистингБ.3. Скрипт на создание таблицы «Company»CREATE TABLE "Company"( "ID_Company" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1),"Company" Character(40))WITH ( autovacuum_enabled=true);ALTER TABLE "Company" ADD CONSTRAINT "PK_Company" PRIMARY KEY ("ID_Company");Листинг Б.4. Скрипт на создание таблицы «Cinema»CREATE TABLE "Cinema"( "ID_Cinema" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Cinema" Character(20), "INN_Cinema" Character(10), "Phone" Character(10), "AccountCinema" Character(20), "Capacity" Numeric(4,0), "District_Cinema" Integer, "Owner" Integer, "Chief" Integer, "Bank_Cinema" Integer, "Address_Cinema" Integer)WITH ( autovacuum_enabled=true);CREATE INDEX "IX_Relationship8" ON "Cinema" ("District_Cinema");CREATE INDEX "IX_Relationship9" ON "Cinema" ("Owner");CREATE INDEX "IX_Relationship10" ON "Cinema" ("Chief");CREATE INDEX "IX_Relationship11" ON "Cinema" ("Bank_Cinema");CREATE INDEX "IX_Relationship12" ON "Cinema" ("Address_Cinema");ALTER TABLE "Cinema" ADD CONSTRAINT "PK_Cinema" PRIMARY KEY ("ID_Cinema");ALTER TABLE "Cinema" ADD CONSTRAINT "Имеетадрес1" FOREIGN KEY ("Address_Cinema") REFERENCES "Address" ("ID_Address") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Cinema" ADDCONSTRAINT "Владеетрасчетнымсчетом1"FOREIGN KEY ("Bank_Cinema") REFERENCES "Bank" ("ID_Bank") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Cinema" ADD CONSTRAINT "Естьдиректор" FOREIGN KEY ("Chief") REFERENCES "Employ" ("ID_Employ") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Cinema" ADD CONSTRAINT "Естьвладелец" FOREIGN KEY ("Owner") REFERENCES "Employ" ("ID_Employ") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Cinema" ADDCONSTRAINT "Находитсяврайоне"FOREIGN KEY ("District_Cinema") REFERENCES "District" ("ID_District") ON DELETE NO ACTION ON UPDATE NO ACTION;ЛистингБ.5. Скрипт на создание таблицы «Address»CREATE TABLE "Address"( "ID_Address" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Address" Character(60))WITH ( autovacuum_enabled=true);ALTER TABLE "Address" ADD CONSTRAINT "PK_Address" PRIMARY KEY ("ID_Address");Листинг Б.6. Скрипт на создание таблицы «Bank»CREATE TABLE "Bank"( "ID_Bank" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Bank" Character(60))WITH ( autovacuum_enabled=true);ALTER TABLE "Bank" ADD CONSTRAINT "PK_Bank" PRIMARY KEY ("ID_Bank");Листинг Б.7. Скрипт на создание таблицы «People»CREATE TABLE "People"( "Id_People" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "People" Character(60))WITH ( autovacuum_enabled=true);ALTER TABLE "People" ADD CONSTRAINT "PK_People" PRIMARY KEY ("Id_People");Листинг Б.8. Скрипт на создание таблицы «Employ»CREATE TABLE "Employ"( "ID_Employ" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Employ" Character(60))WITH ( autovacuum_enabled=true);ALTER TABLE "Employ" ADD CONSTRAINT "PK_Employ" PRIMARY KEY ("ID_Employ");Листинг Б.9. Скрипт на создание таблицы «District»CREATE TABLE "District"( "ID_District" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "District" Character(20))WITH ( autovacuum_enabled=true);ALTER TABLE "District" ADD CONSTRAINT "PK_District" PRIMARY KEY ("ID_District");Листинг Б.10. Скрипт на создание таблицы «Rent_cert»CREATE TABLE "Rent_cert"( "ID_rent_cert" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "Cost" Money, "Date_rent_cert" Date, "ID_Provider" Integer NOT NULL, "ID_Film" Integer NOT NULL)WITH ( autovacuum_enabled=true);CREATE INDEX "IX_Relationship20" ON "Rent_cert" ("ID_Provider");CREATE INDEX "IX_Relationship21" ON "Rent_cert" ("ID_Film");ALTER TABLE "Rent_cert" ADD CONSTRAINT "PK_Rent_cert" PRIMARY KEY ("ID_rent_cert");ALTER TABLE "Rent_cert" ADD CONSTRAINT "Key1" UNIQUE ("ID_Provider","ID_Film");ALTER TABLE "Rent_cert" ADD CONSTRAINT "Экземплярфильмавпрокат" FOREIGN KEY ("ID_Film") REFERENCES "Film" ("ID_Film") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Rent_cert" ADDCONSTRAINT "Прокатчикберетфильм"FOREIGN KEY ("ID_Provider") REFERENCES "Provider" ("ID_Provider") ON DELETE NO ACTION ON UPDATE NO ACTION;ЛистингБ.11. Скрипт на создание таблицы «Rental»CREATE TABLE "Rental"( "ID_Rental" Integer NOT NULL GENERATED ALWAYS AS IDENTITY (INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 1 CACHE 1), "DateStart" Date, "DateStop" Date, "PhoneWorker" Character(20), "Summa" Money, "Tax" Money, "Worker" Integer, "ID_rent_cert" Integer, "ID_Cinema" Integer)WITH ( autovacuum_enabled=true);CREATE INDEX "IX_Relationship16" ON "Rental" ("Worker");CREATE INDEX "IX_Relationship23" ON "Rental" ("ID_rent_cert");CREATE INDEX "IX_Relationship24" ON "Rental" ("ID_Cinema");ALTER TABLE "Rental" ADD CONSTRAINT "PK_Rental" PRIMARY KEY ("ID_Rental");ALTER TABLE "Rental" ADD CONSTRAINT "Прокатфильмавкинотеатре" FOREIGN KEY ("ID_Cinema") REFERENCES "Cinema" ("ID_Cinema") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Rental" ADDCONSTRAINT "Фильмсдаетсявпрокат"FOREIGN KEY ("ID_rent_cert") REFERENCES "Rent_cert" ("ID_rent_cert") ON DELETE NO ACTION ON UPDATE NO ACTION;ALTER TABLE "Rental" ADD CONSTRAINT "Естьответственный" FOREIGN KEY ("Worker") REFERENCES "Employ" ("ID_Employ") ON DELETE NO ACTION ON UPDATE NO ACTION;ЛистингБ.12. Скрипт на добавление данных в таблицу «Rental»INSERT INTO public."Address"("Address")VALUES('Ленина 14'),('Центральная 17),('Комсомольский 88'),('Северная 18 стр. 9'),('Линейная 88 стр. 1'),('Новая 19/2'),('Ямская 90 пом.63');Листинг Б.13. Скрипт на добавление данных в таблицу «Bank»INSERT INTO public."Bank"("Bank")VALUES('ПАОВТБ'),('АОСбербанк'),('ПАО Левобережный'),('АО Альфа банк'),('ПАО Тинькофф'),('ПАОБанкОткрытие');Листинг Б.14. Скрипт на добавление данных в таблицу «Company»INSERT INTO public."Company"("Company")VALUES('Cinema Vision'),('Caravella DDC'),('Cinema Park Distribution'),('CP Classic'),('Двадцатый Век Фокс СНГ'),('СтудияСлон'),('ЦентралПартнершип');Листинг Б.15. Скрипт на добавление данных в таблицу «District»INSERT INTO public."District"("District")VALUES('Центральный'),('Западный'),('Южный'),('Индустриальный'),('Силикатный'),('Ново-Огарево');Листинг Б.16. Скрипт на добавление данных в таблицу «Employ»INSERT INTO public."Employ"("Employ")VALUES('Петров Олег Иванович'),('Семенов Олег Сергеевич'),('Добронравов Сергей Петрович'),('Татьмянина Ольга Павловна'),('Селиверстов Денис Иванович'),('Кузнецов Семен Петрович'),('Осадчая Ольга Дмитриевна'),('Тренкеншу Ольга Павловна'),('Захарова Анна Николаевна'),('Зубков Денис Витальевич'),('Горохов Дмитрий Васильевич'),('Борзова Ульяна Васальевна'),('Головин Петр Петрович'),('ТонеянАрманАрманович'),('Зыков Арсений Кириллович');Листинг Б.17. Скрипт на добавление данных в таблицу «People»INSERT INTO public."People"("People")VALUES(' Игорь Волошин '),(' Андрей Золотарев '),('Александр Войтинский'),('Александр Архипов'),('Клим Шипенко'),('Дамир Мифтахов'),('Евгений Кулик'),('Роман Полански'),('Ева Пясковска'),('Андрей Булатов'),('Екатерина Михайлова'),('Аскар Узабаев'),('Сауле Юсупова');Листинг Б.18. Скрипт на добавление данных в таблицу «Film»INSERT INTO public."Film"("Film", "Comment", "Year", "Expense", "Translate", "Company", "Script", "Producer")VALUES('Повелитель ветра', ' Путешественник решает в одиночку облететь Землю на воздушном шаре. Фёдор Бондарчук в роли Фёдора Конюхова', 2023, 850000000, false, 7, 2, 1),('По щучьему велению', 'Если ты идешь на рыбалку — будь готов к тому, что вытянешь рыбу своей мечты, волшебную Щуку, которая может исполнить три любых твоих желания. Только Емеля спустил два желания на ветер, а третье решил приберечь. Поэтому, чтобы добиться руки царской дочери Анфисы, придется ему действовать без волшебной силы, самому. А помогать ему будет Щука, которая без своей шкурки предстает обычной девушкой Василисой. Вместе им предстоит найти скатерть-самобранку, встретиться с Котом Баюном, отправиться в мрачное царство Кощея и понять, что настоящее чудо — это быть с тем, кого любишь.', 2023, 25820000, false, 6, 4, 3), ('Вызов', ' Торакальный хирург Женя Беляева за месяц должна подготовиться к космическому полету, чтобы отправиться на МКС и спасти заболевшего космонавта. Ей придётся преодолеть неуверенность и страхи, а также провести сложнейшую операцию в условиях невесомости, от которой зависят шансы космонавта вернуться на Землю живым.', 2023, 905000000, false, 7, 5, 5),('Ёлки 10', 'В новогоднюю ночь всегда есть место чуду, даже если ты вдруг перестал в него верить. Геннадьич, коротающий свой век в доме престарелых под Санкт-Петербургом, обретёт свою настоящую семью. Начинающей блогерше Ларисе из Тюмени предстоит узнать, на что ради своих близких готов решиться её супруг. Марине из Татарстана — научиться любить то, что действительно важно для её мужа. А девушка-геймерша по имени Таня из Нижнего Новгорода поймёт, что настоящая любовь — это совсем не игра. Ведь в самую волшебную ночь года каждый имеет шанс обрести своё персональное счастье.', 2023, 850000000, false, 1, 7, 6),('Дворец', '31 декабря 1999 года. Роскошный отель в Швейцарии и его гости-миллионеры готовятся к самому долгожданному Новому году. Впереди ночь, полная самых разных причуд, пороков и странностей богатых и знаменитых.', 2023, 17000000, false, 5, 9, 8),('Хоккейные папы', 'Андрей — тренер детской хоккейной команды маленького провинциального городка. Размеренную жизнь героя нарушает известие о том, что единственный в городе ледовый дворец, где он тренирует детей, собираются снести. Единственная возможность его спасти — победить в любительском турнире по хоккею. У Андрея есть всего несколько месяцев для того, чтобы собрать команду и подготовить её к играм. Отцы маленьких хоккеистов решают сами выйти на лед и побороться за будущее своих детей.', 2023, 55000000, false, 7, 11, 10),('Теща', 'Андрей — тренер детской хоккейной команды маленького провинциального городка. Размеренную жизнь героя нарушает известие о том, что единственный в городе ледовый дворец, где он тренирует детей, собираются снести. Единственная возможность его спасти — победить в любительском турнире по хоккею. У Андрея есть всего несколько месяцев для того, чтобы собрать команду и подготовить её к играм. Отцы маленьких хоккеистов решают сами выйти на лед и побороться за будущее своих детей.', 2023, 205000000, false, 2, 13, 12);Листинг Б.19. Скрипт на добавление данных в таблицу «Provider»INSERT INTO public."Provider"("Provider", "INN", "Account", "Sign", "Address_prov", "Bank_prov")VALUES('АртПикчерсСтудия', '4214365989', '40817810099910004323', false, 1, 1),('Enjoy Movies', '4736954226', '40817810099910004852', true, 2, 2),('СТВ', '4569853695', '40817810099910002457', false, 3, 4),('ТаББак', '102000136', '40817810099910000123', true, 4, 4),('Yellow, Black and White', '1020000456', '40817810099910004312', false, 5, 1);Листинг Б.20. Скрипт на добавление данных в таблицу «Rent_cert»INSERT INTO public."Rent_cert"("Cost", "Date_rent_cert", "ID_Provider", "ID_Film")VALUES(1500000, '01.11.2023', 3, 1),(200000, '01.12.2023', 1, 2),(350000, '01.12.2023', 2, 3),(900000, '25.12.2023', 3, 4),(100000, '10.12.2023', 4, 5),(150000, '01.12.2023', 5, 6),(150000, '20.12.2023', 5, 7);Листинг Б.21. Скрипт на добавление данных в таблицу «Cinema»INSERT INTO public."Cinema"("Cinema", "INN_Cinema", "Phone", "AccountCinema", "Capacity", "District_Cinema", "Owner", "Chief", "Bank_Cinema", "Address_Cinema")VALUES('Рассвет', '6545963654', '9059585566', '40817810099910096358', 300, 1, 1, 2, 1, 1),('Мир кино', '1000357954', '9095025526', '40817810099910025648', 200, 2, 3, 4, 2, 6),('Радуга', '3265412356', '9095012233', '40817810099910010213', 500, 3, 5, 6, 4, 7),('Россия', '1023100125', '9132391455', '40817810099910005565', 250, 1, 1, 7, 3, 2),('Галактика', '4115156363', '9029856564', '40817810099910000123', 250, 4, 8, 9, 3, 5);Листинг Б.22. Скрипт на добавление данных в таблицу «Rental»INSERT INTO public."Rental"("DateStart", "DateStop", "PhoneWorker", "Summa", "Tax", "Worker", "ID_rent_cert", "ID_Cinema")VALUES('01.11.2023', '07.11.2023', '9059585566', 120000, 0, 10, 1, 6),('08.11.2023', '13.11.2023', '9095025526', 120000, 0, 11, 1, 7),('14.11.2023', '17.11.2023', '9095012233', 120000, 0, 12, 1, 8),('18.11.2023', '25.11.2023', '9132391455', 120000, 0, 13, 1, 9),('26.11.2023', '02.12.2023', '9029856564', 120000, 0, 9, 1, 10),('01.12.2023', '05.12.2023', '9059585566', 50000, 0, 10, 2, 6),('06.12.2023', '10.12.2023', '9095025526', 50000, 0, 11, 2, 7),('12.12.2023', '15.12.2023', '9095012233', 50000, 0, 12, 6, 8),('16.12.2023', '20.12.2023', '9132391455', 50000, 0, 13, 2, 9),('21.12.2023', '29.12.2023', '9029856564', 50000, 0, 9, 7, 10),('01.12.2023', '10.12.2023', '9059585566', 45000, 0, 10, 3, 6),('25.12.2023', '30.12.2023', '9059585566', 35000, 0, 10, 4, 6),('11.12.2023', '20.12.2023', '9095025526', 45000, 0, 11, 3, 7),('31.12.2023', '10.01.2024', '9095012233', 35000, 0, 12, 4, 8),('10.12.2023', '20.12.2023', '9132391455', 20000, 0, 13, 5, 9),('21.12.2023', '30.12.2023', '9029856564', 35000, 0, 9, 4, 10),('21.12.2023', '31.12.2023', '9095025526', 20000, 0, 11, 5, 7);
1. Psycopg documentation [Электронный ресурс] – Режим доступа: https://www.psycopg.org/docs/index.html (дата обращения: 10.11.2023)
2. Qt for Python documentation [Электронный ресурс] – Режим доступа: https://doc.qt.io/qtforpython/index.html (дата обращения: 10.11.2023)
3. Балалаев М.А., Холодилов А.А., Суриц В.В. Проектирование баз данных. Методические указания по выполнению курсового проекта по дисциплине «Базы данных». / М.А. Балалаев – Хабаровск: Изд-во ДВГУПС, 2013. – 81 с.
4. Григорьев, М. В. Проектирование информационных систем : учебное пособие для вузов / М. В. Григорьев, И. И. Григорьева. — Москва : Издательство Юрайт, 2023. — 318 с. — (Высшее образование). — ISBN 978-5-534-01305-4. — URL : https://urait.ru/bcode/512729
5. Логачев, М. С. Информационные системы и программирование. Специалист по информационным системам. Выпускная квалификационная работа: учебник – Москва: ИНФРА-М, 2021. – 576 с.
6. Проектирование информационных систем : учебник и практикум для вузов / Д. В. Чистов, П. П. Мельников, А. В. Золотарюк, Н. Б. Ничепорук ; под общей редакцией Д. В. Чистова. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 293 с. — (Высшее образование). — ISBN 978-5-534-15923-3. — URL : https://urait.ru/bcode/510287 (дата обращения: 16.11.2023)
7. Проектирование информационных систем : учебник и практикум для вузов / Д. В. Чистов, П. П. Мельников, А. В. Золотарюк, Н. Б. Ничепорук ; под общей редакцией Д. В. Чистова. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 293 с.
8. Проектирование информационных систем : учебник и практикум для среднего профессионального образования / Д. В. Чистов, П. П. Мельников, А. В. Золотарюк, Н. Б. Ничепорук. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 293 с. — (Профессиональное образование). — ISBN 978-5-534-16217-2. — URL : https://urait.ru/bcode/530635 (дата обращения: 25.11.2023)
9. Смирнов, С.Н. Безопасность систем баз данных / С.Н. Смирнов. – М: Гелиос, 2007 – 352 с.
10. Стружкин, Н. П. Базы данных: проектирование : учебник для вузов / Н. П. Стружкин, В. В. Годин. — Москва : Издательство Юрайт, 2023. — 477 с. — (Высшее образование). — ISBN 978-5-534-00229-4. — URL : https://urait.ru/bcode/511019 (дата обращения: 25.11.2023)
11. Стружкин, Н. П. Базы данных: проектирование : учебник для вузов / Н. П. Стружкин, В. В. Годин. — Москва : Издательство Юрайт, 2023. — 477 с. — (Высшее образование). — ISBN 978-5-534-00229-4. — URL : https://urait.ru/bcode/511019 (дата обращения: 26.11.2023)