REAL SOFT

Access 2024: referenčná integrita bez osirelých záznamov

Access 2024DatabázaReferenčná integrita

Objednávka odkazuje na zákazníka, fakturačná položka na faktúru a servisný záznam na zariadenie. Ak sa tieto väzby nekontrolujú, databáza časom obsahuje osirelé záznamy, ktoré sa nedajú spoľahlivo vysvetliť ani opraviť.

Krátka odpoveď: Vzťahy vytvorte medzi primárnym kľúčom nadradenej tabuľky a zodpovedajúcim cudzím kľúčom podradenej tabuľky. Potom zapnite referenčnú integritu. Access odmietne zmenu, ktorá by vytvorila neplatný odkaz, no kaskádové aktualizácie a najmä kaskádové odstránenie povoľte iba po vedomom posúdení následkov.

Čo referenčná integrita rieši

Predstavte si tabuľku Zákazníci s jedinečným identifikátorom a tabuľku Objednávky, ktorá tento identifikátor používa. Vzťah jeden k viacerým znamená, že jeden zákazník môže mať viac objednávok, ale každá objednávka musí odkazovať na existujúceho zákazníka. Access pri zapnutej integrite nepovolí objednávku s neznámym identifikátorom ani vymazanie zákazníka, na ktorého objednávky stále odkazujú.

Samotná čiara medzi tabuľkami nestačí. Integritu treba pri úprave vzťahu výslovne zapnúť. Polia na oboch stranách musia mať kompatibilný typ údajov a nadradené pole musí byť jedinečné, spravidla primárny kľúč.

Najprv vyčistite existujúce údaje

Chýbajúci rodič
Nájdite objednávky, ktorých identifikátor zákazníka neexistuje v nadradenej tabuľke. Každý prípad opravte alebo zdokumentovane odstráňte.
Nesúlad typov
Číslo a text sa nedajú bezpečne zviazať len preto, že na obrazovke vyzerajú rovnako. Zjednoťte typ aj význam poľa.

Pracujte s kópiou databázy a vytvorte vyhľadávací dotaz, ktorý ukáže nezhodné záznamy. Hromadné opravy nerobte naslepo. Identifikátor môže byť síce formálne chybný, ale účtovne dôležitý; pred zásahom preto určte, odkiaľ sa má správna hodnota doplniť.

Bezpečný postup nastavenia

  1. Zálohujte databázový súbor a zabezpečte, aby ostatní používatelia práve nezapisovali údaje.
  2. Skontrolujte primárny kľúč nadradenej tabuľky a cudzie kľúče v podradenej tabuľke.
  3. Otvorte okno vzťahov, pridajte obe tabuľky a prepojte zodpovedajúce polia.
  4. Zapnite referenčnú integritu a potvrďte, že Access zobrazí stranu „jeden“ aj stranu „viac“.
  5. V skúšobnej kópii overte pridanie platného aj neplatného záznamu, zmenu kľúča a pokus o odstránenie rodiča.

Kedy použiť kaskádové možnosti

Kaskádová aktualizácia môže automaticky preniesť zmenu kľúča do súvisiacich záznamov. Pri stabilných automatických identifikátoroch sa však primárny kľúč bežne nemení. Kaskádové odstránenie je ešte citlivejšie: vymazanie jedného nadradeného záznamu môže odstrániť všetky naviazané riadky. Pri faktúrach, audite alebo servisnej histórii je často bezpečnejšie odstránenie zakázať a používať stav „neaktívny“.

Praktické pravidlo: Kaskádu nepovoľujte iba preto, aby zmizlo chybové hlásenie. Najprv spíšte, ktoré záznamy sa zmenia, či ich možno obnoviť a kto má oprávnenie taký zásah vykonať.

Kontrola po nasadení

  • Formuláre ponúkajú iba platné nadradené záznamy.
  • Import odmietne alebo zachytí neznáme identifikátory.
  • Odstránenie dôležitého záznamu má jasné pravidlo a zálohu.
  • Vzťahy sú zdokumentované rovnakými názvami ako polia v databáze.

Integrita pri importe a formulároch

Referenčné pravidlá chránia tabuľky aj vtedy, keď údaje prichádzajú z importu, nie iba z formulára. Import preto najprv spustite do dočasnej tabuľky, porovnajte cudzie kľúče so zoznamom platných nadradených záznamov a až potom pridajte riadky do produkčných tabuliek. Vo formulároch používajte výberové polia, ktoré zobrazia zrozumiteľný názov, ale uložia stabilný identifikátor. Používateľ tak nemusí prepisovať kód ručne a databáza dostane hodnotu, ktorú dokáže overiť. Chybové hlásenie pri porušení integrity preložte do zrozumiteľnej inštrukcie: uveďte, ktorý súvisiaci záznam chýba a kde ho možno bezpečne vytvoriť.

Súvisiace návody a produkt

Zhrnutie: Referenčná integrita mení vzťahy z vizuálnej pomôcky na skutočné pravidlá kvality údajov. Najprv odstráňte staré nezhody, potom väzbu otestujte na kópii a ku kaskádovému odstráneniu pristupujte ako k citlivej hromadnej operácii.