- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
ВВЕДЕНИЕ 2
1. Системный анализ предметной области 3
1.1. Анализ предметной области 3
1.1.1. Организационно-функциональная структура телефонной станции 3
1.1.2. Описание групп пользователей базой данных 3
1.2.3. Описание входной и выходной информации 4
1.2. Обзор информационных технологий 4
1.3. Описание требований к базе данных курсового проекта 7
Выводы к главе 7
2. Описание проектирования БД 8
2.1. Инфологическое проектирование 8
2.2. Даталогическое проектирование 11
2.2.1. Логическое проектирование 11
2.2.2 Обоснование выбора модели данных 11
2.2.3. Нормализация данных 13
Выводы к главе 15
3. Программная реализация 16
3.1. Анализ и выбор СУБД 16
3.2. Физическое проектирование базы данных 18
3.3. Разработка форм 20
3.4. Разработка отчетов 22
3.5. Реализация ограничений, автоматизация обработки данных в БД 25
3.6 Безопасность и контроль 26
Выводы к главе 26
ЗАКЛЮЧЕНИЕ 28
СПИСОК ЛИТЕРАТУРЫ 29
ПРИЛОЖЕНИ 1. Листинг 30
Фрагмент для ознакомления
Иванов, Ю.П. BPwinиERwin. CASE-средства проектирования информационных систем: учебное пособие / Ю.П. Иванов, Е.В. Федоренко. – М. : Находка, 2012. – 80 с.Кириллов В.В., Громов Г.Ю. Введение в реляционные базы данных СПб.: БХВ-Петербург, 2012. — 450 c.Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: учебное пособие / В.Ю. Пирогов. – СПб. : БХВ-Петербург, 2014.–528 с.Преснякова, Г.В. Проектирование интегрированных реляционных баз данных: учебник / Г.В.Преснякова. – М.: КДУ, 2016.– 45 с.Федоренко, Е.В.Базы данных: учебное пособие / Е.В. Федоренко, А.С. Самардак. – М. : Находка, 2016. – 116 с.Ульман Д., Уидом Д. "Основы реляционных баз данных", 2006Базы данных - Урок 1. Понятие базы данных. [Электронный ресурс]. URL:Базы данных - Урок 2. Структура базы данных. [Электронный ресурс]. URL: Классификация баз данных. [Электронный ресурс]. URL:СпецАвтоматика-Спектр. [Электронный ресурс]. 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 Microsoft.Office.Interop.Excel;using System.Reflection;namespace Dekanat{publicpartialclassved : Form {public ved() { InitializeComponent(); }privatevoid ved_Load(object sender, EventArgs e){// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.dis". При необходимости она может быть перемещена или удалена.this.disTableAdapter.Fill(this.bdDataSet.dis);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.grup". При необходимости она может быть перемещена или удалена.this.grupTableAdapter.Fill(this.bdDataSet.grup);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.stud". При необходимости она может быть перемещена или удалена.this.studTableAdapter.Fill(this.bdDataSet.stud);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.ved". При необходимости она может быть перемещена или удалена.this.vedTableAdapter.Fill(this.bdDataSet.ved);studBindingSource.Filter = "[grup] = " + comboBox2.SelectedValue;DataRowView currow2 = (DataRowView)studBindingSource.Current; vedBindingSource.Filter = "[stud] = " + currow2.Row["Id"]; }privatevoid comboBox2_TextChanged(object sender, EventArgs e) { studBindingSource.Filter = "[grup] = " + comboBox2.SelectedValue;DataRowView currow2 = (DataRowView)studBindingSource.Current; vedBindingSource.Filter = "[stud] = " + currow2.Row["Id"]; }privatevoid toolStripButton1_Click(object sender, EventArgs e) {//сохранитьDataRowView currow = (DataRowView)vedBindingSource.Current;DataRowView currow2 = (DataRowView)studBindingSource.Current; vedBindingSource.Filter = "[stud] = " + currow2.Row["Id"]; vedTableAdapter.Update(bdDataSet); }privatevoid dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) {DataRowView currow = (DataRowView)vedBindingSource.Current;DataRowView currow2 = (DataRowView)studBindingSource.Current; currow.Row["stud"] = currow2.Row["Id"]; vedTableAdapter.Update(bdDataSet); }privatevoid dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) {DataGridView grid = (sender asDataGridView);if ((e.RowIndex > -1) && (e.RowIndex < grid.RowCount - 1)){// раскрасить в зависимости от значения определенного поляif (dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString() == "2") grid.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightPink; } }privatevoid dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e) {DataRowView currow2 = (DataRowView)studBindingSource.Current; vedBindingSource.Filter = "[stud] = " + currow2.Row["Id"]; }privatevoid toolStripButton3_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, 1].EntireRow.Font.Bold = true; ExcelApp.Cells[3, 1] = "ФИО"; 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 < 5; i++) {for (int j = 0; j < dataGridView2.RowCount - 1; j++) { ExcelApp.Cells[j + 4, i] = (dataGridView2[i, j].EditedFormattedValue).ToString(); } } ExcelApp.Cells[7, 1].EntireRow.Font.Bold = true; ExcelApp.Cells[7, 1] = "Дисциплина"; ExcelApp.Cells[7, 2].EntireRow.Font.Bold = true; ExcelApp.Cells[7, 2] = "Оценка"; ExcelApp.Cells[7, 3].EntireRow.Font.Bold = true; ExcelApp.Cells[7, 3] = "Дата";for (int i = 1; i < 4; i++) {for (int j = 0; j < dataGridView2.RowCount - 1; j++) { ExcelApp.Cells[j + 8, i] = (dataGridView1[i, j].EditedFormattedValue).ToString(); } } ExcelApp.Visible = true; }privatevoid toolStripButton2_Click(object sender, EventArgs e) { dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index); vedTableAdapter.Update(bdDataSet); } }}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.IO;namespace Dekanat{publicpartialclassstud : Form {public stud() { InitializeComponent(); }privatevoid stud_Load(object sender, EventArgs e){// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.grup". При необходимости она может быть перемещена или удалена.this.grupTableAdapter.Fill(this.bdDataSet.grup);// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.stud". При необходимости она может быть перемещена или удалена.this.studTableAdapter.Fill(this.bdDataSet.stud);}privatevoid button1_Click(object sender, EventArgs e) {var ofd = newOpenFileDialog(); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;if (ofd.ShowDialog(this) == DialogResult.OK) pictureBox1.Image = Image.FromFile(ofd.FileName); }privatevoid button2_Click(object sender, EventArgs e) {DataRowView id = (DataRowView)studBindingSource.Current;SqlConnection sqlCon = newSqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");//ПодключениекБД.SqlCommand sqlCommand = newSqlCommand("Update stud set foto = @Foto where id = " + Convert.ToInt32(id.Row["id"].ToString()), sqlCon);//ЗапроснавставкуSqlParameter sqlParameter = newSqlParameter("Foto", DbType.Binary); //ПараметрзапросаImage Foto = pictureBox1.Image; //Изображениеизфайла.MemoryStream memoryStream = newMemoryStream(); //Поток в который запишем изображение Foto.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp); //Сохраняем изображение в поток. sqlParameter.Value = memoryStream.ToArray(); //Устанавливаем значение параметраsqlCommand.Parameters.Add(sqlParameter); //ДобавляемпараметрsqlCon.Open(); //Открываем соединение с БД sqlCommand.ExecuteNonQuery(); //Выполняем запрос. sqlCon.Close(); //Закрываем соединениеmemoryStream.Dispose(); }privatevoid toolStripButton1_Click(object sender, EventArgs e) { studTableAdapter.Update(bdDataSet); }privatevoid toolStripButton2_Click(object sender, EventArgs e) { dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index); studTableAdapter.Update(bdDataSet); }privatevoid toolStripButton3_Click(object sender, EventArgs e) { studBindingSource.Filter = "[fio] LIKE '%" + toolStripTextBox1.Text + "%'"; }privatevoid comboBox1_TextChanged(object sender, EventArgs e) { studBindingSource.Filter = "[grup] = " + comboBox1.SelectedValue.ToString(); } }}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.IO;namespace Dekanat{publicpartialclassprepod : Form {// public DataRowView id;public prepod() { InitializeComponent(); }privatevoid button1_Click(object sender, EventArgs e) {var ofd = newOpenFileDialog(); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;if (ofd.ShowDialog(this) == DialogResult.OK) pictureBox1.Image = Image.FromFile(ofd.FileName); }privatevoid button2_Click(object sender, EventArgs e) {DataRowView id = (DataRowView)prepodBindingSource.Current;SqlConnection sqlCon = newSqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\bd.mdf;Integrated Security=True");//ПодключениекБД.SqlCommand sqlCommand = newSqlCommand("Update prepod set foto = @Foto where id = " + Convert.ToInt32(id.Row["id"].ToString()), sqlCon);//ЗапроснавставкуSqlParameter sqlParameter = newSqlParameter("Foto", DbType.Binary); //ПараметрзапросаImage Foto = pictureBox1.Image; //Изображениеизфайла.MemoryStream memoryStream = newMemoryStream(); //Поток в который запишем изображение Foto.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp); //Сохраняем изображение в поток. sqlParameter.Value = memoryStream.ToArray(); //Устанавливаем значение параметраsqlCommand.Parameters.Add(sqlParameter); //ДобавляемпараметрsqlCon.Open(); //Открываем соединение с БД sqlCommand.ExecuteNonQuery(); //Выполняем запрос. sqlCon.Close(); //Закрываем соединениеmemoryStream.Dispose(); }privatevoid prepod_Load(object sender, EventArgs e){// TODO: данная строка кода позволяет загрузить данные в таблицу "bdDataSet.prepod". При необходимости она может быть перемещена или удалена.this.prepodTableAdapter.Fill(this.bdDataSet.prepod);}privatevoid toolStripButton1_Click(object sender, EventArgs e) { prepodTableAdapter.Update(bdDataSet); }privatevoid toolStripButton2_Click(object sender, EventArgs e) { dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);prepodTableAdapter.Update(bdDataSet); } }}
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:
11. СпецАвтоматика-Спектр. [Электронный ресурс]. URL:
12. ММИС Лаборатория. Электронный ресурс]. URL:
Вопрос-ответ:
Каким образом происходит системный анализ предметной области при разработке БД для ИС?
Системный анализ предметной области при разработке БД для ИС включает в себя изучение организационно-функциональной структуры телефонной станции, описание групп пользователей базой данных, анализ входной и выходной информации, а также обзор информационных технологий.
Какая структура имеет телефонная станция?
Телефонная станция имеет организационно-функциональную структуру, которая включает в себя различные подразделения и их функции, такие как администрация, отдел технической поддержки, отдел продаж и другие.
Какие группы пользователей описываются базой данных?
База данных описывает различные группы пользователей, такие как администраторы, операторы, клиенты и другие. Для каждой группы пользователей определены их роли и возможности доступа к данным.
Какая информация входит в описание входной и выходной информации?
Описание входной и выходной информации включает в себя описание данных, которые поступают в систему, и данных, которые система выдает в качестве результата. Это может быть информация о звонках, абонентах, услугах и других элементах системы.
Какие требования предъявляются к базе данных курсового проекта?
К базе данных курсового проекта предъявляются различные требования, такие как надежность, производительность, удобство использования, безопасность и другие. База данных должна обеспечивать эффективную работу всей системы и удовлетворять потребности пользователей.
Что такое организационно-функциональная структура телефонной станции?
Организационно-функциональная структура телефонной станции - это систематизированное описание функций и взаимодействий между различными подразделениями и должностями внутри телефонной станции. Она определяет организацию работы и взаимодействия персонала, а также управление всей телефонной системой.
Какие группы пользователей описывают базу данных?
База данных описывает несколько групп пользователей. Одна из таких групп - администраторы, которые могут управлять базой данных, создавать новых пользователей и назначать им различные права доступа. Еще одна группа - сотрудники телефонной станции, которые могут просматривать информацию о звонках, добавлять новые записи и редактировать существующие. Кроме того, база данных может иметь группу пользователей, которые имеют право только на просмотр информации.
Какая информация входит в базу данных телефонной станции?
База данных телефонной станции содержит различную информацию о звонках. Среди основных полей могут быть номер вызывающего абонента, номер вызываемого абонента, дата и время звонка, продолжительность разговора и другие параметры. Также в базе данных может храниться информация о клиентах, услугах и тарифах, а также другая дополнительная информация, необходимая для работы телефонной станции.
Какие информационные технологии используются в разработке базы данных?
В разработке базы данных для телефонной станции используются различные информационные технологии. Например, для создания базы данных может быть использована СУБД (система управления базами данных) для хранения и управления данными. Для разработки интерфейса пользователя может быть использован язык программирования и графический интерфейс. Также могут использоваться другие технологии, такие как сетевые протоколы для связи с другими системами и технологии безопасности для защиты данных.
Какие требования предъявляются к базе данных в курсовом проекте?
В курсовом проекте предъявляются различные требования к базе данных. Например, база данных должна быть надежной и обеспечивать сохранность данных. Также требуется, чтобы база данных была эффективной и обеспечивала быстрый доступ и обработку информации. Кроме того, база данных должна иметь удобный интерфейс и быть легко расширяемой для добавления новых данных и функций. Также могут быть предъявлены требования к безопасности данных и возможности резервного копирования.