• جبر رابطه ای، عملیات جبر رابطه ای. جبر رابطه ای در پایگاه های داده: عملیات، مثال ها

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

    مدل پایگاه داده رابطه ای

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

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

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

    مدل شی گرا.

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

    اکثر OODBMS یک کتابخانه هستند که رویه های مدیریت داده در آن گنجانده شده است برنامه کاربردی. با وجود مزایای سیستم های شی گرا - پیاده سازی انواع داده های پیچیده, ارتباطبا زبان های برنامه نویسی و غیره - برای آینده نزدیک برتری رابطه DBMSتضمین.

    هدف - شی- DBMS رابطه ای

    تفاوت بین شی - رابطه ای و شی DBMS: اولی یک روبنا بر روی طرح واره رابطه ای است، در حالی که دومی در ابتدا شی گرا هستند. ویژگی اصلیو تفاوت بین شی-رابطه ای (و همچنین شی) DBMSاز رابطه ای در این واقعیت نهفته است که OR DBMSادغام شده با یک زبان برنامه نویسی شی گرا (OO)، داخلی یا خارجی مانند C++، جاوا.

    شیء رابطه ای DBMSبرای مثال معروف هستند پایگاه داده اوراکل ، مایکروسافت SQL Server, PostgreSQL, Microsoft Access.

    رویکرد رابطه ای برای ساخت مدل دامنه

    · موضوعتوسط مجموعه ای از افراد مدل شده است اشیاء اطلاعاتی(موجودات) که هر کدام با جدول دو بعدی آن توصیف می شوند.

    روابط بین جداول وجود دارد

    هر عنصر جدول یک عنصر داده است.

    · تمام ستون های جدول همگن هستند، یعنی. تمام عناصر یک ستون دارای نوع و طول یکسان (عددی، کاراکتر و غیره) هستند.

    · هر ستون یک ویژگی موجودیت را توصیف می کند.

    · هر ستون یک نام منحصر به فرد دارد.

    · رشته حاوی مقادیر مشخصه برای یک نمونه موجودیت است.

    هیچ ردیف یکسانی در جدول وجود ندارد (وجود یک کلید اصلی).

    ترتیب سطرها و ستون ها می تواند دلخواه باشد.

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

    اولین فرم معمولی

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

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

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

    · جدول باید حاوی داده هایی در مورد یک نوع از اشیاء باشد.

    · هر جدول باید حاوی یک فیلد یا چندین فیلد باشد که یک شناسه (یا کلید اصلی) منحصر به فرد را برای هر ردیف تشکیل می دهد.

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

    فرم سوم عادی

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

    انواع پیوند ویژگی های رابطه

    · رابطه یک به یک(1:1) به این معنی است که هر ورودی در یک جدول حداکثر با یک ورودی در جدول دیگر مطابقت دارد.

    · رابطه یک به چند(1:M) به این معنی است که هر رکورد در یک جدول با 0 یا 1 یا بیشتر رکورد در جدول دیگر مطابقت دارد.

    · رابطه چند به یک(M:1) شبیه نوع یک به چند است که قبلاً در نظر گرفته شد. نوع رابطه بین اشیا بستگی به دیدگاه دارد.

    · رابطه چند به چند(MM). زمانی بین دو جدول رخ می دهد که هر رکورد در یک جدول با 0 یا بیشتر رکورد در جدول دیگر مطابقت داشته باشد و بالعکس.

    کلیدهای ساده و مرکب

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

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

    چنین کلید اصلیتماس گرفت کلید ترکیبی

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

    سلسله مراتبی و مثال شبکه پایگاه داده، حاوی اطلاعات مربوط به بخش های شرکت و کارکنان شاغل در آنها، در رابطه با مدل رابطه ای به صورت زیر خواهد بود:

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

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

    محصول دکارتی (X)

    اطلاعات از دو رابطه متفاوت را در یک رابطه ترکیب می کند.

    نامگذاری - r Χ s،

    که در آن r و s نسبت هستند و خروجی آنها به صورت تعریف می شود

    r Χ s = (qt | q ∈ r و t ∈ s).

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

    تغییر نام عملیات (ρ).

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

    تعیین - ρ x(E)

    جایی که نتیجه عبارت E با نام x ذخیره می شود.

    عملیات اضافی:

    • تقاطع را تنظیم کنید.
    • وظیفه؛
    • اتصال طبیعی

    حساب رابطه ای

    این یک زبان پرس و جو غیر رویه ای است، یعنی می گوید چه باید کرد، اما نحوه پیاده سازی آن را توضیح نمی دهد. حساب رابطه ای به دو صورت وجود دارد:

    • حساب همبستگی یک تاپل.
    • فیلتر کردن محدوده های متغیر

    Notation - T/State: تمام تاپل های T را که یک شرط را برآورده می کنند، برمی گرداند. نتیجه. تاپل ها را با نام برمی گرداند. TRC را می توان کمی سازی کرد. می توانید از کمیت سازهای وجودی (∃) و جهانی (∀) استفاده کنید. نتیجه. پرس و جوی بالا همان نتیجه قبلی را خواهد داد.

    حساب رابطه ای دامنه DRC

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

    نماد - (a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n)),

    که در آن a1، a2 ویژگی ها هستند و P فرمول هایی را نشان می دهد که با مقادیر داخلی ساخته شده اند.

    نتیجه. مقاله، صفحه و موضوع را از رابطه TutorialsPoint که موضوع یک پایگاه داده است، تنظیم می کند.

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

    تغییرات و طرح های حساب رابطه ای و جبر

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

    • موجودیت و ویژگی های آن؛
    • یک پیوند، که ارتباطی بین مقادیر بالا است.

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

    • برای هر شی یک جدول ایجاد کنید.
    • ویژگی ها باید به فیلدهای جداول با انواع داده های مربوطه تبدیل شوند.
    • یک کلید اصلی را اعلام کنید

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

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

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

    • ایجاد جدول برای مجموعه ضعیفاشیاء؛
    • تمام صفات را به صورت فیلد به طرحواره اضافه کنید.
    • کلید اصلی را برای شناسایی مشخص کنید.
    • تمام محدودیت های کلید خارجی را تنظیم کنید.

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

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

    گزینه های موجود برای توصیف، ذخیره سازی، تغییر اطلاعات

    SQL یک زبان برنامه نویسی برای پایگاه داده های رابطه ای است. بر روی جبر و حساب همبستگی تاپل ها توسعه یافته است. SQL به عنوان یک بسته با تمام توزیع های اصلی DBMS ارائه می شود. هم شامل داده ها و هم زبان هایی برای دستکاری آنهاست. استفاده از ویژگی های تعریف داده های SQLجبر رابطه ای، شما می توانید طرح واره پایگاه داده را طراحی و تغییر دهید، در حالی که ویژگی های کنترل و تنظیم و همچنین تغییرات داده ها به شما امکان ذخیره و بازیابی اطلاعات نصب شده در سیستم را می دهد. از مجموعه دستورات زیر برای تعریف ساختار و سیستم استفاده می کند:

    • جداول و نماهای جدید را از DBMS ایجاد می کند.
    • دستور می دهد
    • شمای پایگاه داده را تغییر می دهد.
    • این دستور یک ویژگی به یک شی از نوع رشته اضافه می کند.

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

    1. SELECT یکی از دستورات اساسیدرخواست. این شبیه به عملیات طرح ریزی جبر رابطه ای است. ویژگی ها را بر اساس شرایط توصیف شده در عبارت WHERE انتخاب می کند.
    2. FROM - این بخش یک نام را به عنوان آرگومان می گیرد که از آن صفت ها باید انتخاب/پروژه شوند. در صورت ذکر بیش از یک نام، این مورد با محصول دکارتی مطابقت دارد.
    3. WHERE - این بخش گزاره یا شرایطی را که باید برای واجد شرایط بودن ویژگی پیش‌بینی‌شده رعایت شوند، تعریف می‌کند.

    همچنین دستوراتی وجود دارد:

    • درج
    • تغییر ارزش ها؛
    • حذف

    ایجاد پرس و جوهای جبر رابطه ای

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

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

    اطلاعاتی در مورد خودروهای مدل سال 1996 که در بازرسی سال 1999 کمبودهایی پیدا شد.

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

    فقط ماشین های 1996 جالب هستند. ترکیبوسیله نقلیه به عنوان مقدار ویژگی مجموعه در ردیف جدول اطلاعات خودرو نشان داده می شود. اولین نتیجه میانی شامل تاپل هایی است که انواع 1996 را نشان می دهد.

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

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

    انواع محاسبات بدون نتایج میانی

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

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

    جایی که اطلاعات ایمن و محافظت می شود

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

    1. اولیه. این دسته شامل حافظه هایی است که مستقیماً در دسترس CPU است. ثبت، حافظه سریع(کش) و اصلی (رم) مستقیماً در مرکز قابل دسترسی هستند، زیرا همه آنها روی مادربرد یا چیپ ست قرار دارند. این ذخیره سازی معمولاً بسیار کوچک، فوق العاده سریع و ناپایدار است. برای حفظ حالتی لازم است منبع دائمیتغذیه. در صورت خرابی، تمام داده های آن از بین می رود.
    2. ثانوی. برای ذخیره اطلاعات برای استفاده در آینده یا کپی رزرو کنید. شامل دستگاه های حافظه ای است که بخشی از چیپست یا مادربردبرای مثال پردازنده دیسک های مغناطیسی، دیسک های نوری (DVD، CD و غیره)، دیسک های سخت، درایوهای فلش و نوارهای مغناطیسی.
    3. دوره سوم. برای ذخیره حجم عظیمی از داده ها استفاده می شود. از آنجایی که چنین دستگاه های ذخیره سازی خارج از سیستم کامپیوتری هستند، از نظر سرعت کندترین آنها هستند. این ابزارهای ذخیره سازی عمدتاً برای پشتیبان گیری از کل سیستم استفاده می شوند. دیسک های نوریو نوارهای مغناطیسی به طور گسترده ای به عنوان ذخیره سازی سوم استفاده می شود.

    عملیات ویژه جبر رابطه ای برای کارایی پرس و جو مهم هستند.

    ساختار ذخیره سازی

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

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

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

    هارد دیسک ها برای ذخیره سازی کارآمد داده ها به ترتیبی کاملاً مشخص فرمت می شوند. دایره های متحدالمرکز زیادی دارد که مسیرها نامیده می شوند. هر آهنگ بیشتر به بخش هایی تقسیم می شود که معمولاً 512 بایت داده را ذخیره می کند.

    عملیات فایل

    عملیات روی یک سیستم زبان جبر رابطه ای و پایگاه داده آن را می توان به طور کلی به دو دسته طبقه بندی کرد:

    • به روز رسانی؛
    • جستجو کردن.

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

    1. باز - در یکی از دو حالت خواندن یا نوشتن وجود دارد. در حالت اول، سیستم عامل به کسی اجازه تغییر داده را نمی دهد. به عبارت دیگر، داده ها فقط خوانده می شوند. فایل هایی که در حالت خواندن باز می شوند را می توان بین چندین شی به اشتراک گذاشت. حالت نوشتن به شما امکان می دهد داده ها را تغییر دهید. فایل ها قابل خواندن هستند اما نمی توان آنها را به اشتراک گذاشت.
    2. بستن مهمترین عملیات از نظر است سیستم عامل، زیرا تمام قفل ها را حذف می کند (اگر در حالت باشد دسترسی عمومی، داده ها را (در صورت اصلاح) در رسانه ثانویه ذخیره می کند و تمام بافرها و کنترل کننده های مرتبط با فایل را آزاد می کند.
    3. نمایه سازی یک روش ساختار اطلاعاتی برای استخراج کارآمد رکوردها از فایل های یک سیستم بر اساس برخی از ویژگی هایی است که آن سیستم در آنجا پیاده سازی شده است. بر اساس صفات تعیین می شود.

    نمایه سازی می تواند از نوع زیر باشد:

    1. اولیه در فایل داده سفارش داده شده تعریف شده است. فایل اطلاعات در یک فیلد کلیدی سازماندهی شده است.
    2. ایندکس ثانویه از فیلدی تولید می شود که یک کلید کاندید است و دارد ارزش منحصر به فرددر هر ورودی یا نه یک کلید با مقادیر تکراری.
    3. خوشه بندی در فایل داده های مرتب شده، در یک فیلد غیر کلیدی تعریف شده است.

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

    بهترین مکان برای شروع یادگیری SQL با پایه های پایگاه های داده رابطه ای است. من توضیح خواهم داد که پایگاه داده رابطه ای چیست، رابطه چیست و چه عملیاتی را می توان روی آنها انجام داد.

    برو…

    SQL چیست؟

    SQL (زبان جستجوی ساختاریافته)زبان ساختار یافته query، یک زبان کامپیوتری همه منظوره است که برای ایجاد، تغییر و دستکاری داده ها در آن استفاده می شود پایگاه داده های رابطه ایداده ها

    پایگاه داده رابطه ای چیست؟

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

    رابطه چیست؟

    رابطه مجموعه ای از گاری ها است

    تاپل چیست؟

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

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

    رئوس نمودار عناصری از مجموعه ای از آنها هستند، در این مورد، این عنصر است a1از بسیاری آو عنصر b1از بسیاری ب. لبه بین رئوس نشان می دهد ارتباطبین عناصر یا همانطور که عنصر گفته می شود a1 با b1 در ارتباط است.

    من همان تاپل را با استفاده از جدول نشان خواهم داد:

    عدد 1 در a1و b1، خودسرانه انتخاب شد.

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

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

    من نشان خواهم داد که چگونه می توان رابطه را در قالب یک نمودار نشان داد:

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

    من نحوه نمایش رابطه را در قالب یک جدول نشان خواهم داد:

    دنباله خطیا تاپل هادر جدول مهم نیست، از نمودار من آنها را به ترتیب تصادفی گرفتم.

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

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

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

    به دلیل وجود آنها، امکان نمایش همه عملیات وجود ندارد مقدار زیاد، من فقط موارد اساسی را ارائه می دهم:

    1. انتخاب (اسامی عملیات دیگر انتخاب، محدودیت هستند)

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

    بگذارید یک رابطه وجود داشته باشد، بگذارید آن را "جدول منبع شماره 1" بنامیم:

    نتیجه "نمونه ها"از جدول اصلی شماره 1 مشروط بر اینکه A=a3

    در زبان SQL:

    نحو - SELECT * FROM table_name WHERE column_name=value

    SELECT * FROM source_table WHERE A=a3

    2. فرافکنی

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

    به عنوان مثال، یک رابطه وجود دارد، اجازه دهید آن را "جدول منبع شماره 2" بنامیم:

    بیایید عملیاتی را روی این رابطه انجام دهیم "طرح بینی"توسط صفات آو با، نتیجه:

    در نتیجه، ما دو تاپل یکسان به دست آوردیم، این امکان وجود ندارد، بنابراین ما آنها را کاهش می دهیم (در DBMS، کاهش به طور خودکار رخ می دهد):

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

    در زبان SQL:

    نحو - فهرست_ستون را از جدول_نام انتخاب کنید

    پیاده سازی برای این مورد - A,C را انتخاب کنیداز منبع_جدول_#2

    3. اتصال طبیعی

    عمل " اتصال طبیعی" انجام بیش از دو رابطه منطقی مرتبطدر نتیجه با ستون های رابطه اول و دوم و با تاپل هایی که در نتیجه به هم پیوستن هر تاپل از روابط اول و دوم به دست می آیند، رابطه جدیدی تشکیل می شود. مثال باید واضح تر باشد، فرض کنید دو رابطه وجود دارد، آنها را جدول منبع شماره 3.1 و جدول منبع شماره 3.2 بنامیم:

    جدول منبع شماره 3_1

    جدول منبع №3_2

    عملیات را انجام دهیم "اتصالات"رابطه اول و دوم، نتیجه:

    جالب است بدانید که نسبت اصلی را از بخش «2» به دست آورده‌ایم. طرح ریزی، ترتیب ستون ها در رابطه مهم نیست.

    در زبان SQL:

    پیاده سازی برای این مورد SELECT source_table_#3_1.*، source_table#3_2.IN FROM source_table_#3_1، source_table#3_2 WHERE source_table#3_1.A= جدول منبع#3_2.A است.

    4. تحکیم

    عمل "اتحاد. اتصال"انجام بیش از دو رابطه با مجموعه ستون های یکسان و نوع داده در آن ستون ها، نتیجه عملیات جدید است رابطه ای که شامل تمام تاپل های رابطه «اول» و «دوم» می شود(تکراری ها کاهش می یابد).

    جدول منبع شماره 4_1

    جدول منبع شماره 4_2

    بیایید یک عملیات انجام دهیم "انجمن ها"روابط #4.1 و روابط #4.2، نتیجه:

    در زبان SQL:

    نحو - SELECT table_column_list1 FROM table1 UNION SELECT table_column_list2 از جدول2

    پیاده سازی برای این مورد - A,B را انتخاب کنید FROM source_table_#4_1 UNION SELECT A، B ازمنبع_جدول_#4_2

    5. عبور

    عمل "عبور"در حال انجام است، نتیجه عملیات جدید است رابطه ای که شامل همان تاپل های روابط «اول» و «دوم» است.

    برای مثال، فرض کنید دو رابطه وجود دارد:

    جدول منبع شماره 5_1

    جدول منبع شماره 5_2

    بیایید یک عملیات انجام دهیم "تقاطع ها"با روابط داده شده، نتیجه این است:

    آن ها به رابطه حاصل، رسید تکرار تاپل هااز جانب "اولین"و "دومین"ارتباط.

    در زبان SQL:

    نحو عبارت است SELECT one_of_tables.column1، one_of_tables.column2، … FROM table1,table2 WHERE table1.column1=table2.column1 AND table1.column2= table2.column2 و …

    اجرا برای این مورد -

    source_table_#5_1.A, source_table_#5_1.B FROM source_table_#5_1, source_table_#5_2 WHERE source_table_#5_1.A = source_table_#5_2.A AND source_table_#5_1.B = source_table_#5_2.

    6. تفریق (تفاوت)

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

    برای مثال، فرض کنید دو رابطه وجود دارد:

    جدول منبع شماره 6_1

    جدول منبع شماره 6_2

    بیایید یک عملیات انجام دهیم "تفاوت"، یعنی از جدول اصلی شماره 6_1 جدول اصلی شماره 6_2 را کم می کنیم، نتیجه:

    آن ها رابطه حاصل، رابطه "اول" بدون تاپل های مکرر رابطه "دوم" است.

    در زبان SQL:

    پیاده سازی برای این مورد SELECT source_table_#6_1.A, source_table_#6_1.B FROM source_table_#6_1 WHERE NOT EXISTS است (انتخاب source_table_#6_2.A، source_table_#6_2.B از source_table_#6_2
    WHERE source_table_#6_2.A= source_table_#6_1.A AND source_table_#6_2.B= source_table_#6_1.B)

    7. محصول دکارتی

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

    به عنوان مثال، بیایید دو رابطه دلخواه داشته باشیم:

    جدول منبع شماره 7_1

    جدول منبع شماره 7_2

    تولید کنیم "ضرب دکارتی"با توجه به دو رابطه، نتیجه این است:

    در زبان SQL:

    پیاده سازی برای این مورد SELECT source_table_#7_1.A، source_table_#7_1.B، source_table_#7_2.A، source_table_#7_2.B FROM source_table_#7_1، source_table_#7_2 است.

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

    کلید چیست؟

    کلید این است یک یا چند ستون جدول, که به طور منحصر به فرد یک رکورد (رشته) را شناسایی می کند. به عنوان مثال، اجازه دهید یک رابطه در قالب یک جدول ارائه شود:

    کلیدرابطه داده شده می تواند ستون A باشد. زیرا فقط مقادیر این ستون با توجه، مثلا: a3یک ورودی را تعریف می کند "а3 b1 d3", a2ورودی را تعریف کنید "a2 b2 d3", a1یک ورودی را تعریف می کند "a1 b2 d1". ستون های دیگر این تابعنمی تواند تحمل کند.

    اگر کلید است یک ستون، سپس نامیده می شود سادهاگر از چندیناو نامیده می شود کامپوزیت. در این جدول علاوه بر کلید ساده، یکی دیگر وجود دارد - کامپوزیت، متشکل از ستون های B و D. مقادیر این ستون ها به طور منحصر به فرد رکورد (ردیف ها) را تعریف می کنند، به عنوان مثال: b1 و d3رکورد را منحصر به فرد شناسایی می کند "a3 b1 d3", b2 و d3به طور منحصر به فرد ورودی را شناسایی می کند "a2 b2 d3", b2 و d1رکورد را منحصر به فرد شناسایی می کند "a1 b2 d1".

    در عمل معمولاً فرد انتخاب می کند یک کلید, و ساده ترین، در این مورد این ستون A است. این کلید نیز نامیده می شود کلید اصلی».

    شما علاقه مند خواهید شد:

    ^

    سخنرانی شماره 4. جبر رابطه ای. عملیات Unary

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

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

    ^

    1. عملیات انتخاب Unary

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

    یا اصل، یعنی انتخاب سطرها

    تاپل هایی که شرایط یا شرایط خاصی را برآورده می کنند.

    ^ واکشی اپراتور نشان داده شده است σ <پ >, شرایط نمونه گیریپ <اس>، یعنی اپراتور σ همیشه با شرایط خاصی روی تاپل ها گرفته می شود پ، و خود شرایط پوابسته به طرح رابطه نوشته شده است اس. با در نظر گرفتن همه اینها، عملیات واکشیبر روی طرح رابطه S همانطور که در رابطه r اعمال می شود

    σ <پ >r (اس) σ <پ >r = {تی (اس) |تیr & پ <اس >تی } = {تی (اس) |تیr & IfNull (پ <اس >تی , نادرست };

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

    عملوندهایی که شرط انتخاب را برآورده می کنند پ تی. واضح است که برای اعمال چه

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

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

    ^S: جلسه (شماره کتاب نمره، نام خانوادگی، موضوع، نمره).

    شرط انتخاب را به صورت زیر در نظر می گیریم:

    پ <اس> = (موضوع = 'علوم رایانه' و درجه > 3).

    ما از رابطه اصلی نیاز داریم

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

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

    تی 0 (اس) ∈ r (اس

    اعمال شرط انتخاب ما برای یک تاپل تی 0، دریافت می کنیم:

    پ تی 0 = ('پایگاه های داده' = 'انفورماتیک' و 5 > 3);

    در این تاپل خاص، شرط انتخاب برآورده نمی شود.

    به طور کلی، نتیجه این نمونه خاص

    σ <Предмет = "Информатика" and Оценка >3>جلسه

    یک جدول "Session" وجود خواهد داشت که در آن ردیف هایی باقی می مانند که شرایط انتخاب را برآورده می کنند.

    ^

    2. عملیات طرح ریزی Unary

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

    یا امضا کنید یعنی ماشین آن ویژگی ها (یعنی به معنای واقعی کلمه آن ستون ها) رابطه اصلی را انتخاب می کند.

    عملوندی که در پروجکشن مشخص شد.

    ^ اپراتور پروجکشن نشان داده شده با [ اس"] یا π . اینجا اس"یک طرح فرعی از طرح رابطه اصلی است اس، یعنی برخی از ستون های آن. این یعنی چی؟ این بدان معنی است که S' دارای ویژگی های کمتری است اس، زیرا در اس"فقط آنهایی از آنها باقی می مانند که شرط طرح ریزی برای آنها برآورده شده است. و در جدول نشان دهنده رابطه r (اس")، به تعداد ردیف هایی که در جدول وجود دارد r (اس، و ستون های کمتری وجود دارد، زیرا فقط آنهایی که مربوط به ویژگی های باقی مانده هستند باقی می مانند. بنابراین عملگر پروجکشن π< S"> در رابطه با r (اس) منجر به یک رابطه جدید با یک طرح رابطه متفاوت می شود r (اس") متشکل از پیش بینی ها تی (اس) [اس"] تاپل های رابطه اصلی. این پیش بینی های چندگانه چگونه تعریف می شوند؟ فرافکنیهر تاپلی تی (اس) نسبت اصلی r (اس) در هر زیرمدار اس"با فرمول زیر تعریف می شود:

    تی (اس) [S' ] = {تی (آ)|آدف (تی) ∩ اس ’}, اس " ⊆اس .

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

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

    π <اس" >r (اس) ≡ π <S' >rr (اس) [اس ’] ≡ r [اس" ] = {تی (اس) [S' ] | تیr };

    بیایید به مثالی نگاه کنیم که نشان می دهد عملیات واکشی چگونه کار می کند.

    اجازه دهید رابطه "Session" و طرح این رابطه داده شود:

    اس: جلسه (شماره کتاب کلاس، نام خانوادگی، موضوع، نمره)؛

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

    ^S": (شماره دفترچه سوابق، نام خانوادگی).

    نیاز به یک رابطه اولیه r (اس) روی مدار فرعی پروژه دهید اس" .

    تی 0 (اس) ∈ r (اس): ((دفترچه شماره: 100)، (نام خانوادگی: ‘ایوانف’)، (موضوع: ‘پایگاه های اطلاعاتی’)، (امتیاز: 5));

    از این رو، طرح ریزی این تاپل بر روی مدار فرعی داده شده است ^S"به این صورت خواهد بود:

    تی 0 (اس) اس": ((شماره کتاب نمره: 100)، (نام خانوادگی: "ایوانف"));

    اگر در مورد عملیات پروجکشن بر حسب جداول صحبت کنیم، سپس Projection Session [شماره کتاب کلاس، نام خانوادگی] رابطه اصلی، جدول Session است که از آن همه ستون ها حذف می شوند، به جز دو مورد: شماره دفترچه نمره و نام خانوادگی. علاوه بر این، تمام خطوط تکراری نیز حذف شده است.

    ^

    3. عملیات تغییر نام Unary

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

    ^ تغییر نام اپراتور به شرح زیر است: ρ<φ >، اینجا φ – تغییر نام تابع .

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

    مطابقت یک به یک بین نام ویژگی های طرحواره اسو Ŝ, به ترتیب S-طرح رابطه اصلی، و Ŝ طرح واره رابطه با ویژگی های تغییر نام یافته بنابراین اپراتور ρ <φ> در رابطه با r (اس) رابطه جدیدی با طرحواره می دهد Ŝ A که متشکل از چندین رابطه اصلی با ویژگی های تغییر نام یافته است.

    بیایید عملیات تغییر نام ویژگی ها را از نظر سیستم های مدیریت پایگاه داده بنویسیم:

    ρ <φ > r (اس) ≡ ρ <φ >r = {ρ <φ > تی (اس)| تیr };

    در اینجا مثالی از استفاده از این عملیات آورده شده است:

    بیایید رابطه Session را که قبلاً برای ما آشنا بود با این طرح در نظر بگیریم:

    س:جلسه (شماره کتاب نمره، نام خانوادگی، موضوع، نمره)؛

    معرفی کنیم طرح جدیدروابط Ŝ، با نام های ویژگی دیگری که مایلیم به جای نام های موجود ببینیم:

    Ŝ : (شماره ZK، نام خانوادگی، موضوع، امتیاز)؛

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

    φ : (دفترحساب شماره، نام خانوادگی، موضوع، نمره) → (شماره ZK، نام خانوادگی، موضوع، امتیاز);

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

    φ : (شماره کتاب نمره، درجه) (شماره ZK، امتیاز)؛

    تی 0 (اس) r (اس): ((دفترچه شماره: 100)، (نام خانوادگی: 'ایوانف')، (موضوع: 'پایگاه های داده')، (امتیاز: 5));

    عملگر تغییر نام را به این تاپل اعمال کنید:

    ρ<φ>تی 0 (اس): ((ZK#: 100)، (نام خانوادگی: 'ایوانف')، (موضوع: 'پایگاه های داده')، (امتیاز: 5));

    بنابراین، این یکی از تاپل های رابطه ما است که ویژگی های آن تغییر نام داده شده است.

    در قالب جدول، نسبت

    ρ < № зачетной книжки, Оценка «شماره ZK، امتیاز > جلسه -

    این جدول جدیدی است که از جدول رابطه Session با تغییر نام ویژگی های مشخص شده به دست آمده است.

    ^

    4. خواص عملیات unary

    عملیات Unary، مانند هر عملیات دیگری، دارای ویژگی های خاصی است. بیایید مهمترین آنها را در نظر بگیریم.

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

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

    1) نسبت توان:

    الف) برای عملیات انتخاب: | σ <پ >r |≤ |r |;

    ب) برای عملیات طرح ریزی: | r [اس" ] | ≤ |r |;

    ج) برای عملیات تغییر نام: | ρ <φ >r | = |r |;

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

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

    2) دارایی ناتوان:

    الف) برای عملیات واکشی: σ <پ > σ <پ >r = σ <پ >;

    ب) برای عملیات طرح ریزی: r [S' ] [S' ] = r [اس" ];

    ج) در مورد عملیات تغییر نام، در حالت کلی، خاصیت عدم صلاحیت قابل اعمال نیست.

    این ویژگی به این معنی است که دو بار متوالی یک عملگر مشابه را اعمال کنید

    یا رابطه معادل کاربرد واحد آن است.

    برای عملیات تغییر نام ویژگی های رابطه، به طور کلی، این ویژگی را می توان اعمال کرد، اما با رزرو و شرایط خاص.

    خاصیت ناتوانی اغلب برای ساده کردن شکل یک بیان و رساندن آن به شکل اقتصادی تر و واقعی تر استفاده می شود.

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

    3) خاصیت یکنواختی:

    الف) برای عملیات واکشی: r 1 r 2 ⇒ σ <پ > r 1 σ <پ >r 2 ;

    ب) برای عملیات طرح ریزی: r 1 r 2 r 1 [اس" ] r 2 [اس" ];

    ج) برای عملیات تغییر نام: r 1 r 2 ρ <φ >r 1 ⊆ ρ <φ >r 2 ;

    مفهوم یکنواختی در جبر رابطه ای مشابه همان مفهوم جبر معمولی و عمومی است. اجازه دهید توضیح دهیم: اگر در ابتدا رابطه r 1 و r 2 به گونه ای به یکدیگر متصل شدند که rr 2 , سپس حتی پس از اعمال هر یک از سه عملگر انتخاب، طرح ریزی یا تغییر نام، این رابطه حفظ خواهد شد.

    رابطه بین رکورد مالک و رکورد عضو نیز 1:N است.

    تفاوت اصلی این مدل هااین است که در مدل شبکه، یک ورودی می تواند عضوی از بیش از یک رابطه گروهی باشد. بر اساس این مدل، هر رابطه گروهی نامگذاری می شود و بین نوع و نمونه آن تمایز قائل می شود. نوع رابطه گروهی با نام آن مشخص می شود و ویژگی های مشترک برای همه نمونه ها را تعریف می کند از این نوع. یک نمونه از یک رابطه گروهی با یک رکورد مالک و مجموعه ای (احتمالا خالی) از رکوردهای فرعی نشان داده می شود. دارای محدودیت زیر است: ثبت نمونهنمی تواند عضو دو نمونه از روابط گروهی از یک نوع باشد (به عنوان مثال، یک کارمند از مثال در بند.. 1، برای مثال، نمی تواند در دو بخش کار کند).

    • درختان (الف) و (ب) نشان داده شده در شکل. 4.2 با یک ساختار شبکه واحد جایگزین می شوند که در آن ورودی EMPLOYEE در دو رابطه گروهی گنجانده شده است.
    • برای نمایش نوع M:N، رکورد EMPLOYEE_CONTRACT وارد می شود که هیچ فیلدی ندارد و فقط برای پیوند دادن رکوردهای CONTRACT و EMPLOYEE به کار می رود (شکل 4.3 را ببینید). توجه داشته باشید که این ورودی همچنین می تواند ذخیره شود اطلاعات مفیدبه عنوان مثال، سهم این کارمند از کل پاداش این قرارداد.


    برنج. 4.3.

    هر نمونه از یک رابطه گروهی با ویژگی های زیر مشخص می شود:

    روش سفارش رکوردهای فرعی:

    • دلخواه،
    • زمانی /صف/،
    • زمانی معکوس /پشته/،
    • متنوع

    اگر رکوردی در بیش از یک رابطه گروهی به عنوان تابع اعلام شود، آنگاه می توان به هر یک از آنها روش ترتیب خاص خود را اختصاص داد.

    حالت گنجاندن رکورد فرعی:

    • خودکار - ورود یک رکورد به پایگاه داده بدون اینکه بلافاصله به مالک خاصی اختصاص داده شود غیرممکن است.
    • دستی - به شما امکان می دهد یک رکورد فرعی را در پایگاه داده ذخیره کنید و بلافاصله آن را در یک نمونه از یک رابطه گروهی قرار ندهید. این عملیات بعداً توسط کاربر آغاز می شود.

    حالت استثنا

    مرسوم است که در روابط گروهی سه دسته از عضویت رکوردهای فرعی را تشخیص دهیم:

    • درست شد.یک رکورد فرعی به شدت به سابقه مالک مرتبط است و تنها با حذف آن می توان از رابطه گروهی حذف کرد. هنگامی که یک رکورد مالک حذف می شود، تمام رکوردهای فرعی نیز به طور خودکار حذف می شوند. در مثال بالا، عضویت ثابت دلالت بر یک رابطه گروهی "CONCLUDES" بین سوابق "CONTRACT" و "CUSTOMER" دارد زیرا قرارداد بدون مشتری نمی تواند وجود داشته باشد.
    • اجباری.تغییر یک رکورد فرعی به مالک دیگری مجاز است، اما وجود آن بدون مالک غیرممکن است. برای حذف یک سابقه مالک، باید هیچ سابقه فرعی با عضویت اجباری نداشته باشد. سوابق "کارمند" و "دپارتمان" مربوط به این رابطه است. اگر یک بخش منحل شود، همه کارکنان آن باید یا به بخش های دیگر منتقل شوند یا اخراج شوند.
    • اختیاری.شما می توانید یک رکورد را از یک رابطه گروهی حذف کنید، اما آن را بدون پیوست کردن به مالک دیگری در پایگاه داده نگه دارید. هنگامی که یک رکورد مالک حذف می شود، سوابق زیرمجموعه آن - اعضای اختیاری در پایگاه داده ذخیره می شوند و دیگر در یک رابطه گروهی از این نوع شرکت نمی کنند. نمونه ای از چنین روابط گروهی "اجرا" بین "کارکنان" و "قرارداد" است، زیرا ممکن است کارکنانی در سازمان وجود داشته باشند که فعالیت های آنها با انجام تعهدات قراردادی به مشتریان مرتبط نباشد.

    عملیات روی داده ها در مدل پایگاه داده شبکه

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

    محدودیت های یکپارچگی

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

    مزایا و معایب DBMS اولیه

    مزایای DBMS اولیه:

    • ابزارهای پیشرفته مدیریت داده حافظه خارجیدر سطح پایین؛
    • توانایی ساخت دستی سیستم های کاربردی موثر؛
    • امکان ذخیره حافظه با جداسازی اشیاء فرعی (در سیستم های شبکه)

    معایب DBMS اولیه:

    • پیچیدگی استفاده؛
    • سطح بالایی از الزامات دانش در مورد سازمان فیزیکی پایگاه داده؛
    • وابستگی سیستم های کاربردی به سازمان فیزیکی پایگاه داده؛
    • بارگذاری بیش از حد منطق سیستم های کاربردی با جزئیات سازماندهی دسترسی به پایگاه داده.

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

    DBMS شی گرا

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

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

    می دانیم که هر مدل داده باید شامل سه جنبه باشد: ساختاری، کل نگر و دستکاری. بیایید ببینیم که چگونه آنها بر اساس شی گرا پیاده سازی می شوند پارادایم های برنامه نویسی.

    ساختار

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

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

    یکپارچگی داده

    برای حفظ یکپارچگی، رویکرد شی گرا استفاده از ابزارهای زیر را پیشنهاد می کند:

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

    ابزارهای دستکاری داده ها

    متاسفانه، برنامه نویسی شی گرا فاقد ابزارهای رایج دستکاری داده ها مانند جبر رابطه ای یا حساب رابطه ای است. کار با داده ها با استفاده از یکی از زبان های برنامه نویسی شی گرا انجام می شود همه منظوره، معمولاً SmallTalk، C++ یا Java.

    بیایید اکنون برخی را خلاصه کنیم

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

    در همان زمان، o.o. این مدل همچنین دارای معایبی است.:

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

    بدیهی است که هر دوی این کاستی ها با فقدان ابزارهای دستکاری داده توسعه یافته همراه است. این مشکل به دو صورت حل می شود - با گسترش زبان های OO به سمت مدیریت داده ها (استاندارد ODMG)، یا با افزودن ویژگی های شی به DBMS های رابطه ای (SQL-3 و همچنین به اصطلاح DBMS های شی رابطه ای).