Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_Sem.docx
Скачиваний:
3
Добавлен:
10.09.2019
Размер:
427.82 Кб
Скачать

Проекція

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

Перейменування

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

9.однією з найбільш актуальних завдань є створення методики проектування хороших схем реляційних БД. В якості першого кроку створення такої методики в цій статті вводиться узагальнене поняття аномалії. Це поняття є одним з центральних у проектуванні схем. Вперше про аномалії в реляційних БД написав Е.Ф. Кодд [3]. Він показав, що для деяких схем відносин виникають небажані ефекти при спробі змінити стан бази даних. Ці ефекти і отримали назву аномалій. Вони можуть виявлятися, наприклад, в неможливості додати до відношення необхідний кортеж (при додаванні порушується обмеження цілісності, підтримуване СУБД) - аномалія по включенню. Видаляючи кортеж, ми "втрачаємо" корисну інформацію - аномалія по видаленню. Згодом та ж аргументація була наведена в цілому ряді відомих монографій [4, 5]. В роботах Е.Ф. Кодда [3, 6] для усунення аномалій, що виникають при веденні БД, було введено поняття нормальних форм, яке широко обговорювалося в літературі. Формального визначення поняттю аномалії не було дано і обговорення проблеми велося на інтуїтивному рівні. Одним з перших практичних кроків по формалізації поняття аномалії з'явилася робота Р.Фейджин [1].

10.Перша нормальна форма (1НФ, 1NF) утворює ґрунт для структурованої схеми баз даних:

  • Кожна таблиця повинна мати основний ключ: мінімальний набір колонок, які ідентифікують запис.

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

  • Атомарність: кожен атрибут повинен мати лише одне значення, а не множину значень.

11.Друга нормальна форма (2НФ, 2NF) вимагає, аби дані, що зберігаються в таблицях із композитним ключем не залежали лише від частини ключа:

  • Схема бази даних повинна відповідати вимогам першої нормальної форми.

  • Дані, що повторно з'являються в декількох колонках виносяться в окремі таблиці.

12.Третя нормальна форма (3НФ, 3NF) вимагає, аби дані в таблиці залежали винятково від основного ключа:

  • Схема бази даних повинна відповідати всім вимогам другої нормальної форми.

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

13. Відношення знаходиться в НФБК, тоді і лише тоді коли детермінант кожної функціональної залежності є потенційним ключем. Якщо це правило не виконується, тоді щоб привести вказане відношення до НФБК його слід розділити на два відношення шляхом двох операцій проекції на кожну функціональну залежність детермінант, якої не є потенційним ключем.

  1. Проекція без атрибутів залежної частини такої функціональної залежності;

  2. Проекція на всі атрибути цієї функціональної залежності.

Визначення НФБК не потребує жодних умов попередніх нормальних форм. Якщо проводити нормалізацію послідовно, то в переважній більшості випадків при досягненні 3НФ автоматично будуть задовольнятися вимоги НФБК. 3НФ не збігається з НФБК лише тоді, коли одночасно виконуються такі 3 умови:

  1. Відношення має 2 або більше потенційних ключів.

  2. Ці потенційні ключі складені (містять більш ніж один атрибут)

  3. Ці потенційні ключі перекриваються, тобто мають щонайменше один спільний атрибут.

14. Visual Basic для приложений — именно это и означает аббревиатура VВА — пред­ставляет собой набор средств программирования для создания ваших собственных программ. Как можно догадаться из самого названия, VВА предназначается для подгонки имеющихся приложений под запросы пользователя. Здесь должно быть ясно, что приложение — это полно­масштабная программа, выполняющая серьезную практическую работу (например, текстовый процессор или приложение баз данных), в отличие от утилиты, которая призвана сделать вашу компьютерную систему более удобной и заставить работать ее надежнее.

С помощью VВА вы можете по своему усмотрению изменить внешний вил или способ при­менения имеющихся средств приложения и даже добавить свои, совершенно новые возможно­сти.

По ходу VBA = Visual Basic

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

Макроси по суті являють собою ВБА код, але вони частіше створюються автоматизованим редактором. Майстром створення макросів. Але потім створений код також можна редагувати у ВБА редакторі.

15.

Тип данных

Описание и диапазон значения

Byte

Хранение положительных чисел от 0 до 255

Boolean

Хранение логических значений: True, False

Currency

Хранение чисел для точных вычислений в диапазоне от -922337203685477,5808 до 922337203685477,5807

Date

Хранение даты и времени. Даты от 1.01.100 до 31.12.9999 Время от 00:00:00 до 23:59:59

Double

Хранение чисел двойной точности от -1,79769313486232*10308 до -4,94065645841247*10-324 от 4,94065645841247*10-324 до 1,79769313486232*10308

Integer

Хранение целых чисел от -32768 до 32767

Long

Хранение целых чисел от -2147483648 до 2147483647

Single

Хранение чисел одинарной точности от -3,402823*1038 до -1,401298*10-45 от 1,401298*10-45 до 3,402823*1038

String

Хранение текста длиной до 2 млрд. символов

Variant

Хранение любого типа данных

  • Числа

VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double, Currency.

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

  • Тип данных Variant

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

  • Текстовые строки

  • Логические значения

VBA-программа принимает то или иное "решение", основываясь на различных условиях. Любое условие может принимать два значения: True (Истина) или False (Ложь). Логические значения True и False называются булевскими значениями, а тип данных -Boolean

  • Тип Date

VBA использует тип Date для хранения дат и времени.

Змінні:

Имя переменной

При выборе имени переменной необходимо соблюдать определенные правила:

  • Имя переменной должно начинаться с буквы алфавита;

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

  • Имена переменных не могут превышать 255 символов;

  • Имя переменной должно быть уникальным в рамках его области действия. Оно должно быть уникальным в пределах процедуры или модуля, в которой объявлена эта переменная (по аналогии с камерой хранения: на одном вокзале не может быть двух ячеек с одинаковым номером).Имя переменной не может дублировать зарезервированные ключевые слова VBA;

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

Можна об’явити змінну одразу ж, наприклад myVar = 10. Це неявне оголошення, так не рекомендується робити.

Dim та Private перед змінними означають, що змінні доступні або в певній процедурі чи модулі, а Public – що вони глобальні.

Змінні слід об’являти так:

Dim myVar As Date, але замість «As Date» можна використовувати:

Константи:

Const Pi As Single = 3.14

16.

Структура проекта:

  • Модулі форми (розширення. Frm) можуть містити текстові описи форми і її елементи управління.

  • Модулі класу (розширення. Cls) подібні модулям форми, за винятком того, що у них немає ні-якого видимого інтерфейсу користувача. Ви можете використовувати модулі класу, щоб створити власні об'єкти, включаючи код для їх методів і властивостей.

  • Стандартні модулі (розширення. Bas) можуть містити оголошення типів, констант, змін-них, зовнішніх (external) і загальних (public) процедур - на загальному рівні (public) або на рівні модуля.

  • Файли ресурсів (расшіреніе.res) містять точкові малюнки, текстові рядки та інші дані, які ви можете змінювати без необхідності редагувати код.

  • Документи ActiveX (. Dob) подібні формам, але можуть відображатися в броузері Internet типу Internet Explorer.

  • Елементи управління користувача і сторінкові модулі (. Ctl) і сторінкові модулі (. Pag) також подібні формам, але використовуються, щоб створити елементи управління ActiveX та пов'язані з ними сторінки властивостей для відображення в режимі створення програми.

  • Компоненти - крім файлів і модулів в проект можуть бути додані деякі інші типи компонентів.

  • Елементи управління ActiveX (розширення. Ocx) - необов'язкові елементи управління, які можуть бути додані в тулбокс і використовуватися в формах.

  • Інсертабельні об’єкти типу об'єкта Microsoft Excel Worksheet є компонентами, кото-які ви можете використовувати як стандартні блоки, щоб формувати інтегровані рішення.

  • Посилання( Ви можете також додавати посилання на зовнішні компоненти ActiveX, які можуть використовуватися вашим додатком.)

  • Дизайнери ActiveX- інструментальні засоби для проектування класів, від яких можуть бути створені об'єкти.

  • Стандартні елементи управління

Процедури

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

Теоретично кожна процедура може бути викликана з будь-якого модуля, а функція - з таких об'єктів, як форма, запит або звіт. Разом із загальнодоступними процедурами (Public), якими є всі процедури за умовчанням, існують локальні, або особисті процедури (Private), доступні тільки в тому модулі, в якому вони описані.

процедура Sub - набір команд, за допомогою якого можна вирішити певну задачу. При її запуску виконуються команди процедури, а потім управління передається в додаток пакета MS Office або процедуру, яка викликала дану процедуру.

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

процедура Property використовується для посилання на властивість об'єкта. Даний тип процедур застосовується для установки або отримання значення користувацьких властивостей форм та модулів.

Модулі

Структурним елементом програми, написаної на мові VBA, є модуль - сукупність оголошень і процедур, об'єднаних в єдине ціле. У ACCESS 97 модулі трьох типів: стандартні модулі, модулі форми і модулі звітів. На відміну від стандартного модуля, який створюється таким же чином, як і будь-який інший об'єкт БД, і може виконувати практично будь-які обчислення, модулі форм і звітів розробляються для обробки подій, пов'язаних з елементами форми або звіту.

Кожен модуль складається з області опису і однієї або декількох процедур. Процедура є послідовністю операторів, які часто називають програмними кодами. Вхідні в модуль процедури об'єднані загальною областю опису. У ній описуються дані і об'єкти, які є загальноприйнятими для процедур модуля.

17.

Розгалудження

До операторів галуження належать однорядкові та багато рядкові оператори умовного переходу If...Then. Найчастіше використовується оператор If...Then, який може мати просту однорядкову або блокову структуру.

Однорядковий синтаксис:

If Умова Then Оператор [Else Оператор]

Функціонування оператора такої структури відносне просто. Якщо умова після If істинно, тобто результат рівний True, виконується оператор, вказаний за Then. Якщо ж результат рівний False, то виконується оператор, наступний за ключовим словом Else, якщо таке є:

If A = 7 Then Beep 'оператори

If X < 9 Then Print "False!" Else Print "True!"

У першому прикладі видається звуковий сигнал, якщо змінна A рівна 7. У другому прикладі виводиться текст False!, якщо значення змінної X менше 9; інакше виводиться текст True!.

Цикли

Для багатократного виконання одного або декількох операторів призначені цикли. Visual Basic пропонує дві конструкції: цикл For...Next дає можливість встановлювати число проходів циклу, а цикл Do...Loop завершується при виконанні заданої умови.

Цикл For...Next є найстарішою і найпростішою конструкцією:

For Лічильник = Початкове значення То Кінцеве значення [Step Крок] Оператори Next [Лічильник]

На початку виконання циклу значення Лічильник встановлюється в Початкове значення. При кожному проході змінна Лічильник збільшується на 1 або на величину Крок. Якщо вона досягає або стає більш ніж Кінцеве значення, то цикл завершується і виконуються наступні оператори. Різниця між початковим і кінцевим значенням, що ділиться на величину кроку, складає число проходів:

For i = 1 То 10

Print i * 100

Next i

Для безумовного виходу з циклу використовується оператор Exit For:

For i = 0 To 10

if i = 5 Then Exit For Else Print i

Next i

Якщо кількість проходів повинна залежати від умови, використовують цикл Do...Loop.

Залежно від позиції умови розрізняють два варіанти циклу Do...Loop.

Цикл, керований на початкуDo [(While | Until) Умова][Оператори][Exit Do] [Оператори]Loop

Цикл з післяумовою

Do[Оператори][Exit Do][Оператори]Loop [(While | Until) Умова]

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

Тіло циклу виконується невизначене число разів, поки умова не викличе вихід з циклу:

Do

X = X + 1

Print "Hello"

Loop While X < 9

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

Статичні масиви

Для оголошення масиву використовується оператор Dim з вказівкою в круглих дужках після імені масиву його максимального індексу;

Dim aname(150) As String

В цьому випадку елементи змінної aname розрізняють не по імені, а по індексу. Індексування завжди починається з нуля, тобто індекс 0 позначає перший елемент масиву, індекс 1 - другий і так далі.

Оператор Option Base дозволяє задати індексацію масиву з 1: '(General)(Declarations) Option Base 1

Багатовимірні масиви

Visual Basic дозволяє також створювати багатовимірні масиви. При оголошенні багатовимірного масиву верхні межі кожної розмірності розділяються комами: Dim aname(10, 25) As String

Масив з ім'ям aname може містити 286 різних значень (11*26 =286).

Динамічні масиви

Динамічний масив створюється в два етапи. Спочатку масив визначають в секції General Declarations контейнера (форми, модуля, класу) без вказівки розміру: Dim aarray() As Variant

Потім за допомогою оператора Redim встановлюють фактичний розмір масиву:

Dim aarray() As Variant Private Sub Command1_click() Redim aarray(50, 10) 'Код End Sub

Синтаксис оператора Redim: Redim [Preserve] Ім`я_перемінної (Межі) [As Тип_даних]

18. Як програмується в мові VBA робота з полями введення, перемикачами, селекторними кнопками, списками? [9-11].

Елемент управління TextBox (текстове поле)

Текстове поле (TextBox) - один з найбільш часто використовуваних елементів управління

Текстове поле використовується:

  1. для прийому будь-яких текстових даних, що вводяться користувачем (наприклад, для відправлення поштою, для занесення в базу даних і т.п.);

  2. для виведення користувачеві текстових даних з можливістю їх редагування (з бази даних, листа Excel і т.п.);

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

Деякі важливі властивості цього елемента управління:

  1. Value (або Text, ці дві властивості для текстового поля ідентичні) - то текстове значення, яке міститься в цьому полі. Використовується для занесення вихідного значення і для прийому значення, введеного користувачем, в строкову змінну.

  2. Enabled - якщо переставити в False, то текст в поле стане сірим і з вмістом поля нічого зробити буде не можна (ні ввести текст, ні виділити, ні видалити). Зазвичай це властивість використовується (для всіх елементів управління), щоб показати користувачеві, що цей елемент управління відключений до виконання будь-яких умов.

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

  4. MaxLength - максимальна довжина значення, яке можна ввести в поле. Іноді можна використовувати властивість AutoTab - при досягненні певної кількості символів управління автоматично передається іншому елементу управління.

  5. PasswordChar - вказати, за яким символом будуть "ховатися" вводяться користувачем значення. Використовується, звичайно, при введенні пароля.

Решта властивості здебільшого ставляться до оформлення текстового поля і його змісту, а також налагодження редагування.

Головна подія для текстового поля - це подія Change (тобто зміна змісту поля). Зазвичай на цю подію прив'язується перевірка вводяться користувачем значень або синхронізація введеного значення з іншими елементами управління (наприклад, зробити доступною кнопку, змінити текст напису і т.п.)

Елемент управління OptionButton

OptionButton потрібен для вибору варіанта в ситуації або /або.

Головних властивостей у цього елемента управління два:

  1. Caption - напис для перемикача;

  2. Value - встановлено прапорець чи ні (тільки два стани - True або False).

Головна подія - Change.

Звичайно, використовувати один перемикач безглуздо. Вибір повинен надаватися з декількох варіантів, і при виборі одного з них інший автоматично очищається. Проте в деяких ситуаціях нам необхідно вибрати з декількох наборів варіантів (наприклад, звіт за місяць / квартал / рік, тип звіту, потрібний філія тощо). Рішення просте - перемикачі потрібно згрупувати.

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

Елементи управління CheckBox

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

У CheckBox три головні характеристики:

  1. Caption - напис праворуч від прапорця, яка пояснює, що вибирається цим прапорцем;

  2. TripleState - якщо в False (за замовчуванням), то прапорець може приймати тільки два стани: встановлений і немає. Якщо для TripleState встановити значення True, то з'являється третє значення: Null, коли встановлена ​​"сіра галка". Таке значення часто використовується, наприклад, при виборі компонентів програми при установці, коли обрані не всі компоненти, а лише деякі;

  3. Value - сам стан прапорця. Може приймати значення True (прапорець встановлено), False (знятий) і Null - "сірий прапорець" (коли властивість TripleState встановлено в True).

Головна подія - Change.

Елемент управління ComboBox (комбінований список)

Цей елемент управління дозволяє користувачеві як вибирати "готові" значення зі списку, так і вводити значення самостійно (хоча це можна заборонити.

Зазвичай ComboBox використовується у двох ситуаціях:

  1. коли користувачеві необхідно вибрати одне або кілька значень зі списку розміром від 4-х до декількох десятків позицій. Якщо позицій менше, то простіше використовувати перемикачі, якщо більше - то орієнтуватися в списку стає незручно і необхідно використовувати спеціальні прийоми, коли користувач вводить перші літери потрібного слова і в списку залишаються лише значення, які починаються на ці букви;

  2. коли список позицій для вибору необхідно формувати динамічно на підставі даних з джерела (бази даних, листа Excel і т.п.)

На жаль, через вікно властивостей заповнити список позиціями не вийде - для цієї мети доведеться використовувати спеціальний метод AddItem (). Зазвичай він поміщається в обробник події Initialize для форми. Застосування його може виглядати так:

Private Sub UserForm_Initialize ()

ComboBox1.AddItem "Санкт-Петербург"

ComboBox1.AddItem "Ленінградська область"

ComboBox1.AddItem "Москва"

ComboBox1.AddItem "Московська область"

End Sub

Параметр varIndex (необов'язковий) може використовуватися для визначення положення елемента в списку, але він не може перевищувати значення ListCount і тому для початкового завантаження ComboBox не підходить.

Головна подія для комбінованого списку - Change. Зазвичай в обробнику цієї події перевіряються введені користувачем значення, які надалі будуть використовуватися в роботі користувача

Елемент управління ListBox (список)

Цей елемент управління дуже схожий на комбінований список, але застосовується набагато рідше з двох причин:

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

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

Але у цього елемента управління є й переваги: в ньому користувач може вибирати не одне значення, як в ComboBox, а декілька.

Зазвичай ListBox використовується:

  1. як проміжне засіб відображення введених / обраних користувачем через ComboBox значень (або будь-яких інших списків, наприклад, списків вибраних файлів);

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

Основні властивості, методи і події у ListBox - ті ж, що і у ComboBox. Головна відмінність - те, що є властивість MultiSelect, яке дозволяє користувачеві вибирати кілька значень. За замовчуванням ця властивість відключено.

19.

Функции VBA для работы с датой/временем, функции Date(), Time(), DateAdd(), DateDiff(), DatePart(), DateSerial(), Timer()

Без функций даты и времени обычно обойтись просто невозможно. Самые важные функции VBA для работы с датой/временем:

  • Date() — возвращает текущую системную дату. Установить ее можно при помощи одноименного оператора, например, так:

Date = #5/12/2006#

  • Time() возвращает текущее системное время, а Now() — дату и время вместе.

  • DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд.

  • DateDiff() — возможность получить разницу между датами (опять таки в единицах от лет до секунд).

  • DatePart() — очень важная функция, которая возвращает указанную вами часть даты (например, только год, только месяц или только день недели).

  • DateSerial() — возможность создать значение даты на основе передаваемых символьных значений. То же самое делает DateValue(), отличия — в формате принимаемых значений. Аналогичным образом (для времени) работают TimeSerial() и TimeValue().

  • Day() (а также Year()Month()Weekday()Hour()Minute()Second()) — специализированные заменители функции DatePart(), которые возвращают нужную вам часть даты.

  • MonthName() — возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.

  • Timer() — возвращает количество секунд, прошедших с полуночи.

20.

Рисование в VBA осуществляется путём использования объектов векторной графики Micro Soft Office(MSO). Графические фигуры представляенные на панели рисования МSО, образуют в VBA семейство объектов Shapes[1, 2]. Для рисования используются варианты метода добавления объектов этого семейства – Add: AddLine – добавить линию AddCurve – кривую,, AddPolyLine – полилинию, а также AddShape - фигуру.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]