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

توسعه برنامه های کاربردی پایگاه داده تعداد ساعت های از دست رفته در فیزیک

آژانس فدرال آموزش

موسسه آموزشی دولتی آموزش عالی حرفه ای

"دانشگاه دولتی چلیابینسک"

کار دوره

توسعه اپلیکیشن پایگاه داده

تجزیه و تحلیل دامنه

شرح حوزه موضوعی و کارکردهای وظایفی که باید حل شوند

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

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

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

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

میز 1.

تعداد کارگاه نام کارگاه نام محصول حداقل واحد خروجی قیمت هر واحد شیر 3.5% جعبه 50 عدد 650.00 روبل. جعبه کرم 50 عدد 1 200.00 مالش. بسته بندی سوسیس آب پز 50 عدد2 500.00 روبل.2 بسته بندی سوسیس دودی 50 عدد3 400.00 روبل. بسته سوسیس 50 عددی 1 200.00 روبل. جعبه کنسرو زندر 50 قوطی 670.00 روبل. 3 خاویار ماهی جعبه سیاه 50 قوطی 5 400.00 روبل. جعبه خاویار قرمز 50 قوطی 5 370.00 روبل. محصولات تولید شده توسط کارگاه ها به انبارها تحویل داده می شود

جدول 2.

شماره انبار نام انبار 1 انبار شماره 12 انبار شماره 23 انبار شماره 3

فهرست اسناد ورودی (اولیه).

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

پلان طبقه مغازه

لیست فاکتور مغازه

شماره کارگاه شماره فاکتور مغازه تاریخ تحویل

مشخصات فاکتور مغازه

شماره فروشگاه شماره فاکتور فروشگاه کد محصول مقدار

محدودیت منطقه موضوعی

هنگام توسعه یک پروژه دوره، محدودیت های زیر مجاز است:

محصول نهایی به یک انبار محصولات نهایی اختصاص داده می شود و می تواند توسط چندین کارگاه تولید شود.

محصول نهایی فقط یک واحد اندازه گیری دارد.

یک مغازه می تواند چندین نوع محصول تولید کند.

یک انبار می تواند چندین نوع محصول نهایی را ذخیره کند.

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

همان محصول را می توان برای عرضه در ماه های مختلف برنامه ریزی کرد.

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

فرمول بندی مسئله

جوهر سازمانی و اقتصادی مجموعه وظایف.

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

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

شرح اطلاعات خروجی

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

تحلیل اجرای طرح تحویل محصولات به انبار _________________

ماه نام محصول واحد اندازه گیریQuantitySurplusPlanFact

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

لیست محصولات؛

لیست انبارها؛

لیست کارگاه های آموزشی؛

برنامه ریزی برای تولید محصولات توسط کارگاه ها؛

لیست فاکتورهای مغازه؛

شرح اطلاعات ورودی

اطلاعات ورودی به ثابت مشروط (دایرکتوری) تقسیم می شود که مقادیر خود را برای مدت طولانی حفظ می کند و دائماً در حال تغییر است، یعنی اطلاعات حسابداری عملیاتی.

اطلاعات دائمی مشروط شامل:

لیست محصولات تولیدی؛

لیست مغازه های تولیدی؛

لیست انبارها؛

کتاب مرجع واحدهای اندازه گیری

اطلاعات حسابداری عملیاتی شامل:

برنامه ریزی برای تولید محصولات توسط کارگاه ها؛

لیست فاکتورهای مغازه؛

مشخصات فاکتور مغازه

اجازه دهید اسناد اولیه را با جزئیات در جدول 3 ارائه کنیم:

شماره مورد نام سند جزئیات 1 لیست محصولات تولیدی 1. کد محصول 2. نام محصول. 3. کد واحد اندازه گیری. 4-قیمت 5. انبار شماره 3 لیست انبارها 1. کد انبار. 2.نام انبار.2لیست کارگاه ها1.کد کارگاه. 2.نام کارگاه.4دایرکتوری واحدهای اندازه گیری1.کد واحد اندازه گیری. 2. نام واحد اندازه گیری 5 طرح تولید محصولات توسط کارگاه ها 1. شماره کارگاه. 2. ماه انتشار. 3. کد محصول 4.Quantity6List فاکتورهای مغازه 1.شماره فروشگاه. 2. شماره فاکتور فروشگاه. 3.تاریخ تحویل.7مشخصات فاکتور فروشگاه1.شماره مغازه. 2. شماره فاکتور فروشگاه. 3. کد محصول 4. کمیت.

طراحی پایگاه داده

انتخاب اشیاء اطلاعاتی

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

اطلاعات موجود در جدول نباید تکراری باشد. بین جداول نباید تکرار شود.

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

هر جدول فقط باید حاوی اطلاعاتی در مورد یک موضوع باشد.

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

هر جدول حاوی اطلاعاتی در مورد یک موضوع جداگانه است و هر فیلد در جدول حاوی اطلاعات جداگانه در مورد موضوع جدول است

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

جدول 4

اشیاء اطلاعاتی

Информационный объектСоответствующий документРеквизитыКлючИзделияСписок выпускаемых изделийКод изделияДа Наименование изделияКод единицы измеренияЦена Номер складаЦехаСписок цеховНомер цехаДа Наименование цехаСкладыСписок складовНомер складДаНаименование складаЕдиница измеренияСправочник единиц измеренияКод единицы измеренияДа Наименование единицы измеренияПлан выпускаПлан выпуска изделий цехамиНомер цехаДаНомер месяцаДа Код изделияДа КоличествоЦеховые накладныеСписок цеховых накладныхНомер цехаДа Номер цеховой накладнойДа Дата сдачиСпецификации Спецификация цеховой накладнойНомер цехаДаНомер цеховой یادداشت تحویل بله کد محصول بله مقدار ماه برای شی "طرح انتشار"شماره ماه بله نام ماه

مدلسازی منطقی اطلاعات و تعیین پیوندهای بین اشیاء اطلاعاتی

مدل اطلاعاتی-منطقی یک مدل داده است که یک منطقه موضوعی را در قالب مجموعه ای از اشیاء اطلاعاتی و روابط ساختاری بین آنها نمایش می دهد.

مدل اطلاعاتی-منطقی ما به صورت زیر خواهد بود:

عکس. 1. مدل اینفولوژیک

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

واحد اندازه گیری - محصول

نوع رابطه 1 به چند است، زیرا چندین محصول را می توان با یک واحد اندازه گیری اندازه گیری کرد، اما هر محصول در حال حاضر با یک واحد اندازه گیری اندازه گیری می شود. ارتباط بین این اشیاء بر اساس ویژگی کد واحد اندازه گیری است.

انبارها - محصول

نوع رابطه 1 به چند است، زیرا می توان چندین مورد از محصولات نهایی را در یک انبار ذخیره کرد. ارتباط - با شماره انبار مورد نیاز.

محصولات - طرح انتشار

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

ماه - طرح انتشار

نوع رابطه 1 به چند، هر ماه یک برنامه عرضه محصول ترسیم می شود. تماس با ویژگی شماره ماه.

کارگاه ها - طرح انتشار

نوع ارتباط 1- برای بسیاری، یک فروشگاه قرار است در ماه های مختلف عرضه شود. ارتباط با ویژگی شماره کارگاه.

کارگاه ها - فاکتورهای کارگاهی

کارگاه ها - مشخصات

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

فاکتورهای فروشگاه - مشخصات

نوع رابطه 1 به چند، فاکتور یک فروشگاه می تواند حاوی چندین BOM برای یک محصول باشد. ارتباط با جزئیات - شماره فاکتور فروشگاه و شماره مغازه.

مشخصات محصول

نوع رابطه 1 به چند، یک مورد یکسان بیش از یک بار تولید می شود، اما یک مقدار معین منتشر شده تنها به یک مورد اشاره دارد. ارتباط با ویژگی کد محصول.

ساختار منطقی پایگاه داده

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

در این مقاله ترمساختار منطقی پایگاه داده مانند (شکل 2) خواهد بود:

شکل 2. ساختار منطقی پایگاه داده

پیاده سازی پایگاه داده در مایکروسافت اکسس

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

MS Access DBMS بر روی کار با اشیاء زیر متمرکز است:

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

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

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

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

ماکروها - یک شی است که توصیفی ساختار یافته از یک یا چند عمل است که MS Access باید در پاسخ به یک رویداد خاص انجام دهد.

ماژول ها اشیایی هستند که شامل برنامه هایی هستند که به یک زبان نوشته شده اند ویژوال بیسیکبرای برنامه های کاربردی (VBA).

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

تمام اشیاء MS Access در یک فایل روی دیسک قرار می گیرند. MS Access دارای یک رابط چند پنجره ای است اما تنها می تواند یک پایگاه داده را در یک زمان پردازش کند.

برای ایجاد یک پایگاه داده جدید، باید MS Access را راه اندازی کنید، " را انتخاب کنید پایه جدیدداده»، نام پایگاه داده را وارد کرده و مکان آن را روی دیسک انتخاب کنید.

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

برای پر کردن اطلاعات ورودی، طراحی رابط کاربری - فرم‌ها ضروری است:

فرم "محصولات" - برای ویرایش جدول "محصولات"؛

فرم "طرح تولید" - برای اصلاح طرح تعداد محصولات تولید شده؛

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

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

ایجاد جدول و طرح داده

فروش پایگاه داده اپلیکیشن

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

Microsoft Access از انواع داده های زیر پشتیبانی می کند:

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

فیلد MEMO - برای ذخیره اطلاعات الفبایی عددی تا 65535 کاراکتر طراحی شده است.

عددی - برای داده های عددی درگیر در محاسبات استفاده می شود.

تاریخ / زمان - تاریخ و (یا) زمان در محدوده 100 تا 9999؛

پولی - برای مقادیر پولی و داده های عددی مورد استفاده در محاسبات ریاضی استفاده می شود که با دقت حداکثر 15 رقم در کل و حداکثر تا 4 رقم در قسمت کسری انجام می شود.

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

Boolean - برای مقادیر بولی (بله/خیر، درست/نادرست) طراحی شده است. طول میدان منطقی - 1 بیت.

یک فیلد شی OLE هر شیء با فرمت باینری (سند Word، صفحه گسترده اکسل، تصویر، ضبط صدا) است که به جدول MS Access پیوند داده شده یا در آن جاسازی شده است. اندازه چنین فیلدی نباید از 1 گیگابایت تجاوز کند.

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

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

اندازه فیلد - طول فیلد را به تعداد مشخصی از کاراکترها محدود می کند.

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

تعداد ارقام اعشار - برای فیلدهای پولی و عددی تعداد ارقام اعشار را تنظیم می کند.

ماسک ورودی - برای فیلدهای متنی و فیلدهای تاریخ، الگویی را تعریف می کند که براساس آن داده ها در فیلد وارد می شوند.

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

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

نوع فیلدداده اندازه فیلد کلید اولیه کد واحد عددی عدد صحیح طولانی بله نام واحدText50

جدول "محصولات"

FieldData TypeField Size Primary ItemCodeNumeric Long IntegerYes ItemNameText100Unit CodeNumericLong IntegerPrice Monetary- WarehouseNumberNumericByte

جدول "انبارها"

نوع فیلدداده اندازه فیلد کلید اولیه شماره انبار عدد بایت بله نام انبارمتن20

جدول ماه

نوع داده‌های فیلد اندازه فیلد کلید اولیه شماره ماه عدد صحیح عددی بله (هیچ منطبقی مجاز نیست) نام ماه متن20

جدول "کارگاه آموزشی"

نوع فیلدداده اندازه فیلد کلید اولیه شماره فروشگاه عدد بایت بله نام فروشگاهText30

جدول طرح انتشار

FieldData TypeField SizePrimary Keyshop NumberNumericByteYesMonthNumberNumericIntegerYesPartCodeNumeric LongIntegerYesQuantityNumericReal(16) جدول "فاکتورهای فروشگاه"

نوع داده فیلد اندازه فیلد کلید اولیه شماره فروشگاهNumericByteYes شماره فاکتور فروشگاهNumericعدد صحیح طولانی بله تاریخ تحویل تاریخ\زمان-

جدول "مشخصات"

FieldData TypeField SizePrimary Keyshop NumberNumericByteYesفروشگاه شماره فاکتورNumericLong IntegerYesPart CodeNumeric Long IntegerYesQuantityNumericReal (16)

یک طرح داده در Microsoft Access ایجاد کنید:

شکل 3. طرح واره داده

ایجاد رابط کاربری

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

انواع فرم های زیر وجود دارد:

عادی - یک رکورد از منبع داده را نمایش می دهد.

چند صفحه ای - طراحی شده برای کار با منبع داده ای که تعداد زیادی فیلد دارد.

روبان - چندین رکورد از منبع داده را نشان می دهد، مناسب برای عدم وجود تعداد زیادیزمینه های؛

پاپ آپ - نمایش داده می شود پیش زمینهصفحه نمایش و به شما امکان می دهد با فرم های دیگر کار کنید.

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

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

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

پرکاربردترین عناصر:

(کتیبه) - در خدمت ایجاد کتیبه های دائمی به شکل.

(فیلد) - عنصری که مقدار را از منبع داده نشان می دهد.

(جعبه ترکیبی) - طراحی شده است تا در قالب لیست های کشویی ایجاد شود.

(دکمه) - طراحی شده برای ایجاد دکمه های فرمان به شکلی که اقدامات خاصی را انجام می دهد.

(چک باکس) - عنصری که به شما امکان می دهد مقدار یک پارامتر را فعال یا غیرفعال کنید.

(فرم فرعی) - برای جاسازی یک زیرفرم در فرم اصلی استفاده می کند.

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

به عنوان بخشی از کار دوره، فرم های زیر ایجاد شد:

برنج. 4. محصولات.

شکل 5. طرح انتشار

فرم "فاکتورهای کارگاه" حاوی فرم فرعی "مشخصات" است.

شکل 6. فاکتورهای فروشگاهی

اجرای گزارش

قبل از ایجاد یک گزارش، باید یک پرس و جو ایجاد کنید.

کوئری ها ابزاری ضروری در هر سیستم مدیریت پایگاه داده هستند. هدف از درخواست ها - در شرح انواع درخواست ها.

کوئری ها را می توان هم در حالت Query Wizard (سپس باید نوع پرس و جو را انتخاب کرد) و هم در Query Builder ایجاد کرد.

چهار نوع پرس و جو در مایکروسافت اکسس وجود دارد:

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

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

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

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

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

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

برای این گزارش، پرس و جو با استفاده از سازنده ایجاد شد:

شکل 8. درخواست نتیجه

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

گزارش نویسی

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

این گزارش شامل حوزه های زیر است:

عنوان - فقط یک بار در ابتدای گزارش نمایش داده می شود.

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

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

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

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

ایجاد گزارش و همچنین فرم ها با استفاده از جادوگر راحت تر است.

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

در نتیجه اجرای گزارش، فرم چاپی آن به دست آمد.

تحلیل اجرای طرح تحویل محصولات به انبار شماره 1، 2، 3 - شکل 10-12.

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

شکل 9. طراح گزارش

شکل 10. تحلیل اجرای طرح تحویل محصولات به انبار شماره 1

شکل 11. تحلیل اجرای طرح تحویل محصولات به انبار شماره 2

شکل 12. تحلیل اجرای طرح تحویل محصولات به انبار شماره 3

کتابشناسی - فهرست کتب

تاراسوف V.L. کار با پایگاه های داده در محیط اکسس، آموزش / دانشگاه ایالتی نیژنی، نیژنی نووگورود, 2005.

Shekhtman V.E. پایگاه های داده، راهنمای آموزشی و روشی SQL در مورد رشته های "پایگاه های اطلاعاتی"، "پایگاه های اطلاعاتی و سیستم های خبره"، فن آوری پیشرفتهبرنامه نویسی SQL". / - NFI KemGU، Novokuznetsk، 2006.

Andreev V.A.، Tupikina E.N.، سیستم های مدیریت پایگاه داده (Microsoft Access)، دستورالعمل ها/ DVGAEU، ولادی وستوک، 2003.

Veiskas D.، کار موثر با دسترسی، کتاب درسی / سنت پترزبورگ، 1996.

هوموننکو A.F.، Tsygankov V.M.، Maltsev M.G. پایگاه های داده، کتاب درسی برای دبیرستان ها / ویرایش. پروفسور A.D. Homonenko.- سنت پترزبورگ: چاپ تاج، 2002.

  • توسعه اندروید
    • آموزش
    • حالت بازیابی

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

    درباره این سوال ابدی: چرا؟

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


    اگر برنامه ما بیش از 5 جدول دارد، بد نیست از ابزاری برای طراحی بصری معماری پایگاه داده استفاده کنیم. از آنجایی که این یک سرگرمی برای من است، من کاملا استفاده می کنم ابزار رایگانبه نام Oracle SQL Developer Data Modeler (می توانید آن را دانلود کنید).

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

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

    این ابزارآنالوگ محصولات معروفی مانند SQL Naviagator، Toad و غیره است. اما همانطور که از نام آن پیداست، برای کار با SQLite طراحی شده است. این به شما اجازه می دهد تا به صورت بصری یک پایگاه داده ایجاد کنید و کد DDL را دریافت کنید جداول ایجاد کرد. ضمناً به شما امکان ایجاد نما (View) را نیز می دهد که در صورت تمایل می توانید از آن در برنامه خود نیز استفاده کنید. نمی دونم روش استفاده از view ها در برنامه های اندروید تا چه حد درسته ولی در یکی از اپلیکیشن هام ازشون استفاده کردم.

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


    درباره دایرکتوری های db و داده

    داخل یک دایرکتوری دارایی هایمن دو دایرکتوری ایجاد کردم db_01و data_01. اعداد در نام دایرکتوری با شماره نسخه پایگاه داده من که با آن کار می کنم مطابقت دارد. در دایرکتوری dbدر من اسکریپت های SQL ایجاد جداول ذخیره می شود. و در دایرکتوری داده هاداده های لازم برای پر کردن اولیه جداول ذخیره می شود.


    حالا بیایید به کد داخل من نگاه کنیم DBHelperکه در پروژه هایم استفاده می کنم. اول، متغیرهای کلاس و سازنده (در اینجا جای تعجب نیست):

    Private static final String TAG = "RoadMap4.DBHelper"; رشته mDb = "db_"; String mData = "data_"; زمینه mContext; int mVersion; عمومی DBHelper (زمینه زمینه، نام رشته، نسخه int) ( فوق العاده (زمینه، نام، تهی، نسخه)؛ mContext = زمینه؛ mVersion = نسخه؛ )
    حالا روش در ایجادو اینجاست که چیزها جالب می شوند:

    @Override public void onCreate(SQLiteDatabase db) (ArrayList جداول = getSQLTables(); برای (جدول رشته: جداول)( db.execSQL(جدول)؛ ) ArrayList > dataSQL = getSQLData(); برای (HashMap hm: dataSQL)( برای (جدول رشته: hm.keySet())(Log.d(TAG، "insert into " + table + " " + hm.get(table))؛ ردیف طولانی = db.insert(جدول، null، hm.get(جدول))؛ ) ))
    از نظر منطقی به دو چرخه تقسیم می شود، در چرخه اول لیستی از دستورالعمل های SQL برای ایجاد پایگاه داده دریافت می کنم و سپس آنها را اجرا می کنم، در چرخه دوم جداول قبلاً ایجاد شده را با داده های اولیه پر می کنم. بنابراین، مرحله اول:

    ArrayList خصوصی getSQLTables() (ArrayList جداول = ArrayList جدید<>() ArrayList فایل ها = ArrayList جدید<>() AssetManager assetManager = mContext.getAssets(); رشته dir = mDb + mVersion; try ( String listFiles = assetManager.list(dir)؛ برای (String file: listFiles)( files.add(file); ) Collections.sort(files, new QueryFilesComparator())؛ BufferedReader bufferedReader؛ String Query؛ String line; for (فایل رشته: فایل ها) (Log.d(TAG، "فایل db" + فایل است؛ bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file)))؛ query = ""; while ((line = bufferedReader.readLine()) != null)( query = query + line; ) bufferedReader.close(); tables.add(query); ) ) catch (IOException e) (e.printStackTrace(); ) برگرداندن جداول؛ )
    همه چیز در اینجا بسیار ساده است، ما فقط محتویات فایل ها را می خوانیم و محتویات هر فایل را به یک عنصر آرایه الحاق می کنیم. لطفا توجه داشته باشید که من لیست فایل ها را مرتب می کنم، زیرا جداول می توانند کلیدهای خارجی داشته باشند، به این معنی که جداول باید به ترتیب خاصی ایجاد شوند. من از شماره گذاری در نام فایل استفاده می کنم و با کمک آن مرتب می کنم.

    کلاس خصوصی QueryFilesComparator Comparator را پیاده سازی می کند ( @Override public int compare(String file1, String file2) ( Integer f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0,2))؛ f2 را برگردانید .compareTo(f1); ) )
    با پر کردن جداول، همه چیز سرگرم کننده تر می شود. جداول من نه تنها با مقادیر سخت کد شده، بلکه با مقادیر منابع و کلیدهای UUID نیز پر شده است (امیدوارم روزی به نسخه شبکه ای از برنامه خود بیایم تا کاربرانم بتوانند با داده های مشترک کار کنند). ساختار فایل ها با داده های اولیه به این صورت است:


    علیرغم اینکه فایل های من پسوند sql دارند، هیچ کد sql داخل آن وجود ندارد، اما این مورد:

    اولویت های
    pri_id:UUID:UUID

    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    اولویت های
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:hold
    pri_color:color:colorBlue
    pri_default:int:0
    اولویت های
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:مهم
    pri_color:color:colorRed
    pri_default:int:0
    اولویت های
    pri_id:UUID:UUID

    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    اولویت های
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:hold
    pri_color:color:colorBlue
    pri_default:int:0
    اولویت های
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:مهم
    pri_color:color:colorRed
    pri_default:int:0

    ساختار فایل به این صورت است: من یک تابع فراخوانی می کنم شکاف(":")در رابطه با خط و اگر بفهمم اندازه آن 1 است، این نام جدولی است که داده ها باید در آن نوشته شوند. در غیر این صورت، این خود داده است. فیلد اول نام فیلد در جدول است. فیلد دوم نوعی است که به وسیله آن تعیین می کنم چه چیزی را باید در این فیلد بنویسم. اگر UUID است، به این معنی است که باید تولید کنم ارزش منحصر به فرد UUID. اگر رشته برای من معنی دارد، لازم است مقدار رشته را از منابع بیرون بکشم. اگر رنگ است، دوباره باید کد رنگ را از منابع استخراج کنید. اگر int یا text باشد، من به سادگی مقدار داده شده را بدون هیچ حرکتی به int یا String تبدیل می کنم. خود کد به شکل زیر است:

    ArrayList خصوصی > getSQLData() (ArrayList > داده = ArrayList جدید<>() ArrayList فایل ها = ArrayList جدید<>() AssetManager assetManager = mContext.getAssets(); رشته dir = mData + mVersion; try ( String listFiles = assetManager.list(dir)؛ برای (String file: listFiles)( files.add(file); ) Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader؛ String line؛ int separator = 0 ؛ ContentValues ​​cv = null؛ فیلدهای رشته؛ رشته nameTable = null؛ رشته packageName = mContext.getPackageName(؛ پرچم بولی = نادرست؛ HashMap hm برای (فایل رشته: فایل‌ها) (Log.d(TAG، "فایل db" + فایل است؛ bufferedReader = جدید BufferedReader(InputStreamReader جدید(assetManager.open(dir + "/" + فایل)))؛ در حالی که ((خط = bufferedReader.readLine()) != null)(fields = line.trim().split(":")؛ if (fields.length == 1)( if (پرچم == true)( hm = HashMap جدید<>() hm put(nameTable, cv); data.add(hm); ) // نام جدول نامTable = line.trim(); cv = new ContentValues(); ادامه هید؛ ) else ( if (fields.equals("UUID"))(cv.put(fields, UUID.randomUUID().toString()); ) else if (fields.equals("رنگ") || fields.equals( "string"))( int resId = mContext.getResources().getIdentifier(فیلدها، فیلدها، packageName)؛ Log.d(TAG، فیلدها + " " + resId)؛ سوئیچ (فیلدها) (مورد "رنگ": cv. put(fields, resId); break; case "string": cv.put(fields, mContext.getString(resId)); break; default: break; ) ) else if (fields.equals("text"))(cv .put(فیلدها، فیلدها)؛ else if (fields.equals("int"))(cv.put(fields, Integer.parseInt(fields)); ) ) flag = true; ) bufferedReader.close(); ) ) catch (IOException e) (e.printStackTrace(); ) داده ها را برمی گرداند. )

    30.04.2009 الکسی کویازین

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

    پایگاه داده های رابطه ای امروزه تقریباً در همه برنامه ها، از تعبیه شده در دستگاه های تلفن همراه و خاص، برنامه های کاربردی وب تا سیستم های مدیریت سازمانی استفاده می شوند. نفوذ پایگاه داده به انواع برنامه‌ها در حال افزایش است و توسعه‌دهندگان ابزارها و رویکردهای کاربرپسندتری را دریافت می‌کنند. ممکن است این تصور را داشته باشید که توسعه دهندگان برنامه های کاربردی پایگاه داده، "مناسب ترین" لایه برنامه نویسانی هستند که ابزارهای لازم برای همه موارد را دارند، اما این موضوع بسیار دور از ذهن است. Embarcadero Technologies، در سال 2008، کسب و کار ابزارهای توسعه CodeGear بورلند را به دست آورد، ابزارهای توسعه و طراحی برنامه های کاربردی حرفه ای، ابزارهای توسعه و ابزارهای مدیریت پایگاه داده را برای حذف مشکلات برنامه و پایگاه داده ترکیب کرد.

    طراحی بی نظم پایگاه داده

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

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

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

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

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

    توسعه پایگاه داده به اندازه توسعه برنامه مهم است، بنابراین ارائه فرآیند توسعه پایگاه داده با کنترل نسخه و ابزارهای مدیریت نیازمندی ها و همچنین پیوند صریح مراحل مدل سازی و اصلاح پایگاه های داده به تکرارها و نیازهای تغییر، یک توسعه استراتژیک است. پروژه نرم افزاری. برای حل این مشکلات و پشتیبانی از فرآیند توسعه پایگاه داده تکراری مدرن، Embarcadero ER / Studio را ارائه می دهد - یک ابزار مهندسی طراحی، تجزیه و تحلیل، معکوس و جلو که به شما امکان می دهد نسخه های مدل ها را بر اساس مخزن خود کنترل کنید. ابزار Change Manager می تواند به عنوان ابزاری برای کنترل تغییرات ابرداده در پایگاه داده های فیزیکی استفاده شود.

    تکه تکه شدن کد

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

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

    اولین محصول Embarcadero که از اشکال زدایی چند زبانه پشتیبانی می کند RapidSQL Developer (پاور اس کیو ال سابق) است که بخش بصری آن مبتنی بر فناوری Eclipse است و بنابراین به شما امکان می دهد تا در هر محیط توسعه مبتنی بر آن (از جمله JBuilder) ادغام شوید و انجام اشکال زدایی متقابل پویا - اشکال زدایی زبان. اکنون، در لحظه اجرای یک رویه ذخیره شده در سرور، توسعه دهنده به طور خودکار به یک محیط اشکال زدایی کد SQL کامل در همان ابزار سوئیچ می کند، که قادر به اشکال زدایی پرس و جوهای معمولی SQL و رویه های ذخیره شده است. توسعه‌دهنده پارامترهای ورودی واقعی پرس‌و‌جوها و رویه‌های ذخیره‌شده را می‌بیند و این فرصت را پیدا می‌کند که گام به گام کد SQL را اشکال‌زدایی کند. ادغام RapidSQL Developer در ابزارهای توسعه سازگار با Eclipse اولین گام در یکپارچه سازی توسعه برنامه و پایگاه داده است و در ردیف بعدی قرار دارد که قابلیت های مشابهی را برای دلفی، C++ Builder و دیگر ابزارهای توسعه برنامه از Embarcadero ارائه می دهد.

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

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

    توسعه دهندگان با تجربه پایگاه داده به خوبی از ماهیت مشکلاتی که در اینجا به وجود می آیند آگاه هستند: تفاوت در انواع داده ها و گویش های SQL، فقدان مکانیسم های مهاجرت و تکرار بین DBMS های مختلف، پیچیدگی تأیید مهاجرت، نوشتن و اجرای برنامه های کاربردی برای DBMS های مختلف را ایجاد می کند. یک کابوس. در بخشی از ابزارهای توسعه برنامه، آنها با ایجاد کتابخانه های دسترسی به داده ها (dbExpress در دلفی و C ++ Builder، ADO و ADO.Net از مایکروسافت)، که بر اساس اصول معماری رایج و روش های دسترسی ساخته شده اند، سعی در حل این مشکل دارند. همانطور که با استفاده از شی-رابطه‌ای متعدد (نقشه‌گذاری ارتباط شی، ORM) بر روی منطق رابطه و ساختار پایگاه داده، تولید کد منبع برای کار با داده‌ها بر اساس تجزیه و تحلیل طرح‌واره پایگاه داده و استفاده از مکانیزم «آداپتورها» برای پیاده‌سازی پروتکل یک DBMS خاص از محبوب ترین ORM ها می توان به Hibernate for Java و ActiveRecord در RubyOnRails اشاره کرد که یک رابط شی گرا برای داده های ذخیره شده در DBMS فراهم می کند. برای دلفی پروژه مشابه tiOPF، برای C# - NHibernate وجود دارد.

    البته استفاده از چنین کتابخانه های جهانیو مجموعه ای از مؤلفه ها می توانند به میزان قابل توجهی تعداد عملیات معمول را در فرآیند توسعه پایگاه داده چند پلتفرمی کاهش دهند. با این حال، زمانی که این کافی نیست ما داریم صحبت می کنیمدر مورد برنامه‌هایی که از پایگاه‌های داده پیچیده‌تری استفاده می‌کنند که به طور فعال از منطق تعبیه‌شده در رویه‌ها و محرک‌های ذخیره‌شده استفاده می‌کنند - برای پیاده‌سازی، اشکال‌زدایی و آزمایش آن، ابزارهای جداگانه‌ای مورد نیاز است، گاهی اوقات برای DBMS های مختلف کاملاً متفاوت است. برای توسعه برنامه های کاربردی پایگاه داده بین پلت فرمی، Embarcadero ابزار RapidSQL را ارائه می دهد.

    همه محصولات پایگاه داده Embarcadero مبتنی بر چند پلتفرم و بر اساس طرح و موتور تجزیه و تحلیل آمار پایگاه داده Thunderbolt هستند. هر یک از DBMS های پشتیبانی شده و هر نسخه خاص از DBMS دارای شاخه های کد مربوطه در هسته Thunderbolt هستند که به شما امکان می دهد طرحواره پایگاه داده را به نمایش داخلی در این هسته با دقت هر چه بیشتر نگاشت کنید و مهمتر از همه، تبدیل های صحیح بین نمایش و انجام دهید. پایگاه های داده واقعی به لطف هسته Thunderbolt است که RapidSQL به شما امکان می دهد کد SQL با کیفیت بالا را برای همه پلتفرم های پشتیبانی شده (Oracle، MS SQL، Sybase و گزینه های مختلف IBM DB2) و ER/Studio می توانند مهندسی معکوس و پیشروی دقیق طرحواره های پایگاه داده را انجام دهند.

    چه در حال توسعه یک برنامه کاربردی برای دو یا چند پلتفرم باشید، یا یک برنامه کاربردی موجود را از یک پلتفرم به پلتفرم دیگر منتقل کنید، RapidSQL همه موارد را ارائه خواهد کرد. ابزار لازمبرای انتقال طرح، کاربران و مجوزها بین DBMS های مختلف. البته، RapidSQL به طور خودکار رویه های PL/SQL را به T-SQL تبدیل نمی کند - این هنوز به یک برنامه نویس نیاز دارد، اما این ابزار یک پنجره واحد برای توسعه چند پلت فرم، ویرایشگرهای یکپارچه برای اشیاء طرحواره، کاربران و حقوق آنها، و اشکال زدایی SQL فراهم می کند. در تمام پلتفرم های پشتیبانی شده طبق گفته کاربران RapidSQL، در نتیجه، تا 70 درصد از زمان صرف شده برای مهاجرت بین DBMS های مختلف ذخیره می شود.

    تغییرات داده ها و طرحواره ها

    مهاجرت از یک DBMS به DBMS دیگر بدون تأیید آن غیرممکن است. چه کسی و چگونه می تواند تضمین کند که داده های منتقل شده از یک DBMS به DBMS دیگر واقعاً یکسان است؟ کتابخانه های مشتری مختلف، انواع داده های مختلف و رمزگذاری های مختلف، فرآیند مقایسه داده ها را به یک کار غیر ضروری تبدیل می کند.

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

    Embarcadero ابزار Change Manager را برای مقایسه داده ها، طرحواره ها و پیکربندی های پایگاه داده توسعه داده است. مقایسه در یک یا چند DBMS، با بررسی خودکارمطابقت بین انواع داده ها و تشکیل اسکریپت های SQL از تفاوت ها که می تواند بلافاصله برای آوردن پایگاه های داده به حالت یکسان اعمال شود. ماژول مقایسه ابرداده مقایسه طرح‌واره‌های پایگاه داده را هم بین پایگاه‌های داده زنده و هم بین پایگاه داده و اسکریپت SQL فراهم می‌کند و یک اسکریپت تفاوت ابرداده تولید می‌کند. این قابلیت می تواند نه تنها برای بررسی پایگاه های داده در برابر معیار، بلکه برای سازماندهی یک فرآیند به روز رسانی منظم پایگاه داده و همچنین برای بررسی تغییرات غیرمجاز، مثلاً، در شاخه های راه دور یک سازمان بزرگ استفاده شود. وضعیت در مورد فایل‌های پیکربندی مشابه است - Change Manager فایل‌های پیکربندی را مقایسه می‌کند و به شما امکان می‌دهد تا مطمئن شوید که پیکربندی برنامه‌های کاربردی مستقر شده با الزامات این نرم‌افزار مطابقت دارد.

    عملکرد اپلیکیشن پایگاه داده

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

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

    در مرحله توسعه، بهینه سازی پرس و جو را می توان با استفاده از RapidSQL انجام داد، که شامل یک ماژول SQL Profiler است که می تواند برنامه ها را تجزیه و تحلیل کند و نکاتی را برای بهبود عملکرد کوئری های SQL ایجاد کند. اما اگر مشکل از قبل در حین کار رخ دهد و در یک کوئری SQL خاص بومی سازی نشده باشد، چه؟ اگر عملکرد در ساعات خاصی از روز کاهش یابد، یا حتی بدتر از آن، مشکل در یک کپی از راه دور سیستم رخ می دهد، در حالی که همه چیز در سرور اصلی خوب است؟ برای چنین مواردی، DBOptimizer یک ابزار پروفایل پایگاه داده برای Oracle است. مایکروسافت SQLسرور، Sybase و IBM DB2.

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

    جعبه ابزار

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

    Emdacadero All-Access که در فوریه 2009 منتشر شد، یک جعبه ابزار همه کاره است که شامل ابزارهای ضروری برای تمام مراحل توسعه اپلیکیشن پایگاه داده، از ER/Studio تا DBOptimizer، از دلفی و C++Builder تا DBArtisan است. بهترین راه برای توصیف All-Access مقایسه آن با جعبه ابزاری است که هر مالک کوشا در خانه دارد. شاید همه ابزارها هر روز استفاده نشوند، اما در صورت نشتی باید یک آچار قابل تنظیم همیشه در دسترس باشد.

    All-Access برنامه نویسان پایگاه داده یا معماران پایگاه داده را مجبور به نقش آفرینی نمی کند، بلکه مجموعه ای جهانی از ابزارهای مناسب برای همه نقش ها در فرآیند توسعه برنامه پایگاه داده، از معمار گرفته تا تستر، فراهم می کند. به همه اعضای تیم توسعه ابزار برای تمام مراحل توسعه پایگاه داده و همچنین مجموعه ای از ابزارهای بسیار تخصصی برای بهینه سازی پایگاه های داده (DBOptimizer) و برنامه ها (JOptimizer) ارائه می دهد که به شما امکان می دهد "گسترش" کنید. مکان های باریک. این بسته از چندین DBMS پشتیبانی می کند که باعث صرفه جویی در هزینه می شود.

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



    دلفی یک محیط توسعه است که از زبان استفاده می کند برنامه نویسی دلفی(از نسخه 7 شروع می شود، زبان موجود در محیط دلفی نامیده می شود، سابقاً Object Pascal) توسط Borland توسعه یافته و در ابتدا در بسته Borland Delphi آن پیاده سازی شده است، که نام فعلی خود را در سال 2003 از آن دریافت کرد. Object Pascal اساساً جانشین زبان پاسکال با پسوندهای شی گرا است.

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

    ویژگی های خانواده دلفی 7:

    *یک محیط توسعه سریع برنامه که ابزارهای شبیه سازی را برای توسعه و استقرار برنامه های کاربردی تجارت الکترونیک و خدمات وب یکپارچه می کند.

    * پشتیبانی از زبان های برنامه نویسی برای Win32 (Delphi و C/C++) و برای دات نت (Delphi و C#) در یک محیط توسعه واحد، که نگهداری و ایجاد برنامه های کاربردی جدید Win32 و تسلط آسان تر بر فناوری های NET را آسان تر می کند.

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

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

    Microsoft SQL Server 2000 یک پایگاه داده کامل و ارائه تجزیه و تحلیل داده ها است ایجاد سریعراه حل های تجارت الکترونیک مقیاس پذیر، برنامه های کاربردی تجاری و انبارهای داده.

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

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

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

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

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

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

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

    اشیاء پایگاه داده در دلفی بر اساس SQL هستند و تمام قدرت موتور پایگاه داده Borland را در بر می گیرند. دلفی همچنین شامل Borland SQL Link است، بنابراین دسترسی به Oracle، Sybase، Informix و InterBase DBMS بسیار کارآمد است. علاوه بر این، دلفی شامل یک سرور Interbase محلی است تا بتوانید برنامه های آفلاینی را توسعه دهید که می توانند به هر سرور SQL خارجی گسترش یابند.

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

    اگرچه دلفی فرمت جدول پایگاه داده خود را ندارد، با این وجود پشتیبانی قدرتمندی برای تعداد زیادی از DBMS های مختلف - هم محلی (مانند dBase یا Paradox) و هم صنعتی (مانند Sybase یا InterBase) ارائه می دهد.

    برترین مقالات مرتبط