- •Введение.
- •Лекция1.Введениевклиент-серверныеСубд.
- •InterbaseSqlServer.Общиесведения.
- •Платформы
- •Типыприложений
- •ФайлыбазыданныхInterBase
- •Лекция3.Триггерыихранимыепроцедуры
- •Хранимыепроцедуры(StoredProcedures)
- •Терминаторы
- •Заголовок
- •Телопроцедуры
- •Блоккодапроцедуры
- •Операторприсваивания
- •УсловныйоператорIf…then…else
- •ОператорSelect
- •ЦиклForselecTиSuspend
- •ЦиклWhile…do
- •ОператорыInsert,update,delete
- •ОператорExecuteprocedure
- •Исключения
- •СобытияиоператорPost_event
- •Измененияиудаленияхранимыхпроцедур
- •Примерысозданияивызовахранимыхпроцедур
- •Генераторы
- •Увеличениешагагенератора
- •Триггеры
- •ПеременныеNeWиOld
- •Реализацияавтоинкрементныхключевыхполей
- •Лекция4.Транзакции.Механизмтранзакций
- •Атомарность(Atomicity)
- •Согласованность(Consistency)
- •Изолированность(Isolation)
- •Устойчивость(Durability)
- •Неявныйиявныйстарттранзакций
- •Кактранзакцияработает
- •Уровниизолированноститранзакций
- •Параметрытранзакций
- •Компонентыдоступакданнымивизуальныекомпоненты МеханизмыдоступакБд
- •ПроблемырусскихбукввInterBase
- •Лекция5. Основы языка php. Функции php для работы с субд ИсторияPhp
- •ВозможностиPhp
- •Основнойсинтаксис
- •Разделениеинструкций
- •Комментарии
- •Переменные,константыиоператоры
- •Переменные
- •Константы
- •Операторы
- •Типыданных
- •Типboolean(булевилилогическийтип)
- •Типinteger(целые)
- •Типfloat(числасплавающейточкой)
- •Типstring(строки)
- •Одинарныекавычки
- •Двойныекавычки
- •Типarray(массив)
- •Определениеприпомощиarray()
- •Определениеспомощьюсинтаксисаквадратныхскобок
- •Типobject(объекты)
- •Типresource(ресурсы)
- •Решениезадачи
- •Построениеинтерфейсадлядобавленияинформации
- •Установкасоединения
- •Выборбазыданных
- •Получениеспискаполейтаблицы
- •Отображениеспискаполейвhtml-форму
- •Записьданныхвбазуданных
- •Отображениеданных,хранящихсявMySql
- •Заключение
Лекция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);
посколькуразныесерверыпользуютсяразнымипринципамиблокировокиорганизациитранзакций,тодляэффективноймногопользовательскойработынужныразныеспособыорганизациипрограммы;
каждыйсерверимеетсвоисобственные,уникальныеи,какправило,оченьполезныевконкретныхприложенияхособенности.