Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание базы данных

ЭТАП: Разработка.

Реализация схемы хранения данных, спроектированной нами в предыдущих заданиях (сначала на уровне диаграммы классов, описывающей словарь предметной области, а далее уточненной до вида сущность-связь).

 

В этом задании в качестве СУБД будем использовать MS Access, как наиболее простую из доступных нам в условиях учебного класса систем управления базами данных.

 

Нужно создать базу данных из трех или более связанных между собой таблиц, опираясь на разработанную Вами ранее ER-диаграмму (описание процесса см. ниже).

 

 

Пример: Некая ER-диаграмма - и соответствующее ей таблицы в базе данных:

 

 

Student

Student_id Name_st Phone Address
  Ivanov   Nevskii 1
  Petrov   Sadovaja 3
       

Course

Course_id Name_c Teacher
  Algebra Faddeev
  Geometry Volkov
     

Marks

Student_id Mark Course_id
     
     
     
     

 

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

Создание базы данных

 

Запуск MS Access:

Пуск -> Все программы -> MS Office -> MS Access

 

В открывшемся окне выберите режим создания новой базы данных:

 

 

 

Вас попросят ввести имя файла, в котором будет храниться база. Выберите свою рабочую директорию для сохранения базы (MS Office 2013 – через кнопочку ) и укажите имя базы в формате Access 2000, например, Ivanov. mdb (но не Ivanov.accdb – это формат 2007-2013, с ним в дальнейшем могут возникнуть проблемы совместимости).

 

 

После создания базы откроется главное окно MS Access в режиме создания первой таблицы “путем ввода данных” (режим, неудобный в нашем случае):

 

 

Войдите в режим создания таблицы через конструктор:

 

 

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

 

Например:

 

 

 

Если в таблице одно из полей должно быть первично-ключевым (PK), укажите это в выпадающем меню (щелчком правой кнопкой мыши слева от имени поля). Поле окажется помеченным значком ключа. Поля FK пока не нужно помечать как ключевые.

 

! В качестве ключевого поля Access любит предлагать поле Код с типом данных Счетчик, это неплохо для данной СУБД, но для большей универсальности проекта не стоит использовать его, лучше создать свое поле id числового типа.

 

Создайте аналогичным образом остальные таблицы (через меню Создание -> Конструктор таблиц).

 

! Будьте внимательны – те пары полей, по которым строятся связи, должны иметь один и тот же тип данных (например, student.student_id и marks.id_student).

 

! После создания таблицы, а в дальнейшем – после всех существенных действий по изменению базы, сохраняйте эти изменения (например, закрывая соответствующие закладки…).

 

 

Откройте окно графического представления схемы данных (Работа с базами данных -> Отношения -> Схема данных). В промежуточном окне со списком ваших таблиц добавьте в схему последовательно все таблицы, из которых будет формироваться запрос и в результате в окне графически будут изображены все ваши таблицы, но без связей между ними:

 

 

 

Создайте необходимые связи между таблицами. Для создания связи нажмите мышью на поле “внешнего ключа”, переместите указатель в связную таблицу на поле “первичного ключа” и отпустите. В процессе создания каждой связи Вам будет предложено окно для возможного изменения параметров связи:

 

 

 

Не забудьте поставить галочку “Обеспечение целостности данных” – это обеспечит автоматический контроль целостности данных (нельзя будет создать оценку для несуществующего студента).

 

На схеме связи будут выглядеть подобным образом:

 

 

 

Заполните таблицы данными (добавьте от 5 до 15 записей в каждую). Ввод данных начинайте с таблиц, не имеющих внешних ключей, так как при заполнении таких полей производится проверка на наличие соответствующего значения в “справочнике”.

 

 

Войдите в режим создания запросов (через меню Создание -> Конструктор запросов):

 

 

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

 

 

Создайте запрос, объединяющий данные из двух или более разных таблиц, для чего в нижней части рабочей зоны выберите несколько полей из таблиц запроса Например:

 

 

 

! Если у Вас в разных таблицах есть одноименные поля, не надо вставлять их в один запрос - они будут взяты в запросе с именами таблиц (как, например, aaa.name и bbb.name, где aaa и bbb – имена таблиц), что вполне приемлемо в общем случае, но в нашей ситуации создаст проблемы при вызове такого запроса из программы.

 

В результате у вас должен появиться работоспособный запрос, результатом работы которого является что-то разумное и полезное (например, все оценки, полученные всеми студентами). В идеале – вывод данных этого запроса в нтерфейсе какой-либо программы должен реализовывать один из сервисов, спроектированных Вами в use-case диаграмме в задании Task_06 (например, сервис «Просмотр информации об оценках»).

 

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

 

Этот запрос будет в следующем задании вызываться из программы на С++.

 

Убедитесь, что база сохранена в формате в формате Access 2002-2003 (расширение mdb, а не accdb).

 

Покажите результат работы преподавателю и скопируйте базу данных (файл Ivanov.mdb) в …/POM/22X/Task09, и еще копию оставьте где-нибудь у себя.

<== предыдущая лекция | следующая лекция ==>
ЭТАП: Детализированное проектирование. | Управленческое резюме




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.