Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы Данных_all.doc
Скачиваний:
20
Добавлен:
20.02.2016
Размер:
1.76 Mб
Скачать

3. Данные и взаимосвязи

3.1 Объекты

Сначала рассмотрим объекты, на основе которых будет построена база данных bookbiz. Без учета финансовой информации список объектов будет выглядеть так:

• авторы, книги которых опубликованы компанией;

• сами книги;

• редакторы, работающие на компанию;

• издательства, которыми владеет компания.

Каждый из этих объектов обладает собственными свойствами, которые также записаны в базе данных. Среди них

название книги

стоимость книги

дата выхода книги

имя автора

адрес автора

номер телефона автора

имя редактора

адрес редактора

номер телефона редактора

название издательства

адрес издательства

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

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

Таблица titles

name

price

pubdate

Таблица authors

name

address

phone

Таблица editors

name

address

phone

Таблица publishers

name

address

Другой способ представления информации используется в диаграммах взаимосвязей между объектами (рис. 2.1). Обычно каждая таблица представляется на такой диаграмме в виде прямоугольника, содержащего в себе, кроме того, названия полей.

Этот макет из четырех таблиц, каждая из которых имеет по несколько столбцов, является первым шагом на пути построения реальной базы данных. Вы можете представить себе, что каждая таблица будет содержать множество строк данных. Каждая строка в таблице описывает вхождение (occurrence) или экземпляр (instance) объекта — отдельную книгу, автора, редактора или издательство.

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

3.2 Первичные ключи. Рассмотрим таблицу authors. Среди ее столбцов очевидным кандидатом на первичный ключ является пате. Авторов всегда можно различить по имени. Однако использовать этот столбец в качестве первичного ключа достаточно проблематично по нескольким причинам.

Во первых, значения в столбце пате состоят из имени и фамилии автора. Объединение в одном столбце имени и фамилии обычно является не слишком дальновидным поступком. Разделим name на au_fname и au_lname

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

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

В таблицах authors и editors мы использовали для этих целей номера карточек социального страхования. В таблицах titles и publishers используются произвольные идентификационные номера. Чтобы показать, какие столбцы являются первичными ключами, мы подчеркиваем их.

!!!! Выбор первичных ключей является одним из основных шагов при проектировании базы данных. Несмотря на их важность, ранние версии SQL не поддерживали определение первичных ключей. ANSI-стандарт SQL 1992 года, принятый сегодня большинством производителей, поддерживает предложение PRIMARY KEY в операторе CREATE TABLE. Кроме того, производители разрабатывают свои собственные методы для оперирования этим важным понятием.

Рис. 4. Определение первичных ключей