Krijimi i Databazës në SQL

3.      INTEGRITETI I TË DHËNAVE

Integriteti i të dhënave lidhet me përputhshmërinë dhe saktësinë e të dhënave. Ajo mund të mbikqyret përmes përdorimit të metodave të ndryshme të kontrollit të gabimeve. Ekzistojnë pesë tipe kufizimesh integriteti si vijon:

  • Kufizimet e bashkësisë së vlerave të fushave. Kjo lidhet me verifikimin e përputhshmërisë së vlerave të një fushe me llojin e përcaktuar të të dhënave për atë fushë.
  • Integriteti i entiteteve. Ky integritet garanton qëçdo rekord në një tabelëështë unik dhe ka njëçelës primar i cili nuk është NULL.
  • Kufizimet e kollonave. Ky kufizim siguron që të dhënat e futura në kollona janë në përputhje dhe të vlefshme me kuptimin e fushës që ato përfaqësojnë. Për shembull, të dhënat e një kollone që i korrespondon fushës së moshës nuk kanë kuptim në vlera jonumerike.
  • Kufizime integriteti të përcaktuara nga përdoruesi. Këto kufizime lidhen me marrëdhënien midis fushave të ndryshme. Për shembull, mund të përcaktohet kufizimi në një databazë që paga e punonjësve të mos jetë më e madhe se paga e drejtuesit.
  • Integriteti referues. Integriteti referues garanton që lidhjet midis tabelave të të dhënave janë të qëndrueshme. Çdo tabelë në një databazë duhet të ketë njëçelës primar i cili duhet gjithashtu të jetë si çelës i jashtëm në tabelat me të cilat lidhet tabela e parë.

Le të trajtojmë disa lloje kufizimesh që përdoren gjerësisht për të realizuar integritetin e të dhënave

  • NOT NULL. Ky kufizim nënkupton që vlerat e fushave përkatëse nuk mund të jenë boshe. Në shembullin e mëposhtëm është përcaktuar kufizimi që fushat STUDENT_ID dhe STUDENT_EMER nuk mund të jenë boshe.
  • Ky kufizim nënkupton mospërsëritjen e vlerave të një fushe të caktuar në rekorde të ndryshme. Në shembullin e mëposhtëm, është përcaktuar që fusha STUDENT_ID nuk mund të ketë vlera të përsëritura për rekorde të ndryshme.
  • Çelësi primar. Ky kufizim nënkupton përcaktimin e një kollone që do të shërbejë si çelës primar për tabelën e dhënë. Rrjedhimisht, kjo kollonë zotëron edhe kufizimin UNIQUE. Në shembullin që vijon, siç shihet, është përcaktuar për tabelën STUDENT qëçelës primar do të jetë fusha e quajtur STUDENT_ID.
  • Çelësi i jashtëm. Ky kufizim mundëson realizimin e lidhjes së tabelave me njëra tjetrën.Për shembull, e zemë se kemi dy tabela, tabelën “Kompania” që quhet tabela mëmë dhe përmban të dhënat e një kompanie, dhe tabelën “Stafi” që quhet tabela “bijë” dhe përmban të dhënat e punonjësve të saj. Çelës primar për tabelën “Kompania” është përcaktuar fusha “Kompani_ID”. Që të realizohet lidhja midis dy tabelave duhet që kjo fushë të jetë edhe tek tabela “Stafi” si çelës i jashtëm. Trajta e përgjithshme e sintaksës për përcaktimin e fushës “KOMP_ID si çelës të jashtëm të tabelës “bijë” është
  • CREATE TABLE STAFI (STAF_ID VARCHAR2 (10) PRIMARY KEY, STAF_EMER VARCHAR2 (50), KOMP_ID NUMBER CONSTRAINT fk_KompID FOREIGN KEY (KOMP_ID) REFERENCES KOMPANIA (KOMPANI_ID));
    • Ky kufizim përdoret për të kontrolluar plotësimin e kushteve të përcaktuara gjatë futjes së të dhënave. Për shembull, nëse kërkohet që fusha e tabelës “Studenti” në sintaksën e mëposhtme të pranojë vlera midis 25 dhe 32 për fushën MOSHA, kësaj të fundit i bashkangjitet kufizuesi CHECK si vijon
  • CREATE TABLE STUDENTI (STUDENT_ID NUMBER (10) NOT NULL, STUDENT_EMRI VARCHAR2 (50) NOT NULL, MOSHA NUMBER CHECK (MOSHA >= 25 AND MOSHA <= 32));
    • Ky kufizim përdoret për përcaktimin e vlerave të paracaktuara të fushave kur asnjë vlerë nuk futet në të. Shembulli i mëposhtëm paraqet rastin kur për një fushë të quajtur “data” në një tabelë të quajtur “Studenti” specifikohet si hyrje e paracaktuar data e sistemit në rast se asnjë vlerë tjetër nuk futet.

    CREATE TABLE STUDENTI (STUDENT_ID NUMBER (10) NOT NULL, STUDENT_EMRI VARCHAR2 (50) NOT NULL, MOSHA NUMBER, DATA DATE DEFAULT SYSDATE);

    Në rastet kur nevojitet përcaktimi i kufizimeve kur tabelat janë krijuar atëherë përdoret sintaksa në trajtën e përgjithshme si vijon

    ALTER TABLE “emri i tabelës” ADD CONSTRAINT “emërtim kufizimi” CONSTRAINT_TYPE;

    Këtu në vend të constraint type kemi CHECK, PRIMARY KEY, NOT NULL, UNIQUE.

    Për heqjen e kufizuesve përdoret sintaksa e përgjithshme në trajtën e mëposhtme

    ALTER TABLE “emri i tabelës” DROP CONSTRAINT “emërtimi i kufizimit ekzistues”;.

[cite]
Comments
All comments.
Comments