Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационное обеспечение3.Х.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
806.75 Кб
Скачать
    1. Пример создания базы данных

Рассмотрим пример создания структуры разработанной нами ранее базы данных по учету билетов на рейсы пассажирских авиалиний в системе управления базами данных MS SQL Server.

Структуру будем создавать согласно даталогической схеме, приведенной на рис. 8, и в нее войдут следующие типы объектов базы данных:

  • таблицы;

  • поля таблицы;

  • первичные ключи;

  • внешние ключи.

Внешние и первичные ключи будем создавать как ограничения полей или таблиц. Для простых ключей – как ограничения полей, для составных – как ограничения таблиц. При таком подходе необходимо соблюдать последовательность создания таблиц: родительские таблицы должны быть созданы ранее дочерних.

Каждая таблица базы данных участвует, как минимум, в одной связи. В рассматриваемой нами схеме таблица «Авиабилеты» участвует в двух связях, и в них обеих она выступает в роли дочерней таблицы. Поэтому таблицы «Пассажиры» и «Рейсы» должны быть созданы ранее таблицы «Авиабилеты». Таблица «Рейсы» участвует в трех связях, в двух из которых выступает в роли дочерней таблицы. Поэтому таблицы «Марки» и «Пункты» должны быть созданы ранее таблицы «Рейсы».

Создадим таблицу «Пассажиры»:

CREATE TABLE "Пассажиры" (

"№Пассажира" INT PRIMARY KEY,

"ФИО" VARCHAR(100) NOT NULL,

"Паспортные_данные" VARCHAR(100) NOT NULL,

"Скидка" INT);

Создадим таблицу «Пункты»:

CREATE TABLE "Пункты" (

"№Пункта" INT PRIMARY KEY,

"Пункт_прибытия " VARCHAR(100) NOT NULL);

Создадим таблицу «Марки»:

CREATE TABLE "Марки" (

"№Марки" INT PRIMARY KEY,

"Марка_самолета" VARCHAR(100) NOT NULL,

"кол-во_мест" int);

Создадим таблицу «Рейсы»:

CREATE TABLE "Рейсы" (

"№Рейса" INT PRIMARY KEY,

"№Марки" INT FOREIGN KEY REFERENCES "Марки"("№Марки"),

"Время_вылета" DATETIME NOT NULL,

"Цена_билета" DECIMAL(8,2) NULL,

"№Пункта" INT FOREIGN KEY REFERENCES "Пункты" ("№Пункта"));

Создадим таблицу «Авиабилеты»:

CREATE TABLE "Авиабилеты" (

"№Рейса" INT FOREIGN KEY REFERENCES "Рейсы" ("№Рейса"),

"Дата_вылета" DATETIME,

"№Пассажира" INT FOREIGN KEY REFERENCES "Пассажиры" ("№Пассажира"),

PRIMARY KEY ("№Рейса", "Дата_вылета", "№Пассажира") );

Первичный ключ таблицы «Авиабилеты» является составным, поэтому он создается как ограничение таблицы, все остальные ключи являются простыми и создаются как ограничения поля.

Далее необходимо заполнить данными созданную структуру, согласно рис. 6. При заполнении также важен порядок обработки данных. При вставке данных в дочернюю таблицу проверяется наличие соответствующей значению внешнего ключа записи в родительской таблице. В случае несоответствия данные не будут вставлены.

Заполним таблицу «Пассажиры»:

INSERT INTO "Пассажиры" VALUES (1, 'Петров А.А. ', '3000 № 1234567', 5);

INSERT INTO "Пассажиры" VALUES (2, 'Боброва А.А. ', '3000 № 7654321', 0);

INSERT INTO "Пассажиры" VALUES (3, 'Шамаров А.А. ', '3000 № 2345678', 1);

INSERT INTO "Пассажиры" VALUES (4, 'Иванов А.А. ', 'X-EP № 3456789', 0);

Заполним таблицу «Пункты»:

INSERT INTO "Пункты" VALUES (1, 'Москва');

INSERT INTO "Пункты" VALUES (2, 'Ухта');

Заполним таблицу «Марки»:

INSERT INTO "Марки" VALUES (1, 'ТУ-154', 150);

INSERT INTO "Марки" VALUES (2, 'ТУ-134', 70);

Заполним таблицу «Рейсы»:

INSERT INTO "Рейсы" VALUES (111, 1, '10:20', 1000, 1);

INSERT INTO "Рейсы" VALUES (1252, 2, '23:15', 1200, 2);

INSERT INTO "Рейсы" VALUES (115, 1, '22:20', 1000, 2);

Заполним таблицу «Авиабилеты»:

INSERT INTO "Авиабилеты" VALUES (111, '10.12.1999', 1);

INSERT INTO "Авиабилеты" VALUES (111, '10.12.1999', 2);

INSERT INTO "Авиабилеты" VALUES (1252, '10.12.1999', 3);

INSERT INTO "Авиабилеты" VALUES (111, '11.12.1999', 4);

INSERT INTO "Авиабилеты" VALUES (111, '11.12.1999', 1);

INSERT INTO "Авиабилеты" VALUES (1252, '12.12.1999', 1);

INSERT INTO "Авиабилеты" VALUES (115, '21.12.1999', 1);