Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_po_PrBD_lab.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2.7 Mб
Скачать

Вопросы к допуску

  1. Дайте определение процессу проектирования базы данных;

  2. Какова основная цель логического проектирования?

  3. Перечислите и кратко охарактеризуйте этапы логического проектирования;

  4. Что называется сущностью?

  5. В чем отличие между сильными и слабыми сущностями?

  6. Дайте определение атрибуту сущности;

  7. Что называют связью? Какие характеристики может иметь связь?

  8. Как изображают сущности, атрибуты и связи в классических диаграммах Чена?

Контрольные вопросы

  1. Какие виды моделей поддерживает ERWin?

  2. Какие объекты позволяет создавать ERWin в логической модели?

  3. Какими способами можно создавать сущности в ERWin?

  4. На какие части делится сущность в ERWin?

  5. Какими способами можно добавить атрибут к сущности?

  6. Как указать атрибуты, входящие в состав первичного ключа?

  7. Перечислите используемые в ERWin группировки атрибутов;

  8. Какого рода атрибуты входят в состав группы AKn?

  9. Для чего используют группу IEn?

  10. Дайте определение идентифицирующей связи. В каких случаях используют этот вид связи?

  11. Дайте определение неидентифицирующей связи. В каких случаях используют этот вид связи?

  12. В каких случаях используют связи «многие ко многим»?

  13. Что такое «связь категоризации»? Как создавать подобные связи?

  14. Какие виды кардинальностей поддерживает ERWin?

Лабораторная работа №2: «Физическое проектирование: построение схемы данных»

Задание: Провести преобразование концептуальной модели в физическую.

  • Произвести переименование отношений и атрибутов в соответствии с правилами именования в целевой СУБД;

  • Определить типы данных для атрибутов;

  • Сгенерировать SQL-код.

Теоретический материал:

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

В данном лабораторном практикуме в качестве целевой СУБД рассматривается MS SQL Server 2000. Соответственно, в этой и следующих лабораторных работах мы будем придерживаться принципов работы в данной СУБД.

Выполняя проектирование базы данных в среде ERWin, для перехода к физической модели требуется переключиться на физический уровень в раскрывающемся списке (в том случае если изначально была выбрано логико-физическое проектирование). ERWin автоматически выполнит начальное преобразование логической модели в физическую. Рассмотрим, какие действия входят в это преобразование:

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

  • Переименование атрибутов. На физическом уровне атрибутам соответствуют столбца таблицы. К именам столбцов в MS SQL Server 2000 применяются те же правила, что и к именам таблиц (эти правила распространяются на все объекты MS SQL Server 2000).

  • Развязка связей типа «многие ко многим». Если в процессе логического проектирования некоторые сущности были связаны друг с другом связью данного типа, ERWin автоматически выполнит ее преобразование в идентифицирующие связи. При этом оба отношения, участвующие в связи «многие ко многим» будут выступать в роли родительских, а дочерним будет новое (автоматически созданное) отношение, состоящее из атрибутов, входящих в составы первичных ключей родительских отношений. Других атрибутов у него не будет. Такие отношения в теории баз данных принято называть связными. Фактически, на физическом уровне рассматриваемые сущности будут связаны между собой не напрямую, а через автоматически сгенерированное связное отношение.

Кроме указанных действий, ERWin также задаст для столбцов типы данных. Однако это происходит по определенной в нем схеме соответствия типов данных доменам и не всегда оптимально. На практике обычно требуется перепроверить схему данных и задать типы данных самостоятельно. Кроме типов данных мы также можем задать ограничения. Рассмотрим, какие типы данных и ограничения можно использовать в MS SQL Server 2000.

Типы данных для хранения символьных строк:

  • Char (n), где n – натуральное число. Хранит символьные строки фиксированного размера (n символов). Если символов с сроке меньше n, к ней добавляются пробелы. Позволяет хранить до 8 кб текста;

  • Varchar (n) – используется для хранения строк переменной длины, не более n символов. Также позволяет хранить до 8 кб текста;

  • Text – используется для хранения больших объемов текста;

  • nChar(n), nVarchar (n), nText – типы данных, предназначенные для хранения текста в формате Unicode (Предыдущие типы хранили текст в формате ASCII)

Числовые типы данных:

  • tinyint – целые числа [0, 255]. Отводится 1 байт на хранение данных этого типа;

  • smallint – целые числа [-32768, 32767]. Отводится 2 байта;

  • int – целые числа [-2147483648, 2147483647]. Отводится 4 байта;

  • bigint – целые числа. Отводится 8 байт;

  • real – числа с плавающей запятой. [-3.4 E38, 3.4 E38];

  • float – числа с плавающей запятой [-1.79E308, 1.79 E308];

  • decimal (n,m) – числа с фиксированной запятой. n – количество цифр в числе, m – количество цифр после запятой. Этот тип эквивалентен типу numeric из SQL-92;

  • smallmoney и money – эти типы используются для хранения денежных сумм. Отличаются от decimal тем, что после запятой может быть не более 4 цифр.

Типы даты и времени:

  • smallDateTime – хранит значения даты и времени. Можно использовать даты из промежутка 01.01.1990 – 06.06.2079. Занимает 4 байта;

  • DateTime - хранит значения даты и времени. Можно использовать даты из промежутка 01.01.1753 – 31.12.9999. Занимает 8 байт;

Другие типы данных:

  • Binary, varbinary, image – используются для хранения двоичных строк. Модно провести соответствие с char, varchar, text;

  • Uniqueidentifier – используется для хранения GUID (глобальных уникальных идентификаторов). В базе данных может быть только один столбец такого типа;

  • SQL-variant. Соответствует типу Variant в Visual Basic. Занимает 16 байт. Используется в тех случаях, когда возникает затруднения в выборе подходящего для столбца типа данных.

Типы данных позволяют определить, какого рода информация будет храниться в столбце. Для того, чтобы задать тип данных в ERWin, нужно дважды щелкнуть мышкой по таблице. Откроется диалоговое окно, в котором мы можем выбирать столбцы данной таблицы и задавать для них различные параметры, в том числе и типы данных. Кроме типа данных, для столбца можно задать ограничения. В MS SQL Server 2000 ограничения представляют собой механизм, с помощью которого можно контролировать значения хранящиеся полях строк. Ограничения делятся на ограничения уровня столбцов и ограничения уровня таблицы. Рассмотрим их более подробно:

Ограничения уровня столбцов – позволяют контролировать значения, хранящиеся в полях конкретного столбца.

  • NULL – разрешает хранение пустых (неопределенных) значений. Например, в столбце phone (телефон) далеко не все поля можно заполнить, т.к. не у всех есть телефон;

  • NOT NULL – запрещает хранение неопределенных значений;

  • DEFAULT – позволяет задать значение по умолчанию. Если в поле не вводится никаких значений, то в него подставляется значение по умолчанию. Например: default 2 или default ‘Office’;

  • UNIQUE – обеспечивает отсутствие повторяющихся значений в полях столбца;

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

  • CHECK (logical_expression) – ограничение представляет собой логическое условие (logical_expression), при выполнении которого в поле разрешено вставлять значение. Является мощным механизмом контроля значений хранящихся в полях. Например: check (age > 18), check (status between 1 and 4).

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

  • UNIQUE (column_list) – запрещает повтор значений в перечисленных столбцах (column_list). Используется в случаях когда необходимо обеспечить уникальность не значений каждого столбца в отдельности, а совокупности хранящихся в ней значений. Например: unique (f_name, l_name) – обеспечивает уникальность фамилии и имени. Пара значений «Иван Петров» не должна повториться в таблице. Если бы мы задали это ограничение для каждого из указанных столбцов в отдельности (на уровне столбцов), то мы не смогли бы вводить такие пары значений как «Иван Сидоров» или «Сергей Петров»;

  • PRIMARY KEY (column_list) – данное ограничение используется на уровне таблиц, если она имеет составной первичный ключ. Атрибуты, входящие в состав первичного ключа должны быть перечислены в column_list;

  • FORIGN KEY – позволяет определить внешний ключ. Атрибуты, являющиеся внешним ключом в одной таблице обязательно должны быть связаны с соответствующими им атрибутами, входящими в первичный ключ другой таблицы (правило ссылочной целостности). Ключевое слово REFERENCES позволяет указать, с какой таблицей устанавливается связь. Если столбцы входящие в первичный ключ этой таблицы имеют те же имена, что и столбцы внешнего ключа, то их указывать необязательно. В противном случае их указывают в скобках после имени таблицы. Синтаксис ограничения имеет следующий вид:

FOREIGN KEY (список_столбцов) REFERENCES имя_таблицы (список_столбцов) команда

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

  • ON DELETE SET NULL – устанавливает в null связанные столбцы дочерней таблицы, в случае удаления соответствующих им значений из родительской таблицы;

  • ON DELETE CASCADE – разрешает каскадное удаление;

  • ON DELETE NO ACTION – не предпринимает никаких действий в случае удаления;

  • ON UPDATE CASCADE – разрешает каскадное обновление;

  • ON UPDATE NO ACTION - не предпринимает никаких действий в случае обновления.

Кроме работы с таблицами, процесс физического проектирования включает в себя разработку представлений, сценариев, хранимых процедур и триггеров. Все это можно создать с помощью ERWin, однако следует учитывать, что в нем можно создавать только достаточно простые представления, а для хранимых процедур и триггеров он использует собственный язык программирования, отличный от T-SQL. По этой причине мы будем рассматривать разработку указанных объектов непосредственно в среде MS SQL Server 2000. Конечный результат работы Erwin можно представить в виде sql-кода, который он генерирует автоматически (по команде schema generation из меню tools).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]