Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
36
Добавлен:
26.04.2015
Размер:
141.31 Кб
Скачать

6ая работа.

Из методички Александра Владимировича:

Практическое задание №6.

Преобразование реляционной БД с помощью языка SQL.

Например: БД Университета должна быть преобразована в предложенный вид с помощью SQL запросов (здесь и далее все манипуляции делаются с помощью SQL).

Замечание. Для выполнения этого задания обучающимся выдают схему конечной РБД.

Порядок выполнения:

  1. Переименовать таблицы и столбцы (атрибуты, категории) по-английски.

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

  3. Выявить таблицы, нуждающиеся в изменении, и привести их к искомому виду путем удаления, добавления и (или) замены типа данных столбцов.

Замечание. Таблицы, нуждающиеся в изменении, могут потребовать большого количества запросов (больше 3), иногда проще удалить таблицу и создать заново. Как это сделано в примере с Таблицей «Студенты» – для экономии места, однако можно потребовать выполнить все действия по изменению таблицы в учебных целях.

  1. Добавить недостающие таблицы.

  2. Создать связи (их можно создавать при создании и модификации таблиц).

  3. Заполнить таблицы.

Способ оформления:

ФКГ ФИО

Схема исходной БД

Далее для каждого запроса: исходные данные – запрос – полученные данные,

и т.д. до тех пор, пока схема БД не станет такой же, как и

Схема выданной БД

Распечатки таблиц

Что мы делали на паре:

Для того чтобы выполнить 6ую работу мы разбираем следующий пример.

Смысл: создать базу данных:

Для этого создаётся несколько запросов на языке SQL.

1 вид запросов

Создание таблиц

Синтаксис

Create table <имя таблицы>

(<column_name1> data_type [constraint]

[,<column_name2> data_type [constraint]]…);

constraint : Null, not null, primary key, unique

Data type:

Счётчик – counter

Числа: байт: byte, целое-short, длинное целое-int, одинарное с плавающей точкой: single, двойное с плавающей точкой: double; денежное-currency, логический- Boolean, текстовый text(байты), тип даты и времени: datetime.

Пример:

Создаём таблицу product

Create table product

(maker text(1),

model text(4) primary key,

type text(7));

2ой тип запросов.

Удаление таблицы.

Сначала следует удалить данные из таблицы.

Синтаксис:

Delete * from <имя таблицы>

Пример:

DELETE * FROM product;

Далее удаляется сама таблица:

Синтаксис:

drop table <имя таблицы>

Пример:

drop table product;

3ий вид запросов.

Создание таблицы с ограничением целостности таблицы:

Синтаксис:

Create table <имя таблицы>

(<column_name1> data_type [constraint]

[,<column_nameN> data_type [constraint]]

Constraint <имя ограничения> <смысл> (список атрибутов к которым оно относится));

Пример:

Create table pc

(code int,

model text(4),

speed short,

ram short,

hd int,

cd text(3),

price currency,

constraint con_pc_primary_key primary key(code));

4ый вид запросов

Создание таблицы с ограничением целостности внешнего ключа

Какой-то столбец создаваемой таблицы является внешним ключом. Как задать это в операторе create?

Синтаксис:

Create table <имя таблицы>

(<column_name1> data_type [constraint]

[,<column_nameN> data_type [constraint]]

Constraint <имя ограничения> foreign key (имя столбца этой таблицы) references <таблица на которую ссылается>(столбец));

Ограничение создаётся в той таблице, которая ссылается!

Пример: создадим таблицу laptop которая ссылается на таблицу product.

create table laptop

(code int primary key,

model text(4),

speed short,

ram short,

hd int,

price currency,

screen byte,

constraint lap_product foreign key (model) references product(model));

5ый вид запросов

Добавление ограничения.

Как теперь связать таблицы pc и product?

Операция относится к операциям изменения таблицы- alter table.

Пример:

Alter table pc

Add constraint pc_product foreign key (model) references product(model);

6ой вид запросов

Ограничение целостности внешнего ключа, налагаемое на столбец при создании таблицы

create table printer

(code int primary key,

model text(4) references product(model),

color text(1),

type text(1),

price currency);

7ый вид запросов:

Изменение структуры таблицы

Добавление нового столбца.

Alter table laptop

Add column cd text(4);

Удаление этого столбца:

alter table laptop

drop column cd;

удаление того столбца на который есть ссылки

alter table product

drop column model;

ошибка. Выход: удаление связей. Почему удаление ограничения таблицы лучше чем ограничения на столбец?

Удаление ограничения налагаемого на таблицу

Alter table <tablename>

Drop constraint <constraint_name>

изменение типа данных столбца.

alter table laptop

alter column screen short;

4

Соседние файлы в папке 6th work