nakov - rdbms systems - intro
DESCRIPTION
TRANSCRIPT
Релационни бази от данни – Релационни бази от данни – съдържаниесъдържание Модели на базите от данниМодели на базите от данни Релационните бази от данниРелационните бази от данни RDBMSRDBMS системи системи Таблици, връзки, множественост на Таблици, връзки, множественост на
връзките, връзките, E/RE/R диаграми диаграми НормализацияНормализация Ограничения (Ограничения (constraints)constraints) ИндексиИндекси
Езикът SQLЕзикът SQL Stored proceduresStored procedures Изгледи (views)Изгледи (views) Тригери (triggers)Тригери (triggers) ТранзакцииТранзакции
Релационни бази от данни – Релационни бази от данни – съдържаниесъдържание
Релационни бази от данниРелационни бази от данни
Модели на базите от данниМодели на базите от данни йерархичен (дървовиден)йерархичен (дървовиден) мрежовимрежови релационен (табличен)релационен (табличен) обектно-релационенобектно-релационен
Релационните бази от данниРелационните бази от данни представляват съвкупности от представляват съвкупности от
таблици и връзки между тяхтаблици и връзки между тях ( (релации)релации) ползват здрава математическа основа: ползват здрава математическа основа:
релационната алгебрарелационната алгебра
Системи за управление на БДСистеми за управление на БД
Системи за управление на релационни Системи за управление на релационни бази от данни бази от данни ((СУБД) = СУБД) = Relational Relational Database Management System Database Management System ((RDBMS)RDBMS)
Осигуряват програмни средства за:Осигуряват програмни средства за: създаване / промяна / изтриване на създаване / промяна / изтриване на
таблици и връзки между тяхтаблици и връзки между тях добавяне, промяна, изтриване, търсене добавяне, промяна, изтриване, търсене
и извличане на данни от таблицитеи извличане на данни от таблиците поддръжка на езика поддръжка на езика SQLSQL управление на транзакциите управление на транзакциите
(незадължително)(незадължително)
Системи за управление на БДСистеми за управление на БД
RDBMS RDBMS системите се наричат ощесистемите се наричат още сървъри за управление на бази от даннисървъри за управление на бази от данни или просто или просто "Database "Database сървърисървъри""
По-известни По-известни RDBMS RDBMS сървъри:сървъри: Microsoft SQL ServerMicrosoft SQL Server Oracle DatabaseOracle Database IBM DB2IBM DB2 PostgreSQLPostgreSQL MySQLMySQL Borland InterbaseBorland Interbase
ТаблициТаблици
Таблиците представляват съвкупност Таблиците представляват съвкупност от стойности, подредени в редове и от стойности, подредени в редове и колони. Пример (таблица колони. Пример (таблица PERSONS)PERSONS)::
Редовете имат еднаква структураРедовете имат еднаква структура Колоните имат име и тип (число, Колоните имат име и тип (число,
символен низ, дата или др.)символен низ, дата или др.)
idid namename familyfamily employeremployer11 СветлинСветлин НаковНаков БАРСБАРС
22 БранимирБранимир ГюровГюров BSHBSH
33 МартинМартин КуловКулов CodeAttestCodeAttest
Схема на таблицаСхема на таблица
Схема на таблица е наредена Схема на таблица е наредена последователност от описания на последователност от описания на колони (име и тип)колони (име и тип)
Например таблицатаНапример таблицата PERSONSPERSONS има има следната схема:следната схема:
PERSONS (PERSONS ( idid:: число,число, namename: символен низ,: символен низ, familyfamily: символен низ,: символен низ, employer: employer: символен низсимволен низ))
Първичен ключПървичен ключ
Първичният ключ Първичният ключ (primary key) (primary key) ее колона колона от таблицата, която уникално от таблицата, която уникално идентифицира даден неин редидентифицира даден неин ред
Два записа (реда) са различни когато са Два записа (реда) са различни когато са различни първичните им ключоверазлични първичните им ключове
Първичният ключ може да е съвкупност Първичният ключ може да е съвкупност от няколко колониот няколко колони
idid namename familyfamily employeremployer11 СветлинСветлин НаковНаков БАРСБАРС
22 БранимирБранимир ГюровГюров BSHBSH
33 МартинМартин КуловКулов CodeAttestCodeAttest
Primary Primary keykey
Връзки (релации)Връзки (релации)
Връзките между таблиците се базират на Връзките между таблиците се базират на взаимоотношения взаимоотношения primary key / foreign keyprimary key / foreign key
idid namename country_idcountry_id11 СофияСофия 11
22 ПловдивПловдив 11
33 МюнхенМюнхен 22
44 БерлинБерлин 22
55 МоскваМосква 33
idid namename11 БългарияБългария
22 ГерманияГермания
33 РусияРусия
TOWNTOWN
COUNTRYCOUNTRY
Primary Primary keykey
Primary Primary keykey
Foreign Foreign keykey
Връзки (релации)Връзки (релации)
Външният ключ (Външният ключ (foreign key) foreign key) е номер на е номер на запис запис (primary key) (primary key) в друга таблицав друга таблица
Връзките спестяват повтарянето на Връзките спестяват повтарянето на информацияинформация В примера името на държавата не се В примера името на държавата не се
повтаря за всеки градповтаря за всеки град
Връзките имат множественост Връзките имат множественост ((multiplicity)multiplicity) : : 11 x 1 – x 1 – например човек / име на човекнапример човек / име на човек 1 x 1 x много – държава / градовемного – държава / градове многомного x x много – студент / учебен курсмного – студент / учебен курс
Множественост на връзкитеМножественост на връзките
idid namename popul_idpopul_id11 СофияСофия 11
22 ПловдивПловдив 22
33 МюнхенМюнхен 33
44 БерлинБерлин 44
55 МоскваМосква 55
Връзка Връзка 1 x 11 x 1 1 запис от едната таблица съответства на 1 запис от едната таблица съответства на
точно 1 запис от другата таблицаточно 1 запис от другата таблица Рядко се използва – няма смисълРядко се използва – няма смисъл
TOWNTOWN
idid populationpopulation11 1 177 0001 177 000
22 720 000720 000
33 1 260 0001 260 000
44 3 400 0003 400 000
55 11 800 00011 800 000
POPULATIONPOPULATION
Множественост на връзкитеМножественост на връзките
Връзка Връзка 1 x 1 x много (или много много (или много xx 1)1) 1 запис от първата таблица съответства 1 запис от първата таблица съответства
на много записи от втората таблицана много записи от втората таблица Използва се много честоИзползва се много често
idid namename country_idcountry_id11 СофияСофия 11
22 ПловдивПловдив 11
33 МюнхенМюнхен 22
44 БерлинБерлин 22
55 МоскваМосква 33
idid namename11 БългарияБългария
22 ГерманияГермания
33 РусияРусия
TOWNTOWN
COUNTRYCOUNTRY
Множественост на връзкитеМножественост на връзките
Връзка многоВръзка много x x многомного 1 запис от първата таблица съответства 1 запис от първата таблица съответства
на много записи от втората таблица и на много записи от втората таблица и обратнотообратното
Реализира се чрез междинна таблицаРеализира се чрез междинна таблица
idid namename11 ПешоПешо
22 МинкаМинка
33 ГошоГошо
44 ПенкаПенка
idid namename11 .NET.NET
22 JavaJava
33 PHPPHP
STUDENTSTUDENTCOURSECOURSEstudent_idstudent_id course_idcourse_id
11 11
11 22
33 22
33 33
44 22
STUDENT_COURSESTUDENT_COURSE
Релационна схемаРелационна схема
Релационна схема на БД наричаме Релационна схема на БД наричаме съвкупността от:съвкупността от: схемите на всички таблицисхемите на всички таблици връзките между таблицитевръзките между таблиците
Релационната схема описва Релационната схема описва структурата на БДструктурата на БД не съдържа данни, а само метаданнине съдържа данни, а само метаданни
Релационните схеми се изобразяват Релационните схеми се изобразяват графично чрез графично чрез Entity/Relationship Entity/Relationship диаграми (диаграми (E/R diagrams)E/R diagrams)
E/R E/R диаграми – примердиаграми – примерДиаграмата е Диаграмата е създадена с създадена с
Microsoft SQL Server Microsoft SQL Server Enterprise ManagerEnterprise Manager
E/R E/R диаграми – примердиаграми – пример
Диаграмата е Диаграмата е създадена с създадена с
PLATINUM ERwinPLATINUM ERwin
E/R E/R диаграми – примердиаграми – примерДиаграмата е създадена Диаграмата е създадена с fabFORCE DB Designerс fabFORCE DB Designer
Инструменти за Инструменти за E/RE/R дизайн дизайн
E/R диаграмите се създават с E/R диаграмите се създават с инструменти за моделиране на данни инструменти за моделиране на данни (Data Modeling Tools):(Data Modeling Tools): Microsoft VisioMicrosoft Visio Oracle DesignerOracle Designer Computer Associates ErwinComputer Associates Erwin SQL Server Enterprise ManagerSQL Server Enterprise Manager IBM Rational RoseIBM Rational Rose theKompany Data ArchitecttheKompany Data Architect fabForce DBDesigner (GNU GPfabForce DBDesigner (GNU GPLL проект с проект с
отворен код за Windows и Linux)отворен код за Windows и Linux)
НормализацияНормализация
Нормализацията на релационната Нормализацията на релационната схема премахва повтарящите се даннисхема премахва повтарящите се данни
Денормализираните данни съдържат Денормализираните данни съдържат много повторения:много повторения:
продуктпродукт произво-произво-дителдител
ценацена категориякатегория магазинмагазин градград
кисело кисело млякомляко
Млекис Млекис ООДООД
0.670.67 хранителни хранителни стокистоки
супермаркет супермаркет "Менте""Менте"
СофияСофия
хляб хляб "Добружда""Добружда"
Фурна Фурна "Пушека""Пушека"
0.550.55 хранителни хранителни стокистоки
супермаркет супермаркет "Менте""Менте"
СофияСофия
бира бира "Загорка""Загорка"
Загорка АДЗагорка АД 0.580.58 безалкох. безалкох. напиткинапитки
павилион павилион "24 часа""24 часа"
ВарнаВарна
бира бира "Tuborg""Tuborg"
Шуменско Шуменско пиво АДпиво АД
0.670.67 безалкох. безалкох. напиткинапитки
павилион павилион "24 часа""24 часа"
ВарнаВарна
НормализацияНормализация
1-ва нормална форма1-ва нормална форма Данните имат табличен видДанните имат табличен вид Полетата в редовете са атомарни Полетата в редовете са атомарни
(неделими) стойности(неделими) стойности Няма повторения на данни в Няма повторения на данни в
рамките на един редрамките на един ред Дефиниран е първичен ключ за Дефиниран е първичен ключ за
всяка таблицавсяка таблица
книгакнига ISBNISBN ( (PK)PK) авторавтор авторавтор__emailemail
.NET Framework.NET Framework 38470284373847028437 Бай КироБай Киро [email protected]@abv.bg
Beginning SQLBeginning SQL 72345344507234534450 Дядо МразДядо Мраз [email protected]@mraz.org
НормализацияНормализация
2-ра нормална форма2-ра нормална форма Запазва изискванията на 1-ва Запазва изискванията на 1-ва
нормална форманормална форма В таблиците няма колони, зависещи В таблиците няма колони, зависещи
от част от първичния ключ (ако е от част от първичния ключ (ако е съставен от няколко колони)съставен от няколко колони)
книгакнига ( (PK)PK) авторавтор (PK) (PK) ценацена авторавтор__emailemail
.NET Framework.NET Framework Бай КироБай Киро 37.2537.25 [email protected]@abv.bg
Beginning SQLBeginning SQL Дядо МразДядо Мраз 19.9519.95 [email protected]@mraz.org
Цената зависи Цената зависи от книгатаот книгата
E-mailE-mail-ът зависи -ът зависи от автораот автора
НормализацияНормализация
3-та нормална форма3-та нормална форма Запазва изискванията на 2-ра Запазва изискванията на 2-ра
нормална форманормална форма Единствените зависимости между Единствените зависимости между
колоните са "колона зависи от колоните са "колона зависи от първичния ключ"първичния ключ"
idid продуктпродукт произвопроизводителдител_id_id
ценацена категокатегориярия_id_id
магазмагазинин_id_id
градград_id_id
11 кисело млякокисело мляко 22 0.670.67 22 44 11
22 хляб "Добружда"хляб "Добружда" 33 0.550.55 22 44 11
33 ракия ракия "Пещерска""Пещерска"
66 44..3838 55 22 11
44 бира "Tuborg"бира "Tuborg" 44 0.670.67 44 11 33
НормализацияНормализация
44-та нормална форма-та нормална форма Запазва изискванията на 3-та Запазва изискванията на 3-та
нормална форманормална форма В таблиците има най-много една В таблиците има най-много една
колона, съдържаща атрибут с колона, съдържаща атрибут с няколко възможни стойности няколко възможни стойности (multi-(multi-valued attribute) valued attribute) за един ключза един ключ
авторавтор_id_id книгакнига статиястатия
22 ..NET ProgrammingNET Programming Regular Expressions in .NETRegular Expressions in .NET
44 Mastering J2EEMastering J2EE Best Practices in J2EEBest Practices in J2EE
Един автор има Един автор има много книгимного книги
Един автор има Един автор има много статиимного статии
НормализацияНормализация Пример за нормализирана схемаПример за нормализирана схема
((в 4-та нормална форма):в 4-та нормална форма):
idid имеиме
22 "Млекс" ООД"Млекс" ООД
44 "Загорка" АД"Загорка" АД
idid имеиме
44 бирабира
22 хранителнихранителни
idid продуктпродукт произвопроизводителдител_id_id
ценацена категокатегориярия_id_id
магазмагазинин_id_id
градград_id_id
11 кисело млякокисело мляко 22 0.670.67 22 44 11
22 хляб "Добружда"хляб "Добружда" 33 0.550.55 22 44 11
33 ракия ракия "Пещерска""Пещерска"
66 44..3838 55 22 11
44 бира "Tuborg"бира "Tuborg" 44 0.670.67 44 11 33
idid имеиме
11 BillaBilla
44 METROMETRO
idid имеиме
11 СофияСофия
33 ВарнаВарна
PRODUCTPRODUCT
VENDORVENDOR CATEGORYCATEGORY STORESTORE TOWNTOWN
ConstraintsConstraints
Ограниченията (Ограниченията (constraints)constraints) задават задават правила, за данните, които не могат правила, за данните, които не могат да бъдат нарушаванида бъдат нарушавани Ограничение по първичен ключ Ограничение по първичен ключ
((primary key constraint)primary key constraint) Първичният ключ е уникален за Първичният ключ е уникален за
всеки записвсеки запис Ограничение по уникален ключ (Ограничение по уникален ключ (unique unique
key constraint)key constraint) Стойностите в дадена колона (или Стойностите в дадена колона (или
група колони) са уникалнигрупа колони) са уникални
ConstraintsConstraints
Ограничение по външен ключ Ограничение по външен ключ ((foreign key constraint)foreign key constraint) Стойността в дадена колона е ключ от Стойността в дадена колона е ключ от
друга таблица друга таблица Ограничение по стойност (Ограничение по стойност (check check
constraint)constraint) Стойностите в дадена колонаСтойностите в дадена колона
изпълняват дадено условиеизпълняват дадено условие Например:Например:
((hour>=0)hour>=0) ANDAND (hour<=24)(hour<=24) name = upper(name)name = upper(name)
ИндексиИндекси
Индексите ускоряват скоростта на Индексите ускоряват скоростта на търсене на стойност в дадена търсене на стойност в дадена колона или група от колониколона или група от колони
Ползват се при големи таблициПолзват се при големи таблици Реализират се най-често с Реализират се най-често с B-B-дървета дървета
или хеш-таблициили хеш-таблици Могат да бъдат външни (извън Могат да бъдат външни (извън
таблицата) или вграденитаблицата) или вградени Добавянето и изтриването от Добавянето и изтриването от
индексирани таблици е по-бавноиндексирани таблици е по-бавно
Езикът Езикът SQLSQL
SQL (Structured Query Language)SQL (Structured Query Language) Стандартизиран декларативен език Стандартизиран декларативен език
(стандарт) за манипулация на (стандарт) за манипулация на релационни бази от даннирелационни бази от данни
SQL-92 – SQL-92 – поддържан от всички поддържан от всички RDBMSRDBMS SQL-99 –SQL-99 – навлиза все повече навлиза все повече
SQL SQL поддържа:поддържа: Създаване, промяна, изтриване на Създаване, промяна, изтриване на
таблици и други обекти в БДтаблици и други обекти в БД Търсене, извличане, добавяне, Търсене, извличане, добавяне,
промяна и изтриване на даннипромяна и изтриване на данни
Езикът Езикът SQLSQL
SQL SQL се състои отсе състои от:: DDL – Data Definition LanguageDDL – Data Definition Language
Команди Команди CREATE, ALTER, DROPCREATE, ALTER, DROP DML – Data Manipulation LanguageDML – Data Manipulation Language
Команди Команди SELECT, INSERT, SELECT, INSERT, UPDATE, DELETEUPDATE, DELETE
ПримерПример за за SQL SELECT SQL SELECT заявка:заявка:
SELECT TOWN.NAME, COUNTRY.NAMESELECT TOWN.NAME, COUNTRY.NAMEFROM TOWN, COUNTRYFROM TOWN, COUNTRYWHERE TOWN.country_id = COUNTRY.idWHERE TOWN.country_id = COUNTRY.id
Stored proceduresStored procedures
Процедури на ниво база (запазени Процедури на ниво база (запазени процедури, процедури, stored procedures)stored procedures) Програмен код, който се изпълнява в Програмен код, който се изпълнява в
самия сървър за бази даннисамия сървър за бази данни Работят много по-бързо от външен кодРаботят много по-бързо от външен код Данните са локално достъпниДанните са локално достъпни Могат да приемат параметриМогат да приемат параметри Могат да връщат резултатМогат да връщат резултат
единична стойностединична стойност съвкупност от записи (съвкупност от записи (record set)record set)
Stored proceduresStored procedures
Процедури на ниво база се пишат Процедури на ниво база се пишат на език, разширение на на език, разширение на SQLSQL T-SQL T-SQL – – SQLSQL serverserver PL/SQL – PL/SQL – в в OracleOracle
Пример за процедура на Пример за процедура на T-SQLT-SQL::
CREATE PROCEDURE sp_GetInventoryCREATE PROCEDURE sp_GetInventory @location varchar(10) @location varchar(10)ASAS SELECT Product, Quantity SELECT Product, Quantity FROM Inventory FROM Inventory WHERE Warehouse = @location WHERE Warehouse = @location
Изгледи (Изгледи (views)views)
Изгледите представляват Изгледите представляват именувани именувани SQL SELECT SQL SELECT заявки, заявки, които се използват като таблицикоито се използват като таблици
Позволяват улеснение при писането Позволяват улеснение при писането на сложни на сложни SQL SQL заявкизаявки
Прилагат се за фина настройка на Прилагат се за фина настройка на сигурността:сигурността: На даден потребител не се дават права На даден потребител не се дават права
над никоя таблицанад никоя таблица Дават му се права само над някои Дават му се права само над някои
изгледи (подмножество от данните)изгледи (подмножество от данните)
Изгледи (Изгледи (views) – views) – примерпример
idid companycompanytowntown_id_id
11 Менте ООДМенте ООД 11
22 BulkSoft Inc.BulkSoft Inc. 22
33 ХардСофт АДХардСофт АД 11
44 Спутник АДСпутник АД 33
idid towntowncountcountry_idry_id
11 СофияСофия 11
22 New YorkNew York 33
33 МоскваМосква 22
T_COMPANYT_COMPANY T_TOWNT_TOWN
idid countrycountry11 БългарияБългария
22 РусияРусия
33 САЩСАЩ
T_COUNTRYT_COUNTRY
CREATE VIEW V_BG_COMPANY ASCREATE VIEW V_BG_COMPANY AS SELECT SELECT T_COMPANY.id AS id,T_COMPANY.id AS id, T_COMPANY.company AS companyT_COMPANY.company AS company FROM T_COMPANY INNER JOIN FROM T_COMPANY INNER JOIN (T_TOWN INNER JOIN T_COUNTRY ON(T_TOWN INNER JOIN T_COUNTRY ON T_TOWN.country_id=T_COUNTRY.id)T_TOWN.country_id=T_COUNTRY.id) ON T_COMPANY.town_id=T_TOWN.idON T_COMPANY.town_id=T_TOWN.id WHEREWHERE T_COUNTRY.country="България";T_COUNTRY.country="България";
idid companycompany11 Менте ООДМенте ООД
33 ХардСофт АДХардСофт АД
V_COMPANY_BGV_COMPANY_BG
ТригериТригери (triggers) (triggers)
Тригерите (Тригерите (triggers)triggers) са процедури на са процедури на ниво база, които се активират при ниво база, които се активират при някакво условие, например:някакво условие, например: при добавяне на записпри добавяне на запис при промяна на записпри промяна на запис при изтриване на записпри изтриване на запис
Тригерите могат да извършват Тригерите могат да извършват допълнителна обработка на даннитедопълнителна обработка на данните промяна на данните при добавянепромяна на данните при добавяне поддръжка на логове и историяподдръжка на логове и история
Тригери – примерТригери – пример
Имаме таблица с имена на фирми:Имаме таблица с имена на фирми:
Тригер, който при добавяне на новаТригер, който при добавяне на нова фирма добавя фирма добавя "Ltd." "Ltd." към името йкъм името й::
CREATE TABLE T_COMPANY(CREATE TABLE T_COMPANY( id int NOT NULL,id int NOT NULL, name varchar(50) NOT NULL)name varchar(50) NOT NULL)
CREATE TRIGGER trg_COMPANY_INSERTCREATE TRIGGER trg_COMPANY_INSERT ON COMPANYON COMPANY FOR INSERTFOR INSERTAS AS UPDATE COMPANY SET name = name + ' Ltd.'UPDATE COMPANY SET name = name + ' Ltd.' WHERE id = (SELECT id FROM inserted)WHERE id = (SELECT id FROM inserted)
ТранзакцииТранзакции
Транзакциите са последователности от Транзакциите са последователности от действия (заявки към базата данни), действия (заявки към базата данни), които се изпълняват атомарно:които се изпълняват атомарно: или се изпълняват всичките заедно или се изпълняват всичките заедно
(като едно цяло)(като едно цяло) или никое от действията не се или никое от действията не се
изпълнява изобщоизпълнява изобщо Пример:Пример:
Банково прехвърляне на пари от една Банково прехвърляне на пари от една сметка в другасметка в друга
Ако тегленето или внасянето на парите Ако тегленето или внасянето на парите пропадне, пропада целата операцияпропадне, пропада целата операция
Транзакции – примерТранзакции – пример
Имаме таблица с банкови сметки:Имаме таблица с банкови сметки:
Използваме транзакция при трансфер Използваме транзакция при трансфер на пари от сметка на сметка:на пари от сметка на сметка:
CREATE TABLE CREATE TABLE ACCOUNTACCOUNT(( id int NOT NULL,id int NOT NULL, balancebalance decimaldecimal NOT NULL) NOT NULL)
CREATE PROCEDURE sp_Transfer_Money(CREATE PROCEDURE sp_Transfer_Money( @from_acc int,@from_acc int, @to_acc int,@to_acc int, @ammount decimal@ammount decimal) AS) AS
(примерът продължава)(примерът продължава)
Транзакции – примерТранзакции – примерBEGIN TRANSACTIONBEGIN TRANSACTION
UPDATE ACCOUNT set balance = balance - @ammountUPDATE ACCOUNT set balance = balance - @ammountWHERE id = @from_accWHERE id = @from_acc
IF @@rowcount <> 1 BEGINIF @@rowcount <> 1 BEGIN ROLLBACK TRANSACTIONROLLBACK TRANSACTION RAISERROR ('Invalid source account!', 16, 1)RAISERROR ('Invalid source account!', 16, 1) RETURNRETURNENDEND
UPDATE ACCOUNT set balance = balance + @ammountUPDATE ACCOUNT set balance = balance + @ammountWHERE id = @to_accWHERE id = @to_acc
IF @@rowcount <> 1 BEGINIF @@rowcount <> 1 BEGIN ROLLBACK TRANSACTIONROLLBACK TRANSACTION RAISERROR ('Invalid destination account!', 16, 1)RAISERROR ('Invalid destination account!', 16, 1) RETURNRETURNEND END
COMMIT TRANSACTIONCOMMIT TRANSACTION
Транзакции и изолацияТранзакции и изолация
Транзакциите могат да дефинират Транзакциите могат да дефинират нива на изолация нива на изолация (isolation levels)(isolation levels)
ниво на ниво на изолацияизолация
четене на четене на непотвър-непотвър-дени даннидени данни
неповто-неповто-ряемост ряемост
при четенепри четене
фантомни фантомни записизаписи
Read uncommittedRead uncommitted дада дада дада
Read committedRead committed нене дада дада
Repeatable readRepeatable read нене нене дада
SerializableSerializable нене нене нене