Добавил:
piter-i.narod.ru Программист ПЛИС Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_bd_34

.pdf
Скачиваний:
20
Добавлен:
24.06.2018
Размер:
507.53 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Ордена Трудового Красного Знамени федеральное государственное образовательное

бюджетное учреждение высшего образования «Московский технический университет связи и информатики»

Кафедра «Интеллектуальные системы в управлении и автоматизации»

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

Студента 3 курса заочного отделения группа 2БВМ15025 Студент Иванюк П. Г.

Научный руководитель (преподаватель)

Безумнов Д. Н.

Оценка _________________

Дата, подпись научного руководителя.

Москва 2018

1

Цель: Разработка основных объектов базы данных и связей между ними.

Задачи: Освоить способы создания первичного ключа; суррогатного ключа, с помощью последовательностей; отработать ввод данных, создание связей и индексов, изменение структуры таблицы с контрольными ограничениями, создание представлений.

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

1) Создание первичного ключа двумя способами

CREATE TABLE CUSTOMER(CustomerID int NOT NULL,Name varchar(25) NOT NULL,Street varchar(30) NULL,City varchar(35) NULL,State varchar(2) NULL,Zip varchar(5) NULL,Area_Code varchar(3) NULL,Phone Number varchar(10) NULL;

Создание простого ключа.

ALTER TABLE CUSTOMER ADD CONSTRAINT CustomerPK PRIMARY KEY (CustomerID);

CREATE INDEX CustonerNameIndex ON CUSTOMER(Name);

CREATE TABLE ARTIST(ArtistID int PRIMARY KEY,Name varchar(25) NOT NULL,Nationality varchar(30) NULL,Birthdate date NULL,DeceasedDate date NULL); CREATE UNIQUE INDEX Artist ON ARTIST(Name);

CREATE TABLE CUSTOMER_ARTIST_INT(ArtistID int NOT NULL,CustomerID int NOT NULL);

2

Создание составного ключа.

ALTER TABLE CUSTOMER_ARTIST_INT ADD CONSTRAINT CustomerArtistPK PRIMARY

KEY ( ArtistID,CustomerID ),

2) Создание суррогатных ключей с помощью последовательностей

Create Sequence CustID Increment by 1 start with 100;

Drop Sequence CustID;

INSERT INTO CUSTOMER CustomerID, Name, Area_Code, Phorie_Nuniber) VALUES (CustID.NextVal, 'Mary Jones', '350', '555-1234');

Create Sequence CustID Increment by 1 start with 1000;

Create Sequence ArtistID Increment by 1 start with 1;

Create Sequence WorkID Increment by 1 start with 500;

Create Sequence TransID Increment by 1 start with 100;

3

3) Ввод данных

@C:\Temp\ACIns.sql

4) Создание связей

ALTER TABLE CUSTOMER_ARTIST_INT ADD CONSTRAINT ArtistIntFK FOREIGN KEY(ArtistID) REFERENCES ARTIST ON DELETE CASCADE;

ALTER TABLE CUSTOMER_ARTIST_INT ADD CONSTRAINT CustonerIntFK FOREIGN KEY(CustomerID) REFERENCES CUSTOMER ON DELETE CASCADE;

CREATE TABLE WORK (WorkID int PRIMARY KEY,Description varchar(1000) NULL,Title varchar(25) NOT NULL,Copy varchar(8) NOT NULL,ArtistID int NOT NULL);

ALTER TABLE WORK ADD CONSTRAINT ArtistFK FOREIGN KEY (ArtistID) REFERENCES ARTIST;

CREATE TABLE TRANSACTION (TransactionID int PRIMARY KEY,DateAcqulred date NOT NULL,AcquisitionPrice number(7.2) NULL,PurchaseDate date NULL,SalesPrice number(7.2) NULL,CustomerID int NULL,Work ID int NOT NULL);

ALTER TABLE TRANSACTION ADD CONSTRAINT WorkFK FOREIGN KEY (WorkID) REFERENCES WORK;

ALTER TABLE TRANSACTION ADD CONSTRAINT CustomerFK FOREIGN KEY (CustomerID) REFERENCES CUSTOMER;

4

5) Создание индексов

CREATE INDEX CustNameIdx ON CUSTOMER(Name);

СREATE UNIQUE INDEX WorkUniqueIndex ON WORK (Title, Copy, ArtistID);

6) Изменение структуры таблиц, контрольные ограничения

ALTER TABLE ARTIST MODIFY BirthDate Number(4);

ALTER TABLE ARTIST MODIFY DeceasedDate Number(4);

ALTER TABLE ARTIST ADD CONSTRAINT BDLimit CHECK (BirthDate BETWEEN 1400 AND 2100):

ALTER TABLE ARTIST ADD CONSTRAINT DDLimit CHECK (DeceasedDate BETWEEN 1400 AND 2100).

UPDATE ARTIST SET BirthDate = 1870 WHERE Name = 'Miro';

UPDATE ARTIST SET BirthDate = 1970 WHERE Name = 'Tobey'; 7) Представления

CREATE VIEW ExpensiveArt AS SELECT Name, Copy, Title FROM ARTIST, WORK, TRANSACTION WHERE ARTIST.ArtistID = WORK.ArtistID AND WORK.WorkID = TRANSACTION.WorkID AND AcquisitionPrice > 10000 AND CustomerID IS NULL; CREATE VIEW V1 AS SELECT * FROM ARTIST WITH READ ONLY;

5

6

7

Выводы

Выполнено создание пяти таблиц.

Выполнено создание первичного ключа двумя способами:

Простого ключа. Составного ключа.

Выполнено создание суррогатных ключей, предназначенных для автоматического подсчѐта данных по первичному ключу.

Таблицы были заполнены данными, связаны между собой, создана индексация данных и созданы представления для удобного отображения данных.

8

Соседние файлы в предмете Базы данных