File Table چیست؟
آموزش پیشرفته SQL Server (جلسه سوم) - آشنایی با File Table
آشنایی با File Table، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی آشنایی با File Table، قسمت های قبلی را مطالعه فرمایید.
File Tableچیست؟
هدف: یکپارچه کردن Database Engine با NTFS می باشد.
با استفاده از ترکیب FileStream و نوع داده Hierarchyid برای پیاده سازی ساختار پدر و فرزندی در File Table کمک زیادی به طراحی یک ساختار سلسله مراتبی نموده است. ساختار جدول مربوط به File Table از قبل تعریف شده است و ما قادر به تعریف و تغییر فیلدهای جدول آن نمی باشیم. برای دیدن ساختار کلی این جدول و فیلدهای مربوط به آن به آدرس https://msdn.microsoft.com/en-us/library/gg492084.aspx رجوع نمایید. در ادامه به بیان فیلدهای جدول می پردازیم.
ساختار جدول File Table
جدول File Table از فیلدهای زیر تشکیل شده است:
- path_locator: از نوع داده Hirarchyid بوده به صورت سلسله مراتبی مکان فایل را نشان می دهد.
- stream_id: از نوع uniqueidentifier بوده و شناسه فایل می باشد.
- file_stream: از نوع داده FileStream بوده و برای نگهداری فایل مورد استفاده قرار می گیرد.
- file_type: برای تعریف نوع فایل بکار رفته و از نوع رشته ای می باشد.
- Name: نام فایل یا پوشه را نگهداری می کند.
- parent_path_locator: نام پوشه بالادستی (والد) را بیان می کند.
- cached_file_size: اندازه فایل موجود در FileStream را بر حسب بایت بیان می کند.
- creation_time: زمان ایجاد و ثبت رکورد را نشان می دهد.
- last_write_time: زمان آخرین تغییر و بازنویسی را نگهداری می نماید.
- last_access_time: بیانگر زمان آخرین دسترسی به محتویات رکورد می باشد.
- is_directory: لین ستون بطور اتوماتیک پر شده و بیانگر این است که محتویات رکورد یک پوشه در ساختار سلسله مراتبی است یا یک برگ (فایل) می باشد.
- is_offline: بیانگر ویژگی آفلاین بودن فایل می باشد.
- is_hidden: بیانگر ویژگی مخفی بودن فایل می باشد.
- is_readonly: بیانگر ویژگی فقط خواندنی بودن فایل می باشد.
- is_archive: بیانگر ویژگی آرشیو بودن فایل می باشد.
- is_system: بیانگر ویژگی سیستمی بودن فایل می باشد.
- is_temporary: بیانگر ویژگی موقت بودن فایل می باشد.
مزایای استفاده از File Table:
- امکان استفاده از مکانیسم Transaction
- کاهش حجم Log File
- عدم استفاده از Buffer Pool برای BLOB
- سهولت در تهیه نسخه پشتیبان
- ذخیره داده ها به اندازه حجم NTFS
- امکان دسترسی به File Table بدون واسطه
نحوه ایجاد File Table
در مرحله اول باید پایگاه دادهای را با ساختاری که استفاده از File Table را پشتیبانی کند را داشته باشیم برای اینکار طبق دستورات زیر این پایگاه داده را ایجاد می نماییم:
آشنایی با File Table
IF DB_ID('NorthPole') IS NOT NULL BEGIN
DROP DATABASE NorthPole;
END -- Create NorthPole database
CREATE DATABASE NorthPole ON
PRIMARY (
NAME = NorthPole,
FILENAME = 'C:\ArtOfFS\Demos\Chapter11\NorthPole.mdf'
), FILEGROUP NorthPole_fs CONTAINS FILESTREAM(
NAME = NorthPole_fs,
FILENAME = 'C:\ArtOfFS\Demos\Chapter11\NorthPole_fs' )
LOG ON (
NAME = NorthPole_log,
FILENAME = 'C:\ArtOfFS\Demos\Chapter11\NorthPole_log.ldf') -- Configure non-transactional access
ALTER DATABASE NorthPole SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL) -- Configure the root folder
ALTER DATABASE NorthPole SET FILESTREAM (DIRECTORY_NAME = 'NorthPole')
در گام بعدی اقدام به ساخت جدول می کنیم:
آشنایی با File Table
WITH (FILETABLE_DIRECTORY = 'NorthPole Documents')
حال برای درج در این جدول کافیست طبق دستور زیر عمل نماییم:
آشنایی با File Table
VALUES ('ReadMe.txt', 0x)
در ادامه بحث آشنایی با File Tableخواهید دید ...!
1-آشنایی کامل با File Table
2- آموزش جامع نحوه انجام تنظیمات پایگاه داده و ویندوز سرور برای استفاده از File Table
دسترسی به موارد آموزشی بالا در بسته خریداری شده
- شماره جلسه: 3
- نام فایل ویدئو: 01
- فرمت فایل: mp4.
نقطه شروع بحث بالا (آشنایی با File Table) در ویدئو: 00:30
برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.
- نوشته شده توسط محمدی
- بازدید: 11421
دیدگاهها
من با ایجاد File Tableرول های ذخیره سازی ،بازیابی ،حذف و ویرایش مشکلی ندارم و لی مشکلی هشت جدول File Table قابیت ایجاد فیلد را ندارد در نتیجه به فزض شما به عنوان مثال عکس یک فرد را ذخیره ولی نتوانید با کلید خارجی به جدول مشتریان منسب کنید عملاً آن نمی توانید از آن استفاده کنید.
من خیلی در سایت جسجو کردم ولی به نتیجه نرسیدم
سلام این فیلد رو تو "stream_id" به جدول پرسنلت اضافه کن همیش به اون فایل دسترسی داری
سلام دوست عزیز.
سؤالتون خیلی روشن نیست. معمولا تو دیتابیسهایی که با کاربر سر و کار داره، یه جدول مخصوص کاربران وجود داره و هر جدول هم که به موجودیتی اشاره میکنه، باید یه فیلد به عنوان کلید اصلی داشته باشه. این فیلد معمولا از جنس عدد و به صورت Auto Increment هست. برای ذخیرهی عکس، کافیه یه پوشهی مخصوص این کار ایجاد کنید و هر وقت کاربری اقدام به ذخیرهی فایل یا عکسی میکنه، بر اساس اون کلید اصلی که مختص کاربر است، میتونید فایلهاشو ذخیره و سازماندهی کنید.
این شیوه خیلی مرسوم هست. نیازی به ذخیرهی حجیم اطلاعات در دیتابیس هم نیست.
سلام ممنونم از پاسخ شما برای مثال شما برنامه برای یک شرکت تولیدی با 2000 کارمند تولید می کنید
در آن برنامه مدارک شناسایی کارمندان مانند کارت ملی ،شناسنامه، مدرک تحصیلی و سوابق آموزشی اسکن و ذخیره می شود
در ساده ترین حالت شما یک تیبل برای نگهداری مشخصات کارمندان مانند کد ملی ،نام و ونام خانوادگی ،تاریخ تولد و . . . و یک تیبل از نوع File Table نیاز دارید به نظر شما بایستی 2000 قولدر ایجاد شود که به نظر منطقی نمی آید
با تشکر