{"id":14973863,"url":"https://github.com/candygoose/database_se","last_synced_at":"2026-02-11T05:02:49.197Z","repository":{"id":185688259,"uuid":"659367191","full_name":"CandyGoose/Database_SE","owner":"CandyGoose","description":"Базы данных Программная инженерия (ПИиКТ) ИТМО","archived":false,"fork":false,"pushed_at":"2024-06-04T23:28:53.000Z","size":8564,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T14:25:22.752Z","etag":null,"topics":["database","itmo","psql","software-engineering","sql"],"latest_commit_sha":null,"homepage":"","language":"PLpgSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CandyGoose.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-27T17:18:03.000Z","updated_at":"2024-06-20T10:56:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d71f33db-3147-4b59-be0e-c0f091d014c2","html_url":"https://github.com/CandyGoose/Database_SE","commit_stats":null,"previous_names":["verakasianenko/database_se","candygoose/database_se"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGoose%2FDatabase_SE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGoose%2FDatabase_SE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGoose%2FDatabase_SE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CandyGoose%2FDatabase_SE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CandyGoose","download_url":"https://codeload.github.com/CandyGoose/Database_SE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245816868,"owners_count":20677158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","itmo","psql","software-engineering","sql"],"created_at":"2024-09-24T13:49:35.554Z","updated_at":"2026-02-11T05:02:49.191Z","avatar_url":"https://github.com/CandyGoose.png","language":"PLpgSQL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Базы данных\n## Программная инженерия\n### Лекции\n[Презентации](https://github.com/CandyGoose/Database_SE/tree/main/lectures)\n\n### Лабораторные\n[1 - Инфологическая и даталогическая модели, их реализация в PostgreSQL](https://github.com/CandyGoose/Database_SE/tree/main/lab1)\n\n[2 - Запросы к базе данных \"Учебный процесс\"](https://github.com/CandyGoose/Database_SE/tree/main/lab2)\n\n[3 - Функциональные зависимости и NF](https://github.com/CandyGoose/Database_SE/tree/main/lab3)\n\n[4 - Планы выполнения запросов](https://github.com/CandyGoose/Database_SE/tree/main/lab4)\n\n## Как работать с БД?\n\n1. Скачиваем и устанавливаем [DataGrip](https://www.jetbrains.com/datagrip/)\n2. Создаем или открываем проект\n3. Слева нажимаем `+`, затем `Data Source - PostgreSQL`\n\n![image](img/img1.png)\n\n4. Нажимаем `Download` внизу, если требуется, и вводим данные:\n\n- User: `sXXXXXX`\n- Password: пароль из файла .pgpass (чтобы его получить подключитесь к гелиосу и пропишите cat .pgpass, там будет \"\\*:\\*:*:sXXXXXX:пароль\")\n- Database: `studs` (или `ucheb`, смотря какая вам нужна для лабы)\n\n![image](img/img2.png)\n\n5. Идем в раздел SSH/SSL, ставим галочку, где `Use SSH tunnel` и нажимаем на три точки справа\n\n![image](img/img3.png)\n\n6. Здесь нажимаем `+`, далее повторяем настройки:\n- Host: `se.ifmo.ru`\n- Port: `2222`\n- Username `sXXXXXX` (XXXXXX - ИСУ)\n- Password: пароль с [se.ifmo](https://se.ifmo.ru/passwd/)\n\n![image](img/img4.png)\n\n7. Нажмите `Test Connection`, если все верно, то вам выведется сообщение об успехе, нажимаем `Apply` и `OK`\n\n![image](img/img5.png)\n\n8. Возвращаемся на вкладку `General`, снизу тоже нажимаем `Test Connection`, должно появиться сообщение об успехе, если так, то нажимаем `Apply`\n\n![image](img/img6.png)\n\nТеперь мы можем выполнять запросы\n\n9. Откройте консоль, нажав ПКМ по `studs` (или `ucheb`), далее `New - Query Console`\n\n![image](img/img7.png)\n\nСюда мы можем писать свои запросы, чтобы они выполнялись\n\n10. Тестируем на простых запросах `studs`\n\n```sql\nCREATE TABLE test (\n    id BIGSERIAL PRIMARY KEY,\n    description TEXT NOT NULL UNIQUE\n);\n\nINSERT INTO test (description) VALUES\n    ('test1'),\n    ('test2');\n\nSELECT * FROM test;\n```\n\nЧтобы выполнить запрос, переведите курсор на текст запроса (нажмите на него, должна появиться зеленая рамочка вокруг), а затем сверху нажмите на значок Execute (зеленый треугольник, Play), появится меню, где вы можете выбрать: __выполнить только запрос в зеленой рамочке или все запросы в консоли__ \n\n![image](img/img8.png)\n\nПосле выполнения запросов снизу появится результат:\n\n![image](img/img9.png)\n\n\\* Чтобы удалить таблицу, можно прописать в консоли:\n\n```sql\nDROP TABLE test;\n```\n\nИли выбрать слева соответствующий пункт:\n\n![image](img/img10.png)\n\n11. Тестируем на простом запросе `ucheb` (можно просто поменять название БД в 4 пункте, также необходимо открыть новую консоль)\n\n```sql\nSELECT * FROM \"Н_ЛЮДИ\";\n```\n\n![image](img/img11.png)\n\nУспех!\n\n## Как работать с БД на Helios?\n\nЕсли вам по каким-то причинами удобнее работать на гелиосе, а не по методу описанному выше, то давайте разберемся\n\n1. Для начала создайте новый файл, у меня `test.sql` и наполните его каким-нибудь содержимым (или создайте новый файл прямо на гелиосе, переходите сразу к пункту 3). Например:\n```sql\nCREATE TABLE test (\n    id BIGSERIAL PRIMARY KEY,\n    description TEXT NOT NULL UNIQUE\n);\n\nINSERT INTO test (description) VALUES\n    ('test1'),\n    ('test2');\n\nSELECT * FROM test;\n```\nЗакиньте файл с запросом на Helios, находясь в директории, где он лежит\n```\nscp -P 2222 test.sql sXXXXXX@helios.cs.ifmo.ru:~/\n```\n2. Поключитель к Helios\n```\nssh sXXXXXX@helios.cs.ifmo.ru -p 2222\n```\n3. Создайте файл с запросом (если вы решили не выполнять 1-2 пункты, иначе пропустите этот пункт)\n- Создайте новый файл:\n```\ntouch test.sql\n```\n- Откройте редактор:\n```\nvi test.sql\n```\n- Впишите сюда содержимое запроса, например, из 1 пункта (чтобы начать писать в виме, нажмите клавишу `i`)\n- Чтобы сохранить файл и выйти из редактора, надо нажать `Esc` и набрать `:wq` (иногда требуется поставить ! в конце), `Enter`. Если вы хотите выйти без сохранения наберите `:q!`\n\n![image](img/img12.png)\n\n5. Пропишите\n```\npsql -h pg -d studs\n```\nили \n```\npsql -h pg -d ucheb\n```\nСмотря какая лаба\n\n5. Основные команды:\n- `\\i test.sql` - выполнить запросы из файла\n- `\\d` - посмотреть все существующие таблицы и тд.\n- `\\h` - посмотреть справку по SQL операторам\n- `\\?` - посмотреть справку по другим командам\n- `\\q` - выйти из psql\n\n![image](img/img13.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcandygoose%2Fdatabase_se","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcandygoose%2Fdatabase_se","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcandygoose%2Fdatabase_se/lists"}