Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практикум по курсу «Базы данных». Введение в MS SQL Server и T-SQL. Практикум
.pdf
2. ПОСТРОЕНИЕ СХЕМЫ БАЗЫ
ДАННЫХ
2.1. Описание предметной области
Любое учебное заведение ассоциируется, в первую очередь, с его студентами и преподавателями, а также их академическими взаимоотношениями. Состав и структура кафедр, институтов, групп, ведомостей и критериев оценки
постоянно меняются в связи с введением новых учебных дисциплин, набором абитуриентов и преподавателей, принятием новых приказов.
Учет успеваемости студентов обязательно ведется даже
в частных институтах и колледжах, ведь при выпуске учащийся должен получить диплом с перечнем его учебных
успехов по каждой из пройденных им дисциплин.
Своевременное и прозрачное отслеживание посещений,
написанных работ, активности студента служит залогом
продуктивных и взаимоуважительных отношений между
учащимися, преподавателями и администрацией учебного
заведения. Регистрация учебных достижений является фундаментом для успешной работы вуза и колледжа. Поэтому
совершенствование информационной системы учета успеваемости студентов путем внедрения новых информационных
технологий является актуальной задачей.
Разрабатываемая БД предназначена для автоматизации
работы преподавателей, сотрудников кафедр и институтов.
При приеме нового студента заносится соответствующая запись в таблицу «Студент», которую связывают с «Группой».
«Группа», в свою очередь, связана с таблицами «Институт»
и «Ученая степень». Для каждой группы создаются записи
в таблице «Ведомость», которая связывает совокупность записей из таблиц «Группа», «Предмет» и «Преподаватель»
(связан с таблицей «Кафедра»). Также в базе данных есть
таблица по учету записей в ведомость для каждого студента
на каждое занятие.
11

2.2. Список сущностей и их атрибутов
Основной используемой сущностью базы данных является таблица «Запись в ведомость». В таблице хранится
информация о каждом разделе успеваемости (дата, присутствие, активность, тестирование, экзамен) каждого студента
на каждом занятии по определенному предмету. Составным
первичным ключом таблицы является ID БРВ – связь с таблицей «Ведомость» (1:М), ID студента – связь с таблицей
«Студент» (1:М).
Таблицы «Студент» и «Преподаватель» содержат информацию о ФИО студентов и преподавателей, их датах рождения, номерах телефонов и e-mail. В таблицах хранится только один номер телефона и только один адрес электронной
почты на человека. Также в таблице «Студент» есть идентифицирующее поле старосты. В таблице «Преподаватель»
указывается стаж сотрудника, а также кафедра, на которой
он работает – связь с одноименной таблицей (1:М). Студент
может учиться только в одной группе – (1:М). Большинство
таблиц базы данных являются справочными. Таблицы «Институт», «Ученая степень», «Кафедра», «Предмет» содержат
перечень действующих и использующихся идентификаторов
для добавления дополнительных характеристик в таблицы
групп, преподавателей и БРВ.
Таблица «Ведомость» имеет совокупность из внешних
ключей с неидентифицирующей связью (ID группы (1:М),
ID предмета (1:М) и ID преподавателя (1:М)), а также дополнительных карактеристик (статус преподавателя (семинарист и (или) лектор, количество выделенных часов и
продолжительность курса в месяцах) и является аналогом
учебного плана для каждой из учебных групп.
Ниже приведены свойства полей таблиц, которые необходимо создать при выполнении практикума (табл. 1).
12

Свойства полей таблицы
Таблица Атрибут
Таблица 1
Таблица «Институт»
Таблица «Ученая_степень»
Таблица «Группа»
Таблица «Студент»
Код института INT
Название_института VARCHAR(100)
Код ученой степени INT
Название_ученой_степени
VARCHAR(100)
Код_группы INT
Номер группы VARCHAR(100)
Курс INT
Код_студента INT
Фамилия_студента VARCHAR(100)
Имя_студента VARCHAR(100)
Отчество_студента VARCHAR(100)
День_рождения_студента DATE
Телефон_студента VARCHAR(100)
Почта_студента VARCHAR(100)
Статус_студента BIT
Таблица «Кафедра»
Таблица «Предмет»
Код_кафедры INT
Название_кафедры VARCHAR(100)
Код_предмета INT
Название_предмета VARCHAR(100)
13

Таблица Атрибут
Таблица «Преподаватель»
Код_преподавателя INT
Фамилия_преподавателя
VARCHAR(100)
Имя_преподавателя VARCHAR(100)
Отчество_преподавателя
VARCHAR(100)
Стаж INT
День_рождения_преподавателя
DATE
Телефон_преподавателя
VARCHAR(100)
Почта_преподавателя
VARCHAR(100)
Код_ведомости INTINT
Лектор BIT
Таблица «Ведомость»
Таблица «Запись_в_ведомость»
Семинарист BIT
Часы INTINT
Месяцы INTINT
Дата_записи DATE
Присутствие BIT
Активность INTINT
Тестирование INTINT
Экзамен INTINT
ER-модель в нотации IDEF 1x представлена на рис. 5.
14

Рис. 5. Схема базы данных в нотации IDEF 1x
15

3. СОЗДАНИЕ ОБЪЕКТОВ С ПОМОЩЬЮ
КОМАНДЫ CREATE
1. Создать несколько таблиц с помощью команды
CREATE, используя соответствующее заполнение, таких
как таблица «Институт», таблица «Ученая степень», таблица «Группа»:
CREATE TABLE название_таблицы (
название_столбца тип_данных_столбца атрибут_
столбца…);
2. Используя кнопку
дания указанных выше таблиц.
При создании столбцов используется ряд атрибутов, ко-
торые являются ограничениями.
PRIMARY KEY. С помощью выражения PRIMARY KEY
(PK) столбец можно сделать первичным ключом. Первичный ключ уникально идентифицирует строку в таблице.
В качестве первичного ключа необязательно должны выступать столбцы с типом INTINT, они могут представлять любой другой тип.
Установка первичного ключа на уровне таблицы:
CREATE TABLE название_таблицы (
название_столбца тип_данных_столбца primary key…);
Первичный ключ может быть составным (compound key).
Такой ключ может потребоваться, если у нас сразу два столбца должны уникально идентифицировать строку в таблице:
CREATE TABLE название_таблицы (
название_столбца1 тип_данных_столбца атрибут_
столбца ограничения
название_столбца2 тип_данных_столбца атрибут_
столбца ограничения…
PRIMARY KEY (название_столбца1, название_столбца2));
ввести команды для соз-
16

IDENTITY (seed, increment). Атрибут IDENTITY по-
зволяет сделать столбец идентификатором. Этот атрибут
может назначаться для столбцов числовых типов INTINT,
SMALLINT, BIGINT, TYNIINT, DECIMAL и NUMERIC.
При добавлении новых данных в таблицу SQL Server будет инкрементировать на единицу значение этого столбца
у последней записи. Как правило, в роли идентификатора
выступает тот же столбец, который является первичным
ключом.
Параметр seed указывает на начальное значение, с кото-
рого будет начинаться отсчет. А параметр increment определяет, насколько будет увеличиваться следующее значение.
Также следует учитывать, что в таблице только один столбец
должен иметь такой атрибут.
UNIQUE. Атрибут позволяет присвоить столбцам уни-
кальные значения.
NULL и NOT NULL. Ограничение NOT NULL означает,
что в столбце таблицы, на который наложено это ограничение, должны обязательно присутствовать какие-либо определенные значения. Исключением является тот случай,
когда столбец выступает в роли первичного ключа, в этом
случае по умолчанию столбец имеет значение NOT NULL.
CHECK. CHECK задает ограничение для диапазона зна-
чений, которые могут храниться в столбце. Для этого после
слова CHECK указывается в скобках условие, которому должен соответствовать столбец или несколько столбцов. Для
соединения условий используется ключевое слово AND.
FOREIGN KEY. Внешние ключи применяются для установки связи между таблицами. Внешний ключ устанавливается для столбцов из зависимой, подчиненной таблицы и
указывает на один из столбцов из главной таблицы. Как правило, внешний ключ указывает на первичный ключ из связанной главной таблицы, но это необязательно должно быть
непременным условием. Внешний ключ также может указывать на какой-то другой столбец, который имеет уникальное
значение.
17

Для создания ограничения внешнего ключа на уровне
столбца после ключевого слова REFERENCES указывается
имя связанной таблицы и в круглых скобках имя связанного
столбца, на который будет указывать внешний ключ. Также
обычно добавляются ключевые слова FOREIGN KEY, но их
необязательно указывать.
Общий синтаксис установки внешнего ключа на уровне
столбца:
CREATE TABLE название_таблицы (
название_столбца1 тип_данных_столбца атрибут_
столбца ограничения
название_столбца2 тип_данных_столбца атрибут_
столбца ограничения…
PRIMARY KEY (название_столбца1)
FOREIGN KEY (стобец1, столбец2, ... столбецN)
REFERENCES главная_таблица (столбец_главной_
таблицы));
При условии, что в каждом столбце обязательно должны
присутствовать какие-то данные!
1. Создать диаграмму данных (Обозреватель объектов –
Диаграмма баз данных – Создать диаграмму базы данных)
(табл. 2), (рис. 6).
Таблица 2
Данные для диаграммы
Таблица Атрибут
Таблица «Институт»
Таблица «Ученая_степень»
Таблица «Группа»
Код института INTINT PK
Название_института VARCHAR(100)
Код ученой степени INTINT PK
Название_ученой_степени
VARCHAR(100)
Код_группы INTINT PK
Номер группы VARCHAR(100)
Курс INTINT
Код института INTINT FK
Код ученой степени INTINT FK
18

Рис. 6. Схема Институт, Ученая степень, Группа
2. Используя команду CREATE TABLE создать осталь-
ные таблицы схемы (табл. 3, рис. 7).
Таблица 3
Данные для диаграммы
Таблица Атрибут
Код_студента INTINT РK
Фамилия_студента
VARCHAR(100)
Имя_студента VARCHAR(100)
Таблица «Студент»
Таблица «Кафедра»
Отчество_студента VARCHAR(100)
День_рождение_студента DATE
Телефон_студента VARCHAR(100)
Почта_студента VARCHAR(100)
Статус_студента BIT
Код_группы INTINT FK
Код_кафедры INTINT РK
Название_кафедры
VARCHAR(100)
19

Таблица Атрибут
Таблица «Предмет»
Таблица «Преподаватель»
Таблица «Ведомость»
Таблица «Запись_в_ведомость»
Окончание табл. 3
Код_предмета INT РK
Название_предмета
VARCHAR(100)
Код_преподавателя INT РK
Фамилия_преподавателя
VARCHAR(100)
Имя_преподавателя
VARCHAR(100)
Отчество_преподавателя
VARCHAR(100)
Стаж INT
День_рождение_преподавателя
DATE
Телефон_преподавателя
VARCHAR(100)
Почта_преподавателя
VARCHAR(100)l
Код_кафедры INT FK
Код_ведомости INT РR
Лектор BIT
Семинарист BIT
Часы INT
Месяцы INT
Код_предмета INT FK
Код_преподавателя INT FK
Код_группы INT FK
Код_ведомости PK
Код_студента PK
Дата_записи DATE
Присутствие BIT
Активность INT
Тестирование INT
Экзамен INT
Код_ведомости INT FK
Код_студента INT FK
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
