Публикации - Лекции
13 февраля [Лекции]
Классификация баз данных.
По форме представления информации различают визуальные и аудиосистемы, а также системы мультимедиа. Эта классификация показывает, в каком виде информация хранится в Бд и выдается из баз данных пользователям - в виде изображения, звука или имеется возможность использования разных форм отображения информации. Понятие «изображение» здесь используется в широком смысле. Это может быть символьный текст, неподвижное графическое изображение (рисунки, чертежи и т.п.), фотографии, географические карты, движущиеся изображения. Классификация способов представления информации являет собой самостоятельную проблему и здесь не рассматривается.
По характеру организации данных Бд могут быть разделены на неструктурированные, частично структурированные и структурированные. Этот классификационный признак относится к информации, представленной в символьном виде. К неструктурированным Бд могут быть отнесены базы, организованные в виде семантических сетей. Частично структурированными можно считать базы данных в виде обычного текста или гипертекстовые системы. Структурированные Бд требуют предварительного проектирования и описания структуры Бд. Только после этого базы данных такого типа могут быть заполнены данными.
Структурированные Бд, в свою очередь, по типу используемой модели делятся на иерархические, сетевые, реляционные, смешанные и мультимодельные.
Классификация по типу модели распространяется не только на
базы данных, но и на СУБд.
В структурированных Бд обычно различают несколько уровней информационных единиц (ИЕ), входящих одна в другую. Число этих уровней может быть различным даже для систем, относящихся к одному и тому же классу. Большинство структурированных систем поддерживают уровень поля, записи и файла. Эти информационные единицы могут называться в разных системах по-разному, но суть остается одной и той же, а именно: полю соответствует наименьшая семантическая единица информации; совокупность полей или иных, более сложных информационных единиц, если они допустимы в конкретной СУБд, образует запись, а множество однотипных записей представляет файл базы данных. В последнее время большинство СУБд в явном виде поддерживают и уровень базы данных как совокупности взаимосвязанных файлов Бд.
В иерархических и сетевых моделях между информационными единицами (записями разных файлов) могут задаваться связи.
Схема иерархической модели
Схема сетевой модели
Как видно из приведенных схем, графическое представление иерархи ческой модели представляет собой граф типа «дерево». В такой модели имеется одна вершина - корень дерева, являющаяся входом в структуру. Каждая вершина, отличная от корня, может иметь только одну исходную вершину и в общем случае сколько угодно порожденных вершин.
Графическое представление сетевой модели представляет собой граф типа «сеть». Входом в такую структуру может являться любая вершина. Каждая вершина может иметь как несколько порожденных, так и несколько исходных вершин. Между парой вершин может быть объявлено несколько связей. Подавляющее большинство СУБд поддерживает простые сетевые структуры, т.е. между каждой парой типов записей поддерживается отношение 1 :М (один ко МНОГИМ). Направление и характер связи в сетевых моделях не являются очевидными, как в случае иерархической Модели, поэтому при изображении структуры Бд направление связи должно быть указано.
В сетевой модели с однотипными файлами каждый файл может служить входом в структуру. Пара связанных файлов называется набором. В наборе тот файл, от которого идет связь, называется владельцем набора, а файл, к которому направлена эта связь, - членом набора. Файл, который в одном наборе является членом, в другом может быть владельцем. другими словами, тип файла жестко не зафиксирован.
В реляционных моделях (в отличие от иерархических и сетевых)
связи между записями разных таблиц БД определяются динамически
в момент выполнения запроса. Эти связи устанавливаются по равенству значений соответствующих полей (полей связи), содержащихся
в каждом из связанных файлов/таблиц.
Другой отличительной чертой реляционных моделей является ограничение на внутризаписную структуру: записи имеют линейную структуру и могут содержать только простые поля. Эти особенности играют решающую роль при проектировании структуры Бд.
Третьей отличительной особенностью реляционных моделей является использование теоретико-множественных языковых средств: реляционной алгебры или реляционного исчисления.
1980-е гг. были временем интенсивного развития реляционных систем: В 1992 г. уровень продаж реляционных СУБД впервые превысил уровень продаж нереляционных СУБд. Но до 90% данных предприятий хранилось к этому моменту в нереляционных базах данных на мейнфреймах. Первая коммерческая реляционная СУБд была выпущена фирмой Oracle в 1979г.
В связи с тем, что в настоящее время основной сегмент рынка занят именно реляционными СУБд, в дальнейшем главное внимание уделим этим системам.
По типу хранимой информации Бд делятся на документальные, фактографические и лексикографические.
К лексикографическим базам данных относятся различные словари (классификаторы, многоязычные словари, словари основ слов и т. п.).
В системах фактографического типа в Бд хранится информация об интересующих пользователя объектах предметной области в виде «фактов» (например, биографические данные о сотрудниках, данные о выпуске продукции производителями и т.п.); в ответ на запрос пользователя выдается требуемая информация об интересующем его объекте (объектах) или сообщение о том, что искомая информация отсутствует в Бд.
В документальных Бд единицей хранения является какой-либо документ (например, текст закона или статьи), и пользователю в ответ на его запрос выдается либо ссылка на документ, либо сам документ, в котором он может найти интересующую его информацию.
По характеру организации хранения данных и обращения к ним различают локальные (персональные), общие (интегрированные, централизованные) и распределенные базы данных.
Персональная база данных - это база данных, предназначенная для локального использования одним пользователем. Локальные Бд могут создаваться каждым пользователем самостоятельно, а могут извлекаться из общей Бд.
Классификация базы данных по характеру хранения данных и обращения к ним
Интегрированные и распределенные Бд предполагают возможность одновременного обращения нескольких пользователей к одной и той же иформации (многопользовательский, параллельный режим доступа).
8 февраля [Лекции]
11. Блокировка – специальный механизм, обеспечивающий согласованное выполнение параллельных транзакций.
12. Вложенная транзакция – транзакция, которая была инициирована внутри другой, еще не завершенной транзакции.
13. Встроенный SQL – один из двух выделяемых видов языка SQL, состоит из команд языка, встроенных в тело программ, написанных на других языках программирования.
14. Группа – набор пользователей, объединенных по определенному критерию.
15. Запрос – выражение на языке SQL, реализующее одну из требуемых функций языка (определение данных, манипуляция данными и другие).
16. Интерактивный SQL – один из двух выделяемых видов языка SQL, используется для задания SQL-запросов пользователем и получения результатов в интерактивном режиме.
17. Интерфейс доступа к базе данных – входящие в состав СУБД библиотеки, предоставляющие специальный прикладной программный интерфейс (Application Programming Interface, API) для доступа к базе данных и реализующие набор функций, вызываемых из клиентского приложения.
18. Ключевое слово – используемое в выражениях языка SQL слово, имеющее специальное значение (например, конкретная команда языка – CREATE, DROP, SELECT).
19. Плоская (традиционная, ACID-) транзакция – транзакция, характеризующаяся четырьмя классическими свойствами: атомарности, согласованности, изолированности, долговечности (прочности).
20. Полномочия – набор действий (операций), которые пользователь может выполнять над объектами данных.
21. Пользователь – специальный объект базы данных, использующийся для реализации избирательного подхода к безопасности.
22. Права доступа – описание совокупности разрешенных операций с теми или иными объектами данных.
23. Роль – именованный (снабженный именем) набор полномочий.
24. Свойство атомарности (Atomicity) – свойство традиционной транзакции, означающее, что транзакция должна быть выполнена в целом (полностью) или не выполнена вообще.
25. Свойство долговечности (Durability) – свойство традиционной транзакции, означающее, что изменения в данных, которые были произведены успешно завершенной транзакцией, не могут быть потеряны, даже в случае последующих ошибок.
26. Свойство изолированности (Isolation) – свойство традиционной транзакции, означающее, что конкурирующие за доступ к базе данных транзакции фактически обрабатываются последовательно, изолированно друг от друга, хотя для пользователя их выполнение может выглядеть параллельным.
27. Свойство согласованности (Consistency) – свойство традиционной транзакции, гарантирующее, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое, то есть транзакция не разрушает взаимной согласованности данных.
28. Транзакция – совокупность команд языка SQL, результаты действия которых для базы данных представляют собой единое целое.
29. Учетная запись – хранящаяся в базе данных информация о пользователе (уникальный идентификатор и пароль).
30. DDL (Data Definition Language, язык определения данных) – подраздел команд языка SQL, позволяющих создавать, изменять и удалять объекты базы данных (таблицы, индексы, пользователей, привилегии и так далее).
31. DML (Data Manipulation Language, язык обработки данных) – подраздел команд языка SQL, позволяющих работать непосредственно с информацией, хранимой в базе данных (извлекать, изменять, удалять и так далее).
32. DQL (Data Query Language, языка запросов) – иногда выделяемый подраздел команд языка SQL, состоящий из одного оператора SELECT.
33. SQL (Structured Query Language, язык структурированных запросов) – язык запросов к реляционным базам данных.
8 февраля [Лекции]
Основная
4. Мартин Грабер. SQL. Описание SQL92, SQL99 и SQLJ. М.: Лори, 2003.
5. Ладани Ханс. SQL. Энциклопедия пользователя. Киев: Издательство ДиаСофт, 1998.
6. Райан С., Рональд Р. П. SQL за 24 часа – М.: ЗАО БИНОМ, 1988.
7. Дунаев С. Доступ к базам данных и техника работы в сети. М.: Диалог-МИФИ, 2000.
Дополнительная
4. Когаловский М. Р. Энциклопедия технологий баз данных. М.: Финансы и статистика, 2002.
5. Винкоп С. Использование Microsoft SQL Server. М., СПб.: Издательский дом «Вильямс», 1999.
6. Корнеев В. В., Гареев А. Ф., Васютин С. В., Райх В. В. Базы данных. Интеллектуальная обработка информации. 2-е изд. М.: Нолидж, 2001.
7. Маклаков С. В. BPWin и ERWin. CASE-средства разработки информационных систем.
8. Кевин Луни. Oracle Database 10g. М.: Лори, 2006.
9. Владислав Пирогов. SQL Server 2005. Программирование клиент-серверных приложений. СПб.: БХВ-Петербург, 2006.
10. Люк Веллинг, Лора Томсон. MySQL. Учебное пособие. М.: Вильямс, 2005.
11. Джеймс Ли, Брент Уэр. Использование Linux, Apache, MySQL и PHP для разработки Web-приложений. М.: Вильямс, 2006.
12. Михеева В., Харитонова И. Microsoft Access 2003. Наиболее полное руководство. СПб.: БХВ-Петербург, 2006.
8 февраля [Лекции]
Задания для самостоятельной работы
• Составьте SQL-запрос, выбирающий из таблицы с именем myT все строки и отображающий все столбцы. • Составьте SQL-запрос, выбирающий из двух таблиц с именами myT1 и myT2 все строки и отображающий все столбцы. • Составьте SQL-запрос, выбирающий из таблицы с именем myT все строки и отображающий столбцы с именами col1, col2 и col3. • Составьте SQL-запрос, выбирающий из двух таблиц с именами myT1 и myT2 все строки и отображающий столбцы c1, c2, c3 из таблицы myT1 и c3, c4, c5 из таблицы myT2. • Составьте SQL-запрос, выбирающий из двух таблиц с именами myT1 и myT2 все строки и отображающий столбцы c1, c2, c3 из таблицы myT1 и c3, c4, c5 из таблицы myT2. При этом столбец c3 из таблицы myT1 должен отображаться с именем c13, а столбец c3 из таблицы myT2 – с именем c23. • Составьте SQL-запрос, выбирающий из таблицы с именем myT все строки и отображающий столбцы с именами col1, col2 и col3, при условии, что числовой столбец cond принимает значение 15. • Составьте SQL-запрос, выбирающий из таблицы с именем myT все строки и отображающий столбцы с именами col1, col2 и col3, при условии, что строковый столбец cond принимает значение «прикладная информатика» (без кавычек). • Составьте SQL-запрос, выбирающий из двух таблиц с именами myT1 и myT2 все строки и отображающий столбцы c1, c2, c3 из таблицы myT1 и c3, c4, c5 из таблицы myT2, при условии, что значения в столбцах c3 строк обеих таблиц должны совпадать. Столбцам c3 таблиц myT1 и myT2 должны быть присвоены псевдонимы c13 и c23 соответственно. • Составьте SQL-запрос, выбирающий из двух таблиц с именами myT1 и myT2 все строки и отображающий столбцы c1, c2, c3 из таблицы myT1 и c4, c5 из таблицы myT2, при условии, что значение в столбце c3 строки таблицы myT1 должно совпадать со значение в столбце c6 строки таблицы myT2, а значение числового столбца cond таблицы myT2 должно быть больше 0. • Составьте SQL-запрос, выбирающий из двух таблиц с именами myT1 и myT2 все строки и отображающий столбцы c1, c2, c3 из таблицы myT1 и c4, c5 из таблицы myT2, при условии, что значение в столбце c3 строки таблицы myT1 должно совпадать со значение в столбце c6 строки таблицы myT2, а числовой столбец cond таблицы myT2 может принимать значения из списка 1, 3, 7, 13. • Составьте SQL-запрос, вставляющий в столбцы c1, c2, c3 таблицы myT1 значения 5, «заседание кафедры» (строковое без кавычек), «21 февраля 2007» (дата в формате дд.мм.гггг). • Составьте SQL-запрос, изменяющий в таблице myT1 значение числового столбца c3 на 5 для всех строк таблицы. • Составьте SQL-запрос, увеличивающий в таблице myT1 значение числового столбца c3 на 5 для всех строк таблицы. • Составьте SQL-запрос, изменяющий в таблице myT1 значение строкового столбца c3 на «студент 2 курса» (без кавычек) для строк таблицы, у которых значение числового столбца c2 равно 10. • Составьте SQL-запрос, увеличивающий в таблице myT1 значение числового столбца c1 на 1 для строк таблицы, у которых значение числового столбца c1 равно 2. • Составьте SQL-запрос, удаляющий все строки из таблицы myT1. • Составьте SQL-запрос, удаляющий из таблицы myT1 те строки, для которых значение числового столбца col1 равно 0. • Составьте SQL-запрос, удаляющий из таблицы myT1 те строки, для которых значение числового столбца col1 меньше либо равно 0, значение числового столбца col2 не равно 0, а значение строкового столбца равно «студент» или «аспирант». • Составьте SQL-запрос, создающий в базе данных таблицу с именем Tab1 и столбцами col1 (целое число), col2 (70 символов), col3 (40 символов), col4(дата), col5 (целое число). • Составьте SQL-запрос, удаляющий из базы данных таблицу с именем Tab1. • Составьте SQL-запрос, вычисляющий количество аспирантов на разных факультетах (данные хранятся в таблице postgraduates, факультет определяется столбцом faculty). • Составьте SQL-запрос, вычисляющий количество аспирантов на факультете «Информационные технологии» (данные хранятся в таблице postgraduates, факультет определяется строковым столбцом faculty). • Составьте SQL-запрос, вычисляющий количество студентов в разных группах на 5 курсе (данные хранятся в таблице students, номер группы определяется числовым столбцом group_num, для 5-го курса номер группы имеет вид 5mn, где mn – две цифры). • Составьте SQL-запрос, вычисляющий количество студентов в разных группах на 5 курсе (данные хранятся в таблице students, номер группы определяется числовым столбцом group_num, для 5-го курса номер группы имеет вид 5mn, где mn – две цифры) и сортирующий выходную информацию по номеру группы (по возрастанию). • Составьте SQL-запрос, выбирающий из таблицы students все строки, у которых в столбце group_num стоит то же значение, что и у строчки, у которой в столбцах last_name, first_name и mid_name стоят значения «Петров», «Сергей», «Иванович» соответственно (без кавычек). • Составьте SQL-запрос, выбирающий из таблицы students все строки, у которых в столбце professor_id стоит то же значение, что и в столбце id строк таблицы professors, для которых в столбцах last_name, first_name, mid_name стоят соответственно значения «Кузнецов», «Петр», «Иванович» или «Селиванов», «Константин», «Сергеевич». • Составьте SQL-запрос, вставляющий в таблицу t1 все строки таблицы t2 (считается, что структуры таблиц одинаковы). • Составьте SQL-запрос, вставляющий в таблицу t1 все строки таблицы t2, для которых числовой столбец col2 имеет значение 1 (считается, что структуры таблиц одинаковы). • Составьте SQL-запрос, вставляющий в таблицу t1 значения столбцов col1, col2, col3 строк таблицы t2, для которых значение столбца col3 больше 0. • Составьте SQL-запрос, дающий пользователю user1 все права на работу с таблицей t1. • Составьте SQL-запрос, дающий пользователю user2 права на выборку из таблицы t2. • Составьте SQL-запрос, дающий пользователю user3 права на выборку и вставку в таблицу t3 с правом дальнейшего делегирования привилегий. • Составьте SQL-запрос, дающий пользователю user4 право изменения столбцов c1, c2, c3 таблицы t4. • Составьте SQL-запрос, лишающий пользователя user1 всех прав на работу с таблицей t1. • Составьте SQL-запрос, лишающий пользователя user2 прав на выборку из таблицы t2. • Составьте SQL-запрос, лишающий пользователя user3 прав на выборку и вставку в таблицу t3 при условии, что пользователь user3 успел делегировать часть своих прав пользователю user5.
8 февраля [Лекции]
Обзор современных СУБД: Oracle 10g, Microsoft SQL 2005, Access 2003, MySQL, Cashe
Разговор о базах данных будет неполным без упоминания о состоянии дел на настоящий момент. Поэтому в качестве заключения рассмотри наиболее известные и распространенные сегодня СУБД.
Oracle 10g в настоящее время является одним из лидеров коммерческих СУБД, использующихся в крупных информационных системах.
База данных Oracle представляет собой совокупность данных, размещенных в одном или нескольких файлах. Она содержит физические и логические структуры. Главной структурой базы данных Oracle являются таблицы. СУБД поддерживаются не только обычные реляционные таблицы, но и таблицы специальных видов, например временные таблицы (с которыми работают много пользователей, но каждый видит только свои строки), кластерные таблицы (физическое объединение в одну структуру двух часто использующихся таблиц), удаленные таблицы (для быстрого восстановления удаленных таблиц, в том числе сразу нескольких).
Помимо множества таблиц, СУБД Oracle 10g также поддерживает различного рода индексы: древовидные, битовые, индексы с обратным ключом, функциональные, секционированные, текстовые.
Описанные логические структуры хранятся в специальном словаре данных (data dictionary), в котором хранятся метаданные о каждом объекте: владелец объекта, определение, привилегии и другое.
Физически табличное пространство состоит из одного или нескольких файлов данных. Один файл может принадлежать только одному табличному пространству. В Oracle 10g появилась возможность использовать табличные пространства большого файла – до нескольких тысяч терабайт.
Автоматизированное управление памятью позволят автоматизировать размещение файлов данных и других файлов, распределяя их по всем доступным дискам. В случае добавления новых дисков данные для достижения оптимальной производительности перераспределяются по всем имеющимся дискам.
Автоматическое управление отменой действий предлагает мощный механизм поддержки транзакций. В версии Oracle 10g появилась даже возможность выполнения ретроспективных версий запросов, чтобы увидеть различные версии строки в определенные моменты времени.
Также в Oracle 10g появилась концепция мусорной корзины, позволяющая быстро восстанавливать удаленные таблицы. Теперь по умолчанию при удалении таблицы ее дисковое пространство не освобождается, и она может быть просмотрена с помощью представления словаря данных RECYCLEBIN. Данная архитектура упрощает восстановление случайно удаленных таблиц, но и предъявляет особые требования к дисковой памяти.
Система безопасности СУБД Oracle 10g и вовсе считается эталоном, однако, это требует особых навыков и знаний для управления ей. Можно не только передавать полномочия на конкретные функции пользователям или ролям, группируя полномочия в управляемые наборы, но и следить за тем, какие строки являются доступным, а во время аудита проверить, для каких строк срабатывали записанные события аудита.
Microsoft SQL Server 2005 является решением следующего поколения компании Microsoft для управления и анализа данных, которое предоставляет повышенную безопасность, стабильность данным предприятия и аналитическим приложениям, облегчая их построение, развёртывание и управление.
Платформа данных SQL Server включает реляционную базу данных, Replication Services (сервис для репликация данных и интеграция с разнородными системами, включая существующие базы данных Oracle), Analysis Services (аналитическая обработка в реальном времени (OLAP) для быстрого, сложного анализа больших и смешанных наборов данных, использующая многомерное хранение), инструменты управления и разработки, а также многие другие компоненты.
SQL Server 2005 также содержит много новых и улучшенных возможностей, относящихся к следующим областям:
21. Управляемость
22. Доступность
23. Масштабируемость
24. Безопасность
SQL Server 2005 упрощает развертывание, управление и оптимизацию данных предприятия и аналитических приложений. SQL Server 2005 предоставляет более 70 новых мер внутренней производительности базы данных и использования ресурсов от памяти, блокировок и планирования до транзакций и операций сетевого и дискового ввода-вывода. Зеркалирование базы данных позволяет непрерывно передавать содержимое журнала транзакций исходного сервера на один целевой сервер. В случае сбоя основной системы приложения могут немедленно соединиться с базой на вспомогательном сервере. Кластеры с восстановлением после отказа являются решением высокой готовности, которое использует службы кластеризации Microsoft Windows для создания устойчивых к сбоям виртуальных серверов, обеспечивающих быстрое восстановление в случае сбоя сервера баз данных. SQL Server 2005 дает администраторам баз данных возможность создавать мгновенные, доступные только для чтения снимки базы данных. Моментальный снимок базы данных предоставляет устойчивый снимок без накладных расходов на время и хранение на создание полной копии базы данных. Когда основная база данных расходится со снимком, последний добавляет свои собственные копии страниц, по мере того, как они изменяются.
SQL Server 2005 имеет существенные улучшения в модели безопасности платформы базы данных:
44. Применение политик для паролей учётных записей SQL Server в области аутентификации
45. Обеспечение большей модульности дл указания разрешений на различных уровнях в области авторизации
46. Разделение владельца и схемы в области управления безопасностью.
Как и любой другой продукт компании Microsoft, SQL Server 2005 обязательно содержит множество новых технологий, интегрирующих его с другими продуктами компании и существенно увеличивающих продуктивность разработчиков. Начиная с поддержки .NET Framework и заканчивая тесной интеграцией с Visual Studio, эти функции предоставляют разработчикам возможность проще создавать безопасные, сильные приложения баз данных при меньших затратах.
Microsoft Access является одним из основных компонентов Microsoft Office и предназначена для работы с реляционными базами данных. Особенность данной СУБД: вся информация базы данных хранится в одном файле с расширением .mdb. Кроме информации таблиц, в этом же файле сохраняются компоненты приложения для работы с базой данных – экранные формы, отчеты, запросы, программные модули.
Для работы с базой данных система использует Microsoft Jet database engine – систему управления базами данных, извлекающую и сохраняющую данные в пользовательских и системных задачах. Ядро базы данных Microsoft Jet можно рассматривать как компонент диспетчера данных, с помощью которого строятся остальные системы доступа к данным, такие как Microsoft Access и Microsoft Visual Basic. Язык написания программных модулей для работы с базой данных – Microsoft Visual Basic for Applications (VBA).
Можно сказать, что Microsoft Access – одна из наиболее распространенных настольных СУБД, сохранившихся в настоящее временя. Ей присущи все основные признаки реляционной СУБД, она имеет встроенные средства проектирования инфологической модели базы данных, а самый большой интерес представляет, пожалуй, система безопасности, достаточно развитая для настольной СУБД.
Microsoft Access имеет собственные средства для разграничения прав доступа пользователей к базе данных. Простейшим способом ограничения доступа к базе данных является установка пароля для открытия базы данных (*.mdb). После установки пароля при каждом открытии базы данных будет появляться диалоговое окно, в которое требуется ввести пароль. Этот способ достаточно надежен (Microsoft Access шифрует пароль, поэтому к нему нет доступа при непосредственном чтении файла базы данных), но он действует только при открытии базы данных. Есть и еще одно ограничение. Использовать установку пароля на базу данных нельзя, если предполагается выполнять репликацию базы. Реплицированные базы данных не могут быть синхронизированы, если установлен пароль базы данных.
После открытия базы все объекты становятся доступными для пользователя, пока не определены другие типы защиты. Защита на уровне пользователей имеет большие возможности по разграничению прав. Этот способ подобен способам, используемым в большинстве сетевых систем. При запуске Microsoft Access от пользователя требуется идентифицировать себя и ввести пароль. Microsoft Access по умолчанию создает две группы: администраторы (группа Admins) и простые пользователи (группа Users). Допускается определение других групп и пользователей.
Члены группы Admins имеют разрешения на доступ ко всем объектам базы данных. Другим группам и пользователям могут предоставляться разрешения на доступ только к отдельным объектам базы данных. Типовые разрешения на доступ для группы Users могут включать "Чтение данных" и "Обновление данных" для таблиц и запросов, а также "Открытие/запуск" для форм и отчетов.
Также база данных может быть зашифрована. При шифровании базы данных ее файл сжимается и становится недоступным для чтения служебными программами или текстовыми редакторами. Дешифрование базы данных отменяет результаты операции шифрования.
MySQL – это очень быстрый, многопоточный, многопользовательский, поддерживающий SQL (Structured Query Language) сервер баз данных. Особенностью MySQL является то, что он распространяется бесплатно (для некоммерческого внутреннего использования) и лицензируется по GNU GENERAL PUBLIC LICENSE.
MySQL представляет собой очень популярную систему управления базами данных с открытыми исходными текстами, разрабатываемую MySQL AB. MySQL AB является коммерческой компанией, строящей свой бизнес на сервисах, сосредоточенных на базе данных MySQL.
MySQL является системой «клиент-сервер», состоящей из многопоточного SQL-сервера, который поддерживает различные функции, несколько различных клиентских программ и библиотек, административные инструментальные средства и несколько интерфейсов программирования. Наибольшее распространение данная СУБД нашла в разработке web-порталов в сочетании с исключительно удобным языком web-программирования PHP. В настоящее время подавляющее большинство web-систем разрабатывается с использованием связки PHP + MySQL.
Основные возможности MySQL следующие:
• Полностью многопоточное использование ядерных нитей. Это означает, что пакет может легко использовать много процессоров, если они есть.
• Интерфейсы для языков C, C++, Eiffel, Java, Perl, PHP, Python и Tcl.
• Возможность смешивать таблицы из разных баз данных в одном запросе.
• Привилегии и система паролей, которая является очень гибкой и безопасной, и позволяет проверку, основанную на имени хоста. Пароли безопасны потому, что вся передача пароля шифрована в процессе соединения с сервером.
• Поддержка поистине огромных объемов данных. Известен случай использования MySQL на 60000 таблиц, хранящих около 5000000000 строк.
• Для переносимости использованы GNU Automake, Autoconf и Libtool.
• Пакет написан на C и C++. Оттестирован на всех распространенных компиляторах этих языков.
• Очень быстрая поточно-безопасная система управления памятью.
• Никаких утечек памяти. MySQL тестировался с помощью Purify, коммерческого детектора утечек памяти.
• Клиенты могут соединяться с сервером MySQL, используя все допустимые в современных сетях технологии: сокеты TCP/IP, сокеты Unix (под Unix) или даже именованные каналы (под NT).
Cache — это постреляционная СУБД, основанная на новой технологии, обеспечивающей высочайшую производительность и масштабируемость прикладных систем. Cache поддерживает сразу три способа работы с данными:
• объектный,
• реляционный (на основе SQL),
• высокопроизводительный и гибкий многомерный метод доступа к данным.
Кроме того, Cache обеспечивает быструю и эффективную разработку web-приложений, поддержку механизма транзакций при работе с данными, легкую масштабируемость приложений, предъявляя, при этом, крайне скромные требования к аппаратным ресурсам, используемым системой и администрированию. Cache поддерживает большинство платформ, используемых для создания промышленных приложений – от Windows, OpenVMS, Unix/Linux до Mac OS X. На ее основе разработаны различные системы, оперирующие как малыми, так и большими массивами данных (порядка нескольких терабайт), с которыми одновременно могут работать до 50 000 пользователей.
Cache позволяет разработчикам использовать знакомые им языки и инструменты программирования: Java, .Net, Active X, C++, Delphi, SQL, XML и HTML. Cache также поддерживает полноценную концепцию объектного программирования, позволяющую в короткие сроки как разрабатывать новые, так и вносить улучшения в уже существующие приложения. Особый интерес для программистов, занимающихся созданием Web-приложений, представляют технологии Cache Server Pages и ZEN — простой и удобный способ создания высокопроизводительных Web-приложений.
Многомерное представление данных на сервере Cache позволяет ускорить выполнение таких обычно длительных операций, как «объединение таблиц». Скорость доступа к данным в Cache практически не зависит от размера базы данных, что позволяет увеличить размер транзакционного приложения без потери производительности.
SQL-доступ к данным Cache обеспечивает способность к взаимодействию с обычными реляционными приложениями, включая инструменты построения отчетов и аналитической обработки данных. Благодаря тому, что хранение данных в Cache фактически осуществляется в эффективных многомерных структурах, приложения, использующие SQL в качестве языка запросов, при работе с постреляционной базой данных работают намного быстрее.
Cache полностью поддерживает объектную архитектуру, в частности, такие ее основы, как множественное наследование, полиморфизм и коллекции. Используя эти возможности, разработчики могут моделировать предметную область реалистическими, понятными способами, ускоряя таким образом, процесс разработки приложений. Cache реализует не только все основные идеи объектной архитектуры, но и позволяет использовать современные технологии объектного моделирования и реинжиниринга, такие как Rational Rose.
В InterSystems принят подход «define once — use anywhere» (определено однажды — используется везде) к управлению данными. В Cache данные любого объекта можно получить как SQL-таблицу, a каждую таблицу — как объект. Данные Cache автоматически могут быть представлены на любом из объектно-ориентированных языков программирования и в SQL. Вам больше не надо заниматься утомительным отображением объектов в реляционные таблицы, больше не нужен дополнительный «трансляционный» слой между логикой приложения и базой данных.
Cache Server Pages предоставляет изящные средства создания быстродействующих, хорошо масштабируемых web-приложений за короткое время. При этом облегчается как дальнейшее сопровождение, так и развитие таких приложений. Технология Cache’ Server Pages позволяет создавать динамическое web-содержимое в зависимости от времени, пользовательского ввода, отношений между сохраненными данными и тому подобного. В ее основе лежат HTML-страницы – так называемые CSP-страницы, содержащие специальные теги, которые выполняются на сервере Cache’ каждый раз, когда происходит обращение к ним, и которые возвращают индивидуальное содержимое.
Технология ZEN, по сути, является надстройкой над технологией CSP, делая разработку web-приложений более простой и удобной, при этом используя все преимущества CSP, такие как быстродействие, доступ к данным, безопасность, и дополняя ее возможностью сборки web-страниц из встроенных объектных компонентов.
Здравствуйте, гость!
Категории статей
Поиск статьи