Jump to content

SQL

Վիքիպեդիայից՝ ազատ հանրագիտարանից
20:19, 13 դեկտեմբերի 2013 տարբերակ, AvetVarazdat (քննարկում | ներդրում)
(տարբ) ←Նախորդ տարբերակ | Ընթացիկ տարբերակ (տարբ) | Հաջորդ տարբերակ→ (տարբ)

Տվյալների բազաներ

Տվյալների բազան տվյալների որոշակի ձևով կազմակերպված համախումբ է, որում տվյալները պահպանվում են համաձայն նախապես որոշված նշանակման:

Ավանդական «թղթյա» տվյալների բազաներն ունեն մի շարք թերություններ, օրինակ՝

  • պահանջվում են ֆիզիկական մեծ տարածքներ,
  • անհրաժեշտ տվյալները գտնելու համար պահանջվում է բավականաչափ երկար ժամանակ,
  • դարակները և կարգացանկերը կարգավորված վիճակում պահպանելու համար պետք է ծավալուն աշխատանք կատարել և մեծ ջանքեր գործադրել:

Տվյալների էլեկտրոնային բազաները թույլ են տալիս լուծել բոլոր այդպիսի խնդիրները:Առավել լայն կիրառություն են գտել տվյալների ռելյացիոն բազաները: Ռելյացիոն բազաներում ինֆորմացիան բաժանված է տրամաբանորեն կապակցված համեմատաբար փոքր և, դրա հետևանքով, ավելի հեշտ ղեկավարվող մասերի, որոնք կոչվում են աղյուսակներ: Աղյուսակները իրենց կազմակերպման մակարդակի շնորհիվ պարզեցնում են բազայի ուղեկցումը և ապահովում դրա առավել օպտիմալ գործարկումը:

Հատուկ գրականությունում աղյուսակի տողը անվանում են գրանցում (record), իսկ սյունակը` դաշտ (field)

Ռելյացիոն է կոչվում այն տվյալների բազան, որը բաղկացած է տրամաբանորեն փոխկապակցված բաղադրիչներից, որոնք կոչվում են աղյուսակներ:

Աղյուսակը բազաներում տվյալների պահպանման հիմնական միավորն է: Ռելյացիոն բազաներում ղեկավարման հատուկ համակարգի միջոցով ապահովվում են տվյալների հետ տարբեր գործառնությունների կատարման հնարավորություններ: Այդ համակարգերը կոչվում են տվյալների բազայի կառավարման ռելյացիոն համակարգեր - ՏԲԿՌՀ: ՏԲԿՌՀ-ների առավել խոշոր արտադրողներն են Oracle, Microsoft, Informix, Sybase և IBM ֆիրմաները:

Ռելյացիոն բազաներում աղյուսակների տրամաբանական փոխկապակցվությունը (ինչպես սովորաբար ասում են` աղյուսակները գտնվում են հարաբերությունների (relations) մեջ և այդ պատճառով կոչվում են աղյուսակ-հարաբերություններ) թույլ է տալիս մեկ հարցման միջոցով գտնել բոլոր անհրաժեշտ տվյալները, որոնք կարող են պարունակվել մի քանի աղյուսակներում:

Տվյալների բազաների SQL լեզու

SQL-ը կամ հարցումների կառուցվածքավորված լեզուն ստանդարտ լեզու է, որը նշանակված է տվյալների ռելյացիոն բազաների հետ փոխգործակցելու համար: Դրա նախատիպը մշակվել էր IBM-ում, դոկտոր Կոդդի (E.F.Codd) “Ռելյացիոն մոդելի օգտագործումը տվյալների բաժանված բանկերում” հոդվածի հիման վրա, յոթանասունական թվականներին: SQL-ի առաջին ծրագրային արտադրանքը` Oracle ՏՌԲԿՀ-ն (տվյալների ռելյացիոն բազայի կառավարման համակարգ), ստեղծվեց 1979 թ. Relational Software, Inc. կորպորացիայի (հետագայում այն վերաանվանվեց Oracle Corporation) կողմից: Ծրագրային արտադրանքի շուկայում այդ ՏՌԲԿՀ-ն մեծ հաջողությունը ստիպեց մյուս խոշոր ֆիրմաներին (Sybase, Informix, Microsoft) թողարկել SQL-ի վրա հիմնված ՏՌԲԿՀ-ների սեփական տարբերակները: Քանի որ SQL-ը այն ժամանակ նորույթ էր, և դեռ ստեղծված չէին ստանդարտներ, ապա յուրաքանչյուր ֆիրմա արտադրում էր ՏՌԲԿՀ SQL-ի սեփական իրացումով: Միայն 1989 թ. ANSI-ն (American National Standards Institute) մշակեց SQL-ի համընդհանուր ստանդարտը: Սակայն այն հաշվի չէր առնում SQL-ի տեխնիկական կառուցվածքը, և անցումը լեզվի մեկ իրացումից մյուսին բավականաչափ բարդ էր: 1992 թ. ստեղծվեց ստանդարտ, որը ընդգրկում է SQL-ի հնարավորին չափ շատ ընդլայնումները: Այն անվանում են SQL92 կամ SQL2: Նշենք, որ SQL2-ի մեծ ծավալի պատճառով ՏՌԲԿՀ-ները, որոնք իրացնում են լրիվ ստանդարտը, բավականաչափ բարդ են և աշխատատար:

SQL լեզվի հրամանների տեսակները

SQL-ն ունի հրամանների վեց հիմնական խմբեր՝

  1. DDL (Data Definition Language) - տվյալների սահմանման լեզվի հրամաններ:
  2. DML (Data Manipulation Language) - տվյալների փոխակերպումների (մանիպուլյացիաների) լեզվի հրամաններ:
  3. DQL (Data Query Language) – հարցումների լեզվի հրամաններ:
  4. DCL (Data Control Language) – տվյալների ղեկավարման լեզվի հրամաններ:
  5. Տվյալների ադմինիստրացման հրամաններ:
  6. Տրանզակցիաների ղեկավարման հրամաններ:

1. Տվյալների սահմանման հրամանների միջոցով օգտվողները կարող են ստեղծել և փոփոխել տվյալների օբյեկտների կառուցվածքը, օրինակ` ստեղծել և հեռացնել աղյուսակներ: Այդ խմբի հիմնական հրամանները հետևյալներն են`

2. Այս խմբի հրամանները օգտագործվում են բազայի օբյեկտների (օրինակ՝ աղյու-սակների) որոշ բնութագրիչները փոփոխելու համար: Հիմնականում օգտագործվում են հետևյալ երեք հրամանները՝

3. Հարցումների լեզուն ընդգրկում է ընդամենը մեկ հրաման՝

Այդ հրամանը իր բազմաթիվ օպցիաներով և նախադասություններով (այսինքն` բառ-բանալիներով և օպերատորներով, որոնց միջոցով կառուցվում են ընտրության որոշակի պայմաններ) օգտագործվում է տվյալների ռելյացիոն բազային հարցումներ ձևավորելու համար, ընդ որում` հարցումները կարող են լինել ինչպես պարզ և անորոշ, այնպես էլ բարդ և լիովին որոշակի (կոնկրետ): Հարցումը - դիմում է տվյալների բազային` համապատասխան ինֆորմացիա ստանալու նպատակով:

4. Տվյալների ղեկավարման լեզվի հրամաններն են`

Որպես կանոն, այդ հրամանները օգտագործվում են տվյալների հասանելիության հետ կապված օբյեկտների ստեղծման համար և, բացի այդ, թույլ են տալիս վերահսկողություն սահմանել օգտվողների միջև արտոնությունների բաշխման նկատմամբ:

5. Տվյալների ադմինիստրացման հրամաններ են՝

  • start audit,
  • stop audit:

Դրանք թույլ են տալիս հսկել կատարվող գործողությունները և վերլուծել տվյալների բազայի գործառնությունները: Պետք չէ շփոթել տվյալների ադմինիստրացում և բազայի ադմինիստրացում գաղափարները: Բազայի ադմինիստրացումը տվյալների բազայի ընդհանուր ղեկավարումն է և ի նկատի ունի բոլոր մակարդակների հրամանների օգտագործում:

6. Տրանզակցիաների կառավարման հրամաններն են՝

  • commit,
  • rollback,
  • savepoint,
  • set transaction:

SQL լեզվի իրացումների մեծամասնությունը թույլ է տալիս գրանցել հրամանների օպերատորները ինչպես մեծատառերով, օրինակ՝ CREATE TABLE, այնպես էլ փոքրատառերով` create table:

Օպերատորներ

Օպերատոր Նկարագրություն Օրինակ
= Հավասար է Author = 'Alcott'
<> Հավասար չէ (շատ ՏԲԿՀ-եր <>-ի փոխարեն սատարում են != գրելաձևը ) Dept <> 'Sales'
> Մեծ է Hire_Date > '2012-01-31'
< Փոքր է Bonus < 50000.00
>= Մեծ է կամ հավասար Dependents >= 2
<= Փոքր է կամ հավասար Rate <= 0.05
BETWEEN Որոշակի արժեքների միջակայք Cost BETWEEN 100.00 AND 500.00
LIKE Սիմվոլային փաթերնի համընկում First_Name LIKE 'Will%'
IN Հավասար է մի քանի հնարավոր արժեքներից մեկին DeptCode IN (101, 103, 209)
IS կամ IS NOT Համեմատում null արժեքի հետ Address IS NOT NULL
AS Կիրառվում է դուրս բերված տվյալների դիտարկման ժամանակ աղյուսակի կամ սյան անվանումը փոխելու համար SELECT employee AS 'department1'

Պրոցեդուրային ընդլայնումներ

Քանի որ SQL-ը չի համարվում պրոցեդուրային ծրագրավորման լեզու ( այսինքն չկան ցիկլերի, պայմանական օպերատորների օգտագործման հնարավորություններ), տարբեր կազմակերպությունների կողմից թողարկվող SQL ընդլայնումները վերաբերվում էին պրոցեդուրային ընդայնումներին։ Գրեթե ցանկացած ՏԲԿՀ-ում կիրառվում է իր պրոցեդուրային լեզուն։ SQL-ի պրոցեդուրային ընդլայնումների ստանդարտը ներկայացված է SQL/PSM սպեցիֆիկացիայում. Ստորև ներկայացված է հայտնի ՏԲԿՀ -երի համար պրոցեդուրային ընդլայնումները։

ՏԲԿՀ Պրոցեդուրային ընդլայնման կարճ անվանում Ամբողջական անվանում
InterBase/Firebird PSQL Procedural SQL
IBM DB2 SQL PL SQL Procedural Language (ընդլայնում է SQL/PSM-ը); DB2 պրոցեդուրաները կարող են գրվել սովորական ծրագրավորման լեզուներով՝ C, Java և այլն ։
MS SQL Server/
Sybase ASE
Transact-SQL Transact-SQL
MySQL SQL/PSM SQL/Persistent Stored Module
Oracle PL/SQL Procedural Language/SQL (հիմնված է Ada լեզվի վրա)
PostgreSQL PL/pgSQL Procedural Language/PostgreSQL Structured Query Language (շատ նման է Oracle PL/SQL-ին)