Вот вам непридуманная история о молодом администраторе базы данных, удалившем таблицу. Один программист создал в рамках своей схемы таблицу с именем точно таким же, как у таблицы с производственной информацией. Прошло некоторое время и он из компании уволился. При попытке ликвидации его учетной записи оператор DROP USER вернул ошибку из-за каких-то принадлежащих программисту объектов, оставшихся в базе данных. Исследование проблемы показало, что таблица, созданная тем программистом, не нужна и по отношению к ней был применен оператор DROP TABLE.
Все прошло прекрасно, но возникла другая проблема - оказалось, что администратор применил оператор DROP TABLE, войдя в базу данных под именем производственной схемы. Как было бы хорошо, если бы администратор указал имя схемы или владельца удаляемой таблицы1 Да, была удалена не та таблица из не той схемы. На восстановление производственной базы данных потребовалось почти восемь часов.
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
1. Будет ли работать следующий оператор CREATE TABLE? Если нет, то что нужно в нем исправить?
CREATE TABLE EMPLOYEEJTBL AS (SSN NUMBER(9) NOT NULL,
LAST_NAME VARCHAR2(20) NOT NULL
FIRST_NAME VARCHAR2(20) NOT NULL,
MIDDLE_NAME VARCHAR2(20) NOT NULL, ST ADDRESS VARCHAR2(30) NOT NULL, CITY CHAR(20) NOT NULL, STATE CHAR2) NOT
NULL, ZIP NUMBER(4) NOT NULL, DATE HIRED DATE) STORAGE
(INITIAL 3K, NEXT IK ) ;
2. Можно ли удалить столбец из таблицы?
3. Что будет, если в оператор CREATE TABLE не включить ключевое слово STORAGE?
1. Ознакомьтесь с Приложением В, "Операторы CREATE TABLE для примеров книги" и проанализируйте приведенные там операторы.
4-й час Процесс нормализации
На этом уроке вы ознакомитесь с процессом разделения сырой базы данных на логические единицы, называемые таблицами. Этот процесс называют процессом нормализации.
Мы обсудим преимущества и недостатки нормализованных баз данных, в частности, получение вследствие нормализации гарантий целостности данных за счет скорости работы базы данных.
Основными на этом уроке будут следующие темы.
• Что такое нормализация?
• Преимущества нормализации
• Преимущества денормализации
• Инструкции по проведению нормализации
• Три нормальные формы
• Проектирование баз данных
Ненормализованная база данных может содержать данные, содержащиеся в нескольких таблицах без всяких на то причин. Это может быть неприемлемо, например, с точки зрения безопасности, использования дискового пространства, удобства обновления базы данных и, что более важно, с точки зрения целостности данных. Ненормализованная база данных - это база данных, не разделенная на меньшие, логически единые и более управляемые таблицы.
На рис. 4.1 показана используемая в этой книге база данных до ее нормализации.
Рис. 4.1. "Сырая" база данных
Любая база данных должна планироваться с учетом потребностей конечного пользователя. Логическая организация базы данных, выполняемая на основе
Потребности конечного пользователя должны учитываться при планировании базы данных прежде всего. Ведь именно конечный пользователь будет с ней работать. Пользователю необходимо обеспечить простоту использования базы данных с помощью
Вот список некоторых из соответствующих вопросов, на которые нужно иметь четкие ответы при планировании базы данных.
• Какие данные должны храниться в базе данных?
• Каким образом пользователь будет осуществлять доступ к базе данных?
• Какие привилегии получит пользователь?
• Каким образом данные в базе данных должны быть сгруппированы?
• К каким данным доступ будет требоваться чаще всего?
• Как данные будут связаны?
• Какие меры следует принять для того, чтобы обеспечить правильность данных?