Upload
bymbaaodoo
View
292
Download
4
Embed Size (px)
Citation preview
Өгөгдлийн сангийн тодорхойлолт
Indexes, Primary keys, Foreign keys
SE304 ӨГӨГДЛИЙН САНГИЙН УДИРДАХ СИСТЕМ
Батлав: ПХТ-ийн эрхлэгч Г.ЭРДЭНЭЧИМЭГ
ЛЕКЦ №7
ШУТИС-Ñ¿ÒÑ, Ìàãèñòð Ë.Áàòáèëýã ([email protected], +976-88515155)
MS SQL Server-ийн Хувилбарууд
MS SQL Server нь олон янзын хувилбаруудтай
ба тус бүр өөрсдийн давамгай чадваруудтай ба
мөн өөр өөр түвшний хэрэглэгчдэд
зориулагдсан. Эдгээрийг доор дурдвал :
SQL Server Compact Edition (SQL CE)
Энэ нь SQL Server-ийн бага оврын хувилбар юм (2MB DLL
footprint-тэй). Бусдаасаа бага хэмжээтэй байх ба мөн чадваруудыг
нь багасган тохируулсан. Энэ хувилбар нь хамгийн ихдээ 4 ГБ
хэмжээтэй байх боломжтой өгөгдлийн сангаар хязгаарлагдсан.
Мөн Windows орчинд ажилладаггүй.
SQL Server Express Edition
Express Edition бол SQL Server-н багасгасан,
үнэгүй хувилбар боловч өгөгдлийн сангийн үндсэн
цөм хөдөлгүүрийг агуулсан байдаг. Өгөгдлийн
сангийн , хэрэглэгчийн тоонд хязгаарлалт
байдаггүй ба нэг процессор, 1GB ram, 4 GB
өгөгдлийн сангийн файлтай байхаар
хязгаарлагддаг. Бүтэн өгөгдлийн сан нь
ганцхан .DBF файл байдаг. Энэ нь тэгэхээр
XCOPY технологийг ашиглахад хялбар болгож
байдаг
SQL Server Workgroup Edition
Энэ хувилбар нь өгөгдлийн сангийн цөм хөдөлгүүр,
функцуудыг агуулдаг боловч нэмэлт үйлчилгээнүүдийг
агуулдаггүй.
SQL Server Standard Edition
Энэ хувилбар нь өгөгдлийн сангийн цөм
хөдөлгүүр, stand-alone үйлчилгээний дагуух
зүйлсийг агуулдаг. Enterprise хувилбараас
ялгаатай нь хязгаарлагдмал нэг дор холбогдох
боломжтой хэрэглэгчийн тоо юм. Бас зарим өндөр
түвшний hot-add memory (сервер ажиллаж байх
үед ч санах ой нэмэх боломжтой ! )гэх мэт
функцууд , параллель индекслэх функц байдаггүй.
SQL Server Enterprise Edition
Энэ хувилбар нь SQL Server-н иж бүрэн хувилбар бөгөөд өгөгдлийн
сангийн цөм хөдөлгүүр, нэмэлт үйлчилгээнүүд, SQL Server cluster –г
үүсгэх, зохион байгуулах өргөн хэмжээний боломжууд хавсаргагдсан
байдаг.
SQL Server Developer Edition
Энэ хувилбар нь Enterprise хувилбарын зарим
чанаруудыг агуулсан боловч зөвхөн хөгжүүлэх,
тестлэх боломжтой, өөрөөр хэлбэл бүтээгдэхүүн
(өгөгдлийн бааз) серверт ажиллуулах боломжгүй
лицензтэй байдаг. Энэ хувилбар нь Microsoft-н
DreamSpark хөтөлбөрийн дагуу оюутнууд үнэгүй
татаж авах боломжтой байдаг.
Relationship холболт
Relational database-ийн хүснэгтүүдэд нэг давхацсан /адилхан/ талбар байх ёстой. Энэ давхцагч талбар нь нэг хүснэгтийн нөгөө хүснэгттэй холбох холбоос байх болно. Тэгэхээр relationship гэдэг нь нэг хүснэгтийн бичлэгийг нөгөө хүснэгтийн бичлэгтэй холбох холбоос юм. Үүний ачаар тус тусдаа хүснэгтүүд хоорондоо харилцан уялдаа холбоотой болж цогц өгөгдлийн санг үүсгэх юм. Хүснэгтүүдийг хооронд нь холбох 3 янзын холбоос байдаг. Үүнд:1. Нэг нь нэгтэй /one to one/2. Нэг нь олонтой /one to many/3. Олон нь олонтой /many to many/
Primary key / Foreign key-түлхүүр талбар
Relatonal database-ийн хүснэгтийн бичлэгүүд давхардсан
байж болохгүй. Үүний тулд нэг бичлэгийг нөгөөгөөс ялгаж өгч
байдаг дор хаяж нэг талбар байх ёстой. Ийм талбарыг
түлхүүр талбар буюу primary key гэнэ. Жишээ нь: 5 талбартай
хоёр бичлэгийн 4 талбарын утга нь адилхан байлаа гэхэд
үлдсэн ганц талбарын утгууд нь өөр хоорондоо ялгаатай байх
ёстой.
Түлхүүр талбарыг мөн хүснэгтүүд хооронд relationship
үүсгэхэд ашиглана. Энэ тохиолдолд эхний хүснэгтэд primary
key болж орсон бол нөгөө хүснэгтэд түүнийг foreign key гэнэ.
Primary key тодорхойлох
Хүснэгтийнхээ талбарууд дотроос түлхүүр
талбарыг тодорхойлж өгөхийн тулд түлхүүр
талбар болгох талбараа сонгон хулганы баруун
товчийг даран Set primary key командыг өгөх
хэрэгтэй. Ингэхдээ түлхүүр талбараар сонгох
талбарын утгууд давхардсан байж болохгүйг
анхаарна
Хүснэгтүүдээ Relationship-ээр холбох
Үүсгэсэн хүснэгтүүдээ relationship-ээр холбохын тулд
үүсгэсэн Databse дотор хамгийн эхний хавтас буюу
Database Diagrams хэсгийг идэвхжүүлээд хулганы баруун
товчийг дарж New Database Diagram-ийг сонгоход Add
Table цонх гарч ирнэ. Энэ цонхны Tables хэсэгт холбох
хүснэгтүүдээ Add хийнэ. Гарч ирсэн хүснэгтүүдийн
primary key тодорхойлсон хэсэг дээр дарж чирээд нөгөө
хүснэгт рүү аваачин click хийнэ. Холболт хийсэн Diagram-
даа нэрээ өгч хадгалах шаардлагатай. Ингэснээр
хүснэгтүүд хоорондоо уялдаа холбоотой болж цогц
өгөгдлийн сан бүрдэж байгаа юм.
SELECT, WHERE, AND, OR, ORDER BY
SQL SELECT Statement - SQL SELECT үйлдэл
SELECT үйлдэл нь Өгөгдлийн сангийн өгөгдлүүдийг сонгож харахад хэрэглэгдэнэ.Үр дүн нь үр дүнгийн хүснэгтэнд хадгалагдах бөгөөд түүнийг result-set (Үр дүнгийн олонлог) гэж нэрлэдэг.
Формат1. SELECT баганы_нэр(-үүд) FROM хүснэгтийн_нэр2. SELECT * FROM хүснэгтийн_нэр
Жишээ.SELECT LastName, FirstName FROM Student
SELECT * FROM Student* тавьсанаар хүснэгтийн бүх бичлэгийн харуулна
SELECT DISTINCT үйлдэл
Хүснэгтэнд зарим баганууд давхардсан (ижил) утга агуулсан байдаг. Хэрэв тийм хүснэгтээс ялгаатай утгуудыг сонгож харах шаардлагатай бол DISTINCT үйлдлийг ашигладаг. (Distinct - Ялгаатай)
ФорматSELECT DISTINCT баганы_нэр(-үүд)FROM хүснэгтийн_нэр
WHERE түлхүүр үг
WHERE түлхүүр үг нь бичлэг(өгөгдөл)-үүдийг тодорхой нөхцөлийн дагуу шүүж харуулна.
ФорматSELECT баганы_нэр(-үүд)FROM хүснэгтийн_нэрWHERE нөхцөл
Жишээлбэл, "Student" Хүснэгтээс "СБ-3-7" гэсэн хаягтай сурагчдыг сонгож харъя.SELECT * FROM Student WHERE Address = 'СБ-3-7'
Текстэн болон огноон төрлийн утгын 2 талд нь дан кавычка('') тавигдана.
Жишээ. "Student" хүснэгт нь төрсөн огноо гэсэн огноон(Datetime) төрөлтэй баганатай байг. 1992.05.05-нд төрсөн оуютнуудыг харахдаа:SELECT * FROM Student WHERE BirthDate = '1992.05.05'
WHERE үйлдэлтэй хамт хэрэглэгддэг операторууд
= Тэнцүү
<> Ялгаатай
> Эрс их
< Эрс бага
>= Их буюу тэнцүү
<= Бага буюу тэнцүү
BETWEEN Хооронд
LIKEТухайн багана тухайн дэд мөр(текст)-ийг агуулсан эсэх
INТухайн элемент(утга) бүлэг элемэнт(олонлог) дотор агуулагдсан эсэх
AND ба OR операторууд
AND нь логик үржүүлэх оператор бөгөөд AND-
ээр холбогдсон 2 нөхцөл хоёулаа үнэн үед
нөхцөл үнэн байна. Харин OR оператор нь
логик нэмэх үйлдэл бөгөөд аль нэг нөхцөл
үнэн байхад логик илэрхийллийн утга үнэн
байна
Ж.1. SELECT * FROM Book WHERE Year = 2000 AND Author = 'Garmaa'2000 онд бичигдсэн зохиогчийн нэр нь Garmaa байх номуудыг харуулна.
2. SELECT FirstName, LastName FROM Student WHERE Address LIKE '%БЗ%' OR Address LIKE '%БГ%'Хаяг(Address)-ийн утга нь БЗ болон БГ гэсэн хэсэг агуулсан оюутнуудын нэр, овогийг харуулна.
ORDER BY түлхүүр үг
ORDER BY түлхүүр үг нь result-set(тодорхой бүлэг
өгөгдлүүд)-ийг тодорхой баганаар эрэмбэлж
харуулна. ORDERY BY нь ердийн үед өсөхөөр
эрэмбэлж харуулна. Буурахаар эрэмбэлэхээр бол
DESC түлхүүр үгийг нэмж бичинэ. Харин өсөхөөр
эрэмбэлэхдээ ASC түлхүүр үгийг нэмж бичсэн ч
болно.
Формат
SELECT баганы_нэр(-үүд) FROM хүснэгтийн_нэр ORDER BY
баганы_нэр ASC|DESC
Жишээ.
1. SELECT * FROM Student ORDER BY FirstName
2. SELECT FROM Name, Author, Year FROM Book ORDER BY Year
DESC
Эхний тохиолдолд "Student" хүснэгтийн бүх өгөгдлийг оюутны нэр
буюу FirstName баганаар өсөхөөр эрэмбэлж харуулна, хоёрдох
тохиолдолд "Book" хүснэгтйин Name(Номын нэр), Author(Зохиогч),
Year(он) багануудыг Year баганы утга буурах байдлаар эрэмбэлэн
харуулна.
SQL Server дээрх өгөгдлийн санг BackUp хийх.
Өгөгдлийн сангийн баазыг өөр компьютерт зөөж ашиглах тохиолдол гардаг.
Энэ тохиолдолд тухайн өгөгдлийн санг өөр дээр нь Backup(нөөцлөх) хийгээд
шилжүүлж зөөх компьютертаа баазаа Restore хийдэг. Энэ үйлдлүүдийг
жишээгээр үзүүлье.
Эхлээд backup хийх. Дараах book_db нэртэй баазыг backup хэрхэн хийдэг
тухай үзье.
Нөөцлөх гэж байгаа баазаа сонгоод хулганы mouse2 –р гарч ирэх цэснээс Тasks -> Back Up… командыг сонгоход дараах цонх гарч ирнэ.
Destination хэсгийн Remove командыг сонгно.
Энэ нь шинээр нөөц үүсгэх зай гаргаж өгч байна. Үүний дараа Add
командыг дарж үргэлжлүүлнэ.
Бааз хадгалах фолдерыг зааж өгсөний дараа баазын
нэрийг бичиж өгөх хэрэгтэй. Баазын нэрийн File name
хэсэгт бичиж өгөх бөгөөд дээрх тохиолдолд book_db гэсэн
баазын нэрийг өөрчлөхгүйгээр өгсөн байна. Энэ нэрийн
өөрөөр өгч болно. Гэвч тухайн нэрээр нь өгөх нь бидэнд
ашигтай. Учир нь програм дотор баазын нэртэй холбоотой
код бичигдсэн байгаа. Файлын нэрийг өгөхдөө book_db.bak
өргөтгөл зааж өгсөнийг анзаараарай. Энэ нь backup
файлын өргөтгөл юм.
OK товч дарахад. Back Up Database – book_db нэртэй цонх гард чирэх
бөгөөд энэ цонхны Ок командыг сонгосоноор бааз амжилттай нөөцлөгдсөн
гэдгийг илэрхийлж The backup of database ‘book_db’ completed successfully
гэсэн мессеж өгнө.
Ок товч дарснаар ажиллагаа дуусч нөөц файл маань
c:/database/book_db.bak нэртэйгээр үүснэ.
АНХААРАЛ ХАНДУУЛСАНД
БАЯРЛАЛАА