Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БДиСУБД.docx
Скачиваний:
17
Добавлен:
19.11.2019
Размер:
494.91 Кб
Скачать

Лекция1.Введениевклиент-серверныеСубд.

Вконце80-хгодоввсезнали,чторазработкаклиент-серверныхмногопользовательскихсистем-этосложно.Разработкавеласьвосновномнаязыкахчетвертогопоколения,входящихвкомплектсоответствующихСУБД.Стоимостьтакихразработокбылаоченьвеликаизанималисьэтимвосновномсерьезныепрофессионалы.Нишунастольныхприложенийзанялиумельцы,владеющие"народными"СУБДтипаClipper,FoxProиParadox,ислоипрактическинепересекались.

Новначале90-храдикальноподешевелисредстваорганизациилокальныхсетейсразделяемымифайлами(файл-серверов),ипоявились"сетевые"версиинастольныхСУБД,позволяющиекак-тообеспечитьмногопользовательскуюработу.Онизанялипромежуточнуюценовуюиквалификационнуюнишумеждучистонастольнымииклиент-сервернымисистемами(ближекнастольным,естественно).Клиент-серверныеразработкивнашейстранеоказалисьвытесненывобластькритическиважныхhigh-end-решенийтипарезервированияавиабилетов,учетанаоченьбольшихпредприятиях,вкрупныхбанкахидр.

Результатыпрогрессапривелактому,чтонарынкеуверенновозобладалиреляционныеСУБД,ипроизошлосближениефункциональностирядалидирующихклиент-серверныхсистем(Oracle,MSSQL,Sybase,DB2,Interbase,Progress).Ценынаэтисистемызаметноснизились(вразы).

Приорганизацииархитектуры«клиент-сервер»наиболеетрудоемкиеоперациинадбазамиданныхвыполняютсянавыделенномкомпьютере-сервере,которыйдолженбытьдостаточномощнымиобладатьсоответствующимнаборомресурсовосновнойивнешнейпамяти.ДопорысервернаячастьСУБДобладалапростойорганизацией(рис.1.):запросы,поступающиеизклиентскихчастейсистемы,обрабатывалисьпоследовательноснебольшойоптимизациейдлясовмещенияпроцессорнойработысработойустройстввнешнейпамяти.Однакоспоявлениемнарынкемультипроцессорныхсимметричныхаппаратныхархитектур,производителиСУБДбыливынужденыпересмотретьорганизациюсвоихсерверов,допустиввнихвнутреннююпараллельность.Естественно,этотребуеточеньосновательногоперепроектированиясистемысеесущественнымусложнением.

Рис1.Архитектураклиент—сервер

Естьнесколькопричин,определяющихпреимуществаклиент-сервернойархитектурыпередфайл-серверной:

  • уменьшениесетевоготрафиказасчеттого,чтовыборкаданныхпроизводитсянасервере,ионине"прокачиваются"посети;

  • увеличениепроизводительностизасчеттого,чтосамсерверможетэффективнокэшироватьданные;

  • переносчастифункциональностинасерверсуменьшениемтрафикаиувеличениемпроизводительности(хранимыепроцедуры,триггера);

  • масштабируемость-привозрастаниинагрузкидостаточнозаменитьлишьсервер,аневсестанцииисетевыеплаты;

  • наличиетранзакций,безкоторыхпрактическиневозможнообеспечитьлогическуюнепротиворечивостьданных.

Транзакция–этопоследовательностьоперацийнадбазойданных,рассматриваемыхСУБДкакединоецелое.Транзакцияпредставляетсобойнабордействий,выполняемыхсцельюдоступаилиизменениясодержимогобазыданных.

ДлявсехсовременныхреляционныхСУБДосновнымязыкомдоступакбазамданныхявляетсяSQL.В1989г.появилсяпервыймеждународныйстандартэтогоязыка,ибольшинствопроизводителейСУБДобъявляютсвоисистемысоответствующимиэтомустандарту.Ностандарт1989г.былдовольноограниченным(например,внегоневходилисредстваманипулированиясхемойБД,динамическийSQLит.д.),амногиевошедшиевстандартаспектыязыкабылиспецифицированынедостаточнострого.Поэтомуразныереализацииразличаютсявдостаточноважныхвопросах.

В1992г.былпринятновыйстандартSQL-92.Этотязыксущественноболеесложен,чемSQL-89,аконструкцииSQL-92специфицированывстандартесущественноболееполно.Первойкомпанией,котораяобъявилаосоответствиисвоегопродуктановомустандарту,былакомпанияOracleсосвоейседьмойверсией(этопроизошлопрямов1992г.).

Почтивсесовременныесредстваразработкипозволяютработатьсразнымисерверамибазданных.Взначительнойстепениэтомуспособствовалосближениефункциональныхвозможностейсерверовбазданныхипоявлениестандартныхпрограммныхинтерфейсовдляработысними(ODBC,IDAPI,JDBC).

Такимобразом,создаетсяиллюзия,чтосистема,разработаннаядляодногосервераБД,можетбытьлегкоперенесенанадругойили,болеетого,можносделатьсистему,котораябудетработатьсразличнымитипамисерверов.

Насамомделепривнешнемсходстверазличиямеждуразнымисерверамибазданныхостаютсядостаточноглубокими,ионикритичныдлясозданияреальныхпромышленныхприложений:

  • уразныхсерверовразныйсинтаксисифункциональныевозможностиязыковразработкихранимыхпроцедуритриггеров;

  • посколькуразныесерверыпользуютсяразнымиалгоритмамиоптимизации,тозапросы,хорошоработающиенаоднойсистеме,могутоказатьсянеэффективныминадругой.Аарсеналспособовуправленияэффективностьюунихсовершенноразный;

  • местаминесовпадаетдажесинтаксисSQL-вчасти,например,внешнихсоединенийтаблиц(outerjoin);

  • посколькуразныесерверыпользуютсяразнымипринципамиблокировокиорганизациитранзакций,тодляэффективноймногопользовательскойработынужныразныеспособыорганизациипрограммы;

  • каждыйсерверимеетсвоисобственные,уникальныеи,какправило,оченьполезныевконкретныхприложенияхособенности.