2.5. Проектиране на потребителския интерфейс Дефинирането на критериите, на които трябва да отговаря извадката, е най- предизвикателната част от Конструктора на извадки. По принцип, потребителският интерфейс трябва да скрива сложността на лежащия в основата синтаксис на SQL. В случая с where клаузата това е много трудно за постигане, защото целта е да се използва пълния потенциал на сложния логически формализъм на SQL. Един възможен подход за реализиране на конструктор на SQL изрази е да се започне с обикновен текстов редактор, към който да се добавят допълнителни функции, улесняващи писането на логическите изрази в where клаузата. Това са функции като синтактично оцветяване (syntax highlighting), автоматично дописване (auto-completion) и проверка на изразите за правилност. Такъв подход (виж фигура 2.1) е използван в редактора SQL Editor, който е част от IB Expert системата за администриране на релационни бази от данни [IB Expert, 2006]. Фигура 2.1. Пример за надстроен текстов SQL конструктор на заявки Очевидно, такъв подход може да се използва само за най-напредналите потребители, които знаят отлично синтаксиса на езика SQL, знаят „наизуст” имената на таблиците и атрибутите им и се справят с директното записване на логическите изрази в текстов вид. Този подход обаче е напълно безполезен за по-неопитни потребители, каквито очакваме да бъдат потребителите на Конструктора на извадки. Ясно е, че трябва да се проектира такъв процес на конструиране, който да позволи колкото се може по-пълно и едновременно с това достатъчно лесно използване на SQL езика. Затова избираме като интерфейс да използваме падащи списъци, избор от изброени варианти, таблично представяне и поредово редактиране на критериите. Пример за подобен интерфейс е даден на фигура 2.2. В допълнение, предвиждаме възможност за работа с различно подмножество (т.е. изразителна сила) на езика SQL, в зависимост от това колко е напреднал потребителя.
19 Фигура 2.2. Пример за интерфейс с използване на падащи списъци и таблично представяне на условията в SQL конструктор на заявки Сподели с приятели: |