Составители:
Рубрика:
14 15
2) ограничение UNIQUE, означающее, что в данной таблице не дол-
жно быть двух и более записей с одинаковым значением этого столбца;
3) ограничение первичного ключа PRIMARY KEY. Это ограниче-
ние для столбца возможно в том случае, если первичный ключ таблицы
состоит из одного данного столбца. В противном случае столбцы, входя-
щие в первичный ключ, указываются
в конце всего оператора CREATE
TABLE в ограничениях для всей таблицы. То, что столбец является пер-
вичным ключом, означает также и то, что его значение должно быть обя-
зательно задано (ограничение NOT NULL), и это значение должно быть
уникальным для данной таблицы (ограничение UNIQUE);
4) ограничение внешнего ключа REFERENCES <ИМЯ ГЛАВНОЙ
ТАБЛИЦЫ>. Оно накладывается на столбец в том
случае, если он явля-
ется внешним ключом в связи «один ко многим» с другой, главной в дан-
ной связи, таблицей. В этом случае любое значение данного столбца дол-
жно соответствовать некоторому значению первичного ключа главной
таблицы.
Последние два ограничения называются ограничениями ссылочной
целостности базы данных и служат для обеспечения корректности дан-
ных, содержащихся в таблицах.
Ограничения всей таблицы в конце оператора CREATE TABLE пред-
назначены для определения ограничений, накладываемых на несколько
столбцов сразу. Например, это происходит при наличии составных пер-
вичного или внешнего ключа.
Ниже приведены операторы CREATE TABLE для создания каждой
таблицы рассматриваемого примера:
1) таблицы Subjects:
Create table subjects(id integer primary key, name char(30));
2) таблицы teacher:
Create table teachers(tabnum char(6) primary key, surname char(20) not
null, name char(20), patronymic char(30));
3) таблицы R, связывающей таблицы subjects и teachers:
Create table R(id_subj integer references subjects, tb_num char(6)
references teachers,
constraint pk primary key(id_subj, tb_num)).
Здесь столбцы id_subj
и tb_num заданы как внешние ключи для глав-
ных таблиц subjects и teachers соответственно, а совокупность столбцов
id_subj и tb_num объявлена как первичный ключ таблицы, причем огра-
ничение первичного ключа имеет имя pk;
4) таблицы groups:
Create table groups(nm char(8) primary key, curator char(6) references
teachers).
Здесь первый столбец таблицы является первичным ключом, вто-
рой – внешним ключом, ссылающимся на таблицу students, т. е. значения
этого столбца берутся из значений
первичного ключа таблицы
students(столбец nz). Третий столбец является внешним ключом, ссыла-
ющимся на таблицу teachers;
5) таблицы students:
Create table students(nz char(6) primary key, surname char(20) not null,
name char(20), group char(8) references groups).
При создании таблицы для столбца surname (фамилия) указано ог-
раничение not null. Это означает, что при вводе новой записи значение
для этого столбца должно быть указано обязательно.
6) таблицы values:
Create table values(nz char(6) references students, id_subj integer
references subjects, tb_num char(6) references teachers, dat date , val integer
not null, constraint pmk primary key (nz, id_subj, tb_num, dat)).
Здесь первые три столбца являются внешними ключами, ссылаю-
щимися на первичные ключи родительских таблиц students, subjects
и teachers, а первые четыре столбца в совокупности образуют составной
первичный ключ, имеющий имя pmk.
Для дальнейшей работы необходимо в программе MS ACCESS со-
здать новую базу данных. Назовем ее LAB_BD.mdb. Для этого необхо-
димо выполнить пункт основного меню Файл/Создать/Новая база дан-
ных. Для создания запроса в окне
базы данных необходимо во вкладке
«Запросы», предназначенной для создания запросов к данным, выбрать
пункт «Создать», затем пункт «Создание запроса в режиме конструкто-
ра» и в появившемся окне «Новый запрос» выбрать первый пункт «Кон-
структор» (рис. 4).
Затем надо закрыть появившееся окно «Добавление таблицы»
и, выполнив пункт основного меню «Вид/Режим SQL», перейти к
режи-
му непосредственного ввода текста запроса на языке SQL (рис. 5).
Далее в окне запроса необходимо ввести его текст и затем выпол-
нить, выбрав пункт основного меню «Запрос/Запуск». Запросы (их в дан-
ной работе будет шесть) желательно сохранять, давая им имена соответ-
ственно таблицам, которые они создают. Например, первый запрос, со-
здающий
таблицу subjects, желательно сохранить под именем
create_subjects.
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »