Курсовая работа (т): База даних автоматизованої системи дошкільного навчального закладу

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

База даних автоматизованої системи дошкільного навчального закладу

Вступ

інформаційний програма база даних

База даних (скорочено - БД) - впорядкований набір логічне взаємопов'язаних даних, що використовуються спільно та призначені для задоволення інформаційних потреб користувачів. У технічному розумінні включно й система керування БД.

Microsoft SQL Server - комерційна система керування базами даних, що розповсюджуються корпорацією Microsoft. Мова, що використовується для запитів - Transact-SQL, створена спільно Microsoft та Sybase. Transact-SQL є реалізацією стандарту ANSI/ISO щодо структурованої мови запитів (SQL) із розширеннями. Використовується як для невеликих і середніх за розміром баз даних, так і для великих баз даних масштабу підприємства. Багато років вдало конкурує з іншими системами керування базами даних.

Transact-SQL (T-SQL) - процедурне розширення мови SQL, створене компанією Microsoft (для Microsoft SQL Server) і Sybase (для Sybase ASE). SQL був розширений такими додатковими можливостями як:

·        керуючі оператори

·        локальні і глобальні змінні,

·        різні додаткові функції для обробки рядків, дат, математики і т.п.,

·        підтримка аутентифікації Microsoft Windows

Мова Transact-SQL є ключем до використання MS SQL Server. Всі додатки, які взаємодіють з екземпляром MS SQL Server, незалежно від їх реалізації і користувальницького інтерфейсу, відправляють сервера інструкції Transact-SQL.

Збережена процедура - об'єкт бази даних, що представляє собою набір SQL-інструкцій, який компілюється один раз і зберігається на сервері. Збережені процедури дуже схожі на звичайні процедури мов високого рівня, у них можуть бути вхідні і вихідні параметри і локальні змінні, в них можуть вироблятися числові обчислення і операції над символьними даними, результати яких можуть присвоюватися змінним і параметрам. У збережених процедурах можуть виконуватися стандартні операції з базами даних (як DDL, так і DML). Крім того, в збережених процедурах можливі цикли і розгалуження, тобто в них можуть використовуватися інструкції управління процесом виконання.

1 Опис програми


1 Завдання

Для приведеної нижче задачі виповнюю наступний комплекс робіт:

. Побудувати інформаційну концептуальну модель (ER - модель), необхідно для того щоб :

Проаналізувати предметну область, при необхідності уточнити і удосконалити її, виявити необхідний набір сутностей

Визначити потрібний набір атрибутів для кожної сутності, виділивши ідентифікуючий набір атрибутів

Визначити зв’язки між об’єктами, формалізувати зв’язки між об’єктами ( множина и т.д.)

Описати одержану ER - модель на язику ER - діаграми

. Отримати реляційну схему із ER - моделі, для того щоб :

Побудувати набір необхідних відносин бази даних;

Виділити первісний і зовнішній ключі визначених відносин;

Привести отримані відносини до третьої нормальної форми;

Визначити обмеження цілісності для зовнішніх ключів відносин і для відносин взагалі;

Представити зв’язки між зовнішніми і первинними ключами;

. Використовуючи СУБД MS SQL Server 2000-2005 створити спроектовану базу даних на SQL .

. Виконати на SQL необхідні дії з додавання, модифікації і видалення даних в таблицях створеної бази даних;

. На мові SQL для вказаних у варіанті завдання запитів створити вистави(змінні і незмінні).

. Перевірити працездатність вистав в інтерактивному режимі.

. Призначені для користувача застосування

Створити Windows- інтерфейс користувача і Web- інтерфейс.

Створити систему безпеки.

Вивчити предметну область задану згідно варіанту. Продумати та спроектувати схему бази даних, яка має містити не менше 10 таблиць, та не менше 20 записів у кожній з них (за виключенням тих, які по змісту цього не потребують). Заповнити базу.

.1 Опис предметної області

Дитячий дошкільний навчальний заклад здійснює навчання дітей. Діти розподілені на групи за віком (ясельна група - діти віком від 2 до 3 років, молодша - до 4, середня - до 5, старша - до 6, підготовча - до 7). Навчання в цілому є безкоштовним, оплачується харчування дітей та окремі види занять.

Персонал дитячого дошкільного навчального закладу складається з кількох підрозділів: адміністрація (завідуючий); бухгалтерія, медичний кабінет, методичний кабінет, вихователів, нянечок і кухарів, а також можливі вузькі спеціалісти (логопед, психолог, викладач іноземної мови, хореограф). У кожної з категорій є характеристики, притаманні лише їй. Кожний працівник проходить обов’язкове медичне обстеження раз на рік, ця інформація фіксується у журналі.

Протягом навчання в закладі кожна дитина перебуває на медичному обліку в медсестри, яка слідкує за вчасним щепленням та робить відповідні записи у медичну картку дитини. До картки заносяться данні про зріст та вагу дітей кожні півроку. Також ведеться облік лікарняних та довідок.

Діти відвідують різні заняття, деякі є обов’язковими для всіх, деякі відвідуються за бажанням (додаткові заняття з образотворчого мистецтва, хореографії, іноземної мови) та є платними, інші рекомендовані для відвідування дітям за станом здоров’я (лікувальна фізкультура, логопед) та є безкоштовними. Розклад занять складається таким чином, щоб групові заняття займали першу половину дня, а індивідуальні - другу

Окрім цього, важлива роль у процесі навчання відіграє правильне та різноманітне харчування. Для цього ведеться облік продуктів харчування, порції розраховуються згідно затверджених норм для кожного віку.

.2 Види запитів в інформаційній системі

.        Персональні дані дітей вказаної групи;

.        Персональні та контактні дані батьків (родичів) вказаної групи, дитини;

.        Склади груп, загальні та для відвідування певних видів занять; кількість дітей в кожній групі.

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

.        Відомості про проходження співробітниками медичного огляду (перелік співробітників, що не пройшли огляд вчасно або результати огляду не дозволяють їм працювати у дитячому закладі)

.        Медична картка вказаної дитини з для перегляду біометричних даних через певні проміжки часу;

.        Відомості про щеплення, які були зроблені певній дитині;

.        Списки та загальні кількість дітей, яким мають бути зроблені щеплення у найближчий час;

.        Список та загальна кількість дітей, яким не були зроблені вчасно щеплення (з вказанням причини).

.        Повний переляк занять, які відвідувала вказана дитина в певний проміжок часу

.        Розклад занять групи, дитини, викладача

.        Журнал відвідування дітьми закладу; загальна кількість днів, які підлягають оплаті за кожен місяць для кожної дитини.

.        Суми оплат для вказаної дитини, групи, закладу в цілому за певний період

.        Суми оплат працівникам, які ведуть платні заняття, за кожен місяць

2. Опис логіки


2.1 Відомості про структуру програми


Програма складається з серверної частини, додатку для користувача, який працює у ОС Windows. Серверна частина - це Microsoft SQL Server 2014 з встановленою базою даних. Схема бази даних представлена на рисунку 1.

Рисунок 1. Схема бази даних

2.2 Відомості про мову програмування

клієнт написаний на мові С# у середовищі Microsoft Visual Studio 2010 з використанням ADO.NET. Код бази даних написаний за допомогою Microsoft SQL Server Management Studio на мові Transact-SQL.

2.3 Опис серверної частини


Нижче приведено код створення бази даних на мові Transact-SQL. Код складається с декількох частин, спочатку створюються необхідні таблиці та індекси, потім створюються необхідні представлення, функції та процедури. Для забезпечення цілісності базі даних створюються тригери, а для забезпечення безпеки створюються ролі та користувачі.

use masterdb_id ('kinderGart') is not nulldatabase kinderGartdatabase kinderGartkinderGart

/*-------------ДЕТИ И ГРУППЫ-----------------------*/object_id ('deti') is not nulltable detitable deti (idRebenka int identity primary key, familyaRebenka varchar(50), imyaRebenka varchar(50), otchestvoRebenka varchar(50), dataRogdenya date)object_id ('typGruppy') is not nulltable typGruppytable typGruppy (idTypGruppy int identity primary key, nazvanieTypaGruppy varchar(50), vozrastOt int, vozrastDo int)object_id ('obchiyTypGruppy') is not nulltable obchiyTypGruppytable obchiyTypGruppy (idObchiyTypGruppy int identity primary key, nazvanieTypaGruppy varchar(50))object_id ('gruppa') is not nulltable gruppatable gruppa (idGruppy int identity primary key, idTypGruppy int foreign key references typGruppy, nazvanieGruppy varchar(50), idObchiyTypGruppy int foreign key references obchiyTypGruppy)object_id ('rebenokGruppa') is not nulltable rebenokGruppatable rebenokGruppa (idZapisiRebenokGruppa int identity primary key, idGruppy int foreign key references gruppa, int foreign key references deti, dataPostuplenya date, dataUhoda date)

/*-------------РОДСТВЕННИКИ----------------------------------*/object_id ('rodstvenniki') is not nulltable rodstvennikitable rodstvenniki (idRodstvennika int identity primary key, familyaRodstvennika varchar(50), imyaRodstvennika varchar(50), otchestvoRodstvennika varchar(50),varchar(50), adres varchar(50))object_id ('typRodstva') is not nulltable typRodstvatable typRodstva (idTypRodstva int identity primary key, nazvanieRodstvennika varchar(50))object_id ('detiRodstvenniki') is not nulltable detiRodstvennikitable detiRodstvenniki (idDetiRodstvenniki int identity primary key, int foreign key references deti, idRodstvennika int foreign key references rodstvenniki,int foreign key references typRodstva)

/*-------------СОТРУДНИКИ---------------------------------*/object_id ('sotrudniki') is not nulltable sotrudnikitable sotrudniki (idSotrudnika int identity primary key, familyaSotrudnika varchar(50), imyaSotrudnika varchar(50), otchestvoSotrudnika varchar(50),varchar(50), adres varchar(100), userName varchar(max))

/*if object_id ('podrazdelenie') is not nulltable podrazdelenietable podrazdelenie (idPodrazdelenia int identity primary key, nazvaniePodrazdelenia varchar(50))*/object_id ('dolgnosti') is not nulltable dolgnostitable dolgnosti (idDolgnosti int identity primary key, nazvanieDolgnosty varchar (50), /*idPodrazdelenia int foreign key references podrazdelenie(idPodrazdelenia)*/)object_id ('typNaznachenia') is not nulltable typNaznacheniatable typNaznachenia (idTypNaznachenia int identity primary key, nazvanieNaznachenia varchar(50))object_id ('naznachenieNaDolgnost') is not nulltable naznachenieNaDolgnosttable naznachenieNaDolgnost (idZapisiNaznachenia int identity primary key, idSotrudnika int foreign key references sotrudniki, int foreign key references dolgnosti, dataNaznachenia date, dataUvolnenia date, idTypNaznachenia int foreign key references typNaznachenia)

/*-------------МЕДОСМОТР СОТРУДНИКОВ-----------------------------------*/object_id ('zakluchenieOsmotra') is not nulltable zakluchenieOsmotratable zakluchenieOsmotra (idZaklucheniaOsmotra int identity primary key, zakluchenie varchar(50))object_id ('typOsmotra') is not nulltable typOsmotratable typOsmotra (idTypaOsmotra int identity primary key, nazvanieTypaOsmotra varchar(80), period int /*?????? посмотреть, как задать период н.п. год, полгода*/)object_id ('medosmotr') is not nulltable medosmotrtable medosmotr (idMedosmotra int identity primary key, idSotrudnika int foreign key references sotrudniki, int foreign key references typOsmotra,int foreign key references zakluchenieOsmotra, dataMedosmotra date)

go

/*-------------МЕДКАРТОЧКА И ПРИВИВКИ ДЕТЕЙ -------------------------*/

if object_id ('gruppaZdorovya') is not nulltable gruppaZdorovyatable gruppaZdorovya (idGruppaZdorovya int identity primary key, nazvanieGruppy varchar(50))object_id ('medkartochka') is not nulltable medkartochkatable medkartochka (idMedkartohki int identity primary key, idRebenka int foreign key references deti, rost int, ves int, int foreign key references sotrudniki, idGruppaZdorovya int foreign key references gruppaZdorovya,date)object_id ('prichinaNePrivivki') is not nulltable prichinaNePrivivkitable prichinaNePrivivki (idPrichinaNePrivivki int identity primary key, prichina varchar(50) /*отказ, перенос, состо¤ние здоровь¤*/) object_id ('privivki') is not nulltable privivkitable privivki (idPrivivki int identity primary key, nazvaniePrivivki varchar(50), vozrastDlyaPrivivki int)object_id ('zhurnalPrivivki') is not nulltable zhurnalPrivivkitable zhurnalPrivivki (idZhurnalPrivivki int identity primary key, idRebenka int foreign key references deti, int foreign key references privivki, idSotrudnika int foreign key references sotrudniki, date, sdelanaPrivivka bit, idPrichinaNePrivivki int foreign key references prichinaNePrivivki)

/*----------------ЗАНЯТИЯ-------------------------------------------------*/object_id ('typZanyatia') is not nulltable typZanyatiatable typZanyatia (idTypZanyatia int identity primary key, nazvanieTypaZanyatia varchar(50),/*об¤зательное, дополнительное, индивидуальное*/)object_id ('stoimostZanyatia') is not nulltable stoimostZanyatiatable stoimostZanyatia (idStoimostZanyatia int identity primary key, idTypZanyatia int foreign key references typZanyatia, stoimostZanyatia money, stoimostDeistvitelnaS date)object_id ('nazvanieZanyatia') is not nulltable nazvanieZanyatiatable nazvanieZanyatia (idNazvanieZanyatia int identity primary key, nazvanieZanyatia varchar(50))object_id ('zanyatie') is not null ----это расписаниеtable zanyatietable zanyatie (idZanyatie int identity primary key, idNazvanieZanyatia int foreign key references nazvanieZanyatia,int foreign key references typZanyatia, dataZanyatia date, vremyaNachalaZanyatia time, vremyaOkonchaniaZanyatia time)object_id ('zanyatieSotrudnik') is not nulltable zanyatieSotrudniktable zanyatieSotrudnik (idZanyatieSotrudnik int identity primary key, idZanyatie int foreign key references zanyatie, int foreign key references sotrudniki)object_id ('zanyatieRebenok') is not nulltable zanyatieRebenoktable zanyatieRebenok (idZanyatieRebenok int identity primary key, idZanyatie int foreign key references zanyatie, idRebenka int foreign key references deti)object_id ('zanyatieGruppa') is not nulltable zanyatieGruppatable zanyatieGruppa (idZanyatieGruppa int identity primary key, idZanyatie int foreign key references zanyatie,int foreign key references gruppa)object_id ('zurnalZanyatia') is not nulltable zurnalZanyatiatable zurnalZanyatia (idZhurnalZanyatia int identity primary key, idZanyatie int foreign key references zanyatie, idRebenka int foreign key references deti, poseschenie bit)object_id ('zhurnalPoseschenia') is not nulltable zhurnalPosescheniatable zhurnalPoseschenia (idzhurnalPoseschenia int identity primary key, idRebenka int foreign key references deti, dataPoseschenia date, idSotrudnika int foreign key references sotrudniki, poseschenie bit)

---------------------------Задания-----------------------------------------------------------object_id ('reports') is not nulltable reportstable reports (idReports int identity primary key, report varchar(max))masterkinderGart

/*-------------ДЕТИ И ГРУППЫ-----------------------*/

-(idRebenka int identity primary key, familyaRebenka varchar (25), imyaRebenka varchar (25), otchestvoRebenka varchar (25), dataRogdenya date)into deti values('Иванов','Иван','Иванович','2010-01-01')into deti values('Петров','Петр','Петрович','2010-02-02')into deti values('Сидоров','Сидор','Сидорович','2010-03-03')into deti values('Васильев','Василий','Васильевич','2010-04-04')into deti values('Федоров','Федор','Федорович','2014-05-05')into deti values('Игнатова', 'Агафья', 'Павловна','2014-12-12') into deti values('Николаева', 'Зоя', 'Данииловна', '2014-07-15')into deti values('Кононова', 'Анна',' Макаровна', '2014-02-21') into deti values ('Гущин', 'Митрофан', 'Демьянович', '2011-04-14' )into deti values ('Яковлева', 'Жанна', 'Александровна', '2011-10-14' )into deti values('Фокина', 'Анжела', 'Петровна','2011-03-14' )into deti values('Лаврентьев', 'Глеб', 'Константинович', '2011-03-14')into deti values('Туров', 'Никита', 'Владиславович','2012-03-14' )into deti values('Беспалова', 'Анна', 'Павловна','2012-03-14')into deti values('Иванова', 'Евпраксия', 'Викторовна','2012-03-14')into deti values('Евсеев', 'Парфений', 'Владимирович','2012-03-14')into deti values('Зыкова', 'Василиса', 'Николааевна','2013-03-14')into deti values('Фролов', 'Парфений', 'Иванович','2013-03-14')into deti values('Якушев', 'Мартын', 'Георгьевич', '2013-03-14')into deti values('Матвеев', 'Христофор', 'Игоревич','2013-03-14')

-(idTypGruppy int identity primary key, nazvanieTypaGruppy varchar(25), vozrastOt int, vozrastDo int)into typGruppy values ('Младшая','1','2') --1into typGruppy values ('Средняя', '2','3') --2into typGruppy values ('Старшая', '3','4') --3into typGruppy values ('Подготовительная', '5','6')--4

-(idObchiyTypGruppy int identity primary key, nazvanieTypaGruppy varchar(25))into obchiyTypGruppy values ('Общаяя')--1into obchiyTypGruppy values ('Дополнительных занятий')--2

-(idGruppy int identity primary key, idTypGruppy int foreign key references typGruppy, nazvanieGruppy varchar (25), idObchiyTypGruppy int foreign key references obchiyTypGruppy)into gruppa values ('1','Смешарики','1')--1into gruppa values ('1','Цыплята','1') --2into gruppa values ('2','Муравейник','1')--3into gruppa values ('2','Феервейк','1')--4into gruppa values ('3','Радость','1')--5into gruppa values ('3','Островок','1')--6into gruppa values ('4','Классики','1')--7into gruppa values ('4','Вундеркинды','1')--8into gruppa values ('1','младшие','2')--9into gruppa values ('2','средние','2')--10into gruppa values ('3','старшие','2')--11

-(idZapisiRebenokGruppa int identity primary key, idGruppy int foreign key references gruppa, idRebenka int foreign key references deti, dataPostuplenya date, dataUhoda date)into rebenokGruppa values ('8','1','2015-03-05',null)into rebenokGruppa values ('8','2','2015-03-05',null)into rebenokGruppa values ('7','3','2015-03-05',null)into rebenokGruppa values ('7','4','2015-03-05',null)into rebenokGruppa values ('7','5','2015-03-05',null)into rebenokGruppa values ('6','6','2015-03-05',null)into rebenokGruppa values ('6','7','2015-03-05',null)into rebenokGruppa values ('6','8','2015-03-05',null)into rebenokGruppa values ('5','9','2015-03-05',null)into rebenokGruppa values ('5','10','2015-03-05',null)into rebenokGruppa values ('5','11','2015-03-05',null)into rebenokGruppa values ('4','12','2015-03-05',null)into rebenokGruppa values ('4','13','2015-03-05',null)into rebenokGruppa values ('4','14','2015-03-05',null)into rebenokGruppa values ('3','15','2015-03-05',null)into rebenokGruppa values ('3','16','2015-03-05',null)into rebenokGruppa values ('2','17','2015-03-05',null)into rebenokGruppa values ('2','18','2015-03-05',null)into rebenokGruppa values ('1','19','2015-03-05',null)into rebenokGruppa values ('1','20','2015-03-05',null)into rebenokGruppa values ('10','2','2015-03-05',null)into rebenokGruppa values ('10','1','2015-03-05',null)into rebenokGruppa values ('10','3','2015-03-05',null)

/*-------------РОДСТВЕННИКИ----------------------------------*/

-(idRodstvennika int identity primary key, familyaRodstvennika varchar (25), imyaRodstvennika varchar (25), otchestvoRodstvennika varchar (25),telefon varchar(25), adres varchar(25))into rodstvenniki values ('Игнатов', 'Павел', 'Иванович','222-22-22','Запорожье')into rodstvenniki values ('Игнатова', 'Ирина' ,'Павловна','222-22-22', 'Запорожье')into rodstvenniki values ('Николаев', 'Даниил', 'Петрович','222-22-22','Запорожье')into rodstvenniki values ('Николаева', 'Виктория' ,'Данииловна','222-22-22','Запорожье' )into rodstvenniki values ('Кононов', 'Макар', 'Игоревич','222-22-22','Запорожье')into rodstvenniki values ('Кононова', 'Алиса' ,'Макаровна','222-22-22','Запорожье' )into rodstvenniki values ('Гущин' ,'Демьян', 'Иванович','222-22-22','Запорожье' )into rodstvenniki values ('Гущина', 'Ия' ,'Юрьевна','222-22-22','Запорожье')into rodstvenniki values ('Яковлев' ,'Александр' ,'Павлович','222-22-22','Запорожье')into rodstvenniki values ('Яковлева', 'Карина', 'Александровна','222-22-22','Запорожье')into rodstvenniki values ('Фокин' ,'Пётр' ,'Петрович','222-22-22','Запорожье')into rodstvenniki values ('Фокина' ,'Вита', 'Петровна','222-22-22','Запорожье')into rodstvenniki values ('Лаврентьев' ,'Констаантин' ,'Эдуардович','222-22-22','Запорожье')into rodstvenniki values ('Лаврентьева' ,'Галина' ,'Константиновна','222-22-22','Запорожье')into rodstvenniki values ('Туров', 'Владислав' ,'Константинович','222-22-22','Запорожье' )into rodstvenniki values ('Турова' ,'Нина' , 'Владиславовна','222-22-22','Запорожье')into rodstvenniki values ('Беспалов', 'Павел' ,'Петрович','222-22-22','Запорожье')into rodstvenniki values ('Беспалова', 'Оксана','Павловна','222-22-22','Запорожье')into rodstvenniki values ('Иванов' ,'Виктор' ,'Иванович','222-22-22','Запорожье' )into rodstvenniki values ('Иванова', 'Наталья' , 'Викторовна','222-22-22','Запорожье' )into rodstvenniki values ('Евсеев' ,'Владимир', 'Александрович','222-22-22','Запорожье')into rodstvenniki values ('Евсеева' ,'Ирина','Анатольевна','222-22-22','Запорожье')into rodstvenniki values ('Зыков' ,'Николай' ,'Васильевич','222-22-22','Запорожье')into rodstvenniki values ('Зыкова' ,'Авдотья', 'Николаевна','222-22-22','Запорожье')into rodstvenniki values ('Фролов', 'Иван' ,'Денисович','222-22-22','Запорожье')into rodstvenniki values ('Фролова', 'Ирина', 'Николаевна','222-22-22','Запорожье')into rodstvenniki values ('Якушев', 'Георгий', 'Альбертович','222-22-22','Запорожье')into rodstvenniki values ('Якушева', 'Марина' , 'Петровна','222-22-22','Запорожье')into rodstvenniki values ('Матвеев' ,'Игорь', 'Ростиславович','222-22-22','Запорожье' )into rodstvenniki values ('Матвеева','Анна', 'Александровна','222-22-22','Запорожье' )into rodstvenniki values ('Доронина' ,'Юлия' ,'Владимировна','222-22-22','Запорожье')into rodstvenniki values ('Константинова', 'Синклитикия', 'Владимировна','222-22-22','Запорожье')into rodstvenniki values ('Большакова' ,'Октябрина' ,'Кимовна','222-22-22','Запорожье')into rodstvenniki values ('Молчанова' ,'Эмилия' ,'Ильяовна','222-22-22','Запорожье')into rodstvenniki values ('Елисеева' ,'Наталья' ,'Алексеевна','222-22-22','Запорожье')into rodstvenniki values ('Баранов' ,'Мэлс' ,'Владиславович','222-22-22','Запорожье' )into rodstvenniki values ('Ефремов', 'Николай', 'Фролович','222-22-22','Запорожье' )into rodstvenniki values ('Миронов', 'Георгий', 'Максимович','222-22-22','Запорожье' )into rodstvenniki values ('Соловьёв', 'Максим' ,'Владиславович','222-22-22','Запорожье' )into rodstvenniki values ('Мамонтов' ,'Лукьян', 'Антонинович','222-22-22','Запорожье' )

Источник: https://www.bibliofond.ru/detail.aspx?id=872168