Połączenie z bazą danych

Połączenie z bazą danych to funkcja w informatyce , która umożliwia oprogramowaniu klienckiemu komunikowanie się z oprogramowaniem serwera bazy danych , niezależnie od tego, czy znajduje się na tej samej maszynie, czy nie. Do wysyłania poleceń i otrzymywania odpowiedzi wymagane jest połączenie , zwykle w postaci zestawu wyników.

Połączenia są kluczowym pojęciem w programowaniu zorientowanym na dane. Ponieważ niektóre silniki DBMS wymagają znacznego czasu na połączenie, wynaleziono tworzenie puli połączeń w celu poprawy wydajności. Żadne polecenie nie może zostać wykonane na bazie danych bez „otwartego i dostępnego” połączenia z nią.

Połączenia są budowane poprzez dostarczenie podstawowemu sterownikowi lub dostawcy ciągu połączenia , który jest sposobem adresowania określonej bazy danych lub serwera i instancji, a także poświadczeń uwierzytelniania użytkownika (na przykład Server= sql_box; Database= Common; ID użytkownika= uid ; Pwd= hasło; ). Po zbudowaniu połączenia można je dowolnie otwierać i zamykać, a także ustawiać właściwości (takie jak długość limitu czasu polecenia lub transakcja , jeśli taka istnieje). Parametry połączenia składają się z zestawu par klucz/wartość zgodnie z interfejsem dostępu do danych i używanym dostawcą danych.

Wiele baz danych (takich jak PostgreSQL ) pozwala na wykonywanie tylko jednej operacji na raz na każdym połączeniu. Jeśli żądanie danych ( SQL Select ) zostanie wysłane do bazy danych i zwrócony zostanie zestaw wyników, połączenie jest otwarte, ale niedostępne dla innych operacji, dopóki klient nie zakończy korzystania z zestawu wyników. Inne bazy danych, takie jak SQL Server 2005 (i nowsze), nie nakładają tego ograniczenia. Jednak bazy danych, które zapewniają wiele operacji na połączenie, zwykle wiążą się z dużo większym obciążeniem niż te, które zezwalają tylko na jedno zadanie operacji na raz.

Łączenie

Połączenia z bazami danych są ograniczone i kosztowne , a ich tworzenie może zająć nieproporcjonalnie dużo czasu w stosunku do operacji na nich wykonywanych. Tworzenie, używanie i zamykanie przez aplikację połączenia z bazą danych za każdym razem, gdy musi zaktualizować bazę danych, jest nieefektywne.

Pule połączeń to technika zaprojektowana w celu złagodzenia tego problemu. Można utworzyć pulę połączeń z bazą danych, a następnie udostępnić ją aplikacjom, które potrzebują dostępu do bazy danych.

Obiekt połączenia uzyskany z puli połączeń jest często opakowaniem rzeczywistego połączenia z bazą danych. Opakowanie rozumie swój związek z pulą i ukrywa szczegóły puli przed aplikacją. Na przykład obiekt opakowujący może zaimplementować metodę „zamknij”, którą można wywołać tak samo, jak metodę „zamknij” w połączeniu z bazą danych. W przeciwieństwie do metody w połączeniu z bazą danych, metoda w opakowaniu może w rzeczywistości nie zamykać połączenia z bazą danych, ale zamiast tego zwracać je do puli. Aplikacja nie musi być świadoma puli połączeń, gdy wywołuje metody obiektu opakowującego.

Takie podejście zachęca do otwierania połączenia w aplikacji tylko wtedy, gdy jest to potrzebne, i zamykania go natychmiast po zakończeniu pracy, zamiast utrzymywania połączenia otwartego przez cały okres istnienia aplikacji. W ten sposób stosunkowo niewielka liczba połączeń może obsłużyć dużą liczbę żądań. Jest to również nazywane multipleksowaniem .

Z drugiej strony, w architekturze klient/serwer zwykle używane jest trwałe połączenie, aby można było zarządzać stanem serwera. Ten „stan” obejmuje kursory po stronie serwera, produkty tymczasowe, ustawienia funkcjonalne specyficzne dla połączenia i tak dalej.

W przypadku przepełnienia puli połączeń występuje błąd aplikacji. Taka sytuacja może wystąpić, jeśli wszystkie połączenia w puli są używane, gdy aplikacja żąda połączenia. Na przykład aplikacja może korzystać z połączenia zbyt długo, gdy zbyt wielu klientów próbuje uzyskać dostęp do strony internetowej lub jedna lub więcej operacji jest zablokowanych lub po prostu nieefektywnych.

Zobacz też

  • Interfejs IDbConnection w witrynie MSDN
  • Dokument dotyczący zarządzania i monitorowania połączeń .NET.
  • Uzyskiwanie i utrzymywanie połączenia – dokument oficjalny.
  •   Przewodnik autostopowicza po programie Visual Studio i SQL Server (7. wydanie) Addison Wesley, William Vaughn, ISBN 978-0321243621

Linki zewnętrzne