
Деятельность образовательного учреждения
Проектирование базы данных
Создаю основное отношение:
Код_сотрудника, ФИО_сотрудника, Должность, Оклад, Дом_телефон, Код_ученика, ФИО_ученика, Дом_адрес, Дом_телефон, Код_книги, Название_книги, Дата_поступления, Стоимость_книги, Код_преподавателя, ФИО_преподавателя, Количество_часов, Оклад.
Определяю атрибуты и их типы значений:
Код_сотрудника - INT
ФИО сотрудника - CHAR(15)
Должность - CHAR(15)
Оклад - FLOAT
Дом_телефон - CHAR(10)
Код_ученика - INT
ФИО_ученика - CHAR(20)
Дом_адрес - CHAR(20)
Дом_телефон - CHAR(10)
Код_книги- INT
Название_книги- CHAR(20)
Дата_поступления-DATE
Стоимость_книги-MONEY
Код_преподавателя- INT
ФИО_преподавателя- CHAR(15)
Количество_часов- INT
Оклад- FLOAT
Используя метод нормальных форм, нормализую основное отношение путем декомпозиции его на 4 отношения. Получаю:
Код_сотрудника, ФИО сотрудника, Должность, Оклад, Дом_телефон
Код_ученика, ФИО_ученика, Дом_адрес, Дом_телефон
Код_книги, Название_книги, Дата_поступления, Стоимость_книги
Код_преподавателя, ФИО_преподавателя, Количество_часов, Оклад
Определяю первичные и внешние ключи в таблицах и необходимые связи между атрибутами таблиц для обеспечения целостности БД:
В первой таблице первичный ключ - Код_сотрудника;
Во второй таблице - Код_ученика;
В третьей таблице - Код_книги;
В четвертой таблице первичный ключ - Код_преподавателя,
С
вязь:
Код_сотрудника Код_ученика
Код_книги Код_преподавателя
Создаю запросы, которые будут использоваться для манипулирования данными:
Запрос на добавление кортежа в таблицу
INSERT INTO Сотрудники VALUES ("0135", "Алексеев П.О.", "Web-дизайнер", "3000,00р.", "309-53-01");
Запрос на удаление кортежа из таблицы
DELETE FROM Сотрудники WHERE ФИО BETWEEN "Исаков П.Б." AND "Нечаева О.Д.";
Запрос на обновление кортежа в таблице
UPDATE Сотрудники SET Оклад = 2*Оклад WHERE Должность = "программист";
Запрос на создание таблицы
CREATE TABLE Сотрудники (Код_сотрудника INT PRIMARY KEY, ФИО сотрудника CHAR(15) NOT NULL, Должность CHAR(15) NOT NULL, Оклад FLOAT CHECK (Оклад>0), Дом_телефон CHAR(10));
Запросы на выборку:
SELECT ФИО сотрудника FROM Сотрудники ORDER BY ФИО сотрудника DESC;
SELECT ФИО_ученика, Дом_телефон FROM Ученики WHERE Код_ученика = "5";
SELECT Название_книги FROM Книги WHERE Код_книги = "234" AND Стоимость_книги >500;
SELECT ФИО_преподавателя, Дом_телефон FROM Преподаватели WHERE Оклад >4500,00р;
Создаю файл спроектированной БД в Microsoft Access
Microsoft Access / Создание базы данных / Новая база данных / ОК / Сохранить.
Изменение структуры таблиц
Удаление атрибута из таблицы при помощи запроса:
ALTER TABLE Товар DROP COLUMN Розничная стоимость;
Добавление атрибута в таблицу при помощи запроса:
ALTER TABLE Продажа ADD COLUMN розничная стоимость;
Ввод данных в таблицы
Сотрудники
Код_ сотрудника |
ФИО_сотрудника |
Должность |
Оклад |
Дом_ телефон |
0125 |
Ковалев А.В. |
ген.директор |
10000,00р. |
123-65-47 |
0126 |
Журавлев А.С. |
комм.директор |
7000,00р. |
325-55-89 |
0127 |
Новикова В.Ю. |
гл.бухгалтер |
4500,00р. |
951-23-94 |
0128 |
Исаков П.Б. |
программист |
4000,00р. |
321-12-32 |
0129 |
Кравцов А.А. |
программист |
4000,00р. |
564-54-56 |
0130 |
Анучкина Е.Н. |
консультант |
3500,00р. |
789-56-21 |
0131 |
Нечаева О.Д. |
менеджер |
3000,00р. |
365-21-47 |
0132 |
Королева Е.К. |
секретарь |
2500,00р. |
985-32-64 |
0133 |
Ковалев В.В. |
водитель |
1500,00р. |
123-56-98 |
0134 |
Торин Л.Г. |
водитель |
1500,00р. |
778-55-12 |
Ученики
Код_ученика |
ФИО_ученика |
Дом_адрес |
Дом_телефон |
123 |
Иванов А.Г. |
Восточный |
22-55-88 |
234 |
Петров Н.П. |
Солнечный |
21-21-21 |
345 |
Сидоров Л.Д. |
Королева |
45-45-45 |
456 |
Егоров М.Н. |
Губкин |
41-45-45 |
567 |
Сирота Е.Н. |
Звездный |
33-58-94 |
234 |
Кирилов Л.Д. |
Юбилейный |
46-64-58 |
789 |
Кузькин П.Л. |
Конева |
22-15-45 |
891 |
Шарин Д.Л. |
Рудничный |
43-34-21 |
912 |
Колыма Н.Г. |
Жукова |
42-42-42 |
Книги
Код_книги |
Название_книги |
Дата_поступления |
Стоимость_книги |
123 |
InterNet |
12.01.2001 |
100 |
234 |
Математика |
15.02.2001 |
700 |
345 |
Информатика |
16.03.2001 |
300 |
456 |
Литература |
18.04.2001 |
951 |
567 |
Философия |
19.05.2001 |
654 |
234 |
Английский |
20.06.2001 |
400 |
789 |
Немецкий |
12.02.2001 |
600 |
891 |
Французский |
22.01.2002 |
878 |
912 |
Си/Си++ |
31.01.2002 |
50 |
Преподаватели
Код_преподавателя |
ФИО_преподавателя |
Количество_часов |
Оклад |
1546 |
Пруткова С.Н. |
14 |
1000 |
2896 |
Малькова П.Р. |
14 |
1200 |
3513 |
Чикова Ж.Д. |
28 |
7000 |
4850 |
Розанова Д.Л. |
17 |
1500 |
5125 |
Панова Р.Л. |
17 |
5000 |
6231 |
Нанайцева Л.Г. |
20 |
3000 |
7456 |
Кулибяка П.Р. |
15 |
1000 |
8953 |
Мамонтова Р.Л. |
6 |
1500 |
9985 |
Курочкина С.В. |
11 |
3000 |
Реализация 8 спроектированных запросов
В результате выполнения спроектированных запросов получаю следующие таблицы:
Запрос на добавление
Код_ сотрудника |
ФИО сотрудника |
Должность |
Оклад |
Дом_ телефон |
0125 |
Ковалев А.В. |
ген.директор |
10000,00р. |
123-65-47 |
0126 |
Журавлев А.С. |
комм.директор |
7000,00р. |
325-55-89 |
0127 |
Новикова В.Ю. |
гл.бухгалтер |
4500,00р. |
951-23-94 |
0128 |
Исаков П.Б. |
программист |
4000,00р. |
321-12-32 |
0129 |
Кравцов А.А. |
программист |
4000,00р. |
564-54-56 |
0130 |
Анучкина Е.Н. |
консультант |
3500,00р. |
789-56-21 |
0131 |
Нечаева О.Д. |
менеджер |
3000,00р. |
365-21-47 |
0132 |
Королева Е.К. |
секретарь |
2500,00р. |
985-32-64 |
0133 |
Ковалев В.В. |
водитель |
1500,00р. |
123-56-98 |
0134 |
Торин Л.Г. |
водитель |
1500,00р. |
778-55-12 |
0135 |
Алексеев П.О. |
Web-дизайнер |
3000,00р. |
309-53-01 |
Запрос на удаление
Код_ сотрудника |
ФИО сотрудника |
Должность |
Оклад |
Дом_ телефон |
0125 |
Ковалев А.В. |
ген.директор |
10000,00р. |
123-65-47 |
0126 |
Журавлев А.С. |
комм.директор |
7000,00р. |
325-55-89 |
0127 |
Новикова В.Ю. |
гл.бухгалтер |
4500,00р. |
951-23-94 |
0132 |
Королева Е.К. |
секретарь |
2500,00р. |
985-32-64 |
0133 |
Ковалев В.В. |
водитель |
1500,00р. |
123-56-98 |
0134 |
Торин Л.Г. |
водитель |
1500,00р. |
778-55-12 |
Запрос на обновление
Код_ сотрудника |
ФИО сотрудника |
Должность |
Оклад |
Дом_ телефон |
0125 |
Ковалев А.В. |
ген.директор |
10000,00р. |
123-65-47 |
0126 |
Журавлев А.С. |
комм.директор |
7000,00р. |
325-55-89 |
0127 |
Новикова В.Ю. |
гл.бухгалтер |
4500,00р. |
951-23-94 |
0128 |
Исаков П.Б. |
программист |
8000,00р. |
321-12-32 |
0129 |
Кравцов А.А. |
программист |
8000,00р. |
564-54-56 |
0130 |
Анучкина Е.Н. |
консультант |
3500,00р. |
789-56-21 |
0131 |
Нечаева О.Д. |
менеджер |
3000,00р. |
365-21-47 |
0132 |
Королева Е.К. |
секретарь |
2500,00р. |
985-32-64 |
0133 |
Ковалев В.В. |
водитель |
1500,00р. |
123-56-98 |
0134 |
Торин Л.Г. |
водитель |
1500,00р. |
778-55-12 |