Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа ALL.doc
Скачиваний:
61
Добавлен:
11.03.2015
Размер:
889.34 Кб
Скачать

Краткие теоретические сведения

Соблюдение условий ссылочной целостности в реляционной базе данных

Правило соответствия внешних ключей первичным - основное правило соблюдения условий ссылочной целостности. Для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительской таблице

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

Для родительской таблицы:

  • Вставка. Возникает новое значение первичного ключа. Существование записей в родительской таблице, на которые нет ссылок из дочерней таблицы, допустимо, операция не нарушает ссылочной целостности.

  • Обновление. Изменение значения первичного ключа в записи может привести к нарушению ссылочной целостности.

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

Для дочерней таблицы:

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

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

  • Удаление. При удалении записи в дочерней таблице ссылочная целостность не нарушается.

Стратегии поддержания ссылочной целостности

Существуют две основные стратегии поддержания ссылочной целостности.

Restrict (ограничить) - не разрешать выполнение операции, приводящей к нарушению ссылочной целостности.

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

Дополнительные стратегии поддержания ссылочной целостности

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

Set null (задать значение null) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на null-значения. Эта стратегия имеет два недостатка. Во-первых, для нее требуется разрешение на использование null-значений. Во-вторых, записи дочерней таблицы теряют связь с записями родительской таблицы.

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

Обеспечение ссылочной целостности средствами MS Access

Для обеспечения ссылочной целостности между таблицами необходимо выполнить команду “Схема данных” из меню “Сервис”. В диалогом окне “Добавление таблицы” последовательно добавить все таблицы. Закрыть диалоговое окно. При установке связи между таблицами в появившемся диалоговом окне “Изменение связей” установить флажки, при помощи которых можно задать различные варианты обеспечения целостности данных. Два нижних флажка доступны только тогда, когда установлен верхний.

Флажок “Обеспечение целостности данных”. Этот флажок можно устанавливать при выполнении всех следующих условий: связываемое поле из главной таблицы является полем первичного ключа или имеет уникальный индекс; связанные поля имеют один и тот же (или совместимый) тип данных; обе таблицы содержатся в одной и той же базе данных MS Access. Снимите этот флажок, чтобы допустить изменения в связанных таблицах, которые приводят к нарушению условий целостности данных.

Флажок “Каскадное обновление связанных полей”. Установите этот флажок для того, чтобы MS Access автоматически обновлял соответствующие значения в связанной таблице при любом изменении значения первичного ключа в главной таблице.

Флажок “Каскадное удаление связанных записей”. Флажок нужно установить для автоматического удаления связанных записей в связанной таблице при удалении записи в главной таблице. Для предотвращения удаления записей из главной таблицы, если имеются соответствующие записи в связанной таблице, нужно установить флажок “Обеспечение целостности данных” и снять флажок “Каскадное удаление связанных записей”.

Порядок выполнения работы

  1. Разработать структуру базы данных для хранения необходимой информации согласно варианту.

  2. Реализовать проект средствами MS Access.

  3. Сформировать схему данных: установить связи между исходными таблицами, обеспечить условия ссылочной целостности данных. Печать схемы выполнить с помощью команды Файл/Печать схемы данных.

  4. Выполнить информационное наполнение базы данных. Значения полей базовых таблиц задать самостоятельно.

  5. Подготовить отчет по работе.

Варианты заданий

1. Информационная система “Сервисный центр”

Разработать базу данных сервисного центра, предоставляющего обслуживание и ремонт бытовой техники и компьютеров и имеющего несколько филиалов. В базе данных должна содержаться информация о клиентах, история общения, сопутствующие документы, а также информация о закупке деталей для ремонта.

2. Информационная система “Магазин канцелярских принадлежностей”

Ваш магазин занимается продажей канц. товаров, оптом и розницей. Товары поставляются несколькими поставщиками из разных городов. У вас несколько видов товаров с установленными ценами. Имеется система скидок при работе с постоянными клиентами. И стоит учитывать наличие товаров на складе.

3. Информационная система “Строительная фирма”

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

4. Информационная система “Транспортная компания”

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

5. Информационная система “Поликлиника”

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

6. Информационная система “Библиотека”

Разработать информационную систему содержащую информацию о книгах и об их авторах, которые находятся в данной библиотеке. Так как книг много, их нужно разделить на научные, фантастику, классику и т.д. Так же нужно хранить информацию о читателях, зарегистрированных в библиотеке. Система предназначена для быстрого поиска нужной книги или жанра.

7. Информационная система “Международный автобус”

Ваша фирма занимается продажей билетов на междугородные автобусы, которые отходят с разных автовокзалов и имеют различные маршруты. Ваша фирма имеет несколько филиалов по продаже билетов, часть из них расположена прямо на автовокзалах, а часть - в других районах города. Вы продаете билеты не только на текущие рейсы, но и заранее. У вас существует возможность возврата билетов.

8. Информационная система “Туристическая компания”

Ваша фирма занимается организацией туристического обслуживания. У Вас имеется несколько постоянных маршрутов, для которых комплектуются туристические группы. Заранее известны сроки каждого маршрута. Однако при наборе группы ниже некоторого количества человек Ваша деятельность становится нерентабельной. Ваши клиенты после заказа и оплаты маршрута имеют право от него отказаться, но при этом теряют некоторую страховую сумму.

9. Информационная система “Внебюджетное образование”

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

10. Информационная система “Сервис автомобилей”

Ваша фирма занимается предоставлением сервиса для автомобилей. Вы имеете договора с фирмами автомобилей и с муниципальными органами по распространению и рекламе авто услуг. У вашей фирмы заключены договора с автошколами. В фирме работают агентства, расположенные в разных городах РФ. В каждом городе работают сервисы автомобилей, которые имеют право от агентств заключать договора на предоставления сервисных услуг. В фирме опытные мастера, которые великолепно выполнят любую поломку вашего автомобиля.

11. Информационная система “Программные системы”

Ваша фирма занимается разработкой программных систем. Вы имеете один офис, но большинство Ваших разработчиков работают дома, сдавая в определенные сроки свою работу ответственному разработчику – сотруднику формы. Вам необходимо планировать как разработку, так и внедрение и обслуживание разработанных ранее систем.

12. Информационная система “Гостиница”

Ваша фирма владеет гостиницей. Вам необходимо разработать систему, обеспечивающую выполнение задач учета и планирования загрузки помещений. Ваши клиенты могут заказывать места в гостинице заранее, но не более, чем за 30 дней. Вы планируете сотрудничество с туристической фирмой по размещению групп туристов.

13. Информационная система “Соревнования”

Разработать информационную систему, содержащую сведения о спортивных соревнованиях, проводимых в вашем городе. Информация должна содержать сведения о состязаниях и их критериях. Некоторую информацию об организаторах, спонсорах. Система предназначена для оказания справочных услуг спортсменам.

14. Информационная система “Недвижимость”

Ваша фирма занимается операциями с недвижимостью. Вы продаете и покупаете квартиры, сдаете квартиры и помещения под офисы. Вы занимаетесь обменами жилплощади для заказчиков.

15. Информационная система “Типография”

Ваша фирма занимается издательством. В ее владении имеется типография и ряд периодических изданий. В периодических изданиях имеются возможности размещения рекламы. В издательствах издаются кроме книг и журналов малотиражные издания типа буклетов.

16. Информационная система “Провайдер интернет”

Ваша фирма занимается предоставлением провайдерских услуг в рамках сети Интернет. Она обслуживает клиентов с подключением через модем как на общий телефонный канал, так же и через выделенную линию. В рамках обслуживания возможно ведение рекламы в Интернет.

17. Информационная система “Дизайн интерьера”

Фирма занимается разработкой дизайнов для офисных помещений. Имеется один офис ,но большинство разработчиков дизайнов работают дома, сдавая в определенные сроки свою работу ответственному сотруднику фирмы. Дизайны помещений и списки клиентов должны хранится в офисе главного сотрудника. Вам необходимо планировать как разработку , так и реализацию планов дизайна помещений.

18. Информационная система “Фильмы”

Разработать информационную систему, содержащую сведения о фильмах, показываемых в кинотеатрах города. В городе несколько кинотеатров. Информация о фильме должна содержать сведения об актерах, исполняющих главные роли, и о режиссере. Система предназначена для оказания справочных услуг населению.

19. Информационная система “Отдел кадров”

Необходимо разработать информационную систему для отдела кадров предприятия. Система должна содержать сведения о работниках предприятия. Помимо общих сведений (фамилия, имя, отчество, год рождения и пр.) должны содержаться сведения о воинской обязанности, воинском звании, семейном положении, количестве, возрасте и поле детей. Система предназначена для учета кадров предприятия.

20. Информационная система “Справочная аптека”

Разработать информационную систему для предоставления справочных услуг населению. Система должна содержать сведения о наличии и цене лекарственных препаратов в аптеках города, сведения об аптеке должны включать в себя адрес, телефон и наименование аптеки. Препараты должны быть разбиты по группам (болеутоляющие, желудочные, гомеопатические и т.д.)

21. Информационная система “Каталог видеофильмов”

Разработать автоматизированный каталог видеофильмов. Информация о фильме должна включать сведения о режиссере, актерах, исполняющих главные роли, категорию фильма. Система предназначена для подбора фильмов по режиссеру, актерам или категории.

22. Информационная система “Бытовая техника”

Разработать автоматизированную информационную систему, содержащую сведения о наличии в магазинах города бытовой техники. Товары должны быть классифицированы по категориям (пылесосы, кофемолки, миксеры, кухонные комбайны и пр.). Информация о магазине должна содержать в себе адрес, телефон и наименование. Система предназначена для поиска товаров по категориям, наименованию, фирме-производителю.

23. Информационная система “Банк”

Разработать автоматизированную информационную систему «Банк» для хранения информации о вкладах населения как в рублях, так и в валюте. Каждый вклад имеет номер счета, тип счета, вид вклада, сумму вклада. Срок хранения и начальный взнос по разным вкладам различен. Также банк может предоставлять различные кредиты – в рублях и в валюте. Информация о клиенте должна содержать сведения о фамилия, имени, отчестве, паспортные данные, гражданство, индекс, страну проживания, город и адрес.

24. Информационная система “Страны Европы”

Необходимо создать информационную систему, содержащую сведения о странах Европы. В базу данных ИС включить следующие пункты: страна, столица, население, площадь, сведения об экономике, основные экономические показатели. В базе данных должны храниться географические карты стран Европы. Также необходимо организовать хранение списка важнейших исторических событий XX века с указанием даты и страны, в которой это событие произошло.

25. Информационная система “Детский лагерь”

Лагерь предоставляет услуги отдыха каждое лето. За сезон в лагере 4 смены, в каждой смене по 8 отрядов, в которых отдыхают дети. над каждым отрядом курируют 1 вожатый и 1 воспитатель. Создать Базу, лагеря. Лагерь работает с определенными школами. Воспитателями являются преподаватели данных школ.

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

  1. Как можно нарушить ссылочную целостность в реляционных таблицах?

  2. Какие основные стратегии поддержания ссылочной целостности существуют?

  3. Какие дополнительные стратегии поддержания ссылочной целостности существуют?

  4. Как можно удалить таблицу из БД в MS Access, всегда ли это допустимо, если нет, то какие таблицы не могут быть удалены и почему?

  5. Что такое основная таблица и подчиненная таблица, как они связаны друг с другом?

  6. Могут ли быть у одной основной таблицы несколько подчиненных? Если могут – приведите примеры, если нет, то почему?

  7. Могут ли быть у одной подчиненной таблицы несколько основных, с ней связанных, если да – приведите примеры, если нет, то аргументируйте свой ответ?

  8. Что такое поддержка каскадного удаления и каскадного обновления при описании связей?