Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db / Лекции / 6 семестр / Языки запросов.docx
Скачиваний:
123
Добавлен:
23.03.2015
Размер:
280.32 Кб
Скачать
      1. Импорт и экспорт данных

Предложения INSERT, DELETE и UPDATE являются чрезвычайно важными для их использования в программах, работающих с базами данных. Эти команды, совместно с SELECT, образуют основу оперирования базами данных. Однако SQL не обладает средствами экспорта и импорта данных из других источников. Например, предположим, что компания на протяжении многих лет вела базу данных в СУБД ACCESS. В связи с растущими потребностями в распределенной обработке данных в клиент-серверной архитектуре появилась необходимость в использовании другой более мощной СУБД, например Oracle. Если ваша исходная база данных слишком большая, следует приложить огромные усилия, чтобы с помощью команды INSERT загрузить в Oracle существующую в ACCESS базу данных. Очевидно, что команды INSERT, DELETE и UPDATE становятся полезными, когда база данных уже загружена, однако вряд ли вы захотите ввести вручную 400 000 команд INSERT, чтобы перезагрузить существующую базу данных.

Эта проблема решается намного проще в связи с тем, что большинство современных СУБД предоставляют средства экспорта/импорта баз данных. Одни СУБД имеют в своем составе программы-конверторы между собственным форматом хранения данных и форматами баз данных других СУБД. В этом случае при инициировании диалога импорта данных предоставляется возможность указать формат базы данных, из которой будет производиться импорт. Другие СУБД позволяют импортировать и экспортировать данные, используя формат текстовых файлов.

Например, СУБД Microsoft Access позволяет экспортировать/импортировать текстовые файлы и файлы форматов баз данных dBASE, FoxPro и SQL Database: Microsoft SQL Server — текстовые файлы специального формата, a Oracle – данные из текстовых файлов, представляющих записи переменной или фиксированной длины.

      1. Итоги лекции

Усвоив материал этой лекции, студенты научились:

  • вставлять в таблицу базы данных отдельные строки, содержащие значения всех столбцов таблицы;

  • вставлять в таблицу базы данных отдельные строки, содержащие значения не всех столбцов таблицы;

  • изменять порядок перечисления значений столбцов во вставляемых строках;

  • использовать в качестве вставляемых значений выражения;

  • обновлять значения столбцов во всех строках таблицы;

  • обновлять значения столбцов в выборочных строках таблицы;

  • удалять все строки таблицы;

  • удалять выборочные строки таблицы.

    1. Определение ограничений целостности, ключей, задание прав доступа к данным (0-18)

      1. Аннотация к лекции

Эта лекция посвящена ограничениям целостности - составной части определения таблицы. С их помощью можно ограничить допустимые значения столбцов, совокупности столбцов, всей таблицы в целом или значений между таблицами. СУБД будет запрещать вводить или обновлять любые значения столбцов таблицы, нарушающие заданные ограничения целостности.

      1. Виды ограничений целостности

Ограничения целостности используются для описания и поддержки действующих в предметной области ограничений на возможные значения данных. После определения ограничения целостности все данные в таблице должны соответствовать тем правилам, которые представлены в этом определении. При последующем выполнении команд SQL по модификации данных в таблице СУБД должна гарантировать, что результирующие данные удовлетворяют указанным ограничениям. Без использования ограничений целостности соответствующие правила, действующие в предметной области, пришлось бы поддерживать с помощью программных средств вашего приложения.

Стандарт SQL допускает при определении таблиц базы данных специфицировать ограничения целостности следующих типов:

[NOT] NULL – допускает или запрещает вставлять строки, которые содержат в столбце неопределенные значения;

UNIQUE – разрешает вставлять в таблицу только такие строки, которые содержат уникальные значения столбца (столбцов);

PRIMARY KEY – ограничение первичного ключа указывает, что все строки таблицы уникально идентифицируются значениями столбца (столбцов);

FOREIGN KEY – ограничение внешнего ключа (или ссылочное) устанавливает, что значения столбца (столбцов) должны соответствовать значениям столбца (столбцов) другой таблицы;

CHECK – позволяет задавать для столбца (столбцов) сложные условия на значение, которые должны соблюдаться при манипулировании строками таблицы.

Кроме того, стандарт SQL предоставляет возможность специфицировать самостоятельные, независимые от определения таблиц ограничения целостности, получившие название утверждений.

Ограничения целостности можно задавать для:

столбца– это ограничение, которое специфицируется относительно значений конкретного столбца и указывается после определения типа данных столбца (но перед запятой);

таблицы– это ограничение рассматривается как единое для группы столбцов и помещается в конец определения таблицы (после последнего имени столбца, но перед заключительной круглой скобкой).

Упрощенный вариант синтаксиса команды CREATE TABLE с указанием ограничений выглядит так:

CREATE TABLE имя_таблицы (

имя_столбца тип_данных ограничения_столбца[,

имя_столбца тип_данных ограничения_столбца]... [,

ограничение_таблицы]...);

Ограничение целостности как столбца, так и таблицы может предваряться фразой CONSTRAINT:

CONSTRAINT имя_ограничения

Она позволяет приписать ограничению имя, по которому в дальнейшем можно ссылаться на это ограничение, например, чтобы его удалить. Эта фраза не является обязательной.