Разработка базы данных для системы краудфандинга проектов

Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.05.2019
Размер файла 624,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРАЗМИЙ

КУРСОВАЯ РАБОТА на тему:

«Разработка базы данных для системы краудфандинга проектов»

по дисциплине: «Система управления базами данных»

Группа: КИФ223-16

Выполнила: Рахимбердиева М.

Принял: Когай В.Н

Ташкент 2019

Оглавление

Введение

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

1.1 Описание предметной области

1.2 Определение функциональных требований к системе

1.3 Построение диаграммы потока данных

1.4 Постановка задачи

2. Концептуальное проектирование базы данных

2.1 Построение модели «сущность-связь»

2.2 Описание сущностей и атрибутов модели

2.3 Модальность и классификация связей

3. Даталогическое проектирование базы данных

3.1 Построение реляционной базы данных

3.2 Описание таблиц реализуемой БД

4. Запросы к базе данных на языке SQL

4.1 Создание таблиц с помощью операторов DDL

4.2 Заполнение таблиц

4.3 Выборка данных из таблиц

4.4 Обновление и удаление данных в таблицах

Заключение

Список литературы

Приложение

Введение

База данных - это данные, которые хранятся в структурированном виде.

Система управления базами данных - программное обеспечение для обработки информации в базе данных.

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

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

Цель и задачи курсовой работы

Целью данной курсовой работы является разработка базы данных для системы краудфандинга проектов.

К задачам относятся:

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

- Концептуальное проектирование базы данных

- Даталогическое проектирование базы данных

- Создание запросов к базе данных на языке SQL

Курсовая работа состоит из введения, 4 глав и заключения.

В введении рассмотрены понятие БД и ее актуальность в изучаемой предметной области, цель и задачи курсовой работы, а также структура курсовой работы

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

Во второй главе построена модель «сущность-связь», приведено описание сущностей и атрибутов модели, модальность и классификация связей база данные модель диаграмма

В третьей главе построена реляционная база данных и описаны ее таблицы.

В главе четыре приведены запросы к базе данных на языке MSSQL.

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

1.1 Описание предметной области

Краудфандинг - это способ привлечения финансов для реализации какого-либо продукта (фильм, музыкальная композиция, устройство и т.п.), мероприятия, поддержки бизнеса, благотворительности и т.д.

На сегодняшний день для проведения краудфандинговой деятельности используют специальные краудфандинговые площадки. Самыми крупными являются Kickstarter, Indiegogo и Planeta (на территории СНГ). Эти платформы представляют собой интернет-сайты, где происходит анонс и сбор средств для проектов.

Благодаря краудфандингу проще получить финансирование для проекта, даже без участия банков или венчурных фондов.

1.2 Определение функциональных требований к системе

Бизнес требования:

Общие сценарии:

1) Регистрация проекта

a) Автор вносит информацию о проекте

б) Автор подтверждает информацию о проекте

2) Проведение взноса

a) Спонсор выбирает проект

б) Спонсор выбирает сумму взноса

в) Со счета спонсора списываются деньги

3) Регистрация автора

a) Автор вносит информацию о себе

б) Автор подтверждает информацию о себе

4) Регистрация спонсора

a) Спонсор вносит информацию о себе

б) Спонсор подтверждает информацию о себе

Алгоритмы и проверки:

1) Проверка окончания проекта

Если дата окончания сбора средств подошла к концу и набрана нужная сумма денег

a) Автор получает деньги полученные за проект

б) Владелец краудфандинговой площадки получает процент от полученных за проект денег

в) Спонсоры получают вознаграждения

г) Проект помечается как удавшийся

Если дата окончания сбора средств подошла к концу и не набрана нужная сумма денег

a) Все спонсоры получают свои деньги обратно

б) Проект помечается как неудавшийся

Функциональные требования:

Система должна уведомлять автора о собранной сумме и времени до окончания проекта

Система должна уведомлять спонсора об окончании проекте и его статусе

Система должна автоматически переводить денежные средства по окончанию проекта

1.3 Построение диаграммы потока данных

Диаграмма потока данных или DFD (DataFlowDiagram) - это методика структурного анализа, которая описывает источники и адресатов данных, потоки данных, их хранилища, а также логические функции.

Рис. 1 DFD диаграмма верхний уровень

Рис. 2 DFDдиаграмма декомпозиция для системы обработки взноса

Рис. 3 DFD диаграмма декомпозиция для системы обработки проектов

1.4 Постановка задачи

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

· разработать базу данных для системы краудфандинга проектов,

· проанализировать предметную область,

· провести концептуальное проектирование базы данных,

· даталогическое проектирование базы данных и создать запросы к базе данных на языке SQL

2. Концептуальное проектирование базы данных

2.1 Построение модели «сущность-связь»

Модель «сущность-связь» - это инструмент унифицированного представления данных. Элементами этой модели являются:

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

Атрибут - одна из характеристик сущности.

Связь - ассоциация между двумя сущностями

Рис. 4 Модель «сущность-связь»

2.2 Описание сущностей и атрибутов модели

1) Проекты. Продукт, требующий спонсорства.

- Название

- Необходимая сумма

- Описание проекта

- Собранная сумма

- Количество дней на сбор средств

- Дата окончания сбора средств

2) Спонсоры. Пользователи системы, которые вкладывают деньги в проекты.

- Электронная почта для уведомлений о состоянии спонсируемых проектов

- Пароль для входа в систему

- Логин для входа в систему

- Сумма средств на счету спонсора

- ФИО

3) Типы проектов. Указывает на принадлежность проекта к какой-либо сфере(музыкальное произведение, фильм, видеоигра, гаджет и т.д).

- Название

4) Авторы. Люди анонсирующие свои проекты.

- Электронная почта для уведомлений о состоянии спонсируемых проектов

- Пароль для входа в систему

- Логин для входа в систему

- Сумма средств на счету спонсора

- ФИО

5) Взносы. Средства, перечисляемые спонсорами для проекта.

- Сумма взноса.

- Дата отправки взноса

6) Награды. Какое-либо вознаграждение для спонсора, зависящее от суммы взноса.

- Количество наград

- Сумма взноса, необходимая для этой награды

- Описание

- Название

2.3 Модальность и классификация связей

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

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

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

Каждая связь может иметь одну из двух модальностей связи:

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

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

Рис 5 Нотация Crow's Foot

Рис. 6 Модальность и классификация связей по нотации Crow'sFoot

3. Даталогическое проектирование базы данных

3.1 Построение реляционной базы данных

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

Рис. 7 Реляционная база данных

3.2 Описание таблиц реализуемой БД

1) Проекты. Продукт, требующий спонсорства.

2)Авторы. Люди анонсирующие свои проекты.

3)Спонсоры. Пользователи системы, которые вкладывают деньги в проекты.

4)Взносы. Средства, перечисляемые спонсорами для проекта.

5)Награды. Какое-либо вознаграждение для спонсора, зависящее от суммы взноса.

6)Типы проектов. Указывает на принадлежность проекта к какой-либо сфере (музыкальное произведение, фильм, видеоигра, гаджет и т.д).

4. Запросы базы данных на языке SQL

4.1 Создание таблиц с помощью операторов DDL

create database crowdfunding;

use crowdfunding;

create table [types](

id int identity primary key,

name nvarchar(100)

);

create table authors(

id int identity primary key,

full_name nvarchar(100),

phone nvarchar(100),

email nvarchar(100),

[login] nvarchar(100),

[password] nvarchar(100)

);

create table backers(

id int identity primary key,

full_name nvarchar(300),

amount int,

[login] nvarchar(300),

[password] nvarchar(300),

email varchar(300)

);

create table projects(

id int identity primary key,

name nvarchar(300),

goal int,

[description] nvarchar(500),

bill int,

days int,

begin_date date,

id_type int references [types] (id),

id_author int references [authors] (id)

);

create table rewards(

id int identity primary key,

name nvarchar(100),

[description] nvarchar(100),

pledge_amount int,

count int,

id_project int references projects (id)

);

create table pledges(

id int identity primary key,

amount int,

pledge_date date,

id_project int references projects(id),

id_backer int references backers(id)

);

4.2 Заполнение таблиц

Команда INSERT вставляет записи в базу данных. Можно вставить или одну запись, или сразу несколько.

insert into [types] values('Музыка'),

('Видеоигра'),

('Книга'),

('Мероприятие'),

('Проект'),

('Фильм'),

('Благотворительность');

insert into authors values ('Бахтиёрова Анора','90-777-77-77','Миссмими@еmail.com','Миссмими','000111'),

('Рахимбердиева Мафтуна','99-999-99-99','Ледимон@еmail.com','Ледимон','000222'),

('Йулдашева Мунирахон','94-666-66-66','Мимино@еmail.com','Мимино','000333');

insert into projects values ('Красота-Навеки', 200000,'косметика красоты', 0, 90,'2019-01-29', 5, 2),

('Супер-Веник', 150000,'самостоятелно подмитает дворы', 0, 20,'2019-01-30', 5, 1),

('Самоваруюшийся-пелмени', 250000,'племени которых некто не видел', 0, 10,'2019-01-28', 5, 3);

insert into backers values ('Мухаммад Юсуф', 200,'Muha','777','Muha@gmail.com'),

('Искандар Зулкарнай', 300,'Aleks','666','Aleks@gmail.com'),

('Вера Брежнева', 100,'Kiss','555','Kiss@gmail.com'),

('Юри Никулин', 0,'Yura','444','Yura@gmail.com'),

('Николай Басков', 0,'Boris','333','Boris@gmail.com'),

('Насриддин Афанди', 50,'Apandi','222','Apandi@gmail.com'),

('Тешабойев Толкин', 500,'tolik','111','tolik@gmail.com');

insert into rewards values ('веник-007','веник для подмитания', 20, 50, 1),

('Балзам-008','балзам для лица', 10, 100, 1),

('веник-007','веник для подмитания', 20, 50, 2),

('Балзам-008','балзам для лица', 20, 50, 2),

('Пелмени-009','пелмени для варения', 100, 10, 3);

insert into pledges values (10,'2019-01-20', 1, 2),

(15,'2019-01-20', 1, 3),

(5,'2019-01-21', 1, 2),

(20,'2019-01-21', 1, 7),

(10,'2019-01-22', 1, 4),

(15,'2019-01-22', 1, 5),

(10,'2019-01-22', 3, 1),

(10,'2019-01-23', 3, 2),

(15,'2019-01-23', 3, 3),

(20,'2019-01-24', 3, 3),

(25,'2019-01-24', 3, 3),

(100,'2019-01-25', 3, 7),

(10,'2019-01-26', 3, 6),

(55,'2019-01-27', 3, 6),

(15,'2019-01-27', 1, 1),

(150,'2019-01-27', 2, 1),

(25,'2019-01-27', 3, 5);

4.3 Выборка данных из таблиц

Команда SELECT получает записи из базы данных по определенному условию, которое задается с помощью команды where.

1) select * from projects

2) select amount, pledge_date from pledges

3)select amount, pledge_date from pledges where pledge_date >'2018-01-01'

4) select full_name from backers where full_name like'Н%'

5) select p.name, t.name, a.full_name from projects p

join [types] t on p.id_type = t.id

join authors a on p.id_author = a.id

4.4 Обновление и удаление данных в таблицах

Команда UPDATE -- производит изменения в уже существующей записи или во множестве записей в таблице SQL. Изменяет существующие значения в таблице или в основной таблице представления.

Команда DELETE удаляет строки из таблицы или представления основной таблицы базы данных

update authors set full_name ='Рахимбердиева Мафтунахон'

WHERE full_name ='Рахимбердиева Мафтуна'

update projects set [days] = [days]+ 30

WHERE [days]< 15

delete from rewards where name = 'Пелмени-009'

delete from pledges

where id_backer =(select id from backers where full_name like'Тешабойев Толкин')

Заключение

В данной курсовой работе была создана база данных для системы краудфандинга проектов. Были выполнены анализ предметной области, концептуальное проектирование базы данных и даталогическое проектирование базы данных, а также созданы запросы к базе данных на языке MSSQL.

Данная база данных пригодна не только для систем краудфандинга проектов, но и для систем благотворительных организаций и систем поддержки бизнеса, таких как Patreon.

Список литературы

1. Реляционные базы данных. Практические приемы оптимальных решений. Автор: Мирошниченко Галина Александровна.

2. Базы данных: конспект лекций. Издательство: Научная Книга.

3. Базы данных. Язык SQL для студента. Автор: Вадим Дунаев. Издательство: БХВ-Петербург, БХВ-Петербур.

4. Базы данных. Учебное пособие. Авторы: Ольга Голицына, Игорь Попов, Николай Максимов. Издательство: ДРОФА.

5. Разработка и эксплуатация удаленных баз данных. Учебник. Издательство: Academia.

6. Базы данных. Автор: Сергей Кузнецов. Издательство: Academia.

7. СУБД. Язык SQL в примерах и задачах. Авторы: Ирина Астахова, Вадим Мельников, Александр Толстобров, Вадим Фертиков. Издательство: ФИЗМАТЛИТ.

Размещено на Allbest.ru


Подобные документы

  • Методология концептуального проектирования баз данных для АИС "Учет Проектов". Построение концептуальной модели. Диаграмма "сущность-связь". Нотация диаграммы "сущность-связь". Спецификация сущностей. Построение логической модели. Формирование запросов.

    курсовая работа [524,4 K], добавлен 28.11.2008

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

    курсовая работа [1,5 M], добавлен 31.03.2015

  • Анализ предметной области и введение ограничений. Выделение базовых сущностей. Концептуальная модель данных. Построение схемы реляционной модели базы данных магазина одежды в третьей нормальной форме. Описание физической БД. Проектирование интерфейса.

    курсовая работа [2,6 M], добавлен 20.11.2013

  • Разработка базы данных для компании, занимающейся авиагрузоперевозками, снабженной средствами идентификации пользователей. Описание ее предметной области и функций. Разработка интерфейса программы. Построение концептуальной и реляционной модели БД.

    курсовая работа [2,1 M], добавлен 15.06.2014

  • Обследование предметной области. Проектирование реляционной базы данных: описание входной и выходной информации, перечень сущностей и атрибутов, создание модели, выбор ключей. Разработка и обоснование представлений для отображения результатов выборки.

    курсовая работа [539,0 K], добавлен 12.12.2011

  • Описание предметной области и обоснование актуальности разработки базы данных "Учет фонда библиотеки для Харьковского колледжа текстиля и дизайна". Построение реляционной модели данных. Типы сущностей и связей. Разработка объектно-ориентированной модели.

    курсовая работа [1,1 M], добавлен 24.01.2016

  • Системный анализ предметной области. Построение концептуальной и даталогичной модели базы данных. Физическое проектирование базы данных. Описание функциональной модели системы управления базами данных. Разработка экранных форм ввода-вывода и отчета.

    курсовая работа [1,1 M], добавлен 09.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.