ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »