База Данных электронного дневника школьника

Автор работы: Пользователь скрыл имя, 25 Ноября 2013 в 17:02, курсовая работа

Описание работы

Целью курсового проекта является приобретение навыков разработки баз данных. Задачи, которые необходимо решить при создании программного продукта:
Анализ предметной области;
Проектирование базы данных;
Разработка приложения для взаимодействия с БД.
Приложение представляет собой клиент-серверную систему:
серверная часть: 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.Запрос на предостовление информации о ученике

      1. Индвидуальный номер
      2. Класс
      3. Фамилия И.О.
      4. Средняя оценка ученика

 

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. Запрос на предоставление информации о классе:

      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.Запрос оценок всего  класса

    1. Дата
    2. Фамилия
    3. Имя
    4. Предмет по которой получена оценка
    5. Задание
    6. Оценка

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'

 

 

    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


 

 

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

4.1. Разработка прототипов  клиентского приложения

В данном разделе разрабатываются  прототипы клиентского приложения позволяющие вводить в БД оценки и учеников. Приложение так же дает возможность просматривать оценки и список учеников.

Рис.2.Форма которая открывается при запуске exe файла. Она используется как меню.

Рис.3. Форма для добавления учеников

 

Рис.4.Форма для добавления оценок

 

 

Рис.5. Форма для просмотра оценок

Рис.6 Форма для просмотра учеников

 

 

    1. Реализация клиентского приложения в среде 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 добавлениеУчениковToolStripMenuItem_Click(object sender, EventArgs e)

        {

            FormUcheniki myForm2 = new FormUcheniki();

            myForm2.Show();

 

        }

 

        private void добавлениеОценокToolStripMenuItem_Click(object sender, EventArgs e)

        {

            FormDnewn myForm3 = new FormDnewn();

            myForm3.Show();

 

        }

 

        private void оценокToolStripMenuItem_Click(object sender, EventArgs e)

        {

            FormOcen myForm4 = new FormOcen();

            myForm4.Show();

 

        }

 

        private void учениковToolStripMenuItem_Click(object sender, EventArgs e)

        {

            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(this.el_dnewnDataSet.predm);

            // TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.ucheniki". При необходимости она может быть перемещена или удалена.

            this.uchenikiTableAdapter.Fill(this.el_dnewnDataSet.ucheniki);

            // TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.dnewn". При необходимости она может быть перемещена или удалена.

            this.dnewnTableAdapter.Fill(this.el_dnewnDataSet.dnewn);

 

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

        {

 

        }

 

        private void fillBy1ToolStripButton_Click(object sender, EventArgs e)

        {

            try

            {

                this.dnewnTableAdapter.FillBy1(this.el_dnewnDataSet.dnewn);

            }

            catch (System.Exception ex)

            {

                System.Windows.Forms.MessageBox.Show(ex.Message);

            }

 

        }

 

       

        private void button1_Click(object sender, EventArgs e)

        {

            this.Validate();

            this.dnewnBindingSource.EndEdit();

            this.dnewnTableAdapter.Update(this.el_dnewnDataSet.dnewn);

 

 

        }    }}

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(this.el_dnewnDataSet.klass);

            // TODO: данная строка кода позволяет загрузить данные в таблицу "el_dnewnDataSet.ucheniki". При необходимости она может быть перемещена или удалена.

            this.uchenikiTableAdapter.Fill(this.el_dnewnDataSet.ucheniki);

 

        }

 

      

 

        private void button1_Click(object sender, EventArgs e)

        {

            this.Validate();

            this.uchenikiBindingSource.EndEdit();

            this.uchenikiTableAdapter.Update(this.el_dnewnDataSet.ucheniki);         

         }

 

        private void fillByToolStripButton_Click(object sender, EventArgs e)

        {

            try

            {

                this.uchenikiTableAdapter.FillBy(this.el_dnewnDataSet.ucheniki);

            }

            catch (System.Exception ex)

            {

                System.Windows.Forms.MessageBox.Show(ex.Message);

            }

 

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

 

            this.Close();

        }    

}

 

 

 

 

 

 

 

 

 

Заключение

Курсовой проект посвящен разработке программы учета успеваемости школьников.

В ходе курсового проекта  были решены следующие задачи:

  1. Проектирование БД с помощью ERWIN Data Modeler и SQL Server 2008;
  2. Разработка клиентского приложения с помощью языка программирования С#. В соответствии с предложенным техническим заданием был создан «Электронный дневник школьника», проведена следующая работа:
  3. Подключение БД(локальной, сетевой)
  4. Осуществление поиска школьника по фамилии
  5. Вывод на экран данных о школьнике (ФИО, класс, id-школьника);
  6. Реализация «Сводки текущей успеваемости»
  7. Просмотр всех оценок конкретного школьника
  8. Просмотр оценок всех учеников
  9. Просмотр оценок конкретного класса

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

 

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

  1. Поисковая система Google.ru, Yandex.ru, Rambler.ru;
  2. Справочник по базе данных MySQL. Best MySQL small cookbook.
  3. Эндрю Троелсен. Язык программирования C# 2010 и платформа .NET 4.0 = Pro C# 2010 and the .NET 4.0 Platform — 5-е изд. — М.: Вильямс, 2010. — С. 1392. — ISBN 978-5-8459-1682-2.
  4. Дейт, К. Дж. Введение в системы баз данных : пер. с англ. / К. Дж. Дейт. –  М. : Вильямc, 2005. – 1328 с.: ил. — Парал. тит. англ.
  5. Глушаков, С. В. Базы данных : учеб. курс / С. В. Глушаков, Д. В. Ломотько. – М. : АСТ, 2000. – 504 с.
  6. Грабер, М. Введение в SQL : учеб. пособие / М. Грабер. – М. : Лори, 2008. –  379 с.
  7. Клайн, К. SQL. Справочник : пер. с англ.  / К. Клайн, Д. Клайн, Бр.Хант. – 2-е изд. – М. : КУДИЦ-ЮБРАЗ, 2006 – 832 с.
  8. Когаловский, М. Р. Технология баз данных на персональных ЭВМ / М. Р.  Когаловский – М.: Финансы и статистика, 1992. – 224 с.
  9. Коннолли, Т. Базы данных: проектирование, реализация и сопровождение: Теория и практика: пер. с англ. / Т. Коннолли, К. Бегг, А. Страчан. – 2-е изд. – М. : Вильямс, 2000. – 1120 c.
  10. Маклаков, С. В. BPWin и ERWIN. CASE-средства разработки информационных систем / С. В. Маклаков. – М. : ДИАЛОЕ-МИФИ, 2000. – 256 с.
  11. Мартин, Дж. Организация баз данных в вычислительных  системах / Дж. Мартин. – М. : Мир, 1999. – 660 c.
  12. Озкарахан, Э. Машины баз данных и управление базами данных : пер. с англ. / Э. Озкарахан. – М. : Мир, 1989. – 696 с.
  13. Саймон, А. Р. Стратегические технологии баз данных: менеджмент на 2000 год: пер. с англ. / А. Р. Саймон – М. : Финансы и статистика, 1999. – 479 с.
  14. Тиори, Т. Проектирование структур баз данных: в 2-х кн. / Т. Тиори, Д. Фрай. – М. : Мир, 1985. – 507 с.
  15. Фаулер, М. UML в кратком изложении. Применение стандартного языка объектного моделирования: пер. с англ. / М. Фаулер, К.Скотт – М. : Мир, 1999. – 191 с.

Информация о работе База Данных электронного дневника школьника