آموزش تصویری دستورات مهم JavaScript
JavaSript
از ویکیپدیا، دانشنامهٔ آزاد
جاوااسکریپت (به انگلیسی: JavaScript) زبان برنامهنویسی اسکریپت مبتنی بر اشیاء است که توسط NetScape تولید شدهاست. این زبان، یک زبان شیگرا[۱] است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شدهاست.
علیرغم اشتباه عمومی، زبان جاوااسکریت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد؛ که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همینرو دستورهای متداول مانند if, for,try..catch ,”while” و… در این زبان هم یافت میگردند.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
به علت این قابلیت زبان جاوااسکریپت برای ساختن نمونه از سیستم مناسب میباشد.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی میباشد و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر، از این زبان استفاده میشود.
JavaScript به صورت «جاواسکریپت» خوانده میشود، ولی در فارسی به صورت «جاوااسکریپت» ترجمه میشود و اگر به صورت «جاوا اسکریپت» ترجمه شود اشتباه است چون دو کلمه جدا از هم نیست و اگر به صورت دو کلمه جدا نوشته شود خطلاهای نگارشی ایجاد میشود، به طور مثال ممکن است کلمه جاوا در انتهای خط و کلمه اسکریپت در ابتدای خط بعدی نوشته شود.
تاریخچه
جاوااسکریپت را در ابتدا شخصی به نام برندان ایچ در شرکت نتاسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوااسکریپت تغییر یافت.[۲] این تغییر نام تقریباً با افزوده شدن پشتیبانی از جاوا در مرورگر وب Netscape Navigator همزمانی دارد. اولین نسخهٔ جاوااسکریپت در نسخه ۲٫۰B3 این مرورگر در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نام گذاری منجر به سردرگمیهای زیادی شده و این ابهام را ایجاد میکند که جاوااسکریپت با جاوا مرتبط است در حالی که این طور نیست. عدهٔ زیادی این کار را یک ترفند تجاری برای به دست آوردن بخشی از بازار جاوا که در آن موقع زبان جدید مطرح برای برنامهنویسی تحت وب بود میدانند.[۳][۴]
به دلیل موفقیت عمدهٔ جاوااسکریپت در نقش زبان نویسهای سمت کاربر (client side scripting language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را جی اسکریپت نامید. این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در اوت ۱۹۹۶ داده شد. تفاوتهای این دو زبان به حدی جزیی است که اغلب جی اسکریپت و جاوااسکریپت به جای هم به کار میروند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت جی اسکریپت با استاندارد ECMA مطرح میکند.
نتاسکیپ جاوااسکریپت را به سازمان Ecma International برای استاندارد سازی ارسال کردهاست و نتیجه نسخهٔ استاندارد شدهای به نام ECMA Script است.[۵]
جاوااسکریپت به یکی از زبانهای برنامهنویسی پر طرفدار در وب تبدیل شدهاست. هر چند ابتدا بسیاری از برنامه نویسان حرفهای زبان را کم ارزش تلقی میکردند چون مخاطبین آن نویسندگان صفحات وب و آماتورهای این چنینی بودند.[۶] ظهور ایجکس بار دیگر جاوااسکریپت را در معرض توجه قرار داد و برنامه نویسان حرفهای بیشتری را به خود جذب نمود. نتیجه ازدیاد فریمورک و کتابخانههای جامعی در این زمینه، بهبود شیوههای رایج برنامهنویسی در جاوااسکریپت و افزایش کاربرد جاوااسکریپت خارج از وب است.[نیازمند منبع]
امکانات زبانی
امکانات زیر (در صورت قید نشدن) همگی مطابق استاندارد ECMA Script میباشند.
فریم ورک های مبتنی برجاوا اسکریپت
فریم ورک های زیادی برای این زبان درست شده است مانند جی کوئری و آنگولار جی اس
زبان امری و ساخت یافته
جاوااسکریپت از تمامی نحو ساختاری زبان C پشتیبانی میکند. مانند گزاره (if و switch و حلقههای while و…) یک مورد استثناء تعیین حوزهٔ متغیرهاست: تعریف حوزه در حد block در جاوااسکریپت وجود ندارد. هر چند جاوااسکریپت ۱٫۷ با کلمهٔ کلیدی let این نوع حوزه دهی را امکانپذیر میسازد. مانند c در جاوااسکریپت بین عبارت و گزاره تفاوت وجود دارد.
پویایی
؛ تایپ دهی پویا: مانند اکثر زبانهای نویسهای تایپ به مقدارها منسوب میگردد و نه به متغیرها. برای مثال متغیر x ممکن است به یک عدد وابسته سازی شود، و بعداً به یک رشته. جاوااسکریپت برای تعیین تایپ شی راههای مختلفی از جمله تایپ دهی اردکی (duck typing) را دارد.[۷]
؛ تایپ دهی ضعیف: زبان جاوااسکریپت از نظر تایپ دهی ضعیف به شمار میآید و در آن نتیجهٔ عملیاتی مانند ۵ + “۳۷”، عبارت “۵۳۷” خواهد بود. (عدد را با رشته جمع کردهاست)
؛ اشیاء به دید آرایههای انتسابی: جاوااسکیرپت تقریباً تماماً بر اساس اشیاء است. اشیاء، آرایههای انتسابی به همراه یک «ساختار شماتیک» هستند. نام ویژگی اشیاء، کلیدهای آرایه انتسابی هستند و درواقع obj.x = ۱۰
با obj[“x”] = ۱۰
هم ارز هستند و شیوه نگارش با نقطه صرفاً یک سهولت نحوی است. ویژگیها و مقدارهایشان در زمان اجرا قابلیت تغییر اضافه و حذف دارند. همچنین میتوان روی ویژگیهای یک شی با ساختار for … in
پیمایش کرد.
؛ ارزیابی در زمان اجرا: جاوااسکریپت یک تابع eval دارد که قادر است گزارههای تولید شده در یک رشته در زمان اجرا را، اجرا کند.
تابعی بودن
؛ تابعی بودن: توابع موجوداتی «درجه اول» محسوب میشوند، یعنی خود یک شی هستند؛ بنابراین میتوانند ویژگی داشته باشند، در آرگومانهای تابعها داده شوند و مانند هر شی دیگری با آنها رفتار شود
؛ توابع داخلی و بستارها: توابع داخلی (توابع تعریف شده داخل یک تابع دیگر) هر بار که تابع بیرونی فرا خوانده شود، ایجاد میشوند و متغیرهای توابع بیرونی تا زمانی که تابع داخلی وجود داشته باشد، وجود خواهند داشت، حتی پس از اتمام آن فراخوانی از تابع بیرونی. (مثال: اگر تابع داخلی به عنوان مقدار برگشتی تابع باشد، هنوز به متغیرهای تابع بیرونی دسترسی دارد) – این مکانیزم بستار گرفتن در جاوااسکریپت است.
ساختار شماتیک» محوری
؛ ساختار شماتیک: جاوااسکریپت به جای ردهها برای تعریف ویژگیهای اشیاء، که شامل متدها و وراثت است از «ساختار شماتیک» استفاده میکند (پیشنمونه). امکان شبیهسازی بسیاری از امکانات رده-محور با ساختارهای شماتیک جاوااسکریپت امکانپذیر است.
- توابع در نقش سازندهٔ اشیاء
برای توابع علاوه بر نقش عادی، به عنوان سازنده ی اشیاء هم عمل میکنند. آوردن یک new قبل فراخوانی تابع، آن را با کلمهٔ کلیدی this وابسته سازی شده به شی جدید اجرا میکند. ویژگی prototype از تابع مورد نظر، ساختار شماتیک شی جدید را مشخص میکند.
؛ توابع در نقش متد: بر خلاف بیشتر زبانهای شی گرا تفاوتی میان تعریف تابع و متد وجود ندارد. بلکه تفاوت در زمان فراخوانی تابع است، زمانی که یک تابع به عنوان متد یک شی فراخوانده میشود کلمهٔ کلیدی this محلی آن تابع به شی مورد نظر وابسته سازی میشود.
امکانات دیگر
- امکانات دیگر
جاوااسکریپت برای تأمین اشیاء و متدها که با آنها تعامل کند به یک محیط اجرایی (مانند مرورگر وب) نیاز دارد تا بتواند به این ترتیب با دنیای خارج ارتباط برقرار کند. همچنین برای دسترسی به سایر نویسهها (include) هم به این محیط نیازمند است (مانند تگ <script>در HTML). (البته این یک ویژگی زبانی نیست اما در عمل اغلب این طور پیادهسازی شدهاست)
؛ تعداد متغیر پارامتر (variadic): تعداد نامعینی پارامتر را میتوان به یک تابع ارسال نمود. تابع میتواند هم از طریق پارامترهای رسمی و هم از طریق شی محلی arguments
به آنها دسترسی داشته باشد.
- Literalهای آرایه و شی
مانند بسیاری از زبانهای نویسهای آرایهها و اشیاء (که در زبانهای دیگر همان آرایههای انتسابی هستند) را میتوان با یک نحو موجز ایجاد و توصیف نمود. در واقع این شیوهٔ نگارش پایهٔ قالب دادهای جیسون هم هست.
جاوااسکریپت به شیوهای مشابه زبان پرل از عبارات منظم پشتیبانی میکند که نحوی قدرتمند و موجز را به شکلی فراتر از توابع پیش ساخته برای کار با رشتهها، فراهم میکند.
نظام تایپ دهی
انواع زیر جزو انواع دادههای قابل دسترس در زبان جاوااسکریپت است. در استاندارد ECMA انواع دیگری هم تعریف شده که صرفاً داخلی است و برای پیادهسازی است.[۸]
تعریف نشده: این تایپ فقط یک مقدار با نام undefined دارد و متعلق به تمام متغییرهای مقدار دهی نشدهاست
نوع تهی: نوع تهی هم فقط یک مقدار دارد با نام null
نوع دودویی: نمایندهٔ یک مقدار منطقی است و دو مقدار true و false را میپذیرد.
نوع رشته: در بر گیرندهٔ تمام رشتههای متناهی از ۰ یا بیشتر عنصر ۱۶ بیتی بدون علامت است. این عناصر با اندیسهای نامنفی قابل دسترسی هستند. طول رشته تعداد عناصر داخل آن و طول رشتهٔ تهی برابر ۰ است.
زمانی که رشته حاوی متن واقعی باشد هر عنصر به عنوان یک واحد UTF-16 در نظر گرفته میشود (مستقل از این که شیوهٔ واقعی نگه داری رشته چه باشد). تمام عملیات بر روی رشتهها آنها را به عنوان اعداد صحیح بدون علامت در نظر میگیرند و تضمین کنندهٔ تولید رشته به حالت normalize شده نیست و تضمینهای خاص زمانی هم ندارد. علت این تصمیم گیری سادگی در پیادهسازی ذکر شدهاست.
نوع عدد: نوع عدد در جاوااسکریپت مطابق با استادارد IEEE برای اعداد شناور دودویی است (با اندکی تفاوت).
نوع شی: شی در جاوااسکریپت یک مجموعه بدون ترتیب از ویژگیها است. هر ویژگی میتواند داخلی، فقط-خواندنی، غیرقابل حذف، و غیرقابل پیمایش باشد (یا ترکیبی از اینها یا هیچکدام)
تبدیلات خودکار
این زبان دارای تبدیلات خود کار بین این انواع دادهای است.
زمانی که بخواهد یک if را ارزیابی کند یا از عملگرهای منطقی !
و &&
و ||
استفاده شود، تبدیل به نوع دودویی را انجام میدهد. مقادیر ۰ و ۰- و NaN
به false
و سایر مقادیر عددی به true
نگاشت میگردد. همچنین رشتهٔ تهی false
و سایر رشتهها true
در نظر گرفته میشود. انواع شی و تابع true
و undefined
و null
هم false
در نظر گرفته میشود.
زمانی که یکی از عملوندهای عملگر + رشته باشد، تبدیل به رشته صورت میگیرد، مانند ۵ + “۳۷” که میشود “۵۳۷”
عملگرهای دیگری عددی (جز جمع) منجر به تبدیل به عدد میگردد مانند ۳ – “۵۷” که مقدار عددی ۳۴- را به دست میدهد.[۹]
آموزش تصویری HTML
HTML
برای تأییدپذیری کامل این مقاله به منابع بیشتری نیاز است. لطفاً با توجه به شیوهٔ ویکیپدیا برای ارجاع به منابع با ارایهٔ منابع معتبر این مقاله را بهبود بخشید. مطالب بیمنبع را میتوان به چالش کشید و حذف کرد. |
استانداردهای وب |
---|
HTML RDF CSS DOM XHTML XML SVG W3C DHTML |
زبان نشانهگذاری ابرمتنی یا زنگام[۱] یا اچتیامال، HTML یا HyperText Markup Language در کنار سیاساس هستهٔ فناوری ساخت صفحههای وب هستند. اچتیامال زبان توصیف ساختار صفحههای وب است.[۲] زبانیاست برای نشانهگذاری ابرمتن که برای تدوین قالب و طراحی صفحههای وب به کار میبرند. دستورعملهای این زبان، برچسب (Tag) نام دارند که محتوای یک صفحهٔ وب، با آنها، نشانهگذاری شده و بدینترتیب، نحوهٔ نمایش آن صفحه برای مرورگرهای وب، توصیف میشود.
این زبان در خلال دهه ۹۰ توسط دنیس ریچی ابداع شد.
تاکنون نسخهٔ ۵ آن عرضه است.[۳]
هر یک از برچسبهای اچتیامال، معنا و مفهوم خاصی دارند و تأثیر مشخصی بر محتوا میگذارند؛ مثلاً برچسبهایی برای تغییر شکل ظاهری متن، نظیر درشت و ضخیم کردن یک کلمه یا برقراری پیوند به صفحات دیگر در اچتیامال تعریف شدهاند.
یک سند اچتیامال، یک پروندهٔ مبتنی بر متن (Text–based) است که معمولاً با پسوند .htm یا .html نامگذاری شده و محتویات آن از برچسبهای اچتیامال تشکیل میشود. مرورگرهای وب، که قادر به درک و تفسیر برچسبهای اچتیامال هستند، تکتک آنها را از داخل سند اچتیامال خوانده و سپس محتوای آن صفحه را نمایانسازی (Render) میکنند.
اچتیامال زبان برنامهنویسی نیست، بلکه زبانی برای نشانهگذاری ابرمتن است و اساساً برای ساختمند کردن اطلاعات و جدایش اجزای منطقی یک نوشتار — نظیر عناوین، تصاویر، فهرستها، بندها و جداول — به کار میرود. از سوی دیگر، اچتیامال را نباید به عنوان زبانی برای صفحهآرایی یا نقاشی صفحات وب به کار بُرد؛ این وظیفه اکنون بر دوش فناوریهای دیگری همچون سیاساس است.
گفتنی است اچتیامال شکلی از زبان دیگری بنام اسجیامال است و World Wide Web Consortium آن را به عنوان استانداردی برای نشانهگذاری مستندات ابرمتنی برای عرضه در وب، تدوین کردهاست.
در اچتیامال سه نوع برچسب وجود دارد:
- تگهای یکه. مانند <HR> که خط رسم میکند.
- تگهایی که شروع و پایان دارند. مثل: <head></head>
- تگهایی که دارای ویژگی میباشند. مثل:
<a href=”http://www.w3.org”>متن</a>
محتویات
[نهفتن]
تاریخچه[ویرایش]
توسعه[ویرایش]
در سال ۱۹۸۰ فیزیکدانی به نام Tim Berners-Lee که با پروژهٔ CERN همکاری داشت ENQUIRE را طراحی و ارائه کرد که یک سیستم مهم برای محققان CERN بود تا اینکه از این دادهها به شکل مشترک استفاده کنند. در سال ۱۹۸۹، Berners- Lee یک یادداشت پیشنهاد یک سیستم ابر متن مبتنی بر اینترنت نوشت. Berners- Lee یک نوع خاص HTML را مشخص نمود و یک نسخهٔ جستجوگر و نرمافزار سرور را در انتهای۱۹۹۰ نوشت. در این سالیان این فیزیکدان و مهندس سیستمهای دادههای CERN بنام Robert Cailliau یک سرمایهگذاری مشترک را انجام دادند ولی این پروژه به شکل رسمی توسط CERN دنبال نشد. در یادداشتهای شخصی او از سال ۱۹۹۰ اشاره شده است که برخی از مناطق مختلف ابر متن (hypertext) به کار گرفته شده است و در ابتدای آن از یک دائرهالمعارف استفاده گردید.
اولین بار شرح کامل HTML به این شکل بود که به آن در نسخههای قبلی “HTML Tags” گفته شد که برای اولین بار توسط Berners –Lee در سال ۱۹۹۱ روی اینترنت قرار گرفت؛ که آن توصیف ۱۸ عناصر شامل عناصر اولیه، طراحی نسبتاً ساده از HTML بود. به غیر از Hyperlink این موارد تحت تاثیر SGMLguid در فرمت مبتنی بر SGML قرار گرفت و در پروژهٔ CERN به کار. رفت یازده مولفه از آن در HTML 4 نوشته شده است.
زبان نشانه گذاری ابرمتنی به شکلی است که مرورگرهای وب برای تحلیل و نوشتن متون تصاویر و دیگر مواد روی صفحات قابل شنیدن و قابل دیدن وب به کار میرود. ویژگیهای پیش فرض برای هر مورد در ساختار HTML در جستجوگر تعریف شده است و این ویژگیها را میتوان تغییر داد و یا اینکه توسط CSS بر اساس طراحی صفحه افزایش داد. بسیاری از اجزای متن در گزارش فنی ۱۹۸۸ ISO به شکل TR9537 ارائه شده است که نام این جزء روشهای استفاده از SGML بود که در آن ویژگیهای اولیه ساختار زبانی مانند آنچه که در مورد فرمان RUNOFF دیده میشود استفاده شد که در ابتدای دهه ۱۹۶۰ برای CTSS ارائه شده است. این فرمانهای ساختاری از فرمانهای مورد استفاده توسط typesetters استفاده میکند که به شکل دستی برای فرمتهای مختلف در نظر گفته شدهاند. اما اصل SGML برای ساختار کلی بر اساس اجزای مختلف است (محدودههای حاشیه نویسی تو در تو به همراه ویژگیهایی که دارد) تا اینکه از اثرات چاپ استفاده شود. همچنین جداسازی ساختارها و شکل ترکیبی نیز باید در نظر گرفته شود. HTML به شکل مداوم به این صورت با CSS به کار گرفته میشود.
Berners- Lee از HTML به عنوان یک ابزار برای SGML استفاده کرده است. به طور کلی آنرا به عنوان دستور نیروی ضربت مهندسسی اینترنت(IETF) تعریف کرده است که در سال ۱۹۹۳ نسخههای اولیه از آن را بر اسا HTML ارائه نمود.”زبان نشانه گذاری ابرمتنی HTML” پیش نویسی اینترنتی توسط Dan Cannolly ،Berners- Lee ارائه گردید و درون تعریف نوع سند SGML برای تعریف گرامر ارائه شد. این نسخه اولیه پس از شش ماه منقضی گردید ولی قابل توجه اینکه از جستجو گرNCSA Mosaic به شکل جستجو گر پیش فرض برای تصاویر بر خط استفاده شد که نشان دهندهٔ فلسفهٔ IETF در استانداردهای ساختارهای موفق است. به همین شکل Dave Raggett’s رقابت خود را با ارائه(Internet-Draft , HTML+(Hypertext Markup format از انتهای ۱۹۹۳ شروع کرد و پیشنهاد کرد که یک ساختار اجرایی مانند جداول و شکلهای پر شونده را میتوان برای این منظور به کار گرفت.
پس از انکه HTML و +HTML به شکل پیش نویس در ابتدای ۱۹۹۴ منقضی گردید،IEFT یک گروه کاری HTML را ایجاد کرد که در سال ۱۹۹۵ نسخهٔ HTML 2.0 تکیمل گردید، HTML اولیه با این قصد ساخته شده که به شکل یک ساختار استاندارد در آینده از آن استفاده شود.
پس از آن پیشرفتهایی در IETF در نظر گرفته شد که مورد توجه رقیبان قرار گرفت. تا سال ۱۹۹۶ ویژگیهای HTML حفظ شد و ورودیهایی از نرمافزارهای تجاری گرفته شد که این کار توسط (W3C) انجام شد. اما در سال ۲۰۰۰ HTML یک استاندارد بینالمللی (ISO/IEC 15445:2000) گردید. HTML4.01 در انتهای ۱۹۹۹ انتشار یافت و پس از آن ساختار بعدی آن در سال ۲۰۰۱ به شکل کامل منتشر شد- در سال ۲۰۰۴ پیشرفتهایی در HTML5 در (WHATWG) در نظر گرفته شد و شکل قابل ان تشار آن به شکل W3C در سال ۲۰۰۸ ارائه گردید.
نسخههای HTML جدول زمانی[ویرایش]
۲۱ نوامبر ۱۹۹۵[ویرایش]
HTML 2.0 به شکل IETF RFC 1866 انتشار یافت.RFCs تکمیلی ظرفیتهای زیر را داشت:
- ۲۵ نوامبر RFC 1867:1995 (آبلود فایل مبتنی بر فایل)
- می RFC 1942:1996 (جداول)
- اگوست RFC 1980:1996(نقشههای تصویری سمت مشتریان)
- ژانویه RFC 207O:1997 (بینالمللی شده)
ژانویه ۱۹۹۷[ویرایش]
HTML3.2 به شکل توصیه نامهٔ W3C انتشار یافت. نسخه اول پیشرفت داده شد و استاندارد کردن آن به شکل انحصاری توسط W3C انجام شد به همین شکل IETF گروه کاری خود HTML را در سپستامبر ۱۹۹۶ کاملاً ارائه کرد. در ابتدا این فرمان را Wilbur نامید. HTML3.2 فرمولهای ریاضی را به طور کامل به کار گرفت، که در آن همپوشانیهایی در اجزای مختلف پیشرفت کرده آن داشت و از مهم ترین ابزارهای تصویری Netscape استفاده شده بود. عناصر مبهم Netscape و عناصر متحرک Microsoft مورد استفاده قرار نگرفت که دلیل آن توافق دو طرفه میان دو شرکت بود. ساختار ریاضی مورد استفاده مشابه با HTML بود ولی استاندارد کردن آن تا ۱۴ ماه پس از MathML انجام نگرفت.
دسامبر۱۹۹۷[ویرایش]
html 4.0 توصیه W3C را ارائه کرد که در آن سه تفاوت عمده اعمال شده بود:
- مشکل کلی که در آن اجزای بد پنهان شده بودند.
- انتقالی که در آن اجزای بد اجازه داده شده بودند.
- قاب که در آن قاب با اجزای مختلف مرتبط اجازه داده شده بودند.
درابتدا با کدنام “Cougar” نامگذاری شده بود و ۰٫HTML4 از انواع اجزای خاص جستجوگر و ساختارهای مختلف استفاده کرده بود ولی در همان زمان مرحلهای در نظر گرفته شد که از ویژگیهای نشانه گذاری بصری Netscap را با مارک آنها به عنوان نفع شیوه نامهها توصیه نمیشود. HTML 4 یک برنامه SGML مطابق با ISO 8879 است.
آوریل ۱۹۹۸[ویرایش]
HTML4.0 برخی تغییرات انداک را دوباره انجام داد بدون آنکه تعداد نسخهها را افزایش دهد.
دسامبر ۱۹۹۹[ویرایش]
HTML4.01 به توصیهٔ W3C انتشار یافت. در آن سه تغییر کلی به شکل HTML4.0 در نظر گرفته شد و اخرین غلط نامه در ۱۲ می ۲۰۰۱ انتشار یافت.
می ۲۰۰۰[ویرایش]
۲۰۰۰:ISO/IEC ۱۵۴۴۵ به عنوان استاندارد بینالمللی ISO/IEC انتشار یافت. در ISO این استاندارددر حوزه ISO/IEC JTC1/SC34 قرارگرفت. دراواسطISO/IEC15445:2000,HTML4.01 :۲۰۰۸ جدیدترین نسخههای HTML ارائه شد. پیشرفتهای موازی صورت گرفته، باعث شد که XHTML مبتنی بر XML حاصل شود که توسط گروه کاری W3CHTML در طی اوایل و اواسط ۲۰۰۰ اشغال شده بود.
جدول زمانی نسخههای پیش نویس HTML[ویرایش]
اکتبر ۱۹۹۱[ویرایش]
برچسبهای HTML فهرستی از نسخههای غیر رسمی CERN که در آن ۱۸ برچسبهای HTML وجود دارد که برای اولین بار برای عموم مورد استفاده قرار گرفت.
ژوئن ۱۹۹۲[ویرایش]
پیش نویس غیر رسمی اول HTML DTD هفت بار مورد اصلاح قرار گرفت(۱۵ ژوئیه، ۶آگوست، ۱۸ آگوست، ۱۷ نوامبر، ۱۹نوامبر، ۲۰نوامبر و ۲۲نوامبر)
نوامبر ۱۹۹۲[ویرایش]
HTML DTD1.1 اولین نسخه دارای اعداد بر مبنای اصلاحات RCS که با ۱٫۱ شروع شد تا اینکه با ۱٫۰ شروع شود و این به عنوان نسخه غیر رسمی درآمد
ژوئن ۱۹۹۳[ویرایش]
زبان ساختاری Hypertext توسط گروه کاری IETF IIIR به عنوان نسخهٔ اینترنتی درآمد (که یک پیش نویس برای استاندارد در نظر گرفته شد) این جایگزین نسخه دوم شد که یکماه بعد از این اتفاق افتاد و پس از آن شش پیش نویس توسط IETF انتشار یافت و در نهایت منجر به ارائه HTML 2.0 در RFC1866 گردید.
نوامبر ۱۹۹۳[ویرایش]
HTML+ توسط IETF انتشار یافت که یک پیش نویس اینترنتی بود و رقیب پیش نویس زبان ساختاری Hyper textگردید. در می ۱۹۹۴ این نسخه منقضی گردید.
آوریل ۱۹۹۵[ویرایش]
(تا مارس ۱۹۹۵ نسخههای نهایی آن ارائه شد): HTML3.0 را میتوان یک استاندارد برای IETF در نظر گرفت ولی پیش نویس آن ۵ ماه بعد بدون هیچگونه اقدامی منقضی گردید. این شامل ظرفیتهایی بود که در پیش نویس +Raggett’s HTML دیده شده و برای پشتیبانی جداول و متون در اطراف تصاویر به کار گرفته شد و میتوانست که فرمولهای ریاضی پیچیده را نمایش دهد. W3C برای جستجوگر Arena پیشرفت کرد و به عنوان یک بستر آزمایشی برای HTML3 و صفحات آبشاری شکل استفاده شد ولی HTML3.0 به دلایل مختلف موفق نبود. این پیش نویس بسیار بزرگ بود و ۱۵۰ صفحه در آن دیده شد و تعدادی از اجزای جالب به آن اضافه شد و منابع IETF در خارج آن قرار گرفت. ارائه کنندگان جستجوگر شامل Netscape ,Microsoft در همین زمان زیر مجموعههای مختلفی از HTML3 را انتخاب کردند تا اینکه پیشرفتهایی در آن ایجاد شود. این پیشرفتها برای کنترل جنبههای مختلف در نظر گرفته شد که رنگ متن، بافت پیش تصویر، اندازهٔ فونت و شکل فونت در خارج از محدود ی زمانی قرار میگرفت و این میتوانست نشان دهد که چگونه این بخش سازماندهی شده است. Dave Raggett برای چندین سال از W3C استفاده کرده بود که یک مثال مطلوب برای این منظور بود. مطمئناً مایکروسافت براساس صفحات وب ساخته شده بود و از ویژگیهای HTML انتخاب شده بود.
ژانویه ۲۰۰۸[ویرایش]
HTML5 به عنوان پیش نویس کاری توسط W3C انتشار یافت ولی syntax یک HTML5 , SGML را ارائه کرد که تلاش کرده بود که از SGML استفاده کند و HTML5 تلاشهای مختلفی را برای SGML انجام داد و آنرا سری “html” تعریف نمود که به سری سازی XML- مبتنی بر XHTML5 جایگزین منجر شد.
می ۲۰۱۱[ویرایش]
در ۱۴ فوریه ۲۰۱۱، W3C ویژگی گروه کاری HTML را پیشرفت داد و یک ساختار مشخص برای HTML5 ارائه کرد. در می ۲۰۱۱ گروه کاری HTML5 پیشرفته را ارائه کرد که آخرین مورد بود و به دنبال آن بود که W3C خارجی را ارائه کند تا اینکه این ویژگی را به خوبی تعریف نماید. W3C آزمون جامعی را توسعه داد که در آن ویژگیهای کامل به آن تا ۲۰۱۴ اضافه شد و اکنون این تاریخ هدفی برای توصیهها شده بود.
نسخههای XHTML[ویرایش]
XHTML یک زبان جداگانه است که به شکل فرمول بندی دوباره HTML 4.01 خود را نشان میدهد و از XML1.0 استفاده نموده است. اما به عنوان یک استاندارد جداگانه نمیتوان از آن نام برد.
- XHTML 1.0 در ۲۶ ژانویه ۲۰۰۰ انتشار یافت که به عنوان توصیهٔ W3C از آن نام بده شد و پس از آن دوباره اصلاح شد و انتشار دوبارهٔ آن در اول آگوست ۲۰۰۲ بود که در آن از سه نسخهٔ یکسان به عنوان HTML 4.0 و ۴٫۰۱ استفاده شد و فرمول بندی دوبارهٔ آن در XML بامحدودیتهای خاص در نظر گرفته شد.
- XHTML 1.1 در ۳۱ می ۲۰۰۱ انتشار یافت که توصیهٔ W3C محسوب شد. مبنای آن XHTML 1.0 بود ولی تغییرات اندکی در آن اعمال شده بود و فرمول بندی آن از ساختارهای تعدیل شده XHTML استفاده کرده بود که در ۱۰ آوریل ۲۰۰۱ انتشار یافته بود و توصیه W3C محسوب میگردید.
- XHTML 2.0 یک نسخه پیش نویس کاری بود ولی در ۲۰۰۹ انتشار یافت که برای کارکرد مطلوب HTML5, XHTML5 بود. XHTML2.0 ناسازگاریهایی با XHTML1.X داشت و در نتیجه به شکل زبان جدید XHTML در امد تا اینکه به روزرسانی آن تا XHTML 1.X صورت گیرد
- XHTML Syntaxرا میتوان به عنوان XHTML5.1 دانست که بر اساس آن HTML5 در پیش نویس HTML5 تعریف شده بود.
پایگاه داده (Database)
پایگاه داده
از ویکیپدیا، دانشنامهٔ آزاد
پایگاه دادهها (به طور خلاصه پایگاه)، بانک اطلاعاتی، دادِگان و یا دیتابیس (به انگلیسی: Database) به مجموعهای از دادهها با ساختار منظم و سامانمند گفته میشود.
عبارت دیگر، «پایگاه داده» اشاره به مجموعهای از دادههای مرتبط و ساختار یا سازمان است که دسترسی به این اطلاعات معمولا از طریق «سیستم مدیریت پایگاه داده» (DBMS) متشکل از یک مجموعه یکپارچه از نرمافزارهای کامپیوتری است که اجازه میدهد تا کاربران برای ارتباط برقرار کردن با یک یا چند پایگاه دادهها و دسترسی به تمام اطلاعات موجود در پایگاه داده (اگر چه محدودیت ممکن است که دسترسی محدود به اطلاعات خاص وجود داشته باشد) را فراهم میکند. چگونگی این که توابع مختلف که ورود، ذخیرهسازی و بازیابی مقادیر زیادی از اطلاعات و همچنین ارائه برای مدیریت را نشان میدهد که این اطلاعات سازمان یافته است. از آنجا که از ارتباط نزدیک بین آنها، اصطلاح «پایگاه داده» است که اغلب معمولی استفاده میشود برای اشاره به هر دو یک پایگاه داده و DBMS استفاده میشود. خارج از دنیای فن آوری اطلاعات حرفهای، پایگاه داده مدتی است که اغلب برای اشاره به هر مجموعهای از دادههای مرتبط (مانند یک صفحه گسترده و یا یک شاخص کارت) استفاده میشود. در این مقاله تنها با پایگاه دادهای که در آن اندازه و شرایط ضروری استفاده از سیستم مدیریت پایگاه داده مهم است سروکار داریم. دی. بی. ام. اس. اس موجود به توابع مختلف اجازه میدهد که مدیریت یک پایگاه داده و دادههای خود را انجام دهد که میتوان آن را به چهار گروه اصلی طبقهبندی کرد:
تعریف دادهها – ایجاد، اصلاح و حذف از تعاریف که سازمان داده را با استفاده از آن تعریف میکنیم.
به روز رسانی – درج، اصلاح و حذف دادههای واقعی.
ارائه اطلاعات در یک فرم به طور مستقیم قابل استفاده و یا برای پردازش بیشتر توسط برنامههای کاربردی دیگر. دادههای بازیابی ممکن است در یک فرم اساسا همان است که در پایگاه داده و یا در یک فرم جدید به دست آمده با تغییر یا ترکیب دادههای موجود از پایگاه دادههای ذخیره شده در دسترس ساخته شده است.
اداره – ثبت نام و نظارت بر کاربران، اجرای امنیت دادهها، نظارت بر عملکرد، حفظ تمامیت دادهها، خرید و فروش با کنترل همزمانی، و دوره نقاهت بعد اطلاعات است که توسط برخی از رویداد مانندشکست غیر منتظره سیستم خراب به وجود میاید.
هم پایگاه داده و همDBMS مطابق با اصول مدل پایگاه داده خاص است. «سیستم پایگاه داده» اشاره جمعی به مدل پایگاه داده، سیستم مدیریت پایگاه داده، و پایگاه داده است. از لحاظ فیزیکی، سرورهای پایگاه داده کامپیوتر اختصاص داده شده است به برگزاری پایگاههای داده واقعی و اجرا تنها DBMS و نرمافزارهای مرتبط است. سرورهای پایگاه داده معمولاازچند کامپیوتر، با حافظه و دیسک RAID مورد استفاده برای ذخیرهسازی پایدار است..RAID ابرای بازیابی دادهها استفاده میشود اگر هر کدام از دیسکها و یا. سختافزار شتاب دهنده پایگاه داده، از طریق یک کانال با سرعت بالا به یک یا چند سرویس دهنده متصل شود، در محیطهای پردازش تراکنش با حجم زیادی استفاده میشوند.. دی. بی. ام. اس در قلب اکثر برنامههای کاربردی پایگاه داده یافت میشود. دی. بی. ام. اس ممکن است در اطراف یک هسته چند وظیفه سفارشی ساخته شده برای حمایت از شبکه ساخته شده است، اما دی. بی. ام. اس. اس مدرن به طور معمول در یک سیستم عامل استاندارد وجود دارد. دی. بی. ام. اس. اس شامل یک بازار اقتصادی قابل توجه برای فروشندگان کامپیوتر و ذخیرهسازی الزامات DBMS در برنامههای توسعه داده است. پایگاه دادهها و دی. بی. ام. اس. اس را میتوان با توجه به مدل پایگاه داده (بازدید کنندگان) که آنها را پشتیبانی میکند (مانند رابطه و یا XML)، نوع (بازدید کنندگان) کامپیوترهایی که آنها را اجرا میکند (از یک خوشه سرور به یک تلفن همراه) طبقهبندی کرد.
تاریخچه پایگاه داده
پایگاه دادهها برای حمایت از عملیات داخلی سازمانها و زیر بنای تعامل آنلاین با مشتریان و تامین کنندگان (نرمافزار شرکت مراجعه کنید). استفاده میشود. پایگاه دادهها برای نگهداری اطلاعات اداری و اطلاعات تخصصی تر، مانند دادههای مهندسی و یا مدلهای اقتصادی استفاده میشود. نمونههایی از برنامههای کاربردی پایگاه داده شامل سیستم کتابخانه کامپیوتری، سیستم رزرو پرواز و سیستمهای موجودی computerizedparts.
DBMS به یک سیستم نرمافزار پیچیده تکامل یافته است و توسعه آن به طور معمول به هزاران نفروسال تلاش وتوسعه نیاز دارد. برخی از دی. بی. ام. اس مانند Adabas، اوراکل و DB2. هدف دی. بی. ام. اس رفع نیازهای برنامههای کاربردی. با این حال، این واقعیت است که هزینه توسعه میتواند مقرون به صرفه تر باشد. با این حال، DBMS همیشه راه حل بهینهای دارد: در برخی مواردDBMS ممکن سربار غیر ضروری را معرفی کند. نمونههای بسیاری از سیستمهای که با استفاده از پایگاه دادههای خاص وجود دارد. یک مثال رایجسیستم ایمیل است: سیستمهای ایمیل طراحی شده است برای بهینهسازی مدیریت پیامهای ایمیل، و نیازی بخش قابل توجهی ازقابلیت DBMS است. بسیاری از بانکهای اطلاعاتی نرمافزار برنامهای است برای دسترسی به پایگاه داده از طرف کاربران نهایی، بدون قرار دادن رابط DBMS به طور مستقیم. برنامه نویسان نرمافزار ممکن است یک پروتکل سیم به طور مستقیم، و یا به احتمال زیاد از طریق یک رابط برنامه نویسی برنامه استفاده کنند. طراحان پایگاه داده و مدیران پایگاه داده با DBMS از طریق رابطهای اختصاص داده شده برای ساخت و حفظ برنامههای کاربردی ‘ پایگاههای داده، و در نتیجه نیاز به برخی از دانش بیشتر و درک در مورد چگونگی عملکرد دی. بی. ام. اس و رابط خارجی و پارامترهای تنظیم دی. بی. ام. اس تعامل میکنند.
یکی از راههای طبقهبندی پایگاههای داده شامل نوع محتویات آنها است، به عنوان مثال: کتابشناسی، سند متن، اشیاء آماری، و یا چند رسانهای. راه دیگر این است که توسط منطقه کاربرد آنها طبقهبندی شود، به عنوان مثال: حسابداری، آهنگ موسیقی، فیلم، بانکداری، تولید، و یا بیمه. راه سوم این است که توسط برخی از جنبههای فنی، مانند ساختار بانک اطلاعاتی و یا نوع رابط طبقهبندی شود. در این بخش برای توصیف انواع پایگاه دادهها از چند صفت استفاده میشود.. پایگاه دادهها در حافظه یک پایگاه داده است که در درجه اول در حافظه اصلی ساکن است، اما به طور معمول حمایت کردن توسط حافظهٔ غیر فرار دادههای کامپیوترانجام میشود. پایگاههای دادهای که در حافظه اصلی هستند سریع تر از پایگاه دادههای هستند که در دیسک و غیره قرار دارند؛ که اغلب درتجهیزات شبکه ارتباطات از راه دور مورد استفاده قرارمیگیرند
پلت فرم SAP HANA موضوع بسیارمهم در حافظه پایگاه داده است. تا ماه مه سال ۲۰۱۲، HANA قادر به اجرا بر روی سرور با حافظه اصلی ۱۰۰TB طراحی شده توسط آی بی ام بود. بنیانگذار شرکت ادعا کرد که این سیستم به اندازه کافی بزرگ برای اجرای بزرگترین مشتریان SAP بود.
پایگاه داده فعال شامل رویداد معماری محور است که میتواند به شرایط هر دو داخل و خارج از پایگاه داده، پاسخ دهد. استفاده احتمالی عبارتند از نظارت بر امنیت، هشدار، جمعآوری آمار و مجوز. بسیاری از بانکهای اطلاعاتی و ارائه ویژگیهای پایگاه داده فعال در قالب عوامل پایگاه داده.
پایگاه داده ابر متکی بر فناوری ابر. پایگاه داده و بسیاری از DBMS، «در ابر» در حالی که برنامههای کاربردی آن هم توسط برنامه نویسان توسعه یافته و بعد حفظ میشود و توسط کاربران نهایی از طریق aweb مرورگر و رابطهای برنامه کاربردی گسترش مییابد. آرشیو دادهها از پایگاه دادههای عملیاتی و اغلب از منابع خارجی است مانند شرکتهای تحقیقات بازار. انبار منبع اصلی اطلاعات برای استفاده توسط مدیران و دیگر کاربران نهایی است که ممکن است دسترسی به دادههای عملیاتی نداشته باشند. به عنوان مثال، فروش اطلاعات ممکن است به روز بالغ هفته جمع و تبدیل از کد محصول داخلی به استفاده از UPCs به طوری که میتوان آنها را با دادههای ACNielsen مقایسه شده است. • بعضی از اجزای اساسی و ضروری از انبار دادهها شامل: بازیابی، تجزیه و تحلیل، و داده کاوی، تبدیل، بارگیری و مدیریت دادهها، تا که آنها را برای استفاده بیشتر در دسترس قرار دهد.
پایگاه داده استنتاجی ترکیبی از برنامه نویسی منطقی با یک پایگاه داده رابطهای است، به عنوان مثال با استفاده از زبان DATALOG
پایگاه داده توزیع شده که در آن داده و DBMS دهانه چندین کامپیوتر است.
پایگاه داده سند گرا برای ذخیرهسازی، بازیابی و مدیریت اطلاعات، و یا دادههای نیمه ساخت طراحی شده است. پایگاه داده سند گرا یکی از دستهبندیهای اصلی پایگاه داده نواسکیوال است. سیستم پایگاه دادههای جاسازی شدهDBMS که بانرم افزار است.
پایگاه دادههای کاربر نهایی از داده توسعه یافته توسط کاربران فردی نهایی است. نمونههایی از این مجموعه اسناد، صفحات گسترده، ارائهٔ چند رسانهای، و فایلهای دیگر است.. برخی از محصولات پایگاه دادهها بسیار سادهتر از دی. بی. ام. اس کامل است. با قابلیت DBMS ابتدایی تر.
یک سیستم پایگاه داده فدرال شامل چندین پایگاههای داده مجزا با DBMS مجزا است. آن را به عنوان یک پایگاه داده واحد که توسط یک سیستم مدیریت پایگاه داده فدرال (FDBMS) مدیریت میشود، که از ادغام دی. بی. ام. اسهای مستقل متعدد از انواع مختلف (که در این صورت آن را نیز یک سیستم پایگاه داده ناهمگن است) به کار گرفته شده است، و آنها را با یک دیدگاه مفهومی یکپارچه فراهم میکند.
گاهی اوقات چند پایگاه داده به عنوان مترادفی از پایگاه داده فدرال استفاده میشود، هر چند که ممکن است کمتراشاره به گروهی از پایگاه داده شود (به عنوان مثال، بدونFDBMS وطرح یکپارچه مدیریت) که در یک برنامه واحد همکاری کنند. این مورد به طور معمول برای توزیع استفاده میشود، که به طور معمول شامل یک پروتکل اتمی مرکب (ACP)است، به عنوان مثال، دو فاز مرکب پروتکل، اجازه میدهد تا توزیع (جهانی) معاملات در سراسر پایگاه دادههای شرکت کننده انجام شود.
پایگاه داده نمودار یک نوع پایگاه داده نواسکیوال است که با استفاده از ساختار گراف با گره، لبه، و خواص برای نشان دادن و ذخیره اطلاعات است. پایگاه داده نمودار عمومی است که میتواند هر گراف ذخیرهای متمایز از پایگاه داده نمودارهای تخصصی مانند triplestores و پایگاه داده شبکه باشد.
آرایه DBMS یک نوع نواسکیوال DBMS است که اجازه میدهد تا به مدله فروشگاه و بازیابی (معمولا بزرگ) arrayssuch چند بعدی به عنوان تصاویر ماهوارهای و خروجی شبیهسازی آب و هوا تبدیل شود. درhypertext یا hypermedia پایگاه داده، هر کلمه و یا یک تکه از متن به نمایندگی یک شی در میاید. به عنوان مثال، قطعه دیگری از متن، مقاله، عکس، و یا یک فیلم. میتوان به آن لینکهایی از پایگاههای داده ابرمتن به ویژه برای سازماندهی مقادیر زیادی از اطلاعات ناهمگون داده شود. به عنوان مثال، آنها برای سازماندهی دائرهالمعارف آنلاین، مفید هستند که در آن کاربران به راحتی میتوانند کارهایی مثل پرش اطراف متن را از طریق شبکه جهانی وب دردسترس همه قرار دهند در نتیجه یک پایگاه داده بزرگ توزیع فرامتن بوجود میاورد.
پایگاه دانش یک نوع خاص از پایگاه داده برای مدیریت دانش است، ارائه روشی برای جمعآوری، سازمان، و بازیابی دانش کامپیوتری است. همچنین مجموعهای از دادههای نشان دهنده مشکلات با راه حلهای خود و تجارب مرتبط با آن است.
پایگاه دادههای تلفن همراه که در دستگاه رایانه همراه و تلفنهای همراه قرار دارد.
پایگاه داده عملیاتی ذخیره داده مفصل در مورد عملیات سازمان است. آنها به طور معمول پردازش حجم نسبتا بالایی از به روز رسانی با استفاده از معاملات را بر عهده دارند. مثالها عبارتند از پایگاه دادههای مشتری که رکورد تماس، اعتبار، و اطلاعات جمعیتی در مورد کسب و کار • مشتریان را بر عهده دارد. پایگاه داده پرسنل که نگهداری اطلاعات مانند حقوق و دستمزد، مزایای، داده مهارتهای مورد کارکنان، سیستمهای برنامه ریزی منابع سازمانی است که جزئیات رکورد در مورد اجزای محصول، موجودی قطعات، و پایگاه داده مالی که پیگیری پول سازمان، حسابداری و معاملات مالی را بر عهده دارد.
پایگاه داده موازی به دنبال بهبود عملکرد از طریق موازی برای انجام وظایفی مانند: بارگذاری اطلاعات، شاخص ساختمان و ارزیابی نمایش داده است. معماری DBMS موازی عمدتاٌ توسط معماری سخت افزارانجام میشود که عبارتند از:
به اشتراک گذاشتن معماری حافظه، که در آن پردازندههای چند گانه را به اشتراک فضای حافظه اصلی، و همچنین به عنوان ذخیرهسازی دادهها دیگردر میاورند.
به اشتراک گذاشتن معماری دیسک، که در آن هر واحد پردازش (به طور معمول شامل پردازندههای چند گانه) دارای حافظه اصلی خود است، اما همه واحدهای اشتراک ذخیرهسازی دیگر نیز وجود دارند.
به اشتراک گذاشتن معماری که در آن هر واحد پردازش حافظه اصلی و ذخیرهسازی دیگرانجام میشود.
پایگاههای داده احتمالاتی استخدام منطق فازی به منظور جلب استنتاج از دادههای مبهم.
زمان واقعی معاملات فرایند پایگاه داده برای نتیجه عملیات.
پایگاه داده فضایی میتواند دادههای با ویژگیهای چند بعدی را ذخیره کند. نمایش در چنین دادههایی مبتنی بر مکان نمایش داده است. مانند “کجا نزدیکترین هتل در منطقه من است؟ “
پایگاه داده زمانی بر اساس جنبههای زمان ساخته شده است، به عنوان مثال یک مدل داده زمانی و نسخه زمانی SQL. بیشتر به طور خاص جنبههای زمانی معمولا شامل وقت و زمان معامله معتبرمیباشد.
پایگاه داده اصطلاحات گرا ایجاد شده بر یک پایگاه داده شی گرا، اغلب برای یک رشته خاص سفارشی است. پایگاه داده دادههای بدون ساختار در نظر گرفته شده برای ذخیره در راه کنترل و حفاظت اشیاء گوناگون که متناسب نیست در نظر گرفته شدهاند. به طور طبیعی و به راحتی در پایگاه دادههای مشترک وجود دارند. اکثردی. بی. ام. اسها در حال حاضر برای حمایت از دادههای بدون ساختار به روشهای مختلف است، و دی. بی. ام. اسهای جدید مخصوص در حال ظهور است.
اولین وظیفه یک طراح پایگاه داده این است که برای تولید یک مدل داده مفهومی که منعکس کننده ساختار اطلاعات در پایگاه داده برگزار میشود طرحی پیشنهاد کند. به منظور توسعه یک مدل موجودیت-ارتباط، اغلب با کمک ابزار طراحی. یکی دیگر از روش محبوب زبان مدل سازی یکپارچه است. مدل داده موفق به دقت حالت منعکس کننده بستگی دارد مدل ممکن از جهان خارج شود: به عنوان مثال، اگر مردم میتوانند بیش از یک شماره تلفن داشته باشد، در حقیقت اجازه نمیدهد که بیش از یک اطلاعات ذخیره شود. طراحی مدل داده مفهومی خوب نیاز به درک خوبی از دامنه کاربرد کاربران دارد. معمولا شامل پرسیدن سوالهای عمیق در مورد چیزهایی که یک سازمان به آن علاقه دارد میباشد، مانند ” یک مشتری میتواند یک عرضه کننده کالا باشد؟ “، و یا ” اگر یک محصول با دو فرم مختلف از بسته بندی به فروش میرسد، همان محصول یا محصولات مختلف آن است ؟”پرسش تعاریف اصطلاحات برای اشخاص (مشتریان، محصولات، پرواز، بخش پرواز) و روابط آنها و ویژگیهای ایجاد شده مورد استفاده قرار میگیرد. تولید مدل داده مفهومی گاهی اوقات شامل ورودی از فرآیندهای کسب و کار، و یا تجزیه و تحلیل گردش کار در سازمان است. این میتواند به ایجاد اطلاعاتی در پایگاه داده مورد نیاز کمک کند. به عنوان مثال، میتواند به تصمیم گیری پایگاه داده مورد نیاز برای نگهداری دادههای تاریخی و همچنین دادههای فعلی کمک کند. پس از تولید یک مدل داده مفهومی کاربران خوشحال هستند.
مرحله بعدی این است که این طرح را ترجمه کنند که پیادهسازی ساختمان دادههای مربوطه در پایگاه داده است. این فرایند اغلب به نام طراحی پایگاه دادههای منطقی، و خروجی مدل منطقی دادهها بیان شده در قالب یک طرح است. در حالی که مدل داده مفهومی (در تئوری حداقل) مستقل از انتخاب فن آوری پایگاه داده است، مدل منطقی دادهها یک مدل پایگاه داده خاص پشتیبانی شده توسط DBMS را انتخاب میکند.(مدل شرایط دادهها و مدل پایگاه داده میباشد اغلب به جای یکدیگر استفاده میشود، اما در این مقاله ما با استفاده از مدل داده برای طراحی یک پایگاه داده خاص، و مدل پایگاه داده برای نماد مدل سازی بیان طراحی استفاده میکنیم) مدل پایگاه داده محبوب ترین پایگاه دادهٔ مدل رابطهای، یا دقیق تر، مدل رابطهای به عنوان زبان SQLنشان داده است. روند ایجاد یک طراحی پایگاه داده منطقی با استفاده از این مدل با استفاده از روش روشمند شناخته شده به عنوان روش عادی است. اطمینان حاصل میشود که در ابتدا «حقیقت» است که تنها در یک مکان ثبت شده، به طوری به روز رسانی و حذف به صورت خودکاربرای حفظ انسجام انجام میشود. مرحله نهایی از طراحی پایگاه داده این است که تصمیم گیری برای عملکرد، مقیاس پذیری، بهبود، امنیت، و مانند آن تاثیر میگذارد که اغلب طراحی پایگاه دادههای فیزیکی نامیده میشود. هدف کلیدی در این مرحله استقلال داده است، به این معنی که تصمیمات اتخاذ شده برای اهداف بهینهسازی عملکرد باید نامرئی باشد که برای پایان دادن به کاربران و برنامههای کاربردی است. طراحی فیزیکی عمدتا توسط عملکرد مورد نیاز رانده میشود، و نیاز به دانش خوبی از الگوهای حجم کار و دسترسی انتظار میرود، و درک عمیق از ویژگیهای ارائه شده توسط DBMS انتخاب شده است. یکی دیگر از جنبه طراحی پایگاه دادههای فیزیکی امنیتی است. این شامل هر دو تعریف کنترل دسترسی به اشیاء پایگاه داده و همچنین تعریف سطوح امنیتی و روش برای دادهها است.
نمونه تمرین ++C
یک زبان برنامهنویسی رایانهای همهمنظوره، شیءگرا، سطح بالا و چندرگه (که از برنامهنویسی رویهای، تجرید دادهها و برنامهنویسی شیءگرا پشتیبانی میکند)، عمومی و با قابلیتهای سطح بالا و سطح پایین میباشد. این زبان دارای قابلیتهای انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامهنویسی ساختیافته، برنامهنویسی شیءگرا، برنامهنویسی جنریک است. از آنجا که در سی++ اشیاء را میتوان ابتدا به ساکن از کلاسهایی ایجاد کرد که به هیچگونه سلسله مراتب ردهها و وراثت مقید نیستند، لذا سی++ از برنامهسازی شیء بنیاد (object-based programming) نیز پشتیبانی میکند.[۱] ++C به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی تجاری هستند.
++C یک زبان سطح میانی در نظر گرفته میشود؛ این زبان دارای قابلیت زبانهای سطح بالا و پایین بهصورت همزمان است.
++C توسط بییارنه استراستروپ ریاضیدان دانمارکی در سال ۱۹۷۹ در آزمایشگاههای بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را «C با کلاس» (C With Classes) نامگذاری نمود. در سال ۱۹۸۳ به ++C تغییر نام داد. توسعه با اضافه نمودن کلاسها و ویژگیهای دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثناء انجام شد. این زبان برنامهنویسی در سال ۱۹۹۸ تحت نام ISO/IEC ۱۴۸۸۲:۱۹۹۸ استاندارد شد. نسخهٔ فعلی استاندارد این زبان ISO/IEC ۱۴۸۸۲:۲۰۱۴ است.
ستراستروپ کار بر روی زبان «C با کلاس» را در سال ۱۹۷۹ آغاز کرد. ایدهٔ ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراستروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگیهایی مناسب برای ساخت برنامههای بسیار بزرگ است اما برای استفادهٔ عملی بسیار کند است اما بیسیپیال با وجود سرعت بسیار زیاد برای ساخت برنامههای بزرگ بسیار سطح پایین است. زمانی که استراستروپ کار خود را در آزمایشگاههای بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته یونیکس با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگیهای سیمولا گسترش داد. C به این دلیل انتخاب شد که یک زبان عمومی، سریع، قابل حمل، و در سطح گستردهای در حال استفاده بود. علاوه بر C و سیمولا زبانهای دیگری مانند ALGOL ۶۸، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتدا ویژگیهای کلاس، کلاسهای مشتق شده، کنترل نوع قوی، توابع درونخطی و آرگومانهای پیشفرض از طریق Cfront به C اضافه شد. اولین نسخهٔ تجاری در سال ۱۹۸۵ ارائه شد.
در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگیهای دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بهصورت آزاد، کنترل نوع بهتر، و توضیحات یکخطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامهنویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمیای وجود نداشت. در سال ۱۹۸۹ ویرایش ۲٫۰ از زبان ++C ارائه شد. ویژگیهای جدیدی مانند ارثبری چندگانه، کلاسهای انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C» منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگیهای اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.
در حین تکامل ++C کتابخانهٔ استاندارد نیز بهوجود آمد. اولین نسخهٔ کتاب استاندارد شامل کتابخانهٔ جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهمترین ویژگی اضافه شده Standard Template Library بودهاست.
در سال ۱۹۹۸ برای اولین بار پس از سالها کار کمیته مشترک ANSI–ISO این زبان تحت عنوان ISO/IEC 14882:1998 و نام غیر رسمی C++98 استاندارد سازی شد. بعدها در سال ۲۰۰۳ نسخه جدیدی از استاندارد یعنی ISO/IEC 14882:2003 انتشار یافت و برخی از مشکلات و باگهای C++98 در آن رفع شد.
در سال ۲۰۰۵ یک گزارش فنی به اسم «گزارش فنی کتابخانهٔ ۱» (که معمولاً بصورت اختصار TR۱ خوانده میشود) منتشر شد که مواردی جدید را برای اضافه کردن به کتابخانه استاندارد در برداشت با این که این گزارش قسمتی از استاندارد نبود ولی بعدها در نسخه بعدی استاندارد یعنی C++11 اضافه شد.
نسخه بعدی با نام غیر رسمی C++11 و استاندارد ISO/IEC 14882:2011 در تاریخ ۱۲ اوت ۲۰۱۱ مورد تأیید سازمان بینالمللی استانداردسازی قرار گرفت و جایگزین C++03 شد .
در سال ۲۰۱۴ آخرین نسخه از این زبان تا حال حاضر در در تاریخ ۱۸ آگوست ۲۰۱۴ با نام غیر رسمی C++14 و استاندارد ISO/IEC 14882:2014 منتشر شد. هدف اصلی C++14 همانند C++03 رفع مشکلات و همچنین اضافه کردن ویژگیها و بهبود جزیی C++11 بوده است.
انتشار نسخه بعدی استاندارد این زبان با نام غیر رسمی C++17 برای سال ۲۰۱۷ برنامه ریزی شده است.
در حالی که ++C به هیچ مؤسسهای وابسته نیست این مستندات بهصورت آزادانه در دسترس نیستند. گرچه نسخههای نهایی نشده(draft) این اسناد در دسترس همگان قرار میگیرد.
ین نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته میشود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازهٔ یک واحد بکار میرود) و یک عرف معمول برای نشان دادن افزایش قابلیتها توسط + ناشی گشتهاست. با توجه به نقل قولی از استراستروپ: «این نام ویژگیها تکاملی زبان در C را نشان میدهد.» +C نام زبانی غیرمرتبط به این زبان است.
استراستروپ مبدأ این نام را در فصل اول کتاب خود «زبان برنامهنویسی ++C» اشاره مینماید که معنی دیگر ++C را میتوان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفهای بکار میرود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار میرفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.
وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار میرفتهاست و تصور نمیکردند که این نام بصورت نام رسمی این زبان درآید.
در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخشهای STL و کتابخانه استاندارد C است. بیشتر کتابخانههای ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانهها را میتوان در زبانهایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگیهای کامپایلر مشخص خواهد شد که کدام زبان را میتوان استفاده نمود.
کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگهدارندهها (مانند vector و list)، تکرارکنندهها (اشارهگرهای عمومی شده) برای شبیهسازی دسترسی مانند آرایه الگوریتمهایی برای جستجو و مرتبسازی در آنها وجود دارند. نقشهها (نقشههای چندگانه) (آرایه شرکتپذیر) و مجموعهها (مجموعههای چندگانه) واسطهای عمومی فراهم میسازند. در نتیجه با استفاده از قالب تابع، الگوریتمهای جنریک با هر نگهدارنده و دارای تکرارکننده عمل نماید. همانند C ویژگیهای کتابخانه را میتوان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شدهاند.
استفاده از کتابخانه استاندارد – مانند std::vector یا std::string به جای آرایههای C- موجب ایجاد برنامههای مطمئنتر شدهاست.
STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بودهاست. استاندارد عبارت STL را بکار نمیبرد بلکه آن را بخشی از کتابخانه میداند اما مردم هنوز هم آن را برای جداسازی بخشهای مختلف کتابخانه با این نام بکار میبرند. (جریانهای ورودی/خروجی، جهانیسازی، تشخیص، زیرمجموعه کتابخانه C)
بیشتر کامپایلرها کتابخانه استاندارد و STL را پیادهسازی مینماید. پیادهسازیهای مستقلی نیز همانند STLport نیر وجود دارند. پروژههای دیگر نیز پیادهسازیهای خود را از STL با توجه به اهداف خود بوجود میآورند.
در مقایسه با C زبان ++C ویژگیهای جدیدی را معرفی نمودهاست مانند تعریف متغیر به عنوان عبارت، تغییر نوعهای همانند تابع، new/حذف، نوع داده bool، توابع درونخطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاسها (شامل تمام ویژگیهای مربوط به کلاسها همانند وراثت، اعضای تابع، توابع مجازی، کلاسهای انتزاعی، و سازندهها)، قالبها، پردازش استثناء، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).
برخلاف باور عموم ++C نوع داده ثابت را معرفی ننمودهاست. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.
در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام میدهد.
توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد.
بعضی ویژگیهای ++C بعداً توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C ویژگیهایی معرفی شدهاست که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفاده بهتر از آرایهها به عنوان آرگومان. بعضی کامپایلرها این ویژگیها را پیاده نمودهاند اما در بقیه این ویژگیها موجب ناهماهنگی میگردد.
تمرین الگوریتم و فلوچارت
الگوریتم
از ویکیپدیا، دانشنامهٔ آزاد
الگوریتم (نسبت: الگوریتمی، خوارزمیک) یا خوارزمی مجموعهای متناهی از دستورالعملها است، که به ترتیب خاصی اجرا میشوند و مسئلهای را حل میکنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای حل مسئله است. شیوه محاسبه معدل در مدرسه، یکی از نمونههای الگوریتم است.
واژه الگوریتم از نام ریاضیدان و ستارهشناس و جغرافیدان نامی ایرانی، ابوجعفر محمد بن موسی خوارزمی (الخوارزمی)، گرفته شده است، که در خوارزم زاده شد و در دانشگاه «بیت الحکمه» بغداد به اوج شهرت رسید. خوارزم یکی از شهرهای «ایران بزرگ» بود، که امروزه در ازبکستان واقع شده است و خیوه نام دارد. رسالهای که خوارزمی در قرن ۹ میلادی به عربی نگاشته بود، در قرن ۱۲ به لاتین با نام “Algoritmi de numero Indorum” ترجمه شد؛ یعنی “[کتابی بدست] «الگوریتمی» در مورد اعداد هندی”، که «الگوریتمی» نام الخوارزمی بود که مترجم در تبدیل به لاتین نام وی را جلوی نام اصلی کتاب (در مورد اعداد هندی) آورده بود. در قرن ۱۳ میلادی واژه الگوریسموس(algorismus) به معنای «سیستم شمارش عربی (دهدهی)» (یعنی اعداد ۱ تا ۹ به علاوه صفر، و نیز مفهوم اعشار) بود؛ که هنوز هم یکی از معانی واژه الگوریسم(algorism) است. معنای دیگر الگوریسم «حساب کردن با کمک اعداد عربی» است؛ یعنی فن انجام أعمال حسابی پایه، مانند جمع و ضرب، با قرار دادن اعداد در زیر هم و إعمال قواعدی خاص، که جایگزین به کارگیری اعداد رومی و استفاده از چرتکه شد. حتی روش انجام دستی تقسیم و جذر گرفتن (رادیکال) هم الگوریسم نامیده میشود. در قرن ۱۹ این کلمه در فرانسوی به algorithme تغییر شکل پیدا کرد، البته معنایش ثابت ماند. طولی نکشید که این کلمه به شکل algorithm وارد زبان انگلیسی شد؛ ولی فقط در اواخر قرن ۱۹ میلادی بود که معنای عامتر امروزیاش را یافت، و به «هر مجموعه قواعدی برای انجام یک رویه محاسباتی یا روال رایانهای به کار رود» الگوریتم گفته شد.
تبدیل نام الخوارزمی به الگوریسم و سپس الگوریتم احتمالاً تحت تأثیر واژه یونانی arithmos (به معنای عدد) و arithmetic (به معنای محاسباتی) بوده است. برخی منابع هم کلمه لگاریتم را هم در تبدیل الگوریسم و الگوریتم بی تأثیر ندانستهاند.
فلوچارت
رَوَندنما یا فلوچارت (به انگلیسی: Flowchart) نموداری است برای نمایش دادهها، اطلاعات و روند کار یک الگوریتم بر روی آنها، بهوسیله نمادهای خاص و خطوط جهتدار بین آنها.
فلوچارت در واقع نقشهای است که برنامهنویسان رایانه قبل از نوشتن برنامه به زبان برنامهنویسی اصلی آن را ترسیم میکنند. با مروری بر فلوچارت روند اجرای عملیات، مراحل و جزئیات برنامه و ورودی و خروجی هر مرحله از برنامه مشخص میشود. استفاده از فلوچارت جهت حل هر مسئلهای مفید است و بدون در نظر گرفتن زبان برنامهنویسی، نوشتن برنامه را سهولت میبخشد. علاوه بر این فلوچارت جزئی باارزش از مستندات هر برنامه میباشد که با کمک آن تفسیر برنامه، عیبیابی و استفاده توسط شخصی به جز برنامهنویس را آسان میکند. برای رسم فلوچارت آگاهی و تسلط بر مراحل مورد نیاز و ترتیب آنها جهت به دست آوردن نتیجه مورد نظر با استفاده از دادههای ورودی به الگوریتمی که فلوچارت برای آن کشیده میشود، لازم است.
آمار و احتمالات
آمار
به مجموعهٔ دادههای عددی مربوط به یک موضوع (معمولاً مهم)، مانند جمعیت، متوفیات، میزان تجارت داخلی یا خارجی، دما یا بارش ماهیانه و غیر گفته میشود. آمار را باید علم و عمل استخراج، بسط، و توسعهٔ دانشهای تجربی انسانی با استفاده از روشهای گردآوری، تنظیم، پرورش، و تحلیل دادههای تجربی (حاصل از اندازهگیری و آزمایش) دانست. زمینههای محاسباتی و رایانهای جدیدتری همچون یادگیری ماشینی، و کاوشهای ماشینی در دادهها، در واقع، امتداد و گسترش دانش گسترده و کهن از آمار به عهد محاسبات نو و دوران اعمال شیوههای ماشینی در همهجا میباشد. علم آمار، علم فن فراهم کردن دادههای کمّی و تحلیل آنها به منظور به دست آورن نتیایجی که اگرچه احتمالی است، اما در خور اعتماد است.
در صورتی که شاخهای علمی مد نظر نباشد، معنای آن، دادههایی بهشکل ارقام و اعداد واقعی یا تقریبی است که با استفاده از علم آمار میتوان با آنها رفتار کرد و عملیات ذکر شده در بالا را بر آنها انجام داد. بیشتر مردم با کلمه آمار به مفهومی که برای ثبت و نمایش اطلاعات عددی به کار میرود آشنا هستند؛ ولی این مفهوم منطبق با موضوع اصلی مورد بحث آمار نیست. آمار عمدتاً با وضعیتهایی سر و کار دارد که در آنها وقوع یک پیشامد به طور حتمی قابل پیش بینی نیست. اسنتاجهای آماری غالباً غیر حتمی اند، زیرا مبتنی بر اطلاعات ناکاملی هستند. در طول چندین دهه آمار فقط با بیان اطلاعات و مقادیر عددی درباره اقتصاد، جمعیتشناسی و اوضاع سیاسی حاکم در یک کشور سر و کار داشت. حتی امروز بسیاری از نشریات و گزارشهای دولتی که تودهای از آمار و ارقام را در بردارند معنی اولیه کلمه آمار را در ذهن زنده میکنند. اکثر افراد معمولی هنوز این تصویر غلط را درباره آمار دارند که آن را منحصر به ستونهای عددی سرگیجه آور و گاهی یک سری شکلهای مبهوت کننده میدانند؛ بنابراین، یادآوری این نکته ضروری است که نظریه و روشهای جدید آماری از حد ساختن جدولهای اعداد و نمودارها بسیار فراتر رفتهاند. آمار به عنوان یک موضوع علمی، امروزه شامل مفاهیم و روشهایی است که در تمام پژوهشهایی که مستلزم جمعآوری دادهها به وسیله یک فرایند آزمایش و مشاهده و انجام استنباط و نتیجهگیری به وسیله تجزیه و تحلیل این دادهها هستند اهمیت بسیار دارند.
علم آمار، مبتنی است بر دو شاخه آمار توصیفی و آمار استنباطی. در آمار توصیفی با داشتن تمام اعضا جامعه به بررسی خصوصیتهای آماری آن پرداخته میشود در حالی که در آمار استنباطی با بدست آوردن نمونهای از جامعه که خصوصیات اصلی جامعه را بیان میکند در مورد جامعه استباط آماری انجام میشود. در نظریهٔ آمار، اتفاقات تصادفی و عدم قطعیت توسط نظریهٔ احتمالات مدلسازی میشوند. در این علم، مطالعه و قضاوت معقول در بارهٔ موضوعهای گوناگون، بر مبنای یک نمونه انجام میشود و قضاوت در مورد یک فرد خاص، اصلاً مطرح نیست.
از جملهٔ مهمترین اهداف آمار، میتوان تولید «بهترین» اطّلاعات از داده های موجود و سپس استخراج دانش از آن اطّلاعات را ذکر کرد. به همین سبب است که برخی از منابع، آمار را شاخهای از نظریه تصمیمها به شمار میآورند.
از طرف دیگر میتوان آن را به دو بخش آمار کلاسیک و آمار بیز تقسیمبندی کرد. در آمار کلاسیک، که امروزه در دانشگاهها و دبیرستانها تدریس میگردد، ابتدا آزمایش و نتیجه را داریم و بعد بر اساس آنها فرضها را آزمون میکنیم. به عبارت دیگر ابتدا آزمایش انجام میشود و بعد فرض آزمون میگردد. در آمار بیزی ابتدا فرض در نظر گرفته میشود و دادهها با آن مطابقت داده میشوند به عبارت دیگر در آمار بیزی یک پیش توزیع داریم-توزیع پیشین- و بعد از مطالعه دادهها و برای رسیدن به آن توزیع پیشین، توزیع پسین را در نظر میگیریم.
مطالعات تجربی و مشاهداتی هدف کلی برای یک پروژه تحقیقی آماری، بررسی حوادث اتفاقی بوده و به ویژه نتیجهگیری روی تأثیر تغییرات در ارزش شاخصها یا متغیرهای غیر وابسته روی یک پاسخ یا متغیر وابستهاست. دو شیوه اصلی از مطالعات آماری تصادفی وجود دارد: مطالعات تجربی و مطالعات مشاهداتی. در هر دو نوع از این مطالعات، اثر تغییرات در یک متغیر (یا متغیرهای) غیر وابسته روی رفتار متغیرهای وابسته مشاهده میشود. اختلاف بین این دو شیوه درچگونگی مطالعهای است که عملاً هدایت میشود. یک مطالعه تجربی در بردارنده روشهای اندازهگیری سیستم تحت مطالعهاست که سیستم را تغییر میدهد و سپس با استفاده از روش مشابه اندازهگیریهای اضافی انجام میدهد تا مشخص سازد که آیا تغییرات انجام شده، مقادیر شاخصها را تغییر میدهد یا خیر. در مقابل یک مطالعه نظری، مداخلات تجربی را در بر نمیگیرد. در عوض داده ها جمعآوری میشوند و روابط بین پیش بینیها و جواب بررسی میشوند.
یک نمونه از مطالعه تجربی، مطالعات Hawthorne مشهور است که تلاش کرد تا تغییرات در محیط کار را در کمپانی الکتریک غربی Howthorne بیازماید. محققان علاقهمند بودند که آیا افزایش نور میتواند کارایی را در کارگران خط تولید افزایش دهد. محققان ابتدا کارایی را در کارخانه اندازهگیری کردند و سپس میزان نور را در یک قسمت از کارخانه تغییر دادند تا مشاهده کنند که آیا تغییر در نور میتواند کارایی را تغییر دهد. به واسطه خطا در اقدامات تجربی، به ویژه فقدان یک گروه کنترل محققاتی در حالی که قادر نبودند آنچه را که طراحی کرده بودند، انجام دهند قادر شدند تا محیط را با شیوه Hawthorne آماده سازند. یک نمونه از مطالعه مشاهداتی، مطالعه ایست که رابطه بین سیگار کشیدن و سرطان ریه را بررسی میکند. این نوع از مطالعه به طور اختصاصی از شیوهای استفاده میکند تا مشاهدات مورد علاقه را جمعآوری کند و سپس تجزیه و تحلیل آماری انجام دهد. در این مورد، محققان مشاهدات افراد سیگاری و غیر سیگاری را جمعآوری میکنند و سپس به تعداد موارد سرطان ریه در هر دو گروه توجه میکنند.
احتمالات
طور ساده، احتمالات (به انگلیسی: Probability) به شانس وقوع یک حادثه گفته میشود.
احتمال معمولاً مورد استفاده برای توصیف نگرش ذهن نسبت به گزاره هایی است که ما از حقیقت انها مطمئن نیستیم. گزاره های مورد نظر معمولاً از فرم “آیا یک رویداد خاص رخ می دهد؟” و نگرش ذهن ما از فرم “چقدر اطمینان داریم که این رویداد رخ خواهد داد؟” است. میزان اطمینان ما، قابل توصیف به صورت عددی می باشد که این عدد مقداری بین ۰ و ۱ را گرفته و آن را احتمال می نا میم. هر چه احتمال یک رویداد بیشتر باشد، ما مطمئن تر خواهیم بود که آن رویداد رخ خواهد داد. درواقع میزان اطمینان ما از اینکه یک واقعه (تصادفی) اتفاق خواهد افتاد.
ظریهٔ احتمالات به شاخهای از ریاضیات گویند که با تحلیل وقایع تصادفی سروکار دارد.
مانند دیگر نظریه ها، نظریه احتمال نمایشی از مفاهیم احتمال به صورت شرایط صوری (فرمولی) است – شرایطی که میتواند به طور جدا از معنای خود در نظر گرفته شود. این فرمولبندی صوری توسط قوانین ریاضی و منطق دستکاری، ونتیجه های حاصله، تفسیر و یا دوباره به دامنه مسئله ترجمه می شوند.
حداقل دو تلاش موفق برای به بصورت فرمول دراوردن احتمال وجود دار : فرمولاسیون کولموگروف و فرمولاسیون کاکس. در فرمولاسیون کولموگروف (نگاه کنیدبه )، مجموعه ها به عنوان واقعه و احتمالات را به عنوان میزانی روی یک سری از مجموعه ها تفسیرمی کنند. در نظریه کاکس، احتمال به عنوان یک اصل (که هست، بدون تجزیه و تحلیل بیشتر) و تاکید بر روی ساخت یک انتساب سازگار از مقادیر احتمال برای گزاره ها است. در هر دو مورد، قوانین احتمال یکی هستند مگر برای جزئیات تکنیکی مربوط به آنها.
روشهای دیگری نیز برای کمی کردن میزان عدم قطعیت، مانند نظریه Dempster-Shafer theory یا possibility theory وجود دارد ، اما آن ها به طور اساسی با آنچه گفته شد، تفاوت دارند و با درک معمول از قوانین احتمال سازگار نیستند.
مطالعه علمی احتمال، توسعه ای مدرن است. قمارنشان می دهد که علاقه به ایده های تعیین کمیت برای احتمالات به هزاران سال می رسد، اما توصیفات دقیق ریاضی خیلی دیرتر به وجود آمد. دلایلی البته وجود دارد که توسعه ریاضیات احتمالات را کند می کند. در حالی که بازی های شانس انگیزه ای برای مطالعه ریاضی احتمال بودند، اما مسائل اساسی هنوز هم تحت تاثیر خرافات قماربازان پوشیده می شود.
ریاضی عمومی-مجموعه کامل
ریاضیات
ریاضیات (در قدیم[نیازمند منبع]، همچنین: اِنگارِش[۱]) را بیشتر دانش بررسی کمیتها و ساختارها و فضا و دگرگونی (تغییر) تعریف میکنند. دیدگاه دیگری ریاضی را دانشی میداند که در آن با استدلال منطقی از اصول و تعریفها به نتایج دقیق و جدیدی میرسیم (دیدگاههای دیگری نیز در فلسفه ریاضیات بیان شدهاست). با اینکه ریاضیات از علوم طبیعی به شمار نمیرود، ولی ساختارهای ویژهای که ریاضیدانان میپژوهند بیشتر از دانشهای طبیعی بهویژه فیزیک سرچشمه میگیرند و در فضایی جدا از طبیعت و محضگونه گسترش پیدا میکنند، بهطوری که علوم طبیعی برای حل مسائل خود به ریاضی باز میگردند تا جوابشان را با آن مقایسه و بررسی کنند.
علوم طبیعی، مهندسی، اقتصاد و پزشکی بسیار به ریاضیات تکیه دارد ولی ریاضیدانان گاه به دلایل صرفاً ریاضی (و نه کاربردی) به تعریف و بررسی برخی ساختارها میپردازند.
تاریخچه
مصریان باستان، بیش از ۵ هزار سال پیش، برای اندازهگیری و نقشهبرداری زمین و ساختن اهرام با دقت بسیار بالا، از حساب و هندسه استفاده میکردند. علم حساب با اعداد و محاسبه سر و کار دارد. در حساب، چهار عمل اصلی عبارتند از: جمع، تفریق، ضرب و تقسیم. هندسه علم مطالعه خطها، زاویهها، شکلها، و حجمها است. یونانیهایی چون اقلیدس، حدود ۲۵۰۰ سال قبل، بیشتر قوانین اصلی هندسه (قضایای هندسه) را تعیین کردند. جبر نوعی خلاصهنویسی ریاضیات است که در آن برای نشان دادن کمّیتهای نامعلوم، از علائمی چون x و y استفاده میشود. این علم را نیز دانشمندان ایرانی، حدود ۱۲۰۰ سال قبل توسعه دادند. حساب، هندسه و جبر، پایههای ریاضیات هستند.
ریاضیات نوعی زبان علمی است. مهندسان، فیزیکدانان، و سایر دانشمندان، همگی از ریاضیات در کارهایشان استفاده میکنند. سایر کارشناسان که به مطالعه اعداد، کمّیتها، شکلها و فضا بهشکل محض علاقه دارند، ریاضیات محض (غیرکاربردی) را به کار میگیرند. نظریه اعداد که شامل مطالعه اعداد درست و نحوه عمل آنهاست، شاخهای از ریاضیات محض به شمار میآید. در دنیای جدید، ریاضیات یکی از عناصر کلیدی علوم الکترونیک و رایانه بهشمار میرود.
کمیت
مجموعه، رابطه، تابع، عمل، گروه، میدان، عدد، اعداد طبیعی، اعداد حسابی، اعداد صحیح، اعداد اول، اعداد مرکب، اعداد گویا، اعداد گنگ، اعداد حقیقی، اعداد مختلط، اعداد جبری، عدد پی، عدد ای، چهارگانها، هشتگانها، شانزدگانها، اعداد پی-ادیک، اعداد فوق پیچیده (Hypercomplex numbers)، اعداد فوق حقیقی (Hyperreal number)، اعداد فراواقعی (Surreal numbers)، بینهایت، اعداد ترتیبی، اعداد اصلی، ثابتهای ریاضی، پایه
ساختار
جبر مجرد، نظریه اعداد، هندسه جبری، نظریه گروهها، مونوئیدها، آنالیز ریاضی، آنالیز تابعی، توپولوژی، جبر خطی، نظریه گراف، جبر عمومی، نظریه مدولها، نظریه ترتیب، [[نظ
فضا
توپولوژی، هندسه، مثلثات، هندسه جبری، هندسه دیفرانسیل، توپولوژی دیفرانسیل، توپولوژی جبری، جبر خطی، هندسه برخالها، متری
تغییر
حساب، حسابان، حساب برداری، آنالیز ریاضی، معادلات دیفرانسیل، سیستمهای دینامیکی، نظریه آشوب، فهرست تابعها
پایهها و روشهای ریاضیات
فلسفه ریاضیات، شهودگرایی، ساختگرائی، مبانی ریاضیات، نظریه مجموعهها، منطق نمادی، نظریه مدل، نظریه رستهها، منطق ریاضی، ریاضیات معکوس، جدول نمادهای ریاضی
ریاضیات گسسته
ترکیبیات، نظریه شهودی مجموعهها، نظریه رایانش، رمزنگاری، نظریه گراف
ریاضیات کاربردی
فیزیک ریاضی، مکانیک، مکانیک سیالات، آنالیز عددی، بهینهسازی، احتمالات، آمار، اقتصاد ریاضی، ریاضیات مالی، نظریه بازیها، ریاضیات زیستی، رمزنگاری، نظریه اطلاعات
گفتاورد (نقل قول)
برتراند راسل زمانی که دربارهٔ روش بُنداشتی (اصل موضوعی) سخن میگفت که در آن برخی ویژگیهای یک ساختار (که چیزی از آن نمیدانیم) فرض میشود و پیامدهای این فرض از راه منطق نتیجهگیری میشود گفت:
ریاضیات را میتوان رشتهای تعریف کرد که در آن نه معلوم است از چه سخن میگوییم و نه میدانیم آنچه میگوییم صحت دارد.
ما در ریاضیات مطالب را نمیفهمیم، بلکه تنها به آنها عادت میکنیم.
ریاضیات -مجموعه ها و توابع مثلثاتی
ریاضیات
ریاضیات (در قدیم[نیازمند منبع]، همچنین: اِنگارِش[۱]) را بیشتر دانش بررسی کمیتها و ساختارها و فضا و دگرگونی (تغییر) تعریف میکنند. دیدگاه دیگری ریاضی را دانشی میداند که در آن با استدلال منطقی از اصول و تعریفها به نتایج دقیق و جدیدی میرسیم (دیدگاههای دیگری نیز در فلسفه ریاضیات بیان شدهاست). با اینکه ریاضیات از علوم طبیعی به شمار نمیرود، ولی ساختارهای ویژهای که ریاضیدانان میپژوهند بیشتر از دانشهای طبیعی بهویژه فیزیک سرچشمه میگیرند و در فضایی جدا از طبیعت و محضگونه گسترش پیدا میکنند، بهطوری که علوم طبیعی برای حل مسائل خود به ریاضی باز میگردند تا جوابشان را با آن مقایسه و بررسی کنند.
علوم طبیعی، مهندسی، اقتصاد و پزشکی بسیار به ریاضیات تکیه دارد ولی ریاضیدانان گاه به دلایل صرفاً ریاضی (و نه کاربردی) به تعریف و بررسی برخی ساختارها میپردازند.
تاریخچه
مصریان باستان، بیش از ۵ هزار سال پیش، برای اندازهگیری و نقشهبرداری زمین و ساختن اهرام با دقت بسیار بالا، از حساب و هندسه استفاده میکردند. علم حساب با اعداد و محاسبه سر و کار دارد. در حساب، چهار عمل اصلی عبارتند از: جمع، تفریق، ضرب و تقسیم. هندسه علم مطالعه خطها، زاویهها، شکلها، و حجمها است. یونانیهایی چون اقلیدس، حدود ۲۵۰۰ سال قبل، بیشتر قوانین اصلی هندسه (قضایای هندسه) را تعیین کردند. جبر نوعی خلاصهنویسی ریاضیات است که در آن برای نشان دادن کمّیتهای نامعلوم، از علائمی چون x و y استفاده میشود. این علم را نیز دانشمندان ایرانی، حدود ۱۲۰۰ سال قبل توسعه دادند. حساب، هندسه و جبر، پایههای ریاضیات هستند.
ریاضیات نوعی زبان علمی است. مهندسان، فیزیکدانان، و سایر دانشمندان، همگی از ریاضیات در کارهایشان استفاده میکنند. سایر کارشناسان که به مطالعه اعداد، کمّیتها، شکلها و فضا بهشکل محض علاقه دارند، ریاضیات محض (غیرکاربردی) را به کار میگیرند. نظریه اعداد که شامل مطالعه اعداد درست و نحوه عمل آنهاست، شاخهای از ریاضیات محض به شمار میآید. در دنیای جدید، ریاضیات یکی از عناصر کلیدی علوم الکترونیک و رایانه بهشمار میرود.
کمیت
مجموعه، رابطه، تابع، عمل، گروه، میدان، عدد، اعداد طبیعی، اعداد حسابی، اعداد صحیح، اعداد اول، اعداد مرکب، اعداد گویا، اعداد گنگ، اعداد حقیقی، اعداد مختلط، اعداد جبری، عدد پی، عدد ای، چهارگانها، هشتگانها، شانزدگانها، اعداد پی-ادیک، اعداد فوق پیچیده (Hypercomplex numbers)، اعداد فوق حقیقی (Hyperreal number)، اعداد فراواقعی (Surreal numbers)، بینهایت، اعداد ترتیبی، اعداد اصلی، ثابتهای ریاضی، پایه
ساختار
جبر مجرد، نظریه اعداد، هندسه جبری، نظریه گروهها، مونوئیدها، آنالیز ریاضی، آنالیز تابعی، توپولوژی، جبر خطی، نظریه گراف، جبر عمومی، نظریه مدولها، نظریه ترتیب، [[نظ
فضا
توپولوژی، هندسه، مثلثات، هندسه جبری، هندسه دیفرانسیل، توپولوژی دیفرانسیل، توپولوژی جبری، جبر خطی، هندسه برخالها، متری
تغییر
حساب، حسابان، حساب برداری، آنالیز ریاضی، معادلات دیفرانسیل، سیستمهای دینامیکی، نظریه آشوب، فهرست تابعها
پایهها و روشهای ریاضیات
فلسفه ریاضیات، شهودگرایی، ساختگرائی، مبانی ریاضیات، نظریه مجموعهها، منطق نمادی، نظریه مدل، نظریه رستهها، منطق ریاضی، ریاضیات معکوس، جدول نمادهای ریاضی
ریاضیات گسسته
ترکیبیات، نظریه شهودی مجموعهها، نظریه رایانش، رمزنگاری، نظریه گراف
ریاضیات کاربردی
فیزیک ریاضی، مکانیک، مکانیک سیالات، آنالیز عددی، بهینهسازی، احتمالات، آمار، اقتصاد ریاضی، ریاضیات مالی، نظریه بازیها، ریاضیات زیستی، رمزنگاری، نظریه اطلاعات
گفتاورد (نقل قول)
برتراند راسل زمانی که دربارهٔ روش بُنداشتی (اصل موضوعی) سخن میگفت که در آن برخی ویژگیهای یک ساختار (که چیزی از آن نمیدانیم) فرض میشود و پیامدهای این فرض از راه منطق نتیجهگیری میشود گفت:
ریاضیات را میتوان رشتهای تعریف کرد که در آن نه معلوم است از چه سخن میگوییم و نه میدانیم آنچه میگوییم صحت دارد.
ما در ریاضیات مطالب را نمیفهمیم، بلکه تنها به آنها عادت میکنیم.