Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

ЗАДАНИЕ НА КОНТРОЛЬНУЮ РАБОТУ



Постройте инфологическую концептуальную модель (ER-модель), для чего:

проанализировав предметную область, при необходимости уточнив и дополнив ее, выявите необходимый набор сущностей;

определите требуемый набор атрибутов для каждой сущности, выделив идентифицирующие атрибуты;

проклассифицируйте сущности (стержневые, ассоциативные и пр.);

определите связи между объектами, включая связи "супертип-подтип", где это необходимо;

формализуйте связи между объектами (множественность, условность и т. д.);

опишите полученную ER-модель на языке инфологического проектирования и на языке ER-диаграмм.

2.  Получите реляционную схему из ER-модели, для чего:

постройте набор необходимых отношений базы данных;

выделите первичные и внешние ключи определенных отношений;

приведите полученные отношения к третьей нормальной форме;

определите ограничения целостности для внешних ключей отношений и для отношений в целом;

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

3.  Используя имеющуюся СУБД создайте спроектированную базу данных.

4.  На языке SQL запишите выражения для указанных в варианте задания типов запросов. Проверьте работоспособность написанных запросов в интерактивном режиме.

5.  Выбрав средства разработки приложений, реализуйте законченное приложение, работающее с созданной базой данных (DELPHI).

Приложение должно

заносить информацию в таблицы созданной базы данных;

выполнять необходимые действия по модификации и удалению данных в таблицах созданной базы данных;

НЕ нашли? Не то? Что вы ищете?

поддерживать целостность базы данных, выполняя все действия в рамках транзакций;

выполнять запросы из варианта задания.

Вариант №29. Известно расписание движения скорого поезда от Иркутска до Красноярска.

Станция

Расстояние от Иркутска (в км)

Прибытие

Отправление

Иркутск

0

18 ч 55 мин

Ангарск

39

19 ч 43 мин

19 ч 45 мин

Усолье

67

20 ч 08 мин

20 ч 10 мин

Черемхово

130

21 ч 04 мин

21 ч 06 мин

Залари

195

21ч 59 мин

22 ч 01 мин

Зима

250

22 ч 54 мин

23 ч 14 мин

Куйтун

310

0 ч 06 мин

0 ч 08 мин

Тулун

389

1 ч 14 мин

1 ч 16 мин

Нижнеудинск

506

2 ч 47 мин

2 ч 02 мин

Тайшет

669

5 ч 40 мин

5 ч 45 мин

Иланская

808

7 ч 50 мин

7 ч 10 мин

Канск

840

8 ч 43 мин

8 ч 45 мин

Заозерная

921

9 ч 54 мин

9 ч 56 мин

Красноярск

1087

12 ч 51 мин

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

1) Найти суммарное время движения поезда без учета времени стоянок.

2) Найти максимальное время стоянки.

3) Найти длину участка в километрах между указанными станциями.

4) Найти участок с максимальной скоростью движения.

5) Найти время следования поезда между двумя указанными станциями.

ПРИМЕР!!!

ПРИМЕР ВЫПОЛЕНИЯ КОНРОЛЬНОЙ РАБОТЫ

       Задание. Имеется сеть рыбоводческих озёр. В каждом озере разводится несколько пород рыб. В некоторых озёрах породы рыб могут повторяться. Есть озёра и с одной породой рыб. О каждом озере известно его название, площадь зеркала, максимальная глубина, величина светлости (мутность) воды. О каждой породе рыб известны её название, ценность породы в баллах, степень хищности в баллах и количество рыб данной породы в каждом озере.

Необходимо:

       1. Создать схему базы данных и нормализовать её.

       2. Создать и заполнить таблицы в выбранной СУБД так, чтобы в ответах на запросы получались не пустые таблицы.

       3. Получить ответы на запросы:

       1) какие породы рыб водятся в указанном озере;

       2) в каких озёрах водятся ценные породы рыб;

       3) в каких озёрах максимальное поголовье рыб;

       4) в каких озёрах хищники преобладают;

       5) какая порода рыб содержится только в одном озере;

       6) найти самое светлое озеро, в котором водится заданная порода рыб.

       Решение. Как видно из задания - в базе данных необходимо записывать информацию об озёрах (LAKERS) и о разводимой в этих озерах рыбе (FISHES). Озёра и рыбы представляют собой основные сущности, о которых необходимо хранить информацию.

Кроме основных сущностей (озёра и рыбы), существует еще и связь между ними (в каждом из озёр водятся разные породы рыб), которая объединяет эти основные сущности.

Используя эту связь, можно ответить на следующие вопросы:

- какие породы рыб водятся в указанном озере;

       - в каких озёрах водятся ценные породы рыб;

       - в каких озёрах максимальное поголовье рыб;

       - в каких озёрах хищники преобладают;

       - какая порода рыб содержится только в одном озере;

       - найти самое светлое озеро, в котором водится заданная порода рыб.

Эта связь является такой же частью базы данных, как и основные сущности.

Сущности FISHES и LAKES, а также связь SUMMARY обладают свойствами. Например, у озера есть название, глубина, площадь, степень прозрачности; у рыбы – название, степень хищности, цена; у связи между озером и рыбой можно выделить такое свойство как количество рыб. Некоторые свойства сущностей являются ключевыми, то есть уникальными для данной сущности (например, название озера и порода рыбы должны быть ключевыми, а у сущности-связи ключевым является свойство FISH_ID; LAKE_ID (идентификатор озера и идентификатор рыбы), образующее составной ключ).

После проведения нормализации базы данных переменные-отношения приобрели следующий вид:

       FISHES { FISH_ID, NAME, COST, RAPACITY }

primary key { FISH_ID }

       LAKES { LAKE_ID, NAME, AREA, DEPTH, LIGHT }

               primary key { LAKE_ID }

       SUMMARY { FISH_ID, LAKE_ID, NUMBER }

               primary key { FISH_ID, LAKE_ID }

Учитывая все вышесказанное можно построить ER-диаграмму (модель «сущность/связь») или модель Чена (Рис. 1).

Описание таблицы FISHES:

CREATE TABLE Fishes (

  fish_id  smallint NOT NULL PRIMARY KEY,

  name  varchar(50) NOT NULL,

  cost  smallint NOT NULL,

  rapacity  smallint NOT NULL

);

Описание таблицы LAKES:

CREATE TABLE lakes (

  lake_id  smallint NOT NULL PRIMARY KEY,

  name  varchar(50) NOT NULL,

  area  smallint NOT NULL,

  depth  smallint NOT NULL,

  light  smallint NOT NULL

);

Описание таблицы SUMMARY:

CREATE TABLE Summary (

  fish_id  smallint NOT NULL,

  lake_id  smallint NOT NULL,

  number  smallint NOT NULL

) PRIMARY KEY (fish_id, lake_id)

  FOREIGN KEY (fish_id) REFERENCES Fishes

  FOREIGN KEY (lake_id) REFERENCES Lakes;

Для управления базой данных была разработана программа-оболочка. Программа разрабатывалась в среде Microsoft Visual Studio на языке C++ с применением ActiveX компонентов. Интерфейс программы приведен на Рис. 2.

Краткое описание меню программы. Основное окно содержит в себе поля для ввода запросов, окно для оперирования ключевыми словами update, insert, replace, delete, а также окно для выводов результатов запросов. При оперировании с данными в этой форме используется дескриптор, полученный от классов ODBC.

При нажатии на кнопку Table Editor рождается дочерняя форма несущая в себе ActiveX компоненты ADO и DataGrid. Доступ к данным из этой формы осуществляется через OLE провайдер и имеется возможность непосредственного редактирования данных без использования SQL.

SQL-запросы:

1) какие породы рыб водятся в указанном озере:

select name

from fishes

where fish_id in (select fish_id

  from summary

  where lake_id in (select lake_id

  from lakes

  where name = 'Озеро1'))

2) в каких озёрах водятся ценные породы рыб:

select name

from lakes

where lake_id in (select lake_id

  from summary

  where fish_id in(select fish_id

  from fishes

  where cost >60))

3) в каких озёрах максимальное поголовье рыб:

select name

from lakes

where lake_id in (select lake_id

  from summary

  where number = (select max(number) from summary))

4) в каких озёрах хищники преобладают:

select distinct s. lake_id

from summary s

where (select sum(s2.number)

  from summary s2, fishes f2

  where f2.rapacity > 5 and

  s2.fish_id = f2.fish_id and

  s. lake_id = s2.lake_id)>(select sum(s3.number)

  from summary s3, fishes f3

  where f3.rapacity <= 5 and

  s3.fish_id = f3.fish_id

  and s. lake_id = s3.lake_id)

5) какая порода рыб содержится только в одном озере:

select name

from fishes

where fish_id = (select distinct s. fish_id

  from summary s

  where (select count (s1.fish_id)

  from summary s1

  where s1.fish_id = s. fish_id) = 1)

6) найти самое светлое озеро, в котором водится заданная порода рыб:

select name

from lakes

where lake_id in (select lake_id

  from summary

  where fish_id = (select fish_id

  from fishes

  where name = 'Рыба5' and

  light = (select min(light)

  from lakes, summary, fishes

where lakes. lake_id = summary. lake_id and fishes. fish_id = summary. fish_id and fishes. name = 'Рыба5')))