DB2(در روسی "dibi two" تلفظ می شود، کاغذ ردیابی از انگلیسی "dibi tu" نیز رایج است) - خانواده محصولات نرم افزاریمدیریت اطلاعات در IBM

اغلب، هنگام اشاره به DB2، منظور آنها سیستم مدیریت پایگاه داده رابطه ای DB2 Universal Database (DB2 UDB) است که توسط IBM توسعه و منتشر شده است.

املای "DB/2" گاهی دیده می شود، اما این املا نادرست است: در نماد IBM، عدد در مخرج کسری به معنای پلت فرم و "/2" به معنای محصول برای سیستم عامل OS/2 است (یا سری کامپیوترهای PS/2). به عنوان مثال، نسخه DB2 برای OS/2 "DB2/2" تعیین شد.

پیاده سازی ها

DB2 DBMS در حال حاضر بر روی پلتفرم های زیر در دسترس است:

  • DB2 برای لینوکس، یونیکس و ویندوز نسخه 9برای پلتفرم های AIX، HP-UX، Linux، Solaris، ویندوز و بتا برای پلتفرم Mac OS X
  • DB2 برای z/OS v9برای پلتفرم های z/OS و OS/390
  • سرور DB2 برای VSE و VM v7برای پلتفرم های z/VM و z/VSE
  • DB2 برای iبرای پلتفرم IBM i (ادغام شده در سیستم در سطح سخت افزار و نرم افزار)

در گذشته، نسخه هایی از سرور پایگاه داده DB2 برای OS/2، UnixWare، PTX منتشر شده است.

کلاینت های DB2 DBMS، علاوه بر پلتفرم های ذکر شده، در نسخه های مختلف نیز برای SINIX، IRIX، Mac OS کلاسیک و برای MS-DOS و همچنین در نسخه موبایل DB2 همه جابرای Windows CE، Palm OS، Symbian OS، Neutrino و ماشین مجازیجاوا

در حال حاضر آی‌بی‌ام علاوه بر محصولات تجاری این خانواده، توزیع رایگان را نیز انجام می‌دهد DB2 Express-Cبرای پلتفرم‌های Linux (x86، x86-64، POWER)، Windows (x86، x86-64)، Solaris (x86-64)، Mac OS X (x86-64 بتا). نسخه رایگانمحدودیت هایی در استفاده از بیش از یک پردازنده دو هسته ای و 2 گیگابایت برای عملکرد DBMS دارد. حافظه دسترسی تصادفی(تعداد کل پردازنده ها و حافظه در سیستم می تواند هر کدام باشد، اما منابع فراتر از محدودیت های مشخص شده توسط DBMS استفاده نمی شود).

داستان

DB2 سابقه ای طولانی دارد و برخی آن را اولین DBMS می دانند که از SQL استفاده می کند.

از سال 1975 تا 1982، نمونه اولیه DB2 در IBM با نام System Relational یا System R توسعه یافت. زبان SQL برای اولین بار در IBM System R پیاده سازی شد، اما این سیستم ماهیت تحقیقاتی داشت و محصول تجاری از جمله SQL برای اولین بار توسط Oracle در سال 1979 منتشر شد.

DB2 نام خود را در سال 1982 با اولین نسخه تجاری برای SQL/DS و سپس برای MVS به نام DB2 دریافت کرد. برای مدت طولانی، همراه با "DB2"، از نوع "Database 2" که همچنین علامت تجاری IBM است، استفاده می شد. ظاهراً قرار بود این دومین DBMS پرچمدار IBM بعد از IMS DBMS سلسله مراتبی قدیمی باشد.

توسعه DB2 به اوایل دهه 1970 باز می گردد، زمانی که دکتر E. F. Codd که برای IBM کار می کرد، نظریه پایگاه های داده رابطه ای را توسعه داد و یک مدل دستکاری داده ها را در ژوئن 1970 منتشر کرد. برای پیاده سازی این مدل، او یک زبان پایگاه داده رابطه ای ایجاد کرد و آن را آلفا نامید. IBM تصمیم گرفت توسعه بیشتر را به گروهی از برنامه نویسان خارج از کنترل دکتر کاد واگذار کند. آنها با نقض برخی از اصول مدل رابطه ای، آن را به صورت «ساختار یافته» اجرا کردند زبان انگلیسیدرخواست‌ها، به اختصار SEQUEL. از آنجایی که SEQUEL قبلاً یک علامت تجاری ثبت شده بود، نام آن به SQL - "Structured Query Language" کوتاه شد و تا به امروز به همین شکل باقی مانده است.

بنابراین، از نظر تاریخی، DB2 از DB2 برای MVS (که DB2 برای z/OS یک نسل است) و خواهرش SQL/DS برای VM (که سرور DB2 برای VSE و VM یک نسل است) تکامل یافته است. متعاقباً، تیم توسعه دیگری در IBM سرور OS/2 EE Database Manager را پیاده سازی کرد که بعداً به DB2 v2 برای OS/2، AIX و سپس Windows و سپس به DB2 UDB تبدیل شد (نوادگان آن DB2 برای لینوکس، یونیکس و ویندوز است). . تیم دیگری ادغام معماری DB2 را با پایگاه داده تعبیه شده AS/400 (یکی از نسل - DB2 برای i) تکمیل کرد. آی بی ام به تدریج به سمت ادغام همه این شاخه ها پیش می رود.

ویژگی های خاص

از ویژگی های متمایز DB2 می توان به گویش اشاره کرد زبان SQL، که به استثنای موارد نادر، معنای صرفاً اعلانی ساختارهای زبان و یک بهینه ساز قدرتمند چند فازی را تعیین می کند که یک طرح اجرای پرس و جو مؤثر بر اساس این ساختارهای اعلامی ایجاد می کند. بر خلاف دیگر گویش‌های SQL، گویش DB2 SQL عملاً هیچ اشاره‌ای به بهینه‌ساز ندارد، ضعیف توسعه یافته است (و برای مدت طولانیبه طور کلی وجود نداشت) یک زبان رویه ذخیره شده، و بنابراین همه چیز در جهت حفظ یک سبک بیانی در نوشتن پرس و جوها است. در عین حال، زبان DB2 SQL از نظر محاسباتی کامل است، یعنی به طور بالقوه به شما امکان می دهد هر گونه مطابقت قابل محاسبه بین داده منبع و نتیجه را در یک فرم اعلامی تعریف کنید. این امر، در میان چیزهای دیگر، از طریق استفاده از عبارات جدول، بازگشت و سایر مکانیسم های دستکاری داده های پیشرفته به دست می آید.

با توجه به تمرکز IBM بر توسعه رابطه ای و موقعیت این شرکت در صنعت کامپیوتر، گویش DB2 SQL تأثیر قابل توجهی بر استانداردهای ANSI/ISO SQL دارد.

رویه های ذخیره شده خیلی زیاد در DB2 استفاده نمی شوند و به طور سنتی از زبان های برنامه نویسی سطح بالا معمولی (C، جاوا، PL/I، Cobol و غیره) برای نوشتن رویه های ذخیره شده استفاده می شود، این به برنامه نویس اجازه می دهد تا به راحتی فرمت ها را فرمت کند. همان کد به عنوان بخشی از برنامه یا به عنوان یک رویه ذخیره شده، بسته به اینکه اجرای آن بر روی مشتری یا سرور مناسب تر است. DB2 همچنین در حال حاضر پسوند رویه ای SQL را برای رویه های ذخیره شده مطابق با استاندارد ANSI SQL/PSM پیاده سازی می کند.

بهینه ساز DB2 به طور گسترده از آمار توزیع جدول استفاده می کند (اگر فرآیند جمع آوری داده ها توسط DBA انجام شده باشد)، بنابراین همان پرس و جوی SQL را می توان بسته به ویژگی های آماری داده هایی که پردازش می کند به برنامه های اجرایی کاملاً متفاوت ترجمه کرد.

از آنجایی که DB2 از لحاظ تاریخی از سیستم‌های چند کاربره روی پردازنده‌های مرکزی تکامل یافته است، توجه زیادی در معماری DB2 به مسائل امنیتی و توزیع نقش‌های متخصصان نگهداری DB2 داده شده است. به طور خاص، بر خلاف بسیاری از DBMS های دیگر، DB2 نقش های جداگانه ای برای مدیر DBMS دارد (مسئول پیکربندی اجزای نرم افزار DB2 و اجرای بهینه آنها در سیستم کامپیوتری) و یک مدیر پایگاه داده (مسئول مدیریت داده ها در یک پایگاه داده خاص).

استفاده از SQL استاتیک در برنامه‌ها و مفهوم بسته‌ها، در صورت لزوم، بر خلاف اکثر DBMS‌های دیگر، اجرای چنین مدل امنیتی را امکان‌پذیر می‌سازد، زمانی که حقوق اجرای عملیات خاصی را می‌توان در غیاب چنین حقوقی به برنامه‌های کاربردی اعطا کرد. برای کاربرانی که با این برنامه ها کار می کنند. در این مورد، این امکان را فراهم می کند که عدم امکان کار کاربر با پایگاه داده با دور زدن برنامه کاربردی تضمین شود، در صورتی که کاربر فقط حق اجرای برنامه را داشته باشد، اما نه به طور مستقل داده ها را دستکاری کند.

به عنوان بخشی از مفهوم افزایش سطح یکپارچگی ابزارهای امنیتی در یک سیستم کامپیوتری، DB2 ابزار خاص خود را برای احراز هویت کاربران، ادغام با ابزارهای سیستم عامل یا سرورهای امنیتی تخصصی ندارد. در DB2، فقط کاربرانی که توسط سیستم احراز هویت شده اند مجاز هستند.

DB2 تنها DBMS رابطه‌ای همه منظوره است که در سطح سخت‌افزار/نرم‌افزار پیاده‌سازی شده است (سیستم IBM i؛ پشتیبانی از DB2 نیز بر روی سخت‌افزار IBM System z اجرا می‌شود).

نسخه‌های مدرن DB2 پشتیبانی پیشرفته‌تری برای استفاده از داده‌های XML، از جمله عملیات روی عناصر جداگانه اسناد XML ارائه می‌کنند.

خطا در پردازش

یکی از ویژگی های مفید DB2 SQL Server توانایی آن در رسیدگی به خطاها است. برای این منظور از ساختار SQLCA استفاده می شود. منطقه ارتباطات SQL- ناحیه پیوند SQL) که اطلاعات خطا را پس از هر بار اجرای دستور SQL به برنامه کاربردی برمی گرداند.

فیلدهای ساختار SQLCODE و مقادیر آنها

تشخیص خطای اصلی، اما نه همیشه مفید، در این زمینه موجود است SQLCODE(نوع داده - عدد صحیح) در داخل بلوک SQLCA. می تواند مقادیر زیر را بگیرد:

  • 0 به معنای موفقیت است.
  • عدد مثبت به معنای موفقیت با یک یا چند اخطار است. به عنوان مثال، +100 به این معنی است که هیچ ستونی پیدا نشد.
  • عدد منفی به معنای شکست با خطا است. به عنوان مثال، -911 به معنای فاصله زمانی انتظار قفل منقضی شده (یا بن بست) شناسایی شده است که باعث بازگشت متوالی می شود.

SQLERRM(نوع داده - رشته ای از 71 کاراکتر). حاوی رشته متنبا توضیح خطا در صورتی که فیلد SQLCODE کمتر از صفر باشد.

SQLERRD(نوع داده - آرایه، 6 عدد صحیح). نتیجه اجرای آخرین دستور SQL را شرح می دهد:

  • 1 عنصر - اطلاعات داخلی؛
  • عنصر دوم - حاوی مقدار فیلد نوع SERIAL تولید شده توسط سرور برای عبارت INSERT یا یک کد خطای اضافی است.
  • عنصر 3 - برابر با تعداد رکوردهای پردازش شده است.
  • عنصر چهارم - هزینه تقریبی اجرای این اپراتور.
  • عنصر پنجم - جبران خطا در رکورد متن دستور SQL.
  • عنصر ششم - اطلاعات داخلی.

یادداشت

پیوندها

  • صفحه برنامه در وب سایت IBM
  • DB2 در developerWorks - مقالات و آموزش های DB2
  • PlanetDB2 - وبلاگ های DB2

ادبیات

  • تاریخ ک.راهنمای DBMS رابطه ای DB2. - م.: امور مالی و آمار، 1988. - 320 ص. - شابک 5-279-00063-9
  • Zikopoulos P.K.، Baklarz J.، deRus D.، Melnik R.B. DB2 Version 8: The Official Guide = DB2 Version 8: The Official Guide. - M.: KUDITS-OBRAZ, 2004. - 400 p. - شابک 5-9579-0031-1
  • اسمیرنوف اس.ن.کار با IBM DB2: آموزش. - م.: هلیوس، 2001. - 304 ص. - شابک 5-85438-007-2 (توصیه شده توسط دانشگاه های UMO در منطقه امنیت اطلاعاتبه عنوان کمک آموزشی در تخصص های "امنیت اطلاعات یکپارچه سیستم های خودکار" و "امنیت کامپیوتر")
  • سوزان ویسر، بیل وانگ.پایگاه داده جهانی DB2 را در 21 روز به خودتان آموزش دهید = پایگاه داده جهانی DB2 را در 21 روز سامز آموزش دهید. - ویرایش دوم - م.: ویلیامز، 2004. - 528 ص. - شابک 0-672-32582-9
  • هوک جی.، هاربوس آر.، اسنو دی.راهنمای جهانی DB2 برای Windows NT®. - نیوجرسی: Prentice Hall PTR، 1999. - P. 504. - ISBN 0-13-099723-4

بنیاد ویکی مدیا 2010 .

ببینید «IBM DB2» در فرهنگ‌های دیگر چیست:

    IBM DB2- توسعه دهندگان IBM انتشار اولیه 1983 (1983) ... ویکی پدیا

    IBM DB2- DB2 ist ein kommerzielles relationales Databank Management System (RDBMS) der Firma IBM, dessen Ursprünge auf das System R und die Grundlagen von E. F. Codd vom IBM Research aus dem Jahr 1970 zurückgeht. Inhaltsverzeichnis 1 Eigenschaften 1.1… … Deutsch Wikipedia

    IBM DB2- توسعه دهنده IBM Dernière نسخه ... Wikipedia en Français

    IBM DB2 Commonstore- نرم افزار DB2 CommonStore Archiving تولید شده توسط IBM برای مدیریت پیام های ایمیل یا داده های SAP ERP. بخشی از مجموعه مدیریت اطلاعات IBM که بر بستر پایگاه داده DB2 ساخته شده است. DB2 CommonStore یکی از چندین محصولی است که … … ویکی‌پدیا هستند

در محل کار، مدتی مجبور شدم با DBMS IBM DB2 سروکار داشته باشم. زیرا از آنجایی که این سیستم تجاری است، اطلاعات زیادی به زبان روسی در اینترنت وجود ندارد، بنابراین تصمیم گرفتم برخی از ویژگی های این DBMS را شرح دهم.

نقطه ورود

بیایید با نقطه ورودی در DBMS شروع کنیم. در SQL SERVER نقطه پایاننمونه‌ای است که البته می‌توان در آن پایگاه‌های داده جداگانه‌ای وجود داشت، اما پیکربندی و مدل امنیتی برای کل نمونه یکسان است. در DB2، نقطه ورود به این شکل است - یک نمونه (که مربوط به یک پورت خاص است) - یک پایگاه داده. در همان زمان، یک پیکربندی برای کل نمونه، و برای یک پایگاه داده جداگانه وجود دارد.

می توانید پیکربندی نمونه را با استفاده از دستور db2 مشاهده کنید:

پیکربندی مدیر پایگاه داده

نوع گره = Enterprise Server Edition با کلاینت های محلی و راه دور

سطح انتشار پیکربندی مدیر پایگاه داده = 0x0b00

سرعت پردازنده (میلی ثانیه/دستورالعمل) (CPUSPEED) = 2.912790e-07
پهنای باند ارتباطات (MB/sec) (COMM_BANDWIDTH) = 1.000000e+02

حداکثر تعداد پایگاه های داده فعال همزمان (NUMDB) = 8
پشتیبانی سیستم پایگاه داده فدرال (FEDERATED) = بله
نام مانیتور پردازشگر تراکنش (TP_MON_NAME) =

حساب بازپرداخت پیش‌فرض (DFT_ACCOUNT_STR) =

مسیر نصب کیت توسعه جاوا (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

سطح ضبط خطای تشخیصی (DIAGLEVEL) = 3
سطح اطلاع رسانی (NOTIFYLEVEL) = 3
مسیر دایرکتوری داده های تشخیصی (DIAGPATH) = /home/db2inst1/sqllib/db2dump

سوئیچ های پیش فرض مانیتور پایگاه داده
مخزن بافر (DFT_MON_BUFPOOL) = OFF

جایی که پارامترها مشخص خواهند شد، معنی و رمزگشایی آنها. نسخه کوتاه شده نیز امکان پذیر است:

dbm cfg را دریافت کنید

یا با یک پرس و جو:

نام، مقدار را از sysibmadm.dbmcfg انتخاب کنید

از جانب پارامترهای مهممی توانید توجه داشته باشید:

  • نوع احراز هویت (AUTHENTICATION)
  • مسیر پیش‌فرض برای ایجاد پایگاه‌های داده جدید (DFTDBPATH)
  • کشف سرور شبکه (DISCOVER)
می توانید تنظیمات یک پایگاه داده خاص را مانند این مشاهده کنید:

اتصال به نمونه(نمونه - نام پایگاه داده)

پیکربندی مدیر پایگاه داده را دریافت کنید

یا تقریباً با همان درخواست قبلی:

نام، مقدار را از sysibmadm.dbcfg انتخاب کنید

احراز هویت

تفاوت بزرگ بین DB2 و سایر DBMS ها در مدل احراز هویت است. هیچ کاربر داخلی مانند SQL Server یا MySQL وجود ندارد. تمام احراز هویت با ابزارهای خارجی DBMS (افزونه های بارگذاری شده پویا) - با استفاده از سیستم عامل یا افزونه های خارجی (Kerberos، GSS API) انجام می شود. نوع احراز هویت در پارامتر AUTHENTICATION پیکربندی مدیر پایگاه داده تنظیم شده است. به طور پیش فرض، مقدار SERVER تنظیم شده است - نام کاربری و رمز عبور به صورت متن واضح منتقل می شود و صحت این جفت با استفاده از سیستم عامل بررسی می شود. اگر نام کاربری و رمز عبور صحیح باشد، امتیاز CONNECT برای کاربر یا گروه‌هایی که در آن عضو است (از جمله گروه ویژه PUBLIC که شامل همه کاربران مجاز است) بررسی می‌شود. این امتیازات را می توان در جدول SYSCAT.DBAUTH مشاهده کرد:

GRANTEE را از SYSCAT.DBAUTH انتخاب کنید که در آن CONNECTAUTH = "Y"

یک اشتباه بزرگ در پیکربندی این است که نوع احراز هویت CLIENT را شامل شود.در این حالت، DB2 به کلاینت متصل کننده اعتماد می کند تا احراز هویت را انجام دهد و اگر PUBLIC دارای امتیاز CONNECT باشد، هر کاربری می تواند به پایگاه داده متصل شود و به تمام داده هایی که PUBLIC دارد دسترسی پیدا کند. نام کاربری از سیستم عامل گرفته شده است. یعنی اگر ما از طریق Data Studio به عنوان یک کاربر Administrator وصل شویم، تمام امتیازات آن این کاربر. و در این حالت هیچ تفاوتی وجود ندارد که دسترسی از کدام کامپیوتر صورت گرفته باشد. این نوعتأیید اعتبار توصیه می شود تنها زمانی فعال شود که یک کانال امن بین سرور و کلاینت وجود داشته باشد و سایر کلاینت ها نتوانند به DBMS متصل شوند.

مجوز

امتیازات سطح نمونه در پیکربندی مدیر پایگاه داده نوشته شده است. اینها امتیازات زیر هستند:

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
این امتیازات با تعیین گروهی که کاربر در آن وارد می شود تنظیم می شود. در dbmcfg، اینها به ترتیب گزینه های SYSADM_GROUP، SYSCTRL_GROUP، SYSMAINT_GROUP و SYSMON_GROUP هستند.

بعد، امتیازات ویژه پایگاه داده وجود دارد. اینها امتیازاتی مانند دسترسی به پایگاه داده (CONNECTAUTH)، ایجاد جدول (CREATETABAUTH)، ایجاد روتین (EXTERNALROUTINEAUTH) و غیره هستند. این امتیازات را می توان در نمای SYSCAT.DBAUTH مشاهده کرد

و در نهایت، دسترسی به امتیازات به داده های خاص - جداول، زیر روال ها، و غیره. همه چیز در اینجا کاملاً پیش پا افتاده است، اما همچنین با برخی ویژگی ها.

امتیازات دسترسی به جدول را می توان در نمای SYSCAT.TABAUTH مشاهده کرد. نوع امتیاز اعطا شده بسته به خود امتیاز (SELECTAUTH، DELETEAUTH و غیره) در ستون های جداگانه ذخیره می شود. هنگام اعطای امتیاز با استفاده از دستور GRANT برای امتیازات REFERENCES و UPDATE، همچنین می توانید نام ستون هایی را که امتیازات داده شده به آنها تعمیم داده می شود را مشخص کنید. در این مورد، اطلاعات مربوط به این مورد را می توان در نمای SYSCAT.COLAUTH مشاهده کرد

امتیازات روتین ها (عملکردها، رویه ها و روش ها) را می توان در SYSCAT.ROUTINEAUTH مشاهده کرد. همه چیز در اینجا بی اهمیت نیست، بسته به فیلدهای SPECIFICNAME و TYPENAME، می توان به همه زیر روال های یک طرح معین امتیاز داد.

اگر خوانندگان مقاله را دوست دارند، پس من آماده هستم تا در مورد محافظت از داده ها در DB2 با استفاده از کنترل دسترسی مبتنی بر برچسب صحبت کنم.

مروری بر مفاهیم اساسی و توضیحات کلیمعماری پایگاه داده IBM DB2 برای پلتفرم های لینوکس، یونیکس و ویندوز

سری مطالب:

این محتوا قسمت # از یک سری # مقالات است: مروری بر DB2 LUW

http://www.?q=%D0%9E%D0%B1%D0%B7%D0%BE%D1%80+DB2+LUW&co=ru&lo=ru&ibm-submit.x=11&ibm-submit.y=13&sn= mh&lang=ru&cc=RU&en=utf&hpp=

منتظر مقالات جدید این مجموعه باشید.

مواد خامو اطلاعات تماس

تشکر ویژه از مارک بارینشتاین برای وقت گذاشتن برای تصحیح مطالب مقالات، توجه به جزئیات و نظرات ارزشمند.

بخش اصلی مطالب مقالات تفسیر آزاد است اسناد رسمی db2. اطلاعات ارائه شده بازسازی و فرمول بندی شده است تا مختصر و در عین حال تا حد امکان واضح باشد. ارجاع به منابع مورد استفاده در تمامی موارد در متن مقالات و در قسمت «منابع» آمده است.

به عنوان بخشی از مجموعه مقالات، برنامه ریزی شده است که موضوعات زیر بررسی شود:

  1. (مقاله ای که در حال خواندن آن هستید)
  2. (نصب، پیکربندی، تشخیص، پشتیبان گیریو بهبودی)
  3. رویه های مدیریت پیشرفته (انتقال اطلاعات، بهینه سازی عملکرد، مدیریت اولویت های اجرا)؛
  4. ابزارهایی برای ساخت انبارهای داده های تحلیلی؛
  5. فناوری های تجزیه و تحلیل درون حافظه - DB2 BLU؛
  6. پردازش داده های تحلیلی موازی گسترده با DB2 DPF (ویژگی پارتیشن بندی پایگاه داده).
  7. پایگاه های داده توزیع شده (پیکربندی های شکست، تکرار داده ها و دسترسی به داده های فدرال)؛
  8. قابلیت های خوشه بندی DB2 pureScale برای تحمل خطا و مقیاس پذیری.

مقالات این مجموعه با آماده شدن مطالب مربوطه منتشر خواهد شد.

خانواده محصولات DB2

نام "DB2" توسط IBM برای یک خانواده کامل از محصولات استفاده می شود که هم در ترکیب پلتفرم های سخت افزاری و نرم افزاری که در آنها استفاده می شود و هم از نظر عملکرد، معماری و ویژگی های فنی با یکدیگر متفاوت هستند. این تفاوت ها به دلیل ادغام شدید اکثر محصولات خانواده DB2 با سیستم های عاملکه در آن کار می کنند و همچنین ویژگی های این سیستم عامل ها.

خانواده محصولات DB2 در حال حاضر شامل:

  • DB2 برای لینوکس، یونیکس و ویندوز، یا DB2 LUW - یک DBMS برای سیستم های دارای لینوکس (RedHat، SuSE، Ubuntu)، UNIX (AIX، HP-UX، Solaris) و Microsoft Windows، که موضوع این مقاله و سایر مقالات این مجموعه است.
  • DB2 برای z/OS- DBMS برای سیستم عامل z/OS مورد استفاده در IBM System z.
  • سرور DB2 برای VSE و VM- DBMS برای عملیات z/VM و z/VSE که در مین‌فریم‌های IBM System z استفاده می‌شود.
  • DB2 برای i- DBMS برای سیستم عامل System i مورد استفاده در پلت فرم IBM Power.

هر یک از DBMS های فهرست شده از نظر معماری برای کارآمدترین عملکرد در سیستم عامل های مربوطه اقتباس شده است و شامل مجموعه ای خاص از ابزارها و ابزارهای مدیریتی است.

اصطلاحات استفاده شده در مستندات برای DBMS های مختلف خانواده DB2 یکسان نیست، و اصطلاحات یکسان ممکن است معانی متفاوتی برای انواع مختلف DB2 داشته باشند: برای مثال، اصطلاحات "پایگاه داده" و "فضای جدول" معانی متفاوتی برای DB2 LUW و DB2 دارند. برای z/OS، به دلیل تفاوت های معماری بین این نوع DBMS.

بنابراین، هنگام کار با منابع اطلاعاتی اختصاص داده شده به DB2، لازم است به وضوح تشخیص داده شود که کدام یک از محصولات خانواده مورد بحث است تا از سردرگمی و خطاهای احتمالی جلوگیری شود.

توابع DB2 LUW منسوخ شده

به هر شکلی، محصول DB2 LUW از سال 1989 (سالی که سیستم عامل OS/2 1.10 Extended Edition منتشر شد، که شامل مولفه مدیریت پایگاه داده بود - یعنی DBMS رابطه‌ای که اساس آن بود) در بازار وجود داشت. DB2 LUW).

در طول توسعه طولانی محصول، برخی از توابع اولیه توسعه یافته مجدداً بررسی شدند و با اجرای دیگری جایگزین شدند یا به دلیل عدم نیاز به طور کامل از محصول حذف شدند. بنابراین، هنگام کار با مواد آماده شده برای نسخه های قدیمی DB2 (مثلا نسخه 9.7)، توجه داشته باشید که برخی از ویژگی های شرح داده شده در این مواد ممکن است در نسخه های جدیدتر DB2 (مثلاً 10.5 و 11.1) جایگزین شوند. اطلاعات دقیق در مورد عملکردهای منسوخ شده و جایگزین شده در آورده شده است.

قابل توجه ترین تغییرات برای مدیران و توسعه دهندگان عبارتند از:

  • جایگزینی ابزارهای مدیریت گرافیکی منسوخ شده "Control Center"، "Task Center" و تعدادی دیگر با عملکردهای بسته رایگان IBM Data Studio و همچنین با عملکرد ابزارهای موجود در نسخه رایگان IBM Data Server محصول مدیر؛
  • منسوخ شدن سرور مدیریت DB2 (DAS) که برای ابزارهای مدیریت قدیمی مورد نیاز بود.
  • جایگزینی ابزارهای مدیریت حجم کار DB2 Governor و Query Patroller با عملکرد مدیریت بار کاری DB2 (DB2 WLM).

هدف از تهیه این سری مقالات

هدف اصلی از نوشتن یک سری مقالات مروری در IBM DB2 پر کردن کمبود مطالب در این زمینه به زبان روسی است. در واقع، با وجود در دسترس بودن ترجمه بخش قابل توجهی از اسناد به زبان روسی و کتاب‌های قابل دسترس در DB2، هنوز اطلاعات کلی در دسترس نیست که به خوانندگان علاقه‌مند اجازه دهد تا ایده‌ای درباره ویژگی‌های DB2 داشته باشند. در ویژگی های عملکرد و مدیریت

با این حال، قصد نویسنده این نیست که یک نمای کلی از همه محصولات در خانواده DB2 تهیه کند (به نوار کناری "خانواده محصولات DB2" مراجعه کنید)، در عوض، برنامه ریزی شده است که روی نوع DB2 برای لینوکس، یونیکس و سیستم عامل های ویندوز - i.e. روی محصول DB2 LUW.

خوانندگان علاقه مند به راهنمای عملیبرای شروع کار با DB2، توصیه می کنم به کتاب آزادانه توزیع شده "، ترجمه شده به روسی مراجعه کنید. این کتاب نمونه‌های زیادی از عملیات نرم‌افزار DB2 را ارائه می‌دهد که شروع به کار با نسخه DB2 9.7 که در کتاب توضیح داده شده و نسخه‌های جدیدتر DB2 (10.5 و 11.1) را آسان می‌کند. هنگام کار با نسخه های فعلی نرم افزار DB2، توجه داشته باشید که برخی از عملکردها در نسخه 9.7 منسوخ شده است و در نسخه های جدید محصول پشتیبانی نمی شود (به نوار کناری "ویژگی های DB2 LUW منسوخ شده" مراجعه کنید).

قابلیت DB2 LUW

IBM DB2 از موارد مورد قبول فعلی استفاده می کند معماری مشتری-سرور DBMS رابطه ای، با ذخیره سازی اطلاعات روی سرور و اتصال برنامه های کاربردی مشتری به پایگاه های داده به صورت محلی یا از طریق شبکه.

برای ارائه دسترسی همزمان به داده ها از برنامه های موازی، DB2 از مکانیزم تراکنش مبتنی بر قفل و ثبت تراکنش ها برای ارائه ضمانت های استاندارد ACID (اتمیسیته، سازگاری، جداسازی، دوام) استفاده می کند. این مکانیسم برای اطمینان از حداکثر کارایی، قابلیت اطمینان و به حداقل رساندن تأخیر در اجرای برنامه، مسیر طولانی تکامل را طی کرده است.

DB2 از تمام استانداردهای رایج صنعت برای دسترسی به داده های برنامه، از جمله یک زبان استاندارد پشتیبانی می کند پرس و جوهای SQL، رابط های ODBC و JDBC، کار با قالب های جدول متنی معمولی و غیره. علاوه بر این، DB2 دارای قابلیت های پیشرفته ای برای ذخیره سازی و کار با داده های نیمه ساختار یافته در فرمت های XML، JSON/BSON. برای توسعه رویه های ذخیره شده، DB2 از انواع زبان های رویه ای پشتیبانی می کند، از جمله:

  • استاندارد برای زبان DB2 SQL PL،
  • زبان SQL/PL مورد استفاده در DBMS اوراکل،
  • توانایی توسعه رویه های ذخیره شده "خارجی" در جاوا، C، C++ و COBOL.

ویژگی های متمایز DB2 عبارتند از:

  • مقیاس پذیری، محدود به منابع محاسباتی موجود، و مقرون به صرفه ترین استفاده از منابع محاسباتی.
  • ابزار داخلی قدرتمند تمایز و کنترل دسترسی، که توانایی محدود کردن جزئیات دسترسی به اطلاعات در زمینه اشیاء (جدول، نماها) و همچنین اجرای یک مدل کنترل دسترسی اجباری را فراهم می کند.
  • سیستم پشتیبان گیری و بازیابی اطلاعات یکپارچه پیشرفته؛
  • در دسترس بودن مجموعه کاملی از فناوری‌ها برای ساخت انبارهای داده‌های تحلیلی "کلاسیک" (تقسیم جداول به بخش‌ها، نماهای تحقق‌یافته، بهینه‌سازی ذخیره‌سازی داده‌ها و اسکن جداول و شاخص‌ها، موازی‌سازی "داخلی" در اجرای پرس و جوهای پیچیده و غیره).
  • پشتیبانی از ساخت پیکربندی‌های پردازش داده‌های تحلیلی موازی (MPP) از چندین سرور متصل شده از طریق یک شبکه ارتباطی مبتنی بر ویژگی تقسیم‌بندی پایگاه داده DB2 (DB2 DPF).
  • حداکثر تحمل خطا و مقیاس‌بندی نزدیک به خطی پیکربندی‌های Cluster PureScale DB2، با داده‌های ذخیره شده در دیسک‌های مشترک.
  • فناوری DB2 BLU که پشتیبانی از تحلیل‌های «ستونی» مدرن درون حافظه را بدون استفاده از بهینه‌سازی دستی ساختار پایگاه داده پیاده‌سازی می‌کند.

برای تسهیل انتقال برنامه‌ها از انواع دیگر DBMS (به طور عمده پایگاه داده اوراکل)، DB2 ابزارهای سازگاری پیشرفته، از جمله پشتیبانی از انواع داده‌های لازم، رویه‌های ذخیره‌شده، و نمای‌های سیستم استاندارد را فراهم می‌کند.

چندین نسخه از محصول DB2 LUW وجود دارد که با یک مجموعه واحد از توابع اساسی متحد شده اند و با وجود محدودیت در منابع محاسباتی استفاده شده و پشتیبانی از عملکرد پیشرفته، با یکدیگر متفاوت هستند. نسخه DB2 Express-C که بدون هیچ هزینه ای در دسترس است، می تواند برای ارزیابی محصول، یادگیری و حتی استقرار تولید کوچک استفاده شود. عملکرد و محدودیت های منابع نسخه های مختلف DB2 LUW در مقاله "" به تفصیل آمده است.

ساختار سرور پایگاه داده

سرور پایگاه داده DB2 رایانه ای است که نرم افزار سرور DB2 (موتور DB2) روی آن نصب شده است و خدمات مدیریت اطلاعات ساختاریافته را ارائه می دهد.

دسترسی به خدمات DB2 توسط برنامه ها توسط نرم افزار سرویس گیرنده DB2 (بسته درایور سرور داده IBM) ارائه می شود که با سرور DB2 مطابق با روش های اتصال برنامه پشتیبانی شده (از جمله ODBC، JDBC، OLE DB، ADO، CLI، و روش های دیگر) ارتباط برقرار می کند. . در بیشتر موارد، نرم‌افزار مشتری مورد نیاز با سرور DB2 نصب می‌شود و به برنامه‌هایی که مستقیماً روی سرور پایگاه داده میزبانی می‌شوند اجازه می‌دهد به سرور DB2 متصل شوند.

یک سرور پایگاه داده DB2 می تواند چندین نسخه از نرم افزار DB2 را با نسخه های مختلف نرم افزار و دایرکتوری های نصب میزبانی کند. چندین نسخه از نرم افزار DB2 ممکن است به طور مستقل در یک سرور قرار داشته باشند، تا زمانی که هیچ تضاد منابع بین آنها وجود نداشته باشد (از جمله منابع محاسباتی سرور کافی و هیچ تضادی بر سر منابع منطقی سیستم عامل: نام شبکه، شماره پورت، فهرست راهنمای سیستم فایل، و غیره در.).

ارائه مستقیم خدمات DBMS توسط مؤلفه مدیر پایگاه داده DB2 (DB2 DBM) ارائه می شود. هر کپی می تواند چندین نمونه از مدیر پایگاه داده DB2 یا به طور خلاصه نمونه های DB2 داشته باشد. یک نمونه یک محیط مستقل است که در آن می توان پایگاه های داده ایجاد کرد و برنامه ها را اجرا کرد. هر نمونه DB2 پیکربندی خاص خود را دارد و دسترسی به مجموعه خاصی از پایگاه های داده را فراهم می کند. نمونه‌های DB2 مستقل هستند به این معنا که اجرای عملیات بر روی یک نمونه بر روی سایر نمونه‌ها تأثیر نمی‌گذارد، به جز محدودیت‌های منابع که با اجرای چندین نمونه بر روی یک سرور فیزیکی یا مجازی ایجاد می‌شوند.

شروع و توقف خدمات DB2 در سطح نمونه انجام می شود، یعنی. هر نمونه DB2 می تواند در حالت در حال اجرا یا توقف باشد. پارامترهای یک نمونه DB2 می‌توانند محدودیت‌های منابع آن را تعیین کنند (مثلاً از نظر استفاده از حافظه). منابع یک نمونه DB2 برای نگهداری پایگاه های داده موجود در نمونه استفاده می شود.

پایگاه داده مجموعه ای از اشیاء است که یک آرایه اطلاعاتی واحد (جدول، نماها، نمایه ها و غیره) را تشکیل می دهند. پایگاه‌های داده موجودیت‌های مستقلی هستند و بر این اساس، معمولاً اشیاء را با پایگاه‌های داده دیگر به اشتراک نمی‌گذارند (یک استثنا ممکن است پیکربندی‌های پایگاه داده توزیع شده باشد که از مکانیزم‌های فدراسیون دسترسی به داده استفاده می‌کنند).

یک مثال شماتیک از ساختار سرور پایگاه داده در شکل نشان داده شده است.


در بسیاری از موارد، سرور پایگاه داده DB2 شامل یک نصب واحد DB2 با یک نمونه ایجاد شده است که به یک پایگاه داده واحد خدمت می کند. با این پیکربندی، تمام منابع سرور پایگاه داده برای اجرای یک پایگاه داده واحد DB2 استفاده می شود.

ارائه درخواست ها از برنامه های متصل در سمت سرور پایگاه داده توسط عوامل به اصطلاح DB2 انجام می شود. برای هر برنامه متصل در یک نمونه DB2، یک عامل هماهنگ کننده (اولیه) شروع می شود که می تواند چندین عامل اضافی (کمکی) را در صورت نیاز راه اندازی کند. از نظر فنی، هر عامل یک رشته اجرا جداگانه یا (برای نسخه‌های قدیمی‌تر DB2) یک فرآیند سیستم‌عامل جداگانه است که منابع مرتبطی برای اجرای آن لازم است.

گزینه های پیکربندی DB2

پیکربندی سرور DB2 را می توان در چهار سطح مختلف تنظیم کرد:

  • متغیرهای محیطی؛
  • رجیستری پروفایل DB2;
  • فایل پیکربندی مدیر پایگاه داده (DBM CFG)؛
  • فایل پیکربندی پایگاه داده (DB CFG).

متغیرهای محیطی در سطح سیستم عامل سرور و با استفاده از سیستم عامل تنظیم می شوند. برای سیستم عامل ویندوز، این متغیرها در واقع برای سرور جهانی هستند، برای سیستم عامل خانواده های یونیکس و لینوکس، تنظیمات متغیر محیطی خاص آنها را می توان برای هر نمونه تنظیم کرد.

تنظیمات رجیستری پروفایل DB2 را می توان در سطح سیستم عامل (در سطح جهانی) یا در سطح نمونه تنظیم کرد، با تنظیمات سطح نمونه بر تنظیمات تنظیم شده در سطح سیستم عامل. مشاهده و تنظیم مقادیر رجیستری پروفایل DB2 با استفاده از دستور db2set انجام می شود.

گزینه های فایل پیکربندی مدیر پایگاه داده در سطح نمونه تعریف می شوند، در حالی که گزینه های پیکربندی پایگاه داده در سطح پایگاه داده تعریف می شوند.

بسیاری از پارامترها پویا هستند، یعنی تغییرات ایجاد شده بلافاصله اعمال می شوند. با این حال، تنظیماتی وجود دارد که شما را ملزم به توقف و شروع به تغییر نمونه می کند. این را می توان در خط فرمان با استفاده از دستورات db2stop و db2start انجام داد. همه برنامه ها باید قبل از توقف نمونه خاموش شوند. شما می توانید از دستور db2stop force برای وادار کردن یک نمونه به توقف استفاده کنید.

فایل پیکربندی مدیر پایگاه داده شامل تنظیماتی است که بر روی نمونه و همه پایگاه داده های موجود در آن تأثیر می گذارد. فایل پیکربندی مدیر پایگاه داده را می توان با استفاده از آن مشاهده یا تغییر داد خط فرمان(با استفاده از دستورات GET DBM CFG و UPDATE DBM CFG)، و همچنین ابزارهای IBM Data Studio.

فایل پیکربندی پایگاه داده شامل گزینه هایی است که بر یک پایگاه داده خاص تأثیر می گذارد. فایل پیکربندی پایگاه داده را می توان با استفاده از خط فرمان (دستورات GET DB CFG و UPDATE DB CFG) و IBM Data Studio مشاهده یا اصلاح کرد.

شرح مفصلی از پشتیبانی شده و همچنین در اسناد رسمی DB2 آورده شده است.

سازماندهی ذخیره سازی داده ها

کوچکترین واحد ذخیره سازی فیزیکی در DB2 است صفحه. اندازه های مجاز صفحه 4K، 8K، 16K و 32K هستند. اطلاعات شی پایگاه داده (مانند ورودی های جدول و ورودی های فهرست) در صفحات قرار می گیرد.

تخصیص فضای اضافی برای ذخیره سازی داده ها توسط گروه هایی از صفحات اختصاص داده می شود که به آنها گفته می شود گستره ها. انجام عملیات تخصیص فضای اضافی در سطح وسعت باعث بهبود عملکرد درج‌ها و به‌روزرسانی‌های رکورد می‌شود.

ذخیره سازی اطلاعات در پایگاه داده های DB2 در اشیایی به نام سازماندهی شده است فضاهای جدول. Tablespace مجموعه ای نامگذاری شده از ظروف برای ذخیره اطلاعات است که در سیستم فایل یک سرور پایگاه داده قرار می گیرد.

برای هر جدول یک یا چند فضای جدول ایجاد می شود. ظروف(فایل ها یا دایرکتوری ها در سیستم فایل) برای ذخیره اطلاعات، و همچنین تنظیم اندازه صفحه و منطقه برای ذخیره داده ها (حوضچه بافر، در زیر) و همچنین تعدادی پارامتر دیگر.

انواع جدول های زیر وجود دارد:

  • معمولی: برای میزبانی جداول و نمایه های کاربر استفاده می شود.
  • بزرگ: برای میزبانی جداول و فهرست های کاربر و همچنین داده های شی بزرگ (LOB) و داده های XML استفاده می شود. در نسخه های مدرن DB2، از جدول های بزرگ به طور پیش فرض به جای موارد معمولی استفاده می شود.
  • موقت: برای ذخیره اطلاعات موقت هنگام اجرای پرس و جوها (فضاهای جدول موقت سیستم) و جداول موقت تعریف شده توسط برنامه ها (فضاهای جدول موقت کاربر) استفاده می شود.

نوع جدول زمانی که ایجاد می شود مشخص می شود و جز با حذف و ایجاد مجدد فضای جدول قابل تغییر نیست.

جدول‌ها را نیز می‌توان بر اساس نوع کنترلی که هنگام ایجاد فضای جدول تنظیم می‌شود طبقه‌بندی کرد:

  • فضاهای جدول مدیریت شده توسط سیستم (SMS، سیستم مدیریت ذخیره سازی) - دایرکتوری ها به عنوان ظروف فضای جدول استفاده می شوند، فایل های داده برای قرار دادن اشیاء ذخیره سازی در فهرست ها ایجاد می شوند. فضا از قبل تخصیص داده نشده است، فایل ها به صورت پویا رشد می کنند. هنگامی که کانتینرها تعریف می شوند، در زمان ایجاد ثابت می شوند.
  • فضاهای جدول مدیریت شده توسط پایگاه داده (DMS، پایگاه داده مدیریت شده ذخیره سازی) - فایل های از پیش تخصیص داده شده به عنوان ظروف فضای جدول استفاده می شود، ظروف را می توان اضافه، حذف یا تغییر داد.
  • فضاهای جدولی با مدیریت خودکار (ذخیره سازی خودکار) - تشخیص خودکار نوع و مکان کانتینر بسته به نوع فضای جدول (DMS برای میزهای معمولی و بزرگ، پیامک برای میزهای موقت). هنگام ایجاد فضای جدول، تعاریف خاصی از کانتینرها مشخص نشده است، کانتینرهای لازم به صورت خودکار ایجاد می شوند. رشد کانتینرهای موجود و افزودن ظروف جدید به طور کامل توسط DB2 کنترل می شود.

برای فعال کردن مدیریت خودکار جدول، ابتدا باید یک پایگاه داده با ذخیره سازی خودکار فعال (که پیش فرض است) ایجاد کنید و مجموعه ای از مسیرهای ذخیره سازی را به آن متصل کنید.

به‌طور پیش‌فرض، DB2 به‌طور متوالی تا وسعت می‌نویسد، و بین کانتینرها «لخت» می‌شود. به عنوان مثال، اگر یک فضای جدول با اندازه صفحه 4 کیلوبایت و اندازه وسعت 8 صفحه دارید و از 3 کانتینر فوری در یک فضای جدول DMS استفاده می کنید، به این معنی است که 32 کیلوبایت داده (4 کیلوبایت x 8 صفحه در حد = 32 کیلوبایت) یک دیسک قبل از شروع ضبط برای بعدی نوشته می شود.

با شروع DB2 نسخه 10.1، یک مفهوم جدید برای ساده سازی مدیریت ذخیره سازی داده ها معرفی شده است. گروه ذخیره سازی(گروه ذخیره سازی). یک گروه ذخیره سازی مجموعه ای نامگذاری شده از مسیرها در سیستم فایل سرور DBMS است که می تواند برای ذخیره داده ها استفاده شود. ترکیب گروه های ذخیره سازی در یک پایگاه داده به طور معمول مجموعه ای از انواع دستگاه های ذخیره سازی موجود برای ذخیره اطلاعات را تعریف می کند. هنگامی که یک پایگاه داده ایجاد می شود، یک گروه ذخیره سازی پیش فرض همیشه به طور خودکار در پایگاه داده ایجاد می شود.

هر فضای جدول مدیریت شده به طور خودکار با یکی از گروه های ذخیره سازی ایجاد شده مرتبط است، که مکان فیزیکی داده های ذخیره شده در فضاهای جدول مربوطه را تعیین می کند. انتقال فضای جدول از یک گروه ذخیره سازی به گروه دیگر با استفاده از دستور ALTER TABLESPACE ... USING STOGROUP ... امکان پذیر است.

ثبت تراکنش ها

IBM DB2 LUW، مانند سایر DBMSهای رابطه‌ای مدرن که ضمانت‌های ACID را ارائه می‌کنند، از گزارش تراکنش به عنوان یکی از مکانیسم‌های اولیه برای اجرای این الزامات استفاده می‌کند.

عملیات اصلاح داده‌ها که توسط DB2 انجام می‌شود در گزارش تراکنش به عنوان یک سری از ورودی‌های گزارش ثبت می‌شوند. هر پایگاه داده گزارش تراکنش خود را که دنباله ای از فایل ها روی دیسک است، نگهداری می کند. اندازه یک فایل با پارامتر LOGFILSIZ تعیین می شود، تعداد فایل های اولیه ایجاد شده توسط پارامتر LOGPRIMARY تعیین می شود. در صورت لزوم، DB2 می تواند ایجاد کند فایل های اضافی log، حداکثر تعداد فایل های ایجاد شده توسط پارامتر LOGSECOND کنترل می شود.

اطلاعات با استفاده از یک بافر ویژه در RAM در لاگ تراکنش ها نوشته می شود. محتویات بافر در هنگام پر شدن بافر و همچنین زمانی که تراکنش ها تایید یا لغو می شوند (با دستور برنامه یا بسته شدن غیرعادی ارتباط با برنامه) روی دیسک (به فایل های گزارش تراکنش) ریخته می شود.

فایل گزارش تراکنش که برای بازیابی اطلاعات پس از خرابی لازم است، فایل گزارش فعال نامیده می شود. فایل های گزارش تراکنش فعال باید همیشه در دسترس مدیر پایگاه داده DB2 باشد. از آنجایی که در دسترس بودن فایل‌های گزارش تراکنش برای اطمینان از عملکرد DBMS حیاتی است، مکانیزمی برای انعکاس گزارش‌های تراکنش به دو صورت ارائه شده است. سیستم های فایل(قابل تنظیم با پارامتر LOGMIRROR).

اگر اندازه و تعداد فایل‌های گزارش تراکنش را اشتباه انتخاب کنید که با سطح بار فعلی مطابقت ندارد، ممکن است به دلیل تعداد ناکافی فایل‌های گزارش اجازه ایجاد یا عدم وجود مواردی از سرریز گزارش تراکنش وجود داشته باشد. در دسترس فضای دیسک. بسته به تنظیمات پایگاه داده (به پارامتر BLK_LOG_DSK_FUL مراجعه کنید)، ممکن است یک پیغام خطای مناسب به برنامه ها برگردانده شود، یا پردازش ممکن است تا زمانی که وضعیت توسط مدیر حل شود به حالت تعلیق درآید.

همچنین، موقعیت‌های سرریز گزارش تراکنش زمانی رخ می‌دهد که تراکنش‌های طولانی‌مدتی وجود داشته باشند که عملیات اصلاح داده‌ها را انجام می‌دهند. حتی اگر چنین تراکنش طولانی‌مدتی یک تغییر پایگاه داده کوچک و واحد ایجاد کند که پس از آن برای مدت طولانی غیرمتعهد بماند، فایل گزارش تراکنش مربوطه فعال باقی می‌ماند و قابل استفاده مجدد نیست.

دو حالت اصلی عملیات برای ثبت تراکنش DB2 وجود دارد: ثبت نام دایره ای و ثبت بایگانی. در حالت ورود به سیستم دایره‌ای، DB2 در میان مجموعه‌ای از فایل‌های گزارش تراکنشی ایجاد شده چرخه می‌زند. در حالت ثبت بایگانی، DB2 به صورت اختیاری فایل‌های گزارش تراکنش را با استفاده از روش‌های مشخص شده توسط پارامترهای LOGARCHMETH1 و LOGARCHMETH2 در بایگانی کپی می‌کند.

حالت logging دایره ای، بازیابی یکپارچگی پایگاه داده را در صورت خرابی سرور DBMS تضمین می کند. پشتیبان گیری از چنین پایگاه داده ای تنها پس از خاموش کردن همه برنامه ها (یعنی با تعلیق دسترسی کاربر) امکان پذیر است. بازیابی اطلاعات از پشتیبان گیریتنها با آوردن پایگاه داده به وضعیت در زمان پشتیبان گیری امکان پذیر است.

حالت ثبت بایگانی همچنین تضمین می کند که در صورت خرابی سرور DBMS، یکپارچگی پایگاه داده بازیابی می شود. علاوه بر این، می‌توانید از پایگاه داده بدون قطع دسترسی کاربر نسخه پشتیبان تهیه کنید و فایل‌های گزارش فعال (که برای بازیابی یکپارچگی داده‌ها لازم است) را در نسخه پشتیبان قرار دهید. بازیابی داده ها از یک نسخه پشتیبان را می توان با اعمال تغییرات ایجاد شده در پایگاه داده از زمان تهیه نسخه پشتیبان و آوردن پایگاه داده به وضعیتی در یک نقطه از زمان انتخاب شده در گذشته (اما نه زودتر از زمان تهیه نسخه پشتیبان) تکمیل کرد.

حالت ثبت بایگانی به منابع اضافی برای انجام عملیات بایگانی نیاز دارد، از جمله افزایش I/O و فضای دیسک اضافی برای ذخیره فایل‌های گزارش تراکنش بایگانی‌شده.

سازماندهی کش داده ها

برای کاهش میزان ورودی/خروجی انجام شده، DB2، مانند سایر سیستم های پایگاه داده رابطه ای مدرن، خواندن و نوشتن را در حافظه پنهان روی جدول های فضایی انجام می دهد. ذخیره سازی با استفاده از مناطقی از RAM به نام بافر pool انجام می شود. DB2 می تواند چندین بافر Pool مختلف (که توسط دستور CREATE BUFFERPOOL ایجاد شده است) با اندازه صفحه، اندازه و پرچم کنترل اندازه خودکار تعریف کند. هر فضای جدول به یک حوضچه بافر خاص نگاشت می شود و یک حوضچه بافر می تواند در چندین فضای جدول به اشتراک گذاشته شود.

هنگام انجام یک عملیات خواندن، ابتدا صفحه مورد نظر را با داده های موجود در مخزن بافر جستجو می کند. اگر صفحه مورد نیاز پیدا شود، داده ها از مخزن بافر خوانده می شود، در غیر این صورت صفحه از دیسک به مخزن بافر بارگذاری می شود. زمانی که ماهیت خطی (قابل پیش‌بینی) دسترسی‌های صفحه تشخیص داده می‌شود، مکانیزمی برای واکشی ناهمزمان از قبل صفحات در مخزن بافر ارائه می‌شود. مکانیسم پیش واکشی در بسیاری از موارد با انجام خواندن در حالت ناهمزمان، زمان انتظار برای عملیات خواندن داده های لازم از دیسک را کاهش می دهد.

هنگامی که یک عملیات نوشتن انجام می شود، تنظیم صفحه مستقیماً در مخزن بافر انجام می شود. در این حالت، صفحه در حالت همزمان روی دیسک نوشته نمی‌شود و ایمنی داده‌ها توسط مکانیزم ثبت تراکنش تضمین می‌شود. صفحات فضای جدول تغییر یافته به صورت ناهمزمان و در پس‌زمینه روی دیسک نوشته می‌شوند و میزان کاری را که ممکن است برای بازگرداندن وضعیت پایگاه داده به‌طور غیرعادی (نادرست) بسته شود، به حداقل می‌رساند. بستن پایگاه داده به درستی (به عنوان مثال، در هنگام خاموش شدن منظم سرور DBMS) تضمین می کند که تمام صفحات تغییر یافته از تمام مخزن های بافر روی دیسک نوشته می شوند.

استفاده از رم

مدل حافظه DB2 شامل مناطق مختلفحافظه در سطوح نمونه، پایگاه داده، برنامه و عامل DB2.

برای توضیح دقیق مناطق ذخیره سازی DB2، به زیر مراجعه کنید توضیح کوتاهانتصاب مناطق مختلف

لیستی از مناطق اصلی ذخیره سازی DB2 در شکل زیر نشان داده شده است (در اصل از ) گرفته شده است.

کل حافظه مورد استفاده توسط نمونه DBMS شامل موارد زیر است:

  • مانیتور Heap - منطقه حافظه برای نظارت بر عملیات و وضعیت، اندازه توسط پارامتر MON_HEAP_SZ تنظیم می شود.
  • بافرهای FCM - یک منطقه حافظه برای تعامل بین عامل هماهنگ کننده و عوامل فرعی آن، و همچنین برای ارائه تعاملات داخلی در پایگاه داده های پارتیشن بندی شده.
  • بافر حسابرسی یک ناحیه حافظه است که سوابق ممیزی قبل از شستشو در گزارش حسابرسی در آن قرار می گیرند.

در سطح پایگاه داده، مرسوم است که بین:

  • یک منطقه پایگاه داده جهانی، که اغلب به عنوان منطقه "حافظه عملکرد" ​​نامیده می شود، که شامل مناطق مختلف ذخیره سازی و یک منطقه قفل است.
  • یک منطقه داده برنامه، که اغلب به عنوان "حافظه عملکردی" شناخته می شود، که شامل مناطق مختلف حافظه کاری عواملی است که اتصالات پایگاه داده را سرویس می کنند.

منطقه پایگاه داده جهانی از اجزای اصلی زیر تشکیل شده است:

  • حوضچه های بافر - حوضچه های بافر، i.e. مناطقی برای ذخیره داده های فضای جدول.
  • لیست قفل - منطقه ای برای ذخیره اطلاعات در مورد قفل ها که اندازه آن توسط پارامتر LOCKLIST کنترل می شود.
  • کش بسته - ناحیه ای برای کش کردن برنامه های اجرای پرس و جو، اندازه توسط پارامتر PCKCACHESZ تنظیم می شود.
  • حافظه پنهان کاتالوگ - منطقه ای برای ذخیره کاتالوگ سیستم، که شامل توضیحات تمام اشیاء پایگاه داده است، اندازه توسط پارامتر CATALOGCACHE_SZ تنظیم می شود.
  • پشته ابزار - RAM برای انجام عملیات نگهداری پایگاه داده (از جمله عملیات پشتیبان گیری و بازیابی)، اندازه توسط پارامتر UTIL_HEAP_SZ تنظیم می شود.
  • پشته پایگاه داده - رم برای سرویس دهی به عملیات پایگاه داده (شامل بافر گزارش تراکنش و حافظه نهان برای سرعت بخشیدن به دسترسی به کاتالوگ سیستم و همچنین بافر ممیزی در سطح پایگاه داده)، اندازه توسط پارامتر DBHEAP تنظیم می شود.

اندازه کل منطقه پایگاه داده جهانی توسط تنظیم DATABASE_MEMORY محدود شده است.

منطقه داده های برنامه شامل:

  • Application Global Memory - مناطق حافظه مشترک که هنگام پردازش درخواست های برنامه به اشتراک گذاشته می شود، حداکثر مقدار توسط پارامتر APPL_MEMORY تنظیم می شود.
  • Agent Private Memory - قسمت‌های حافظه خصوصی که برای عملکرد عامل‌های مجزا که برنامه‌های متصل را ارائه می‌کنند، استفاده می‌شود.

به صورت اختیاری، می توانید مناطقی از حافظه را که به درایور DB2 اختصاص داده شده است را اختصاص دهید تا در سمت برنامه اجرا شود. برای برنامه های محلی (آنهایی که برای اتصال به مدیر پایگاه داده به جای دسترسی به شبکه از IPC استفاده می کنند)، تنظیمات DB2 که تنظیم می کنید میزان RAM تخصیص یافته را کنترل می کنند (در درجه اول تنظیمات ASLHEAPSZ).

مدیریت RAM هنگام انجام عملیات مرتب سازی

بسیاری از انواع عملیات DBMS به مرتب سازی داده ها نیاز دارند، بنابراین مدیریت RAM مورد استفاده برای مرتب سازی توجه ویژه ای دارد.

اگر تخصیص کامل ناحیه مرتب سازی در RAM غیرممکن باشد، داده های مرتب سازی در فضای جدول موقت سیستم قرار می گیرند. عملکرد پرس و جوهایی که به چنین عملیات مرتب سازی بزرگی نیاز دارند می تواند به میزان قابل توجهی کاهش یابد.

پارامترهایی که تخصیص RAM را برای مرتب سازی کنترل می کنند:

  • SORTHEAP - محدودیت حافظه برای عملیات مرتب سازی.
  • SHEAPTHRES - محدودیت اندازه حافظه خصوصی عامل که برای عملیات مرتب سازی اختصاص داده شده است.
  • SHEAPTHRES_SHR - محدودیت در مقدار کل RAM که می تواند برای انجام عملیات مرتب سازی (در کل توسط همه مصرف کنندگان) در هر زمان معین استفاده شود.

DB2 از سه مدل اصلی مدیریت حافظه مرتب سازی پشتیبانی می کند:

  • مدل مرتب‌سازی مشترک (مرتب‌سازی مشترک) - به‌طور پیش‌فرض استفاده می‌شود، به معنای تنظیم پارامتر SHEAPTHRES روی 0 است. تخصیص RAM برای مرتب‌سازی از ناحیه جهانی پایگاه داده انجام می‌شود.
  • مدل منطقه مرتب‌سازی خصوصی (مرتب‌سازی خصوصی) - زمانی استفاده می‌شود که پارامتر SHEAPTHRES غیر صفر باشد و هیچ پیکربندی نشده باشد. حافظه مشترکمرتب سازی. تخصیص RAM برای مرتب سازی از ناحیه داده های برنامه (به طور دقیق تر، از مناطق خصوصی متعلق به عوامل) انجام می شود.
  • مدل مرتب‌سازی ترکیبی (مرتب‌سازی ترکیبی) - زمانی استفاده می‌شود که پارامتر SHEAPTHRES غیر صفر باشد و یک حافظه مرتب‌سازی مشترک پیکربندی شده وجود داشته باشد. عملیاتی که نیاز به استفاده از حافظه مرتب سازی مشترک دارند با تخصیص حافظه در منطقه جهانی پایگاه داده انجام می شود، سایر عملیات مرتب سازی با تخصیص حافظه در مناطق خصوصی عوامل انجام می شود.

استفاده از حافظه مشترک (جهانی) برای انجام عملیات مرتب سازی تعدادی از مزایای مهم را به همراه دارد:

  • مدیریت انعطاف پذیرتر RAM هنگام اجرای پرس و جوها، به شما امکان می دهد کارایی استفاده از RAM را افزایش دهید.
  • امکان استفاده از یک نسخه موازی از الگوریتم مرتب سازی به دلیل دسترسی همزمان به منطقه حافظه مرتب سازی عامل هماهنگ کننده و عوامل فرعی DB2 تابع آن.

یکی از تنظیمات زیر می تواند برای فعال کردن استفاده از حافظه مشترک هنگام انجام عملیات مرتب سازی استفاده شود:

  • مدل منطقه مرتب‌سازی عمومی با تنظیم پارامتر SHEAPTHRES روی 0 فعال می‌شود.
  • موازی اجرای عملیات با تنظیم پارامتر INTRA_PARALLEL بر روی YES فعال می شود.
  • متغیر DB2_WORKLOAD روی ANALYTICS تنظیم شده است.
  • ویژگی DB2 Connection Concentrator فعال است (معمولاً هنگام دسترسی به DB2 برای z/OS و DB2 برای i پایگاه داده استفاده می شود، به توضیحات این ویژگی در ) مراجعه کنید.

مدیریت تخصیص خودکار حافظه

وجود تعداد زیادی از مناطق مختلف RAM و پارامترهایی که اندازه آنها را کنترل می کنند می تواند به تلاش قابل توجهی برای تنظیم دستی سرور DB2 نیاز داشته باشد. بنابراین، با شروع نسخه 9، IBM DB2 از مدیریت خودکار توزیع RAM بین مناطق مختلف با استفاده از یک مدیر حافظه خود تنظیم (STMM، Self-Tuning Memory Manager) پشتیبانی می کند.

هنگامی که بوت استرپ فعال است، STMM به صورت پویا منابع حافظه موجود را به مصرف کنندگان حافظه در پایگاه داده اختصاص می دهد. STMM با تنظیم مقادیر پارامترهای پیکربندی حافظه و اندازه مخزن‌های بافر برای بهینه‌سازی عملکرد، به تغییرات در ویژگی‌های بار کاری پاسخ می‌دهد. برای فعال کردن STMM، باید پارامتر پیکربندی پایگاه داده SELF_TUNING_MEM را روی ON تنظیم کنید.

مدیریت خودکار تخصیص حافظه برای مناطقی از حافظه انجام می شود که به صراحت برای آنها مجاز بود. هنگام تنظیم یک مقدار پارامتر پیکربندی با دستورات UPDATE DBM CFG و UPDATE DB CFG، برای استفاده از STMM، کلمه کلیدی AUTOMATIC بعد از مقدار پارامتر مشخص می شود. مقدار عددی پارامتر مشخص شده در این مورد به عنوان مقدار اولیه استفاده می شود، سپس STMM به طور دوره ای مقادیر را با در نظر گرفتن بار فعلی تنظیم می کند و RAM را بین مصرف کنندگان مختلف توزیع می کند.

مدیریت خودکار STMM برای گزینه های زیر پشتیبانی می شود:

  • INSTANCE_MEMORY کل مقدار RAM در نمونه DB2 است.
  • DATABASE_MEMORY - مناطق پایگاه داده جهانی.
  • DBHEAP - منطقه ای برای سرویس دهی به عملیات پایگاه داده.
  • LOCKLIST - محدوده ای برای نگهداری داده ها روی قفل ها.
  • MAXLOCKS - درصد حافظه اشغال شده توسط قفل های یک برنامه برای تغییر به افزایش قفل.
  • PCKCACHESZ - منطقه ذخیره سازی برای طرح های اجرای پرس و جو.
  • SHEAPTHRES_SHR - منطقه مرتب سازی عمومی؛
  • SORTHEAP - مرتب سازی اندازه منطقه برای یک عملیات.
  • APPL_MEMORY - منطقه حافظه عملکردی؛
  • APPLHEAPSZ - محدودیت حافظه خصوصی که توسط یک عامل استفاده می شود.
  • STMTHEAP - محدودیت در اندازه منطقه مورد استفاده توسط کامپایلر پرس و جوهای SQL و XQuery (در هر پرس و جو)؛
  • STAT_HEAP_SZ حداکثر مقدار RAM است که برای آمار ساختمان توسط ابزار RUNSTATS تخصیص داده می شود و از ناحیه حافظه عملکردی تخصیص می یابد.

انواع اشیاء پایگاه داده

این بخش یک نمای کلی از انواع اشیاء پایگاه داده DB2 ارائه می دهد. برای لیست کامل انواع شی پایگاه داده DB2 و اطلاعات دقیق در مورد هر نوع شی، به مستندات DB2 مراجعه کنید:

طرح

طرحواره ها فضای نامی برای جمع آوری اشیاء پایگاه داده هستند. طرح ها عمدتاً برای موارد زیر استفاده می شوند:

  • ارائه نشانی از مالکیت اشیاء یا پیوندهایی به برنامه؛
  • گروه بندی منطقی اشیاء مرتبط

تمام اشیاء پایگاه داده DB2 (به جز مترادف های عمومی) دارای نام های دو بخشی کاملا واجد شرایط هستند. schema اولین قسمت از چنین نامی است:<имя_схемы>.<имя_объекта>

نام شی کاملا واجد شرایط باید منحصر به فرد باشد. اگر به یک پایگاه داده متصل شوید و یک شی را بدون تعیین طرحواره ایجاد کنید یا به آن دسترسی پیدا کنید، DB2 از شناسه کاربری که اتصال به پایگاه داده را ایجاد کرده است به عنوان نام طرحواره استفاده می کند. همچنین می توانید از دستور SET SCHEMA برای تنظیم طرح برای جلسه جاری استفاده کنید.

ایجاد طرحواره می تواند به طور صریح، با فراخوانی عبارت CREATE SCHEMA، یا به طور ضمنی، در اولین تلاش برای ایجاد یک شی بدون تعیین نام طرحواره انجام شود. در مورد دوم، کاربر باید مجوز IMPLICIT_SCHEMA برای ایجاد موفقیت آمیز طرحواره را داشته باشد.

مترادف ها را می توان برای بسیاری از انواع اشیاء پایگاه داده ایجاد کرد، که به اشیاء اصلی اجازه می دهد با نام دیگری ارجاع داده شوند (شاید در طرحی متفاوت قرار داده شوند). مترادف ها با استفاده از عبارت CREATE SYNONYM / CREATE ALIAS ایجاد می شوند. همچنین از کار با مترادف های عمومی که به یک طرح واره خاص مرتبط نیستند، پشتیبانی می کند. دسترسی به مترادف های عمومی بدون تعیین طرح، صرف نظر از طرح فعلی تعیین شده جلسه، انجام می شود. مترادف های عمومی با استفاده از دستور CREATE PUBLIC SYNONYM / CREATE PUBLIC ALIAS ایجاد می شوند.

جداول

جدول مجموعه ای از داده های مرتبط است که به صورت منطقی در ستون ها و ردیف ها سازماندهی شده اند.

هر ردیف جدول از همان مجموعه ای از ستون های نامگذاری شده تشکیل شده است. هنگام ایجاد یک جدول، به هر ستون یک نوع داده اختصاص داده می شود که مقادیر مجاز ستون را در ردیف های جدول (سوابق پایگاه داده) محدود می کند و معنای عملیات ممکن را بر روی مقادیر مربوطه (از جمله مقایسه، مرتب سازی، عملیات محاسباتی) تعیین می کند.

یک جدول با دستور CREATE TABLE ایجاد می شود و با دستور DROP TABLE حذف می شود. برای تغییر توضیحات جدول با دستور ALTER TABLE، از جمله افزودن و حذف ستون‌ها، تغییر انواع داده‌های ستون‌ها، پشتیبانی می‌شود. پس از انجام برخی عملیات تغییر توضیحات جدول، لازم است با استفاده از دستور REORG، آن را سازماندهی مجدد کنید (تغییر ساختار ذخیره سازی فیزیکی جدول برای دسترسی بهینه به آن).

طبقه بندی انواع داده های داخلی DB2 که می توانند برای تعریف ستون های جدول استفاده شوند در شکل زیر نشان داده شده است.

علاوه بر یکی از مقادیر مجازنوع داده پشتیبانی شده، مقادیر ستون می تواند خالی باشد، به عنوان مثال. مقدار خالی (NULL) توانایی یک ستون برای ذخیره مقادیر تهی هنگام ایجاد جدول تعیین می شود.

بیشتر انواع داده های فهرست شده در شکل مشابه مستقیمی در سایر DBMS های رابطه ای مدرن دارند و در مستندات DB2 به تفصیل توضیح داده شده اند. در زیر شرح مختصری از ویژگی های نوع داده است که مختص DB2 هستند یا ممکن است استفاده از آنها دشوار باشد.

هنگام کار با داده های رشته ای، بر خلاف سایر انواع DBMS، DB2 بین یک رشته خالی (رشته با طول صفر) و یک مقدار NULL از نوع رشته تمایز قائل می شود. این ویژگی بر ترتیب جستجو (با استفاده از گزاره برابری به جای عبارت IS NULL) و ترکیب مقادیر مجاز ستون تأثیر می گذارد (اگر مقادیر NULL ممنوع باشد، یک رشته خالی می تواند در ستون ذخیره شود).

مقادیر رشته انواع GRAPHIC، VARGRAPHIC و DBCLOB با سایر انواع رشته ها متفاوت است زیرا همیشه در رمزگذاری UTF-16 ذخیره می شوند. هنگام دسترسی به ستون های مربوطه از سمت برنامه مشتری، DBMS تبدیل داده ها به رمزگذاری مورد استفاده توسط برنامه مشتری را فراهم می کند.

ستون های نوع DATE (تاریخ) به طور پیش فرض حاوی مهر زمانی نیستند. در حالت سازگاری با پایگاه داده اوراکل، DB2 علاوه بر این از ذخیره ویژگی های زمان (ساعت، دقیقه، ثانیه) در ستون های DATE پشتیبانی می کند.

اگر نیاز دارید که با اعداد اعشاری دقیق که شامل یک قسمت کسری است (به عنوان مثال، در برنامه های مالی) کارآمد کار کنید، توصیه می شود از نوع داده DECFLOAT استفاده کنید که نمایش دقیق مقادیر اعشاری و توانایی محاسبه کارآمد را ترکیب می کند. مقادیر از نوع FLOAT

نوع داده BLOB امکان ذخیره اطلاعات باینری بدون ساختار (مانند تصاویر یا اسناد اداری) را در پایگاه داده فراهم می کند. مقادیر BLOB را می توان همراه با سایر فیلدهای رکورد (در صورتی که اندازه آنها به اندازه کافی فشرده باشند) یا به طور جداگانه در یک شی ذخیره سازی ویژه ذخیره می شوند. در مورد دوم، ورودی حاوی ارجاع به مقدار BLOB ذخیره شده به جای خود مقدار است. ذخیره سازی مقادیر انواع CLOB و DBCLOB به روشی مشابه سازماندهی شده است.

نوع داده XML ذخیره سازی را در فیلدهای جدول اسناد XML سلسله مراتبی ساخت یافته فراهم می کند. برای اسناد XML ذخیره شده، عملیات دسترسی به ویژگی (بدون نیاز به تجزیه سند XML هنگام دسترسی)، نمایه سازی ویژگی های فردی و سایر ویژگی ها پشتیبانی می شود.

علاوه بر انواع داده های داخلی، DB2 از انواع داده های تعریف شده توسط کاربر پشتیبانی می کند که بر اساس انواع داخلی تعریف شده اند. کار با انواع داده های تعریف شده توسط کاربر در مستندات DB2 توضیح داده شده است.

هنگام ایجاد جدول، می توان قوانینی را برای پر کردن خودکار مقادیر آنها برای ستون ها مشخص کرد. یک مورد خاص از ستون‌های تکمیل خودکار، ستون‌های هویت هستند، که ستون‌های عددی هستند که به‌طور خودکار یک مقدار عددی منحصربه‌فرد برای هر ردیف درج شده ایجاد می‌کنند. پر کردن خودکار را می توان در یکی از دو حالت انجام داد:

  • GENERATED ALWAYS - مقدار همیشه توسط سرور DB2 تنظیم می شود و نمی تواند به صراحت توسط برنامه تنظیم شود.
  • GENERATED BY DEFAULT - این مقدار توسط سرور DB2 تنظیم می شود اگر برنامه یک مقدار انتساب صریح را هنگام درج رکورد مشخص نکرده باشد.

همچنین در سطح جدول محدودیت هایی را می توان تعریف کرد که محدودیت هایی را در ترکیب مقادیر ویژگی ها تعیین می کند. انواع محدودیت های زیر پشتیبانی می شوند:

  • کلید اولیه (PRIMARY KEY) - محدودیت منحصر به فرد در مجموعه ای از ستون ها، که عمدتا برای جستجوی یک رکورد استفاده می شود، تنها می تواند یک کلید اصلی در جدول وجود داشته باشد.
  • محدودیت منحصر به فرد (UNIQUE) - محدودیت منحصر به فرد اضافی در مجموعه ای از ستون ها.
  • کلید خارجی (کلید خارجی) - مرجعی در قالب مجموعه ای از مقادیر ستون که به ترکیبی از ستون های جدول دیگری اشاره می کند که برای آن یک کلید خارجی یا محدودیت منحصر به فرد تعریف شده است.
  • چک (CHECK) - یک شرط منطقی که محدود می کند مقادیر ممکنیک یا چند ستون در یک پست

مکانیسم محدودیت ابزارهایی را برای کنترل خودکار و اطمینان از یکپارچگی پایگاه داده، از جمله یکپارچگی ارجاعی داده ها (کنترل حضور در جدول "والد" رکوردهایی که از طریق کلیدهای خارجی سوابق جداول "فرزند" ارجاع می شوند) اجرا می کند. استفاده مناسب از محدودیت ها به شما امکان می دهد صحت رسمی پر کردن پایگاه داده را تضمین کنید و تا حدی از خود در برابر خطاهای برنامه و کاربر هنگام تصحیح داده ها محافظت کنید.

از آنجایی که مکانیسم محدودیت در هنگام وارد کردن و به روز رسانی داده ها بار محاسباتی اضافی ایجاد می کند، در برخی موارد استفاده از آن عمدا کنار گذاشته می شود و مسئولیت نگهداری صحیح پایگاه داده را بر عهده برنامه می گذارد. در عین حال، DB2 از توضیحات محدودیت یکپارچگی برای تعیین روابط بین جداول و انتخاب کارآمدترین طرح اجرای پرس و جو استفاده می کند.

میزهای موقت

برای ذخیره داده‌های موقت برنامه، DB2 مکانیزم جدول موقتی را ارائه می‌کند که عملکرد کاملی را برای کار با داده‌های جدولی ارائه می‌کند، اما در چارچوب جلسه کاربر فعلی.

دسترسی به جداول موقت با به حداقل رساندن یا حذف تضادهای دسترسی کاتالوگ سیستم، و با حذف قفل ردیف، ورود به سیستم (اختیاری، بسته به حالت ایجاد جدول)، و بررسی مجوز، عملکرد را تا حد زیادی بهبود می بخشد.

جداول موقت از ایندکس ها نیز پشتیبانی می کنند، یعنی هر شاخص استانداردی را می توان روی یک جدول موقت ایجاد کرد. همچنین می توانید آماری از این جداول (با استفاده از دستور RUNSTATS) برای به دست آوردن اطلاعات مورد نیاز بهینه ساز پرس و جو جمع آوری کنید.

جداول موقت در یک فضای جدول موقت کاربر قرار دارند که باید قبل از ایجاد آنها تعریف شود.

دو نوع اصلی جداول موقت در DB2 وجود دارد:

  • جداول موقت اعلام شده (DGTT - Declared Global Temporary Tables)؛
  • جداول موقت جهانی (CGTT - Created Global Temporary Tables) ایجاد کرد.

جداول موقت اعلام شده، جداول درون حافظه ای هستند که توسط یک برنامه استفاده می شوند و با پایان یافتن به طور خودکار حذف می شوند. چنین جداول فقط توسط برنامه ای که آنها را ایجاد کرده است قابل دسترسی است و در هیچ یک از جداول کاتالوگ سیستم DB2 ذخیره نمی شوند.

هر جدول موقت اعلام شده دارای یک طرح SESSION است. این طرح باید با مراجعه به آن مشخص شود. شناسه کاربری مورد استفاده برای اعلام جداول موقت دارای امتیازات کامل در آن جداول خواهد بود. هر برنامه‌ای که یک جدول موقت را اعلام می‌کند، نسخه‌ای از آن جدول خواهد داشت.

در حالی که DGTT ها به شما امکان می دهند یک جدول موقت را اعلام کنید، تعریف چنین جدولی را نمی توان در بین اتصالات یا جلسات به اشتراک گذاشت. هر بار که جلسه ای را شروع می کنید، باید یک بیانیه جدول موقت جهانی اعلام کنید.

هنگام استفاده از جداول موقت جهانی تولید شده (CGTT)، تعریف جدول موقت فقط باید یک بار ایجاد شود زیرا در کاتالوگ سیستم DB2 ذخیره می شود. این بدان معنی است که سایر اتصالات می توانند به جای ایجاد دوباره از تعریف جدول استفاده کنند.

اگرچه ساختار جدول CGTT می تواند بلافاصله مورد استفاده قرار گیرد، داده های اتصالات مختلف مستقل از یکدیگر هستند و با بسته شدن اتصال ناپدید می شوند.

شاخص ها

شاخص مجموعه ای مرتب از کلیدها است که هر کدام به یک ردیف جدول اشاره می کنند. ایندکس ها منحصر به فرد بودن ردیف را اعمال می کنند (یعنی محدودیت های منحصر به فرد مورد بحث در بخش قبل را پیاده سازی می کنند) و عملکرد را بهبود می بخشند. موارد زیر برخی از ویژگی هایی را که می توان برای شاخص ها تعریف کرد شرح می دهد:

  • ایندکس ها را می توان به ترتیب صعودی یا نزولی مقادیر ستون ساخت.
  • کلیدهای فهرست می توانند منحصر به فرد یا غیر منحصر به فرد باشند.
  • شاخص ها را می توان بر روی چندین ستون ساخت (این شاخص ها ترکیبی نامیده می شوند).
  • اگر داده‌های فهرست و جدول در یک توالی شاخص گروه‌بندی شوند، چنین شاخصی را خوشه‌بندی می‌کنند (CLUSTERED INDEX).

ایجاد ایندکس با دستور CREATE INDEX، حذف توسط عبارت DROP INDEX ارائه می شود. هنگام ایجاد یک شاخص، نوع آن (یکتا / غیر منحصر به فرد) و ترکیب ستون های ساخت ایندکس مشخص می شود.

DB2 ابزارهایی را فراهم می کند که انتخاب شاخص خودکار را برای بهینه سازی اجرای پرس و جو فراهم می کند. راحت ترین روش کار با این ابزارها در IBM Data Studio سازماندهی شده است.

دنباله ها

اگرچه اشیاء دنباله مستقل از جداول هستند، اما عملکرد مشابهی با ستون های هویت دارند و تولید دنباله های عددی منحصر به فرد را ارائه می دهند. تفاوت بین دنباله ها و ستون های هویت در این است که ستون های هویت دقیقاً در ستون مشخص شده جدول اعداد منحصر به فرد تولید می کنند، در حالی که اشیاء دنباله می توانند برای تولید مقادیر عددی متوالی استفاده شوند که منطق آنها توسط برنامه تعیین می شود.

ایجاد توالی با دستور CREATE SEQUENCE ارائه می شود، مقادیر دریافتی بعدی و فعلی با استفاده از عملگرهای NEXT VALUE FOR و PREVIOUS VALUE FOR قابل دسترسی هستند. برای سازگاری با پایگاه داده Oracle، نحو برای دسترسی به مقادیر دنباله از طریق شبه ستون های "NEXTVAL" و "CURRVAL" نیز پشتیبانی می شود.

نمایندگی

View نمایش داده ها در جداول است. داده‌های نماها به طور جداگانه ذخیره نمی‌شوند، زمانی که نما اجرا می‌شود واکشی می‌شوند. نماهای تودرتو پشتیبانی می شوند، یعنی نماهایی که از نماهای دیگر ایجاد شده اند.

نماها با دستور CREATE VIEW ایجاد می شوند و با دستور DROP VIEW حذف می شوند. برای تسهیل به‌روزرسانی (جایگزینی) نماها، دستور CREATE OR REPLACE VIEW ارائه شده است که ایجاد یک نمای جدید (اگر قبلاً وجود نداشته باشد) یا جایگزینی یک نمای موجود با یک تعریف جدید (اگر نمای با نام مشخص شده قبلا ایجاد شده است).

باعث می شود

تریگر شی ای است که به طور خودکار عملیاتی را روی جدول یا نما انجام می دهد. یک عمل خاص بر روی یک شی که یک ماشه برای آن تعریف شده است باعث شلیک ماشه می شود. به طور معمول، یک ماشه یک شی برنامه در نظر گرفته نمی شود. بر این اساس، تریگرها معمولا نه توسط توسعه دهندگان، بلکه توسط مدیران پایگاه داده ایجاد می شوند.

رویه ها و عملکردهای ذخیره شده

رویه های ذخیره شده، اشیای پایگاه داده هستند که حاوی عبارات SQL و منطق تجاری هستند. ذخیره برخی از منطق برنامه در پایگاه داده با کاهش میزان ترافیک بین برنامه و پایگاه داده عملکرد را بهبود می بخشد. علاوه بر این، رویه های ذخیره شده یک مکان مرکزی برای ذخیره سازی فراهم می کند کد برنامه، و بر این اساس، سایر برنامه ها می توانند از همان رویه های ذخیره شده استفاده کنند. دستور CALL برای فراخوانی یک رویه ذخیره شده استفاده می شود.

توابع تعریف شده توسط کاربر (UDF) اشیاء پایگاه داده ای هستند که به کاربران اجازه می دهند زبان SQL را با منطق خود گسترش دهند. یک تابع همیشه یک مقدار یا مقادیر را برمی گرداند، معمولاً در نتیجه منطق تجاری موجود در تابع. برای فراخوانی یک تابع، از آن به عنوان بخشی از یک دستور SQL یا با یک دستور VALUES استفاده کنید.

در DB2، رویه های ذخیره شده و توابع تعریف شده توسط کاربر را می توان در چندین زبان برنامه نویسی، از جمله PL/SQL، SQL PL، Java، C، C++، COBOL توسعه داد.

دایرکتوری سیستم

یکی از اساسی منابع اطلاعات DBMS یک کاتالوگ سیستمی است که اطلاعات مربوط به ساختار پایگاه داده را ذخیره می کند و دسترسی به آنها را فراهم می کند، از جمله:

  • شرح جداول، ستون ها و نمایه ها؛
  • شرح و متن نماها، محرک ها و رویه های ذخیره شده؛
  • اطلاعات در مورد جدول ها و ظروف برای ذخیره داده ها؛
  • مجوزهای ایجاد شده برای دسترسی به اشیاء پایگاه داده.
  • سایر اطلاعات متا پایگاه داده

دسترسی به کاتالوگ سیستم برای بسیاری از کارها، از جمله خودکارسازی وظایف مدیریت پایگاه داده و تعمیر و نگهداری، توسعه اپلیکیشن و موارد دیگر مورد نیاز است.

پرکاربردترین جداول (واقعاً، نماها) که بخشی از کاتالوگ سیستم هستند عبارتند از:

  • SYSCAT.SCHEMAS - شرح طرحواره های پایگاه داده.
  • SYSCAT.TABLES - شرح جداول پایگاه داده.
  • SYSCAT.COLUMNS - شرح ستون های جدول.
  • SYSCAT.INDEXES - شرح شاخص ها.

شرح مفصل و ترکیب ستون ها برای جداول بالا و سایر جداول کاتالوگ سیستم در .

سازماندهی پردازش تراکنش های موازی

معاملات

یک تراکنش (یا واحد کار) شامل یک یا چند عبارت SQL است که هنگام اجرا به عنوان یک واحد جداگانه در نظر گرفته می شود. به عبارت دیگر، شکست یک بیانیه تراکنش باعث می شود کل تراکنش با شکست مواجه شود، و تمام دستورات اجرا شده تا نقطه شکست به عقب برگردانده می شوند.

تراکنش با یک بیانیه COMMIT به پایان می رسد. تراکنش همچنین می تواند با یک عبارت ROLLBACK یا خاموش شدن غیرعادی (غیر طبیعی) برنامه به پایان برسد، پس از آن تمام تغییرات ایجاد شده توسط برنامه در پایگاه داده لغو خواهد شد. شروع تراکنش اولین دستوری است که پس از باز شدن اتصال برنامه به پایگاه داده یا پس از تکمیل تراکنش قبلی اجرا می شود. هر اتصال برنامه به پایگاه داده می تواند حداکثر یک تراکنش فعال داشته باشد.

همانطور که قبلا ذکر شد، تغییرات در پایگاه داده در گزارش تراکنش ها ثبت می شود. برای اطمینان از اینکه تغییرات ایجاد شده توسط تراکنش در حال واگرد می تواند "بازگردانده شود"، مرزهای تراکنش نیز در گزارش تراکنش ثبت می شوند. در عین حال، تراکنش هایی که فقط عملیات خواندن داده ها را انجام می دهند در گزارش تراکنش ها نوشته نمی شوند. اطلاعات مربوط به شروع تراکنش قبل از شروع اجرای اولین بیانیه نوشتن داده (برای یک تراکنش معین) در گزارش تراکنش قرار می گیرد.

در صورت بروز خطا در اجرای یک دستور که داده ها را می نویسد، تمام تغییرات ایجاد شده توسط آن دستور با استفاده از داده های گزارش تراکنش لغو می شود. برنامه با دریافت پیام تشخیصی در مورد امتناع از اجرای بیانیه، می تواند کل تراکنش (با عبارت ROLLBACK) را لغو کند یا برخی اقدامات دیگر را با پایگاه داده انجام دهد و در نتیجه تغییرات انجام شده را تأیید کند (با عبارت COMMIT). ).

یک برنامه کاربردی می تواند نقاط بازگشتی اضافی را در یک تراکنش تعریف کند (با استفاده از عبارت SAVEPOINT) و تغییرات ایجاد شده پس از ایجاد نقطه بازگشت (با استفاده از عبارت ROLLBACK TO) را لغو کند. استفاده از نقاط بازگشت به یک برنامه کاربردی اجازه می دهد تا به طور انتخابی اقدامات انجام شده در یک تراکنش را خنثی کند، که می تواند هنگام رسیدگی به خطاهای یکپارچگی داده ها و سناریوهای دیگر مفید باشد.

قفل

استفاده موازی به این معنی است که چندین کاربر می توانند همزمان روی یک آبجکت پایگاه داده کار کنند. دسترسی به داده ها باید به درستی هماهنگ شود تا از یکپارچگی و سازگاری داده ها اطمینان حاصل شود.

برای به دست آوردن نتایج ثابت از معاملات موازی، کنترل استفاده موازی از منابع مشترک مورد نیاز است. چنین کنترلی مبتنی بر استفاده از قفل است.

مفاهیم قفل و همزمانی ارتباط نزدیکی با هم دارند. قفل به طور موقت از انجام سایر عملیات توسط برنامه‌ها تا زمانی که عملیات فعلی کامل نشده است جلوگیری می‌کند. هرچه قفل فعالتر در سیستم استفاده شود، فرصت های کمتری برای همزمانی باقی می ماند. از سوی دیگر، هر چه کمتر قفل در یک سیستم اعمال شود، امکان همزمانی بیشتر است.

یک قفل به طور خودکار در صورت نیاز برای حفظ یک تراکنش به دست می آید و زمانی که چنین تراکنشی لغو شود (با استفاده از دستور COMMIT یا ROLLBACK) آزاد می شود. قفل ها را می توان روی میزها یا ردیف ها قرار داد.

دو نوع اصلی مسدود کردن وجود دارد:

  • قفل مشترک (S) - زمانی را تنظیم کنید که یک برنامه داده ها را بخواند و از ایجاد تغییرات در همان ردیف توسط سایر برنامه ها جلوگیری کند.
  • قفل انحصاری (X) - زمانی را تنظیم کنید که یک برنامه یک ردیف را به‌روزرسانی، درج یا حذف کند.

اگر دو یا چند برنامه نیاز به انجام عملیات بر روی یک شیء مشابه داشته باشند، یکی از آنها باید منتظر بماند تا قفل مورد نیاز را بدست آورد. به طور پیش فرض، برنامه به طور نامحدود منتظر می ماند. زمان قفل برنامه توسط پارامتر پیکربندی پایگاه داده LOCKTIMEOUT کنترل می شود. مقدار پیش فرض این پارامتر -1 است (انتظار بی نهایت).

می توانید از متغیر جلسه CURRENT LOCK TIMEOUT برای تنظیم زمان قفل در یک اتصال خاص استفاده کنید. به طور پیش فرض، این متغیر روی LOCKTIMEOUT تنظیم شده است. برای تغییر این مقدار می توانید از عبارت SET LOCK TIMEOUT استفاده کنید.

در صورتی که دو (یا چند) برنامه متصل به یک پایگاه داده به دلیل توالی نادرست دسترسی به این منابع به طور نامحدود منتظر منابع باشند، وضعیت بن بست رخ می دهد. مدت زمان مهلت نمی تواند منقضی شود زیرا هر برنامه دارای منبعی است که برنامه دیگر به آن نیاز دارد. در همه موارد، مشکل بن بست به دلیل ساختار یا منطق نادرست برنامه است.

DB2 به طور خودکار موقعیت های بن بست را با انجام بررسی های مناسب در فواصل زمانی مشخص شده توسط پارامتر DLCHKTIME شناسایی می کند. هنگامی که تشخیص می دهد که یک بن بست واقعاً رخ داده است، DB2 از یک الگوریتم داخلی برای تعیین اینکه کدام یک از دو تراکنش باید عقب نشینی شود و کدام یک باید ادامه یابد، استفاده می کند.

سطوح انزوا

تجزیه و تحلیل دقیق مشکلاتی که در صورت عدم کنترل همزمانی ممکن است رخ دهد در مستندات DB2 و همچنین در ادبیات مربوط به تئوری عملکرد DBMS رابطه ای ارائه شده است. انواع احتمالی مشکلات عبارتند از:

  • به روز رسانی از دست رفته (اگر یک بلوک داده به طور همزمان توسط تراکنش های مختلف تغییر کند، یکی از تغییرات از بین می رود).
  • خواندن غیر قابل اعتماد (خواندن داده های اضافه شده یا تغییر یافته توسط یک تراکنش، که متعاقباً تأیید نمی شود)؛
  • خواندن بدون تکرار (هنگام خواندن مجدد در همان تراکنش، داده های خوانده شده قبلی تغییر می کند).
  • فانتوم خواندن (انتخاب های یکسان در یک تراکنش مجموعه های مختلفی از ردیف ها را به دلیل اضافه کردن، حذف یا تغییر ردیف ها توسط تراکنش های دیگر ارائه می دهد).

کنترل جانبی حفاظت داخلی DB2 در برابر مشکلات ذکر شده در بالا با تنظیم سطح ایزوله برای استفاده انجام می شود. سطوح جداسازی را می توان به عنوان سیاست های قفل در نظر گرفت که در آن، بسته به سطح ایزوله انتخاب شده، می توانید به روش های مختلفی دست پیدا کنید که در آن یک برنامه یک پایگاه داده را قفل می کند. سطح جداسازی مورد نیاز یک برنامه کاربردی را می توان در سطح جلسه و در سطح یک پرس و جو یا درخواست فرعی که در حال اجرا است تنظیم کرد.

DB2 سطوح حفاظتی زیر را برای جداسازی داده ها فراهم می کند:

  • خواندن غیر قابل اعتماد (Uncommitted Read, UR)؛
  • ثبات مکان نما (Cursor Stability، CS)؛
  • ثبات خواندن (Read Stability، RS)؛
  • خواندن مکرر (Repeatable Read, RR).

خواندن غیر معتبربه آن "کثیف" نیز می گویند. این کمترین سطح ایزوله ای است که اجازه می دهد بالاترین درجهاستفاده موازی سطرها در طول عملیات خواندن قفل نمی شوند، به جز زمانی که برنامه دیگری سعی می کند جدول را حذف یا تغییر دهد. عملیات به روز رسانی به همان روشی انجام می شود که از سطح جداسازی بعدی یعنی سطح ثبات مکان نما استفاده می شود.

استفاده از سطح جداسازی بد خواندن از مشکلات زیر جلوگیری می کند:

  • آپدیت از دست رفته

ثبات مکان نماسطح ایزوله پیش فرض است. حداقل درجه مسدود شدن را فراهم می کند. این سطح انزوا، ردیف "جاری" مکان نما را قفل می کند. اگر خط فقط خواندنی باشد، قفل تا زمانی که خط جدیدی وارد شود یا عملیات کامل شود، نگه داشته می شود. اگر ردیف به روز شود، قفل تا زمانی که عملیات کامل شود نگه داشته می شود.

استفاده از سطح جداسازی ثبات مکان نما از مشکلات زیر جلوگیری می کند:

  • به روز رسانی از دست رفته؛
  • خواندن نادرست

قبل از DB2 9.7، هنگام استفاده از سطح جداسازی ثبات مکان نما، انجام نوشتن (عملیات به روز رسانی) دسترسی خواندن (عملیات SELECT) را به همان ردیف بسته می کرد. مبنای منطقی این بود که از آنجایی که عملیات نوشتن تغییراتی را در ردیف ایجاد می‌کند، خواندن باید منتظر تکمیل به‌روزرسانی‌ها باشد تا مقدار تعهد شده نهایی به دست آید.

DB2 9.7 برای پایگاه‌های داده جدید رویکرد متفاوتی نسبت به سطح جداسازی ثبات مکان‌نما دارد. این رویکرد جدید با استفاده از معنایی "تعهد فعلی" (CC) پیاده سازی شده است. هنگام استفاده از معنای CC، عملیات نوشتن دسترسی به همان ردیف را برای عملیات خواندن نمی‌بندد. پیش از این، این رویکرد با استفاده از سطح جداسازی UR امکان پذیر بود. تفاوت با رویکرد فعلی این است که با UR عملیات خواندن مقادیر نامعتبر دریافت می کند، در حالی که با معنای CC مقادیر پذیرفته شده در حال حاضر را دریافت می کند. مقادیر متعهد فعلی مقادیری هستند که قبل از شروع عملیات نوشتن تعهد شده اند.

ثبات خواندنیک قفل در تمام ردیف های دریافت شده توسط برنامه ارائه می دهد. برای پرس و جو داده شده، تمام ردیف هایی که با مجموعه نتیجه مطابقت دارند مسدود می شوند. بنابراین، استفاده از این حالت جداسازی می‌تواند منجر به کسب تعداد زیادی قفل در برنامه شود و در صورت رسیدن به محدودیت‌های تعیین‌شده، افزایش قفل از سطح ردیف به سطح جدول قفل شود. با این حال، در سطح جداسازی ثبات خواندن، بهینه‌ساز پرس و جو DB2 به طور صریح قفل‌های سطح جدول را در طرح اجرای پرس‌و‌جوهایی که اجرا می‌کند، دریافت نمی‌کند، حتی اگر مجموعه نتایج شامل بیشتر رکوردهای جدول باشد.

استفاده از سطح جداسازی ثبات خواندن از مشکلات زیر جلوگیری می کند:

  • به روز رسانی از دست رفته؛
  • خواندن نادرست؛
  • خواندن غیر تکراری

خواندن تکراریبالاترین سطح انزوا است. بالاترین درجه قفل و کمترین میزان همزمانی را فراهم می کند. یک قفل روی ردیف هایی که برای ساخت مجموعه نتیجه پردازش می شوند قرار می گیرد. به عبارت دیگر، حتی ردیف هایی که وارد بسته نتیجه نهایی نمی شوند را می توان مسدود کرد. تا زمانی که عملیات در حال انجام کامل نشود، سایر برنامه‌ها نمی‌توانند ردیف‌هایی را که بر مجموعه نتایج تأثیر می‌گذارند، به‌روزرسانی، حذف یا وارد کنند. خواندن مکرر تضمین می کند که یک پرس و جو که توسط برنامه چندین بار در یک عملیات ایجاد شده است، هر بار نتایج یکسانی را تولید می کند.

بهینه ساز پرس و جو DB2، هنگام استفاده از سطح جداسازی خواندن مکرر، می تواند در طرح اجرای پرس و جو قرار گیرد. عملیات صریحتنظیم قفل ها در سطح جدول زمانی که پرس و جوهای مربوطه شامل اسکن تمام ردیف های جدول است (به این معنی که هر ردیف از جدول باید در طول اجرای پرس و جو قفل شود).

استفاده از سطح جداسازی ثبات خواندن از همه چیز جلوگیری می کند مشکلات احتمالیدسترسی رقابتی، اما در عین حال، موازی سازی احتمالی اجرای عملیات تا حد امکان محدود است.

نتیجه

در این مقاله، عملکرد اصلی IBM DB2 LUW DBMS، ساختار سرور پایگاه داده، تنظیمات پیکربندی و سازماندهی ذخیره سازی داده ها در نظر گرفته شد. علاوه بر این، اصول اولیه سرور DB2، انواع پشتیبانی شده از اشیاء پایگاه داده و سازماندهی پردازش تراکنش های موازی DB2 در نظر گرفته شده است.

در محل کار، مدتی مجبور شدم با DBMS IBM DB2 سروکار داشته باشم. زیرا از آنجایی که این سیستم تجاری است، اطلاعات زیادی به زبان روسی در اینترنت وجود ندارد، بنابراین تصمیم گرفتم برخی از ویژگی های این DBMS را شرح دهم.

نقطه ورود

بیایید با نقطه ورودی در DBMS شروع کنیم. در SQL SERVER نقطه پایانی یک نمونه است که البته می تواند پایگاه داده جداگانه داشته باشد اما مدل پیکربندی و امنیت برای کل نمونه یکسان است. در DB2، نقطه ورود به این شکل است - یک نمونه (که مربوط به یک پورت خاص است) - یک پایگاه داده. در همان زمان، یک پیکربندی برای کل نمونه، و برای یک پایگاه داده جداگانه وجود دارد.

می توانید پیکربندی نمونه را با استفاده از دستور db2 مشاهده کنید:

پیکربندی مدیر پایگاه داده

نوع گره = Enterprise Server Edition با کلاینت های محلی و راه دور

سطح انتشار پیکربندی مدیر پایگاه داده = 0x0b00

سرعت پردازنده (میلی ثانیه/دستورالعمل) (CPUSPEED) = 2.912790e-07
پهنای باند ارتباطات (MB/sec) (COMM_BANDWIDTH) = 1.000000e+02

حداکثر تعداد پایگاه های داده فعال همزمان (NUMDB) = 8
پشتیبانی سیستم پایگاه داده فدرال (FEDERATED) = بله
نام مانیتور پردازشگر تراکنش (TP_MON_NAME) =

حساب بازپرداخت پیش‌فرض (DFT_ACCOUNT_STR) =

مسیر نصب کیت توسعه جاوا (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

سطح ضبط خطای تشخیصی (DIAGLEVEL) = 3
سطح اطلاع رسانی (NOTIFYLEVEL) = 3
مسیر دایرکتوری داده های تشخیصی (DIAGPATH) = /home/db2inst1/sqllib/db2dump

سوئیچ های پیش فرض مانیتور پایگاه داده
مخزن بافر (DFT_MON_BUFPOOL) = OFF

جایی که پارامترها مشخص خواهند شد، معنی و رمزگشایی آنها. نسخه کوتاه شده نیز امکان پذیر است:

dbm cfg را دریافت کنید

یا با یک پرس و جو:

نام، مقدار را از sysibmadm.dbmcfg انتخاب کنید

پارامترهای مهم عبارتند از:

  • نوع احراز هویت (AUTHENTICATION)
  • مسیر پیش‌فرض برای ایجاد پایگاه‌های داده جدید (DFTDBPATH)
  • کشف سرور شبکه (DISCOVER)
می توانید تنظیمات یک پایگاه داده خاص را مانند این مشاهده کنید:

اتصال به نمونه(نمونه - نام پایگاه داده)

پیکربندی مدیر پایگاه داده را دریافت کنید

یا تقریباً با همان درخواست قبلی:

نام، مقدار را از sysibmadm.dbcfg انتخاب کنید

احراز هویت

تفاوت بزرگ بین DB2 و سایر DBMS ها در مدل احراز هویت است. هیچ کاربر داخلی مانند SQL Server یا MySQL وجود ندارد. تمام احراز هویت با ابزارهای خارجی DBMS (افزونه های بارگذاری شده پویا) - با استفاده از سیستم عامل یا افزونه های خارجی (Kerberos، GSS API) انجام می شود. نوع احراز هویت در پارامتر AUTHENTICATION پیکربندی مدیر پایگاه داده تنظیم شده است. به طور پیش فرض، مقدار SERVER تنظیم شده است - نام کاربری و رمز عبور به صورت متن واضح منتقل می شود و صحت این جفت با استفاده از سیستم عامل بررسی می شود. اگر نام کاربری و رمز عبور صحیح باشد، امتیاز CONNECT برای کاربر یا گروه‌هایی که در آن عضو است (از جمله گروه ویژه PUBLIC که شامل همه کاربران مجاز است) بررسی می‌شود. این امتیازات را می توان در جدول SYSCAT.DBAUTH مشاهده کرد:

GRANTEE را از SYSCAT.DBAUTH انتخاب کنید که در آن CONNECTAUTH = "Y"

یک اشتباه بزرگ در پیکربندی این است که نوع احراز هویت CLIENT را شامل شود.در این حالت، DB2 به کلاینت متصل کننده اعتماد می کند تا احراز هویت را انجام دهد و اگر PUBLIC دارای امتیاز CONNECT باشد، هر کاربری می تواند به پایگاه داده متصل شود و به تمام داده هایی که PUBLIC دارد دسترسی پیدا کند. نام کاربری از سیستم عامل گرفته شده است. یعنی اگر از طریق دیتا استودیو به عنوان کاربر Administrator وصل شویم، تمام امتیازاتی که این کاربر دارد به آن تعلق می گیرد. و در این حالت هیچ تفاوتی وجود ندارد که دسترسی از کدام کامپیوتر صورت گرفته باشد. توصیه می شود این نوع احراز هویت تنها زمانی فعال شود که یک کانال امن بین سرور و کلاینت وجود داشته باشد و سایر کلاینت ها نتوانند به DBMS متصل شوند.

مجوز

امتیازات سطح نمونه در پیکربندی مدیر پایگاه داده نوشته شده است. اینها امتیازات زیر هستند:

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
این امتیازات با تعیین گروهی که کاربر در آن وارد می شود تنظیم می شود. در dbmcfg، اینها به ترتیب گزینه های SYSADM_GROUP، SYSCTRL_GROUP، SYSMAINT_GROUP و SYSMON_GROUP هستند.

بعد، امتیازات ویژه پایگاه داده وجود دارد. اینها امتیازاتی مانند دسترسی به پایگاه داده (CONNECTAUTH)، ایجاد جدول (CREATETABAUTH)، ایجاد روتین (EXTERNALROUTINEAUTH) و غیره هستند. این امتیازات را می توان در نمای SYSCAT.DBAUTH مشاهده کرد

و در نهایت، دسترسی به امتیازات به داده های خاص - جداول، زیر روال ها، و غیره. همه چیز در اینجا کاملاً پیش پا افتاده است، اما همچنین با برخی ویژگی ها.

امتیازات دسترسی به جدول را می توان در نمای SYSCAT.TABAUTH مشاهده کرد. نوع امتیاز اعطا شده بسته به خود امتیاز (SELECTAUTH، DELETEAUTH و غیره) در ستون های جداگانه ذخیره می شود. هنگام اعطای امتیاز با استفاده از دستور GRANT برای امتیازات REFERENCES و UPDATE، همچنین می توانید نام ستون هایی را که امتیازات داده شده به آنها تعمیم داده می شود را مشخص کنید. در این مورد، اطلاعات مربوط به این مورد را می توان در نمای SYSCAT.COLAUTH مشاهده کرد

امتیازات روتین ها (عملکردها، رویه ها و روش ها) را می توان در SYSCAT.ROUTINEAUTH مشاهده کرد. همه چیز در اینجا بی اهمیت نیست، بسته به فیلدهای SPECIFICNAME و TYPENAME، می توان به همه زیر روال های یک طرح معین امتیاز داد.

اگر خوانندگان مقاله را دوست دارند، پس من آماده هستم تا در مورد محافظت از داده ها در DB2 با استفاده از کنترل دسترسی مبتنی بر برچسب صحبت کنم.

پایگاه داده رابطه ای مجموعه ای از روابط است که نام آنها با نام طرحواره روابط در طرحواره پایگاه داده مطابقت دارد. امروزه تعداد زیادی سرور پایگاه داده SQL مختلف شناخته شده است. بیایید روی چهار DBMS سرور اصلی زیر تمرکز کنیم - Oracle8i، IBM DB2، مایکروسافت SQLسرور و Informix - و مقایسه آنها در عملکرد در هر یک از مراحل اصلی عملکرد.

Oracle8i. بسته Oracle8i، مجهز به پیشرفته ترین مجموعه توابع برای کار با زبان جاوا و دسترسی به داده ها از طریق اینترنت، یک سیستم بهینه سازی دسترسی همزمان. تنها عیب این DBMS پیچیدگی مدیریت است، با این حال، تمام هزینه های پیاده سازی و توسعه آن بعداً با کار کارآمد و قابل اعتماد پرداخت می شود. (پیچیدگی و هزینه بالا قابل بحث است). از جمله ویژگی های اصلی Oracle DBMS، باید به موارد زیر اشاره کرد: بالاترین قابلیت اطمینان. توانایی پارتیشن بندی پایگاه های داده بزرگ به بخش ها (پارتیشن با پایگاه داده بزرگ)، که مدیریت موثر پایگاه های داده های عظیم گیگابایت را ممکن می سازد. در دسترس بودن ابزار جهانی حفاظت از اطلاعات؛ روش های موثر حداکثر افزایشسرعت پردازش درخواست؛ نمایه سازی بیت مپ؛ جداول رایگان (در سایر DBMS ها همه جداول بلافاصله پس از ایجاد پر می شوند). موازی سازی عملیات در یک پرس و جو در دسترس بودن طیف وسیعی از ابزارهای توسعه، نظارت و مدیریت. تمرکز بر فناوری های اینترنت راه حل هایی که کمتر از توسعه Oracle نیستند را فقط در DB2 IBM می توان یافت. گرایش به فناوری های اینترنتی شعار اصلی محصولات مدرن اوراکل است. در این راستا می توان به بسته interMedia که پردازش داده ها در قالب های چند رسانه ای را ارائه می دهد و Jserver، ابزاری تعبیه شده برای کار با زبان جاوا که ترکیبی از قابلیت های زبان جاوا با قابلیت های پایگاه داده های رابطه ای است، اشاره کرد. Enterprise JavaBeans بلوک های سازنده برنامه های اینترنتی جاوا هستند. Oracle به این اصل پایبند است که تمام عملکردهای مهم باید از یک مرکز واحد مدیریت شوند، بنابراین ماژول interMedia پیشنهادی پیشرفته ترین ویژگی ها را برای کار با اشیاء چند رسانه ای در اختیار کاربران قرار می دهد: ابزارهای بسیار پیشرفته برای پردازش کلیپ های صوتی. تصاویر ثابت؛ کلیپ های ویدئویی؛ داده های جغرافیایی (با مجموعه کاملی از توابع مربوط به تعیین مکان موجود در ماژول Locator). Oracle8i بهترین ابزارهای امروزی را برای طراحی پایگاه داده شی گرا پیاده سازی می کند، از جمله ساختارهای جدولی که امکان ارث بردن ویژگی ها و روش های دیگر اشیاء پایگاه داده جدولی را فراهم می کند، که از بروز خطا در هنگام ساخت پایگاه داده جلوگیری می کند و نگهداری آنها را تسهیل می کند. همچنین لازم به ذکر است که سیستم بهینه سازی همزمان چند نسخه ای توسعه یافته توسط اوراکل یکی از مهمترین ویژگی های معماری اوراکل است (این تابع فقط در DBMS InterBase از InterBase از Inprise موجود است). این تابعبه شما این امکان را می دهد که شرایطی را که یک کاربر باید منتظر بماند تا دیگری تغییرات در محتوای پایگاه داده را انجام دهد (یعنی هیچ قفل خواندنی در اوراکل وجود ندارد) را از بین ببرید. این ویژگی به Oracle8i اجازه می دهد تا تراکنش های بیشتری را در هر ثانیه به ازای هر کاربر نسبت به هر پایگاه داده دیگری انجام دهد. از نظر عملکرد هنگام کار در یک محیط وب تحت لینوکس، اوراکل رتبه دوم را پس از آن به خود اختصاص داده است. DBMS MySQL، در حالی که به طور قابل توجهی از همه DBMS های دیگر از نظر قابلیت اطمینان و امنیت پیشی می گیرد.

DBMS Microsoft SQL Server مهمترین ویژگی های این DBMS عبارتند از: سهولت مدیریت، قابلیت اتصال به وب، سرعت و عملکرد مکانیزم سرور DBMS، در دسترس بودن ابزارها. دسترسی از راه دور، جعبه ابزار مدیریتی DBMS شامل مجموعه ای از جادوگران و ابزارهای ویژه برای تنظیم خودکار پارامترهای پیکربندی است. همچنین این پایگاه داده مجهز به ابزارهای تکرار عالی است که به شما امکان می دهد داده های رایانه شخصی را با اطلاعات پایگاه داده و بالعکس همگام سازی کنید. سرور OLAP موجود در بسته، ذخیره و تجزیه و تحلیل تمام داده های موجود در اختیار کاربر را ممکن می سازد. در اصل، این DBMS یک پایگاه داده مدرن با امکانات کامل است که برای سازمان های کوچک و متوسط ​​ایده آل است. لازم به ذکر است که SQL Server در دو شاخص مهم برنامه نویسی و ابزار عملکرد، نسبت به سایر DBMS های مورد بررسی، پایین تر است. هنگام توسعه برنامه های کاربردی پایگاه داده مشتری مبتنی بر جاوا، HTML، مشکل نرم افزار ناکافی SQL Server اغلب ایجاد می شود و استفاده از این DBMS نسبت به سیستم های DB2، Informix، Oracle یا Sybase دشوارتر خواهد بود. روند جهانی در قرن بیست و یکم تبدیل به انتقال تقریباً جهانی به پلت فرم لینوکس شده است و SQL Server فقط در محیط ویندوز کار می کند. بنابراین استفاده از SQL Server تنها در صورتی توصیه می شود که از استاندارد ODBC منحصراً برای دسترسی به محتویات پایگاه داده استفاده شود، در غیر این صورت بهتر است از سایر DBMS ها استفاده شود.

IBM DB2 IBM DB2 DBMS حاصل تقریباً 30 سال توسعه و توسعه است. کار پژوهشیتوسط IBM آخرین نسخه این DBMS (6.x) دارای یکی از پیچیده‌ترین مجموعه‌ای از ابزارهای مدیریت و بهینه‌سازی و یک موتور پایگاه داده است که می‌تواند از یک لپ‌تاپ ویندوز 95 به کلستری از مین‌فریم‌های S/390 با سیستم عامل OS/390 تبدیل شود. بسته DB2 در دو نسخه موجود است: DB2 Workgroup و DB2 Enterprise Edition. این DBMS تمامی فناوری های نوآورانه موتور پایگاه داده شناخته شده از نسخه های قبلی DB2 را پیاده سازی می کند، مانند پردازش پرس و جو موازی، مجموعه کاملی از ابزارهای تکرار، جداول خلاصه پرس و جو برای بهبود عملکرد پایگاه داده، ویژگی های طراحی پایگاه داده شی گرا، و ویژگی های زبان جاوا. علاوه بر این، سیستم DB2 مجهز به مجموعه کاملی از پسوندهای چند رسانه ای است که به شما امکان ذخیره و دستکاری قطعات متن، صدا و ویدئو، تصاویر و داده های جغرافیایی را می دهد. می توان گفت که از نظر مقیاس پذیری، فناوری خوشه بندی پایگاه داده توسعه یافته توسط متخصصان IBM هیچ مشابهی ندارد. این افزونه ها روند توسعه برنامه های کاربردی برای وب و همچنین برنامه های حاوی تصاویر عکاسی و گزارش های متنی حجیم را بسیار تسهیل می کنند. سیستم DB2 همچنین به عنوان یک پلتفرم برای توسعه برنامه کاملاً رقابتی است، زیرا یک ابزار Stored Procedure Builder وجود دارد که به طور خودکار دستور SQL را به کلاس جاوا مناسب تبدیل کرده و آن را در ساختار پایگاه داده گنجانده است. در DB2 6.1، قابلیت همکاری با سایر DBMS ها با فعال کردن استفاده از مشخصات OLE DB مایکروسافت، یک استاندارد جدید دسترسی به پایگاه داده، بسیار بهبود یافته است. کنترل های اداری DB2 که هستند نسخه جدیددر جاوا بازنویسی شده و می توان از وب به دست آورد سزاوار بالاترین ستایش است. معایب اصلی این DBMS پیچیدگی نسبی مدیریت و عدم پیاده سازی (هنوز) برای سیستم عامل های سرور محبوب، مانند LINUX است. در این DBMS، به لطف Index Smart-Guide، امکان تنظیم کردن، تشکیل شاخص های بهینه برای تعداد معینی از دسترسی ها وجود دارد که مشخص کننده بار معمولی در پایگاه داده است. DB2 تنها بسته ای است که به شما امکان می دهد جداول محوری تولید کنید، که به طور قابل توجهی کارایی DBMS را به عنوان انبار داده بهبود می بخشد. PivotTable یک فضای کاری موقت است که توسط پایگاه داده برای ذخیره پاسخ‌های پرسش‌های متداول استفاده می‌شود. مدل DB2 6.1 به عنوان مقرون به صرفه ترین سیستم با کارایی بالا در حال ظهور است. ابزارهای مدیریتی این DBMS برای سطح وظایف در حال حل کاملاً مناسب هستند، علاوه بر این، فرصت های فوق العاده وسیعی را برای کار با داده های چند رسانه ای و برنامه نویسی (که به وضوح در Microsoft SQL Server وجود ندارد) فراهم می کند.

DBMS از Informix. اخیراً انتقال از DBMS های رابطه ای به شی گرا (که در مثال اوراکل به وضوح دیده می شود) صورت گرفته است. Informix همچنین با پیروی از این مفهوم، راه حل جدید Centaur DBMS را بر اساس پایگاه داده رابطه ای Informix Dynamic Server 7.3 و پایگاه داده شی رابطه ای Informix Universal Data Option و ترکیب عملکرد بالای Dynamic Server هنگام کار با داده ها با عملکردهای جهانی و چند رسانه ای یونیورسال معرفی کرد. گزینه داده. این پیاده سازی برای توسعه سیستم های اینترنتی در نظر گرفته شده است. انتظار می رود که این DBMS دارای یک محیط توسعه منعطف با مقیاس پذیری برای مطابقت با بارهای کاری فشرده مشخصه اینترنت و ابزارهایی برای کار با انواع جدیدی از داده ها باشد که با توسعه وب در همه جا حاضر شده اند. ابزارهای جاوا پیاده سازی شده در سیستم جدید به توسعه دهندگان این امکان را می دهد که رویه های ذخیره شده، برنامه های کاربر و اجزای DataBlades را در این زبان که Informix آن را می نامد ایجاد کنند.

پسوندهای پایگاه داده سفارشی از دیدگاه مشتریان اینفوریکس، این یک گام بزرگ رو به جلو خواهد بود، زیرا تا کنون، هنگام کار با DataBlades، آنها فقط می توانستند از C و SPL، زبان داخلی Informix برای نوشتن رویه های ذخیره شده استفاده کنند. علاوه بر این، پکیج Centaur به کنترل داخلی اشیاء ActiveX مجهز خواهد شد. به عنوان مثال، این امکان ایجاد رویه های ذخیره شده پایگاه داده در زبان را فراهم می کند ویژوال بیسیک; با این حال، این نیاز به بسته Centaur برای اجرا در محیط ویندوز NT دارد. Centaur یک افزونه برای Informix Dynamic Server خواهد بود و با فرمت سنتی پایگاه داده برای این بسته کار می کند تا کاربران تمام عملکردهای قدیمی را در اختیار داشته باشند و ارتقای سیستم به نسخه جدید کار چندان دشواری نخواهد بود. علاوه بر این، پکیج Centaur تمام قابلیت‌های طراحی و برنامه‌نویسی را که سیستم سرور جهانی Informix را به یک دستاورد مهندسی برجسته تبدیل کرده است، حفظ خواهد کرد. سیستم جدید مجهز به امکاناتی برای طراحی پایگاه داده شی گرا، ایجاد جداول تخصصی و برنامه های نمایه سازی خواهد بود. این به کاربران اجازه می دهد تا عملکرد خود را در پرس و جوها جاسازی کنند و صرفاً به آنها اعتماد نکنند به معنی استاندارد SQL. نتیجه گیری با در نظر گرفتن ویژگی های اصلی معماری برای ساخت AIS، سیستم عامل سرور و DBMS، در آینده به عنوان معماری AIS، معماری اینترنت / اینترانت را به عنوان سیستم عامل لینوکس سرور به عنوان Oracle 8i DBMS انتخاب خواهیم کرد.

2) بند SQL SELECT. توابع داخلی

ستون SELECT از جدول WHERE ستون LIKE

SELECT * FROM Store_Information WHERE store_name LIKE "%AN% ';

ستون_نام را از جدول_نام انتخاب کنید WHERE ستون_نام بین مقدار 1 و مقدار 2

انتخاب * از افرادی که نام خانوادگی بین "Hansen" و "Pettersen" وجود دارد.

انتخاب * از افرادی که نام خانوادگی بین "هانسن" و "پترسن" نیست.

انتخاب شرکت، تعداد سفارش از سفارشات سفارش بر اساس(مرتب سازی ) شرکت;

SELECT Company, OrderNumber FROM Orders Order BY Company, OrderNumber;

SELECT شرکت، تعداد سفارش از سفارشات سفارش توسط شرکت DESC(به صورت برعکس ) ؛

شرکت SELECT، OrderNumber FROM Orders Order BY Company DESC , OrderNumber ASC(درست . سفارش ) ؛

SELECT * FROM Persons WHERE FirstName="Tove" AND LastName="Svendson";

SELECT * FROM Persons WHERE firstname="Tove" OR lastname="Svendson" ;

SELECT * FROM Persons WHERE (FirstName="Tove" OR FirstName="Stephen") AND LastName="Svendson" ;

SELECT store_name FROM Store_Information WHERE Sales > 1000 OR (Sales< 500 AND Sales > 275);

کارکردانتخاب کنیدعملکرد( ستون) از جانبجدول AVG - مقدار متوسط ​​در ستون؛شمردن - تعداد مقادیر در یک ستون؛ MAX - بیشترین پراهمیتدر یک ستون؛ MIN - کوچکترین مقدار در ستون. SUM - مجموع مقادیر بر اساس ستون

مثال ها: انتخاب کنید AVG(سن) FROM Persons; انتخاب کنید شمردن(store_name) FROM Store_Information; انتخاب کنید شمردن(متمایز store_name) FROM Store_Information; انتخاب کنید حداکثر(سن) FROM Persons SELECT جمع(فروش) FROM Store_Information;

3) سریال سازی معاملات، تضاد عملیات. روش های سریال سازی تراکنش ها دستگیره های همگام سازی، دسته های همگام سازی دانه ای. روش های سریال سازی تراکنش ها ضبط های همگام سازی محمول. سریال سازی بر اساس مهر زمانی

برای دستیابی به جداسازی تراکنش ها، DBMS باید از روش هایی برای تنظیم اجرای مشترک تراکنش ها استفاده کند. طرح (روش) برای اجرای مجموعه ای از معاملات نامیده می شود سریالاگر نتیجه اجرای مشترک معاملات معادل نتیجه برخی از اجرای متوالی همان معاملات باشد. سریال سازی تراکنش ها- این مکانیزمی است برای اجرای آنها طبق برخی برنامه های سریال. ارائه چنین مکانیزمی وظیفه اصلی مولفه DBMS است که مسئولیت مدیریت تراکنش ها را بر عهده دارد. سیستمی که از سریال سازی تراکنش ها پشتیبانی می کند، جداسازی واقعی کاربر را فراهم می کند. مشکل اصلی پیاده‌سازی، انتخاب روشی برای سریال‌سازی مجموعه‌ای از تراکنش‌ها است که موازی‌سازی آنها را بیش از حد محدود نمی‌کند. راه حل بی اهمیتی که به ذهن می رسد، اجرای متوالی تراکنش ها است. اما شرایطی وجود دارد که در آن می توان بیانیه های تراکنش های مختلف را به هر ترتیبی با حفظ سریال اجرا کرد. به عنوان مثال می توان به تراکنش های فقط خواندنی و همچنین تراکنش هایی اشاره کرد که در اشیاء پایگاه داده تضاد ندارند. انواع تضادهای زیر می تواند بین تراکنش ها وجود داشته باشد: W-W - تراکنش 2 سعی می کند یک شی اصلاح شده توسط تراکنش 1 را تغییر دهد که به پایان نرسیده است. R-W - تراکنش 2 سعی می کند یک شی خوانده شده توسط تراکنش 1 را تغییر دهد که به پایان نرسیده است. W-R - تراکنش 2 در تلاش برای خواندن یک شی تغییر یافته توسط تراکنش 1 است که به پایان نرسیده است. شیوه های سریال سازی تراکنش ها بر اساس این تضادها است.

وجود داشته باشد دو رویکرد اساسیبرای سریال سازی تراکنش ها - بر اساس ضبط همگام سازی اشیاء پایگاه داده و استفاده از مهرهای زمانی. ماهیت هر دو رویکرد شناسایی تضادهای تراکنش و حذف آنها است. رایج ترین رویکرد در DBMS های متمرکز (شامل سیستم های مبتنی بر معماری "مشتری-سرور") رویکرد مبتنی بر پایبندی به پروتکل دو فازی ضبط همزمان سازیاشیاء پایگاه داده به طور کلی، پروتکل به این صورت است که قبل از انجام هر عملیاتی در تراکنش T بر روی شی پایگاه داده r، از طرف تراکنش T، گرفتن همزمانی شی r در حالت مناسب (بسته به نوع عملیات) درخواست می شود. حالت های اصلی ضبط همگام سازی عبارتند از: حالت مشترک - S (Shared) که به معنای گرفتن اشتراکی یک شی است و برای انجام یک عملیات خواندن شی مورد نیاز است. حالت انحصاری - X (eXclusive)، به معنای ضبط انحصاری شی و مورد نیاز برای انجام عملیات درج، حذف و اصلاح. ضبط همگام سازی دانه ای - رویکردی کهضبط همگام‌سازی را می‌توان در برابر اشیاء سطوح مختلف درخواست کرد: فایل‌ها، روابط و تاپل‌ها. سطح شی مورد نیاز با عملیاتی که انجام می شود تعیین می شود (مثلاً برای انجام یک عملیات حذف روی یک رابطه، کل رابطه باید شیء همگام سازی باشد، اما برای انجام عملیات حذف تاپل، آن تاپل). یک شی از هر سطحی را می توان در حالت S یا X گرفت. ضبط همگام سازی محمول- این گرفتن اشیا نیست، بلکه شرایط (مقدماتی) است که این اشیاء برآورده می کنند. یک روش جایگزین برای سریال سازی تراکنش ها که در شرایط تضاد تراکنش های نادر به خوبی کار می کند و نیازی به ساخت نمودار انتظار تراکنش ندارد. بر اساس با استفاده از مهر زمانیایده اصلی روش (که انواع زیادی دارد) به شرح زیر است: اگر تراکنش T1 قبل از تراکنش T2 شروع شده باشد، سیستم تضمین می کند که حالت اجرا به گونه ای است که گویی T1 قبل از شروع T2 به طور کامل اجرا شده است.

برای انجام این کار، به هر تراکنش T یک مهر زمانی اختصاص داده می شود که مربوط به زمان شروع T است. هنگام انجام عملیات روی یک شی r، تراکنش T آن را با مهر زمانی خود و نوع عملیات (خواندن یا تغییر) مشخص می کند. قبل از انجام عملیات روی شی r، تراکنش T1 اقدامات زیر را انجام می دهد: بررسی می کند که آیا تراکنش T که این شی را علامت گذاری کرده است، پایان یافته است یا خیر. اگر T به پایان رسیده باشد، T1 شی r را علامت گذاری کرده و عملیات آن را انجام می دهد. اگر تراکنش T کامل نشده باشد، T1 بررسی می کند که آیا عملیات در تضاد هستند یا خیر. اگر عملیات بدون تضاد باشند، مهر زمانی با مقدار کمتر باقی می‌ماند یا به شی r الصاق می‌شود و تراکنش T1 عملیات خود را انجام می‌دهد. اگر عملیات T1 و T با هم تضاد داشته باشند، اگر t(T) > t(T1) (یعنی تراکنش T کوچکتر از T باشد)، T به عقب برگشته و T1 ادامه می یابد. اگر t(T)< t(T1) (T "старше" T1), то T1 получает новую временную метку и начинается заново. К недостаткам метода временных меток относятся потенциально более частые откаты транзакций, чем в случае использования синхронизационных захватов. Это связано с тем, что конфликтность транзакций определяется более грубо. Кроме того, в распределенных системах не очень просто вырабатывать глобальные временные метки с отношением полного порядка.