"Проектирование реляционных баз данных." - читать интересную книгу автора (Джен Л. Харрингтон)

d i str i butor-contact-person
con tact_person j*x t
fie tor
*actor_numb actor_name
Producer
* producer_name
s tud i о
I tem
*i tem_numb
title
d i s tr i bu tor_numb
retaiI-price
release-date
genre
РИС. 2.2. Основные сущности и их атрибуты для базы данных Lasers Only
Сущности и атрибуты для базы данных Lasers Only
Основные сущности и атрибуты для базы данных Lasers Only приведены на рис. 2.2. Впоследствии выяснится, что в процессе работы со взаимоотношениями между ранее определенными сущностями потребуется наличие ряда дополнительных сущностей. В частности, на рис. 2.2 отсутствует информация, указывающая на то, какие товары (пункты — items) в каких заказах (orders) фигурируют, поскольку она является частью логического взаимоотношения между заказами и пунктами заказов.
Сущности на рис. 2.2 и другие ER-диаграммы этой книги созданы при помощи программного обеспечения специального типа, которое называется инструментальным средством CASE (computer-aided software engineering — автоматизированной разработки программного обеспечения). Инструментальные средства CASE оказывают самую разнообразную помощь при моделировании данных и систем. О том, как посредством CASE проектировать базы данных, более подробно рассказывается в главе 8.
•гИн/ПгЯ/Шф! Для построения этих диаграмм применялся
программный продукт MacA&D, возможности которого типичны для большинства профессиональных инструментальных средств CASE.
Домены
?. У каждого атрибута имеется домен (domain) — выражение, которое определяет ачения, разрешенные для данного атрибута. Домен может быть очень мал. Так, Магазине, торгующем теннисными рубашками, значениями атрибута Size (размер)
14
Часть первая • Теория
товаров являются L, XL и XXL; эти значения и составляют весь домен. И наоборот, домен имени клиента очень велик, и его можно указать только как "текст" или "имена людей".
В СУБД домен реализуется посредством ограничения домена (domain constraint). Всякий раз при записи некоторого значения в базу данных СУБД проверяет его соответствие домену, указанному для его атрибута. Хотя во многих случаях небольшие домены определить невозможно, домен, по крайней мере, обеспечивает получение данных корректного типа. Например, СУБД может запретить пользователю запись значения 123 х 50 в тот атрибут, доменом которого являются значения денежных единиц. Помимо этого, в большинстве СУБД посредством доменов обеспечивается довольно жесткая проверка атрибутов даты и времени, что помогает избежать появления таких дат, как, например, 30 февраля.
Документирование доменов
Чаще всего домены не указываются непосредственно на ER-диаграммах, а записываются в специальный документ (обычно в словарь данных (data dictionary), о котором подробно рассказывается на протяжении всей книги). Однако в варианте метода Чена с указанием атрибутов домены могут быть заданы. Выражение, определяющее домен, размещается ниже каждого атрибута. Обратите, внимание на то, что на рис. 2.3 три домена носят довольно общий характер (целые числа и символы), в то время как формат домена для атрибута телефонных номеров очень специфичен. Можно ли ограничивать домен подобным образом, зависит от применяемой СУБД.
Выбор доменов на практике
Теоретически домены, выбираемые для атрибутов Lasers Only, не должны зависеть от той СУБД, которую будет применять компания. Однако на практике нецелесообразно назначать домены, которые невозможно реализовать. Поэтому при разработке базы данных для Lasers Only необходимо обратить внимание на СУБД, чтобы узнать, какие типы данных поддерживаются для столбцов.
Г *id_i
numb
INT
С
last name
customer
Рис. 2.3.
CHAR (15) Указание доменов на ER-диаграмме
first_name CHAR (15)
telephone j
CHAR (14) (XXX) XXX-XXXX
Глава 2 • Сущности и взаимоотношения данных
15
В большинстве реляционных СУБД, где в качестве языка запросов используется SQL, для описания столбцов предлагаются следующие типы данных, каждый из которых можно назначить доменом атрибута:
¦ CHAR Строка текста фиксированной длины, обычно до 256 символов.
¦ VARCHAR Строка текста переменной длины, обычно до 256 символов.
¦ INT Целое число, размер которого меняется в зависимости от операционной системы.
¦ DECIMAL и NUMERIC Вещественное число с дробной частью справа от десятичной точки. При назначении домена вещественных чисел необходимо указать, сколько цифр может содержать число
(включая десятичную точку) и сколько цифр должно находиться справа от десятичной точки (точность (precision) значения)). Например, точность значений денежных единиц обычно равна двум, так что для числа формата ХХХ.ХХ доменом может быть DECIMAL(6,2).
¦ DATE Дата. ,''¦ TIME Время.