Разработка базы данных

Этапы создания базы данных для учета операций интернет-магазина: выделение основных сущностей (клиенты, фильмы, операции, сотрудники, филиалы магазина) и установление связей между ними, разработка интерфейса на языке С# с использованием Windows Forms.

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

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

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

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

Введение

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

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

база данные учет магазин интерфейс

Теперь проанализируем предметную область. У нас есть 5 сущностей - клиенты, фильмы, операции, сотрудники и филиалы магазина. У каждой сущности есть свои свойства. Перечислим их.

Клиенты:

-ФИО

-Номер паспорта клиента

-Телефон клиента

Фильмы:

-Название фильма

-Год выпуска

-Страна, в которой фильм был снят

-Режиссер фильма

-Оценка IMDB

-Цена в магазине

Операции:

-Дата покупки

-Код купленного фильма

-Клиент, совершивший покупку

Сотрудники:

-ФИО сотрудника

-Занимаемая должность

-Год рождения сотрудника

-Стаж работы

-Зарплата

Филиалы:

-Номер филиала

-Директор филиала

-Адрес

-Телефон

Связей между сущностями будет две - свяжем сущность Операции с сущностями Фильмы и Клиенты. Связь будет типа один ко многим. Теперь составим модель в программе ERwin (файл прилагается).

Разработка базы данных

Теперь по модели, составленной в программе Erwin, сгенерируем базу данных. В каждой таблице есть ключевое поле. В таблице Клиенты это будет поле ФИО, в таблице Фильмы это поле-счетчик Код фильма, В таблице операции ключ составной - он состоит из всех полей таблицы, В таблице Сотрудники ключевое поле - ФИО сотрудника, в таблице Филиалы ключ - номер филиала. Все запросы можно будет выполнять через пользовательский интерфейс с помощью языка SQL.

Пользовательский интерфейс и тестирование

Пользовательский интерфейс реализуем на языке С#, с использованием Windows Forms. На форме будет две вкладки - для пользователя и для администратора. На вкладке администратора будет необходима авторизация для доступа к определенным функциям - добавлению клиентов, фильмов, обработке SQL запросов, просмотру различных таблиц. Пользователю будет доступна только функция покупки фильмов. Он сможет просматривать только таблицу Фильмы, выполнять предопределенный запрос на отображение фильмов с оценкой IMDB выше семи, добавлять фильмы в корзину и покупать фильмы в корзине.

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

Заключение

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

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

Приложение

Код программы пользовательского интерфейса

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace Кинопрокат

{

public partial class Form1 : Form

{

string password = "12345";

bool adminLoggedIn = false;

public Form1()

{

InitializeComponent();

dataGridView2.Columns.Add("Дата", "Дата");

dataGridView2.Columns.Add("Фильм", "Фильм");

dataGridView2.Columns.Add("Клиент", "Клиент");

}

private void Show(string ask) //метод выполняет сортировку и отображение таблиц согласно заданному SQL запросу

{

try

{

oleDbCommand1.CommandText = ask;

oleDbCommand1.Connection = oleDbConnection1;

OleDbDataReader tableData = oleDbCommand1.ExecuteReader();

bindingSource1.Clear();

dataGridView1.Columns.Clear();

bindingSource1.DataSource = tableData;

dataGridView1.DataSource = bindingSource1;

tableData.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка");

return;

}

}

private void Interchange(string ask) //метод ыполняет изменение таблицы с помощью SQL

{

try

{

oleDbCommand1.CommandText = ask;

oleDbCommand1.Connection = oleDbConnection1;

oleDbCommand1.ExecuteNonQuery();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка1");

return;

}

Show("SELECT * FROM " + comboBox1.Text);

}

private void button1_Click(object sender, EventArgs e) //обработка открытия базы данных

{

string connection = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=";

string[] restriction = new string[4]; //массив ограничения для соединения

restriction[3] = "TABLE";

DataTable scheme; //схема данных

oleDbConnection1.Close();

try

{

openFileDialog1.FileName = "";

openFileDialog1.Filter = "*.mdb|*.mdb|Все файлы|*.*";

openFileDialog1.ShowDialog();

connection += openFileDialog1.FileName;

oleDbConnection1.ConnectionString = connection;

oleDbConnection1.Open();

scheme = oleDbConnection1.GetSchema("Tables", restriction);

comboBox1.Items.Clear();

foreach (DataRow строкаСхемы in scheme.Rows) //добавление имен таблиц в выпадающий список

{

comboBox1.Items.Add(строкаСхемы["TABLE_NAME"]);

}

if (comboBox1.Items[0].ToString() != "Клиенты" || comboBox1.Items[1].ToString() != "Операции" || comboBox1.Items[2].ToString() != "Сотрудники" || comboBox1.Items[3].ToString() != "Филиалы" || comboBox1.Items[4].ToString() != "Фильмы") //проверка базы данных на соответствие заданному формату

{

oleDbConnection1.Close();

comboBox1.Items.Clear();

comboBox1.Text = "";

MessageBox.Show("Файл неверной базы данных", "Ошибка");

dataGridView1.Columns.Clear();

dataGridView1.Rows.Clear();

groupBox1.Enabled = false;

groupBox2.Enabled = false;

groupBox3.Enabled = false;

groupBox4.Enabled = false;

groupBox5.Enabled = false;

groupBox6.Enabled = false;

groupBox7.Enabled = false;

groupBox8.Enabled = false;

return;

}

comboBox1.Text = (string)comboBox1.Items[0];

if (comboBox1.Items.Count != 0)

{

comboBox1.Text = "Фильмы";

comboBox1.Enabled = false;

}

}

catch (System.Data.OleDb.OleDbException)

{

oleDbConnection1.Close();

comboBox1.Items.Clear();

comboBox1.Text = "";

dataGridView1.Columns.Clear();

dataGridView1.Rows.Clear();

MessageBox.Show("Вы выбрали файл неверного формата или поврежденный файл", "Ошибка выбора файла");

groupBox1.Enabled = false;

groupBox2.Enabled = false;

groupBox3.Enabled = false;

groupBox4.Enabled = false;

groupBox5.Enabled = false;

groupBox6.Enabled = false;

return;

}

Show("SELECT * FROM " + comboBox1.Text); //открытие управляющих элементов при удачном подключении к базе

groupBox4.Enabled = true;

groupBox6.Enabled = true;

groupBox7.Enabled = true;

groupBox8.Enabled = true;

}

private void button3_Click(object sender, EventArgs e) //метод обрабатывает SQL запросы на выборку

{

try

{

Show(textBox1.Text);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка");

}

}

private void button4_Click(object sender, EventArgs e) //метод обрабатывает SQL запросы на изменение

{

try

{

Interchange(textBox2.Text);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Ошибка");

}

}

private void button6_Click(object sender, EventArgs e) //Очистка поля ввода SQL запроса на выборку

{

textBox1.Clear();

Show("SELECT * FROM " + comboBox1.Text);

}

private void Form1_TextChanged(object sender, EventArgs e)//Отображение другой таблицы, указанной в comboBox1

{

Show("SELECT * FROM " + comboBox1.Text);

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button7_Click(object sender, EventArgs e) //Добавление нового фильма в таблицу "Фильмы"

{

string ask;

ask = "Insert Into Фильмы (Код_фильма, Название, Год, Страна, Режиссер, Оценка_IMDB, Цена) Values (";

ask += textBox13.Text + ",'" + textBox7.Text + "'," + textBox8.Text + ",'" + textBox9.Text + "','" + textBox12.Text + "'," + textBox10.Text + "," + textBox11.Text + ")";

try

{

Interchange(ask);

}

catch { }

comboBox1.Text = "Фильмы";

try

{

Show("SELECT * FROM " + comboBox1.Text);

}

catch { }

}

private void button8_Click(object sender, EventArgs e)//Очищает поле ввода SQL запроса на изменение

{

textBox2.Clear();

Show("SELECT * FROM " + comboBox1.Text);

}

private void button9_Click(object sender, EventArgs e) //Добавить в корзину

{

if (textBox14.Text != "" && textBox18.Text != "")

{

dataGridView2.Rows.Add(Convert.ToString(System.DateTime.Now.Date), textBox14.Text, textBox18.Text);

}

}

private void button10_Click(object sender, EventArgs e) //Добавление новой операции к таблице "Клиенты"

{

string ask;

ask = "Insert Into Клиенты (ФИО,Номер_паспорта,Телефон) Values (";

ask += "'" + textBox24.Text + "','" + textBox17.Text + "','" + textBox23.Text + "')";

try

{

Interchange(ask);

}

catch { }

comboBox1.Text = "Клиенты";

try

{

Show("SELECT * FROM " + comboBox1.Text);

}

catch { }

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e) //Закрытие программы

{

this.Close();

}

private void button11_Click(object sender, EventArgs e)//Отображение фильмов с оценкой IMDB выше семи

{

comboBox1.Text = "Фильмы";

Show("SELECT * FROM Фильмы WHERE Оценка_IMDB > 7");

textBox19.Text = Convert.ToString(dataGridView1.RowCount);

}

private void button12_Click(object sender, EventArgs e)//Вернуться в режим отображения таблиц

{

textBox19.Text = " ";

Show("SELECT * FROM " + comboBox1.Text);

}

private void button13_Click(object sender, EventArgs e)//Очистить поля ввода запроса на добавление клиента

{

textBox24.Clear();

textBox17.Clear();

textBox23.Clear();

}

private void button2_Click(object sender, EventArgs e)//Очистить поля ввода запроса на добавление фильма

{

textBox13.Clear();

textBox7.Clear();

textBox8.Clear();

textBox9.Clear();

textBox12.Clear();

textBox10.Clear();

textBox11.Clear();

}

private void button5_Click(object sender, EventArgs e)//Очистить поля ввода запроса на добавление операции

{

textBox14.Clear();

textBox18.Clear();

}

private void button14_Click(object sender, EventArgs e)

{

if (textBox3.Text == password)

{

adminLoggedIn = true;

groupBox1.Enabled = true;

groupBox2.Enabled = true;

groupBox3.Enabled = true;

groupBox5.Enabled = true;

textBox3.Text = "";

comboBox1.Text = "Фильмы";

comboBox1.Enabled = true;

}

}

private void button15_Click(object sender, EventArgs e)

{

adminLoggedIn = false;

groupBox1.Enabled = false;

groupBox2.Enabled = false;

groupBox3.Enabled = false;

groupBox5.Enabled = false;

comboBox1.Text = "Фильмы";

comboBox1.Enabled = false;

}

private void tabPage2_Enter(object sender, EventArgs e)

{

if(comboBox1.Items.Count != 0)

{

comboBox1.Text = "Фильмы";

comboBox1.Enabled = false;

}

}

private void tabPage1_Enter(object sender, EventArgs e)

{

if (adminLoggedIn == true && comboBox1.Items.Count != 0)

{

comboBox1.Text = "Фильмы";

comboBox1.Enabled = true;

}

}

private void button17_Click(object sender, EventArgs e) // Купить все

{

if (dataGridView2.Rows.Count != 0)

{

textBox14.Text = Convert.ToString(dataGridView2.Rows.Count);

for (int i = 0; i < dataGridView2.Rows.Count-1; i++)

{

if (dataGridView2.Rows[i].Cells[1].Value != "")

{

string ask;

ask = "Insert Into Операции (Дата, Код_фильма, Клиент) Values ('";

ask += dataGridView2.Rows[i].Cells[0].Value + "'," + dataGridView2.Rows[i].Cells[1].Value + ",'" + dataGridView2.Rows[i].Cells[2].Value + "')";

Interchange(ask);

}

}

MessageBox.Show("Операции с корзиной завершены");

}

}

private void button16_Click(object sender, EventArgs e) // Удалить

{

try

{

dataGridView2.Rows.RemoveAt(dataGridView2.SelectedRows[0].Index);

}

catch { }

}

}

}

Скриншоты программы

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


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

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

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

  • Проектирование даталогической модели в виде логической структуры реляционной базы данных в СУБД Microsoft SQL Server на основе созданной инфологической модели базы данных интернет-магазина музыки. Выделение сущностей и связей, анализ предметной области.

    курсовая работа [724,6 K], добавлен 15.06.2013

  • Принципы построения СУБД, их достоинства. Архитектура распределенной информационной системы. Разработка интернет-магазина рынка книг: построение физической модели данных на языке SQL, проектирование схемы базы данных с использованием веб-интерфейса.

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

  • Описание состава реляционной базы данных как системы связанной информации, сохраняемой в двумерных таблицах. Основные функции CMS и изучение структуры сервера MySQL. Разработка системы выборок данных по товарам для интернет-магазина, таблицы покупателей.

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

  • Анализ предметной области - магазин "Канцелярские товары". Проектирование и реализация учебной базы данных магазина. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Создание и запуск базовых запросов SQL.

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

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

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

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

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

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

    курсовая работа [380,9 K], добавлен 06.04.2015

  • Анализ предметной области с использованием моделей методологии ARIS и разработка ER-диаграммы. Описание входной и выходной информации для проектирования реляционной базы данных. Разработка управляющих запросов и связей между ними с помощью языка SQL.

    курсовая работа [975,2 K], добавлен 30.01.2014

  • Специфика создания базы данных "On-line магазин", содержащей информацию о работе интернет-магазина. Проектирование логического и физического уровней с использованием CASE-средства Erwin. Реализация базы данных в архитектуре "клиент-сервер" на языке Java.

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

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