Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по курсу «Базы данных». Введение в MS SQL Server и T-SQL. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]