Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник EXCEL БД SQL.doc
Скачиваний:
2
Добавлен:
26.11.2018
Размер:
2.62 Mб
Скачать

Пример разработки рбд

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

Разделим информацию по сущностям.

Первая сущность, (стержневая) назовем ее – «Поставщик», включает в себя следующие объекты.

  • Название фирмы поставщика.

  • Факс фирмы.

Вторая сущность (стержневая) назовем ее – «Товар», включает в себя следующие объекты.

  • Вид товара.

  • Сорт товара.

Третья сущность назовем ее – «Клиенты», включает в себя следующие объекты.

  • Название клиента.

Учитывая назначение БД, нормализуем сущности, и с учетом обеспечения целостности БД, составим структуру реляционных отношений.

Поставщик

PK_Ф

Фирма

Факс

Склад

Учет

PK_Скл

FK_Скл

Товар

FK_Ф

Клиенты

FK_K

PK_T

FK_Т

PK_K

Дата

Вид_товара

FK_С

Клиент

Колич

Дата

Сорт

Колич

PK_C

Цена_за_ед

Сорт_товара

FK_T

PК_Ф, PK_T, PK_C, PK_Скл, PK_K, первичные ключи в своих таблицах.

FК_Ф, FK_T, FK_C, FK_Скл, FK_K, внешние ключи.

В таблице «Склад», учитывается: какие товары, какого сорта, каким поставщиком, когда и в каком количестве были поставлены на склад, а так же цена за единицу товара.

В таблице «Учет» учитывается: когда, и в каком количестве, клиент приобрел товар. А наличие связи PK_Скл → FK_Скл сразу определяет полную характеристику приобретенного товара (вид, сорт, цена….).

Ниже приведена структура БД в заполненных таблицах.

СТРУКТУРА БАЗЫ ДАННЫХ

(в заполненных таблицах)

Поставщик

Товар

Сорт

Клиенты

PK_Ф

Фирма

Факс

PK_T

Вид_товара

PK_C

Сорт_товара

FK_T

PK_K

Клиент

1

Викам

456-34-22

1

Яблоки

1

Голден

1

1

Буфет А…

2

Зенит

233-45-76

2

Груши

2

Рихард

1

2

Ресторан Н…

3

Грант

467-12-31

3

Апельсины

3

Шафран

1

3

Буфет С…

4

Зенит

748-18-66

4

Лада

2

4

Столовая 1

5

Велеса

2

5

Ресторан У…

6

Нэвел

3

6

Столовая 2

7

Браун

3

8

Валенсия

3

Склад

Учет

FK_Ф

FK_Т

FK_С

Дата

Колич

Цена_за_ед

PK_Скл

FK_Скл

FK_K

Дата

Колич

3

2

4

02.09.05

456

60

1

5

4

20.08.05

5

2

1

2

23.08.05

235

70

2

4

3

09.09.05

14

3

2

5

29.08.05

367

56

3

5

4

20.08.05

7

4

2

5

04.09.05

456

75

4

6

4

01.10.05

5

1

3

8

15.08.05

267

45

5

7

5

22.09.05

9

2

1

3

26.09.05

345

65

6

6

4

01.10.05

6

3

3

6

17.09.05

176

40

7

5

3

20.08.05

20

4

2

4

30.10.05

235

50

8

10

3

10.09.05

33

3

3

8

22.08.05

411

60

9

6

2

01.10.05

21

2

2

5

05.09.05

254

55

10

7

1

22.09.05

65

3

3

7

27.08.05

423

45

11

11

1

01.09.05

17

4

2

4

04.09.05

285

60

12

3

2

03.09.05

15

1

1

1

02.10.05

255

70

13

4

3

09.09.05

8

5

4

20.08.05

10

12

3

09.09.05

23

10

4

10.09.05

43

Поставщик

PK_Ф

Таблицы «Товар» и «Сорт», можно объединить и назвать «Товар». В этом случае БД упрощается и принимает более компактный вид.

Однако, это является нарушением 2 НФ, хотя и незначительным для данной БД.

Фирма

Факс

Склад

Учет

PK_Скл

FK_Скл

FK_Ф

Клиенты

FK_K

FK_Т

PK_K

Дата

Дата

Клиент

Колич

Колич

Товар

Цена_за_ед

PK_T

Вид_товара

Сорт_товара

Поставщик

Товар

Клиенты

PK_Ф

Фирма

Факс

PK_Т

Товар

Сорт

PK_K

Клиент

1

Викам

456-34-22

1

Яблоки

Голден

1

Буфет А…

2

Зенит

233-45-76

2

Яблоки

Рихард

2

Ресторан Н…

3

Грант

467-12-31

3

Яблоки

Шафран

3

Буфет С…

4

Зенит

748-18-66

4

Груши

Лада

4

Столовая 1

5

Груши

Велеса

5

Ресторан У…

6

Апельсины

Нэвел

6

Столовая 2

7

Апельсины

Браун

8

Апельсины

Валенсия

Склад

Учет

 

FK_Ф

FK_Т

Дата

Колич

Цена_за_ед

PK_Скл

FK_Скл

FK_K

Дата

Колич

3

4

02.09.05

456

60

1

5

4

20.08.05

5

2

2

23.08.05

235

70

2

4

3

09.09.05

14

3

5

29.08.05

367

56

3

5

4

20.08.05

7

4

5

04.09.05

456

75

4

6

4

01.10.05

5

1

8

15.08.05

267

45

5

7

5

22.09.05

9

2

3

26.09.05

345

65

6

6

4

01.10.05

6

3

6

17.09.05

176

40

7

5

3

20.08.05

20