Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРИМЕР КУРСОВОЙ.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
672.26 Кб
Скачать

2.2. Нормализация баз данных

Нормализация представляет собой процесс, направленный на уменьшение избыточности информации в базе данных. Кроме самих данных, в базе данных также могут быть нормализованы различные наименования, имена объектов и выражения. Нормализация — это процесс, направленный на уменьшение избыточности информации в реляционной базе данных.

2.3. Типичная база данных до нормализации

Ненормализованная база данных содержит информацию в одной или нескольких различных таблицах; при этом создается впечатление, что включение данных в ту или иную таблицу не обусловлено никакими видимыми причинами. Такое положение дел может оказывать негативное влияние на безопасность данных, рациональное использование дискового пространства, скорость выполнения запросов, эффективность обновления базы данных и, что, наверное, является наиболее важным, на целостность хранимой информации. База данных перед нормализацией представляет собой структуру, которая логически еще не разбита на более управляемые таблицы меньшего размера. На рис. 4.1 показана используемая в этой книге база данных до ее нормализации. 

COMPANY_DATABASE

emp_id   last_name   first_name   middle_name   address   city   state   zip   phone   pager   position   date_hire   pay_rate   date_last_raise

cust_id  cust_name cust_address  cust_city  cust_state  cust_zip  cust_phone  cust_fax  ord_num  qty  ord_date  prod_id  prod_desc  cost

Рис.4.1База данных до нормализации

2.4. Логическое проектирование базы данных

При проектировании базы данных потребностям конечного пользователя должно быть уделено самое пристальное внимание. Не забывайте, что в конце концов база данных предназначена именно для него. Вы обязаны обеспечить конечному пользователю максимальные удобства при использовании им внешнего интерфейса (программы, которая предоставляет пользователю до-ступ к базе данных), однако всего этого, также как и оптимальной производительности системы, вряд ли можно добиться без учета его потребностей.          Далее мы приводим некоторые соображения, которые обязательно следу-ет принимать во внимание при проектировании базы данных. Итак, вы четко должны представлять себе следующее:

  • Какая информация должна храниться в базе данных?

  • Каким образом пользователь будет обращаться к базе данных?

  • Какие привилегии требуются для того или иного пользователя?

  • Каким образом информация должна быть организована в базе данных?

  • К каким данным происходит наиболее частое обращение?

  • Каким образом данные связаны между собой?

  • Какие меры следует предпринять, чтобы обеспечить достоверность хранимой информации?

2.4.1. Первая нормальная форма

EMPLOYEE_TBL

COMPANY_DATABASE

CUSTOMER_TBL

emp_id  last_name  first_name  middle_name  address  city  state  zip  phone  pager  position  date_hire  pay_rate  date_last_raise

emp_id  last_name  first_name  middle_name  address  city  state  zip  phone  pager  position  date_hire  pay_rate  date_last_raise

cust_id   cust_name   cust_address   cust_city   cust_state   cust_zip   cust_phone   cust_fax   ord_num   qty   ord_date 

cust_id   cust_name   cust_address   cust_city   cust_state   cust_zip   cust_phone   cust_fax   ord_num   qty   ord_date 

 

prod_id   prod_desc   cost

PRODUCTS_TBL

prod_id   prod_desc   cost

Рис. 4.2. Первая нормальная форма  

Как видите, для построения первой нормальной формы нам потребовалось разбить данные на логические составляющие (таблицы), каждая из которых имеет первичный ключ и гарантирует отсутствие повторяющихся групп данных. Теперь вместо одной большой таблицы у нас есть несколько более управляемых таблиц меньшего размера: EMPLOYEE_TBL, CUSTOMER_TBL и PRODUCTS_TBL. Как правило, первичный ключ указывается в списке столбцов таб-лицы первым; в нашем случае первичными ключами являются, соответственно, столбцы EMP_ID, CUST_ID и PROD_ID.