База данни (БД, също база от данни) представлява колекция от логически свързани данни в конкретна предметна област, които са структурирани по определен начин. В първоначалния смисъл на понятието, използван в компютърната индустрия, базата от данни се състои от записи, подредени систематично, така че компютърна програма да може да извлича информация по зададени критерии. Например БД може да се използват в моделирането на хотелските системи, за да се проверява дали има налични свободни стаи в даден хотел.

Поддръжката на база от данни се осъществява от т.нар. система за управление на бази от данни (СУБД).

Система за управление на бази данни е компютърно приложение (софтуер) създадено за комуникация между потребителя, други приложения, както и други БД, с цел да се сравнят и анализират данни. Общото специфично предназначение на СУБД е да позволи определянето, създаването, заявки, актуализацията и администрирането на бази данни. Добре известни СУБД включват MySQL, PostgreSQL, Microsoft SQL Server, Oracle, Sybase, SAP HANA, и IBM DB2. Бази данни не са съвместими с различните СУБД, за това различните СУБД работят със стандартни като SQL и ODBC или JDBC, за да позволи на всяко приложение да работи с различни СУБД, а така и с различни БД. Управлението на БД често се избира от модела им, които те подкрепят. Най-използвани системи от бази данни от 1980 г. насам са всички поддържани релационния модели на езика SQL. Често срещано е СУБД да се нарича само „база данни“.

Преглед и терминология „База данни“ дефинира множество свързани данни и начинът, по който са организирани. Достъпът до тези данни обикновено се осигурява чрез „система за управление на база данни“ (СУБД), състояща се от интегриран набор от компютърен софтуер, който позволява на потребителите да взаимодействат с една или повече бази данни и осигурява достъп до всички данни, съдържащи се в базата данни (въпреки че може да има ограничения спрямо достъпа до точно определени данни). СУБД предоставя различни функции, които позволяват влизане, съхранение и извличане на огромни количества информация и осигурява начини за управление как точно да бъде организирана тази информация.

Поради тясната връзка между тях, терминът „база данни“ често се използва за наименование и на двете – „база данни“ и „система за управление на база данни“, използвана за управлението ѝ.

Извън света на професионалните информационни технологии, терминът база данни често се използва за обозначаване на всяка колекция от свързани данни (например електронна таблица или картотека). Тази статия се отнася само до бази данни, в които размерът на данните и изискванията за използването им се нуждаят от система за управление на база данни.

Съществуващите Системи за управление на бази данни осигуряват различни функции, които позволяват управлението на базата данни и самите данни, които могат да бъдат класифицирани в четири основни функционални групи: Дефиниране на данни – Създаване, модифициране и премахване на дефинициите, които определят организацията на данните. Промяна – Вмъкване, модификация и заличаване на актуалните данни. Извличане – Предоставяне на информация във формата на пряко използваем или за по-нататъшна обработка от други приложения. Извлечените данни могат да се предоставят направо в същата форма, в която са били съхранени в базата данни или в нова форма, получена чрез промяна или комбиниране на съществуващи данни от базата данни. Администриране – Регистриране и наблюдение на потребителите, налагане на сигурността на данните, наблюдение на изпълнението, запазвайки целостта на данните, които се занимават с едновременния контрол и възстановяване на информацията, която е била повредена от някакво събитие като например неочакван срив на системата.

И двете – базата данни и нейната система за управление съответстват на принципите на определен модел на базата данни. „Система база данни“ се отнася общо за модел на база данни, система за управление на база данни както и база данни.

Физически сървърите на базите данни са специализирани компютри, които притежават най-актуалните бази данни и работят само на СУБД и съответния софтуер. Сървърите на базите данни обикновено са многопроцесорни компютри с огромни памети и RAID дискови масиви, използвани за стабилно съхранение. RAID се използва за възстановяване на данни в случай, че един или повече хард дискове спрат да работят. Хардуер ускорителите за бази данни, свързани с един или повече сървъри чрез канал с висока скорост, се използват също в среди за обработка на трансакции с голям обем. Системите за управление на бази данни се намират в основата на повечето приложения за бази данни. СУБД могат да бъдат изградени около потребителско мултитаскинг ядро с вградена мрежова поддръжка, но модерните СУБД обикновено разчитат на стандартна операционна система за предоставяне на тези функции от бази данни преди началото на Structured Query Language(SQL). Възстановените дата бяха коренно различни, съкратени и хаотични, тъй като не е имало правилен метод за взимане и организиране в здрава структура.

Тъй като СУБД включват значителен икономически пазар, продавачите на компютри и системи за съхранение често вземат предвид изискванията на СУБД в техните планове за развитие.

Базите данни и СУБД могат да бъдат категоризирани според модела на базата (базите), които поддържат (като например релационна или XML), типа на компютъра, на който работят (от сървър клъстер до мобилен телефон), езика на заявката, използван за достъп до базата данни (като например AQL или XQuery), и тяхното вътрешно устройство, което афектира на производителността, мащабируемостта, устойчивостта и сигурността.

Приложения Бази данни се използват за поддръжката на вътрешни операции в организации и са в основата на онлайн взаимодействия с клиенти и доставчици (виж Бизнес софтуер).

Бази данни се използват за съхранение на административна информация и за по-специализирани данни, като инженерни данни или икономически модели. Примери за приложения използващи бази данни са компютъризирани библиотечни системи, системи за самолетни резервации, автоматизирани системи за инвентаризации, както и много системи за управление на съдържанието, които съхраняват уеб сайтове като колекции от уеб страници в база от данни.

СУБД с общо и специално предназначение СУБД са се развили до сложна софтуерна система, и нейното разработване обикновено отнема хиляди години човешко усилие. Някои СУБД с общо предназначение като Adabas, Oracle, DB2 постоянно се надграждат от седемдесетте години насам. СУБД с общо предназначение се стреми да покрие нуждите на колкото може повече апликации, което ги прави по-сложни. Обаче, фактът, че стойността на тяхното развитие може да се разпредели между много потребители, означава, че те често са най-ефективни по стойност. СУБД с общо предназначение невинаги е оптимално решение: в някои случаи СУБД с общо предназначение могат да доведат до ненужно препълване с информация. За това има много примери за системи, които използват бази данни със специално предназначение. Чест пример за това е имейл система, която изпълнява много от функциите на СУБД с общо предназначение като прибавяне и изтриване на имейли, съставени от различни типове данни или асоцииране на имейли с точно определен имейл адрес; но тези функции за ограничени до това, което се изисква да се работи с имейли и не осигуряват на потребителя с цялата функционалност която би била налична когато се използва СУБД с общо предназначение.

Много други бази данни имат приложен софтуер, който прониква в базата данни от името на крайните потребители без да показва директно интерфейсът на СУБД. Приложните програмисти могат да използват директно с кабелен протокол или по-вероятно програмен интерфейс. Дизайнерите на бази данни и администраторите им си взаимодействат с СУБД чрез специализирани интерфейси за да построят и поддържат базите данни на приложението, и за това имат нужда от знания и разбиране как СУБД оперират, външните интерфейси на СУБД и променящи се параметри.

История

Следвайки технологичния прогрес в сферите на процесорите, компютърната памет, компютърното съхранение на данни, и компютърните мрежи, размерите, възможностите и производителността на базите данни и респективно техните СУБД са се разраснали в порядъка си. Развитието на технологията на база данни може да бъде разделена на три ери, на базата на модела или структурата на данни: навигационни, SQL\релационни, и пост-релационни.

Двата главни ранни модела на навигационни данни са йерархичният модел, олицетворен от IMS системата на IBM, и моделът CODASYL (мрежови модел), приложен в много продукти като IDMS.

Релационният модел, първо предложен през 1970 от Едгар Ф. Код, който се отделя от традицията си като настоява, че апликациите трябва да търсят данни по тяхното съдържание, а не чрез следване на връзки. Релационния модел използва таблици, всяка използвана за различен тип единица. Чак в средата на осемдесетте хардуерът става достатъчно мощен за да позволи широката употреба на релационни системи (СУБД плюс апликации). В началото на деветдесетте, релационните системи доминират всички широкомащабни приложения за обработка на данни и до 2015 г. те остават доминиращи. IBM DB2, Oracle, MySQL, и Microsoft SQL Server са доминиращите СУБД. Доминиращият програмен език за базите данни, стандартизиран SQL за релационния модел, е повлиял на езиците на базите данни за други модели бази данни.

Обектно ориентираните бази данни са разработени през осемдесетте, за да се надмогне неудобството на обектно релационните импеданс несъответствия, което довежда до появяването на термина „пост-релационен“ и също развитието на хибрида обектно-релационни бази данни.

Следващото поколение пост-релационни бази данни в края на 2000-те става известно като NoSQL бази данни, като представя бързо съхранение по клавишна стойност и документно-ориентирани бази данни. Състезаващо се „следващо поколение“ познато като NewSQL бази данни опитват нови имплементации които следват релационен/SQL модел докато се стремят да отговарят на високата продуктивност на NoSQL в сравнение с комерсиално достъпните релационни СУБД.

60-те години на XX век, навигационни СУБД Представянето на термина база данни съвпада с възможността за директен достъп до паметта (дискове и барабани) от средата на шейсетте години. Терминът представлява контраст с лентово-базираните системи в миналото, като позволява споделена интерактивна употреба, вместо дневна пакетна обработка на масив от данни. Оксфордският английски речник цитира доклад на Корпорацията за системно развитие от 1962 г. като първият, който използва термина „база данни“ в специфично технически смисъл.

Докато компютрите израстват в скорост и възможности се появяват много бази данни с общо предназначение; до средата на шейсетте години доста от тях вече са с търговско предназначение. Интересът започва да расте и Чарлс Бакман, автор на такъв продукт, Интегрирано хранилище за данни (Integrated Data Store), основава „Database Task Group“ в CODASYL, групата отговорна за създаването и стандартизацията на COBOL. През 1971 г. Database Task Group представя стандарта си, който най-общо става познат като „CODASYL подход“ и скоро множество търговски продукти, базирани на този продукт стъпват на пазара.

CODASYL подходът разчита на „ръчното“ управление на свързани данни, които са формирани в голяма мрежа. Апликациите могат да намерят записи по един от трите метода: Употребата на главен код (познат като CALC код, типично имплементиран от хеширане) Управление на връзки (наречени сетове) от един запис към друг Преглеждане на всички записи в последователен ред

По-късно системите прибавят B-дървета, за да осигурят алтернативни пътища за достъп. Много CODASYL бази данни също прибавят много ясен език за заявки. В крайна сметка, CODASYL е много сложна и изисква значително обучение и усилие за да се развият полезни апликации.