.:: محمدحسین فخرآوری ::.

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

سيستم های پردازش تحلیلی برخط (OLAP)

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

 

ادامه نوشته
محمدحسین فخرآوری ، یکشنبه ۱۳۹۵/۰۶/۱۴ ، 7:33

OLAP چیست؟

-OLTP ( برگرفته از OnLine Transaction Processing System )
-OLAP ( برگرفته از OnLine Analytical Processing System )

بررسی تکنولوژي In-Memory OLTP در SQL Server 2014

 

در مدل OLTP ، مخازن داده به صورت جداول رابطه ای که عموما” به جهت جلوگیری از تکرار و ناهمگونی اطلاعات به صورت هنجار (Normalize) درآمده اند ، سازماندهی می شوند. این نوع از بانک های اطلاعاتی برای درج و تغییر سریع اطلاعات توسط چندین کاربر بطور همزمان مناسب می باشند . 

در مدل OLAP مخازن داده جهت تجزیه و تحلیل و خلاصه سازی حجم زیادی از اطلاعات سازماندهی می شوند . مخازن داده و ارتباط بین اطلاعات در این مدل توسط SQL Server مدیریت می گردد .

 

وظايف هر کدام بصورت زير است :

1-   در پايگاه داده  OLTP   :

·        سازماندهي در جدول روابط

·        نرمال سازي و حذف دوگانگي داده ها

·         اطلاعات فقط يکبار ذخيره مي شوند .

·        افزايش دقت  دراضافه کردن  يا تغيير سريع داده ها توسط تعداد زيادي کاربر همزمان

2-در پايگاه داده  OLAP  :

·        سازماندهي در اجازه تجزيه و تحليل و خلاصه سازي  مقدار زيادي از داده ها با سرعت بالا

·        سازماندهي در مديريت  SQL SERVER

·        سازماندهي داده هاي ذخيره شده

·        سازماندهي در روابط  بين داده  در پايگاه داده ها

·        قابليت بازيابي

برچسب‌ها: OLAP
محمدحسین فخرآوری ، یکشنبه ۱۳۹۴/۰۹/۰۱ ، 0:24

بهترین روش پیاده سازی Cursor

یک مثال

Declare @Tbl Table (ForumName NVARCHAR(100),Subject NVARCHAR(100),TopicID int)
Declare @Tb2 Table (ForumName NVARCHAR(100),Subject NVARCHAR(100),TopicID int)

insert into @Tbl SELECT B_Forums.ForumName, B_Topics.Subject, B_Topics.TopicID FROM B_Forums

DECLARE @ForumName NVARCHAR(100),@Subject NVARCHAR(100),@TopicID int;

DECLARE Table_Cursor CURSOR
FOR

SELECT ForumName,Subject,TopicID FROM @Tbl

OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @ForumName,@Subject,@TopicID
WHILE (@@FETCH_STATUS = 0)
BEGIN

IF NOT EXISTS(SELECT top(1)ForumName FROM @Tb2 WHERE ForumName=@ForumName)
INSERT INTO @Tb2 SELECT @ForumName,@Subject,@TopicID

FETCH NEXT FROM Table_Cursor INTO @ForumName,@Subject,@TopicID
END CLOSE Table_Cursor DEALLOCATE Table_Cursor

select * from @Tb2
DECLARE @id NVARCHAR(MAX),@name NVARCHAR(MAX)

DECLARE Table_Cursor CURSOR
FOR


SELECT cast([CategoryID]as nvarchar),[CategoryName]FROM [B_Categories]


OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @name,@id
WHILE (@@FETCH_STATUS = 0)
BEGIN

print (N'نام موضوع: ' + @name + ' کد: ' + @id +']')

FETCH NEXT FROM Table_Cursor INTO @name,@id
END CLOSE Table_Cursor DEALLOCATE Table_Cursor


Cursor :

هنگام استفاده از دستورات SQL نظیر Select کلیه رکوردهای درخواستی بطور کامل استخراج می گردد اما در مواردی نیاز است که رکوردهای استخراج شده تحت شرایطی خاص مورد پردازش مجدد قرار گرفته و به برنامه درخواست کننده ارسال گردد در این صورت استفاده از کرسرها بسیار حائز اهمیت خواهد بود در واقع برای استفاده از یک کرسر می توان به ترتیب مراحل ذیل عمل نمود.
- یک متغیر از نوع کرسر تعریف می گردد. که شامل دستور Select درخواستی خواهد بود.
- با استفاده از دستور Open یک کرسر آماده استفاده می گردد.
- با استفاده از دستور Fetch حرکت درون یک کرسر امکان پذیر می گردد که در این حالت مقدار فیلدهای اعلام شده در رکورد جاری در دسترس می باشد.
- با استفاده از دستور Close کرسر فعال شده بسته می شود.
- با استفاده از Deallcate فضای اختصاص داده شده برای کرسر آزاد می گردد.

منبع: http://barnamenevis.org/showthread.php?214403

برچسب‌ها: OLAP
محمدحسین فخرآوری ، یکشنبه ۱۳۹۴/۰۹/۰۱ ، 0:9