Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб-1 Создание БД в Access.doc
Скачиваний:
12
Добавлен:
25.09.2019
Размер:
344.58 Кб
Скачать

Лабораторная работа № 1 Проектирование и создание базы данных в субд ms Access

Проектирование базы данных в общем случае состоит из двух этапов: логического и физического. Во время логического проектирования разрабатывается модель базы данных, не зависящая от конкретной СУБД, но в терминологии конкретной даталогической модели (например, реляционной). В процессе же физического проектирования создается модель базы данных, оптимизированная для реальной СУБД.

Постановка задачи

На одном из факультетов некоторого учебного заведения (например, ВУЗа) проводятся учебные занятия.

Необходимо создать базу данных (БД), в которой будет вестись учет сведений об учебных занятиях: какие занятия ведутся, у каких учебных групп (в т. ч. учитывается состав группы), кто из преподавателей проводит занятия. При этом нужно учитывать следующие ограничения:

  • у каждой группы может проводиться несколько занятий;

  • в каждой группе учится несколько студентов;

  • каждый преподаватель может проводить несколько занятий;

  • одна и та же дисциплина может проводиться разными преподавателями у разных групп и в различных формах (лекция, семинар, лабораторное занятии и т. п.).

В этой БД предусмотреть:

  • возможность хранения сведений об основных объектах факультета;

  • удобный и понятный пользовательский интерфейс для ее заполнения, изменения, удаления информации;

  • средства для поиска необходимых данных;

  • средства для представления данных об объектах факультета в распечатанном и других видах.

Логическая модель

Разработаем логическую структуру реляционной базы данных для решения поставленной задачи. Для этого обычно выполняются следующие шаги.

1 шаг – определение таблиц. Любая таблица должна иметь следующие свойства: в ней нет одинаковых строк (записей), ее записи и столбцы (поля) неупорядочены (т.е. не важна их последовательность), для нее имеется первичный ключ. Первичный ключ – это минимальное множество полей (часто – одно поле) таблицы, позволяющее однозначно идентифицировать записи таблицы. Значения первичного ключа не должны повторяться и не должны быть пустыми. Как правило, в качестве первичного ключа выбирают поля, содержащие числа (коды) или короткий текст.

Для поставленной задачи выделим объекты (таблицы): Занятие, Группа, Студент, Преподаватель, Дисциплина.

2 шаг – определение полей таблиц. Для определения полей таблицы требуется установить, какие факты надо отслеживать для каждого объекта, какие ограничения накладываются на эти данные (например, форма представления, принадлежность значения некоторому диапазону и др.). В общем, поля должны иметь следующие свойства: в них не содержатся вычисляемые данные, данные должны быть разбиты на наименьшие логические части. Кроме определения имен полей, важно сразу определить их тип. Также необходимо определить первичный ключ для каждой таблицы.

Выделим следующие характеристики (атрибуты) для всех объектов, также укажем требования к атрибутам.

Группа:

  • Код группы – обязательный атрибут;

  • Специальность – необязательный атрибут;

  • Курс – необязательный атрибут.

Студент:

  • Номер зачетной книжки – обязательный атрибут;

  • Фамилия, Имя, Отчество – обязательные атрибуты;

  • Пол – необязательный атрибут;

  • Дата рождения – обязательный атрибут, не может быть больше сегодняшней даты и меньше 1900 года;

  • Адрес – необязательный атрибут, если не указан, то по умолчанию устанавливается значение «неизвестно»;

  • Сотовый телефон – необязательный атрибут, задается в формате 8(000)000-00-00;

  • Год поступления – необязательный атрибут;

  • Проживает в общежитии – обязательный атрибут.

Преподаватель:

  • Код преподавателя – обязательный атрибут;

  • Фамилия, Имя, Отчество – обязательные атрибуты;

  • Кафедра – обязательный атрибут;

  • Должность – обязательный атрибут;

  • Ученая степень – необязательный атрибут;

  • Дата принятия на работу – обязательный атрибут, не может быть больше сегодняшней даты, по умолчанию устанавливается сегодняшняя дата.

Дисциплина:

  • Код дисциплины – обязательный атрибут;

  • Название – обязательный атрибут;

  • Количество лекционных часов – обязательный атрибут;

  • Количество практических часов – обязательный атрибут.

Занятие:

  • Группа – обязательный атрибут;

  • Дисциплина – обязательные атрибуты;

  • Вид занятия – обязательный атрибут;

  • Преподаватель – обязательный атрибут.

3 шаг – определение связей. Проектируя БД, стараются не допускать избыточности данных в ней. Избыточные данные приводят к увеличению размера базы, а также к нарушению целостности данных при обновлении. Связи, которые устанавливаются между таблицами, как раз являются одним из средств устранения избыточности. Необходимо определить, по каким полям таблиц установить связь. При этом вводится понятие внешнего ключа. Внешним ключом таблицы называется поле (или группа полей), ссылающихся на первичный ключ другой таблицы. При этом оба ключа должны иметь одинаковый тип данных. Таблица, первичный ключ которой участвует в связи, называется ссылочной (главной), а таблица, содержащая соответствующий внешний ключ – ссылающейся (подчиненной). Пример см. на рис. 1.

Существует три типа связей между двумя таблицами:

 один-к-одному: для каждой строки главной таблицы имеется не более одной строки подчиненной таблицы, а для каждой строки подчиненной таблицы – не более одной строки главной таблицы. Такие типы связей встречаются нечасто, т.к. данные из одной таблицы можно просто включить в другую. Пример см. на рис. 2.

– один-ко-многим: для каждой строки главной таблицы имеется ноль, одна или несколько строк подчиненной таблицы, а для каждой строки подчиненной таблицы имеется только одна строка главной таблицы. Это наиболее распространенный тип связи. Пример см. на рис. 1.

 многие-ко-многим: каждой строке одной таблицы соответствует несколько строк второй таблицы и наоборот. В СУБД такая связь представлена разбиением ее на две связи один-ко-многим. Пример см. на рис. 3.

Для нашей задачи, проанализировав ограничения (см. постановку задачи), существуют следующие связи между объектами Занятие, Группа, Студент, Преподаватель, Дисциплина:

  • между объектами Группа и Занятие связь один-ко-многим (1:М);

  • между объектами Группа и Студент связь один-ко-многим (1:М), значит в таблицу Студент нужно добавить внешний ключ, ссылающийся на первичный ключ таблицы Группа (КодГруппы);

  • между объектами Дисциплина и Занятие связь один-ко-многим (1:М);

  • между объектами Преподаватель и Занятие связь один-ко-многим (1:М).

Задание 1.1. Постройте на листе схематично структуру БД, аналогично примерам, представленным на рис. 1-3. Для каждой таблицы подчеркните первичные ключи и линиями покажите связи между таблицами (концы связей пометьте 1 или М).