ВУЗ:
Составители:
Рубрика:
- 44 -
В будущем, если работник будет присоединен ко второму или третьему
проекту, достаточно ввести дополнительную строку для этого работника в
таблицу РЕ.
Поскольку теперь используется таблица РЕ для соотношения работни-
ков с проектами, больше не нужна информация, хранимая в колонке PROJNO
таблицы ЕМР. Можно удалить эти данные путем установки значений этой
колонки в
пустые:
UPDATE EMP
SET PROJNO = NULL;
Вспомним, что отсутствие клаузы WHERE приказывает обновить
все строки в таблице.
Поскольку все PROJNO установлены в NULL, больше невозможно
использовать вид PERSONNEL, который использует колонку PROJNO для
связи таблиц ЕМР и PROJ. Для генерации этой информации снова нужно со-
единить таблицу ЕМР с новой таблицей РЕ и соединить таблицу РЕ с нашей
таблицей PROJ. Но
возможно спрятать это изменение от пользователей, ис-
пользующих вид PERSONNEL, просто изменив определение вида. Пер-
вый шаг в изменении вида PERSONNEL - уничтожить старый вид:
DROP VIEW PERSONNEL;
Теперь создадим новый вид PERSONNEL, объединяющий таблицу ЕМР
и таблицу PROJ через таблицу РЕ :
CREATE VIEW PERSONNEL AS
SELECT ENAME,JOB,PNAME
FROM EMP,PROJ,PE
WHERE EMP.EMPNO = PE.EMPNO
AND PE.PROJNO = PROJ.PROJNO;
Теперь программы, использующие старый вид PERSONNEL, могут
продолжать работу без модификации и пользователи могут работать со ста-
рыми данными в общем случае, не боясь изменений в базе данных.
Запрашивая новый вид PERSONNEL, увидим такую же информацию,
как для старого вида PERSONNEL плюс второй проект для работника
SMITH:
SELECT *
FROM PERSONNEL
ORDER BY ENAME;
ENAME JOB PNAME
- 44 -
В будущем, если работник будет присоединен ко второму или третьему
проекту, достаточно ввести дополнительную строку для этого работника в
таблицу РЕ.
Поскольку теперь используется таблица РЕ для соотношения работни-
ков с проектами, больше не нужна информация, хранимая в колонке PROJNO
таблицы ЕМР. Можно удалить эти данные путем установки значений этой
колонки в пустые:
UPDATE EMP
SET PROJNO = NULL;
Вспомним, что отсутствие клаузы WHERE приказывает обновить
все строки в таблице.
Поскольку все PROJNO установлены в NULL, больше невозможно
использовать вид PERSONNEL, который использует колонку PROJNO для
связи таблиц ЕМР и PROJ. Для генерации этой информации снова нужно со-
единить таблицу ЕМР с новой таблицей РЕ и соединить таблицу РЕ с нашей
таблицей PROJ. Но возможно спрятать это изменение от пользователей, ис-
пользующих вид PERSONNEL, просто изменив определение вида. Пер-
вый шаг в изменении вида PERSONNEL - уничтожить старый вид:
DROP VIEW PERSONNEL;
Теперь создадим новый вид PERSONNEL, объединяющий таблицу ЕМР
и таблицу PROJ через таблицу РЕ :
CREATE VIEW PERSONNEL AS
SELECT ENAME,JOB,PNAME
FROM EMP,PROJ,PE
WHERE EMP.EMPNO = PE.EMPNO
AND PE.PROJNO = PROJ.PROJNO;
Теперь программы, использующие старый вид PERSONNEL, могут
продолжать работу без модификации и пользователи могут работать со ста-
рыми данными в общем случае, не боясь изменений в базе данных.
Запрашивая новый вид PERSONNEL, увидим такую же информацию,
как для старого вида PERSONNEL плюс второй проект для работника
SMITH:
SELECT *
FROM PERSONNEL
ORDER BY ENAME;
ENAME JOB PNAME
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »
