Общая часть (часть 2) (2015) (by Кибитова) (1161598), страница 39
Текст из файла (страница 39)
— наследование,— полиморфизм.Все эти механизмы важны для разработки и использования абстракций.1) Инкапсуляция — механизм, связывающий вместе код и данные,888которымион манипулирует, и одновременно защищающий их от произвольного доступа со стороны другого кода, внешнего по отношению к рассматриваемому. Доступ к коду и данным жестко контролируется интерфейсом.Основой инкапсуляции при ООП является класс.8в классе), что упрощает работу с объектами этого класса.3) Полиморфизм — механизм, позволяющий использовать один и тот2) Наследование — механизм, с помощью которого один объект (проже интерфейс для общего классадействий.Объектно-ориентированноепрограммирование(ООП)изводного класса) приобретаетсвойства другого объекта(родительского,базового класса).
При использовании наследования новый объект не обязательноПример:описывать, начиная с нуля, что существенно упрощает работу проМеханизмаоставлять скрытымиот пользова-отграммиста.Наследованиекакому-либообъекту наследоватьИмеются3инкапсуляциитипа стекапозволяетдляпозволяетхранения:телянекоторыедеталиесть инкапсулироватьихсвоегообщие реализацииатрибуты, а классадля себя(тоопределятьтолько те характе—родителяцелыхчисел,в ристики,классе),чтоупрощаетработусобъектамиэтогокласса.которые делают его уникальным внутри класса.— чисел с плавающей точкой,2)НаследованиеНаследование — механизм, с помощью которого один объект (про— символов. есть очень важное понятие, поддерживающее концепциюизводногокласса)приобретает свойства другого объекта (родительского,иерархическойклассификации.базовогоВместокласса).трехПриподпрограммиспользованииуправлениянаследованияновый объект не обязав объектно-ориентированной3)Полиморфизм— смеханизм,одинпрои тоттельноописывать,начинаянуля,подпрограммачтопозволяющийсущественноупрощаетработупрограмметребуетсявсегоодна(одиниспользоватьинтерфейс)жеинтерфейсдляобщегоклассадействий.граммиста.
Наследование позволяет какому-либо объекту наследовать отОбщая концепция полиморфизма: один интерфейс — много методов.своего родителя общие атрибуты, а для себя определять только те характеПример:Выборконкретного(метода)применительнок конкретнойристики,которыеделают егодействияуникальнымвнутрикласса.ситуации возлагается на компилятор. Программисту же достаточно запомИмеются 3 типастека дляхранения:важноепонятие,поддерживающееконцепциюнитьНаследованиеи применитьестьодиноченьинтерфейс,вместонескольких,что такжеупрощаетиерархическойклассификации.—целыхчисел,работу.чисел с плавающейточкой, позволяющий использовать один и тот3)—Полиморфизм— механизм,Различаютсястатический(реализуется на этапе компиляциижес интерфейсдля общегофункцийкласса действий.— символов.помощьюперегрузкии операций), динамический (реализуется во времяВместовыполненияс помощьюмеханизмавиртуальных функций)трех программыподпрограммуправленияв объектно-ориентированнойПример:и параметрический(реализуетсяна этапе компиляциис использованиемпрограмметребуется всегоодна подпрограмма(один интерфейс)механизмашаблонов)полиморфизм.Имеются 3 типа стека для хранения:Общая концепция полиморфизма: один интерфейс — много методов.— целых чисел,ПримечаниеВыбор конкретного действия (метода) применительно к конкретной— чисел с плавающейточкой,Рассмотренныепонятияабстракции,инкапсуляции,наследования,полиморситуации возлагаетсяна компилятор.Программистуже достаточнозапомфизмаприсущи не только парадигме ООП.
Так, выполнение арифметических—символов.нитьиприменитьодининтерфейс,вместонескольких,чтотакжеупрощаетопераций над целыми числами и числами с плавающей точкой осуществляютсяработу.трехпо подпрограммуправленияобъектно-ориентированнойвВместопроцессореразным алгоритмам.Однако вв данномслучае полиморфизмпроявляетсянеявно.программетребуется всегоодна подпрограмма(один наинтерфейс)Различаютсястатический(реализуетсяэтапе компиляциис помощьюперегрузкиполиморфизма:функций и операций),динамический(реализуетсяОбщая концепцияодин интерфейс— многометодов.вовремя выполнения программы с помощью механизма виртуальных функций)Выбор конкретногодействия (метода)к конкретнойи параметрический(реализуетсяна этапе применительнокомпиляции с использованиемситуациивозлагаетсянакомпилятор.Программистужедостаточнозапоммеханизма шаблонов) полиморфизм. нить и применить один интерфейс, вместо нескольких, что также упрощаетПримечаниеработу.Типы данных, создаваемые пользователем (программистом), называютсяпользовательскимитипамиданных.ПользовательскийтипданныхРассмотренныеабстракции,инкапсуляции,полиморРазличаются понятиястатический(реализуетсянанаследования,этапе компиляциифизма присущине толькопарадигме ООП.
Так,выполнениеструктуройарифметическихсполностьюскрытой(инкапсулированной)внутреннейназывас помощьюперегрузкифункцийиопераций),динамический (реализуется вооперацийнад целымичисламии числамис плавающей точкой осуществляютсяетсяабстрактнымтипомданных(АТД).время выполнения программы с помощью механизма виртуальных функций)1.3. Абстрактные типы данныхв процессоре по разным алгоритмам.
Однако в данном случае полиморфизмпараметрический(реализуется на этапе компиляции с использованиемпроявляется неявно. имеханизмашаблонов) полиморфизм.9 Примечание Рассмотренные понятия абстракции, инкапсуляции, наследования, полиморфизма присущи не только парадигме ООП. Так, выполнение арифметических операций над целыми числами и числами с плавающей точкой осуществляютсяданных,посоздаваемыепользователем(программистом),называютсяв процессореразным алгоритмам.Однако в данномслучае полиморфизм Типытипами данных.
Пользовательский тип данныхпроявляется неявно. пользовательскимис полностью скрытой (инкапсулированной) внутренней структурой называ ется абстрактным типом данных (АТД). 9 Типы данных, создаваемые пользователем (программистом), называютсяпользовательскими типами данных. Пользовательский тип данных с полностью скрытой (инкапсулированной) внутренней структурой называ ется абстрактным типом данных (АТД).1.3. Абстрактные типы данных1.3. Абстрактные типы данных9 питания21.
Базыкомпьютера.данных.Основные понятия реляционной модели данных.Реляционная алгебра. Средства языка запросов SQL.Очевидно, что после перезапуска системы ее база данных будет находиться врассогласованном состоянии. Потребуется выяснить это (а для этого нужно явнопроверить соответствие данных в файлах СЛУЖАЩИЕ и ОТДЕЛЫ) и привести данныев согласованное состояние.НастоящиеСУБД берут такую работу на себя, поддерживая транзакционноепитанияпитаниякомпьютера.компьютера.управление и журнализацию изменений базы данных. Прикладная система не обязаназаботитьсячтоо поддержкекорректности состояниябазы данных,хотя и должназнать,Очевидно,Очевидно, чтопослепослеперезапускаперезапускасистемысистемыеееебазабазаданныхданныхбудетбудетнаходитьсянаходитьсяввкакиецепочкиоперацийизмененияданныхявляютсядопустимыми.рассогласованномрассогласованномсостоянии.состоянии.ПотребуетсяПотребуетсявыяснитьвыяснитьэтоэто(а(адлядляэтогоэтогонужнонужноявноявнопроверитьпроверитьсоответствиесоответствиеданныхданныхввфайлахфайлахСЛУЖАЩИЕСЛУЖАЩИЕииОТДЕЛЫ)ОТДЕЛЫ)иипривестипривестиданныеданныетеперь,чтовинформационнойсистеметребуетсяобеспечитьвПредставимсогласованноесостояние.в согласованное состояние.параллельную (например, многотерминальную) работу с базой данных служащих иотделов.
Еслиопиратьсятакуютолько на использованиефайлов, то для обеспеченияНастоящиеНастоящиеСУБДСУБДберутберут такуюработуработунанасебя,себя,поддерживаяподдерживаятранзакционноетранзакционноекорректностинавсевремямодификациилюбогоиздвухфайлов доступдругихуправлениеижурнализациюизмененийбазыданных.Прикладнаяуправление и журнализацию изменений базы данных. Прикладнаясистемасистеманенеобязанаобязанапользователейкэтомуфайлубудетблокирован.Такимобразом,зачислениена работузаботитьсязаботитьсяооподдержкеподдержкекорректностикорректностисостояниясостояниябазыбазыданных,данных,хотяхотяиидолжнадолжназнать,знать,ПетрацепочкиИвановичаСидоровасущественнозатормозитполучение информации окакиеоперацийизмененияданныхявляютсядопустимыми.какие цепочки операций изменения данных являются допустимыми.служащем Иване Сидоровиче Петрове, даже если они работают в разных отделах.Настоящие СУБД обеспечивают гораздо более тонкую синхронизацию параллельного Представимтеперь,Представимтеперь,чточтоввинформационнойинформационнойсистемесистеметребуетсятребуетсяобеспечитьобеспечитьдоступак данным.параллельную(например,многотерминальную)работупараллельную (например, многотерминальную) работуссбазойбазойданныхданныхслужащихслужащихииотделов.отделов.ЕслиЕслиопиратьсяопиратьсятолькотольконанаиспользованиеиспользованиефайлов,файлов,тотодлядляобеспеченияобеспечения4.ОсновныефункцииСУБД,типоваяорганизациякорректностинавсевремямодификациилюбогоиздвухфайловдоступкорректности на все время модификации любого из двух файловСУБД.доступдругихдругихпользователейкэтомуфайлубудетблокирован.Такимобразом,зачислениепользователей к этому файлу будет блокирован.