Основы проектирования реляционных баз данных. Учебное пособие



         

Почему проект БД может быть плохим? - часть 3


При этом не исключено, что в БД будут одновременно храниться: "Полесье", "Палесье", "Днепро", "Днипро" и другие варианты названий.

Кроме того, повторяющиеся текстовые данные (такие как название блюда "Рулет из телячей грудинки с сосисками и гарниром из разноцветного пюре" или продукта "Колбаса московская сырокопченая") существенно увеличивают объем хранимых данных.

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

Блюда

БЛБлюдоВид

1ЛобиоЗакуска
2ХарчоСуп
3ШашлыкГорячее
4КофеДесерт
.........

Рецепты

БлюдоРецепт

ЛобиоЛоманую очищ
......

Расход

БлюдоПорцийДата_Р

Лобио1581/9/94
Харчо1441/9/94
Шашлык2071/9/94
Кофе2351/9/94
.........

Продукты

ПРПродуктКалор.

1Фасоль3070
2Лук450
3Масло7420
4Зелень180
5Мясо1660
.........

Состав

БЛПРВес (г)

11200
1240
1330
1410
2580
.........

Поставщики

ПОСПоставщикГородСтрана

1"Полесье"КиевУкраина
2"Наталка"КиевУкраина
3"Хуанхэ"ПекинКитай
4"Лайма"РигаЛатвия
5"Юрмала"РигаЛатвия
............

Поставки

ПОСПРВес (кг)Цена ($)Дата_П

161200.4527/8/94
13501.6227/8/94
12500.6127/8/94
221000.5227/8/94
...............

Рис. 4.4. Преобразование универсального отношения "Питание" (второй вариант)

[] [] []




Содержание  Назад  Вперед