SlideShare a Scribd company logo
1 of 37
Бази от данни
Урок 3: Работа с обекта
„заявка“
Юлиана Пенева
Департамент “Информатика”,НБУ
july_peneva@abv.bg
Съдържание
1. Релационни операции.
2. Характеристики на езика SQL.
3. Основни заявки на SQL.
4. Формулиране на заявки в MS Access.
Практическо занятие.
Юлиана Пенева Бази от данни - урок 3 2
Релационни операции
Операциите на релационния модел служат за обновяване на
базата и за извличане на данни, които отговарят на
определени условия. Биват:
1. Операции за обновяване на базата
• въвеждане на нов ред в дадена таблица;
• изтриване – изтрива указан ред в таблица;
• модифициране - променя на стойностите на една или няколко
колони в дадена таблица.
2. Операции за извличане на данни – задават се от
релационната алгебра.
• нейните операции се използват за избор на редове от
определени таблици и за тяхното комбиниране, за да се
удовлетвори зададена към базата потребителска заявка;
• резултатът от всяка операция на релационната алгебра е
таблица.
Юлиана Пенева Бази от данни - урок 3 3
Релационна алгебра
Код предлага осем операции, разделени на две групи:
1.Множествени операции:
– обединение (union) – бележи се с ;
– сечение (intersection) – бележи се с 
– разлика (difference) – бележи се с 
– декартово произведение (Cartesian product) – бележи
се с Х
Приложими – всяка таблица е множество от редове.
2.Релационни операции:
– селекция (select) – бележи се с 
– проекция (project) - бележи се с 
– съединение (join) – бележи се с
– деление (division) – бележи се с 
Разработени са специално за релационните бази от данни.
Юлиана Пенева Бази от данни - урок 3 4
Релационна алгебра
Операция селекция 
1. Служи за избор на редове от дадена таблица, които
удовлетворяват предварително зададено условие
(критерий) за търсене.
2. Действието на селекцията представлява по същество,
филтриране на кортежите и извеждане само на онези от
тях, които удовлетворяват зададеното условие.
3. Общ вид на операцията:
Юлиана Пенева Бази от данни - урок 3 5
 

таблицанаиме
изборзаусловие

Релационна алгебра
Условието за избор може да бъде от вида:
• непосредствено условие:
<име на колона> <оператор за сравнение> <константа>
където оператор за сравнение може да бъде: ≤, ≥, ≠, =, >, <
• условие за избор от общ вид: отделните прости условия
могат да бъдат свързани с логическите оператори and,
or, not.
Резултатът е таблица и съдържа редовете, чиито колони
удовлетворяват зададеното условие.
Юлиана Пенева Бази от данни - урок 3 6
Релационна алгебра
Пример 1: Да се изведе информация за служителите,
които работят в отдел с номер 4.
Юлиана Пенева Бази от данни - урок 3 7
)(
4
EMPLOYEE
DNO 

Мария Пенева 6803183465 Ж ж.к.Люлин,бл.430 4 4610226861 2500
Димитър Иванов 6212018876 М ул.В.Левски N67 4 4610226861 2200
Петър Петров 6011085342 М ул.Парчевич N23 4 4610226861 2700
Христо Георгиев 4610226861 М ж.к.Красно
село,бл.7
4 4610226861 3000
Релационна алгебра
Пример 3: Да се изведат кортежите за всички служители,
които работят в отдел номер 4 и печелят над 2500.
Юлиана Пенева Бази от данни - урок 3 8
)(
25004
EMPLOYEE
salaryandDNO 

Петър Петров 6011085342 М ул.Парчевич N23 4 4610226861 2700
Христо Георгиев 4610226861 М ж.к.Красно село,бл.7 4 4610226861 3000
Пример 2: Да се изведе списък на служителите, които
получават над 3000 лева.
Релационна алгебра
Операция проекция 
1. Операцията служи за избор на определени
колони от дадена таблица.
2. Общ вид на операцията:
<списък от колони>(<име на таблица>)
3. Резултатът съдържа само указаните в
списъка колони, в реда, по който са описани.
Юлиана Пенева Бази от данни - урок 3 9
Релационна алгебра
Пример 4: Да се изведе списък на служителите и заплатите им.
 fname , lname, salary(EMPLOYEE)
Юлиана Пенева Бази от данни - урок 3 10
Иван Петров 1800
Анелия Симеонова 3500
Мария Пенева 2500
Димитър Иванов 2200
Петър Петров 2700
Христо Георгиев 3000
Виолета Симова 2000
Ангел Ангелов 2500
Теодора Стоянова 2000
Релационна алгебра
Операция съединение
1. Комбинира свързани помежду си редове от две
таблици в един ред.
2. Позволява обработката на връзки между отделните
отношения.
Юлиана Пенева Бази от данни - урок 3 11
Пример 4: Да се изведе списък на служителите и имената
на отделите, в които работят.
За да се изпълни тази заявка е необходимо да се
комбинира всеки ред от таблицата DEPARTMENT с всеки
ред на таблицата EMPLOYEE, за които Dno = Dnumber.
За целта се изпълнява операцията "съединение".
EMPLOYEE Dno=Dnumber DEPARTMENT
Релационна алгебра
Юлиана Пенева Бази от данни - урок 3 12
Релационна алгебра
Множествени операции
1. Това са стандартните математически операции върху
множества, които са приложими при релационния модел,
защото по дефиниция таблицата е множество от редове.
2. За сливане на елементи от две множества се прилагат
операциите: сечение , обединение  и разлика  .
3. За таблиците е необходимо да бъдат с еднаква
структура, т.е. да имат един и същи брой полета от
еднакъв тип.
Юлиана Пенева Бази от данни - урок 3 13
Релационна алгебра
Множествени операции
1. Обединение - A  B
Резултатът е таблица, която съдържа всички редове от R и S, като
повтарящите се редове са отстранени.
Юлиана Пенева
Бази от данни - урок 3
14
2. Сечение – A  B
Резултатът е таблица, която съдържа всички редове, които са
едновременно в R и в S като повтарящите се редове са
отстранени.
3. Разлика – A  B
Резултатът е таблица, която съдържа редовете от R, които не се
повтарят с редове от S.
Релационна алгебра
Примери на сечение и обединение
Дадени са отношенията STUDENT и INSTRUCTOR – вж.(а)
• STUDENT  INSTRUCTOR – вж.(b)
• STUDENT  INSTRUCTOR – вж.(c)
Юлиана Пенева Бази от данни - урок 3 15
Релационна алгебра
Декартово произведение
1. Не се изисква таблиците да са с еднаква структура.
2. Операцията комбинира всеки ред от едната таблица с
всеки ред от другата таблица.
3. Резултатът е нова таблица, която съдържа всички
колони на изходните таблици и по един ред за всяка
комбинация от техните редове.
Юлиана Пенева Бази от данни - урок 3 16
Релационна алгебра
Трудна за използване и затова са разработени още две категории
средства за обработка на базата:
1. Езици, ориентирани към трансформация
При тях потребителят описва какво да се изведе от базата без
да указва начина, по който да стане това. Входните данни се
преобразуват в необходимия изход, като за целта се
използват фиксирани структури за описание на търсения
резултат. Такива езици са: SQUARE, SEQUEL и производния
нему SQL.
2. Графични езици.
Графичните езици използват шаблони на заявки, които
потребителят попълва с примери, описващи нужния резултат.
Такъв език е Query-by-Example, създаден първоначално в IBM
през 1977 и понастоящем реализиран в СУБД Access.
Юлиана Пенева Бази от данни - урок 3 17
Характеристики на езика SQL
1. SQL не е език за програмиране.
2. Езикът е стандартизиран и понастоящем се реализира във
всички СУБД с релационен модел.
3. Отделните реализации на езика в конкретен софтуер се
наричат „диалекти“ и се различат по синтаксиса на командите.
4. Разработен е стандарт, наречен SQL2 (SQL’92).
5. Разработен е стандарт, наречен SQL3, който разширява
стандартния език SQL с обектно-ориентирани понятия.
6. Допълнително са разработени следните стандарти:
– през 2003 г. -SQL:2003 (ISO, 2003);
– през лятото на 2008 г.- SQL:2008 (ISO/IEC, 2008);
– през 2011 - SQL:2011 (ISO, 2011).
7. Последна версия на стандарта (ISO/IEC, 2016) е предложена
през 2016 г. Добавени са възможности за работа с XML.
Юлиана Пенева Бази от данни - урок 3 18
Характеристики на езика SQL
С помощта на команди на SQL е възможно:
• създаване, обновяване или изтриване на обекти в
базата;
• свързване на обекти в базата;
• избор на данни от базата, които отговарят на
определено условие;
• въвеждане, обновяване и изтриване на данни;
• проверка за непротиворечивост на данните.
Юлиана Пенева Бази от данни - урок 3 19
Характеристики на езика SQL
Видове команди в SQL
Юлиана Пенева Бази от данни - урок 3 20
Характеристики на езика SQL
1. Работа с езика SQL се осъществява чрез различни видове
заявки.
2. Заявката указва какви операции да се извършат върху
данните от базата.
3. Възможни са четири основни операции:
• извличане на данни;
• въвеждане на нов елемент;
• модифициране на съществуващи данни;
• изтриване.
4. Заявките работят с таблиците, които са основната
структура за съхранение на данните в релационния
модел.
5. Резултатът от заявката е таблица и обикновено се
извежда на екран.
Юлиана Пенева Бази от данни - урок 3 21
Основни заявки на SQL
1. SQL притежава единствен оператор за извличане на данни от базата
– SELECT.
2. Основният елемент на езика SQL е т.нар. SELECT-FROM-WHERE
блок (или изображение), което има вида:
SELECT <списък от колони>
FROM <списък от таблици>
WHERE <условие>
където:
• <списък от колони> представлява списък от имената на
колоните, чиито стойности се извеждат в резултата;
• <списък от таблици> представлява списък от имена на
таблици, съдържащи данните, необходими за обработката;
• <условие> представлява критерий за търсене, който описва
редовете, участващи в резултата от заявката.
3. В повечето реализации на езика всяка SELECT заявка завършва с ;.
4. Базовите заявки на езика SQL отговарят на основните релационни
операции – селекция, проекция и съединение.
Юлиана Пенева Бази от данни - урок 3 22
Основни заявки на SQL
Примерите използват база от данни със следната релационна схема:
Юлиана Пенева Бази от данни - урок 3 23
Заявка 1: Да се изведе рождената дата и адреса на служителя
Иван Петров.
SELECT Bdate, Address
FROM EMPLOYEE
WHERE Fname = 'Иван' AND Lname = 'Петров
Заявка 2: Да се изведат номерата на служителите
SELECT Ssn
FROM EMPLOYEE
Заявка 3: Да се изведат данните за служителите, работещи в
отдел номер 5.
SELECT *
FROM EMPLOYEE
WHERE Dno = 5
Основни заявки на SQL
Заявка 4: Да се изведат заплатите на служителите.
Вариант 1:
SELECT Salary
FROM EMPLOYEE
Извеждат се всички заплати, повторение на данните.
Вариант 2:
SELECT DISTINCT Salary
FROM EMPLOYEE
Извеждат се само различните стойности на заплатите, независимо
колко служители имат такава заплата.
Заявка 5: Да се изведат номерата на всички служители, които работят по
проекти с номера 1,2 или 3.
SELECT DISTINCT Essn
FROM WORKS_ON
WHERE Pno IN (1,2,3)
Юлиана Пенева Бази от данни - урок 3 24
Основни заявки на SQL
Заявка 6: Да се изведат имената на служители, които нямат ръководители.
SELECT Fname, Lname
FROM EMPLOYEE
WHERE Superssn IS NULL
Заявка 7: Да се изведат имената на служителите, които живеят в Пловдив.
SELECT Fname, Lname
FROM EMPLOYEE
WHERE Address LIKE '%Пловдив%‚
Заявка 8: Да се изведат имената на служителите, родени през 90-те
години.
SELECT Fname, Lname
FROM EMPLOYEE
WHERE Bdate LIKE '_______9_'
Юлиана Пенева Бази от данни - урок 3 25
Основни заявки на SQL
Заявка 9: Да се изведат имената и адресите на всички служители,
които работят в отдел 'Изследователски'.
SELECT Fname,Lname,Address
FROM EMPLOYEE,DEPARTMENT
WHERE Dname='Изследователски' AND Dnumber=Dno
При изброени две таблици се задава едно условие за съединение като
се съблюдава връзката „главен ключ – външен ключ“.
Заявка 10: Да се изведат номерата на служителите и имената на
отделите, в които работят.
SELECT Ssn, Dname
FROM EMPLOYEE, DEPARTMENT
Декартово произведение!
Юлиана Пенева Бази от данни - урок 3 26
Формулиране на заявки в MS Access
В MS Access заявки могат да се формулират по два
начина:
• с помощта на шаблон като се използва езикът Query-by-
Example;
• с помощта на езика SQL.
1. Заявка – средство за комбиниране на данни от
различни таблици.
2. Заявките се изграждат като се посочват:
• таблиците, от които се черпят данни;
• условията, на които данните трябва да отговарят.
3. Използва се query design grid – бланка за заявка,
където се указват условията.
4. С помощта на заявки могат да се обновяват данните.
5. Резултатът от всяка заявка е таблица, в която данните
могат да се обработват с други заявки.
Юлиана Пенева Бази от данни - урок 3 27
Формулиране на заявки в MS Access
6. Заявките служат за извличане на данни от базата въз
основа на зададено условие за търсене.
7. Заявките съдържат в себе си логиката, въз основа на
която се извличат данните.
8. Access позволява изпълняване на различни видове
заявки, свързващи данни от различни таблици.
Юлиана Пенева Бази от данни - урок 3 28
Юлиана Пенева Бази от данни - урок 3 29
Формулиране на заявки в MS Access
• Това е резултат от
изпълнението на заявка,
която от таблицата
Employees извлича
имената на служителите,
които живеят в UK.
Резултат от заявка
Юлиана Пенева Бази от данни - урок 3 30
Формулиране на заявки в MS Access
Видове заявки
Select Query
1. Връща като резултат данни от една или повече
таблици и ги показва в нова, резултатна таблица.
2. Данните в резултата могат да се обновяват, като
промените се отразяват и в изходните таблици.
3. Select заявка може да се използва за групиране на
записи и изчисляване на агрегатни функции.
Юлиана Пенева Бази от данни - урок 3 31
Формулиране на заявки в MS Access
Видове заявки
Action Query
1. Заявка за промяна на данните или структурата на
таблицата.
2. Видове:
• Make-table query – създава нова таблица с данни от вече
съществуващи таблици; използва се за експортиране на данни в
друга база или за архивиране на вече ненужни данни;
• Append query – добавя нови записи в края на съществуваща
таблица;
• Update query – осъществява актуализация на един или повече
записи в дадена таблица;
• Delete query – изтрива редове от таблица.
Юлиана Пенева Бази от данни - урок 3 32
Формулиране на заявки в MS Access
Видове заявки
SQL заявки
1. Въвеждат се в режим SQL view.
2. При създаването на заявка в Design View,
Access построява съответстващия й SQL израз.
3. Някои заявки се създават само в SQL View.
Юлиана Пенева Бази от данни - урок 3 33
Формулиране на заявки в MS Access
Стъпки
1. Отваря се базата от данни.
2. Избира се режим – Design view, Query Wizard…
3. Design view позволява създаването на прости заявки
– предлага се списък на таблиците, изграждащи
отворената база.
Формулиране на заявки в MS Access
При избор на Design View
1. Извежда се прозорец Show Table.
2. От него се избират таблици или заявки, които
участват в заявката.
3. На всяка заявка се присвоява име Query1,2…
4. Избират се полета Fields.
5. Задава се сортировка – ред Sort.
6. Задава се критерий за търсене.
7. Заявката се изпълнява с бутон Run от меню Design,
за да се види резултата.
8. Затваря се заявката, дава й се име.
Юлиана Пенева Бази от данни - урок 3 34
Формулиране на заявки в MS Access
При избор на Query Wizard
1. Извежда се прозорец New Query.
2. От него се избира вида на заявката и се изпълняват
предложените стъпки.
Юлиана Пенева Бази от данни - урок 3 35
Юлиана Пенева Бази от данни - урок 3 36
Формулиране на заявки в MS Access
Особености на съединението
1. За да се извличат данни от няколко таблици се
изисква таблиците да са свързани.
2. Таблиците се свързват по ключови полета, имащи
общи значения (външен ключ – главен ключ!).
3. В различните видове софтуер от вида СУБД се
реализират различни видове съединение.
4. Винаги е налице т.нар. вътрешно съединение, при
което условието за съединение е от вида:
<име на колона от таблица1>=<име на колона от таблица2>
5. Резултатът съдържа записите от Таблица2, чиито
стойности съвпадат със свързаните им полета в
Таблица1(съдържа външен ключ).
Юлиана Пенева Бази от данни - урок 3 37
Формулиране на заявки в MS Access
Вътрешно съединение

More Related Content

What's hot

Baze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana IvkovićBaze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana IvkovićNašaŠkola.Net
 
ილუსტრაციები.ანი ლიპარტელიანი
ილუსტრაციები.ანი ლიპარტელიანიილუსტრაციები.ანი ლიპარტელიანი
ილუსტრაციები.ანი ლიპარტელიანიOlgha Bochorishvili
 
Презентація доповнена реальність. Ю. В. Єчкало, В. В. Ткачук
Презентація доповнена реальність. Ю. В. Єчкало, В. В. ТкачукПрезентація доповнена реальність. Ю. В. Єчкало, В. В. Ткачук
Презентація доповнена реальність. Ю. В. Єчкало, В. В. ТкачукVictoriya Tkachuk
 
Поняття моделі даних, бази даних
Поняття моделі даних, бази данихПоняття моделі даних, бази даних
Поняття моделі даних, бази данихVladyslavKochkin
 
Priprema 5. razred - Microsoft Word
Priprema 5. razred - Microsoft WordPriprema 5. razred - Microsoft Word
Priprema 5. razred - Microsoft WordPogled kroz prozor
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...DAVID Academy
 
Moć, vlast i država
Moć, vlast i državaMoć, vlast i država
Moć, vlast i državaElena Novak
 
7 клас 3 урок. Використання адресної книги. Операції над папками та листами.
7 клас 3 урок. Використання адресної книги. Операції над папками та листами.7 клас 3 урок. Використання адресної книги. Операції над папками та листами.
7 клас 3 урок. Використання адресної книги. Операції над папками та листами.StAlKeRoV
 
Diretrizes brasileiras de diabetes 2013/2014
Diretrizes brasileiras de diabetes 2013/2014Diretrizes brasileiras de diabetes 2013/2014
Diretrizes brasileiras de diabetes 2013/2014Arquivo-FClinico
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична роботаAnna Popravka
 
Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.Lesia Sobolevska
 
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...kirre_66
 
Elektronsko nasilje
Elektronsko nasiljeElektronsko nasilje
Elektronsko nasiljeAllex Babic
 
VI კლასი --ვიქტორინა ისტ-ში
VI  კლასი --ვიქტორინა ისტ-შიVI  კლასი --ვიქტორინა ისტ-ში
VI კლასი --ვიქტორინა ისტ-შიkhatushka
 

What's hot (20)

Baze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana IvkovićBaze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka - Stefan Nikolić - Silvana Ivković
 
Baze podataka
Baze podatakaBaze podataka
Baze podataka
 
ილუსტრაციები.ანი ლიპარტელიანი
ილუსტრაციები.ანი ლიპარტელიანიილუსტრაციები.ანი ლიპარტელიანი
ილუსტრაციები.ანი ლიპარტელიანი
 
Презентація доповнена реальність. Ю. В. Єчкало, В. В. Ткачук
Презентація доповнена реальність. Ю. В. Єчкало, В. В. ТкачукПрезентація доповнена реальність. Ю. В. Єчкало, В. В. Ткачук
Презентація доповнена реальність. Ю. В. Єчкало, В. В. Ткачук
 
Baze podataka
Baze podatakaBaze podataka
Baze podataka
 
Softver
SoftverSoftver
Softver
 
Поняття моделі даних, бази даних
Поняття моделі даних, бази данихПоняття моделі даних, бази даних
Поняття моделі даних, бази даних
 
Priprema 5. razred - Microsoft Word
Priprema 5. razred - Microsoft WordPriprema 5. razred - Microsoft Word
Priprema 5. razred - Microsoft Word
 
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
Курс по информационни технологии (2013) - 2. Бази данни. Системи за управлени...
 
Moć, vlast i država
Moć, vlast i državaMoć, vlast i država
Moć, vlast i država
 
презентація учнів
презентація учнівпрезентація учнів
презентація учнів
 
7 клас 3 урок. Використання адресної книги. Операції над папками та листами.
7 клас 3 урок. Використання адресної книги. Операції над папками та листами.7 клас 3 урок. Використання адресної книги. Операції над папками та листами.
7 клас 3 урок. Використання адресної книги. Операції над папками та листами.
 
Nasilje na internetu
Nasilje na internetuNasilje na internetu
Nasilje na internetu
 
Diretrizes brasileiras de diabetes 2013/2014
Diretrizes brasileiras de diabetes 2013/2014Diretrizes brasileiras de diabetes 2013/2014
Diretrizes brasileiras de diabetes 2013/2014
 
Лабораторно-Практична робота
Лабораторно-Практична роботаЛабораторно-Практична робота
Лабораторно-Практична робота
 
Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.
 
კვლევა
კვლევაკვლევა
კვლევა
 
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
реферат по безопасност и защита на Microsoft мрежи и приложения на тема Googl...
 
Elektronsko nasilje
Elektronsko nasiljeElektronsko nasilje
Elektronsko nasilje
 
VI კლასი --ვიქტორინა ისტ-ში
VI  კლასი --ვიქტორინა ისტ-შიVI  კლასი --ვიქტორინა ისტ-ში
VI კლასი --ვიქტორინა ისტ-ში
 

Similar to DBT_3

18 operatori i funkcii
18 operatori i funkcii18 operatori i funkcii
18 operatori i funkciiIvan Peev
 
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)RaynaITSTEP
 
Nakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroNakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroSvetlin Nakov
 
20 podzajavki v select
20 podzajavki v select20 podzajavki v select
20 podzajavki v selectIvan Peev
 
21a manipulirane na danni v sql server upraznenie
21a manipulirane na danni v sql server   upraznenie21a manipulirane na danni v sql server   upraznenie
21a manipulirane na danni v sql server upraznenieIvan Peev
 
21 manipulirane na danni v sql server
21 manipulirane na danni v sql server21 manipulirane na danni v sql server
21 manipulirane na danni v sql serverIvan Peev
 
19 saedinenia na tablici
19 saedinenia na tablici19 saedinenia na tablici
19 saedinenia na tabliciIvan Peev
 
17 klauzi upraznenia
17 klauzi   upraznenia17 klauzi   upraznenia
17 klauzi uprazneniaIvan Peev
 
23a sazdavane na izgledii v sql server upraznenie
23a sazdavane na izgledii v sql server   upraznenie23a sazdavane na izgledii v sql server   upraznenie
23a sazdavane na izgledii v sql server upraznenieIvan Peev
 

Similar to DBT_3 (11)

16 klauzi
16 klauzi16 klauzi
16 klauzi
 
18 operatori i funkcii
18 operatori i funkcii18 operatori i funkcii
18 operatori i funkcii
 
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
РАБОТА С ОБЕКТА „ЗАЯВКА“ (2)
 
Nakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - IntroNakov - RDBMS Systems - Intro
Nakov - RDBMS Systems - Intro
 
20 podzajavki v select
20 podzajavki v select20 podzajavki v select
20 podzajavki v select
 
21a manipulirane na danni v sql server upraznenie
21a manipulirane na danni v sql server   upraznenie21a manipulirane na danni v sql server   upraznenie
21a manipulirane na danni v sql server upraznenie
 
21 manipulirane na danni v sql server
21 manipulirane na danni v sql server21 manipulirane na danni v sql server
21 manipulirane na danni v sql server
 
19 saedinenia na tablici
19 saedinenia na tablici19 saedinenia na tablici
19 saedinenia na tablici
 
DBT_2
DBT_2DBT_2
DBT_2
 
17 klauzi upraznenia
17 klauzi   upraznenia17 klauzi   upraznenia
17 klauzi upraznenia
 
23a sazdavane na izgledii v sql server upraznenie
23a sazdavane na izgledii v sql server   upraznenie23a sazdavane na izgledii v sql server   upraznenie
23a sazdavane na izgledii v sql server upraznenie
 

More from RaynaITSTEP

Project management professional
Project management professionalProject management professional
Project management professionalRaynaITSTEP
 
Project management it step
Project management it stepProject management it step
Project management it stepRaynaITSTEP
 
monitoring and diagnostics
monitoring and diagnosticsmonitoring and diagnostics
monitoring and diagnosticsRaynaITSTEP
 
network security
network securitynetwork security
network securityRaynaITSTEP
 
configuring disk sand drivers
configuring disk sand driversconfiguring disk sand drivers
configuring disk sand driversRaynaITSTEP
 
install update and migration to windows 10
install update and migration to windows 10install update and migration to windows 10
install update and migration to windows 10RaynaITSTEP
 
Фотошоп за деца_4
Фотошоп за деца_4Фотошоп за деца_4
Фотошоп за деца_4RaynaITSTEP
 
Структурни кабелни системи
Структурни кабелни системиСтруктурни кабелни системи
Структурни кабелни системиRaynaITSTEP
 
Android introduction
Android introductionAndroid introduction
Android introductionRaynaITSTEP
 
Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2RaynaITSTEP
 
Adobe Illustrator - Обобщение
Adobe Illustrator - ОбобщениеAdobe Illustrator - Обобщение
Adobe Illustrator - ОбобщениеRaynaITSTEP
 
Урок 1_Прозрачност
Урок 1_ПрозрачностУрок 1_Прозрачност
Урок 1_ПрозрачностRaynaITSTEP
 
Урок 3 4 - layer blend modes and effects
Урок 3 4 - layer blend modes and effectsУрок 3 4 - layer blend modes and effects
Урок 3 4 - layer blend modes and effectsRaynaITSTEP
 
inline block elements
inline block elementsinline block elements
inline block elementsRaynaITSTEP
 
html introduction
html introductionhtml introduction
html introductionRaynaITSTEP
 

More from RaynaITSTEP (20)

Project management professional
Project management professionalProject management professional
Project management professional
 
Project management it step
Project management it stepProject management it step
Project management it step
 
Lean startup
Lean startupLean startup
Lean startup
 
monitoring and diagnostics
monitoring and diagnosticsmonitoring and diagnostics
monitoring and diagnostics
 
network security
network securitynetwork security
network security
 
networking
networkingnetworking
networking
 
data security
data securitydata security
data security
 
configuring disk sand drivers
configuring disk sand driversconfiguring disk sand drivers
configuring disk sand drivers
 
boot process
boot process  boot process
boot process
 
install update and migration to windows 10
install update and migration to windows 10install update and migration to windows 10
install update and migration to windows 10
 
virtualization
virtualizationvirtualization
virtualization
 
Фотошоп за деца_4
Фотошоп за деца_4Фотошоп за деца_4
Фотошоп за деца_4
 
Структурни кабелни системи
Структурни кабелни системиСтруктурни кабелни системи
Структурни кабелни системи
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2Adobe Illustrator - Урок 2
Adobe Illustrator - Урок 2
 
Adobe Illustrator - Обобщение
Adobe Illustrator - ОбобщениеAdobe Illustrator - Обобщение
Adobe Illustrator - Обобщение
 
Урок 1_Прозрачност
Урок 1_ПрозрачностУрок 1_Прозрачност
Урок 1_Прозрачност
 
Урок 3 4 - layer blend modes and effects
Урок 3 4 - layer blend modes and effectsУрок 3 4 - layer blend modes and effects
Урок 3 4 - layer blend modes and effects
 
inline block elements
inline block elementsinline block elements
inline block elements
 
html introduction
html introductionhtml introduction
html introduction
 

DBT_3

  • 1. Бази от данни Урок 3: Работа с обекта „заявка“ Юлиана Пенева Департамент “Информатика”,НБУ july_peneva@abv.bg
  • 2. Съдържание 1. Релационни операции. 2. Характеристики на езика SQL. 3. Основни заявки на SQL. 4. Формулиране на заявки в MS Access. Практическо занятие. Юлиана Пенева Бази от данни - урок 3 2
  • 3. Релационни операции Операциите на релационния модел служат за обновяване на базата и за извличане на данни, които отговарят на определени условия. Биват: 1. Операции за обновяване на базата • въвеждане на нов ред в дадена таблица; • изтриване – изтрива указан ред в таблица; • модифициране - променя на стойностите на една или няколко колони в дадена таблица. 2. Операции за извличане на данни – задават се от релационната алгебра. • нейните операции се използват за избор на редове от определени таблици и за тяхното комбиниране, за да се удовлетвори зададена към базата потребителска заявка; • резултатът от всяка операция на релационната алгебра е таблица. Юлиана Пенева Бази от данни - урок 3 3
  • 4. Релационна алгебра Код предлага осем операции, разделени на две групи: 1.Множествени операции: – обединение (union) – бележи се с ; – сечение (intersection) – бележи се с  – разлика (difference) – бележи се с  – декартово произведение (Cartesian product) – бележи се с Х Приложими – всяка таблица е множество от редове. 2.Релационни операции: – селекция (select) – бележи се с  – проекция (project) - бележи се с  – съединение (join) – бележи се с – деление (division) – бележи се с  Разработени са специално за релационните бази от данни. Юлиана Пенева Бази от данни - урок 3 4
  • 5. Релационна алгебра Операция селекция  1. Служи за избор на редове от дадена таблица, които удовлетворяват предварително зададено условие (критерий) за търсене. 2. Действието на селекцията представлява по същество, филтриране на кортежите и извеждане само на онези от тях, които удовлетворяват зададеното условие. 3. Общ вид на операцията: Юлиана Пенева Бази от данни - урок 3 5    таблицанаиме изборзаусловие 
  • 6. Релационна алгебра Условието за избор може да бъде от вида: • непосредствено условие: <име на колона> <оператор за сравнение> <константа> където оператор за сравнение може да бъде: ≤, ≥, ≠, =, >, < • условие за избор от общ вид: отделните прости условия могат да бъдат свързани с логическите оператори and, or, not. Резултатът е таблица и съдържа редовете, чиито колони удовлетворяват зададеното условие. Юлиана Пенева Бази от данни - урок 3 6
  • 7. Релационна алгебра Пример 1: Да се изведе информация за служителите, които работят в отдел с номер 4. Юлиана Пенева Бази от данни - урок 3 7 )( 4 EMPLOYEE DNO   Мария Пенева 6803183465 Ж ж.к.Люлин,бл.430 4 4610226861 2500 Димитър Иванов 6212018876 М ул.В.Левски N67 4 4610226861 2200 Петър Петров 6011085342 М ул.Парчевич N23 4 4610226861 2700 Христо Георгиев 4610226861 М ж.к.Красно село,бл.7 4 4610226861 3000
  • 8. Релационна алгебра Пример 3: Да се изведат кортежите за всички служители, които работят в отдел номер 4 и печелят над 2500. Юлиана Пенева Бази от данни - урок 3 8 )( 25004 EMPLOYEE salaryandDNO   Петър Петров 6011085342 М ул.Парчевич N23 4 4610226861 2700 Христо Георгиев 4610226861 М ж.к.Красно село,бл.7 4 4610226861 3000 Пример 2: Да се изведе списък на служителите, които получават над 3000 лева.
  • 9. Релационна алгебра Операция проекция  1. Операцията служи за избор на определени колони от дадена таблица. 2. Общ вид на операцията: <списък от колони>(<име на таблица>) 3. Резултатът съдържа само указаните в списъка колони, в реда, по който са описани. Юлиана Пенева Бази от данни - урок 3 9
  • 10. Релационна алгебра Пример 4: Да се изведе списък на служителите и заплатите им.  fname , lname, salary(EMPLOYEE) Юлиана Пенева Бази от данни - урок 3 10 Иван Петров 1800 Анелия Симеонова 3500 Мария Пенева 2500 Димитър Иванов 2200 Петър Петров 2700 Христо Георгиев 3000 Виолета Симова 2000 Ангел Ангелов 2500 Теодора Стоянова 2000
  • 11. Релационна алгебра Операция съединение 1. Комбинира свързани помежду си редове от две таблици в един ред. 2. Позволява обработката на връзки между отделните отношения. Юлиана Пенева Бази от данни - урок 3 11 Пример 4: Да се изведе списък на служителите и имената на отделите, в които работят. За да се изпълни тази заявка е необходимо да се комбинира всеки ред от таблицата DEPARTMENT с всеки ред на таблицата EMPLOYEE, за които Dno = Dnumber. За целта се изпълнява операцията "съединение". EMPLOYEE Dno=Dnumber DEPARTMENT
  • 12. Релационна алгебра Юлиана Пенева Бази от данни - урок 3 12
  • 13. Релационна алгебра Множествени операции 1. Това са стандартните математически операции върху множества, които са приложими при релационния модел, защото по дефиниция таблицата е множество от редове. 2. За сливане на елементи от две множества се прилагат операциите: сечение , обединение  и разлика  . 3. За таблиците е необходимо да бъдат с еднаква структура, т.е. да имат един и същи брой полета от еднакъв тип. Юлиана Пенева Бази от данни - урок 3 13
  • 14. Релационна алгебра Множествени операции 1. Обединение - A  B Резултатът е таблица, която съдържа всички редове от R и S, като повтарящите се редове са отстранени. Юлиана Пенева Бази от данни - урок 3 14 2. Сечение – A  B Резултатът е таблица, която съдържа всички редове, които са едновременно в R и в S като повтарящите се редове са отстранени. 3. Разлика – A  B Резултатът е таблица, която съдържа редовете от R, които не се повтарят с редове от S.
  • 15. Релационна алгебра Примери на сечение и обединение Дадени са отношенията STUDENT и INSTRUCTOR – вж.(а) • STUDENT  INSTRUCTOR – вж.(b) • STUDENT  INSTRUCTOR – вж.(c) Юлиана Пенева Бази от данни - урок 3 15
  • 16. Релационна алгебра Декартово произведение 1. Не се изисква таблиците да са с еднаква структура. 2. Операцията комбинира всеки ред от едната таблица с всеки ред от другата таблица. 3. Резултатът е нова таблица, която съдържа всички колони на изходните таблици и по един ред за всяка комбинация от техните редове. Юлиана Пенева Бази от данни - урок 3 16
  • 17. Релационна алгебра Трудна за използване и затова са разработени още две категории средства за обработка на базата: 1. Езици, ориентирани към трансформация При тях потребителят описва какво да се изведе от базата без да указва начина, по който да стане това. Входните данни се преобразуват в необходимия изход, като за целта се използват фиксирани структури за описание на търсения резултат. Такива езици са: SQUARE, SEQUEL и производния нему SQL. 2. Графични езици. Графичните езици използват шаблони на заявки, които потребителят попълва с примери, описващи нужния резултат. Такъв език е Query-by-Example, създаден първоначално в IBM през 1977 и понастоящем реализиран в СУБД Access. Юлиана Пенева Бази от данни - урок 3 17
  • 18. Характеристики на езика SQL 1. SQL не е език за програмиране. 2. Езикът е стандартизиран и понастоящем се реализира във всички СУБД с релационен модел. 3. Отделните реализации на езика в конкретен софтуер се наричат „диалекти“ и се различат по синтаксиса на командите. 4. Разработен е стандарт, наречен SQL2 (SQL’92). 5. Разработен е стандарт, наречен SQL3, който разширява стандартния език SQL с обектно-ориентирани понятия. 6. Допълнително са разработени следните стандарти: – през 2003 г. -SQL:2003 (ISO, 2003); – през лятото на 2008 г.- SQL:2008 (ISO/IEC, 2008); – през 2011 - SQL:2011 (ISO, 2011). 7. Последна версия на стандарта (ISO/IEC, 2016) е предложена през 2016 г. Добавени са възможности за работа с XML. Юлиана Пенева Бази от данни - урок 3 18
  • 19. Характеристики на езика SQL С помощта на команди на SQL е възможно: • създаване, обновяване или изтриване на обекти в базата; • свързване на обекти в базата; • избор на данни от базата, които отговарят на определено условие; • въвеждане, обновяване и изтриване на данни; • проверка за непротиворечивост на данните. Юлиана Пенева Бази от данни - урок 3 19
  • 20. Характеристики на езика SQL Видове команди в SQL Юлиана Пенева Бази от данни - урок 3 20
  • 21. Характеристики на езика SQL 1. Работа с езика SQL се осъществява чрез различни видове заявки. 2. Заявката указва какви операции да се извършат върху данните от базата. 3. Възможни са четири основни операции: • извличане на данни; • въвеждане на нов елемент; • модифициране на съществуващи данни; • изтриване. 4. Заявките работят с таблиците, които са основната структура за съхранение на данните в релационния модел. 5. Резултатът от заявката е таблица и обикновено се извежда на екран. Юлиана Пенева Бази от данни - урок 3 21
  • 22. Основни заявки на SQL 1. SQL притежава единствен оператор за извличане на данни от базата – SELECT. 2. Основният елемент на езика SQL е т.нар. SELECT-FROM-WHERE блок (или изображение), което има вида: SELECT <списък от колони> FROM <списък от таблици> WHERE <условие> където: • <списък от колони> представлява списък от имената на колоните, чиито стойности се извеждат в резултата; • <списък от таблици> представлява списък от имена на таблици, съдържащи данните, необходими за обработката; • <условие> представлява критерий за търсене, който описва редовете, участващи в резултата от заявката. 3. В повечето реализации на езика всяка SELECT заявка завършва с ;. 4. Базовите заявки на езика SQL отговарят на основните релационни операции – селекция, проекция и съединение. Юлиана Пенева Бази от данни - урок 3 22
  • 23. Основни заявки на SQL Примерите използват база от данни със следната релационна схема: Юлиана Пенева Бази от данни - урок 3 23 Заявка 1: Да се изведе рождената дата и адреса на служителя Иван Петров. SELECT Bdate, Address FROM EMPLOYEE WHERE Fname = 'Иван' AND Lname = 'Петров Заявка 2: Да се изведат номерата на служителите SELECT Ssn FROM EMPLOYEE Заявка 3: Да се изведат данните за служителите, работещи в отдел номер 5. SELECT * FROM EMPLOYEE WHERE Dno = 5
  • 24. Основни заявки на SQL Заявка 4: Да се изведат заплатите на служителите. Вариант 1: SELECT Salary FROM EMPLOYEE Извеждат се всички заплати, повторение на данните. Вариант 2: SELECT DISTINCT Salary FROM EMPLOYEE Извеждат се само различните стойности на заплатите, независимо колко служители имат такава заплата. Заявка 5: Да се изведат номерата на всички служители, които работят по проекти с номера 1,2 или 3. SELECT DISTINCT Essn FROM WORKS_ON WHERE Pno IN (1,2,3) Юлиана Пенева Бази от данни - урок 3 24
  • 25. Основни заявки на SQL Заявка 6: Да се изведат имената на служители, които нямат ръководители. SELECT Fname, Lname FROM EMPLOYEE WHERE Superssn IS NULL Заявка 7: Да се изведат имената на служителите, които живеят в Пловдив. SELECT Fname, Lname FROM EMPLOYEE WHERE Address LIKE '%Пловдив%‚ Заявка 8: Да се изведат имената на служителите, родени през 90-те години. SELECT Fname, Lname FROM EMPLOYEE WHERE Bdate LIKE '_______9_' Юлиана Пенева Бази от данни - урок 3 25
  • 26. Основни заявки на SQL Заявка 9: Да се изведат имената и адресите на всички служители, които работят в отдел 'Изследователски'. SELECT Fname,Lname,Address FROM EMPLOYEE,DEPARTMENT WHERE Dname='Изследователски' AND Dnumber=Dno При изброени две таблици се задава едно условие за съединение като се съблюдава връзката „главен ключ – външен ключ“. Заявка 10: Да се изведат номерата на служителите и имената на отделите, в които работят. SELECT Ssn, Dname FROM EMPLOYEE, DEPARTMENT Декартово произведение! Юлиана Пенева Бази от данни - урок 3 26
  • 27. Формулиране на заявки в MS Access В MS Access заявки могат да се формулират по два начина: • с помощта на шаблон като се използва езикът Query-by- Example; • с помощта на езика SQL. 1. Заявка – средство за комбиниране на данни от различни таблици. 2. Заявките се изграждат като се посочват: • таблиците, от които се черпят данни; • условията, на които данните трябва да отговарят. 3. Използва се query design grid – бланка за заявка, където се указват условията. 4. С помощта на заявки могат да се обновяват данните. 5. Резултатът от всяка заявка е таблица, в която данните могат да се обработват с други заявки. Юлиана Пенева Бази от данни - урок 3 27
  • 28. Формулиране на заявки в MS Access 6. Заявките служат за извличане на данни от базата въз основа на зададено условие за търсене. 7. Заявките съдържат в себе си логиката, въз основа на която се извличат данните. 8. Access позволява изпълняване на различни видове заявки, свързващи данни от различни таблици. Юлиана Пенева Бази от данни - урок 3 28
  • 29. Юлиана Пенева Бази от данни - урок 3 29 Формулиране на заявки в MS Access • Това е резултат от изпълнението на заявка, която от таблицата Employees извлича имената на служителите, които живеят в UK. Резултат от заявка
  • 30. Юлиана Пенева Бази от данни - урок 3 30 Формулиране на заявки в MS Access Видове заявки Select Query 1. Връща като резултат данни от една или повече таблици и ги показва в нова, резултатна таблица. 2. Данните в резултата могат да се обновяват, като промените се отразяват и в изходните таблици. 3. Select заявка може да се използва за групиране на записи и изчисляване на агрегатни функции.
  • 31. Юлиана Пенева Бази от данни - урок 3 31 Формулиране на заявки в MS Access Видове заявки Action Query 1. Заявка за промяна на данните или структурата на таблицата. 2. Видове: • Make-table query – създава нова таблица с данни от вече съществуващи таблици; използва се за експортиране на данни в друга база или за архивиране на вече ненужни данни; • Append query – добавя нови записи в края на съществуваща таблица; • Update query – осъществява актуализация на един или повече записи в дадена таблица; • Delete query – изтрива редове от таблица.
  • 32. Юлиана Пенева Бази от данни - урок 3 32 Формулиране на заявки в MS Access Видове заявки SQL заявки 1. Въвеждат се в режим SQL view. 2. При създаването на заявка в Design View, Access построява съответстващия й SQL израз. 3. Някои заявки се създават само в SQL View.
  • 33. Юлиана Пенева Бази от данни - урок 3 33 Формулиране на заявки в MS Access Стъпки 1. Отваря се базата от данни. 2. Избира се режим – Design view, Query Wizard… 3. Design view позволява създаването на прости заявки – предлага се списък на таблиците, изграждащи отворената база.
  • 34. Формулиране на заявки в MS Access При избор на Design View 1. Извежда се прозорец Show Table. 2. От него се избират таблици или заявки, които участват в заявката. 3. На всяка заявка се присвоява име Query1,2… 4. Избират се полета Fields. 5. Задава се сортировка – ред Sort. 6. Задава се критерий за търсене. 7. Заявката се изпълнява с бутон Run от меню Design, за да се види резултата. 8. Затваря се заявката, дава й се име. Юлиана Пенева Бази от данни - урок 3 34
  • 35. Формулиране на заявки в MS Access При избор на Query Wizard 1. Извежда се прозорец New Query. 2. От него се избира вида на заявката и се изпълняват предложените стъпки. Юлиана Пенева Бази от данни - урок 3 35
  • 36. Юлиана Пенева Бази от данни - урок 3 36 Формулиране на заявки в MS Access Особености на съединението 1. За да се извличат данни от няколко таблици се изисква таблиците да са свързани. 2. Таблиците се свързват по ключови полета, имащи общи значения (външен ключ – главен ключ!). 3. В различните видове софтуер от вида СУБД се реализират различни видове съединение. 4. Винаги е налице т.нар. вътрешно съединение, при което условието за съединение е от вида: <име на колона от таблица1>=<име на колона от таблица2> 5. Резултатът съдържа записите от Таблица2, чиито стойности съвпадат със свързаните им полета в Таблица1(съдържа външен ключ).
  • 37. Юлиана Пенева Бази от данни - урок 3 37 Формулиране на заявки в MS Access Вътрешно съединение