ACID

ACID – zbiór właściwości gwarantujących poprawne przetwarzanie transakcji w bazach danych. ACID jest skrótowcem od angielskich słów atomicity, consistency, isolation, durability, czyli niepodzielność[a], spójność, izolacja, trwałość[1].

  • Niepodzielność transakcji oznacza, że każda transakcja albo zostanie wykonana w całości, albo w ogóle – na przykład jeśli w ramach jednej transakcji odbywać się ma przelew bankowy (zmniejszenie wartości jednego konta i powiększenie innego o tę samą kwotę), to nie może dojść do sytuacji, że z jednego konta ubędzie pieniędzy, a kwota na koncie docelowym będzie bez zmian.
  • Spójność transakcji oznacza, że po wykonaniu transakcji system będzie spójny, czyli nie zostaną naruszone zasady integralności.
  • Izolacja transakcji oznacza, że jeśli dwie transakcje wykonują się współbieżnie, to zwykle (w zależności od poziomu izolacji) nie widzą wprowadzanych przez siebie zmian. Poziom izolacji w bazach danych jest zazwyczaj konfigurowalny i określa, jakich anomalii możemy się spodziewać przy wykonywaniu transakcji. Przykładowe typy izolacji to (model ANSI)[2]:
  1. read uncommitted – jedna transakcja może odczytywać wiersze, na których działają inne transakcje (najniższy poziom izolacji)
  2. read committed – transakcja może odczytywać tylko wiersze zapisane
  3. repeatable read – transakcja nie może czytać ani zapisywać na wierszach odczytywanych lub zapisywanych w innej transakcji
  4. serializable (szeregowalne) – wyniki współbieżnie realizowanych zapytań muszą być identyczne z wynikami tych samych zapytań realizowanych szeregowo (pełna izolacja).

Nie zawsze wszystkie poziomy są implementowane przez producentów; czasami producent wprowadza własne rozwiązania. Na przykład silnik Oracle wspiera tylko izolacje read commited i serializable, a w IDS istnieje poziom izolacji cursor stability, którego nie ma w modelu ANSI.

  • Trwałość danych oznacza, że system potrafi uruchomić się i udostępnić spójne, nienaruszone i aktualne dane zapisane w ramach zatwierdzonych transakcji, na przykład po nagłej awarii zasilania.

Zobacz też

Uwagi

  1. Niekiedy spotyka się kalkowe tłumaczenie z języka angielskiego: „atomowość” (rzadziej: „atomiczność”).

Przypisy

  1. Mike Keith: Pro JPA 2. Apress, 2013, s. 48–49. ISBN 978-1-4302-4926-9.
  2. Information Technology – Database Language SQL. Carnegie Mellon University. [dostęp 2015-01-22]. (ang.).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.