ტრიგერები შენახული პროცედურების წინააღმდეგ
მონაცემთა ბაზაში ტრიგერი არის პროცედურა (კოდის სეგმენტი), რომელიც ავტომატურად სრულდება, როდესაც გარკვეული კონკრეტული მოვლენა ხდება ცხრილში/ხედში. მის სხვა გამოყენებას შორის, ტრიგერები ძირითადად გამოიყენება მონაცემთა ბაზაში მთლიანობის შესანარჩუნებლად. შენახული პროცედურა არის მეთოდი, რომელიც შეიძლება გამოყენებულ იქნას აპლიკაციების მიერ, რომლებიც წვდებიან რელაციურ მონაცემთა ბაზაში. როგორც წესი, შენახული პროცედურები გამოიყენება, როგორც მეთოდი მონაცემთა გადამოწმებისა და მონაცემთა ბაზაზე წვდომის გასაკონტროლებლად.
რა არის ტრიგერები?
ტრიგერი არის პროცედურა (კოდის სეგმენტი), რომელიც სრულდება ავტომატურად, როდესაც ხდება ზოგიერთი კონკრეტული მოვლენა მონაცემთა ბაზის ცხრილში/ხედში.მის სხვა გამოყენებას შორის, ტრიგერები ძირითადად გამოიყენება მონაცემთა ბაზაში მთლიანობის შესანარჩუნებლად. ტრიგერები ასევე გამოიყენება ბიზნეს წესების განსახორციელებლად, მონაცემთა ბაზაში ცვლილებების შემოწმებისა და მონაცემების გასამეორებლად. ყველაზე გავრცელებული ტრიგერები არის მონაცემთა მანიპულირების ენის (DML) ტრიგერები, რომლებიც ამოქმედდება მონაცემთა მანიპულირებისას. ზოგიერთი მონაცემთა ბაზის სისტემა მხარს უჭერს არა-მონაცემთა ტრიგერებს, რომლებიც ამოქმედდება მონაცემთა განმარტების ენის (DDL) მოვლენების დროს. ზოგიერთი მაგალითი არის ტრიგერები, რომლებიც ირთვება ცხრილების შექმნისას, ჩადენის ან უკან დაბრუნების ოპერაციების დროს და ა.შ. ეს ტრიგერები განსაკუთრებით შეიძლება გამოყენებულ იქნას აუდიტისთვის. Oracle-ის მონაცემთა ბაზის სისტემა მხარს უჭერს სქემის დონის ტრიგერებს (ანუ ტრიგერები, რომლებიც გააქტიურებულია მონაცემთა ბაზის სქემების მოდიფიცირებისას), როგორიცაა შექმნის შემდეგ, სანამ შეცვლა, შემდეგ შეცვლა, ადრე დაცემა, შემდეგ ჩაშვება და ა.შ. ტრიგერების ოთხი ძირითადი ტიპი, რომელსაც მხარს უჭერს Oracle არის მწკრივის დონის ტრიგერები. სვეტის დონის ტრიგერები, თითოეული რიგის ტიპის ტრიგერები და თითოეული განცხადების ტიპის ტრიგერები.
რა არის შენახული პროცედურები?
შენახული პროცედურა არის მეთოდი, რომელიც შეიძლება გამოყენებულ იქნას აპლიკაციის მიერ, რომელიც წვდება რელაციურ მონაცემთა ბაზაში. როგორც წესი, შენახული პროცედურები გამოიყენება, როგორც მონაცემთა გადამოწმებისა და მონაცემთა ბაზაში წვდომის კონტროლის მეთოდი. თუ მონაცემთა დამუშავების ზოგიერთი ოპერაცია მოითხოვს რამდენიმე SQL განაცხადის შესრულებას, ასეთი ოპერაციები განხორციელდება როგორც შენახული პროცედურები. შენახული პროცედურის გამოძახებისას უნდა იქნას გამოყენებული CALL ან EXECUTE განცხადება. შენახულ პროცედურებს შეუძლიათ დააბრუნონ შედეგები (მაგალითად, შედეგები SELECT განცხადებებიდან). ეს შედეგები შეიძლება გამოყენებულ იქნას სხვა შენახული პროცედურებით ან აპლიკაციებით. ენები, რომლებიც გამოიყენება შენახული პროცედურების დასაწერად, ჩვეულებრივ მხარს უჭერენ საკონტროლო სტრუქტურებს, როგორიცაა if, while, for და ა.შ. გამოყენებული მონაცემთა ბაზის სისტემიდან გამომდინარე, რამდენიმე ენა შეიძლება გამოყენებულ იქნას შენახული პროცედურების განსახორციელებლად (მაგ. PL/SQL და java Oracle-ში, T- SQL (Transact-SQL) და. NET Framework Microsoft SQL Server-ში). გარდა ამისა, MySQL იყენებს საკუთარ შენახულ პროცედურებს.
რა განსხვავებაა ტრიგერებსა და შენახულ პროცედურებს შორის?
ტრიგერი არის პროცედურა (კოდის სეგმენტი), რომელიც შესრულებულია ავტომატურად, როდესაც ხდება ზოგიერთი კონკრეტული მოვლენა მონაცემთა ბაზის ცხრილში/ხედში, ხოლო შენახული პროცედურა არის მეთოდი, რომელიც შეიძლება გამოიყენოს აპლიკაციამ, რომელიც წვდება რელაციურ მონაცემთა ბაზას.. ტრიგერები ავტომატურად სრულდება, როდესაც ხდება მოვლენა, რომელზეც ტრიგერი უნდა რეაგირებდეს. მაგრამ შენახული პროცედურის შესასრულებლად უნდა იქნას გამოყენებული კონკრეტული CALL ან EXECUTE განცხადება. გამართვის ტრიგერები შეიძლება იყოს უფრო რთული და რთული, ვიდრე შენახული პროცედურების გამართვა. ტრიგერები ძალიან სასარგებლოა, როდესაც გსურთ დარწმუნდეთ, რომ რაღაც მოხდება, როდესაც ხდება გარკვეული მოვლენა.