- •Слайд 3. Общие сведения о языке
- •Пояснения
- •Слайд 4. Основные свойства языка
- •Пояснения
- •Слайд 5. Объектно-ориентированный подход
- •Пояснения
- •Слайд 6. Основной элемент языка
- •Пояснения
- •Пояснения
- •Слайд 22. Простой тип
- •Пояснения
- •Слайд 21. Тип данных и сущность
- •Слайд 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») используется конструкция SUBTYPE OF, предназначенная для спецификации предка. После этой конструкции в скобках перечисляются все предки данной сущности (в этом случае, только сущность «person»).
Помимо простого наследования, показанного на примере, язык EXPRESS допускает множественное наследование, в котором участвуют более двух сущностей.
