Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ud / lab3.docx
Скачиваний:
5
Добавлен:
09.04.2015
Размер:
60.57 Кб
Скачать

Министерство образования и науки Российской Федерации

Московский государственный университет печати имени Ивана Фёдорова

Кафедра «Медиасистемы и технологии»

Лабораторная работа №3

По дисциплине «Управление данными»

Выполнил: студент группы ДЦИТД 4-1 Ананьев Ф.С.

Проверил: старший преподаватель Куракин П.В.

Москва 2012 г.

Постановка задачи

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

Ход выполнения

В первую очередь я создал базу данных лабораторной работы: lab_base4:

CREATE database lab_base4;

Далее я создал таблицу продавцов с полями номера, имени, города и комиссии продавца.

DROP TABLE IF EXISTS salespeople, customers, orders;

CREATE table salespeople

(snum int not null auto_increment,

sname varchar(30) not null,

city varchar(20) not null DEFAULT "Нижний Новгород",

comm decimal(3,3),

primary key (snum)) ENGINE = InnoDB DEFAULT charset = utf8;

Таблица была заполнена данными:

INSERT into salespeople

(snum, sname, city, comm) VALUES

(1, "Иван Жадов", "Нижний Новгород", "0.12"),

(2, "Федор Захапов", DEFAULT, "0.15"),

(3, "Максим Хитров", DEFAULT, "0.14"),

(DEFAULT, "Алиса Тырь", "Бор", "0.10");

Так программа DreamCoder представила таблицу в заполненном состоянии:

snum

sname

city

comm

1

Иван Жадов

Нижний Новгород

0,12

2

Федор Захапов

Нижний Новгород

0,15

3

Максим Хитров

Нижний Новгород

0,14

4

Алиса Тырь

Бор

0,1

Аналогично я создал таблицу покупателей с полями номера, имени, города, рейтинга покупателя и с полем номера избранного продавца. Эта таблица обладает внешним ключом — номером избранного продавца.

CREATE TABLE customers

(cnum int not null auto_increment,

cname varchar(30) not null,

city varchar(20) not null DEFAULT "Нижний Новгород",

rating int not null DEFAULT "1",

snum int,

primary key(cnum),

foreign key(snum) references salespeople(snum)

ON DELETE CASCADE ON UPDATE CASCADE)

ENGINE = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO customers

(cnum, cname, city, rating, snum) VALUES

(1, "Василий Дубов", DEFAULT, 60, 2),

(DEFAULT, "Алексей Шмыга", DEFAULT, 830, 3),

(DEFAULT, "Лариса Тупакова", DEFAULT, 520, 3),

(DEFAULT, "Петр Быков", "Бор", 30, 4),

(DEFAULT, "Антон Тотуттотам", "Бор", 120, 4);

cnum

cname

city

rating

snum

1

Василий Дубов

Нижний Новгород

60

2

2

Алексей Шмыга

Нижний Новгород

830

3

3

Лариса Тупакова

Нижний Новгород

520

3

4

Петр Быков

Бор

30

4

5

Антон Тотуттотам

Бор

120

4

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

CREATE TABLE orders

(onum int not null auto_increment,

odate DATE,

amt DECIMAL(12,2),

cnum int,

snum int,

primary key(onum),

foreign key(cnum) references customers(cnum)

ON DELETE CASCADE ON UPDATE CASCADE,

foreign key(snum) references salespeople(snum)

ON DELETE CASCADE ON UPDATE CASCADE)

ENGINE = InnoDB DEFAULT CHARSET = utf8;

INSERT INTO orders

(onum, odate, amt, cnum, snum) VALUES

(DEFAULT, "2006-11-2", "610", 1, 3),

(DEFAULT, "2006-11-2", "8255.5", 2, 3),

(DEFAULT, "2007-06-15", "5160", 3, 2),

(DEFAULT, "2008-5-5", "310", 4, 4),

(DEFAULT, "2009-11-15", "1200", 5, 4),

(DEFAULT, "2009-11-17", "15", 5, 4);

onum

odate

amt

cnum

snum

1

02.11.2006

610

1

3

2

02.11.2006

8255,5

2

3

3

15.06.2007

5160

3

2

4

05.05.2008

310

4

4

5

15.11.2009

1200

5

4

6

17.11.2009

15

5

4

Соседние файлы в папке ud