Въведение в   Релационните Бази   от Данни
Contents Модели на базите от данни Релационните бази от данни RDBMS  системи Таблици, връзки, множественост на връзките,  ...
Contents Езикът SQL Транзакции и изолация
Релационни бази от данни Модели на базите от данни йерархичен (дървовиден) мрежови релационен (табличен) обектно-релационе...
Системи за управление  на БД Системи за управление на релационни бази от данни  ( СУБД) =  Relational Database Management ...
Системи за управление  на БД RDBMS  системите се наричат още сървъри за управление на бази от данни или просто  "...
Таблици Таблиците представляват съвкупност от стойности, подредени в редове и колони. Пример (таблица  PERSONS) : Редовете...
Схема на таблица Схема на таблица е наредена последователност от описания на колони (име и тип) Например таблицата   PERSO...
Типове данни в  Oracle Числови bit (1-bit), integer (32-bit), bigint (64-bit) float, real,  number (scale, precision) mone...
Типове данни в  Oracle Бинарни данни varbinary(size)  – редица от байтове image –  бинарен блок до  1 GB Дати и часове dat...
Първичен ключ Първичният ключ  (primary key)  е   колона от таблицата, която уникално идентифицира даден неин ред Два запи...
Връзки (релации) Връзките между таблиците се базират на взаимоотношения  primary key / foreign key TOWN COUNTRY Primary ke...
Връзки (релации) Външният ключ ( foreign key)  е номер на запис  (primary key)  в друга таблица Връзките спестяват повтаря...
Множественост на връзките Връзка  1 x  много (или много  x   1) 1 запис от първата таблица съответства на много записи от ...
Множественост на връзките Връзка много  x  много 1 запис от първата таблица съответства на много записи от втората таблица...
Множественост на връзките Връзка  1 x 1 1 запис от едната таблица съответства на точно 1 запис от другата таблица Моделира...
Авторелации ( Self-relationships ) Връзките  primary/foreign key  може да са в една и съща таблица Пример: служителите в е...
Релационна схема Релационна схема на БД наричаме съвкупността от: схемите на всички таблици връзките между таблиците Релац...
E/R  диаграми – пример Диаграмата е създадена с  Microsoft SQL Server Enterprise Manager
E/R  диаграми – пример Диаграмата е създадена с  PLATINUM ERwin
Инструменти за  E/R  дизайн E/R диаграмите се създават с инструменти за моделиране на данни (Data Modeling Tools): CASE St...
Идентификация на същностите  (entities) Entity  таблиците представляват същности (обекти) от реалния свят Най-често са същ...
Идентификация на колоните в таблиците Колоните в таблиците са характеристики на същностите Имат име и тип Например студент...
Идентификация на колоните в таблиците Колоните са пояснения за същностите в текста на заданието, например: Студентите имат...
Как да изберем първичен ключ за  entity  таблиците? Винаги дефинирайте допълнителна колона за първичния ключ Не използвайт...
Идентификация на връзките (релации  /   relations) Връзките са отношения между същностите: "Студенти се обучават ...
Нормализация Нормализацията на релационната схема премахва повтарящите се данни За повече информация:  http://en.wikipedia...
Ограничения  (Constraints) Ограниченията задават правила за данните, които не могат да бъдат нарушавани Ограничения по пър...
Ограничения  (Constraints) Ограничение по външен ключ ( foreign key constraint) Стойността в дадена колона е ключ от друга...
Индекси Индексите ускоряват скоростта на търсене на стойност в дадена колона или група от колони Ползват се при големи таб...
Езикът  SQL SQL (Structured Query Language) Стандартизиран декларативен език (стандарт) за манипулация на релационни бази ...
Езикът  SQL SQL  се състои от : DDL – Data Definition Language Команди  CREATE, ALTER, DROP DML – Data Manipulation Langua...
Транзакции Транзакциите са последователности от действия (заявки към базата данни), които се изпълняват атомарно: или се и...
Отговорности на транзакциите Транзакциите гарантират консистентността и възстановимостта на базата данни Промяната не се с...
Свойства на транзакциите A tomicity –  атомарност Изпълнява се всичко или нищо C onsistency  – цялост на данните Базата ви...
Употреба на транзакции Кога се ползват транзакции? Винаги, когато за една бизнес операция се осъществява достъп до повече ...
Нива на изолация За повече информация: http:// en.wikipedia.org/wiki/Isolation_(database_systems )
Въпроси?
Упражнения Какви модели на базите от данни познавате? Кои са основните функции, изпълнявани от една система за управление ...
Упражнения  (2) За какво се използват ограниченията в една база от данни? Какво е основното предназначение на езика SQL? З...
Upcoming SlideShare
Loading in …5
×

Introduction to-rdbms-systems

854 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
854
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction to-rdbms-systems

  1. 1. Въведение в Релационните Бази от Данни
  2. 2. Contents Модели на базите от данни Релационните бази от данни RDBMS системи Таблици, връзки, множественост на връзките, E/R диаграми Нормализация Ограничения ( constraints) Индекси
  3. 3. Contents Езикът SQL Транзакции и изолация
  4. 4. Релационни бази от данни Модели на базите от данни йерархичен (дървовиден) мрежови релационен (табличен) обектно-релационен Релационни бази от данни Представляват съвкупности от таблици и връзки между тях ( релации)
  5. 5. Системи за управление на БД Системи за управление на релационни бази от данни ( СУБД) = Relational Database Management System ( RDBMS) Осигуряват програмни средства за: създаване / промяна / изтриване на таблици и връзки между тях добавяне, промяна, изтриване, търсене и извличане на данни от таблиците поддръжка на езика SQL управление на транзакции (незадължително)
  6. 6. Системи за управление на БД RDBMS системите се наричат още сървъри за управление на бази от данни или просто "Database сървъри " По-известни RDBMS сървъри: Oracle Database Microsoft SQL Server IBM DB2 PostgreSQL MySQL Borland Interbase
  7. 7. Таблици Таблиците представляват съвкупност от стойности, подредени в редове и колони. Пример (таблица PERSONS) : Редовете имат еднаква структура Колоните имат име и тип (число, символен низ, дата или др.) Пешев Спасов Наков family Freelancer Марио 3 Software AG Росен 2 БАРС Светлин 1 employer name id
  8. 8. Схема на таблица Схема на таблица е наредена последователност от описания на колони (име и тип) Например таблицата PERSONS има следната схема: PERSONS ( id : число, name : символен низ, family : символен низ, employer: символен низ )
  9. 9. Типове данни в Oracle Числови bit (1-bit), integer (32-bit), bigint (64-bit) float, real, number (scale, precision) money – за парични пресмятания Текстови char(size) – фиксирана дължина varchar 2 (size) – символен низ nvarchar 2 (size) – Unicode низ text, ntext – дълъг символен низ
  10. 10. Типове данни в Oracle Бинарни данни varbinary(size) – редица от байтове image – бинарен блок до 1 GB Дати и часове datetime – дата и час smalldatetime – дата с точност 1 минута Други timestamp – автоматична версия на ред
  11. 11. Първичен ключ Първичният ключ (primary key) е колона от таблицата, която уникално идентифицира даден неин ред Два записа (реда) са различни когато са различни първичните им ключове Първичният ключ може да е съвкупност от няколко колони Primary key Кулов Гюров Наков family CodeAttest Мартин 3 BSH Бранимир 2 БАРС Светлин 1 employer name id
  12. 12. Връзки (релации) Връзките между таблиците се базират на взаимоотношения primary key / foreign key TOWN COUNTRY Primary key Primary key Foreign key 2 Берлин 4 Москва Мюнхен Пловдив София name 2 3 3 5 1 2 1 1 country_id id Русия 3 Германия 2 България 1 name id
  13. 13. Връзки (релации) Външният ключ ( foreign key) е номер на запис (primary key) в друга таблица Връзките спестяват повтарянето на информация В примера името на държавата не се повтаря за всеки град Връзките имат множественост ( multiplicity) : 1 x много – държава / градове много x много – студент / учебен курс 1 x 1 – например човек / студент
  14. 14. Множественост на връзките Връзка 1 x много (или много x 1) 1 запис от първата таблица съответства на много записи от втората таблица Използва се много често TOWN COUNTRY 2 Берлин 4 Москва Мюнхен Пловдив София name 2 3 3 5 1 2 1 1 country_id id Русия 3 Германия 2 България 1 name id
  15. 15. Множественост на връзките Връзка много x много 1 запис от първата таблица съответства на много записи от втората таблица и обратното Реализира се чрез междинна таблица STUDENT COURSE STUDENT_COURSE Пенка 4 Гошо Минка Пешо name 3 2 1 id PHP 3 Java 2 .NET 1 name id 2 1 2 3 3 3 2 4 1 1 course_id student_id
  16. 16. Множественост на връзките Връзка 1 x 1 1 запис от едната таблица съответства на точно 1 запис от другата таблица Моделира наследяване на таблици PERSON STUDENT Primary key Primary & Foreign key at the same time Мария Петър Иван name 24 26 72 age 3 2 1 i d Chemistry Computer Science specialty 3 2 id Ph.D. title 1 id
  17. 17. Авторелации ( Self-relationships ) Връзките primary/foreign key може да са в една и съща таблица Пример: служителите в една фирма имат началник, който също е служител Employees Primary key Foreign key 1 Георги Георгиев 3 Бай Генчо Петър Петров Иван Иванов Name 3 1 ( null) ManagerId 4 2 1 Id
  18. 18. Релационна схема Релационна схема на БД наричаме съвкупността от: схемите на всички таблици връзките между таблиците Релационната схема описва структурата на БД не съдържа данни, а само метаданни Релационните схеми се изобразяват графично чрез Entity/Relationship диаграми ( E/R Diagrams)
  19. 19. E/R диаграми – пример Диаграмата е създадена с Microsoft SQL Server Enterprise Manager
  20. 20. E/R диаграми – пример Диаграмата е създадена с PLATINUM ERwin
  21. 21. Инструменти за E/R дизайн E/R диаграмите се създават с инструменти за моделиране на данни (Data Modeling Tools): CASE Studio Oracle Designer Microsoft Visio Computer Associates E R win SQL Server Enterprise Manager IBM Rational Rose theKompany Data Architect fabForce DBDesigner (GNU GP L проект с отворен код за Windows и Linux)
  22. 22. Идентификация на същностите (entities) Entity таблиците представляват същности (обекти) от реалния свят Най-често са съществителни в текста на заданието (спецификацията) Например: Същности: студент, курс, град Да се разработи система за съхраняване на информация за студенти , които се обучават в различни курсове . Курсовете се провеждат в различни градове . При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
  23. 23. Идентификация на колоните в таблиците Колоните в таблиците са характеристики на същностите Имат име и тип Например студентите имат: Име (текст) Факултетен номер (число) Снимка (бинарен блок) Дата на регистрация (дата)
  24. 24. Идентификация на колоните в таблиците Колоните са пояснения за същностите в текста на заданието, например: Студентите имат следните характеристики: Име, факултетен номер, снимка, дата на регистрация и списък от курсове Да се разработи система за съхраняване на информация за студенти, които се обучават в различни курсове . Курсовете се провеждат в различни градове. При регистрация на студент за него се въвежда име , фак. номер , снимка и дата .
  25. 25. Как да изберем първичен ключ за entity таблиците? Винаги дефинирайте допълнителна колона за първичния ключ Не използвайте съществуваща колона (например ЕГН) Трябва да е число ( integer) Трябва да се обяви като primary key Слагайте първичния ключ като първа колона
  26. 26. Идентификация на връзките (релации / relations) Връзките са отношения между същностите: "Студенти се обучават в курсове" – релация много към много "Курсовете се провеждат в градове" – релация много към едно Да се разработи система за съхраняване на информация за студенти , които се обучават в различни курсове . Курсовете се провеждат в различни градове . При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
  27. 27. Нормализация Нормализацията на релационната схема премахва повтарящите се данни За повече информация: http://en.wikipedia.org/wiki/Database_normalization
  28. 28. Ограничения (Constraints) Ограниченията задават правила за данните, които не могат да бъдат нарушавани Ограничения по първичен ключ ( primary key constraint) Първичният ключ е уникален за всеки запис Ограничения по уникален ключ ( unique key constraint) Стойностите в дадена колона (или група колони) са уникални
  29. 29. Ограничения (Constraints) Ограничение по външен ключ ( foreign key constraint) Стойността в дадена колона е ключ от друга таблица Ограничение по стойност ( check constraint) Стойностите в дадена колона изпълняват дадено условие. Пример: ( hour>=0) AND (hour<=24) name = upper(name)
  30. 30. Индекси Индексите ускоряват скоростта на търсене на стойност в дадена колона или група от колони Ползват се при големи таблици Добавянето и изтриването от индексирани таблици е по-бавно
  31. 31. Езикът SQL SQL (Structured Query Language) Стандартизиран декларативен език (стандарт) за манипулация на релационни бази от данни SQL поддържа: Създаване, промяна и изтриване на таблици и други обекти в БД Търсене, извличане, добавяне, промяна и изтриване на данни
  32. 32. Езикът SQL SQL се състои от : DDL – Data Definition Language Команди CREATE, ALTER, DROP DML – Data Manipulation Language Команди SELECT, INSERT, UPDATE, DELETE Пример за SQL SELECT заявка: SELECT Town.name, Country.name FROM Town, Country WHERE Town.country_id = Country.id
  33. 33. Транзакции Транзакциите са последователности от действия (заявки към базата данни), които се изпълняват атомарно: или се изпълняват всичките действия заедно (като едно цяло) или никое от действията не се изпълнява изобщо Пример: Банково прехвърляне на пари от една сметка в друга (теглене + внасяне) Ако тегленето или внасянето на парите пропадне, пропада цялата операция
  34. 34. Отговорности на транзакциите Транзакциите гарантират консистентността и възстановимостта на базата данни Промяната не се счита за окончателна докато не се извърши COMMIT Всички операции се извършват като едно цяло, включително операциите върху множество от записи
  35. 35. Свойства на транзакциите A tomicity – атомарност Изпълнява се всичко или нищо C onsistency – цялост на данните Базата винаги остава консистентна с логически коректни данни I solation – изолация на данните Отделните транзакции са изолирани една от друга в зависимост от избраното ниво D urability – стабилност на данните Ако една транзакция бъде потвърдена, тя не може да бъде изгубена
  36. 36. Употреба на транзакции Кога се ползват транзакции? Винаги, когато за една бизнес операция се осъществява достъп до повече от една таблица Ако някоя операция не успее, анулираме транзакцията
  37. 37. Нива на изолация За повече информация: http:// en.wikipedia.org/wiki/Isolation_(database_systems )
  38. 38. Въпроси?
  39. 39. Упражнения Какви модели на базите от данни познавате? Кои са основните функции, изпълнявани от една система за управление на бази от данни (СУБД)? Дефинирайте понятието таблица в база от данни. Обяснете разликите между първичен и външен ключ. Посочете какви видове връзки между таблици познавате.
  40. 40. Упражнения (2) За какво се използват ограниченията в една база от данни? Какво е основното предназначение на езика SQL? За какво се използват транзакциите? Дефинирайте техните отговорности.

×