System zarządzania bazą danych (skrót DBMS ) to oprogramowanie systemowe służące do przechowywania, manipulowania lub zarządzania i udostępniania danych w bazie danych , gwarantujące jakość, trwałość i poufność informacji, jednocześnie ukrywając złożoność operacji.
DBMS (w języku angielskim DBMS dla systemu zarządzania bazą danych ) umożliwia rejestrację, wyszukiwanie, modyfikowanie, sortowanie, przekształcanie lub drukowanie informacji z bazy danych. Umożliwia prowadzenie raportów dotyczących zarejestrowanych informacji oraz zawiera mechanizmy zapewniające spójność informacji, zapobiegające utracie informacji w wyniku awarii, zapewniające poufność oraz umożliwiające wykorzystanie ich przez inne oprogramowanie. W zależności od modelu DBMS może zawierać od prostego interfejsu graficznego aż po zaawansowane języki programowania.
Systemy zarządzania bazami danych są oprogramowaniem uniwersalnym, niezależnym od wykorzystania baz danych. Są one wykorzystywane do wielu zastosowań komputerowych, w tym bankomatów , rezerwacji oprogramowania , bibliotek cyfrowych , inwentaryzacji oprogramowania , oprogramowania ERP, lub większością blogów i stron internetowych. Istnieje wiele systemów zarządzania bazami danych . W 2008 roku Oracle posiadało prawie połowę rynku DBMS z MySQL i Oracle Database . Dalej jest IBM z prawie 20%, pozostawiając niewiele miejsca dla innych graczy.
DBMS są często używane przez inne oprogramowanie, a także administratorów lub programistów . Mogą mieć postać komponentu oprogramowania , serwera , aplikacji lub środowiska programistycznego .
W 2011 roku większość DBMS na rynku obsługiwała relacyjne bazy danych .
DBMS to oprogramowanie pośredniczące między użytkownikami a bazami danych. Baza danych jest dane sklepu składa się z kilku plików obsługiwane wyłącznie przez DBMS. Ta ostatnia ukrywa złożoność obsługi struktur bazy danych, zapewniając syntetyczny widok zawartości.
Pakiet DBMS i baza danych ma na celu umożliwienie przechowywania danych w sposób, który oferuje wiele korzyści w porównaniu z konwencjonalnym zapisem do plików . Umożliwia szybkie pozyskiwanie i modyfikowanie danych oraz udostępnianie ich kilku użytkownikom. Zapewnia brak redundancji, integralności, poufności i trwałości danych, zapewniając jednocześnie środki pozwalające uniknąć ewentualnych konfliktów modyfikacji i ukrywania szczegółów formatu pliku w bazach danych.
Dane zapisywane są w postaci ciągów bitów reprezentujących litery, cyfry, kolory, kształty itp. SZBD zawiera różne mechanizmy służące do szybkiego wyszukiwania danych i ich konwersji w celu uzyskania informacji o jednym kierunku.
Współczesne DBMS to zaawansowane oprogramowanie wymagające wysoko wykwalifikowanego personelu, a ich użycie często skutkuje znacznym wzrostem kosztów licencji i szkoleń.
DBMS służy do rejestrowania danych, a następnie wyszukiwania ich, modyfikowania i automatycznego tworzenia raportów ( raport w języku angielskim ) zawartości bazy danych. Pozwala określić rodzaje danych , strukturę danych zawartych w bazie, a także zasady spójności, takie jak brak redundancji.
Charakterystyki danych zapisanych w bazie, a także relacje, reguły spójności i listy kontroli dostępu są zapisywane w katalogu, który znajduje się wewnątrz bazy i jest obsługiwany przez SZBD.
Wyszukiwanie i obsługa danych, a także określanie ich cech, reguł spójności i uprawnień dostępu mogą być wyrażone w postaci zapytań ( zapytanie angielskie ) w języku komputerowym rozpoznawanym przez SZBD. SQL jest najpopularniejszym językiem komputerowym, jest to ustandaryzowany język do obsługi baz danych. Istnieje wiele innych języków, takich jak Databasic z Charles Bachman , DATAFLEX, dBase lub xBaseScript (itd).
Bazy danych mogą mieć rozmiar kilku terabajtów ; rozmiar większy niż dostępne miejsce w pamięci głównej komputera. Bazy danych przechowywane są na dyskach twardych , te ostatnie mają większą pojemność, ale są wolniejsze, a DBMS jest wyposażony w mechanizmy przyspieszające działanie. Współczesne DBMS-y rejestrują nie tylko dane, ale także ich opis, formy, definicje raportów, zasady spójności, procedury ; umożliwiają przechowywanie filmów i obrazów. DBMS manipuluje złożonymi strukturami niezbędnymi do zachowania tych informacji.
DBMS są wyposażone w mechanizmy, które wykonują sprawdzenia bez wiedzy użytkownika, aby zapewnić powodzenie transakcji, uniknąć problemów z równoczesnym dostępem oraz zapewnić bezpieczeństwo danych:
W zależności od ich budowy i możliwości jakie oferują, SZBD można określić jako hierarchiczne, relacyjne, obiektowe, obiektowo-relacyjne, XML/RDF lub mieszane:
Ponadto DBMS może być rozproszony, scentralizowany lub osadzony i może być przestrzenny:
DBMS różnią się również wielkością baz danych, które mogą obsługiwać.
Różne DBMS na rynku różnią się zakresem wykorzystania baz danych: zakres wpływa na liczbę jednoczesnych użytkowników, wielkość baz danych, lokalizację (lokalizacje) oraz niezbędną moc obliczeniową. Niektóre DBMS obsługują bardzo duże bazy danych i wymagają potężnych i bardzo drogich komputerów. Inne DBMS działają na niedrogich komputerach osobistych, z ograniczeniami dotyczącymi rozmiaru bazy danych i mocy obliczeniowej. Można je podzielić na:
Do 1960 roku informacje były zapisywane w plikach obsługiwanych przez oprogramowanie użytkowe. Idea baz danych powstała w 1960 roku w ramach programu Apollo . Celem było stworzenie urządzenia komputerowego przeznaczonego do rejestrowania dużej ilości informacji związanych z programem kosmicznym, z perspektywą lądowania na Księżycu przed końcem dekady. W tym celu IBM wraz z Rockwell wprowadza na rynek oprogramowanie Information Management System (IMS). Dzięki temu DBMS informacje są zapisywane w bazach danych zorganizowanych w sposób hierarchiczny.
W tym samym czasie General Electric , z pomocą Charlesa Bachmana, uruchomił oprogramowanie Integrated Data Store . Dzięki temu DBMS informacje są zapisywane w bazach danych zorganizowanych zgodnie z modelem sieciowym, co umożliwia rejestrowanie informacji o bardziej złożonej organizacji niż model hierarchiczny.
W 1965 roku , Dick odebrać rozwinął Wskaźnik pracy systemu , które obejmowały DBMS i Databasic język z Charles Bachman . W 2002 roku technologia Picka została wykorzystana we współczesnych produktach, takich jak JBase.
W 1967 r. konsorcjum CODASYL utworzyło grupę roboczą, grupę zadaniową bazy danych abr. DBTG , który pracuje nad standaryzacją dwóch języków komputerowych związanych z bazami danych: DML i DDL.
Organizacjom hierarchicznym i sieciowym lat 60. brakowało niezależności od formatu plików, komplikowały manipulację danymi i brakowało podstaw teoretycznych. W 1970 roku Edgar Frank Codd , pracownik IBM , opublikował książkę A relacyjny model danych dla dużych wspólnych banków danych , pracę, która przedstawia teoretyczne podstawy organizacji relacyjnej . Bazując na pracy EF Codd, IBM opracowuje system SZBD System R , który zostanie wprowadzony na rynek pod koniec lat 70. Ma on zademonstrować wykonalność relacyjnego SZBD . Językiem komputerowym specyficznym dla tego DBMS jest Structured Query Language (w skrócie SQL ), zdefiniowany przez IBM i przeznaczony do obsługi relacyjnych baz danych .
Charles Bachman otrzymał Nagrodę Turinga w 1973 roku za wkład w technologię baz danych, a Edgar Frank Codd otrzymał Nagrodę Turinga w 1981 roku z tych samych powodów.
W 1978 roku ANSI opublikowało opis architektury Ansi/Sparc, która służy jako model odniesienia w odniesieniu do niezależności danych DBMS.
Dwa ciężkie rynki DBMS w 2010 r., czyli IBM DB2 i Oracle Database , zostały wprowadzone na rynek w 1979 r. i są oparte na modelu relacyjnym. W tym samym roku język SQL został ujednolicony przez ISO .
W wyszukiwarek i hurtownie danych są aplikacje komputerowe pojawiły się w 1990 , które wpłynęły na rynek DBMS. Wyszukiwarki wymagały przetwarzania nieustrukturyzowanych informacji napisanych w języku naturalnym. A hurtownie danych wymagały gromadzenia i konsolidacji bardzo dużych ilości informacji w celu stworzenia tabel podsumowujących.
Modele organizacji zorientowane obiektowo i obiektowo-relacyjne pojawiły się w latach 90. Pierwszymi obiektowo-relacyjnymi systemami DBMS były Postgres , Informix i Oracle Database w 1995 . Norma dotycząca języka SQL została zmodyfikowana w 1999 roku, aby móc stosować go do tego typu DBMS.
DBMS składa się z wielu programów, w tym silnika, katalogu, procesora zapytań, języka poleceń i narzędzi:
Narzędzia DBMS służą do tworzenia raportów , ekranów do wprowadzania informacji, importu i eksportu danych zi do bazy danych oraz obsługi katalogu. Narzędzia te są wykorzystywane przez administratora bazy danych do wykonywania kopii zapasowych, przywracania danych, zezwalania lub odmawiania dostępu do określonych informacji oraz dokonywania zmian w zawartości bazy danych - tworzenie, odczytywanie, modyfikowanie i usuwanie informacji, w skrócie CRUD (ang. create, read , zaktualizuj, usuń ). Narzędzia te są również używane do monitorowania aktywności silnika i wykonywania operacji dostrajania .
Współczesne SZBD wysokiej klasy mają wiele rozszerzeń, które zapewniają dodatkowe funkcje, ale ich konstrukcja pozostaje podobna do większości SZBD.
W relacyjnym DBMS żądania kierowane do DBMS są zazwyczaj przetwarzane w pięciu etapach:
Centralna część SZBD, silnik bazy danych, wykonuje operacje zapisu i wyszukiwania danych. W zależności od DBMS baza danych może składać się z jednego lub więcej plików. Rolą silnika jest manipulowanie tymi plikami.
Te indeksy są strukturami, aby przyspieszyć operacje wyszukiwania, są one utrzymywane przez silnik bazy danych. Te poglądy są wirtualne tabele utworzone z innych tabel oraz zawartość utrzymywana jest przez silnik bazy danych. Obsługuje również katalog, kontroluje transakcje, sprawdza spójność informacji i sprawdza, czy użytkownicy mają dostęp tylko do autoryzowanych informacji:
Silnik wykorzystuje bufory : Jest to centralna lokalizacja pamięci używana do tymczasowego przechowywania informacji podczas przesyłania. Informacje są zbierane masowo z plików, a następnie umieszczane w buforach. Podczas kolejnych odczytów informacje są pobierane z istniejącej pamięci buforowej - znacznie szybciej niż odczyt z pliku. Operacje odczytu plików są w ten sposób zredukowane, a operacje zapisu są przesunięte, co przyspiesza działanie DBMS.
Operacje wykonywane przez silnik są często zapisywane w pliku dziennika , co pozwala na ich wycofanie w przypadku incydentu - niepowodzenia lub wycofania transakcji.
W urządzeniu bazodanowym — które obejmuje oprogramowanie aplikacji, system DBMS i bazę danych — sposób przedstawiania informacji użytkownikom różni się od sposobu organizacji informacji, a sposób organizacji informacji różni się od sposobu przedstawiania informacji użytkownikom. informacje są zapisywane w plikach. Ta 3- punktowa konstrukcja oparta jest na modelu referencyjnym ANSI/SPARC .
Każdy z 3 widoków można modyfikować, na przykład formułując żądania w języku DBMS. Niezależność danych to zdolność DBMS do umożliwienia modyfikacji dowolnego z trzech widoków bez konieczności modyfikacji pozostałych widoków:
Istnieje niezależność danych, jeśli diagram koncepcyjny można modyfikować bez konieczności modyfikacji punktu widzenia użytkownika lub struktury fizycznej, a także jeśli struktura fizyczna może być modyfikowana bez konieczności modyfikacji diagramu koncepcyjnego lub struktury fizycznej.
Istnieje kilka kategorii użytkowników DBMS, wśród których jest administratorem bazy danych , do bazy Designer, programista , jak i użytkowników - bardziej lub mniej świadomych - systemów komputerowych.
Administrator bazy danych (Angielski administrator bazy danych Rep. DBA ) jest ekspertem w SZBD, zajmuje się instalacją i utrzymaniem SZBD oraz towarzyszących mu narzędzi. Jest osobą odpowiedzialną za integralność, bezpieczeństwo, dostępność informacji zawartych w bazach danych oraz działanie SZBD. Chroni informacje przed wypadkami spowodowanymi niewłaściwą obsługą, błędami programistycznymi, złośliwym użyciem lub awariami, które mogłyby doprowadzić do pogorszenia zawartości baz danych. W tym celu administrator bazy danych autoryzuje lub zabrania dostępu do informacji oraz monitoruje aktywność DBMS. To sprawia, że regularnie zapasowe kopie w celu umożliwienia odzyskania danych , które zostały utracone lub uszkodzone i wytwarza strojenia korekty w celu poprawy wydajności DBMS. Administrator korzysta z narzędzi do administrowania bazą danych lub języka poleceń DBMS.
Projektant bazy danych jest osoba, która identyfikuje się z informacjami, które będą przechowywane w bazie danych, relacje pomiędzy tymi informacjami i ograniczeń, takich jak obecność lub brak redundancji. Projektant bazy danych ma dogłębną wiedzę na temat wykorzystania tych informacji i wynikających z nich reguł. Odpowiada za odpowiednią organizację bazy danych poprzez tworzenie struktur niezbędnych do przechowywania informacji.
Te deweloperzy tworzyć aplikacje i partię w języku programowania wysokiego poziomu. Każde oprogramowanie ma na celu konkretną czynność - na przykład wyszukiwanie książek w bibliotece - i jest przeznaczone dla innych użytkowników DBMS. Deweloper współpracuje z osobą prowadzącą daną czynność, w celu określenia charakterystycznych potrzeb tej czynności, następnie określa architekturę produktu i wdraża ją pisząc kod źródłowy . Oprogramowanie zawiera instrukcje, które wywołują DBMS w celu znalezienia lub zmodyfikowania informacji. Niektórzy doświadczeni użytkownicy, znający język programowania, tworzą programy na własny użytek.
Zaawansowani użytkownicy posiadają wiedzę na temat używania języka poleceń DBMS i uzyskiwania dostępu do danych ze swojego komputera osobistego. Zostały upoważnione przez administratora do przeglądania i modyfikowania niektórych informacji. Zaawansowani użytkownicy mogą wyszukiwać, dodawać, modyfikować lub usuwać dane za pomocą języka poleceń DBMS, podczas gdy użytkownicy niewtajemniczeni nigdy nie używają języka poleceń, ale uzyskują dostęp do informacji za pośrednictwem oprogramowania aplikacyjnego dostarczonego w tym celu.
Użytkownicy świeccy uzyskują dostęp do informacji za pośrednictwem oprogramowania aplikacyjnego. Uruchamiają polecenia lub wybierają menu i nie mają wiedzy na temat języka poleceń ani organizacji bazy danych. Czynności wykonywane przez tych użytkowników są mniej wyrafinowane i ograniczone do możliwości oferowanych przez oprogramowanie aplikacyjne.
DBMS są skomplikowane i strategiczne oprogramowanie, wykorzystywane w wielu zastosowaniach informatycznych, w tym handlu elektronicznego , dokumentacji medycznej, płatności, zasobów ludzkich , zarządzania relacjami z klientem i logistyki jak również blogi i wiki. , Są wynikiem dziesięcioleci naukowe i badania przemysłowe. Pierwszy DBMS w historii silnie wpłynął na ten sektor rynku, a pomysły tych pionierów są nadal szeroko kopiowane i ponownie wykorzystywane przez współczesne DBMS. Rynek DBMS jest bardzo cienki, zdominowany przez kilka wysokiej klasy konkurencyjnych produktów.
Wielkość sprzedaży relacyjnych DBMS szacowana jest na 6-10 miliardów dolarów rocznie w 2005 roku. W 2008 roku trzy rynki: IBM DB2 , Oracle Database i Microsoft SQL Server zajmują 80% rynku relacyjnych DBMS.
W 2002 roku rynek DBMS został podzielony na 3 segmenty:
Rynek niszowy w 2002 roku, rynek Open Source DBMS był szacowany na 850 mln dolarów w 2008 roku, a według prognoz na 1,2 mld dolarów w 2010 roku, koszt ten obejmuje umowy licencyjne, gwarancyjne i pomocy technicznej. Podczas gdy systemy DBMS dużych marek są cenione w zastosowaniach o znaczeniu krytycznym ze względu na ich solidność, bogactwo i trwałość , DBMS typu open source są prostsze, nie oferują wszystkich dodatków produktów dużych marek, są cenione za łatwość użytkowania i są poszukiwane przez małe i instytucje średniej wielkości. Różni klienci mają nadzieję, że będą w stanie zastąpić drogie DBMS dużej marki tańszymi DBMS typu open source , ale takie zamienniki są rzadkie, a DBMS MySQL i PostgreSQL są używane w nowych aplikacjach ze względu na trudności z migracją .
Wybór DBMS jest często strategiczną decyzją dla instytucji. Koszt nabycia DBMS, który obsługuje kilka tysięcy użytkowników i dużą bazę danych, może zbliżyć się do 1 miliona dolarów . W 1993 roku istniały różne relacyjne systemy DBMS, które uznano za wystarczająco dojrzałe, aby mogły być używane w strategicznych aplikacjach. Produkty są złożone, różnice bywają subtelne, co utrudnia wybór kupującemu. Dziesięć lat później wybór nie jest już tak trudny jak wcześniej; liczba wydawców DBMS spadła z powodu fuzji, a rynek jest zdominowany przez niewielką liczbę dużych graczy.
Z ankiety przeprowadzonej w 1993 roku przez magazyn Network World wynika, że kryteriami wyboru najważniejszego DBMS w oczach nabywców są niezawodność, wydajność, zgodność ze standardami, zakres obsługiwanych komputerów i łatwość wykorzystania. Cena pojawia się dopiero na dziesiątej pozycji. Również według tej ankiety 70% kupujących twierdzi, że jest gotowych zapłacić od 2000 do 25 000 USD za nabycie DBMS.
Często zadawane pytania od kupujących dotyczą wydajności, charakterystyki języka poleceń, równoczesnej kontroli dostępu i typów dostępnych danych . Kwestia wydajności często pojawia się na górze listy kupujących i na dole listy sprzedawców; dlatego testowanie i testy porównawcze są powszechną praktyką. Charakterystyki języka poleceń SQL dostarczają informacji o składni, z którą muszą być zgodne żądania wysyłane do SZBD. Standard SQL był kilkakrotnie modyfikowany, istnieją 3 poziomy zgodności, a język SQL rozpoznawany przez każdy DBMS na rynku jest podobny do jednego lub drugiego z tych różnych standardów.
Średniej wielkości firma używa obecnie kilku SZBD jednocześnie, a wybór SZBD jest rzadko przewidywany, często narzucony przez pojawienie się oprogramowania aplikacyjnego i trudny do odwrócenia. Firma czasami nabywa oprogramowanie aplikacyjne, które nie działa na żadnym z posiadanych już systemów DBMS. Zdarza się również, że firma motywuje zakup nowego DBMS chęcią wykorzystania najnowszych i najbardziej znanych technologii. Wymiana starego DBMS na nowy jest trudna ze względu na brak kompatybilności pomiędzy różnymi produktami – co powoduje konieczność dostosowania oprogramowania aplikacyjnego do nowicjusza. W rezultacie często oprogramowanie aplikacyjne nie jest odpowiednie, a stary DBMS jest nadal używany wraz z nowymi produktami.
Nazwa DBMS | Rok | Redaktor | Charakterystyka | rodzaj oprogramowania | SQL | Wielowartościowy | Licencja |
---|---|---|---|---|---|---|---|
Derby Apache | 1996 | Apache Software Foundation | wbudowane, relacyjne, scentralizowane | Komponent oprogramowania | Apache | ||
DB2 | 1983 | IBM | dla firm, grup roboczych, osób fizycznych | serwer | właściciel | ||
dBase | 1978 | Ashton-Tate | relacyjny, dla osób fizycznych | L4G | właściciel | ||
FileMaker Pro | 1985 | FileMaker | relacyjny, dla grup roboczych | oprogramowanie | właściciel | ||
4D | 1985 | 4D | relacyjne, dla grup roboczych i firm | oprogramowanie | właściciel | ||
ognisty Ptak | Dziewiętnaście osiemdziesiąt jeden | Fundacja Firebird | relacyjne, scentralizowane, pokładowe, dla grup roboczych i firm | serwer | Międzybaza | ||
HSQLDBSQL | 2000 | Thomas Müller | relacyjne, osadzone, scentralizowane, dla grup roboczych i pojedynczych osób | Komponent oprogramowania | BSD | ||
HFSQL | 1993 | PC Miękkie | komponent oprogramowania software | właściciel | |||
Informix | Dziewiętnaście osiemdziesiąt jeden | IBM | dla firm, grup roboczych, rozproszonych | serwer | właściciel | ||
Ingres | 1974 | Ingres Corporation | relacyjne, przestrzenne, scentralizowane, rozproszone | serwer | LPG | ||
Ukryty | 1997 | InterSystems | obiekt, dla firm, dystrybuowany | serwer | właściciel | ||
MariaDB | 2009 | Program Monty Ab | serwer | LPG | |||
MaxDB | 1977 | SAP AG i MySQL AB | obiekt relacyjny, dla firm i grup roboczych, scentralizowany | komponent oprogramowania software | LPG | ||
Microsoft Access | 1992 | Microsoft | relacyjne, dla osób indywidualnych i grup roboczych | L4G | właściciel | ||
Microsoft SQL Server | 1989 | Microsoft | firmy, grupy robocze, osoby indywidualne, relacyjne, rozproszone | serwer | właściciel | ||
MySQL | 1995 | Oracle Corporation i MySQL AB | scentralizowane, wbudowane, rozproszone, dla firm, grup roboczych i osób fizycznych | serwer | LPG | ||
Baza OpenOffice.org | 2002 | Korporacja Oracle | Oprogramowanie | LGPL | |||
Baza danych Oracle | 1979 | Korporacja Oracle | firmy, grupy robocze, osoby indywidualne, relacyjne, przestrzenne, rozproszone | serwer | właściciel | ||
Paradoks | 1987 | Corel | oprogramowanie | właściciel | |||
Wybierać | 1968 | Wybierz system | serwer | właściciel | |||
PostgreSQL | 1985 | Michael Stonebraker , Globalna Grupa Rozwoju PostgreSQL | serwer | BSD | |||
SQLite | 2000 | D. Richard Hipp | osadzony | biblioteka / komponent oprogramowania | Domena publiczna | ||
MongoDB | 2007 | MongoDB | NoSQL zorientowany na dokumenty | serwer | SSPL | ||
Kasandra | 2008 | Fundacja Apache | NoSQL zorientowany kolumnowo | Licencja Apache 2 | |||
Podstawa kanapy | 2010 | Podstawa kanapy | NoSQL zorientowany na dokumenty | ||||
Elastyczne wyszukiwanie | 2004 | Elastyczne wyszukiwanie | Indeks odwrotny NoSQL | ||||
HBase | 2006 | Hortonworks | NoSQL zorientowany kolumnowo | ||||
Redis | 2009 | Redis Labs | NoSQL zorientowany na wartość kluczową | ||||
Riak | 2009 | Technologie Basho | NoSQL zorientowany na wartość kluczową | ||||
DynamoDB | 2012 | Amazonka | NoSQL i dokumenty zorientowane na wartość kluczową | ||||
Lot śmierci | 2009 | NoSQL zorientowany na wartość kluczową | |||||
Duży stół | 2005 | NoSQL zorientowany kolumnowo | właściciel | ||||
MemcacheDB | NoSQL, w pamięci | BSD | |||||
Vertica | 2005 | NoSQL zorientowany kolumnowo | właściciel | ||||
Neo4j | 2010 | Neo technologia | Wykres zorientowany na NoSQL | GNUv3 i AGPL-3.0 | |||
Baza danych Oracle NoSQL | Korporacja Oracle | NoSQL |