Файл: Методическое пособие к выполнению самостоятельной и лабораторных работ и курсового проекта по дисциплине Организация баз данных для студентов направления подготовки бакалавров.pdf

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

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

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

Добавлен: 25.10.2023

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Основные различия Microsoft Jet SQL и ANSI SQL
Рассмотрим различия двух диалектов языка SQL Microsoft Jet
SQL и ANSI SQL, описанные в руководстве разработчика приложений баз данных на СУБД Microsoft Access:

языки SQL-ядра базы данных Microsoft Jet и ANSI SQL имеют разные наборы зарезервированных слов и типов данных;

разные правила применимы к оператору Between...And, имею- щему следующий синтаксис: выражение [NOT] Between значение_1
And значение_2. В языке SQL Microsoft Jet значение_1 может превы- шать значение_2; в ANSI SQL, значение_1 должно быть меньше или равно значение_2;

разные подстановочные знаки используются с оператором Like.
Так, в языке SQL Microsoft Jet любой одиночный символ изображается знаком «?», а в ANSI SQL знаком «_», любое число символов в языке

49
SQL Microsoft Jet изображается знаком «*», а в ANSI SQL — знаком
«%»;

язык SQL-ядра Microsoft Jet обычно предоставляет пользовате- лю большую свободу. Например, разрешается группировка и сорти- ровка по выражениям.
Особые средства языка SQL Microsoft Jet
В языке SQL Microsoft Jet поддерживаются следующие дополни- тельные средства:

инструкция TRANSFORM, предназначенная для создания пере- крестных запросов;

дополнительные статистические функции, такие как StDev и
VarP;

описание PARAMETERS, предназначенное для создания запро- сов с параметрами.
Средства ANSI SQL, не поддерживаемые в языке SQL
Microsoft Jet
В языке SQL Microsoft Jet не поддерживаются следующие сред- ства ANSI SQL:

инструкции, управляющие защитой, такие как COMMIT,
GRANT и LOCK;

зарезервированное слово DISTINCT в качестве описания аргу- мента статистической функции (например, нельзя использовать выра- жение SUM(DISTINCT имя Столбца);

предложение LIMIT TO nn ROWS, используемое для ограниче- ния количества строк, возвращаемых в результате выполнения запро- са. Для ограничения количества возвращаемых запросом строк можно использовать только предложение WHERE.
Порядок выполнения работы
Все запросы, создаваемые в рамках данной лабораторной работы, должны быть реализованы на языке SQL без помощи построителя за- просов.
Для создания нового SQL-запроса в окне базы данных нажмите кнопку «Создание запроса в режиме конструктора» и, не выбирая таб- лицы для запроса, нажмите кнопку Вид на панели инструментов.
1. Используя инструкцию CREATE TABLE, создайте запрос на со- здание новой таблицы для выбранной ранее предметной области, содержащую пять полей, различных типов данных, определив в запросе первичный ключ и проиндексировав соответствующие по- ля, используя предложение CONSTRAINT. Для запуска запроса


50
нажмите кнопку Запуск на панели инструментов. После чего создайте запрос на создание еще одной таблицы, содержащей внешний ключ по отношению к первичному ключу предыдущей таблицы. Запустите запрос, после чего проверьте, отразились ли изменения в схеме данных.
2. Используя команду SELECT, создайте запрос на выборку записей из двух (или более) таблиц, используя правила внешнего и внут- реннего соединения, а также различные условия отбора и сорти- ровки.
3. Используя команду UPDATE, создайте запрос на обновление дан- ных в созданных ранее таблицах.
4. Используя команду INSERT INTO, создайте запросы на добавле- ние группы записей и одной записи в существующую таблицу.
5. Используя команду CREATE INDEX, создайте запрос на создание нового индекса, используя различные условия на значения индек- сов (IGNORE NULL, DISSALLOW NULL, PRIMARY), а также ти- пы сортировки.
6. Используя команду DROP, создайте запросы на удаление таблицы и индекса, созданных ранее в БД.
7. Сохраните все созданные запросы в базе данных.

51
Лабораторная работа № 6 «Создание концепту-
альной модели данных в среде Power Designer»
Тема: Создание концептуальной модели данных в среде автома-
тизированного проектирования.
Раздел дисциплины: Моделирование данных с помощью ER-
диаграмм.
Цель работы: спроектировать концептуальную модель, выбран-
ной ранее предметной области в пакете Power Designer.
Продолжительность: 8 часов.
Сущности и атрибуты
Каждая сущность является множеством подобных индивидуаль- ных объектов, называемых экземплярами. Каждый экземпляр индиви- дуален и должен отличаться от всех остальных экземпляров. Атрибут выражает определенное свойство объекта. С точки зрения БД (физиче- ская модель) сущности соответствует таблица, экземпляру сущности – строка в таблице, а атрибуту – колонка таблицы.
Построение модели данных предполагает определение сущностей и атрибутов, т.е. необходимо определить, какая информация будет храниться в конкретной сущности или атрибуте. Сущность можно определить как объект, событие или концепцию, информация о кото- рой должна сохраняться. Сущности должны иметь наименование с четким смысловым значением, именоваться существительным в един- ственном лице, не носить «технических» наименований и быть доста- точно важными для того, чтобы их моделировать. Именование сущно- сти в единственном числе облегчает в дальнейшем чтение модели.
Фактически имя сущности дается по имени ее экземпляра.
Каждая сущность должна быть полностью определена с помощью текстового описания. Каждый атрибут хранит информацию об опреде- ленном свойстве сущности, а каждый экземпляр сущности должен быть уникальным. Атрибут или группа атрибутов, которые идентифи- цируют сущность, называется первичным ключом. При установлении связей между сущностями атрибуты первичного ключа родительской сущности мигрируют в качестве внешних ключей в дочернюю сущ- ность.
Очень важно дать атрибуту правильное имя. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значе- ние. Соблюдение этого правила позволяет частично решить проблему нормализации данных уже на этапе определения атрибутов.


52
Связи
Связь является логическим соотношением между сущностями.
Каждая связь должна именоваться глаголом или глагольной фразой.
Имя связи выражает некоторое ограничение или бизнес-правило и об- легчает чтение построенной модели данных.
Различают зависимые и независимые сущности. Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности переносятся в состав первичного ключа дочерней сущности.
Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности атрибу- ты помечаются как внешний ключ (FK).
При установлении неидентифицирующей связи дочерняя сущ- ность остается независимой, а атрибуты первичного ключа родитель- ской сущности мигрируют в состав неключевых компонентов роди- тельской сущности. Неидентифицирующая связь служит для связыва- ния независимых сущностей.
Имя связи – фраза, характеризующая отношение между родитель- ской и дочерней сущностями. Для связи один-ко-многим идентифици- рующей или не идентифицирующей достаточно указать имя, характе- ризующее отношение от родительской к дочерней сущности.
Тип связи (идентифицирующая/неидентифицирующая). Для не- идентифицирующей связи можно указать обязательность. В случае обязательной связи атрибут внешнего ключа получит признак NOT
NULL, несмотря на то, что внешний ключ не войдет в состав первич- ного ключа дочерней сущности. В случае необязательной связи внеш- ний ключ может принимать значение NULL. Необязательная неиден- тифицирующая связь помечается прозрачным ромбиком со стороны родительской сущности.
Правила ссылочной целостности – логические конструкции, ко- торые выражают бизнес-правила использования данных и представля- ют собой правила вставки, замены и удаления.
Информацию о предметной области суммируют составлением спецификаций по сущностям, атрибутам и отношениям с использова- нием графических диаграмм, в чем и заключается процесс моделиро- вание данных.
Порядок выполнения работы
Для запуска пакета Power Designer в меню программы (Windows) найдите папку Sybase и запустите файл Power Designer. Для создания

53
концептуальной модели данных необходимо выбрать File/ New или на панели инструментов выбрать значок
. Далее появится окно для выбора создаваемой модели (Рисунок 24), в котором надо выбрать
Conceptual Data Model
Рисунок 24 – Окно выбора модели.
После нажатия кнопки «ОК» появиться окно, в котором создается
ER-диаграмма.
Создание сущностей
Для создания сущности, в панели Palette (Рисунок 25) нажмите кнопку с белым прямоугольником (с подсказкой Entity).
Рисунок 25 – Панель элементов с выбранным элементом сущность


54
Далее, поместите указатель мыши на рабочее поле в нужном ме- сте и нажмите кнопку мыши. Прямоугольник, изображающий сущ- ность появится в указанном месте. При этом, курсор мыши на рабочем поле выглядит как выбранный элемент, т.о. можно создавать несколь- ко выбранных элементов одного типа без повторного их выбора на панели элементов.
Для того, чтобы изменить свойства созданной сущности, дважды нажмите на нее левой кнопкой мыши или нажмите правую кнопку и в выпавшем меню, выберите пункт «Properties», в результате чего откро- ется окно свойств сущности (Рисунок 26) .
Рисунок 26 – Окно свойств сущности
В открывшемся окне пять закладок.
Закладка General позволяет ввести следующие основные парамет- ры:

Name — имя сущности, которое будет видеть пользователь;

Code — имя кода сущности, которое будет использоваться при генерации физической модели;

Number — ограничение количества записей в таблице после генерации физической модели;

Comment — комментарий, предназначенный для улучшения понимания модели.
Закладка Attributes содержит таблицу (Рисунок 27) и позволяет определять атрибуты сущности:

55

Name — имя атрибута, которое будет видеть пользова- тель;

Code — имя кода атрибута, которое будет использоваться при генерации физической модели;

Data type — тип данных атрибута, который может быть выбран из выпадающего списка или вручную в поле Data type;

Domain — принадлежность к домену, если он определен.
Использование доменов позволяет, определив один раз пользовательский тип данных, использовать его в даль- нейшем при определении типа данных атрибута. О со- здании домена будет сказано ниже;

M (mandatory) — обязательный атрибут, указывает может ли данный атрибут принимать неопределенные значения
(обязательно ли данное поле для заполнения в таблице
БД);

P (Primary Identifier) — первичный идентификатор сущ- ности (в физической модели данных атрибут будет яв- ляться первичным ключом или его составной частью);

D (Displayed) — отображаемый, т.е. будет ли атрибут по- казываться в модели.
Рисунок 27 – Окно ввода атрибутов сущностей

56
Более полную информацию по свойствам атрибута можно полу- чить, дважды нажав по полю, расположенному слева от поля с именем атрибута. Здесь можно вводить комментарий в поле Comment, зада- вать список значений для данного атрибута, определять верхние и нижние границы значений
Закладка Identifiers содержит автоматически заполняемую табли- цу первичных идентификаторов сущности, но позволяет делать это вручную, когда необходимо создать суррогатный первичный иденти- фикатор.
Закладка Rules позволяет вводить необходимые правила на ввод значений в таблицу.
Остальные закладки Notes, Version info носят описательный ха- рактер для улучшения понимания модели.
Для фиксации всех изменений в необходимо нажать кнопку «Ap- ply».
Домен
Домен – это множество допустимых значений атрибута опреде- ленного типа данных. Домен определяется заданием стандартного ти- па данных, к которому относятся элементы домена и заданием произ- вольного логического выражения, применяемому к этому типу дан- ных.
Для создания домена необходимо в главном меню выбрав пункт
«Model», выбрать пункт «Domains». На рисунке 28 показано форма определения домена. Данная форма содержит аналогичные поля как для определения свойств атрибутов (в закладке «Attributes» в свой- ствах формы), а также дополнительные поля «Length» и «Precision» для описания длины и точности значений атрибутов.
Рисунок 28 – Окно ввода списка доменов


57
После создания нового домена его имя появится в списке доменов при задании свойств атрибутов сущностей (Рисунок 29).
Рисунок 29 – Определение домена для атрибута сущности
При создании атрибутов сущностей в концептуальной модели не создаются атрибуты, являющиеся внешними ключами сущностей.
После того, как созданы все необходимые сущности и атрибуты, необходимо определить связи между ними.
Установка связей
Для установки связи между двумя сущностями, необходимо нажать кнопку (с двумя белыми прямоугольниками и линией между ними (Рисунок 30)).

58
Рисунок 30 – Панель элементов с выбранным элементом связь
Необходимо перевести курсор мыши на одну сущность и, нажав левую кнопку мыши и, не отпуская ее, перевести курсор на вторую сущность. Далее можно отпустить кнопку мыши – связь установлена.
Для изменения свойств связи, необходимо дважды нажать левой кнопкой мыши на линию связи (или нажать правую кнопку мыши и выпавшем меню выбрать пункт «Properties»). Откроется окно (Рисунок
31), с закладками:

закладки «Notes» и «Version info» используются для по- дробного описания связи. В закладке «Rules» можно за- давать параметры ограничения связи;

в закладке «General» указывается имя и код связи, а две кнопки с именами используемых сущностей позволяют вызвать окно со свойствами соответствующей сущности.

Закладка «Cardinalites» позволяет указать вид связи
(один–к–одному, один–ко–многим, многие–ко–многим и т.д.) и устанавливает свойства связи от Сущности1 к
Сущности2 и наоборот:

Mandatory определяет обязательность связи, показывая, что экземпляр Сущности1 (запись) может существовать только при наличии соответствующего экземпляра в
Сущности2;

59
Рисунок 31 – Окно свойств связи

Dependent показывает, что каждый экземпляр Сущности1 отождествляется с экземпляром в Сущности2 (первичный ключ на стороне «один» при создании физической моде- ли войдет в состав первичного ключа в таблице на сто- роне «многие»);

Role – текст, описывающий связь от Сущности1 к Сущ- ности2.
Связи многие-ко-многим преобразуются в физической модели в промежуточные таблицы.
После того, как созданы все сущности, указаны атрибуты и уста- новлены все связи необходимо проверить концептуальную правиль- ность построения концептуальной модели. Для этого необходимо вы- брать в меню «Tools/Check Model» (или нажать F4). Появится окно
(Рисунок 32), в котором предлагается выбрать объекты для проверки.