Автор работы: Пользователь скрыл имя, 14 Июня 2013 в 00:27, курсовая работа
Цели курсового проекта:
-Проектирование АИС для ведения отчетности в отделе кадров;
-Повышение навыков в области проектирования информационных систем;
-Повышение навыков использования интегрального пакета инструментальных средств системного анализа.
При разработке курсового проекта использовались следующие продукты компании Computer Associates:
-All Fusion Process Modeler (BPwin);
-All Fusion Erwin Data Modeler (Erwin).
Из результата декартова произведения отберем только те кортежи, в которых:
Охр1.id_охранника = Охр2. id_охранника,
Ох1.Фамилия ≠ Охр2.Фамилия Ú Охр1.Имя ≠ Охр2.Имя Ú
Охр1.Отчество≠ Охр2.Отчество Ú Охр1.Дата рождения ≠ Охр2.Дата рождения
Поскольку условие 1 соединяется с условием 2 через операцию И (Ù), а в условии 2 применяется операция ИЛИ (Ú), условие 2 при записи ограничения должно быть записано в скобках:
sусловие1 Ù (условие2) (ρ Охр1 (Охранник) Х ρ Охр2 (Охранник)) = Æ
Создадим ограничение уникальности для первичного ключа на примере отношения Объект с простым (не составным) первичным ключом: Объект (id_объекта, Название объекта, Адрес, Телефон).
Чтобы выполнить декартово произведение двух копий одного отношения, необходимо переименовать хотя бы одну из копий. Для улучшения восприятия ограничения переименуем обе: левую часть назовем Об1, правую – Об2.
Из результата декартова произведения отберем только те кортежи, в которых:
Об1. id_объекта = Об2. id_объекта,
Об1.Название объекта ≠ Об2.Название объекта
ρ Об1 (Объект) Х ρ Об2 (Объект) = Æ
Создадим ограничение уникальности для первичного ключа на примере отношения Нарушение с простым (не составным) первичным ключом: Нарушение (id_нарушения, Название нарушения).
Чтобы выполнить декартово произведение двух копий одного отношения, необходимо переименовать хотя бы одну из копий. Для улучшения восприятия ограничения переименуем обе: левую часть назовем Нар1, правую – Нар2.
Из результата декартова произведения отберем только те кортежи, в которых:
Нар1. id_нарушения = Нар2. id_нарушения,
Нар1.Название нарушения ≠ Нар2.Название нарушения
ρ Нар1 (Нарушение) Х ρ Нар2 (Нарушение) = Æ
Создадим ограничение уникальности для первичного ключа на примере отношения Стоимость нарушения с простым (не составным) первичным ключом: Стоимость нарушения (id_нарушения, id_стоимости, Дата назначение размера штрафа, Штраф).
Чтобы выполнить декартово произведение двух копий одного отношения, необходимо переименовать хотя бы одну из копий. Для улучшения восприятия ограничения переименуем обе: левую часть назовем СтНар1, правую – СтНар2.
Из результата декартова произведения отберем только те кортежи, в которых:
СтНар1. id_стоимости = СтНар2. id_стоимости,
ρ СтНар1 (Стоимость нарушения) Х ρ СтНар2 (Стоимость нарушения) = Æ
Создадим ограничение уникальности для первичного ключа на примере отношения Табель учета рабочего времени с простым (не составным) первичным ключом: Табель учета рабочего времени (id_табеля, id_охранника, id_объекта, id_вахты, id_нарушения, Дата нарушения, id_стоимости, Количество отработанных часов).
Чтобы выполнить декартово произведение двух копий одного отношения, необходимо переименовать хотя бы одну из копий. Для улучшения восприятия ограничения переименуем обе: левую часть назовем Таб1, правую – Таб2.
Из результата декартова произведения отберем только те кортежи, в которых:
Таб1. id_табеля = Таб2. id_табеля,
ρ Таб1 (Табель учета рабочего времени) Х ρ Таб2 (Табель учета рабочего времени) = Æ
Ограничения ссылочной целостности.
Запишем ограничение ссылочной
целостности для отношений Охра
Охранник (id_охранника, Фамилия, Имя, Отчество, Дата рождения, Дата начала работы, Дата конца работ)
Табель учета рабочего времени (id_табеля, id_охранника, id_объекта, id_вахты, id_нарушения, Дата нарушения, id_стоимости, Количество отработанных часов)
Поскольку список охранников необходим для создания табеля можно утверждать, что
p id_охранника(Охранник) Í p id_охранника(Табель учета рабочего времени).
То же ограничение может быть записано в виде:
p id_охранника(Охранник) - p id_охранника(Табель учета рабочего времени)= Æ
Действительно, разность отношений должна создать пустое множество, поскольку проекция отношения Охранник по id_охранника является подмножеством проекции отношения Табель учета рабочего времени по id_охранника. Если результат оказался не пустым множеством, значит в учебную группу поместили ошибочное значение идентификатора факультета и его необходимо исправить.
Запишем ограничение ссылочной
целостности для отношений Объе
Объект (id_объекта, Название объекта, Адрес, Телефон)
Табель учета рабочего времени (id_табеля, id_охранника, id_объекта, id_вахты, id_нарушения, Дата нарушения, id_стоимости, Количество отработанных часов)
Поскольку список охранников необходим для создания табеля можно утверждать, что
p id_объекта(Объект) Í p id_объекта(Табель учета рабочего времени).
То же ограничение может быть записано в виде:
p id_объекта(Объект) - p id_объекта(Табель учета рабочего времени)= Æ
Действительно, разность отношений должна создать пустое множество, поскольку проекция отношения Объект по id_объекта является подмножеством проекции отношения Табель учета рабочего времени по id_объекта. Если результат оказался не пустым множеством, значит в учебную группу поместили ошибочное значение идентификатора факультета и его необходимо исправить.
Запишем ограничение ссылочной
целостности для отношений Вахт
Вахта (id_вахты, Номер вахты, Дата начала, Дата конца)
Табель учета рабочего времени (id_табеля, id_охранника, id_объекта, id_вахты, id_нарушения, Дата нарушения, id_стоимости, Количество отработанных часов)
Поскольку список объектов необходим для создания табеля можно утверждать, что
p id_вахты(Вахта) Í p id_вахты(Табель учета рабочего времени).
То же ограничение может быть записано в виде:
p id_вахты(Вахта) - p id_вахты(Табель учета рабочего времени)= Æ
Действительно, разность отношений должна создать пустое множество, поскольку проекция отношения Вахта по id_вахты является подмножеством проекции отношения Табель учета рабочего времени по id_вахты. Если результат оказался не пустым множеством, значит в учебную группу поместили ошибочное значение идентификатора факультета и его необходимо исправить.
Запишем ограничение ссылочной
целостности для отношений Спис
Нарушение (id_нарушения, Название нарушения)
Стоимость нарушения (id_нарушения, id_стоимости, Дата назначение размера штрафа, Штраф)
Поскольку список возможных нарушений может быть использован для создания табеля можно утверждать, что
p id_нарушения(Нарушение) Í p id_нарушения(Стоимость нарушения).
То же ограничение может быть записано в виде:
p id_нарушения(Нарушение)- p id_нарушения(Стоимость нарушения)= Æ
Действительно, разность отношений должна создать пустое множество, поскольку проекция отношения Нарушение по id_нарушения является подмножеством проекции отношения Стоимость нарушения по id_нарушения. Если результат оказался не пустым множеством, значит в учебную группу поместили ошибочное значение идентификатора факультета и его необходимо исправить.
Запишем ограничение ссылочной
целостности для отношений Стои
Стоимость нарушения (id_нарушения, id_стоимости, Дата назначение размера штрафа, Штраф)
Табель учета рабочего времени (id_табеля, id_охранника, id_объекта, id_вахты, id_нарушения, Дата нарушения, id_стоимости, Количество отработанных часов)
Поскольку список вахт необходим для создания табеля можно утверждать, что
p
id_нарушения,id_стоимости(
То же ограничение может быть записано в виде:
p
id_нарушения,id_стоимости(
Действительно, разность отношений должна создать пустое множество, поскольку проекция отношения Стоимость нарушения по id_нарушения и id_стоимости является подмножеством проекции отношения Табель учета рабочего времени по id_нарушения и id_стоимости. Если результат оказался не пустым множеством, значит в учебную группу поместили ошибочное значение идентификатора факультета и его необходимо исправить.
Домены являются частью схемы отношения. Во всех реляционных СУБД при описании структуры хранения информации в базе данных каждому атрибуту любого отношения должен быть поставлен в соответствие тот или иной домен. Как известно, домен – это некоторый тип значений. В качестве домена можно использовать:
Часто ограничение
домена указывает не только тип, но
и допустимые значения соответствующих
элементов кортежа. Если множество
допустимых значений можно описать
в виде условного выражения
Запишем ограничение домена для атрибута Дата рождения в отношении Охранник (id_охранника, Фамилия, Имя, Отчество, Дата рождения, Дата начала работы, Дата конца работы ), на который кроме ограничения типа (дата/время) наложено дополнительное ограничение:
Дата рождения £ Date ( )-365*18.
На языке реляционной
алгебры это ограничение
s Дата рождения < Date()-365*18(Охранник) = Æ,
т.е. множество кортежей отношения Охранник, в которых дата рождения больше чем Date ( )-365*18(возраст меньше 18 лет), должно быть пустым.
Запишем ограничение домена для атрибутов Дата начала работы, Дата конца работы в отношении Охранник (id_охранника, Фамилия, Имя, Отчество, Дата рождения, Дата начала работы, Дата конца работы ), на которые наложены ограничения типа (дата/время):
Дата начала работы £ Date ( ).
Дата конца работы £ Date ( ).
На языке реляционной
алгебры эти ограничения
s Дата начала работы < Date() (Охранник) = Æ,
s Дата конца работы < Date() (Охранник) = Æ,
т.е. множество кортежей отношении Охранник, в которых дата начала и конца работы больше Date ( ), должно быть пустым.
Запишем ограничение домена для атрибутов Дата начала и Дата конца в отношении Вахта (id_вахты, Номер вахты, Дата начала, Дата конца), на которые наложено ограничение типа (дата/время):
Дата начала £ Date( ).
Дата конца £ Date( ).
На языке реляционной алгебры эти ограничения запишутся в виде:
s Дата начала > Date()(Вахта) = Æ,
s Дата конца > Date()(Вахта) = Æ,
т.е. множество кортежей отношения Вахта, в которых Дата начала и Дата конца больше чем Date ( ), должно быть пустым.
Запишем ограничение домена для атрибутов Дата назначения размера штрафа в отношении Стоимость нарушения (id_нарушения, id_стоимости, Дата назначение размера штрафа, Штраф), на которые наложено ограничение типа (дата/время):
Дата назначения размера штрафа £ Date( ).
На языке реляционной алгебры эти ограничения запишутся в виде:
s Дата назначения размера штрафа > Date()(Стоимость нарушения) = Æ,
т.е. множество кортежей отношения Стоимость нарушения, в которых Дата назначения размера штрафа больше чем Date ( ), должно быть пустым.
Запишем ограничение домена для атрибутов Дата нарушения в отношении Табель учета рабочего времени (id_табеля, id_охранника, id_объекта, id_вахты, id_нарушения, Дата нарушения, id_стоимости, Количество отработанных часов), на которые наложено ограничение типа (дата/время):
Дата нарушения £ Date( ).
На языке реляционной
алгебры эти ограничения
s Дата нарушения > Date()(Табель учета рабочего времени) = Æ,
т.е. множество кортежей отношения Стоимость нарушения, в которых Дата нарушения больше чем Date ( ), должно быть пустым.
Ограничением общего вида называют произвольное требование, которое должно быть зафиксировано в базе данных. В рассматриваемых нами отношениях ограничения общего вида необходимо задать:
1.В отношении Табель учета рабочего времени для совокупности атрибутов id_нарушения, Дата нарушения (если id_нарушения пустое, то и дата будет отсутствовать);
s id_нарушение (Табель учета рабочего времени)= Æ -> p Дата нарушения(Табель учета рабочего времени)= Æ