База данных поставщиков и запчастей
База данных «Поставщики и детали» — это пример реляционной базы данных , которая широко упоминается в литературе. [ нужна ссылка ] и подробно описано в книге CJ Date 's An Introduction to Database Systems , 8-е изд. [ 1 ] Это простая база данных, состоящая из трех таблиц: «Поставщик», «Деталь» и «Отгрузка», и она часто используется в качестве минимального примера взаимосвязей, обнаруженных в базе данных.
- Отношения с поставщиком [ 2 ] хранит информацию о поставщиках. Атрибут SID идентифицирует поставщика, в то время как каждый из других атрибутов содержит одну часть информации о поставщике.
- Отношение Part содержит информацию о деталях. Аналогично, атрибут PID идентифицирует деталь, в то время как другие атрибуты содержат информацию о детали.
- Отношение Отгрузка содержит информацию об отгрузках. Атрибуты SID и PID идентифицируют поставщика партии и отгруженной детали соответственно. Оставшийся атрибут указывает, сколько деталей было отправлено.
- Ссылочные ограничения, известные как внешние ключи , гарантируют, что эти атрибуты могут содержать только значения, которые также встречаются в соответствующих атрибутах в отношениях «Поставщик» и «Запчасти».
- Предполагается, что для каждой пары поставщик/деталь существует только одна поставка, что нереально для реальных сценариев. Это намеренно упрощено в педагогических целях, как и вся база данных.
SQL
[ редактировать ]Следующая схема SQL является одним из возможных выражений базы данных «Поставщики и детали».
CREATE TABLE Supplier (
SID int primary key,
SName varchar(10) NOT NULL,
Status int NOT NULL,
City varchar(10) NOT NULL
)
CREATE TABLE Part (
PID int primary key,
PName varchar(10) NOT NULL,
Color int NOT NULL,
Weight real NOT NULL,
City varchar(10) NOT NULL
)
CREATE TABLE Shipment (
SID int NOT NULL FOREIGN KEY REFERENCES Supplier(SID),
PID int NOT NULL FOREIGN KEY REFERENCES Part(PID),
Qty int NOT NULL,
PRIMARY KEY (SID, PID)
)
Примечания:
- Атрибуты ID представляют собой простые целые числа, но они могут быть (помимо прочего) UUID или определяемым системой типом идентификатора, который содержит сгенерированные системой значения.
- Выбор VARCHAR(10) произволен и будет слишком мал для реального использования.
- Применение ограничения NOT NULL ко всем атрибутам является проектным решением, основанным на том, что следует избегать значений NULL . Строго говоря, это не является требованием схемы.
Ссылки
[ редактировать ]- ^ Дата, CJ (2004). «Глава 3 / Введение в реляционные базы данных». Введение в системы баз данных — восьмое издание . Pearson Education Inc. ISBN 0-321-18956-6 .
- ^ Отношения и таблицы SQL примерно являются синонимами.