معنای زندگی از زبان دیگران

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

برای جواب دادن به این سوال ویل دورانت نامه ای به بزرگان مینویسد

کتاب فن بیان- یک هدف زندگی، با انگیزه زیستن است

کتاب فن بیان ، احمد حلت
دو واژه : اوج و حضیض

چند نکته برای کاهش اضطراب سخنرانی(اجرا، ارائه و…):

1- هرچه تسلط بیشتر، اضطراب کمتر(برای اجرای موسیقی هم همین است)
2-شناخت مخاطبان؛ برای مثال در ابتدا می‌توان در ابتدا چند سوال از مخاطبان پرسید.
3-زودتر رسیدن به محل
4-تجسم کردن موفقیت: تجسم اینکه اجرای ما دقیقا همانگونه پیش خواهد رفت که دوست داریم.
5- تصویر سازی مثبت: زندگی بیشتر ما به طور عادت، صرف فکر کردن به کارهای اشتباهی می‌شود که ممکن است در آینده مرتکب شویم.

6-تمرین، تمرین و تمرین
7-یادمان باشد، مردم توجه زیادی به عملکرد ما ندارند.

چند نکته برای تمرین:

1-نیروگرفتن از کسی که همیشه یادش مارا آرام می‌کند. (آدمها، دوستان، خانواده، خدا و …)
2-در نشست‌ها و گردهم آیی‌ها در ردیف جلو بنشینید. (تمرین)
3-تماس چشمی را در رابطه‌های خود حفظ کنید.
4- تکرار کلمات امید بخش
5- شکست را مقدمه پیروزی بدانید.(تجربه برای عدم تکرار شکست)

6- تلقین پی در پی که (من می‌توانم).
7-برای هر کاری به اندازه کافی فکر کنید(نه کم و نه زیاد).
8-بلند و جدی و شفاف سخن بگویید.
9-محکم دست بدهید.
10 – در جمع نظر بدهید و فقط شنونده نباشید.

11-خوشرو باشید.
12- تمرین خودشناسی و افزایش نقاط قوت و کاهش نقاط ضعف
13- در همه احوال بر سخن و رفتار خود نظارت داشته باشید.
14- استعدادهای خود را کشف کنید و آن‎‌ها را پرورش دهید.
15- پیشرفت را یک پدیده تدریجی و گام به گام بپندارید.

16- ماموریت اصلی شما، این نیست که بی مشکل زندگی کنید، بلکه آنچه اهمیت دارد با انگیزه زیستن است.

3- مولانا- چیز خوبی غایب ،حالت بدی غالب

وقتی دل شما غمگین میشود، این یعنی چیز شادی هست که الان آن وجود ندارد.

آب شور کسی را نماید که آب شیرین خورده باشد. پس حق تعالی در جان شما نور ایمان نهاده است که این کارها را زشت میبینید.

حق تعالی شما را آن خواهد دادن که مطلوب شماست و همت شما آنجا که هست شما را خواهد شدن.

آنکس که احساس پستی میکند، یعنی چشمش بلندایی را دیده است. وگرنه بسیارند مردمی که در قعر سقوط کرده و همچنان دلخوش اند.

پرنده با دو بالش پرواز میکند و مومن با همتش.

۲۲. در باب کل نگری و آینده نگری

دل نبستن به چیزهای با عمر کوتاه

۲۳.اگر حرکت باشد، برکت خدا حاصل می شود

تا آب خورد از جو ، خود عکس قمر یابد

اندر شکم ماهی ، آن خاتم زر یابد

تا صید کند آهو، خود صید دگر یابد

مولانا در این غزل ( یاران سخرخیزان تا صبح که دریابد…) به داستان های مشابهی اشاره میکند که در همه آنها شخص به دنبال مطلوبی می رود و چیزی می یابد هزاران بار با ارزش تر از آنچه در ابتدا طلب کرده است.

2-مولانا- تا شماره 31

17-عشق چاره ساز است. عشقت رسد به فریاد ور خود به سان حافظ، قران زبر بخوانی در 14 روایت

18-همیشه فرصت هست. تا کنون کردی چنین، اکنون مکن، تیره کردی آب از این افزون مکن

19-بارز ترین فساد: تیره کردن اینه دل

20-اگر درد داری باید حرکت کنی. منقطع درد را نزل وطن واجب است.

21-پیگیری مدام… عقل آن است که همواره شب و روز مضطرب و بی قرار باشد. از فکر و جهد و اجتهاد نمودن در ادراک باری

22-عدم تفکر به گذشته–> گفت دیگر بر گذشته غم مخور، چون ز تو بگذشت زان حسرت مبر

23- عدم صحبت با جاهل–> پند گفتن با جهول خوابناک، تخم افکندن بود در شوره خاک

24-بدرم زهره ذهره، خراشم ماه را چهره، برن از آسمان مهره چو او کیوان من باشد(توانایی انسان با وجود او)

25- یکی جانی است در عالم که ننگش اید از صورت، بپوشد صورت انسان ولی انسان من باشد

26-هر که او اندر غم شاهی بود. دم به دم او را سر ماهی بود (پریود مردانه به دلیل دوری از یار)

27-خداوند فرشتگان را عقل بر آنان حاکم کرد و حیوانات را شهوت و آدم را آفرید که عقل وشهوت داشت. هر کس یکی از این دو مورد در او قالب باشد ، خوی فرشته گیرد یا حیوان.

28-یکی قلبی بیاراید تو پنداری که زر دارد

29-نظر به قدرت او دار و همواره خود را بیچاره میدان.

30-پیامبر (ص): شرط آن است که مدام خود را در دست تقدیر الهی ببینی و دوگانگی نباشد که گاهی خود را توانا ببینی و گاهی بیچاره.

31- تنها دل بر من نه.

1- مولانا- رهایی از خودبینی

این موارد از کتاب 365 روز با مولانا است.

1- رها شدن از خودبینی و خودرایی شرط لازم برای رسیدن بوی خوش عشق به مشام است.
2- برای رسیدن به کمال در یک هنر باید مست شد و با هوشیاری نمیشود.
3- سعدی: هرکه را تو بگیری زخویشتن برهانی
4-زن از نگاه مولانا: تجلی رحمت پروردگار است و اعلام حضور او در روی زمین


5-آن آرامش و سکون و مقام امن که خاص پروردگار است تنها در صحبت زن بر روی زمین حاصل میشود.
6-پیامبر(ص): ای گل سرخ کوچک با من سخن بگو
7-چو عاشق میشدم گفتم که بردم گوهر مقصود، ندانستم که این دریا چه موج خون فشان دارد.
8-سختی مسیر–> در بیابان گر به شوق کعبه خواهی زد قدم، سرزنش ها گر کند خار مقیلان غم مخور


9-صبر- صبر آرد عاشقان را کام دل، بیدلان را صبر شد آرام دل
10-کمال آدمیت- کمال آدمیت انسان در داشتن اختیار و توانایی بر عصیان و طاعت است.
11-تنظیمات اولیه- من عاریتم در آنچه خوش نیست، چیزی که در آن خوشم من آنم
12- معجزه انسان- تو نطفه بودی خون شدی، آنگه چنین موزون شدی، نزد من آی ای آدمیف تا زینت موزون تر کنم

13-توصیه به تمرکز در فعالیت ها
14-مزیت عشق- هر که را جامع ز عشقی چاک شد، او ز عیب و حرص کلی پاک شد.
15-اولویت مستی بر هوشیاری- شر و شور دوران نکنند مستان ، سر هوشمندان هنری ندارد.
16- خیلی ساده: وآنچه به گفت ناید آن از تو به جان عطا رسد.

تجربیات مصاحبه شغلی

یادداشت هایی از آنچه در جلسات مصاحبه شغلی یاد گرفته ام:

شماره 1- پارس تصمیم

تاریخ: 1 دیماه 401- حدودا
عنوان: پشتیبان نرم افزار
سوال 1: منظور relation در پایگاه داده های رابطه ای چیست؟
حدود دو هفته بعد در این نوشته به جواب این سوال به صورت دقیق تری رسیدم.

سوال 2:تفاوت set و tuple در پایتون در چیست؟
سوال 3: یک شرکت در 5 طبقه فعال است. مدتی است کارمندان از ترافیک و اتلاف وقت در استفاده از اسانسور اعلام نارضایتی کرده اند. راه کار شما چیست؟ (بلند فکر کنید و آنچه به ذهنتان میرسد را بیان کنید)

2- آموزش اوراکل

از 19 به بعد

تفاوت کلیدی
SQL که به صورت «S-Q-L» یا «See-Quel» تلفظ می‌شود، در درجه اول RDBMS یا پایگاه‌های داده رابطه‌ای نامیده می‌شود، در حالی که NoSQL یک پایگاه داده غیرمرتبط یا توزیع‌شده است.

با مقایسه پایگاه داده SQL در مقابل NoSQL، پایگاه های داده SQL پایگاه های داده مبتنی بر جدول هستند در حالی که پایگاه های داده NoSQL می توانند مبتنی بر سند، جفت های کلید-مقدار، پایگاه های داده گراف باشند.

پایگاه های داده SQL به صورت عمودی مقیاس پذیر هستند در حالی که پایگاه های داده NoSQL به صورت افقی مقیاس پذیر هستند.


پایگاه های داده SQL دارای یک طرح از پیش تعریف شده هستند در حالی که پایگاه های داده NoSQL از طرح های پویا برای داده های بدون ساختار استفاده می کنند.

در مقایسه عملکرد NoSQL با SQL، SQL برای عملکرد بهتر به سخت افزار DB تخصصی نیاز دارد در حالی که NoSQL از سخت افزار کالا استفاده می کند.

***


مدیر پایگاه داده (DBA)

مدیر پایگاه داده (DBA) تکنسین اطلاعاتی است که مسئول هدایت یا انجام تمام فعالیت‌های مربوط به حفظ یک محیط پایگاه داده موفق است.یک DBA اطمینان حاصل می کند که پایگاه داده یک سازمان و برنامه های کاربردی مرتبط با آن به طور عملکردی و کارآمد عمل می کنند. یک مدیر حرفه ای پایگاه داده (DBA) پایگاه داده را به صورت روان و 24 ساعته در حال اجرا نگه می دارد. هدف، ارائه یک جریان یکپارچه اطلاعات در سراسر شرکت، با در نظر گرفتن ساختار داده‌های پشتیبان و دسترسی به فرعی برای کاربران نهایی است.

روابط یک به یک – چند به چند و … مثلا استاد و دانشجو-هر دانشجو ممکنه 10 درس بگیرد با ده استاد یا با یکی- یک به یک یا یه به ده و …یکپارجگی ارجاع یعنی رابطه بین جداول/ consistency چیه- باید رعایت شود- دوام سازگاری- ثبات- اگر دیتایی را سیو کردم هر وقتآمدم فچ کنم ف باید دیتای سازگای باشد. /برای مثال قوانین باید رعایت شود. مثلا در ستونی که باید سن بین 20 تا 30 سال باشد، اگر 50 وارد شود consistency رعایت نشده است.

هر کاربر و اندیوزر یک ویو ثابت از داده ها داشته باشد. ما در دیتا بیس همزمانی داریم. اهم کار دیا بیس همزمانی و هندل کردن حمله هزاران کاربر همزمان است. read consistency / اگر کاربری فیلدی را از 2 به 3 تغییر دهد و ثبت نکند. کامیت نکند. دیتا بیست میگه شما 2 را به 3 تغییر دادی…. باید ظرفی رابعنوان تمپ در نظر بگیرد و اسم آن رااندو بذارد. 2 را فعلا در آن بگذارد. حال 2 به 3 تبدیل شده….. اما هنوز باید به کاربران دیگر فعلا 2 را نشان بدهد. چون هنوز تایید نشده. این موضوع را read consistency گوییم.

DCL. دو تا زیر دارد. گرنت و ریوک/ حق تغییر دادن را به کسی میدهیم. مثلا علی میتواند سلکت کند اما نمیتواند دیلیت کند. dml- اینسرت- update- delete/ TCL- کاممیت- رلبک -سیو پوینت-/ transaction همیشه با یک بگین شروع شده و با end تمام میشود. یعتی ابتدا ئ انتهای آن باید مشخص شود. اما بذون شروع و پایان نیز میتوان کار کرد. با کمک یک سری از ابزارهای کمکی- /تراکنش یا باید همه اش انجام شود به درستی و یا نشود. در انتها کاممیت شود و برای همیشه در دیتابیس تغییر یابد. اما rol back یعنی چک کردن مجدد. /savepoint آخرین ورژن ذخیره شده

DQL -dataquery language- /select- انتخاب ساده/select for update – این یعنی من دیتاستی را انتخاب کرده ام و تا زمانی که سشن من فعال باشد یوزر دیگری به آن دسترسی ندارد و لاک میشود اصطلاحا./برای مثال در سایت خرید بلیط 5 صندلی وجود دارد. زمانی که یوزری برای خرید بیاد سشن آن ممکن است از نوع select for update باشد و یا نباشد بستگی به طراحی سایت و نوع دولوپر باشد.

کوئری ساخته شده تا ما نیاز خود را با دیتا بیس در میان بگذاریم./مثلا دانشجویانی که ترم پیش معدل بالای 17 داشته اند. /در این فرین روابط یک به یک و یک به چند دیده میشود/.چه موقع سمت mysql رویم- زمانی که تعداد رکورد زیاد نیست و mead level به سمت پایین است. اگر دیتا بزرگ باسد و سرعت بالا و پردازش موازی و … پول آن را هم اوراکل میگیرد. دستمزد DBA اوراکل هم بیشتر است و چون پیچیدگی نگه داری آن بیشتر است. در اعم شرکتها کمتراز mysql استفاده میشود. چون فیچرهای اوراکل بیشتر است و … اگرavailibility مهم باشد به سراغ…. میرویم. زمانی به سراغ DBMS رابطه ای میرویم که بتوان حجم خیلی بزرگ نباشد. داکیومنت بیس مانند منگو db

sql ارتباط برای ما خیلی مهم است.درnosql توزیع برای ما مهم است. sql یا rdbsm به صورت افقی چیز میشوند.مدیریت سشن- pulling- session management /اگر بتوان بار یوزررابین سرورهای مختلف توزیع نمود …. / horizontal scalibility

تفاوت لینوکس با ویندوز. /ویندوز تردبیس است ومشکل ویروس دارد./بهتر است لینوکس یاد بگیریم و بتوانیم با cmd کارکنیم./اوراکل هر دوسال یکبار نسخه جدید با فیچر جدید میدهد. بنابر DBA خوب باید دائوا در حال مطالعه و بروزرسانی دانش خود باشد. با این همه اوراکل همچنان پیشتاز است.DBA شخصی که محافظت از دیتا رکن اصلی کارش است. محافظت در برابر خرابی- بک اپ ریکاوری- 100 در 100 قابل احیا باشد. بتواند … linux درست نصب شده باشد. tune باشد. ساپورت- درگیر تیونینگ و performance tuning . بویژه در ایران باید مهارتهای بیشتری داشته باشیم. زیرا در خارج از کشور ساپورت اوراکل را دارند فقط اپراتور هستند و در مشکل ها با تماس با اوراکل مسئله رفع میشود.

شغل مهم و پر مسئولیتی است. در برابر حملات- شب و روز درگیر باشی. سرویس 7 در 24 هستند. شیفت چرخشی- شب زنده داری وجود دارد و …/بحث دایومنتیشن. /همیشه DBA در سازمان نیست. هر کد و تغییری باید تمیز باشد که بتوان به نفر بعدی تحویل داد./گیروگور—روشهایی که با کمترین حالت downبودن بتوان مشکل را برطرف کرد./مانیتور کردن و به روز کردن پچ های جدید. / تسک روتین DBA عمل مانیتورینگ است. مثلا بک آپ گیری و سینک بودن و پ

الزامات DBA شدن. /sql fundamental /مباحث پیشرفته و ….sql کا ر یا PSQL کار/برنامه نویسی پایتون و جاوا بداند. زبان انگلیسی و لیسانس ساده داشته باشد حد اقل.etl- golden gate-tunningو … /حداقل باید 10 سال کار کرده باشد تا بتوان او را یک DBA خواند./ابتدا SQL fundamental و سپس ورک شاپ 1 و 2 , و سپس رفتن به بازار کار و …/being a team player و پرهیز از توسعه فردی و …/حقوق افراد در صنعت DBA و… کمی SQL بلده کمی PSQL بلده . بک آپ و ریکاوری بلده و … برنامه نویسی هم داره و …

بحث دیتا ساینس و ماشین لرنینگ و بیگ دیتا تقاضای کار زیادی برای آن وجود دارد. جاوا کار و پایتون کار به راحتی کار میدهند اما به DBA به افراد تازه کار نمیدهد چون بحرانی هست و حساس.توسعه نرم افزار نیاز به بنیان کذاری اصولی دارد. داکیومنت سازی اصولی و …. دیتابیس oltp تراکنش آن باید زیر یک دقیقه باید تمام شود. response time کوتاه دارد. در Bi که به آن OLAP گویند. همه دیتا ها باید یکجا آورده شود به نام warehouse به معنای جایی که یک عالمه دیتا از دیتابیسهای دیگر آورده شده است. باید گزارش گیری کنیم که زمان زیادی معمولا طول میکشد. معمولا از select استفاده میشود. خیلی بزرگک است. چندین teta byte . فرایند etl روی آن انجام میشود.

BI کار بی آزار و پول سازی در ایزان است. در دیتاهای خیلی بزرگ باید کار کرد. تایپ و رفتارش متفاوت است. Cloud DBA در ایران تازه کار است و مشکلات خودش را دارد. در خارج از ایران دانش کلود اهمیت زیادی دارد.

خدمات ابری. پیشتاز آن آمازون است AWS بعدش آزور و …در ایران ابر آروان و … /امروز کسی اگر DBA باشد مفاهیم کلود را ندارد yas -pass و … را نداند بیشواد است.

اگر بیش از db بدانیم بهتر است.حتی SQL server که پایه ای ترین است، سختی خودش را دارد. خودSAP در آلمان و اروپا بیشتر کاربرد/در ایران کاله SAP دارد. الان روی هانا دارد.تعریفview در اوراکل: یک پرس و جویی که خیلی به کار میرود و یکبار برای همیشه ویو را صدا میکنیم تا مجبور به نوشتن کوئری نباشیم.انواع معماری

عکسی که اند یوزر را نشان میده- ثبت نام دانشجو یا … صفحه وب میشه Ui, و presentation/خود اوراکل با c و c++ نوشته شده. /maria db اپن سورس است./postgre اپن سورس است/IBMDB2 در شرکتای بزرگ استفاده میشه./sqllite پروژه های لایت و کوچک را ران میکنند با آن/شی گراها /کلودها/دیتا ورهوس/oltb/شخص ها/مولتی مدل/دایومنت json خیلی مهم است اینروزا/hirarchical/

مبحث استقلال داده ای. بدون نیاز به تغییر در لایه های بالاتر. با وجود ایزولیشن تغییرات ساده تر میشود. اگر استقلال باشد، در هنگام تغییر کمترین آسیب به سیستم ما و کمترین Down time را خواهیم داشت.تریتیر- اسکیما همان یوزرهر هر دیتا بیس باید یک یوزر باشد که سطح خاصی از پرویلج را داشته باشدمثلا علی/در اوراکل دو مفهوم است که اورلپ داریم. مفهوم اسکیما

یوزر میتونه شامل یک جدول یا آبجک نباشد.؟؟؟اسکیما مفهوم بالاتر از یوزر است. هر دو میتواند لاگین کند اما مالک فقط اسکیما است. 64ثالاستفاده از دستگاه ذخیره ساز جدید. میخواهم پارتیشن کنم- میخواه اتنتقال فایل کنم و ….همه اینها یوزر از آن بی خبر. یوزر متوجه نمیشود.مرج کردن دو رکورد در یک رکورد/تفاوت لاجیکال و فیزیکال … تفاوت ها /الگوریتم هشینگ- برای مثال جدولی که 100 میلیون رکورد دارد. چیدا کردن کندی دارد طبیعتا. هشینگ کمک میکند تا با پارتیشن کردن بر اساس بازه معین . مثلا یا نوع کالا مثلا ماشین 1 تا 4 —- ماشین فلان پارت اول – ماشین فلان بره پارت 2و … حالا پیدا کردن آن راحت تر است. پس response time کمتر و کوئری بهتر

گاهی نمشود چارتیشنبندی کرد…. هشینگ اینجا به کار میرود. هش یعنی افراضی که خود اوراکل میداند چه معنایی دارد. مثلا جدولی که 2 میلیارد رکورد دارد به برای مثال به 64 ت یا 32 تکیه تقسیم میشه و بنابراین پیدا کردن آن راحت تر میشه. چرا استقلال مهمه/لایه دیگر درگیر نمیشهو اند یوزر درگیر نمیشه. شاید کند بشه اما نمی افته کلا.

جلسه 2-

زبان sql یک زبان سطح بالا است. چون به زبان انسان نزدیک است.عمده کار در select است. مابقی دستورات راحت هستند معمولا. ممکن است select تا چند صفحه بشود و حتی join بشود.رل بک ،سلکت فراپدیت- قفل شدن برای اطمینان از دسترسی دوگانه معایبی نیز دارد. زیرا برخی از قابلیت ها برای سایر کاربران غیرفعال میشود.

انواع داده oltp و olap چه تفاوتی با هم دارند؟

جلسه 3

پیشنهاد vmvare برای عدم آسیب رساندن به ویندوز/مفهوم دد لاک – 96زمانی که دو نفر لاک کرده باشندص 108 تمرین دارد114 در مورد یک به یک و یک به چندفارن کی و primary key روابط پدر و فرزندی و …برای کشف رابطه باید به دنبال کلید بگردیم.اولین constrain در اوراکل :کلید: داشتن روابط صحیح پدر و رزندی با کلیدکلید یعنی یکتا بودن… 115 در مورد کلید یکتا3 ویژگی کلید یکتا: Null نیاشذ، یکتا باشد،کم تغییر کند.


موارد عملی:

-1-

متغیر محیطی: program files- temp

oracle home : مسیری که اوراکل در آن نصب میشود

oracle base : مسیر بالا تا قبل از db

پوشه نتورک و ادمین زیاد باهاش کار داریم.
زمانی

listener با چورت پیشفرض1521 که به کمک آن به db وصل میشویم.

لیستنر باید بالا باشد. میتوان پورت آن را در صورت باز بودن تغییر داد.

برای وصل شدن مردم به دیتا بیس- باید IP بدم– اسم دیتا بیس ID و پورت(عموما 1521)— میتوانیم یوزر و پسورد هم بدهیم و … به صورت پیشفرض

0- نصب Oracle Database 18c Express Edition
در زیر به ادرس نصب دقت کنید


1- نصب ابزار oracle SQL developer – لینک

2- نصب اوراکلXE184 – این مورد را یا روی vmvare نصب میکنیم یا روی ویندوز- در صورتی که روی ویندوز نصب کنیم در مواقعی که به آن نیاز نداریم میتوانیم از بخش سرویس های ویندوز آن را غیر فعال کنیم.

بعد از نصب:
دو یوزر داریم
sys که بدون یوزر و پسورد میتواند دسترسی داشته باشد.
system که باید یوزر و پسورد داشته باشد.

Oracle SID یا system identifier نام دیتا بیس است.

باید 3 مورد را در اختیار client ها قرار دهیم: Ip و port وSID یا service name

با این سه مورد هر فرد میتواند با ابزار خاص و با یوزر و پسورد به دیتابیس وصل شود.

به صورت پیشفرض با creat user هیچ دسترسی ندارد مگر آنچه به او grant کنیم.

مثلا میگوییم یوزر علی به اسکیمای HR دسترسی داشته باشد در همه جداول. مثلا میگوییم فقط خواندنی باشد(only select )


با فرض نصب مورد 2 :
دستورات زیر را در cmd وارد میکنیم:

sqlplus

نتیجه:

و دستور زیر:

sql sys/ as sysdba

بعد از دستور فوق SQL نمایش داده میشود و این یعنی میتوان دستورات sql را از این طریق نیز وارد نمود.

روش دوم این است که تنها عبارت sqlplus را انتخاب کنیم که در این صورت از ما یوزر و پسورد خواهد خواست

نتیجه:

که از ما یوزر و پسورد میخواهد.

فرض میکنیم که میخواهیم از روش زیر وارد شویم:

sqlplus /as sysdba

چند دستور ادمینی را وارد میکنیم:

1- دستور زیر نشان میدهد که فعلا یک دیتابیس به نام xe داریم (که container ما می باشد):

2- دستور زیر نیزنام دیتابیس ها را به ما نشان میدهد:(این مورد container ما هست)

3- دستور زیر نیز pdb ها را به ما نشان میدهد:

موردEXPDB1 را باید در فایل tnsnames.ora ازآدرس زیر بروزرسانی نماییم:

C:\app\Shahram\product\18.0.0\dbhomeXE\network\admin

یعنی باید مقادیر زیر را در فایل فوق نوشته باشیم (که از مورد اول قابل کپی کردن است):

همچنین قسمت هاست را روی 192.168.200.100 تنظیم میکنیم که مردم از بیرون بتوانند به ما کانکت شوند 🙂

برای تست کردن وصل بودن دیتابیس:

ping 192.168.200.100 

یعنی آی پی سرور را پینگ میکنیم.
تمرین (این مورد را عملا اجرا کنید و خروجی خود را مشاهده کنید)
جواب: ابتدا در cmd عبارت ipconfig را وارد میکنیم تا IP سیستم به ما داده شود. سپس میتوانیم از آن ping بگیریم.

همچنین از طریق تلنت (در صورتی که telnet نصب باشد): ابزاری برای اینکه ببینیم پورت باز است یا نه

telnet 192.168.200.100 1521

در دستور بالا شماره پورت با فاصله نوشته می شود. در صورتی که صحیح باشد وارد یک صفحه سیاه میشود و میتوان با کنترل+ کروشه از آن خارج شد.


شاید مشکل از سمت ما باشد. در این صورت کد زیر را در CMD وارد میکنیم:

tnsping XEPDB1

اگر Ok 0 sec را مشاهده کنیم، یعنی همه چیز درست است.

تمرین: مورد فوق را اجرا کنید و ok 0 sec را مشاهده کنید.
جواب:

مشکل دیگر ممکن است از oracleserver ما باشد که دیر پاسخ میدهد. در هر صورت دستورات فوق برای تست کانکشن مورد استفاده قرار میگیرند.

***

1- روش ورود از طریق CMD

با وارد کردن sqlplus از ما نام username خواسته میشود و نیز پسورد که ما به ترتیبsystemو admin123 را میزنیم و وارد میشویم.

همچنین روش زیر و بدون پسورد:

2- روش ورود از طریق plsql:

یوزر :system
پسورد:admin123
Databese : مطابق شکل. که ابتدای آن آدرس هاست برگرفته از فایل متنی tnsnames.ora است و 1521 آدرس پورت ماست و Ali مربوط بهservice name از فایل متنی tnsnames.ora است.

3-ورود از طریق oracle SQL developer

ابتدا از آیکون سبز مشخص شده زیر گزینه new database connection را انتخاب میکنیم.

سپس در پنجره زیر اطلاعات را به دقت وارد میکنیم:
name : یک نام دلخواه
username : به نام sys as sysdba
رمز: admin123
هاست: localhost
SID همان XE
نام سرویس:KARA

لازم به ذکر است که در فایل متنی tnsnames.ora باید مورد زیر را بیافزاییم:

نمایش نام دیتابیسهای موجود:

PL sql به اوراکل سرور یا اوراکل کلاینت نیاز دارد.
در واقع به فایل هایtnsnames.ora نیاز دارد.

زمانی که نرم افزار pl-sql developer را نصب کرده باشیم از طریق پنجره زیر باید مشخص کنیم که باید به کدام دیتا بیس متصل شویم.

از طریق آدرس زیر میتوانیم به فایل متنی tnsnames.ora دسترسی داشته باشیم.

C:\app\Shahram\product\18.0.0\dbhomeXE\network\admin

اگر فایل متنی مذکور را باز کنیم ، به صورت زیر آن را خواهیم داشت:

xe همان CDB یا container ماست.

از XE میتوانیم کپی بگیریم و تنها آدرس و پورت را تغییر دهیم.

هر چه در فایل متنی tnsnames.ora ساخته باشیم، در این زبانه در دسترس خواهد بود.

برای مثال میتوانیم انتخاب کنیم که به دیتابیس به نام XEpp وصل شویم. در دوقسمت بالا باید یوزر و پسورد را انتخاب کنیم.
قسمت پایین را نیز روی sysdba انتخاب میکنیم. نکته: (میزان دسترسی sys کمتر از system است)

نکته : برخی موارد ممکن است سرویس اوراکل اجرا نشود. در چنین مواقعی میتوان به بخش services رفته و از فعال بودن چند مورد مشخص شده زیر اطمینان حاصل کرد: (بویژه oracle service XE و listener آن)

بعد از اتمام کار نیز برای جلوگیری از مصرفram میتوان از همین بخش موارد مشخص شده را stop کرد.

اگر به درستی به دیتابیس متصل شد باشیم در بالای پنجره عبارت زیر را مشاهد خواهیم کرد:

در سمت چپ شکل بالا، آبجکت ها را مشاهده میکنیم. در این قسمت یوزرها ، اسکیماها و … مشخص هستند. همچنین history مرتبط با کانکشن های ما مشخص است. ما با این قسمت کاری نداریم. زیرا به طور کلی نباید از یوزر سیستمی برای درج یا تغییر اطلاعات استفاده کرد. زیرا باید درخواست کنیم که اسکیمای خاصی برای ما اختصاص دهد.
از کلید طلایی رنگ موجود در تب بالا میتوان نوع کانکشن را تغییر داد.

حال میخواهیم یک یوزر یا اسکیما بسازیم. (اسکیما آن است که یک آبجکت در اختیار دارد. یوزر معمولا فقط به دیتابیس کانکت میشود واز یک اسکیما بهره میبرد.)

1- روش tns names یا استفاده از الیاس ها: استفاده از فایل متنی tnsnames.ora است.

2-روش EZ_connect یا easy connect
در بخش database از پنجره زیر، اگر IP سرور را داشته باشم (192.168.20.100 برای مثال)
سپس دو نقطه میگذاریم و شماره پورت را مینویسیم و
سپس اسلش(/) اسم سرویس و یا اسم pdb را مینویسیم. (مثلاxepdb1)

تمرین: (روش 2 را یکبار توسط خودتان اجرا کنید)

همچنین از طریق CMD و با دستور زیر میتوان به SQL متصل شدک

با دستور زیر میتوان نام و مشخصات pdb ها را مشاهده نمود:

الان در pdbcontainer هستیم. اگر بخواهیم به XEPDB1 برویم باید دستور زیر را وارد کنیم:

حال اگر مجددا PDB SHO بگیریم نتیجه زیر را خواهیم داشت:

حال با دستورEXIT خارج میشویم و میخواهیم با یوزر SYSTEM وارد شویم.

در همین خط باید بیان کنیم که میخواهیم به چه کسی وصل شویم.
بعد از علامت @ نام الیاس را فایل متنی tnsnames انتخاب میکنیم.

تمرین:
کد بالا را اجرا نمایید و به یک یوزر دلخواه متصل شوید.

ساعت 1 دقیقه 7(جلسه 4 بخش 1)

دو نوع یوزر داریم- GLOBAL- LOCAL

میخواهیم یوزر جدید بسازیم:

یوزری به نام datatech با رمز admin123

create user datatech identified by admin123

ممکن است خطای زیر را دریافت کنید:

error: ORA-65096: invalid common user or role name in Oracle database

راه حل(لینک)

بعد از ایجاد user نام آن در فهرست user ها باید مشخص باشد.
راه حل:
کانکشن را عوض کرده و به عنوان system به XEPDB1 وصل شده و سپس دستورزیر را وارد کردیم و دیگر خطایی نداشتیم:

ساخت یوزر بدون ارور:

CREATE USER SHAHRAM_user IDENTIFIED BY tiger; 

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

تمرین-
میخواهیم مجوز دسترسی به اسکیمایhr را به یوزرSHAHRAM بدهیم


میخواهیم پسورد یک یوزر را عوض کنیم:

ALTER USER SHAHRAM_USER IDENTIFIED  by admin321;

اگر بخواهیم یک یوزر را از بلاک بودن خارج کنیم:

ALTER USER HR IDENTIFIED BY HR Account unlock

روش دیگر ساخت یوزر:

این روش برای بعد از زمانی که کد نویسی را یادگرفتیم پیشنهاد میشود.

اطلاعات دلخواه را وارد میکنیم و سپس دکمه پایین سمت راست را میزنیم تا کد برای ما generate شود:

کد :

-- Create the user 
create user reza
  identified by admin123
  default tablespace USERS
  temporary tablespace TEMP
  profile DEFAULT;

تمرین- ساخت جدول

از روی جدول گزینه new را میزنیم و پنجره زیر باز میشود: owner را رویHR و نام را رویtest1 ست میکنیم

در قسمت ستون char 20 را انتخاب میکنیم

تفاوت varchar و char اینکه مورد اول متغیر است. برای بهبود وضعیت حافظه از varchar استفاده کنیم. در واقع با وارد کردنchar20 به ما 20 خانه اختصاص میدهد که هر کدام برای مثال 5 ظرفیت دارند. که قابل تغییر هم نیست. اما با varchar20 تعداد 20 لوکیشن متغیر به ما اختصاص داده میشود که ممکن است 2 یا 3 یا 5 یا … ظرفیت داشته باشند.

تا پایان جلسه 4 بخش اول


جلسه 4 بخش دوم

در مثال زیر کد ملی را برابر با char 10 در نظر میگیریم . زیرا میدانیم که حتما 10 رقم دارد. اما نام و نام خاوادگی را از نوع varchar میگیریم زیرا ممکن است 5 حرف یا 15 حرف باشد. (صرفه جویی در اشغال فضای دیتابیس)

مقدار پیشفرض default. مثلا اگر کسی کد ملی نداشت مقدار 0000000000 برای او ثبت میشود.

گزینه view sql را میزینم و کد برای ما نمایش داده میشود.

- Create table
create table TABLE4011028.sh4011020
(
  id            number,
  st_number     number,
  name          varchar2(20),
  lastname      varchar2(20),
  register_date date,
  code_melli    char(10) default 0000000000
)
;

اختصاص دادن دیتافایل با مقدار سایز مثلا 100 مگابایت:

create tablespace datatech_tbs datafile 
'C:\app\Shahram\product\18.0.0\oradata\XE\XEPDB1\db01.DBF'
size 100m

با افزودن کد زیر میتوان قابلیتی ایجاد کرد به صورت اتومات به ظرفیت آن اضافه گردد(در صورت پر شدن)

حال میتوان در هنگام ساخت یوزر مشخص کرد که tablespace پیشفرض آن کدام باشد:

CREATE USER sh4011028 identified by admin123 default tablespace datatech_tbs;

حال میخواهیم از همه دیتابیس ها بیرون برویم و با یوزر shahram وارد شویم. از session –> disconnect all

با دستور زیر یک یوزر به نام hrr و همین پسورد میسازیم. اما نمیتواند وارد شود. زیرا previlege به آن داده نشده است. انگا هیچی:

create user hrr identified by hrr; 

بنابراین باید به آن grant یا rol بدهیم. دستور زیر دو رول به hrr میدهد. یکی وصل شدن و یکی مجوز ایجاد ابجکت.(البته زمانی میتوانیم این کارها را بکنیم که با یوزر system وارد شده باشیم.)

create user hrr identified by hrr; 
grant connect,resource to hrr

همچنین با راست کلیک بر روی hrr از بخش یوزرها میتوان پسورد آن را ریست کرد.
همچنین از tab باز شده میتوان previledge های متعدد را به آن اعطا نمود.

تا دقیقه 17

اگر با system لاگین باشیم، با راست کلیک روی table نوعی میتوان گزینه view را انتخاب کرد و اطلاعاتی در مورد آن بدست آورد.

همچنین با راست کلیک گزینه های دیگری نیز نمایش داده میشود که هر کدام کاربرد خاصی دارند. برای مثال گزینه DBMS_metadata و سپس گزینه ddl به ما درمودر کد sql منجر به ساخته شدن این talble اطلاعاتی میدهد.

خط اول کد ظاهر شده را باهم مرور میکنیم.

CREATE TABLE “SYSTEM”.”LOGMNRC_SHARD_TS” SHARING=METADATA

که مشخص است که جدولی با creat ساخته شده. عبارت system.log… نشان میدهد که اول اسکیما آمده و سپس ابجکت.

همچنین اگر گزینه query data را انتخاب کنم کدی که بوسیله آن میتوان از آن جدول اطلاعات بدست آورد به ما نمایش داده میشود.

در جدول ظاهر شده میتوان تغییرات را مستقیما از روی جدول انجام داد–> تیک سبز–> commit

اگر گزینه rollback را انتخاب کنیم یعنی پشیمان شده ایم و میخواهیم تراکنش را به حالت قبل برگردانیم.

تا دقیقه 24

ctas به معنای creat table as می باشد. در کد زیر یک کپی از یک جدول موجود ساخته ایم و نام آن را double_1 گذاشته ایم و سپس در خط آخر آن را فراخوانی کرده ایم ببینیم تشکیل شده یا نه.

--ctas
create table double_1 as
select * from AQ$_INTERNET_AGENTS;

select * from double_1;

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

create table double_2 as
select * from AQ$_INTERNET_AGENTS where 1=2;

از طریق cmd درون برنامه (new–> command window)میتوانیم اطلاعاتی در مورد جداول ساخته شده بدست آوریم: desc به معنای description می باشد.

تا دقیقه 33

برای ست کردن تنظیمات صفحه نمایش CMD :

set pages 2000 lines 3000

یعنی هر صفحه 2000 خط و هر خط 3000 نقطه ظرفیت داشته باشد.

***

دستور Alter برای تغییر جدول:

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

alter table DOUBLE_1 drop column spare1;
alter table DOUBLE_1 add ali number;

اوراکل outocommit نیست.

commit را علاوه بر دکمه گرافیکی با کد حروفی commit نیز قابل اجراست.

نحوه وارد کردن دیتا به جدول EMP

SQL> insert into EMP (c1,c2,...) values (val1,val2,...)

میتوان 100 مورد نوشت و 100 مورد را وارد جدول کرد. همچنین میتوان از روش زیر استفاده کرد:

SQL> insert into EMP
   select * from employee where E_id>80;
commit;

کامیت در خط آخر باید وجود داشته باشد تا اجرا به سرانجام برسد.

همچنین از روش زیر برای تعیین ستون مورد نظر استفاده میشود:

insert into EMP 
select from employee e where t.e_id >80
commit;

با دستور زیر نیز میتوان truncate انجام داد:

truncate table EMP

تفاوت delete و truncate:

The DELETE command is used to delete particular records from a table.

 The TRUNCATE command is used to delete the complete data from the table. It is a DML command. The DELETE command acquires the lock on every deleting record; thus, it requires more locks and resources

تا دقیقه71

f6 کلیدی است که outocomplete میکند.

Update

تمرین: بروز کردن مقدار حقوق کارمند با آیدی شماره 177

update employee w set w.salary=w.salary +  where w.employee_id = 177;

تمرین : افزایش 10 درصدی حقوق کارمندانی که حقوق آنها کمتر از 5000 دلار است:

update emp w set w.salary=w.salary*1.1 where w.salary <=5000;

insert

شکل یا قالب کلی به صورت زیر است

insert into emp(employee_id,firs_name,hire_date) values (v1,v2,v3, ...)

dual

برای انجام محاسبات نوعی زیر از dual استفاده می شود:

select sysdate from dual;
select 1+99 from dual;
select 6900/3 from dual;

تا ساعت 1 و دقیقه 40

PL/SQL

مثال 1

--set serveroutput on;
BEGIN
  dbms_output.put_line('Hello world..');
END;
/

که خروجی در output نمایش داده میشود.

تا پایان جلسه چهارم

جلسه 5- قسمت اول-

قالب اصلی PL/SQL

به شرح زیر است

پایان بخش اول از جلسه 5

جلسه 5 بخش دوم

برای نوشتن PLSQL در محیط گرافیکی به دو مورد مشخص شده در شکل نیازی نداریم اما اگر در محیط cmd یا command بنویسیم باید دو مورد را بنویسیم.

اگر خروجی تنها یک عدد باشد میتوان آن را درون یک ظرف ریخت. در غیر اینصورت نمیتوان:

در شکل زیر خط سوم ارور خواهد داد زیرا جواب ریکوئست بیش از یک مورد است و نمیتوان آن را درون یک متغیر ذخیره نمود.

تا پایان جلسه ششم