p align="left">USE autorem; GO CREATE TABLE Autobase (IDAutobase INT IDENTITY CONSTRAINT AutobasePrimary PRIMARY KEY, NameAutobase VARCHAR (15) NOT NULL CONSTRAINT NameAutobaseUnique UNIQUE, Address VARCHAR (60)) GO Справочник состояний (Condition) Таблица содержит данные о типе марки автотранспорта. Каждое состояние автотранспорта имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDCondition)={NameCondition}, что аналогично R(ID справочника состояний)={Название состояния}. Атрибут IDCondition должен быть уникальным и не быть равным NULL, т.к. является первичным ключом. Атрибут NameCondition должен быть уникален, т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных, а также не равен NULL. Размер поля NameCondition должен содержать символьные значения и максимальный среднестатистический размер атрибута не превышает 6 символов (например, "ремонт", "ТР", "ТО1", "ТО2", "СО"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 3 символов, имеем размер поля NameCondition типа VARCHAR равным 10 символам (см. Таблица 2). Таблица 2. |
Название атрибута | Имя поля | Тип поля | Размер | Ограничения | | ID справочника состояний | IDCondition | INT | | NOT NULL | | Название состояния | NameCondition | VARCHAR | 10 | NOT NULL, UNIQUE | | |
USE autorem; GO CREATE TABLE Condition (IDCondition INT IDENTITY CONSTRAINT ConditionPrimary PRIMARY KEY, NameCondition VARCHAR (10) NOT NULL CONSTRAINT NameConditionUnique UNIQUE) GO Справочник технического обслуживания (Technical) Таблица содержит данные о периодичности технического обслуживания подвижного состава. Каждый тип автотранспорта (легковые, автобусы, грузовые автобусы на базе грузовых автомобилей) имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDTechnical)={NameTechnical, TO1, TO2}, что аналогично R(ID справочника технического обслуживания)={Название типа автотранспорта, Километраж для TO1, Километраж для TO2}. Атрибут IDTechnical должен быть уникальным и не быть равным NULL, т.к. является первичным ключом. Атрибут NameTechnical должен быть уникален, т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных, а также не равен NULL. Размер поля NameTechnical содержит символьные значения и максимальный среднестатистический размер атрибута не превышает 46 символа (например, "грузовые автобусы на базе грузовых автомобилей", "легковые", "автобусы"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 13 символов, имеем размер поля NameTechnical типа VARCHAR равным 60 символам. Поле TO1 должно содержать числовые значения о пробеге автотранспорта до первого технического обслуживания, следовательно, поле ТО1 имеет тип INT. Поле TO2 должно содержать числовые значения о пробеге автотранспорта до второго технического обслуживания, следовательно, поле ТО2 имеет тип INT. (см. Таблица 3). Таблица 3. |
Название атрибута | Имя поля | Тип поля | Размер | Ограничения | | ID справочника технического обслуживания | IDTechnical | INT | | NOT NULL | | Название типа автотранспорта | NameTechnical | VARCHAR | 60 | NOT NULL, UNIQUE | | Километраж для TO1 | TO1 | INT | | | | Километраж для TO2 | TO2 | INT | | | | |
CREATE TABLE Technical (IDTechnical INT IDENTITY CONSTRAINT TechnicalPrimary PRIMARY KEY, NameTechnical VARCHAR (60) NOT NULL CONSTRAINT NameTechnicalUnique UNIQUE, TO1 INT, TO2 INT) Тип марки (TypeMarka) Таблица содержит данные о типе марки автотранспорта. Каждая марка автотранспорта имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDTypeMarka)={IDTechnical, NameTypeMarka}, что аналогично R(Уникальный номер типа марки)={ID справочника технического обслуживания, Название типа марки}. Внешним ключом является IDTechnical (ID справочника технического обслуживания). Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является первичным ключом отношения. Атрибут IDTechnical должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут NameTypeMarka должен быть уникален, т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных, а также не должен быть равен NULL. Размер поля NameTypeMarka должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 20 символов (к примеру, "бортовая платформа", "экс.грейд.бульд.погр"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 15 символов, имеем размер поля NameTypeMarka типа VARCHAR равным 35 символам (см. Таблица 4). Таблица 4. |
Название атрибута | Имя поля | Тип поля | Размер | Ограничения | | Уникальный номер типа марки | IDTypeMarka | INT | | NOT NULL, PRIMARY KEY | | ID справочника технического обслуживания | IDTechnical | INT | | NOT NULL, FOREIGN KEY | | Название типа марки | NameTypeMarka | VARCHAR | 35 | NOT NULL, UNIQUE | | |
USE autorem; GO CREATE TABLE TypeMarka (IDTypeMarka INT IDENTITY CONSTRAINT TypeMarkaPrimary PRIMARY KEY, IDTechnical INT NOT NULL, NameTypeMarka VARCHAR (35) NOT NULL CONSTRAINT NameTypeMarkaUnique UNIQUE CONSTRAINT TypeMarkaTechnicalForeign FOREIGN KEY (IDTechnical) REFERENCES Technical) GO Таблица Марка (Marka). Таблица содержит данные о марках автотранспорта. Каждая марка имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDMarka)={IDTypeMarka, NameMarka, Capacity}, что аналогично R(Уникальный номер марки)={Уникальный номер типа марки, Название марки, Грузоподъемность}. Внешним ключом является IDTypeMarka (Уникальный номер типа марки). Атрибут IDMarka должен быть уникальным и не быть равным NULL, т.к. является первичным ключом. Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут NameMarka должен быть не равен NULL. Размер поля NameMarka должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 10 символов (к примеру, " КамАЗ-5320", "ЗиЛ-433100"), следовательно, принимая во внимание необходимость избыточности размера поля порядка 5 символов, имеем размер поля NameCondition типа VARCHAR равным 15. Поле Capacity должен содержать дробные числовые значения о грузоподъемности автотранспорта, следовательно, поле Capacity имеет тип FLOAT (см. Таблица 5). Таблица 5. |
Название атрибута | Имя поля | Тип поля | Размер | Ограничения | | Уникальный номер марки | IDMarka | INT | | NOT NULL, PRIMARY KEY | | Уникальный номер типа марки | IDTypeMarka | INT | | NOT NULL, FOREIGN KEY | | Название марки | NameMarka | VARCHAR | 15 | NOT NULL | | Грузоподъемность | Capacity | FLOAT | | | | |
USE autorem; GO CREATE TABLE Marka (IDMarka INT IDENTITY CONSTRAINT MarkaPrimary PRIMARY KEY, IDTypeMarka INT NOT NULL, NameMarka VARCHAR (15) NOT NULL, Capacity FLOAT, CONSTRAINT MarkaTypeMarkaForeign FOREIGN KEY (IDTypeMarka) REFERENCES TypeMarka) GO Таблица Транспорт (Transport). Таблица содержит данные об автотранспорте. Каждый автотранспорт имеет уникальный номер, который является первичным ключом отношения. Схема отношения имеет вид: R(IDTransport)={IDAutobase, IDMarka, GarageNumber, GosNumber}, что аналогично R(Уникальный номер единицы автотранспорта)={Уникальный номер автобазы, Уникальный номер марки, Гаражный номер, Госномер}. Внешними ключами являются IDAutobase (Уникальный номер автобазы), IDMarka(Уникальный номер марки). Атрибут IDTransport(Уникальный номер единицы автотранспорта) должен быть уникален и не равным NULL, т.к. является первичным ключом. Атрибут IDAutobase должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является внешним ключом отношения. Атрибут GarageNumber должен быть уникален, т.к. каждая единица автотранспорта имеет свой гаражный номер, а также не равен NULL. Атрибут GosNumber должен быть уникален, т.к. каждая единица автотранспорта имеет свой уникальный госномер, выданный в соответствующей ведомости. Размер поля GosNumber должен содержать символьные значения и максимальный среднестатистический размер атрибута равен 8 символам (к примеру, "В 990 АЕ", "КО 6718", "КУ 2664"), следовательно, принимая во внимание необходимость избыточности размера поля, имеем размер поля NameCondition типа VARCHAR равным 10. Размер поля GarageNumber должен содержать числовые значения о гаражном номере автотранспорта, следовательно, поле GarageNumber имеет тип INT (см. Таблица 6). Таблица 6. |
Название атрибута | Имя поля | Тип поля | Размер | Ограничения | | Уникальный номер единицы автотранспорта | IDTransport | INT | | NOT NULL, PRIMARY KEY | | Уникальный номер автобазы | IDAutobase | INT | | NOT NULL, FOREIGN KEY | | Уникальный номер марки | IDMarka | INT | | NOT NULL, FOREIGN KEY | | Гаражный номер | GarageNumber | INT | | NOT NULL, UNIQUE | | Госномер | GosNumber | VARCHAR | 10 | UNIQUE | | |
USE autorem; GO CREATE TABLE Transport (IDTransport INT IDENTITY CONSTRAINT TransportPrimary PRIMARY KEY, IDAutobase INT, IDMarka INT, GarageNumber INT NOT NULL CONSTRAINT GarageNumberTransportUnique UNIQUE,
Страницы: 1, 2, 3
|