Jaka jest jasna definicja ograniczenia bazy danych? Dlaczego ograniczenia są ważne dla bazy danych? Jakie są rodzaje ograniczeń?
Jaka jest jasna definicja ograniczenia bazy danych? Dlaczego ograniczenia są ważne dla bazy danych? Jakie są rodzaje ograniczeń?
Odpowiedzi:
Ograniczenia są częścią definicji schematu bazy danych.
Ograniczenie jest zwykle powiązane z tabelą i jest tworzone za pomocą instrukcji CREATE CONSTRAINT
lub CREATE ASSERTION
SQL.
Definiują pewne właściwości, które muszą spełniać dane w bazie danych. Mogą dotyczyć kolumny, całej tabeli, więcej niż jednej tabeli lub całego schematu. Niezawodny system bazodanowy zapewnia, że ograniczenia są utrzymywane przez cały czas (z wyjątkiem ewentualnie wewnątrz transakcji, w przypadku tzw. Ograniczeń odroczonych).
Typowe rodzaje ograniczeń to:
Aby zrozumieć, dlaczego potrzebujemy ograniczeń, musisz najpierw zrozumieć wartość integralności danych.
Integralność danych odnosi się do ważności danych. Czy Twoje dane są prawidłowe? Czy Twoje dane reprezentują to, do czego je zaprojektowałeś?
Jakie dziwne pytania, które zadaję, mogą pomyśleć, ale niestety zbyt często bazy danych są wypełnione śmieciowymi danymi, nieprawidłowymi odwołaniami do wierszy w innych tabelach, które już dawno minęły ... i wartości, które nie mają żadnego znaczenia dla logiki biznesowej Twojego rozwiązania.
Wszystkie te śmieci nie są same w sobie podatne na obniżenie wydajności, ale są również bombą czasową w logice aplikacji, która ostatecznie pozwoli odzyskać dane, których nie jest zaprojektowana.
Ograniczenia to reguły tworzone w czasie projektowania, które chronią dane przed uszkodzeniem. Jest to niezbędne do przetrwania Twojego serca dziecka rozwiązania bazodanowego. Bez ograniczeń Twoje rozwiązanie z pewnością ulegnie zniszczeniu wraz z upływem czasu i intensywnym użytkowaniem.
Musisz przyznać, że zaprojektowanie projektu bazy danych to tylko narodziny rozwiązania. Tutaj potem musi żyć (miejmy nadzieję) długo i znosić wszelkiego rodzaju (dziwne) zachowania swoich użytkowników końcowych (tj. Aplikacji klienckich). Ale ta faza projektowania jest kluczowa dla długotrwałego sukcesu Twojego rozwiązania! Szanuj go i poświęcaj mu czas i uwagę, jakiego wymaga.
Pewien mądry człowiek powiedział kiedyś: „Dane muszą się chronić!” . I to właśnie robią ograniczenia. Są to reguły, które utrzymują jak najbardziej aktualne dane w Twojej bazie danych.
Można to zrobić na wiele sposobów, ale zasadniczo sprowadzają się one do:
sys.check_constraints
widok w przykładowej bazie danych AdventureWorksJak już tu zasugerowałem, potrzeba dogłębnych rozważań, aby zbudować najlepsze i najbardziej defensywne podejście do ograniczeń w projekcie bazy danych. Najpierw musisz poznać możliwości i ograniczenia różnych typów ograniczeń powyżej. Dalsze czytanie może obejmować:
Ograniczenia dotyczące klucza obcego - Microsoft
Ograniczenie klucza obcego - w3schools
Powodzenia! ;)
Ograniczenia to nic innego jak reguły dotyczące danych. Jakie dane są prawidłowe, a które nie, można zdefiniować za pomocą ograniczeń. Dzięki temu można zachować integralność danych. Poniżej przedstawiono powszechnie stosowane ograniczenia:
NOT NULL
. Tutaj możemy określić, jakie dane możemy wprowadzić dla tej konkretnej kolumny, a czego nie oczekuje się w tej kolumnie.Ograniczenia mogą służyć do wymuszania określonych właściwości danych. Prostym przykładem jest ograniczenie kolumny int do wartości [0-100000]. To wprowadzenie wygląda dobrze.
Ograniczenia określają, jakie wartości są prawidłowe dla danych w bazie danych. Na przykład możesz wymusić, że wartość a nie jest null ( NOT NULL
ograniczenie) lub że istnieje jako unikalne ograniczenie w innej tabeli ( FOREIGN KEY
ograniczenie) lub że jest unikalne w tej tabeli ( UNIQUE
ograniczenie lub być może PRIMARY KEY
ograniczenie w zależności od twoich wymagań ). Bardziej ogólne ograniczenia można zaimplementować za pomocą CHECK
ograniczeń.
Dokumentacja MSDN dotycząca ograniczeń programu SQL Server 2008 jest prawdopodobnie najlepszym miejscem na rozpoczęcie.
UNIQUE
ograniczenie (którego PRIMARY KEY
wariantem jest ograniczenie). Sprawdza, czy wszystkie wartości danego pola są unikalne w całej tabeli. To jest X
ograniczenie osi (rekordy)
CHECK
ograniczenie (którego NOT NULL
wariantem jest ograniczenie). Sprawdza, czy określony warunek jest spełniony dla wyrażenia w polach tego samego rekordu. To jest Y
ograniczenie osiowe (pola)
FOREIGN KEY
przymus. Sprawdza, czy wartość pola została znaleziona wśród wartości pola w innej tabeli. To jest Z
ograniczenie -osiowe (tabele).
CHECK
ograniczeń, więc po co klasyfikować je jako inne? tj. „ Y
-osi” (cokolwiek to znaczy).
FOREIGN KEY
użycie CHECK
ograniczenia?
SELECT
zapytanie. Nie można używać podzapytań (ani żadnych innych konstrukcji, które odwołują się do wartości poza bieżącym rekordem) w CHECK
ograniczeniach w programie SQL Server
.
Baza danych to skomputeryzowana logiczna reprezentacja modelu koncepcyjnego (lub biznesowego), składająca się z zestawu nieformalnych reguł biznesowych. Te zasady to zrozumiałe dla użytkownika znaczenie danych. Ponieważ komputery obejmują tylko formalne reprezentacje, reguły biznesowe nie mogą być reprezentowane bezpośrednio w bazie danych. Muszą być odwzorowane na formalną reprezentację, model logiczny, który składa się z zestawu ograniczeń integralności. Te ograniczenia - schemat bazy danych - są logiczną reprezentacją reguł biznesowych w bazie danych, a zatem stanowią rozumiane przez DBMS znaczenie danych. Wynika z tego, że jeśli DBMS jest nieświadomy i / lub nie egzekwuje pełnego zestawu ograniczeń reprezentujących reguły biznesowe, ma niepełne zrozumienie tego, co oznaczają dane, a zatem
Uwaga: DBMS - „zrozumiałe” znaczenie - ograniczenia integralności - nie jest identyczne z rozumianym przez użytkownika znaczeniem - regułami biznesowymi - ale pomimo utraty jakiegoś znaczenia uzyskujemy możliwość mechanizacji logicznych wniosków z danych.
„Stara klasa błędów” Fabiana Pascala
Zasadniczo istnieją 4 typy głównych ograniczeń w SQL:
Ograniczenie domeny: jeśli jedna z wartości atrybutów podanych dla nowej krotki nie należy do określonej domeny atrybutów
Kluczowe ograniczenie: jeśli wartość atrybutu klucza w nowej krotce już istnieje w innej krotce w relacji
Więzy integralności: jeśli wartość klucza obcego w nowej krotce odwołuje się do wartości klucza podstawowego, która nie istnieje w relacji, do której się odwołuje
Integralność jednostki: jeśli wartość klucza podstawowego jest null w nowej krotce
ograniczenia to warunki, które mogą zweryfikować określony warunek. Ograniczenia związane z bazą danych to integralność domeny, integralność jednostki, integralność referencyjna, ograniczenia integralności zdefiniowanej przez użytkownika itp.