Файл: Лабораторная работа 1 Архитектура реляционных баз данных.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 118

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Помимо встроенных типов данных, пользователь может самостоятельно создавать новые необходимы ему типы и программировать для них механизмы индексирования c помощью методов GiST.

Пользовательские объекты

PostgreSQL может быть расширен пользователем для собственных потребностей практически в любом аспекте. Есть возможность добавлять:

  • Типы данных и их преобразования

  • Домены

  • Функции (включая агрегатные)

  • Индексы

  • Операторы (включая переопределение уже существующих)

  • Процедурные языки

Р
ис. 1. Основные компоненти базы
данных PostgreSQL 9.0.

Как и в SQL Server, данные в базе данных PostgreSQL организованы в нескольких разных объектах:(рис. 1):

  • домены (domains);

  • конфигурация полнотекстового поиска (FTS configuration);

  • словари полнотекстового поиска (FTS dictionaries);

  • синтаксические анализаоры полнотекстового поиска (FTS parsers);

  • шаблоны полнотекстового поиска (FTS templates);

  • функции (functions);

  • последовательности (sequences);

  • таблицы (tables);

  • триггеры (trigger functions);

  • представления (views).

.

Разработка логической модели базы данных


2.1. Средства для разработки и администрирования баз данных.

Для работы с базами данных существует несколько возможностей:

  • Запуск интерактивной терминальной программы, которая позволяет вводить, редактировать и выполнять команды SQL:

    СУБД

    Интерфейс командной строки

    MS SQL Server

    isqlw

    PostgreSQL

    psql

  • Использование пакета с графическим интерфейсом(GUI):

    СУБД

    GUI

    MS SQL Server

    SQL Server Enterprise Manager

    PostgreSQL

    pgAdmin

  • Написание специального приложения, используя один из нескольких доступных языков программирования, которые поддерживаются СУБД. 

Далее будет рассмотрена работа в среде PostgreSQL с использованием pgAdmin.

2.2. Пример создания базы данных.

Шаг 1: Создание базы данных BookShop

Параметры новой базы данных показаны на рис.2



Рис. 2. Параметры базы данных BookShop.

При создании новой базы данных в системную таблицу pg_database (см. pg_catalog/Tables) добавляется строка, содержащая параметры этой базы данных.

Шаг 2: Создаем таблицы Книги, Поставщики, Заказчики, Заказы, Поставки.

После того, как база данных создана, можно приступать к созданию ее основных объектов  таблиц. Прежде всего, для каждого столбца любой таблицы необходимо указать определенный тип данных. В SQL nип данных задается после имени столбца с помощью соответствующего ключевого слова, потом вводятся параметры представления значений столбцов, такие как длина, значение по умолчанию и др. После определения тип данных столбца таблицы сохраняется в виде постоянной характеристики столбца и не может быть изменен.

В отношении типов данных следует помнить

, что недопустимо называть объекты именами команд или использовать для этой цели другие зарезервированные слова. Типы данных  это полноценные объекты базы данных, которые хранятся в системной таблице pg_type вместе с их OID.

Создаем таблицы со следующими полями:

Таблица

Поле

Тип

Книги

Код_книги

serial

Автор

character varying(80)

Название

character varying(160)

Издательство

character varying(80)

Цена

money

Остаток

smallint

Поставщики

Код_поставщика

serial

Название

character varying(40)

Город

character varying(40)

Адрес

character varying(80)

Телефон

character(13)

Заказы

Код_заказа

serial

Код_книги

integer

Код_заказчика

integer

Оплачен

character varying(3)

Дата

date

Заказчики

Код_заказчика

serial

Имя

character varying(40)

Адрес

character varying(80)

Телефон

character(13)

Поставки

Номер

serial

Код_книги

integer

Код_поставщика

Integer

Количество

integer

Дата

date

Шаг 3: Введение ограничений целостности.

Следующий момент в процессе создания таблиц, которому необходимо уделить особенное внимание, связан с обеспечением целостности данных. Для обеспечения целостности данных в таблицах определяются ограничения на значения столбцов (constraints). Эти ограничения могут быть введены при создании таблицы для каждого столбца в отдельности или добавлены в таблицу позже с помощью специальной команды SQL ALTER TABLE. В PostgreSQL поддерживаются следующие основные ограничения целостности:


  • PRIMARY KEY  первичный ключ

  • FOREIGN KEY/REFERENCES  внешний ключ (ссылка)

  • UNIQUE  уникальность

  • CHECK – проверка условия на значение

Ограничение первичного ключа на значение столбца используется для обеспечения уникальности данных в столбцах и в целом для обеспечения ссылочной целостности (при связывании таблиц посредством внешних ключей). Определение условия primary key для таблицы имеет несколько эффектов. Во-первых, оно устанавливает определенные условия на значение первичного ключа  запрещается введения одинаковых значений и значений NULL в те столбцы, для которых оно определено. Во-вторых, primary key создает уникальный индекс для этих столбцов, что позволяет ускорить поиск строк в таблице.

Определение условия primarykey в одной таблице сам по себе не обеспечивает целостность по ссылкам. Необходимо также определить соответствующие внешние ключи тех таблиц, строки которых будут комбинироваться со строками той таблицы, где определено ограничение на значение столбца PRIMARYKEY.

Ограничение внешнего ключа на значение столбца обычно применяется вместе с предварительно определенным ограничением primary key (на самом деле достаточно ограничения UNIQUE) в ассоциируемой таблице. Условие на значение foreign key ставит в соответствие один или несколько столбцов таблицы идентичному набору столбцов другой таблицы, для которых определенно ограничение primary key (или UNIQUE). Когда обновляются или удаляются значения тех столбцов таблицы, на которые ссылаются внешние ключи других таблиц, возникает вопрос: что делать с соответствующими значениями вешних ключей? Существует несколько вариантов решения этой проблемы:

  • ничего не делать (no action) (это событие должно обрабатываться неким отличным от стандартного способом, иначе будет выдаваться сообщение об ошибке);

  • запретить любые изменения(restrict);

  • автоматически обновить/удалить значения соответствующих внешних ключей (cascade),

  • установить для внешних ключей NULL-значения (set null) (для этого соответствующие столбцы не должны иметь ограничения NOT NULL);

  • установить для внешних ключей значения по умолчанию (set default).

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

Ограничение на значение столбцов primary key и foreign key обеспечивают соответствие строк связанных таблиц, потому столбцы с такими ограничениями используются для реализации операции соединения таблиц.

Наглядное представление о структуре связей между таблицами в базе данных можно получить с помощью диаграмм «таблица-связь», на которых указываются ограничения primary key и foreign key и такая характеристика связей, как степень связи. На рис. 3 показана диаграмма базы данных BookShop.



Рис. 3. Диаграмма «таблица-связь» базы данных BookShop. Сплошная линия  идентифицирующие связи, пунктирные  не идентифицирующие связи. Все связи имеют степень 1:N (N  со стороны зависимой таблицы).

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

Проверочное ограничение на значение столбца устанавливает диапазон значений, которые могут быть введены в один или несколько столбцов таблицы базы данных. Ограничение check может использоваться, например, для того, чтобы установить диапазон значений, которые допускается хранить в столбце, определенном для данных числовых типов.

Процесс установки проверки значения для столбца таблицы называется связыванием (binding). Можно определить и ввести несколько проверок в один столбец. Проверка может быть определена для столбца даже в том случае, если для него уже существует какое-либо правило.