300 likes | 915 Views
Бази данни (БД). Гл.ас. Д-р Даниела Гоцева http://dgoceva.info. Въведение. Препоръчителна литература: Проектиране на бази от данни, Майкъл Х. Ернандес , СофтПрес. Access бази данни - проектиране и програмиране, Стивън Роман , ЗеСТ Прес.
E N D
Бази данни(БД) Гл.ас. Д-р Даниела Гоцева http://dgoceva.info БД-лекции
Въведение • Препоръчителна литература: Проектиране на бази от данни,Майкъл Х. Ернандес,СофтПрес. Access бази данни - проектиране и програмиране,Стивън Роман,ЗеСТ Прес. Mastering SQL - професионално издание - том 1 и 2,Мартин Грубер,СофтПрес. Fundamentals of Database Systems, Elmasri and Navathe, Addison Wesley. БД-лекции
ВъведениеПреди да се появят БД: • Всяко приложение има независими главни (основни) файлове. • Дублирането на данни води до нарушаване на целостта им. • Използването на общи основни (водещи) файлове създава и проблеми от гледна точка сигурност. • Структуриране на данни за осигуряване на произволен достъп до файла • Прави обработката на данните сложна. • Подпрограмите дават обща обработка на данните. • За да се ползват подпрограми се изискват знания на ниско ниво. БД-лекции
Основни понятия и концепции • База данни – компютърна система за запис и обработка на информацията. • Интегрирана съвкупност от данни. • Информацията е всяка, която е от значение за потребителите на БД. • БД има 4 важни компонента: • data – информацията се съхранява в интегрирана, разпределена БД • hardware • software • users БД-лекции
Hardware andSoftware • Hardware • Състои се от вторична памет за данните. • Съдържа процесор, управление и т.н. • Данните са огромни по размер за да се съхраняват в RAM-а. • Software • СУБД (DBMS, database management system) позволява един или повече потребители да достъпват данните. • Позволява на потребителите да работят с абстракция на данните (logical). БД-лекции
Users • Съществуват три класа потребители: • Приложни програмисти, отговорни за писане на програми на език от високо ниво като С++. • Крайни потребители, които достъпват БД посредством заявки. • Администратори на БД (database administrator, DBA), които контролират операциите в БД. БД-лекции
Архитектура на БД СУБД на различните БД има различна архитектура. • Съвременните БД притежават трислойна архитектура. • Това е следствие на ANSI/SPARC стандарт за СУБД. • ANSI/SPARC е American National Standards Institute/Standard Planning and Requirement Committee. • Архитектурата на СУБД е разделена на три нива: • external • conceptual • internal БД-лекции
Архитектура на БД (2) • external level : отнася се до начина, по който потребителите виждат данните. • conceptual level : формално описание на данните, независимо от начина на съхранението им. • internal level : показва как се съхраняват данните. БД-лекции
Архитектура на БД (3) БД-лекции
External View • Потребител – всеки, който се нуждае от достъп до порция данни. • Достъпът може да се осъществи през С++ (programmer) или чрез заявка (causal user). • Всички методи за достъп включват език за работа с данни (data sub-language, DSL). • DSL е комбинация от два езика: • Език за дефиниране на данни (data definition language, DDL) и • Език за обработка на данните (data manipulation language, DML) • Всеки потребител вижда данните като external view • Дефиниран чрез external schema, съдържаща external record descriptions и описание на съответствието между external schema и conceptual level. БД-лекции
Conceptual View • Абстрактно представяне на цялата информация в БД. • Това е изглед на данните, такива, каквито са. • Състои се от множество повторения на множество типове conceptual record. • За осигуряване на независимост на данните, дефиницията на conceptual records трябва да съдържа информация само за съдържанието им. • conceptual schema, също както дефиницията, съдържа процедури за authorisation и validation. БД-лекции
Internal View • Това е представянето на данните на най-ниско ниво в цялата БД. • Отделено е от физичекото ниво (physical level). • internal view се описва от internal schema, която задава: • Различните типове съхранени записи • Какви индекси съществуват • Как се представят съхранените полета • Каква е физическата последователност на съхранените записи • internal schema е дефиниция на структурите в паметта. БД-лекции
Mappings • conceptual/internal mapping: • Дефинира съответствието между conceptual и internal view • Определя mapping от conceptual records към съответните съхранени двойки • external/conceptual mapping: • Дефинира съответствие между конкретен external и conceptual view • Промяна в структурата в паметта означава, че conceptual/internal mapping трябва да се промени, така че conceptual schema да остане непроменена към физическото представяне на данните. • Промяна в концептуалната дефиниция означава, че conceptual/external mapping трябва да се промени така, че external schema да остане непроменена по отношение логическото представяне на данните. БД-лекции
СУБД СУБД (DBMS) е програма, която: • Поема целия достъп до БД • Отговаря за проверка на authorisation и validation процедури Концептуално, какво се случва: • Потребител поиска достъп чрез DML. • СУБД прекъсва заявката и я интерпретира. • СУБД проверява external schema, external/conceptual mapping, conceptual schema, conceptual/internal mapping и дефиницията на структурата в паметта. • СУБД изпълнява необходимите операции върху съхранените данни в БД. БД-лекции
DatabaseAdministrator Администраторът на БД (DBA) отговаря за цялостния контрол върху БД. Това включва: • Определяне информационното съдържание на БД. То се задава посредством концептуалната схема на БД, използвайки DDL. • Определяне на структурата и достъпа до данните, т.е. как се представят данните според дефиницията си. Определя се асоциираната internal/conceptual schema посредством DDL. • Връзка с потребителите, т.е. осигуряване на достъп до данните и запис на необходимите външни схеми и conceptual/external mapping (с DDL). БД-лекции
СУБД (2) • Дефиниране на процедури по оторизация и валидация. Оторизацията и валидацията са разширения към концептуалната схема и могат да се зададат с DDL • Дефиниране на стратегия за backup и recovery. Напр., периодичен запис на БД на CD или лентово устройство и процедури за възстановяване на БД. Използване на лог файл (log file), където всеки запис съдържа стойности за промени по БД, с цел възстановяването й. • Наблюдение на производителността и реакцията на БД при промяна на изискванията, т.е. търсене на оптимален начин за организация на БД за да се подобри производителността й. БД-лекции
DBA Tools За изпълнение на тези задачи DBA използва множество помощни програми (tools): • loading routines • reorganisation routines • journaling routines (log files) • recovery routines • statistical analysis routines Едно от най-важните DBA средства е data dictionary. Data dictionary е БД, която съдържа данни за данните, т.е. описание на други обекти в системата. БД-лекции
Възможности и ограничения Възможностите, предоставяни от СУБД са различни (зависят от вида на БД). Всички СУБД имат следните предимства пред конвенционалните системи: • Независимост на данните и програмата • Разпределена обработка на данните и работа без излишък от данни • Цялост (integrity) • Централизиран контрол (centralised control) • Сигурност (security) • Производителност и ефективност БД-лекции
Независимост на данните • Най-голямото предимство на БД • В конвенционалните системи приложението зависи от данните • Пример: файл с индексно-последователна организация – приложението трябва да знае: • Че съществува индекс • Че файла е последователен и Вътрешната структура на приложението се изгражда на база това знание. Напр., ако организацията на файла се промени (стане хеширан), се налагат промени и в приложението. БД-лекции
Независимост на данните (2) • Такова приложение е зависимо от данните. • Не е препоръчително приложенията да зависят от данните • DBA трябва да има свободата да променя начина на съхранение на данните или метода за достъп до тях в отговор на промяна в изискванията, без да се налага модификация по съществуващите приложения. • Независимостта на данните може да се дефинира като ‘The immunity of applications to change in storage structure and access strategy’. БД-лекции
Излишък на данни (Data Redundancy) • При приложения с файлова организация (без БД) всяко от тях си има собствени файлове • Това води до излишък от информация в съхранените данни и загуба на дисково пространство. • В БД данните са интегрирани • БД могат да се считат като унификация на множество различни файлове с данни, като повторенията в тях са сведени до минимум или липсват. • Интеграцията на данните се разглежда като важна характеристика на БД • Избягването на излишък на данните трябва да бъде цел, но средствата, с които тази цел ще бъде постигната, са обект на дискусия. БД-лекции
Излишък на данни (2) • Излишъкът е: • Пряк, ако стойността е копие на друга • Непряк, ако стойността се поражда от други стойности: • Улеснява получаването, но усложнява актуализацията • Обратно, интеграцията намалява скоростта на извличане и улеснява актуализацията на данните • Излишъкът на данни води до несъгласуваност на БД, ако не е контролиран. • Системата трябва да улавя всяко дублиране на данни • БД с неконтролиран излишък може да бъде в състояние на несъгласуваност • Факт, представян само от един запис не може да доведе до несъгласуванност. БД-лекции
Цялост на даннитеData Integrity Цялостта на данните описва проблема на осигуряване на акуратност на данните в БД… • Несъгласуваността между два записа, представящи един и същи факт, дава пример за липса на цялост (причинява се от излишък). • Цялостта се получава на база ограничения, които са множество твърдения, изпълнявани при актуализация на БД. Така се предотвратяват грешките в БД. • Дори да се елиминира излишъка, БД може да съдържа неправилни данни. • Проверката на цялостта е проверка на данните и типовете на записите. БД-лекции
Цялост на данните (2) Проверката за цялост (Integrity checks) на данните се дели на 4 групи: • Проверка на типа (type checks) • Проверка за излишък (redundancy checks) • Проверка за диапазона на данните (range checks) • Проверка за сравнение на данните (comparison checks) БД-лекции
Цялост на данните (3) • Типът на записа (record type) може да има ограничения за брой на повторенията, или за добавяне и изтриване на записи. • Напр., в БД за пациенти има лимит за броя на ренгеновите изследвания на всеки пациент • Или данните на пациент, посещаващ болница, трябва да се съхраняват мин 5 години преди да се изтрият • Централизираното управление на БД помага да се запази цялостта на данните • Позволява на DBA да дефинира процедури за валидация, които се изпълняват при всяка актуализация (вкл. модификация, създаване и изтриване). • Цялостта е важна за БД • Приложението, стартирано без процедура за валидация може да създаде грешни данни, което ще окаже влияние върху други приложения, ползващи същите данни. БД-лекции
Опитна постановка в MySQL (избира се 1 или 2) • Инсталира се XAMPP – може да се свали от http://www.apachefriends.org/en/xampp.html • Съдържа MySQL, PHP, Apache, PHPMyAdmin – web СУБД за MySQL • Инсталира се MySQL от http://dev.mysql.com/downloads/ и MySQL GUI Tools – работа със заявки, администриране на БД БД-лекции
Демо на MySQL и PHPMyAdmin БД-лекции