Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
81
Добавлен:
20.03.2016
Размер:
17.83 Mб
Скачать

 

Глава 12. Работа с наборами данных. Общие сведения о базах данных

417

 

 

Таблица 12.1 (окончание)

 

 

 

 

 

Сущность

Атрибуты сущности

 

 

 

 

 

 

PROJECT (Проекты)

Project_ID (Код проекта)

 

 

 

 

 

 

 

Project_Name (Название проекта)

 

 

 

 

 

 

 

Project_Description (Описание проекта)

 

 

 

 

 

 

 

Team_Leader (Руководитель)

 

 

 

 

 

 

 

Product (Изделие)

 

 

 

 

 

Составляя таким способом списки сущностей и соответствующих атрибутов, удается удалить избыточные записи.

Могут ли быть таблицами сущности из составленного списка? Могут ли быть перемещены колонки из одной группы в другую? Появляется ли один и тот же атрибут в некоторых сущностях? На такие вопросы надо дать ответ.

Каждый атрибут может появляться лишь однажды, и вы должны определить, какая сущность является первичным собственником этого атрибута. Например, атрибут Dept_Head_Name (Имя руководителя) должен быть удален, т. к. Last_Name (Фамилия), First_Name (Имя), а также Emp_Num (Табельный номер) уже существуют в сущности EMPLOYEE (Работники). А для доступа к руководителю подразделения можно воспользоваться табельным номером работника (руководитель в качестве работника имеет свой табельный номер).

Посмотрим теперь, как отобразить составленный список в объекты базы данных: сущности — в таблицы, а атрибуты — в колонки.

Проектирование таблиц

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

Например, мы проектируем таблицу Покупатели. В таком случае таблица Покупатели — это сущность, а код покупателя, его адрес, контактный телефон и т. д. являются атрибутами данной сущности. Специфические экземпляры сущности — это 1-й покупатель, 2-й покупатель и т. д. В некоторых СУБД (системах управления базами данных), например MS Access, поставляемой с русским вариантом Windows, таблицы и их атрибуты можно задавать по-русски. В большинстве же СУБД — по-английски.

После определения сущностей и атрибутов создается модель, которая служит логическим проектом структуры вашей базы данных. Модель отображает сущности и атрибуты в таблицу, в которой колонки являются детальным описанием сущностей БД.

418 Часть II. Приложения Windows Form

В табл. 12.2 показано, как сущность EMPLOYEE была преобразована из списка в таблицу.

Таблица 12.2. Таблица для сущности EMPLOYEE

Emp_Num

Last_Name

First_Name

Dept_Num

Job_Code

Phone_Num

Salary

 

 

 

 

 

 

 

24

Smith

John

100

Eng

4968

64000

 

 

 

 

 

 

 

48

Carter

Catherine

900

Sales

4967

72500

 

 

 

 

 

 

 

36

Smith

Jane

600

Admin

4800

37500

 

 

 

 

 

 

 

Каждая строка таблицы представляет одного работника.

Колонки Emp_Num, Last_Name, First_Name, Dept Num, Job_Code, Phone_Num,

Salary представляют атрибуты работника.

Когда таблица наполнена данными и строка добавляется к таблице, то каждый элемент строки — это ячейка, в которой сохраняется некая информация (например,

"Smith").

Вся строка информации по одному работнику называется просто записью. Колонки таблицы, полученные из атрибутов сущности, называют полями таблицы.

Определение неповторяющихся атрибутов

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

Одну строку от другой отличают по значениям так называемого первичного ключа.

Значения, введенные в колонку первичного ключа или во множество колонок, составляющих первичный ключ (а он может состоять и из нескольких атрибутов), являются уникальными для каждой строки. Если вы попытаетесь ввести некоторое значение в первичный ключ, которое уже существует в другой строке той же колонки, то система контроля, предусмотренная в БД, прекратит операцию и выдаст ошибку.

Например, в приведенной таблице EMPLOYEE поле Emp_Num (Табельный номер) является уникальным атрибутом. Такой атрибут может использоваться как идентификатор каждого работника в базе данных (т. е. каждой строки таблицы). Следовательно, этот реквизит можно взять в качестве первичного ключа данной таблицы. Когда вы выбираете какой-то реквизит на роль первичного ключа, проверьте, действительно ли он уникален, т. е. не встречается ли более одного раза во всех строках таблицы.

Если не существует единственной колонки, обладающей свойством неповторяемости данных в ее строках (это свойство называют еще уникальностью), то разработ-