Теория и практика построения баз данных (1088289), страница 136
Текст из файла (страница 136)
Более подробная информация содержится в лицензионном соглашении, которое можно найти на сайте Му5Я) . В Му5О). отсутствуют мноп1е возможности. которые можно найти в коммерческих СУБД, подобных Огас!е с 5О1. 5егчег, и если у вас есть доступ к одному из этих продуктов, стоит использовать их. Если же вы работаете с малым бюджетом или хотите принять участие в движении преп зоигсе, Му5О( может быть хорошим выбором.
В среде 11пих/1)п|х Му5О). не только дешевле, чем Огас!е и другие коммерческие продукты, но и легче в установке. В настоящее время есть несколько хороших книг, способных послужить руководством по Му5Я1.. Это может показаться забавным, но по причине своих ограниченных возможностей в сфере управления транзакциями и протоколирования Му5ЯС показывает очень высокое быстродействие в приложениях, целиком ориентированных на запрос. Есть интернет-компании, которые для поддержки своих баз данных используют Огас)е, но для публикации на тчеЬ-серверах загружают их в МуБС/1 . Му5Я1 версий З.х не поддерживает представления, хранимтве процедуры и триггеры.
Все это, однако, включено в список задач на будущее, поэтому стоит 634 Глава 16. ЮВС, Оача Яегчес Радев и ПяуЯС)С МУЯСИ 635 просмотреть последнюю документацпкс на предмет того, не появились ли какие-то из этих функций в более новых версиях продукта. Второй момент касается ограничений внешнего ключа (ссьслочссой целостности). Хотя этн ограничения воспринимаются Му5111. при синтаксическом аналнзе как допустимые конструкции, никаких действий в связи с ними не предпринимается. Это означает, например, что выражение ОМ СА5САОЕ ОЕЕЕТЕ в ограничении внешнего ключа не будет воспринято как ошнбка, однако каскадные удаления, вопреки ожиданиям, производиться пе будут.
Если обратиться к примеру с галереей У!ечс Й!с)де, то синтаксическссй анализатор МуЯЯЕ легко пропустит следующее ограничение: Аетей тАВЕЕ С05тОМЕЙ АЙт15т 1ит АОО сби5тЙА1ит Сивтовег!птеК ГОЙе!ОИ КЕУ(Сов!ел)ег!О) ЙЕГЕЙЕИСЕ5 С05ТОМЕЙ ОИ ОЕЕЕТЕ СА5САОЕ; Но после удаления строки из таблицы С05ТОИ)ЕЙ каскадных удалений не будет, и придется выполнить их вручную. Работа с МУЗСИ Чтобы запустить МуЯЯЕ из командной строки, введите Му5ОЕ -и иия пользователя -р Введите действуюсцее имя пользователя. После этого вам будет предложено ввести пароль.
Если вы используете учетную запись, которая не имеет пароля, вы можете набрать Му50Е -о иия пользователя Чтобы увидеть, какие имеются базы данньсх, введите 5лоы Оатаоавев: Обратите внимание, что команды сМуЯс2ь завершаются точкой с запятой. Кроме того, команды МуЯЯЕ нечувствительны к регистру, но в именах пользовательских конструкций (таблисс, столбцов и т. д.) регистр имеет значение. Работа с существующей базой данных Для работы с одной из уже существующих баз данных введите Ове иия базы данных; Например, для работьс с базой данных чс1 следует набрать Ове чг1; Чтобы узнать, какие таблицьс имеются в базе данных, введите 5Поы таЬ)ев; Метадастые таблиц выводятся с помощью команды с)евспЬе, например Оевсгт'Ье С05ТОМЕЙ: Теперь можно вволпть любые стандартные одераторьс ЯЯ1.. Операторы 5ЕЕЕСТ, ОРОАТЕ, 1М5ЕЙТ и ОЕЕЕТЕ будут работать так, как и ожидается.
Создание новой базы данных Чтобы создать новую базу данных, войдите в МУЯьсь с той учетной записн, кото- рую вы хотите сделать владельцем новой базы. Затем введите Сгеа!е Оа!абазе ния новой базы данных; Например, чтобы создать базу данных с именем чг2, следует ввести Сгеаее ОатаЬаве чг2; СЙЕАТЕ !ИВЕХ С05ТОМЕЙ Маме 10Х ОИ С05ТОМЕЙ (Иаде) АЙТ!5Т ! тпт АОТО !ИСЙЕМЕИТ РЙ1МАЙУ КЕУ, чагсПаг(25) ИОТ ЙОЕЕ, чагслаг(30) ИОЕС. уеаг МОСС. уеаг ИОЕЕ); СЙЕАТЕ ТАВСЕ Агщ 5110 Масле Ма!тола!тбу Втгтлбате ОесеавеООаве СЙЕЯТЕ ОИИОЕ 1ИОЕХ АЙТ!5Т Иал)е !ОХ ОИ АЙТ!5Т!Иаясе); СЙЕАТЕ ТАВСЕ ЫОЙК( Мосх!0 тп! Оевсгтр1топ Ьех! АОТО 1ИСЙЕМЕИТ РЙ!МАЙУ КЕУ, ИЮ.. Создав пустую базу данных, можно формировать ее структуру с помощью ЯЯ1.- операторов СЙЕ*ТЕ, как мы делали ранее.
В листинге 16.7 показана последователь- ность операторов, создающая структч7у базы данных У!еис ЙЫде. Всем суррогатным ключам дано свойство АОТО 1МСЙЕМЕМТ. Этот тип данных представляет собой под- держиваемую МуЯЯЕ последовательность, которая начинается с единицы и увели- чивается с шагом один. Обратите вспсмание, что МуЯЯ1 поддерживает тип данных уеат. Этот тнп данных, являющийся четырехзначным целым числом, используется для столбцов В!УГПОа!е и ОесеавебОасе таблицы АЙТ15Т.
Обратите внимание и на то, что ограничения внешнего ключа отсутствуют. 1(ак уже говорилось выше, Му50Е воспримет их как допустимые конструкции, но ничего не будет с ними делать. Листинг 16.7. ЯОС-операторы дли создания базы данных Хйечс Р)с)де в МуЯОС СЙЕАТЕ ТАВСЕ С05ТОМЕЙ ! Сивтовег!0 тпт ЯОТО !ИСЙЕМЕИТ РЙ!МАЙУ КЕУ, Маце чагсПаг(25) ИОЕС, 5тгеет чагсиаг (30) ИОН., Ст!у чагсиаг135) МОСЕ, 5тате чагсПаг(2) МОСЕ, 7)р чагсПаг(9) ИОН., АгеаСобе чагслаг(3) ИОЕЕ. РПопеиолсоег чагспаг !8) МОСЕ); 636 Глава 16.,)!)ВС, 4ача Яегчег Радев и )Ч)у501 МЧВСН 637 Листинг 16.71продолжение) Т1'1) е чагсЬаг!25) ИОТ ИОИ., Сору чагсЬаг!8) ИОТ МОСС. Агтш110 1П1 ИОТ МОСС), СКЕАТЕ ОИ100Е 1ИОЕХ ИОКИ 10 !ОХ ОИ ИОКИ !Т11)е, Сору, АГЬ)з110); СКЕАТЕ ТАВСЕ С05ТОМЕК АКТ15Т 1ИТ ! Ягьш110 1п1 ИОТ НОАС, Саз1ааег10 1п; ИОТ ИО С); АСТЕК ТАВОТ Е С05ТОМЕК АЙТ15Т 1ИТ А00 СОИ5ТКА1ИТ С05Т АКТ!5Т РК РК!МАЙТ КЕУ ! Аг11зт!О Сиз1онег!0 ); СКЕАТЕ ТАВСЕ ТКАИ5АСТ10И Тгапзас11оп!О )пг АВТО 1ИСКЕМЕИТ ОаьеАсОШ гей Ьзсе ИОТ ЙОСС.
Асоо1з11)опРг1се Ьества)!7.2) МОСС, Ригсиазе0асе Ьаье МОСС, 5а)езРшсе Ьес1на)(7.2) МОСЕ, Сиз1озег!0 1п1 МОСС ИагЙ!О 1пь ИОТ МОСС); РК!МАЙТ ХЕТ. аузс! --изег=ЬХ! --раззноге=везаее < ЧК50С схт В результате запустится Му5ЯЕ для пользователя оК1 с паролем зезаае и будут выполнены содержащиеся в файле операторы. Настройка разрешений на доступ для 4РВС Если вы понимаете ограничения Му5О), работа с этой СУБД не представляет трудностей. Операторы 5О). выполняются в точности так, как и следует ожидать.
Есть, однако, одна маленькая особенность, о которой следует знать. Соединения В листинге 16.7 создается уникальный индекс по столбцам (Тй!е, Сору, Агг!з110) таблицы Ч)ОКК. Этот уникальный индекс предотвращает вставку в базу данных повторяющихся записей о произведениях.
Это означает, что действия, выполняемые приведенными ранее !ача-программамп для предупреждения таких с1пуаций, оказываются ненужными. Они не приносят никакого вреда, разве что чуть- чуть снижают производительность. Тем не менее, как сказано в главе 10, всегда лучше по возможности обеспечивать выполнение ограничений целостности в базе данных.
Показанные здесь операторы можно вводить в Му5О1. вручную, Но если эти операторы записаны у вас в файле, их можно импортировать в Му5ЯЕ.. Предположим, последовательность операторов, показаниьсх в листинге 16.7, содержится в файле под именем ЧЙ50С1хк Чтобы ее выполнить, введите в командной строке оболочки зЬеП (не Му5Я) !) следующую команду: с ) РВС обрабатываются не так, как все остальные пользовательские соединения. Чтобы понять, что в связи с этим следует делать, рассмотрим сначала словарь данных Му5Я1 . Му5Я) хранит метаданные в базе данных аузоЕ Особый интерес представляют в ней две таблицы: изег и оЬ. Чтобы увидеть содержащиеся в них метаданные, откройте базу данных ауза! и введите команду оезспЬе с именами этих таблиц.
Для просмотра списка пользователей и их компьютеров введите на приглашение аузй1 следуюшее: Озе яуза); 5ЕСЕСТ Мозг, Озег ЕКОМ изег; Для просмотра списка пользователей, их компьютеров и баз данных, доступных для них, введите 5ЕСЕСТ Нозь, Озег. ОЬ РВОМ ЬЬ: В качестве имени компьютера обычно фигурирует строка !оса!Ьоз1, имя компьютера, на котором работаег Му5О1., н имена других компьютеров.
Значение 'й означает, что данный пользователь может устанавливать соединение с любого компьютера. Исходя из этого, логично предположить, что программы зРВС, работавшие на той же машине, что и Му5О), в качестве имени компьютера будут иметь !оса!Ьозк Однако это не так. Дело в том, что для Му5О1. !оса!Ьоз! обозначает соединение через сокет, тогда как в ) РВС соединение устанавливается по протоколу ТСР/! Р. Таким образом, если вы хотите установить соединение с помощью ) РВС, простейшим !но наименес безопасным) методом будет предоставить требуемой учетной записи доступ к базе данных с любой машины.
Это делает следующий оператор: ОЙАИТ АСС ОИ чг!.* ТО г)И19"1" !ОЕИТ!Е1ЕО В)' "зезане". Этот оператор предоставляет полномочия доступа ко всем таблицам базы данных чг1 пользователю учетной записи оЙ1 с паролем зезаае. Символ процента !'й) означает, что ВЙ1 может устанавливать соединение с любого компьютера. Для большей безопасности его следует заменить конкретным 1р-адресом. Выполнив этот оператор, запросите из таблицы оЬ столбцы Озег, Мозг н ОЬ, чтобы удостовериться, что ваш пользователь в качестве имени компьютера имеет '/о. Если это так, то вы можете соединяться с этой базой данных с помощью ) РВС. Управление параллельной обработкой Му5О) имеет ограниченную поддержку управления параллельной обработкой.
В версии З.О отсутствует поддержка транзакций, соответственно, уровень изоляции транзакции тоже установить невозможно. Отсутствует также возможность отката транзакций. Приложения должны выполнять откат самостоятельно прн необходимости. 638 Глава 1б. ЮВС, Зама Яетчег Райез и ВлуЯС10 Резюме 639 МуБО1 использует блокировки чтения и записи на уровне таблицы. При выполнении оператора 5ЕСЕСТ МуБЯТ.