Пример создания БД в Access.ppt
- Количество слайдов: 28
Приложение 2 Создание базы данных в СУБД Access Инструкция для магистрантов по выполнению лабораторной работы № 3 на тему «Создание базы данных» по курсу «Компьютерные технологии в науке» Составитель ст. преподаватель кафедры АСОИУ Ижевск 2013 Презентация разработана по материалам курса «Базы данных» . Автор курса : ст. преподаватель каф. АСОИУ Н. В. Соболева М. Н. Мокроусов
С чего начать? Дан список атрибутов: Код факультета, Наименование факультета, Код специальности, Наименование специальности, № группы, Код студента, ФИО студента, Наименование дисциплины, Оценка. 1. С чего начать? Можно создать одну большую таблицу, как в Excel, с большим количеством полей, в которой будут отображены все отношения между сущностями, но такая база данных является не оптимальной, сложной для восприятия, реализации и использования. Проанализировав заданные атрибуты и определившись с предметной областью, необходимо выделить атрибуты, которые могут относиться к одной сущности. Главное правило: все, что можно хранить отдельно, нужно хранить отдельно (как справочник). Например, сущностями будут являться: Факультет, Специальность, Группа, Студент, Дисциплина. Сущность «Оценка» , как результат взаимодействия сущностей «Дисциплина» и «Студент» , будет являться бинарной связью (тип связи – многие ко многим), и должна быть реализована в виде отдельной таблицы. 2/31
Как нужно рассуждать? Код факультета 2. Как нужно рассуждать? Наименование факультета 1 ИВТ По условию и собственному опыту понимаем: 2 УК • факультетов может быть много: сущность «Факультет» ; • в одном факультете может быть несколько специальностей: сущность «Специальность» , которая привязана к факультету, т. е. связана с сущностью «Факультет» отношением один ко многим. В сущность «Специальность» необходимо добавить атрибут для связи с факультетом «код факультета» . Код специальности Наименование специальности Код факультета 1 Вычислительные машины, комплексы, системы и сети 1 2 Системы автоматизированного проектирования 1 3 Автоматизированные системы обработки информации и управления 1 4 Мехатронные системы 2 5 Безопасность жизнедеятельности 2 Данные в таблице означают, что специальности с кодом 1, 2, 3 относятся к факультету ИВТ, а специальности 4, 5 – к факультету УК. 3/31
Как нужно рассуждать? (продолжение) • в каждой специальности могут быть несколько групп: сущность «Группа» с полем «код специальности» (аналогично сущности «Специальность» с полем «код факультета» ); • в каждой группе могут учиться много студентов: сущность «Студент» с полем «код группы» ; Далее рассуждения изменяются в сторону установления сложных взаимодействий между сущностями: • одна и та же дисциплина может входит в учебную программу нескольких специальностей, но и на каждой специальности изучается несколько дисциплин: в результате появляется сущность «Дисциплина» с полями «код дисциплины» и «наименование дисциплины» , а отношение с сущностью «Специальность» необходимо оформить в виде отдельной таблицы ; Дисциплина Специальность _Дисциплина Специальность Код специальности Наименование специальности Код факультета 1 1 1 2 Вычислительные машины, комплексы, системы и сети 3 2 2 Системы автоматизированного проектирования 1 3 1 Код специальности 1 Наименование Код дисциплины 1 Код дисциплины 3 3 Автоматизированные системы обработки информации и управления 1 Базы данных 2 3 4 История Математика Философия Данные в таблице означают, что дисциплина с кодом 1 изучается на специальности 1 и 2, с кодом 3 – на специальности 2 и 3. 4/31
Как нужно рассуждать? (продолжение) • оценка студенту выставляется за дисциплину, т. е. у каждого студента множество оценок за отдельную дисциплину: в результате появляется сущность «Оценка студента» с полями «код студента» , «код дисциплины» и «оценка» , т. е. она связана с сущностями «Студент» и «Дисциплина» (смотри предыдущее рассуждение). В итоге получается множество сущностей (таблиц) с установленными отношениями между ними. При проектировании БД необходимо помнить следующее: • всегда задавайте ключевое поле, которое будет однозначно характеризовать строку таблицы – данные в ключевом поле не должны повторяться (ключ может состоять из нескольких полей); • ключевое поле должно быть числового типа или типа счетчик; • между таблицами обязательно должны быть связи, позволяющие логически перейти от одних полей одной таблицы к другим полям другой таблицы (можно проследить по схеме данных); • данные в базе данных не должны дублироваться. Далее на слайдах показан пример проектирования базы данных с использованием анимации и некоторые приемы работы в СУБД Access 2003. 5/31
Этапы проектирования базы данных Шаг 1. Выписать атрибуты сущностей. Шаг 2. Сгруппировать атрибуты по принадлежности к одной сущности. Задать ключевое поле (ключевой атрибут). Шаг 3. Дополнить сущности атрибутами для установления связей «один ко многим» . Шаг 4. Добавить сущности для реализации связи «многие ко многим» . 6/31
Этапы проектирования базы данных Шаг 1. Выписать атрибуты сущностей. 7/31
Атрибуты Код факультета Наименование факультета Код специальности Наименование специальности № группы Код студента ФИО студента Наименование дисциплины Оценка 8/31
Этапы проектирования базы данных Шаг 2. Сгруппировать атрибуты по принадлежности к одной сущности. Задать ключевое поле (ключевой атрибут). 9/31
Атрибуты Сущности Специальность Факультет Код факультета Наименование факультета Код специальности Наименование специальности Студент № группы Код студента Ключевое поле выделим Группа подчеркиванием Код группы ФИО студента Наименование дисциплины Оценка студента Оценка Будем выделять жирным те атрибуты, которые могут относиться к одной сущности Дисциплина Код дисциплины Оценка выставляется студенту за дисциплину, поэтому каждую оценку однозначно определяют «Код студента» и «Код дисциплины» - составной ключ. АНИМАЦИЯ (нажмите клавишу) Атрибуты строкового типа не рекомендуется делать ключевыми, поэтому добавим собственное ключевое поле числового типа 10/31
Этапы проектирования базы данных Шаг 3. Дополнить сущности атрибутами для установления связей «один ко многим» . 11/31
Реализация связей «один ко многим» Каждая специальность относится к конкретному факультету, поэтому в сущность «Специальность» нужно добавить «код факультета» . На факультете может быть несколько специальностей. Факультет код факультета 1 наименование факультета Группа Каждый студент учится одной конкретной группе, поэтому в сущность «студент» нужно добавить «код группы» . В группе может быть множество студентов. Студент код студента ФИО студента код группы 1 код группы № группы код специальности Специальность 1 код специальности наименование специальности код факультета Каждая группа относится к конкретной специальности, поэтому в сущность «Группа» нужно добавить «код специальности» . На специальности может быть несколько групп. 1 Дисциплина 1 Оценка ставится студенту за дисциплину, поэтому в сущность «Оценка студента» нужно добавить «код студента» и «код дисциплины» , что было сделано на предыдущем шаге. Эти атрибуты будут являться ключевыми для сущности «Оценка студента» код дисциплины наименование дисциплины Оценка студента АНИМАЦИЯ (нажмите клавишу) код студента код дисциплины оценка Сущность «Оценка студента» является физической реализацией связи многие ко многим между сущностями «Студент» и «Дисциплина» . Атрибутом этой связи является «оценка» . 12/31
Этапы проектирования базы данных Шаг 4. Добавить сущности для реализации связи «многие ко многим» . 13/31
Реализация связи «многие ко многим» Специальность 1 Факультет код факультета 1 код специальности наименование факультета код факультета 1 Группа 1 код группы Студент № группы код студента ФИО студента код группы код специальности 1 Учитывая, что одна дисциплина может Специальность_Дисциплина входить в курс нескольких специальностей, а в курсе одной код специальности читается множество дисциплин, то необходимо между код дисциплины сущностями «Специальность» и «Дисциплина» реализовать связь «многие ко многим» . Оценка студента код дисциплины оценка АНИМАЦИЯ (нажмите клавишу) 1 Дисциплина 1 код дисциплины наименование дисциплины Для реализации связи создается дополнительная таблица, в которой будут два атрибута «код специальности» и «код дисциплины» . Эти два поля являются составным ключом для новой таблицы. 14/31
Результат проектирования БД Специальность 1 Факультет код факультета 1 код специальности наименование факультета код факультета Группа код группы 1 № группы Студент код специальности код студента ФИО студента код группы 1 Специальность_Дисциплина код специальности код дисциплины 1 Оценка студента код дисциплины оценка Дисциплина 1 1 код дисциплины наименование дисциплины 15/31
Создание БД в Microsoft Access 2003 В меню выберите пункт Файл->Создать->Новая база данных Задайте имя базы данных, укажите место для сохранения и нажмите на кнопку «Создать» АНИМАЦИЯ (нажмите клавишу) 16/31
Создание таблицы в Microsoft Access В окне базы данных выберите создание таблицы в режиме конструктора и нажмите на кнопку «Конструктор» В конструкторе таблицы введите поля и укажите тип данных каждого поля. Для ключевого поля используйте числовые типы данных или счетчик. АНИМАЦИЯ (нажмите клавишу) 17/31
Создание ключевого поля Выделите строку с полем, который хотите назначить ключевым и нажмите на кнопку «Ключевое поле» Если необходимо задать составной ключ, то удерживая клавишу Ctrl, выделите все необходимые поля и нажмите кнопку «Ключевое поле» . Сохраните таблицу. АНИМАЦИЯ (нажмите клавишу) 18/31
Добавление таблиц в схему данных Перейдите в окно базы данных и нажмите на панели кнопку «Схема данных» В окне «Схема данных» правой кнопкой мыши вызовите меню и выберите пункт «Добавить таблицу» . Выберите все таблицы и нажмите кнопку «Добавить» АНИМАЦИЯ (нажмите клавишу) 19/31
Создание связей В открывшемся окне установите связи между таблицами, перетаскивая ключевые поля одной таблицы на поля другой. Например, поле «код факультета» таблицы «Факультет» перетащите на поле «код факультета» в таблице «Специальность» В окне «Изменение связей» проверьте правильность связи и установите обеспечение целостности данных. Затем нажмите кнопку «Создать» АНИМАЦИЯ (нажмите клавишу) 20/31
Сохранение схемы данных После того как все связи между таблицами определены, нажмите кнопку сохранить. АНИМАЦИЯ (нажмите клавишу) 21/31
Заполнение таблиц Если все связи между таблицами логически определены верно, то Access позволит вам заполнить таблицы начиная с главной переходя к подчиненным. Например, заполняя таблицу «Факультет» , после того как введены значения, можно заполнять таблицу «Специальность» не закрывая таблицу «Факультет» . Затем, введя данные в таблицу «Специальность» , можно вводить данные в таблицу «Группа» , затем в таблицу «Студент» и т. д. АНИМАЦИЯ (нажмите клавишу) 22/31
Создание запроса В окне базы данных выберите Запросы -> Создание запроса в режиме конструктора -> Конструктор Предположим, нам необходимо посмотреть все оценки студентов ИВТ факультета. Выберем необходимые таблицы АНИМАЦИЯ (нажмите клавишу) 23/31
Формирование запроса [Введите наименование факультета] Зададим поля, которые необходимо вывести, и зададим условие для наименования факультета. Для создания запроса с параметром, условие необходимо заключить в квадратные скобки Для выполнения запроса нажмите кнопку «Пуск» (красный !) или перейдите в режим таблицы. АНИМАЦИЯ (нажмите клавишу) 24/31
Результат выполнения запроса Сохраните запрос АНИМАЦИЯ (нажмите клавишу) 25/31
Групповые операции Необходимо посчитать средний балл каждого Функция, студента на ИВТ факультете. Необходимо выполнить группировку по считающая полю «ФИО студента» и задать групповую операцию для поля «оценка» . средний балл - Avg Зададим групповые операции над полями запроса. АНИМАЦИЯ (нажмите клавишу) 26/31
Результат выполнения запроса с групповой операцией Чтобы округлить среднее значение, необходимо добавить выражение округления в АНИМАЦИЯ поле. При этом Групповую операцию с «Avg» изменить на «Выражение» . «Средняя оценка» - имя поля, Round(Avg([Оценка студента]. [оценка]); 0) – выражение. 27/31 (нажмите клавишу)
Список рекомендуемой литературы • Курс лекций «Базы данных» . Автор: Н. В. Соболева, каф. АСОИУ, Иж. ГТУ. • Справка Microsoft Access. • Любые источники из Internet по тематике «Базы данных» , «Реляционные базы данных» , «Концептуальный, логический, физический уровни проектирования баз данных» 28/31
Пример создания БД в Access.ppt