
- •Модуль 5. «Язык express»
- •Слайд 1.Введение
- •Слайд 2. Требования к обмену данными
- •Пояснения
- •Слайд 3. Общие сведения о языке
- •Пояснения
- •Слайд 4. Основные свойства языка
- •Пояснения
- •Слайд 5. Объектно-ориентированный подход
- •Пояснения
- •Слайд 6. Основной элемент языка
- •Пояснения
- •Слайд 7. Компоненты языка
- •Слайд 14. Двоичный литерал
- •Слайд 21. Тип данных и сущность
- •Пояснения
- •Слайд 22. Простой тип
- •Пояснения
- •Слайд 23. Числовой тип (number)
- •Пояснения
- •Слайд 24. Вещественный тип (real)
- •Пояснения
- •Слайд 25. Целочисленный тип (integer)
- •Слайд 29. Двоичный тип (binary)
- •Пояснения
- •Слайд 30. Агрегированный тип
- •Пояснения
- •Слайд 31. Массив (array)
- •Пояснения
- •Слайд 32. Список (list)
- •Пояснения
- •Слайд 33. Множество (set)
- •Пояснения
- •Слайд 34. Мультимножество (bag)
- •Пояснения
- •Слайд 35. Многомерные агрегированные типы
- •Пояснения
- •Слайд 36. Поименованный тип
- •Пояснения
- •Слайд 37. Составной тип
- •Пояснения
- •Слайд 38. Понятие
- •Пояснения
- •Слайд 39. Схема (schema)
- •Пояснения
- •Слайд 40. Константы (constant)
- •Пояснения
- •Слайд 41. Определяемый тип (type)
- •Пояснения
- •Слайд 42. Правило области значений определяемого типа
- •Пояснения
- •Слайд 43. Сущность (entity)
- •Пояснения
- •Слайд 44. Атрибут сущности
- •Пояснения
- •Слайд 45. Локальное правило сущности
- •Пояснения
- •Слайд 46. Правило уникальности
- •Пояснения
- •Слайд 47. Правила области значений
- •Пояснения
- •Слайд 48. Наследование
- •Пояснения
- •Слайд 49. Интерфейс между схемами
- •Пояснения
- •Слайд 50. Пример информационной модели
- •Пояснения
- •Слайд 51. Основные принципы express-g
- •Пояснения
- •Слайд 52. Знаки определения
- •Пояснения
- •Слайд 53. Знаки связи
- •Пояснения
- •Слайд 54. Знаки композиции
- •Пояснения
- •Слайд 55. Диаграмма уровня сущности
- •Пояснения
- •Слайд 56. Диаграмма уровня схемы
- •Пояснения
- •Слайд 57. Программная поддержка express
- •Пояснения
- •Слайд 58. Резюме
Слайд 48. Наследование
Пояснения
В языке EXPRESSсущность определяется какклассобъектов реального мира, имеющих общие характеристики. Таким классом, например, могут быть люди, причем каждый человек имеет имя, фамилию и неотрицательный возраст. Кроме того, могут существоватьподклассыданного класса, в которых объекты, помимо характеристик класса, обладают еще некоторым набором характеристик, принадлежащих только данному подклассу. Например, для сущности «Человек» может существовать подкласс «Работник», который является человеком и обладает всеми свойствами человека, но, кроме того, имеет специфические свойства, скажем, должность. Должность имеется не у каждого человека, а только у тех, кто работает. Таким образом, экземпляры сущности «Работник» составляют подмножество экземпляров сущности «Человек» и каждый экземпляр «Работника» является одновременно экземпляром «Человека».
Поскольку сущности «Человек» и «Работник» обладают частично совпадающими свойствами, то при их объявлении в информационной модели по отдельности пришлось бы повторять все объявления свойств сущности «Человек» в объявлении сущности «Работник». Для того, чтобы избежать этого, в EXPRESSвведеноотношение наследования. Это отношение устанавливает связь между сущностями, при которой области экземпляров одних сущностей, называемыхпотомками, являются подмножествами областей экземпляров других сущностей, называемыхпредками. Другими словами, потомки являютсяспециализациямипредков. В данном случае, сущность «Работник» будет потомком сущности «Человек». Это позволяет объявлять все свойства только один раз: все общие свойства для человека и работника объявляются в сущности «Человек», а свойства, специфические для работника – в сущности «Работник».
В приведенном примере присутствуют две сущности – «person» (человек) и «employee» (работник). Между ними установлено отношение наследования, т.е. область экземпляров сущности «employee» (потомка) является подмножеством области экземпляров сущности «person» (предка). Предок имеет три атрибута – «first_name» (имя), «last_name» (фамилия) и «age» (возраст), а также одно ограничение, определяющее, что значение атрибута «age» должно быть неотрицательным. Потомкиполучают (наследуют)все свойства (т.е. атрибуты и ограничения) предков. В данном случае, сущность «employee» наследует три атрибута и одно ограничение сущности «person». Кроме того, потомки могут добавлять к унаследованным свойствам новые, а также переопределять некоторые унаследованные свойства. Сущность «employee» не переопределяет никакие родительские свойства, но добавляет два новых свойства: атрибут «title» (должность) и ограничение, определяющее, что значение атрибута «age» должно быть не меньше 16. При этом потомок все равно остается подмножеством предка, а экземпляр потомка (работник) всегда будет являться и экземпляром предка (человеком).
Существует два способа задания отношения наследования: путем спецификации потомков в объявлении предка или путем спецификации предков в объявлении потомка. В данном случае используется второй способ: в объявлении потомка (сущности «employee») используется конструкцияSUBTYPEOF, предназначенная для спецификации предка. После этой конструкции в скобках перечисляются все предки данной сущности (в этом случае, только сущность «person»).
Помимо простого наследования, показанного на примере, язык EXPRESSдопускает множественное наследование, в котором участвуют более двух сущностей.