77
Содержание Введение................................................2 1 Перспективы развития интерактивного справочника......3 1.1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ..............................3 1.2 ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА СОЗДАНИЯ ИНТЕРАКТИВНОГО СПРАВОЧНИКА.6 1.3 ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ WEB-ПРИЛОЖЕНИЙ........6 2. Информация о базах данных...........................9 2.1 ОБЩИЕ СВЕДЕНИЯ О БАЗАХ ДАННЫХ..........................9 2.2 ПОСОБИЕ ПО РАБОТЕ С БАЗОЙ ДАННЫХ DL.GSU.BY..............11 2.3 СОДЕРЖАНИЕ БАЗЫ ДАННЫХ DL.GSU.BY.......................13 3 Подробное описание таблиц и полей базы данных dl.gsu.by .......................................................15 3.1 ТАБЛИЦЫ ИНФОРМАЦИИ О ПОЛЬЗОВАТЕЛЯХ......................15 3.2 ТАБЛИЦЫ ИНФОРМАЦИИ О КУРСАХ...........................21 3.3 ТАБЛИЦЫ СПРАВОЧНИКИ.................................. 27 3.4 ТАБЛИЦЫ СВЯЗАННЫЕ С ТЕСТИРОВАНИЕМ......................30 3.5 ТАБЛИЦЫ, СОДЕРЖАЩИЕ СТАТИСТИКУ РЕЗУЛЬТАТОВ ТЕСТИРОВАНИЯ....34 3.7 ТАБЛИЦЫ ДЛЯ ПРОТОКОЛИРОВАНИЯ СОБЫТИЙ....................38 3.8 ОСТАЛЬНЫЕ ТАБЛИЦЫ....................................39 4. Разработка интерактивного справочника...............43 4.1 РАБОТА С БАЗАМИ ДАННЫХ DL.GSU.BY.......................43 4.2 СОЗДАНИЕ ПРОЦЕДУР ДЛЯ РАБОТЫ С ТАБИЛЦАМИ БАЗЫ ДАННЫХ......45 4.3 ВЫБОР И ОБОСНОВАНИЕ СПОСОБА СОЗДАНИЯ СПРАВОЧНИКА..........47 4.4 СТРУКТУРА ИНТЕРАКТИВНОГО СПРАВОЧНИКА....................47 5 Взаимодействия пользователя со справочником..........49 Заключение.............................................51

dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Содержание

Введение.......................................................................................................................2

1 Перспективы развития интерактивного справочника..........................................3

1.1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ.........................................................................31.2 ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА СОЗДАНИЯ ИНТЕРАКТИВНОГО СПРАВОЧНИКА

....................................................................................................................................61.3 ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ WEB-ПРИЛОЖЕНИЙ.................6

2. Информация о базах данных.................................................................................9

2.1 ОБЩИЕ СВЕДЕНИЯ О БАЗАХ ДАННЫХ..................................................................92.2 ПОСОБИЕ ПО РАБОТЕ С БАЗОЙ ДАННЫХ DL.GSU.BY..........................................112.3 СОДЕРЖАНИЕ БАЗЫ ДАННЫХ DL.GSU.BY..........................................................13

3 Подробное описание таблиц и полей базы данных dl.gsu.by.............................15

3.1 ТАБЛИЦЫ ИНФОРМАЦИИ О ПОЛЬЗОВАТЕЛЯХ....................................................153.2 ТАБЛИЦЫ ИНФОРМАЦИИ О КУРСАХ..................................................................213.3 ТАБЛИЦЫ СПРАВОЧНИКИ...................................................................................273.4 ТАБЛИЦЫ СВЯЗАННЫЕ С ТЕСТИРОВАНИЕМ.......................................................303.5 ТАБЛИЦЫ, СОДЕРЖАЩИЕ СТАТИСТИКУ РЕЗУЛЬТАТОВ ТЕСТИРОВАНИЯ..........343.7 ТАБЛИЦЫ ДЛЯ ПРОТОКОЛИРОВАНИЯ СОБЫТИЙ................................................383.8 ОСТАЛЬНЫЕ ТАБЛИЦЫ.......................................................................................39

4. Разработка интерактивного справочника............................................................43

4.1 РАБОТА С БАЗАМИ ДАННЫХ DL.GSU.BY............................................................434.2 СОЗДАНИЕ ПРОЦЕДУР ДЛЯ РАБОТЫ С ТАБИЛЦАМИ БАЗЫ ДАННЫХ..................454.3 ВЫБОР И ОБОСНОВАНИЕ СПОСОБА СОЗДАНИЯ СПРАВОЧНИКА........................474.4 СТРУКТУРА ИНТЕРАКТИВНОГО СПРАВОЧНИКА.................................................47

5 Взаимодействия пользователя со справочником................................................49

Заключение.................................................................................................................51

Список использованных источников.......................................................................52

Приложение A............................................................................................................53

Приложение B............................................................................................................55

Page 2: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Введение

Distance Learning Belarus (DLB) – проект дистанционного обучения в режиме реального времени, использующий возможности интернет-технологий. Был создан в 1999 году. Взаимодействие пользователя с системой DLB может осуществляться при помощи почты или через интернет. В первом случае пользователь должен писать письма почтовому роботу ([email protected]) используя определенный набор команд. Второй случай - использование web-сайта (http :// dl . gsu . by ).

При разработке системы DLB использовались следующие технологии и языки: Structured Query Language (SQL), Active Server Pages (ASP), JavaServer Pages (JSP) и Java, Internet Information Server Application Programming Interface (ISAPI), JavaScript, HTML, CSS, протоколы SMTP, POP3 (позволяют работать с почтовым сервером).

Distance Learning Belarus – это огромный проект, над которым работает ни один человек. Для функционирования данного типа проектов необходимы организация слаженной работы разработчиков и корректно налаженный обмен информации между ними. Для этого были созданы такие ресурсы как http :// confluence . newit . gsu . by , http :// jira . newit . gsu . by .

На сайте http://confluence.newit.gsu.by находится вся существующая документация по содержанию таблиц и процедур базы данных сайта DL.GSU.BY.

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

В данном дипломном проекте ставится задача разработки интерактивного справочника по базе данных сайта DL.GSU.BY.

Для его разработки собрана и проанализирована информация по данной теме, на основе которой создан справочник по этапам:

Сбор информации, описание таблиц и полей, внесение данных в справочник . Находится нужная база банных, в которой описываются все поля, таблицы и хранимые процедуры которые необходимо внести в справочник, а так же формируется полный список всех существующих таблиц и процедур базы данных сайта DL.GSU.BY. Задачи:

2

Page 3: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

− обновить данные таблиц и функций базы данных DL.GSU.BY;− реализовать скрипты по добавлению описания таблиц и полей;− создан интерактивный справочник со всей актуальной информацией;− написать отчет о проделанной работе.

1 Перспективы развития интерактивного справочника

1.1 Анализ предметной области

Понятие информации и роль компьютерных и Интернет-технологий в современном мире

Термин «информация» происходит от латинского слова «information», что в переводе означает свéдение, разъяснение, ознакомление. Информация - это сведения, которые человек получает при взаимодействии с природой и обществом с помощью своих органов чувств. В широком смысле информация - это обмен сведениями между человеком и окружающим миром.

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

За последние полвека цифровая ЭВМ превратилась из уникального и дорогостоящего аппарата в небольшую по размерам машину - персональный компьютер - состоящий из миллионов крошечных полупроводниковых приборов.

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

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

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

3

Page 4: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

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

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

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

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

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

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

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

4

Page 5: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

пользователь. Эта программа позволяет вместить большой объем информации, что является главным преимуществом электронного справочника перед бумажным. Ведь использовать многотомные бумажные издания не всегда удобно. Так же у интерактивных справочников имеется ряд преимуществ: поиск, с помощью которого можно быстро найти нужную информацию; наличие гиперссылок, позволяющих получить разъяснение терминов, содержащихся в тексте, чтобы получить развернутую информацию по определенной теме; получение регулярно обновляющейся информации.

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

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

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

Актуальность использования интерактивного справочникаСправочная информация бывает нужна каждый день. Интернет быстро

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

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

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

5

Page 6: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

1.2 Инструментальные средства создания интерактивного справочника

Обзор популярных браузеровБраузер - программное обеспечение для просмотра Web-сайтов, их

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

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

Практически все популярные браузеры распространяются бесплатно или «в комплекте» с другими приложениями: Internet Explorer - совместно с Microsoft Windows; Mozilla Firefox - бесплатно, совместно с многими дистрибутивами Linux; Safari - совместно с Mac OS X и бесплатно для Microsoft Windows; Google Chrome - бесплатно; Opera - бесплатно начиная с версии 8.50.Internet ExplorerExplorer (IE) является наиболее широко используемым Web-браузером, начиная с 1999 года. Доля использования в 2002 - 2003 годах - %. Однако, в последнее время его доля стремительно снижается, уступая место таким браузерам, как Mozilla Firefox, Google Chrome, Safari, Opera и др.

1.3 Языки программирования для разработки Web-приложений

Семантические элементы HTML5 доступно описывают свой смысл и назначение, как для браузеров, так и для веб-разработчиков. До появления стандарта HTML5 вся разметка страниц осуществлялась преимущественно с помощью элементов <div>, которым присваивали классы class или идентификаторы id для наглядности разметки (например, <div id="header">). С их помощью в HTML-документе

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

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

6

Page 7: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

миллионам людей. Профессиональные программисты иногда применяют в своей работе

более десятка разнообразных языков программирования.Язык разметки гипертекста (Hypertext Markup Language). Это компьютерный язык, лежащий в основе World Wide Web (Всемирной

Паутины). Благодаря языку HTML любой текст можно разметить, преобразовав его в гипертекст с последующей публикацией в World Wide Web.

Язык HTML имеет собственный набор символов, с помощью которых Web-браузеры отображают страницу. Эти символы, называемые дескрипторами, включают в себя элементы, необходимые для создания гиперссылок.

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

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

создания скриптов, работающих на стороне сервера. PHP способен решать те же задачи, такие как: обработка данных HTML-форм, динамическое генерирование HTML-страницы и тому подобное.

создания скриптов, выполняющихся в командной строке. То есть с помощью PHP можно создавать такие скрипты, которые будут исполняться, вне зависимости от web-сервера и браузера, на конкретной машине.

создания GUI-приложений, выполняющихся на стороне клиента.GUI-приложения (Graphical user interface) - разновидность

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

Интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» и многими другими возможностями.

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

Язык программирования JavaScript разработан фирмой Netscape для создания интерактивных HTML-документов. Это объектно-ориентированный язык разработки встраиваемых приложений, выполняющихся как на стороне клиента, так и на стороне сервера. Основные области применения JavaScript делятся на следующие категории:

динамическое создание документа с помощью сценария;оперативная проверка достоверности заполняемых пользователем полей

7

Page 8: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

форм HTML до передачи их на сервер;создание динамических HTML-страниц совместно с каскадными

таблицами стилей и объектной моделью документа;взаимодействие с пользователем при решении "локальных" задач,

решаемых приложением JavaScript, встроенном в HTML-страницу.Наиболее широко Perl используется для разработки инструментов

системного администрирования, однако в последнее время он получил огромную популярность в области разработки Интернет-приложений: CGI-сценариев, систем автоматической обработки электронной почты и поддержки узлов Web.

Вот некоторые примеры задач, которые можно решать с помощью Perl:проверка пользователей Windows NT на несоответствие их статуса и

возможностей;управление NT-сервисами из командной строки и дистанционно с

локальной машины получение статистических данных на отдельной машине;может работать и с протоколом FTP;системная поддержка UNIX и Windows.размещали контейнеры, боковые панели, навигационное меню и многое

другое.

8

Page 9: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

2. Информация о базах данных

2.1 Общие сведения о базах данных

База данных - набор сведений, хранящихся некоторым упорядоченным способом. Можно сравнить базу данных со шкафом, в котором хранятся документы. Иными словами, база данных - это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД).

Система управления базами данных - это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д. В общем СУБД - это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка - SQL.

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

Рисунок 1 – Схема работы с базой данных

По характеру использования СУБД делят на однопользовательские (предназначенные для создания и использования БД на персональном компьютере) и многопользовательские (предназначенные для работы с единой БД нескольких компьютеров, объединенных в локальные сети).

9

Page 10: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 2 – Деление по характеру использования БД

На сегодняшний день число используемых СУБД исчисляется десятками. Наиболее известные однопользовательские СУБД - Microsoft Visual FoxPro и Access, многопользовательские - MS SQL Server, Oracle и MySQL.

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

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

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

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

10

Page 11: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

тогда он называется составным.Внешние ключи. Внешний ключ — это столбец, значения которого

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

2.2 Пособие по работе с базой данных DL.GSU.BY

Для редактирования базы можно использовать Enterprise Manager, Query Analyzer или проект MS Access. 

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

В разделе "Полезная литература" доступна документация по SQL .Много полезной информации можно узнать также, нажав F1 и введя

интересующие слова в Query Analyzer. 

Описания полей. Очень удобным средством само документирования базы данных служат описания полей таблиц БД. Их правильное использования позволяет любому разработчику быстро узнать назначение интересующего его поля. Смотреть описания полей позволяют Enterprise Manager и MS Access в режиме конструктора таблиц.

Программно редактировать описания можно с помощью хранимых процедур sp_addextendedproperty и sp_updateextendedproperty. 

Например, следующий вызов создаст описание для поля AutoRestartable таблицы Checkers. 

exec sp_addextendedproperty \-\- сохраняем описание для поля&nbsp; &nbsp; 'MS_Description', 'подлежит ли Дельта автоперезапуску',&nbsp;&nbsp; &nbsp; 'user', 'dbo', 'table', 'Checkers', 'column', 'AutoRestartable'

Null. По умолчанию в SQL любая операция сравнения с null (в т.ч. с переменной равной null) дает ложь. Поэтому можно получить довольно неожиданные результаты простенького запроса 

select t1.* from t1 inner join t2 on t1.name=t2.name

В результат такого запроса не попадут записи с совпадающими, но равными null полями.

С этой особенностью при необходимости можно бороться, вводя дополнительные проверки на null. Или можно использовать оператор SET ANSI_NULLS OFF, пример: 

SET ANSI_NULLS ON \-\- этот режим включен по умолчанию11

Page 12: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

select case when null=null then 1 else 0 end \-\- 0select case when 'null'<>null then 1 else 0 end \-\- 0SET ANSI_NULLS OFFselect case when null=null then 1 else 0 end \-\- 1select case when 'null'<>null then 1 else 0 end \-\- 1

Внимание: оператор SET ANSI_NULLS OFF игнорируется внутри хранимых процедур и триггеров. При их работе используется то состояние опции ANSI_NULLS, которое было установлено момент создания хранимой процедуры или триггера.

Следующий пример иллюстрирует правильное использование: 

SET ANSI_NULLS OFFgocreate procedure sp_test_nullsas select case when 'null'<>null then 1 else 0 end -- 1goexec sp_test_nullsdrop procedure sp_test_nullsGO

Вот еще один пример, объяснение работы которого остается на совести MS SQL Server: 

CREATE TABLE t1 (a int null)INSERT INTO t1 values (NULL)INSERT INTO t1 values (0)INSERT INTO t1 values (1)

SET ANSI_NULLS OFF SELECT t1.a, t2.a, case when t1.a=t2.a then 1 else 0 end&nbsp;FROM t1 as t1 left join t1 as t2 on t1.a=t2.aDROP TABLE t1GO

Collations (порядок сортировки строк). Трудно переводимое слово Collation означает порядок сортировки строковых данных. 

MS SQL Server с помощью оператора COLLATE позволяет задавать этот порядок на уровне базы данных, отдельных таблиц и отдельных выражений. Причем для dldb по умолчанию принят порядок, не различающий регистр символов. С другой стороны, часто бывает необходимо при обработке различать регистр.

Изменить это поведение на уровне БД или отдельных таблиц проблематично из-за сложившихся зависимостей. Остается только выкручиваться путем применения оператора collate Cyrillic_General_CS_AI к каждой операции сравнения, пример: 

use dldb\--alter database dldb collate Cyrillic_General_CS_AI \-\- не пройдет

12

Page 13: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

select DATABASEPROPERTYEX('dldb', 'Collation') \-\- выдаст Cyrillic_General_CI_ASselect case when 'тест'='ТесТ' then 1 else 0 end \-\- 1select case when 'тест'='ТесТ' collate Cyrillic_General_CS_AI then 1 else 0 end \-\- 0\--SELECT * FROM ::fn_helpcollations() where name like '%cyr%' \-\- можно посмотреть возможные варианты

Расшифровка: CS/CI - регистро-зависимость/независимость, AS/AI - зависимость от знаков ударения (для русского языка не актуально).

2.3 Содержание базы данных DL.GSU.BY

В таблицах и хранимых процедурах приняты следующие обозначения и сокращения:CourseID, CrsID, CID

идентификатор курса

UserID, UsrID, UID

идентификатор пользователя

NodeID, NID идентификатор узла задачи

TaskID, TID идентификатор задачи

QueueID идентификатор решения в очереди

LangID идентификатор языка пользователя (1 - русский, 2 --английский)

TLID идентификатор записи в протоколе тестирования

DBSID идентификатор записи в протоколе тестирования по шагам (Detail By Steps ID)

DBTID идентификатор записи в протоколе тестирования по тестам (Detail By Tests ID)

Префикс "E" строка на английском (например EName)

Описание таблиц и представлений13

Page 14: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

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

Описание хранимых процедур и функций :

Общего назначения Работа с деревьями Работа с группами Тестирование Работа с таблицами результатов (новые таблицы, на Java) Работа с таблицами результатов (старые таблицы, на ASP)

3 Подробное описание таблиц и полей базы данных DL.GSU.BY

3.1 Таблицы информации о пользователях

14

Page 15: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.1.1 – Информация о пользователях (Pupils)

Атрибут Тип Описание

ID Int Уникальный идентификатор пользователя

Last, ELast Varchar(50) Фамилия

First, EFirst Varchar(50) Имя

Middle, EMiddle

Varchar(50) Отчество

Country Int Идентификатор страны пользователя из справочника стран

City Int Город

Region Int Область

SubRegion Int Район

School Varchar(50) Место учебы

Form Int Класс

Address Varchar(255) Адрес

Birth Datetime Дата рождения

Password Varchar(50) Пароль для входа в систему DL

Email Varchar(50) Электронный адрес почты

Phone Varchar(50) Телефон

Joined Datetime Дата/время регистрации

Question Varchar(50) «Секретный» вопрос, используется если пользователь забыл пароль

Answer Varchar(50) «Секретный» ответ

Subscribed Bit Подписан ли пользователь на список рассылки

PublicInfo Bit Публиковать личную информацию на сайте

PublicScores Bit Публиковать результаты успеваемости

AdditionalInfo Text Дополнительная информация

15

Page 16: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Teacher Varchar(80) Учитель

Nick Char (10) Альтернатива для входа на сервер (не используется)

GroupMaskId Int Идентификатор маски группы

GroupId Вычислимое поле: [dbo].[fn_getGroupId]([form], [GroupMaskId])

Идентификатор группы

Groupname Вычислимое поле: [dbo].[fn_replaceGroupMask]([form], [groupmaskid], 0)

Имя группы на русском языке

Таблица 3.1.2 – Информация о командах (Teams)

Название поля Тип Назначение

ID INT Код команды

Name, EName Varchar (255)

Название команды

TFirst, ETFirst Varchar (255)

Имя капитана

TMiddle, ETMiddle Varchar (255)

Отчество капитана

TLast, ETLast Varchar (255)

Фамилия капитана

TOrg Varchar (255)

Название организации

TTitle Varchar (255)

Должность

Phone Varchar (255)

Телефон для связи

Email Varchar (255)

Электронный адрес

Representing, ERepresenting

Varchar (255)

Контактное лицо?

AdditionalInfo Varchar (255)

Дополнительная информация

Password Varchar (255)

Пароль

16

Page 17: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

City int Код города

Country int Страна

Address Varchar (255)

Адрес

Question Varchar (255)

«Секретный» вопрос

Answer Varchar (255)

Ответ на секретный вопрос

Joined Datetime Дата добавления команды

Subscribed bit Подписан ли пользователь

PublicInfo bit Публиковать личные данные или нет

PublicScores bit Публиковать результаты соревнований

Region int Область

Subregion int Район области

Nick Char(10) Кодовое имя

SchoolID int Код Школы

SchoolNo int Номер школы

SchoolKind int Тип школы

SendPasswordOnEmail bit Высылать пароль на электронный адрес или нет

Таблица 3.1.3 – Информация о соответствии учеников и команд (PupilsTeams)

Название поля

Тип Назначение

PupilID INT Код пользователя

TeamID INT Код команды

Таблица 3.1.4 – Связь между пользователями и курсами (UsersCourses)

Название поля Тип Назначение

17

Page 18: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

UserID int Код участника

CourseID int Код соревнования (курса)

Rating int Рейтинг

PublicScores int Публиковать результаты по данному соревнования или нет

TheoryLevel int Теоретический уровень

TaskLoLevel int Просто уровень задачи

TaskHiLevel int Сложный уровень задачи

RatingUpdateTime

datetime Время обновления рейтинга

LogViewedID int Код просматриваемого лога

Subscribed datetime Дата создания записи

TasksViewType int Тип вида задач

Language int Компилятор по умолчанию

TheoryViewType int Тип вида теории

ShowRules bit Показать правила

Таблица UsersCourses хранит информацию о том, на какие соревнования «подписан» участник или команда.

Таблица 3.1.5 – Связь между пользователями и курсами (Editors)

Название поля

Тип Назначение

UserID int ID участника, который есть редактор курса (из таблицы Pupils)

CourseID int ID курса, у котрого участник будет редактором (из таблицы Courses)

Owner bit Флаг, признак, является ли редактор владельцем курса

Tutor bit Флаг, признак, является ли редактор владельцем курса

18

Page 19: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица Editors хранит информацию о редакторах курсов. Курсу может соответствовать более 1 редактора.

Таблица 3.1.6 – Привилегии пользователей (UsersPriveleges)

Название поля Тип Назначение

UserID int ID участника, которому дали прав больше обычного (из таблицы Pupils)

CanCreateGroup bit Флаг - может ли пользователь создавать группы

CanCreateCourse

bit Флаг - может пользователь создавать курсы

CanCreateSchool bit Флаг - может ли пользователь вносить записи в справочник школ

isAdmin bit Пользователь - администратор

isDeveloper bit Пользователь - разработчик

isOLAdmin bit Пользователь может редактировать сайт Олимп

В таблице UsersPriveleges хранится информация о правах и возможностях предоставленных пользователю.

Таблица 3.1.7 – Информация по общим группам объектов (Groups)

Атрибут Тип Описание

Id Int Идентификатор группы

type Int Тип группы

Name Varchar(255) Название группы на рус языке

Ename Varchar(255) Название группы на анг языке

PublicGroup bit Публиковать группу или нет

OwnerUserID Int Код командира редактора курса

OwnerSchoolID Int Код командира школы

year varchar(5) Текущий учебный год

isArchive bit Бит информации, архивная ли группа

GroupNamesID Int Код названия группы

19

Page 20: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.1.8 – Информация по группам (GroupNames)

Атрибут Тип Описание

Id Int Идентификатор группы

SchoolTypeId Int Идентификатор типа школы

GroupMaskId Int Идентификатор маски

FormId Int Идентификатор из таблицы Forms

SchoolId Int Идентификатор школы

isArchive Int Бит информации, архивная ли группа

Year Varchar(255) Текущий учебный год

PupilsCount Int Количество пользователей в группе

Name Varchar(255) Название группы на русском языке

EName Varchar(255) Название группы на английском языке

Таблица 3.1.9 – Информация по маскам групп (GroupMaskNames)

Атрибут Тип Описание

Id Int Идентификатор маски

Mask Varchar(50) Имя маски на русском языке

eMask Varchar(50) Имя маски на английском языке

Таблица 3.1.10 – Связь между группами и объектами (ObjectsGroups)

Атрибут

Тип Описание

ObjectID Int Код объекта группы

GroupID Int Код группы

Num Int Номер объекта

Таблица 3.1.11 – Атрибуты пользователей для групп-фильтров (GroupConditions)

Атрибут Тип Описание

GroupID Int Код группы

Condition varchar(255)

Условие участия группы

20

Page 21: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.1.12 – История изменения атрибутов пользователя (UsersHistory)

Название поля Тип Назначение

ID Int ID участника или команды

Date datetime Дата, на которую было внесено изменение

Name, EName Varchar(50) Имя и фамилия

Middle, EMiddle Varchar(50) Отчество

Form Int Код класса

Country Int Код страны

City Int Код города

School, ESchool Varchar(50) Школа

Teacher, ETeacher Varchar(50) Учитель

Region Int Область

SubRegion Int Район

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

3.2 Таблицы информации о курсах

Таблица 3.2.1 – Информация о курсах (Courses)

Атрибут Тип Описание

ID Int Уникальный идентификатор курса

Name, EName Varchar(100) Название курса

Active Bit Активен ли курс (скрывает курс для всех см. поле Hidden)

Type Smallint Тип курса (1 - учебный, 2 - личное соревнование или 3 - командное соревнование)

Accept Smallint Доступен 1 - инд. Пользователям, 2 -

21

Page 22: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

командам или 3 - и тем и другим

DesktopURL Varchar(80) Альтернативная начальная страница курса (не используется)

TimeBegin Datetime Время начала курса

TimeEnd Datetime Время закрытия курса

Description, Edescription

Text Описание курса

BriefDesc, EBriefDesc

Varchar(8000) Краткое описание курса

TasksRoot Int Идентификатор узла дерева задач, который является корневым для данного курса

TheoryRoot Int Аналогично для теории

DefaultTaskHiLevel Int «Верхний» уровень доступа к дереву задач, устанавливаемый по умолчанию

DefaultTaskLoLevel Int «Нижний» уровень доступа к дереву задач, устанавливаемый по умолчанию

DefaultTheoryLevel Int Уровень доступа к дереву теории, устанавливаемый по умолчанию

ResultsType Int Способ отображения результатов (таблица, список таблиц, таблица таблиц) (не используется)

ResultsID Int Идентификатор таблицы таблиц (не используется)

ProcessedLogID Int Последняя обработанная при построении таблиц результатов запись протокола (не используется)

RealtimeResult Bit Показывать текущие результаты во время соревнования

MaxAttempts Int Максимальное количество попыток сдачи одной и той же задачи

Hidden Bit Курс скрыт для не-редакторов

TableType smallint Тип таблицы 1, 2, 3 - старые типы таблиц 5 - таблица на java

ParentID Int Курс - родитель (организация дерева)

22

Page 23: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Num Int Порядок сортировки  (организация дерева)

TasksViewType int Способ предоставления теории

CanGetSolution bit Пользователь может брать свое решение обратно

CanNotHideResults bit Пользователь не может скрыть свои результаты из таблицы результатов

IsPermanent bit Курс должен отображатся и как обычный и как архивный курс

CheckerID int ID чекера (Дельты), которым будут проверяться задачи. Если null или 0, берется любой

CanShowAnswers bit Пользователь может подсмотреть правильные ответы на интерактивные задачи

Language int Компилятор по умолчанию

BLog bit Если 1, то дополнительный протокол будет показываться

CanDeleteTSolution bit Может ли пользователь удалять из очереди свои уже тестирующиеся решения

ShowTaskCfg bit Показывать в условиях задач информацию из task.cfg

CanGetMathTest bit Пользователь может взять математичесткий тест (тот где его решение неверно)

CanGetStrangerLog smallint Пользователь может взять чужой тест

LoginUser varchar(20) Имя пользователя

Control bit Проверка

ForumID int Код индикатора форума

AwardType int Тип решения

AutoLoadTask bit Автоматическая загрузка вопроса

HideNonCompetitionTasks

bit Скрыть не конкурсные задачи

CanGetOnlyOddTest int Только случайные тесты

23

Page 24: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

s

WasCopiedFromCourseID

int Был скопирован индикатор курса

HrefStatForDay varchar(1024) Статистика за день

SrcTasksRoot int Задачи root

ForbidToEndCompetition

bit Запрет на окончание курса

CanGetLastTest int Можно получить последний тест

ShowNumberAcceptedSolutions

bit Показать выбранные решения

ShowTruancy bit Показывать прогулы

UrlToFirstTruancyForumMessage

varchar(255) Сообщение о первом кто прошёл курс

Таблица 3.2.2 – Дерево задач (TaskTrees)

Атрибут Тип Назначение

ID int Уникальный идентификатор узла

Deep int Вложенность узла

Num int Номер узла в порядке обхода

Title varchar(100) Название задачи на рус

ETitle varchar(100) Название задачи на анг

TaskID int Код задачи

CostFactor

float Фактор затрат задачи

Attribute smallint Свойство задачи

ParentID int Исходный код задачи

Таблица 3.2.3 – Информация по типам задач (TaskTypes)

Атрибут Тип Назначение

ID int Уникальный идентификатор типа задачи

Name varchar(50) Имя типа задачи

MaxChekingTime

int Максимальное время проверки задачи

24

Page 25: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Automatic bit Подлежит ли данный тип автоматическому тестированию

Checker varchar(200) Определить тип в шахматном порядке

Таблица 3.2.4 – Информация по задачам (Tasks)

Атрибут Тип Назначение

ID int Уникальный идентификатор задачи

Name varchar(100) Название задачи на рус

Ename varchar(100) Название задачи на анг

Author varchar(150) Автор задачи

TipeID smallint Код типа задачи

Date datetime Дата создания задачи

Source varchar(50) Исходная задача

Cost int Ценна в баллах за задачу

Description text Описание задачи на рус

Edescription text Описание задачи на анг

NoTests bit Тестировалась ли задача

NoShowInOutFile bit Не показывать входной и выходной файлы

TopicID int Код названия задачи

AuthorID int Код автора задачи

NumberAcceptedSolutions

int Число принятых решений задачи

Таблица 3.2.5 – Даты открытия и закрытия задач (TasksHiLoDate)

Атрибут Тип Назначение

CourseID int Код курса

NodeID int Код узла

HiLevelDate datetime Максимальное врема открытия/закрытия задачи

LoLevelDate

datetime Минимальное врема открытия/закрытия задачи

25

Page 26: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.2.6 – Допустимые типы решений для каждого типа задач (TaskSubTypes)

Название поля

Тип Назначение

ID Int Уникальный идентификатор типа решения

Name varchar(50) Название типа решения

TaskType Int Тип решения задачи

Additional varchar(50) Дополнительный тип

Таблица 3.2.7 – Допустимые типы решений для курса (CoursesSubTypes)

Название поля

Тип Назначение

CourseID Int Код курса

SubTypeID Int Типа решения

В таблице (Theory) храниться информация про всю теорию

Таблица 3.2.8 – Информация по теории (Theory)

Название поля

Тип Назначение

ID Int Уникальный идентификатор

Name varchar(200) Название теории

eName varchar(200) Название теории на ангийском языке(в настоящий момент не ипользуется)

Link Int Ссылка на другой идентификатор

Add varchar(50) Добавка к ссылке(используется если Link<>0)

Что такое ссылка на другой идентификатор

В некоторых случаях возникает следующая проблема: файл с теорией один, а ссылок на файл несколько (отличаются они только добавкой #[число]).

В таких случаях уникальных идентификаторов под этот файл будет выделено несколько, а сам файл будет перенесен только в один из каталогов ID.th(ID - это один из выделенных идентификаторов). Для остальных идентификаторов в таблице будет храниться ссылка на ID (т.е. Link=ID), а в поле Add будет храниться, что именно необходимо добавить к ссылке на файл при обращении к нему. Например, есть две ссылки: index.htm и index.htm#1. Запись в таблице для этих файлов может выглядеть так:

26

Page 27: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

ID

Name EName Link

Add

1 Теория 1 NULL 0 NULL

2 Теория 2 NULL 1 #1

В таблице (TheoryTrees) храниться дерево всей теории

Таблица 3.2.9 – Информация о дереве теории (TheoryTrees)

Название поля

Тип Назначение

ID Int Уникальный идентификатор

Deep Int Глубина в дереве

Num Int Порыдковый номер в дереве

Title Varchar(100) Название узла (если TheoryID<>0, то к названию прибавляется название теории)

eTitle Varchar(100)

TheoryID Int Идентификатор теории(0 - если это просто узел дерева, а не ссылка на теорию)

Link Varchar(100) Не используется

В этой таблице специально создан узел с Deep=-1 и Num?2000000000. Это самый последний узел в дереве. Значение Num не должно стать меньше 2*109

Для каждого курса в таблице Courses храниться корень дерева теории (для каждого свой). Иногда разные курсы могут ссылаться на один и тот же узел. В этом случае, если изменить поддерево этого узла, то дерево теории измениться во всех курсах, которые ссылались на него.

3.3 Таблицы Справочники

Таблица 3.3.1 – Справочник стран (Countries)

Название поля Тип Назначение

ID Int Уникальный идентификатор станы

27

Page 28: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

CountryName varchar(50) Название страны

CountryCode varchar(50) Код или краткое обозначение страны на русс

ECountryCode varchar(255) Код или краткое обозначение страны на англ

isChecked bit Проверка (существует ли)

Таблица 3.3.2 – Справочник городов (Cities)

Название поля Тип Назначение

ID Int Уникальный идентификатор города

CityName varchar(50) Название города на русс

EcityCode varchar(255) Название города на англ

CountryID int Код страны

isChecked bit Проверка (существует ли)

RegionID int Код района

Таблица 3.3.3 – Справочник районов (Regions)

Название поля Тип Назначение

ID Int Уникальный идентификатор района

RegionName varchar(50) Название района на русс

EregionName varchar(50) Название района на англ

Таблица 3.3.4 – Справочник классов и групп (Forms)

Название поля Тип Назначение

ID Int Уникальный идентификатор класс/курса

FormName Varchar(50) Название класса по-русски

EFormName Varchar(50) Английское название

BreifFormName Varchar(50) Краткое название по-русски

EBreifFormNam Varchar(50) Краткое английское название28

Page 29: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

e

NextFormID Int Код следующего класса/курса

PrevFormID Int Код предыдущего класса/курса

Таблица 3.3.5 – Справочник областей (SubRegions)

Название поля Тип Назначение

ID Int Уникальный идентификатор области

SubRegionName varchar(50) Название области на русс

EsubregionName varchar(50) Название области на англ

Таблица 3.3.6 – Справочник соответствий между родительскими и дочерними таблицами (PupilInfoField)

Название поля Тип Назначение

ID Int Уникальный код записи

fieldName Varchar(50) Название поля в таблице Pupils или Teams, для которого необходимо выполнить связывание при отображении результатов

rusPupilFieldName Varchar(50) Названия полей на русском

engPupilFieldName Varchar(50) Названия полей на англ

rusTeamFieldName Varchar(50) Названия полей на русском

engTeamFieldName

Varchar(50) Названия полей на англ

rusTitle Varchar(50) Названия полей на русском

engTitle Varchar(50) Названия полей на англ

dictionaryTable Varchar(50) Имя таблицы в которой хранятся «связанные» поля

pkFieldName Varchar(50) Первичный ключ в таблице dictionaryTable

fkFieldName Varchar(50) Имя поля из таблицы dictionaryTable, которое будет отображено вместо поля fieldName

isHistorical Bit Требуется ли учитывать историю изменения этого поля, в зависимости от даты соревнования

29

Page 30: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

3.4 Таблицы связанные с тестированием

Таблица 3.4.1 – Основной протокол тестирования (TestingLog)

Название поля Тип Назначение

ID Int Уникальный идентификатор

QueueID Int Уникальный идентификатор решения в очереди

SubmitTime DateTime Время отправки на тестирование

CourseID Int Уникальный идентификатор курса

NodeID Int Идентификатор узла задачи

UserID Int Уникальный идентификатор пользователя

Result Float Текущий результат тестирования

SolutionFileName Varchar(255) Имя файла

PhysicalName Varchar(1000) Имя файла

CheckerName Int Имя пользователя, который тестировал. См. Checkers

SolutionFileOldName

Varchar(255) Имя файла, который отсылал пользователь. Используется для отображения в протоколе

DBS__ID int Код DBS

Comment__ Varchar(400) Комментарий на русс

Ecomment__ Varchar(400) Комментарий на англ

ProcessedTime__ datetime Время обработки

CountingResult bit Вычисление результата

Таблица 3.4.2 – Сообщения из протокола тестирования (TLMessages)

Название поля Тип Назначение

ID Int Уникальный идентификатор сообщения

Message Varchar(8000) Сообщение на русс

Emessage Varchar(8000) Сообщение на англ

Message_hash Хеш сообщений на русс

Emessage_hash Хеш сообщений на англ30

Page 31: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.4.3 – Очередь на тестирование (TestingQueue)

Название поля Тип Назначение

ID Int Уникальный идентификатор решения в очереди

UserID Int Уникальный идентификатор пользователя

CourseID Int Уникальный идентификатор курса

NodeID Int Идентификатор узла задачи

SolutionFileExt Varchar(10) Расширение файла

SubmitTime DateTime Время отправки на тестирование

CurTaskType Int Тип задачи

Result Float Текущий результат тестирования

StartTesting DateTime Время начала тестирования

SolutionFileName Varchar(255) Имя файла

Delayed Bit 1-если решение заморожено

TestBy Int ID Дельты, которая взяла тестировать. ID берется из Checkers

ContinueFromQID Int Продолжение тестирования по коду

SolutionFileOldName

Varchar(255) Имя файла, который отсылал пользователь. Используется для отображения в протоколе

ManuallyDelayed Bit Тестирование вручную

Priority int Приоритет тестирования

mode Bit Модификация теста

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

Таблица 3.4.4 – Информация о проверяющих (Checkers)

Название поля Тип Назначение

ID Int Уникальный идентификатор

UserName Varchar(50) Имя пользователя

DisplayName Varchar(50) Имя для ототбражения (например, в

31

Page 32: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

протоколе)

Password Varchar(50) Пароль

Automatic Bit Программа/Человек

IP char Информация для перезапуска (имя компьютера Дельты)

ActAsAny Bit Берет ли задания для ЛЮБАЯ

LastContact DateTime Время последнего обращения к БД (для программ)

LastRestart DateTime Время последнего перезапуска (для программ)

AutoRestartable Bit Подлежит ли автоперезапуску (для программ)

factor float Множитель, на который множится таймлимит из task.cfg при тестировании этой Дельтой.

Status4restarter int Статус для финала теста

Path4specialrestart varchar(255) Путь для специального перезапуска

RestartTimeoutSec

int Перезапустить (тайм аут в секундах)

HardwareInfo varchar(max) Информация об оборудовании

Таблица 3.4.5 – Связь между о проверяющими и типами задач (CheckersTypes)

Название поля Тип Назначение

CheckerID Int Код checkers

TypeID Int Код типа задач

ExcludeExtensions

varchar(256) Исключённые расширешия

Таблица 3.4.6 – Протокол тестирования по шагам (DetailBySteps)

Название поля

Тип Назначение

ID Int Уникальный идентификатор тестирования по шагам

QueueID Int Код решения в очереди

TaskTypeID int Код типа задачи

Result float Результат тестирования

MessageID Int Код сообщения

32

Page 33: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

ProcessedTime datetime Время процесса тестирования

CheckerID Int Код chekers

FailedTestNo Int Проверка были ли ошибки во время теста

Таблица 3.4.7 – Протокол тестирования по тестам (DetailByTests)

Название поля

Тип Назначение

StepID int Уникальный идентификатор тестирования по тестам

TestNo int Тестировалась ли задача

Result float Результат протокола тестирования

MessageID int Код собщения

WorkTime int Время работы протокола тестирования

ExitCode int Исходный код протокола тестирования

Таблица 3.4.8 – Информация по составным типам задач (CombineTypes)

Название поля Тип Назначение

TypeID int Код типа задач

CombineTypeID

int Код комбинированного типа задач

Num smallint Номер составной задачи

Таблица 3.4.9 – Таблица для временного хранения результатов тестирования (TemporaryDBS)

Название поля Тип Назначение

QueueID Int Код решения в очереди

TaskTypeID int Код типа задачи

Result float Результат тестирования

MessageID Int Код сообщения

ProcessedTime datetime

Время процесса тестирования

CheckerID Int Код chekers

FailedTestNo Int Проверка были ли ошибки во время теста

33

Page 34: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.4.10 – Таблица для временного хранения результатов тестирования (TemporaryDBT)

Название поля

Тип Назначение

QueueID int Код решения в очереди

TypeID int Код типа задач

TestNo int Тестировалась ли задача

Result float Результат протокола тестирования

MessageID int Код собщения

WorkTime int Время работы протокола тестирования

ExitCode int Исходный код протокола тестирования

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

Рекомендуется использовать для создания новых дельт хранимую процедуру spCreateDelTA, которая проделывает эти процедуры автоматически. 

3.5 Таблицы, содержащие статистику результатов тестирования

Таблица 3.5.1 – Описание таблиц результатов (ResultTables)

Атрибут Тип Описание

ID Int Уникальный идентификатор описания таблиц результатов

CourseID Int Идентификатор курса

VGroupID Int Идентификатор гуппы

HGroupID Int Идентификатор гуппы

Title varchar(100)

Название таблицы результатов на русс

ETitle varchar(100)

Название таблицы результатов на англ

AddInfoID Int Идентификатор добавления информации

ParentID Int Идентификатор родительской таблицы

34

Page 35: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

ProsessedLogID Int Идентификатор отработанного журнала

OpenDate datetime Дата получения результата

CollapseDate datetime Дата уничтожения результата

TasksRoot Int Корень задачи

URL varchar(500)

Адресс описания результата на русс

EURL varchar(500)

Адресс описания результата на англ

Таблица 3.5.2 – Информация о группировке таблиц результатов (ResultGrids)

Атрибут Тип Описание

ID Int Уникальный идентификатор группировки таблиц результатов

Title varchar(255) Название груп таблицы результатов на русс

ETitle varchar(255) Название груп таблицы результатов на англ

VGroupID Int Идентификатор гуппы

HGroupID Int Идентификатор гуппы

DefVGroupID

Int Идентификатор защищённой гуппы

DefHGroupID

Int Идентификатор защищённой гуппы

Таблица 3.5.3 – Шапки таблиц результатов (ResultHeaders)

Атрибут Тип Описание

CourseID Int Идентификатор курса

NodeID Int Идентификатор узла

Line smallint Линия таблицы результатов

Num smallint Номер таблицы результатов

Width smallint Ширина таблицы результатов

Title varchar(100) Название шапки таблиц результатов на русс

ETitle varchar(100) Название шапки таблиц результатов на англ

Height int Высота таблицы результатов

35

Page 36: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

OpenDate datetime Дата создания шапки результата

CollapseDate

datetime Дата изминения\удаления шапки результата

DeepView Int Глубина таблицы результатов

ParentID Int Идентификатор родительской таблицы

Attribue smallint Свойсвто шапки

Таблица 3.5.4 – Места участников из таблиц результатов (ResultPlaces)

Атрибут Тип Описание

TableID Int Идентификатор таблицы

UserID Int Идентификатор пользователя

Place Int Место участника из таблицы результатов

PlaceCout

Int Среднее место участника из таблицы резултатов

Таблица 3.5.5 – Содержимое таблиц результатов (ResultTableContent)

Атрибут Тип Описание

CourseID

Int Идентификатор курса

UserID Int Идентификатор пользователя

NodeID Int Идентификатор узла

Score float Результат

3.6 Описание таблиц, используемых для хранения результатов соревновани

Таблица (dl2ResultsCell) используется для хранения информации по результатам соревнований. Каждая запись в таблице описывает одну клеточку таблицы результатов. Для указания, какие данные хранятся в данной клеточке (ячейке) используется поле "type".

Таблица 3.6.1 – Описание таблиц результатов (dl2ResultCell)

Название Тип Назначение

36

Page 37: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

поля

headerItemId Int Код соревнования из таблицы dl2ResultsHeaderItem

userId Int Код участника соревнования (Pupils/Teams)

[value] float Значение в ячейке рузльтата

typeId int Тип ячейки (dl2ResultsCellType)

ts timestamp "Слепок" времени внесения результатов

Таблица 3.6.2 – Справочник типов ячеек (dl2ResultsCellType)

Название поля

Тип Назначение

ID Int Уникальный идентификатор ячейки

rusTitle Varchar(20) Название ячейки по-русски, которое будет использоваться при выводе ячейки данного в таблице результатов

engTitle Varchar(20) Аналогично rusTitle

rusDescription Varchar(255) Кометарий к названию ячейки по-русски

engDescription Varchar(255) Комментарий к названии ячейки по-английски

leafOnly Bit Битовый флаг, указывает, может ли данная ячейка быть итоговой или же она является только промежуточной. (???)

descOrder bit Указывает на порядок сортировки по данному полю (прямой/обратный)

className Varchar(255) Имя класса, который отвечает за преобразование и вывод значения, находящегося в ячейке.

Таблица (dl2ResultsHeaderMapping) используется для связывания между собой элементов шапки соревнований из таблицы Courses. Значения полей openDate и coolapseDate должны совпадать с датами открытия закрытия курса из таблицы Courses или же, если есть ограничения на даты открытия (часть задач открывается в один день, часть в другой), тогда даты должны совпадать с датами из таблицы TasksHiLoDates.

Таблица 3.6.3 – Связь элементов шапки из таблицы (dl2ResultsHeaderMapping)

Название поля

Тип Назначение

37

Page 38: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

headerItemId Int Уникальный идентификатор элемента шапки

courseId Int Код соревнования, с которым свызан элемент шапки

nodeId int Код узла в дереве задач.

openDate datetime Дата начала соревнования

collapseDate datetime Дата завершения соревнования

Таблица (dl2ResultsHeaderItem) используется для хранения шапки таблиц результатов. Шапка хранится в виде иерархической структуры.

Таблица 3.6.4 – Хранение шапки таблиц результатов (dl2ResultsHeaderItem)

Название поля

Тип Назначение

itemId Int Уникальный идентификатор элемента шапки

parentItemId Int Код элемента-родителя

childIndex int Номер элемента в порядке его отображения в таблице результатов

rusTitle Varchar(255) Название элемента шапки по-русски

engTitle Varchar(255) Название элемента шапки по-английски

tmp Int Значение до конца не выяснено

tmpParent Int Используется для отладки

deep Int Уровень вложенности элемента шапки (глубина)

tmp2 Int Используется для отладки

RootItemID Int Код корневого элемента в шапке

3.7 Таблицы для протоколирования событий

Таблица 3.7.1 – Протокол работы с системой (EventLog)

Атрибут Тип Описание

ID Int Уникальный идентификатор протокола работы с

38

Page 39: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

системой

DateTime datetime Время работы с системой

OwnerID Int Идентификатор источника

MessageID

Int Идентификатор сообщения

UserID Int Иидентификатор пользователя

Details varchar(255) Детали протокола работы

IP char(15) Адресс работы протокола

Account char(20) Отчёт работы протокола

Таблица 3.7.2 – Справочник сообщений (EventMessages)

Атрибут Тип Описание

ID Int Уникальный идентификатор справочника сообщений

MessageText

varchar(255) Текст сообщения справочника

EventType smallint Тип события

Таблица 3.7.3 – Справочник источников (EventOwners)

Атрибут

Тип Описание

ID Int Уникальный идентификатор источника

Name varchar(50) Имя источника справочника

Таблица 3.7.4 – Справочник типов сообщений (EventTypes)

Атрибут Тип Описание

ID Int Уникальный идентификатор типа сообщений справочника

EventType

varchar(50) Тип события

Таблица 3.7.5 – Протокол подписки на курсы (SubscriptionLog)

Атрибут Тип Описание

ID Int Уникальный идентификатор протокола подписки на курсы

39

Page 40: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

DateTime datetime Время подписки

UserID Int Иидентификатор пользователя

CourseID Int Идентификатор курса

Subscribe bit Подписан ли пользователь

PublicScores

bit Показать оценку

3.8 Остальные таблицы

Таблица 3.8.1 – Внутренняя почта DLB (DlMail)

Название поля

Тип Назначение

ID int Уникальный идентификатор внутренней почты DL

UserID int Идентификатор пользователя

Message varchar(8000) Текст сообщения

FromUser int Отправитель сообщения

Subj varchar(150) Тема сообщения

Type tinyint Тип сообщения

CourseID int Идентификтор курса

NodeID int Идентификтор узла

TheoryNodeID int Идентификтор теоритического узла

ForumID int Идентификтор дерева форумов

ForumMailID int Идентификтор сообщений форума

date datetime дата отправлки\получения

read   bit Прочитано ли сообщение

know bit Уведомлён ли пользователь о сообщении

Таблица 3.8.2 – Основная статистика по системе (DlStatistic)

Название поля Тип Назначение

Year int Статистика за год40

Page 41: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Week int Статистика за неделю

pwUsersJoined int Присоединившийся пользователь

pwSolutionsProcessed int Обработанные решения

pwLogins int Входившие в систему

pwMessagesProcessed int Обработанные сообщения

pwFailedLogins int Недопустимые логины

tUsersJoined int Присоединившийся пользователь

tSolutionsProcessed int Обработанные решения

Таблица (Properties) используется для хранения одиночных параметров работы DL.

Таблица 3.8.3 – Основная статистика по системе (Properties)

Название поля Тип Назначение

PropertyName varchar(50) Имя параметра

PropertyValue varchar(255)

Значение параметра

PropertyIntValue int Целочисленное значение

Назначение конкретных параметров:

Параметр Назначение

uncArchives, uncQueue, uncTasks, uncTested, uncTheory

Сетевые пути к каталогам тестов задач, очереди отсылок, условий задач, протестированных решений и теории, соответственно. Эти параметры используются дельтами.

ProcessedLogID, java.ProcessedLogId

ID последней записи в протоколе тестирования, которая была обработана и внесена в таблицы результатов.

EnableRecheckBadSol Разрешено ли тестировать решения, которые по крайней мере один раз "повесили" тестирующую программу. См. повторное тестирование.

JavaExec Путь к javaw.exe

JavaClassPath Путь к dl2-web\WEB-INF\classes

41

Page 42: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Таблица 3.8.4 – Текущие сессии пользователей (Sessions)

Название поля

Тип Назначение

ID uniqueidentifier

Уникальный идентификатор текущей сессии

UserID int Идентификатор пользователя

LoginTime datetime Время входа в систему

CourseID int Идентификтор курса

NodeID int Идентификтор узла

TheoryNodeID int Идентификтор теоритического узла

LanguageID smallint Идентификтор языка

LastContact datetime Последняя связь с сессией

paramS int Параметры сессии

IP varchar(15) Адресс текущей сессии

Statistic varchar(70) Статистика данной сессии

LoginUser varchar(20) Имя пользователя под которым работает сессия

Таблица 3.8.5 – Дерево форумов (Forums)

Название поля

Тип Назначение

ID int Уникальный идентификатор форума

ReplyTo int Ссылка на корневой форум

Name varchar(50) Имя форума на русс

EName varchar(50) Имя форума на англ

Description varchar(150) Описание на русс

EDescription varchar(150) Описание на англ

CreateDate datetime Дата создания форума

CourseID int Идентификатор курса

NodeID int Идентификатор узла

TeoryNode int Идентификатор теоретического узла

Таблица 3.8.6 – Сообщения форума (ForumMessages)

42

Page 43: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Название поля

Тип Назначение

ID int Уникальный идентификатор сообщения форума

ReplyTo int Ссылка на корневой форум

Subject varchar(50) Тема сообщения на русс

ESubject varchar(50) Тема сообщения на англ

fromUser int Сообщение от пользователя

toUser int Сообщение для пользователя

Prioriry int Приоритет сообщения

Text varchar(8000) Текст сообщения на русс

EText varchar(8000) Текст сообщения на англ

ForumID int Идентификатор форума

CreateDate datetime Дата создания\отправки сообщения 

Всю информацию по хранимым процедурам базы данных DL.GSU.BY, можно узнать здесь - http://confluence.newit.gsu.by/pages/viewpage.action?pageId=32866348

4. Разработка интерактивного справочника

43

Page 44: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

4.1 Работа с базами данных DL.GSU.BY

Для работы с базами данных потребудется виртуальная машина DL на которой уже установлены все необходимые программы для работы с базами данных, инструкцю по установке можно найти по ссылке : http://confluence.newit.gsu.by/display/dldev/DLVM

Запускаем установленую виртуальную машину с помощью VMware Workstation (рисунок 3)

Рисунко 3 – Запущеная виртульаня машина DL

Нажимаем Пуск (Start) и открываем SQL Server Management Studio. Подтверждаем администратора и пароль (рисунок 4).

44

Page 45: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 4 – Окно подключения SQL Server Management Studio

Переходим по пути DL\Databases\dldb\Tables и получаем список таблиц базы данных (рисунок 5)

Рисунок 5 – Список таблиц базы данных dldb

4.2 Создание процедур для работы с табилцами базы данных

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

Первая процедура (sp_set_table_description) предназначена для добавления описания в таблицах базы данных. В параметрах процедуры указываются директория (откуда берётся информация), название таблицы и следом её описание (рисунок 6).

45

Page 46: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 6 – Добавление описания таблицы

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

Для добавления описания таблицы или поля, нужно выполнить SQL запрос и указанные поля таблицы будут обновлены (рисунок 7).

Рисунок 7 – Обновление полей в таблице Courses

46

Page 47: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 8 – Результат добавление описания поля Name

4.3 Выбор и обоснование способа создания справочника

Целью данного дипломного проекта является разработка интерактивного справочника по базам данных DL.GSU.BY.

За основу справочника был взят сайт http://confluence.newit.gsu.by , который в свою очередь работает по принципу самодокументирвоания Wiki (рисунок 9).

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

47

Page 48: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 9 – Общий вид сайта

4.4 Структура интерактивного справочника

Структура данного справочника нелинейная, с небольшим количеством разветвлений и основываться на «ручной» навигации. В справочнике присутствуют ссылки на информацию, расположенную в самом справочнике, и на другие ресурсы, срабатывающие, когда пользователь выполняет клик мышью на соответствующем объекте.

Интерфейс справочника весьма простой. Сверху располагается постоянно доступное меню, в котором можно просмотреть страницу, редактировать страницу и просмотреть истоию изминения страницы (рисунок 10).

Рисунок 10 – Меню страницы

48

Page 49: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 11 – Просмотр измимений старницы

В любой момент можно вернуться к предыдущей версии страницы сохранив её (рисунок 11). Такая структура является интуитивно понятной и приятной для пользователя.

Все данные из справочника внесены на рабочую машину DL, поэтому справочник соответствует данным приведённым на сайте в данном разделе : http://confluence.newit.gsu.by/display/dldev/dldb

Для того, что бы изминения были внесены на реальную машину DL, нужно обратиться к разработчикам сайта DL.GSU.BY, у которых есть доступ, предоставив все материалы и документацию для изменений.

5 Взаимодействия пользователя со справочником

Для того, что бы пользователь легко и удобно мог найти нужную ему информацию по базам данных DL.GSU.BY есть меню навигации по разделам (рисунок 12).

49

Page 50: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 12 – Меню навигации справочника

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

В самом низу любой страницы, можно оставлять комментарий по любым вопросам, которые связаны с данным разделом (рисунок 13).

Рисунок 13 – Добавление комментариев

Раздел «Описание таблиц и представлений» полностью соответствует данным, которые находятся по адресу DL\Databases\dldb\Tables – реальной машине DL.

Раздел «Описание хранимых процедур и функций» так же соответствует данным находящимся по адресу DL\Databases\dldb\Programmability\Stored Procedures и DL\Databases\dldb\Programmability\Functions (рисунок 14).

50

Page 51: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

Рисунок 14 - Содержание базы данных процедур и функций

Заключение

В результате выполнения дипломной работы был реализован интерактивный справочник по базам данных DL.GSU.BY.

Было изменено и описано более пятидесяти таблиц и пяти сотент полей

51

Page 52: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

базы данных DL.GSU.BY. Были составлены таблицы с изменёнными полями, в которых хранится информация о их назначений, так же относящимися к другим таблицам.

С помощью этих данных был создан интерактивный справочник, на базе сайта http://confluence.newit.gsu.by – где всё подробно описано.

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

Были выполнены поставленные задачи:− изучены таблицы и функции базы данных DL.GSU.BY;− реализованы скрипты по добавлению описания таблиц и полей;− создан интерактивный справочник со всей актуальной информацией;− написан отчет о проделанной работе.

Список использованных источников

1 Грубер, М. Понимание SQL / М. Грубер; пер. с англ. В.Н. Лебедева.; под ред. В.Н. Булычева. Москва: 1993. – 518с.: ил.

2 Грофф , Р. SQL. Полное руководство / Р. Грофф, Н. Вайнберг, Дж.Оппель; пер. с англ.; под ред. И. В. Красиков. – И.: Вильямс, 2016. – 960 с.

52

Page 53: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

3 Титтел, Э. HTML, XHTML и CSS / Э. Титтел. – М.: Диалектика, 2011. – 400 с.

4 Фримен, Э. Изучаем HTML, XHTML и CSS / Э. Фримен. – П.: Питер, 2010. – 636 с.

5 Шафер, С. HTML, XHTML и CSS. Библия пользователя издание / С. Шафер. – М.: Диалектика, 2010. – 656 с.

6 Муссиано, Ч. HTML и XHTML. Подробное руководство / Ч. Муссиано. – И.: Символ-Плюс, 2008. – 467 с.

7 Мейер, А. CSS. Каскадные таблицы стилей / А. Майер. – И.: Символ-Плюс, 2008. – 511 с.

8 Комолова, Н. Самоучитель по HTML / Н. Комолова. – И.: Питер, 2011. – 370 с.

9 Документация сайта dl.gsu.by [Электронныйресурс] // URL: http :// dl . gsu . by / doc / dev / db / db . htm . – Дата обращения: 22.04.2017.

10 Google – поисковая система. [Электронный ресурс]. – Режим доступа: http :// google . com – Дата доступа: 15.05.2017.

Приложение АКод процедур (описание полей и таблиц)

CREATE PROCEDURE sp_set_column_description ( @schema varchar(256), @table varchar(256), @column varchar(256), @description varchar(256))

53

Page 54: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

asBEGIN if exists ( select p.* from sys.extended_properties p, sys.columns c, sys.tables t, sys.schemas s where t.schema_id = s.schema_id and c.object_id = t.object_id and p.major_id = t.object_id and p.minor_id = c.column_id and p.name = N'MS_Description' and s.name = @schema and t.name = @table and c.name = @column ) exec sys.sp_updateextendedproperty @level0type=N'SCHEMA', @level0name=@schema, @level1type=N'TABLE', @level1name=@table, @level2type=N'COLUMN', @level2name=@column, @name=N'MS_Description', @value=@description else exec sys.sp_addextendedproperty @level0type=N'SCHEMA', @level0name=@schema, @level1type=N'TABLE', @level1name=@table, @level2type=N'COLUMN', @level2name=@column, @name=N'MS_Description', @value=@descriptionEND GO

CREATE PROCEDURE sp_set_table_description ( @schema varchar(256), @table varchar(256), @description varchar(256)) asBEGIN if exists ( select p.* from sys.extended_properties p, sys.tables t, sys.schemas s where t.schema_id = s.schema_id and c.object_id = t.object_id and p.major_id = t.object_id and p.minor_id = 0 and p.name = N'MS_Description' and s.name = @schema and t.name = @table ) exec sys.sp_updateextendedproperty @level0type=N'SCHEMA', @level0name=@schema,

54

Page 55: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

@level1type=N'TABLE', @level1name=@table, @name=N'MS_Description', @value=@description else exec sys.sp_addextendedproperty @level0type=N'SCHEMA', @level0name=@schema, @level1type=N'TABLE', @level1name=@table, @name=N'MS_Description', @value=@descriptionENDGO

Приложение BКод запроса (запрос на обновление таблицы)

USE [dldb]

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'ID', N'Уникальный идентификатор

55

Page 56: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

пользователя'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Last', N'Фамилия'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'First', N'Имя'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Middle', N'Отчество'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'ELast', N'Surname'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'EFirst', N'Name'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'EMiddle', N'Middle name'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Country', N'Идентификатор страны пользователя из справочника стран'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'City', N'Город'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Region', N'Область'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'SubRegion', N'Район'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'School', N'Место учебы'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Form', N'Класс'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Address', N'Адрес'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Birth', N'Дата рождения'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Password', N'Пароль для входа в систему DL'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Email', N'Электронный адрес почты'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Phone', N'Телефон'

56

Page 57: dl.gsu.bydl.gsu.by/Images/_i4f/_diploms/sumenkov.docx · Web viewобъединяющая все компьютеры мира. Интернет предоставляет широчайшие

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Joined', N'Дата/время регистрации'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Question', N'<Секретный> вопрос, используется если пользователь забыл пароль'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Answer', N'<Секретный> ответ'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Subscribed', N'Подписан ли пользователь на список рассылки'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'PublicInfo', N'Публиковать личную информацию на сайте'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'PublicScores', N'Публиковать результаты успеваемости'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'AdditionalInfo', N'Дополнительная информация'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Teacher', N'Учитель'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Nick', N'Альтернатива для входа на сервер (не используется)'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'GroupMaskId', N'Идентификатор маски группы'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'GroupId', N'Идентификатор группы'

GOEXEC sp_set_column_description 'dbo', 'Pupils', 'Groupname', N'Имя группы на русском языке'

GOEXEC sp_set_table_description 'dbo', 'Pupils', N'Информация по пользователям'

57