مهدی عزیزی

۷ مطلب با موضوع «SQL» ثبت شده است

نرمال سازی(normalization) دیتابیس

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

شکل 1NF

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

  1. نوع داده‌ها و اطلاعات در هر ستون یکسان باشد.
  2. محتویات هر ستون یک مقدار مشخص باشد اتمیک باشد.
  3. هر سطر از جدول منحصربه‌فرد باشد به این منظور می‌توان از قید کلید اصلی یا PK استفاده نمود.
شکل 2nf

یک جدول در فرم دوم نرمال است اگر شرایط زیر را داشته باشد:

  1. در فرم اول نرمال باشد.
  2. کلید ستون‌های غیر کلید وابستگی تابعی کامل به کلیه ستون‌های کلید داشته باشد.
شکل 3nf

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

  1. در فرم اول و دوم نرمال باشد
  2. فاقد وابستگی‌های با واسطه باشد

لازم به ذکر است که فرم های دیگری هم وجود دارد ولی این 3 اصلی ترین فرم های نرمال سازی است.

۱۷ بهمن ۹۲ ، ۱۵:۰۴ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

Collation

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

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

از اونجایی هم که برای ذخیره 128 نماد نیاز به 7 بیت هست و تعداد بیت ها می باید مضربی از 8 می بود، از 8 بیت یا یک بایت برای ذخیره استفاده کردند.

برای 128 فضای خالی باقی مونده هم از علائمی استفاده کردند که بتوانند به صورت ساده گرافیک و جدول را پیاده کنند و پرینت بگیرند.

در حالت فارسی هم از همون فضای کاراکتر های چاپی استفاده می کردند.

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

یعنی مثلا اگر کاراکتر 186 علامت || در زبان استاندارد ASCII بود این بار اگر کد پیج (همون کاراکتر اضافی) روی زبانی غیر از انگلیسی بود این کاراکتر به معنی مثلا آلفا می شد.

این کاراکتر برای زبان استاندارد صفر و برای زبان فارسی 6 در نظر گرفته شد. (254 هم هست)

می تونید برای اطلاعات بیشتر از برنامه CharMap خود ویندوز جریان رو ببینید.(در Run تایپ کنید)

در برنامه نوت پد هم در حالتی که بخواهید در استاندارد جدید (UniCode) متنتون رو ذخیره کنید خواهید دید که حجم جدید به دو برابر + 2 بایت اضافی برای هدر تشخیص افزایش خواهد یافت.

در اس کیو ال هم جریان مشابهی هست.

در حالت استاندارد اسکی برای هر کاراکتر یک بایت در نظر گرفته خواهد شد که انواع داده ای Char, Text, VarChar از همین نوعند.

اگر قرار باشد که حروف فارسی رو ذخیره کنید کدپیج کجا ذخیره می شد؟

ادامه مطلب...
۰۵ بهمن ۹۲ ، ۱۶:۰۰ ۲ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

روش های برنامه نویسی

انواع مدل های برنامه نویسی

  • ساخت یافته که متضاد آن عدم ساخت یافته است.
    • ساخت یافته : ماژولار - شی گرا
    • غیر ساخت یافته : آرایه ای ، تکراری

  • دستوری(imperative) که متضاد آن توصیفی(declarative) است.
    • دستوری : Procedural
    • توصیفی : functional - logic

۱۶ آذر ۹۲ ، ۲۳:۱۳ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

NHibernate چیست؟

NHibernate  کتابخانه‌ی تبدیل شده پروژه بسیار محبوب Hibernate جاوا به سی شارپ است و یکی از ORM های بسیار موفق، به شمار می‌رود.
چرا نیاز است تا از یک ORM استفاده شود؟
تهیه قسمت و یا لایه دسترسی به داده‌ها در یک برنامه عموما تا 30 درصد زمان کل تهیه یک محصول را تشکیل می‌دهد. اما باید در نظر داشت که این پروسه‌ی تکراری هیچ کار خارق العاده‌ای نبوده و ارزش افزوده‌ی خاصی را به یک برنامه اضافه نمی‌کند. تقریبا تمام برنامه‌های تجاری نیاز به لایه دسترسی به داده‌ها را دارند. پس چرا ما باید به ازای هر پروژه، این کار تکراری و کسل کننده را بارها و بارها تکرار کنیم؟
هدف NHibernate ،

ادامه مطلب...
۰۷ مرداد ۹۲ ، ۱۸:۴۶ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

5 دلیل برای استفاده از یک ابزار ORM

چرا باید از ابزارهای Object relational Mapper یا به اختصار ORM استفاده کرد؟ در اینجا سخن در مورد ORM خاصی نیست. هدف تبلیغ یک محصول ویژه هم نمی‌باشد و یک بحث کلی مد نظر است.
کار ابزارهای ORM خواندن ساختار دیتابیس شما بوده و سپس ایجاد کلاس‌هایی بر اساس این ساختار ، برقراری ارتباط بین اشیاء ایجاد شده و جداول، ویووها، رویه‌های ذخیره شده و غیره می‌باشد. همچنین این ابزارها امکان تعریف روابط one-to-one, one-to-many, many-to-one, و many-to-many بین اشیاء را نیز بر اساس ساختار دیتابیس شما فراهم می‌کنند.
در ادامه به فواید استفاده از ORM ها خواهیم پرداخت:

1) یک ابزار ORM زمان تحویل پروژه را کاهش می‌دهد

اولین و مهم‌ترین دلیلی که بر اساس آن در یک پروژه، استفاده از ORM حائز اهمیت می‌شود، بحث بالا بردن سرعت برنامه نویسی و کاهش زمان تحویل پروژه به مشتری است. این کاهش زمان بسته به نوع پروژه بین 20 تا 50 درصد می‌تواند خود را بروز دهد.
بدیهی است ابزارهای ORM کار شگفت انگیزی را قرار نیست انجام دهند و شما می‌توانید تمام آن عملیات ‌را دستی هم به پایان رسانید؛ اما اجازه دهید یک مثال کوتاه را با هم مرور کنیم.
برای پیاده سازی یک برنامه متداول با حدود 15 تا 20 جدول، حدودا به 30 شیء برای مدل سازی سیستم نیاز خواهد بود و برنامه نویسی این مجموعه بین 5000 تا 10000 سطر کد را به خود اختصاص خواهد داد. بدیهی است برنامه نویسی و آزمایش این سیستم چندین هفته یا ماه به طول خواهد انجامید.
اما با استفاده از یک ORM ، عمده وقت شما به طراحی سیستم و ایجاد ارتباطات بین اشیاء و دیتابیس در طی یک تا دو روز صرف خواهد شد. ایجاد کد بر اساس این مجموعه و با کمک ابزارهای ORM ، آنی است و با چند کلیک صورت می‌گیرد.


2) یک ابزار ORM کدی با طراحی بهتر را تولید می‌کند

ممکن است

ادامه مطلب...
۰۷ مرداد ۹۲ ، ۱۸:۴۱ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

ORM چیست؟

ORM یا Object-relational mapping یک تکنیک برنامه نویسی برای ارتباط بین دیتا بیس و برنامه شئ گرای ما می باشد. مهمترین مزیت ORM ها این است که عملیات CRUD یا Create-Read-Update-Delete را به راحتی برای ما انجام می دهند.

زمان به ما ثابت کرده که پایگاه داده‌های رابطه‌ای ساختار مناسبی برای ذخیره‌سازی داده‌ای هستند، همچنین به این نتیجه رسیده‌ایم که برنامه‌نویسی شیءگرا یک رویکرد بسیار خوب و قوی برای پیاده‌سازی سیستم‌های بسیار پیچیده می‌باشد.

ORM عملا یک لایه

ادامه مطلب...
۰۷ مرداد ۹۲ ، ۱۸:۲۴ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

SQL Server 2012

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

یکی از نرم‌افزارهای مدیریت پایگاه داده‌ها ـ که جزو پرکاربردترین آنها نیز هست ـ SQL Server شرکت مایکروسافت است. این شرکت، منبع کد MS SQL را از شرکت Sybase خریداری کرد تا در دنیای نرم‌افزارهای پایگاه داده‌های بزرگ با شرکت‌هایی نظیر Oracle و IBM رقابت کند. سال 1989 اولین نسخه SQL Server با کمک Sybase وارد بازار شد. اولین نسخه‌های جدی و قابل رقابت مایکروسافت مربوط به 7 SQL Server و 2000 است که این نسخه‌ها نیز با همکاریSybase تولید می‌شد.

نسخه بعدی 2005 MS SQL Server است که کدهای آن کاملا بازنویسی شده بود. در تولید این نسخه از همکاری Sybase خبری نبود. دلیل وقفه پنجساله در ارائه نسخه جدید هم این بود که این بار نمونه‌ای متفاوت با ویژگی‌های پیشرفته‌تر در دسترس توسعه‌دهندگان نرم‌افزار قرار گیرد.

زبان اسکریپت‌نویسی استفاده‌شده در این محصول ( T-SQL(Transact Structured Language است که در نسخه‌های گوناگون پیشرفت‌های قابل توجهی داشته و کار را برای برنامه‌نویسان آسان کرده است.

در ادامه به بررسی و نسخه‌های MS SQL Server می‌پردازیم و ویژگی‌های هر یک را بیان می‌کنیم.

ادامه مطلب...
۲۲ آذر ۹۱ ، ۲۳:۲۷ ۰ نظر موافقین ۱ مخالفین ۰
مهدی عزیزی