- •Лабораторная работа №1 Концептуальная модель базы данных для железнодорожного вокзала
- •1.Анализ предметной области:
- •2.Разработка модели “сущность-связь” предметной области.
- •Лабораторная работа №2 Изучение основ реляционной алгебры Цель занятия
- •1.Для отношения b:
- •Лабораторная работа №4
- •Лабораторная работа №5 построение простейших запросов на выборку информации
- •Лабораторная работа №6 использование группировки и упорядочения данных
- •Лабораторная работа №7 запросы по удалению, изменению и добавлению данных
- •Лабораторная работа №8 Построение сложных запросов, запросов на соединение и объединение информации
- •Лабораторная работа №9 эллементы оптимизации запросов
Лабораторная работа №4
СОЗДАНИЕ СТРУКТУРЫ БАЗЫ ДАННЫХ НА ЯЗЫКЕ ЗАПРОСОВ
SQL
Цель занятия
Изучение возможностей и практическое использование языка запросов SQLпо созданию структуры базы данных.
Постановка задачи
1.Создание структуры таблиц базы данных.Сюда входит:
аопределение имен полей и типов данных;
бназначение первичных ключей.
2.Установление взаимосвязей,где необходимо составить запросы по установлению имеющихся взаимосвязей между таблицами.
Ход работы
Создаем структуру реляционной базы данных на основании модели, оптимизированной в лабораторной работе №3.
1.Создание структуры таблиц базы данных:
асоздание таблицыЖелезнодорожный вокзал(соответствует схемеЖелезнодорожный вокзал):
CREATE TABLE [Железнодорожный вокзал] (
[Полное название вокзала] TEXT(20),
Адрес TEXT(50),
Телефон TEXT(9),
Директор TEXT(12)
);
создание таблицы Сотрудник(соответствует схемеСотрудник1):
CREATE TABLE Сотрудник (
[№ трудового договора] NUMBER,
Фамилия TEXT(12),
Имя TEXT(12),
Отчество TEXT(12),
[Дата рождения] DATETIME,
Должность TEXT(10),
[Контактный телефон] TEXT(9),
[Полное название вокзала] TEXT(20)
);
создание таблицы Справочник окладов(соответствует схемеСправочник окладов):
CREATE TABLE [Справочник окладов] (
Должность TEXT(10),
Оклад CURRENCY
);
создание таблицы Маршрут движения(соответствует схемеМаршрут движения):
CREATE TABLE [маршрут движения] (
[Название маршрута] TEXT(30),
[Дата отправления] DATETIME,
[Время отправления] TEXT(10),
[Стоимость билета] CURRENCY,
[№ поезда] NUMBER,
[№ платформы] NUMBER,
[Полное название вокзала] TEXT(20)
);
создание таблицы Пассажир (соответствует схемеПассажир):
CREATE TABLE Пассажир (
[Личный №] NUMBER,
Фамилия TEXT(12),
Имя TEXT(12),
Отчество TEXT(12),
[№ и серия паспорта] TEXT(30),
[Дата покупки билета] DATETIME,
[Название маршрута] TEXT(30),
[Дата отправления] DATETIME,
[Время отправления] TEXT(10),
);
бназначение атомарным первичным ключом таблицыЖелезнодорожный вокзалполяПолное название вокзала:
CREATE INDEX [первичный ключ] ON [Железнодорожный вокзал] ([полное название вокзала])
WITH PRIMARY;
назначение атомарным первичным ключом таблицы Сотрудникполя№ трудового договора:
CREATE INDEX [первичный ключ] ON Сотрудник ([№ трудового договора])
WITH PRIMARY;
назначение атомарным первичным ключом таблицы Справочник окладовполяДолжность:
CREATE INDEX [первичный ключ] ON [Справочник окладов] (Должность)
WITH PRIMARY;
назначение состовым первичным ключом таблицы Маршрут движенияполейНазвание маршрута, время отправления, дата отправления:
CREATE INDEX [первичный ключ] ON Маршрут (
[Название маршрута],
[Дата отправления],
[Время отправления])
WITH PRIMARY;
назначение атомарным первичным ключом таблицы Пассажир поляЛичный№:
CREATE INDEX [первичный ключ] ON Пассажир ([Личный №])
WITH PRIMARY;
2.Установление взаимосвязей:
создание взаимосвязи вида “один-ко-многим” между таблицами Железнодорожный вокзалиСотрудник:
ALTER TABLE Сотрудник
ADD CONSTRAINT Связь FOREIGN KEY ([Полное название вокзала])
REFERENCES [Железнодорожный вокзал] ([Полное название вокзала]);
создание взаимосвязи вида “один-ко-многим” между таблицами Справочник окладовиСотрудник:
ALTER TABLE Сотрудник
ADD CONSTRAINT Связь FOREIGN KEY (Должность)
REFERENCES [Справочник окладов] (Должность);
создание взаимосвязи вида “один-ко-многим” между таблицами Железнодорожный вокзалиМаршрут движения:
ALTER TABLE [Маршрут движения]
ADD CONSTRAINT Связь2 FOREIGN KEY ([Полное название вокзала])
REFERENCES [Железнодорожный вокзал] ([Полное название вокзала]);
создание взаимосвязи вида “один-ко-многим” между таблицами Маршрут движенияиПассажир:
ALTER TABLE Пассажир
ADD CONSTRAINT Связь FOREIGN KEY (
[Название маршрута],
[Дата отправления],
[Время отправления])
REFERENCES [Маршрут движения] (
[Название маршрута],
[Дата отправления],
[Время отправления]
);
Сотрудник |
1 |
Железнодорожный вокзал |
|
Маршрут движения | ||||
№трудового договора |
|
Полное название вокзала |
1 1 1 |
Название маршрута | ||||
Фамилия |
|
Адрес |
1 |
Дата отправления | ||||
Имя |
|
Телефон |
|
Время отправления | ||||
Отчество |
|
Директор |
|
Стоимость билета | ||||
Д
|
|
|
|
№ поезда | ||||
Должность |
|
|
|
№ платформы | ||||
Контактный тел. |
|
Пассажир |
|
Полное название вокзала | ||||
Полное название вокзала |
|
Личный № |
|
| ||||
|
|
Фамилия |
|
| ||||
|
|
Имя |
| |||||
|
|
Отчество |
| |||||
Справочник окладов |
|
№ и серия паспорта |
| |||||
Д
1 |
|
Д
|
| |||||
Оклад |
|
Н
|
| |||||
|
|
Д
|
| |||||
|
|
Время отправления |
|