Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
SQL и его историяЯзык реляционных баз данных SQL Массивы Тип данных BLOB Типы для хранения даты и времени
Существует три типа для хранения даты и времени (диалект 3) – 1 – это DATE, TIME и TIMESTAMP. Тип DATE хранит даты с точностью до дня. Диапазон возможных значений от 1 января 100 года до 29 февраля 32768 года. Тип TIME хранит данные о времени с точностью до десятитысячной доли секунды. Диапазон возможных значений – от 00:00:00 до 23:59:9999. Тип TIMESTAMP представляет собой комбинацию типов DATE и TIME. Если надо вырезать из полной даты только год или месяц, используется функция EXTRACT. EXTRACT(MONTH FROM DATE_FIELD), где DATE_FIELD – имя поля, EXTRACT(MONTH FROM DATE_FIELD)
Этот тип предназначен для хранения большого количества данных переменного размера. Он позволяет хранить данные, которые не могут быть помещены в поля других типов. Например, картинки, музыкальные файлы, видеофрагменты и т.д. У типа BLOB имеется возможность определять набор нескольких подтипов и специальных процедур, называемых фильтрами (BLOB filters), для работы с этими подтипами. В InterBase имеются подтипы: subtype 0 - данные неопределенного типа, subtype 1 - текст, subtype 2 – BLR(Binary Language Representation) - это двоичное представление хранимых процедур, триггеров, запросов к серверу. Объем неограничен.
СУБД InterBase была одной из первых, в которой появились массивы. Поддержка массивов в базе данных является расширением традиционной реляционной модели. Массивы могут быть одномерными и многомерными. Массивы реализованы на базе полей типа BLOB. Они предоставляют удобный механизм для хранения однотипных объектов. Однако в большинстве случаев вместо массивов разработчики предпочитают держать множественные данные в подчиненных таблицах (master/detail).
Единственным средством общения и администраторов баз данных, и проектировщиков, и разработчиков, и пользователей с реляционной базой данных является структурированный язык запросов SQL (Structured Query Language). SQL есть полнофункциональный язык манипулирования данными в реляционных базах данных. В настоящее время он является общепризнанным, стандартным интерфейсом для реляционных баз данных, таких как Oracle, Interbase, Firebird, MS SQL Server и ряда других (стандарты ANSI и ISO). SQL — непроцедурный язык, который предназначен для обработки множеств, состоящих из строк и колонок таблиц реляционной базы данных. Проектировщики баз данных используют SQL для создания всех физических объектов реляционной базы данных. В настоящем учебном пособии предполагается, что используется СУБД Firebird. Теоретические основы SQL были заложены в известной статье Кодда, положившей начало развитию теории реляционных БД. Первая практическая реализации была выполнена в исследовательских лабораториях фирмы IBM Chamberlin D.D. и Royce R.F. Промышленное применение SQL было впервые реализовано в СУБД Ingres. По сути дела, реляционная СУБД - это программное обеспечение, которое управляет работой реляционной базы данных. Первый международный стандарт языка SQL был принят в 1989 г. (SQL-89). В конце 1992 г. был принят новый международный стандарт SQL-92. Последний стандарт также называется стандартом ANSI. В настоящее время большинство производителей реляционных СУБД используют его в качестве базового. Однако работы по стандартизации языка SQL далеки от завершения и уже разработан проект стандарта SQL-99, который вводит в обиход языка понятие объекта и разрешает на него ссылаться в операторах SQL. В исходном варианте SQL не было команд управления потоком данных, они появились в недавно принятом стандарте ISO/IEC 9075-5: 1996 дополнительной части SQL. Каждой конкретной СУБД соответствует своя собственная реализация SQL, в целом поддерживающая определенный стандарт, но имеющая свои особенности. Эти реализации называются диалектами. Так, стандарт ISO/IEC 9075-5 предусматривает объекты, называемые постоянно хранимыми модулями или PSM-модулями (Persistent Stored Modules). Язык SQL Firebird близко соответствует стандартам SQL-92. Firebird вводит множество возможностей в соответствии с более поздним релизом стандарта SQL-99. Хотя SQL в Firebird соответствует стандартам, существуют небольшие отличия. SQL состоит из набора команд манипулирования данными в реляционной базе данных, которые позволяют создавать объекты реляционной базы данных, модифицировать данные в таблицах (вставлять, удалять, исправлять), изменять схемы отношений базы данных, выполнять вычисления над данными, делать выборки из базы данных, поддерживать безопасность и целостность данных. Весь набор команд SQL можно разбить на следующие группы: · команды определения данных (DDL - Data Defininion Language); · команды манипулирования данными (DML - Data Manipulation Language); · команды выборки данных (DQL - Data Query Language); · команды управления транзакциями; · команды управления данными. При выполнении каждая команда SQL проходит четыре фазы обработки: · фаза синтаксического разбора, которая включает проверку синтаксиса команды, проверку имен таблиц и колонок в базе данных, а также подготовку исходных данных для оптимизатора; · фаза оптимизации, которая включает подстановку действительных имен таблиц и колонок базы данных в представление, идентификацию возможных вариантов выполнения команды, определение стоимости выполнения каждого варианта, выбор наилучшего варианта на основе внутренней статистики; · фаза генерации исполняемого кода, которая включает построение выполняемого кода команды; · фаза выполнения команды, которая включает выполнение кода команды. В настоящее время оптимизатор является составной частью любой промышленной реализации SQL. Работа оптимизатора основана на сборе статистики о выполняемых командах и выполнении эквивалентных алгебраических преобразований с отношениями базы данных. Такая статистика сохраняется в системном каталоге базы данных. Системный каталог является словарем данных для каждой базы данных и содержит информацию о таблицах, представлениях, индексах, колонках, пользователях и их привилегиях доступа. Каждая база данных имеет свой системный каталог, который представляет совокупность предопределенных таблиц базы данных. Команда на языке SQL называется запросом. Все SQL запросы можно условно разделить на два вида: - статический SQL запрос, включается в код приложения во время его разработки и не изменяется во время выполнения приложения, - динамический SQL запрос, создается и изменяется в ходе выполнения приложения. Все операторы и команды языка SQL можно разделить на три группы: - операторы определения данных, предназначенные для создания, удаления и изменения структуры данных: CREATE TABLE – для создания таблицы базы данных ALTER TABLE – изменяет таблицу DROP TABLE – удаляет таблицу CREATE NDEX – создает индекс DROP INDEX – удаляет индекс; - операторы управления данными предназначены для управления привилегиями доступа к данным: GRANT – назначает привилегии пользователям REVOKE – удаляет привилегии пользователей; - операторы манипулирования данными предназначены для работы с записями таблиц: SELECT – для выборки записей по определенному формату: UPDATE – для изменения записей INSERT – вставляет новые записи в таблицу DELETE – удаляет записи из таблицы. Результатом выполнения запроса является набор данных, который называется результирующим набором данных.
Дата добавления: 2014-02-28; просмотров: 701; Нарушение авторских прав Мы поможем в написании ваших работ! |