
- •I этап. Постановка задачи.
- •II этап. Анализ объекта.
- •III этап. Синтез модели.
- •IV этап. Выбор способов представления информации и программного инструментария.
- •V этап. Синтез компьютерной модели объекта.
- •VI этап. Работа с созданной базой данных.
- •Семантическая модель Entity-Relationship (Сущность-Связь)
- •10.2.1. Основные понятия er-модели
- •10.2.2. Уникальные идентификаторы типов сущности
- •Case-средства. Общая характеристика и классификация
- •Концептуальное (инфологическое) проектирование
- •4.1.1.Структура данных.
- •4.1.2.Свойства отношений.
- •Понятие функциональной, транзитивной и многозначной зависимости. Примеры.
- •Введение
- •Преимущества и недостатки [править] Преимущества [править] Независимость от конкретной субд
- •[Править] Наличие стандартов
- •[Править] Декларативность
- •[Править] Недостатки [править] Несоответствие реляционной модели данных
- •Операторы
- •Предикат сравнения
- •2.3.4.2.2 Предикат between
- •2.3.4.2.3 Предикат in
- •2.3.4.2.4 Предикат like
- •2.3.4.2.5 Предикат null
- •2.3.4.2.6 Предикат с квантором
- •Что такое агрегатные функции ?
- •Как использовать агрегатные функции ?
- •Специальные атрибуты count
- •Использование distinct
- •Использование count со строками, а не значениями
- •Включение дубликатов в агрегатные функции
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Не делайте вложенных агрегатов
- •Управление доступом в базах данных
- •Запросы
- •Макросы
- •Поле объекта ole
- •Гиперссылка
- •Мастер подстановок
- •Добавление записи
- •Изменение записи
- •Удаление содержимого поля или удаление всей записи
- •Создание схемы
- •Дополнительные параметры
- •Назначение и виды запросов в Access. Назначение запросов.
- •Виды запросов.
- •( Для показа суммирования в одной колонке):
- •( Для создания всевозможных подсчетов на базе Схемы данных):
- •8.2. Вычисления в запросах, возможности создания и редактирования формул.
- •8.4. Использование запросов на Удаление и на Обновление.
- •Типы отчетов Access: краткий обзор
- •Простые отчеты
- •Иерархические отчеты
- •Отчеты, содержащие отсортированные, сгруппированные записи или записи обоих типов
- •Отчет, содержащий отсортированные записи
- •Отчет, содержащий сгруппированные записи
- •Перекрестный отчет
- •Отчет, содержащий несколько столбцов
- •Структура программ на vba
- •Стандартные способы защиты Защита с использованием пароля бд
- •Защита с использованием пароля пользователя
- •Нестандартные способы защиты Изменение расширения файла
- •Защита с использованием пароля бд, содержащего непечатные символы
- •Защита с модификацией файла
- •Защита изменением версии бд
- •Защита с использованием электронного ключа
- •Шифрование значений таблиц
- •Заключение
- •Администратор базы данных (dba)
- •История
- •Основные задачи администратора базы данных
- •Основные типы администраторов бд
- •Поддержка мультимедийных объектов
- •5.1.1. Третичная память
- •5.1.2. Новые типы данных
- •5.1.3. Качество обслуживания
- •5.1.4. Запросы с нечеткими критериями
- •5.1.5. Поддержка пользовательских интерфейсов
- •5.2. Распределение информации
- •5.2.1. Степень автономности
- •5.2.2. Учет и расчеты
- •5.2.3. Безопасность и конфиденциальность
- •5.2.4. Репликация и согласование данных
- •5.2.5. Интеграция и преобразование данных
- •5.2.6. Выборка и обнаружение данных
- •5.2.7. Качество данных
- •5.3. Новые применения баз данных
- •5.3.1. Интеллектуальный анализ данных
- •5.3.2. Хранилища данных
- •5.3.3. Репозитарии
- •5.4. Управление потоками работ и транзакциями
- •5.4.1. Управление потоками работ
- •5.4.2. Альтернативные модели транзакций
- •5.5. Простота использования
- •6. Выводы
Преимущества и недостатки [править] Преимущества [править] Независимость от конкретной субд
Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально ориентировались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle, так и с Microsoft SQL Server и IBM DB2). Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.
[Править] Наличие стандартов
Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах (например, Core-часть стандарта SQL:2003 представляет собой более 1300 страниц текста).
[Править] Декларативность
С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса. Однако не стоит думать, что это полностью универсальный принцип — программист описывает набор данных для выборки или модификации, однако ему при этом полезно представлять, как СУБД будет разбирать текст его запроса. Чем сложнее сконструирован запрос, тем больше он допускает вариантов написания, различных по скорости выполнения, но одинаковых по итоговому набору данных.
[Править] Недостатки [править] Несоответствие реляционной модели данных
Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности, они указывают на следующие проблемы SQL[8]:
Повторяющиеся строки
Неопределённые значения (nulls)
Явное указание порядка колонок слева направо
Колонки без имени и дублирующиеся имена колонок
Отсутствие поддержки свойства «=»
Использование указателей
Высокая избыточность
В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем Манифесте[9] они излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.
[править] Сложность
Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.
[править] Отступления от стандартов
Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.
[править] Сложность работы с иерархическими структурами
Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения (например, Oracle использует выражение CONNECT BY). В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005.
16
История развития SQL
SQL ведет свою историю с начала 1970-х лет, когда в исследовательской лаборатории компании IBM в штате Калифорния была разработана его первая версия. Первая публикация описания языки относится к 1974 года. В то время его назвали SEQUEL (Structured English Query Language - структурированный английский язык запросов). Сначала он был реализован в экспериментальной реляционной СУБД System/R, проект которой инициировала в середине 70-х лет компания IBM в исследовательской лаборатории в Сан-Хосе. При реализации следующей версии System/R язык был переименован в SQL. Исследовательский проект System/R был завершен в 1979 году. Он подтвердил возможность создания эффективных промышленных реляционных СУБД.
В 1977 году небольшая, только что организованная фирма Relational Software приступила к созданию промышленной реляционной СУБД на основе SQL. Поставки этой СУБД, что получила название Oracle, начались в 1979 году. В скором времени и сама фирма была переименована в Oracle. И с тех пор она является наибольшим поставщиком реляционных СУБД на базе SQL.
В середине 70-х годов, в исследовательской лаборатории Калифорнийского университета в Беркли был открыт проект по созданию реляционной СУБД. В этой лаборатории, как и в компании IBM, создали экспериментальную СУБД, что получила название Ingress, на которой отрабатывались результаты научных исследований в области реляционных баз данных. В 1980 году часть сотрудников этой лаборатории организовали фирму Relational Technology, которая в 1981 году выпустила промышленную СУБД Ingress. Сначала эта СУБД использовала реляционный язык QUEL, однако в 1986 году была переведена на SQL. В 1980 году компания IBM на основании опыта, полученного при разработке экспериментальной System/R, приступила к созданию собственной промышленной СУБД реляционного типа, которая начала поставляться в 1982 году по названию SQL/DS. Потом в компании был разработан более совершенный продукт -DB2, поставки которого начались в 1985 году. Эта СУБД стала стратегическим программным продуктом компании IBM. К середины 80-х годов, SQL уже общепризнанный, как язык реляционных СУБД, а его диалект, поддерживаемый СУБД DB2, фактически стал стандартом для управления реляционными базами данных. До этого времени реляционные базы данных властвовали среди СУБД других типов и предполагались, как основная технология баз данных будущего.
17