Разное

Ирис схема слова 1 класс: Страница не найдена – Фонетический разбор, цветовые схемы и значения слов

Содержание

Тема: “Звуки в словах”.

Обучение грамоте (Чтение) 1 класс

ТЕМА: Звуки в словах.

ПРОГНОЗИРУЕМЫЕ РЕЗУЛЬТАТЫ:

дети научатся свободно высказывать свои мысли;

научатся различать гласные и согласные звуки, чётко и ясно произ­носить их;

познакомятся со слиянием согласного звука и гласного, его графи­ческим изображением;

научатся выделять в слове слоги-слияния, называя звуки, из кото­рых они образуются;

научатся правильно выполнять слогоделение слова;

познакомятся со слогом, состоящим из одного гласного звука;

научатся составлять схемы слов, состоящих из слога-слияния и глас­ного звука, слогов-слияний и примыкающих звуков.

Оборудование: иллюстрации: мотоцикл, кошка, мальчик, бегемот, рак, сом, кит, сыр,мэр, схема слогов.

ХОД УРОКА

ӏ. Организация класса.

Актуализация знаний

— С какими звуками вы познакомились на прошлом уроке?

(Нас окружает множество звуков: скрип, шорох, шелест, всё имеет свои звуки.)

– Но каждое слово тоже состоит из звуков, которые стоят в строгом порядке. Это речевые звуки. Вот сегодня мы будем разбираться в звуках человеческой речи. Какие они?

2. Мотивация учебной деятельности

— Рассмотрите и назовите предметы.

– Какие звуки вы слышите, называя картинки на доске? Мотоцикл: Р-р-р! Кошка: Мяу! Мальчик: Ах!

3. Работа по теме урока

— Я назову вам звук, а вы придумайте картинку, на кото­рой предмет может издавать этот звук. Поочередно учитель называет [а], [у], [о], [и], [ы], [э].

— Поможем каждому герою произносить эти звуки. Как они произ­носятся?

– Прослушайте про них стихотворение.

-Все певцы и певицы распеваются на этих звуках.

– Споём песенку «В лесу родилась ёлочка» на [а], [о], [у], [и], [э], [ы].

– Звуки, которые произносятся легко, свободно, с помощью голоса, называются…

(Гласными звуками. Эти звуки легко тянутся, поются.)

– А теперь послушайте стихотворение Н.М. Бетеньковой о звуках и постарайтесь его запомнить.

А, О, У, Э, Ы, И. (Дети произносят звуки напевно.)

Звуки гласные мои. (Разводят руки и прижимают к груди.)

Их не трудно перечесть. (Считают пальчики на руках.)

Гласных звуков ровно шесть. (Показывают шесть пальцев.)

– Мы будем петь эту песенку и запомним 6 гласных звуков.

– В слове ум первый звук [у] — гласный. Второй звук — [м]. Будет ли он гласным? (Нет. Этот звук произносится с голосом, но с препятст­виями, трудностями. Он согласный.)

– Я называю слова, вы хлопаете тогда, когда слышите слово, начи­нающееся с гласного звука: аист, машина, ирис, урок, кукла, Оля, эхо, шишка.

*Далее следует игра-наоборот. Дети хлопают только тогда, когда слово начинается с согласного звука: утро, кино, фонарик, астра, игры, щенок, носорог.

— Чтобы гласные и согласные звуки не путались, мы будем в схемах использовать красный квадратик вместо гласного звука. Произнесите слово урок. Разделите его на слоги. (У-рок.)

Расскажите о первом слоге. Что можно рассказать о втором слоге? (Это слог -рок. В нём три звука: [р-о-к].) Выкладываем карточки зву­ков: [р] — согласный звук — белый квадратик; [о] — гласный звук — красный квадратик; [к] — согласный звук — белый квадратик.)

– Прочитайте слово урок по схеме. Раздвинем карточки так, чтобы по­лучилось два слога. Какой слог ударный? На какой звук падает ударе­ние? (На второй слог, на гласный звук [о].)

– Какой гласный звук безударный? (В 1 слоге, звук [у].)

– Что мы узнали про гласные звуки? (Гласные звуки в слове могут быть ударные и безударные. Ударение всегда падает только на глас­ный звук.)

Аналогично проводится работа со словом

школа.

— На какие две группы делятся звуки? (Гласные и согласные.) Вспомните стихотворение о гласных звуках. Сколько гласных звуков мы знаем? (6 гласных звуков.)

– Рассмотрите картинки: рак, сом, жук, сыр, кит, мэр. Поднимите крас­ную карточку, чётко назовите гласный звук в каждом слове.

– Гласные звуки поются, тянутся, произносятся свободно, открыто. Сколько гласных звуков мы выделили из слов? (Шесть звуков.)

– Какие ещё звуки есть в русской речи? (Согласные звуки.)

– Откроем с. 15 учебника. Тихо подойдём к речке, пройдём на приго­рок и присядем под раскидистым деревом. Здесь удобно будет беседо­вать. Какое дерево склонилось над рекой и раскинуло над нами свои добрые ветви?

– Послушайте и отгадайте загадку: «Стоит над водою тря­сёт бородою». Что это? (Ива.)

– Выполните звуковой анализ слова и-вa.

Какой слог первый? Второй?

– Сколько звуков в первом слоге? Какой это звук? Произнесите его.

(Это гласный звук[и].)

– Составьте схему, обозначающую этот звук. (Дети поднимают вверх красный квадратик.)

– Из каких звуков состоит второй слог? Произнесите его медленно, чтобы чётко были слышны все звуки.

Дети один за другим или хором произносят слог -ва.

— Из каких звуков он состоит? (Из согласного звука [в] и гласного звука [а].)

– Эти два звука, согласный и гласный, сливаются при произношении. Слог -ва произносится на одном дыхании, два звука произносятся друг за другом, как бы сливаясь вместе. Такое звучание называется слияни­ем, например па, ши, но, лу. – Обозначать слияние согласного с гласным будем так: . Составим схему слова ива

– Теперь отправимся дальше. Мы не можем перейти на другую сторону реки, пока не выложим схему очень нужного слова.

– Отгадайте загадку: «Я на том берегу и на этом берегу. Через речку перебраться я тебе по­могу». Что это?

(Мост.)

– Произнесите слово. Сколько в нём слогов? (Первый звук [м] — со-гласный звук — положим белый квадратик.)

– Второй звук? Третий? Назовите последний звук. Сливаются ли звуки в этом слове? (Да.)

Как мы обозначим слог-слияние?

Дети заменяют два квадратика на единую карточку слога-слияния.

— А что происходит со звуками [с] и [т]? (Они просто присоединя­ются к слогу-слиянию.) Они примыкают к слогу-слиянию.

– Давайте перейдём по мостику на другой берег и тихонечко подой­дём к деду Макару. – Произнесите имя деда: Ma-кар. Составьте схему это­го слова.

Дети самостоятельно составляют схему слова Макар.

— Назовите первый слог. Какую схему вы взяли для этого слога? (Слог-слияние, согласный [м] и гласный [а].)

Аналогично проходит работа со вторым слогом. Далее выполняются упражнения для закрепления схем со слогами-слияниями и звуками-примыканиями.

— Какую рыбу поймает сейчас дед Макар? Эта рыба — гроза для всех маленьких речных рыбёшек? (Щука.)

– Произнесите слово. Выполните звуковой анализ слова. Составьте схему слова щука. – Объясните, почему именно так составили схему. (По­лучилась схема из двух слогов-слияний.)

– Кто это так шумно плюхнулся в воду? Кто так захлопал крыльями и закричал? Кто распугал всю рыбу деду Макару? Послушайте загадку и узнаете, кто повстречался нам на пути: «Длинная шея, красные лапки. Щиплет за пятки, беги без оглядки». Кто это? (Это гуси.)

Послушайте чудесное стихотворение Н. Костарева.

Га-га-га! — гогочет гусь. — На гусят и на гусыню

Я семьёй своей горжусь! Всё гляжу — не нагляжусь.

— Назовите, из кого состоит семья гусей? (Гусь, гусыня, гусятки, гусята.)

– Произнесите любое слово по выбору и самостоятельно составьте звуковую схему.

– Как ещё называют птиц, которые хорошо умеют плавать? (Водопла­вающие.)

— Давайте покинем речку и отправимся в уютный домик.

– Послу­шайте, кто это так громко и заливисто кричит, собирая своё семейство на покой?

– Отгадайте-ка загадку: «Сидел на заборе, пел да кричал. Все собрались, и он замолчал». Кто же это? (Это петух.)

– Как мы назовём эту группу птиц? (Это домашние птицы.)

– Назови всю семью петуха. (Куры, петух, цыплята.)

– Они очень хорошо умеют доставать червяков из земли, но что они совсем не умеют делать? (Плавать.)

– Вернёмся к картинке «Куры» (с. 14). Произнесите это слово по слогам.

– Выполните звуко-буквенный анализ слова. Прочитайте по схеме. Учитель ведёт указкой по звуковой схеме, дети чётко произносят все звуки.

— Каких ещё домашних птиц мы можем встретить во дворе? (Индю­шек, уток, цыплят.)

– Прочтите: «Индюки сошлись у ивы: Ишь, как мы с тобой красивы!» Что же объединяет всех этих птиц?

(Они домашние.)

– Какие птицы похожи на платочки в небе? (Голуби.)

– Это какие птицы: домашние или дикие? (Голуби могут быть как до­машние, так и дикие.)

– Во время войны голубей использовали для доставки почты. Почто­вые голуби всегда возвращаются домой. Выполните звуко-буквенный анализ слова голуби.

Чем интересно слово? (В нём 3 слога-слияния.)

– Рассмотрите страницу 15.

– О каких птицах мы ещё не рассказали? (Обо всех. Или: ос забыли.)

– А кто такие осы? (Насекомые. У насекомого 6 лапок.)

– Кого мы видим на первом плане картины? Чем они заняты?

– Со­ставьте рассказ про детей.

– Придумайте им имена.

– Составьте схемы.

– За­помните, что имена людей пишутся с большой буквы. На схеме пока­жите это.

– Но вот на деревню спускается вечер. Нам пора возвращаться в го­род. Нужно торопиться на станцию. По дороге Рома зацепился за куст… и его брюки украсила великолепная брошь. Отгадайте, что это за растение?

Читает ребёнок. Составляется схема слова.

Вырос в поле злой и колкий,

Во все стороны иголки.

(Репейник)

– Лариса быстро из огромного лопуха сделала себе на голову… (Шляпу.) Произнесите слово шляпа хором.

– Сима решила понюхать эти красивые синенькие цветочки-колючки, и вдруг девочка замахала руками и спряталась за наши спины ой-ой. Кто напугал девочку? (Оса.)

– Составьте схему к слову оса. Проверьте по учебнику.

– Дети смеются и говорят Симе: «Не зная броду, не суйся, Сима, в во­ду».

– Когда мы так говорим? Употребляйте эту пословицу в своей речи. Вот и закончилось наше замечательное путешествие!

4. Рефлексия учебной деятельности

— На какие две группы делятся все звуки человеческой речи? Как мы произносим гласные звуки? Согласные звуки?

– Какие два звука образуют слог-слияние?

– Могут ли два рядом стоя­щих согласных звука образовать слог-слияние?

– Если за гласным звуком мы произносим согласный звук, будет ли это слог-слияние?

Ударение. Ударный слог – конспект урока – Корпорация Российский учебник (издательство Дрофа – Вентана)

Название этапаМетодический комментарий
11. Актуализация полученных знанийУлыбнитесь друг другу,Садитесь!Руки? На месте!Ноги? На месте!Локти? У края!Спина? Прямая! На какие две группы делятся звуки?Какие звуки называются гласными? Почему?Какие звуки называются согласными? Какие бывают согласные звуки? Отметьте изображение, название которого начинается с гласного звука:изюм, груша, слива.Отметьте изображение, название которого начинается с мягкого согласного звука:медведь, волк, улитка.Отметьте изображение, название которого начинается с твёрдого согласного звука:утка, курица, петух.
22. Первичное усвоение новых знанийСоставьте схемы слов и́рис, ири́с. Сравните схемы. Что означает каждое слово? Что помогает различать слова? (Изображения.) Как же понять, какая схема к какому слову относится? Рассмотрите изображения и схемы. Что заметили?  (Палочки, ударения.)
33. Первичное усвоение новых знанийНазовите изображённые предметы и соотнесите со схемами слов. На какие звуки падают ударения? Назовите. Какой слог ударный в слове замо́к? Какой слог ударный слове за́мок?
44. Первичное усвоение новых знанийПослушайте стихотворение Я. Козловского об ударениях. День вступил в свои права,Снова в дверь стучат слова.Молотки взвалив на плечи,Поклонились мне слегка:— Мы слова из русской речи,Из родного языка!Одинаково нас пишут,Но… по–разному нас слышат.Меж собой лицом мы схожи,Но по смыслу далеки.Я спросил их:— А на что жеВам, ребята, молотки?— Властен ты над смыслом слова!Всё зависит, знай, дружок,По спине какого слогаНас ударит молоток.
55. Первичное усвоение знанийНазовите предметы. Составьте звуковые схемы слов, разбейте на слоги, поставьте ударения:гвози́ки, гво́здики.
66. Первичное усвоение знанийНазовите нарисованных животных, выделяя голосом ударный слог.Назовите трёхсложные слова.Назовите двусложные слова.Назовите слова с первым ударным слогом.Назовите слова со вторым ударным слогом. Физкультминутка
77. Первичное усвоение знанийСоставьте звуковую схему слова дерево, поставьте ударение. Какой слог ударный?
88. Первичное усвоение знанийНазовите изображённые деревья.Соедините картинки со схемами. (Схемы с прозрачными квадратиками, с делением на слоги и с ударениями.)
99. Первичное закреплениеРабочая тетрадь, с. 11,  № 1.
1010. Первичное закреплениеПрочитайте загадку–шараду. Сравните схемы слов–отгадок. Найдите в тексте объяснение значения слова–отгадки. Назовите ударные слоги. Что нового вы узнали сегодня на уроке?Какие затруднения испытали?

Урок 4. «нет друга – ищи, а нашёл – береги» буква и и звук [и] – Русский язык – 1 класс

1 класс

Урок №4

Тема: Нет друга – ищи, а нашёл – береги. Буква И звук [и].

Я узнаю о букве И и звуке [и].

Я научусь находить ее в слове.

Я смогу составлять схемы слова.

Тезаурус:

Звуки – то, что мы слышим и произносим.

Буквы – то, что мы читаем и пишем.

Согласные звуки – звуки, которые состоят из шума и голоса или только из шума.

Глухие согласные состоят только из шума.

Гласные звуки – это звуки, в образовании которых участвует только голос.

Список литературы:

Обязательная литература

  • Горецкий В.Г., Кирюшкин В.А., Виноградская Л.А. и др. Азбука. 1 класс: учеб.для общеобразоват. организаций. В 2 ч. Ч. 1 — 10-е изд. – М.: Просвещение, 2018. — 128 с. С. 29-31.

Дополнительная литература

Маршак С.Я. Весёлая азбука. Стихи. – М.: Оникс 21 век, 2004. – С. 1-12.

Ход урока

Звук [и]. Буква И

Иней лег на ветви ели,

Иглы за ночь побелели.

Буква И обозначает мягкость предшествующего согласного звука.

К+И=КИ

1. Закрасьте слова, в которых звук [и] есть в начале (зелёным цветом), в середине (жёлтым цветом), в конце слова (голубым цветом).

Ирис

Кривая

Клин

Ива

Журавли

2. Соедините изображение с подходящим словом. Найдите в нём звук [и].

Сито

Слива

Ирис

3. Раскрасьте звуковые схемы слов. Помните, что красным обозначаются гласные звуки.

Игра

Грабли

Лиса

4. Найдите слова с буквой И.

а

а

п

и

л

и

и

с

к

а

с

т

а

р

в

и

к

р

а

и

р

и

с

с

л

Рис

Слива

Липа

Аист

Икра

Искра

5. Посчитайте, сколько предметов изображено на рисунке, в названии которых есть буква и?

Варианты ответа:

  1. 1.
  2. 3.
  3. 2.

6. Прочтите рассказ. Поставьте подходящие слова в пропуски

У Саши есть ______. У него есть 4 ____ и _____. Он очень любит катать ____ и бегать за солнечным ________. Он настоящий _______. Когда он хочет кушать, то он мяукает. Это _____.

Слова: питомец, охотник, хвост, клубок, лапы, зайчик, кот.

7. Впишите нужные слова. (по произведению Эдуардаса Межелайтиса)

И вот Дайна пошла в _____ и написала свой первый ______.

Папа заглянул в её ______ и увидел, что ______ уже слушаются Дайну. И тогда он сказал:

– Теперь, когда эти буквы стали тебе подчиняться, ты можешь сама вести свой ______.

Слова: в школу, диктант, тетрадку, буквы, дневник.

8. Выберите правильные предложения для картинок.

1.Несли зайцы большую морковку.

2. Второй зайчик очень проголодался. Нет-нет, да куснет.

3. Первый зайчик почувствовал, что легкая морковка стала. Повернулся, а там только хвостик и остался.

9. Потренируйтесь писать букву И.

Урок по обучению грамоте с использованием конструктора ЛЕГО в 1-м классе

Тема: Гласные буквы “И, и “, обозначающие звук [ и ].

Цель: осуществление индивидуального подхода к учащимся при изучении фонетики посредством упражнений на логику и крупную моторику.

Задачи:

  • уточнение представления учащихся о звуке [и];
  • обучение слого-звуковому анализу;
  • осуществление индивидуального подхода к учащимся при изучении фонетики посредством упражнений на логику и крупную моторику.

Оборудование:

1. Конструктор ЛЕГО – DYPLO: (на 1 ученика) плата, 3 красных кубика, 2 кубика и 2 кирпичика синих, 2 кубика и 2 кирпичика зеленых. Карточки для обозначения ударения и точки в конце предложения.
2. Карточки “Слоговое лото”
3. Рисунки с изображением ириса, павлина, улитки.
4. Набора “Магнитный алфавит”.

ХОД УРОКА

1. Организационный момент

2. Актуализация знаний

У: Что мы знаем о речи? Что мы произносим, когда говорим? На какие две группы делятся все звуки? Как мы обозначаем звуки на письме? С какими буквами мы уже познакомились? Гласные или согласные звуки они обозначают?
– Сегодня мы продолжим изучение букв нашего алфавита. Для того, чтобы узнать, о какой букве мы сегодня поговорим нужно отгадать загадку. Эта буква стоит в начале слова-отгадки.
Всех на свете обшивает, что сошьет – не надевает. (Иглока)

3. Постановка темы урока

– Сегодня на уроке мы закрепим наши знания о букве «И» звуке [и], который она обозначает.

Звуко-буквенный анализ слова “иголка”

У: А сейчас мы с помощью деталей ЛЕГО конструктора на платах выложим схему слова “иголка”. Сколько слогов в этом слове?
– Какой первый слог? Сколько звуков в нем? Охарактеризуйте этот звук.
– Какого цвета берем деталь? Назовите второй слог. Что вы можете о нем сказать?
– Охарактеризуйте эти звуки. Назовите третий слог. Чем он является?
– Охарактеризуйте этот слог. На какой слог падает ударение?

Д: В этом слове три слога.

– В первом слоге один звук. Звук [и] гласный. Берем деталь одинарную красного цвета.
-[гол]. Состоит из 3 звуков. К слогу слиянию примыкает согласный звук. Слог слияние [го]. Согласная твердая, поэтому берем двойную синюю деталь. Прикрепляем красную одинарную деталь, которая обозначает гласный звук [о] в слиянии. Примыкает согласный звук [л]. Он твердый. Поэтому берем одинарную синюю деталь и прикрепляем рядом со слиянием.
-[ка].Слиянием. Согласный звук [к] твердый. Поэтому берем двойную синюю деталь. На нее прикрепляем красную одинарную деталь обозначая слияние. На второй слог.

4. Физкультминутка

Иголка, иголка
Лежала на полке.
Встала, потянулась,
Всем улыбнулась.

Иголка, иголка,
Зашей мне футболку.
Раз стежок, два стежок,
Получается стишок!

5. Продолжение работы по теме

Работа со слоговым лото

На доске карточки со слогами.

У: Нужно из представленных слогов сложить слова. Давайте посмотрим, какие слова мы сможем сложить из этих карточек. Используя эти слова, составьте предложение.

Работа над схемой предложения

У: А теперь, выложим схему на платах используя детали ЛЕГО.
– Какую деталь мы с вами возьмем для обозначения первого слова в предложении.
“Ира” имя собственное или нарицательное? С какой буквы мы пишем имя собственное?
– А начало предложения мы пишем с большой буквы? Как мы покажем начало предложения на схеме? Как мы выложим на схеме второе слово? Какие детали будем использовать? Какой знак препинания мы поставим в конце предложения?

6. Зарядка для глаз

У: Мы сегодня с вами много работали и нашим глазкам пора немного отдохнуть. Выполним зарядку для глаз: посмотрите направо, налево, вверх, вниз; вытяните правую руку перед собой, следя за указательным пальчиком медленно дотрагиваемся до кончика носа: закройте глазки (считаем до 5), открываем глазки.

7. Закрепление (работа со схемами слов)

У: Посмотрите на доску. На фотографиях изображены различные предметы. Назовите их. (Ирис, павлин, улитка)
– Под каждой фотографией выложены схемы. Давайте с ними поработаем. Рассмотрим первую схему к слову “ирис”. Сколько слогов в этом слове?
– Почему? Какой слог пропущен? Дайте характеристику этому слогу.
– Поставьте на плату ту деталь, которую мы бы использовали для этого слога и покажите.
– Молодцы. Давайте теперь проверим, правильно ли составлена схема дальше.
– На какой слог падает ударение?
– Давайте сейчас произнесем слово “ирис” так, чтобы ударение падало на второй слог. Что у нас получается?
– Важно помнить, что ударение играет в слове важную роль. И если мы, произнеся слово, не правильно поставим ударение, то нас могут неправильно понять.

Аналогичная работа ведется со словами «павлин» и «улитка».

– Давайте составим схему с помощью деталей ЛЕГО. Один из вас выйдет к доске и попробует выложить схему на большой плате. Остальные работают со своими платами. Потом проверим, как вы справились.
– Давайте сравним три слова, которые мы с вами разобрали. Что вы можете сказать о них?

Д: Во всех слова есть «И». Смягчение согласного после [и].

8. Физкультминутка

Руки вверх, руки вниз.
На носочках подтянись.
Руки ставим на бочок, на носочках скок по скок.
А теперь мы приседаем.
Никогда не замерзаем.

9. Работа с учебником (“Русская Азбука”, стр. 35)

У: Сейчас мы поработаем в учебнике на странице 35 и составим рассказ по картинкам.
– Кто главные герой сказки? Кто попробует рассказать сказку, опираясь на иллюстрации?
Почему лиса и журавль перестали ходить друг к другу в гости? Как им нужно было поступить, чтобы остаться друзьями? Если хочешь кому-то сделать приятное, нужно выбирать не то, что ты сам любишь, а то, что любит этот человек. Особенно если вы его пригласили в гости.

10. Итоги урока

– О какой букве шла речь на уроке?
– Как звучат согласные звуки, если после них стоит гласный звук [и]?
– Что вам больше всего понравилось на уроке?

Приложение

Четыре API для базы данных / Хабр

Одновременный сеанс в IRIS: SQL, объекты, REST, GraphQL

Казимир Малевич, Спортсмены (1932)

«И вполне естественно ваше непонимание. Разве может понять человек, который ездит всегда в таратайке, переживания и впечатления едущего экспрессом или летящего в воздухе»

Казимир Малевич (1916)

Как то мы уже обращались к теме превосходства объектного/типизированного представления в реализации моделей предметной области в сравнении с SQL. И верность тех доводов и фактов ни на йоту не уменьшилась. Казалось бы, зачем отступать и обсуждать технологии, которые глобально низвергают абстракции обратно в дообъектную и дотипизированную эпоху? Зачем провоцировать рост спагетти-кода, непроверяемых ошибок и упование на виртуозное мастерство разработчика?

Есть несколько соображений о том, почему стоит поговорить про обмен данными через API на основе SQL/REST/GraphQL, в противовес представлению их в виде типов/объектов:

  • это массово изучаемые и достаточно легко используемые технологии;

  • их широкая популярность в доступных и открытых программных продуктах просто невероятна;

  • часто, особенно в вебе и в базах данных, у вас просто нет выбора;

  • или наоборот, когда у вас всё ж таки есть выбор – его надо сделать осознанно:

  • и главное, внутри в границах этих API остаются объекты, как наиболее адекватный способ их реализации в коде.

Перед тем, как обозреть реализации API, взглянем для начала на уровни абстракции ниже. Взглянем на схему путешествия данных между местами их постоянного хранения, а также местами обработки и представления пользователю наших приложений.

Сегодня, данные хранятся, как давно повелось, на жёстких дисках в HDD или, уже по современному, в микросхемах флеш-памяти в SSD. Данные пишутся и читаются потоком, состоящем из отдельных блоков хранения на HDD/SSD.

Деление на блоки не случайное, а задаваемое физикой/механикой/электроникой накопителя данных. В HDD — это дорожки/сектора на вращающемся магнитном диске. В SSD — это сегменты памяти в перезаписываемом кремниевом чипе. Суть одна — это блоки информации, из частей которых необходимо найти и собрать воедино нужные нам кусочки данных. Собрать в структуры, которые соответствуют нашей модели/типу данных со значением необходимым на момент запроса. За этот процесс как раз отвечает связка из СУБД и файловой подсистемы в операционной системе.

По правде говоря, можно обращаться и минуя СУБД — напрямую к файловой системе или даже напрямую к HDD/SSD. Но тогда мы теряем два супер важных мостика к данным – первый, между блоками хранения и файловыми потоками, и, второй, между файлами и упорядоченной структурой в модели базы данных. Или, говоря другими словами, мы берём на себя ответственность по разработке всего этого объёма кода для обработки блоков/файлов/моделей со всеми оптимизациями, тщательной отладкой и долговременными испытаниями на надёжность.

Так вот, СУБД дают нам прекрасную возможность обращаться с данными на языке высокого уровня сразу оперируя понятными моделями и представлениями. Хвала им за это. А хорошие СУБД и платформы данных, такие как InterSystems IRIS, предоставляют больше — доступ к упорядоченным данным сразу множеством способов одновременно. И выбор уже за программистом, какой из них выбрать для своего проекта.

Так воспользуемся же множественными привилегиями, которые даёт нам IRIS. Сделаем код красивее и полезнее — сразу будем применять объектно-ориентированные язык ObjectScript для использования и разработки API. То есть, например, SQL код будем вызывать прямо изнутри программы на ObjectScript. А для других API воспользуемся готовыми библиотеками и встроенными средствами ObjectScript.

Для примеров будем использовать данные из замечательного интернет-проекта “SQL Zoo”, в котором обучают языку запросов SQL. Эти же данные будем использовать в других примерах API.

Если хочется сразу посмотреть на многообразие подходов к проектированию API и воспользоваться готовыми решениями, то вот интересная и полезная коллекция публичных API, которая коллективно собирается в проекте на гитхабе https://github.com/public-apis/public-apis

SQL

Начинаем вполне естественно с SQL. Кто ж его не знает?

Для изучения SQL есть гигантское количество учебных курсов и книг. Мы будем опираться на https://sqlzoo.net. Это хороший начальный онлайн курс по SQL с примерами, прохождением заданий и справочником языка.

Будем переносить задачки из SQLZoo на платформу IRIS и получать аналогичные решения разными способами.

Как быстро получить доступ к InterSystems IRIS на своём компьютере? Один из самых быстрых вариантов — развернуть контейнер в докере из готового образа InterSystems IRIS Community Edition — бесплатная версия InterSystems IRIS Data Platform

Другие способы получить доступ к InterSystems IRIS Community Edition на портале обучения.

Перенесём данные с SQLZoo в хранилище нашего собственного экземпляра IRIS. Для этого:

  1. Открываем портал управления (у меня, например, по ссылке http://localhost:52773/csp/sys/UtilHome.csp),

  2. Переключаемся на область USER – в Namespace %SYS нажимаем ссылку Switch и выбираем USER

  3. Переходим в меню Система > SQL – открываем Обозреватель системы, затем SQL и жмём кнопку Запустить.

  4. Справа на будет открыта закладка “Исполнить запрос” с кнопкой “Исполнить” – она то нам и нужна.

Более подробно о работе с SQL через портал управления можно посмотреть в документации.

Кстати, другим, удобным вам, способом попробовать SQL доступ к базе данных в IRIS, может оказаться популярный у разработчиков редактор Visual Studio Code с плагином SQLTools и драйвером “SQLTools Driver for InterSystems IRIS”. Попробуйте этот вариант.

Инструкция – как настроить доступ к IRIS и разработке на ObjectScript в VSCode.

Готовые скрипты для развёртывания базы данных и набора тестовых данных SQLZoo есть в описании на сайте в разделе Данные.

Пара прямых ссылок для таблицы World:

Скрипт для создания базы данных можно выполнить тут же на портале управления IRIS в форме “Исполнитель запросов”.

CREATE TABLE world(

   name VARCHAR(50) NOT NULL

   ,continent VARCHAR(60)

   ,area DECIMAL(10)

   ,population DECIMAL(11)

   ,gdp DECIMAL(14)

   ,capital VARCHAR(60)

   ,tld VARCHAR(5)

   ,flag VARCHAR(255)

   ,PRIMARY KEY (name)

)

Для загрузки набора тестовых над формой “Исполнитель запросов” есть меню Мастера > Импорт данных. Для этого каталог с файлом тестовых данных необходимо добавить заранее, при создании вашего контейнера, или загрузить с вашего компьютера через браузер — такая опция есть тут же в мастере импорта данных панели управления.

Проверяем наличие таблицы с данными запуском простейшего скрипта в форме “Исполнитель запросов”:

SELECT * FROM world

Теперь нам доступны примеры и задания с сайта “SQL Zoo”. Все примеры ниже реализуют SQL запрос из первого задания:

SELECT population 

  FROM world 

 WHERE name = 'France'

Так что можете смело продолжать начатое нами исследование API перенося задания из SQLZoo на платформу IRIS.

Внимание! Как я обнаружил, данные в интерфейсе сайта SQLZoo и данные его экспорта отличаются. Как минимум в первом примере расходятся значения по населению Франции и Германии. Не переживайте. Вот данные Евростата для ориентировки.

Что бы плавно перейти к следующему шагу — объектный доступ к нашей базе данных, сделаем небольшой промежуточный шаг от “чистых” SQL запросов к SQL запросам встроенные в код приложения на ObjectScript — объектно-ориентированном языке, встроенном в IRIS.

Class User.worldquery

{

ClassMethod WhereName(name As %String)

{

    &sql(

        SELECT population INTO :population

        FROM world 

        WHERE name = :name

    )

    

    IF SQLCODE<0 {WRITE "SQLCODE error ",SQLCODE," ",%msg  QUIT}

    ELSEIF SQLCODE=100 {WRITE "Query returns no results"  QUIT}

    WRITE name, " ", population

}

}

Проверяем результат в терминале:

do ##class(User.worldquery).WhereName("France")

В ответ должны вернуться название страны и число жителей.

Объекты/типы

Это общая преамбула к истории про REST/GraphQL. Мы реализуем API в сторону веб протоколов. Чаще всего у нас под капотом на серверной стороне будет исходный код на каком-то из языков, хорошо поддерживающих типизацию или даже целиком объектно-ориентированную парадигму. Вот те самые: Spring на Java/Kotlin, Django на Python, Rails на Ruby, ASP.NET на C# или даже Angular на TypeScript. И безусловно объекты в ObjectScript, родном для платформы IRIS.

Почему это важно? Типы и объекты в вашем коде, при отправке вовне, будут упрощены до структур данных. Необходимо учитывать упрощение моделей в программе, что аналогично учёту потерь в реляционных моделях. И заботиться о том, что на другой стороне API, модели будут адекватно восстановлены и использованы вами или другими разработчиками без искажений. Это дополнительная нагрузка и увеличение ответственности программиста. Вне кода, вне помощи трансляторов/компиляторов и других автоматических инструментов при создании программ, необходимо вновь и вновь заботиться о корректной передаче моделей.

Если посмотреть на вопрос с другой стороны, то пока не видно на горизонте технологий и инструментов легко передающих типы/объекты из программы на одном языке в программу на другом. Что остаётся? Вот эти упрощения SQL/REST/GraphQL и разливанное море документации с описанием API на человечески понятном языке. Неформальная, с компьютерной точки зрения, документация для разработчиков – это как раз то, что следует всячески переводить в формальный код, который компьютер обрабатывать умеет.

Подходы к решению этих проблем предпринимаются регулярно. Одно из успешных – это кросс языковая парадигма в объектной СУБД платформы IRIS.

Что бы чётко понимать как соотносятся модели ОПП и SQL в IRIS, предлагаю посмотреть на таблицу:

Объектно-ориентированное программирование (ООП)

Структурированный язык запросов (SQL)

Пакет

Схема

Класс

Таблица

Свойство

Столбец

Метод

Хранимая процедура

Отношение между двумя классами

Ограничение внешнего ключа, встроенный join

Объект (в памяти или на диске)

Строка (на диске)

Более подробно про отображение объектной и реляционной модели можно посмотреть в документации IRIS.

При выполнении нашего SQL запроса на создание таблицы world из примера выше, IRIS автоматически генерирует у себя описания соответствующего объекта — класс с именем User.world.

Class User.world Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = world ]

{

Property name As %Library.String(MAXLEN = 50) [ Required, SqlColumnNumber = 2 ];

Property continent As %Library.String(MAXLEN = 60) [ SqlColumnNumber = 3 ];

Property area As %Library.Numeric(MAXVAL = 9999999999, MINVAL = -9999999999, SCALE = 0) [ SqlColumnNumber = 4 ];

Property population As %Library.Numeric(MAXVAL = 99999999999, MINVAL = -99999999999, SCALE = 0) [ SqlColumnNumber = 5 ];

Property gdp As %Library.Numeric(MAXVAL = 99999999999999, MINVAL = -99999999999999, SCALE = 0) [ SqlColumnNumber = 6 ];

Property capital As %Library.String(MAXLEN = 60) [ SqlColumnNumber = 7 ];

Property tld As %Library.String(MAXLEN = 5) [ SqlColumnNumber = 8 ];

Property flag As %Library.String(MAXLEN = 255) [ SqlColumnNumber = 9 ];

Parameter USEEXTENTSET = 1;

/// Bitmap Extent Index auto-generated by DDL CREATE TABLE statement.  Do not edit the SqlName of this index.

Index DDLBEIndex [ Extent, SqlName = "%%DDLBEIndex", Type = bitmap ];

/// DDL Primary Key Specification

Index WORLDPKey2 On name [ PrimaryKey, Type = index, Unique ];

}

Это отличная заготовка для разработки своего приложения в объектно-ориентированном стиле. Достаточно добавить методы в класс на ObjectScript, имеющий готовые привязки к базе данных. Фактически, методы этого класса являются хранимыми процедурами, если использовать терминологию SQL-подхода.

Пробуем реализовать тот же пример, что выше делали на SQL, Добавляем в класс User.world метод WhereName, который играет роль конструктора объекта “информация о стране”по заданному названию страны:

ClassMethod WhereName(name As %String) As User.world

{

    Set id = 1

    While ( ..%ExistsId(id) ) {

        Set countryInfo = ..%OpenId(id)

        if ( countryInfo.name = name ) { Return countryInfo }

        Set id = id + 1

    }

    Return countryInfo = ""

}

Проверяем в терминале:

set countryInfo = ##class(User.world).WhereName("France")

write countryInfo.name

write countryInfo.population

Из этого примерна видно, что для поиска нужного объекта по названию страны, в отличие от SQL запроса, нам необходимо самостоятельно перебирать поочередно записи в базе данных. В худшем случае, если наш объект в конце списка или его вообще нет, перебирать придётся все записи. Про ускорение поиска через индексированные поля объекта и автогенерацию методов класса в IRIS разговор особый — поищите сами в документации и в публикациях на портале сообщества разработчиков.

Например, для нашего класса, зная сгенерированное IRIS имя индекса по названию страны WORLDPKey2 можно инициализировать/конструировать объект из базы данных одним скоростным запросом:

set countryInfo = ##class(User.world).WORLDPKey2Open("France")

Проверяем так же:

write countryInfo.name

write countryInfo.population

Хорошие рекомендации по выбору между объектным и SQL доступом к хранимым объектам есть в документации. Хотя, в любом случае, вы вольны для своих задач использовать только один из них на 100%.

Плюс ещё и том, что благодаря наличию в IRIS готовых бинарных связок с распространёнными ООП языками, какими как Java, Python, С, C# (.Net), JavaScript и, даже быстро набирающему популярность, Julia [1][2]. Всегда есть возможность выбора удобных вам языковых средств разработки.

Теперь приступим непосредственно к разговору о данных в веб-API.

REST он же RESTful веб-API

Вырываемся за границы сервера и уютного терминала. Пробираемся поближе к массовым интерфейсам — браузерам и им подобным приложениям. Туда, где в основе взаимодействия систем используются гипертекстовые протоколы семейства http. В IRIS “из коробки” для этого работает связка из собственно сервера баз данных и http-сервера Apache.

Representational state transfer (REST) — архитектурный стиль проектирования распределённых приложений и, в частности, веб-приложений. Ему, между прочим, пошел уже третий десяток лет. REST применяется повсеместно не имея какой-либо стандартизации, кроме как опоры на протоколы http/https. Совсем не то, что его коллеги/конкуренты в веб-службах на базе стандартов для протоколов SOAP и XML-RPC.

Глобальным ID в REST является URL и он определяет каждую очередную информационную единицу при обмене с базой данных или с бекэнд приложением.

Документация по разработке REST-сервисов в IRIS.

В нашем примере основой идентификатором будет что-то вроде основы из адреса сервера IRIS http://localhost:52773 и приставленного к нему пути до наших данных /world/ или более конкретно по стране /world/France.

Примерно так в докер-контейнере:

http://localhost:52773/world/France

При разработке полноценного приложения в документации IRIS рекомендуется воспользоваться одним из трёх генераторов кода. Например, один из них основан на описании REST API по спецификации OpenAPI 2.0.

Мы пойдём простым путём — реализуем API вручную. В нашем примере сделаем простейшее REST-решение, которое требует всего два шага в IRIS:

  1. Создать класс-диспетчер путей в URL, который будет унаследован от системного класса %CSP.REST

  2. Добавить обращение к нашему классу-диспетчеру при настройке веб-приложения IRIS

Шаг 1 Класс-диспетчер

Реализация класса должна быть достаточно понятна. Делаем по инструкции в документации для “ручного” REST: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GREST_csprest#GREST_csprest_urlmap

/// Description
Class User.worldrest Extends %CSP.REST
{
Parameter UseSession As Integer = 1;
Parameter CHARSET = "utf-8";
XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/:name" Method="GET" Call="countryInfo" />
</Routes>
}
}

И внутри добавляем метод-обработчик ровно так же, как были устроены вызовы в терминале из предыдущего примера:

ClassMethod countryInfo(name As %String) As %Status
{
    set countryInfo = ##class(User.world).WhereName(name)
    write "Country: ", countryInfo.name
    write "<br>"
    write "Population: ", countryInfo.population
    return $$$OK
}

Как можете видеть, для передачи из входящего REST-запроса в параметра name вызываемого метода-обработчика в диспетчере указывается параметр с двоеточием в начале “:name”.

Шаг 2 Настройка веб-приложения IRIS

В меню System Administration > Security > Applications > Web Applications

добавляем новое веб-приложение с указанием точки входа по URL на /world и обработчик — наш класс-диспетчер worldrest.

Лайфхаки

Веб-приложение после настройки должно сразу отзываться по ссылке http://localhost:52773/world/France (регистр букв для передачи данных запроса в параметр метода важен, должно быть как в базе данных).

При необходимости используйте инструменты отладки — хорошее описание есть в этой статье из двух частей (в комментариях загляните тоже). https://community.intersystems.com/post/debugging-web

Если появляется ошибка “401 Unauthorized”, а вы уверены, что класс-диспетчер есть на сервере и ссылка правильная, то попробуйте добавить в настройках веб-приложения роль %All во вкладке “Application Roles”. Это не совсем безопасно и надо понимать что вы разрешаете, но для локальной работы допустимо.

GraphQL

Эта территория новая, в том смысле, что в документации IRIS об API с использованием GraphQL вы ничего не найдёте сегодня. Но это не помешает нам воспользоваться таким замечательным инструментом.

Всего пять лет как GraphQL появился на публике.

Это язык запросов для API. И, наверное, это лучшая технология, которая возникла при совершенствовании REST-архитектуры и различных веб-API. Развитием GraphQL занимается Linux фонд. Небольшая вводная статья для начинающих.

А благодаря стараниям энтузиастов и инженеров InterSystems воспользоваться возможностями GraphQL в IRIS можно с 2018 года.

Статья на Хабре: Как я реализовал GraphQL для платформ компании InterSystems

En: GraphQL понимаем, объясняем, внедряем

Приложение для GraphQL состоит из двух модулей — бекенд приложения на стороне IRIS и фронтэнд части, работающей в браузере. То есть, необходимо настроить по инструкции для веб-приложения GraphQL и GraphiQL.

Для примера, как это выглядит у меня на IRIS в докер-контейнере. Настройки веб-приложения GraphQL выполняющее функции REST-диспетчера и обработчика схемы базы данных:

И второе приложение GraphiQL — пользовательских интерфейс для браузера, написан на HTML и JavaScript:

Запускает по адресу http://localhost:52773/graphiql/index.html

Без дополнительных ограничительных настроек, приложение сразу подхватывает все схемы баз данных, доступных в области установки. Это значит, что наши примеры работать начинают сразу. Плюс во фронтэнде есть замечательная организация подсказок из доступных объектов.

Пример GraphQL запроса к нашей базе данных:

{
  User_world ( name: France ) {
    name
    population
  }
} 

И соотвествующий ему ответ:

{
  "data": {
    "User_world": [
      {
        "name": "France",
        "population": 65906000
      }
    ]
  }
}

Так это выглядит в браузере:

Итоги

Возраст технологии

Пример запроса

SQL

50 лет

Кодд

SELECT population
FROM world
WHERE name = 'France'

ООП

40 лет

Кэй, Ингаллс

set countryInfo = ##class(User.world).WhereName("France")

REST

20 лет

Филдинг

http://localhost:52773/world/France

GraphQL

5 лет

Байрон

{ User_world ( name: France ) {
name
population
}
}

  1. Жизненной силы и энергии у технологий SQL, REST и, теперь наверное, GraphQL много и это надолго. Они все прекрасно уживаются внутри платформы IRIS и, при должном внимании разработчика, дарят радость в создании программ работы с данными.

  2. Хоть это не упомянуто в статье, другие великолепные API на основе XML (SOAP) и JSON в IRIS также реализованы на должном уровне. Пользуйтесь на здоровье.

  3. Помните, что любой обмен данными через API — это всё же неполноценная, а урезанная версия передачи объектов. И задача корректной передачи информации о типа данных в объекте, потерянной в API остаётся, на разработчике, а не в коде.

Вопрос к вам, дорогие читатели

Эта статья готовилась не только для сравнения современных API и, даже, не столько для обзора базовых возможностей IRIS. Больше пользы от примеров выше смогут получить начинающие программисты: увидеть легкость в переключении между API при доступе к базе данных, сделать первые шаги в IRIS, получить быстрый результат для своей задачи.

И поэтому, очень интересно ваше мнение, помогает ли такой подход для “легкого старта”, какие шаги процесса доставляют сложность для начинающих осваивать инструменты работы с API в IRIS? Что показалось “неочевидным препятствием”? Поспрашивайте у осваивающих IRIS и напишите мне в комментариях. Думаю, это всем будет полезно обсудить.

Тема урока: Гласные звуки и буквы. | Поурочные планы Родное слово 1 класс (Алматыкитап)

Тема урока: Гласные звуки и буквы.