РАБОТА С ОБЕКТА „ТАБЛИЦА“
1. Първичен ключ
2. Свързване на таблици в базата.Практическо занятие №1.
3. Проектиране на базата.
4. Процесът „нормализация“ на базата.
5. Анализ и нормализация на данните в СУБД Access.Практическо занятие №2.
6. Самостоятелна работа.
1. Бази от данни
Урок 2: Работа с обекта
„таблица“
Юлиана Пенева
Департамент “Информатика”,НБУ
july_peneva@abv.bg
2. Съдържание
1. Първичен ключ
2. Свързване на таблици в базата.
Практическо занятие №1.
3. Проектиране на базата.
4. Процесът „нормализация“ на базата.
5. Анализ и нормализация на данните в СУБД
Access. Практическо занятие №2.
6. Самостоятелна работа
Юлиана Пенева Бази от данни - урок 2 2
3. Първичен ключ
• Всички бази в Access
се състоят от поне
една таблица (table).
• В таблиците се
съхраняват данните
те са основен
изграждащ блок на
всяка база.
Юлиана Пенева Бази от данни - урок 2 3
Таблиците организират
данните
4. Първичен ключ
• В базата от данни се
предвижда по една
таблица за всеки основен
обект – доставчик,
служител...
• Няма дублиране на данни
в отделните таблици
• Всяка таблица е изградена
от редове, наречени
записи (records) и колони,
наречени полета (fields).
Юлиана Пенева Бази от данни - урок 2 4
Базата се изгражда от
отделни таблици.
5. Първичен ключ
• Записът е съвкупност от
факти за определен обект, за
който се пазят данни в
базата
• Например данните за
доставчик Speedy Express се
съхраняват в таблицата
Доставчик
Юлиана Пенева Бази от данни - урок 2 5
Всеки ред изгражда
запис.
6. Първичен ключ
• Полето може да се
разглежда като единичен
факт, приложим за даден
обект
• Например полето Phone е
смислено за отделните
доставчици
Юлиана Пенева Бази от данни - урок 2 6
Phone и другите
колони са полета
(fields)
7. Първичен ключ
• Полетата в базата
притежават определени
характеристики, които
определят типа на
съхраняваните в тях
данни, извеждането на
данните и възможните
операции върху тях.
Юлиана Пенева Бази от данни - урок 2 7
Всяко поле притежава
характеристики: име,
тип на данните, дали е
главен ключ, свойства.
8. Първичен ключ
1. Име на полето – задавайте
говорещи имена, които да
показват какви данни
съдържа поелта
2. Тип на данните (12
различни типа):
• ограничава и описва вида
на данните, които се
въвеждат в полето -
цифрови, символни, дата...
• определя операциите и
колко памет се заделя за
полето
Юлиана Пенева Бази от данни - урок 2 8
Всяко поле притежава
характеристики: име,
тип на данните, главен
ключ, свойства.
9. Първичен ключ
3. Главен (първичен) ключ –
единствен идентификатор
на отделния ред в дадена
таблица.
4. Свойства на полето -
служат за допълнителен
контрол върху данните в
полето. По този начин се
улеснява въвеждането и
контрола (формален и
логически) върху данните.
Юлиана Пенева Бази от данни - урок 2 9
Всяко поле притежава
характеристики: име,
тип на данните, главен
ключ, свойства.
10. Първичен ключ
Свойства на полето (Field properties)
1. Field Size - размер на полето, определен в зависимост от типа на данните.
2. Format – начин на показване на данните – 17 формата.
3. Input mask - маска или шаблон за въвеждане на данни. Показва какъв символ може
да бъде въведен на всяка позиция в полето. Символ 0 от шаблона - на съответната
позиция може да се въведе само цифра, символ # - въвежда се цифра или на
интервал, символ ? - незадължително въвеждане на символ..... Ако не е зададен,
стойността на полето се определя от типа.
4. Caption - етикет, извеждан пред полето при генериране на форми за въвеждане на
данни. Ако не е зададен, извежда се името на колоната.
5. Default value – стойност по подразбиране, попълва се автоматично при добавяне на
записи, може да се редактира от потребителя.
6. Validation Rule - правило за валидност на данните в колоната, представлява
логически израз, истинността на който означава, че въведената в полето стойност е
валидна. Ограничения за цялостност!!
7. Validation text - съобщение за грешка при опит за въвеждане на данни, които не
отговарят на правилото за валидност.
8. Required – задължително въвеждане на стойност в полето.
9. …………………………………………………………………
Юлиана Пенева Бази от данни - урок 2 10
11. Първичен ключ
Как се създава ключ?
1. Избира се една от колоните, за която е сигурно че няма
да има повтарящи се стойности за различни редове –
например подобна колона може да бъде ЕГН или
факултетен номер на студента.
2. Ако една от колоните в таблицата е недостатъчна, за
да образува първичен ключ тогава се избират две или
повече колони – съставен първичен ключ.
3. В случаите когато в таблицата няма подходящи за
първичен ключ колони, тогава Access се грижи да
номерира отделните редове в таблицата.
Юлиана Пенева Бази от данни - урок 2 11
12. Първичен ключ
• Добре структурираната база
не притежава два напълно
идентични записа.
• Всеки запис в дадена
таблица е уникален.
• Например не може за
съществуват два записа с
данни за Nancy Davolio.
Юлиана Пенева Бази от данни - урок 2 12
Данните за всеки
служител трябва да
образуват уникален
запис.
13. Първичен ключ
• За да се различават записите в
таблицата едно от полетата в се
избира за главен ключ.
• Главният ключ представлява
идентификатор. Неговите стойности
са различни на всеки запис.
• Изборът на главен ключ зависи от
значението на колоните.
• Спазва се правилото: независимо от
обработките отделните записи да се
различават един от друг.
• Например изборът на полето
Фамилия за ключ на СЛУЖИТЕЛ e
неудачен - в предприятието може да
работят двама служители с еднакви
фамилни имена.
Юлиана Пенева Бази от данни - урок 2 13
Данните за всеки
служител трябва да
образуват уникален
запис.
14. Първичен ключ
Ако няма подходящо за главен
ключ поле?
• Access присвоява числов главен
ключ, който се увеличава с 1
при всяко въвеждане на запис в
таблицата.
• По този начин на всеки запис се
присвоява число.
• Присвоеният от Access главен
ключ остава свързан с дадения
запис, независимо от
добавянето или изтриването на
записи, въведени преди
дадения запис в базата.
Юлиана Пенева Бази от данни - урок 2 14
Данните за всеки
служител трябва да
образуват уникален
запис.
15. Първичен ключ
• Правило: всяка таблица
трябва да притежава главен
ключ.
ЗАЩО?
• Главният ключ разделя
подобни данни и прави всеки
запис уникален.
• Главният ключ служи за
свързване на информацията
в базата.
Юлиана Пенева Бази от данни - урок 2 15
Данните за всеки
служител трябва да
образуват уникален
запис.
16. Свързване на две таблици
• Главният ключ служи за
свързване на таблиците.
• Таблиците се свързват, за да
се избегне повторението на
едни и същи данни.
• Когато две таблици са
свързани главният ключ на
едната таблица става чужд
ключ на другата.
Например:
Employee ID е главен ключ на
таблицата Employees.......
…и чужд (външен) ключ на
таблицата Orders.
Юлиана Пенева Бази от данни - урок 2 16
Главен и чужд ключ
17. Свързване на две таблици
1. Две таблици се свързват чрез създаване на двойки
„главен ключ-външен ключ“.
2. Необходимо е да се открият всички подобни двойки и да
се отбележат в съответните им таблици.
Юлиана Пенева Бази от данни - урок 2 17
18. Свързване на две таблици
Юлиана Пенева Бази от данни - урок 2 18
Видове връзки между таблиците в базата
1. Едно-към-едно (1:1) – на всеки запис от таблица
А съответства точно един запис от таблица В.
2. Едно-към-много(1:N) – с един запис от таблица А
са свързани няколко записа от таблицата В.
3. Много-към-много – с един запис от таблица А са
свързани няколко записа от таблица В и на един
запис от таблица В съответстват няколко записа
от таблица А.
19. Свързване на две таблици
Юлиана Пенева Бази от данни - урок 2 19
Практическо занятие №1
Задача: свържете таблиците DEPARTMENT и EMPLOYEE.
Стъпка 1. Избира Database Tools и след това Relationships
Стъпка 2. От контекстното меню с щракане върху Show Table се извежда
списък на таблиците. Избират се таблиците, които участват във
връзката.
Стъпка 3. Като се използва съответствието „главен ключ-външен ключ“
се избира главната таблица – тази, в която полето е първичен ключ с
уникални стойности – DEPARTMENT. Щраква се върху полето и при
натиснат ляв бутон се мести и пуска върху съответстващото му поле – в
нашия пример това е DepartmentId от EMPLOYEE. В прозореца Edit
Relationship се указват на СУБД да проверява автоматично коректността
на въвежданите данни.
Стъпка 4. Щраква се върху Create и връзката е създадена.
20. Проектиране на базата
Юлиана Пенева Бази от данни - урок 2 20
1. Етап 1: Събиране и анализ на изискванията
2. Етап 2: Концептуално проектиране – създава се абстрактен модел
на базата от данни като се използват събраните изисквания.
3. Етап 3: Логическо проектиране – създава се структурата на базата
от данни с избрания за реализация софтуер от тип СУБД.
Дейности:
Стъпка 1 Планиране на таблици – за всеки обект се предвижда по
една таблица.
Стъпка 2 Избор на типове данни – това е формат, който дефинира
вида на данните във всяко поле.
Стъпка 3 Посочване на първичен ключ – не е задължително, но е
препоръчително, за да няма дублиране на данните.
Стъпка 4 Посочване на общите полета - първичен и външен ключ.
Стъпка 5 Свързване на таблиците.
21. Нормализация на базата
Юлиана Пенева Бази от данни - урок 2 21
1. Нормализацията на данните - процес, при който
таблиците с неподходяща структура (много на брой
колони) се разлагат на по-малки таблици.
2. Цел - е да се осигури добър проект на таблиците и
да няма повторение на едни и същи данни в няколко
от тях.
3. На всеки етап от нормализацията таблиците се
привеждат в определен вид, наречен нормална
форма - в практиката се прилагат първа, втора и
трета нормални форми.
4. Всяка нормална форма представлява правило и
таблицата се подлага на проверка дали го
удовлетворява.
5. Добър проект на базата от данни означава, че всяка
таблица е в трета нормална форма.
22. Нормализация на базата
Пример
Еmployee
Юлиана Пенева Бази от данни - урок 2 22
Emplo
yeeID
FullName Position Salary Depar
tment
Phone
1 Нина Табакова програмист 2600 11 111111111
2 Ана Попова проектант 3000 22 222222222
3 Георги Коцев проектант 3400 22 222222222
4 Иван Петров програмист 4000 11 111111111
5 Иван Петров администратор 4000 11 111111111
Анализ:
1. Има дублиране на данните за длъжности и отдели.
2. Ако се смени телефонния номер на даден отдел се
налага промяната да бъде отразена коректно във
всички записи.
3. Не възможно да се въведат данните за нов отдел, ако
към него не е назначен поне един служител (ключът
не може да е с невъведена стойност!
23. Нормализация на базата
Юлиана Пенева Бази от данни - урок 2 23
1. Съгласно правилата за нормализация таблицата трябва да се
раздели на таблици с по-малък брой колони като всяка от тях се
проверява последователно дали изпълнява изискванията на
нормалните форми.
2. Започва се от първа нормална форма.
3. Тя изисква във всяка клетка на таблицата да има неделима,
неразложима стойност.
4. С други думи първа нормална форма забранява полето да
съдържа няколко стойности или групи от стойности (това е
основното различие с Excel).
Employ
eeID
FName Lname Position Salary Depar
tment
Phone
1 Нина Табакова програмист 2600 11 111111111
2 Ана Попова проектант 3000 22 222222222
3 Георги Коцев проектант 3400 22 222222222
4 Иван Петров програмист 4000 11 111111111
5 Иван Петров администратор 4000 11 111111111
24. Нормализация на базата
Проверки за втора нормална форма
За целта се анализират стойностите в полетата.
При наличието на много еднакви стойности таблицата трябва
да се разложи на подходящи по-малки таблици.
Правилото за привеждане на дадена таблица във втора
нормална форма е следното:
1. Таблицата е в първа нормална форма.
2. Таблицата съдържа данни за единствена
информационна единица.
3. Таблицата има ключ.
Юлиана Пенева Бази от данни - урок 2 24
25. Нормализация на базата
Проверки за втора нормална форма
Юлиана Пенева Бази от данни - урок 2 25
EMPLOYEE
EmployeeID FName Lname Salary
1 Нина Табакова 2600
2 Ана Попова 3000
3 Георги Коцев 3400
4 Иван Петров 4000
POSITION
PositionID PositionName
1 програмист
2 проектант
3 администратор
DEPARTMENT
DepartmentID DepartmentN Phone
1 11 111111111
2 22 222222222
26. Нормализация на базата
Проверки за трета нормална форма
1. Трета нормална форма налага правилото: колоните в
таблицата да се определят еднозначно от ключа. Това
означава в таблицата да няма колони, които не участват
в ключа и от тях да зависят други колони.
2. На практика това означава таблицата да е приведена във
втора нормална форма и да се определят връзките
между таблиците. За целта може да се наложи
въвеждането на външни ключове в таблиците и
изграждането на свързваща таблица при наличието на
връзка от вида „много-към много“.
Юлиана Пенева Бази от данни - урок 2 26
27. Нормализация на базата
Проверки за трета нормална форма
1. Въвеждане на външен ключ DepartmentID в таблицата
EMPLOYEE за да се свържат таблиците EMPLOYEE и
DEPARTMENT.
Юлиана Пенева Бази от данни - урок 2 27
EmployeeID FName Lname Salary DepartmentID
1 Нина Табакова 2600 1
2 Ана Попова 3000 2
3 Георги Коцев 3400 2
4 Иван Петров 4000 1
DepartmentID DepartmentN Phone
1 11 111111111
2 22 222222222
28. Нормализация на базата
Проверки за трета нормална форма
2. Създаване на свързваща таблица за обработване на
връзката „много-към-много“. В нея участват като полета
ключовете на двете таблици, за които тя се явява
свързваща таблица.
Юлиана Пенева Бази от данни - урок 2 28
ID PositionID EmployeeID
1 1 1
2 2 2
3 2 3
4 3 4
29. Нормализация на базата
Проверки за трета нормална форма
1. Таблиците да съдържат само атомарни данни (изискване
на първа нормална форма).
2. В таблиците няма дублиране на данните.
3. Таблиците съдържат външни ключове и могат да се
свържат правилно помежду си.
В Access се предлага Съветник за анализ на таблиците – Table
Analyzer Wizard, който се стартира от лентата с инструменти
като се избира Database Tools и след това Analyze Table.
Юлиана Пенева Бази от данни - урок 2 29