Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет БД.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
12.88 Mб
Скачать

Тема 2 Проектирование структуры таблиц при использовании языка Transact-sql

Задание 1

Создать родительскую таблицу Pred (Предприятие)

  • Pred_id – идентификатор предприятия, автоинкрементное ключевое поле;

  • Nazvanie - название предприятия, начинается с букв ООО, не может содержать пустых значений;

  • Fam – фамилия директора;

  • Telтелефон.

Код запроса:

create table Pred

(pred_id int identity(1,1) primary key,

nazvanie varchar(30) check(nazvanie like 'OOO%') not null,

fam varchar(25),

tel int)

Задание 2

Создайте уникальный индекс ui1 по полю Nazvanie

Код запроса:

create unique index ui1 on Pred(nazvanie)

Задание 3

Создать дочернюю таблицу Tovar (Товар)

  • Tovar_id – идентификатор товара, автоинкрементное ключевое поле;

  • Pred_id – идентификатор предприятия, не может содержать пустых значений;

  • Naimenovanie – наименование товара, не может содержать пустых значений;

  • Kol – количество товара, именованное ограничение Ogr_kol на количество (от 2 до 1000), по умолчанию 2, не может содержать пустых значений;

  • Cena – цена товара, не может содержать пустых значений;

  • Na_summu - На_сумму вычисляемое поле по формуле (Cena*Kol).

Код запроса:

create table Tovar

(tovar_id int identity(1,1) primary key,

pred_id int foreign key references Pred(pred_id) not null,

Naimenovanie varchar(30) not null,

kol int default(2) not null,

cena money,

Na_summu as (kol*cena) )

alter table Tovar

add constraint Ogr_kol check(kol between 2 and 1000)

Задание 4

Заполните таблицы, Предприятие (Pred) – не менее 2 записями, Товар (Tovar) – не менее 5 записями.

Результат выполнения задания рисунок 2.1 и 2.2

Рисунок 2.1 Заполненная таблица

Рисунок 2.2 Заполненная таблица

Задание 5

Создайте таблицу University (Университеты)

  • Univ_id - идентификатор университета, автоинкрементное поле с шагом 2 начинается с 3, именованный первичный ключ (pk1);

  • Nazvanie – название университета, символьный тип постоянной длинны, не может содержать пустых значений;

  • Reting - рейтинг университета в интервале от нуля до 5 включительно (именованное ограничение Ogr_Reting);

  • Adres - адрес университета

Код запроса:

create table University

(Univ_id int identity(3,2),

Nazvanie varchar(30),

Reting int,

Adres varchar(30))

alter table University

add constraint Ogr_Reting check(Reting between 0 and 5)

add constraint pk1 primary key (Univ_id)

Задание 6

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

  1. Удалите ограничение;

  2. Reting лежит в интервале от 0 до 10 включительно (имя: Ogr_Reting);

  3. По умолчанию рейтинг равен 5 (имя: Df_Reting).

Код запроса:

alter table University

drop Ogr_Reting

add constraint Ogr_Reting check(Reting between 0 and 10)

add constraint Df_Reting default(5) for Reting

Задание 7

Создайте индекс ui2 с обратной сортировкой по полю Nazvanie.

Код запроса:

create unique index ui2 on Pred(nazvanie)

Задание 8

Удалите созданный индекс.

drop index pred.ui2

Задание 9

Создайте уникальный индекс ui2 по полю Nazvanie.

Код запроса:

create unique index ui2 on Pred(nazvanie)

Задание 10

Создайте таблицу Student (Студент). При создании таблицы установите ссылочную целостность с таблицей University (удаляя записи из таблицы University автоматически удаляются записи из таблицы Student)

  • Student_id - идентификатор студента, автоинкрементное поле;

  • Univ_id - идентификатор университета.

  • Fam - фамилия студента, поле не может бать пустым;

  • Ima - имя студента;

  • Pol – пол студента, ввести можно только либо “м” либо “ж”;

  • Birthday - дата рождения студента;

  • Gorod - город, в котором живет студент;

  • Kurs - курс, на котором учится студент;

  • Stipend - стипендия, которую получает студент, по умолчанию 100 руб;

Код запроса:

create table Student

(Student_id int identity(1,1),

Univ_id int,

Fam varchar(25) not null,

Ima varchar(20),

Pol varchar(1) check(Pol like 'м' or Pol like 'ж'),

Birthday datetime,

Gorod varchar(20),

Kurs int,

Stipend money default(100))

Задание 11

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

    1. Значение поля Fam должно заканчиваться буквами ов (Ogr_fam);

    2. Значения поля Kurs лежат от 1 до 6 (Ogr_kurs);

    3. Удалите поле Gorod и добавьте поле Adres.

    4. Удалите созданное ограничение по Fam (Ogr_fam).

Код запроса:

alter table Student

add constraint Ogr_fam check(Fam like '%ов')

add constraint Ogr_kurs check(kurs between 1 and 6)

drop column [Gorod]

add adres varchar(20)

Задание 12

Создайте составной индекс (Ind_Fam_Ima) по полям Fam, Ima.

Код запроса:

create unique index Ind_Fam_Ima on Student(Fam,Ima)

Задание 13

Создайте таблицу Prepodavatel (Преподаватель)

  • Prepodavatel_id — идентификатор преподавателя, автоинкрементное ключевое поле, начинается с 2, с шагом 3;

  • Fam — фамилия преподавателя;

  • Ima - имя преподавателя;

  • Adres – адрес по которому проживает преподаватель, начинается с букв ул.

Код запроса:

create table Prepodavatel

(Prepodavatel_id int identity(3,2) primary key,

fam varchar(30),

Ima varchar(30),

Adres varchar(50) check(adres like'ул.%'))

Задание 14

Создайте уникальный индекс (Ind_Fam) по полю Fam.

Код запроса:

create unique index Ind_Fam on Prepodavatel(Fam)

Задание 15

Измените структуру таблицы: Поле Ima не может содержать пустых значений.

Код запроса:

alter table Prepodavatel

alter column Ima varchar(15) not null

Задание 16

Создайте таблицу Predmet (Предмет)

  • Predmet_id - идентификатор предмета обучения, автоинкрементное ключевое поле;

  • Nazvanie - наименование предмета обучения;

  • Chasov - количество часов, отводимых на изучение предмета, по умолчанию 36 часов;

  • Semestr - семестр, в котором изучается данный предмет, значения, лежат в диапазоне от 1 до 12.

Код запроса:

create table Predmet

(Predmet_id int identity(1,1) primary key,

Nazvanie varchar(50),

Chasov int default(36),

Semestr int check(semestr between 1 and 12))

Задание 17

Создайте уникальный индекс (Ind_Nazv) по полю Nazvanie (сортировка в обратном порядке).

Код запроса:

create unique index Ind_Nazv on Predmet(Nazvanie desc)

Задание 18

Измените структуру таблицы: Поле Nazvanie должно начинаться со слова Предмет (Ogr_Nazv). Удалите созданное ограничение

Код запроса:

alter table Predmet

add constraint Ogr_Nazv check(Nazvanie like 'Предмет')

alter table predmet

drop constraint Ogr_Nazv

Задание 19

Создайте таблицу Examen (Экзаменационные оценки)

  • Exam_id - идентификатор экзамена, автоинкрементное ключевое поле;

  • Ocenka - экзаменационная оценка, по умолчанию 3, диапазон от 1 до 5;

  • Date_exz - дата экзамена, поле автоматически заполняется, GetDate().

Код запроса:

create table examen

(exam_id int identity(1,1) primary key,

Ocenca int default(3) check (Ocenca between 1 and 5),

Date_exz datetime default(getDate()))

Задание 20

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

  1. Добавьте еще три поля:

  1. Student_id - идентификатор студента, строковый тип, 5 символов;

  2. Predmet_id - идентификатор предмета обучения;

  3. Prepodavatel_id — идентификатор преподавателя.

  1. Измените тип поля Student_id на числовой тип.

Код запроса:

alter table examen

add Student_id varchar(5)

add predmet_id int

add Prepodavatel_id int

alter column Student_id int

Задание 21

Для каждой таблицы выведите отчет. Сохраните отчеты о таблицах в отчет по практике.

Результат выполнения задания рисунок 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9

sp_help examen

Рисунок 2.3 Отчет о таблице examen

sp_help pred

Рисунок 2.4 Отчет о таблице pred

sp_help Predmet

Рисунок 2.5 Отчет о таблице Predmet

sp_help Prepodavatel

Рисунок 2.6 Отчет о таблице Prepodavatel

sp_help Student

Рисунок 2.7 Отчет о таблице Student

sp_help Tovar

Рисунок 2.8 Отчет о таблице Tovar

sp_help University

Рисунок 2.9 Отчет о таблице University

Задание 22

Выведите информацию об использовании пространства созданной таблицей.

Результат выполнения задания рисунок 2.10

sp_spaceused examen

Рисунок 2.10 Информация о таблице examen

Задание 23

Заполните таблицы не мене 5 записями.

Результат выполнения задания рисунок 2.11, 2.12, 2.13, 2.14, 2.15, 2.16, 2.17

Рисунок 2.11 Заполненая таблица

Рисунок 2.12 Заполненая таблица

Рисунок 2.13 Заполненая таблица

Рисунок 2.14 Заполненая таблица

Рисунок 2.15 Заполненая таблица

Рисунок 2.16 Заполненая таблица

Рисунок 2.17 Заполненая таблица

Задание 24

Организуйте каскадную ссылочную целостность между таблицами Student , University, Prepodavatel, Predmet и Examen. (удаляя записи из таблицы Student автоматически удаляются записи из таблицы Examen; нельзя удалить записи из таблиц Prepodavatel и Predmet пока есть записи в таблице Examen)

Код запроса:

alter table Examen

add constraint ogr2 foreign key (Student_id)

references Student

on delete cascade

alter table Examen

add constraint ogr3 foreign key (Prepodavatel_id)

references Prepodavatel

on delete cascade

alter table Examen

add constraint ogr4 foreign key (Predmet_id)

references Predmet

on delete cascade

Задание 25

Создайте диаграмму баз данных. Добавьте все таблицы. Посмотрите связь.

Результат выполнения задания рисунок 2.18

Рисунок 2.18 Диаграмма базы данных

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]