Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Кто поможет с базой данных в СУБД Access?

Автор: Magicman 1.4.2010, 2:13

Здравствуйте!
Дано такое задание:
Задание №3 Вариант 7
Разработать информационно-логическую модель предметной области «Клиент» с атрибутами
Код клиента
организация
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
отдел
должность
дата заказа
форма оплаты
Создать логическую структуру этой базы данных для СУБД Access.
Заполнить таблицы базы данных записями.
Создать отчёт с параметрами Код клиента, фамилия, организация, дата заказа
Создать запрос о клиентах из одного города.
Вопрос:
Во избежание дублирования записей, как провести нормализацию отношений, то есть разбить атрибуты по таблицам?
Спасибо!!!


Автор: Vahappaday 1.4.2010, 7:54

хм...
я бы сделал 2 таблицы
В одной ключ [Код клиента] и вся информация о клиенте
Вторая состоит из 3 или 4 полей, [Код клиента], [Дата заказа], [Форма оплаты] и, возможно, id заказа какой-нибудь ввести

Автор: Magicman 1.4.2010, 19:16

А как бы ВЫ озаглавили таблицы?
У меня вот такое получилось:
Во избежание дублирования записей, проведём нормализацию отношений, то есть разобьём атрибуты по таблицам.
1 таблица получилась такой: называется Клиенты
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
2 таблица называется Отдел
должность здесь будет ключевое поле
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
3 таблица называется организация
должность здесь будет ключевое поле
дата заказа
форма оплаты
Это правильно?
Я избежал повторений при такой структуре?
Спасибо!!!

Автор: Vahappaday 1.4.2010, 20:14

Третью таблицу я бы назвал... ну, точно не "Организация". Я бы назвал её "Заказы"

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

В третьей, должность не должна быть ключевым полем.

Автор: Magicman 2.4.2010, 4:23

Вот нашёл пример в Сети)))
Задание очень похожее, тоже содержит 19 атрибутов.
Может действительно достаточно будет двух таблиц, одна будет называться Клиенты, другая Заказы, в первой будет вся информация о клиенте, а во второй ключ код клиента ФИО, Дата, Оплата?
Решите пожалуйста?
Спасибо!!!


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Magicman 2.4.2010, 5:23

Может быть так?
Код клиента 1 таблица с названием Клиенты
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
должность
2 таблица с названием Организация
отдел
Код клиента
имя
фамилия
отчество
3 таблица с названием Заказы
отдел
дата заказа
форма оплаты
С уважением, Антон.

Автор: Magicman 2.4.2010, 6:54

1 таблица получилась такой: называется Клиенты
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
2 таблица называется Отдел
должность здесь будет ключевое поле
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
3 таблица называется организация
должность здесь будет ключевое поле
дата заказа
форма оплаты
Это правильно?
Я избежал повторений при такой структуре?
Может быть отдел и должность поменять местами
Спасибо!!!

Автор: Vahappaday 2.4.2010, 6:59

Я уже говорил, что 3 таблицы неуместны.
Вот тут

Цитата

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

у Вас есть разумное зерно. В общем-то, я так и советовал сделать.
Не понятно только, зачем во 2 таблице повторить ФИО, если им место в 1-й.
Ещё продумайте, что будет ключом во 2 таблице.

И ещё, в личку, пожалуйста, запросы только на платную помощь.

Автор: Magicman 2.4.2010, 7:40

Есть у меня ещё один вариант
Поскольку организация и место работы одно и тоже, то расположим таблицы, исключая повторения данных:
1 таблица Клиенты назовём
Код клиента ключ
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
2 таблица Назовём Место работы
Код клиента ключ
организация ключ
имя
фамилия
отчество
3 таблица Назовём Отдел
организация ключ
должность
дата заказа
форма оплаты
Правильно?

Автор: Vahappaday 2.4.2010, 7:45

)))) см. предыдущие комментарии)))

Автор: Magicman 2.4.2010, 7:58

Место работы и организация - это точно одно и то же, только вопрос, где поставить ключ связи с 3 таблицей, её, наверно, можно назвать Заказы
Посмотрите пожалуйста пример, состоящий из трёх таблиц, который я нашёл в Сети.
Спасибо!!!

Автор: Magicman 2.4.2010, 8:13

Может быть попробовать две таблицы одна клиенты, другая заказы и связать через код клиента?
Спасибо!!!

Автор: Vahappaday 2.4.2010, 8:19

Цитата(Magicman @ 2.4.2010, 8:13) *

Может быть попробовать две таблицы одна клиенты, другая заказы и связать через код клиента?
Спасибо!!!

Да!!!!)))))
Я об этом сказал в самом начале! Вы читаете, что я пишу?))))))

Осталось придумать ключ для таблицы "Заказы")))))

Автор: Magicman 2.4.2010, 9:22

Ключ код клиента.
Правильно?
Спасибо!!!

Автор: Magicman 2.4.2010, 10:18

1 таблица получилась такой: называется Клиенты
Код клиента здесь будет ключевое поле
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
Организация
Отдел
должность
2 таблица называется Заказы
Код клиента здесь будет ключевое поле
дата заказа
форма оплаты
Это правильно?
Я избежал повторений при такой структуре?
И всё-таки чем нужно руководствоваться при нормализации отношений (при разбиении на таблицы)?
Спасибо!!!

Автор: Vahappaday 2.4.2010, 16:20

Нужно руководствоваться отсутствием повторений. Если есть наборы данных, которые однозначно соответствуют друг-другу, их объединяют в таблицу.
Например, мои ФИО, номер паспорта, место работы/учёбы однозначно соответствуют друг-другу.
Мой номер паспорта есть только у меня, у человека с другими данными его быть не может. Более того, номер паспорта уникален, а значит, может быть ключом.

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

Автор: Magicman 2.4.2010, 20:18

Нашёл в Сети очень похожее задание на моё
Вот посмотрите пожалуйста, как Вы это объясните?
Задание №3
Разработать информационно-логическую модель предметной области «Участники конференции» с атрибутами:
 Код участника
 Имя
 Фамилия
 Город
 Район
 Область
 Страна
 Почтовый индекс
 Домашний телефон
 Рабочий телефон
 Факс
 Место работы
 Должность
 Дата регистрации
 Дата отъезда
 Секция
 Название доклада
 Тематика доклада
Создать логическую структуру этой базы данных для СУБД Access.
Заполнить таблицы базы данных записями.
Создать отчет с параметрами Код участника – Фамилия – Название доклада.
Создать запрос об участниках конференции для одной из секций.
Решение)))
База данных – это поименованная совокупность структурированных данных, относящихся к определенной предметной области.
Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извлекать выборку с произвольным сочетанием признаков. Сделать это возможно, если данные структурированы. Структурирование – это введение соглашений о способах представления данных.
Система управления базами данных – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации.



Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Vahappaday 2.4.2010, 20:20

всё, я пас)))
дальше на усмотрение админов))

Автор: Magicman 2.4.2010, 21:55

Здравствуйте!
Помогите пожалуйста провести нормализацию отношений во избежание повторения данных?
Задание №3 Вариант 7
Разработать информационно-логическую модель предметной области «Клиент» с атрибутами
Код клиента
организация
имя
фамилия
отчество
город
район
область
страна
почтовый индекс
домашний телефон
рабочий телефон
факс
мобильный телефон
место работы
отдел
должность
дата заказа
форма оплаты
Создать логическую структуру этой базы данных для СУБД Access.
Заполнить таблицы базы данных записями.
Создать отчёт с параметрами Код клиента, фамилия, организация, дата заказа
Создать запрос о клиентах из одного города.
С уважением, Антон.


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Magicman 3.4.2010, 6:58

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

Автор: julia_lisha 7.4.2010, 9:31

извините но если бы вашу работу увидел программист-бд он бы бился в истерике newconfus.gif

Автор: Vahappaday 7.4.2010, 18:17

это про мои комментарии?

Автор: julia_lisha 8.4.2010, 10:55

да да про ваши 2 таблицы blink.gif
их там больше yes.gif

с двумя таблицами конечно проще сделать операции различные....
но......правила есть правила)

Автор: Vahappaday 8.4.2010, 12:22

Вполне допускаю, что был не прав.
Наверное, мне не стоит лезть в тему бд...

Можно ваш вариант?

Разбить таблицу с информацией о клиенте на мелкие?
Код клиента - Фамилия
Код клиента - Имя
...
Код клиента - Место работы
Код клиента - Должность?




Автор: julia_lisha 8.4.2010, 13:52

Цитата
1 таблица Клиенты
-Код клиента
-имя
-фамилия
-отчество
-код адреса
-код должности

2 таблица Адрес
-код адреса
-город
-район
-область
-страна
-почтовый индекс

3 таблица Телефоны клиентов
-Код телефона
-номер
-код типа телефона
-код клиента

4 таблица Типы телефонов
-код типа телефона
-наименование(тут факс сот дом и т.д.)

5 таблица Должности
-код должности
-название

6 таблица Заказы
-код заказа
-дата заказа
-код вида оплаты

7 таблица Заказы клиентов
-код заказов клиентов
-код клиента
-код заказа

8 таблица Виды оплаты
-код вида оплаты
-вид

9 таблица Организация
-код организации
-место работы
-код отдела
-код клиента

10 таблица Отделы
-код отдела
-название


получился такой вариант yes.gif все отношенияна ходятся в 3НФ

Автор: Magicman 8.4.2010, 19:19

julia_lisha А Вы не могли бы всё это выложить на форум файлом Access?
Спасибо!!!

Автор: Vahappaday 8.4.2010, 19:59

Благодарствую)) Просветили неуча))

Автор: julia_lisha 9.4.2010, 15:08

Цитата(Magicman @ 8.4.2010, 19:19) *

julia_lisha А Вы не могли бы всё это выложить на форум файлом Access?
Спасибо!!!

dry.gif а вам не кажется это уже чистой воды наглостью...... mad.gif
и работу я вам корректировала в Блокноте)))) так что сами сами

Цитата
Vahappaday
Благодарствую)) Просветили неуча))


да не за что smile.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)