Рассмотрим простую предметную область жизнедеятельности, связанную с книгоизданием и маркетингом. В рамках данной предметной области существуют издатели, которые публикуют книги, авторы, которые книги пишут, и издания (сами книги). Разработана база данных pubs, определяющая описанную выше предметную область. Инфологическая модель предметной области с использованием диаграмм “сущность-связь” (ER-диаграмм) [1]), разработанных Ченом, представлена на рис. 1.
На данном рисунке прямоугольниками обозначены типы сущностей (объектов), а ромбами - типы связей между сущностями. Атрибуты сущностей указаны мелким шрифтом в том же прямоугольнике, который отображает типы сущностей. Имя типа сущности отмечено в верхней части прямоугольника жирным шрифтом. Атрибуты связей в данном случае обозначены овалами. Как видно из рис. 1 у связи “Написана” имеется два атрибута: первый атрибут определяет порядок автора в названии книги, второй атрибут - гонорар автора книги.
Рис. 1
База данных книготорговой компании (база данных pubs) включает три таблицы, определяющие сущности: таблица authors определяет авторов, таблица publishers - издателей, а таблица titles - сами книги. Четвертая таблица titleauthor задает отношение между таблицами titles и authors. Она показывает, какие авторы написали какие книги. Связь между таблицами titiles и publishers определяется столбцом pub_id в данных таблицах.
|
|
Ниже представлены структуры используемых таблиц.
Структура таблицы authors
Имя столбца | Тип данных | Размерность | Возможность значений null | Содержательное описание |
au_id | varchar | 11 | Нет | Идентификатор автора |
au_lname | varchar | 40 | Нет | Фамилия автора |
au_fname | varchar | 20 | Нет | Имя автора |
phone | char | 12 | Нет | Номер телефона |
address | varchar | 40 | Да | Адрес (улица, дом, квартира) |
city | varchar | 20 | Да | Город проживания |
state | char | 2 | Да | Штат проживания |
zip | char | 5 | Да | Энергичность |
contract | bit | 1 | Нет | Наличие контракта |
Структура таблицы publishers
Имя столбца | Тип данных | Размерность | Возможность значений null | Содержательное описание |
pub_id | char | 4 | Нет | Идентификатор издательства (издателя) |
pub_name | varchar | 40 | Да | Название издательства (имя издателя) |
city | varchar | 20 | Да | Город |
state | char | 2 | Да | Штат |
country | varchar | 30 | Да | Страна |
Структура таблицы titles
Имя столбца | Тип данных | Размерность | Возможность значений null | Содержательное описание |
title_id | varchar | 6 | Нет | Идентификатор книги |
title | varchar | 80 | Нет | Название книги |
type | char | 12 | Нет | Тип книги |
pub_id | char | 4 | Да | Идентификатор издательства |
price | money | 8 | Да | Цена |
advance | money | 8 | Да | Аванс (стоимость предварительной продажи) |
royalty | int | 4 | Да | Гонорар |
ytd_sales | int | 4 | Да | Число книг, проданных в текущем году |
notes | varchar | 200 | Да | Замечания |
pubdate | datetime | 8 | Нет | Дата опубликования |
|
|
Структура таблицы titleauthor
Имя столбца | Тип данных | Размерность | Возможность значений null | Содержательное описание |
au_id | varchar | 11 | Нет | Идентификатор автора книги |
title_id | varchar | 6 | Нет | Идентификатор книги |
au_ord | tinyint | 1 | Да | Порядок автора в названии книги |
royaltyper | int | 4 | Да | Авторский гонорар |
В столбце type таблицы titles используются следующие типы книг: business - книги по бизнесу, mod_cook - книги по современной кулинарии, popular_comp - книги по компьютерной тематике, psychology - книги по психологии, trad_cook - книги по традиционной кулинарии, UNDECIDED - неопределенный тип книги.
В столбцах state таблиц authors и publishers используются следующие обозначения административных единиц США: CA - штат Калифорния, DC - округ Колумбия, IL - штат Иллинойс, IN - штат Индиана, KS -штат Канзас, MD - штат Мэриленд, MA - штат Массачусетс, MI - штат Мичиган, NY - штат Нью-Йорк, OR - штат Орегон, TN - штат Теннесси, TX - штатТехас, UT - штат Юта.
В столбце country таблицы publishers используются следующие обозначения стран: France - Франция, Germany - Германия, USA - США.
Домен городов, используемый в таблицах authors и publishers, включает города Ann Arbor, Berkeley, Boston, Chicago, Corvallis, Colevo, Dallas, Gary, Lawrence, Menlo Park, Munchen, Nashville, New York, Oakland, Palo Alto, Paris, Rockville, Salt Lake City, San Francisco, San Jose, Vacaville, Walnul Creek, Washington.
В приложении 1 приведен полный пример базы данных pubs.