Общая часть (часть 2) (2015) (by Кибитова) (1161598), страница 40
Текст из файла (страница 40)
Таким образом, зачислениенанаработуработуПетраИвановичаСидоровасущественнозатормозитполучениеинформациио1)Непосредственноеуправлениеданнымиво внешнейпамятиПетраИвановича Сидоровасущественнозатормозитполучениеинформации ослужащемслужащемИванеИванеСидоровичеСидоровичеПетрове,Петрове,дажедажееслиеслиониониработаютработаютввразныхразныхотделах.отделах.НастоящиеСУБДобеспечиваютгораздоболеетонкуюсинхронизациюпараллельногоНастоящиеобеспечиваютгораздонеобходимыхболее тонкуюструктурсинхронизациюпараллельногоЭтафункцияСУБДобеспечиваетподдержкувнешнейпамяти какдоступакданным.доступак данным.дляхраненияданных и метаданных, непосредственно входящих в БД, так и дляслужебных целей, например, для убыстрения доступа к данным (индексы). 4.4.ОсновныеОсновныефункциифункцииСУБД,СУБД,типоваятиповаяорганизацияорганизацияСУБД.СУБД.В некоторых реализациях СУБД активно используются возможности существующихФС,в другихработа производитсянауровневоустройстввнешней1)управлениепамятиданныхв оперативнойпамяти.
данными1)НепосредственноеНепосредственноеуправлениеданнымивовнешнейвнешнейпамятипамяти. Ноподчеркнем,что в развитыхСУБДпользователивструктурлюбомслучаене обязанызнать,ЭтаобеспечиваетподдержкунеобходимыхвнешнейпамятикакДажеесли операционнаясистемапроизводитобщесистемнуюбуферизациюданныхЭтафункцияфункцияобеспечиваетподдержкунеобходимыхструктурвнешнейпамятикакиспользуетлиСУБДФС,и,еслииспользует,токакорганизованыфайлы.Вчастности,дляхраненияданныхиметаданных,непосредственновходящихвБД,такидля(как,например,вслучаеОСUNIX),этогонедостаточнодляцелейСУБД,котораядля хранения данных и метаданных, непосредственно входящих в БД, так и дляв СУБД обычноподдерживаетсясобственнаясистема именованияобъектовБД.служебныхнапример,(индексы).располагаетгораздобольшейдляинформациейодоступаполезностибуферизациитой илиинойслужебныхцелей,целей,например,дляубыстренияубыстрениядоступаккданнымданным(индексы).
части БД.Управление буферамиСУБДоперативной памяти.В2)Внекоторыхнекоторыхреализацияхреализациях СУБДактивноактивноиспользуютсяиспользуютсявозможностивозможностисуществующихсуществующихФС,вдругихработапроизводитсянауровнеустройстввнешнейПоэтомув развитыхподдерживаетсянабор памяти.буферовФС, в другихработа СУБДпроизводитсяна уровнесобственныйустройств внешнейпамяти. оперативнойСУБД обычноработают ссобственнойБД значительногоразмера;по крайнеймере, этот размерпамятис использованиемдисциплинойзаменыбуферов.обычносущественнобольшеобъемадоступнойОП.НоНоподчеркнем,подчеркнем,чточтоввразвитыхразвитыхСУБДСУБДпользователипользователиввлюбомлюбомслучаеслучаененеобязаныобязанызнать,знать, используетлиСУБДФС,и,еслииспользует,токакорганизованыфайлы.3)Управлениетранзакциями.используетли СУБДФС, и, если использует, то как организованы файлы.ВВчастности,частности,приобычнообращениик любому элементуданныхбудетименованияпроизводитьсяобменБД.с внешнейвЕслиподдерживаетсясобственнаясистемаобъектоввСУБДСУБДобычноподдерживаетсясобственнаясистемаименованияобъектовБД.памятью,товсясистемабудетработатьсоскоростьюустройствавнешнейпамяти.Транзакция - это последовательность операций над БД, рассматриваемых СУБД как2)единоецелое: буферами2)УправлениеУправлениебуферамиоперативнойоперативнойпамяти.памяти.Единственным способом реального увеличения этой скорости является буферизация СУБДобычноссБДзначительногоразмера;помере,размерi)либоуспешновыполняется,и СУБДфиксирует(выполняетоперациюСУБДтранзакцияобычноработаютработаютБДзначительногоразмера;покрайнейкрайнеймере,этотэтотразмеробычносущественнобольшеобъемадоступнойОП.COMMIT)измененияБД,произведенныеэтойтранзакцией,вовнешнейпамяти,обычно существенно больше объема доступной ОП.Есликклюбомубудетобменii)либониобращенииодно из этихизмененийникак данныхнеотражаетсяна состоянии БД.Еслиприприобращениилюбомуэлементуэлементуданныхбудетпроизводитьсяпроизводитьсяобменссвнешнейвнешнейпамятью,товсясистемабудетработатьсоскоростьюустройствавнешнейпамяти.памятью, то вся система будет работать со скоростью устройства внешней памяти.Понятие транзакции необходимо для поддержания логической целостности БД.ЕдинственнымЕдинственнымспособомспособомреальногореальногоувеличенияувеличенияэтойэтойскоростискоростиявляетсяявляетсябуферизациябуферизацияиногда запись в журнале соответствует некоторой логической операции изменения БД(например, операции удаления строки из таблицы реляционной БД), иногда минимальной внутренней операции модификации страницы внешней памяти; внекоторых системах одновременно используются оба подхода.4) Журнализация.Во всех случаях принято придерживаться стратегии «упреждающей» записи в журнал(так называемого протокола Write Ahead Log – WAL).
Грубо говоря, эта стратегияОднимиз основныхтребованийСУБДявляетсянадежностьданныхво возаключаетсяв том,что записькобизменениилюбогообъектахраненияБД должнапопастьвнешнейпамяти.Поднадежностьюхраненияпонимаетсято,чтоСУБДдолжнабытьввнешнюю память журнала раньше, чем измененный объект попадет во внешнююпамятьсостояниипоследнее согласованное состояние БД после любогоосновной восстановитьчасти БД.аппаратного или программного сбоя.
5) Поддержка языков БДДля обеспечения надежного хранения данных в БД требуется хранение избыточных12. Общиереляционногоподходак организацииБД.данных,причем тапонятиячасть данных,которая используетсядля восстановленияБД, должнаДля работы с базами данных используются специальные языки, в целом называемыехранитьсяособонадежно.Наиболеераспространенным методом поддержания такойОсновныеи термины.языкамибазконцепцииданных.
В раннихСУБД поддерживалось несколько специализированныхизбыточной информации является ведение журнала изменений БД. Журнал - этопо своим функциям языков. Чаще всего выделялись два языка: язык определенияособаячасть БД,недоступнаяпользователями поддерживаемаяособой домен,Основнымипонятиямиреляционныхбаз СУБДданныхявляются тип с данных,схемыБД (SDL- Schema DefinitionLanguage)и язык манипулированияданнымитщательностью(например,можноподдерживатьдвекопиижурнала,располагаемыенаатрибут,кортеж,первичныйключ иSDLотношение.(DML- DataManipulationLanguage).служил, главным образом, для определенияразных физических дисках), в которую поступают записи обо всех измененияхлогической структуры БД, т.е. той структуры БД, какой она представляется12. ОбщиеОбщиепонятия реляционногореляционного подходаподхода кк организацииорганизации БД.БД.основнойчасти БД.12.понятияпользователям.DML содержалнаборпонятийоператоровданными,т.е.Для начала покажемсмысл этихна манипулированияпримере отношенияСОТРУДНИКИ,Основныеконцепциитермины.операторов,позволяющихданныенекоторойв БД, удалять,модифицировать илиОсновныеконцепциииизаноситьсодержащегоинформациюотермины.сотрудникахорганизации:Ввыбиратьразных СУБДизмененияБДжурнализуются на разных уровнях: существующие данные.Основными понятиямипонятиями реляционныхреляционных базбаз данныхданных являютсяявляются типтип данных,данных, домен,домен,ОсновнымииногдазаписьвжурналесоответствуетнекоторойлогическойоперацииизмененияБДатрибут,кортеж,первичныйключиотношение.В современныхобычноключподдерживаетсяатрибут,кортеж,СУБДпервичныйи отношение.единый интегрированный язык, (например,операцииудаления строкииз таблицыреляционнойБД),отиногдасодержащийвсе необходимыесредствадля работыс БД, начинаяее создания,иминимальнойвнутреннейоперациистраницывнешнейпамяти;вДляначала покажемпокажемсмыслэтихмодификациипонятий нана примерепримерес базамиотношенияСОТРУДНИКИ,обеспечивающийбазовыйпользовательскийинтерфейсданных.СтандартнымДляначаласмыслэтихпонятийотношенияСОТРУДНИКИ,некоторыхсистемаходновременноиспользуютсяобаподхода.содержащегоинформациюсотрудникахнекоторойорганизации:языком наиболеераспространенныхв настоящеевремяреляционных СУБД являетсясодержащегоинформациюоо сотрудникахнекоторойорганизации:язык SQL (Standard Query Language).
Прежде всего, язык SQL сочетает средства SDL и Вовсехт.е.случаяхпринятопридерживатьсястратегии «упреждающей»записиданными.в журналDML,позволяетопределятьсхему реляционнойБД и манипулировать(такназываемогопротоколаWriteAheadLog–WAL).Грубоговоря,этастратегияИменование объектов БД (для реляционной БД – в основном, именование таблиц и ихзаключается в том, что запись об изменении любого объекта БД должна попасть вовнешнюю память журнала раньше, чем измененный объект попадет во внешнюю памятьосновной части БД.5) Поддержка языков БДДля работы с базами данных используются специальные языки, в целом называемыеязыками баз данных. В ранних СУБД поддерживалось несколько специализированныхпо своим функциям языков.