1. УНСС - Катедра “Информационни технологии
и комуникации”
Тема 5
Бази данни
СУБД MS Access 2007
2. СУБД MS Access
Microsoft Office Access 2007 е СУБД, която
поддържа релационен модел на данните, т.е.
информацията е организирана в таблици
В повечето бази данни са необходими повече от
една таблици
Например в една база данни за бизнес
информация може да има таблици за
съхранение и обработка на информацията за:
1.
Продукти,
2.
Поръчки,
3.
Клиенти,
4.
Доставчици;
3. СУБД MS Access
Всеки ред се нарича още запис, а всяка колона се
нарича поле
Записът е последователен начин за обединяване
на информацията за обекта
Полето е един отделен елемент от
информацията – един тип елемент, който се
появява във всеки един запис
В таблицата "Продукти" например всеки ред или
запис съдържа информация за един продукт
Всяка колона или поле съдържа някакъв вид
информация за този продукт като названието
или цената му
5. СУБД MS Access
Една база данни може да съдържа повече от
една таблица
Например една система за складово
стопанство, използваща три таблици, не
съдържа три бази данни, а представлява
една база данни, съдържаща три таблици
Една база данни на Access съхранява своите
таблици в един единствен файл, заедно с
други обекти, каквито са формулярите,
отчетите, макросите и модулите
Базите данни, създадени със СУБД Access
2007, имат файлово разширение .accdb
6. СУБД MS Access
Елементите на една база данни на Access са:
Таблици,
Формуляри,
Отчети,
Заявки,
Макроси,
Модули;
7. СУБД MS Access
СУБД Access поддържа:
Език за описание на данни,
Език за манипулиране на данни,
Езикът за описание на данни позволява:
Да описвате структурата на таблиците,
формулярите, заявките и отчетите,
Да променяте (актуализирате)
определена структура, например да
добавите нова колона на таблицата;
таблицата
8. СУБД MS Access
Езикът за манипулиране на данните, позволява:
Да добавяте нови записи в базата данни,
например данни за нови продукти,
Да редактирате съществуващи данни в
базата данни, например да променяте
единичните цени на продуктите,
Да изтривате информация, например когато
един продукт вече не се предлага или е
бракуван,
Да организирате и показвате данните по
различни начини,
Да споделяте данните с други потребители
чрез отчети, имейли, интранет или Интернет;
Интернет
9. Таблици
Всеки ред от таблица се нарича запис
Записите са мястото, където се съхранява информацията
за конкретен елемент на обекта
Всеки запис се състои от едно или повече полета
Полетата съответстват на колоните в таблицата
Например в таблица с име “Клиенти", всеки запис (ред)
ще съдържа информация за различен клиент, а всяко
поле (колона) ще съдържа конкретна информация за
клиента, например име на фирма, адрес, град,
пощенски код и т.н.
На полетата трябва да бъде присвоен определен тип на
данните, например за полето име на фирма - текст
(text), за полето дата на поръчка - дата (date), за
полето количество - число (number), за полето
единична цена - парична стойност (currency), както и
да използвате друг тип
10. Таблици
Създаване на таблица в Access 2007:
Избира се таб Create – натиска се бутон Table
Design, в полето Field Name се въвежда името
на полето, от списъчното поле Data Type се
избира тип на съхраняваната информация,
например AutoNumber, Number, Text, и т.н.,
Аналогично се описват останалите полета от
таблицата,
За дефиниране на първичен ключ се маркира
съответното поле или полета, ако ключът е
“съставен” и се натиска бутон Primary Key,
Натиска се бутон Close, бутон Yes, въвежда се
име на таблицата и се натиска OK;
11. Релации между таблици
В Access се използват връзки (релации) между
таблиците, за да се обедини информацията, която
ни е необходима за формуляри, заявки и отчети
Връзките биват (1:М), (М:1), (М:М), (1:1)
Създаване на връзка "един към много“ (1:M)
Например, какъв е типът на връзката между
таблиците "Доставчици" и "Продукти" в базата
данни за поръчки?
Един доставчик може да ни снабдява с всякакъв вид
продукти. Следователно за всеки доставчик
представен в таблицата "Доставчици" може да
има много продукти, представени в таблицата
"Продукти“
Поради това връзката между таблицата
"Доставчици" и таблицата "Продукти" е от типа
"един към много“ (1:М)
12. Релации между таблици
За да представите връзката "един към много" в проекта
на базата данни, вземете първичния ключ от
страната "един" на връзката и го добавете като
допълнителна колона или колони към таблицата от
страната "много" на връзката
В този случай, например, вие добавяте колоната за ИД на
доставчик от таблицата "Доставчици" към
таблицата "Продукти". След това Access може да
използва ИД номера на доставчика в таблицата
"Продукти", за да намери подходящия доставчик за
всеки продукт
Колоната с ИД на доставчика в таблицата "Продукти" се
нарича “външен” ключ. Един външен ключ
представлява първичен ключ на друга таблица
Колоната с ИД на доставчика в таблицата "Продукти" е
външен ключ, защото той също така е първичен
ключ на таблицата "Доставчици"
13. Релации между таблици
Чрез обединяване на първични и външни ключове се
осигурява релацията на свързаните таблици
Ако не сте сигурни кои от таблиците трябва да
“споделят” обща колона, определянето на връзка
"един към много" обезпечава споделянето на една
колона от двете участващи таблици
14. Релации между таблици
Създаване на връзка "много към много“ (М:М)
Да разгледаме връзката между таблицата "Продукти" и
таблицата "Поръчки"
Една поръчка може да включва повече от един продукт
От друга страна един продукт може да се участва в много
поръчки
Следователно за всеки запис в таблицата "Поръчки"
може да има много записи в таблицата "Продукти“
И за всеки запис в таблицата "Продукти" може да има
много записи в таблицата "Поръчки“
Този тип отношение се нарича връзка "много към много“
(М:М), защото за всеки продукт може да има много
поръчки, както и за всяка поръчка може да има
много продукти
15. Релации между таблици
В момента двете таблици, на Поръчките и Продуктите би
трябвало да имат връзка "Много към много“
Това представлява проблем. За да разберете този проблем,
си представете какво би се случило, ако се опитате да
създадете връзката между двете таблици чрез добавяне
на полето "ИД на продукт" към таблицата "Поръчки“
За да имате повече от един продукт на поръчка, ви е
необходим повече от един запис за тази поръчка в
таблицата "Поръчки". Т.е. ще се повтаря информация
за поръчката на всеки ред, отнасящ се за даден
продукт от поръчката. Резултатът ще бъде
неефективно проектиране и може да доведе до неточни
данни
Ще срещнете същия проблем, ако поставите полето "ИД на
поръчка" в таблицата "Продукти“, т.е. ще ви е
необходим повече от един запис в таблицата
"Продукти" за всеки един продукт от поръчката
Как се решава този проблем?
16. Релации между таблици
Отговорът се състои в създаването на трета таблица,
наричана съединителна таблица, която разбива
връзката "много към много" на две връзки "един
към много". За тази цел вмъкваме първичния ключ
на всяка от тези две таблици в третата таблица
В резултат в третата таблица “Детайли на поръчката” ще
се записва всяко появяване или случай на връзката
17. Релации между таблици
Всеки запис в таблицата “Детайли на поръчката"
представлява един елемент на ред от поръчката
Първичният ключ на таблицата “Детайли на поръчката"
се състои от две полета – външните ключове от
таблиците за Поръчки и Продукти
Използването само на полето "ИД на поръчка" като
първичен ключ на тази таблица не е възможно,
защото в една поръчка може да има много продукти
и "ИД на поръчка" ще се повтаря за всеки продукт в
поръчката, т.е. полето няма да съдържа уникални
стойности, каквото е изискването за ключово поле
Използването само на полето "ИД на продукт" също не е
възможно, защото един продукт може да се появи в
много различни поръчки
Но когато са зададени като съставен ключ, двете полета
винаги дават уникална стойност за всеки запис
18. Релации между таблици
В базата данни за продажба на продуктите, таблицата
"Поръчки" и таблицата "Продукти" не са свързани
пряко една с друга
Вместо това те са свързани непряко чрез таблицата
“Детайли на поръчката“
Отношението "много към много" между поръчките и
продуктите е представено в базата данни чрез
използване на две връзки "един към много":
Таблиците "Поръчки" и "Детайли на поръчката"
имат връзка “1:М". Всяка поръчка може да има
повече от един продукт, но всеки продукт е свързан
само с една конкретна поръчка,
Таблиците "Продукти" и "Детайли на поръчката "
имат връзка “1:М". Всеки продукт може да е свързан
с много поръчки, но всяка поръчка се отнася само за
един конкретен продукт;
продукт
19. Релации между таблици
Всички продукти от една конкретна поръчка може да се
определят от таблицата "Детайли на поръчката“
Може също така да се определят всичките поръчки за
конкретен продукт
След включването на таблицата "Детайли на
поръчката" списъкът на таблиците и полетата може
да има следния вид:
20. Релации между таблици
Създаване на връзка "един към един“ (1:1)
Да предположим, че трябва да запишете някаква
допълнителна информация за продукта, която ще ви
е необходима по-рядко или се отнася само за няколко
продукта
Понеже информацията не ви трябва често и
съхранението й в таблицата "Продукти" ще има за
резултат празно място за всеки продукт, за който не
се отнася, можете да я поставите в отделна таблица
Както при таблицата "Продукти", като първичен ключ
ще се използва ИД на продукта. Връзката между тази
допълнителна таблица и таблицата "Продукти" е от
типа "един към един“
За всеки запис в таблицата "Продукти" съществува един
съответстващ запис в допълнителната таблица. След
като е определена такава връзка, и двете таблици
трябва да споделят общо поле
21. Релации между таблици
Когато откриете необходимост от връзка "един към
един" за базата данни, обмислете дали не може да
сложите информация от двете таблици заедно в една
таблица
Ако не искате да правите това поради някаква причина,
вероятно поради получаването на много празно
място, следващият списък показва как би трябвало
да представите връзката в проекта си:
Ако двете таблици имат един и същ обект, вероятно
можете да зададете връзката като използвате един и
същ първичен ключ за двете таблици,
Ако двете таблици имат различен обект, с различни
първични ключове, изберете една от таблиците (без
значение коя) и вмъкнете първичния й ключ в
другата таблица като външен ключ;
22. Релации между таблици
Определянето на връзките между таблиците ще
ви помогне да се уверите, че имате правилно
проектирани таблици и колони
Когато съществува връзка от типа "един към
един" или "един към много", участващите
таблици трябва да “споделят” обща колона
или колони
Когато съществува връзка от типа "много към
много", за представяне на връзката е
необходима трета таблица
23. Формуляри
Формуляри понякога се наричат "екрани за
въвеждане на данни“ или “входни” форми
Те са интерфейсите, използвани за работа с вашите
данни, и често съдържат командни бутони, които
изпълняват различни команди
Можете да създадете база данни, без да използвате
формуляри, като просто редактирате данните в
листа с данни на таблицата
Повечето потребители на базите данни обаче
предпочитат да използват формуляри, за да
преглеждат, въвеждат и редактират данните в
таблиците
24. Формуляри
Формулярите предоставят лесен за използване формат за
работа с данните, а вие можете да добавяте към тях
функционални елементи, като командни бутони
Можете да програмирате бутоните, за да задавате кои данни да
се показват във формуляра, да отваряте други формуляри
или отчети или да изпълнявате различни други задачи
Например, във формуляра "Формуляр за клиенти", в който
работите с данни за клиентите, може да има бутон, който
отваря формуляр за поръчки, в който можете да въведете
нова поръчка за този клиент
Формулярите Ви позволяват също да управлявате
взаимодействието на потребителите с данните в базата
данни
Например можете да създадете формуляр, който показва само
определени полета и разрешава да се извършват само
определени операции, което помага за защитата на
данните и за правилното им въвеждане
25. Формуляри
Създаване на формуляри за въвеждане на данни в
таблиците (Form):
Form
От панела в ляво се избира съответната таблица,
например Клиенти,
Избира се таб Create,
Натиска се бутон Form,
Натискат се бутоните Close, Yes, OK,
Отварянето на формуляра:
От панела в ляво се избира формуляр Клиенти и се
изпълнява функцията Open от контекстното меню,
Въвеждат се данни в таблицата Клиенти,
Нов запис се въвежда с бутон New или CTRL + + ;
26. Отчети
Отчетите се използват за обобщаване и представяне на
данните от таблиците
Отчетите обикновено отговарят на определен въпрос,
например "Колко пари получихме от всеки клиент
тази година?" или "От кои градове са нашите
клиенти?“
Всеки отчет може да бъде форматиран, за да представя
информацията по възможно най-удобния за четене и
анализ на информацията в него начин
Един отчет може да бъде изпълнен по всяко време и
винаги ще отразява текущите данни в базата данни
Отчетите обикновено са форматирани за отпечатване, но
те може също да бъдат разглеждани на екрана,
експортирани в друга програма или изпращани като
имейли на един или повече получатели
27. Отчети
Създаване на отчети (Reports):
Избира се таб Create и се натиска бутон
Report Wizard,
От списъчното поле Tables/Queries се избира
например Table: Клиенти,
Натискат се последователно бутоните > >,
Next, Next, Next, Next, Next,
Името на отчета може да остане по
подразбиране Клиенти,
Натиска се бутон Finish;
28. Заявки
Заявките могат да изпълняват много различни функции,
но основната им функция е да извличат определени
данни от таблиците
Данните, които искате да видите, обикновено са
разпръснати в няколко таблици и заявките Ви
позволяват да ги покажете в един единствен лист с
данни. Освен това, тъй като обикновено не искате да
видите всички записи наведнъж, заявките ви
позволяват да добавяте критерии, за да
"филтрирате" данните само до желаните записи
Заявките често служат като източник на записи за
формулярите и отчетите
Някои заявки са "обновяеми", което означава, че можете
да редактирате данните в лежащите в основата им
таблици чрез листа с данни на заявката, като имайте
предвид, че вашите промени всъщност се извършват
в таблиците, а не само в листа с данни на заявката
29. Заявки
Заявките имат две основни разновидности:
Заявки за селектиране - заявката за селектиране
само извлича данните и ги прави достъпни за
използване
Резултатите от заявката могат да се разглеждат на
екрана, да се отпечатват и да се копират в
клипборда
Можете също да използвате изхода от заявката като
източник на записи за формуляр или отчет,
Заявки за действия - заявката за действие
извършва действия с данните
Заявките за действия могат да се използват за
създаване на нови таблици, за добавяне на данни
в съществуващи таблици, за модифициране на
данни или за изтриване на данни;
30. Заявки
Създаване на заявки (Queries):
Избира се таб Create и се натиска бутон Query Design,
Избира се първата таблица Клиенти и се натиска
бутон Add, последователно се избират следващите
таблици и се добавят с Add, натиска се бутон Close,
От таблицата Клиенти, с двукратно натискане на
Номер клиент, полето се прехвърля в полето Field,
аналогично се прехвърлят и останалите полета от
съответните таблици, от които се създава заявката,
Натискат се бутоните Close, Yes, в полето Query Name
се въвежда име на заявката, натиска се бутон OK,
Заявката се отваря с функцията Open от контекстното
меню на заявката;
31. Макроси
Макросите в Access може да се разглеждат като
опростен език за програмиране, който можете да
използвате, за да добавяте функционалност към
вашата база данни
Например можете да прикачите макрос към бутон във
формуляр, така че макросът да се изпълнява
винаги, когато бутонът се натисне
Макросите съдържат действия, които изпълняват
определени задачи, например отваряне на отчет,
изпълнение на заявка или затваряне на базата
данни
Повечето операции в базата данни, които извършвате
ръчно, могат да бъдат автоматизирани с помощта
на макроси и това да ви позволи да спестите много
време
32. Модули
Модулите, подобно на макросите, са обекти, които
можете да използвате, за да добавите
функционалност към вашата база данни
За разлика от създаването на макроси в Access чрез
избиране от списък с макродействия, модулите се
записват на езика за програмиране Visual Basic for
Applications (VBA)
Модулът е набор от декларации, команди и процедури,
които се съхраняват заедно като блок. Модулът може
да бъде или модул на клас, или стандартен модул
Модулите на класове се прикачват към формуляри или
отчети и обикновено съдържат процедури, които са
специфични за съответния формуляр или отчет
Стандартните модули съдържат общи процедури, които
не са асоциирани с друг обект. Стандартните модули
са изброени под Модули в навигационния екран,
докато модулите на класове не са
33. Резюме
Microsoft Access 2007 е СУБД, която
управлява база данни с релационен
модел на данните
Включва елементите:
Таблици, Формуляри, Заявки, Отчети,
Макроси, Модули;
34. Въпроси
1.
2.
3.
4.
5.
6.
В колко файла се съхранява информацията за
елементите на една база данни на СУБД Access?
Kакво e файловото разширение на БД, създадени
със СУБД Access?
Какви операции можете да извършвате с помощта на
СУБД Access?
От какви елементи се състои всяка една БД,
създадена със СУБД Access?
От какъв тип са връзките между таблиците
"Доставчици" и "Продукти"?
Какво трябва да направите, ако връзката между
таблиците е от тип “много към много” (М:М)?
35. Въпроси
9.
10.
11.
12.
13.
14.
15.
16.
Кога връзката между таблиците е от тип "един
към един“ (1:1)?
Какво е предназначението на формуляра?
Къде се извеждат отчетите?
Какво е “обновяема” заявка?
Какви са основните два типа заявки?
За какво се използва макроса?
За какво се използва модула?
Какво е общото и различното между макрос и
модул?