Объекты и множества — что это? свойства и совокупность
Объекты и множества — что это? свойства и совокупность
Мир, который нас окружает, — это мир предметов, явлений и процессов. С самого рождения человек познаёт окружающий его мир. Растения и животные, горы и реки, материки и страны, планеты и звёзды, полёт птицы или строительство дома – всё это становится для нас объектами познания.
Объект – это любая часть окружающей действительности, которую человек воспринимает как единое целое. Другими словами, объект – это то, на что обращено наше внимание: предметы, процессы и явления
Например, компьютерный стол, учебник, окно, попугай – это объекты-предметы; гроза, дождь, град, лунное затмение – объекты-явления; отпуск, прослушивание музыкальной композиции, высаживание рассады – это объекты-процессы.
Задание. Назовите предметы, явления и процессы, с которыми имеет дело человек, когда:
- пишет и отправляет письмо;
- сдаёт ЕГЭ;
- загорает на пляже;
- разводит костёр;
- наблюдает за звёздами в телескоп.
Совокупность объектов, объединённых каким-либо общим признаком, называется множеством, а каждый из этих объектов – элементом множества.
Так, грибы – это множество объектов, а подберёзовик – это один из элементов этого множества. У множества месяцев его элементами являются январь, февраль, март, апрель и т. д.
Вопрос. Если врач – это множество, то каковы элементы этого множества?
Множество может быть конечным и бесконечным (множество страниц книги и множество действительных чисел), упорядоченным и неупорядоченным (то есть элементы которого выстроены по какому-либо порядку или выстроены беспорядочно), пустым и непустым.
Пустое множество – множество, не содержащее ни одного элемента: например, множество сиамских кошек, множество решений уравнения x2 – 5x + 6 = 0. Говорят, что пустое множество является своим подмножеством, но не является своим элементом.
Задание.Распределите данные примеры множеств таким образом, чтобы в каждой группе множеств находилось по два примера.
Конечное множество | Бесконечное множество | Непустое множество | Пустое множество |
Множество звёзд во Вселенной; множество двоечников в классе; множество букв английского алфавита; фруктовых деревьев; множество чисел, которые делятся на нуль; множество съедобных грибов; множество натуральных чисел; множество домашних животных.
Имена объектов
Человек может сообщить самые разнообразные сведения о том или ином объекте. Но чтобы сделать это, нужно сначала как-то обозначить, выделить объект из ряда других объектов – дать ему имя.
Имя объекта люди называют, отвечая на вопрос что это такое? или кто это такой? Например, так: это – град, это – тетрадь, это – труд и т. д. Но в разных ситуациях один и тот же объект мы обозначаем разными именами. Например, собаку можно назвать Тузиком, пёсиком, щенком, другом человека или просто животным. Чем отличаются эти имена и от чего зависит выбор имени объекта в каждом случае?
Прежде всего, существуют имена общие и единичные. Общее имя обозначает множество объектов (страна, прозвище, планета), а единичное имя обозначает один конкретный объект в некотором множестве объектов (столица России, Александр Сергеевич Пушкин).
Имена также могут быть собственными и нарицательными. Собственные имена даются объектам только некоторых видов, например, людям (Александр Сергеевич Пушкин), домашним животным (Пушок), географическим объектам (Москва), планетам (Юпитер) и т. д. Нарицательные имена используются для называния целой группы объектов, например, человек, книга, лицо, буква. Вспомните, что в соответствии с правилами русского языка собственные имена вы пишете с прописной (заглавной) буквы, а нарицательные – со строчной.
Задания
1. Какие из нижеперечисленных имён объектов относятся к собственным именам, какие – к нарицательным?
Дуб, Византия, Урал, река, колодец, улица Почтовая, мультфильм «В стране невыученных уроков», Мухтар, облако, информатика.
2. Выделите на помещённом ниже рисунке два множества объектов. Дайте общее имя каждому множеству и единичное имя каждому объекту. Какие из выбранных вами имён будут являться собственными?
Признаки объектов
Признаком любого объекта может быть его свойство, действие, поведение или состояние.
Свойства объекта помогают описать его характеристики и возможности, то есть назвать отличительные признаки этого объекта. Например, в сообщении о черёмухе, взятом из ботанической энциклопедии, сказано: «Черёмуха обыкновенная – дерево или крупный кустарник высотой 0,6-10 м; крона удлинённая, густая, кора матовая, чёрно-серая, с беловатыми чечевичками; молодые ветви оливковые или вишнёво-красные; листья простые, очерёдные, яйцевидно-ланцетные или продолговато-эллиптические, длиной 3-15 см, тонкие, на коротких черешках, заострённые; цветки белые (реже розоватые), собраны в длинные густые поникающие кисти длиной 8-12 см, с сильным запахом, на цветоножках». Такое подробное описание свойств объекта помогает отличить объект «черёмуха» от других деревьев и кустарников.
Каждое свойство определяется некоторой величиной и её значением. Например, в описании черёмухи обыкновенной присутствуют такие величины, как высота, длина, цвет и форма. Значениями данных величин будут являться: 0,6-10 м, чёрно-серая, розоватые, матовая, удлинённая, продолговато-эллиптические и др.
Признаки (свойства) могут быть существенными – необходимыми, крайне важными для выделения данного объекта из множества других, похожих на него. Так, существенными признаки, которые помогают отличить карликовую берёзу от других видов берёз, являются малая высота (до 1,2 м), маленький размер листьев (от 5 мм до 1,5 см), кустарниковая форма, стелящиеся по земле побеги.
В таблице приведены характеристики объектов и величины, которыми эти свойства могут быть обозначены:
Объект | Характеристика | Величина | Значение величины |
Стол | Деревянный | Материал | Дерево |
Стол | С тремя выдвижными ящиками | Количество выдвижных ящиков | 3 |
Человек | Темноволосый | Цвет волос | Тёмный (чёрный) |
Кошка | Породистая | Порода | Сиамская, египетская и т. д. |
Монитор | Широкоформатный, с диагональю 23″ | Диагональ экрана монитора (дюймов) | 23 дюйма |
Имена действий обозначают процессы, которые могут происходить с объектом: «самолёт летает», «мяч отскакивает», «в записной книжке можно хранить номера телефонов». Имена действий также помогают подробно описать какой-либо объект.
Задание
Попробуйте обозначить характеристики приведённых ниже объектов, воспользовавшись школьными учебниками:
- стебель растения;
- цветок растения;
- растение семейства розоцветных;
- имя существительное;
- глагол;
- прямоугольник;
- десятичная дробь;
- физическое тело;
- молекула.
Пожалуйста, оцените материал
ОБЪЕКТ — Новая философская энциклопедия
ОБЪЕКТ (позднелат. Objectum – предмет, от лат. objicio – бросаю вперед, противопоставляю) – то, на что направлена активность (реальная и познавательная) субъекта [СУБЪЕКТ]. Объект не тождествен объективной реальности: во-первых, та часть последней, которая не вступила в отношение к субъекту, не является объектом; во-вторых, объектами могут быть и состояния сознания. Существуют разные типы объектов и соответственно разные типы субъектно-объектных отношений. Объектом может быть физическая вещь, существующая в пространстве и времени, объективно-реальная ситуация. Это может быть собственное тело субъекта. Объектами могут быть состояния сознания субъекта и даже его Я в целом. В этом качестве могут выступать другие люди, их сознание, а также предметы культуры (включая тексты) и присущие им смыслы.
Активность субъекта необходимо предполагает внеположный ей объект. В противном случае она невозможна, как невозможным становится и сам субъект. Поэтому нередко встречающееся в отечественной философской литературе противопоставление двух типов отношений – субъектно-объектных и субъектно-субъектных – в действительности лишено оснований. Оно основано на неправомерном отождествлении объекта с физической вещью. В действительности объектом может стать все, что существует. Вместе с тем для понимания основных характеристик сознания, познания и деятельности важно иметь в виду тот принципиальный факт, что объект внеположен всегда субъекту, не сливается с ним. Эта внеположность имеет место и тогда, когда субъект имеет дело с состояниями собственного сознания, своим
Нередко термин «объект» используется в философии вне контекста его отношения к субъекту, а просто в смысле предмета. Так, в философии науки выделяют наряду с эмпирическими объектами также и объекты теоретические. Последние получают различную интерпретацию. С точки зрения инструментализма это лишь условно принятые способы рассуждения об эмпирических объектах. С точки зрения реализма некоторые теоретические объекты, которым приписываются свойства пространственной и временно́й локализации (такие, напр., как атомы, электроны, кварки и т.д.), существуют реально. Общепризнано, что такие теоретические объекты, которые называются идеальными (материальная точка, идеально твердое тело и т.д.), реально не существуют, а вводятся в состав теории как способы изучения некоторых явлений в чистом виде. Особое положение занимают т.н. абстрактные объекты, рассматриваемые в современной логике, в частности в теории типов.
В.А.Лекторский
Источник: Новая философская энциклопедия на Gufo.me
13.Понятие и значение объекта преступления. Виды объектов преступления. Предмет преступления. Потерп
13. Понятие и значение объекта преступления. Виды объектов преступления. Предмет преступления. Потерпевший от преступления.
Объект – это охраняемые УЗ общественные отношения, на которые посягает преступление.
Значение:
ü объект является одним из элементов состава преступления;
ü в зависимости от объекта преступления определяется степень общественной опасности деяния;
ü определение объекта преступления необходимо для правильной квалификации общественно опасного деяния;
ü с помощью объекта преступления проводится отграничение преступлений от других правонарушений.
По «вертикали» объекты принято делить на общий, родовой, видовой и непосредственный.
Родовой объект – совокупность однородных общественных отношений, охраняемых комплексом уголовно-правовых норм. (разделы УК)
Видовой объект — часть родового объекта, объединяющая еще более узкие группы общественных отношений, взятых под охрану УЗ. Непосредственный объект представляет собой конкретное общественное отношение, на кот направлено преступное посягательство и которому преступлением причиняется вред либо создается угроза его причинения. (главы УК)
Классификация по «горизонтали» проводится на уровне непосредственного объекта. Здесь обычно выделяют три его вида: основной, дополнительный и факультативный непосредственный объект.
Непосредственный объект рассматривается как часть общего, родового и видового объектов.
Основной непосредственный объект представляет собой то общественное отношение, на которое и направлена уголовно-правовая защита.
Дополнительный непосредственный объект – общественное отношение, которому наряду с основным объектом причиняется вред либо создается угроза его причинения.
Под факультативным непосредственным объектом понимается охраняемое УП общественное отношение, которому причиняется вред совершением конкретного преступления. (Например, незаконное освобождение от уголовной ответственности всегда причиняет вред нормальной деятельности органов дознания, следствия и прокуратуры. Вместе с тем данное преступление, нарушая принцип неотвратимости ответственности, может затронуть и интересы потерпевшего. Таким образом, интересы потерпевшего например, невозможность возмещения ущерба будут выступать факультативным объектом.)
Предмет преступления – предмет материального мира, на который непосредственно воздействует преступник. Предмет преступления относится к факультативным признакам. Необходимо различать предмет и объект. Объект посягательства – общественное отношение, предмет же – материальная вещь. При этом объекту преступления всегда наносится ущерб, предмету – только в случаях его уничтожения или повреждения.
Предмет преступления имеет следующее значение: нередко предмет преступления вводится в число обязательных признаков и, следовательно, существенно возрастает его роль при квалификации преступления; факультативный признак может приобретать значение квалифицирующего. Предмет преступления имеет значение для правильной квалификации совершенного деяния, а так же «для разграничения сходных между собой составов преступления.
Потерпевший в уголовном праве – это лицо, которое подвергается преступному воздействию для нанесения вреда объекту посягательства.
Уголовно-правовое понятие потерпевшего не следует смешивать с процессуальным – потерпевший как фигура в уголовном процессе, участник уголовного судопроизводства, поскольку есть множество преступлений, в которых имеется потерпевший, но предметом преступления является нечто другое.
Понятие «потерпевший» в уголовном праве не следует смешивать и с виктимологическим понятием. Виктимология изучает свойства и поведение человека в плане потенциальной или реальной возможности стать потерпевшим от преступления.
Уголовно-правовое значение личности и поведения потерпевшего определяется влиянием этих факторов на квалификацию преступления и назначение наказания:
– в уголовном законе предусмотрены привилегированные (со смягчающими обстоятельствами) и квалифицированные (с отягчающими обстоятельствами) составы преступлений в зависимости от отдельных свойств, характеризующих личность, поведение или специфику деятельности потерпевшего;
– с какими-либо свойствами либо характером поведения потерпевшего закон связывает смягчение или усиление уголовной ответственности для лица, совершившего преступление.
Объект преступления по УК РФ как элемент состава преступления. Понятие, виды объектов
Содержание документа:
- Понятие объекта преступления
- Классификация объектов преступления по вертикали: общий, родовой, видовой и непосредственный объект преступления
- Классификация объектов преступления по горизонтали: основной, дополнительный и факультативный непосредственный объект
- Предмет преступления
Состав любого преступления состоит из четырех групп признаков, которые называются элементами состава преступления. К ним относятся:
Первые два элемента состава преступления образованы объективными признаками, характеризующими внешнюю сторону преступления. Субъективные же признаки характеризуют внутреннюю сторону преступления, т.е. его субъективную сторону и субъекта.
1. Понятие объекта преступления
Общественные отношения в целом характеризуются как отношения между людьми (участниками отношений являются и государство, и госограны, и различные организации и личности).
Объектом преступления признаются общественные отношения, охраняемые уголовным законом, которым преступлением причиняется вред либо создается реальная угроза причинения вреда.
Статья 2 УК РФ, формулируя задачи уголовного права, по существу дает перечень наиболее значимых общественных отношений, охраняемых уголовным законом от преступных посягательств (в частности, статья называет объекты: права и свободы человека и гражданина, собственность, общественный порядок и общественная безопасность, окружающая среда, конституционный строй РФ).
Для определения всего круга общественных отношений, являющихся объектом уголовно-правовой защиты, необходимо обратиться к Особенной части УК РФ, которая содержит исчерпывающий перечень видов преступлений, а следовательно, и их объектов.
Классификация объектов преступления. Виды объектов
В науке уголовного права общепринятой является классификация объектов преступлений по вертикали и по горизонтали.
2. Классификация объектов по вертикали
В рамках классификации объектов по вертикали их можно разделить на общий, родовой, видовой и непосредственный объекты преступления.
Общий объект преступления — вся совокупность общественных отношений, взятых под охрану уголовным правом. Общий объект един для всех преступлений; любое общественно опасное деяние, причиняя вред той или иной группе общественных отношений, входящих в указанную совокупность, тем самым наносит ущерб и всей системе общественных отношений, охраняемых уголовным законом. Наиболее важные общественные отношения, защищаемые уголовным правом, названы в статье 2 УК РФ. Исчерпывающий их перечень можно установить на основе анализа Особенной части УК РФ.
Родовой объект есть часть общего объекта. Он представляет собой группу однородных социально значимых ценностей, интересов и благ, на которые посягает однородная группа преступлений. Именно родовой объект положен в основу деления Особенной части УК РФ на разделы.
Например, родовым объектом преступлений, объединенных в разделе VII УК РФ, является личность; в разделе VIII — экономика; в разделе X — государственная власть.
Видовой объект — это часть родового объекта, т.е. объект вида (подгруппы) очень близких по характеру преступлений. Видовой объект положен в основу деления разделов Особенной части УК РФ на главы.
Например, если родовым объектом преступлений, объединенных в разделе VII УК РФ, является личность, то видовыми объектами выступают жизнь и здоровье (глава 16), свобода, честь и достоинство (глава 17), половая неприкосновенность и половая свобода личности (глава 18), конституционные права и свободы человека и гражданина (глава 19), семья и несовершеннолетние (глава 20).
В тех случаях, когда раздел Особенной части УК РФ состоит из одной главы (например, раздел XI и глава 33 «Преступления против военной службы»), родовой объект совпадает с видовым.
Непосредственный объект — конкретное общественное отношение, против которого направлено преступное посягательство. Непосредственный объект составляет часть общего, родового и видового объектов. При этом все указанные объекты находятся в одной плоскости общественных отношений: непосредственный объект должен обладать теми же свойствами, что видовой и родовой.
Установление непосредственного объекта преступления имеет важное значение: во-первых, позволяет выяснить характер и степень общественной опасности посягательства; во-вторых, является необходимой предпосылкой правильной квалификации содеянного; в-третьих, способствует отграничению совершенного преступления от смежных деяний. Наконец, по непосредственному объекту систематизированы нормы в пределах глав Особенной части УК РФ.
Однако возможность разграничить преступления по непосредственному объекту существует не всегда. Некоторые преступления не имеют никаких различий между собой по объекту посягательства.
Например, нет никакой разницы между объектом кражи (ст. 158 УК РФ) и объектом грабежа без насилия (ч. 1 ст. 161 УК РФ) или между объектами причинения тяжкого (ч. 1 ст. 111 УК РФ) и легкого вреда здоровью (ст. 115 УК РФ) и т.п. В данных случаях разграничение деяний возможно осуществить лишь с помощью других признаков состава преступления.
3. Классификация объектов по горизонтали
В рамках классификации объектов по горизонтали их можно разделить на основной, дополнительный и факультативный непосредственный объект. Данная классификация производится на уровне непосредственного объекта.
В УК РФ существуют преступления, посягающие одновременно на два или более непосредственных объекта (так называемые двухобъектные или многообъектные преступления). В этих случаях один из объектов является основным, а другой (другие) дополнительным. Они выделяются в зависимости от принадлежности каждого из них к видовому объекту, а не от важности охраняемой социальной ценности, интереса или блага.
Выделение основного, дополнительного и факультативного объектов обусловлено тем, что одно и то же преступление одновременно нарушает несколько общественных отношений. Например:
- при разбое ущерб причиняется как собственности, так и здоровью;
- при посягательстве на жизнь судьи, присяжного заседателя и т.д. — нормальной деятельности суда и жизни лиц, участвующих в отправлении правосудия;
- при применении насилия в отношении представителя власти — нормальной деятельности органов власти, а также здоровью и телесной неприкосновенности представителей власти и их родственников.
Таким образом, указанные преступления имеют несколько непосредственных объектов. Один из них является основным.
Основной объект входит в состав видового объекта, в большей степени определяет социальную направленность данного преступления, структуру соответствующего состава и его место в системе Особенной части УК. По признакам основного непосредственного объекта нормы включаются в ту или иную главу УК. В связи с этим, например, разбой отнесен к преступлениям против собственности, а не против жизни и здоровья.
Дополнительным объектом выступает общественное отношение, которому наряду с основным объектом причиняется или создается угроза причинения вреда. Он всегда указывается в конкретной уголовно-правовой норме, предусматривающей ответственность за так называемые двухобъектные (многообъектные) преступления, либо используется для конструирования квалифицированных составов преступлений. Например: превышение должностных полномочий с применением насилия или с угрозой его применения одновременно посягает на нормальную деятельность органов государственной власти, государственной службы или органов местного самоуправления и здоровье человека.
Дополнительный объект в таких составах преступления является обязательным, его наличие в значительной степени усиливает характер и степень общественной опасности посягательства. Однако надо иметь в виду, что он не находится в одной плоскости с родовым объектом. Таким образом, основной и дополнительный объекты выделяются не по важности защищаемых отношений, а в зависимости от его принадлежности к родовому объекту.
Факультативный объект. Иногда объект преступления указывается в диспозиции статьи Особенной части УК РФ в альтернативной форме. В науке уголовного права такие объекты называются факультативными непосредственными. Вред данным объектам деянием может и не причиняться либо может отсутствовать угроза причинения вреда.
Факультативный объект — общественное отношение, которое, находясь под уголовно-правовой защитой, терпит урон не во всех случаях совершения преступления данного вида.
Например, незаконное освобождение от уголовной ответственности всегда причиняет вред нормальной деятельности органов дознания, следствия и прокуратуры. Вместе с тем данное преступление, нарушая принцип неотвратимости ответственности, может затронуть и интересы потерпевшего. Таким образом, общественные отношения, характеризующие интересы потерпевшего (например, невозможность возмещения ущерба), будут выступать факультативным объектом.
Другой пример: при загрязнении вод (ст. 250 УК РФ) ущерб может быть нанесен помимо поверхностных или подземных вод и источников питьевого водоснабжения также животному или растительному миру, рыбным запасам, лесному или сельскому хозяйству. Каждый из этих дополнительных объектов преступления, имея самостоятельную правовую защиту, рассматривается в такой ситуации как факультативный, так как в конкретном случае совершения данного преступления ущерб может быть нанесен только какому-либо одному из перечисленных объектов или не причинен им вообще.
Факультативный объект не входит в конструкцию состава преступления. Однако это не означает, что он вообще не имеет никакого уголовно-правового значения. Причинение вреда факультативному объекту свидетельствует о более высокой общественной опасности совершенного деяния и должно учитываться при определении вида и размера наказания.
4. Предмет преступления
От объекта посягательства необходимо отличать предмет преступления.
Предмет преступления — вещи материального мира или интеллектуальные ценности, воздействуя на которые, преступник нарушает общественные отношения, охраняемые уголовным законом.
Наряду с вещами к предмету преступления также следует относить и информацию (сведения (сообщения, данные) о лицах, предметах, фактах, событиях независимо от формы их представления).
Предмет преступления — факультативный признак. Он обязателен не во всех составах преступлений, а лишь в тех, в которые включен в соответствии с диспозицией статьи Особенной части УК РФ. В этом случае предмет преступления входит в основание уголовной ответственности и его отсутствие исключает наличие всех признаков состава преступления в совершенном деянии.
Так, при всех формах хищения изымается чужое имущество, при незаконной рубке происходит спиливание леса, повреждение деревьев, кустарников и лиан, при приведении в негодность транспортных средств или путей сообщения разрушаются или повреждаются транспортные средства, пути сообщения, средства сигнализации или связи, другое транспортное оборудование и т. д.
Предмет преступления следует отличать от орудий и средств совершения преступления, т.е. тоже предметов, которые непосредственно используются для совершения деяния. При этом один и тот же предмет может выступать и в том, и в другом качестве, иметь разное смысловое и уголовно-правовое значение.
Некоторые преступления не связаны с физическим воздействием на предметы материального мира. К их числу, например, можно отнести нарушение равноправия граждан, воспрепятствование осуществлению права на свободу совести и вероисповедания, насильственный захват власти или насильственное удержание власти, злоупотребление должностными полномочиями и т.д. В составы этих посягательств предмет преступления не входит. Таким образом, предмет преступления является факультативным признаком, характеризующим объект посягательства.
Информационные объекты или причина одного заблуждения / Хабр
Введение
В прошлой статье мы рассмотрели понятие функциональный объект и посмотрели, как моделируются его части. Сегодня я хочу рассказать про то, как в логической парадигме трактуется информационный объект, и что из этого следует. Помимо этого, мы увидим, как родилось одно занятное заблуждение: идея о том, что термины объект и экземпляр объекта якобы указывают на разные объекты предметной области. И поймем причины этого заблуждения.
Термины
Сразу замечу, что я не претендую на их правильность. Беда в том, что мне не удалось найти согласованных определений модели и информации ни в одном из словарей. Поскольку область психических функций человека — не моя стихия, то я, скорее всего, не знаю точных определений этих терминов. Однако мне важно было подчеркнуть ту мысль, что информация и модель – это то, что существует в воображении у субъекта, а в объектной реальности – только их представления. Поэтому я ввожу рабочие определения, не претендуя на их точность.
- Модель – это то, что каким-то образом отвечает на вопросы об интересующем нас объекте и иметь разную степень детализации. Даже название будет нами считаться моделью, потому что оно несет важную информацию об объекте. Оно говорит о том, что объект существует.
- Информация – это модель какой-то части реальности, существующая в сознании людей (человека).
- Информационный объект – это представление модели в материальном виде, необходимом для хранения информации и передачи ее другим людям.
Примеры информационных объектов
Модели существуют только в сознании людей, но обмен моделями происходит, как правило, при помощи физических объектов, исполняющих роль информационных (мы рассматриваем общепринятые европейские способы передачи информации, и не рассматриваем мистические). Эти физические объекты называются представлениями информации, или представлениями модели.
Напомню, что мы работаем в 4-Д пространстве, где объекты существуют во времени, а время не существует без объектов. Примером информационных объектов могут быть Договор, Билет, Рекламный щит, Купюра, Книга, Электрические напряжения на выводе контактной группы, Произнесенная речь, Фильм. Например, речь – это звуковые колебания, поэтому тоже является физическим 4-Д объектом. С каждым годом количество физических объектов, которые были созданы с единственной целью — нести информацию, становится все больше и больше. В первобытном обществе количество информации, передаваемой от субъекта к субъекту, было небольшим. Сейчас это огромный поток. Однако даже сейчас природа информационных объектов для многих остается тайной. Я предлагаю попробовать разобраться с этим вопросом.
В мире мы работаем исключительно с информационными объектами, которые есть лишь представления моделей, но не сами модели. Это отличие ввел в употребление стандарт ИСО 15926, чтобы различить модель в головах от ее представления в виде материального носителя. Хотя очень часто модель в головах и информационный объект мы не различаем и называем одним именем – модель.
Например, купюра – есть информационный объект, который призван хранить информацию о том, что может себе позволить сделать владелец этой купюры. И это не обязательно возможность совершать покупку товара в магазине. Это также может быть возможность совершать какие-то другие действия. Информация о том, что может позволить себе владелец существует у нас в головах, сама купюра – лишь представляет эту информацию в виде материального объекта. Сама бумажка в отрыве от социального соглашения по ее поводу не имеет никакой ценности. Для того чтобы купюра имела ценность, должна существовать некая общепризнанная модель в головах людей, составляющих некую социальную группу. В этом проявляется ее информационная природа. С другой стороны, сама бумажка – есть физический объект. Эта бумажка вполне может стать причиной гибели мухи, если воспользоваться купюрой как мухобойкой. Кстати, тогда бумажка исполнит роль функционального объекта мухобойка. Это будет означать, что одни и те же атомы бумаги в одно и то же время исполняли роль и информационного объекта и функционального. Но это еще не все. Пусть у вас есть купюра и пусть эта купюра порвалась. Вы идете в банк, и вам дают взамен утратившей свой внешний вид купюры новую купюру. Информация о том, что позволительно Вам, не изменилась. Носитель же этой информации изменился. Следовательно, много информационных объектов могут представлять одну модель.
Со всем этим пересечением объектов должна была справиться логическая парадигма, которая пришла на смену Аристотелевской логике.
Другой пример. Пусть есть договоренность между двумя юридическими лицами. Моделью этой договоренности является модель в головах у тех, кто участвовал в достижении этой договоренности. Представлением этой модели является бумажный документ, на котором стоят подписи должностных лиц. Таких бумажных документов может быть множество: как минимум два — по одному на каждую сторону. Вопрос: эти два бумажных документа есть один объект, или два? Вопрос, кажущийся простым, оказывается очень сложным для современных аналитиков. Мы вернемся к нему чуть позже.
Что хранится в базе данных?
Информационный объект – это объект, который хранит информацию об объектах (в том числе об информационных объектах). В базе данных хранятся только информационные объекты. Эти объекты являются объектами в виде намагниченных доменов, например. Они призваны хранить информацию о других объектах. О чем хранят информацию те объекты, которые в базах данных называются договор и накладная? О договорах и о накладных? Тогда это будет значить, что в системе хранятся информационные объекты, которые хранят информацию о других информационных объектах – договорах и накладных. Или о реальных договоренностях и о реальных поставках? Тогда это будет значить, что в системе хранятся информационные объекты, которые хранят информацию о реальных объектах: договорах и поставках. О чем они на самом деле хранят информацию? Разобраться в этих вопросах очень непросто. Возможно, в одной из статей я расскажу про то, как информация о разных частях предметной области, перемешиваясь с информацией о других ее частях и информацией об информационных объектах, «размазывается» по структуре данных. И о причинах, по которым это происходит.
4 модели для создания информационного объекта
Давайте посмотрим, какие модели нам нужны для создания модели договоренности (у себя в голове).
- Модель договоренности опирается на отраслевые нормы и правила. В этих правилах зафиксированы те термины, которые необходимо использовать при создании модели договоренности, те события, которые необходимо оговорить сторонам (поставку деталей), и те события, которые наступят независимо от того, будут они прописаны в договоре или нет (подписание накладных, например). Эти нормы – модель 1 (ее еще можно назвать контекстом). Этими моделями владеют юристы и бухгалтера. Представлены они в законодательных актах.
- На основе модели 1 мы создаем модель 2 — модель самой договоренности.
- Теперь необходимо модель договоренности зафиксировать в виде представления, то есть, на материальном носителе. Какие модели необходимо знать, чтобы сделать это? Для этого нам понадобится иметь модель, которая описывает, как модель договоренности должна быть представлена. Эту информацию можно найти в специальной нормативной документации. Это – модель 3.
- И четвертое – надо знать, как мы будем различать договора, которые моделируют одну договоренность (Различные экземпляры договора) – модель 4.
Имея эти четыре модели, мы можем создать конкретное представление модели 2 конкретной договоренности (экземпляр договора). Используемые термины, связи между ними, события по умолчанию будут взяты из модели 1, юридические реквизиты и прочие данные – из модели 2, структура текста и его оформление – из модели 3, учет подписанных экземпляров – из модели 4. Итого 4 модели необходимы, чтобы создать один экземпляр договора. Две из них относятся к модели предметной области. А две – к представлению модели. Такое деление на модели является универсальным для представления любого информационного объекта. Если у вас есть информационный объект, ищите 4 модели, которые лежат всегда где-то рядом.
Разница между терминами объект и экземпляр объекта
Так, все-таки, разные бумажки с печатями – это разные объекты или одинаковые? Последнее время я слышу такой ответ: это один объект, но экземпляры этого объекта – разные! Причину, по которой произошла деформация, приведшая к такого рода ответу, нам следует выяснить.
История:Сидит напротив меня бизнес-аналитик и просто человек с улицы. Я показываю аналитику операцию: подношу ко рту чашку чая и делаю глоток. Спрашиваю аналитика: «Можно ли назвать это операцией?» — Да, конечно. Тогда я повторяю те же действия и спрашиваю аналитика: Можно ли назвать и это действие операцией? Ответ утвердительный. Я спрашиваю: а это разные операции, или одна? Аналитик бодро отвечает: одна, конечно! Операция одна, а экземпляров ее много. Человек с улицы немного двинул бровь. Тогда я спрашиваю далее: Перед нами 100 спортсменов все как один в одних трусах и майках. Это один спортсмен, или много спортсменов? Ответ: много спортсменов? А что у них общего спрашиваю я. Внешний вид у них — общий, был ответ. Хорошо, а почему тогда операция-то одна? Аналитик задумался. Я поясняю: операций много, но внешний вид у них одинаковый! Правильно? Сомнения… Тогда я продолжаю: у них общее описание, а операции разные. Ну конечно! Описание операции — одно, а операций, удовлетворяющих этому описанию — много.
Если задуматься, то ответ аналитика кажется стороннему наблюдателю нелепым. Проверено! Однако к этой трактовке часто прибегают современные аналитики, и это стало похоже на заблуждение, принявшее массовый характер. Я все чаще слышу тезис о том, что надо различать термины договор и экземпляр договора, например. При этом авторы этих тезисов так и не смогли мне объяснить, чем эти термины отличаются. Они намекали, что два термина указывают на совершенно разные объекты, но в какой парадигме термины экземпляр договора и договор указывают на разные объекты, мне так и не сказали. Я считаю это очень серьезным заблуждением и попытаюсь объяснить причины его возникновения.
В логике Аристотеля, у которого мы позаимствовали слово экземпляр, термины рыба и экземпляр рыбы – это обозначения одного и того же объекта. При этом я сознательно не говорю, что экземпляр – это термин. Слово экземпляр в логике Аристотеля неотделимо от второго слова, образую вместе с ним неделимый термин. Однако, за пределами логики Аристотеля термины рыба и экземпляр рыбы, указывая нам на один и тот же объект (рыбу), тем не менее, отличаются друг от друга. Вопрос чем?
Мы должны выяснить, чем они отличаются, и откуда в головах появилась мысль о том, что эти термины отличаются чем-то иным. Разобраться в этом меня подвигла задача описания имитационного моделирования бизнес-систем. О том, с какими терминологическими трудностями я столкнулся, и как пришлось их преодолевать – рассказать можно лишь в отдельной книге. Сейчас же я сконцентрируюсь только на одном вопросе: что такое объект и что такое экземпляр объекта?
Пусть есть высказывание: «я держу экземпляр книги «Три мушкетера». Оно интерпретируется следующим образом:
- Есть тип книг «Три мушкетера», и есть конкретный экземпляр этого типа объектов – конкретная книга. Слово экземпляр дает нам строгое указание на используемый нами контекст. Контекстом будет логика Аристотеля, или филологи используют термин интенсиональный контекст.
Однако данное высказывание может быть сокращено до следующего: «Я держу книгу «Три мушкетера». Это высказывание может интерпретироваться уже двумя способами:
- Можно сказать, что объект, который я держу в руках, имеет свойство. Это свойство объекта — быть книгой под названием «Три мушкетера (логика Аристотеля, или интенсиональный контекст). Данная трактовка совпадает с той трактовкой, которую порождает термин экземпляр книги.
- А можно сказать, что перед нами объект (элемент) класса книг «Три мушкетера». Такое высказывание говорит о том, что мы находимся в рамках логической парадигмы или, как говорят филологи, в экстенсиональном контексте.
Вывод: Термин ЭКЗЕМПЛЯР ОБЪЕКТА указывает нам на интенсиональный контекст явно, а термин ОБЪЕКТ предполагает, что контекст мы вольны выбрать сами (интенсиональный, или экстенсиональный).
Один объект, или много?
Вернемся к вопросу о том, что есть разные бумажки с надписью договор? Ответы, как мы видели, могут быть такими:
- это два разных договора,
- это один договор, но экземпляры его разные.
Если аналитик настаивает на второй интерпретации, я задаю вопрос: где, в какой парадигме существуют объекты и их экземпляры? Ответить на этот вопрос аналитик не может, поскольку такой парадигмы не существует. Однако в некоторых книгах существует путаница в терминах, благодаря которой такое выражение появилось на свет и активно распространилось.
Мне приходится проводить экскурс в историю и объяснять аналитику, что термин экземпляр связан с термином тип. И что термин экземпляр книги имеет такую трактовку: существует тип книг, и есть конкретный экземпляр этого типа книг, — конкретная книга. И нет такой трактовки: есть объект книга, и есть ее экземпляр.
Напомню: мы помним, что тип у Аристотеля – это набор параметров. Экземпляр – это значения этих параметров.
После того, как аналитик решает продолжить исследование, мы продолжаем двигаться с ним, полагаясь теперь только на логику.
Мы можем также считать, что существуют одновременно два термина: экземпляр договора купли-продажи и экземпляр договора купли-продажи от 30-го июня. Понятно, что одна и та же бумажка может быть экземпляром договора купли-продажи и экземпляром договора от 30-го июня. Это значит, что мы допустили существование двух типов, к которым может относиться один объект реального мира! Но этот парадокс был одним из тех, который в итоге привел к появлению теории множеств. Аристотелевская модель не смогла дать ответ на множественность типов.
Еще один пример рассужденийМожно переформулировать вопрос и так: какими параметрами обладает тот тип договоров, на который ссылается аналитик, употребляя термин экземпляр договора? Тогда я использую следующий сценарий опроса:Далее я задаю второй вопрос: какими параметрами обладает тот тип договоров, о котором упомянул аналитик, предлагая на выбор:
- Первый тип относится только к тем объектам, которые зафиксировали информацию о конкретной договоренности. Он содержит параметр «Чей экземпляр?» (подрядчика, заказчика). Пример использования данного типа: экземпляр договора от 30-го апреля.
- Второй содержит параметры: дата подписания, предмет соглашения, юридические лица, и так далее. Пример использования данного типа: экземпляр договора купли-продажи.
Если аналитик дает первый ответ, то я задаю вопрос: допускает ли он существование такого типа договоров, который включает в себя все экземпляры всех договоров купли-продажи? Если да, то, как мы отличаем в разговоре, о каком типе идет речь? И получается, что один и тот же экземпляр может относиться к двум разным типам договоров? Но это модернизация Аристотелевской логики, про которую мы ничего не знаем. Получается, что объект может быть одновременно и машиной и кораблем. На это логика Аристотеля не смогла дать ответ, и потому нам пришлось изобретать теорию множеств.
Если аналитик отвечает вторым образом, я задаю второй вопрос: Содержит ли упомянутый тип параметр «Чей экземпляр?» Ответов может быть два:
- Да, содержит
- Нет, не содержит. Это самый распространенный ответ, поскольку во всех системах документооборота и учета именно этот тип активно поддерживается.
Если я получаю первый ответ, то я задаю вопрос: а что есть тот тип, экземпляром которого является экземпляр договора от 30-го июня?
Если я получаю второй ответ, то я уточняю, а что есть объекты, которые содержат этот параметр? Ответ вы слышали: объект один, а экземпляров его много, что возвращает нас к вопросу о логичности и корректности такого тезиса.
Пример представления модели предметной области
Давайте посмотрим, как обычно аналитики моделируют стандартные предметные области. Например, такую:
Мы видим, что все множество вооружений делится на классы. Каждый класс вооружений, в свою очередь, делится на подклассы. Мы видим, что класс подлодок – есть подмножество класса вооружений, а класс Акула – есть подмножество класса подлодок.
Часто встречающаяся реализация этой модели в виде таблиц такая:
Таблица 1 моделирует подклассы класса оружие. Таблица 2 – подклассы класса подводных лодок. Связь между таблицей 1 и таблицей 2 моделирует специализацию вооружений. Таблица 1 моделирует подводные лодки, а связь между таблицей 2 и таблицей 1 моделирует классификацию подводных лодок. (Термины специализация и классификация взяты из логической парадигмы и не случайны). Понятно, что одному подклассу вооружений «подводная лодка» соответствует много подклассов класса подводных лодок и понятно, что одному подклассу подводных лодок может принадлежать много подводных лодок, что обозначено «Вороньей лапкой» на конце связи между таблицами. Принято считать, что структура таблиц и есть модель предметной области, но, как вы видите, информации в структуре таблиц намного меньше, чем в модели предметной области.
Эта модель очень похожа на другие, подобные ей:
Модель предметной области в парадигме Аристотеля
Вспоминая то, о чем я говорил в статье о том, что в Аристотелевской логике таблица – есть описание типа объектов, а запись в таблице – это описание объекта, нарисуем модель предметной области в парадигме типов и экземпляров. (В этой парадигме чаще всего происходит обсуждение предметной области и именование таблиц). Для этого применим формальный подход, который я озвучил в статье. То есть таблица – обозначает тип объектов, а записи в ней – экземпляры.
Полученная модель выглядит так:
Таблица 3 моделирует тип подводных лодок. Запись в таблице моделирует экземпляр подводной лодки. Связь с записью в таблице 2 моделирует тот факт, что подводная лодка принадлежит определенному классу подводных лодок. Но с таблицей 2 мы не можем определиться. Что за тип объектов моделирует эта таблица? Экземпляр чего есть запись в этой таблице? Терминов в Аристотелевской логике для этих сущностей не предусмотрено. Мы можем попытаться придумать сами название тому типу объектов, которые хранятся в таблице 2, например: тип классов. Тогда Класс Акула будет экземпляром класса. (Замечу, что экземпляр класса указывает на класс, а не на объект класса, как некоторые могли бы подумать. На объект класса указывает ЭЛЕМЕНТ КЛАССА, а не ЭКЗЕМПЛЯР КЛАССА!). Полученная модель выглядит теперь так:
Проблема в том, что одновременно в одной модели мы видим и типы объектов и классы. (Я иногда встречал таблицы, озаглавленные: типы классов, виды типов, виды классов и так далее…) Надо понимать, что типы существуют только в Аристотелевской логике, а классы – только в логической. И они не смешиваются. Поэтому класс Акула нам следует переименовать в тип подводных лодок Акула. Риторика была бы такая: наряду с экземпляром подводной лодки у нас появляется экземпляр Акулы, где под Акулой понимается тип подводных лодок. Однако в данной статье я предлагаю остановиться и посмотреть, что будет с другими моделями – собак и сварных швов.
Ограничения парадигмы Аристотеля
В случае с собаками таблица 2 – есть описание типа пород. И в случае со швами – типа типов. И вот тут засада возникла. Представляете: на совещании аналитиков мы обсуждаем структуру таблиц и у нас возникают термины: тип типов. Это мало кто поймет. Это слишком сложно для обыденной речи и обыденного понимания. Лично я, если встречал такой термин, то крайне редко. Проблема в том, что Аристотель не проработал терминологию для описания структур сложнее классов, например, класса классов. Это сделала теория множеств много позже. Но наши аналитики пока не знают о существовании теории множеств и пытаются выкрутиться в рамках Аристотелевской логики. Для этого они меняют риторику. Новая риторика была заимствована из описания информационных объектов. В описании информационных объектов задолго до возникновения проблемы с типами типов, было найдено «решение». «Решение» возникло само собой, поскольку никто не задумывался над этим.
Постановка задачи
Давайте посмотрим, как выглядит оно в применении к сварным швам. Сначала была такая структура таблиц, описывающая такую модель предметной области:
В такой модели шов №234 можно назвать двумя способами: экземпляр сварного шва и экземпляр стыкового шва. Оба эти термина являются корректными терминами, и объяснить их удобно в рамках теории множеств. Понятно, что шов №234 принадлежит классу сварных швов. Понятно, что шов №234 принадлежит также классу стыковых швов, являющимся подклассом сварных швов:
В структуре данных это отражено так: запись в таблице «сварные швы» говорит нам о первой классификации объекта, а связь с записью в таблице «типы сварных швов» говорит нам о второй классификации.
Замечу, что две разные формы моделирования одной и той же связи «классификация», которая есть между швом и классом сварных швов и между швом и классов стыковочных швов, говорит нам о том, что моделирование при помощи таблиц не создано для корректного моделирования предметной области.
Но вот объяснить, что тип стыковых швов есть экземпляр типов сварных швов, становится уже неловко.
«Решение»
Чтобы избавиться от столь замысловатых терминов, иногда рисуют вот такую структуру:
Теперь у нас в разговорной речи все нормально. Можете проверить.
Конструкция на первый взгляд кажется разумной, но ровно до тех пор, пока не нарисуем модель терминов:
Теперь у нас появилось несколько сюрпризов:
- Запись «Стыковой шов» моделирует (сюрприз!) нет, не шов! Он моделирует целый класс швов!
- Таблица СВАРНЫЕ ШВЫ содержит (сюрприз!) не информацию о сварных швах, нет! Она содержит информацию о классе сварных швов!
- ТИП сварных швов не имеет никакого отношения к типу сварных швов.
- ЭКЗЕМПЛЯР сварного шва — не есть экземпляр сварного шва.
- ЭКЗЕМПЛЯР стыкового шва — не есть экземпляр стыкового шва.
- Два термина «Экземпляр сварного шва» и «сварной шов» до этого момента указывали на один объект – сварной шов. Однако теперь я иногда слышу от некоторых аналитиков, что надо различать сварной шов и экземпляр сварного шва, как будто это разные вещи!
Такая конструкция является самопальной и ошибочной. Причина в том, что она не опирается ни на одну из онтологий и являет из себя подмену понятий. Как я уже говорил, в парадигме Аристотеля термины экземпляр стыкового шва и стыковой шов указывают на один и тот же объект реального мира – на конкретный стыковой шов. В нарисованной структуре объект справочника Стыковой шов указывает не на объект, а на класс объектов!
В результате некоторое количество аналитиков начинают мыслить искаженным способом: они перестают различать различные объекты, называя их одним термином: Стыковой шов. Риторика их следующая: есть один объект «Стыковой шов» и есть различные его ЭКЗЕМПЛЯРЫ. У них в сознании есть один спортсмен и множество его ЭКЗЕМПЛЯРОВ! Надо понимать, что под термином ЭКЗЕМПЛЯР эти аналитики понимают нечто такое, что не было ведомо ни Аристотелю, ни кому бы то ни было еще. Это самопальный термин, который выглядит ужасно с любых точек зрения: с логической и лингвистической точек зрения. То есть, ЭКЗЕМПЛЯР стыкового шва для них обозначает: есть объект СТЫКОВОЙ ШОВ и есть его ЭКЗЕМПЛЯРЫ. Хорошо, что Аристотель этого не слышит!
Другой пример подобного «Решения»
Теперь приведем пример подобного рода моделирования, которое мы встречаем повсюду. Возьмем наши любимые договора. В любой системе мы найдем такой справочник:
Каждая запись в этом справочнике моделирует… А что она моделирует? Название предполагает, что запись в этом справочнике либо является договором, либо моделирует договора. Запись в базе не содержащая подписи сторон, не может быть договором. Поэтому здесь хранится информация о договорах, то есть, информация о других информационных объектах. Мы знаем, что одна запись в базе данных соответствует множеству экземпляров договора от 30-го июня, отличающихся тем, кому они принадлежат: Заказчику или Подрядчику. Давайте попробуем нарисовать модель терминов:
Мы видим ту самую картину, которую анализировали ранее. Вот откуда пришли к нам понятия объект и его экземпляр! Из некорректного моделирования информационных объектов! Мы видим в этой модели разные экземпляры одного договора. Что и требовалось показать. Только в некорректной модели могут родиться некорректные термины: объект и его экземпляр.
Причина такого рода заблуждений кроется в незнании логики и в неправильном понимании сути информационных объектов.
Правильное решение
Давайте применим правильный подход к моделированию договоров и посмотрим, как должна выглядеть структура данных непротиворечивым образом с точки зрения Аристотелевской логики (не считая типов типов и наличие множественности типов).
Итак, в базе данных в таблице Договора, оказывается, хранилась информация о типе договоров, а не о договоре! Заметьте, существует устойчивое мнение, что мы храним информацию об информационном объекте, а не о множестве информационных объектов! Справочники, с которыми мы работаем каждый день, так и называются: Договора, Накладные, Счета-фактуры, и так далее. А не типы договоров, типы накладных и типы счетов-фактур. Это привело к массовому заблуждению, которое проявилось сейчас в убежденности многих аналитиков, что существует объект и есть его экземпляр. Вспомните, стандарты моделирования бизнес-процессов! Это заблуждение проникло и в стандарты!
А как же тогда называют справочник, в котором хранится информация о договорах (в Таблице 3, если придерживаться в нашей практике обозначений)? Я видел много названий, среди которых: Подписанные договора (как будто есть не подписанные), Экземпляры договоров (как будто есть объект и его экземпляры), Разосланные договора, Сформированные договора, Выполненные договора, Распечатанные договора. Каждый, кто сталкивался с необходимостью учета реальных информационных объектов, придумывает свои названия.
Наконец, мы пришли к ответу на вопрос, заданному ранее: разные бумажки с печатями и подписями — это разные объекты, или это разные экземпляры? Ответ очевиден — это разные объекты! Мы видим, что существующая практика именования таблиц не выдерживает никакой критики. Теперь, когда мы выяснили, что у нас каждый документ – это отдельный документ, нам предстоит построить корректную модель этих объектов. Чтобы понять, как это сделать, не исковеркав язык (порождая виды, типы, классы, рода и прочее), нам придется обратиться к теории множеств.
Решение в логической парадигме
В теории множеств есть три класса объектов: объекты, классы и классы классов, а также классы отношений между объектами и классами. Всех возможных конструкций я перечислять не буду, но по мере необходимости буду давать пояснения.
Пусть у нас есть множество всех договоров (в смысле каждая бумажка – отдельный договор). Каждый договор принадлежит классу договоров.
Тогда говорят, что договор связан с классом договоров связью классификация.
Класс договоров купли-продажи есть подмножество всех договоров.
Связь между классом всех договоров и классом договоров купли-продажи – называется специализация.
Класс договоров купли-продажи, класс договором аренды и проч. – есть объекты множества, которое есть множество всех подмножеств класса договоров.
Множество всех подмножеств класса договоров – есть класс классов, и связывает его с классом всех договоров, классом договоров купли продажи связь классификация.
Среди всех подмножеств множества договоров можно выделить те подмножества, которые относятся к одной сделке. Объединив эти подмножества в один класс, назовем его подклассы класса договоров. То есть, договора одного класса представляют модель одного объекта – одной сделки.
Теперь мы готовы нарисовать структуру таблиц и дать им имена.
Модель предметной области в логической парадигме выглядит так:
А структура таблиц, реализующая эту модель, такая:
Как это будет звучать на практике?
- Таблица 3 моделирует класс договоров и содержит модели договоров.
- Таблица 2 моделирует класс классов договоров, относящихся к одной сделке, и содержит модели классов договоров, относящихся к одной сделке.
- Связь между записями таблиц моделирует связь классификация между классами договоров, относящихся к одной сделке, и договорами.
Замечу, что диаграммы отношений между сущностями предметной области в логической парадигме рисуются просто, однозначно и демонстрируют полноту. Смысл их легко читается, если помнить и знать смысл названий и обозначений. Данные модели демонстрируют полноту в отличие от моделей предметной области, сделанных в виде ER–моделей. Для моделирования одной и той же информации можно построить разные ER-модели. Это хорошо видно, когда есть модель предметной области в логической парадигме. Становится очевидным произвольность выбора таблиц для хранения информации о предметной области.
Чтобы завершить разговор об информационных объектах и о их моделировании, я предлагаю обратить внимание на «размазанность» информации об объекте предметной области по структуре данных. Это дает нам основания говорить, что нет однозначного соответствия между объектами предметной области и объектами в системе. Более того, часто одна запись в таблице хранит одновременно данные об объекте и о классе объектов! Всего этого лишена логическая модель данных. Поэтому она иногда называется моделью данных в последней нормальной форме.
Еще одна пострадавшая предметная область
В последнее время я все чаще слышу тезис о том, что надо различать процесс и экземпляр процесса. После того, как вы прочитали пост, у вас должно закрасться сомнение в истинности этого утверждения. Возможно, я когда-нибудь напишу причины этого заблуждения. Причины эти не связаны с неправильным пониманием того, что такое информационный объект. Причина в неправильном понимании того, что такое процесс. Но это совсем другая история…
Работа с объектами — JavaScript
JavaScript спроектирован на основе простой парадигмы. В основе концепции лежат простые объекты. Объект — это набор свойств, и каждое свойство состоит из имени и значения, ассоциированного с этим именем. Значением свойства может быть функция, которую можно назвать методом объекта. В дополнение к встроенным в браузер объектам, вы можете определить свои собственные объекты. Эта глава описывает как пользоваться объектами, свойствами, функциями и методами, а также как создавать свои собственные объекты.
Объекты в JavaScript, как и во многих других языках программирования, похожи на объекты реальной жизни. Концепцию объектов JavaScript легче понять, проводя паралелли с реально существующими в жизни объектами.
В JavaScript объект — это самостоятельная единица, имеющая свойства и определенный тип. Сравним, например, с чашкой. У чашки есть цвет, форма, вес, материал, из которого она сделана, и т.д. Точно так же, объекты JavaScript имеют свойства, которые определяют их характеристики.
В JavaScript объект имеет свойства, ассоциированные с ним. Свойство объекта можно понимать как переменную, закрепленную за объектом. Свойства объекта в сущности являются теми же самыми переменными JavaScript, за тем исключением, что они закреплены за объектом. Свойства объекта определяют его характеристики. Получить доступ к свойству объекта можно с помощью точечной записи:
Как и все переменные JavaScript, имя объекта (которое тоже может быть переменной) и имя свойства являются чуствительными к регистру. Вы можете определить свойство указав его значение. Например, давайте создадим объект myCar
и определим его свойства make
, model
, и year
следующим образом:
var myCar = new Object();
myCar.make = "Ford";
myCar.model = "Mustang";
myCar.year = 1969;
Неопределенные свойства объекта являются undefined
(а не null
).
myCar.color;
Свойства объектов JavaScript также могут быть доступны или заданы с использованием скобочной записи (более подробно см. property accessors). Объекты иногда называются ассоциативными массивами, поскольку каждое свойство связано со строковым значением, которое можно использовать для доступа к нему. Так, например, вы можете получить доступ к свойствам объекта myCar
следующим образом:
myCar["make"] = "Ford";
myCar["model"] = "Mustang";
myCar["year"] = 1969;
Имена свойств объекта могут быть строками JavaScript, или тем, что может быть сконвертировано в строку, включая пустую строку. Как бы то ни было, доступ к любому имени свойства, которое содержит невалидный JavaScript идентификатор (например, имя свойства содержит в себе пробел и тире или начинается с цифры), может быть получен с использованием квадратных скобок. Этот способ записи также полезен, когда имена свойств должны быть динамически определены (когда имя свойства не определено до момента исполнения). Примеры далее:
var myObj = new Object(),
str = "myString",
rand = Math.random(),
obj = new Object();
myObj.type = "Dot syntax";
myObj["date created"] = "String with space";
myObj[str] = "String value";
myObj[rand] = "Random Number";
myObj[obj] = "Object";
myObj[""] = "Even an empty string";
console.log(myObj);
Обратите внимание, что все ключи с квадратными скобками преобразуются в тип String, поскольку объекты в JavaScript могут иметь в качестве ключа только тип String. Например, в приведенном выше коде, когда ключ obj
добавляется в myObj
, JavaScript вызывает метод obj.toString ()
и использует эту результирующую строку в качестве нового ключа.
Вы также можете получить доступ к свойствам, используя значение строки, которое хранится в переменной:
var propertyName = "make";
myCar[propertyName] = "Ford";
propertyName = "model";
myCar[propertyName] = "Mustang";
Вы можете пользоваться квадратными скобками в конструкции for…in чтобы выполнить итерацию всех свойств объекта, для которых она разрешена. Чтобы показать как это работает, следующая функция показывает все свойства объекта, когда вы передаете в нее сам объект и его имя как аргументы функции:
function showProps(obj, objName) {
var result = "";
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
result += objName + "." + i + " = " + obj[i] + "\n";
}
}
return result;
}
Так что если вызвать эту функцию вот так showProps(myCar, "myCar"),
то получим результат:
myCar.make = Ford
myCar.model = Mustang
myCar.year = 1969
Начиная с ECMAScript 5, есть три способа перечислить все свойства объекта (получить их список):
- циклы for…in
Этот метод перебирает все перечисляемые свойства объекта и его цепочку прототипов - Object.keys(o)
Этот метод возвращает массив со всеми собственными (те, что в цепочке прототипов, не войдут в массив) именами перечисляемых свойств объектаo
. - Object.getOwnPropertyNames(o)
Этот метод возвращает массив содержащий все имена своих свойств (перечисляемых и неперечисляемых) объектаo
.
До ECMAScript 5 не было встроенного способа перечислить все свойства объекта. Однако это можно сделать с помощью следующей функции:
function listAllProperties(o){
var objectToInspect;
var result = [];
for(objectToInspect = o; objectToInspect !== null; objectToInspect = Object.getPrototypeOf(objectToInspect)){
result = result.concat(Object.getOwnPropertyNames(objectToInspect));
}
return result;
}
Это может быть полезно для обнаружения скрытых (hidden) свойств (свойства в цепочке прототипа, которые недоступны через объект, в случае, если другое свойство имеет такое же имя в предыдущем звене из цепочки прототипа). Перечислить доступные свойства можно, если удалить дубликаты из массива.
JavaScript содержит набор встроенных объектов. Также вы можете создавать свои объекты. Начиная с JavaScript 1.2, вы можете создавать объект с помощью инициализатора объекта. Другой способ — создать функцию-конструктор и сделать экземпляр объекта с помощью этой функции и оператора new
.
Использование инициализаторов объекта
Помимо создания объектов с помощью функции-конструктора вы можете создавать объекты и другим, особым способом. Фактически, вы можете записать объект синтаксически, и он будет создан интерпретатором автоматически во время выполнения. Эта синтаксическая схема приведена ниже:
var obj = { property_1: value_1,
2: value_2,
"property n": value_n };
здесь obj
— это имя нового объекта, каждое property_i
— это идентификатор (имя, число или строковый литерал), и каждый value_i
— это значения, назначенные property_i
. Имя obj
и ссылка объекта на него необязательна; если далее вам не надо будет ссылаться на данный объект, то вам не обязательно назначать объект переменной. (Обратите внимание, что вам потребуется обернуть литерал объекта в скобки, если объект находится в месте, где ожидается инструкция, чтобы интерпретатор не перепутал его с блоком.)
Если объект создан при помощи инициализатора объектов на высшем уровне скрипта, то JavaScript интерпретирует объект каждый раз, когда анализирует выражение, содержащее объект, записанный как литерал. Плюс, если пользоваться функцией инициализатором, то он будет создаваться каждый раз, когда функция вызывается.
Следующая инструкция создает объект и назначает его переменной x
, когда выражение cond
истинно.
if (cond) var x = {hi: "there"};
Следующий пример создает объект myHonda
с тремя свойствами. Заметьте, что свойство engine
— это также объект со своими собственными свойствами.
var myHonda = {
color: "red",
wheels: 4,
engine: {
cylinders: 4,
size: 2.2
}
};
Вы также можете использовать инициализатор объекта для создания массивов. Смотрите array literals.
До JavaScript 1.1 не было возможности пользоваться инициализаторами объекта. Единственный способ создавать объекты — это пользоваться функциями-конструкторами или функциями других объектов, предназначенных для этой цели. Смотрите Using a constructor function.
Использование функции конструктора
Другой способ создать объект в два шага описан ниже:
- Определите тип объекта, написав функцию-конструктор. Название такой функции, как правило, начинается с заглавной буквы.
- Создайте экземпляр объекта с помощью ключевого слова
new
.
Чтобы определить тип объекта создайте функцию, которая определяет тип объекта, его имя, свойства и методы. Например предположим, что вы хотите создать тип объекта для описания машин. Вы хотите, чтобы объект этого типа назывался car
, и вы хотите, чтобы у него были свойства make, model, и year. Чтобы сделать это, напишите следующую функцию:
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
Заметьте, что используется this
чтобы присвоить значения (переданные как аргументы функции) свойствам объекта.
Теперь вы можете создать объект, называемый mycar
, следующим образом:
var mycar = new Car("Eagle", "Talon TSi", 1993);
Эта инструкция создает объект типа Car со ссылкой mycar
и присваивает определенные значения его свойствам. Значением mycar.make
станет строка «Eagle», mycar.year
— это целое число 1993, и так далее.
Вы можете создать столько объектов car,
сколько нужно, просто вызывая new
. Например:
var kenscar = new Car("Nissan", "300ZX", 1992);
var vpgscar = new Car("Mazda", "Miata", 1990);
Объект может иметь свойство, которое будет другим объектом. Например, далее определяется объект типа Person
следующим образом:
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
и затем создать два новых экземпляра объектов Person
как показано далее:
var rand = new Person("Rand McKinnon", 33, "M");
var ken = new Person("Ken Jones", 39, "M");
Затем, вы можете переписать определение car
и включить в него свойство owner
, которому назначить объект person
следующим образом:
function Car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}
Затем, чтобы создать экземпляры новых объектов, выполните следующие инструкции:
var car1 = new Car("Eagle", "Talon TSi", 1993, rand);
var car2 = new Car("Nissan", "300ZX", 1992, ken);
Заметьте, что вместо того, чтобы передавать строку, литерал или целое число при создании новых объектов, в выражениях выше передаются объекты rand
и ken
как аргумент функции. Теперь, если вам нужно узнать имя владельца car2, это можно сделать следующим образом:
car2.owner
Заметьте, что в любое время вы можете добавить новое свойство ранее созданному объекту. Например, выражение
car1.color = "black";
добавляет свойство color
к car1, и устанавливаего его значение равным «black.» Как бы там ни было, это не влияет на любые другие объекты. Чтобы добавить новое свойство всем объектам одного типа, вы должны добавить свойство в определение типа объекта car
.
Использование метода Object.create
Объекты также можно создавать с помощью метода Object.create
. Этот метод очень удобен, так как позволяет вам указывать объект прототип для нового вашего объекта без определения функции конструктора.
var Animal = {
type: 'Invertebrates',
displayType: function() {
console.log(this.type);
}
};
var animal1 = Object.create(Animal);
animal1.displayType();
var fish = Object.create(Animal);
fish.type = 'Fishes';
fish.displayType();
Все объекты в JavaScript наследуются как минимум от другого объекта. Объект, от которого произошло наследование называется прототипом, и унаследованные свойства могут быть найдены в объекте prototype
конструктора.
В JavaScript 1.0 вы можете сослаться на свойства объекта либо по его имени, либо по его порядковому индексу. В JavaScript 1.1 и позже, если вы изначально определили свойство по имени, вы всегда должны ссылаться на него по его имени, и если вы изначально определили свойство по индексу, то должны ссылаться на него по его индексу.
Это ограничение налагается когда вы создаете объект и его свойства с помощью функции конструктора (как мы это делали ранее с типом Car ) и когда вы определяете индивидуальные св
Объектов JSON
Синтаксис объекта
Пример
{ «name»: «John», «age»: 30, «car»: null}
Объекты JSON заключены в фигурные скобки {}.
объектов JSON записываются парами ключ / значение.
Ключи должны быть строками, и значения должны быть допустимым типом данных JSON (строка, число, объект, array, boolean или null).
Ключи и значения разделяются двоеточием.
Каждая пара ключ / значение разделяется запятой.
Доступ к значениям объекта
Вы можете получить доступ к значениям объекта, используя запись с точкой (.):
Пример
myObj =
{
«name»: «John», «age»: 30, «car»: null};
x = myObj.name;
Вы также можете получить доступ к значениям объекта, используя обозначение скобок ([]):
Пример
myObj =
{
«name»: «John», «age»: 30, «car»: null};
x = myObj [«имя»];
Зацикливание объекта
Вы можете перебирать свойства объекта, используя цикл for-in:
Пример
myObj =
{
«name»: «John», «age»: 30, «car»: null};
for (x in myObj) {
документ.getElementById («демонстрация»). innerHTML
+ = х;
}
В цикле for-in используйте обозначение скобок для доступа к значениям свойства :
Пример
myObj =
{
«name»: «John», «age»: 30, «car»: null};
for (x в myObj) {
document.getElementById («demo»). innerHTML
+ = myObj [x];
}
Вложенные объекты JSON
Значения в объекте JSON могут быть другим объектом JSON.
Пример
myObj =
{
«имя»: «Джон»,
«возраст»: 30,
«cars»: {
«car1»: «Ford»,
«car2»: «BMW»,
«car3»: «Fiat»
}
}
Вы можете получить доступ к вложенным объектам JSON, используя точечную нотацию или обозначение скобок:
Изменить значения
Вы можете использовать точечную нотацию для изменения любого значения в объекте JSON:
Вы также можете использовать обозначение скобок для изменения значения в объекте JSON:
Удалить свойства объекта
Используйте ключевое слово delete
для удаления свойств из объекта JSON:
Стандартные встроенные объекты — JavaScript
В этой главе описаны все стандартные встроенные объекты JavaScript, включая их методы и свойства.
Термин «глобальные объекты» (или стандартные встроенные объекты) здесь не следует путать с глобальным объектом . Здесь «глобальные объекты» относятся к объектам в глобальной области действия .
К глобальному объекту можно получить доступ с помощью оператора this
в глобальной области. Фактически, глобальная область видимости состоит из свойств глобального объекта, включая унаследованные свойства, если таковые имеются.
Другие объекты в глобальной области либо создаются пользовательским сценарием, либо предоставляются хост-приложением.Объекты хоста, доступные в контекстах браузера, задокументированы в справочнике по API.
Для получения дополнительной информации о различиях между DOM и основным JavaScript см. Обзор технологий JavaScript.
Свойства значения
Эти глобальные свойства возвращают простое значение. У них нет свойств или методов.
Свойства функции
Эти глобальные функции — функции, которые вызываются глобально, а не для объекта — напрямую возвращают свои результаты вызывающей стороне.
Фундаментальные объекты
Это фундаментальные базовые объекты, на которых основаны все остальные объекты. Сюда входят общие объекты, логические значения, функции и символы.
Объекты ошибок
Объекты ошибок — это особый тип основных объектов. Они включают в себя основной тип Error
, а также несколько специализированных типов ошибок.
Числа и даты
Это базовые объекты, представляющие числа, даты и математические вычисления.
Обработка текста
Эти объекты представляют строки и поддерживают управление ими.
Проиндексированные коллекции
Эти объекты представляют собой коллекции данных, упорядоченные по значению индекса. Сюда входят (типизированные) массивы и конструкции, подобные массивам.
Коллекции с ключами
Эти объекты представляют коллекции, в которых используются ключи. Итерируемые коллекции ( Map
и Set
) содержат элементы, которые легко повторяются в порядке вставки.
Структурированные данные
Эти объекты представляют буферы структурированных данных и данные, закодированные с использованием нотации объектов JavaScript (JSON), и взаимодействуют с ними.
Объекты абстракции управления
Абстракции управления могут помочь структурировать код, особенно асинхронный код (например, без использования глубоко вложенных обратных вызовов).
Reflection
Интернационализация
Дополнения к ядру ECMAScript для языковых функций.
WebAssembly
Прочее
Определение объектов Merriam-Webster
объект | \ ˈÄb-jikt, — (ˌ) jekt \1a : что-то материальное, что может быть воспринято органами чувств Я вижу объект вдалеке.
b : то, что при просмотре вызывает определенные эмоции (например, жалость) Посмотрите на трагическую загрузку этой кровати … объект отравляет зрение; пусть это будет спрятано. — Уильям Шекспир
2a : что-то ментальное или физическое, на которое направлены мысли, чувства или действия. объект для изучения объект моей привязанности искусно вырезанные предметы искусства
b : нечто физическое, что воспринимается человеком и становится агентом психологической идентификации Мать — главный объект ребенка.
3a : цель или конец усилия или деятельности : цель, задача Их цель — тщательно исследовать вопрос. Цель игры — набрать как можно больше очков.b : повод для внимания или беспокойства Деньги не имеют значения.
4 : вещь, которая составляет элемент или составляет предмет исследования или науки объекты исследования
5a : существительное или его эквивалент (например, местоимение, герундий или придаточное слово), обозначающий цель или результат действия глагола (например, мяч в Я ударил мяч )
b : существительное или эквивалент существительного в предложной фразе (например, таблица в в таблице )
b : дискретный объект (например, окно или значок) в компьютерной графике (см. Рисунок) запись 2, смысл 2b), которыми можно управлять независимо от других таких сущностей объект | \ əb-ˈjekt \возразил; возражение; объекты
непереходный глагол
1 : противостоять чему-либо твердо и обычно словами или аргументами
2 : испытывать отвращение к чему-либо
\ ˈäb-jikt, — (ˌ) jekt \: of, относящиеся к объектному коду или являющиеся им объектный файл
определение объектов по The Free Dictionary
В этой первой лекции я постараюсь опровергнуть широко распространенную теорию, которой я раньше придерживался: теорию о том, что сущность всего ментального — это некое весьма своеобразное нечто, называемое «сознанием», рассматриваемое либо как отношение к объекты, или как всеобъемлющее качество психических явлений.
Или это что-то сложное, возможно, состоящее в нашем способе поведения в присутствии объектов, или, альтернативно, в существовании в нас вещей, называемых «идеями», имеющих определенное отношение к объектам, хотя и отличных от них, и только символически их представитель?
Тем не менее, несмотря на эти колоссальные размеры, фактическое увеличение едва ли превысило 6000 раз в круглых числах; следовательно, Луна была перенесена на видимое расстояние не ближе тридцати девяти миль; и предметы менее шестидесяти футов в диаметре, если только они не были очень значительной длины, оставались незаметными.Казалось бы, что объект познания существует раньше самого знания, поскольку обычно мы приобретаем знание об уже существующих объектах; было бы трудно, если не невозможно, найти отрасль знания, начало существования которой было одновременным с существованием ее объекта. В-третьих, вести мои мысли в таком порядке, чтобы, начав с объектов, было бы проще и легче. чтобы знать, я мог бы постепенно и постепенно, так сказать, шаг за шагом подниматься к познанию более сложных; приписывание в мыслях определенного порядка даже тем объектам, которые по своей природе не находятся в отношении предшествования и последовательности.Каждый мужчина осознает эту трудность в той мере, в какой он привык созерцать и различать объекты, обширные и сложные по своей природе. Чернокожие всегда были слугами белых людей — по крайней мере, таков был его опыт; и всегда они были объектами подозрений, всегда стремились причинить вред и требовали внимательного наблюдения. Есть еще третье отличие — способ имитации каждого из этих объектов. Торговля, финансы, переговоры и война, кажется, постигают все. предметы, которые очаровывают умы, управляемые этой страстью; и все полномочия, необходимые для этих объектов, должны, в первую очередь, принадлежать национальному депозитарию.По этой причине другие стремятся добыть другие богатства и другую собственность, и это справедливо, поскольку в природе есть другие богатства и собственность; и они являются собственными объектами экономики: в то время как торговля дает деньги только не всеми способами, а путем их обмена, и для этой цели она используется главным образом, поскольку деньги — это первый принцип и цель. торговли; и нет никаких ограничений, которые нужно было бы установить для того, что было таким образом приобретено. «Вы отчаянный объект», — воскликнул Нечестный выигрыш. «Эти прекрасные частные земли не место для такой работы, как твоя.»Этот план было нелегко осуществить; и для меня было большим воодушевлением (во время публикации моего рассказа в его периодической форме) узнать, на основании авторитета многих читателей, что объект, который я предложил себе В какой-то степени я мог бы считать достигнутую цель.Объекты
Что такое объект?
Объекты глаголов
Объекты глаголов передают информацию о том, кто или что получает действие глагола. Объект глагола может быть либо прямым объектом , что означает, что он непосредственно принимает действие глагола, либо косвенным объектом , что означает, что он получает прямой объект глагола.
Прямые объекты
Прямые объекты напрямую зависят от завершаемых ими глаголов, то есть действие глагола происходит непосредственно с ними. Например:
- «Собака погналась за хвостом, ». (Объект , его хвост , получает действие глагола chase .)
- «Мэри читает новую книгу каждую неделю». (Объект новая книга получает действие глагола читать .)
- «Я спросил Джонатана на свидании.»(Объект , Джонатан получает действие глагола , заданного .)
Мы можем идентифицировать прямой объект, задав вопрос Кто? или Что? о глаголе. Часть предложения, которая отвечает на этот вопрос, является прямым объектом.
«Собака гналась за своим хвостом». | «Мэри каждую неделю читает новую книгу». | «Я пригласил Джонатана на свидание». |
---|---|---|
Вопрос: Собака погналась за что? | Вопрос: Мэри читает что? | |
Косвенные объекты
Косвенные объекты — это человек или вещь, которые получают прямое дополнение глагола.Он, она или она по-прежнему подвержены действию глагола, но теперь это происходит косвенно . Косвенные объекты появляются прямо между глаголом и его прямым объектом.
Например:
- «Пожалуйста, передайте мне соль ». (Местоимение me получает прямой объект соль , который получает действие глагола pass .)
- «Я отправил компании заявку на работу.”(Существительное словосочетание , компания получает прямой объект , приложение , которое получает действие глагола , отправлено .)
Только глаголы, которые выражают действие, переданное на или на . другой человек или вещь могут брать косвенные предметы. Это дитранзитивных глагола . (Те, которые могут принимать только прямые объекты, называются монотранзитивными глаголами .)
Косвенные объекты как предложные фразы
Косвенный объект стоит непосредственно перед прямым объектом в предложении, как мы видели выше.Однако мы также можем передать ту же информацию, поместив косвенный объект после прямого объекта в предложной фразе, используя — или для . Мы можем сделать это с любым косвенным объектом, но часто предпочтительнее, когда косвенный объект очень длинный. Например:
«Я отправил моему брату письмо ». | «Я отправил письмо моему брату .» |
« Мой отец испек для нашего класса партию кексов ». | «Мой отец испек кексов для нашего класса ». |
«Она обучает разных учеников математике ». | Она преподает математике множеству разных учеников ». |
Объекты предлогов
- «Ищу работы .(Существительное работа является объектом предлога вместо , который создает предложную фразу для работы .)
- «Ваш рюкзак находится под столом ». (Существительная фраза таблица является объектом предлога под , который создает предложную фразу под таблицей .)
- «Я получил штраф за превышение скорости ». (Герундий превышающий скорость является объектом предлога вместо , который создает предложную фразу для превышения скорости .)
- «Она может учиться с , кто ей нравится ». (Предложение существительного , кому она нравится , является объектом предлога с , что создает предложную фразу с тем, кто ей нравится .)
Объективный случай
Мы в основном не склоняем (меняем форму) слова, чтобы отразить, действуют ли они как субъекты или объекты в предложении. Однако личные местоимения все еще имеют уникальную форму в объективном падеже , когда они действуют как объекты глаголов или предлогов.Кроме того, местоимения who и всякий раз, изменяются в объективном падеже, становясь кем и кем угодно ; однако это различие становится все менее распространенным: who, и , кто угодно, , используются в большинстве случаев в современном английском языке.
В приведенной ниже таблице дается краткое описание этих различных падежей и их использования в предложении. Обратите внимание, что местоимения , и и одинаковы для обоих случаев.
« Я недавно прочитал отличную книгу». | «Джефф рассказал мне, , о великой книге». | ||
« Мы, , пошли за мороженым». | «Мама взяла нас на мороженое». | ||
« Вы, , сказали, что проект завершен!» | «Я сказал вам, , это будет закончено на следующей неделе!» | ||
« He уже ушел на практику.» | « Я жду, когда ему вернутся с практики ». | ||
« Она, , пишет пьесу». | «Пьеса была написана ее ». | ||
« Сегодня будет дождь, ». | «Я хочу, чтобы это , чтобы прекратить снегопад». | ||
« Им это не понравится.» | » Я спросил их неделю назад «. | ||
« Кто, , рассказал вам о нашем плане?» | « Кому, , вы рассказали о нашем плане?» | ||
« У того, кто разбил эту вазу, большие проблемы!» | «Учись с теми, кто тебе нравится». |
Active Directory: поиск потерянных объектов — статьи TechNet — США (английский)
В этой статье описан сценарий PowerShell для поиска всех потерянных объектов в Active Directory.Сценарий также документирует всех участников безопасности, защищенных SDProp и AdminSDHolder. Ссылка на скрипт: Найдите потерянные объекты в Active Directory
Некоторые участники безопасности с высокими привилегиями в Active Directory защищены. Защищенные объекты являются прямыми или транзитивными членами по умолчанию с высокими привилегиями. группы. Процесс под названием SDProp (Security Descriptor Propagator) запускается один раз в час (по умолчанию) на контроллере домена с роль эмулятора PDC.SDProp сравнивает разрешения всех защищенных объектов назначенным объекту AdminSDHolder. Если они разные, SDProp перезаписывает разрешения, чтобы они соответствовали разрешениям объекта AdminSDHolder. По умолчанию у объекта AdminSDHolder отключено наследование разрешений, поэтому SDProp также обеспечивает это на охраняемых объектах. Наконец, SDProp присваивает adminCount значение 1. атрибут. Объект AdminSDHolder находится в контейнере cn = System каталога домен.
Этот процесс обеспечивает принудительное применение разрешений для привилегированных участников безопасности, даже если объекты перемещаются на другой объект. организационная единица. Разрешения защищены от ручных или непреднамеренных изменений.
Когда участник безопасности удаляется из всех защищенных групп, он больше не защищается SDProp. Однако значение атрибута adminCount не изменяется. Кроме того, наследование остается отключенным. Это источник путаницы и возможная безопасность беспокойство.Эти объекты называют сиротами. Без наследования разрешения, применяемые к родительскому организационному подразделению, не применяются к таким объектам. Очень важно просмотреть эти объекты. Некоторые рекомендуют удалить или отключить их. На по крайней мере, наследование должно быть включено. Очистка атрибута adminCount позволит избежать путаницы. Многие люди используют этот атрибут как быстрый способ найти защищенные объекты.
↑ Вернуться к началу
Набор привилегированных групп и пользователей по умолчанию защищен автоматически.Список защищенных по умолчанию объектов в домене определяется операционной системой контроллера домена с эмулятором PDC (PDCe) FSMO. роль.
Операционная система PDCe | Пакет обновления | Защищенные объекты по умолчанию |
Windows 2000 Server | Администраторы Администраторы домена Администраторы предприятия Администраторы схемы | |
Windows 2000 Server | SP 4 (или исправление 327825) | Администраторы Администраторы домена Администраторы предприятия Администраторы схемы Издатели сертификатов Репликатор Операторы счетов Операторы сервера Операторы печати Операторы резервного копирования Администратор krbtgt Контроллеры домена |
Windows Server 2003 | Администраторы Администраторы домена Администраторы предприятия Администраторы схемы Издатели сертификатов Репликатор Операторы счетов Операторы сервера Операторы печати Операторы резервного копирования Администратор krbtgt Контроллеры домена | |
Windows Server 2003 | СП 1 или 2 | Администраторы Администраторы домена Администраторы предприятия Администраторы схемы Репликатор Операторы счетов Операторы сервера Операторы печати Операторы резервного копирования Администратор krbtgt Контроллеры домена |
Windows Server 2008 или выше | Администраторы Администраторы домена Администраторы предприятия Администраторы схемы Репликатор Операторы счетов Операторы сервера Операторы печати Операторы резервного копирования Администратор krbtgt Контроллеры домена Контроллеры домена только для чтения |
↑ Вернуться к началу
dSHeuristic атрибуты и группы операторов
Если операционная система эмулятора PDC — Windows Server 2003 или выше, или если к Windows 2000 Server применен пакет обновления 4 или исправление 327825, в список защищаемых по умолчанию объектов включаются четыре группы операторов.Это операторы учетных записей, Группы «Операторы сервера», «Операторы печати» и «Операторы резервного копирования». Все они находятся в контейнере cn = Builtin. Однако вы можете исключить любую комбинацию этих групп из-под защиты, изменив атрибут dSHeuristics объекта cn = Directory Service. Этот объект находится в контейнере cn = Windows NT, cn = Services в разделе конфигурации лес. Значение этого атрибута и группы операторов, исключенные из защиты, будут применяться ко всем доменам в лесу.
Атрибут dSHeuristics имеет строковый синтаксис. Каждый символ значения представляет отдельную настройку. В этом случае 16-й символ интерпретируется как шестнадцатеричное значение, указывающее, какая комбинация из четырех групп операторов исключена из защиты. Если значение dSHeuristics превышает 10 символов, 10-й символ должен быть «1». Если значение превышает 20 символов, 20-й должен быть «2».
Если вы изменяете dSHeuristics, чтобы исключить одну или несколько групп операторов, любые существующие символы следует оставить без изменений.Они представляют собой другие настройки. Если существующее значение пустое (не задано) или его длина меньше 10 символов, убедитесь, что 10-й символ это «1». 16-й символ интерпретируется следующим образом:
16-й | Исключенные группы | |||
---|---|---|---|---|
Персонаж | Операторы счетов | Операторы сервера | Операторы печати | Операторы резервного копирования |
0 (или отсутствует) | ||||
1 | Х | |||
2 | Х | |||
3 | Х | Х | ||
4 | Х | |||
5 | Х | Х | ||
6 | Х | Х | ||
7 | Х | Х | Х | |
8 | Х | |||
9 | Х | Х | ||
А | Х | Х | ||
B | Х | Х | Х | |
С | Х | Х | ||
D | Х | Х | Х | |
E | Х | Х | Х | |
ф | Х | Х | Х | Х |
Например, если нет существующего значения dSHeuristics, и вы хотите исключить группы «Операторы печати» и «Операторы резервного копирования», вы должны назначить следующее значение.
000000000100000C
10-й символ — это «1», а 16-й — шестнадцатеричное значение «C». Имейте в виду, что если вы исключите какие-либо группы операторов, и у них есть участники, вы создадите потерянные объекты.
↑ Вернуться к началу
Все члены защищенных групп по умолчанию также будут защищены. Это включает прямое и транзитивное членство в любых защищенных группах. Сюда также входят пользователи и компьютеры, на которых группа — это любая защищенная группа.Защищенными объектами могут быть пользователи, компьютеры или группы. Можно защитить как членов группы безопасности, так и членов группы рассылки.
↑ Вернуться к началу
Процесс распространения дескриптора безопасности (SDProp) выполняется один раз в час (по умолчанию) на эмуляторе PDC. Он сравнивает разрешения каждого защищенного объекта в домене с разрешениями, назначенными объекту AdminSDHolder. Если разрешения не совпадают, SDProp перезаписывает разрешения, чтобы они совпадали с правами объекта AdminSDHolder.По умолчанию это включает отключение наследования. Затем атрибуту adminCount защищаемого объекта присваивается значение 1. Обратите внимание, что очистка атрибута adminCount любого защищенный объект (или присвоение значения, отличного от 1) не запускает SDProp для изменения объекта. Добавление или изменение любой записи контроля доступа (ACE) в списке управления дискреционным доступом (DACL) или включение наследования вызовет SDProp для исправления разрешений.
↑ Вернуться к началу
Объект AdminSDHolder находится в контейнере cn = System домена.Разрешения, назначенные этому объекту, будут применены ко всем защищенным объектам в домене процессом SDProp. По умолчанию это включает отключение наследования разрешений. от любых родительских организационных единиц. Хотя обычно это не рекомендуется, администратор может изменить разрешения по умолчанию, назначенные этому объекту.
↑ Вернуться к началу
Когда защищенный участник безопасности больше не является членом какой-либо защищенной группы, он становится осиротевшим.Если ситуация не будет исправлена, права, назначенные объекту, останутся прежними, включая отключение наследования. Кроме того, значение атрибута adminCount не будет изменен. Помимо создания путаницы, эта ситуация предотвращает наследование разрешений, применяемых к организационным подразделениям, потерянными объектами. Потерянные объекты могут быть пользователями, компьютерами или группами.
Сценарий, описанный в этой статье, рассматривает любой объект, который не является членом какой-либо защищенной группы, но имеет значение adminCount, равное 1, или отключенное наследование, как осиротевший.Эти объекты могли никогда не входить в какую-либо защищенную группу. Есть невозможно сказать. Атрибут adminCount мог быть изменен. Наследование могло быть отключено по какой-то другой причине. Но эти объекты еще предстоит исследовать. То же самое.
↑ Вернуться к началу
В сценарии есть много комментариев, поясняющих различные шаги. Ключевые особенности заключаются в следующем:
- Защищенные группы и пользователи по умолчанию идентифицируются общеизвестными RID.Это позволяет идентифицировать их, даже если они были переименованы.
- Рекурсивная функция используется для получения всех вложенных групп защищенных по умолчанию групп.
- Функция используется для определения членства в защищенной группе. Это используется для документирования членства в группах для защищаемого объекта. Любой объект может быть членом более чем одной защищенной группы, но эта функция возвращает только первую один найден.
- Операционная система и пакет обновления эмулятора PDC в каждом домене используются для определения защищенных групп и пользователей по умолчанию.
- Атрибут dSHeuristics объекта cn = Directory Service используется для определения того, не защищены ли какие-либо группы операторов.
- Принадлежность к основной группе учитывается при определении, являются ли объекты пользователя или компьютера защищенными или потерянными.
- Сценарий не зависит только от атрибута adminCount, чтобы определить, являются ли объекты защищенными или потерянными.
- Защищенными объектами и потерянными объектами могут быть пользователи, компьютеры или группы.
↑ Вернуться к началу
При поиске объектов в Active Directory нет возможности фильтрации по RID объектов.Это означает, что запрос для защищенных групп в сценарии должен получить все группы, а затем вычислить RID из значения атрибута objectSID, который представляет собой байтовый массив. Код для вычисления RID объекта из objectSID аналогичен приведенному ниже, где $ ADObject — это ссылка на объект:
$ SID = $ ADObject.objectSID $ arrSID = ($ SID.ToString ()). Разделить () $ k = $ arrSID.Count $ RID = [Int32] $ arrSID [$ k - 4] ` + (256 * [int32] $ arrSID [$ k - 3]) ` + (256 * 256 * [Int32] $ arrSID [$ k - 2]) ` + (256 * 256 * 256 * [Int32] $ arrSID [$ k - 1])
Также нет возможности фильтровать, включено ли наследование.Сценарий должен получить все объекты, удовлетворяющие другим условиям, затем выполнить привязку к каждому найденному объекту и проверить атрибут ntSecurityDescriptor. В скрипте используется .NET-функция AreAccessRulesProtected. за это. Код похож на следующий:
$ Entry = $ ADObject.GetDirectoryEntry () # Использование psbase необходимо для поддержки PowerShell V1. $ ObjInherit = $ Entry.psbase.ObjectSecurity.AreAccessRulesProtected If ($ ObjInherit -eq "True") {$ Inherit = "Наследование отключено"} Иначе {$ Inherit = "Наследование включено"}
Эта последняя трудность замедляет последний запрос в скрипте.Чтобы найти все объекты, которые могут оказаться потерянными, сценарий должен фильтровать всех участников безопасности, не являющихся членами какой-либо защищенной группы. Затем необходимо выполнить привязку к каждому и определить, является ли наследование включен. Это может быть очень медленным, даже если участников безопасности всего несколько тысяч. Но альтернативы нет, так как атрибут adminCount использовать нельзя.
↑ Вернуться к началу
Группа контроллеров домена защищена по умолчанию, если операционная система PDCe — Windows 2000 Server SP4 или выше.Однако тестирование в лабораторной среде показывает, что члены этой группы, объекты контроллера домена, не защищены. Если права доступа группы изменены, процесс SDProp исправляет ситуацию. Но разрешения участников не исправлены. Кроме того, наследование разрешений остается включенным, а атрибут adminCount не установлен. Никакой документации или объяснений нет для этой аномалии.
↑ Вернуться к началу
Учитывайте следующие рекомендации:
- Контроллер домена с ролью FSMO эмулятора PDC должен иметь последнюю версию операционной системы, поддерживаемой функциональным уровнем домена.Из-за влияния, которое он оказывает на взаимодействие с пользователем, он также должен быть хорошо связан и высокодоступен.
- Роль эмулятора основного контроллера домена не следует передавать контроллеру домена с операционной системой более низкого уровня. Это может привести к тому, что потерянные объекты больше не будут защищены SDProp и объектом AdminSDHolder.