Разработка БД для ИС «Телефонная станция»

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Проектирование баз данных
  • 28 28 страниц
  • 10 + 10 источников
  • Добавлена 27.05.2017
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы

ВВЕДЕНИЕ 2
1. Системный анализ предметной области 3
1.1. Анализ предметной области 3
1.1.1. Организационно-функциональная структура телефонной станции 3
1.1.2. Описание групп пользователей базой данных 4
1.2.3. Описание входной и выходной информации 4
1.2. Обзор информационных технологий 4
1.3. Описание требований к базе данных курсового проекта 6
Выводы к главе 6
2. Описание проектирования БД 7
2.1. Инфологическое проектирование 7
2.2. Даталогическое проектирование 11
2.2.1. Логическое проектирование 11
2.2.2 Обоснование выбора модели данных 11
2.2.3. Нормализация данных 14
Выводы к главе 16
3. Программная реализация 17
3.1. Анализ и выбор СУБД 17
3.2. Физическое проектирование базы данных 19
3.3. Разработка форм 21
3.4. Разработка отчетов 25
3.5. Реализация ограничений, автоматизация обработки данных в БД 25
3.6 Безопасность и контроль 27
Выводы к главе 27
ЗАКЛЮЧЕНИЕ 28
СПИСОК ЛИТЕРАТУРЫ 29
ПРИЛОЖЕНИ 1. Листинг 30

Фрагмент для ознакомления

Базы данных: учебное пособие / Е.В. Федоренко, А.С. Самардак. – М. : Находка, 2016. – 116 с.Ульман Д., Уидом Д. "Основы реляционных баз данных", 2006Электронные ресурсыБазы данных - Урок 1. Понятие базы данных. [Электронный ресурс]. URL:.Базы данных - Урок 2. Структура базы данных. [Электронный ресурс]. URL:.Классификация баз данных. [Электронный ресурс]. URL:ПРИЛОЖЕНИ 1. Листингusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.Sql;using System.Data.SqlClient;namespace Telephone{publicpartialclasssotr : Form {privatestring globallogin;publicstring Globallogin {get { return globallogin; }set { globallogin = value; } }// public string globallogin;publicstring sql;publicDataSet ds_tabl = newDataSet();public sotr() { InitializeComponent(); }privatevoid sotr_Load(object sender, EventArgs e){// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.sotr". При необходимости она может быть перемещена или удалена.//this.sotrTableAdapter.Fill(this.bdDataSet.sotr);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.sotr". При необходимости она может быть перемещена или удалена.// this.sotrTableAdapter.Fill(this.bdDataSet.sotr);reload_data(); }publicvoid reload_data(){if (globallogin == "admin") {this.Text = "Сотрудники ***Вы вошли как администратор***";sql = "select * from sotr where Id > 1";SqlConnection sqlConnection = newSqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");SqlDataAdapter adapter = newSqlDataAdapter(sql, sqlConnection);DataSet ds = newDataSet(); sqlConnection.Open(); adapter.Fill(ds, "mytable"); dataGridView1.DataSource = ds; ds_tabl = ds; dataGridView1.DataMember = "mytable";sqlConnection.Close(); }else {this.Text = "Сотрудники ***Вы вошли как пользователь***";dataGridView1.ReadOnly = true; toolStripButton1.Enabled = false;toolStripButton2.Enabled = false; toolStripButton3.Enabled = false; sql = "select Id, fio_sotr, tel from sotr where Id > 1";SqlConnection sqlConnection = newSqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");SqlDataAdapter adapter = newSqlDataAdapter(sql, sqlConnection);DataSet ds = newDataSet(); sqlConnection.Open(); adapter.Fill(ds, "mytable"); dataGridView1.DataSource = ds; ds_tabl = ds; dataGridView1.DataMember = "mytable"; sqlConnection.Close(); } }privatevoid toolStripButton1_Click(object sender, EventArgs e) {sozsotr f = newsozsotr();DialogResult dia = f.ShowDialog();if(dia == DialogResult.OK) { reload_data(); } }privatevoid toolStripButton2_Click(object sender, EventArgs e) {//dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);//sotrTableAdapter.Update(bdDataSet);if (dataGridView1.Rows.Count > 0) {SqlConnection sqlConnection = newSqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");SqlCommand command = newSqlCommand("delete from sotr where Id =" + dataGridView1.CurrentRow.Cells[0].Value.ToString(), sqlConnection); sqlConnection.Open(); command.ExecuteNonQuery(); sqlConnection.Close(); reload_data(); } }privatevoid toolStripButton3_Click(object sender, EventArgs e) {sozsotr f = newsozsotr(); f.id = Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value.ToString());DialogResult dia = f.ShowDialog();if (dia == DialogResult.OK){ reload_data(); } } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Microsoft.Office.Interop.Excel;using System.Reflection;namespace Telephone{publicpartialclassdogovor : Form {public dogovor() { InitializeComponent(); }privatevoid dogovor_Load(object sender, EventArgs e) {try {//total, amount, sumDataRelation parentChildRelation = newDataRelation("ParentChild", this.bdDataSet.usl.Columns["Id"], this.bdDataSet.dogovor.Columns["id_usl"]);this.bdDataSet.Relations.Add(parentChildRelation);this.bdDataSet.Tables["dogovor"].Columns.Add("calcSum", typeof(string), "Parent(ParentChild).cena * kolvo"); } catch (Exception ee) {MessageBox.Show(ee.Message);}// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.sotr". При необходимости она может быть перемещена или удалена.this.sotrTableAdapter.Fill(this.bdDataSet.sotr);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.usl". При необходимости она может быть перемещена или удалена.this.uslTableAdapter.Fill(this.bdDataSet.usl);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.klient". При необходимости она может быть перемещена или удалена.this.klientTableAdapter.Fill(this.bdDataSet.klient);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.dogovor". При необходимости она может быть перемещена или удалена.this.dogovorTableAdapter.Fill(this.bdDataSet.dogovor);//связываем таблицы друг с другом DataRowView currow = (DataRowView)klientBindingSource.Current;this.dogovorBindingSource.Filter = "[id_kl] = " + Convert.ToInt32(currow.Row["id"].ToString()); }privatevoid dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {//связываемтаблицыдругсдругомDataRowView currow = (DataRowView)klientBindingSource.Current;this.dogovorBindingSource.Filter = "[id_kl] = " + Convert.ToInt32(currow.Row["id"].ToString()); }privatevoid toolStripButton1_Click(object sender, EventArgs e) { klientTableAdapter.Update(bdDataSet); }privatevoid toolStripButton2_Click(object sender, EventArgs e) { dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index); klientTableAdapter.Update(bdDataSet); }privatevoid toolStripButton3_Click(object sender, EventArgs e) { dogovorTableAdapter.Update(bdDataSet); }privatevoid toolStripButton4_Click(object sender, EventArgs e) { dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index); dogovorTableAdapter.Update(bdDataSet); }privatevoid dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e) {DataRowView klient = (DataRowView)klientBindingSource.Current;DataRowView dogovor = (DataRowView)dogovorBindingSource.Current; dogovor.Row["id_kl"] = Convert.ToString(klient.Row["Id"].ToString()); ; dogovorTableAdapter.Update(bdDataSet); }privatevoid button1_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Application.Workbooks.Add(Type.Missing); ExcelApp.Columns.ColumnWidth = 25; ExcelApp.Cells[1, 3].EntireRow.Font.Bold = true; ExcelApp.Cells[1, 3] = "Договорыклиента"; ExcelApp.Cells[3, 2].EntireRow.Font.Bold = true; ExcelApp.Cells[3, 2] = "ФИОклиента"; ExcelApp.Cells[3, 3].EntireRow.Font.Bold = true; ExcelApp.Cells[3, 3] = "Телефон"; ExcelApp.Cells[3, 4].EntireRow.Font.Bold = true; ExcelApp.Cells[3, 4] = "Паспорт";for (int i = 1; i < 4; i++) {for (int j = 1; j < dataGridView1.RowCount - 1; j++) { ExcelApp.Cells[j + 3, i + 1] = (dataGridView1[i, j].Value).ToString(); } } ExcelApp.Cells[6, 1].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 1] = "№"; ExcelApp.Cells[6, 2].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 2] = "Дата"; ExcelApp.Cells[6, 3].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 3] = "Сотрудник"; ExcelApp.Cells[6, 4].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 4] = "Услуга"; ExcelApp.Cells[6, 5].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 5] = "Цена, руб."; ExcelApp.Cells[6, 6].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 6] = "Количество"; ExcelApp.Cells[6, 7].EntireRow.Font.Bold = true; ExcelApp.Cells[6, 7] = "Сумма, руб.";for (int i = 1; i < 8; i++) {for (int j = 0; j < dataGridView2.RowCount - 1; j++) { ExcelApp.Cells[j + 7, i] = (dataGridView2[i, j].EditedFormattedValue).ToString(); } } ExcelApp.Visible = true; } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.Sql;using System.Data.SqlClient;using System.Data.OleDb;namespace Telephone{publicpartialclassForm2 : Form {publicstring login;publicstring password;publicstring sql;publicstring globallogin;publicbool success = true;public Form2() { InitializeComponent(); }privatevoid button1_Click(object sender, EventArgs e) { login = textBox1.Text; password = textBox2.Text;if (!login.Equals("") && !password.Equals("")) { sql = "select sotr.login, sotr.parol from sotr where login = \'" + login + "\' and parol = \'" + password + "\'";//SqlConnection sqlConnection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = \bd.mdf; Integrated Security = True");//SqlConnection sqlConnection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=bd.mdf;Integrated Security=True");// SqlConnection sqlConnection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");try {SqlConnection sqlConnection = newSqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");SqlDataAdapter adapter = newSqlDataAdapter(sql, sqlConnection);DataSet ds = newDataSet(); sqlConnection.Open(); adapter.Fill(ds, "mytable");if (ds.Tables[0].Rows.Count > 0)//еслиданныесовпадают, закрываемформуавторизации{ //и перехдим на главную форму success = false;sqlConnection.Close();this.DialogResult = DialogResult.OK;Close(); }elseMessageBox.Show("Пользователя с такой парой логин-пароль нет!\nПроверьте правильность введеных данных!");sqlConnection.Close(); }catch (Exception ee) { MessageBox.Show(ee.Message); } }elseMessageBox.Show("Заполнитевсеполя!"); }privatevoid Form2_FormClosing(object sender, FormClosingEventArgs e) {if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = success; } } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace Telephone{publicpartialclassForm1 : Form {privatestring globallogin;publicstring Globallogin {get { return globallogin; }set { globallogin = value; } }public Form1() { InitializeComponent(); }privatevoid Form1_Load(object sender, EventArgs e) {Form2 frm = newForm2();DialogResult dr = frm.ShowDialog();if (dr == DialogResult.OK) { globallogin = frm.login; } }privatevoid button1_Click(object sender, EventArgs e) {sotr Sotr = newsotr(); Sotr.Globallogin = globallogin; Sotr.ShowDialog(); }privatevoid button2_Click(object sender, EventArgs e) {usl Usl = newusl(); Usl.ShowDialog(); }privatevoid button3_Click(object sender, EventArgs e) {dogovor Dogovor = newdogovor(); Dogovor.ShowDialog();} }}

СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

1. Баженова И. Ю. Основы проектирования приложений баз данных — М: Интернет-Университет Информационных Технологий; Б И Н О М . Лаборатория знаний, 2013. — 325 с.: ил., табл. — (Серия «Основы информационных технологий»).
2. Иванов, Ю.П. BPwinиERwin. CASE-средства проектирования информационных систем: учебное пособие / Ю.П. Иванов, Е.В. Федоренко. – М. : Находка, 2012. – 80 с.
3. Кириллов В.В., Громов Г.Ю. Введение в реляционные базы данных СПб.: БХВ-Петербург, 2012. — 450 c.
4. Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: учебное пособие / В.Ю. Пирогов. – СПб. : БХВ-Петербург, 2014.–528 с.
5. Преснякова, Г.В. Проектирование интегрированных реляционных баз данных: учебник / Г.В.Преснякова. – М.: КДУ, 2016.– 45 с.
6. Федоренко, Е.В.Базы данных: учебное пособие / Е.В. Федоренко, А.С. Самардак. – М. : Находка, 2016. – 116 с.
7. Ульман Д., Уидом Д. "Основы реляционных баз данных", 2006

Электронные ресурсы
8. Базы данных - Урок 1. Понятие базы данных. [Электронный ресурс]. URL:
9. .Базы данных - Урок 2. Структура базы данных. [Электронный ресурс]. URL:
10. .Классификация баз данных. [Электронный ресурс]. URL:

Вопрос-ответ:

Какие функции выполняет телефонная станция?

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

Какие группы пользователей описываются в базе данных?

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

Какие требования предъявляются к базе данных курсового проекта?

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

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

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

Что такое даталогическое проектирование?

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

Что такое ИС "Телефонная станция 2"?

ИС "Телефонная станция 2" - это информационная система, осуществляющая управление телефонной станцией и обеспечивающая функции связи и обработки данных.

Какова структура организационно-функциональной модели телефонной станции?

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

Какая входная и выходная информация используется в ИС "Телефонная станция 2"?

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

Какие информационные технологии используются в ИС "Телефонная станция 2"?

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

Каковы требования к базе данных для курсового проекта по разработке ИС "Телефонная станция 2"?

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

Зачем разрабатывать базу данных для телефонной станции?

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

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

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