مشاوره و پشتیبانی #پایگاه داده #هوش تجاری

۷ مطلب با کلمه‌ی کلیدی «Table» ثبت شده است

لیست تغییرات جدول توسط کاربران

س: لیست تغیراتی که کاربران بر روی جدول T1 داده‌اند را نمایش دهید:

ج: با استفاده از کوئری زیر می‌توانید به این هدف برسید.

SQL> select commit_timestamp , logon_user, XID from flashback_transaction_query
where table_NAME='T1';
COMMIT_TI LOGON_USER                     XID
--------- ------------------------------ ----------------
12-MAY-15 MAHDI 02000000B8090000
12-MAY-15 MAHDI 02000000B8090000
12-MAY-15 MAHDI 02000000B8090000
12-MAY-15 MAHDI 08001C00C6090000

گزارش بالا لیست commitهایی که کاربران رو سطح دیتابیس رو جدول t1 انجام داده‌اند.

نکته: این گزارش نمونه‌ای از اطلاعات دیتادیکشنری است. همچنین همانطور که مشاهده می‌کنید این گزارش از flashback_transaction_query گرفته شده است.

XID = شماره پیگیری transaction است.

نمایش لیست فیلدهای جدول flashback_transaction_query

SQL> describ flashback_transaction_query;
Name Null? Type
----------------------------------------- -------- -----------------
XID                                                 RAW(8)
START_SCN NUMBER
START_TIMESTAMP DATE
COMMIT_SCN NUMBER
COMMIT_TIMESTAMP DATE
LOGON_USER VARCHAR2(30)
UNDO_CHANGE# NUMBER
OPERATION VARCHAR2(32)
TABLE_NAME VARCHAR2(256)
TABLE_OWNER VARCHAR2(32)
ROW_ID VARCHAR2(19)
UNDO_SQL VARCHAR2(4000)

نکته: اگر در حالت audit نباشید فیلد undo_sql, row_id اطلاعاتی در خود ندارد.

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

۲۲ ارديبهشت ۹۴ ، ۱۷:۳۰ ۰ نظر
مهدی غفاری

کمی بیشتر درباره View

مزیت‌های View

1 . می‌توان پرس و جوی پیچیده پیاده‌سازی کرد. 2 . ارتباط مستقیم کاربران را با جداول حذف کرد.

ورود داده در View

SQL> CREATE TABLE TBL1(ID NUMBER, NAME VARCHAR2(20));
Table created.
SQL> CREATE VIEW V1 AS SELECT * FROM TBL1;
View created.
SQL> INSERT INTO V1(ID, NAME) VALUES(1, 'MAHDI');
1 row created.
SQL> COMMIT;
Commit complete.

س: اگر view ما ترکیبی باشه به چه صورت باید insert را انجام دادا؟

ج: با pl/sql می‌توان insert را انجام داد، چون insert ما باید قاعده view رو رعایت کنه و روی ضرب دکارتی تاثیر نذاره

س: اگر در دستورمان Aggregate functions داشته باشیم(توابعی مانند Sum و Countو...) می‌توان با view از آنها استفاده کرد؟

ج: خیر

ادامه مطلب...
۱۷ ارديبهشت ۹۴ ، ۲۰:۵۲ ۰ نظر
مهدی غفاری

ساختار کامل ایجاد کاربر همراه با تعریف Default Tablespace

به مستند زیر توجه کنید:

CREATE USER

CREATE USER sidney 
    IDENTIFIED BY out_standing1 
    DEFAULT TABLESPACE example 
    QUOTA 10M ON example 
    TEMPORARY TABLESPACE temp
    QUOTA 5M ON system 
    PROFILE app_user 
    PASSWORD EXPIRE;

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

پس اگر table در این یوزر تعریف بشود و این یوزر schema یک جدول باشد (مالک یک جدول باشد) و آن جدول به یک tablespace اتصال داده نشده باشد اوراکل از DEFAULT TABLESPACE استفاده می‌کند.

تمامی یوزرها در اوراکل به صورت پیش‌فرض DEFAULT TABLESPACE اشون tablespace یوزر 01 است که محدودیتی ندارد.  

نکته: اگر خودتان به صورت دستی جدولی را به tablespace ای اتصال دهید دیگر جدول وارد default tablespace نمی‌شود و وارد آن tablespace موردنظرتان می‌شود.

نکته: اگر بخواهیم temporary tablespaceها را زمانی که پر شده خالی کنیم در وقتی که به هر دلیلی توسط دیتابیس به طور خودکار clear نمی‌شوند

باید به صورت دستی temporary tablespace را drop کنیم. 

temporary tablespace زمانی توسط اوراکل استفاده میشه که tablespace اصلی ما به مشکل بخوره (آفلاین بشه،‌مشکلی براش پیش بیاد)

temporary tablespace یه واحدیه بعد از Redo و قبل از DataFile که زمانی که مشکلی برای DataFile شما پیش بیاید temporary tablespace سریع جایگزین خواهد شد.

چند مثال از نحوه ایجاد کاربر:

Create user mahdi identified by 123 password expire;

در این صورت کاربر بعد از اولین ارتباط با بانک باید دستور password را جهت تغیر password وارد نماید.

Create user mahdi identified by 123 password expire account lock;

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

همچنین می‌توانید به مستند زیر مراجعه کنید:

Oracle Users

۱۷ ارديبهشت ۹۴ ، ۲۰:۴۱ ۰ نظر
مهدی غفاری

TableSpace

یکی از مباحث خیلی مهم در سطح دیتابیس Tablespaceها هستند.

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

توی اوراکل مدیریت DataFileها و دسته‌بندی DataFileها توسط یک موجودیت منطقی مدیریت میشه به نام موجودیت Tablespace پس وقتی ما یک DataFile ایجاد می‌کنیم بعد از ایجاد DataFile مورد نظرمون اونو داخل یک tablespace می‌ذاریم بعد جدولمون رو به tablespaceامون وصل می‌کنیم.

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

به این ترتیب مدیریت DataFileها توسط Tablespace انجام می‌شود و شما هیچوقت یک جدول رو به طور مستقیم به یک DataFile وصل نمی‌کنید همیشه یک جدول رو به یک Tablespace وصل می‌کنید.

Tablespace در اصل واسط شما و DataFileتون است.

ادامه مطلب...
۱۳ ارديبهشت ۹۴ ، ۱۱:۲۹ ۰ نظر
مهدی غفاری

SQLReport

 SQLReport نرم‌افزاری است که به کمک آن میتوان براحتی و در کوتاه ترین زمان گزارشات داینامیک فارسی از بانکهای اطلاعاتی SQLServer , Oracle ,Ms Access و دیگر Provider های OLeDb تولید کرد. 
- تولید گزارشات توسط یک ویزارد قوی به نام SQLwizard انجام میگیرد و گزارشات تولید شده از داخل محیط Windows بصورت فایلی مستقل (Sqr.) در هر زمان قابل اجرا بوده و امکان تغییر و ذخیره سازی مجدد گزارشات با شرایط متفاوت برای کاربر نهایی وجود دارد.

امکاناتSQLReport

  1. ایجاد ارتباط با انواع مختلف بانکهای اطلاعاتی SQLServer , Oracle ,Ms Access , ...
  2. انتخاب هریک از Table ها و یا View های موجود در بانک اطلاعاتی جهت تهیه گزارش
  3. انتخاب هریک از Field های موجود و نیز عناوین فارسی جهت هریک از ستونهای گزارش
  4. مشخص کردن ترتیب ظاهر شدن فیلدها در خروجی از راست به چپ
  5. تعیین عناوین ۱و ۲ و ۳ در بالای گزارش و همچنین متن بالای گزارش و متن زیر گزارش
  6. تعیین فونت و رنگ دلخواه برای کلیه بخشهای گزارش شامل عناوین ، گروه ، نام فیلدها، متن گزارش ،ته جمع
  7. قراردادن تاریخ فارسی و زمان تهیه گزارش و شماره صفحه در بالای صفحات
  8. امکان مشاهده گزارش (Preview) در هریک از مراحل تولید
  9. ذخیره سازی گزارش تولید شده با نام دلخواه و با پسوند Sqr. جهت استفاده در مراحل بعدی
  10. تعیین اندازه (Size) دلخواه برای عرض هریک از ستونهای گزارش
  11. افزودن ردیف (RowNo) به ستونهای گزارش
  12. دسته بندی (Group By) بر اساس هریک از فیلدهای موجود و نیز امکان پیشرفته جندین سطح دسته بندی بدون محدودیت سطوح
  13. افزودن ته جمع Sum برای فیلدهای عددی در سطح گروه و یا در سطح گزارش
  14. مرتب سازی Sorting صعودی و یا نزولی گزارش بر اساس هریک از فیلدها و یا ترکیبی از چند فیلد
  15. تعیین Allignment برای هریک از ستونهای گزارش بصورت راست چین- وسط چین و چپ چین
  16. ذخیره یک گزارش با کلیه شرایط جهت استفاده در مراحل بعدی و نیز ذخیره چندین حالت از یک گزارش با شرایط متفاوت توسط کاربر نهایی (End User)
  17. تعیین حداکثر عرض گزارش بصورتهای A4 طولی ، A4 عرضی ، A3 ( با توجه به Printer موجود) و تغییر اتوماتیک عرض صفحه گزارش با توجه به ستونهای انتخابی
  18. امکان مشاهده مقادیر موجود در هریک از فیلدها در هنگام طراحی گزارش
  19. امکان تعریف محدوده گزارش جهت فیلتر اطلاعات با امکانات پیشرفته { >, < , <>, =, Like , In , Not In }
  20. امکان ساختن فیلدهای ترکیبی Formula Field توسط کاربر نهایی از اطلاعات موجود بهمراه بیش از 150 تابع محاسباتی، منطقی، روتین ، توابع رشته ای و توابع عددی

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

SetupSQLReport

نکته: برای نصب احتیاج به Microsoft.NET.Framework.1.1.SP1 دارید می‌توانید از پی‌سی‌دانلود اقدام به دانلود نمایید.

۰۸ ارديبهشت ۹۴ ، ۲۰:۳۹ ۰ نظر
مهدی غفاری

جدول DUAL

DUAL جدولی مجازی است که یک فیلد به نام DUMMY دارد. در هر کجا اگر جدول خاصی برای انتخاب وجود نداشته باشد، شما می‌توانید از جدول DUAL استفاده کنید.

به جای استفاده از جدول DUAL می‌توان از جدول‌های دیگه هم استفاده کرد(هر جدولی که دارای رکورد باشه) به طور دقیق هم همون کار DUAL را برای ما انجام می‌دهد ولی برای کارهای موقتی بهتره از جدول DUAL استفاده شود(شما می‌توانید خودتان هم به طور دستی یک جدول با یک فیلد برای کارهای TMP بسازید)

SELECT 2+2 FROM DUAL;

همان‌طور که در زیر می‌بینید جوابی که از این جدول مجازی یا هر جدول دیگری برای کارهای موقت ما بدست می‌آید 4 است.

2+2
----------
4
۰۱ ارديبهشت ۹۴ ، ۱۴:۴۰ ۰ نظر
مهدی غفاری

مفاهیم پایه بانک‌اطلاعاتی

به اطلاعات زیر دقت کنید:

نام فامیل شهر
مهدی غفاری تهران
احسان جلالی تهران
فرزاد کارخانی تهران

تعریف داده(Data): به موجودیت مهدی یا جلالی یا تهران داده می‌گویند.

تعریف فیلد(Field): به موجودیتی که درون خودش داده رو ذخیره میکنه فیلد می‌گویند. مثل: نام، فامیل، شهر

تعریف رکورد(Record): به مجموعه‌ای از داده‌ها که در کنار هم قرار بگیرن و یک موجودیت رو تفسیر کنن رکورد می‌گویند. مثل: مهدی غفاری تهران که مهدی غفاری رو تفسیر میکنه

تعریف جدول(Table): به مجموعه فیلدها جدول می‌گویند.

ادامه مطلب...
۲۱ اسفند ۹۳ ، ۰۹:۵۶ ۲ نظر
مهدی غفاری