Pravljenje tabela u SQL Server-u pomoću alata SQL Server Management Studio

Tabele se sastoje od redova i kolona. Kolone se nazivaju polja (Field). Svako polje ima jedinstveno ime i sadrži specifičnu informaciju o redu. Svaka tabela u SQL Server bazi podataka mora imati jedinstveno ime:

  1. U alatu Managment Studio desnim tasterom miša kliknite čvor Tables baze podataka u kojoj želite da napravite tabelu i potom odaberite New Table. Prikazaće se Table Designer slika 2.6.1.
  2. Unesite imena kolona, tipove podataka i veličinu za svako polje tabele.
  3. Za svako polje odredite da li je dozvoljeno da ima vrednost null.
  4. Zadajte ostale atribute (svojstva) za tabelu.
  5. Najvažniji atribut kolone tabele je tip podataka. Ukoliko za polje ne odaberete odgovarajući tip podataka, onda će svi vaši napori u struktuiranju baze podataka biti uzaludni.

 

Slika 2.6.1. - Kreiranje tabela

  

Dijagrami baze podataka

Jedan način za uspostavljanje i održavanje zavisnosti između tabela SQL Server baze podataka jeste da napravite dijagram baze podataka. Veoma je važno da znate kako se pravi dijagram baze podataka, kako se u dijagram dodaju tabele, kako da izmenite dijagram i kako da tabele uklonite iz dijagrama baze podataka.


Pravljenje dijagrama baze podataka

Da bi se napravio dijagram baze podataka:

1. Desnim tasterom miša kliknite na čvor Database Diagrams i odaberite New Database dijagrama. Prikazaće se ekranska maska za potvđivanje kreiranja dijagrama slika 2.6.2.

 

Slika 2.6.2. Ekranska maska za potvrđivanje kreiranja dijagrama

2. Kliknite na Yes.
3. Desnim tasterom miša ponovo kliknite čvor Database Diagrams i odaberite New Database Diagram. Prikazaće se okvir za dijalog Add Table slika 2.6.3.

 

Slika 2.6.3. Prikaz svih objekata


4. Odaberite tabele koje želite da prikažete u dijagramu baze podataka i potom kliknite Add. Kliknite Close. Prikazaće se dijagram kao dijagram koji vidite na slici 2.6.4.

 

Slika 2.6.4 Prikaz dijagrama sa prethodno selectovanim tabelama


5. Kliknite i prevucite polje (polja) u tabeli Primar Key na polju (polje) u tabeli Foreign Key kako biste uspostavili zavisnost. Prikazaće se okvir za dijalog Tables and Columns slika 2.6.5.

 

Slika 2.6.5. Prikaz za kreiranje Foreign Key u alatu Managment Studio


6. Zadajte ime za zavisnost i proverite da li je zavisnost uspostavljena. Kliknite OK kako biste zatvorili okvir za dijalog. Prikazaće se okvir za dijalog Foreign Key Relationships slika 2.6.6.

 

Slika 2.6.6. Ekranska maska za definisanje kolone za Foreign Key


7. Zadajte atribute zavisnosti i potom kliknite Ok. Vratićete se na dijagram baze podataka.
8. Pošto zatvorite dijagram baze podataka, SQL Server će vas prvo upitati da li želite da zapišete izmene koje ste napravili slika 2.6.7. Kliknite Yes kako biste zapisali izmene koje ste napravili nad tabelama. Prikazaće se okvir za dijalog Choose Name.

 

Slika 2.6.7. Prikaz dijaloga Choose Name


9. Zadajte ime dijagrama baze podataka i potom kliknite Ok. Prikazaće se okvir dijalog Save u kojem ćete videti tabele koje se nalaze u dijagramu baze podataka (slika 2.6.8). Kliknite Yes kako biste ažurirali tabele. Dijagram baze podataka bi sada trebalo da se nalazi u čvoru Database Diagrams alatke SQL Server Management Studio.

 

Slika 2.6.8. Okvir dijalog Save

 

Menjanje dijagrama baze podataka

Da biste izmenili zavisnost između dve tabele u dijagramu baze podataka:

  1. Desnim tasterom miša kliknite bilo koju tabelu u dijagramu baze podataka i odaberite Relationship. Prikazaće se okvir za dijalog Foreign Key Relationships slika 2.6.9.
  2. Kliknite na zavisnost koju želite da izmenite.
  3. Izmenite atribute zavisnosti.
  4. Kliknite na Close.

 

Slika 2.6.9. Okvir za dijalog Foreign Key Relationships

 

Dodavanje tabela u dijagram baze podataka

Da biste u dijagram baze podataka uvrstili tabele:

  1. Desnim tasterom miša kliknite bilo gde unutar prozora Relationships i odaberite Add Table.
  2. Desnim tasterom miša kliknite bilo gde nutar prozora Relationships i odaberite Add Table. Prikazaće se okvir za dijalog Add Table.
  3. Odaberite tabele koje želite da uvrstite u dijagram baze podataka i potom kliknite Add.
  4. Kliknite Close. SQL Server će u dijagram baze podataka uvrstiti tabele koje ste odabrali.

 

Uklanjanje tabele iz dijagrama baze podataka

Da biste iz diagrama baze podataka uklonili tabelu:

  1. Desnim tasterom miša kliknite tabelu koju želite da uklonite i odaberite Remove from Dijagram.
  2. Veoma je važno da zapamtite da SQL Server iz dijagama baze podataka uklanja tabelu, ali iz baze podataka ne ulanja zavisnost.

 

Zavisnost između tabela

Veoma lako mžete prikazati sve zavisnosti stranog ključa tabele u kojima ta tabela učestvuje. Evo šta treba da uradite:

  1. Desnim tasterom miša kliknite tabelu i odaberite Modify. Prikazaće se struktura tabele.
  2. Na paleti alatki kliknite alatku Relationships. Prikazaže se okvir za dijalog Foreign Key Relationships slika 2.6.9.
  3. Kliknite zavisnost kako biste je selektovali. Pokazaće se atributi zavisnosti.

 

Pravljenje zavisnosti stranog ključa

Koristeći okvir za dijalog Foreign Key Relationships možete da napravite indeks. Treba samo da kliknete komandno dugme Add. Prikazaće se zavisnost koja ima unapred definisano ime i nema opis.

Pre nego što bilo šta uradite, treba da unesete specifikacije u ovir za dijalog Tables and Colums onako kako je to opisano u odeljku "Zadavanje specifikacija u okviru za dijalog Tables and Columns". Specifikacije za tabelu i kolonu morate zadati kako bi SQL Server Express mogao da napravi novu zavisnost.

 

Uklanjanje zavisnosti stranog ključa

Zavisnost stranog ključa se veoma lako uklanja, na sledeći način:

  1. U okiru za dijalog Foreign Key Relationships odaberite zavisnost koju žeite da uklonite.
  2. Kliknite komandno dugme Delete. SQL Server će ukloniti zavisnost i pri tom neće prikazati upozorenje.

 

Zadavanje specifikacije u okviru za dijalog Tables and Columns

Zadavanjem specifikacije u okviru za dijalog Tables and Columns zadajete tabelu stranog ključa koja će učestvovati u zavisnosti, polje tabele stranog ključa koje će učestvovati u zavisnosti i polje u tekućoj tabeli koje će učestvovati u zavisnosti. Da biste upotrebili okvir za dijalog Tables and Columns, treba da uradite sledeće:

  1. U okviru za dijalog Foreign Key Relationships odaberite Tables and Columns Specification.
  2. Kliknite komandno dugme Build (komandno dugme sa tri tačke) koje se nalazi na desnoj strani. Prikazaće se okvir za dijalog Tables and Columns slika 2.6.10.
  3. Ukoliko želite, promeite ime zavisnosti. U opštem slučaju, promenićete ime zavisnosti kako biste preciznije opisali zavisnost koju pravite (na primer, FK_Customers_Orders_CustomerID).
  4. Kliknite kako biste odabrali tabelu primarnog ključa koja će učestvovati u zavisnosti. Na primer, ukoliko pravite strane ključeve u tabeli, onda ćete tabelu odabrati za tabelu primarnog ključa.
  5. Upotrebite spisak na levoj strani (spisak ispod tabele primarnog ključa) kako biste odabrali polje (polja) koje će učestvovati u zavisnosti. Na primer, u zavisnosti stranog ključa tabela, polje ID tabele učestvuje u zavisnosti.
  6. Iskoristite spisak na desnoj strani (spisak ispod tabele stranog ključa) kako biste dabrali polja koja će učestvovati u zavisnosti. Kompletan okvir za dijalog vidite na slici 2.6.10. U zavisnosti između tabela, polja stranog ključa koje učestvue u zavisnosti je polje ID.
  7. Kliknite Ok. SQL Server će vas vratiti uokvir za dijalog Foreign Key Relationships.

 

Slika 2.6.10. Okvir za dijalog Tables and Columns

 

Ime i opis zavisnosti

Svakoj zavisnosti koju napravite, treba da dodelite opisno ime i kratak opis. Na taj način, kada zavisnost budete prikazali u prozou Foreign Key Relationships, možete lako uočiti prirodu zavisnosti koju ste odabrali.

Da biste uneli ili promenili ime zavisnosti, kliknite svojstvo (Name) zavisnosti, kratak opis.

Da biste za zavisnost uneli opis, kliknite svojtvo Description indeksa. Unesite kratak opis.

Kako se utvrđuje da li zavisnosti stranog ključa ograničavaju podatke koji se unose u kolonu?

Kao što vidite, zavisnosti se lako uspostavljaju. Uspostavljanje odgovarajućeg tipa zavisnosti nije tako lak zadatak. Kada pokušate da uspostavite zavisnost između dve tabele, SQL Server donosi neke odluke na osnovu unapred definisanih činilaca:

  • SQL Server uspostavlja zavisnost jedan-prema-više ukoliko je jedno polje deo primarnog ključa ili za polje postoji jedinstven indeks.
  • SQL Server uspostavlja zavisnost jedan-prema-jedan ukoliko su oba polja deo primarnih ključeva ili za njih postoji jedinstven indeks.
  • SQL Server ne može da uspostavi zavisnost ukoliko nijedo polje nije deo primarnog ključa ili ni nad jednim poljem ne postoji jedinstven indeks.

 

Pre nego što se uspostavi referencijalni integritet između dve tabele, moraju se ispuniti sledeći uslovi:

  • Polje na strani "jedan" zavisnosti mora biti polje primarnog ključa ili za polje mora postojati jedinstven indeks.
  • Polja koja učestvuju u zavisnosti moraju biti istog tipa podataka. Takođe, moraju biti iste veličine. Numerička polja na obe strane zavisnsti moraju biti iste veličine na pimer, tipa podataka int).
  • Obe tabele se moraju nalaziti u istoj bazi podataka.
  • Ukoliko odlučite da za opciju Check Existing Data on Creation zadate vrednost Yes, onda postojeći podaci u tabelama ne smeju narušiti nijedno pravilo referencijalnog ontegriteta. Za svaku narudžbinu u tabeli mora postojati mušterija.

 

Pošto između dve tabele uspostavite refrencijalni integritet, SQL Server primenjuje sledeća pravila:

  • Ne možete uneti vrednost u strani ključ tabele koja ne postoji u primarnom ključu primarne tabele. Na primer, ne možete uneti vrednost u polje ID tabele koja ne postoji u polju ID.
  • Ne možete ukloniti slog iz primarne tabele ukoliko postoje odgovarajuća polja u tabeli sa kojom je uspostavljena zavisnost.
  • Ne možete promeniti vrednost primarnog ključa na strani "jedan" zavisnosti ukoliko u tabeli sa kojom je zavisnost uspostavljena postoje odgovarajući slogovi.

 


Ukoliko se naruši bilo koje od prethodna tri pravila, a između tabela se primenjuje referencijalni integritet, prikazuje se odgovarajuća poruka.

Osnovno ponašanje SQL Server-a je da zabrani uklanjanje roditeljskih slogova za koje postoje dete-slogovi i da zabrani menjanje vrednosti primarnog ključa roditeljskog sloga, a da za taj slog postoji dete-slog. Ova ograničenja možete da zaobiđete ukoliko koristite specifikacije INSERT i UPDATE.

Između tabela baze podata može uspostaviti referencijalni integritet:

  • U okviru za dijalog Foreign Key Relationships odaberite zavisnost za koju želite da uspostavite referencijalni integritet.
  • Svojstvu Enforce Foreign Key Constraint zadaje vrednost Yes. Ovaj korak je sve što treba da uradite kako biste uspostavili referncijalni integritet.
  • Ukoliko želite da za postojeće podatke proverite, pošto zapišete izmene, da li zadovoljavaju pravila referencijalnog integriteta, opcije Check Existing Data on Creation or Re-enabling zadajte vrednost Yes.
  • Ukoliko koristite replike baze podataka i želite da tokom postupka sinhronizovanja primenite praila referencijalnog integriteta, svojstvu Enforce for Replication zadajte vrednost Yes.


 

Zadavanje specifikacije Insert i Update

SQL Server vam omogućava da definišete pravila pomoću kojih se određuje šta se dešava kada korisik ukloni ili ažurira slog.

Ta pravila se nalaze unutar čvora INSERT and UPDATE Specifications prozora Foreign Key Relationships.

 

Pravo uklanjanja

Uvođenjem pravila uklanjanja (pravilo Delete) određujete šta se događa kada korisnik ukloni slog koji se nalazi na strani "jedan" zavisnosti jedan-prema-više. Na primer, zadavanjem pravila Delete za Cascade uspostaljate pravilo tako da korisnik može da ukloni slog koji se nalazi na strani "jedan" zavisnosti jedan-prema-više, čak i kada u tabeli na strani "više" zavisosti jedan-prema-više postoje odgovaraući slogovi. Korisnik može da ukloni mušteriju čak i kada za mušteriju postoje narudžbine. Referencijalni integritet između tabela se ne narušava pošto SQL Server automtski uklanja sve odgovarajuće slogove iz dete-tabele.

Ukolio pokušate da uklonite slog iz tabele koja se nalazi na strani "jedan" zavisnosti jedan-prema-više, a za slog u tabeli koja se nalazi na strani "više" ne postoje odgovarajući slogovi, onda ćete bez problema moći da uklonite slog. Sa druge strane, ukoliko pokušate da uklonite slog iz tabele koja se nalazi na strani "jedan" zavisnosti jedan-prma-više, a za slog u tabeli koja se nalazi na strani "više" postoje odgovarajući slogovi, onda ćete ukloniti slog iz roditeljske tabele i sve odgovarjuće slogove iz dete-tabele.

 


Pravilo ažuriranja

Kada za pravilo ažuriranja (pravilo Update) zadate opciju Cascade, korisnik može da promeni vrednost primarnog ključa sloga na strani "jedan" zavisnosti. Kada korisnik pokuša da promeni polje po kojem se dve tabele spajaju na strani "jedan" zavisnosti, promena se propagira na polje stranog ključa na strani "više" zavisnosti. To je korisna opcija ukoliko se polje primarog ključa može menjati.

Na primer broj računa za narudžbinu se možda može promeniti. Ukoliko korisnik promeni broj narudžbenice u roditeljskom slogu, onda tu promenu treba propagirati na odgovarajuće slogove u dete-tabeli.

Dodaj komentar Sviđa mi se - (2) Ne sviđa mi se - (0)    

  • Kreiranje, izmena tabela u bazi podataka pomoću programa Management Studio i dijagrami baze podataka 1
  • Kreiranje, izmena tabela u bazi podataka pomoću programa Management Studio i dijagrami baze podataka 2
  • Kreiranje, izmena tabela u bazi podataka pomoću programa Management Studio i dijagrami baze podataka 3