ПредишенСледващото

8.2 Стандарти и езикови структури, съхранени обекти на база данни

SQL език във взаимоотношенията с пълна. Тя се основава на релационния смятане на кортежи, обаче, съдържа операциите на релационната алгебра на комплекти. Използва се най-действие

  • INTERSECT - преминаване;
  • МИНУС - разлика.
8.2.1 SQL стандарти

стандарт SQL1 език, приет от ANSI само исканията, описани в 1986 година. С него можете да работите в WinRDBI. В момента не се използва SQL1.

Индустриална база данни въз основа на един от следните варианти:

Ние ще се фокусира върху SQL2 версия, но погледнете някои езикови разширения извън тази версия. Очевидно е, че изучаването на основите на формален език е важно, но не достатъчно, за да получите само занаят основа в резултат на - ". Направим време, направете две" Важно е да се разбере защо е толкова език състав. Разбиране на вътрешната структура на обекта или на същността на това явление, което винаги ще бъде готов да приеме тяхната промяна.

Има три нива на SQL-директни, интегрирани и динамични. Първото ниво осигурява пряка взаимодействие на потребителя с базата данни. Вградени SQL определя неговата структура, инвестирани в други езици. вграден SQL текст COS се поставя вътре скобите SQL (tekst_SQL). Вижте раздел 8.9. И накрая, динамичен SQL позволява да се образува структура, пряко SQL "в движение" и да ги направя.

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

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

Проблемът е, че различните приложения СУБД постигат резултат могат да бъдат доста различни. Ето защо, когато пишете на заявка, която ви дава възможност да получите право на данни, все още трябва да мислим за това, както и дали тя е добре изпълнен в избраната база данни. На традиционния език се говори, че сте (или база данни) трябва да изберете най-добрият план за изпълнение. И, разбира се, да създавате заявки с по-оптимални планове за изпълнение - това е още един слой на познания по програмиране, по-дълбоко, отколкото просто способността да се напише заявка.

И все пак, ние знаем, че в действителност математическите модели дават възможност да се изгради само езици заявката. Защото нещо в предишните раздели, не сме ангажирани в схемата на базата данни за създаване и промяна. Смятало се, че набор от отношения или набор от дървета вече са там, а ние дори не го напълни с оригиналните данни. Разбира се, ти осъзнаваш, че ако искаме да работим с базата данни, трябва да бъде в състояние да създаде схемата за прилагане, да го промените и да ги пренесат с данни. Променящите се нужди на бизнес информация се променят, и, разбира се, ние трябва да по някакъв начин да следите на всичко това. Ето защо, използвани в базата данни изпълнени, с изключение на възможността да пишат заявки езици позволяват друг да създавате, променяте, изтривате бази данни и манипулиране на обекти с данни. Това означава, че способността да се вмъкне, актуализира и изтрива. Това е се получава такава сложна картина.

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

8.2.2 SQL sublanguage

Следващите SQL sublanguages ​​идентифицирани:

  • Определение на данни Language (DDL). Той е за дефиниране на данни Language (DDL). Определя структурата на базите данни, определя се съхраняват предмети и привилегии за достъп до тях.
  • манипулация на данните език (ГСД). Той е за боравене с данни Language (DML). Притурки, актуализации и изтрива данни и изпълняват заявки срещу него.
  • Езикови данни управление / транзакция (Yaud). Control Language данни (DCL). Управлява сделки.

Един коментар на DDL. Ние вече сме се обърне внимание на необходимостта да се работи с потребителите, когато се говори за значението на като се вземе предвид този, който задава въпроси относно съдържанието на основата и при какви условия това е възможно. Така че, с потребителските права на база данни са определени привилегии. Например създайте СЕСИЯ привилегия позволява на потребителя да се свърже с базата данни, ALTER TABLE привилегия ви позволява да модифицирате една маса, и така нататък. Г.

В общи линии, с потребители, се третират по различен начин в различни бази данни. Например, Oracle изисква всички права са били създадени от потребителя са регистрирани напълно. Това означава, че ако съм създал потребител, който разполага с потребителско име и парола, той дори ще открие сесия, която трябва да се свърже с базата данни, не могат. Naked, като Пинокио, преди той имаше шапка с пискюл. Всички необходими права да предоставят на потребителя изрично. Разбира се, можете да изберете привилегии среща - роля - и да ги използвате, можете да определите обществена на потребителя, които са правата на всички потребители, и така нататък ..

Данните език манипулация, да ви позволи да вмъкнете, актуализиране и изтриване на данни. Обикновено език заявка се счита за част от езика на манипулация на данни, въпреки че понякога и изолирани. Фактът, че на езика на заявката се основава най-вече въз основа на SELECT шаблон, но това е много сложно.

За език контрол сделка ние ви казал в раздел 6.2. Не забравяйте - началото на сделката ЗАПОЧНЕТЕ СДЕЛКИ, приключване на сделката е или отхвърлянето на промените. В действителност, има и други инструкции, но те са по-рядко срещани.

8.2.3 Терминология

И няколко забележки относно терминологията. Първото, всъщност, не са свързани с SQL и факта, че терминологията, използвана в таблични приложения, това е отношението кажа не, "маса", а не "кортеж" и "низ". Атрибутът се нарича, в зависимост от това, което ви харесва или колона или колона (Таблица 8.1).

Таблица 8.1. Спазването на РМД и SQL условия

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

Компоненти на обучение ще се наричат ​​фрази.

8.2.4 Съхранените данни обекти

В основата на релационни бази данни, съхранявани форма обекти тип. Това е маси, гледки, индекси, спусъци последователности и потребители. Разходка накратко на тези понятия. Ако не всичко ще бъде ясно, не гриза - късно ще ги погледнем по-подробно.

Данните се съхраняват в таблици. Обърнете внимание на привидно тривиални факт: на масата не съхранява историята на промени в данните си. Не всички маси имат една и съща структура. Какво се нарича маса, масата може да бъде организиран като купчина (купчина). Може да използвате индекс организиран маси (IOT - индекс организирана таблицата). В тези таблици с данни са съхранени във възлите листа на индекса на дървото.

Вторият постоянен обект - представяне (изглед), на жаргона на програмист - "амортисьор". Но за разлика от таблицата, съдържащ данните, само на заявката се съхраняват в база данни, върху които е изградена тази гледна точка. Представителство, като на масата има име, и когато ние се обръщаме към амортисьор, образът на молбата й е комбинирана с искане на потребителя. След това погледнете как се прави.

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

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

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

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

Потребители (потребител). Те свързан редица проблеми на достъп, ограничения на достъпа. Ние вече говорихме за това, че базите данни на различни потребители са организирани по различен начин.

В действителност, за да не е възможно да разреши всички практически проблеми, като се използват само SQL. Ето защо, модерни бази данни са мощен процедурна част, която се различава значително в различните СУБД.

Процесуалната част от съхраняваните предмети се добавят, както следва:

  • Процедура (процедура);
  • Функция (функция);
  • Тригери (задействане);

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

Имайте предвид, че повтарящите се номерата в процесуалната част на спусъка - това не е грешка. Тригери - е специален вид процедура.

Процедури и функции могат да бъдат групирани в пакети.

Забележка. Индексите ще бъдат изследвани в "за съхранение на данни и достъпа до тях", "съхранение и достъп до тях." Процесуалната част от базата данни в този курс се взема предвид само в изследването на модели на обекти.

8.2.5 Типове данни в SQL

В SQL-92 стандарт, определен набор от типове данни, дефинирани от ключови думи: характер, ХАРАКТЕР различна, малко, BIT различна, Цифри десетичната, ЦЯЛО, SMALLINT, флоат, Реал, двойна точност, дата, час, TIMESTAMP и интервал. На следващата SQL стандарта, този списък е разширен значително.

Ние ще работим с една малка част от видовете, които се изпълняват в цялата база данни за книга. Това са видове символни низове (символни низове), точните числови типове данни (точен цифров), приблизителни числови типове (приблизителна числови), дата и видове време (DateTime). видове събиране, стилове, и потребителски дефинирани референтни типове ще бъдат разглеждани в "Entity модел на данните" в изследването на модели на обекти.

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

8.2.6 Видове символни низове
  • CHAR определя символни низове фиксирана дължина, посочени в спецификацията Ако CHAR (5). и постави на стойността на "ABC", а след това, например, "ABC" ще бъде постоянно се съхранява в Oracle. съдържащ две пространства в края на линията.
  • VARCHAR определя низове с променлива дължина на характера, които съхраняват точно както много герои като влезе, но в размер не по-голяма от тази, дадена в спецификация VARCHAR на (н). Между другото, това е желателно да се обозначи Oracle този тип като VARCHAR2.

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

8.2.7 числените типове

Точните цифри видове (видове фиксирана точка) и приблизителната (плаваща запетая) са обобщени в Таблица 8.2:

В Cache в номера на типа (N, S) точност н е 21, но може да се промени. НОМЕР тип без аргументи определя цели числа, вариращи от -9.223.372.036.854.775.807 да 9223372036854775808. В Oracle п<38, а значение s, определяющее положение младшего разряда от —84 до +127.

8.2.8 дата и час Видове

Използва се в книгата за видовете дата и час са обобщени в Таблица 8.3.

Таблица 8.3. дата и час на съответствието видове

Вътрешният формат - броя на дните от 31.12.1840

От 01.01.4712 до 31.12.9999 г. пр.н.е., след раждането на Христос

Дробна част на секунди от 0 до 9 бита (по подразбиране 6)

Стойностите от тип DATE се състоят от три компонента: година, месец и дата. Годината се определя от хронологията на Рождество. Един от възможните изходни формати "гггг-мм-дд", където всички компоненти - годината, месеца и деня - те представляват десетичен знак. Началната дата Cache -31.12.1840.

тип ВРЕМЕ стойност състои от часове, минути, секунди, и евентуално фракционните части от секундата.

Типът на TIMESTAMP комбинира данните от предишните два типа.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!