Главная страница
Навигация по странице:

  • № страховки Дата рождения 9атрибутов Начало срока аренды и Конец срока аренды, которые также относятся к типу сущности Договор аренды. Ключ

  • 3.3 Лабораторная работа №3

  • Помимо собственно таблиц и их свойств, реляционная модель имеет еще и собственные операции

  • целостности объектов

  • Правило ссылочной целостности

  • Нормализация полученной реляционной модели.

  • Таблица представлена в первой нормальной форме (1НФ)

  • Таблица представлена во второй нормальной форме (2НФ)

  • Таблица представлена в третьей нормальной форме (ЗНФ)

  • Перевод концептуальной модели в реляционную

  • Класс1 Имя таблицы Table1 Имя объекта Класс2 Имя таблицы Table2 Свойство Поле Тип Свойство Поле

  • 3.4 Лабораторная работа №4

  • Методичка. Базы данных (ПОВТ) 2009. Методические указания для студентов дневного отделения специальности "Программное обеспечение вычислительной техники" Барнаул 2009 2


    Скачать 2 Mb.
    НазваниеМетодические указания для студентов дневного отделения специальности "Программное обеспечение вычислительной техники" Барнаул 2009 2
    АнкорМетодичка. Базы данных (ПОВТ) 2009.pdf
    Дата04.10.2019
    Размер2 Mb.
    Формат файлаpdf
    Имя файлаМетодичка. Базы данных (ПОВТ) 2009.pdf
    ТипМетодические указания
    #13290
    страница2 из 11

    Подборка по базе: Программа обучения студентов (Syllabus) по дисциплине Основы пра, методичка по цитологии 2019 для студентов.pdf, Методические указания к самостоятельной работе по дисциплине «Ме, Метод указания-19.docx, Методические указания по практике .doc, Методические указания по практике .doc, ГАОУ СПО Десмургия - Методические рекомендации для студентов по .
    1   2   3   4   5   6   7   8   9   10   11
    Однозначный атрибут – атрибут, который содержит одно значение для каждого экземпляра сущности определенного типа.
    Большинство атрибутов являются однозначными.
    Многозначный атрибут – атрибут, который содержит несколько значений для каждого экземпляра сущности определенного типа.
    Некоторые атрибуты могут иметь несколько значений для каждого экземпляра сущности. Например, сущность Отделение компании может иметь несколько значений для атрибута Номер телефона: '095-339-2178' и '095-339-4439'. Следовательно, атрибут Номер телефона в этом случае будет многозначным.
    Производный атрибут – атрибут, который представляет значение, производное от значения связанного с ним атрибута или некоторого множества атрибутов, принадлежащих некоторому (не обязательно данному) типу сущности.
    Некоторые атрибуты могут быть связаны с определенной сущностью. Например, значение атрибута Срок действия сущности Договор аренды вычисляется на основе
    Человек
    № страховки
    Дата рождения

    9
    атрибутов Начало срока аренды и Конец срока аренды, которые также относятся к типу сущности Договор аренды.
    Ключ — это значение, которое однозначно определяет элемент объектного множества.
    Пример концептуальной модели для предметной области «Зоопарк».
    С кем
    Кто
    Потомство
    Совместимость
    Кто
    С кем
    Прививка
    Название
    Сведения о привиках
    Дата
    Доза
    Поставщ ик
    Название
    Адрес
    ИНН
    Р/с
    Контактное лицо
    Корм
    Наименование
    Рацион
    Количество
    Должность
    Наименование
    Служащ ий
    Ф ИО
    Дата рождения
    Пол
    Дата приема
    Дата увольнения
    З/плата
    Местожительство
    Корпус
    Номер клетки
    Класс
    Название
    Вид
    Название
    Животное
    Кличка
    Рост
    Вес
    Теплолюбивость
    Рис. 2. Концептуальная модель, описывающая зоопарк.
    Контрольные вопросы:
    1. Понятие модели, критерии оценки модели
    2. Объектно-ориентированные и семантические модели
    3. Объект
    4. Класс
    5. Способы выделения объектов в предметной области
    6. Основы концептуальной модели
    7. Виды объектных множеств
    8. Отношения.
    9. Мощность.
    10. Атрибуты и их виды.
    11. Концептуальные и физические объекты
    3.3 Лабораторная работа №3
    Задание:
    На основании концептуальной модели, разработанной во второй лабораторной работе построить реляционную модель.
    Теоретический материал
    Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица. Реляционная модель предусматривает

    10
    организацию данных исключительно в виде таблиц. Для потребителя, проектировщика БД, администратора БД и конечного пользователя данные представляются совершенно одинаково — в виде таблиц. Следовательно, таблица — базовый языковый объект реляционной модели.
    Таблица представляет собой множество именованных атрибутов, или столбцов, и множество записей (кортежей), или строк. Очень часто столбец называется полем таблицы
    (field). Пересечение строки и столбца образуют ячейку таблицы (cell). Набор допустимых значений столбца — домен (domain) — характеризуется определенным типом данных, например символьным или целым. Строки же и представляют собой данные.
    Реляционная модель предъявляет к таблице определенные требования.
    • Данные в ячейках таблицы должны быть структурно неделимыми. Каждая ячейка может содержать только одну порцию данных. Это свойство часто определяется как принцип
    информационной неделимости. Недопустимо, чтобы в ячейке таблицы реляционной модели содержалось более одной порции данных, что иногда именуется информационным
    кодированием (information coding). Примером может служить идентификационный номер транспортного средства (Vehicle Identification Number — VIN). Если записать его в одну ячейку, то будет нарушен принцип неделимости информации, поскольку в ячейке окажутся такие разделяемые данные, как наименование производителя, модели, сведения о местонахождении предприятия-изготовителя и т.д. Хотя на практике решение о том, следовать ли жестко требованиям теории, почти всегда принимает проектировщик, нужно учитывать, что нарушение этих требований может затем отрицательно сказаться на обеспечении целостности данных.
    • Данные в одном столбце должны быть одного типа.
    • Каждый столбец должен быть уникальным (недопустимо дублирование столбцов).
    • Столбцы размещаются в произвольном порядке.
    • Строки (записи) размещаются в таблице также в произвольном порядке.
    • Столбцы имеют уникальные наименования.
    Помимо собственно таблиц и их свойств, реляционная модель имеет еще и
    собственные операции. Эти операции позволяют выполнять некоторые действия над подмножествами столбцов и/или строк, объединять (сливать) таблицы и выполнять другие операции над множествами.
    Ключи
    В таблице не должно быть повторяющихся строк. Поэтому необходимо иметь возможность уникальной идентификации каждой отдельной строки таблицы по значениям одного или нескольких столбцов (называемых реляционными ключами). Рассмотрим терминологию, используемую для обозначения реляционных ключей.
    Суперключ – столбец или множество столбцов, которое единственным образом идентифицирует строку данной таблицы.
    Суперключ однозначно обозначает каждую строку в таблице. Но суперключ может содержать дополнительные столбцы, которые необязательны для уникальной идентификации строки, поэтому рассмотрим суперключи, состоящие только из тех столбцов, которые действительно необходимы для уникальной идентификации строк.
    Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключем данного отношения.
    Таблица может содержать несколько потенциальных ключей. Если ключ состоит из нескольких столбцов, то он называется составным ключом. Для идентификации потенциального ключа требуется знать смысл используемых столбцов в «реальном мире»; только это позволит обоснованно принять решение о возможности существования значений- дубликатов.

    11
    Первичный ключ – потенциальный ключ, который выбран для уникальной идентификации сток внутри таблицы.
    Поскольку таблица не содержит строк-дубликатов, всегда можно уникальным образом идентифицировать каждую ее строку. Это значит, что таблица всегда имеет первичный ключ. В худшем случае все множество столбцов может использоваться как первичный ключ, но обычно, чтобы различить строки, достаточно использовать несколько меньшее подмножество столбцов.
    Чаще всего в реальных системах в качестве первичного ключа используют суррогатный ключ. Это позволяет избежать проблем, связанных с изменением значения первичного ключа.
    Пустое значение – указывает, что значение столбца в настоящий момент неизвестно или неприемлемо для этой строки.
    Пустое значение (которое условно обозначается как NULL) следует рассматривать как логическую величину «неизвестно». NULL не следует понимать как нулевое численное значение или заполненную пробелами текстовую строку. Нули и пробелы представляют собой некоторые значения, тогда как ключевое слово NULL обозначает отсутствие какого- либо значения.
    Внешний ключ — это столбец или подмножество столбцов одной таблицы, который может служить в качестве первичного ключа для другой таблицы. Говорят также, что внешний ключ одной таблицы является ссылкой на первичный ключ другой таблицы.
    И последнее, на чем необходимо остановиться в этом кратком обзоре свойств реляционной модели, — два фундаментальных правила целостности: правило целостности
    объектов (entity integrity rule) и правило ссылочной целостности (referential integrity rule).
    Правило целостности объектов утверждает, что первичный ключ не может быть полностью или частично пустым, т.е. иметь значение NULL.
    Правило ссылочной целостности гласит, что внешний ключ может быть либо пустым (иметь значение NULL), либо соответствовать значению первичного ключа, на который он ссылается.
    Нормализация полученной реляционной модели.
    Нормализация представляет собой процесс дальнейшего совершенствования реляционной модели. Она выполняется после создания приближенной модели и предназначена для повышения уровня ее структурной организации. В основе нормализации лежит определенный математический аппарат, базирующийся на концепции функциональной
    зависимости.
    Говорят, что один или множество столбцов функционально зависят от одного или множества столбцов X, если данное множество значений для Х определяет единственное множество значений для Y. Утверждение "Y функционально зависит от X" равносильно утверждению "X определяет Y", которое записывается в форме Х

    Y.
    Функциональная зависимость. Поле В таблицы функционально зависит от поля А той же таблицы в том и только в том случае, когда в любой заданный момент времени для каждого из различных значений поля А обязательно существует только одно из различных значений поля В. Отметим, что здесь допускается, что поля А и В могут быть составными.
    Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.
    Наиболее очевидным примером может быть первичный ключ таблицы реляционной модели, который однозначно определяет строку этой таблицы. Однако могут существовать и другие зависимости, в которые не входят первичные ключи. Главная цель нормализации — избавить реляционную таблицу от зависимостей, не связанных с первичными ключами.
    Рассмотрим нормальные формы.

    12
    Таблица представлена в первой нормальной форме (1НФ) тогда и только тогда, когда все ее столбцы содержат только неделимые (в том смысле, что их дальнейшее разложение невозможно) значения и в ней отсутствуют повторяющиеся группы (столбцов) в пределах одной строки.
    Таблица представлена во второй нормальной форме (2НФ)тогда и только тогда, когда она представлена в 1НФ и каждый неключевой атрибут полностью определяется первичным ключом. Атрибут полностью определяется первичным ключом, если он находится в правой части выражения, описывающего функциональную зависимость, а левую часть этого выражения представляет первичный ключ или какое-либо выражение, которое может быть вычислено на его основе с использованием транзитивных свойств функциональной зависимости.
    Таблица представлена в третьей нормальной форме (ЗНФ),если она удовлетворяет определению 2НФ и не одно из неключевых полей не зависит функционально от любого другого неключевого поля.
    На практике, при создании логической модели данных, как правило, не проводят нормализацию. Опытные разработчики обычно сразу строят отношения в 3НФ. Кроме того, основным средством разработки логических моделей данных являются различные варианты
    ER-диаграмм. Особенность этих диаграмм в том, что они сразу позволяют создавать отношения в 3НФ.
    Перевод концептуальной модели в реляционную
    Переход от концептуальной к реляционной модели не делается прямо "в лоб". Класс может быть преобразован в группу таблиц, а группа классов — в одну таблицу, и т.д. Более точно было бы говорить о классах как о группах таблиц.
    Каждая таблица должна иметь первичный ключ, гарантирующий, что каждая строка таблицы может быть однозначно определена. Первичный ключ может состоять из одного или более столбцов таблицы. База данных моделирует реальный мир, таблица является аналогом класса, а запись таблицы представляет отдельный объект класса. База данных должна иметь средства для идентификации объектов. Если она не позволяет отличить два разных объекта, значит, она неточно соответствует реальности. Аналогичным образом, каждый отдельный объект может быть представлен только одним способом. Если разрешить повторяющиеся записи, то модель будет представлять несколько копий одного и того же, что противоречит теории.
    Реляционная модель в качестве ключевых значений позволяет использовать реальные атрибуты объектов, например, имя человека. На практике программисты часто испытывают недостаток таких признаков. Так, для таблицы людей нельзя использовать имя в качестве ключа, поскольку оно не является уникальным. Не подходит и номер паспорта: существует масса дубликатов и подделок, у детей паспортов нет, люди могут отказаться сообщать номера, и паспорта имеют смысл только внутри одной страны. Поэтому в качестве идентификатора человека обычно используют выработанное компьютером значение.
    В требования к системе должны входить значения верхних пределов. Лучше всего выбирать такой размер полей, чтобы можно было записывать значения, от 10 до 100 раз превышающие используемые в настоящий момент — для возможности роста и развития.
    После определения первичных ключей для каждой таблицы они могут быть использованы для связывания таблиц в базу данных.
    В объектно-ориентированной модели отношения между классами выражаются через иерархии, контейнеры и ассоциации. В реляционной модели они выражаются только через совместно используемые ключи, поскольку это исключительно модель данных
    Отношения много-ко-многим - это — классическая проблема для реляционного моделирования. Трудность заключается в том, что реляционная модель не имеет непосредственной поддержки отношений много-ко-многим.

    13
    Решение состоит в создании промежуточной таблицы. Первичный ключ этой таблицы должен состоять из двух внешних ключей — ключа таблицы 1 и ключа таблицы 2.
    Пример такого преобразования показан на рисунке 3.
    Класс 1
    Идентификатор объекта 1*
    Свойство 1
    Свойство N
    Класс 2
    Идентификатор объекта 2*
    Свойство 1
    Свойство M
    Имя объекта
    Класс1
    Имя таблицы
    Table1
    Имя объекта
    Класс2
    Имя таблицы
    Table2
    Свойство
    Поле
    Тип
    Свойство
    Поле
    Тип
    Идентификатор объекта 1
    ID_Tab1*
    I(a)
    Идентификатор объекта 2
    ID_Tab2*
    I(a)
    Свойство 1
    Pole1
    C(20)
    Свойство 1
    Pole1
    I
    … …

    … …

    Свойство N
    PoleN
    D
    Свойство M
    PoleM
    M
    1
    1
    *
    Имя таблицы
    Table1_2
    *
    Свойство
    Поле
    Тип
    ID_Tab1* I
    ID_Tab2* I
    Рис 3. Преобразование связи много-ко-многим
    Следующий этап работы над проектом предполагает переход от свойств классов к столбцам таблиц. При этом требуется определить типы и размеры всех столбцов, а также добавить специальные столбцы.
    Контрольные вопросы:
    1. Терминология, используемая в реляционной модели, и ее соответствие объектно- ориентированной модели.
    2. Требования реляционной модели к таблице.
    3. Ключи, используемые в реляционной модели.
    4. Пустое значение.
    5. Правило целостности объектов.
    6. Правило ссылочной целостности объектов.
    7. Правила Кодда.
    8. Нормализация.
    9. Первая – пятая нормальные формы
    10. Алгоритм приведения к 3НФ
    11. OLTP и OLAP-системы
    12. Перевод объектно-ориентированной модели в реляционную
    13. Основные операции реляционной алгебры.

    14
    3.4 Лабораторная работа №4
    Задание:
    1.
    Создать базу данных в Visual FoxPro, используя реляционную модель, разработанную в третьей лабораторной работе. Для этого необходимо:
    • создать соответствующие таблицы;
    • построить индексы по первичным и внешним ключам;
    • связать таблицы между собой;
    • определить индексы, которые будут нужны для сортировки и поиска;
    • задать условия проверки на уровне поля, таблицы и значения по умолчанию;
    • задать заголовки полей;
    • установить поддержку ссылочной целостности;
    • создать локальные представления (если нужно);
    • разработать хранимые процедуры (если нужно).
    2.
    Заполнить полученные таблицы
    3.
    Продемонстрировать умение работать в командном окне Visual FoxPro. Для этого необходимо уметь следующее:
    • открывать несколько таблиц;
    • связывать их между собой;
    • выводить содержимое таблиц, соответствующее условию.
    4.
    Построить с помощью мастера форму для ведения одной таблицы.
    Теоретический материал
    Структура команды
    Команды FoxPro, ориентированные на обработку файлов базы данных, в самом общем виде имеют следующий синтаксис:
    • НАЗВАНИЕ [<границы>] [<список выражений:»] [FOR <условие>] [WHILE
    <условие>]
    Здесь:
    НАЗВАНИЕ -имя команды;
    <границы> - границы действия команды, которые могут иметь одно из следующих значений:
    ALL - все записи базы данных,
    REST - все записи (начиная с текущей) до конца базы,
    NEXT - следующие N записей (начиная с текущей),
    RECORD - запись номер N;
    FOR <условие> -выполнение команды только для записей, отвечающих <условию>;
    WHILE
    <условие> - выполнение команды только до тех пор, пока не перестанет выполняться <условие>.
    Слова FOR и WHILE могут присутствовать в команде одновременно. В этом случае
    WHILE-условие имеет приоритет перед FOR - условием.
    Пример:
    LIST
    REST
    FIELDS fam, tab, dtr FOR fam='n'
    Название
    Границы
    Выражение
    FOR-условие
    Порядок следования элементов команды (за исключением "названия", которое всегда на первом месте) практически произвольный. По умолчанию, если отсутствуют <границы> или <условия>, сферой действия команды является одна только текущая запись (
    NEXT
    1) или, наоборот, вся база данных (ALL). Эти сведения содержатся в описании команды.
    Поясним применение команд с условиями. FOR-условие обеспечивает выполнение команды для всех записей файла базы данных или внутри границ, если они указаны. WHILE-

    15
    условие означает выполнение команды только до тех пор, пока условие истинно. При встрече первой же записи, в которой оно (WHILE-условие) не удовлетворяется, выполнение команды прекращается, несмотря на то, что нижняя граница еще не достигнута и далее, возможно, имеются записи с нужными свойствами. Поэтому область применения WHILE- условия - это файлы, упорядоченные (физически или индексированием) по полю, в котором анализируется условие. Если ранее каким-либо образом была найдена первая запись, удовлетворяющая условию, то все остальные такие записи находятся ниже рядом. В этом случае использование команд с WHILE-условием предпочтительнее, так как по достижении последней нужной записи выполнение команды прекращается, а в случае FOR-условия по- иск записей был бы бессмысленно продолжен до достижения нижней границы действия команды.
    Все вышесказанное по отношению к командам, содержащим FOR-условие, справедливо в случае, если не используется оптимизирующая технология отбора данных
    (технология Rushmore). Поскольку в некоторых (редких) случаях ее применение может повлечь нежелательные результаты, все такие команды допускают включение опции подавления оптимизации - NOOPTIMIZE.
    Кроме того, в FoxPro имеется большая группа команд, которые целесообразно выделить в отдельный вид:
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта