Разработка базы данных для АСУ «Компьютерные курсы»

Автор работы: Пользователь скрыл имя, 02 Декабря 2012 в 13:20, курсовая работа

Краткое описание

Целью данной работы является построение информационной системы (ИС) «Компьютерные курсы» для автоматизации работы учебного заведения.Задачи данной работы:
 провести системный анализ предметной области «Компьютерные курсы»;
 провести обзор информационных технологий, подходящих для разработки информационной системы учебного заведения;
 изучить аналогичные информационные системы данной предметной области;
 описать требования, предъявляемые к разработке данной базы данных;
 разработать инфологическую модель базы данных;
 обосновать выбор модели данных и осуществить логическое проектирование информационной системы;
 нормализовать спроектированную модель и составить схему базы данных;
 осуществить физическое проектирование базы данных выбранной СУБД;
 разработать программное обеспечение, реализующее отчеты и формы для базы данных;

Содержание работы

Введение……………………………………………………………………………………….3
Глава I. Анализ предметной области объекта автоматизации «Компьютерные курсы»…4
1.1 Системный анализ объекта автоматизации «Компьютерные курсы»………….4
1.2. Обзор информационных технологий, подходящих для разработки ИС компьютерных курсов…………………………………………………………………5
1.3. Обзор продуктов-аналогов……………………………………………………….10
1.4. Требования к разрабатываемой базе данных……………………………………13
Выводы…………………………………………………………………………………13
Глава II. Проектирование базы данных……………………………………………………....14
2.1. Разработка инфологической модели……………………………………………..14
2.2. Обоснование выбора модели данных………………………………………........15
2.3. Логическое проектирование………………………………………………….......24
2.4. Нормализация схемы базы данных……………………………………………….26
Выводы………………………………………………………………………………….28
Глава III. Программная реализация……………………………………………………...........29
3.1. Анализ и выбор СУБД…………………………………………………………….29
3.2. Физическое проектирование базы данных в СУБД………………………..........29
3.3. Разработка представлений………………………………………………………...30
3.4. Разработка форм……………………………………………………………………31
3.5. Разработка отчетов……………………………………………………………........31
3.6. Реализация ограничений…………………………………………………………..32
3.7. Безопасность и контроль…………………………………………………………..32
Выводы………………………………………………………………………………......34
Заключение……………………………………………………………………………………...35
Список литературы……………………………………………………………………………..36

Содержимое работы - 1 файл

АСУ Компьютерные курсы.doc

— 346.00 Кб (Скачать файл)
  • способ упорядочения подчиненных записей:
    • произвольный,
    • хронологический(очередь),
    • обратный хронологический(стек),
    • сортированный.

Если запись объявлена подчиненной  в нескольких групповых отношениях, то в каждом из них может быть назначен свой способ упорядочивания.

  • режим включения подчиненных записей:
    • автоматический - невозможно занести в БД запись без того, чтобы она была сразу же закреплена за неким владельцем;
    • ручной - позволяет запомнить в БД подчиненную запись и не включать ее немедленно в экземпляр группового отношения. Эта операция позже инициируется пользователем;
  • режим исключения Принято выделять три класса членства подчиненных записей в групповых отношениях:
    • Фиксированное. Подчиненная запись жестко связана с записью владельцем и ее можно исключить из группового отношения только удалив. При удалении записи-владельца все подчиненные записи автоматически тоже удаляются. В рассмотренном выше примере фиксированное членство предполагает групповое отношение "ЗАКЛЮЧАЕТ" между записями "КОНТРАКТ" и "ЗАКАЗЧИК", поскольку контракт не может существовать без заказчика.
    • Обязательное. Допускается переключение подчиненной записи на другого владельца, но невозможно ее существование без владельца. Для удаления записи-владельца необходимо, чтобы она не имела подчиненных записей с обязательным членством. Таким отношением связаны записи "СОТРУДНИК" и "ОТДЕЛ". Если отдел расформировывается, все его сотрудники должны быть либо переведены в другие отделы, либо уволены.
    • Необязательное. Можно исключить запись из группового отношения, но сохранить ее в базе данных не прикрепляя к другому владельцу. При удалении записи-владельца ее подчиненные записи - необязательные члены сохраняются в базе, не участвуя более в групповом отношении такого типа. Примером такого группового отношения может служить "ВЫПОЛНЯЕТ" между "СОТРУДНИКИ" и "КОНТРАКТ", поскольку в организации могут существовать работники, чья деятельность не связана с выполнением каких-либо договорных обязательств перед заказчиками.

 

Операции над данными.

  • ДОБАВИТЬ - внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение.
  • ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ - связать существующую подчиненную запись с записью-владельцем.
  • ПЕРЕКЛЮЧИТЬ - связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.
  • ОБНОВИТЬ - изменить значение элементов предварительно извлеченной записи.
  • ИЗВЛЕЧЬ - извлечь записи последовательно по значению ключа, а также используя групповые отношения - от владельца можно перейти к записям - членам, а от подчиненной записи к владельцу набора.
  • УДАЛИТЬ - убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные удалены вместе с владельцем, необязательные останутся в БД.
  • ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ - разорвать связь между записью-владельцем и записью-членом.

 

Ограничения целостности.

Как и в иерархической модели обеспечивается только поддержание  целостности по ссылкам (владелец отношения - член отношения).

Реляционная модель данных

Реляционная модель предложена сотрудником  компании IBM Е.Ф.Коддом в 1970 г. (русский  перевод статьи, в которой она  впервые описана опубликован  в журнале "СУБД" N 1 за 1995 г.). В  настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД.

 

Структура данных.

В реляционной модели достигается  гораздо более высокий уровень  абстракции данных, чем в иерархической  или сетевой. В упомянутой статье Е.Ф.Кодда утверждается, что "реляционная модель предоставляет средства описания данных на основе только их естественной структуры, т.е. без потребности введения какой-либо дополнительной структуры для целей машинного представления". Другими словами, представление данных не зависит от способа их физической организации. Это обеспечивается за счет использования математической теории отношений (само название "реляционная" происходит от английского relation - "отношение").

Перейдем к рассмотрению структурной  части реляционной модели данных. Прежде всего необходимо дать несколько определений.

Определения:  

  • Декартово произведение: Для заданных конечных множеств (не обязательно различных) декартовым произведением называется множество произведений вида: , где
  • Пример: если даны два множества A (a1,a2,a3) и B (b1,b2), их декартово произведение будет иметь вид С=A*B (a1*b1, a2*b1, a3*b1, a1*b2, a2*b2, a3*b2)  
  • Отношение: Отношением R, определенным на множествах называется подмножество декартова произведения . При этом:
    • множества называются доменами отношения
    • элементы декартова произведения называются кортежами
    • число n определяет степень отношения ( n=1 - унарное, n=2 - бинарное, ..., n-арное)
    • количество кортежей называется мощностью отношения

Пример: на множестве С могут быть определены отношения R1 (a1*b1, a3*b2) или R2 (a1*b1, a2*b1, a1*b2)

Отношения удобно представлять в виде таблиц. На рис. 2 представлена таблица (отношение степени 5), содержащая некоторые сведения о работниках гипотетического предприятия. Строки таблицы соответствуют кортежам. Каждая строка фактически представляет собой описание одного объекта реального мира (в данном случае работника), характеристики которого содержатся в столбцах. Можно провести аналогию между элементами реляционной модели данных и элементами модели "сущность-связь". Реляционные отношения соответствуют наборам сущностей, а кортежи - сущностям. Поэтому, также как и в модели "сущность-связь" столбцы в таблице, представляющей реляционное отношение, называют атрибутами.

Рис.2. Основные компоненты реляционного отношения. 

 

Каждый атрибут определен на домене, поэтому домен можно рассматривать  как множество допустимых значений данного атрибута.

Несколько атрибутов одного отношения  и даже атрибуты разных отношений  могут быть определены на одном и  том же домене. В примере, показанном на рис.2 атрибуты "Оклад" и "Премия" определены на домене "Деньги". Поэтому, понятие домена имеет семантическую нагрузку: данные можно считать сравнимыми только тогда, когда они относятся к одному домену. Таким образом, в рассматриваемом нами примере сравнение атрибутов "Табельный номер" и "Оклад" является семантически некорректным, хотя они и содержат данные одного типа.

Именованное множество пар "имя атрибута - имя домена" называется схемой отношения. Мощность этого множества - называют степенью или "арностью" отношения. Набор именованных схем отношений представляет из себя схему базы данных.

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

Отношение может содержать несколько  ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Все остальные ключи отношения называются возможными ключами.

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

Рис.3. База данных о подразделениях и сотрудниках предприятия. 

  
 

Например, связь между отношениями  ОТДЕЛ и СОТРУДНИК создается  путем копирования первичного ключа "Номер_отдела" из первого отношения во второе.

Таким образом:

  • для того, чтобы получить список работников данного подразделения, необходимо
    • из таблицы ОТДЕЛ установить значение атрибута "Номер_отдела", соответствующее данному "Наименованию_отдела"
    • выбрать из таблицы СОТРУДНИК все записи, значение атрибута "Номер_отдела" которых равно полученному на предыдушем шаге.
  • для того, чтобы узнать в каком отделе работает сотрудник, нужно выполнить обратную операцию:
    • определяем "Номер_отдела" из таблицы СОТРУДНИК
    • по полученному значению находим запись в таблице ОТДЕЛ.

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

 

Свойства отношений.

  1. Отсутствие кортежей-дубликатов. Из этого свойства вытекает наличие у каждого кортежа первичного ключа. Для каждого отношения, по крайней мере, полный набор его атрибутов является первичным ключом. Однако, при определении первичного ключа должно соблюдаться требование "минимальности", т.е. в него не должны входить те атрибуты, которые можно отбросить без ущерба для основного свойства первичного ключа - однозначно определять кортеж.
  2. Отсутствие упорядоченности кортежей.
  3. Отсутствие упорядоченности атрибутов. Для ссылки на значение атрибута всегда используется имя атрибута.
  4. Атомарность значений атрибутов, т.е. среди значений домена не могут содержаться множества значений (отношения).

Объектно-ориентированная модель данных

Основные трудности объектно-ориентированного моделирования данных проистекают  из того, что такого развитого математического  аппарата, на который могла бы опираться  общая объектно-ориентированная  модель данных, не существует. В большой степени, поэтому до сих пор нет базовой объектно-ориентированной модели. С другой стороны, некоторые авторы утверждают, что общая объектно-ориентированная модель данных в классическом смысле и не может быть определена по причине непригодности классического понятия модели данных к парадигме объектной ориентированности.

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

  • Во-первых, следуя практике многих ООБД, предлагается выделить два уровня моделирования объектов: нижний (структурный) и верхний (поведенческий). На структурном уровне поддерживаются сложные объекты, их идентификация и разновидности связи «отношением классификации (ISA)».База данных - это набор элементов данных, связанных отношениями "входит в класс" или "является атрибутом". Таким образом, БД может рассматриваться как ориентированный граф. Важным моментом является поддержание наряду с понятием объекта понятия значения (позже мы увидим, как много на этом построено в одной из успешных объектно-ориентированных СУБД O2).
  • Важным аспектом является четкое разделение схемы БД и самой БД. В качестве первичных концепций схемного уровня ООБД выступают типы и классы. Отмечается, что во всех системах, использующих только одно понятие (либо тип, либо класс), это понятие неизбежно перегружено: тип предполагает наличие некоторого множества значений, определяемого структурой данных этого типа; класс также предполагает наличие множества объектов, но это множество определяется пользователем. Таким образом, типы и классы играют разную роль, и для строгости и недвусмысленности требуется одновременная поддержка обоих понятий. Беери не представляет полной формальной модели структурного уровня ООБД, но выражает уверенность, что текущего уровня понимания достаточно, чтобы формализовать такую модель. Что же касается поведенческого уровня, предложен только общий подход к требуемому для этого логическому аппарату (логики первого уровня недостаточно).
  • Важным, хотя и недостаточно обоснованным предположением Беери является то, что двух традиционных уровней - схемы и данных - для ООБД недостаточно. Для точного определения ООБД требуется уровень мета-схемы, содержимое которой должно определять виды объектов и связей, допустимых на схемном уровне БД. Мета-схема должна играть для ООБД такую же роль, какую играет структурная часть реляционной модели данных для схем реляционных баз данных.

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

Для иллюстрации текущего положения  дел мы кратко рассмотрим особенности  конкретной модели данных, применяемой  в объектно-ориентированной СУБД O2 (это, конечно, тоже не модель данных в классическом смысле).

В O2 поддерживаются объекты и значения:

  • Объект - это пара (идентификатор, значение), причем объекты инкапсулированы, т.е. их значения доступны только через методы - процедуры, привязанные к объектам.
  • Значения могут быть атомарными или структурными. Структурные значения строятся из значений или объектов, представленных своими идентификаторами, с помощью конструкторов множеств, кортежей и списков. Элементы структурных значений доступны с помощью предопределенных операций (примитивов).

Возможны два вида организации данных: классы, экземплярами которых являются объекты, инкапсулирующие данные и поведение, и типы, экземплярами которых являются значения. Каждому классу сопоставляется тип, описывающий структуру экземпляров класса. Типы определяются рекурсивно на основе атомарных типов и ранее определенных типов и классов с применением конструкторов. Поведенческая сторона класса определяется набором методов.

Объекты и значения могут быть именованными. С именованием объекта или  значения связана долговременность его хранения (persistency): любые именованные объекты или значения долговременны; любые объект или значение, входящие как часть в другой именованный объект или значение, долговременны.

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

Метод - программный код, привязанный к конкретному классу и применимый к объектам этого класса. Определение метода в O2 производится в два этапа. Сначала объявляется сигнатура метода, т.е. его имя, класс, типы или классы аргументов и тип или класс результата. Методы могут быть публичными (доступными из объектов других классов) или приватными (доступными только внутри данного класса). На втором этапе определяется реализация класса на одном из языков программирования O2 (подробнее языки обсуждаются в следующем разделе нашего обзора).

Информация о работе Разработка базы данных для АСУ «Компьютерные курсы»