Створення бази даних оптичних лазерів

Бази даних та їх типи. Вимоги до пам'яті, яка потрібна для збереження бази даних. 12 правил Кодда. Основні властивості лазерного променя. Монохроматичність лазерного випромінювання, його потужність та способи застосування в промисловості і медицині.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 07.11.2014
Размер файла 349,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

3.3 Характеристики типів лазерів

В даний час є величезна різноманітність лазерів, що відрізняються між собою активними середовищами, потужностями, режимами роботи і іншими характеристиками. Немає необхідності всі їх описувати. Тому тут дається короткий опис лазерів, які досить повно представляють характеристики основних типів лазерів (режим роботи, способи накачування і т. д.)

Рубіновий лазер. Першим квантовим генератором світла був рубіновий лазер, створений в 1960 році. Робочим речовиною є рубін, що представляє собою кристал оксиду алюмінію Аl 2 O 3 (корунд), у який при вирощуванні введена у вигляді домішки оксид хрому Сr 2 Оз. Червоний колір рубіна обумовлений позитивним іоном Сr +3. У гратах кристала Аl 2 О 3 іон Сг +3 заміщає іон Аl +3. Внаслідок цього в кристалі виникають дві смуги поглинання: одна-у зеленій, інша-в блакитній частині спектра. Густота червоного кольору рубіна залежить від концентрації іонів Сг +3: чим більше концентрація, тим густіше червоний колір. У темно-червоному рубіні концентрація іонів Сг +3 досягає 1%.

Поряд з блакитною і зеленою смугами поглинання є два вузьких енергетичних рівня Е 1 і Е 1 ' , При переході з яких на основний рівень випромінюється світло з довжинами хвиль 694,3 і 692,8 нм. Ширина ліній становить при кімнатних температурах приблизно 0,4 нм. Імовірність вимушених переходів для лінії 694,3 нм більше, ніж для 692,8 нм. Тому простіше працювати з лінією 694,3 нм. Однак можна здійснити генерацію і лінії 692,8 нм, якщо використовувати спеціальні дзеркала, що мають великий коефіцієнт відбиття для випромінювання l = 692,8 нм і малий - для l = 694,3 нм.

При опроміненні рубіна білим світлом блакитна й зелена частини спектра поглинаються, а червона відбивається. У рубіновому лазері використовується оптична накачка ксеноновим лампою, яка дає спалахи світла великої інтенсивності при проходженні через неї імпульсу струму, що нагріває газ до декількох тисяч Кельвін. Безперервна накачування неможлива, тому що лампа при настільки високій температурі не витримує безперервного режиму роботи. Що виникає випромінювання близько за своїми характеристиками до випромінювання абсолютно чорного тіла. Випромінювання поглинається іонами Cr +, перехідними в результаті цього на енергетичні рівні в області смуг поглинання. Однак з цих рівнів іони Сr +3 дуже швидко в результаті безвипромінювальної переходу переходять на рівні Е 1, Е 1 '. При цьому надлишок енергії передається решітці, тобто перетворюється в енергію коливань решітки або, іншими словами, в енергію фотонів. Рівні Е 1, Е 1 ' метастабільних. Час життя на рівні Е 1 одно 4,3 мс. У процесі імпульсу нагнітання на рівнях Е 1, Е 1 ' накопичуються збуджені атоми, що створюють значну інверсну заселеність щодо рівня Е 0 (це рівень збудженому атомів).

Кристал рубіна вирощується у вигляді круглого циліндра. Для лазера зазвичай використовують кристали розміром: довжина L = 5 см, діаметр d = 1 см. Ксеноновий лампа і кристал рубіна містяться в еліптичну порожнину з добре відбиває внутрішньою поверхнею. Щоб забезпечити попадання на рубін всього випромінювання ксенонової лампи, кристал рубіна і лампа, що має також форму круглого циліндра, поміщаються в фокуси еліптичного перетину порожнини паралельно її створює. Завдяки цьому на рубін направляється випромінювання з густиною, практично рівною щільності випромінювання на джерелі накачування.

Один з кінців рубінового кристала зрізаний так, що від граней зрізу забезпечується повне відображення і повернення променя назад. Такий зріз замінює одне з дзеркал лазера. Другий кінець рубінового кристала зрізаний під кутом Брюстера. Він забезпечує вихід із кристала рубіна без відображення променя з відповідною лінійною поляризацією. Друге дзеркало резонатора ставиться на шляху цього променя. Таким чином, випромінювання рубінового лазера лінійно поляризоване.

Гелій-неоновий лазер. Активною середовищем є газоподібна суміш гелію й неону. Генерація здійснюється за рахунок переходів між енергетичними рівнями неону, а гелій грає роль посередника, через який енергія передається атомам неону для створення інверсної заселеності.

Неон, в принципі, може генерувати лазерне вивчення в результаті більше 130 різних переходів. Однак найбільш інтенсивними є лінії з довжиною хвилі 632,8 нм, 1,15 і 3,39 мкм. Хвиля 632,8 нм знаходиться у видимій частині спектру, а хвилі 1,15 і 3,39 мкм - в інфрачервоній.

При пропущенні струму через гелій-неонове суміш газів електронним ударом атоми гелію збуджуються до станів 2 березня S та 2 2 S, які є метастабільними, оскільки перехід в основний стан з них заборонений квантово-механічними правилами відбору. При проходженні струму атоми накопичуються на цих рівнях. Коли збуджений атом гелію зіштовхується з збудженого атома неону, енергія збудження переходить до останнього. Цей перехід здійснюється дуже ефективно завдяки хорошому збігу енергії відповідних рівнів. Внаслідок цього на рівнях 3S й 2S неону утвориться інверсна заселеність щодо рівнів 2P і 3P, що приводить до можливості генерації лазерного випромінювання. Лазер може оперувати в безперервному режимі. Випромінювання гелій-неонового лазера лінійно поляризоване. Зазвичай тиск гелію в камері становить 332 Па, а неону - 66 Па. Постійна напруга на трубці близько 4 кВ. Одне з дзеркал має коефіцієнт відбиття порядку 0,999, а друге, через яке виходить лазерне випромінювання, - близько 0,990. В якості дзеркал використовують багатошарові діелектрики, оскільки більш низькі коефіцієнти відображення не забезпечують досягнення порогу генерації.

Газові лазери. Вони являють собою, мабуть, найбільш широко використовується в даний час тип лазерів і, можливо, в цьому відношенні вони перевершують навіть рубінові лазери. Газовим лазерам також присвячена більша частина виконаних досліджень. Серед різних типів газових лазерів завжди можна знайти такий, який буде задовольняти майже будь-якому вимогу, висунутій до лазеру, за винятком дуже великої потужності у видимій області спектра в імпульсному режимі. Великі потужності необхідні для багатьох експериментів при вивченні нелінійних оптичних властивостей матеріалів. В даний час великі потужності в газових лазерах не отримані з тієї простої причини, що щільність атомів у них недостатньо велика. Проте майже для всіх інших цілей можна знайти конкретний тип газового лазера, який буде перевершувати як твердотільні лазери з оптичним накачуванням, так і напівпровідникові лазери. Багато зусиль було спрямовано на те, щоб ці лазери могли конкурувати з газовими лазерами, і в ряді випадків був досягнутий певний успіх, проте він завжди опинявся на межі можливостей, у той час як газові лазери не виявляють жодних ознак зменшення популярності.

Особливості газових лазерів часто обумовлені тим, що вони, як правило, є джерелами атомних або молекулярних спектрів. Тому довжини хвиль переходів точно відомі. Вони визначаються атомної структурою і зазвичай не залежать від умов навколишнього середовища. Стабільність довжини хвилі генерації за певних зусиль може бути значно поліпшена в порівнянні зі стабільністю спонтанного випромінювання. В даний час є лазери з монохроматичністю, кращої, ніж у будь-якому іншому приладі. При відповідному виборі активного середовища може бути здійснена генерація в будь-якій частині спектру, від ультрафіолетової (~ 2ООО А) до далекої інфрачервоної області (~ 0,4 мм), частково захоплюючи мікрохвильову область.

Немає також підстав сумніватися, що в майбутньому вдасться створити лазери для вакуумного ультрафіолетової області спектра. Розрідженість робочого газу забезпечує оптичну однорідність середовища з низьким коефіцієнтом заломлення, що дозволяє застосовувати просту математичну теорію для опису структури мод резонатора і дає впевненість у тому, що властивості вихідного сигналу близькі до теоретичних. Хоча ККД перетворення електричної енергії в енергію вимушеного випромінювання в газовому лазері не може бути таким великим, як у напівпровідниковому лазері, проте завдяки простоті управління розрядом газовий лазер виявляється для більшості цілей найбільш зручним у роботі як один з лабораторних приладів. Що стосується великої потужності в безперервному режимі (на противагу імпульсної потужності), то природа газових лазерів дозволяє їм у цьому відношенні перевершити всі інші типи лазерів.[2]

С0 2-лазер із замкнутим об'ємом. Молекули вуглекислого газу, як і інші молекули, мають смугастий спектр, обумовлений наявністю коливальних і обертальних рівнів енергії. Використовуваний у CO 2 - лазері перехід дає випромінювання з довжиною хвилі 10,6 мкм, тобто лежить в інфрачервоній області спектру. Користуючись коливальними рівнями, можна дещо варіювати частоту випромінювання в межах приблизно від 9,2 до 10,8 мкм. Енергія молекул CO 2 передається від молекул азоту N 2, які самі збуджуються електронним ударом при проходженні струму через суміш.

Збуджений стан молекули азоту N 2 є метастабільним і відстоїть від основного рівня на відстані 2318 см -1, що досить близько до енергетичного рівня (001) молекули CO 2. Зважаючи метастабільності збудженого стану N 2 при проходженні струму число збуджених атомів накопичується. При зіткненні N 2 з CO 2 відбувається резонансна передача енергії збудження від N 2 до CO 2. Внаслідок цього виникає інверсія заселення між рівнями (001), (100), (020) молекул CO 2. Зазвичай для зменшення заселеності рівня (100), який має великий час життя, що погіршує генерацію при переході на цей рівень, додають гелій. У типових умовах суміш газів в лазері складається з гелію (1330 Па), азоту (133 Па) і вуглекислого газу (133 Па).

При роботі CO 2 - лазера відбувається розпад молекул CO 2 на СВ і О, завдяки чому активне середовище послаблюється. Далі СО розпадається на С і О, а вуглець осідає на електродах і стінках трубки. Все це погіршує роботу СO 2-лазера. Щоб подолати шкідливу дію цих факторів у закриту систему додають пари води, які стимулюють реакцію СО + О ® CO 2.

Використовуються платинові електроди, матеріал яких є каталізатором для цієї реакції. Для збільшення запасу активного середовища резонатор з'єднується з додатковими ємностями, які містять CO 2, N 2, Не, які в необхідній кількості додаються в об'єм резонатора для підтримки оптимальних умов роботи лазера. Такий закритий CO 2-лазер, в змозі працювати протягом багатьох тисяч годин.

Проточний СО 2-лазер. Важливою модифікацією є проточний СО 2-лазер, в якому суміш газів CO 2, N 2, Не безперервно прокачується через резонатор. Такий лазер може генерувати безперервне когерентне випромінювання потужністю понад 50 Вт на метр довжини своєю активною середовища.

Неодимовий лазер. Назва може ввести в оману. Тілом лазера є не метал неодим, а звичайне скло з домішкою неодиму. Іони атомів неодиму безладно розподілені серед атомів кремнію та кисню. Накачування виробляються лампами-блискавками. Лампи дають випромінювання в межах довжин хвиль від 0,5 до 0,9 мкм. Виникає широка смуга збуджених станів. Атоми здійснюють безвипромінювальної переходи на верхній лазерний рівень. Кожен перехід дає різну енергію, яка перетворюється в коливальну енергію всього "грат" атомів. Лазерне випромінювання, тобто перехід на порожній нижній рівень, має довжину хвилі 1,06 мкм.

Т-лазер. У багатьох практичних додатках важливу роль відіграє СO 2-лазер, в якому робоча суміш знаходиться під атмосферним тиском і збуджується поперечним електричним полем (Т-лазер). Оскільки електроди розташовані паралельно осі резонатора, для отримання більших значень напруженості електричного поля в резонаторі потрібні порівняно невеликі різниці потенціалів між електродами, що дає можливість працювати в імпульсному режимі при атмосферному тиску, коли концентрація CO 2 в резонаторі велика. Отже, вдається отримати велику потужність, що досягає зазвичай 10 МВт і більше в одному імпульсі випромінювання тривалістю менше 1 мкс. Частота повторення імпульсів у таких лазерах становить зазвичай кілька імпульсів в хвилину.

Газодинамічні лазери. Нагріта до високої температури (1000-2000 К) суміш CO 2 і N 2 при закінченні з великою швидкістю через розширюється сопло сильно охолоджується. Верхній і нижній енергетичний рiвнi при цьому термоізолююча з різною швидкістю, в результаті чого утворюється інверсна заселеність. Отже, утворивши на виході з сопла оптичний резонатор, можна за рахунок цієї інверсної заселеності генерувати лазерне випромінювання. Діючі на цьому принципі лазери називаються газодинамічними. Вони дозволяють отримувати дуже великі потужності випромінювання в безперервному режимі.

Лазери на барвниках. Барвники є дуже складними молекулами, у яких сильно виражені коливальні рівні енергії. Енергетичні рівні в смузі спектра розташовуються майже безперервно. Внаслідок внутрішньомолекулярного взаємодії молекула дуже швидко (за часи порядку 10 -11 -10 -12 с) переходить безвипромінювальної на нижній енергетичний рівень кожної смуги. Тому після порушення молекул через дуже короткий проміжок часу на нижньому рівні смуги Е 1 зосередяться всі збуджені молекули. Вони далі мають можливість зробити випромінювальний перехід на будь-який з енергетичних рівнів нижньої смуги. Таким чином, можливо випромінювання практично будь-якої частоти в інтервалі, відповідному ширині нульової смуги. А це означає, що якщо молекули барвника взяти в якості активної речовини для генерації лазерного випромінювання, то в залежності від налаштування резонатора можна отримати практично безперервну перебудову частоти генерованого лазерного випромінювання. Тому на барвниках створюються лазери з перебудовуваною частотою генерації. Накачування лазерів на барвниках проводиться газорозрядними лампами або випромінюванням інших лазерів.

Виділення частот генерації досягається тим, що поріг генерації створюється тільки для вузької області частот. Наприклад, положення призми і дзеркала підбираються так, що в середу після відбиття від дзеркала завдяки дисперсії і різних кутах заломлення повертаються лише промені з певною довжиною хвилі. Тільки для таких довжин хвиль забезпечується лазерна генерація. Обертаючи призму, можна забезпечити безперервну перебудову частоти випромінювання лазера на барвниках. Генерація здійснена з багатьма фарбниками, що дозволило отримати лазерне випромінювання не тільки в усьому оптичному діапазоні, а й на значній частині інфрачервоної та ультрафіолетової частини спектру.

Напівпровідникові лазери. Основним прикладом роботи напівпровідникових лазерів є магнітно-оптичний накопичувач (МО).

Принципи роботи МО накопичувача.

МО накопичувач побудований на поєднанні магнітного і оптичного принципу зберігання інформації. Записування інформації виробляється з допомогою променя лазера і магнітного поля, а зчитування за допомогою одного тільки лазера.

У процесі запису на МО диск лазерний промінь нагріває певні точки на диски, і під впливом температури опірність зміни полярності, для нагрітої точки, різко падає, що дозволяє магнітному полю змінити полярність точки. Після закінчення нагрівання опірність знову збільшується. Полярність нагрітої точки залишається відповідно з магнітним полем, застосованим до неї в момент нагрівання.

У наявних на сьогоднішній день МО накопичувачах для записи інформації застосовуються два цикли: цикл стирання і цикл запису. У процесі стирання магнітне поле має однакову полярність, відповідну двійковим нулях. Лазерний промінь нагріває послідовно весь стирається ділянку і таким чином записує на диск послідовність нулів. У циклі запису полярність магнітного поля змінюється на протилежну, що відповідає двійкової одиниці. У цьому циклі лазерний промінь включається тільки на тих ділянках, які повинні містити виконавчі одиниці, залишаючи ділянки з двійковими нулями без змін.

У процесі читання з МО диска використовується ефект Керра, що полягає у зміні площині поляризації відбитого лазерного променя, в залежності від напрямку магнітного поля відбиває елемента. Відбиваючим елементом у даному випадку є намагнічена під час запису точка на поверхні диска, відповідна одному біту інформації, що зберігається. При зчитуванні використовується лазерний промінь невеличкий інтенсивності, що не приводить до нагрівання зчитуваного ділянки, таким чином при зчитуванні збережена інформація не руйнується.

Такий спосіб на відміну від звичайного застосовуваного в оптичних дисках не деформує поверхню диска і дозволяє повторну запис без додаткового обладнання. Цей спосіб також має перевагу перед традиційною магнітної записом у плані надійності. Так як перемагнічеванііе ділянок диска можливо тільки під дією високої температури, то ймовірність випадкового перемагнічеванія дуже низька, на відміну від традиційної магнітного запису, до втрати якої можуть призвести випадкові магнітні поля.

Область застосування МО дисків визначається його високими характеристиками за надійністю, обсягу і змінюваності. МО диск необхідний для задач, що вимагають великого дискового об'єму. Це такі задачі, як обробка зображень звуку. Однак невелика швидкість доступу до даних, не дає можливості застосовувати МО диски для завдань із критичною реактивністю систем. Тому застосування МО дисків в завданнях зводиться до зберігання на них тимчасової або резервної інформації. Для МО дисків дуже вигідним використанням є резервне копіювання жорстких дисків або баз даних. На відміну від традиційно застосовуваних для цих цілей стримерів, при зберігання резервної інформації на МО дисках, істотно збільшується швидкість відновлення даних після збою. Це пояснюється тим, що МО диски є пристроями з довільним доступом, що дозволяє відновлювати тільки ті дані, в яких виявився збій. Крім цього при такому способі відновлення немає необхідності повністю зупиняти систему до повного відновлення даних. Ці гідності у поєднанні з високою надійністю зберігання інформації роблять застосування МО дисків при резервному копіюванні вигідним, хоча й більш дорогим у порівнянні зі стримерами.

Застосування МО дисків, також доцільно при роботі з приватною інформацією великих обсягів. Легка змінюваність дисків дозволяє використовувати їх тільки під час роботи, не піклуючись про охорону комп'ютера в неробочий час, дані можуть зберігатися в окремому, місці, що охороняється. Це ж властивість робить МО диски незамінними в ситуації, коли необхідно перевозити великі обсяги з місця на місце, наприклад з роботи додому і навпаки.

Основні перспективи розвитку МО дисків пов'язані насамперед із збільшенням швидкості запису даних. Повільна швидкість визначається в першу чергу двопрохідний алгоритмом запису. У цьому алгоритмі нулі та одиниці пишуться за різні проходи через те, що магнітне поле, що задають напрямок поляризації конкретних точок на диску, не може змінювати свій напрямок досить швидко.

Найбільш реальна альтернатива двопрохідний запису - це технологія, заснована на зміну фазового стану. Така система вже реалізована деякими фірмами-виробниками. Існують ще кілька розробок у цьому напрямку, пов'язані з полімерними барвниками і модуляціями магнітного поля і потужності випромінювання лазера.

Технологія, заснована на зміні фазового стану, заснована на здатності речовини переходити з кристалічного стану в аморфне. Досить висвітлити деяку точку на поверхні диска променем лазера певної потужності, як речовина в цій точці перейде в аморфний стан. При цьому змінюється відображає здатність диска в цій точці. Запис інформації відбувається значно швидше, але при цьому деформується поверхню диска, що обмежує число циклів перезапису.

У теперішній час вже розробляється технологія, що дозволяє змінювати полярність магнітного поля на протилежну всього за кілька наносекунд. Це дозволить змінювати магнітне поле синхронно з надходженням даних на запис. Існує також технологія, побудована на модуляції випромінювання лазера. У цій технології дисковод працює в трьох режимах: режим читання з низькою інтенсивністю, режим запису з середньою інтенсивністю і режим запису з високою інтенсивністю. Модуляція інтенсивності лазерного променя вимагає більш складної структури диска і доповнення механізму дисковода ініціюючих магнітом, встановленим перед магнітом зсуву і мають протилежну полярності. У самому простому випадку диск має дві робочі шару - ініціалізація і записує. Ініціалізував шар зроблений з такого матеріалу, що ініціалізація магніт може змінювати його полярність без додаткового впливу лазера.

Безумовно МО диски перспективні і бурхливо розвиваються пристрої, які можуть вирішувати назріваючі проблеми з великими обсягами інформації. Але їх подальший розвиток залежить не тільки від технології запису на них, але і від прогресу в області інших носіїв інформації. І якщо не буде винайдено більш ефективний спосіб зберігання інформації, МО диски можливо займуть домінуючі ролі.

3.4 Голографія

Метод фотографування, використовуваний для збереження зображення предметів, відомий вже досить довгий час і зараз це найдоступніший спосіб отримання зображення об'єкта на будь-якому носії (фотопапір, фотоплівка). Однак інформація, що міститься у фотографії дуже обмежена. Зокрема, відсутня інформація про відстані різних частин об'єкта від фотопластинки та інших важливих характеристиках. Іншими словами, звичайна фотографія не дозволяє відновити повністю той хвильовий фронт, який на ній був зареєстрований. У фотографії міститься більш-менш точна інформація про амплітудах зафіксованих хвиль, але повністю відсутня інформація про фази хвиль.

Голографія дозволяє усунути цей недолік звичайної фотографії і записати на фотопластинці інформацію не тільки про амплітудах падаючих на неї хвиль, а й про фази, тобто повну інформацію. Відновлена з допомогою такого запису хвиля повністю ідентична початкової і містить в собі всю інформацію, яку містила первісна хвиля. Тому метод був названий голографією, тобто методом повного запису хвилі.

Для того щоб здійснити цей метод у світловому діапазоні, необхідно мати випромінювання з досить високим ступенем когерентності. Таке випромінювання можна отримати за допомогою лазера. Тому тільки після створення лазерів, що дають випромінювання з високою ступінню когерентності, вдалося практично здійснити голографію.

Початкове завдання голографії полягала в отриманні об'ємного зображення. З розвитком голографії на товстошарові пластинах виникла можливість створення об'ємних кольорових фотографій. На цій базі досліджуються шляхи реалізації голографічного кіно, телебачення і т. д.

Один з методів прикладної голографії, іменований голографічної інтерферометрії, знайшов дуже широке поширення. Суть методу в наступному. На одну фотопластинку послідовно реєструються два інтерференційні картини, що відповідають двом різним, але мало відрізняється станам об'єкта, наприклад, при деформації. При просвічуванні такий "подвійної" голограми утворюються, очевидно, два зображення об'єкта, змінені відносно один одного в тій же мірі, що й об'єкт у двох його станах. Відновлені хвилі, що формують ці два зображення, когерентні, інтерферують, і на новому зображенні спостерігаються інтерференційні смуги, які й характеризують зміну стану об'єкта.

В іншому варіанті голограма виготовляється для якогось певного стану об'єкта. При просвічуванні її об'єкт не видаляється і проводиться його повторне освітлення, як на першому етапі голографирования. Тоді знову виходить дві хвилі, одна формує голографічне зображення, а інша поширюється від самого об'єкта. Якщо тепер відбуваються якісь зміни у стані об'єкта (у двох послідовних хвилями виникає різниця порівняно з тим, що було під час експонування голограми), то між зазначеними ходу, і зображення покривається інтерференційними смугами. Описаний спосіб застосовується для дослідження деформацій предметів, їх вібрацій, поступального руху і обертань, неоднорідності прозорих об'єктів і т. п.

Цікаве застосування голографії в якості носія інформації. Часто необхідно отримати об'ємне зображення предмета, якого ще не існує, і отже, не можна одержати голограму такого предмета оптичними методами. У цьому випадку голограма розраховується на ЕОМ (цифрова голограма) і результати розрахунку відповідним чином переносяться на фотопластинку. З отриманої таким способом машинної голограми об'ємне зображення предмета відновлюється звичайним оптичним способів. Поверхня предмета, отриманого з машинної голограмі, використовується як еталон, з яким методами голографічної інтерференції проводиться порівняння поверхні реального предмета, виготовленого відповідними інструментами. Голографічна інтерферометрія дозволяє зробити порівняння поверхні виготовленого предмета і еталона з надзвичайно великою точністю до часток довжини хвилі. Це дає можливість виготовляти з такою ж великою точністю дуже складні поверхні, які було б неможливо виготовити без застосування цифрової голографії і методів голографічної інтерферометрії. Само собою зрозуміло, що для порівняння еталонної поверхні з виготовленої не обов'язково відновлювати оптичним способом машинну голограму. Можна зняти голограму предмета, перевести її на цифрову мову ЕОМ і порівняти з цифровою голограмою. Обидва ці шляхи в принципі еквівалентні.[5]

Особливості голограм як носіїв інформації роблять дуже перспективними розробки по створенню голографічної пам'яті, яка характеризується великим обсягом, надійністю, швидкістю прочитування і т. д.

Висновок

Здійснено огляд літератури щодо підключення і використання бази даних. Здійснено написання програми, в яка можна записувати інформацію а також редагувати внесену інформацію. Програма написана у середовищі Microsoft Visual Studio 2013 Premium.

база дані лазерний випромінювання

Список використаних джерел

1. Тарасов Л. В. Лазери. Дійсність і надії. - М.: Наука, 1985.

2. "Газові лазери" (под. ред. Н. Н. Соболєва) М.: Світ, 1968.

3. Айден К. Апаратні засоби PC: переклад з нім. - Санкт-Петербург: BHV - СПб, 1996.

4. Китайгородський А. І. Фізика для всіх: Фотони і ядра. - М.: Наука, 1982.

5. Ландсберг Г. С. Оптика. - М.: Наука, 1976.

6. Программирование на языке С#. Фаронов.В.В

7. Матвєєв А. Н. Оптика. - М.: Вища школа, 1985 ..

8. Сивухин В. А. Загальний курс фізики. Оптика. - М.: Наука, 1980.

9. Работа с базами данных на языке C#. Технология АDO .NET. Учебное пособие. 2009. Евсеева.О.Н, Шамшев.А.Б

Додаток

Код головної програми

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace MovieDB

{public partial class Form1 : Form{

public OleDbConnection database;

DataGridViewButtonColumn editButton;

DataGridViewButtonColumn deleteButton;

int movieIDInt;

#region Form1 constructor

public Form1(){

InitializeComponent();

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=optickdatabase.mdb";

try{

database = new OleDbConnection(connectionString);

database.Open();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

catch (Exception ex){

MessageBox.Show(ex.Message);

return;}}

#endregion

#region Load dataGrid

public void loadDataGrid(string sqlQueryString){

OleDbCommand SQLQuery = new OleDbCommand();

DataTable data = null;

dataGridView1.DataSource = null;

SQLQuery.Connection = null;

OleDbDataAdapter dataAdapter = null;

dataGridView1.Columns.Clear();

//---------------------------------

SQLQuery.CommandText = sqlQueryString;

SQLQuery.Connection = database;

data = new DataTable();

dataAdapter = new OleDbDataAdapter(SQLQuery);

dataAdapter.Fill(data);

dataGridView1.DataSource = data;

dataGridView1.AllowUserToAddRows = false;

dataGridView1.ReadOnly = true;

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].Width = 80;

dataGridView1.Columns[3].Width = 100;

dataGridView1.Columns[4].Width = 100;

dataGridView1.Columns[5].Width = 100;

dataGridView1.Columns[6].Width = 80;

dataGridView1.Columns[7].Width = 80;

dataGridView1.Columns[7].Width = 120;

dataGridView1.Columns[8].Width = 100;

dataGridView1.Columns[9].Width = 150;

editButton = new DataGridViewButtonColumn();

editButton.HeaderText = "Редагувати";

editButton.Text = "Редагувати";

editButton.UseColumnTextForButtonValue = true;

editButton.Width = 80;

dataGridView1.Columns.Add(editButton);

deleteButton = new DataGridViewButtonColumn();

deleteButton.HeaderText = "Видалити";

deleteButton.Text = "Видалити";

deleteButton.UseColumnTextForButtonValue = true;

deleteButton.Width = 80;

dataGridView1.Columns.Add(deleteButton);}

#endregion

private void izlazToolStripMenuItem_Click(object sender, EventArgs e)

{Close();}

#region Close database connection

private void Form1_FormClosing(object sender, FormClosingEventArgs e){

database.Close();}

#endregion

#region refresh button

private void button2_Click(object sender, EventArgs e){

textBox4.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

#endregion

#region Input

private void button6_Click(object sender, EventArgs e){

string typeString;try{

typeString = comboBox1.SelectedItem.ToString();}

catch (Exception ex){

MessageBox.Show("Виберіть type\nError: " + ex.Message + "");

return;}

int type = 0;

string Позначення = textBox1.Text.ToString();

string Потужність = textBox2.Text.ToString();

string Рік_виготовлення = textBox3.Text.ToString();

string Довжина_хвилі = textBox7.Text.ToString();

string Ціна = textBox8.Text.ToString();

string Вага = textBox9.Text.ToString();

string Діаметр_променя = textBox10.Text.ToString();

int yr = 0;

if (Рік_виготовлення != ""){

yr = CheckYear(Рік_виготовлення);}

string Небезпечний;

if (radioButton1.Checked == true){

Небезпечний = "Так";}

else{

Небезпечний = "Ні";}

if (yr != 1){

if (typeString == "Газові лазери") type = 1;

if (typeString == "Газодинамічні лазери") type = 2;

if (typeString == "Гелій-неоновий лазер") type = 3;

if (typeString == "Лазери на барвниках") type = 4;

if (typeString == "Напівпровідникові лазери") type = 5;

if (typeString == "Неодимовий лазер") type = 6;

if (typeString == "Проточний СО 2-лазер") type = 7;

if (typeString == "Рубіновий лазер") type = 8;

if (typeString == "С0 2-лазер із замкнутим об\'ємом") type = 9;

if (typeString == "Т-лазер") type = 10;

string SQLString = "";

if (Рік_виготовлення == ""){

SQLString = "INSERT INTO movie(Позначення, Потужність, Небезпечний, Довжина_хвилі, Ціна, Вага, Діаметр_променя, typeID) VALUES('" + Позначення.Replace("'", "''") + "','" + Потужність + "','" + Небезпечний + "','" + Довжина_хвилі + "','" + Ціна + "','" + Вага + "','" + Діаметр_променя + "'," + type + ");";}else{

MessageBox.Show(yr.ToString());

SQLString = "INSERT INTO movie(Позначення, Потужність, Небезпечний, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Рік_виготовлення, typeID) VALUES('" + Позначення.Replace("'", "''") + "','" + Потужність + "','" + Небезпечний + "','" + Довжина_хвилі + "','" + Ціна + "','" + Вага + "','" + Діаметр_променя + "'," + yr + "," + type + ");";}

OleDbCommand SQLCommand = new OleDbCommand();

SQLCommand.CommandText = SQLString;

SQLCommand.Connection = database;

int response = -1;

try{

response = SQLCommand.ExecuteNonQuery();}

catch (Exception ex){

MessageBox.Show(ex.Message);}

if (response >= 1) MessageBox.Show("Ваш запит додано до бази даних", "Успіх", MessageBoxButtons.OK, MessageBoxIcon.Information);

radioButton1.Checked = radioButton2.Checked = false;}else{

MessageBox.Show("Рік не підходить\nВиберіть інший рік.", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);

textBox3.Clear();

textBox3.Focus();}}

public int CheckYear(string year){

int yr = int.Parse(year);

if (yr >= 2100 || yr <= 1900){

return 1;}

else{

return yr;}}

#endregion

#region Delete/Edit button handling

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

int currentRow = int.Parse(e.RowIndex.ToString());try{

string movieIDString = dataGridView1[0, currentRow].Value.ToString();

movieIDInt = int.Parse(movieIDString);}

catch { }

if (dataGridView1.Columns[e.ColumnIndex] == editButton && currentRow >= 0){

string Позначення = dataGridView1[1, currentRow].Value.ToString();

string Потужність = dataGridView1[2, currentRow].Value.ToString();

string Небезпечний = dataGridView1[3, currentRow].Value.ToString();

string Рік_виготовлення = dataGridView1[4, currentRow].Value.ToString();

string Довжина_хвилі = dataGridView1[5, currentRow].Value.ToString();

string Ціна = dataGridView1[6, currentRow].Value.ToString();

string Вага = dataGridView1[7, currentRow].Value.ToString();

string Діаметр_променя = dataGridView1[8, currentRow].Value.ToString();

string type = dataGridView1[9, currentRow].Value.ToString();

Form2 f2 = new Form2();

f2.Позначення = Позначення;

f2.Потужність = Потужність;

f2.Небезпечний = Небезпечний;

f2.Рік_виготовлення = Рік_виготовлення;

f2.Довжина_хвилі = Довжина_хвилі;

f2.Ціна = Ціна;

f2.Вага = Вага;

f2.Діаметр_променя = Діаметр_променя;

f2.type = type;

f2.movieID = movieIDInt;

f2.Show();

dataGridView1.Update();}

else if (dataGridView1.Columns[e.ColumnIndex] == deleteButton && currentRow >= 0){

string queryDeleteString = "DELETE FROM movie where movieID = " + movieIDInt + "";

OleDbCommand sqlDelete = new OleDbCommand();

sqlDelete.CommandText = queryDeleteString;

sqlDelete.Connection = database;

sqlDelete.ExecuteNonQuery();

loadDataGrid(queryString);}}

#endregion

private void Form1_Load(object sender, EventArgs e){}

#region search by Позначення

private void button1_Click(object sender, EventArgs e){

string Позначення = textBox4.Text.ToString();

if (Позначення != ""){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Позначення LIKE '" + Позначення + "%'";

loadDataGrid(queryString);}else{

MessageBox.Show("Введіть фірму Позначенняа", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

#endregion

#region search by type

private void button5_Click(object sender, EventArgs e){

int type = 0;

string typeString = comboBox2.SelectedItem.ToString();

if (typeString == "Газові лазери") type = 1;

if (typeString == "Газодинамічні лазери") type = 2;

if (typeString == "Гелій-неоновий лазер") type = 3;

if (typeString == "Лазери на барвниках") type = 4;

if (typeString == "Напівпровідникові лазери") type = 5;

if (typeString == "Неодимовий лазер") type = 6;

if (typeString == "Проточний СО 2-лазер") type = 7;

if (typeString == "Рубіновий лазер") type = 8;

if (typeString == "С0 2-лазер із замкнутим об\'ємом") type = 9;

if (typeString == "Т-лазер") type = 10;

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie, movietype WHERE movietype.typeID = movie.typeID AND movie.typeID = " + type + "";

loadDataGrid(queryString);}

#endregion

#region search by year

private void button4_Click(object sender, EventArgs e){

string firstYear = textBox5.Text.ToString();

string secondYear = textBox6.Text.ToString();

int yr1 = CheckYear(firstYear);

int yr2 = CheckYear(secondYear);

if ((yr1 != 1 && yr2 != 1) && yr1 <= yr2){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Рік_виготовлення BETWEEN " + yr1 + " AND " + yr2 + "";

loadDataGrid(queryString);}else{

MessageBox.Show("Формат року не є правильним.", "Увага", MessageBoxButtons.OK, MessageBoxIcon.Warning);

textBox5.Clear();

textBox5.Focus();

textBox6.Clear();}}

#endregion

#region search Небезпечний movies

private void button3_Click(object sender, EventArgs e){

string Небезпечний;

if (radioButton3.Checked == true) Небезпечний = "Так";

else Небезпечний = "Ні";

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND Небезпечний ='" + Небезпечний + "'";

loadDataGrid(queryString);}

#endregion

private void button6_KeyDown(object sender, KeyEventArgs e){

if (e.KeyCode == Keys.Enter){

button6_Click(null, null);}}

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button8_Click(object sender, EventArgs e){

textBox11.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button18_Click(object sender, EventArgs e){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button19_Click(object sender, EventArgs e){

textBox5.Clear();

textBox6.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button9_Click(object sender, EventArgs e){

textBox12.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button11_Click(object sender, EventArgs e){

textBox13.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button14_Click(object sender, EventArgs e){

textBox14.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button16_Click(object sender, EventArgs e){

textBox15.Clear();

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

private void button17_Click(object sender, EventArgs e){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movieType WHERE movietype.typeID = movie.typeID";

loadDataGrid(queryString);}

#region search by Потужність

private void button7_Click(object sender, EventArgs e){

string Потужність = textBox11.Text.ToString();

if (Потужність != ""){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Потужність LIKE '" + Потужність + "%'";

loadDataGrid(queryString);}else{

MessageBox.Show("Введіть швидкість запису", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

#endregion

private void button10_Click(object sender, EventArgs e){

string Довжина_хвилі = textBox12.Text.ToString();

if (Довжина_хвилі != ""){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Довжина_хвилі LIKE '" + Довжина_хвилі + "%'";

loadDataGrid(queryString);}else{

MessageBox.Show("Введіть довжину хвилі", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

private void button12_Click(object sender, EventArgs e){

string Ціна = textBox13.Text.ToString();

if (Ціна != ""){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Ціна LIKE '" + Ціна + "%'";

loadDataGrid(queryString);}else{

MessageBox.Show("Введіть ціну", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

private void button13_Click(object sender, EventArgs e){

string Вага = textBox14.Text.ToString();if (Вага != ""){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Вага LIKE '" + Вага + "%'";

loadDataGrid(queryString);}else{

MessageBox.Show("Введіть кількість пам'яті", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

private void button15_Click(object sender, EventArgs e){

string Діаметр_променя = textBox15.Text.ToString();

if (Діаметр_променя != ""){

string queryString = "SELECT movieID, Позначення, Потужність, Небезпечний, Рік_виготовлення, Довжина_хвилі, Ціна, Вага, Діаметр_променя, Type FROM movie,movietype WHERE movietype.typeID = movie.typeID AND movie.Діаметр_променя LIKE '" + Діаметр_променя + "%'";

loadDataGrid(queryString);}else{

MessageBox.Show("Введіть товжину диска", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}

private void tabPage1_Click(object sender, EventArgs e){}

private void textBox10_TextChanged(object sender, EventArgs e){}

private void textBox9_TextChanged(object sender, EventArgs e){}

private void label13_Click(object sender, EventArgs e){}

private void label12_Click(object sender, EventArgs e){}

private void label11_Click(object sender, EventArgs e){}

private void label10_Click(object sender, EventArgs e){}

private void textBox8_TextChanged(object sender, EventArgs e){}

private void textBox7_TextChanged(object sender, EventArgs e){}

private void label5_Click(object sender, EventArgs e){}

private void label4_Click(object sender, EventArgs e){}

private void label3_Click(object sender, EventArgs e){}

private void label2_Click(object sender, EventArgs e){}

private void label1_Click(object sender, EventArgs e){}

private void radioButton2_CheckedChanged(object sender, EventArgs e){}

private void radioButton1_CheckedChanged(object sender, EventArgs e){}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){}

private void textBox3_TextChanged(object sender, EventArgs e){}

private void textBox2_TextChanged(object sender, EventArgs e){}

private void textBox1_TextChanged(object sender, EventArgs e){}

private void tabPage2_Click(object sender, EventArgs e){}

private void tabControl2_SelectedIndexChanged(object sender, EventArgs e){}

private void tabPage3_Click(object sender, EventArgs e){}

private void label6_Click(object sender, EventArgs e){}

private void textBox4_TextChanged(object sender, EventArgs e){}

private void tabPage7_Click(object sender, EventArgs e){}

private void label15_Click(object sender, EventArgs e){}

private void textBox11_TextChanged(object sender, EventArgs e){}

private void tabPage5_Click(object sender, EventArgs e){}

private void label16_Click(object sender, EventArgs e){}

private void radioButton4_CheckedChanged(object sender, EventArgs e){}

private void radioButton3_CheckedChanged(object sender, EventArgs e){}

private void tabPage6_Click(object sender, EventArgs e){}

private void label14_Click(object sender, EventArgs e){}

private void label9_Click(object sender, EventArgs e){}

private void label8_Click(object sender, EventArgs e){}

private void textBox6_TextChanged(object sender, EventArgs e){}

private void textBox5_TextChanged(object sender, EventArgs e){}

private void tabPage10_Click(object sender, EventArgs e){}

private void textBox12_TextChanged(object sender, EventArgs e){}

private void label17_Click(object sender, EventArgs e){}

private void tabPage11_Click(object sender, EventArgs e){}

private void textBox13_TextChanged(object sender, EventArgs e){}

private void label18_Click(object sender, EventArgs e){}

private void tabPage8_Click(object sender, EventArgs e){}

private void label19_Click(object sender, EventArgs e){}

private void textBox14_TextChanged(object sender, EventArgs e){}

private void tabPage9_Click(object sender, EventArgs e){}

private void textBox15_TextChanged(object sender, EventArgs e){}

private void label20_Click(object sender, EventArgs e){}

private void tabPage4_Click(object sender, EventArgs e){}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){}

private void label7_Click(object sender, EventArgs e){}}}

Код форми редагуваня інформації

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace MovieDB

{public partial class Form2 : Form{

public string Потужність, Позначення, Небезпечний, Ціна, Довжина_хвилі, Рік_виготовлення, Вага, Діаметр_променя, type;

public int movieID;

public Form2(){

InitializeComponent();}

private void Form2_Load(object sender, EventArgs e){

textBox1.Text = Позначення;

textBox2.Text = Потужність;

textBox3.Text = Рік_виготовлення;

textBox4.Text = Ціна;

textBox5.Text = Довжина_хвилі;

textBox6.Text = Вага;

textBox7.Text = Діаметр_променя;

comboBox1.Text = type;

if (Небезпечний == "Так") radioButton1.Checked = true;

else if (Небезпечний == "Ні") radioButton2.Checked = true;}

#region Update

private void button6_Click(object sender, EventArgs e){

Form1 f1 = new Form1();

string typeString;

Позначення = textBox1.Text.ToString();

Потужність = textBox2.Text.ToString();

Рік_виготовлення = textBox3.Text.ToString();

Ціна = textBox4.Text.ToString();

Довжина_хвилі = textBox5.Text.ToString();

Вага = textBox6.Text.ToString();

Діаметр_променя = textBox7.Text.ToString();

int yr = 0;

if (Рік_виготовлення != ""){

yr = f1.CheckYear(Рік_виготовлення);}try{

typeString = comboBox1.SelectedItem.ToString();}

catch (Exception ex){

MessageBox.Show("Виберіть type\nПомилка: " + ex.Message + "");

return;}

int type = 0;

if (radioButton1.Checked == true){

Небезпечний = "Так";}

else{

Небезпечний = "Ні";}

if (yr != 1){

if (typeString == "Газові лазери") type = 1;

if (typeString == "Газодинамічні лазери") type = 2;

if (typeString == "Гелій-неоновий лазер") type = 3;

if (typeString == "Лазери на барвниках") type = 4;

if (typeString == "Напівпровідникові лазери") type = 5;

if (typeString == "Неодимовий лазер") type = 6;

if (typeString == "Проточний СО 2-лазер") type = 7;

if (typeString == "Рубіновий лазер") type = 8;

if (typeString == "С0 2-лазер із замкнутим об\'ємом") type = 9;

if (typeString == "Т-лазер") type = 10;

string SQLUpdateString;

if (Рік_виготовлення == ""){

SQLUpdateString = "UPDATE movie SET Позначення ='" + Позначення.Replace("'", "''") + "', Рік_виготовлення=NULL, Потужність='" + Потужність + "', Ціна='" + Ціна + "', Довжина_хвилі='" + Довжина_хвилі + "', Вага='" + Вага + "', typeID=" + type + ", Діаметр_променя=" + Діаметр_променя + "' WHERE movieID=" + movieID + "";} else{

SQLUpdateString = "UPDATE movie SET Позначення ='" + Позначення.Replace("'", "''") + "', Рік_виготовлення=" + yr + ", Потужність='" + Потужність + "', Ціна='" + Ціна + "', Довжина_хвилі='" + Довжина_хвилі + "', Вага='" + Вага + "', typeID=" + type + ", Діаметр_променя='" + Діаметр_променя + "' WHERE movieID=" + movieID + "";}

OleDbCommand SQLCommand = new OleDbCommand();

SQLCommand.CommandText = SQLUpdateString;

SQLCommand.Connection = f1.database;

int response = SQLCommand.ExecuteNonQuery();

MessageBox.Show("Оновлення успішне!", "Повідомлення", MessageBoxButtons.OK, MessageBoxIcon.Information);

Close();}else{

MessageBox.Show("Формат року не є правильним!\nВиберіть підходячий рік.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);

textBox3.Clear();

textBox3.Focus();}}

#endregion

private void button6_KeyDown(object sender, KeyEventArgs e){

if (e.KeyCode == Keys.Enter) {

button6_Click(null, null);}}

private void button1_Click(object sender, EventArgs e){

Close();}

private void groupBox1_Enter(object sender, EventArgs e){ } }}

Размещено на Allbest.ru


Подобные документы

  • Основні відомості про реляційні бази даних, система управління ними. Основні директиви для роботи в середовищі MySQ. Визначення та опис предметної області. Створення таблиць та запитів бази даних автоматизованої бази даних реєстратури в поліклініці.

    курсовая работа [2,9 M], добавлен 06.11.2011

  • Проектування бази даних, що реалізує звіти про графік робіт на об’єктах впродовж місяця. Графічне зображення нагромаджувачів даних. Побудова діаграм потоків даних і переходів станів, таблиць у вигляді двовимірного масиву, запитів. Створення бази даних.

    курсовая работа [1,2 M], добавлен 29.02.2012

  • Використання баз даних та інформаційних систем у сучасному житті. Основні відомості про реляційні бази даних. Зв'язування відносин. Структурована мова запитів SQL. Сутність та загальний опис бази даних "Архітектурна компанія". Приклад створення таблиці.

    курсовая работа [320,7 K], добавлен 19.06.2015

  • Реляційна модель баз даних. Цілісність бази даних. Нормалізація, нормальні форми та функціональні залежності. Нормальна форма Бойса-Кодда. Запити та форми Access. Процес нормалізації при побудові бази даних "Музей" та система запитів над даними.

    курсовая работа [2,9 M], добавлен 06.11.2013

  • Створення бази даних та робота з нею у програмному забезпеченні Microsoft Access. Проектування форм для зручного заповнення таблиць, звітів для відображення даних та їх друку, кнопкової форми, яка потрібна для зручної навігації між функціями бази даних.

    курсовая работа [1,3 M], добавлен 04.10.2014

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Поняття та переваги реляційної бази, автоматизація аналізу даних. Опис основних компонентів сховища даних AS/400. Процес перетворення оперативних даних в інформаційні. Багатовимірні бази даних (MDD). Опис даних і створення файлів в інтеграційних базах.

    реферат [36,8 K], добавлен 14.01.2012

  • Побудова інформаційної системи "Магазин товарів для настільного тенісу" з автоматизації роботи магазину. Концептуальне моделювання бази даних. Обґрунтування вибору СУБД. Логічне проектування бази даних. Схема бази даних. Створення таблиць в конструкторі.

    курсовая работа [8,8 M], добавлен 16.12.2015

  • Проектування і реалізація реляційної бази даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів готельного комплексу. Розробка сценаріїв для створення бази даних і базових таблиць проекту.

    курсовая работа [147,2 K], добавлен 02.06.2019

  • Використання баз даних та інформаційних систем. Поняття реляційної моделі даних. Ключові особливості мови SQL. Агрегатні функції і угрупування даних. Загальний опис бази даних. Застосування технології систем управління базами даних в мережі Інтернет.

    курсовая работа [633,3 K], добавлен 11.07.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.