База Данных электронного дневника школьника
Курсовая работа, 25 Ноября 2013, автор: пользователь скрыл имя
Описание работы
Целью курсового проекта является приобретение навыков разработки баз данных. Задачи, которые необходимо решить при создании программного продукта:
Анализ предметной области;
Проектирование базы данных;
Разработка приложения для взаимодействия с БД.
Приложение представляет собой клиент-серверную систему:
серверная часть: MS SQL Server
клиентская – С#
Содержание работы
Введение 3
1. Выбор автоматизируемых функций и информационного обеспечения
Краткое описание предметной области 5
Цель разработки 8
Описание информационного обеспечения 8
2. Проектирование
2.1 Проектирование базы данных 11
2.2 План разработки 11
3. Реализация логической и физической модели базы данных MS SQL Server
SQL код создания реляционной модели базы данных 12
Логическая схема БД 13
Описание структуры БД 14
SQL-код запросов наиболее часто используемых в процессе эксплуатации БД 16
Пользователи БД 18
4. Проектирование приложений доступа к базе данных для автоматизируемых функций
Разработка прототипов клиентского приложения 22
4.2 Реализация клиентского приложения в среде MS C# 26
Заключение 29
Список использованной литературы 30
Файлы: 1 файл
курсовая работа по БД на тему эл. дневн - копия.docx
— 435.77 Кб (Скачать файл)
SQl код для создание таблицы ucheniki в БД el_dnewn
use el_dnewn
create table ucheniki
(id_uch varchar(11) PRIMARY KEY,
id_klas varchar(11) not null,
fam varchar(50)not null,
nam varchar(50)not null,
otch varchar(50)not null)
Структура таблицы klass
Имя столбца |
Тип данных |
Размерность |
Возможность значений null |
Содержательное описание |
Id_klas |
varchar |
11 |
Нет |
Идентификатор класса |
numer_klas |
varchar |
20 |
Нет |
Название класса |
SQl код для создание таблицы klass в БД el_dnewn
use el_dnewn
create table klass
(id_klas varchar(11) PRIMARY KEY,
numer_klas varchar(20)not null)
Структура таблицы dnewn
Имя столбца |
Тип данных |
Размерность |
Возможность значений null |
Содержательное описание |
id_ocen |
varchar |
11 |
Нет |
Идентификатор оценки |
date |
date |
Нет |
Дата выставления оценки | |
id_uch |
varchar |
11 |
Нет |
Идентификатор ученика |
id_predm |
varchar |
11 |
Нет |
Идентификатор предмета |
zadanie |
varchar |
100 |
Нет |
Задание |
ocenka |
char |
Нет |
Оценка |
SQl код для создание таблицы dnewn в БД el_dnewn
use el_dnewn
create table dnewn1
(id_ocen varchar(11) PRIMARY KEY,
date date not null,
id_uch varchar(11) not null,
id_predm varchar(11)not null,
zadanie varchar(100)not null,
ocenka char not null check (ocenka like '[1-5]')
)
Структура таблицы predm
Имя столбца |
Тип данных |
Размерность |
Возможность значений null |
Содержательное описание |
id_predm |
varchar |
11 |
Нет |
Идентификатор предмета |
naz_predm |
varchar |
59 |
Нет |
Название предмета |
SQl код для создание таблицы predm в БД el_dnewn
use el_dnewn
create table predm
(id_predm varchar(11) PRIMARY KEY,
naz_predm varchar(59) not null)
3.4 SQL-код запросов наиболее часто используемых в процессе эксплуатации базы данных
Наиболее частыми запросами при работе с данной автоматизированной системой в базе данных MS SQL Server это:
1.Запрос на предостовление информации о ученике
- Индвидуальный номер
- Класс
- Фамилия И.О.
- Средняя оценка ученика
SELECT u.id_uch,fam, name, k.numer_klas, AVG(ocenka) 'ocenka'
from ucheniki u, klass k,dnewn d
where u.id_klas=k.id_klas and d.id_uch=u.id_uch and u.id_uch='1'
2. Запрос на предоставление информации о классе:
- Количество учеников в классе
- Средняя оценка класса
SELECT count(u.id_uch), AVG(ocenka)
from ucheniki u, klass k
where u.id_klas=k.id_klas and numer_klas='1'
3.Запрос списка класса
SELECT fam, name
from ucheniki u, klass k
where u.id_klas=k.id_klas and numer_klas='1'
4.Поиск школьника по фамилии
SELECT numer_klas,fam, name, otch
from ucheniki u,klass k
where k.id_klas=u.id_klas AND fam ='Михайлов'
5.Запрос оценок всего класса
- Дата
- Фамилия
- Имя
- Предмет по которой получена оценка
- Задание
- Оценка
SELECT date, fam, name, naz_predm, zadanie, ocenka
from dnewn d,ucheniki u, predm p, klass k
where d.id_uch=u.id_uch
AND p.id_predm=d.id_predm
AND k.id_klas=u.id_klas AND numer_klas='1'
6.Запрос всех домашних заданий конкретного класса
SELECT date, naz_predm, zadanie
from dnewn d,ucheniki u, predm p, klass k
where d.id_uch=u.id_uch
AND p.id_predm=d.id_predm
AND k.id_klas=u.id_klas AND numer_klas='1'
7.Запрос всех оценок конкретного ученика
SELECT date, numer_klas,fam, name, naz_predm, zadanie, ocenka
from dnewn d,ucheniki u, predm p, klass k
where d.id_uch=u.id_uch
AND p.id_predm=d.id_predm
AND k.id_klas=u.id_klas AND u.id_uch ='1'
- Пользователи БД
Защитим БД от случайного, так и от намеренного повреждения или искажения информации, т.е. четко определим полномочии каждого пользователя системы.
Имя пользователя |
Полномочия |
Содержательное описание |
prepod |
db_datareader db_datawriter |
Пользователю prepod разрешено выполнять SELECT, INSERT, UPDATE и DELETE для всех таблиц базы данных. Пользователь с этими привилегиями может:
|
Сценарий создания пользователя prepod USE [master] GO CREATE LOGIN [prepod] WITH PASSWORD=N'123' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON GO USE [el_dnewn] GO CREATE USER [zaw] FOR LOGIN [zaw] GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_datareader', N'prepod' GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_datawriter', N'prepod' GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_ddladmin', N'prpod' GO | ||
roditel |
db_datareader |
Пользователю roditel разрешено выполнять SELECT, для всех таблиц базы данных. Пользователь с этой привилегией может выполнять запросы в таблице, т.е. родитель может просто просматривать содержимое таблиц и без права на какие либо изменения. |
Сценарий создания пользователя rodirel USE [master] GO CREATE LOGIN [roditel] WITH PASSWORD=N'1234' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON GO USE [el_dnewn] GO CREATE USER [zaw] FOR LOGIN [zaw] GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_datareader', N'roditel' GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_datawriter', N'roditel' GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_ddladmin', N'roditel' GO | ||
zaw |
db_datareader db_datawriter db_ddladmin |
Пользователь с этими
|
Сценарий создания пользователя zaw USE [master] GO CREATE LOGIN [zaw] WITH PASSWORD=N'123' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON GO USE [el_dnewn] GO CREATE USER [zaw] FOR LOGIN [zaw] GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_datareader', N'zaw' GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_datawriter', N'zaw' GO USE [el_dnewn] GO EXEC sp_addrolemember N'db_ddladmin', N'zaw' GO | ||
- Проектирование приложений доступа к базе данных для автоматизируемых функций
4.1. Разработка прототипов клиентского приложения
В данном разделе разрабатываются
прототипы клиентского
Рис.2.Форма которая открывается при запуске exe файла. Она используется как меню.
Рис.3. Форма для добавления учеников
Рис.4.Форма для добавления оценок
Рис.5. Форма для просмотра оценок
Рис.6 Форма для просмотра учеников
- Реализация клиентского приложе
ния в среде MS C#
Код для приложений
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;
namespace el_dnewn
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void добавлениеУчениковToolStripMen
{
FormUcheniki myForm2 = new FormUcheniki();
myForm2.Show();
}
private void добавлениеОценокToolStripMenuI
{
FormDnewn myForm3 = new FormDnewn();
myForm3.Show();
}
private void оценокToolStripMenuItem_Click(
{
FormOcen myForm4 = new FormOcen();
myForm4.Show();
}
private void учениковToolStripMenuItem_
{
Uch myForm5 = new Uch();
myForm5.Show();
}
}
}
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;
namespace el_dnewn
{
public partial class FormDnewn : Form
{
public FormDnewn()
{
InitializeComponent();
}
private void FormDnewn_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.predm". При необходимости она может быть перемещена или удалена.
this.predmTableAdapter.Fill(th
// TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.ucheniki". При необходимости она может быть перемещена или удалена.
this.uchenikiTableAdapter.
// TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.dnewn". При необходимости она может быть перемещена или удалена.
this.dnewnTableAdapter.Fill(th
}
private void dataGridView1_
{
}
private void fillBy1ToolStripButton_Click(o
{
try
{
this.dnewnTableAdapter.
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBo
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Validate();
this.dnewnBindingSource.
this.dnewnTableAdapter.Update(
} }}
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;
namespace el_dnewn
{
public partial class FormUcheniki : Form
{
public FormUcheniki()
{
InitializeComponent();
}
private void FormUcheniki_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.klass". При необходимости она может быть перемещена или удалена.
this.klassTableAdapter.Fill(th
// TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.ucheniki". При необходимости она может быть перемещена или удалена.
this.uchenikiTableAdapter.
}
private void button1_Click(object sender, EventArgs e)
{
this.Validate();
this.uchenikiBindingSource.
this.uchenikiTableAdapter.
}
private void fillByToolStripButton_Click(ob
{
try
{
this.uchenikiTableAdapter.
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBo
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
Заключение
Курсовой проект посвящен разработке программы учета успеваемости школьников.
В ходе курсового проекта были решены следующие задачи:
- Проектирование БД с помощью ERWIN Data Modeler и SQL Server 2008;
- Разработка клиентского приложения с помощью языка программирования С#. В соответствии с предложенным техническим заданием был создан «Электронный дневник школьника», проведена следующая работа:
- Подключение БД(локальной, сетевой)
- Осуществление поиска школьника по фамилии
- Вывод на экран данных о школьнике (ФИО, класс, id-школьника);
- Реализация «Сводки текущей успеваемости»
- Просмотр всех оценок конкретного школьника
- Просмотр оценок всех учеников
- Просмотр оценок конкретного класса
Программа учета успеваемости облегчает работу классных руководителей, школьников и их родителей в различных учебных заведениях. Реализуется это быстрым переходом от поиска к выводу успеваемости. Осуществлена возможность внесения новых оценок по различным предметам и дате. Имея определенные навыки программирования, есть возможность добавления новых предметов и реализации дневной успеваемости и успеваемости по учебным четвертям и любого промежутка времени
Список литературы
- Поисковая система Google.ru, Yandex.ru, Rambler.ru;
- Справочник по базе данных MySQL. Best MySQL small cookbook.
- Эндрю Троелсен. Язык программирования C# 2010 и платформа .NET 4.0 = Pro C# 2010 and the .NET 4.0 Platform — 5-е изд. — М.: Вильямс, 2010. — С. 1392. — ISBN 978-5-8459-1682-2.
- Дейт, К. Дж. Введение в системы баз данных : пер. с англ. / К. Дж. Дейт. – М. : Вильямc, 2005. – 1328 с.: ил. — Парал. тит. англ.
- Глушаков, С. В. Базы данных : учеб. курс / С. В. Глушаков, Д. В. Ломотько. – М. : АСТ, 2000. – 504 с.
- Грабер, М. Введение в SQL : учеб. пособие / М. Грабер. – М. : Лори, 2008. – 379 с.
- Клайн, К. SQL. Справочник : пер. с англ. / К. Клайн, Д. Клайн, Бр.Хант. – 2-е изд. – М. : КУДИЦ-ЮБРАЗ, 2006 – 832 с.
- Когаловский, М. Р. Технология баз данных на персональных ЭВМ / М. Р. Когаловский – М.: Финансы и статистика, 1992. – 224 с.
- Коннолли, Т. Базы данных: проектирование, реализация и сопровождение: Теория и практика: пер. с англ. / Т. Коннолли, К. Бегг, А. Страчан. – 2-е изд. – М. : Вильямс, 2000. – 1120 c.
- Маклаков, С. В. BPWin и ERWIN. CASE-средства разработки информационных систем / С. В. Маклаков. – М. : ДИАЛОЕ-МИФИ, 2000. – 256 с.
- Мартин, Дж. Организация баз данных в вычислительных системах / Дж. Мартин. – М. : Мир, 1999. – 660 c.
- Озкарахан, Э. Машины баз данных и управление базами данных : пер. с англ. / Э. Озкарахан. – М. : Мир, 1989. – 696 с.
- Саймон, А. Р. Стратегические технологии баз данных: менеджмент на 2000 год: пер. с англ. / А. Р. Саймон – М. : Финансы и статистика, 1999. – 479 с.
- Тиори, Т. Проектирование структур баз данных: в 2-х кн. / Т. Тиори, Д. Фрай. – М. : Мир, 1985. – 507 с.
- Фаулер, М. UML в кратком изложении. Применение стандартного языка объектного моделирования: пер. с англ. / М. Фаулер, К.Скотт – М. : Мир, 1999. – 191 с.