Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime,...

38
შშშშშშშშ ააააა აააააა ააააააააა ააააააა ააააააააა აააააააააააა აააააააააააა ”აააააა-აააააააა” ააააააააააააა. აა აააა აააა აააააააააააააა აა ააააააა აააააააააა აააა აააააა ააააააააააა აააააააააააააა ააააააააა. ააააააააააა ააააააააააააა აააააააააააა აააააააააააააა CLR, აააააააა აააააააააააა აააააა ააააააააააა ააააააა აა ააააააა. ( CLR-common Intermidiate Language-აააააააააა ააააააა Microsoft Intermidiate Language აა MSIL)-აა ააააა ააააააააააა ააააა ააააააააააა .NET აააააააააა, ააააააა ააააა Visual Studio-ა აააააააა ( C#,C++, Visual Basic. NET აა ა. ა.) ააააააააააა აააააა აააააააა ააა ააააააა ააააააა: ააააააააა ააააააა ააააააააააა აა აააააააააა; ააააააააა აააააააააააააა აააააა; აააააააააააააა აააააა-ააააააა. აააააააააა აააა აააააა აა აააააა ააააააააა აა ააააააააააააა ააააააააააა აააა აააა აააააააააააა, აააააა აა აააააააააა ააააააააააააა ააააააააააა აააააააააააააააა აააააააააააა აააააააააა ააააააააააააააააა აააააააააააა ააააააა. ააა ააააააა, ააა აააა აააააააააა ააააააააააა აააააა, აააა აააა ააააააა აააა აააააააააა, ააააა, აააააა აააა ააააააააააააააააა. აააააააააააააა ააააააააააა ააააააა ააააა აააააააა ააააააააა ააააააა, ააააააააააააა ააააააააააააა, ააააააააააააააა ააააააააააა ააააააა ააააა ააააააა ააააააა აააააააააა. ააააააააააა აააააააა ააააააააააა ააააააააა ააააა აააააააააა ააააა ააააააააააა. ააააააააა: აააააააა, აააააააააა, ააააააააა ააააააააა. ააააააააააა აააააააა აააააა, (ააა ააააააა აააააააა ააააააააააა აააააააააა ააააააააააა ააააააააა ააააა OLTP-Online Transaction processing) ააააააააააა აააააააააააა აააააააააააააააა, აააააააა აააააა აააააააააა ააააააააააა ააააააა. აა ააააა ააააააააააა ააააააა ააააა აააააააა აა აააააა აააა აააააააააა აააააააა აააააააააააააააა. ააა ააააააააააა აააააა ააააააააააააა აა აააააააააა აააააააააააა აააააააააააააა. ააააააააა აააააა აააა აააააააააააა აა ააააააააააა აააააა აააააააა ააააააა ააააა ააააააააააა. ააა აა აააა აააააააააა აააააააა ააააააააააა აააააააააააააააა., ააააააააააა აააააა ააააააა ააააააა აააააააააა ააააააააააააა. 1

Transcript of Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime,...

Page 1: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

შესავალიახალი თაობის მონაცემთა ბაზების პლატფორმა დაფუძნებულია მრავალდონიან ”კლიენტ-

სერვერულ” არქიტექტურაზე. ეს არის უფრო მასშტაბირებადი და მოქნილი ტექნოლოგია წინა წლებში გამოყენებულ ტექნოლოგიებთან შედარებით. გამოყენების მასშტაბურობას განაპირობებს ინტერპრეტატორი CLR, რომეელიც უზრუნველყობს ბიზნეს ინფორმაციის მიღებას და მართვას. ( CLR-common Intermidiate Language-ფორმალურად იწოდება Microsoft Intermidiate Language ან MSIL)-ამ კოდში გენერირდება ყველა კომპილატორი .NET პლატფორმის, რომელიც შედის Visual Studio-ს გარემოში ( C#,C++, Visual Basic. NET და ა. შ.)

ინფორმაციის მართვა ეფუძნება სამ ძირითად ასპექტს: მონაცემთა ბაზების პროექტირება და დამუშავება; მონაცემთა ცენტრალიზებული მართვა; ინტელექტუალური ბიზნეს-ანალიზი.ინფორმაცია არის აქტივი და თავისი შინაარსის და შემადგენლობის შესაბამისად უნდა იყოს

ორგანიზებული, დაცული და გარკვეულად ხელმისაწვდომი ყოველდღიური ოპერაციებისათვის ორგანიზაციის ნებისმიერი თანამშრომლისათვის მოსახერხებელ ფორმაში. რაც ნიშნავს, რომ უნდა არსებობდეს ინფორმაციის საცავი, უნდა იყოს ცნობილი მისი მდებარეობა, წყარო, დაცული იყოს კონფიდენციალურობა.

ორგანიზაციებში ინფორმაციის შენახვა ხდება გლობალურ მონაცემთა ბაზებში, განსაკუთრებით მნიშვნელოვანი, კონფიდენციალური ინფორმაციის შენახვა ხდება ლოკალურ სამუშაო სადგურებში.

მონაცემების საცავიში ინფორმაციის დაგროვება ხდება სხვადასხვა ტიპის წყაროებიდან. როგორიცაა: ძირითადი, კეშირებული, მონაცემთა ვიტრინები.

მონაცენემთა ძირითადი საცავი, (მას აგრეთვე უწოდებენ ტრანზაქციის ოპერატიული დამუშავების მონაცემთა ბაზას OLTP-Online Transaction processing) გამოიყენება ტრანზაქციული მონაცემებისათვის, რომლების ჩნდება ყოვედღიური ოპერაციების შედეგად. აქ ხდება ინფორმაციის მიკრება ყველა წყაროდან და შემდეგ მისი დაჯგგუფება შემდგომი დამუშავებისათვის. იგი გამოიყენება სწრაფი შენახვისათვის და გარემოსთან დაუყოვნებელი კონტაქტისათვის.

კეშირების საცავი არის არაუცილებელი და გამოიყენება როგორც ძირითადი საცავის ასლის წამკითხველი. იგი არ არის აუცოლებელი ელემენტი ინფორმაციის სტრიქტურირებისას., გამოიყენება მხოლოდ ძირითად საცავზე დატვირთვის შესამცირებლად.

გლობალური საცავები ინახავს უზარმაზარ ინფორმაციას სხვადასხვა საცავებიდან. მასში გამოიყენება ე.წ. ETL პროცესი (Extract-Transform-Load-ამოღება, გარდაქმნა, ჩატვირთვა) . გლობაალური საცავები იქმნება მონაცემების სწრაფად მოძიება- მიღებისათვის. აქ ინფორმაცია არანორმალიზებულია, განსხვავებით მთავარი საცავისაგან.

მონაცემთა ვიტრინები წარმოადგენს ქვესიმრავლეს გლობალური საცავის. აქ ხდება სპეციალურად გამიზნული ჯგუფებისათვის ინფორმაციის კონსოლიდაცია.

არსებობს მონაცემთა ბაზის რამდენიმე მოდელი, რომელთა არჩევაც დამოკიდებულია პროექტის მოთხოვნაზე. ესაა ობიექტზე ორიენტირებული მონაცემთა ბაზები, რომლებიც

1

Page 2: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

შეესაბამება ობიექტზე ორიენტირებულ დაპროგრამების პრინციპს. მას ძირითადად უდევს კონცეფცია, რომ ნებისმიეროი ობიექტი არის კლასის ეგზემპლარი. კლასში განსაზღვრულია ობიექტის ყველა თვისება და მუშაობის მეთოდი. მოკლედ, ობიექტი დაპროგრამებულია. ყოველ ეგზემპლარს შეიძლება გააჩნდეს საკუთარი შიდა ცვლადები, რის შედეგადაც იგი დამოუკიდებლად მოქმედებს გარე სამყაროსთან.

რელაციური მონაცემთა ბაზები, რომლების შედგება მრავალი ერთმანეთთან დაკავშირებული ცხრილებისაგან.

მონაცემთა ბაზებთან მუშაობისას განსაკუთრებით მნიშვნელოვანია ტრანზაქციის ოპერაციები.

ტრანზაქციატრანზაქცია ეს არის სამუშაოს ერთიანი ლოგიკური ბლოკი, რომელიც ხასიათდება

მკვეთრად გამოხატული თვისებებით მაგ. ბაზაში ერთდროულად რამდენიმე სტრიქონის ჩამატება ან განახლება, წაშლა და ა. შ.

ბაზის მუშაობის ხარისხი დამოკიდებულია იმაზე, თუ რამდენად შეესაბამება მისი შესაძლებლობები ტრანზაქციის პროცესის შესრულებისას ACID პრინციპებს. ეს პრინციპებია: ატომარობა, მთლიანობა, იზოლირებულობა, მდგრადობა (Atomicity,Consistency, Isolation, Durability)

ატომარობა-ტრანზაქციის პროცესი ან მთლიანად სრულდება (უწყვეტად), ან საერთოდ არ სრულდება. თუ ტრანზაქციის პროცესი ნაწილობრივ შესრულდა, მაშინ ატომარობა დარღვეულია.

მონაცემთა ბაზის მთლიანობა-ეს ნიშნავს, რომ ტრანზაქციის პროცესი სრულდება მაშინ , როცა ბაზა მთლიანია. ტრანზაქციის პროცესის დასრულებისას ბაზა ისევ მთლიანობის მდგომარეობაში რჩება.( მთლიანობა ნიშნავს, რომ თითოეული სტრიქონი და მნიშვნელობა უნდა შეესაბამებოდეს რეალურ სიტუაციას და უნდა სრულდებოდეს ყველა შეზღუდვა.(მაგ თუ წერია შეკვეთები და არ წერია საქონელი, მთლიანობის პრინციპი დარღვეულია.)

ტრანზაქციის თითოეული პროცესი უნდა იყოს იზოლირებული, რაც ნიშნავს, რომ ყველა ტრანზაქციის პროცესი უნდა ხორციელდებოდეს ერთმანეთისაგან დამოუკიდებლად. ახალმა პროცესმა არ უნდა შეუშალოს ხელი უკვე დაწყებული ტრანზაქციის პროცესის დასრულებას. ეს პრინციპი განსაკუთრებით მნიშვნელოვანია, როცა ბაზასთან მუშაობს რამდენიმე მომხმარებელი.

მდგრადობა გულისხმობს ტრანზაქციის პროცესის შესრულებას სისტემური შეფერხებებისაგან დამოუკიდებლად. მონაცემთა ბაზების მართვის სისტემა ისე უნდა იყოს დაპროექტებული, ახალი ტრანზაქციის შესრულებისას შეფერხებების არსებობის შემთხვევაში, შესაძლებელი გახდეს ბოლოს, სრულად შესრულებული ტრანზაქციის პროცესის შემდეგ არსებული მდგომარეობის აღდგენა.

ნებისმიერი ოპერაცია ბაზაში ხორციელდება პრინციპით: ყველაფერი ან არაფერი. მაგ. არ შეიძლება ბაზის სანახევროდ წაშლა.

2

Page 3: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

ტრანზაქციას გააჩნია საწყისი და საბოლოო წერტილები. მათ დასაფიქსირებლად გამოიყენება ოპერატორები T-SQL -ში გამოიყენება ოპერატორები:

BEGIN TRAN COMMIT TRAN ROLLBACK TRAN SAVE TRAN

BEGIN TRAN გვიჩვენებს საიდან იწყება მუშაობის უწყვეტი პროცესი, რომელიც განიხილება როგორც ერთი ტრანზაქცია ანუ ფიქსირდება ტრანზაქციის საწყისი წერტილი. თუ რაიმე მიზეზით არ მოხდა ტრანზაქციის დაფიქსირება, მაშინ ყველა მოქმედება უქმდება და მონაცემთა ბაზა ბრუნდება ომ მდგომარეობაში, რომელიც მას ეკავა ოპერატორის გამოძახების წერტილში.COMMIT TRAN უზრუნველყობს ტრანზაქციის ფიქსაციას ანუ ტრანზაქციის პროცესის დასრულებას. ამ ოპერატორის შესრულების შემდეგ ტრანზაქციის შედეგები ფიქსირდება, ტრანზაქცია ხდება მუდმივი და ინახება სამუშაოს ავარიული დასრულების შემთხვევაშიც.ROLLBACK TRAN -ეს ოპერატორი შეიძლება გამოვიყენოთ წარუმატებელი მოქმედების შესრულების უარყოფის მიზნით. მისი საშუალებით ბაზა შეიძლება დავაბრუნოთ იმ მდგომარეობაში, რომელიც მას ეკავა ტრანზაქციამდე ან დაბრუნება მოხდეს ერთ-ერთ საკონტროლო წერტილში.SAVE TRAN-სვავს საკონტროლო წერტილებს. ეს ოპერატორი თავის კოდში გვიჩვენებს თუ სად, რა მდგომარეობაში უნდა დაბრუნდეს ბაზა ტრანზაქციის წარუმატებლად განხორციელების შემთხვევაში. ოპერატორის ერთხელ შესრულების შემდეგ ეს საკონტროლო წერტილები იშლება.

3

Page 4: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

SQL SERVER 2005მონაცემთა ბაზების მართვის სისტემა SQL SERVER 2005-ს შეიძლება ეწოდოს კარგად

დაცული სისტემა, რადგანაც მისი დაყენების შემდეგ ბევრი ფუნქცია გაჩუმების პრინციპით არის გამორთული.

განვიხილოთ SQL SERVER 2005-ს არქიტექტურა. კომპიუტერში სერვერის დაყენების პროცესის დასრულების შემდეგ უნდა გაეშვას უტილიტა

SQL Server Surface Area Configuration. იმ შემთხვევაში, თუ მოხდება ძველი ვერსიის განახლება, იქ დაყენებული ყველა სამსახური ავტომატურად გაეშვება ახალ ვერსიაშიც. ეს

უტილიტა უზრუნველყობს აგრეთვე სერვერზე დაყენებული სერვისების და სერვერის შეერთების ტიპის შემოწმებას. ამ უტილიტას გაშვებისთანავე გამოსული ფანჯრიდან შესაძლებელია იმ კომპიუტერის სახელის მითითება, რომელზედაც საჭიროა სერვისების კონფიგურაცია.

ფანჯარაში არის ორი ბმული: Surface Ares Configuration for Services and

Connections. Surface Area Configuration for Features

ბმული Surface Ares Configuration for Services and Connections გამოიყენება მოცემული სერვერის კონფიგურაციისათვის. იგი უზრუნველყობს სერვერის ჩართვის, მის მდგომარეობის და გაშვების ტიპის შეცვლას.

დიალოგური ფანჯარა Surface Area Configuration for Features უზრუნველყობს მონაცემთა ბაზის ბირთვის დამატებითი ფუნქციების მართვას.

4

Page 5: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

ეს ფუნქციებია: OPENROWSET and OPENRATASOURCE -უზრუნველყობს მონაცემების

წამოღებას OLE DB წყაროდან. CLR ინტეგრაცია განაპირობებს .NET მმართველი კოდის გამოყენებას შენახული

პროცედურებისათვის, ტრიგერებისათვის, სამომხმარებლო ფუნქციების და მონაცემთა ტიპებისათვის. ეს ფუნქცია გაჩუმებით გამორთულია.

DAC -ეს არის სპეციალური ჩართვა მაღალი პრიორიტეტით, რაც ნიშნავს რომ ადმინისტრატორს შეუძლია დიაგნოსტიკის ჩატარება.

SQL Mail- ელ. ფოსტის გაგზავნის სამსახური. ჩადგმული WEB სამსახური. Web Assistant მოდული განაპირობებს HTML კოდის გენერირებას. xp_cmdshell -სისტემური შენახული პროცედურა, რომელიც უზრუნველყობს

ოპერაციული სისტემის ბრძანებების გაშვებას.მონაცემთა ბაზების მართვის სისტემას SQL Server 2005-ს მრავლად გააჩნია

კონფიგურაციის პარამეტრები, რომლებიც სამ დონედაა დაყოფილი:1. პარამეტრები, რომლების სერვერის დონეზე განსაზღვრავენ სერვერის სხვა

მოწყობილობებთან ურთიერთქმედების საერთო კონფიგურაციას; აგრეთვე გაჩუმებით მიღებულ მნიშვნელობებს ყველა მონაცემთა ბაზისათვის.

2. პარამეტრები, რომლებიც მონაცემთა ბაზის დონეზე განსაზღვრავენ ბაზის მუშაობის რეჟიმებს და გაჩუმებით მიღებულ მნიშვნელობებს ნებისმიერი შეერთებისათვის;

3. შეერთების დონის პარამეტრები, რომლებიც განსაზღვრავენ მუშაობის რეჟიმებს ნებისმიერი შეერთებისათვის ან შენახული პროცედურებისათვის.

პარამეტრების დაყენება შესაძლებელია როგორც გრაფიკული ინტერფეისის გარემოში ასევე პროგრამული კოდის საშუალებით.

გრაფიკული ინტერფეისის გარემოში კონფიგურაციის ბევრი პარამეტრის დაყენება შესაძლებელია Server Properties დიალოგური ფანჯრიდან, რომლის გამოძახებაც ხდება

5

Page 6: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

Managment Studio-ს კონსოლის ხიდან კონტექსტური მენიუს Propertis ბრძანებით. General ჩანართში მოცემულია ინფორმაცია სერვერის ვერსიის და მისი ზოგადი პარამეტრების შესახებ.

სერვერის ძირითადი სამუშაო ინტერფეისი რეალიზებულია უტილიტა Managment Studio-ს საშუალებით. კლიენტისათვის იგი წარმოადგენს ინსტრუმენტს სერვერთან სამუშაოდ.

უტილიტა Managment Studio-ს გააჩნია მთელი რიგი ფუნქციების, რომლების ორგანიზებულია პანელებში. მათი გამოტანა შესაძლებელია View-დან. ესენია:

Object Explorer (F8) -ეს პანელი გამოიყენება ბაზის ობიექტების შექმნის და ადმინისტრირებისათვის. ის ასრულებს იგივე ფუნქციას, რასაც ასრულებდა Query Analyzer ძველ ვერსიებში.

Summary (F7)-შეიცავს ძირითად ინფორმაციას მონიშნული ობიექტისათვის. Registered Servers (Ctrl+Alt+G)ეს პანელი გამოიყენება მონაცემთა ბაზების

სერვერის ბირთვის რეგისტრაციისათვის. Template Explorer (Ctrl+Alt+T)-გამოიყენება T-SQL -ის შაბლონების სამართავად. Solution Explorer (Ctrl+Alt+L)-მისი ფუნქციაა პროექტების მართვა. Properties (F4)-ამ პანელზე აისახება მონიშნული ობიექტის თვისებები. Bookmarks (Ctrl+K, Ctrl+W)-აქ ჩამოთვლილია Query Editor-ში დაყენებული

სანიშნეები. Web Browser (Ctrl+Alt+R)გამოიყენება მოთხოვნებში XML და HTML ტექსტების

ასახვისათვის. Output Window (Ctrl+Alt+V) Query Editor- ანალოგიურია ძველი ვერსიებიდან Query Analyzer-ის. იგი იძლევა

T-SQL ენაზე დაწერილი მოთხოვნის შექმნის, რეაქტირების დაგაშვების საშუალებას. მისი გახსნა ხდება File-New... ბრძანებით.

ყველაზე ხშირად გამოიყენება Object Explorer, Template Explorer, Registered Servers, Summary, Properties.

Managment Studio-ს გააჩნია ფანჯრების წარმოდგენის რამდენიმე რეჟიმი: Floating,Dockable, Tabbed Document.

6

Page 7: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

სტანდარტული რეჟიმის აღდგენა ხდება ბრძანებით Reset Window Leyout.Registered Servers ფანჯარა არის ინტერფეისის დამატებითი ელემენტი. აქ არის ყველა

რეგისტრირებული სერვერების ჩამონათვალი. აქვე შესაძლებელია მათი დაჯგუფება.Object Explorer ფანჯარაში წარმოდგენილია ბაზის ობიექტების ჩამონათვალი. კვანძი Databases შეიცავს ყველა მონაცემთა ბაზას, რომელებიც განლაგებულია სერვერზე.

თითოეული მათგანის კონტექსტური მენიუდან შესაძლებელია ძირითადი ოპერაციების განხორციელება. თითოეული კვანძი შეიცავს ქვეკვანძებს, რომლებითაც შესაძლებელია ბაზის ობიექტებთან მუშაობა. ესენია:

Database Diagrams-გრაფიკულად გამოსახავენ ცალკეულ ცხრილებს და კავშირებს ცხრილებს შორის.

Tables-ეს კვანძი გამოიყენება ცხრილების სტრუქტურის შექმნის და მოდიფიკაციისათვის. აქ შესაძლებელია განხორციელდეს იმ ტრიგერების და შენახული პროცედურების შექმნა და რედაქტირება, რომლებიც უზრუნველყოფენ მონაცემების ცვლილებას. მხოლოდ აქედანაა შესაძლებელი მოთხოვნათა კონსტრუქტორის Query Designer-ის გაშვება.

Views- აქ შეიძლება შესაძლებელია წარმოდგენების შესახებ ინსტრუქციების შექმნა და რედაქტირება.

Synonims- ინახება მონაცემთა ბაზის ობიექტების ალტერნატიული სახელები. Programmability-აქ ინახება დიდი რაოდენობით სხვადასხვა ობიექტების: შენახული

პროცედურები, ტრიგერები და ა. შ. Service Broker -საბროკერო სამსახური. Storage-ეს კვანძი გამოიყენება არასტანდარტული საცავების მართვისათვის.

მონაცემთა ბაზა შეიცავს დიდი რაოდენობით სხვადასხვა ობიექტებს. ამიტომ ამ ობიექტებთან მუშაობის გასამარტივებლად გამოიყენება ფილტრაციის ოპერაცია. ფილტრაციის ღილაკი მოთავსებულია Object Explorer-ის პანელზე. მისი გააქტიურების შემდეგ შესაძლებელი ხდება მოხდეს ობიექტების ფილტრაცია სახელის, სქემის და შექმნის თარიღის მიხედვით.რელაციური მონაცემთა ბაზების მართვის სისტემა უზრუნველყოფს არა მხოლოდ მონაცემების შენახვას, არამედ განსაზღვრავს მათი ფუნქციონირების წესებს, რომელიც თავის მხრივ განაპირობებს ბაზის მთლიანობის დაცვას.

7

Page 8: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

რელაციური მონაცემთა ბაზების სისტემა SQL Server-ი შედგება შემდეგი ძირითადი ობიექტებისაგან:

მონაცემთა ბაზები ინდექსები ტრანზაქციის ჟურნალი ცხრილები მოთხოვნები დიაგრამები წარმოდგენები როლები შენახვადი პროცედურები ფაილური ჯგუფები მომხმარებლები სამომხმარებლო ფუნქციები.

მონაცემთა ბაზა წარმოადგენს მონაცემების ჯგუფს, რომელიც თავის მხრივ არის ცხრილების, შენახვადი პროცედურების, და წარმოდგენების ნაკრები, რომლებიც შეიცავენ ბაზის ცხრილებში შენახული გარკვეული მონაცემების ერთობლიობას.SQL Server-ის პროგრამულ პაკეტში შედის შემდეგი სისტემური ბაზები:

master model msdb tempdb

სერვერის სრული ფუნქციონირებისათვის ამ ბაზების არსწებობა აუცილებელია.master-ეს ბაზა ნებისმიერი სერვერის შემადგენლობაშია. იგი შეიცავს ინფორმაციას სერვერის კონფიგურაციის შესახებ. მასში მოთავსებულია სისტემური ცხრილები, რომლებიც განაპირობებენ მთელი სისტემის ფუნქციონირებას. დაზიანების შემთხვევაში შესაძლებელია მოხდეს მისი აღდგენა ბოლო სარეზერვო ასლიდან. ამ ბაზაში ახალი ობიექტების შექმნა არ შეიძლება.model-ეს ბაზა თავისი ფუნქციონირებით აბსოლუტურ შესაბამისობაშია თავის სახელთან. იგი არის მოდელი, რომლის საფუძველზედაც იქმნება ასლები. იგი წარმოდგენს შაბლონს ნებისმიერი ახლად შექმნილი მონაცემთა ბაზისათვის. ამ ბაზაში სურვილისამებრ შესაძლებელია შეტანილ იქნას ცვლილებები. მაგ. შეიძლება დავამატოთ ახალი ცხრილი, მომხმარებელთა ჯგუფები, სააღრიცხვო ჩანაწერები. აღნიშნულიდან გამომდინარე, ამ ბაზის არსებობა აუცილებელია.msdb -გამოიყენება SQL Agent-ის მიერ შესრულებული სისტემური ოპერაციების შესახხებ ინფორმაციის შესატანად.მაგ. როდესაც იქმნება რომელიმე მონაცემთა ბაზის ასლი, msdb-ში ჩნადება ახალი სტრიქონი. ამ ბაზაში ინახება აგრეთვე რეპპლიკაციისათვის საჭირო ცხრილები.tempdb-წარმოადგენს სერვერისათვის ძირითად სამუშაო გარემოს. მაგ. ნებისმიერი რთული მოთხოვნის შესრულებისას, რომლისთვისაც SQL –ს სჭირდება შუალედური ცხრილები, ასეთი ცხრილები იქმნება ამ ბაზაში. აღსანიშნავია, რომ დროებითია არა მხოლოდ ამ ბაზაში შექმნილი ცხრილები, არამედ თვითონ ბაზაც, იგი ყოველთვის ახლიდან იტვირთება სერვერის პროგრამული უზრუნველყოფის გადატვირთვისას და სუფთავდება (იშლება) სერვერის გაჩერების დროს.SQL Server-ის თითოეული მონაცემთა ბაზა შედგება ფაილური ჯგუფებისაგან. ფაილი შეიძლება შეიცავდეს მონაცემებს ან იყოს ტრანზაქციის ფაილი.არსებობს მონაცემების ორი ტიპის ფაილები: პირველადი და მეორადი, ტრანზაქციის ფაილები ინახავს მხოლოდ ინფორმაციას ტრანზაქციის პროცესის შესახებ. იგი ყოველთვის ინახება მონაცემების ფაილისგან დამოუკიდებლად.ნებისმიერი მონაცემთა ბაზა იქმნება ერთი მონაცემების და ერთიც ტრანზაქციის ფაილით.ამგვარად, ბაზებში გამოყენებულია სამი ტიპის ფაილები:

8

Page 9: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

პირველადი ფაილები (primary)-რომლებიც ინახავენ ინფორმაციას ბაზის გაშვების და მისი სისტემური ცხრილების და ობიექტების შესახებ. აგრეთვე შეიცავენ მომხმარებლის მიერ შექმნილ ცხრილებს და ობიექტებს. თითოეულ ბაზას გააჩნია ერთი პირველადი ფაილი. მისი გაფართოებაა .mdf;

მეორადი ფაილები (Secondary)-აქ ინახება ის მონაცემები და ობიექტები, რომლებისც არ არის პირველად ფაილში. ამ ტიპის ფაილის არსებობა ბაზასში არ არის აუცილებელი. მისი გაფართოებაა .ndf;

ტრანზაქციის ჟურნალის ფაილები (transaction log)-ტრანზაქციის ჟურნალიდან ინახავენ ბაზის აღდგენისათვის საჭირო ინფორმაციას. ბაზას შეიძლება გააჩნდეს რამდენიმე ტრანზაქციის ჟურნალი. ასეთი ტიპის ფაილების გაფართოებაა .ldf;

თითოეულ ფაილს გააჩნია ორი სახელი: ლოგიკური და ფიზიკური. ლოგიკური სახელი გამოიყენება T-Sql-ის მოთხოვნებში, ხოლო ფიზიკური სახელით ფაილი ინახება დისკზე.მონაცემების ადმინისტრირებისათვის საჭიროა ფაილების დაჯგუფება. თვისებების მიხედვით არსებობს სამი ტიპის ფაილური ჯგუფები:პირველადი ჯგუფის ფაილები-რომლებიც შეიცავენ მხოლოდ პირველადი ტიპის ფაილებს. ეს ფაილები იქმნება ავტომატურად ბაზის შექმნისათანავე.სამომხმარებლო ჯგუფის ფაილები-იგი მოიცავსყველა ფაილს, რომელიც იქმნება მომხმარებლის მიერ ბაზასთან მუშაობისას.სტანდარტული ჯგუფის ფაილები-გაჩუმებით ასეთი ტიპის ჯგუფს მიეკუთვნება პირველადი ჯგუფის ფაილები. ადმინისტრატორს აქვს შესაძლებლობა შეცვალოს და ამ ჯგუფში გააერთიანოს სხვა ჯგუფის ფაილები.

9

Page 10: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

მონაცემთა ბაზის შექმნაარსებობს მონაცემთა ბაზის შექმნის რამდენიმე გზა:

მონაცემთა ბაზის შექმნა Managment Studio -ს საშაუალებით; ბაზის შექმნა T-SQl-ით.

გამნიხილოთ ბაზის შექმნა Managment Studio-ს გარემოში Managment Studio-ს გაშვების შემდეგ Object Explorer -ის პანელზე Databases -ზე მარჯვენა ღილაკით გამოვიტანოთ კონტექსტური მენიუ და ავირჩიოთ ბრძანება New Database.

Database Name -ახალი ბაზის სახელი; ბაზის შექმნა ხდება ორი ფაილის საფუძველზე: ერთია ძირითადი (Primary), მეორე ტრანზაქციის (Transaction log) ჟურნალის ფაილი. Add ღილაკით შესაძლებელია დავამატოთ ახალი, დამატებითი ჯგუფის ფაილი.

new filegroup ბრძანებით გამოდის ფანჯარა, სადაც ვაფიქსირებთ ახალი ფაილური ჯგუფის სახელს.

10

Page 11: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

შექმნილი ბაზის Script ის ნახვა შესაძლებელია ბაზაზე მარჯვენა ღილაკით გამოტანილი კონტექსტური მენიუდანს Script database As/Create to/New Query Editor Window ბრძანებით.განვიხილოთ ბაზის შექმნის მეორე ვარიანტი: T-SQLT-SQL ის გამოყენებით ბაზის შექმნის სინტაქსი ასეთია:

ON gamoiyeneba monacemebis failis mdebareobis gansazRvrisaTvis da agreTve tranzaqciis Jurnalis failebisaTvis. aRsaniSnavia sityva primary, romelic miuTiTebs imaze, rom mis Semdeg aRiwereba pirveladi failebis jgufi, romelSic fizikurad inaxeba monacemebi. (SesaZlebelia gamoviyenoT meoradi failebi jgufic).

NAMEes sityva gansazRvravs monacemTa bazis failis ara fizikur, aramed logikur saxels. es saxeli gamoiyeneba bazis failTan nebismieri mimarTvisas.

FILENAME

es saxeli gansazRvravs operaciuli sistemis moqmedi failis saxels myar diskze. am failSi Seinaxeba monacemebi an Jurnali. rodesac saubaria fizikur failze, misTvis gamoiyeneba igive saxeli, rac monacemTa bazisaTvis, gafarToebiT mdf. xolo Tu vwerT tranzaqciis fails, maSin am failsac eniWeba igive saxeli, rac monacemTa bazas, mxolod emateba sufiqsi log da gafarToeba .ldf. parametri filename iTvleba ara aucileblad, Tu iqmneba ubralo, martivi baza model sistemuri bazis is safuZvelze, yvela sxva SemTxvevaSi, (Tu saWiroa damatebiTi informaciis ganTavseba bazaSi), saWiroa mieTiTos saxelic da gzac am failamde.

SIZEgansazRvravs monacemTa bazis failis zomas. gaCumebiT zoma mietiTeba megabaitebSi, magram SesaZlebelia igi iyos kilobaitebSi, gigabaitebSi an terabaitebSi. es zoma ar unda iyos sistemur monacemTa baza-model-ze naklebi, amasTanave misi zoma miTiTebuli unda iyos mTeli ricxvebiT. winaaRmdeg SemTxvevaSi gamotanili iqneba Setyobineba Secdomis Sesaxeb. Tu zomas ar mivuTiTebT, maSin baza iqneba modelis zomis.

MAXSIZE

11

Page 12: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

servers aqvs specialuri meqanizmi, romelic uzrunvelyobs bazisaTvis aucileblobis SemTxvevaSi damatebiTi moculobis gamoyofas, size gan gansxvavebiT misTvis mkacrad gansazRvruli mniSvneloba ar arsebobs, faqtiurad maqsimaluri mniSvneloba miiRweva mas Semdeg rodesac myar diskze ukve aRar arsebobs adgili monacemTa bazis gafarToebisaTvis.

FILEGROWTH aq mieTiTeba ricxvi, romelic gamosaxavs yoveljerze monacemTa failis zomis zrdas. SesaZlebelia es zoma gamovsaxoT procentebiT. mag. Tu sawyisi zoma aris 1 gb da igi izrdeba 20%-iT, maSin pirvelad gazrdis Semdeg misi zoma iqneba 1,2 gb, meored 1,44 gb da a. S.

LOG ON igi gansazRvravs Jurnalis failebis Tvisebebs da mdebareobas. am failebis Senaxva rekomendirebulia pirveladi failebis diskisagan gansxvavebul diskze, amiT xdeba Setana-gamotanis operaciebis Sesrulebis dros monacemTa bazis failebsa da Jurnalis failebs Soris winaaRmdegobis Tavidan acileba.

bazis Seqmnis Semdeg Cven SegviZlia miviRoT damatebiTi informacia misi struqturis Sesaxeb utilita sp_helpdb –s daxmarebiT. igi iRebs mxolod erT parameters –bazis saxeli

EXEC sp_helpdb ‘test’

12

Page 13: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

მონაცემთა სარეზერვო კოპირება და აღდგენის მოდელები

მონაცემთა ბაზებთან მუშაობისას რეზერვირების და აღდგენის პროცესები საკმაოდ მნიშვნელოვანია. მონაცემთა სარეზერვო ასლების ფაილების და ტრანზაქციის ჟურნალის არსებობა უზრუნველყობს ბაზის მდგომარეობის აღდგენას იმ მდგომარეობით, რომელშიც ის ფიქსირდებოდა სისტემის დაზიანებამდე.

SQL Server -ში არსებობს სამი ტიპის აღდგენის მოდელი: Full Simple Bulk-logged

Full-ამ მოდელის გამოყენებისას ჟურნალში იწერება სრული ინფორმაცია ყველა განხორციელებულ ოპერაციაზე. ავარიული გათიშვისას მონაცემების დაკარგვა არ ხდება,(რა თქმა უნდა თუ შექმნილია მონაცემთა ფაილების და ტრანზაქციის ჟურნალის ფაილების სარეზერვო ასლები)

ამ მოდელში შესაძლებელია არა მხოლოდ სრული ასლების შექმნა, არამედ იმ ცვლილებების ასახვაც, რომელიც მოხდა ბოლო სრული სარეზერვო ასლის შექმნის შემდეგ. გარდა ამისა შესაძლებელია მოხდეს ბაზის სრული აღდგენა კონკრეტული დროის შესაბამისი მდგომარეობისათვის. ამ მოდელის შემთხვევაში ტრანზაქციის ჟურნალში ადგილი თავისუფლდება მხოლოდ მას შემდეგ, როცა უკვე შესრულდება სარეზერვო კოპირება Transaction Log და ყველა ცვლილება გადავა სარეზერვო ასლში, ხოლო მათ მიერ დაკავაბული ადგილი ჟურნალში გამოთავისუფლედება ახალი ჩანაწერებისათვის. ამისათვის მონაცემთა ბაზებს, რომელთა ექსპლუატაციაც ხდება ამ რეჟიმში, უნდა გააჩნდეთ ტრანზაქციის ჟურნალისთვის საკმარისი ადგილი, რათა მოხდეს ყველა ტრანზაქციის შენახვა, რომელიც სრულდება სარეზერვო ასლებს შორის.

არარეგისტრირებული ოპერაციები დაუშვებელია.ამ მოდელში შესაძლებელია შეიქმნას შემდეგი ტიპის ასლები:

Complete Backups Differencial backups File and /or Filegroups backup Transaction log backup

Simple-ეს მოდელი იდეალურია ისეთი ბაზებისათვის, რომლებშიც მოითხოვება ტრანზაქციის ატომარობის დაცვა. ამ მოდელის არსებობისას რეგულარულად ხდება ჟურნალის გასუფთავება საკონტროლო წერტილებში და ფაქტიურად იშლება ინფორმაცია ყველა დასრულებულ ტრანზაქციაზე. ინახება მხოლოდ ბაზაში ჯერ კიდევ დაუფიქსირებელი ტრანზაქცია. ასე, რომ ხდება ჟურნალის ფორმირება, თავისუფლდება ადგილი ახალი ჩანაწერებისათვის. ჟურნალის მოცულობა პატარაა. მაგრამ იგი გამოუყენებელია აღდგენისათვის სისტემის ავარიული გამორთვის შემთხვევაში.

ამგვარად, Simple მოდელში არ ხდება ჟურნალის ასლის შექმნა. შესაძლებელია მხოლოდ მოხდეს ბაზის სრული ან ნაწილობრივი (დიფერენცირებული ) აღდგენა. მარტივ მოდელში იმ ცვლილებების აღდგენა , რომელიც მოხდა ბოლოს შესრულებული სრული სარეზერვო კოპირების შემდეგ შეუძლებელია.

დასაშვებია არარეგისტრირებული ოპერაციები, მაგ. მასიური კოპირებები.

13

Page 14: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

Simple მოდელში შესაძლებელია შეიქმნას შემდეგი ტიპის ასლები: Complete Backups Differencial backups

Bulk-Logged-ეს მოდელი ზემოთ განხილულ ორ მოდელს შორისაა. შესაძლებელია მონაცემთა ბაზის თანმიმდევრული სარეზერვო ასლის შექმნა და ამასთანავე Transaction log მუშავდება ისევე, როგორც სრულ მოდელში. მხოლოდ ტრანზაქციის ჟურნალში არ ხდება შემდეგი ოპერაციები:

მასიური ჩასმები; ინსტრუქცია SELECT *INTO ოპერაციები WRITETEXT UPDATEETEXT ინსტრუქცია GREATE INDEX

სისტემის ავარიული გათიშვის შემთხვევაში სარეზერვო ასლი შეიცავს ინფორმაციას ყველა განხორციელებულ ცვლილებაზე, გარდა მასიური ოპერაციების, ამიტომ საჭირო ხდება მათი ხელახალი შესრულება.

ამ მოდელში შესაძლებელია შეიქმნას შემდეგი ტიპის ასლები: Complete Backups Differencial backups File and /or Filegroups backup Transaction log backup

ზემოთ განხილული მოდელების სინტაქსი T-SQL-ის გამოყენებით ასეთია:ALTER DATABASE (ბაზის სახელი) SET RECOVERY (მოდელის ტიპი)მაგ:ALTER DATABASE test SET RECOVERY Full (Simple, Bulk-logged)შესაძლებელია იგივე ოპერაცია განხორციელდეს Managment Studio-ს საშუალებითაც.

მონაცემთა ბაზის სახელზე მარჯვენა ღილაკით ავირჩიოთ Properties გამოსულ ფანჯარაში გავააქტიუროთ Options Recovery models ჩამოსაშლელ ველში მოვნიშნოთ( Full ,Simple, Bulk-logged) OK

მოდელების შცვლის ოპერაციების შედეგის შესამოწმებლად გამოიყენება შენახული პროცედურა

exec sp_helpdb (ბაზის სახელი) მაგ: exec sp_helpdb test

14

Page 15: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

Status ველში შესაძლებელია ააღდგენის მოდელის ნახვა.

განვიხილოთ მონაცემთა ბაზის ასლის შექმნის ოპერაციები.არსებობს მონაცემთა ბაზის ასლის რამდენიმე ტიპი:

Full baskups Differencial baskups File baskups Filegroup baskups Transaction Log

Full - სრული ტიპი გვაძლევს საშუალებას მივიღოთ არსებული ფაილების სრული ასლი ბოლოს შესრულებული ტრანზაქციისათვის არსებული მდგომარეობით. Differencial -დიფერეცირებული ასლის შემთხვევაში ხდება კოპირება მხოლოდ იმ მონაცემების, რომლებიც შეიცვალა ბოლო სრული სარეზერვო ასლის შექმნის შემდეგ.როდესაც საქმე გვაქვს დიდი მოცულობის ბაზებთან, სრული ასლის შექმნა საკმაოდ შრომატევადია, მოითხოვს დიდ დროს, ამიტომ მისაღებია ბაზის სრული ასლის შექმნა განხორციელდეს კვირაში ან თვეში ერთხელ, შუალედებში კი მოხდეს დიფერენცირებული ასლის შექმნა.File and filegroups-ამ ტიპის ასლის შექმნა შეიძლება მხოლოდ აღდგენის Full ან Bulk-Logged რეჟიმში და შესაძლებელია კონკრეტული ფაილების და ფაილური ჯგუფების ასლის შექმნას. Transaction log- ეს ტიპი გამოიყენება ტრანზაქციის ჟურნალის ასლის შესაქმნელად. იგი ხელმისაწვდომია იმ შემთხვევაში, როდესაც აღდგენის მოდელში გამოყენებულია Full ან Bulk-Logged მოდელი, Simple ვარიანტში მისი გამოყენება შეზღუდულია.

განვიხილოთ მონაცემთა ბაზის ასლის შექმნა Managment Studio- ს (SSMS) საშუალებით:Object Explorer--ის ფანჯარაში სასურველი ბაზის სახელზე მარჯვენა ღილაკით

გამოვიტანოთ კონტექსტური მენიუ და შევასრულოთ ბრძანებათა თანმიმდევრობა: Tasks/ Backup

პირველი სარეზერვო ასლი უნდა იყოს სრული, რადგან ამით იწყება რეზერვირების ციკლი.

15

Page 16: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

გამოვა ფანჯარა ორი ჩანართით: General, Options. მონაცემთა წყარო კონფიგურირდება General ჩანართში.

Database-სარეზერვო ბაზა (გაჩუმებით ეს არის მიმდინარე ბაზა) Backup-სარეზერვო ასლის ტიპი: Full, differential, transaction-log; თუ ბაზაში არის

აღდგენის Single model, მაშინ transaction log მიუწვდომელია.თუ არის სრული ან დიფერენცირებადი რეზერვირება, მაშინ სარეზერვო ასლი შეიძლება შეიქმნას მთელი ბაზისათვის, ან კონკრეტული ფაილების და ფაილური ჯგუფებისათვის.

Name-სარეზერვო ასლის სახელი; Description-ასლის აღწერა; Expiration Date-ბოლო ვადა. სერვერი არ დაუშვებს ამ არქივის არევას სხვა არქივში ამ

ვადის გასვლის შემდეგ. Destination-ფაილის ადგილი ფისკზე ან ლენტაზე; Contents-სარეზერვო ასლების სია, რომლებიც არსებობენ სარეზერვო ფაილში.

ჩანართი OptionsAppent to existing backup set ან Overwrite all exsiting backup sets- ეს პარამეტრი განსაზღვრავს დაემატება თუ არა ახალი სარეზერვო ასლი უკვე არსებული არქივის ფაილს.

Verify backup when finished- ამ ველის გააქტიურება უზრუნველყობს დადასტურებას სარეზერვო კოპირების დასრულების შესახებ(სასურველია იგი იყოს ჩართული)

პროგრამული შემოწმება სარეზერვო ასლის შექმნის შესახებ ხდება შემდეგი მოთხოვნით:restore verifyonly

from disk=’ გზა ფაილამდე’

16

Page 17: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

ჩავწეროთ T-SQL -ზე ბაზის ასლის შექმნის მოთხოვნა. მისი სინტაქსია:BACKUP DATABASE ბაზის სახელი TO DISK = ‘გზა ფაილამდე’ WITH NAME ='არქივის სახელი'

განვიხილოთ ბაზის სხვადასხვა ტიპის ასლების შექმნის ვარიანტები.ტიპი-Fullშევქმნათ D: დისკზე test ბაზის სრული ასლი baze საქაღალდეში testbak სახელით.BACKUP DATABASE testTO DISK ='D:\baze\test.bak' WITH NAME='testbak'

შესაძლებელია WITH NAME პარამეტრი არ მივუთითოთ.

ტიპი-transaction log: D დისკზე ტრანზაქციის ფაილის ასლი:

BACKUP DATABASE testTO DISK ='D:\baze\test.trn'

ტიპი-Differencial: D დისკზე დიფერენცირებული ასლი:

BACKUP DATABASE testTO DISK ='D:\baze\test.dif' WITH DFFERENCIAL;

სპეციფიური ( ამ შემთხვევაში Secondary ) ფაილური ჯგუფის ასლი:

BACKUP DATABASE test FILEGROUP =’Secondary’TO DISK ='D:\baze\test-sec.flg'

შესაძლებელია შევქმნათ ასლები ერთდროულად სხვადასხვა დისკზე:BACKUP DATABASE testTO DISK ='C:\baze\test_1.bak',DISK ='D:\baze\test_2.bak',DISK ='E:\baze\test_3.bak',

ბაზის აღდგენაManagment Studio–ში ბაზის აღდგენისათვის ბაზის სახელზე მარჯვენა ღილაკით

გამოტანილი კონტესქსტური მენიუდან სრულდება ბრძანებათა შემდეგი თანმიმდევრობა:Tasks/Restore/Database, ხოლო T-SQL- ში აღდგენის ოპერაციის სინტაქსი ასეთია:RESTORE DATABASE <ბაზის სახელი> FROM DISK=’გზა ფაილამდე’

ინფორმაცია ბაზაში განხორციელებული ასლის შექმნის და აღდგენის ოპერაციების ჩატარების შესახებ შესაძლებელია მივიღოთ Managment Studio -დან. ამისათვის საჭიროა: სასურველ ბაზაზე მარჯვენა ღილაკით გამოვიტანოთ კონტექსტური მენიუ და შევასრულოთ ბრძანებათა შემდეგი თანმიმდევრობა: Reports/Standart Reports/Backup and Restore Events

17

Page 18: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

***ბაზების მართვისას მნიშვნელოვანია ფაილების მოცულობის ცვლილება. ეს შესაძლებელია

მოხდეს ან ავტომატურ რეჟიმში, ან უშუალოდ ხელით.

მაგ. შევქმნათ ბაზა NewDb და მოვახდინოთ მისი ფაილების მოცულობის და უშუალოდ ბაზის სტრუქტურის ცვლილება. (ბაზის შექმნამდე C,D დისკებზე შევქმნათ საქაღალდეები SQLdata, SQLlog, რომლებშიც მოხდება ფაილების შენახვა)

CREATE DATABASE NewDbON(NAME='NewDb',FILENAME='c:\SQLdata\NewDb.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=20)

LOG ON(NAME=NewDbLog,

18

Page 19: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

FILENAME='d:\SQLlog\NewDbLog.Ldf',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=10%)GO

თუ ფაილების მოცულობის გაზრდის ავტომატური რეჟიმი გამორთულია, მაშინ საჭიროა მონაცემების დამატებისას ფაილის მოცულობის კორექტირება მოხდეს ხელით. ამ შემთხვევაში გამოიყენება როგორც Managment Studio, ასევე T-SQLინსტრუქცია ALTER DATABASE პარამეტრით MODIFY FILE.მაგ. გავზარდოთ ჩვენს მიერ შექმნილი მონაცემების ფაილი 25 მბ-ით.ALTER DATABASE NewDb MODIFY FILE ( NAME=NewDb, SIZE=25 mb, MAXSIZE=100mb, FILEGROWTH=20) GOბაზაში ცვლილების განხორციელების შედეგი შეგვიძლია შევამოწმოთ შენახული პროცედურით:EXEC sp_helpdb NewDb

შევქმნათ ბაზა, რომელშიც გვექნება ორი მონაცემების ფაილი და ორი ტრანზაქციის ფაილი:CREATE DATABASE New_dbONPRIMARY(NAME=New_Db,FILENAME='c:\SQldata\New_Db.mdf'),

(NAME='New_Db2',FILENAME='c:\SQldata\New_Db2.ndf')

LOG ON(NAME='New_Dblog',FILENAME='d:\SQllog\New_Dblog.ldf'),

( NAME='New_Dblog2', FILENAME='d:\SQllog\New_Dblog2.ldf' )GO

დავამატოთ ბაზას ერთი მეორადი ჯგუფის ფაილიALTER DATABASE New_Db ADD FILE

( NAME='New_Db3', FILENAME='c:\SQldata\New_Db3.ndf', SIZE=10 mb, MAXSIZe=40mb,

19

Page 20: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

FILEGROWTH=20 )GO

შემდგომში შესაძლებელია გამოუყენებლი ფაილების წაშლა. ამისათვის საჭიროა თავდაპირველად ბაზის შეკუმშვა ფუნქცია DBCC ShrinkFile-ის გამოყენებით, ხოლო შემდეგ მისი წაშლა ან Managment Studio-დან Delete ბრძანებით, ან ინსტრუქციით: ALTER DATABASE REMOVE FILE. წავშალოთ ბოლოს დამატებული ფაილი New_Db3

DBCC SHRINKFILE (New_DB3,emptyfile) ALTER DATABASE New_Db REMOVE FILE New_Db3GO

შევქმნათ ბაზა რამდენიმე ფაილური ჯგუფით:

CREATE DATABASE NewDbONPRIMARY(NAME=NewDb,FILENAME='c:\SQldata\NewDb.mdf',SIZE=20mb, MAXSIZE=50mb,FILEGROWTH=20mb), FILEGROUP GROUPTWO (

NAME=NewDbgroup2,FILENAME='c:\SQldata\NewDb2.ndf',SIZE=25mb,MAXSIZE=100mb,FILEGROWTH=15mb)

LOG ON( NAME=NewDbLog,FILENAME='d:\SQLlog\NewDblog.ldf',SIZE=25mb,MAXSIZE=60mb,FILEGROWTH=10%)

20

Page 21: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

GO

ობიექტების ფილტრაცია

მონაცემთა ბაზა შესაძლოა შეიცავდეს სხვადასხვა ობიექტების დიდ რაოდენობას. მათ შორის ნავიგაციისათვის გამოიყენება ფილტრაციის ოპერაცია. ფილტრაციის ღილაკი მოთავსებულია Object Explorer ის პანელზე Managment Studi-ში. ეს ღილაკი გააქტიურებულია მხოლოდ მაშინ, როდესაც მონიშნულია ობიექტი. მაგ. ცხრილების ფილტრაციისათვის უნდა მოვნიშნოთ ცხრილი და ავირჩიოთ: Filter/Filter Settings

გამოსული დიალოგური ფანჯარა იძლევა საშუალებას მოვახდინოთ ფილტრაცია ობიექტის სახელის, სქმის და თარიღის მიხედვით.ფილტრის გასაუქმებლად ვირჩევთ Filter/Clear Filtr.

21

Page 22: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

cxrilis Seqmna

არსებობს ცხრილის შექმნის რამოდენიმე მეთოდი: გრაფიკულ რეჟიმში ეს შესაძლებელია მენეჯერ სტუდიოს გამოყენებით. ცხრილების შექმნა- მოდიფიკაციისათვის: მასში არსებობს ორი სამუშაო სივრცე

ცხრილის შექმნა კონსტრუქტორის რეჟიმში (Table Designer), რომელშიც მოცემულია სვეტების ვერტიკალური ჩამონათვალი, ხოლო შესაბამისი თვისებები აისახება ფანჯრის ქვედა ნაწილში.

მონაცემთა ბაზის კონსტრუქტორის რეჟიმში (Database Designer) , რომელიც წარმოადგენს უფრო მძლავრ ინსტრუმენტარიას ცხრილის კონსტრუქტორთან შედარებით, მასში შესაძლებელია აისახოს გარე გასაღებების შეზღუდვები როგორც კავშირები სხვა ცხრილებთან.

თითოეულ ამ ინსტრუმენტში გრაფიკულადაა მოცემული ცხრილის სტრუქტურა. როგორც კი ცხრილის პროექტირება დასრულდება, მენეჯმენტ სტუდიო მოახდენს შესაბამისი სცენარის გენერირებას, რომლითაც მოხდება ბაზაში ცვლილებების შეტანა. თუ თქვენ მოახდენთ არსებული ცხრილის მოდიფიცირებას, როგორც წესი მონაცემები შეინახება დროებით ცხრილში, შემდგომ მოხდება გარკვეული მონაცემების წაშლა და იქმნება ახალი ცხრილი, რომელშიც შეიტანება მონაცემები.

ცხრილის კონსტრუქტორი ასახავს მხოლოდ სვეტების სახელებსა და მისი შესაბამისი მანაცემების ტიპებს, აგრეთვე ცარიელი მნიშვლელობების დაშვება/არდაშვების საკითხს(NULL\NOT NULL).

22

Page 23: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

ცხრილის სტრუქტურის რედაქტირებისთანავე, ინსტრუმენტალურ პანელზე აქტიურდება ღილაკი „Save Change Script“, მისი დაჭერის შემთხვევაში ვიხილავთ კოდს რომელიც ცხრილის კონსტრუქტორმა უნდა შეასრულოს ცვლილებების ფაქტიურად დასამახსოვრებლად. აღსანიშნავია რომ ეს ღილაკი გვაძლევს საშუალებას დავიმახსოვროთ სცენარი .sql ფაილში, რაც საშუალებას გვაძლევს იგივე სცენარი გამოვიყენოთ სხვა სერვერზე.

ცხრილისა და სვეტების სახელები

SQL სერვერი საშუალებას გვაძლევს გვქონდეს ცრილებისა და სვეტების სახელებში 128 UNICODE სიმბოლომდე, მათ შორის ჰარი, ზედა და ქვედა რეგისტრის სიმბოლოები.სახელების შერჩევისას რეკომენდირებულია შემდები რჩევების გათვალისწინება:

თუ ცხრილის სახელი შედგება რამოდენიმე სიტყვისაგან, თითოეული სიტყვის პორველი ასო დაიწყეთ დიდი ასოთი;

გამოიყენეთ მოკლე სახელები ოღონდ ისეთი რომელიც ადვილად მიგვანიშნებს ცხრილის დანიშნულება\შინაარსზე.

შეზღუდეთ აბრევიატურების გამოყენება; ისთი ცხრილის შექმნისას რომელიც უნდა გამოყენებულ იქნას სხვა ცხრილების

დასაკავშირებლად, სასურველია გამოიყენოთ ისეთი სახელი რომელიც შეიცავს ყველა მშობელი ცხრილის სახელს.

თუ ცხრილის სახელი შედგება რამოდენიმე სიტყვისაგან მოერიდეთ „_“ -ის გამოყენებას, საკმარისი იქნება ისიც, რომ ყოველი სიტყვის პირველი ასო იქნება დიდი და დანარჩენი პატარა.

გასაღები სიტყვები

ცხრილის შექმნისათვის T-SQL-ის მეშვეობით გამოიყენება შემდეგი გასაღები სიტყვები:

DEFAULT- ეს გასაღები სიტყვა ახდენს გაჩუმებით იმ მნიშვნელობის განსაზღვრას, რომელიც მომხმარებლის მიერ არ იქნება შეტანილი და ჩაისმება ცხრილში ნებისმიერი სტრიქონის დამატებისას.

IDENTITY- ცხრილის ფორმირებისას მას საკმაოდ დიდი მნიშვნელონა ენიჭება. თუ მონაცემის ტიპის განსაზღვრისას მიეთითება რომ ის არის იდენტიფიცირებული, მაშინ SQL სერვერი მას ავტომატურად განუსაზღვრეავს საწყის მნიშვნელობასა (seed) და ზრდის ბიჯს (increment), რომელიც გაჩუმებით არის 1 და 1, თუმცა სურვილისამებრ შესაძლებელია მომხმარებლის მიერ მათი შეცვლა. იდენტიფიკაციის სვეტი აუცილებლად უნდა იყოს რიცხვითი int ან bigint. NULL და NOT NULL - მათ საკმაოდ მარტივი დანიშნულება აქვთ, ხორციელდება იმის დადგენა უშვებს თუ არა შესაბამისი სვეტი NULL მნიშვნელობის ქონის შესაძლებლობას.

განვიხილოთ ცხრილის შექმნის სინტაქსი:

CREATE TABLE <cxrilis saxeli>

23

Page 24: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

(<svetis saxeli ><monacemis tipi>[(<zoma >)],… );SevqmnaT cxrili “studentebi”

CREATE TABLE STUDENT(STUDENT_ID INTEGER, SURNAME VARCHAR(60),NAME VARCHAR(60),KURS INTEGER, FAC VARCHAR(60),BIRTHDAY DATE,)cxrilis struqturis Sesacvlelad gamoiyenaba operatori ALTERmisi sintaqsi aseTia:

ALTER TABLE <cxrilis saxeli> ADD (<svetis saxeli > <monacemTa tipi> <zoma >);შემდეგი brZanebiT daemateba sveti, romelsac SeuZlia miiRos

mniSvneloba NULL. ramdenime svetis damatebisas isini erTmaneTisagan mZimiT gamoiyofa.

ALTER TABLE STUDENTADDcity varchar (50) null,

SesaZlebelia SevcvaloT svetis aRwerac, amisaTvis viyenebT brZanebas:

ALTER TABLE <cxrilis saxeli> MODIFY <svetis saxeli > <monacemebis tipi > <zoma/sizuste>

MODIFY-is gamoyenebisas mxedvelobaSi unda miviRoT Semdegi garemoebebi:

monacemTa tipis Secvla SesaZlebelia Tu sveti carielia; Seuvsebeli svetisaTvis SesaZlebelia SevcvaloT zoma/sizuste, xolo

SevsebulisaTvis SesaZlebelia zomis da sizustis mxolod gazrda; SesaZlebelia NOT NULL mniSvnelobis miniWeba, Tu svetSi ar

gvaqvs NULL mniSvnelobis arcerTi Canaweri; SesaZlebelia gaCumebiT miniWebuli mniSvnelobis Secvlac.

cxrilis waSla xdeba brZanebiT:DROP TABLE <cxrilis saxeli >;

cxrilSi monacemebis Casma xdeba INSERT brZanebiTINSERT (cxrilis saxeli)

24

Page 25: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

(svetebis sia);VALUES ( mniSvnelobaTa sia)siaSi mniSvnelobebi erTmaneTisagan gamoiyofa mZimiT da iwereba brWyalebSi.

შეზღუდვებიცხრილში მონაცემების შეტანისას აუცილებელია განსაზღვრული იყოს მონაცემის ტიპი

და ზომა, მაგრამ გარდა ამისა შესაძლებელია ცხრილში არსებობდეს შეზღუდვები (CONSTRAINTS). ეს შეზღუდვები ედება ცხრილში შესატან მნიშვნელობებს.

არსებობს ორი ტიპის შეზღუდვა: შეზღუდვა სვეტებისათვის და შეზღუდვა ცხრილისათვის. სვეტებისათვის შეზღუდვა იდება გარკვეულ სვეტებზე, ხოლო ცხრილის შემთხვევაში შეზღუდვები ედება სვეტების გარკვეულ ჯგუფს. შეზღუდვის პირობის დადება ხდება სვეტის მონაცემის ტიპის და ზომის განსაზღვრის შემდეგ (მძიმის წინ), ხოლო ცხრილისათვის შეზღუდვის დადება ხდება ბოლო სვეტის განსაზღვრის შემდეგ. ყოველივე ამის გათვალისწინებით შეგვიძლია დავწეროთ ცხრილის შექმნის ბრძანების სინტაქსი შემდეგნაირად:

Create Table <ცხრილის სახელი>( <სვეტის სახელი> <მონაცემის ტიპი> <შეზღუდვა>, <სვეტის სახელი> <მონაცემის ტიპი> <შეზღუდვა>, <შეზღუდვა ცხრილისათვის> (სვეტის სახელი, [სვეტის სახელი, . . .] )...); -ესენია

იმ სვეტების სახელები, რომლებზედაც ვრცელდება შეზღუდვა.

განვიხილოთ თუ რა ტიპის შეზღუდვები შეიძლება არსებობდეს ცხრილებში.

გასაღებები

პირველადი და გარე გასაღებები წარმოადგენენ იმ კვანძებს, რომლთა მეშვეობითაც ხორციელდება ცხრილებს შორის კავშირების დამყარება რელაციურ მონაცემთა ბაზებში.

მონაცემთა ბაზის სქემის ტრანსფორმირება უნდა განხორციელდეს თეორიულ–ლოგიკური სტრუქტურიდან – ფიზიკურ სტრუქტურაში, რასაც საფუძვლად უნდა დაედოს პირველადი და გარე გასაღებები. დაპროექტებული მონაცემთა ბაზის გაშვების შემდგომ რთულია გასაღებების ცვლილება, ამიტომ სასურველია ისინი სწორად იქნას შერჩეული დაპროექტების ეტაპზევე.

პირველადი გასაღებები ( Primary Key )

რელაციური მონაცემთა ბაზა დამოკიდებულია პირველად გასაღებებზე.ისინი წარმოადგენენ ქვაკუთხედს მონაცემთა ბაზის ფიზიკური სტრუქტურისა. დღესდღეისობითაც საკმაო კამათი მიდის სუროგატული (ავტომატურად გენერირებადი) და ბუნებრივი (მომხმარებლისათვის გასაგები სახელწოდების) გასაღებების ავ–კარგიანობაზე.ფიზიკურ დონეზე, პირველადი გასაღებები ემსახურებიან 2 ძირიდად მიზანს:

1. სტრიქონების უნიკალური იდენტიფიკაციისათვის;2. როგორც გარე გასაღების მიმართვის ობიექტი.

25

Page 26: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

SQL Server-ში პირველადიც და გარე გასაღებებიც რეალიზებულნი არიან როგორც შეზღუდვები. მოცემული შეზღუდვების მიზანია მოახდინონ ახალი მონაცემების მიერ არსებული კრიტერიუმების დაკმაკოფილების გარანტირებული უზრუნველყოფა , აგრეთვე მონაცემების მოდიფიცირების ოპერაციის ბლოკირება.

პირველადი გასაღების მიერ დადებული შეზღუდვა წარმოადგენს უნიკალურობის მოთხოვნისა (რაც გულისხმობს ცარიელი მნიშვნელობების აკრძალვის მოთხოვნასაც) და უნიკალური ინდექსის (როგორც კლასტერულის ისე არაკლასტერულის) გამოყენებათა კომბინაციას

პირველადი გასაღებების შექმნა

პროგრამაში სვეტი შესაძლებელია გამოცხადებულ იქნას პირველად გასაღებად ორი გზით: CREATE TABLE-ს ინსტრუქციაშივე შემდეგნაირად(განხილულია არაკლასტერული

გასაღების შემთხვევა):

CREATE TABLE test( ID INT IDENTITY NOT NULL PRIMARY KEY, Lastname VARCHAR(30) NOT NULL, Firstname VARCHAR(30) NOT NULL, Dateof Birth DATETIME NULL)

ON [PRIMARY]; ცხრილის შექმნის შემდგომ ინსტრუქცია ALTER TABLE-ით:

ALTER TABLE test2 ADD CONSTRAINT ID_NUMBER PRIMARY KEY )ON [PRIMARY];

ბუნებრივი პირველადი გასაღებები

ბუნებრივი პირველადი გასაღებები გამოხატავენ თუ როგორ იდენტიფიცირდება ობიექტი რეალურ სამყაროში. მაგალითად გვარები, ავტომობილის და პირადობის მოწმობის ნომრები, მისამართები და ასე შემდეგ.ბუნებრივ გასაღებებს გააჩნიათ ტავიანთი უპირატესობებიც და ნაკლოვანებებიც:

ბუნებრივი გასაღებები ადვილად ამოცნობადია ადამიანებისათვის. მათი მეშვეობით მომხმარებელს ადვილად შეუძლია სასურველი მონაცემის პოვნა. ნაკლს რაც შეეხება ხშირია შემთხვევები როდესაც გარკვეული მოსაზრებიდან გამომდინარე ხდება პირველად გასაღებში სხვადასხვა სიმბოლოების ჩამატება. პირველადი გასაღებების ცვლილებამ შეიძლება გამოიწვიოს პრობლემები, ამიტომ რეკომენდირებულია ყველა იმ გარე გასაღების კასკადური განახლება რომლებიც დაკავშირებულები არიან ბუნებრივ პირველად გასაღებთან, ამით ვუზრუნველყოფთ მონაცემეის მთლიანობი დაცვას.

ბუნებრივი გასაღებები ახორციელებენ ყველა პირველადი გასაღების გადამრავლებას გარე გასაღებების ყოველ თაობაში(სხვადასხვა დროს შექმნილი გარე გასაღებები)

ბუნებრივი გასაღებებს როგორც წესი არ გააჩნიათ არანაირი ორგანიზებულობა, რაც უარყოფითად აისახება მონაცემთა ბაზის წარმადობაზე, როდესაც ხდება დალაგებული მონაცემების შუაში მონაცემების იმპორტი.

იდენტიფიცირებული სვეტების გამოყენება სუროგატულ გასაღებებად

სუროგატული გასაღებები როგორც წესი ივსება კომპიუტერის მიერ ავტომატურად და ადამიანებისათვის ნაკლებად ინფორმატიულია. დღევანდლამდე პირველადი გასაღების

26

Page 27: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

შექმნის ყველაზე გავრცელებულ მეთოდად ითვლება იდენტიფიცირებული სვეტების გამოყენება. ავტონუმერაციის სვეტის მსგავსად ცხრილში ახალი სტრიქონის ჩაწერისას იდენტიფიცირებული სვეტი ახდენს გენერირებას მთელი რიცხვების მიმდევრობისა. სურვილის შემთხვევაში შესაძლებელია საწყისი და ზრდის ბიჯის მნიშვნელობების მითითება. იდენტიფიცირებულ სვეტებს გააჩნიათ ორი ძირითადი უპირატესობა:

მთელი რიცხვები ადვილად ამოცნობადია, შესაბამისად მათი რედაქტირებაც უფრო ადვილია ვიდრე გლობალური უნიკალური იდენტიფიკატორების(GUID).

მთელი რიცხვები არ არის დიდი შესაბამისად ადვილად მუშავდება.

იდენტიფიცირებული სვეტების გამოყენების უარყოფითი თვისებები ასეთია: მათი უნიკალურობა ვრცელდება მხოლოდ ერთ ცხრილზე, სხვადასხვა ცხრილებში

მოხდება ერთი და იგივე მნიშვნელობების გამოყენება. (მაგალიტად ავტონუმერაციის გამოყენების შემთხვევაში სხვადასხვა ცხრილი გადაინომრება მსგავსად 1,2,3 ...)

იდენტიფიცირებულ სვეტებიანი მოდელები ყველა ცხრილებში ძირითადად იყენებენ სუროგატულ გასაღებებს., რასაც შედეგად მოსდევს შედგენილი პირველადი გასღებების გამოყენების აუცილებლობა, რაც საბოლოო ჯამში განაპირობებს კავშირების უფრო მეტი რაოდენობის არსებობას.

გარე გასაღებები შექმნა

მეორადი ცხრილი რომელიც დაკავშირებულია პირველადთან იყენებს გარე გასაღებს პირველადი ცხრილის პირველად გასაღებზე მისათითებლად. კავშირის სისრულის მოთხოვნა გულისხმობს რომ ყოველი გარე გასარები აუცილებლად მიუთითებს პირველადზე. კავშირის სისრულის დაცვა სასიცოცხლოდ მნიშვნელოვანია რელაციური მონაცემთა ბაზისათვის. მონაცემთა ბაზა უნდა იწყებდეს და ასრულებდეს ყველა ტრანზაქციას ისე რომ არ იქმნებოდეს ურთიერთგამომრიცხავი სიტუაციები., მონაცემთა ბაზის სისრულე გულისხმობს გარე გასაღებებით დამყარებული კავშირების სისრულესაც.

ცხრილებს SQL Server-ში შეუძლიათ უზრუნველყონ 253 გარე გასაღების შეზღუდვა. გარე გასაღებები შესაძლებელია უკავშირდებოდეს როგორც პირველად გასაღებებს, აგრეთვე ნებისმიერი ცხრილების (გარდა რასაკვირველია დროებითი ცხრილების) უნიკალურ შეზღუდვებსა და უნიკალურ ინდექსებს.

შეზღუდვა NULL და NOT NULL

ცხრილში შესაძლებელია ისეთი ველების არსებობა, რომლებიც არ შეიცავენ მნიშვნელობებს-ცარიელია. ცარიელი მნიშვნელობა -NULL, ნული, ჰარი, ნულოვანი სიგრძის სიმბოლური სტრიქონი -სხვადასხვა ცნებებია.

ცარიელი მნიშვნელობა - NULL გვიჩვენებს, რომ უჯრაში არ არის შეტანილი მნიშვნელობა, ე.ი. მნიშვნელობა უცნობია ან არ არის განსაზღვრული.

საერთოდ მიზანშეწონილია, რომ უჯრებისათვის ცარიელი მნიშვნელობები არ იქნეს გამოყენებული, რადგან ამას შეუძლია გამოიწვიოს ბევრი პრობლემა. მაგ. შედარების ოპერაციის გამოყენებისას ცარიელი მნიშვნელობების მქონე უჯრებზე, ბრუნდება უცნობი მნიშვნელობა, რადგანც იმ უჯრის მნიშვნელობა, რომელსაც მინიჭებული აქვს NULL და არ არის შეტანილი მონაცემი- უცნობია.

ცარიელი მნიშვნელობები არ შეიძლება გამოვიყენოთ იდენტიფიკატორებში., აგრეთვე გამოთვლების დროს, რადგანც შედეგი შეიძლება დაბრუნდეს არასწორი.(მაგ. საშ. მნიშვნელობის გამოთვლის დროს). როდესაც აუცილებელია შეიქმნას ისეთი სვეტი, რომლის მნიშვნელობაც შესაძლებელია რომ იყოს უცნობი, მაშინ მისაღებია DEFAULT-ის

27

Page 28: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

გამოყენება. (მაგ. სვეტი ტელეფონის ნომერი. თუ ნომერი უცნობია, მაშინ DEFAULT-ად გამოვიყენებთ UNKNOWN -ს).

თუ სვეტის დამატებისას არ განვსაზღვრავთ ველის მნიშვნელობას, მაშინ SQL Server-ი მას მიანიჭებს NULL მნიშვნელობას.

NULL-ის მინიჭების დროს არ აქვს მნიშვნელობა ველის ტიპს. NULL-ის ჩასმა ბრჭყალებში არ შეიძლება, წინააღმდეგ შემთხვევაში იგი განიხილება

როგორც სიმბოლური სტრიქონი.სვეტებისათვის, რომლებსაც მინიჭებული აქვთ PRIMARY KEY ან თვისება IDENTITY,

NULL-ის მინიჭება დაუშვებელია.NULL-ს ახასიათებს გარკვეული თავისებურებები ზოგიერთ ფუნქციასთან

გამოყენებისას. COUNT ფუნქციასთან NULL-ის გამოყენებისას , თუ COUNT-ის არგუმენტად

ავირჩევთ სვეტს, მაშინ დაბრუნდება იმ სტრიქონების რაოდენობა, რომლებიც არ შეიცავენ NULL მნიშვნელობას.

COUNT (*) არ არის დამოკიდებული ცარიელ მნიშვნელობებზე. ის აბრუნებს ცხრილში სვეტების საერთო რაოდენობას.

თუ გამოვიყენებთ AVG ფუნქციას, მაშინ იგი აბრუნებს ყველა ,,ცნობილი“ მნიშვნელობის საშუალოს; თუ ცხრილში არის ისეთი სვეტი, რომელსაც აქვს NULL მნიშვნელობა, AVG-ს გამოყენების შედეგად დაბრუნდება ისევ NULL.

ასე, რომ AVG-ს გამოყენება NULL -თან დაგვიბრუნებს არასწორ შედეგს.

NULL-ის გამოყენება პირობით ოპერატორებთან

პირობითი ოპერატორი გვიბრუნებს ორ შედეგს: TRUE ან FALSE. ცარიელი მნიშვნელობის არსებობის შემთხვევაში ბრუნდება 3 შედეგი: TRUE /FALSE/ UNKNOWN

ცარიელი მნიშვნელობა (NULL) გავლენას ახდენს NOT, AND, OR ოპერატორების გამოყენებაზეც.

ოპერატორი NOT

ეს ოპერატორი აბრუნებს საპირისპირო მნიშვნელობას. NOT NULL აბრუნებს NULL-ს, IS NOT NULL აბრუნებს IS NULL-ს.

ოპერატორი AND როგორც ცნობილია, AND ოპერატორის გამოყენებისას თუ ორივე პირობა

ჭეშმარიტია, მაშინ შედეგიც ჭეშმარიტია. თუ ერთი მაინც მცდარია, მაშინ შედეგიც მცდარი იქნება. ანალოგიურია სერვერთან მუშაობის დროსაც:

თუ ორი მნიშვნელობიდან ერთი არის უცნობი NULL,ხოლო მეორე TRUE, მაშინ შედეგიც იქნება უცნობი.

თუ ორი მნიშვნელობიდან ერთიარის FALSE , მეორე უცნობი NULL, მაშინ შედეგი იქნება FALSE.

თუ ორივე მნიშვნელობა უცნობია, შედეგიც იქნება უცნობი.

ოპერატორი OR

28

Page 29: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

ბულის ლოგოკა: თუ ორი პირობიდან ერთი მაინც ჭეშმარიტია, მაშინ შედეგიც ჭეშმარიტია, თუ ორივე მცდარია, შედეგიც მცდარი იქნება.

სერვერთან მუშობის დროს თუ ერთი ჭეშმარიტია და მეორე უცნობია (NULL), მაშინ შედეგი იქნება ჭეშამრიტი.

თუ ერთი უცნობია (NULL), მეორე FALSE , მაშინ შედეგი უცნობია; თუ ორივე უცნობია, შედეგიც უცნობი იქნება.

ცხრილში არსებობს ისეთი სვეტებიც, რომლებისთვისაც აუცილებელია მნიშვნელობების განსაზღვრა. ამ შემთხვევაში სვეტებისათვის გამოიყენება შეზღუდვა NOT NULL. ასეთ შემთხვევაში ველის ცარიელად დატოვების შემთხვევაში გამოვა შეტყობინება შეცდომის შესახებ. ველში შეიძლება არ შევიტანოთ მნიშვნელობა იმ შემთხვევაში, თუ ამ ველისათვის განსაზღვრულია მნიშვნელობა გაჩუმების DEFAULT პრინციპით.

DEFAULT ცხრილში ყველა ჩანაწერი უნდა იყოს შევსებული, თუნდაც ცარიელი

მნიშვნელობებით. იმ ველებისათვის, რომლებისათვისაც დასაშვებია ცარიელი მნიშვნელობები, უფრო მოსახერხებელია განისაზღვროს მნიშვნელობები გაჩუმებით-DEFAULT. (რიცხვითი მნიშვნელობებისათვის გაჩუმებით აიღება 0)

თუ ველისათვის არ შეიძლება ცარიელი მნიშვნელობა და არც გაჩუმებით არის მნიშვნელობა განსაზღვრული, მაშინ მნიშვნელობის მინიჭება აუცილებელია, წინააღმდეგ შემთხვევაში სერვერი აბრუნებს შეცდომას.

არსებობს მნიშვნელობის DEFAULT-ით განსაზღვრის ორი გზა: განისაზღვროს იგი ცხრილის შექმნისას; შესაძლებელია მისი განსაზღვრა (დამატება) უკვე არსებული ცხრილის მოდოფიცირებისას.

ახალი DEFAULT- ის მინიჭებისას აუცილებელია წაიშალოს ძველი და ისე მიენიჭოს ახალი.

IDENTITYმონაცემთა ბაზების პროექტირებისას მნიშვნელოვანია იდენტიფიკაციის ცნება. თუ სვეტს მინიჭებული აქვს ეს შეზღუდვა, მაშინ სერვერი ავტომატურად ანიჭებს ამ ველს რიცხვით მნიშვნელობათა განსაზღვრულ თანმიმდევრობას. აქვე შესაძლებელია მიეთითჴს საწყისი მნიშვნელობა და ბიჯი. გაჩუმებით საწყისი მნიშვნელობა და ბიჯი ერთის ტოლია. უმეტეს შემთხვევაში ეს მნიშვნელობა არ იცვლება.სვეტს რომლისთვისაც მინიჭებული გვაქვს IDENTITY , მონაცემებისათვის განისაზღვრება ტიპი:INTEGER, BIGINT.ზოგადი სინტაქსი ასეთია: IDENTITY [ (seed, increment)]seed -საწყისი მნიშვნელობა,increment-ბიჯი.IDENTITY გამოიყენება საასაღებო სვეტებისათვის (PRIMARY KEY)უნიკალურობა როგორც შეზღუდვა- UNIQUE სვეტის უნიკალურობისათვის გამოიყენბა შეზღუდვა UNIQUE, ამ ტიპის შეზღუდვის არსებობა უზრუნველყობს ცხრილის მოცემულ სვეტში ორი ერთნაირი მნიშვნელობის არსებობას. შესაძლებელია შეზღუდვა დავადოთ რამდნიმე სვეტს. პირველადი გასაღები -ეს არის კომბინაცია UNIQUE და NOT NULL -ის.

ყოველივე ზემოთ აღწერილი შეზღუდვების გათვალისწინებით, შესაძლებელია „სტუდენტების“ ცხრილისათვის შექმნის ბრძანება დავწეროთ შემდეგნაირად:

CREATE TABLE STUDENT(STUDENT_ID INTEGER NOT NULL UNIQUE, ( INTEGER, PRIMARYKEY)SURNAME VARCHAR (25) NOT NULL,

29

Page 30: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

NAME VARCHAR (10) NOT NULL,STIPEND MONEY,KURS INTEGER,CITY VARCHAR (25) DAFAULT ‘TBILISI’,BIRTHDAY SMALLDATETIME,UNIV_ID INTEGER)

მონაცემთა ტიპები

რიცხვითი ტიპები

ტიპი დან- -მდეbigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807int -2,147,483,648 2,147,483,647smallint -32,768 32,767tinyint 0 255bit 0 1decimal -10^38 +1 10^38 –1numeric -10^38 +1 10^38 –1money -922,337,203,685,477.5808 +922,337,203,685,477.5807smallmoney -214,748.3648 +214,748.3647

ტიპი დან- -მდეfloat -1.79E + 308 1.79E + 308real -3.40E + 38 3.40E + 38

დრო და თარიღი

ტიპი დან- -მდე

datetime (3.33 milliseconds accuracy) Jan 1, 1753 Dec 31, 9999

smalldatetime (1 minute accuracy) Jan 1, 1900 Jun 6, 2079 

სიმბოლური

ტიპი აღწერა

char Fixed-length non-Unicode character data with a maximum length of 8,000 characters.

varchar Variable-length non-Unicode data with a maximum of 8,000 characters.varchar(max)

Variable-length non-Unicode data with a maximum length of 231 characters (SQL Server 2005 only).

text Variable-length non-Unicode data with a maximum length of 2,147,483,647

30

Page 31: Web viewkurs . integer, city . varchar (25) dafault ‘tbilisi’, birthday . smalldatetime, univ_id integer) მონაცემთა ტიპები

characters. 

უნიკოდის სიმბოლოები

ტიპი აღწერაnchar Fixed-length Unicode data with a maximum length of 4,000 characters. nvarchar Variable-length Unicode data with a maximum length of 4,000 characters.nvarchar(max)

Variable-length Unicode data with a maximum length of 230 characters (SQL Server 2005 only).

ntext Variable-length Unicode data with a maximum length of 1,073,741,823 characters.

 

ბინარული ცვლადები

ტიპი აღწერაbinary Fixed-length binary data with a maximum length of 8,000 bytes.varbinary Variable-length binary data with a maximum length of 8,000 bytes.varbinary(max)

Variable-length binary data with a maximum length of 231 bytes (SQL Server 2005 only).

image Variable-length binary data with a maximum length of 2,147,483,647 bytes.

(გაგრძელება იქნება)

31