Studopediya

КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

целостта на данните




Гарантиране на целостта на данните и съхранени процедури

имаме предвид състоянието на базата данни, когато всички данни, съхранявани в него, са верни, терминът "целостта на данните". Ако има спестяване на неверни данни в базата данни, тогава ние казваме, че целостта на данните, се губи. В този раздел ще опишем различните методи за поддържане на целостта на данните и неприкосновеността на видовете, определени в SQL сървъра на базата данни, както и различни видове ограничения, които се използват за целостта на данните и прилагането на варианти на тези ограничения в базата данни.

В SQL Server таблици могат да се определят от редица свойства на различни видове, като се гарантира целостта на данните. Те включват типове данни, определения и не нула по подразбиране, самоличността имота, ограничения, правила, тригери, и индекси.

В този раздел, ние ще представим всички тези методи, за да се гарантира целостта на данните и неприкосновеността на типовете данни, поддържани от SQL Server. И също посвети известно време на различни видове целостта на данните, включително от съществено значение, дефинирани от потребителя домейн, на връзките, и почтеност.

Осигуряване на целостта на данните гарантира тяхното качество. Да предположим, че сме създали в таблица от база данни Лица. Значение PersonId колона трябва еднозначно идентифициране на всяко лице, подробности за които са изброени в таблицата. По този начин, ако стойността на даден човек PersonId равно на 834, а след това за всяко друго лице, тази стойност може да не бъде същото. След това, се предполага, че има PersonRating колона, която се класират лица - в диапазона от 1 до 10. В този случай, PersonRating колона трябва да не се допуска навлизане на произволен брой 11 или други стойности, с изключение на числата от диапазона от 1 до 10. и в двата случая, за да се гарантира целостта на данните трябва да се използва един от методите, подкрепени от SQL Server.

Сред методите на SQL Server, предназначени за запазване на целостта на данните, - определянето на по подразбиране и не нула, самоличността имота, ограничения, правила, тригери, и индексите. Някои от тях вече бяха споменати, но тук е кратко описание. Някои трапезни свойства, като например определянето на по подразбиране и не нула, понякога се считат за специален тип ограничения. Въпреки това, в съответствие с целите на нашите политически, те се третират отделно от ограниченията.

Тип данни - атрибут, който определя типа (характер, число, двоичен, и т.н. ...) на данните, които да се съхраняват в едно поле, параметър, или променлива. SQL Server поддържа няколко типа система за данни, въз основа на който можете да създадете потребителски типове данни. видове системни данни дефинират видовете данни, които могат да бъдат използвани в SQL Server. Видове гарантиране на целостта на данните като входни данни трябва да съответства на типа, посочен за обекта.



Например, името не може да се съхранява в колоната, която е определена за типа дата и час данни като колона с тип данни позволява влизането на дати.

Питам способността да влиза в областта на празни стойности, ние се определи дали колона на таблицата съхраняват празни стойности. Празна стойност е различна от нула, празно или символен низ с нулева дължина, като например "." Празна стойност означава, че информацията не е било вписано, което означава, че стойността не е известно или не е определена. Възможност да въведете нулеви стойности в колоната е посочено при определянето на колоната по време на създаването на маса или модификация. Поради сложността, свързани с обработка на нулеви стойности в SQL Server, в дефиницията на колоната като позволява или не позволява нули вход винаги трябва да използвате ключови думи NULL или NOT NULL. Ако колоната е може да се анулира, а NULL дума се използва, ако не е - НЕ NULL.

Стойностите по подразбиране определят стойностите, които ще бъдат използвани, ако не е посочено при добавяне на стойност низ от областта. дефиниции, предварително създаден в определянето на масата (като част от определението), или добавени към съществуваща таблица. Във всеки колона, право само на едно определение подразбиране.

Всяка маса е позволено да се създаде една колона, която съдържа генерирани от системата последователни стойности, които еднозначно идентифицират всеки ред в таблицата. стойности на колоните са уникален идентификатор е обикновено в обхвата от таблицата, в която те са определени. С други думи, възможно е, че стойностите на ID колона от различни маси могат да се припокриват. Въпреки това, в такива случаи обикновено няма проблем, тъй като стойността на ID, той обикновено се използва в контекста на една таблица, и колони с идентификатори на различни маси не са свързани.

Ограничения ви позволяват да определите как SQL Server автоматично гарантира целостта на данните. Ограничения определят правилата, проверява и потвърждава стойностите на колоните, и са стандартни механизми за гарантиране на целостта. Ограничения за предпочитане тригери, правила, или по подразбиране. Те също така се прилага оптимизатора на заявки да създаде планове за изпълнение на заявка с висока производителност.

Правото да изпълнява редица функции, подобни на CHECK ограничения, и се използва за поддържане на съвместимост с предишните версии. За предпочитане е да се използват ограниченията чек, който е стандартен начин за ограничаване на стойностите на областта. В допълнение, по-CHECK ограничение ясна, отколкото правило. От колоната се оставя да се използва само едно правило, докато една колона може да се определя от няколко ограничения чек. CHECK ограничения, са посочени като част от отчета за Създаване на таблица, докато правила са създадени като отделни предмети, които след това са прикрепени към колоната.

Първо, вие трябва да създадете правило, използвайки Създаване на правило отчета за. След това, при използване на система съхранена процедура sp_bindrule го свързали с колона или дефинирани от потребителя тип данни. Научете повече за използването Създаване на правило и sp_bindrule - в по позоваването на Transact-SQL в SQL Server Books Online.

Тригери - специален клас на съхранени процедури се стартират автоматично, когато актуализацията, INSERT, DELETE или изявления на маса или изглед. Тригери са мощен инструмент, използван за автоматично изпълнение на бизнес-логика за промяна на данни. Тригери могат да се простират на логиката целостта проверка, реализирана правилата на сървъра на ограничения, пропуски и SQL (въпреки че във всички случаи, в които ограниченията са в състояние да осигури необходимата функционалност, трябва да ги използват вместо джапанки).

Index - структура, която подрежда стойностите на една или повече колони в таблица на база данни. Индексът осигурява указатели към ценностите, съхранявани в посочените колони от таблицата, и след това да ги подрежда в съответствие с предварително определен ред на сортиране. Използването на базата на индекса напомня на четец жалбата до голяма степен да книгите на индекса субект на данни: тя сканира индекса в търсене на определена стойност, а след това на показалеца е низ, който съдържа желаната стойност. Уникален индекс гарантира уникалността на стойности в колоната.

Видове Data Integrity

SQL Server поддържа четири вида на целостта на данните: от съществено значение, домейни и на връзките, и за целостта на дефинирани от потребителя.

Някои източници, определени по-(или по-малко) от четирите типа на целостта на данните. Въпреки това, четири от тези видове, обикновено се считат за основните видове целостта на данните.

Съществената целостта

Този тип цялост определя един ред от таблицата, като уникален пример на едно предприятие. Съществената целостта осигурява целостта на колоната идентификатор или първичен ключ на таблицата (чрез индекси, уникални ограничения, първичен ключ, или лична свойства).

целостта домейн

Този тип цялост гарантира наличието на една колона е само валидни стойности. Можете да се осигури целостта на домейн чрез ограничаване на типа (чрез типове данни), формата (чрез CHECK ограничения и правила) или диапазон от стойности (чрез външен ключ ограничения и да се провери, определенията по подразбиране, не нула определенията и правилата).

целостта Референтна

Този тип цялост осигурява безопасността на връзки между таблици, когато добавяте или изтривате записи. В SQL Server, на връзките се основава на отношенията между чуждестранните и първични ключове или между външни ключове и уникални (чрез външен ключ ограничения и проверка). На връзките гарантира съвместимостта на ключовите стойности в съответните таблици. Такава съгласуваност изисква липсата на препратки към несъществуващи ценности и съвместими модели на климата до ключ в цялата база данни, когато промените самия ключ.

Чрез предоставяне на SQL Server на връзките позволява следните действия от потребителя:

• Добавяне на бележки към свързана маса, ако не е необходимо записи в главната таблица;

• промяна на стойностите в основната таблица, която се превърна в съответната таблица ще остане "висящи" запис;

• Премахване на записи от главната таблица, в присъствието на свързаните записи във външната таблица.

ОТ клауза

ОТ клауза трябва да се постави във всяка от SELECT декларация, която извлича данни от таблици или възгледи. Този дизайн позволява да посочите списък на таблици и изгледи в колоните, които се отнасят до списъка за избор и клаузата WHERE. Тези таблици и изгледи могат да бъдат причислени псевдоними към структурата AS. Строителство ОТ, в допълнение, позволява масата за връзка чрез създаване връзки по отношение на JOIN структура.

ОТ клауза е даден списък с имената на таблици, изгледи и структури на присъединяване, разделени със запетаи. В следващия пример, изявлението изберете от дизайн поставя на масата лица:

SELECT * FROM Лица

GO

ОТ клауза също се използва за определяне на връзките между двете таблици или възгледи. За връзки по-подробно в следващия раздел.

Строителство КЪДЕ, GROUP BY и КАТО

В SELECT изявление WHERE клауза и като установи, трапезни редове код, които са необходими за изграждане на снимачната площадка резултат. Строителни WHERE и имащи филтри играят роля. Те определят набор от термини за търсене: да се изгради резултатния набор се избират само тези редове, отговарящи на критериите за търсене. Например, изявлението изберете къде строителство връща само тези редове, когато лицето, като място на раждане, изброени град Красноярск:

SELECT PersonId, LastName, FirstName

от лица,

КЪДЕ родното място = "Красноярск"

GO

Дизайнът на КАТО, обикновено (но не задължително) се използва заедно с групата BY клауза. Строителство КАТО определя допълнителни филтри, които се прилагат, след филтрацията определено WHERE клауза. Следните сценарии са използвани в SELECT изявление WHERE клауза, GROUP BY и КАТО:

SELECT OrdD1OrderId AS OrderID,

SUM (OrdD1.Quantity) AS "Продадена Units",

SUM (OrdD1.UnitPrice * OrdD1.Quantity) като приход

ОТ [подробности за поръчката] AS OrdD1

КЪДЕ OrdD1OrderId IN (SELECT DISTINCT OrdD2.OrderId

ОТ [подробности за поръчката] AS OrdD2

КЪДЕ OrdD2.UnitPrice> $ 1000)

ГРУПА ОТ OrdD1.OrderId

КАТО SUM (OrdD1.Quantity)> 50

GO

Тук, клаузата WHERE връща поръчки, които струват повече от $ 1000, а след това клаузата за КАТО ограничава резултата избора поръчки за повече от 50 единици, продадени. Групата чрез клауза ограничава редовете за всяка стойност на поле OrderID.

GROUP BY клауза

Групата чрез клауза се използва за получаване на обобщени стойности във всеки ред на комплекта резултат. При използване на SELECT изявление, без GROUP BY клауза съвкупните функции връщат само една обща стойност.

След ГРУПАТА на ключови думи, като последвано от списък на колони, които се наричат обединението. Групата чрез клауза ограничава набора от резултати редове. За всяка колона особена стойност групиране или колони може да бъде само един ред. Във всеки ред на резултатния набор съдържа обобщени данни, свързани със стойността на някои от неговите групиране колони.

Ако SELECT изявление има за групата от клауза, SQL Server налага ограничения върху избора на елементите на списъка. Списъкът за избор може да бъде само тези, които обхващат колони и изрази, които се връщат само една стойност за всяка стойност на обединението колоните, като обобщаващи функции (векторни агрегати), един от параметрите, който е на името на колоната.

Като правило, КАТО дизайн се използва с GROUP BY клауза, въпреки че е разрешено да се прилагат поотделно. Всеки израз могат да бъдат групирани заедно, ако тя не съдържа обобщени функции.

В ГРУПАТА клауза е необходимо да се посочи името на колоната в таблицата или видите вместо името колона на резултатен набор възложени чрез AS структура.

Дизайнът на група, като се оставя да посочите повече от една колона, под формата на подгрупи, т.е. група маса от всякаква комбинация от колони.

Разбирането на правилната последователност, която използва клаузата WHERE, за групата от клауза и имащи, помага да се създаде достатъчно ефективни заявки:

WHERE филтър дизайн линии, които са резултат от операциите, посочени в ОТ клауза;

• изход е клаузата, където са групирани с помощта на групата чрез клауза;

• линии групирани резултати са филтрирани чрез КАТО клауза.

Всички условия за търсене, които са разрешени за употреба преди и след операцията групи в, където да се подчертае, структурата. По този начин можете да намалите броя на редовете, за да бъдат групирани. В КАТО клауза следва да определи само термините за търсене, които трябва да се използват след групата на работа.

ORDER BY клауза

Строителство ORDER BY сорта резултатите от заявката в една или повече области. Сортирането може да бъде или възходящ (ASC), и низходящ (DESC). Ако не е посочено, никой от видовете от рода, по подразбиране е ASC. Ако ORDER BY клауза, за да назовем само няколко колони, извършена вложено сортиране.

Лица оператор сортира на следващия ред на таблицата, първо по име (в низходящ ред), след това се нарича (във възходящ ред, за всеки човек), и най-накрая по възраст (също възходящ, защото не е даден параметър DESC).

SELECT PersonId, LastName, FirstName, Възраст

от лица,

ORDER BY LastName DESC, FirstName, Възраст

GO

Пакетите, съхранени процедури и тригери

Пакет - група от един или повече оператори Transact-SQL, приложение, което едновременно изпраща до SQL Server за изпълнение. SQL Server компилира операторите пакети в един изпълним единица (план за изпълнение - Execution Plan). След това, операторите на плана са извършени на свой ред.

Грешка при съставянето, като синтаксис, спира процеса на съставяне на плана за изпълнение. В този случай, нито един от операторите не е пълен пакет.

В грешки на хода на времето като аритметично препълване или нарушение ограничение, може би един от следните последици:

• По-голямата част от грешки по време на работа спира изпълнението на текущите и бъдещите оператори на пакета;

• Някои грешки на хода на времето, като нарушават ограниченията, спират изпълнението на текущия оператор. В същото време ще бъдат изпълнени всички други оператори на пакета.

Операторите, изпълнени на оператора, която е предизвикала грешка по време на изпълнение, не се чувстват въздействието на тази грешка. Единственото изключение е, ако пакетът е сделка, когато възникне грешка, сделката се навива обратно. В този случай премахването на всички поети модификации направени преди грешката на хода на времето.

Например, един пакет се състои от три превозвачи. Ако второто твърдение е синтактична грешка, нито един от операторите няма да се движат на пакета. Ако пакетът е вече компилиран и изпълнението на втория оператор не успее, в резултат на първото твърдение остава непроменена (тъй като тя вече е била получена).

При работа с пакети, следните правила:

• Операторите сътворяват DEFAULT, CREATE ПРОЦЕДУРА, Създаване на правило , създаване TRIGGER , и да се създаде VIEW не могат да съществуват заедно в опаковки с други оператори. Пакетът трябва да започне с отчета за CREATE. Всички от следните твърдения за тях трябва да се тълкува като част от определението, създаден от първо да създадете отчет;

• в рамките на една и съща опаковка не може да променя масата и достъпа до нови колони;

• ако Изпълнение изявление - първото изявление пакет ключова дума ИЗПЪЛНЯВАТ се изисква. Но това е необходимо, когато отчета за ИЗПЪЛНЯВАТ не е първият оператор пакет.

По този начин, на опаковката - набор от една или повече оператори, които клиентът изпраща една и съща група. Оказва се, план едно изпълнение при съставянето на всяка опаковка. Ако пакетът се състои от няколко SQL изявления, след това всички оптимизирани стъпки, необходими за изпълнението на всеки оператор, образувани единен план за изпълнение.

С цел да се определи пакета, има няколко начина.

• Всички SQL изявления, че заявление изпраща към сървъра като единица на изпълнение, образуват един пакет и генерират единен план за изпълнение.

• Всички оператори на съхранената процедура или спусъка представляват един пакет. При съставяне на всяка съхранена процедура или спусъка отнема един-единствен план за изпълнение.

• А низ обработват Изпълнение отчет, се тълкува като пакет, в резултат на компилацията, която превръща един план за изпълнение.

• А низ изпълним система съхранена процедура sp_executesql, - пакет, който компилира получаване на единен план за изпълнение.

Ако заявлението изпраща пакет, който съдържа изявлението изпълнява, плана за изпълнение на струните, или запомнена процедура се извършва отделно от плана за изпълнение на EXECUTE изявление. Планът за изпълнение, създадени за линията, която изпълнява съхранена процедура sp_executesql, и ще бъде отделена от останалата част от пакета за изпълнение план, в който има процедура на повикване sp_executesql.

Ако операторът на пакет причинява спусъка, а след това на плана за изпълнение на спусъка е отделно от плана за изпълнение на оригиналната опаковка.

Например, един пакет, който съдържа следните четири оператори, генерира пет планове за изпълнение на:

ИЗПЪЛНЯВАТ изявление, извършване на съхранената процедура;

• наричаме процедура sp_executesql за технологична линия;

ИЗПЪЛНЯВАТ изявление, линията за преработка;

изявление UPDATE че референцията е таблица, която има спусък за актуализация.

EXEC FirstProcedure

EXEC sp_executesql N'SELECT * FROM AdventureWorks.HumanResources.Employee

КЪДЕ Мениджъра = @level ",

N '@ ниво TINYINT ",

@level = 109;

EXEC ( "sp_who")

UPDATE лица

SET PERSONNAME = "Куку"

GO

Съхранената процедура - е група от Transact-SQL изрази, които се компилира веднъж и след това може да се извършва многократно. Тази функционалност увеличава производителността чрез елиминиране на необходимостта да прекомпилирате оператори Transact-SQL.

Trigger - е специален вид на съхранена процедура, която не предизвиква директно на потребителя. Когато създавате определени начални условия за неговото изпълнение: спусъка е да бъде изпълнена в определен модификация на данни в дадена таблица или колона.

Оператори CREATE ПРОЦЕДУРА и да се създаде TRIGGER не може да се намира в множество пакети. С други думи, на съхранената процедура или спусъка винаги се създава в една опаковка и компилиран в план за изпълнение.

SQL магазини сървър само на изходния код на съхранени процедури и тригери. Когато съхранената процедура или спусъка се изпълнява за първи път, на изходния код се компилира в план за изпълнение. Ако преди плана за изпълнение ще изтече и да се заличи от паметта, съхранена процедура или спусъка се изпълнява отново, релационния двигателя открива съществуващия план и да го използвате отново. Ако планът е остаряла и е била изтрита от паметта, създава нов план за изпълнение. Този процес е подобен на обработката на всички SQL изявления SQL Server. Повишаване на производителността при използване на съхранени процедури и тригери се дължи на постоянството на SQL-оператори, което позволява на SQL Server да се използват съществуващите планове за изпълнение за тях.

В предишните версии на подобрение на производителността на SQL Server при използване на съхранени процедури е особено забележим. По-ранните версии на SQL Server не се опитват да използват повторно планове за изпълнение за пакети, които не са били съхранени процедури или тригери. Единственият начин да се използва повторно планове за изпълнение е до програмиране на SQL изявления като съхранени процедури.

изпълнение План на съхранени процедури и тригери се изпълнява отделно от плана за изпълнение на пакетите, наричайки запомнена процедура или спусък. Тази функция позволява по-често използват повторно планове за изпълнение на съхранени процедури и тригери.





; Дата: 01.11.2014; ; Прегледи: 285; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:



zdes-stroika.ru - Studopediya (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва! Най-новото допълнение , Al IP: 66.102.9.26
Page генерирана за: 0.064 сек.