Your SlideShare is downloading. ×
0
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Introduction to-RDBMS-systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction to-RDBMS-systems

2,884

Published on

Introduction to relational databases, tables, relations, primary and foreign keys

Introduction to relational databases, tables, relations, primary and foreign keys

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,884
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
107
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Въведение в Релационните Бази от Данни
  • 2. Contents Модели на базите от данни Релационните бази от данни RDBMS системи Таблици, връзки, множественост на връзките, E/R диаграми Нормализация Ограничения ( constraints) Индекси
  • 3. Contents Езикът SQL Транзакции и изолация
  • 4. Релационни бази от данни Модели на базите от данни йерархичен (дървовиден) мрежови релационен (табличен) обектно-релационен Релационни бази от данни Представляват съвкупности от таблици и връзки между тях ( релации)
  • 5. Системи за управление на БД Системи за управление на релационни бази от данни ( СУБД) = Relational Database Management System ( RDBMS) Осигуряват програмни средства за: създаване / промяна / изтриване на таблици и връзки между тях добавяне, промяна, изтриване, търсене и извличане на данни от таблиците поддръжка на езика SQL управление на транзакции (незадължително)
  • 6. Системи за управление на БД RDBMS системите се наричат още сървъри за управление на бази от данни или просто "Database сървъри " По-известни RDBMS сървъри: Oracle Database Microsoft SQL Server IBM DB2 PostgreSQL MySQL Borland Interbase
  • 7. Таблици Таблиците представляват съвкупност от стойности, подредени в редове и колони. Пример (таблица PERSONS) : Редовете имат еднаква структура Колоните имат име и тип (число, символен низ, дата или др.) Пешев Спасов Наков family Freelancer Марио 3 Software AG Росен 2 БАРС Светлин 1 employer name id
  • 8. Схема на таблица Схема на таблица е наредена последователност от описания на колони (име и тип) Например таблицата PERSONS има следната схема: PERSONS ( id : число, name : символен низ, family : символен низ, employer: символен низ )
  • 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. Типове данни в Oracle Бинарни данни varbinary(size) – редица от байтове image – бинарен блок до 1 GB Дати и часове datetime – дата и час smalldatetime – дата с точност 1 минута Други timestamp – автоматична версия на ред
  • 11. Първичен ключ Първичният ключ (primary key) е колона от таблицата, която уникално идентифицира даден неин ред Два записа (реда) са различни когато са различни първичните им ключове Първичният ключ може да е съвкупност от няколко колони Primary key Кулов Гюров Наков family CodeAttest Мартин 3 BSH Бранимир 2 БАРС Светлин 1 employer name id
  • 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. Връзки (релации) Външният ключ ( foreign key) е номер на запис (primary key) в друга таблица Връзките спестяват повтарянето на информация В примера името на държавата не се повтаря за всеки град Връзките имат множественост ( multiplicity) : 1 x много – държава / градове много x много – студент / учебен курс 1 x 1 – например човек / студент
  • 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. Множественост на връзките Връзка много 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. Множественост на връзките Връзка 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. Авторелации ( Self-relationships ) Връзките primary/foreign key може да са в една и съща таблица Пример: служителите в една фирма имат началник, който също е служител Employees Primary key Foreign key 1 Георги Георгиев 3 Бай Генчо Петър Петров Иван Иванов Name 3 1 ( null) ManagerId 4 2 1 Id
  • 18. Релационна схема Релационна схема на БД наричаме съвкупността от: схемите на всички таблици връзките между таблиците Релационната схема описва структурата на БД не съдържа данни, а само метаданни Релационните схеми се изобразяват графично чрез Entity/Relationship диаграми ( E/R Diagrams)
  • 19. E/R диаграми – пример Диаграмата е създадена с Microsoft SQL Server Enterprise Manager
  • 20. E/R диаграми – пример Диаграмата е създадена с PLATINUM ERwin
  • 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. Идентификация на същностите (entities) Entity таблиците представляват същности (обекти) от реалния свят Най-често са съществителни в текста на заданието (спецификацията) Например: Същности: студент, курс, град Да се разработи система за съхраняване на информация за студенти , които се обучават в различни курсове . Курсовете се провеждат в различни градове . При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
  • 23. Идентификация на колоните в таблиците Колоните в таблиците са характеристики на същностите Имат име и тип Например студентите имат: Име (текст) Факултетен номер (число) Снимка (бинарен блок) Дата на регистрация (дата)
  • 24. Идентификация на колоните в таблиците Колоните са пояснения за същностите в текста на заданието, например: Студентите имат следните характеристики: Име, факултетен номер, снимка, дата на регистрация и списък от курсове Да се разработи система за съхраняване на информация за студенти, които се обучават в различни курсове . Курсовете се провеждат в различни градове. При регистрация на студент за него се въвежда име , фак. номер , снимка и дата .
  • 25. Как да изберем първичен ключ за entity таблиците? Винаги дефинирайте допълнителна колона за първичния ключ Не използвайте съществуваща колона (например ЕГН) Трябва да е число ( integer) Трябва да се обяви като primary key Слагайте първичния ключ като първа колона
  • 26. Идентификация на връзките (релации / relations) Връзките са отношения между същностите: "Студенти се обучават в курсове" – релация много към много "Курсовете се провеждат в градове" – релация много към едно Да се разработи система за съхраняване на информация за студенти , които се обучават в различни курсове . Курсовете се провеждат в различни градове . При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
  • 27. Нормализация Нормализацията на релационната схема премахва повтарящите се данни За повече информация: http://en.wikipedia.org/wiki/Database_normalization
  • 28. Ограничения (Constraints) Ограниченията задават правила за данните, които не могат да бъдат нарушавани Ограничения по първичен ключ ( primary key constraint) Първичният ключ е уникален за всеки запис Ограничения по уникален ключ ( unique key constraint) Стойностите в дадена колона (или група колони) са уникални
  • 29. Ограничения (Constraints) Ограничение по външен ключ ( foreign key constraint) Стойността в дадена колона е ключ от друга таблица Ограничение по стойност ( check constraint) Стойностите в дадена колона изпълняват дадено условие. Пример: ( hour>=0) AND (hour<=24) name = upper(name)
  • 30. Индекси Индексите ускоряват скоростта на търсене на стойност в дадена колона или група от колони Ползват се при големи таблици Добавянето и изтриването от индексирани таблици е по-бавно
  • 31. Езикът SQL SQL (Structured Query Language) Стандартизиран декларативен език (стандарт) за манипулация на релационни бази от данни SQL поддържа: Създаване, промяна и изтриване на таблици и други обекти в БД Търсене, извличане, добавяне, промяна и изтриване на данни
  • 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. Транзакции Транзакциите са последователности от действия (заявки към базата данни), които се изпълняват атомарно: или се изпълняват всичките действия заедно (като едно цяло) или никое от действията не се изпълнява изобщо Пример: Банково прехвърляне на пари от една сметка в друга (теглене + внасяне) Ако тегленето или внасянето на парите пропадне, пропада цялата операция
  • 34. Отговорности на транзакциите Транзакциите гарантират консистентността и възстановимостта на базата данни Промяната не се счита за окончателна докато не се извърши COMMIT Всички операции се извършват като едно цяло, включително операциите върху множество от записи
  • 35. Свойства на транзакциите A tomicity – атомарност Изпълнява се всичко или нищо C onsistency – цялост на данните Базата винаги остава консистентна с логически коректни данни I solation – изолация на данните Отделните транзакции са изолирани една от друга в зависимост от избраното ниво D urability – стабилност на данните Ако една транзакция бъде потвърдена, тя не може да бъде изгубена
  • 36. Употреба на транзакции Кога се ползват транзакции? Винаги, когато за една бизнес операция се осъществява достъп до повече от една таблица Ако някоя операция не успее, анулираме транзакцията
  • 37. Нива на изолация За повече информация: http:// en.wikipedia.org/wiki/Isolation_(database_systems )
  • 38. Въпроси?
  • 39. Упражнения Какви модели на базите от данни познавате? Кои са основните функции, изпълнявани от една система за управление на бази от данни (СУБД)? Дефинирайте понятието таблица в база от данни. Обяснете разликите между първичен и външен ключ. Посочете какви видове връзки между таблици познавате.
  • 40. Упражнения (2) За какво се използват ограниченията в една база от данни? Какво е основното предназначение на езика SQL? За какво се използват транзакциите? Дефинирайте техните отговорности.

×