در این فصل یاد می گیریم که sql server چیست و اینکه یک دیتابیس چیست و سپس توضیح می دهیم که با چه اشیائی می توان این دیتابیس ها را ایجاد نمود.
در این فصل شما فرا می گیرید که داده ها چگونه در یک دیتابیس ذخیره می شوند. همچنین در مورد اشیائی یاد می گیرد که به آنها ایندکس(index) گفته می شود. این ایندکس ها به sql server کمک می کنند تا به سرعت نتیجه ی حاصل از اجرای کوئری ها را برگرداند.
sql server چیست؟
sql server یک سیستم مدیریت دیتابیس رابطه ای است که به اختصار به آن RDBMS یا دیتابیس رابطه ای می گوییم. یک دیتابیس رابطه ای، بر اساس مدل رابطه ای(relational model)، داده ها را در جدول ها ذخیره می کند. شرکت مایکروسافت نسخه های مختلفی از sql server را منتشر کرده است. یکی از این نسخه ها، نسخه ی Express می باشد که مجانی است و می تواند در برنامه ها مورد استفاده قرار بگیرد و یا اینکه می تواند در زمینه ی آموزش sql server مورد استفاده قرار بگیرد. sql server نسخه های دیگری هم دارد که قیمت آنها بسیار گران می باشد(البته در ایران مجانی است). این نسخه ها عبارتند از:
- Standard
- Business Intelligence
- Enterprise
با استفاده از این نسخه ها می توان داده های بسیار زیادی را ذخیره کرد.
همچنین یک نسخه از sql server نیز وجود دارد که در بستر اینترنت قرار دارد و نام آن Microsoft Azure SQL Database است. یک نسخه ی دیگر نیز وجود دارد که نام آن Compact است و برای موبایل ها در نظر گرفته شده است.
جدول 2.1 خلاصه ای از نسخه های مختلف sql server را نشان می دهد. در اکثر نسخه های جدید sql server، قابلیتی به نام T-SQL قرار داده شده است.
دیتابیس های درون اینترنت(cloud)
نکته: cloud یا اَبر، در اصطلاح به معنی اینترنت می باشد.
امروزه محاسبات ابری(اینترنتی) دارای اهمیت بسیار زیادی هستند زیرا شرکت های بزرگ و مشتریان آنها، داده های خود را در اینترنت(cloud) نگه داری می کنند. بعنوان مثال، اکثر گوشی های هوشمند به کاربر امکان می دهند تا از داده های خود مثل عکس ها و کلیپ ها در اینترنت نسخه ی پشتیبان تهیه کنند.
شرکت مایکروسافت چندین دیتاسنتر در جهان دارد که حاوی هزاران سرور می باشند و این سرویس های اینترنتی را به ما ارائه می دهند. برخی از سرویس هایی که مایکروسافت به مشتریان خود ارائه می دهد عبارتند از:
- سرویس ایمیل(Outlook.com)
- سرویس ذخیره اطلاعات(OneDrive)
- سرویس Office
مایکروسافت همچنین برای استفاده های تجاری، سرویس Azure را ارائه می دهد. این سرویس به کمپانی ها امکان می دهد تا بدون آشنایی با انواع سخت افزارها، به راحتی به منابع مورد نیاز خود دست یابند و آنها را مدیریت کنند.
مایکروسافت می تواند به دو طریق، از دیتابیس شما در اینترنت(cloud) میزبانی کند. راه اول این است که مایکروسافت sql server را برای شما در ماشین مجازی Azure نصب کند؛ به طوری که سرور شما توسط مایکروسافت میزبانی شود. و یا اینکه شما sql server را در سرور دیتاسنتر خود نصب کنید. راه دوم این است که مایکروسافت یک دیتابیس Microsoft Azure SQL را ایجاد کنید. ( در این روش شما تنها می توانید دیتابیس ها را مدیریت کنید).
فرق زیادی بین روش اول و دوم وجود ندارد، به جز اینکه برخی دستورات مدیریتی و برخی از ویژگی های پیشرفته را نمی توانید انجام دهید. اما غالبا در هر دو روش، زبان T-SQL یکسان است.
یکی از مزیت های Microsoft Azure SQL Database این است که مایکروسافت قادر است تا آپدیت ها را خودش نصب کند. در فصل 17 در مورد Microsoft Azure SQL Database مطالب بیشتری را خواهید آموخت.
سرویس یا اپلیکیشن
sql server یک سرویس است و تنها یک اپلیکیشن نمی باشد. با اینکه شما می توانید برخی از نسخه های sql server را بر روی یک ایستگاه کاری(workstation) نصب کنید، اما sql server بر روی یک سرور اختصاصی اجرا می شود و هنگامی که این سرور شروع به کار می کند، اجرا خواهد شد. به عبارت دیگر، هیچ احتیاجی به این نیست که به طور دستی sql server را راه اندازی(start) کنیم.
برای اینکه به طور عملی، از کار افتادگی سیستم های حیاتی را کاهش دهیم و یا از بین ببریم، sql server دارای ویژگی هایی است که باعث می شود به میزان زیادی در دسترس باشد. که عبارتند از:
- clustering
- log shipping
- database mirroring
- Availability Groups
فرض کنید که شما یک وب سایت فروشگاهی دارید. شما انتظار دارید که این وب سایت شب و روز در دسترس باشد. برای انجام این کار، سرور دیتابیس شما، که احتمالا یک نمونه از sql server است، باید همواره در حال اجرا باشد و به درستی کار کند. حتی در زمان های ضروری مثال زمان تعمیر و نصب وصله های امنیتی، مدیران sql server باید تلاش کنند که زمان از کار افتادگی را به حداقل برسانند.
sql server ویژگی های فراوانی دارد و یک مجموعه ی کامل از هوش تجاری(business intelligence) و ابزارهای مدیریتی موثر(impressive management tools) و ویژگی تکرار داده ها در سطح بالا(sophisticated data replication features) را به همراه دیگر ویژگی ها، ارائه می دهد.
sql server، دارای یک رابط ثبت داده ها(data-entry interface) برای کاربران عادی نیست و راهی برای ایجاد یک وب سایت یا برنامه ی ویندوز در اختیار شما قرار نمی دهد. برای انجام این کارها، باید از یک زبان برنامه نویسی مثل visualBasic.NET یا #C استفاده کنید.
فراخوانی sql server از طریق T-SQL می تواند از داخل اپلیکیشن شما یا از طریق یک وب سرویس با رده ی متوسط صورت بگیرد. بدون در نظر گرفتن معماری اپلیکیشن شما، ممکن است به T-SQL احتیاج پیدا کنید.
sql server یک ابزار گزارش دهی جالب به نام Reporting Services دارد که بخشی از مجموعه ی هوش تجاری(business intelligence suite) می باشد. در صورتی که sql server این ابزار را نداشته باشد، شما مجبورید از یک زبان برنامه نویسی دیگر برای ایجاد یک رابط کاربری در بیرون از ابزارهای مدیریتی استفاده کنید.
عکس 2.1 معماری یک اپلیکیشن وب معمولی را نشان می دهد. همان طور که در این تصویر مشاهده می کنید، وب سرور، داده ها را از سرور دیتابیس درخواست می کند. کلاینت ها با وب سرور ارتباط برقرار می کنند.
دیتابیس بعنوان یک شیء دربرگیرنده(container)
یک دیتابیس در sql server، در اصل یک شیء دربردارنده(container) است که انواع مختلفی از اشیاء و داده ها را به شکل منظم نگهداری می کند. به طور کلی از یک دیتابیس برای یک اپلیکیشن یا هدف خاص استفاده می شود. اما این یک قانون حتمی نیست.
بعنوان مثال، برخی از سیستم ها از یک دیتابیس برای تمام کارهای خود استفاده می کنند. از طرف دیگر، یک اپلیکیشن قادر است تا به بیش از یک دیتابیس دسترسی داشته باشد.
استودیوی مدیریت sql server را اجرا کنید البته در صورتی که قبلا اجرا نشده باشد و سپس به sql server با استفاده از اطلاعات هنگام نصب آن، متصل شوید. حالا پوشه ی Databases را باز کنید تا دیتابیس های نصب شده بر روی sql server را مشاهده کنید. حالا طبق عکس 2.2 شما قادر خواهید بود تا دیتابیس AdventureWorks را مشاهده کنید.
در داخل یک دیتابیس، چندین شیء وجود دارند اما تنها یک نوع از این اشیاء یعنی جدول ها قادر هستند تا داده هایی که ما در مورد آنها فکر می کنیم را در خود ذخیره کنند. علاوه بر جدول ها، یک دیتابیس قادر است تا اشیاء دیگری را نیز در خود نگهداری کند. لیست این اشیاء در جدول 2.2 آورده شده است.
نوع شیء |
توضیحات |
Views |
A stored query definition that can be used to simplify writing T-SQL statements or to control security to data. |
Stored procedures |
A stored T-SQL script that can include queries, data definition statements (DDL) that create or modify objects, and programming logic. Stored procedures can return tabular data results. |
User-defined functions |
A user-defined function is similar to a stored procedure but with several differences. They can return tabular data or a single value, but they cannot affect anything outside the function. |
Indexes |
A structured that assists the database engine when locating rows. |
Constraints |
Rules controlling the behavior of the table and columns and the data that can be stored in a column. |
Triggers |
A trigger is a special type of stored procedure that fires when something happens in the database such as a row is inserted or an object is created. |
Types |
Each column in a database has rules governing what type of data the column can contain. It is possible to create custom types to help organize the database. |
Rules and defaults |
These features are no longer recommended and are only available for backward compatibility. |
Plan guides |
This is an advanced feature used to override SQL Server’s behavior for a particular query. It is well beyond the scope of this book. |
Sequences |
Sequences are containers holding incrementing numbers. |
Synonyms |
Synonyms are nicknames or aliases for database objects. |
Assemblies |
Assemblies are references to database objects created in a .Net language. This functionality is called common language runtime (CLR) integration. |
بررسی فایل های sql server
یک دیتابیس در sql server حداقل باید شامل دو فایل باشد: یکی فایل های داده است که پسوند پیشفرض آنها mdf. می باشد و دیگری فایل های log است که پسوند پیشفرض آنها ldf. می باشد. اگر فایل های داده ی اضافی هم مورد استفاده قرار بگیرند، معمولا پسوند آنها ndf. می باشد.
به طور تکنیکی می توان گفت که فایل ها با پسوند mdf و ldf و ndf می توانند هر نوع پسوند دلخواهی داشته باشند، اما توصیه نمی شود که آنها را از حالت پیش فرض تغییر دهید.
فایل های داده را می توان در چندین گروه فایل( file groups) سازمان دهی کرد.
گروه های فایل(File groups) برای بک آپ گرفتن از بخش هایی از دیتابیس در یک زمان،، مناسب هستند. و یا اینکه برای ذخیره ی داده ها در درایو های مختلف به منظور افزایش کارایی مناسب هستند.
این تنها یک مقدمه ی کوتاه در مورد فایل ها و گروه های فایل(file groups) است.
فایل ها و گروه های فایل دیگری نیز وجود دارند که فراتر از سطح این کتاب هستند و در اینجا به آموزش آنها نخواهیم پرداخت.
فایل log در sql server تراکنش ها یا تغییرات فایل ها را در خود ذخیره سازی می کند تا بتوان داده ها را پیگیری نمود.
مدیران دیتابیس ها قادر هستند تا بکاپ های مکرری را از فایل های log بگیرند تا به دیتابیس امکان دهند تا در صورت خرابی داده ها یا خرابی دیسک یا دیگر اتفاقات، عمل احیای مجدد(restore) به زمان های قبلی را انجام دهند.
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.
READ MORE