Главная страница
Навигация по странице:

  • Содержани Анализ предметной области 4 Инфологическое проектирование 5 Логическое проектирование 9

  • Инфологическое проектирование. 4 Логическое проектирование 8 Процесс нормализации БД 13 Физическое проектирование 15

  • КР База данных Городская дума. Курсовая БД_20220827. Курсовая работа по дисциплине Базы и хранилища данных База данных Городская дума


    Скачать 208.24 Kb.
    НазваниеКурсовая работа по дисциплине Базы и хранилища данных База данных Городская дума
    АнкорКР База данных Городская дума
    Дата25.03.2023
    Размер208.24 Kb.
    Формат файлаdocx
    Имя файлаКурсовая БД_20220827.docx
    ТипКурсовая
    #1014034

    МИНОБРНАУКИ РОССИИ

    Федеральное государственное бюджетное

    образовательное учреждение высшего образования

    «»

    (
    Институт информационных технологий
    Кафедра информационных технологий и экономической информатики
    КУРСОВАЯ РАБОТА
    по дисциплине «Базы и хранилища данных»
    _______________________«База данных «Городская дума»»______________________

    (тема)


    Выполнил студент__. __

    (Ф.И.О.)

    Группы ИТЗ-201

    заочной формы обучения

    направления подготовки

    Фундаментальная информатика ____________________________________

    (подпись)

    «____» ____________ 20___г.




    Научный руководитель

    Фамилия, имя, отчество_________________

    Должность____________________________

    Ученая степень ________________________

    Ученое звание _________________________

    ______________________________________

    (подпись)

    «___» _________ 20____г.


    Челябинск

    2021

    Содержани

    Анализ предметной области 4

    Инфологическое проектирование 5

    Логическое проектирование 9

    Процесс нормализации БД 14

    Физическое проектирование 16

    Приложение 1 18

    Приложение 2 19

    Анализ предметной области 3

    Инфологическое проектирование. 4

    Логическое проектирование 8

    Процесс нормализации БД 13

    Физическое проектирование 15

    Приложение 1 17

    Анализ предметной области


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

    В качестве первичных документов для решения данной задачи используются данные, приведенные в Таблице 1, Приложения 1.

    Созданная в результате проектирования база данных должна формировать на выход следующие отчеты (запросы):

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

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

    • Определить количество заседаний за каждый месяц в году, указанном пользователем.

    • Вывести в алфавитном порядке Ф.И.О. членов думы пенсионного возраста, с указанием их стажа


    Инфологическое проектирование


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

    Процесс проектирования состоит из следующих шагов:

    1) Определение сущностей.

    2) Определение типов связей между сущностями.

    3) Определение ограничений (бизнес-правила).

    4) Описание сущностей и их атрибутов.

    Шаг 1. Сущность описывает некоторый объект предметной области. В рассматриваемой предметной области можно выделить следующие сущности:

    1. Члены думы;

    2. Комиссии.

    3. Организаторы

    4. Заседания

    Шаг 2. Между наборами сущностей предметной области «Городская дума» в результате анализа предметной области были установлены указанные ниже связи:

    1. Между экземплярами сущностей «Члены думы» и «Комиссии» имеется 2 связи:

      1. «Формируются», степень связи бинарная, кратность связи: M:N так как 1 Комиссия состоит из нескольких Членов думы, каждый член Думы может состоять более чем в одной Комиссии, связь обязательная со стороны Комиссии и не обязательная со стороны Членов думы. У данной связи имеется атрибут – Члены думы

      2. «Является председателем», степень связи бинарная, кратность связи: 1:1, так как у каждой Комиссии должен быть один председатель и Членом думы может ьыть председателем только в одной Комиссии, связь обязательная со стороны Комиссии и не обязательная со стороны Членов думы

    2. Между экземплярами сущности «Заседания» и «Комиссии» имеется связь «Заседают», степень связи бинарная, кардинальность связи: 1:М, так как в один день могут заседать несколько Комиссии, однако Комиссии заседают с разной продолжительностью, и одна Комиссия может заседать не чаще чем раз в пол месяца, связь обязательная со стороны сущности «Заседания».

    3. Между экземплярами сущности «Заседания» и «Организаторы» имеется связь «Проходят», степень связи бинарная, кардинальность связи: М:1, так как один организатор может организовывать несколько.

    4. Заседаний, связь обязательная со стороны сущности «Заседания»

    Шаг 3. Ограничения предметной области:

    • Состав комиссий формируется из членов думы;

    • Председатели комиссий формируются из членов думы, у которых стаж выше 7 полных лет;

    • В один день могут заседать несколько комиссий;

    • Все даты хранятся в виде: DD.MM.YYYY;

    • Заседания проходят раз в пол месяца;

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

    • Стаж хранится в виде полных лет, без округления.

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

    Выделенные на шаге 1 сущности имеют следующие атрибуты представленные ниже в Таблице 2.

    Таблица 2 – Сущности и их атрибуты

    п/п

    Наименование сущности

    Наименование атрибута

    Ключевой атрибут

    1.

    Члены думы

    Код Члена думы

    Да

    ФИО

    Нет

    Дата рождения

    Нет

    Номер телефона

    Нет

    Стаж

    Нет

    2

    Комиссии

    Код Комиссии

    Да

    Направление

    Нет

    Председатель

    Нет

    3

    Организаторы

    Код Организатора

    Да

    ФИО

    Нет

    Дата рождения

    Нет

    Номер телефона

    Нет

    4

    Заседания

    Код Заседания

    Да

    Дата

    Нет

    Время начала

    Нет

    Продолжительность

    Нет

    Результат инфологического проектирования как правило оформляется в виде схемы модели «сущность-связь», которую также называют «ER-моделью» (essence – сущность, relation – связь), которая была предложена Питером Ченов в 1976 году.

    Схема ER-модели анализируемой предметной области «Городская дума приведена на рис. 1.


    Рис.1. Схема ER модели анализируемой предметной области «Городская дума» в нотации Питера Чена.

    Логическое проектирование


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

    В основе реляционной модели используется понятие “отношения”, которое используется для представления:

    набора экземпляров объекта (сущности),

    отношений (связей) между объектами.

    На данном этапе проектирования разработанная инфологическая модель отражается в логическую, понятную для конкретной СУБД.

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

    1. Каждой сущности модели «сущность-связь» ставится в соответствие отношение реляционной модели (таблица БД).

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

    3. В каждое отношение, соответствующее сущности со стороны «многие» (связь 1:М), добавляется набор атрибутов сущности со стороны «один», являющихся первичным ключом сущности со стороны «один». Этот набор атрибутов становится внешним ключом отношения (FOREIGN KEY).

    4. Для связи M:N («многие ко многим») вводится дополнительное отношение, связанное с исходными отношениями связью «один ко многим». Его атрибуты – первичные ключи исходных отношений.

    5. Связь 1:1 реализуется в рамках одной таблицы если связь имеет класс принадлежности обязательная с одной и необязательным с другой стороны реализуется следующим образом: под каждую сущность формируется по отношению с первичными ключами, являющимися ключами соответствующих сущностей. К отношению, сущность которого имеет обязательный класс принадлежности, добавляется в качестве атрибута ключ сущности с необязательным классом принадлежности.

    6. Для моделирования необязательного и обязательного класса принадлежности:

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

      2. при обязательном классе принадлежности атрибуты получают свойство отсутствия неопределенных значений – NOT NULL (недопустимость пустого значения атрибутов).

    7. Каждая связь, имеющая атрибуты, преобразуется в отдельную таблицу.


    Создадим таблицы для реляционной модели БД согласно разработанной на этапе инфологического проектирования ER-модели (Рис.1.). Приведем соответствие имен таблиц и полей на логическом и физическом уровне, который предполагает перенос готовых таблиц

    В указанной модели мы имеем дело со следующими сущностями:

    1. Члены думы

    2. Комиссии

    3. Организаторы

    4. Заседания

    Следовательно, и в реляционной модели будут участвовать четыре отношения с такими же именами.

    Таблица 2.1 – Члены думы

    Атрибут

    Тип данных

    (СУБД Access)

    Обязательный атрибут

    Первичный ключ

    Внешний ключ

    Код Члена думы

    Целое

    Да

    Да

    -

    ФИО

    Текстовый (50)

    Да

    -

    -

    Дата рождения

    Дата и время

    Нет

    -

    -

    Номер телефона

    Текстовый (15)

    Нет

    -

    -

    Стаж

    Целое

    Да

    -

    -


    Между сущностями «Комиссии» и «Члены думы имеется связь «Является председателем» с кардинальностью «один к одному» с классом принадлежности необязательная со стороны «Члены думы». Как уже было сказано ранее такая связь реализуется в реляционной модели БД в рамках одной таблицы.

    Таблица 2.2 – Комиссии

    Атрибут

    Тип данных

    (СУБД Access)

    Обязательный атрибут

    Первичный ключ

    Внешний ключ

    Код Комиссии

    Целое

    Да

    Да

    -

    Направление

    Текстовый (30)

    Да

    -

    -

    Председатель

    (Код Члена думы)




    Нет

    -

    Да


    Таблица 2.3 – Организаторы

    Атрибут

    Тип данных

    (СУБД Access)

    Обязательный атрибут

    Первичный ключ

    Внешний ключ

    Код Организатора

    Целое

    Да

    Да

    -

    ФИО

    Текстовый (50)

    Да

    -

    -

    Дата рождения

    Дата и время

    Нет

    -

    -

    Номер телефона

    Текстовый (15)

    Нет

    -

    -


    Между сущностями «Комиссии» и «Заседания» имеется связь с кардинальностью «один ко многим». Такие связи в реляционной модели БД проектируются как включение ключевых атрибутов сущности со стороны «один» в каждое отношение, соответствующее сущности со стороны «многие».

    Таблица 2.4 – Заседания

    Атрибут

    Тип данных

    (СУБД Access)

    Обязательный атрибут

    Первичный ключ

    Внешний ключ

    Код Заседания

    Целое

    Да

    Да




    Наименование Комиссии

    Целое

    Да

    -

    Да

    Дата

    Дата и время

    Нет

    -

    -

    Время начала

    Дата и время

    Да

    -

    -

    Продолжительность

    Числовой

    Да

    -

    -

    Организатор

    Целое

    Да

    -

    Да


    В предметной области «Городская дума» имеется бинарная связь «Формируются» с кардинальностью «многие ко многим». Как уже было сказано ранее для дальнейшего проектирования БД с учетом требований выбранной модели БД необходимо вести дополнительное отношение, связанное с исходными отношениями связью «один ко многим» и его атрибутами будут выступать первичные ключи исходных отношений.

    Таблица 2.5 – Члены комиссии

    Атрибут

    Тип данных

    (СУБД Access)

    Обязательный атрибут

    Первичный ключ

    Внешний ключ

    Код Комиссии

    Целое

    Да

    Да

    Да

    Код Члена думы

    Целое

    Да

    Да


    Таким образом на данном этапе мы получили ненормализованную схему БД «Городская дума», представленную на Рис.2



    Рис.2. Схема БД «Городская дума»


    Процесс нормализации БД


    После составления логической схемы БД ее надо проверить на отсутствие аномалий модификации данных. При неправильно спроектированной схеме БД могут возникать аномалии выполнения операций модификации данных.

    Выделяют три вида аномалий: аномалии обновления, добавления, удаления.

    Процесс преобразования отношения в состояние, обеспечивающее лучшие условия выборки, добавления, изменения и удаления данных называется нормализация БД.

    В рамках реляционной модели Э.Ф. Кодом был разработан аппарат нормализации отношений и предложен механизм, позволяющий любое отношение преобразовать к третей нормальной форме.

    Приведем наши отношения к третей нормальной форме (далее – НФ).

    Каждой нормальной форме соответствует определенный набор ограничений.

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

    1. В отношении «Члены думы» атрибут «ФИО», которое является неатомарным, разделить на отдельные поля «Фамилия», «Имя», «Отчество» с типом данных – Текстовый (15)

    2. В отношении «Организаторы» - аналогично.


    2НФ: Отношение находится во второй НФ, если оно приведено к 1НФ и каждый неключевой атрибут функционально полно зависит от составного ключа.

    Таким образом приводить ко 2НФ необходимо только отношения с составным ключом.

    В нашей схеме имеется одно такое отношение – «Члены комиссий». Неключевой атрибут «Должность» функционально полно зависит от ключевых атрибутов «Код Комиссии» и «Код и Члена думы».

    3НФ: Отношение находится в третьей НФ если оно находится во второй НФ и в нем отсутствуют транзитивные зависимости.

    При анализе нашей схеме БД таких зависимостей не было выявлено.

    Итоговая схема БД приведена на Рис.3



    Рисунок 3. Схема базы данных


    Физическое проектирование


    Реализация проекта курсовой работы по разработке системы учета для Городской думы будет произведена с использованием программного обеспечения MS Access (далее по тексту – ПО MS Access).

    ПО MS Access позволяет при создании таблиц (отношений) использовать как графический интерфейс, схожий с табличным редактором MS Excel, так и команды SQL, которые по синтаксису незначительно отличаются от стандартного.

    Спроектированные и приведенные к 3НФ отношения теперь необходимо создать. Все SQL команды и запросы для создания и обработки Таблиц приведены в Приложении 2.

    Для удобства ввода информации в базу данных реализованы Формы:

    1. Члены думы

    2. Комиссии. При заполнении формы Комиссии в поле «Председатель» учитывается ограничение предметной области - председатели комиссий формируются из членов думы, у которых стаж выше 7 полных лет, которое реализовано через запрос:

    SELECT Фамилия, Имя, Отчество, Стаж

    FROM [Члены Думы]

    WHERE Стаж >= 7;

    При помощи данного запроса формируется таблица строками которой являются только те Членов думы, которые соответствуют указанным критериям ограничения предметной области и только они будут доступны при выборе Председателя в таблице Комиссии и в Форме Комиссии, созданной для удобного заполнения.

    3. Члены комиссии

    4. Заседания

    Реализованы следующие отчеты:

    1. Количество членов думы, чей стаж соответствует нижнему порогу для становления председателем

    2. Состав комиссии, которая заседает по направлению, указанном пользователем при поиске

    3. Члены думы пенсионного возраста, с указанием их стажа

    4. Сводная форма отчета, с применением Макросов, на которой расположены кнопки для запуска, вышеуказанных отчетов.

    Приложение 1


    Таблица 1 – Первичные входные документы

    ФИО

    Телефон

    Дата рождения

    Стаж

    Направление Комиссии

    Председатель комиссии

    ФИО Организатора

    телефон

    дата заседания

    дата рождения

    Винский Борис Петрович

    9787463546

    23.02.1992

    6

    Социальное

    Агапков Павел Соскович

    Попков Сергей Степанович

    9797453542

    15.02.2016

    02.12.1993

    Агапков Павел Соскович

    9764976578

    24.03.1975

    3

    Социальное

    Агапков Павел Соскович

    Попков Сергей Степанович

    9797453542

    15.02.2016

    02.12.1993

    Рыжий Степан Аркадьевич

    9863826754

    12.07.1899

    10

    Социальное

    Агапков Павел Соскович

    Попков Сергей Степанович

    9797453542

    16.02.2016

    02.12.1993

    Вислоухов Анабел Бендович

    9672865493

    19.10.1990

    2

    Экологическое

    Ахиневич Петр Ивашкевич

    Прокопьев Алексей Анатольевич

    9797746598

    21.02.2016

    23.12.1991


    Приложение 2


    1. SQL команды для создания таблиц:

    1.1 Отношение Члены думы

    CREATE TABLE Члены думы

    (Код_ЧленаДумы int RPIMARY KEY

    Фамилия CHAR(15)

    Имя CHAR(15)

    Отчество CHAR(15)

    Дата рождения DATA

    Номер_телефона INTEGER

    Дата вступления в думу DATA

    );

    1.2 Отношение Комиссии

    CREATE TABLE Комиссии

    (Код_Комисии int PRIMARY KEY

    Председатель CHAR(15)

    Направление CHAR(15)

    );

    1.3 Отношение Организаторы

    CREATE TABLE Организаторы

    (Код_Организатора int RPIMARY KEY

    Фамилия CHAR(15)

    Имя CHAR(15)

    Отчество CHAR(15)

    Дата рождения DATA

    Номер_телефона INTEGER

    );

    1.4 Отношение Заседания

    CREATE TABLE Заседания

    (Код_Заседания int RPIMARY KEY

    Коммисия CHAR(15)

    Организатор CHAR(15)

    Дата DATA

    Время_начала

    Продолжительность INTEGER

    );

    1.5 Отношение Члены Комиссий

    CREATE TABLE Члены комиссий

    (Код_ЧленаДумы int RPIMARY KEY

    Код_Комиссии

    );

    2. SQL запросы для реализации ограничений

    2.1 Количество членов думы, которые могу претендовать на место председателя комиссии:

    SELECT Count([Члены думы].Фамилия & [Члены думы].Имя & [Члены думы].Отчество & Стаж.Стаж) AS Количество

    FROM [Члены думы] INNER JOIN Стаж ON ([Члены думы].Отчество = Стаж.Отчество) AND ([Члены думы].Имя = Стаж.Имя) AND ([Члены думы].Фамилия = Стаж.Фамилия)

    WHERE (((Стаж.Стаж) Between 7 And 7));

    2.2 Состав комиссии, которая заседает по направлению, указанном пользователем при поиске:

    SELECT Комиссии.Направление AS Направление, [Члены комиссий].Код_ЧленаДумы AS Фамилия, [Члены Думы].Имя, [Члены Думы].Отчество, Комиссии.Председатель

    FROM [Члены Думы] INNER JOIN (Комиссии INNER JOIN [Члены комиссий] ON Комиссии.Код_Комиссии = [Члены комиссий].Код_Комиссии) ON [Члены Думы].Код_ЧленаДумы = [Члены комиссий].Код_ЧленаДумы

    WHERE (((Комиссии.Направление) Like [Введите направление] & "*"));

    2.3 Вывести в алфавитном порядке Ф.И.О. членов думы пенсионного возраста, с указанием их стажа:

    SELECT [Члены Думы].Фамилия, [Члены Думы].Имя, [Члены Думы].Отчество, Round((Date()-[Дата вступления])/365) AS Стаж

    FROM [Члены Думы]

    WHERE ((((Date()-[Члены Думы].[Дата рождения])/365)>60) AND (([Члены Думы].Пол)="Мужской"))

    ORDER BY [Члены Думы].Фамилия, [Члены Думы].Имя, [Члены Думы].Отчество;


    написать администратору сайта