Файл: С каждым днём компьютер всё больше и больше внедряется в нашу деятельность и находит применение в любой её области.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 191
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
На втором этапе проектирования структуры базы данных требуется определить необходимые таблицы, которые база данных должна содержать. Таблица представляет собой основную единицу хранения данных в базе. Понятие таблицы в Access полностью соответствует аналогичному понятию реляционной модели данных. Определение необходимых в базе данных таблиц может оказаться самым непростым этапом процесса проектирования базы данных, поскольку результаты, которые должна выдавать база данных – отчеты, формы и т.п. – не всегда дают полное представление о структуре таблиц, по которым они создаются.
При разработке таблиц рекомендуется руководствоваться следующими основными принципами:
-
сведения не должны дублироваться в таблице или между таблицами (в этом отношении таблицы в реляционной базе данных отличаются от таблиц в приложениях, работающих с таблицами в текстовом формате, таких как редакторы электронных таблиц); -
данные, хранящиеся только в одной таблице, обновляются только в этой таблице (это более эффективно и, кроме того, исключает возможность дублирования записей, содержащих разные сведения); -
каждая таблица должна содержать информацию только на одну тему.
Когда каждая таблица содержит сведения только по одной теме, со сведениями по каждой теме можно работать независимо от остальных тем.
Каждая таблица содержит сведения по конкретной теме, а каждое поле в таблице содержит конкретный факт по теме таблицы. При составлении схемы полей для каждой таблицы учитывайте следующее:
-
каждое поле должно быть связано с темой таблицы; -
не рекомендуется включать в таблицу данные, которые являются результатом выражения; -
таблица должна содержать все необходимые сведения; -
данные следует разбить на наименьшие логические единицы[8].
Для связывания в Microsoft Access сведений, хранящихся в разных таблицах каждая таблица базы данных должна содержать поля или набор полей, однозначно определяющих каждую запись. Такое поле или набор полей называют первичным ключом.
В соответствии с вышеизложенными требования в Microsoft Access создадим следующие таблицы:
-
Specialities – таблица «Специальности», содержит поля: -
SpecId – идентификационный номер специальности (ключевое поле); -
SpecCode – код специальности; -
SpecName – наименование специальности; -
SpecialisationNameId – идентификационный номер наименования специализации; -
QualificId – идентификационный номер квалификации; -
Qualifications – таблица «Квалификация», содержит поля: -
QualificId – идентификационный номер квалификации (ключевое поле); -
QualificName – название квалификации; -
Specialisations – таблица «Специализации», содержит поля: -
SpecialNameId – идентификационный номер специализации (ключевое поле); -
SpecialName – наименование специализации; -
Groups – таблица «Группы», содержит поля: -
GroupId – идентификационный номер группы (ключевое поле); -
GroupName – название группы; -
SpecId – идентификационный номер специальности; -
GiveOutDocDate – дата выдачи документа; -
PeriodInstrasction – нормативный период обучения по очной форме; -
FormInstraction – форма обучения; -
Hours – таблица «Количество часов», содержит поля: -
HourId – идентификатор количества часов (ключевое поле); -
GroupId – идентификационный номер группы; -
SubId – идентификационный номер дисциплины; -
HourCount – количество часов; -
AudHourCount – количество аудиторных часов; -
SubjectNames – таблица «Дисциплины», содержит поля: -
SubId – идентификационный номер дисциплины (ключевое поле); -
SubName – название дисциплины; -
Students – таблица «Студенты», содержит поля: -
StudentId – идентификационный номер студента (ключевое поле); -
StudentSurname – фамилия студента; -
StudentName – имя студента; -
StudentSecondName – отчество студента; -
GroupId – идентификационный номер группы; -
BirthDate – дата рождения студента; -
Pol – пол; -
LastDocId – идентификационный номер предыдущего документа об образовании; -
DateGiveLastDoc – год выдачи предыдущего документа об образовании; -
EntranceTests – информация о вступительных испытаниях (прошел/прошла); -
EnteredIn – поле «поступил(а) в…»; -
EnteringYear – год поступления; -
ExitIn – поле «завершил(а) обучение в…»; -
ExitingYear – год завершения обучения; -
DateGAK – дата решения ГАК; -
GiveOutDocNameId – идентификационный номер выданного документа; -
GiveOutDocNumber – номер выданного документа (диплома или академической справки); -
RegNumber – регистрационный номер; -
Comments – комментарий в конце документа; -
Status – статус студента (обучается/отчислен); -
LastDocuments – таблица «Предыдущие документы об образовании», содержит поля: -
LastDocId – идентификационный номер предыдущего документа об образовании (ключевое поле); -
LastDocName – наименование предыдущего документа об образовании; -
CourseWorks – таблица «Курсовые работы/проекты», содержит поля: -
CourseWorkId – идентификационный номер курсовой работы (ключевое поле); -
StudentId – идентификационный номер студента; -
CourseWorkName – название курсовой работы; -
MarkNameId – идентификационный номер названия оценки; -
MarkNames – таблица «Названия оценок», содержит поля: -
MarkNameId – идентификационный номер названия оценки (ключевое поле); -
MarkName – название оценки; -
Marks – таблица «Оценки», содержит поля: -
MarkId – идентификационный номер оценки (ключевое поле); -
StudentId – идентификационный номер студента; -
SubId – идентификационный номер дисциплины; -
MarkNameId – идентификационный номер названия оценки; -
DiplomWorks – таблица «Выпускные квалификационные работы», содержит поля: -
DiplomWorkId – идентификационный номер выпускной квалифи-кационной работы (ключевое поле); -
StudentId – идентификационный номер студента; -
DiplomWorkName – тема выпускной квалификационной работы; -
DiplomWeekCount – количество недель для выполнения выпускной квалификационной работы; -
MarkNameId – идентификационный номер названия оценки; -
Practice – таблица «Практика», содержит поля: -
PracticeId – идентификационный номер практики (ключевое поле); -
StudentId – идентификационный номер студента; -
PracticeNameId – идентификационный номер практики; -
WeekCount – количество недель для выполнения практики; -
MarkNameId – идентификационный номер названия оценки; -
PracticeNames – таблица «Наименования практик», содержит поля: -
PracticeNameId – идентификационный номер практики (ключевое поле); -
PracticeName – наименование практики; -
StateExaminations – таблица «Итоговые государственные экзамены», содержит поля: -
StateExamId – идентификационный номер итоговых государственных экзаменов (ключевое поле); -
StudentId – идентификационный номер студента; -
StateExamName – название итоговых государственных экзаменов; -
MarkNameId – идентификационный номер названия оценки; -
GiveOutDocs – таблица «Тип выданного документа», содержит поля: -
GiveOutDocNameId – идентификационный номер выданного документа (ключевое поле); -
GiveOutDocName – наименование выданного документа.
Структура таблиц базы данных сведена в таблицу 1.
Продолжение таблицы 1 – Базы данных | |||
Название таблицы | Поле таблицы | Тип данных и их размер | Описание поля |
Specialities | SpecId | Счетчик | идентификационный номер специальности (ключевое поле) |
SpecCode | Текстовый (50) | код специальности | |
SpecName | Текстовый (50) | наименование специальности | |
SpecialisationNameId | Числовой (длинное целое) | идентификационный номер наименования специализации | |
QualificId | Числовой (длинное целое) | идентификационный номер квалификации | |
Qualifications | QualificId | Счетчик | идентификационный номер квалификации (ключевое поле) |
QualificName | Текстовый (255) | название квалификации | |
Specialisations | SpecialNameId | Счетчик | идентификационный номер специализации (ключевое поле) |
SpecialName | Текстовый (255) | наименование специализации | |
Groups | GroupId | Счетчик | идентификационный номер группы (ключевое поле) |
GroupName | Текстовый (50) | название группы | |
SpecId | Числовой (длинное целое) | идентификационный номер специальности | |
GiveOutDocDate | Дата/Время | дата выдачи документа | |
PeriodInstrasction | Числовой (длинное целое) | нормативный период обучения по очной форме | |
FormInstraction | Текстовый (50) | форма обучения | |
Hours | HourId | Счетчик | идентификатор количества часов (ключевое поле) |
GroupId | Числовой (длинное целое) | идентификационный номер группы | |
SubId | Числовой (длинное целое) | идентификационный номер дисциплины | |
HourCount | Числовой (длинное целое) | количество часов | |
AudHourCount | Числовой (длинное целое) | количество аудиторных часов | |
SubjectNames | SubId | Счетчик | идентификационный номер дисциплины (ключевое поле) |
SubName | Текстовый (50) | название дисциплины | |
Students | StudentId | Счетчик | идентификационный номер студента (ключевое поле) |
StudentSurname | Текстовый (50) | фамилия студента | |
StudentName | Текстовый (50) | имя студента | |
StudentSecondName | Текстовый (50) | отчество студента | |
GroupId | Числовой (длинное целое) | идентификационный номер группы | |
BirthDate | Дата/Время | дата рождения студента | |
Pol | Текстовый (50) | пол | |
LastDocId | Числовой (длинное целое) | идентификационный номер предыдущего документа об образовании | |
DateGiveLastDoc | Дата/Время | год выдачи предыдущего документа об образовании | |
EntranceTests | Текстовый (50) | информация о вступительных испытаниях (прошел/прошла) | |
EnteredIn | Текстовый (50) | поле «поступил(а) в…» | |
EntetingYear | Числовой (длинное целое) | год поступления | |
ExitIn | Текстовый (50) | поле «завершил(а) обучение в…» | |
ExitingYear | Числовой (длинное целое) | год окончания обучения | |
DateGAK | Дата/Время | дата решения ГАК | |
GiveOutDocNameId | Числовой (длинное целое) | идентификационный номер выданного документа | |
GiveOutDocNumber | Числовой (длинное целое) | номер выданного документа (диплома или академической справки) | |
RegNumber | Текстовый (50) | регистрационный номер | |
Comments | Текстовый (50) | комментарий в конце документа | |
Status | Текстовый (50) | статус студента (обучается/отчислен) | |
LastDocuments | LastDocId | Счетчик | идентификационный номер предыдущего документа об образовании (ключевое поле) |
| LastDocName | Текстовый (255) | наименование предыдущего документа об образовании |
CourseWorks | CourseWorkId | Счетчик | идентификационный номер курсовой работы (ключевое поле) |
StudentId | Числовой (длинное целое) | идентификационный номер студента | |
CourseWorkName | Текстовый (50) | название курсовой работы | |
MarkNameId | Числовой (длинное целое) | идентификационный номер названия оценки | |
MarkNames | MarkNameId | Счетчик | идентификационный номер названия оценки (ключевое поле) |
MarkName | Текстовый (255) | название оценки | |
Marks | MarkId | Счетчик | идентификационный номер оценки (ключевое поле) |
StudentId | Числовой (длинное целое) | идентификационный номер студента | |
SubId | Числовой (длинное целое) | идентификационный номер дисциплины | |
MarkNameId | Числовой (длинное целое) | идентификационный номер названия оценки | |
DiplomWorks | DiplomWorkId | Счетчик | идентификационный номер выпускной квалификационной работы (ключевое поле) |
StudentId | Числовой (длинное целое) | идентификационный номер студента | |
DiplomWorkName | Текстовый (255) | тема выпускной квалификационной работы | |
DiplomWeekCount | Числовой (длинное целое) | количество недель для выполнения выпускной квалификационной работы | |
MarkNameId | Числовой (длинное целое) | идентификационный номер названия оценки | |
Practice | PracticeId | Счетчик | идентификационный номер практики (ключевое поле) |
StudentId | Числовой (длинное целое) | идентификационный номер студента | |
PracticeNameId | Числовой (длинное целое) | идентификационный номер практики | |
WeekCount | Числовой (длинное целое) | количество недель для выполнения практики | |
MarkNameId | Числовой (длинное целое) | идентификационный номер названия оценки | |
PracticeNames | PracticeNameId | Счетчик | идентификационный номер практики (ключевое поле) |
PracticeName | Текстовый (50) | наименование практики | |
StateExaminations | StateExamId | Счетчик | идентификационный номер государственных экзаменов (ключевое поле) |
StudentId | Числовой (длинное целое) | идентификационный номер студента | |
StateExamName | Текстовый (255) | название итоговых государственных экзаменов | |
MarkNameId | Числовой (длинное целое) | идентификационный номер названия оценки | |
GiveOutDocs | GiveOutDocNameId | Счетчик | идентификационный номер выданного документа (ключевое поле) |
| GiveOutDocName | Текстовый (255) | наименование выданного документа |
Теперь на основании созданных таблиц разработаем структурную схему данных. Построение схемы данных состоит в добавлении в неё таблиц и установлении связей между ними.
Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях, обычно между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с ключевым полем одной таблицы, являющимся уникальным идентификатором каждой записи, связывается внешний ключ другой таблицы. Например, в нашем случае для связывания студентов с группой, за которой они закреплены, следует создать между таблицами «Students» и «Groups» связь с помощью полей «GroupId».
Связь между таблицами определяется путем добавления связываемых таблиц в окно «Схема данных» с последующим перетаскиванием ключевого поля из одной таблицы в другую. Также можно определять связи с помощью клавиатуры.
Тип отношения в создаваемой Microsoft Access связи зависит от способа определения связываемых полей:
-
отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс; -
отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы; -
отношение «многие-ко-многим» фактически является двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей — внешних ключей двух других таблиц.
Согласно вышеуказанным положениям разработаем структурную схему данных, при этом установим для связанных таблиц отношение «один-ко-многим».
Структурная схема данных, разработанная в MS Access, представлена в Приложении А.
3 Разработка структуры базы данных в среде BPwin/ERwin
Разработка программного обеспечения включает в себя несколько этапов. Однако всегда начальным этапом создания системы является изучение, анализ и моделирование деятельности заказчика для возможного улучшения и оптимальных методов работы, которые и будут реализованы в создаваемом приложении. Именно изучение предмета проектирования является ключевым моментом при разработке любого приложения и позволяет четко и однозначно определить задачи, которые стоят перед разработчиками. Таким образом, анализ потоков данных является неотъемлемой частью начального этапа разработки жизнеспособной системы.
На рынке существует несколько технологий, которые предназначены для моделирования деятельности заказчика и позволяют облегчить обмен информацией. Инструменты для разработки, моделирования и анализа получили название CASE-средств (Computer-Aided Software Engineering). Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования ИС: от простых средств анализа и документирования до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО.
Наиболее трудоемкими этапами разработки ИС являются этапы анализа и проектирования, в процессе которых CASE-средства обеспечивают качество принимаемых технических решений и подготовку проектной документации. При этом большую роль играют методы визуального представления информации. Это предполагает построение структурных или иных диаграмм в реальном масштабе времени, использование многообразной цветовой палитры, сквозную проверку синтаксических правил. Графические средства моделирования предметной области позволяют разработчикам в наглядном виде изучать существующую ИС, перестраивать ее в соответствии с поставленными целями и имеющимися ограничениями.
С развитием компьютерных технологий и появлением CASE-моделирования возникла потребность в инструментах, которые бы поддерживали стандарты моделирования. К наиболее развитым инструментам для разработки, моделирования и анализа на сегодняшний день можно отнести BPwin и ERwin. Эти два продукта тесно интегрированы и обычно используются при разработке совместно. Использование этих продуктов совместно поможет правильно оценить стоящие задачи, предложить адекватное решение (анализ бизнес-процессов, BPwin) и разработать центральную часть любого программного обеспечения – базы данных – с использованием информации, полученной во время обследования предприятия (моделирование базы данных, ERwin). Эти инструменты сами по себе не являются решением проблемы, но их грамотное и своевременное использование поможет свести «рутинный» труд разработчика к минимуму, позволит ему сконцентрироваться на собственно разработке системы и снизит потери времени, которые обычно происходят при согласовании моделей со специалистами предметной области. Кроме того, использование этих инструментов дает возможность получить набор полностью документированных и согласованных моделей, что в значительной степени облегчит поддержку созданных систем в будущем, а также может быть повторно использовано при разработке других систем[9].
3.1 Разработка структуры базы данных в системе BPwin
BPwin – мощное средство системного анализа деловой и производственной активности, позволяющее адекватно отслеживать соответствие структуры бизнеса, документооборота, финансовых потоков жестким и динамичным требованиям экономики. Система BPwin поможет повысить конкурентоспособность, оптимизировать процессы управления. Результатом использования BPwin является исключение лишних и бесполезных действий, снижение затрат, повышение гибкости и эффективности разработки.
Функциональность BPwin заключается в проверке целостности и согласованности модели. BPwin обеспечивает логическую четкость в определении и описании элементов диаграмм, а также проверку целостности связей между диаграммами. Инструмент обеспечивает коррекцию наиболее часто встречающихся ошибок при моделировании, таких, как "зависание" связей при переходе от диаграммы к диаграмме, нарушение ассоциации связей в различных диаграммах модели и т.п. Кроме того, BPwin поддерживает пользовательские свойства, которые применяются к элементам диаграммы для описания специфических свойств, присущих данному элементу.
BPwin имеет широкие возможности по представлению диаграмм. Графическое представление модели может быть изображено при помощи различных цветов, шрифтов и прочих параметров представления, которые выделяют важные или, наоборот, тушируют незначительные аспекты модели. Эта незначительная на первый взгляд возможность является ключевой во время представления и обсуждения модели с заказчиком или экспертами предметной области, т.к. правильно подобранное графическое представление позволяет им быстрее сориентироваться в модели[10].
Одним из важнейших средств BPwin является генератор отчетов. На деле, генератор отчетов RPTwin представляет собой автономный продукт, который поставляется с некоторыми продуктами Logic Works, и позволяет генерировать подробные и многогранные отчеты по модели. Вместе с BPwin устанавливается набор стандартных отчетов, которые позволяют осветить модель с различных сторон. Отчеты обычно сопровождают окончательный вариант модели бизнес-процессов, созданной при помощи BPwin, и содержат информацию, размещение которой на модели сделало бы ее трудной для восприятия.
BPwin совмещает в одном инструменте средства моделирования функций (IDEF0), потоков данных (DFD) и потоков работ (IDEF3).