Датабаз системийн онол — 3

Anu Bazar
sustainable-data-by-Anu
3 min readFeb 22, 2024

Датабаз системийн онолын талаар жон жон…

Удиртгал:

Уншигч танд энэ өдрийн мэндийг хүргэе. Намайг Ану гэдэг. Миний бие одоогоор Унгарт биоинформатикчаар ажилладаг. Би R болон Python-оор код бичдэг бөгөөд дата тал дээр суурилсан ажил маш их хийдэг. Гэвч зарим гадаад нэр томъёолол надад англи хэл дээр нэг их наалддаггүй учир би дандаа монгол хэл дээр программчлалын талаар мэдээлэл хайх хоббитой гэж хэлж болно.

Интернетэд монгол хэл дээрх мэдээлэл хомс, тэр дундаа датабазын төлөвлөлтийн талаар маш хомс байдаг тул тэр “хоосон нүх”-ийг таглахын тулд энэхүү цувралаа эхлүүлж байна.

Домайн гэж юу вэ?

Өгөгдлийн хүрээнд Домайн гэдэг нь тодорхой атомик утгуудын багцийг хэлнэ. Жишээлбэл: banknii_dansnii_nomer, suragchdiin_ner, golch_dun г.м.. Эдгээрийг томъёололд тэмдэглэхдээ:

  • Харилцааны схемаг: R(A1,A2,…) (relational)
  • Шинж чанарууд: A (attributes)
  • Домайн: dom (A1) гэх байдлаар тэмдэглэнэ.

Эрхүүд:

Домайнуудын хоорондын харилцааг tuple буюу хувирашгүй лист байдлаар хадгалдаг. Үүнээс гадна датабазад заавал ч үгүй эрхийн хязгаарлалт хийгддэг. \Хязгаарлалтыг тодорхойлохдоо: ДБ-ын хэсгүүд нь жинхэнэ амьдралд тохиолдох мэдээллийн нэг хэсэг байх ба үүн дээр хязгаарлалт хийхийг хэлнэ./

Хязгаарлалтын төрлүүд:

  • Төрөлхийн буюу далд
  • схемд суурилсан/тодорхой
  • програмд ​​суурилсан/семантик/бизнесийн дүрэмээр. Илэрхийлэгдэхгүй төлөвт.
  • домэйн (үүнд A бүр нь dom(Ai)-ийн атомын утга байхаар хийнэ)
  • KEY/NULL байдал байхаар

KEY буюу түлхүүр талбаруудын төрлүүд

Super key — Мөр бүр өвөрмөц байхаар заадаг багана дахь мэдээлэл

Candidate key — хамгийн багадаа бүх мөрийг өвөрмөц байлгахад шаардагдах баганын тоо

Primary key — ямар ч NULL байхгүй, бүх хүснэгтүүдэд 1 ийм түлхүүрийн талбар байдаг. Хамгийн эхний баганад ихэнхидээ бий.

Unique key — NULL утга байж болно, бусад хүснэгттэй ямар ч харилцаа тогтоож болдоггүй багана. Бөөгнөрөөгүй төрлийн.

Foreign key — Бөөгнөрсөн индекс тоон талбар бөгөөд NULL утга авч болдог. Нэгээс олон foreign key нэг хүснэгтэд байж болно. Утгууд бүгд primary key-тэй адилхан домайнтай байх ёстой.

Түгээмэл бус эрхүүд:

  • нэгжийн бүрэн бүтэн байдлын хязгаарлалт: primary key байхгүй, NULL байж болно
  • Лавлагааны бүрэн бүтэн байдлын хязгаарлалт: бусад харилцаа руу заах tuple

Операцууд

Аливаа датабазад CRUD буюу шинээр нэмэх, унших, өөрчлөх болон устгах 4 үйлдэл заавал байна. Эдгээрийн өгөгдлийн манипуляц гэдэг.

CRUD operations in SQL Server (sqlshack.com)

DML хэлэнд SELECT, INSERT, UPDATE, DELETE, ба MERGE гэсэн үйлдлүүд байдаг.

DDL хэлэнд харин CREATE, ALTER, DROP, RENAME, ба TRUNCATE гэсэн үйлдлүүд байдаг.

SELECT — Барьж авах ч юм уу. Зүгээр пайтон дээр print хийж байгаа шиг. Бас ардаас нь баахан филтер бичиж болдог. Жишээ нь: (MySQL) SELECT * WHERE age < 30 — бүх илэрц нас гэдэг баганад 30-аас бага утгатай бвал надад гаргаад ир! гэсэн маягтай дохио.

INSERT — Шинэ өгөгдөл тодорхой байдлаар нэмэхэд хэрэглэдэг.

UPDATE — Шинэ өгөгдлөөр хуучинг шинэчлэх, шинэ мөр эсвэл багана нэмэх

DELETE — устгах, гэхдээ зөвхөн мөр багана нтрдээ л.

MERGE — хооронд нь хоёр хүснэгтийг нэгтгэх, баганыг, мөрийг гм.

CREATE — шинээр хүснэгт нэмэхэд

ALTER — ALTER TABLE нь шинэ хүснэгтээ өөрчлөх горим

DROP — маш аюултай, бүх датабазыг чинь хогын саванд хийчихэж магадгүй. Тодорхой аргументтэй үед л зөвшөөрдөг. Хэрвээ DROP TABLE хийвэл safe mode дээр чамайг хийлгэхгүй.

RENAME — хүснэгтийн нэр солих

TRUNCATE — бүх мөрийг арилгана. баганын нэр, индекс бол хэвээрээ үлддэг.

Уншихад гоё:
Лекц-6 | PPT (slideshare.net)

Difference Between DDL and DML in DBMS — GeeksforGeeks

mod1l1.pdf (wisc.edu)

Баярлалаа!

Дараагийн удаа хэдүүлээ нормализацийн талаар ярилцъя. Сурахийг хүссэн юм, ойлогдохгүй юм байвал коммент хэсэгт бичээрэй.

--

--