-
Notifications
You must be signed in to change notification settings - Fork 27
spring2013:SQL and graphs
bigbes edited this page Sep 21, 2014
·
1 revision
- Добавить сотрудника.
- Перевести сотрудника из отдела в отдел. В случае перевода руководителя, переводятся все его подчинённые.
- Вывести отдел - начальник, все непосредственные подчинённые.
- Вывести список всех "листовых" узлов дерева (сотрудники не имеющие подчинённых).
- Вывести список подчинения - руководитель, руководитель руководителя, и т.д. до вершины иерархии.
- Вывести количество сотрудников в отделе.
- Проверить граф подчинения на отсутствие аномалий (двойное подчинение, отсутствие руководителя и т.д.).
- Вывести "ранг" сотрудника - глубину подчинения.
- Вывести иерархию в графическом виде (одно значение - на одной строке, отсортировано в порядке подчинения, количество отступов перед именем сотрудника - степень подчинения в иерархии.
- Вывести "путь" между двумя сотрудниками - всех непосредственных и промежуточных руководителей сотрудников.
Data
Results (Google Docs Table)
(Please, edit page and paste your repo down there)
Евгений Николаев
Андрей Мельников
b filip
Кульпинов Владимир
Михаил Кольцов
Максим Новиков
Кондратьев Михаил
Юрий Кемаев
Максим Филипенко
[Куликов Владислав] (https://github.com/Rayleg/SMDB/)
[Тарабан Илья] (https://gist.github.com/Taraban/10070941)
[Медведев Даниил] (https://github.com/medvdanil/sql)
[Ислам Алибеков] (https://github.com/ialibekov/dbms)
Пожалуйста, разделяйте все ваши sql файлы на 12 штук:
- Создание схемы
- Заполнение массива
- С 1 по 10 задачу, каждая задача состоит из хранимой процедуры и примера её использования.
Например, для MySQL:
-- Создание таблицы
user@machine:~$ cat create_table.sql
DROP TABLE IF EXISTS workers;
CREATE TABLE workers(
[...]
);
-- Заполнение таблицы
user@machine:~$ cat fill_table.sql
DELETE FROM workers;
LOAD DATA LOCAL INFILE '~/homework1-data.csv'
INTO TABLE worker
[...];
-- OR
INSERT INTO workers VALUES
([...]),
[...] ;
-- Задача <number>
user@machine:~$ cat <number>.sql
-- Comment to Task <number>
DROP PROCEDURE IF EXISTS proc_name_1;
CREATE PROCEDURE proc_name_1([...])
BEGIN
[...]
END;
-- Example:
-- CALL proc_name_1([...]);
DROP PROCEDURE IF EXISTS proc_name_2;
CREATE PROCEDURE proc_name_2([...])
BEGIN
[...]
END;
-- Example:
-- CALL proc_name_2([...]);